1 导言
依据TCP/IP协议的工业以太网以其高通讯速率和低使用本钱被很多使用到工业通讯中。以太网协议和TCP/IP协议自身未界说冗余通讯,因而以进步可靠性为方针的以太网冗余通讯研讨受到了极大重视。以太网高可用性自动化网络规范IEC CDV 62439提出了“冗余至网络”和“冗余至节点”两类以太网冗余计划。前一类计划只提供线路和交换机冗余,节点自身没有冗余通道。比较典型的使用有STP、RSTP和MSTP。它们选用物理环网衔接交换机和网桥。正常作业时阻断一个方向的通道避免“播送风暴”。毛病产生后,经过启用阻断通道完成冗余通讯。这类计划完成本钱低,可是存在必定的毛病恢复时刻,且无法处理因节点网卡毛病引起的通讯中止。后一类计划中的节点和两个独立的冗余以太网衔接,节点一起在两个网络上收发数据,因而能消除网络的毛病恢复时刻。其典型代表为PRP。PRP节点上衔接冗余以太网的两个通道具有相同的MAC地址和IP地址。一切报文一起在两个网络上发送,接纳节点经过报文时刻标签挑选冗余报文。这种计划不可避免地增加了网络上报文的数量,且不能完成准确的时钟同步。文献中介绍了一种依据环网的冗余计划,该计划能一起完成节点的冗余通讯和网络的准确时钟同步。该计划的节点具有两个具有数据交换功用的以太网接口。节电经过菊花链的办法串接成一个环网,毛病产生时经过调整路由表完成冗余通讯。选用环网冗余的ProfiNet把每个通讯周期分红IRT部分和Open部分。在IRT部分节点向环网的两个方向一起发送数据,完成了重要报文零毛病恢复时刻的冗余通讯。可是当多个节点一起产生毛病时,就会形成环网的瘫痪。还有文献介绍的骨干冗余方规律极大有利地势用了网络资源,它选用多条独立的以太网衔接两个节点,数据在各个以太网上涣散传输。毛病产生后,经过其他通道分管毛病通道的报文传输完成冗余通讯,此计划无法消除毛病恢复时刻。本文提出了一种新的冗余至节点的工业以太网冗余计划,经过在报文中规划报文时刻标签、节点间互检生成并实时保护网络状况映射表、非有必要报文在网络状况杰出时选用双网涣散传输等办法,可有用降低了网络的通讯负荷,进步以太网的稳定性与可靠性。
2 冗余通讯结构规划
2.1 网络拓扑结构
本计划的冗余通讯网络选用“冗余至节点”的双以太网结构(如图1)。每个节点装备两个彻底独立的网络接口(通讯介质、网络控制器、驱动接口等均冗余装备),构成A、B两个独立以太网通道。每个接口具有各自的IP地址,别离与物理上独立的以太网A网和B网相连。IP地址的第四个字节与节点号对应(例如,节点n的A网和B网的IP地址别离为128.128.3.n,128.128.4.n)。当其间一个网络呈现毛病时,节点仍能够使用另一个网络进行报文收发,有用进步了体系的可靠性。
图1 冗余以太网拓扑结构
2.2 节点网络层次模型
网络中报文能够在A、B两个网络冗余传输也能够独立涣散传输。但在使用层上有必要保证一切报文的端口单一性,因而本文在TCP/IP层和使用层之间规划了冗余处理层,如图2所示。
发送方的冗余处理层担任报文冗余通讯办法的挑选,冗余报文的仿制、报文时刻标签的增加、传输通道的分配,完成了节点双网冗余传输和双网涣散传输的发送。
接纳方的冗余处理层担任报文冗余通讯办法的判别、冗余报文的兼并、网络毛病自确诊,完成了节点双网冗余传输和双网涣散传输的接纳。
图2 通讯节点的结构
2.3 通讯报文格式
为区别冗余报文、非冗余报文以及完成冗余报文的挑选,本计划把以太网报文用户数据区的前2个字节界说为报文时刻标签(如图3)。报文时刻标签的最高位为“冗余通讯”表明冗余通讯传输办法。低15位为循环序列码,标识相同传输形式下发往同一方针节点的报文发送次序。本计划在发送节点为每个方针节点、播送组、多播组各规划了一个寄存器寄存上一次发送的报文的循环序列号。经过时刻标签相当于为两个节点的通讯传输建立了衔接。
图3 冗余以太网报文格式
3 冗余通讯的完成
3.1 双网冗余传输处理
使用报文中的时刻标签,节点能够完成零毛病恢复时刻的双以太网冗余通讯,其通讯进程分为冗余发送处理和冗余接纳处理。
3.1.1 冗余发送处理机制
发送节点的冗余处理层依据报文的方针地址把对应寄存器里的循环序列码加1,作为新报文的循环序列码。新报文一起在A、B两个网络上发送。因而当一个通道呈现毛病时,发送节点仍能经过另一个通道及时发送报文,完成了零毛病恢复时刻的冗余发送。
3.1.2 时刻优先法冗余接纳处理机制
双冗余传输形式下,接纳方一起承受A、B两个网络上的报文,当一个通道呈现毛病时,接纳方仍能经过另一个通道及时接纳到报文,完成了零毛病恢复时刻的冗余接纳。接纳节点经过报文时刻标签判别来自A、B两个网络的报文是否相同。实践使用中,冗余报文在A、B两个网络上的抵达时刻或许存在不同。本计划选用时刻优先法处理冗余报文的接纳,即只接纳经过校验的优先抵达的报文。
本计划在接纳节点规划了一组报文时刻标签行列,每个行列对应一个发送节点,用于冗余报文的挑选(如图4)。节点接纳到来自节点n的校验正确的新报文后,查询节点n的行列,假如行列中已经有该报文的时刻标签存在,节点丢掉该报文并删去行列中该报文的时刻标签。不然节点在行列中寄存报文的时刻标签及其抵达时刻。因而即便从传输超前的网络中接纳的报文校验失利,节点仍有时机从传输滞后的网络中接纳数据。与PRP的“滑动丢包窗口”比较选用此办法处理冗余报文增加了报文接纳的可靠性。节点依据行列中寄存的报文抵达时刻周期性地铲除行列中超时的报文的时刻标签,以保证行列中的报文时刻标签在合理接纳范围内。