《电子技术应用》
您所在的位置:首页 > 测试测量 > 设计应用 > 基于SII接口的EtherCAT网络配置方案设计
基于SII接口的EtherCAT网络配置方案设计
2017年电子技术应用第12期
南 扬1,2,丰大军2,赵德政2,王 皓2
1.西安电子科技大学 通信工程学院,陕西 西安710071;2.华北计算机系统工程研究所,北京100083
摘要: 介绍了EtherCAT工业以太网技术及常用EtherCAT网络配置方案,分析了常用配置方案所存在的问题,针对EtherCAT配置方法开展研究,提出了一种基于从站信息接口(SII)的EtherCAT网络配置方案。通过设计实验对该配置方案进行测试,实验结果表明该方案能有效提高EtherCAT网络配置的效率。
中图分类号: TP29
文献标识码: A
DOI:10.16157/j.issn.0258-7998.179021
中文引用格式: 南扬,丰大军,赵德政,等. 基于SII接口的EtherCAT网络配置方案设计[J].电子技术应用,2017,43(12):69-72.
英文引用格式: Nan Yang,Feng Dajun,Zhao Dezheng,et al. Design of EtherCAT network configuration based on SII interface[J].Application of Electronic Technique,2017,43(12):69-72.
Design of EtherCAT network configuration based on SII interface
Nan Yang1,2,Feng Dajun2,Zhao Dezheng2,Wang Hao2
1.School of Telecommunication Engineering,Xidian University,Xi′an 710071,China; 2.National Computer System Engineering Research Institute of China,Beijing 100083,China
Abstract: This paper introduces the technology of EtherCAT industrial Ethernet. The common scheme of EtherCAT network configuration is analyzed. The way of EtherCAT configuration is studied. A method of EtherCAT configuration based on slave information interface(SII) is proposed to deal with the problem that exists in the common scheme. The experiments are designed for testing the feasibility of the scheme. The result proves that the scheme has excellent performance.
Key words : industrial Ethernet;EtherCAT;slave information interface;network configuration

0 引言

    EtherCAT是由BECKHOFF公司提出的一种高性能工业以太网技术[1],它采用标准以太网数据帧和符合以太网标准IEEE 802.3的物理层,具有数据传输速度高、实时性好、拓扑灵活和实施费用低的优点,逐步成为工业以太网技术研究的热点[2]

    目前,EtherCAT技术已成为国际标准IEC61158的一部分,被广泛的应用于同步控制、运动控制和材料加工控制等行业[3,4]。本文研究了常用的EtherCAT网络配置方案,分析了其不足,提出了一种基于从站信息接口(Slave Information Interface,SII)的EtherCAT网络配置方案,并对方案进行实现,最后通过实验验证了其可行性。

    目前常用的EtherCAT网络配置方案大多基于可扩展标记语言(eXtensible Markup Language,XML)在这种方案中EtherCAT配置工具根据从站提供的EtherCAT从站信息(EtherCAT Slave Information,ESI)文件和网络拓扑结构,生成一个XML格式的EtherCAT网络信息(EtherCAT Network Information,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的时间,极大地提高了配置效率。

ck6-t1.gif

    该配置方案包括3个操作步骤:(1)扫描从站,根据获取的响应信息计算从站连接的拓扑结构;(2)根据从站的拓扑结构,依次读取从站信息;(3)生成配置信息,并对从站进行配置。

1.1 计算从站拓扑结构

    在目前常用的EtherCAT网络配置方案中,从站的拓扑结构是由配置工具软件生成并下发到从站。而在基于SII的配置方案中,由于没有配置工具软件的参与,主站采用一种递归的算法计算从站的拓扑结构。

    为了读者更好地理解从站拓扑结构的计算方法,先简单介绍EtherCAT数据帧如何在从站中传输。EtherCAT从站结构如图2所示,从站最多支持4个端口,从站会根据端口是否存在连接自动打开或关闭端口。若连接存在,则打开端口,否则关闭端口。若端口打开,流入该端口的数据帧被发送给其他从站,在其他从站处理完成后返回该端口;若端口闭合,数据帧会直接流向从站的下一个端口。0端口是从站数据的输入端口,从站一旦接入网络,端口0一定处于打开的状态,其他3个端口都有可能关闭。因此数据帧在从站中传输顺序是0端口、数据帧处理单元、3端口、1端口、2端口、0端口,最后由0端口离开从站。图3介绍了数据帧在网络中的传输过程。

ck6-t2.gif

ck6-t3.gif

    根据上面的描述,可以将EtherCAT从站抽象成三叉树上的一个结点。如图4(a)所示,Port0作为从站结点的输入端口,而Port3、Port1和Port2作为输出端口,且树遍历顺序是Port3、Port1和Port2。图3中的网络拓扑结构可抽象图4(b)所示的三叉树。因此,计算EtherCAT网络的拓扑结构可以抽象成对三叉树的深度优先遍历[7]。因为工控网络中节点数量较少,可以采用递归算法实现,因此本文采用递归算法实现EtherCAT网络拓扑结构的计算[8]

ck6-t4.gif

    在使用递归算法计算从站拓扑结构前,仍需要进行3个步骤获取必要条件:

    (1)获取网络中从站的个数

    从站的数据帧处理单元在成功处理完数据帧之后,会把数据帧计数位的值加1,表示处理成功。利用此特性,主站发送广播数据帧,所有从站都会把数据帧的计数位的值加1,因此数据帧计数位的值就代表了从站个数,主站读取返回数据帧的计数位就可以获取从站的个数。

    (2)获取从站各个端口连接状态

    从站使用专用的寄存器记录从站端口的连接状态,主站使用顺序读取命令,读取各个从站记录端口连接状态的寄存器,获取从站端口的连接状态。

    (3)排列从站顺序

    按照从站的顺序寻址即数据帧在从站的处理顺序给从站进行排序。图3中的从站按照此方法排列后的顺序是A、B、C、D。

    图5所示为数据结构存储从站信息,name表示从站的名字,port0、port1、port2和port3采用相同的结构表示从站端口的情况,linkstatus表示端口是否存在连接,之后的name代表与该端口连接的从站的名字。port0比较特殊,因为其作为从站输入端口,即连接树的父结点,所以一直处于连接状态。

ck6-t5.gif

    在计算从站拓扑结构时,按照顺序将各个从站的连接信息存在结构体数组中,然后从数组中第一个从站开始进行计算。对每一个从站首先在port0中记录其上层从站的名字,然后按照port3、port1和port2的顺序扫描从站的各个端口的连接情况,若某端口处于连接状态,且未记录其子结点,则数组中其后port0为空的从站是其子结点,此时进入下一层,递归计算子结点的连接情况。当计算完成时,所有从站的连接情况都已经明确,也就完成了从站拓扑结构的计算。

1.2 读取从站信息

    要完成EtherCAT网络的配置,除了需要获取从站的拓扑结构外,还需要各个从站的设备信息。在传统方案中,从站信息是由ESI文件提供的,而在本方案中主站通过访问从站的EEPROM获取配置信息。本节将介绍基于SII的配置方案主站如何读取从站的设备信息。

    EEPROM中的信息结构如图6所示,0~64地址存储的是从站结构信息,从地址64处开始存储的是分类信息[9]。所有分类信息使用相同的数据结构,但长度不定。分类信息的数据结构如图7所示,包括2个字节的信息类型、2个字节的数据长度和指定长度的数据内容。

ck6-t6.gif

ck6-t7.gif

    在基于SII的配置方案中,主站按照图8中所示的流程读取从站信息。主站读取从站分类信息时,从第一条分类信息开始,根据类型名查找要读的信息,直到找到要读取的信息,并将信息存储到对应结构体。

ck6-t8.gif

1.3 生成网络信息

    EtherCAT直接使用标准以太网数据帧,以太网帧的数据区由一个或多个EtherCAT子报文组成,每个子报文中包含从站的地址和数据。EtherCAT网络中主站与从站通过数据帧进行数据交互,EtherCAT数据帧采取串行转发方式,每个EtherCAT数据帧经过所有的从站。数据帧到达某个从站时,从站根据EtherCAT数据帧中的地址和命令,将数据从EtherCAT数据帧中取出或将数据写入EtherCAT数据帧中。由上文可知,EtherCAT网络中主站访问从站就必须知道从站的地址,主站与从站进行数据交互就要设置从站的数据区映射。

    EtherCAT从站地址的分配主要是配置设备地址和逻辑地址。设备地址是一个两字节的地址,主站用它来识别各个从站。在本方案中设备地址是从0X1000开始,按照连接顺序依次递增进行,给每个从站分配设备地址。逻辑地址并不是单独定义的,而是使用从站数据在主站数据区中的地址。使用逻辑地址时,从站中现场总线内存管理单元(Fieldbus Memory Management Unit,FMMU)将从站本地物理存储映射到主站的逻辑地址。在本方案配置过程中,主站根据从站EEPROM中过程数据对象(Process Data Object,PDO)分类信息计算出从站的数据长度和从站物理地址,然后按照顺序在数据区中为每个从站分配对应的长度的存储区,最后根据计算结果配置FMMU寄存器。

    EtherCAT从站数据区的配置内容主要为配置存储同步管理器(SyncManager,SM)。SM通过硬件对数据区的所有访问进行控制,使得数据区不会被双方同时访问,保证了主站与从站应用数据交换的一致性和安全性。在本方案配置过程中,主站读取从站EEPROM中的SM类型信息,计算出SM控制数据区的地址、大小和控制模式,并配置相应寄存器。

2 方案测试

    为验证方案的可行性,在Ubuntu平台上实现了一个采用SII配置方案的精简EtherCAT主站。该精简EtherCAT主站能够完成从站配置,以及主从站之间的数据交换。测试系统结构如图9所示。

ck6-t9.gif

    在测试系统中包含有6个BECKHOOF公司生产的EtherCAT从站,分别是EK1100、EL1008、EL2008、EL3054、EL4024和EK1110。其中EL1008和EL3054分别是数字输入和模拟输入,EL2008和EL4024分别是数字输出和模拟输出。

    在测试中,通过检查所有从站的状态和周期数据交换功能来判断EtherCAT网络配置是否成功。为了方便分析从站状态,使用Wireshark抓取EtherCAT数据帧分析从站状态,抓取到数据帧如图10所示。图10框中的数据是获取到从站的状态,它显示所有从站都处于OP状态,说明从站状态转换成功,本方案成功配置了EtherCAT网络。

ck6-t10.gif

3 结论

    目前常见的EtherCAT网络配置方案使用XML文件作为配置信息,存在研发复杂和效率较低的问题。为了解决上述不足,本文研究了EtherCAT网络的配置过程,提出了一种基于SII接口的EtherCAT网络配置方案。该方案使用从站SII接口中提供的信息,计算生成EtherCAT网络配置方案。通过与其他常见方案的比较发现,基于SII接口的EtherCAT网络配置方案实现简便,能够提高配置效率且实现较容易,因此具有较高的应用价值。

参考文献

[1] 蔺辉,田新锋,马彩文,等.基于Beckhoff嵌入式PC控制器的步进电机群控系统设计[J].电子技术应用,2009,35(9):129-131.

[2] 刘喆,郇极,刘艳强.基于XML的EtherCAT工业以太网协议解析技术[J].北京航空航天大学学报,2011,37(9):1086-1090.

[3] 吴丽菲.EtherCAT在实时系统下的实现[D].广州:华南理工大学,2014.

[4] 朱永东,李彬.浅析提高工业以太网的可靠性和稳定性[J].电子技术与软件工程,2013(18):37.

[5] Zhou Tong,Hu Jingtao.Design and realization of EtherCAT master[C].Electronic and Mechanical Engineering and Information Technology(EMEIT),2011.

[6] 张运嵩.一种快速的非提取式XML解析器的设计与实现[D].苏州:苏州大学,2010.

[7] 唐青松.深度优先算法在创建树形结构中的应用研究[J].计算机技术与发展,2014(9):226-229.

[8] 魏斌,马继辉,牛虎.基于递归算法的树型结构图的设计与实现[J].计算机应用与软件,2011(1):96-98.

[9] 郇极,刘艳强.工业以太网现场总线EtherCAT驱动程序设计及应用[M].北京:北京航空航天大学出版社,2010.



作者信息:

南  扬1,2,丰大军2,赵德政2,王  皓2

(1.西安电子科技大学 通信工程学院,陕西 西安710071;2.华北计算机系统工程研究所,北京100083)