关于基于SII接口的EtherCAT网络配置方案的设计
EtherCAT是由BECKHOFF公司提出的一种高性能工业以太网技术[1],它采用标准以太网数据帧和符合以太网标准IEEE802.3的物理层,具有数据传输速度高、实时性好、拓扑灵活和实施费用低的优点,逐步成为工业以太网技术研究的热点。
EtherCAT技术已成为国际标准IEC61158的一部分,被广泛的应用于同步控制、运动控制和材料加工控制等行业[3,4]。本文研究了常用的EtherCAT网络配置方案,分析了其不足,提出了一种基于从站信息接口(SlaveInformationInterface,SII)的EtherCAT网络配置方案,并对方案进行实现,最后通过实验验证了其可行性。
目前常用的EtherCAT网络配置方案大多基于可扩展标记语言(eXtensibleMarkupLanguage,XML)在这种方案中EtherCAT配置工具根据从站提供的EtherCAT从站信息(EtherCATSlaveInformation,ESI)文件和网络拓扑结构,生成一个XML格式的EtherCAT网络信息(EtherCATNetworkInformation,ENI)文件。ENI文件描述了网络的拓扑结构以及从站设备的初始化命令和配置命令。主站获取ENI文件,并根据其网络配置信息进行EtherCAT网络配置。
这种方案具有良好的通用性和扩展性,但也有着诸多不足。一方面,该配置方案需要额外的配置软件进行协助,增加了研发的工作量。同时,ENI文件依据ESI文件生成,所以一个新的模块出现就要向EtherCAT配置软件的库文件中添加一个新的ESI文件,使得整个配置操作较为复杂。文献[5]中设计了一种简单EtherCAT主站,可以简化配置过程,但是仍然需要上位机进行协助。
另一方面,XML格式的文件解析比较复杂。XML格式文本是W3C组织为Web数据储存和交换制定的一种文本格式,其解析复杂度较高,尤其是在系统资源并不丰富的嵌入式主站系统中,XML的解析压力将面临更为严峻的挑战。文献[6]提出了一种快速XML解析方案,但是其对内存要求较大,并不能完全解决上述问题。
1、基于SII的配置方案
为了解决传统方案中存在的问题,本文提出并设计了一种基于SII的EtherCAT配置方案。SII是从站信息接口,它规定了从站信息在EEPROM中的存储格式,主站可以根据SII中的信息完成对从站的配置。该配置方案如图1所示,在配置开始时,主站扫描从站,获取从站的拓扑,并顺序读取所有从站的设备信息,然后生成配置命令,从而完成对EtherCAT网络及所有从站的配置操作。与传统方案相比,本方案中由主站获取从站的拓扑结构并生成配置信息,全程无需专门的配置工具软件参与,降低了配置方案的开发成本;主站直接从SII中获取从站的信息,不需要XML参与配置,省却了解析XML的时间,极大地提高了配置效率。
该配置方案包括3个操作步骤:(1)扫描从站,根据获取的响应信息计算从站连接的拓扑结构;(2)根据从站的拓扑结构,依次读取从站信息;(3)生成配置信息,并对从站进行配置。
1.1计算从站拓扑结构
在目前常用的EtherCAT网络配置方案中,从站的拓扑结构是由配置工具软件生成并下发到从站。而在基于SII的配置方案中,由于没有配置工具软件的参与,主站采用一种递归的算法计算从站的拓扑结构。
为了读者更好地理解从站拓扑结构的计算方法,先简单介绍EtherCAT数据帧如何在从站中传输。EtherCAT从站结构如图2所示,从站最多支持4个端口,从站会根据端口是否存在连接自动打开或关闭端口。若连接存在,则打开端口,否则关闭端口。若端口打开,流入该端口的数据帧被发送给其他从站,在其他从站处理完成后返回该端口;若端口闭合,数据帧会直接流向从站的下一个端口。0端口是从站数据的输入端口,从站一旦接入网络,端口0一定处于打开的状态,其他3个端口都有可能关闭。因此数据帧在从站中传输顺序是0端口、数据帧处理单元、3端口、1端口、2端口、0端口,最后由0端口离开从站。图3介绍了数据帧在网络中的传输过程。
根据上面的描述,可以将EtherCAT从站抽象成三叉树上的一个结点。如图4(a)所示,Port0作为从站结点的输入端口,而Port3、Port1和Port2作为输出端口,且树遍历顺序是Port3、Port1和Port2。图3中的网络拓扑结构可抽象图4(b)所示的三叉树。因此,计算EtherCAT网络的拓扑结构可以抽象成对三叉树的深度优先遍历[7]。因为工控网络中节点数量较少,可以采用递归算法实现,因此本文采用递归算法实现EtherCAT网络拓扑结构的计算[8]。
在使用递归算法计算从站拓扑结构前,仍需要进行3个步骤获取必要条件:
(1)获取网络中从站的个数
从站的数据帧处理单元在成功处理完数据帧之后,会把数据帧计数位的值加1,表示处理成功。利用此特性,主站发送广播数据帧,所有从站都会把数据帧的计数位的值加1,因此数据帧计数位的值就代表了从站个数,主站读取返回数据帧的计数位就可以获取从站的个数。
(2)获取从站各个端口连接状态
从站使用专用的寄存器记录从站端口的连接状态,主站使用顺序读取命令,读取各个从站记录端口连接状态的寄存器,获取从站端口的连接状态。
(3)排列从站顺序
按照从站的顺序寻址即数据帧在从站的处理顺序给从站进行排序。图3中的从站按照此方法排列后的顺序是A、B、C、D。
图5所示为数据结构存储从站信息,name表示从站的名字,port0、port1、port2和port3采用相同的结构表示从站端口的情况,linkstatus表示端口是否存在连接,之后的name代表与该端口连接的从站的名字。port0比较特殊,因为其作为从站输入端口,即连接树的父结点,所以一直处于连接状态。
在计算从站拓扑结构时,按照顺序将各个从站的连接信息存在结构体数组中,然后从数组中第一个从站开始进行计算。对每一个从站首先在port0中记录其上层从站的名字,然后按照port3、port1和port2的顺序扫描从站的各个端口的连接情况,若某端口处于连接状态,且未记录其子结点,则数组中其后port0为空的从站是其子结点,此时进入下一层,递归计算子结点的连接情况。当计算完成时,所有从站的连接情况都已经明确,也就完成了从站拓扑结构的计算。
1.2读取从站信息
要完成EtherCAT网络的配置,除了需要获取从站的拓扑结构外,还需要各个从站的设备信息。在传统方案中,从站信息是由ESI文件提供的,而在本方案中主站通过访问从站的EEPROM获取配置信息。本节将介绍基于SII的配置方案主站如何读取从站的设备信息。
EEPROM中的信息结构如图6所示,0~64地址存储的是从站结构信息,从地址64处开始存储的是分类信息[9]。所有分类信息使用相同的数据结构,但长度不定。分类信息的数据结构如图7所示,包括2个字节的信息类型、2个字节的数据长度和指定长度的数据内容。
在基于SII的配置方案中,主站按照图8中所示的流程读取从站信息。主站读取从站分类信息时,从第一条分类信息开始,根据类型名查找要读的信息,直到找到要读取的信息,并将信息存储到对应结构体。
1.3生成网络信息
EtherCAT直接使用标准以太网数据帧,以太网帧的数据区由一个或多个EtherCAT子报文组成,每个子报文中包含从站的地址和数据。EtherCAT网络中主站与从站通过数据帧进行数据交互,EtherCAT数据帧采取串行转发方式,每个EtherCAT数据帧经过所有的从站。数据帧到达某个从站时,从站根据EtherCAT数据帧中的地址和命令,将数据从EtherCAT数据帧中取出或将数据写入EtherCAT数据帧中。由上文可知,EtherCAT网络中主站访问从站就必须知道从站的地址,主站与从站进行数据交互就要设置从站的数据区映射。
EtherCAT从站地址的分配主要是配置设备地址和逻辑地址。设备地址是一个两字节的地址,主站用它来识别各个从站。在本方案中设备地址是从0X1000开始,按照连接顺序依次递增进行,给每个从站分配设备地址。逻辑地址并不是单独定义的,而是使用从站数据在主站数据区中的地址。使用逻辑地址时,从站中现场总线内存管理单元(FieldbusMemoryManagementUnit,FMMU)将从站本地物理存储映射到主站的逻辑地址。在本方案配置过程中,主站根据从站EEPROM中过程数据对象(ProcessDataObject,PDO)分类信息计算出从站的数据长度和从站物理地址,然后按照顺序在数据区中为每个从站分配对应的长度的存储区,最后根据计算结果配置FMMU寄存器。
EtherCAT从站数据区的配置内容主要为配置存储同步管理器(SyncManager,SM)。SM通过硬件对数据区的所有访问进行控制,使得数据区不会被双方同时访问,保证了主站与从站应用数据交换的一致性和安全性。在本方案配置过程中,主站读取从站EEPROM中的SM类型信息,计算出SM控制数据区的地址、大小和控制模式,并配置相应寄存器。
2、方案测试
为验证方案的可行性,在Ubuntu平台上实现了一个采用SII配置方案的精简EtherCAT主站。该精简EtherCAT主站能够完成从站配置,以及主从站之间的数据交换。测试系统结构如图9所示。
在测试系统中包含有6个BECKHOOF公司生产的EtherCAT从站,分别是EK1100、EL1008、EL2008、EL3054、EL4024和EK1110。其中EL1008和EL3054分别是数字输入和模拟输入,EL2008和EL4024分别是数字输出和模拟输出。
在测试中,通过检查所有从站的状态和周期数据交换功能来判断EtherCAT网络配置是否成功。为了方便分析从站状态,使用Wireshark抓取EtherCAT数据帧分析从站状态,抓取到数据帧如图10所示。图10框中的数据是获取到从站的状态,它显示所有从站都处于OP状态,说明从站状态转换成功,本方案成功配置了EtherCAT网络。
3、结论
目前常见的EtherCAT网络配置方案使用XML文件作为配置信息,存在研发复杂和效率较低的问题。为了解决上述不足,本文研究了EtherCAT网络的配置过程,提出了一种基于SII接口的EtherCAT网络配置方案。该方案使用从站SII接口中提供的信息,计算生成EtherCAT网络配置方案。通过与其他常见方案的比较发现,基于SII接口的EtherCAT网络配置方案实现简便,能够提高配置效率且实现较容易,因此具有较高的应用价值。