工业以太网 EtherCAT冗余和热插拔技术专家:刘艳强 领域:工业以太网 行业:网络通讯 日期:09-12-16 13:41 点击数:5275 |
摘要: EtherCAT是一种实时工业以太网协议 ,使用冗余技术是实现热插拔和提高通信可靠性的重要手段.首先介绍了实时工业以太网 EtherCAT的组成、工作原理和报文结构 ,研究了使用环型网络拓扑结构实现基于 EtherCAT的工业自动化控制系统故障容错及热插拔技术 ,分别规划了在网口故障、链路故障和节点故障时冗余帧传播机制、故障点定位和恢复策略.开发了链路冗余 EtherCAT主站驱动程序 ,将常规 EtherCAT主站驱动程序做了修改 ,加入链路冗余机制 ,对上层应用屏蔽了冗余信息和操作. 最后完成了冗余和热插拔的性能测试实验 ,结果表明系统性能优越 ,运行稳定. 1 EtherCAT工作原理 EtherCAT是一种实时工业以太网技术 ,已成为国际标准 IEC 61158212, IEC 6178422 以及ISO1574524的一部分 . 图 1为 EtherCAT的基本工作原理.介质访问控制 (MAC,Media Access Control)使用主从模式.
ESC采取接收转发机制 ,以太网帧可以双向通行 ,但只有以太网帧由下行电报方向进入时 ,相应的报文才能得到处理. 如果指定转发的网口未连接 , ESC自动将以太网帧沿原入口径返回.
2 EtherCAT冗余和热插拔技术要求 2. 1 拓扑结构 冗余以太网的拓扑结构包括网络型拓扑、环型拓扑以及混合型拓扑 . 对于一般的工业以太网系统 ,网络型和混合型拓扑过于复杂 ,环型拓扑非常有效而且实用. 本文研究环型拓扑的冗余技术 ,消除单点故障对系统产生的影响. 环型结构的信息流在网中是沿固定方向流动的.由于环型结构中出现一个节点故障将会影响全网 ,要提高可靠性 ,需采用双向环结构 ,使环具有自愈功能 ,即在断点处自动环回 , ESC从站控制器具有这种自动环回功能. EtherCAT冗余技术采用环型冗余结构 ,也就是将最后一个 ESC节点连接到主站.要实现这个功能 ,需要主站具有 2个以太网接口 ,见图 3.
环形冗余链路仅具备双重冗余 ,因此只能应对单点故障.单点故障主要有以下几种可能情况: 1) 网口故障 ,包括主站网卡本身故障和连接在网卡上的链路故障; 2) 链路故障 ,指从站节点之间的链路存在断线; 3) 节点故障 ,指环路中某节点出现故障 ,导致帧转发功能失效.在此情况下 ,发生故障的节点的失效不认为是整个系统的失效. 这种情况也可能发生在需要不断电情况下更换一个从站节点的场合 ,通常也称为“热插拔 ”. 2. 3 EtherCAT链路冗余主站 EtherCAT主站结构如图 4所示 ,其中 Ether-CAT主站驱动实现了网卡驱动与上层控制任务的交互.冗余机制不应影响应用层控制任务的性能和功能. 在本文系统设计中,将常规 EtherCAT主站驱动程序做了修改 ,加入链路冗余机制 ,对上 在 EtherCAT主站驱动程序中 ,向上层应用的接口主要为 1个发送队列 (用于存放控制任务要发送的 EtherCAT帧 )和 1个接收队列 (用于存放处理过后返回的 EtherCAT帧 ).本文设计的冗余机制旨在实现当系统处于任何正常或容错运行状态下这 2个帧队列都与网口和网络状态无关. 3 冗余系统设计 3. 1 冗余帧传播机制 冗余主站设计如图 4所示 ,主站具有 A和 B2个网口 ,每个网口均具备发送和接收以太网帧的功能. 根据故障情况 ,图 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 网口的接收帧,结合数据帧中子报文的工作计数器实现. 首先 ,根据读取网口状态判断是否出现故障及故障类型.如果 A网口或 B 网口状态为未连接或连接出错,则表明出现了网口故障;如果 A网口接收到了环回的帧,则表明为链路故障或节点故障;否则,表明系统正常. 然后,对 A网口和 B 网口的接收帧进行侦听和 WKC分析.根据子报文的报文指令类型 ,以及子报文的 WKC值,可以判断出该子报文是否得以执行.从而,检测出 A网口和故障点之间离故障点最近的有效节点及 B 网口和故障点之间离故障点最近的有效节点. 最后 ,可以判断出 ,故障点出现在 2个有效节点之间的链路或节点上. 4 冗余主站的实现 冗余 EtherCAT主站驱动程序采用 WinPcap软件开发包 ,实现 EtherCAT帧的收发. WinPcap是 Windows平台下一个免费、公共的网络访问系统 ,为 Win32应用程序提供访问网络底层的能力. 在程序底层定义了一个设备类 ,用于与硬件接口交互.在该设备类中定义了一个网络设备结构体指针链表 ,用以指向系统中所用到的网卡设备.在该类中定义了一个先入先出的队列 ,用以存储接收环回的 EtherCAT帧 ,并提供了一个发送原始帧的接口函数 (发送队列在上层定义 ). 程序启动时 ,该设备类根据主站描述文件中提供的冗余网卡的 MAC地址信息初始化网络设备结构体指针链表.并启动一个接收线程 ,以捕获接收到以太网帧 ,并对接收到的帧进行相应处理. 发送 EtherCAT帧时 ,首先读取并记录各网口的连接状态 ,根据网络状态选择相应网口发送该帧.接收线程接收到以太网数据帧后 ,判断是否为Ether2CAT帧 (0x88A4帧 ).若是则按图 5规则选择相应网口进行转发或进接收队列;若否则丢弃 图 6为冗余系统的实验验证系统 ,由 1个主站 (PC)、2个 EtherCAT2IO从站和 1个测试从站(PC)组成.主站向从站发送周期读写数据. 分别在 PC主站程序和测试从站程序的应用层中设置发送计数器 SendCounter和接收计数器 Recv2 实验过程如下: ①设置通讯周期为 30ms,发送和接收计数器清零; ②启动主站的周期发送 ,在一定的时间内 (1min左右 ) ,对系统进行拔线、节点断电以及移除和插入节点等操作 ,模拟单点故障和热插拔的发生; ③关闭主站的周期发送 ,获取和比较发送计数器和接收计数器的数值 确认未,发生丢帧 ,能够在 1个通讯周期内恢复正常控制 ,表示系统运行正确 ,满足冗余和热插拔任务要求. 6 结 束 语 EtherCAT提供了一种双向数据传输机制.论文研究和实验结果表明 ,采用具有双 Ethernet网口的 PC计算机作为控制主站控制 EtherCAT从站芯片 ,可以非常方便地实现高性能工业控制系统线路故障冗余和热插拔任务要求 ,性能优越 ,运行可靠 ,无需复杂的主站控制程序. 参考文献 ( ) References [1] Geon Yoon, Dae Hyun Kwon, Soon Chang Kwon, et al. Ring topology based redundancy Ethernet for industrial network[C] //2006 SICE ICASE InternationalJointConference. Piscataway, NJ: IEEE,2006:1404 - 1407 [2] EtherCAT Technology Group (ETG). EtherCAT: the EthernetFieldbus[J]. PC Control, 2005,7:14 - 19 [3] Madren Frank. Redundancywith standards in industrialEthernetLANs [J]. Engineer IT, 2006:72 - 75 [4] 王常力, 罗安. 分布式控制系统 (DCS)设计与应用实例[M ].北京:电子工业出版社,2004:386 - 390Wang Changli, Luo An. Design and application of distributedcontrol system(DCS) [M ]. Beijing: Publishing House of Elec2tronics Industry, 2004:386 - 390(in Chinese) |