小程序三方平台开发: 解析小程序开发的未来趋势和机遇
938
2022-10-16
有“贝”而“莱” 强势围观 | 编码器多系统共享 003
勿私放其他平台
写在前面
本年度专为工业自动化爱好者而生的“2021贝加莱橙色灯塔杯技术最强音挑战赛”已经接近尾声,感谢合作伙伴和技术粉丝们的厚爱,感谢大家的踊跃参与!
The Voice of B&R Tech技术最强音竞赛
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
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~