基于IGH EtherCAT多域的过程数据传输方案研究

2023-01-06 13:07张玉龙张春雷王亚熙朱中庆
现代制造技术与装备 2022年11期
关键词:主从主站周期性

张玉龙 张春雷 王亚熙 朱中庆

(四川大学 机械工程学院,成都 610065)

EtherCAT技术具有实时性好、抗干扰能力强以及拓扑结构灵活等优势[1],广泛适用于机器人、机床以及半导体制造机器等领域。目前,EtherCAT主站技术主要有倍福的TwinCAT、Acontis、IGH、SOEM、KPA和RSM-ECAT[2]。其中,开源技术架构有EtherLAB推出的IGH EtherCAT和RT-LAB推出的SOEM。研究采用的G主站是基于IGH实现的EtherCAT主站方案。IGH EtherCAT提出了域(Domain)的概念,用来管理过程数据映射和管理交换过程数据对象(Process Data Object,PDO)的数据报结构。目前,使用的G主站使用一个域来进行映射管理所有从站的过程数据。

EtherCAT总线可以连接多个不同支持EtherCAT协议的伺服从站或者输入输出模块,而其中不同从站之间执行任务所需要的同步周期并不相同。当从站过多、过程数据量接近一以太网帧时,使用现有的数据传输方式将因为数据超帧无法实现对从站的配置而导致系统出现错误。此时,显示错误的信息为“EtherCAT ERROR:Failed receive FMMC clearing datagram”,结果是从站无法从PreOP转变到SafeOP直至OP。同时,在这种传输方案下,所有从站使用同一个周期进行数据交互,有些过程数据变化缓慢,不需要高的交换速度,导致带宽浪费,降低了从站控制的灵活性。

为了解决现有传输方案中数据超以太网帧时无法正常工作的问题,结合IGH原理提出新的传输方案,通过在主站侧创建多个域完成对从站的过程数据映射。

1 EtherCAT技术分析

1.1 EtherCAT基本原理

EtherCAT运行过程中,主站发送数据,数据帧从主站出发,依次通过每个从站节点再返回到主站[3]。主站是唯一允许发送帧的节点,从站只能转发数据帧,同时将主站发送给该从站的指令获取复制到内存区域,以及将需要发送给主站的数据放入数据帧。EtherCAT传输原理如图1所示。

图1 EtherCAT传输原理

从站的输入输出过程数据是通过域进行映射的。所有从站的过程数据由一个域进行映射的传输方式是目前G主站正在使用的,而通过将不同从站进行分组,映射到不同的域,然后周期性地交替发送不同从站组的过程数据,以避免数据帧超出以太网帧的限制。在周期性过程数据传输中,也会通过邮箱数据传输进行主从站配置。

1.2 EtherCAT数据传输过程分析

1.2.1 周期性过程数据传输

在周期性过程数据传输中,主站和从站有自由运行模式(简称Free Run模式)、同步于数据输入或输出事件模式(简称SM模式)和同步于分布时钟同步时间模式(简称DC模式)3种同步运行模式[4]。因为一般多采用DC模式或者SM模式,所以以这两种同步模式为基础来分析周期性过程数据传输。

EtherCAT数据帧到达从站后,从站设备收到一个逻辑寻址的EtherCAT数据子报文,ESC通过检查是否出现FMMU地址与数据帧数据地址对应的情况。若需要给该从站写入数据或需要从该从站读取数据,将该段数据复制到从站的RAM区域或者将SM3缓存区数据复制到数据帧[5]。此时,同步管理产生相应中断,通知应用层等待处理实时数据,利用同步信号保证所有从站的同步性。接收过程数据后,根据同步管理器分配对象的描述,将获取的过程数据对象赋值到从站的PDO应用对象中。

1.2.2 非周期性邮箱数据传输

EtherCAT非周期性数据传输也称为邮箱数据传输,用于配置周期性过程数据通信或者其他非周期性服务。通常邮箱数据通信只对应一个从站,报文采用设置寻址模式。EtherCAT数据帧到达从站后,对比地址与数据帧中的站点地址是否一致,一致则与从站内部RAM区域进行交换数据,通过工作计数器数值是否增加来判断是否成功读写命令[6]。获取数据后,根据协议规定进行数据解析,实现对非周期性过程数据的处理。

2 传输方案设计

在主从站之间建立通信,在进行数据传输前做好主从站之间的配置。采用的主站程序的初始化配置流程图,如图2所示。先请求EtherCAT主机,接着创建进程数据域domain(s)。为了能够进行周期性过程数据交换,至少需要创建一个过程数据域。一般采用一个域来进行映射和管理过程数据对象。进行必要的配置工作获取从站配置,如配置PDO、DC等[7]。应用层通过从站配置(预期的从站非实体从站)告知主站从站的拓扑结构(连接方式星型环形之类的连接)。参数有总线位置(别名和位置),一般别名设置为0,还包括生产商id和产品码。主站检查该位置处是否有一个匹配的实际从站设备,如果有,从站的相应配置将附加到实际的从站设备上进行配置。主站激活后,针对从站PDO的配置才会实际分配每个域的逻辑地址,域再对从站FMMU进行逻辑地址分配。主站激活后可以进入周期性任务。主从站进入OP状态后,从站能够接收输入数据,同时传递输入过程数据。

图2 主站初始化配置过程

2.1 从站增加过程数据量

考虑从站后续用途和测试需要,需要增加某一从站模块过程数据量,而新修改的从站需要有一个自己的xml文件,或者选择B1E的xml作为基础进行添加修改。B1E原使用RxPDO(0x1600)和TxPDO(0x1A00),共44 Bytes数据。增加0x1601和0x1A01作 为RxPDO2和TxPDO2,利 用xmlspy软件打开B1E的ESI.xml文件,修改Dictionary下的DataTypes和Objects,增加自定义的DT1601和DT1A01数据类型,同时在Objects增加若干PDO对象条目对象在0x1600、0x1601、0x1A00和0x1A01中。DT1C12和DT1C13都增加一个子项目,变成两个子项目。在0x1c12和0x1c13分别增加数据1601和1A01。在RxPDO和TxPDO元素下添加并修改PDO Entry,修改完成后,利用Twincat将新的ESI.xml加载到从站的EEPROM中,在Twincat中检查是否出现错误,并且是否能够进入OP。

2.2 G主站原有传输方案

主站启动后与从站建立联系,待进入OP状态后,进行周期性任务流程,即周期性读写数据并发送给各从站。受以太网帧的限制,过程数据要限制在1 300 Bytes以内,保证整个数据帧在1 516 Bytes内。原有传输方案PDO传输如图3所示。

图3 原有传输方案PDO传输

2.3 多域传输方案

为了在移植后的主站上控制较多从站,从站总过程数据量超过1 300 Bytes。在原有单帧无法顺利传输周期性数据的情况下,使用两个域管理映射从站。如图4所示,将从站分配给domain1和domain2两个域。主从站之间的初始化配置过程与原有方式类似,区别在于过程数据映射到两个域中,可以在两个数据帧中进行传输,因此可以避免多过程数据传输出现超帧的问题。由于两个域可以采取不同的周期进行传输,应用中尽可能利用带宽,减少因高频次数据交换可低频次交换数据造成的带宽浪费。

图4 多域传输方案PDO传输

3 测试与结果分析

根据新的需求修改主从站应用程序,运行应用程序即可启动主站,因为一般从站过程数据量不大。为了实现超以太网数据帧的效果,将B1E从站模块的过程数据量增加到500 Bytes。一方面需要保证从站能够进入OP状态,轴从站可以进行运动,另一方面通过ET2000和Wireshark抓包工具分析修改后主从站通信过程的实时性能否满足原有要求。主从站设置DC同步模式,同步周期设置为2 ms,轴从站设置为CSP模式。Wireshark抓取的数据报文是通过ET2000抓取的,每条报文有ET2000打上的时间戳,最小分辨率为1 ns。通过Wireshark抓取的报文周期,分析对比修改后的实时性能否满足要求,测试方案如图5所示。首先将ET2000串联到主从站之间,其次ET2000的千兆网口连接到PC端,再次PC端运行Wireshark网络分析工具,最后通过使用Wireshark对总线上的数据帧进行抓取,并将其存储在PC上以便进一步分析[8]。启动时,主站程序会记录主站端周期。为保证从站运行时和Wireshark抓包计算抖动有共同的基准位置,从进入OP后开始计算。

图5 测试方案

3.1 利用双域控制从站

先验证在移植后的主站上使用双域控制从站的可能性,以及其实时特性是否能够满足要求。验证时采用4台A1E,将其分成domain1映射一台A1E,domain2映射3台A1E。使用domain1的设置为任务1,使用domain2的设置为任务2,采取任务1和任务2同时执行、交替执行或者任务2每周期执行,任务1隔一周期执行一次,经验证此方法可行。此次,采取一次传输domain1映射的过程数据,一次传输domain1和domain2映射的数据,同时抓取domain1和domain2映射过程数据进行交替传输。

在前一步的基础上进行验证更多从站控制的可能性,利用多域控制的特点,解决总过程数据量加上其他子报文超出一以太网帧的情况。实验中,验证27台A1E加上1台B1E从站仍能够进入OP状态并且正常工作,再增加1台A1E就会使有些周期总数据量超过以太网帧的限制,出现EtherCAT错误。按照图4提到的传输方案进行实验验证,将28台A1E和B1E分别映射到domain1和domain2中。

3.2 性能对比分析

通过ET2000和Wireshark抓取数据帧,将进行周期性读写PDO的数据保存,并利用编写的程序导出,此时每两条数据帧时间戳的差值就是EtherCAT过程数据发送周期。单域目前只能实现控制27个A1E从站和1个B1E从站,每个A1E过程数据总数据量为30 Bytes,无法映射控制28台A1E和B1E的情况。使用双域按照多域传输方案进行映射从站并传输。这两种情况的抖动数值如图6、图7和表1所示。图6表明,主站在单域情况下的最大抖动在200 ns内。经过修改使用双域解决超帧问题时,主站抖动在6 000 ns内,见图7。可见,相对于单域进行传输,双域在数据实时性方面存在不足。

表1 单域传输和双域传输抖动情况对比

图6 单域映射27台A1E和B1E传输抖动

图7 双域映射28台A1E和B1E传输抖动

4 结语

本文研究了多域映射从站控制下的主站应用程序的流程和周期任务的实现,以及增加从站模块B1E的过程数据量,利用原有已开发的主站进行验证实验,验证通过双域控制的可行性和通过双域控制可以在以太网帧长度限制下尽可能控制更多的从站以实现传输的灵活性,同时实现了IGH设计domain节约带宽的需求。与原有主站控制相比,它适用于一些有实时性要求的场合,后续会根据抖动情况做进一步改进。

猜你喜欢
主从主站周期性
慢速抗阻训练:周期性增肌的新刺激模式
Antarctica's pretty pink snow
基于S7-1200 PLC的DP总线通信技术在马里古伊那水电站泄洪冲沙孔门机上的应用
数列中的周期性和模周期性
一类整数递推数列的周期性
FANUC系统PROFIBUS主从功能应用
EtherCAT主站与主站通信协议的研究与实现*
多表远程集抄主站系统
县级配电自动化主站系统的设计
如何快速解答抽象函数对称性与周期性的问题