一种高可用性工业以太网冗余方法

文档序号:7928301阅读:213来源:国知局
专利名称:一种高可用性工业以太网冗余方法
技术领域
本发明涉及自动控制领域、计算机网络和安全现场总线技术领域,尤其涉及一种
高可用性工业以太网的网络冗余方法。
背景技术
分布式控制是工业计算机控制系统发展的必然趋势,现场总线应用于工业控制领 域后,开创了工控网络发展的新局面。现场总线的数据通信具有较高的可靠性、实时性和抗 干扰能力,并且具有结构简单、易于维护、节省设备投资等优点。这些优点使现场总线一出 现就在工业领域得到了广泛应用。但是现场总线协议种类繁多,要实现这些总线的兼容和 互操作是十分困难的,这与控制网络发展的开放性、兼容性方向相悖。以太网和无线通信技 术在工业企业信息化系统中的管理层、监控层得到了广泛应用,以太网直接向下延伸应用 于工业测控系统的现场设备层网络,成为工控网络发展的必然趋势。 但是工业控制系统特别是工作在最底层的设备级控制有其独特的运行机制,通过
采用减轻以太网负荷、提高网络速度、采用交换式以太网和全双工通信、采用信息级和流量
控制及虚拟局域网等技术,可以在一定程度上提升以太网的性能,满足某些工业控制的要
求。通常,人们习惯上将这种用于工业控制系统的以太网统称为工业以太网。目前工业以
太网已成为自动化领域的热门技术,并有逐渐取代传统现场总线技术的趋势。为了适应市
场需求, 一些控制系统厂商纷纷推出了各自的工业以太网产品和网络体系。 控制系统对通信网络的稳定性和可靠性要求非常高,一旦出现故障,将带来巨大
的经济损失或者危及人身安全。如果以太网发生链路故障或数据帧丢失等故障,则会影响
以太网在工业控制系统中的应用,因此工业以太网高可用性技术成为当前工业以太网研究
的热点。 网络冗余是典型的高可用性网络技术,它通过应用冗余的网络通信链路以确保信 息传输的可靠性。当工作链路由于某种原因出现故障而不能正常工作时,冗余链路就可以 代替故障链路继续完成相同的功能,从而保证工业以太网的可用性。 为了提高工业以太网的安全性与可用性,一些自动控制厂商提出了环网冗余的方 法,该方法要求各个交换机连接成环形,应用环型路径作为冗余路径,通过环网冗余协议以 及交换机端口设置抑制广播风暴。但是环网冗余方法存在如下问题第一,环网冗余方法只 解决了主干链路(连接交换机和交换机的链路)故障,而对叶子链路(连接节点和交换机 的链路)故障没有解决;第二,环网冗余方法最小故障恢复时间也是在几十毫秒级,不能满 足高可用性工业以太网对故障恢复时间的需求。

发明内容
为了克服工业控制现场环境恶劣,网络链路不稳定的局限,本发明要解决的技术 问题是以实际的工业控制为背景,在工业以太网现有成熟的技术基础之上提出一种采用并 行局域网实现工业控制网络链路故障的快速故障定位和故障恢复的高可用工业以太网冗余系统及方法。 为解决上述技术问题,本发明采用的技术方案是 在以太网原有数据链路层上增设链路冗余实体,用于管理以太网数据帧的发送和 接收;相对于原始协议栈设置两个网络适配器驱动,用于管理两个网络适配器接口 ;通过 两个网络适配器将包含链路冗余实体和两个网络适配器驱动的双连接节点分别连接到两 个独立的网络上;在链路冗余实体上为数据帧添加冗余控制跟踪器用以区别具有相同内容 的数据帧;双连接节点通过两个网络适配器发送具有相同内容的带有冗余控制跟踪器的数 据帧至两个相互独立的网络上;在接收端保存有效帧,丢弃副本帧;建立节点表,用于维护 各节点之间的连通信息。 所述链路冗余实体位于数据链路层和网络层之间,链路冗余实体对冗余数据帧和 非冗余数据帧进行发送和接收;通过对网络层提供与原始协议栈相一致的服务接口实现对 网络层及其上层应用的透明性。 所述双连接节点指具有两个网络适配器的节点,这两个网络适配器被链路冗余实
体管理。 数据帧的自定义封装格式依次为MAC头、冗余控制跟踪器以及实际以太网数据。
所述冗余控制跟踪器由三部分构成序列号、以太网标识和数据帧大小,其中以太 网标识包括A网和B网两个标识;所述数据帧大小包括冗余控制跟踪器和实际以太网数据 的数据帧大小。
所述接收端保存有效帧采用滑动窗口算法实现,步骤如下 判断接收到的来自以太网标识为A网的数据帧当前序列号是否落在以太网标识 为B网的滑动窗口内; 如果没落在以太网标识为B网的滑动窗口内,则说明该数据帧是有效帧; 判断该数据帧当前序列号是否等于A网滑动窗口期望序列号; 如果是,说明A网传输正常,判断A网滑动窗口大小是否超过设置的最大值; 如果是,则说明B网当前处于故障状态,将B网错误计数加l,调用故障处理函数,
将A网滑动窗口设置为0 ; 将B网滑动窗口设置为0 ; 将该数据帧的冗余控制跟踪器去掉使其成为非冗余数据帧
A网滑动窗口加l,将A网正确接收计数加1 ;
调用转发函数将该非冗余数据帧转发给链路冗余实体的上层;
返回继续等待接收下一数据帧。 当判断A网滑动窗口大小是否超过设置的最大值的结果为否,则转至将B网滑动 窗口设置为0步骤。 当判断该数据帧当前序列号是否等于A网滑动窗口期望序列号的结果为否时,将 A网滑动窗口的起始序列号赋值为该数据帧当前序列号,转至将该冗余数据帧的冗余控制 跟踪器去掉使其成为非冗余数据帧步骤。 当判断接收到的来自以太网标识为A网的数据帧当前序列号是否落在以太网标 识为B网的滑动窗口内的结果为是,则丢弃该数据帧,将B网滑动窗口大小减1 ,转至返回继 续等待接收下一数据帧步骤。
所述节点表包含网段内各节点的信息以及本地节点与网段内其他节点的连接状 态信息,具体为远端节点的MAC地址、A网适配器活动标识、B网适配器活动标识、单连接节 点标识、发送序列号、A网及B网滑动窗口起始序列号、A网及B网滑动窗口期望序列号、A 网及B网接收错误计数以及A网及B网接收正确计数和生命周期。
所述节点表通过以下方法维护各节点之间的连通信息 使用建立包含本地节点相关信息的网络监督帧,并通过广播方式发送到相应网段
内,该网段内的节点接收到该网络监督帧后,对本地节点表进行更新维护。 所述维护节点连通信息包括清除节点表的节点信息,指长时间没有从该节点收到
任何数据,则该节点项的生命周期将减小至O,根据节点表中该节点的生命周期值确定该节
点项是否在节点表中被清除。 与现有技术相比,本发明具有以下有益效果及优点 1.具有透明性。本发明将冗余管理下放到网络层与数据链路层之间,对上层应用 隐藏了冗余管理,在对冗余数据进行处理的过程中不会产生任务切换,实现对上层应用的 透明性。 2.具有自愈性。系统监测网络的运行情况,对现场总线通信链路故障进行快速诊 断和定位,当系统探测到网络中的某条链路发生故障,立刻自动切换到备份链路,继续保持 系统可用。 3.具有兼容性。应用工业以太网的控制系统中,以前可能没有采用网络冗余技术, 或者现在允许对关键链路使用网络冗余技术,对于普通链路不采用网络冗余技术,这样,在 一个网段内具有冗余功能的双链路和无冗余功能的单链路可能共存,本方法实现了双链路 和单链路的兼容性,实现了双连接节点和单连接节点的兼容性。 4.改造简单。本发明对没有采用网络冗余技术的现场总线控制系统改造成具有网 络冗余的系统,只需对系统中的关键链路增加冗余链路,对关键节点更换为双连接节点,而 保持原系统中非关键链路和非关键节点不变,即可增加系统的安全性能,使系统具有高可 用性。 5.具有技术前瞻性。工业以太网的安全性和可用性问题限制了工业以太网技术在 控制系统领域的全面推广,于是对于控制系统的安全性和高可用性的研究已经引起国际各 大自动化系统厂商的重视,并纷纷提出自己的解决方案。由此可以预见,对于控制系统的高 可用性的研究将成为控制领域的研究热点。 6.具有可应用性。该高可用性网络冗余方法是基于工业以太网实现的,但该方法 还适用于其他现场总线协议和其他网络协议,对现有协议栈进行简单的修改,对现有硬件 节点进行简单的改造,即可实现该网络冗余方法,并且不会对使用该现场总线协议的设备 运行产生影响。基于本发明的控制系统可以应用于化工、石化、制药、冶金等传统的过程控 制领域,也可以应用于数控加工、高速印刷、机器人控制等要求苛刻的运动控制领域。
7.具有相对开放性。本发明建立在IEEE 802. 3基础之上,可以兼容任何运行IEEE 802.3协议的设备,可无缝集成于工厂办公自动化网络之中,满足企业网技术e网到底的需 要,开放性强。 8.具有安全性。本发明在工业现场控制系统的突然停止运行或关键链路的故障可 能会导致危险时间的发生,应用本发明的控制系统可以提高自身的安全性能。
9.具有集成性。本发明通过对计算机技术、网络技术和安全技术等技术的集成,可 以满足现场信号监测、数据处理、控制算法实现到信息管理等功能上的集成。具体表现在
1)相对于DCS和现场总线,采用以太网技术可以简化系统安装,减少设备成本,针 对具体情况采取灵活的拓扑结构,降低现场布线的复杂度。 2)良好的可升级性。由于符合IEEE802. 3标准,在以太网领域出现的新产品,新技 术可以方便的融合到已有的系统中。 3)节省了维护和管理费用。由于本发明采用被人熟知的以太网技术进行现场设备 的统一管理和维护,节省了现场人力开销,加之在故障诊断和检测方面带来的方便,其维护 和管理费用势必大大减少。 4)无地域性。技术人员可以使用浏览器通过设备中内嵌的Web Server实现远程 监控,这对于油田,矿产等行业有非常重要的意义。 5)资源共享。由于兼容TCP(UDP)/IP协议,可以方便的将其融合到工厂的信息化 网络中,以利于管理决策、信息统计、产品跟踪等。


图1为本发明并行网络冗余拓扑结构示意图;图2为本发明添加了链路冗余实体的协议栈结构;图3为本发明添加了冗余控制跟踪器的以太网帧格式;图4为本发明数据帧发送过程流程图;图5为本发明数据帧接收过程流程图;图6为本发明网络管理流程图;图7为本发明滑动窗口算法示意图;图8为本发明实施例中丢弃B帧后滑动窗口变化示意9为本发明实施例中保存B帧后滑动窗口变化示意10为本发明滑动窗口算法流程图。
具体实施例方式
下面结合附图对本发明作进一步详细说明。 本发明基于高可用性工业以太网的网络冗余方法中,所述高可用性为高性能的容 错能力,即在发生链路故障的情况下,工业控制网络还继续保持可用状态;所述高可用性工 业以太网包括通过通信链路相互通信的若干双连接节点;该方法包括以下内容
本发明方法包括以下步骤 在以太网原有数据链路层上增设链路冗余实体,用于管理以太网数据帧的发送和 接收; 相对于原始协议栈设置两个网络适配器驱动,用于管理两个网络适配器接口 ;
通过两个网络适配器将包含链路冗余实体和两个网络适配器驱动的双连接节点 分别连接到两个独立的网络上; 在链路冗余实体上为数据帧添加冗余控制跟踪器用以区别具有相同内容的数据 帧;
7
双连接节点通过两个网络适配器发送具有相同内容的带有冗余控制跟踪器的数 据帧至两个相互独立的网络上; 在接收端采用滑动窗口算法保存有效帧,丢弃副本帧; 建立节点表,用于维护本地节点和其他远端节点之间的连通信息。 所述节点表通过以下方法维护各节点之间的连通信息 使用建立包含本地节点相关信息的网络监督帧,并通过广播方式发送到相应网段
内,该网段内的节点接收到该网络监督帧后,对本地节点表进行更新维护。 所述维护节点连通信息包括清除节点表的节点信息,指长时间没有从该节点收到
任何数据,则该节点项的生命周期将减小至O,根据节点表中该节点的生命周期值确定该节
点项是否在节点表中被清除。 上述节点表包含了网段内各节点的信息以及本地节点与网段内其他节点的连接 状况,具体包含远端节点的MAC地址,A适配器活动标识、B适配器活动标识、单连接节点标 识、发送序列号、A网、B网滑动窗口起始序列号、A网、B网滑动窗口期望序列号、A网、B网 接收错误计数、A网、B网接收正确计数、生命周期。 远端节点的MAC地址作为远端节点的唯一标识,是在节点表中查找远端节点的关 键字。 A适配器活动标识用来标识本地节点与该远端节点在A网上是否有通信连接,本 地节点通过A网从该远端节点每收到一帧将该项标识为真。所述B适配器活动标识用来标 识本地节点与该远端节点在B网上是否有通信连接,本地节点通过A网从该远端节点每收 到一帧将该项标识为真。 单连接节点标识用来标识该远端节点是否为单连接节点,通过A适配器活动标识 和B适配器活动标识计算得到结果。 发送序列号是发送端在发送数据帧时添加到冗余控制跟踪器的序列号区域的序 列号,每成功发送一帧后,该序列号加1。 A网、B网滑动窗口起始序列号用于保存A网、B网滑动窗口的起始序列号,当接收 到一帧时,要对该起始序列号进行更新。 A网、B网滑动窗口期望序列号用于保存A网、B网滑动窗口的期望序列号,当接收 到一帧时,要对该起始序列号进行更新。 A网、B网接收错误计数用来记录本地节点和该远端节点之间通过A网和B网进行 通信的过程中发生错误的帧的个数,以便于监控用户了解本地节点与远端节点之间通信链 路的健康状况。 A网、B网接收正确计数用来记录本地节点和该远端节点之间通过A网和B网进行 通信的过程中正确传输的帧的个数,以便于监控用户了解本地节点与远端节点之间通信链 路的健康状况。 生命周期用来维护该远端节点表项在本地节点的节点表中生存的时间,从该远端 节点每接收一帧,要对该生命周期设置为最大值,根据系统时钟周期,每隔1秒钟将该生命 周期减l,如果该生命周期归O,则说明该远端节点发生节点故障。所述节点故障指该节点 已经脱离该网段或者该节点不再发送和接收以太网数据帧。对于网段内的其他节点应该在 本地的节点表中清除故障节点的相关信息并通知监控软件发生节点故障。所述节点故障的
8故障定位指网段内的每个节点可以通过本地节点表中其他节点项的生命周期值对其他节 点的活动情况进行监测,及时发现节点故障并定位到故障节点,将故障节点的MAC地址发 送监控软件,通知具有该MAC地址的节点发生故障。 网段内的每个双连接节点周期性发送网络监督帧。所述网络监督帧包含本地节点 相关信息,通过广播方式发送到AB两个网络上。网段内的节点接收到该网络监督帧后,对 本地节点的节点表进行更新维护。 如图l所示,本发明在一个控制网络中,包括两个相互独立的局域网,即A网(LAN_ A)和B网(LAN—B),这两个局域网的拓扑结构可以包括总线型、星型和环型,该两个独立的 网络为相互之间没有任何耦合关系的网络,这两个网络的拓扑结构可以相同也可以不同, 这两个网络的时间延迟可以相同也可以不同。在该网段内包含n个节点,这些节点可以是 双连接节点,如节点1和节点n,也可以是单连接节点,如节点2和节点3。双连接节点通过 两个网络适配器分别连接到两个局域网A网(LAN_A)和B网(LAN—B),两局域网之间通过冗 余链路进行通信,增强通信的可靠性;单连接节点通过一个网络适配器连接到局域网LAN_ A上,没有冗余网络。 如图2所示,本发明中每个双连接节点内运行添加了链路冗余实体的工业以太网 协议栈。A网网络适配器A1作为该节点与A网(LAN_A)交换数据的接口, B网网络适配器 Bl作为该节点与B网(LAN_B)交换数据的接口 。 A网数据链路层A2与A网网络适配器Al 绑定并实现工业以太网协议栈的数据链路层功能;B网数据链路层B1与B网网络适配器B2 绑定并实现工业以太网协议栈的数据链路层功能;在工业以太网原有协议栈结构的数据链 路层上增设链路冗余实体(LRE),用于冗余数据的发送和接收以及节点表的更新;所述链 路冗余实体位于数据链路层和网络层之间,其作用相当于对原有数据链路层功能的扩展, 对上层(网络层、传输层和上层应用)隐藏A网及B网数据链路层A2和B2以及A网及B 网网络适配器Al和Bl,并对这两个网络适配器驱动和网络适配器进行管理。
所述链路冗余实体位于数据链路层和网络层之间,这样的安排是为了对上层应用 实现透明性。通过链路冗余实体可实现对冗余数据帧和非冗余数据帧的发送和接收处理, 可实现链路故障的故障定位和链路故障的无时延故障恢复,可实现节点故障的故障定位等 功能。所述透明性是相对于上层应用而言,链路冗余实体透明管理冗余链路和在发生链路 故障的情况下对传输链路的透明切换。 所述链路故障的故障定位实现方法为当一个网络的滑动窗口大小达到设定的最 大值,则判定另一个网络发生链路故障。当A网的滑动窗口大小达到设定的最大值,则将链 路故障定位到B网;当B网的滑动窗口大小达到设定的最大值,则将链路故障定位到A网。
所述对链路故障的无时延故障恢复是指在一个网络链路或者交换设备发生故障 的情况下,能够马上切换到另一条正常运行的链路,使节点间通信能够继续进行,对控制系 统的运行不产生影响。这种切换是即时进行的,没有时间延迟,上层应用并不知道下层发生 了链路切换,所以这种切换是透明切换。 如图3所示,本发明冗余数据帧的自定义封装格式依次为MAC头、冗余控制跟 踪器(RCT)以及实际以太网数据,并将这种自定义的封装方式称为冗余以太网封装格式 (REP),所述冗余控制跟踪器(RCT)由三部分构成序列号、以太网标识和数据帧大小共占4 个8位组区域,其中以太网标识包括A网和B网两个标识;所述数据帧大小包括冗余控制跟
9踪器和实际以太网数据的数据帧大小。 所述序列号是连续的16位二进制无符号整数,发送端每发送一帧,序列号加1, 具有相同内容的数据帧具有相同的序列号,接收端根据序列号判断两个帧是否具有相同内 容。所述以太网标识是固定的4位二进制位,在A网传输的数据帧具有局域网A标识,在B 网传输的数据帧具有局域网B标识,接收端根据该标识判断该帧来自哪个局域网。
如图4所示,本发明方法中对于冗余数据和非冗余数据发送的方法在链路冗余实 体中实现。当双连接节点发送数据帧时,为了实现并行冗余,在协议栈的链路冗余实体中对 数据帧进行处理,处理过程如下
从上层接收到一个IP数据报; 查找节点表,判断节点表中是否有该远端节点的记录,所述节点表包含网段内各 节点的信息以及本地节点与网段内其他节点的连接状态信息,具体为远端节点的MAC地 址、A网适配器活动标识、B网适配器活动标识、单连接节点标识、发送序列号、A网及B网滑 动窗口起始序列号、A网及B网滑动窗口期望序列号、A网及B网接收错误计数以及A网及 B网接收正确计数和生命周期; 如果节点表中有该远端节点的记录,说明是待发送的正确帧,判断是否是网络监 督帧,此步骤是为了兼容单连接节点而设置,所述网络监督帧是周期性发送广播帧,网段 内的所有节点都将收到广播的网络监督帧,为了单连接节点能识别双连接节点的网络监督 帧,所以对于网络监督帧不添加冗余控制跟踪器; 如果不是监督帧,则判断远端节点是否是单连接节点;该步骤是为了兼容单连接 节点而设置,如果从上层应用接收到的该帧是发给单连接节点的,则该帧是非冗余帧,不应 该添加冗余控制跟踪器,所以在链路冗余实体中要判断远端节点是否为单连接节点;
如果不是单连接节点,则构造A网冗余控制跟踪器,并将该A网冗余控制跟踪器添 加在数据帧的以太网头部和以太网数据之间;根据节点表中信息构造冗余控制跟踪器,主 要从节点表中提取发送序列号,添加到冗余控制跟踪器的序列号区域,然后计算以太网帧 数据长度添加到冗余控制跟踪器的大小区域,最后添加局域网标识;将该冗余控制跟踪器 添加在以太网头部和以太网数据之间,这样的安排是把冗余控制跟踪器视为数据链路层和 网络层之间的链路冗余实体层要处理的数据头部信息; 调用A网数据链路层A2的发送服务,将添加了 A网冗余控制跟踪器的帧通过A网 网络适配器Al发送到A网(LAN_A)上; 构造B网冗余控制跟踪器,并将该B网冗余控制跟踪器添加在数据帧的以太网头 部和以太网数据之间; 调用B网数据链路层B2的发送服务,将添加了 B网冗余控制跟踪器的帧通过B网 网络适配器Bl发送到B网(LAN_B)上; 将发送序列号加l,返回继续等待接收下一个IP数据报。 如果判断远端节点是否是单连接节点的结果为是,则判断是否为A网上的单连接 节点; 如是,则调用A网数据链路层A2的发送服务,从A网网络适配器Al发送该数据帧, 返回继续等待接收下一个IP数据报;否则调用B网数据链路层B2的发送服务,从B网网络 适配器Bl发送该数据帧,返回继续等待接收下一个IP数据报。
如果判断是否是监督帧,则发送监督帧,返回继续等待接收下一个IP数据报。
如果判断节点表中是否有该远端节点的记录的结果为否,则调用错误处理函数, 返回继续等待接收下一个IP数据报。 如图5 10所示,本发明方法中冗余数据和非冗余数据接收方法在链路冗余实体 中实现。当接收端节点接收到数据帧后,要在链路冗余实体中对该帧进行处理,以便对上层 应用隐藏冗余信息和冗余处理过程。 所述图5表示了链路冗余实体对从数据链路驱动接收到的数据帧进行处理的方 法,具体如下 从网络适配器接收到一数据帧;
根据源MAC地址搜索节点表; 检查节点表中是否找到关于该节点的表项信息,如果找到,则判断检测该数据帧 是否有冗余控制跟踪器; 如果有,则调用滑动窗口算法保存并处理该数据帧,返回继续等待接收下一个数 据帧;否则调用网络更新函数,返回继续等待接收下一个数据帧; 判断检查节点表中是否有关于该节点的表项信息的结果为没有找到,则在节点表
中插入该节点项信息并初始化,转至判断检测该数据帧是否有冗余控制跟踪器。 如图6所示,为了兼容单连接节点,设置网络管理功能,用于处理不带冗余控制跟
踪器的非冗余数据帧,根据从远端节点接收到数据帧获得该远端节点与本地节点的连接状
态信息,其步骤如下 接收数据帧; 判断该数据帧是否来自A网; 如果是,则A网活动标识赋值为真,A网接收正确计数加1 ;
否则B网活动标识赋值为真,B网接收正确计数加1 ; 判断A网和B网活动标识是否均为真,如是,则单连接标识赋值为假;否则单连接 节点标识赋值为真; 转发数据帧给上层,而不做其他冗余处理;
返回继续等待接收下一个数据帧。 如图7所示,所述滑动窗口算法是对冗余数据帧进行接收处理的方法。所述滑动 窗口是为了辨识有用帧和副本帧,两个局域网都维护的一个序列号范围区间。此窗口的上 边界是下一个期望序列号,下边界是起始序列号。本实例假定LAN—A已经创建了一个非空 的滑动窗口 ,如果来自LAN_B帧的当前序列号落在了 A网的滑动窗口内,则说明在LAN_A已 经接收过该帧,判定该帧为副本帧,并丢弃该副本帧。如果来自LAN—B帧的当前序列号大于 A网期望序列号,则说明该帧没有被LAN—A接收过,判定该帧为有用帧,保存该有用帧并将 其转发给上层。 所述期望序列号是指接收端期望收到具有该序列号的帧,比该序列号小1号的帧 已经正确接收并被转发给上层应用,该序列号用于和所述的当前序列号进行比较。
所述起始序列号是滑动窗口的下边界,当另一个局域网接收并丢弃一帧时,将本 局域网的滑动窗口起始序列号加1,以减小滑动窗口大小。 所述当前序列号是从当前接收到的冗余数据帧中提取出来的序列号,用于判断与该帧具有相同内容的数据帧是否被接收过。 如图8所示,所述丢弃副本帧是指将副本帧在缓冲区中清除,然后收縮A网的滑动窗口的大小,因为没有更多的来自LAN_B并带有早期序列号的帧被期望。然后B网的滑动窗口被设置为0,因为很明显带有相同序列号的数据帧已经从LAN—A接收井被保存,所以就不会有来自LAN_A的帧被丢弃。 如图9所示,所述保存有用帧并将其转发给上层是指去掉该冗余帧的冗余控制跟踪器区域,使其成为非冗余数据帧,调用转发函数将非冗余数据帧转发给上层应用。然后B网的滑动窗口按位增长,意味着来自LAN_A的带有相同序列号的帧是副本帧,将被忽略;然后A网的滑动窗口设置为O,意味着LAN_B将没有帧被丢弃。
如图IO所示,本发明方法中滑动窗口算法步骤如下 判断接收到的来自太网标识为A网的数据帧当前序列号是否落在以太网标识为B网的滑动窗口内; 如果没落在以太网标识为B网的滑动窗口内,则说明该数据帧是有效帧;
判断该数据帧当前序列号是否等于A网滑动窗口期望序列号,本步骤说明LAN_A发生过故障是指LAN_A发生过数据帧丢失故障,或者LAN_A发生过链路断开故障,但LAN_A当前处于活动状态; 如果是,说明A网传输正常,判断A网滑动窗口大小是否超过设置的最大值,本步骤是将A网滑动窗口设置为0可以继续探测LAN_B的健康状态,如果LAN_B在A网的滑动窗口大小再次到达最大值之前已经修复,则滑动窗口算法不再报错,否则当A网的滑动窗口大小再次到达最大值时,滑动窗口算法继续报错; 如果是,则说明B网当前处于故障状态,将B网错误计数加l,调用故障处理函数,
将A网滑动窗口设置为O ; 将B网滑动窗口设置为0 ; 将该冗余数据帧的冗余控制跟踪器去掉使其成为非冗余数据帧
A网滑动窗口加l,将A网正确接收计数加1 ;
调用转发函数将该非冗余数据帧转发给链路冗余实体的上层;
返回继续等待接收下一数据帧。 当判断A网滑动窗口大小是否超过设置的最大值的结果为否,则转至将B网滑动窗口设置为O步骤。 当判断该数据帧当前序列号是否等于A网滑动窗口期望序列号的结果为否时,将
A网滑动窗口的起始序列号赋值为该数据帧当前序列号,转至将该冗余数据帧的冗余控制
跟踪器去掉使其成为非冗余数据帧步骤,本步骤是在从LAN—A接收到的数据帧的当前序列
号不等于A网滑动窗口期望序列号的情况下应用的,因为具有比当前序列号更早的数据帧
不能再从LAN—A接收到了,所以要将A网的起始序列号增加到当前序列号; 当判断接收到的来自太网标识为A网的数据帧当前序列号是否落在以太网标识
为B网的滑动窗口内的结果为是,则将B网滑动窗口大小减1 ,转至返回继续等待接收下一
数据帧步骤。 本发明实例解决了以下几项关键技术 1.克服了现场总线在开放性、兼容性方面的弊端,提出了将工业以太网经过改造后应用于高可用性工业控制的一种可行性解决方案; 2.采用双网并行发送数据帧方法,使评价控制系统可用性性能的参数故障恢复时 间达到0,即无时延的故障恢复,从而大大提高工业以太网的安全性和可用性;
3.采用滑动窗口算法对冗余数据进行接收处理,可以实现对通信链路的实时监控 和对链路故障的实时探测,并对链路故障和节点故障实现快速定位,向监控用户报警链路 故障节点故障; 4.节点周期性地向网络上广播发送网络监督帧,利用网络监督帧,可以实现对节 点表中节点项生存状态的实时更新,从而允许网段内节点数量可以动态改变,提高控制系 统应用的灵活性与健壮性; 5.在数据链路层之上增加了链路冗余实体用于两个网络适配器的冗余管理,以及 对冗余数据和非冗余数据的发送和接收,扩充了原有网络体系结构的功能,使得工业以太 网可用性大幅度提高; 6.相对于单链路通信,在两个局域网上同时传输具有相同内容的数据帧,在一个 网络有帧丢失的情况下,在另一个网络还能接收到另一个具有相同内容的数据帧,大大降 低了节点间通信的帧丢失率; 7.将冗余控制跟踪器封装在以太网数据帧之内,IP数据报前面,这种安排符合协
议栈处理顺序,不改变以太网帧类型,也不会影响网络层和传输层对数据内容的校验; 8.将链路冗余实体安排在数据链路层和网络层之间,实现冗余管理对上层应用的
透明性,使冗余管理和上层应用之间是松散耦合,提高本发明方法的兼容性。 本发明可实现传输链路的透明切换。通过本发明所描述对冗余数据帧以并行方式
进行发送和接收,可满足工业现场对通信的稳定性与可靠性的要求,故障恢复时延为0,即
在一个网络链路或者交换设备发生故障的情况下,马上切换到另一条正常运行的链路,使
节点间通信能够继续进行,对控制系统的运行不产生影响,能够充分发挥工业以太网的优
势,视为工控领域新的解决方案。
1权利要求
一种高可用性工业以太网冗余方法,其特征在于包括以下步骤在以太网原有数据链路层上增设链路冗余实体,用于管理以太网数据帧的发送和接收;相对于原始协议栈设置两个网络适配器驱动,用于管理两个网络适配器接口;通过两个网络适配器将包含链路冗余实体和两个网络适配器驱动的双连接节点分别连接到两个独立的网络上;在链路冗余实体上为数据帧添加冗余控制跟踪器用以区别具有相同内容的数据帧;双连接节点通过两个网络适配器发送具有相同内容的带有冗余控制跟踪器的数据帧至两个相互独立的网络上;在接收端保存有效帧,丢弃副本帧;建立节点表,用于维护各节点之间的连通信息。
2. 按照权利要求1高可用性工业以太网冗余方法,其特征在于所述链路冗余实体位 于数据链路层和网络层之间,链路冗余实体对冗余数据帧和非冗余数据帧进行发送和接 收;通过对网络层提供与原始协议栈相一致的服务接口实现对网络层及其上层应用的透 明性。
3. 按照权利要求1高可用性工业以太网冗余方法,其特征在于所述双连接节点指具 有两个网络适配器的节点,这两个网络适配器被链路冗余实体管理。
4. 按照权利要求1高可用性工业以太网冗余方法,其特征在于数据帧的自定义封装 格式依次为MAC头、冗余控制跟踪器以及实际以太网数据。
5. 按照权利要求1高可用性工业以太网冗余方法,其特征在于所述冗余控制跟踪器 由三部分构成序列号、以太网标识和数据帧大小,其中以太网标识包括A网和B网两个标 识;所述数据帧大小包括冗余控制跟踪器和实际以太网数据的数据帧大小。
6. 按照权利要求1高可用性工业以太网冗余方法,其特征在于所述接收端保存有效 帧采用滑动窗口算法实现,步骤如下判断接收到的来自以太网标识为A网的数据帧当前序列号是否落在以太网标识为B网 的滑动窗口内;如果没落在以太网标识为B网的滑动窗口内,则说明该数据帧是有效帧;判断该数据帧当前序列号是否等于A网滑动窗口期望序列号;如果是,说明A网传输正常,判断A网滑动窗口大小是否超过设置的最大值;如果是,则说明B网当前处于故障状态,将B网错误计数加l,调用故障处理函数,将A网滑动窗口设置为O;将B网滑动窗口设置为O;将该数据帧的冗余控制跟踪器去掉使其成为非冗余数据帧A网滑动窗口加l,将A网正确接收计数加1 ;调用转发函数将该非冗余数据帧转发给链路冗余实体的上层;返回继续等待接收下一数据帧。
7. 按权利要求6所述高可用性工业以太网冗余方法,其特征在于当判断A网滑动窗 口大小是否超过设置的最大值的结果为否,则转至将B网滑动窗口设置为0步骤。
8. 按权利要求6所述高可用性工业以太网冗余方法,其特征在于当判断该数据帧当前序列号是否等于A网滑动窗口期望序列号的结果为否时,将A网滑动窗口的起始序列号 赋值为该数据帧当前序列号,转至将该冗余数据帧的冗余控制跟踪器去掉使其成为非冗余 数据帧步骤。
9. 按权利要求6所述高可用性工业以太网冗余方法,其特征在于当判断接收到的来 自以太网标识为A网的数据帧当前序列号是否落在以太网标识为B网的滑动窗口内的结果 为是,则丢弃该数据帧,将B网滑动窗口大小减l,转至返回继续等待接收下一数据帧步骤。
10. 按照权利要求1高可用性工业以太网冗余方法,其特征在于所述节点表包含网段 内各节点的信息以及本地节点与网段内其他节点的连接状态信息,具体为远端节点的MAC 地址、A网适配器活动标识、B网适配器活动标识、单连接节点标识、发送序列号、A网及B网 滑动窗口起始序列号、A网及B网滑动窗口期望序列号、A网及B网接收错误计数以及A网 及B网接收正确计数和生命周期。
11. 按照权利要求1高可用性工业以太网冗余方法,其特征在于所述节点表通过以下 方法维护各节点之间的连通信息使用建立包含本地节点相关信息的网络监督帧,并通过广播方式发送到相应网段内, 该网段内的节点接收到该网络监督帧后,对本地节点表进行更新维护。
12. 按照权利要求1高可用性工业以太网冗余方法,其特征在于所述维护节点连通信 息包括清除节点表的节点信息,指长时间没有从该节点收到任何数据,则该节点项的生命 周期将减小至O,根据节点表中该节点的生命周期值确定该节点项是否在节点表中被清除。
全文摘要
本发明涉及一种高可用性工业以太网冗余方法,包括以下步骤在以太网原有数据链路层上增设链路冗余实体,用于管理以太网数据帧的发送和接收;相对于原始协议栈设置两个网络适配器驱动,用于管理两个网络适配器接口;通过两个网络适配器将包含链路冗余实体和两个网络适配器驱动的双连接节点分别连接到两个独立的网络上;在链路冗余实体上为数据帧添加冗余控制跟踪器用以区别具有相同内容的数据帧;双连接节点通过两个网络适配器发送具有相同内容的带有冗余控制跟踪器的数据帧至两个相互独立的网络上;保存有效帧,丢弃副本帧;建立节点表。本发明具有透明性、自愈性、兼容性等特点,改造简单,增加系统的安全性能,使系统具有高可用性。
文档编号H04L12/28GK101753348SQ20081022989
公开日2010年6月23日 申请日期2008年12月17日 优先权日2008年12月17日
发明者于海斌, 姜立群, 宋岩, 徐皑冬 申请人:中国科学院沈阳自动化研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1