前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >有“贝”而“莱” 强势围观 | 编码器多系统共享 003

有“贝”而“莱” 强势围观 | 编码器多系统共享 003

作者头像
剑指工控
发布2021-11-05 15:07:04
3820
发布2021-11-05 15:07:04
举报
文章被收录于专栏:剑指工控
JZGKCHINA

工控技术分享平台

尊重原创 勿抄袭

勿私放其他平台

原创投稿

003

编码器多系统共享

李文帅

一台设备 由于功能开发需求,如涉及到同时使用 2个或多个 贝加莱 PLC ,并且每个系统都需 要各随同一个主轴位置运行,除了安装多编码器外可通过 PLC 之间 利用 Powerlink通讯 实现编码器位置时传输 ;这种方案可实现系统实时通讯,并且节约了成本 。

此文档主要是涉及到 工程配置、数据 通讯以及编码器数据无丢失的实时传送 转化等内容 。

一、PLC通讯方式

多PLC之间实现数据通讯交互,可以通过贝加莱的Powerlink通讯方式、Profibus通讯、Profinet通讯、Ethercat通讯等;基于贝加莱的PLC最佳是通过Powerlink通讯,这种方案只需要增加一个Powerlink从站通讯模块,同时通过工程配置即可完成数据的实时传输。

二、工程组态配置

工程举例如下:

1) 创建一个 AS工程 PLC_Project

2) 工程中创建两个配置:Master/Slave

Master中配置一个 APC910的工控机;

Slave中配置一个 X20CP1586的PLC

3) 在实现两个系统的数据通讯, Master配置作为主站,Slave配置作为从站;

在 Slave配置中增加贝莱通讯模块X20IF1082

对于 X20IF1082配置重点注意

a) Oper Operating mode mode: POWERLINK V2

b) Cycle time : 400 微秒 循环时间必须保持主从站一致

c) 在 I/O Data 中增加要通讯的数据道,类型根需求选择 中增加要通讯的数据道,类型根需求选择

如增加通道 Channel 1 类型 REAL

数据传输方向需要选择, Output/Input

4) Master配置中增加的站点

a) PLK 增加站点,增加贝莱的通讯控制组件 POWERLINK V2 intelligent Controller:epl_icn

b) epl_icn配置中重点是选择对应的名称以及通讯接口

c) 配置完成后双击 epl_icn可查看通讯的 I/O Mapping窗口,配置对应的数据

三、编码器数据的传输 实现主轴共享

以上工程配置建立了数据的通道,在通道中增加相应的数据即可在主从站之间实现数据的交互;对于编码器数据的交互,举例如下:

编码器为单圈绝对值编码器,且一数据为 36000 Units;通过以下编程控制可实现编码器从Slave传送到Master;

1)对于编码器的数据传输最佳事2的整数倍,则可通过编码器轴与虚轴同步,将0~36000转换成0~32768

a)创建一个虚轴与编码轴同步,同步模式为直接同步,确定主从轴;

b)创建曲线Gerade,曲线放入循环配置;用MC_CamTableSelect 功能块选择曲线Gerade

曲线如下:

c)利用 MC_GetCamSlavePosition功能块读取当前编码器位置,根据曲线获取到当前从轴需要的位置

d) 根据获取到的从轴位置利用MC_MoveAbsolute功能块运行虚轴到对应位置

e) 完成以上动作后使虚轴与编码器进行同步(MC_CamIn),同步后就可以通过Slave配置的 PLK 通道将此数据传送到主站

2) 编码器数据在Master中通过的读取道获到数值,对通讯数据转换成需要的编码器数据

a) 获去通道数据,关联变量

b) 在编写程序中创建三个UDINT变量,对得到的数据进行转存处理,初始化段对三个变量赋值

udiEncorderTemp=((DINT)grMainEncorderPos)*256*2048/4

udiEncorderOld=((DINT)grMainEncorderPos)*256*2048/4

udiEncorderRef=(DINT)grMainEncorderPos;

c) 初始完成后,将获取到的数据处理利用MC_BR_CyclicWrite功能块,将此数据写入到虚轴的一个ID上如4096,数据类型ncPAR_TYP_DINT;

在程序的循环执行时,需对获取到的数据做如下处理

udiEncorderTemp=((DINT)grMainEncorderPos)*256*2048/4

udiEncorderRef=UdiEncorderRef+(udiEncorderTemp-udiEncorderOld)/(256*2048/4);

udiEncorderOld=udiEncorderTemp;

d) 创建一个32768到36000转换的曲线 Gerade01,选择此曲线为虚轴选择运行的线

曲线如下:

e) 虚轴同步主轴ID,而非主轴,主轴ID (MasterParID)可设定为上述写入的 4096 , 也可根据需求对的数进行滤波处理,处理后的数据作为虚轴同步的主轴ID;

利用MC_CAMIN功能块,同步模式为7;

f)进入同步状态后,根据传输得到的数据计算当前编码器位子,计算得出偏移量rShift-grMainEncorderPos*36000/32768-虚轴当前位置;

执行MC_BR_Offset功能块,重要参数设定如下

MC_BR_Offset.Shift:=rShift;

MC_BR_Offset.ApplicationMode:=1;

MC_BR_Offset.ShiftMode:=0;

在 offset执行完成后,此虚轴的位置将于Slave中的编码器轴一致;Master配置中即可实现将其他轴跟随此虚轴进行同步控制 ;

通过以上工程的配置, 组态 ,控制程序的编写即可实现多 PLC 之间的编码器共享,对于需要同步控制等工程项目来说比较实用,并且节约成本数据通讯的 稳定性及安全系数较高。

END

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 剑指工控 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档