资讯 > 正文

工业以太网EtherCAT冗余和热插拔技术

发布时间:2010-06-07 作者:郇极,肖文磊,刘艳强

        工业以太网是改进的标准以太网,其中冗余 技术是提高以太网系统可靠性和可维护性最有效 的手段之一[ 1 ] . EtherCAT( Ethernet for Control and Automation Technology)是工业以太网的一种,它 很好解决了以太网的实时性问题,其从站控制芯 片ESC ( EtherCAT Slave Controller)提供了环回通 信机制. 本文研究了工业以太网EtherCAT的冗余 控制、热插拔技术及故障点快速诊断方法,设计并 实现了环型拓扑下的链路冗余控制系统. 开发了 EtherCAT链路冗余主站驱动程序,并通过实验分 析和验证了EtherCAT冗余后系统的性能.
        1 EtherCAT工作原理
        EtherCAT是一种实时工业以太网技术,已成 为国际标准IEC 61158212, IEC 6178422 以及 ISO1574524的一部分[ 2 ] .

        图1为EtherCAT的基本工作原理. 介质访问控制(MAC,Media Access Control)使用主从模式. 主站发送以太网帧给各从站,从站从数据帧中抽 取数据或将数据插入数据帧,然后将该数据帧传 输到下一个EtherCAT从站. 最后一个EtherCAT 从站发回经过完全处理的报文,并由第1个从站 作为响应报文发送给主站. 主站使用标准的以太 网接口卡或具有以太网接口的嵌入式工业控制计 算机, EtherCAT从站使用专用的从站控制芯片 ESC.
        ESC采取接收转发机制,以太网帧可以双向 通行,但只有以太网帧由下行电报方向进入时,相 应的报文才能得到处理. 如果指定转发的网口未 连接, ESC自动将以太网帧沿原入口径返回. EtherCAT数据帧使用以太网V2 格式的 MAC帧,以太类型为0x88A4. 图2为EtherCAT数 据链路层帧结构. 一个EtherCAT以太网数据帧包 含一个或多个EtherCAT子报文,每个子报文寻址 独立的设备或存储区域.
      

        每个EtherCAT子报文包括子报文头、数据域 和相应的工作计数器(WKC,Working Counter) , 子报文寻址到从站节点并交换数据后,工作计数 器将被增加,用以记录该子报文的处理状态.
        子报文头中, 8 bit命令字节,指定了子报文类 型(读写类型,寻址类型) ; 8 bit索引号给出子报 文编码; 32 bit的子报文地址指定了对从站的操作 地址,寻址类型定义了寻址方式; 8 bit长度用以指 示报文数据区的字节数; R为4 bit的保留位; 4 bit M表示本报文是否为最后一个报文; 16 bit中断目 前保留.
        2 EtherCAT冗余和热插拔技术要求
        2. 1 拓扑结构
        冗余以太网的拓扑结构包括网络型拓扑、环 型拓扑以及混合型拓扑[ 3 ] . 对于一般的工业以太 网系统,网络型和混合型拓扑过于复杂,环型拓扑 非常有效而且实用. 本文研究环型拓扑的冗余技 术,消除单点故障对系统产生的影响.
        环型结构的信息流在网中是沿固定方向流动 的. 由于环型结构中出现一个节点故障将会影响 全网,要提高可靠性,需采用双向环结构,使环具 有自愈功能,即在断点处自动环回[ 4 ] , ESC从站 控制器具有这种自动环回功能.
        EtherCAT冗余技术采用环型冗余结构,也就 是将最后一个ESC节点连接到主站. 要实现这个 功能,需要主站具有2个以太网接口,见图3.

        2. 2 单点故障
        环形冗余链路仅具备双重冗余,因此只能应
        对单点故障. 单点故障主要有以下几种可能情况: 1) 网口故障,包括主站网卡本身故障和连接 在网卡上的链路故障;
        2) 链路故障,指从站节点之间的链路存在断 线;
        3) 节点故障,指环路中某节点出现故障,导 致帧转发功能失效. 在此情况下,发生故障的节点 的失效不认为是整个系统的失效. 这种情况也可 能发生在需要不断电情况下更换一个从站节点的 场合,通常也称为“热插拔”.
        2. 3 EtherCAT链路冗余主站
        EtherCAT主站结构如图4所示,其中Ether - CAT主站驱动实现了网卡驱动与上层控制任务 的交互. 冗余机制不应影响应用层控制任务的性 能和功能. 在本文系统设计中,将常规EtherCAT 主站驱动程序做了修改,加入链路冗余机制,对上 层应用屏蔽了冗余信息和操作.

        在EtherCAT主站驱动程序中,向上层应用的 接口主要为1个发送队列(用于存放控制任务要 发送的EtherCAT帧)和1个接收队列(用于存放 处理过后返回的EtherCAT帧). 本文设计的冗余 机制旨在实现当系统处于任何正常或容错运行状 态下这2个帧队列都与网口和网络状态无关.
        3 冗余系统设计
        3. 1 冗余帧传播机制
        冗余主站设计如图4所示,主站具有A 和B 2 个网口,每个网口均具备发送和接收以太网帧的 功能.

        根据故障情况,图5中列出了冗余系统正常 工作和出现各种单点故障时的帧传播策略:
        1) 正常情况时,发送帧交由A 网口发送, 经 过从站节点的遍历,经B 网口接收,进接收队列;
        2) A 网口故障时, 发送帧交由B 网口发送, 反向到达第1 个从站节点, 以原链路环回, 经B 网口接收后,进接收队列;
        3) B 网口故障时, 发送帧交由A 网口发送, 到达最后一个从站节点, 以原链路环回, 经A 网 口接收后,进接收队列;
        4) 出现链路故障(或热插拔)时, 发送帧交 由A 网口发送, 遍历至故障点处环回, 经A 网口 接收,交由B 网口发送, 从另一个方向遍历至故 障点处环回,经B 网口接收后,进接收队列;
        5) 出现节点故障时, 发送帧交由A 网口发 送,遍历至故障点处环回,经A 网口接收, 交由B 网口发送,从另一个方向遍历至故障点处环回,经 B 网口接收后,进接收队列.
        3. 2 故障点诊断
        发生网口故障时, 能够确定故障点在主站接 口上;而在发生链路故障和节点故障时,则需侦听 A网口和B 网口的接收帧,结合数据帧中子报文 的工作计数器实现.
        每个子报文最后具有一个WKC,在通过从站 节点时,如果为该从站的子报文,WKC将加1 (也 有一些类型的报文增加值大于1). 故障点诊断规 则如下:
        首先,根据读取网口状态判断是否出现故障 及故障类型. 如果A 网口或B 网口状态为未连接 或连接出错, 则表明出现了网口故障; 如果A 网 口接收到了环回的帧, 则表明为链路故障或节点 故障;否则,表明系统正常.
        然后,对A 网口和B 网口的接收帧进行侦听 和WKC分析. 根据子报文的报文指令类型,以及 子报文的WKC值, 可以判断出该子报文是否得 以执行. 从而, 检测出A 网口和故障点之间离故 障点最近的有效节点及B 网口和故障点之间离 故障点最近的有效节点.
        最后,可以判断出,故障点出现在2个有效节 点之间的链路或节点上.
        4 冗余主站的实现
        冗余EtherCAT主站驱动程序采用WinPcap 软件开发包,实现EtherCAT帧的收发. WinPcap 是Windows平台下一个免费、公共的网络访问系 统,为Win32 应用程序提供访问网络底层的能 力.
        在程序底层定义了一个设备类,用于与硬件 接口交互. 在该设备类中定义了一个网络设备结 构体指针链表,用以指向系统中所用到的网卡设 备. 在该类中定义了一个先入先出的队列,用以存 储接收环回的EtherCAT帧,并提供了一个发送原 始帧的接口函数(发送队列在上层定义).
        程序启动时,该设备类根据主站描述文件中 提供的冗余网卡的MAC地址信息初始化网络设 备结构体指针链表. 并启动一个接收线程,以捕获 接收到以太网帧,并对接收到的帧进行相应处理.
        发送EtherCAT帧时,首先读取并记录各网口 的连接状态,根据网络状态选择相应网口发送该 帧. 接收线程接收到以太网数据帧后,判断是否为 Ether2CAT帧(0x88A4帧). 若是则按图5规则选 择相应网口进行转发或进接收队列;若否则丢弃 该帧. 这样可以省去在转发时判断网口状态,缩短 转发时间,减少传播延时.
        5 实验验证系统
        图6为冗余系统的实验验证系统,由1个主 站( PC) 、2个EtherCAT2IO从站和1个测试从站 ( PC)组成. 主站向从站发送周期读写数据. 分别 在PC主站程序和测试从站程序的应用层中设置 发送计数器SendCounter 和接收计数器Recv2 Counter,记录发送和接收的周期帧数量. 在一段 时间内,接收计数器和发送计数器的差值即为该 时间段内的总丢帧数.
      

        实验过程如下: ①设置通讯周期为30ms,发 送和接收计数器清零; ②启动主站的周期发送,在 一定的时间内(1min左右) ,对系统进行拔线、节 点断电以及移除和插入节点等操作,模拟单点故 障和热插拔的发生; ③关闭主站的周期发送,获取 和比较发送计数器和接收计数器的数值,确认未 发生丢帧,能够在1个通讯周期内恢复正常控制, 表示系统运行正确,满足冗余和热插拔任务要求.
        6 结束语
        EtherCAT提供了一种双向数据传输机制. 论 文研究和实验结果表明,采用具有双Ethernet网 口的PC计算机作为控制主站控制EtherCAT从站 芯片,可以非常方便地实现高性能工业控制系统 线路故障冗余和热插拔任务要求,性能优越,运行 可靠,无需复杂的主站控制程序.
        参考文献(References)
        [ 1 ] Geon Yoon, Dae Hyun Kwon, Soon Chang Kwon, et al. Ring topology2based redundancy Ethernet for industrial network
        [ C ] / /2006 SICE2ICASE International Joint Conference. Piscat2 away, NJ: IEEE, 2006: 1404 - 1407
        [ 2 ] EtherCAT Technology Group ( ETG) . EtherCAT: the Ethernet Fieldbus[ J ]. PC Control, 2005, 7: 14 - 19
        [ 3 ] Madren Frank. Redundancywith standards in industrial Ethernet LANs [ J ]. Engineer IT, 2006: 72 - 75
        [ 4 ] 王常力, 罗安. 分布式控制系统(DCS) 设计与应用实例 [M ]. 北京:电子工业出版社, 2004: 386 - 390 Wang Changli, Luo An. Design and app lication of distributed control system (DCS) [M ]. Beijing: Publishing House of Elec2 tronics Industry, 2004: 386 - 390 ( in Chinese)

标签:工业以太网,EtherCAT,冗余

相关文章