CN110780615B - 在高可用性工业控制系统上传输数据的系统和方法 - Google Patents

在高可用性工业控制系统上传输数据的系统和方法 Download PDF

Info

Publication number
CN110780615B
CN110780615B CN201910683286.0A CN201910683286A CN110780615B CN 110780615 B CN110780615 B CN 110780615B CN 201910683286 A CN201910683286 A CN 201910683286A CN 110780615 B CN110780615 B CN 110780615B
Authority
CN
China
Prior art keywords
data packet
data
connection
consumer
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910683286.0A
Other languages
English (en)
Other versions
CN110780615A (zh
Inventor
西瓦拉姆·巴拉苏布拉马尼安
肯德尔·R·哈里斯
马克·A·夫拉德
凯尔·E·尼特
斯克特·A·皮尔斯
安东尼·G·吉巴尔蒂
雷蒙德·R·赫斯特德
大卫·M·福特
钱德雷什·R·乔杜里
乔纳森·D·布拉德福德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Rockwell Automation Technologies Inc
Original Assignee
Rockwell Automation Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Rockwell Automation Technologies Inc filed Critical Rockwell Automation Technologies Inc
Publication of CN110780615A publication Critical patent/CN110780615A/zh
Application granted granted Critical
Publication of CN110780615B publication Critical patent/CN110780615B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/4185Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by the network communication
    • G05B19/4186Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by the network communication by protocol, e.g. MAP, TOP
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B9/00Safety arrangements
    • G05B9/02Safety arrangements electric
    • G05B9/03Safety arrangements electric with multiple-channel loop, i.e. redundant control systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0423Input/output
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/4185Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by the network communication
    • G05B19/41855Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by the network communication by local area network [LAN], network structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40169Flexible bus arrangements
    • H04L12/40176Flexible bus arrangements involving redundancy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • H04L12/4625Single bridge functionality, e.g. connection of two networks over a single bridge
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • H04L49/552Prevention, detection or correction of errors by ensuring the integrity of packets received through redundant connections
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25257Microcontroller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Quality & Reliability (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Manufacturing & Machinery (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Hardware Redundancy (AREA)

Abstract

公开了在高可用性工业控制系统上传输数据的系统和方法。该工业控制系统包括第一数据生产者,与第一数据生产者通信连接的第二数据生产者,第一数据消费者,以及与第一数据消费者通信连接的第二数据消费者。系统还包括在从第一生产者通过中间模块至第一消费者和第二消费者的多个连接路径上传送数据的第一生产者,以及在从第二生产者通过中间模块至第一消费者和第二消费者的多个连接路径上传送数据的第二生产者。还公开了一种在高可用性工业控制系统上传送数据的方法。

Description

在高可用性工业控制系统上传输数据的系统和方法
相关申请的交叉引用
本申请要求2018年7月27日提交的题目为“在高可用性工业控制系统上传输数据的系统和方法”的美国专利申请第62/703,986号的权益,该申请的内容通过引用并入本文。
技术领域 背景技术
本文中公开的主题涉及高可用性(HA)工业控制系统。更具体地,本文中公开的主题涉及在高可用性工业控制系统中通过工业控制网络传送数据的系统和方法。
背景技术
如本领域技术人员已知,工业控制器是用于控制工业过程或机器的专用电子计算机系统。示例性工业控制器是在工厂环境中使用的可编程逻辑控制器(PLC)。工业控制器在许多方面与传统计算机不同。在物理上,它们被构造成对震动和损坏更加健壮并且更好地抵抗外部污染物和极端环境条件。工业控制器的处理器和操作系统为实时控制而被优化,并且执行使得准备好的定制程序能够适应各种不同的控制器应用的语言。工业控制器可以具有用于访问、控制和/或监视工业控制器的操作者接口。示例性操作者接口可以包括具有键盘、鼠标和显示器的本地连接的终端。
即使在系统内发生故障的情况下,HA控制系统也尝试维持控制系统的操作。为了维持操作,HA控制系统通常包括冗余子系统,例如冗余工业控制器、冗余底板、冗余桥、冗余适配器、冗余输入/输出(IO)模块、冗余电动机驱动器和/或冗余通信网络。在每个子系统中设置了物理冗余,使得在子系统中的元件之一中发生单个故障的情况下,子系统的操作可以通过冗余元件继续。例如,如果冗余控制器之一发生故障,则可以使用其他控制器继续进行操作。类似地,如果在一个网络、底板、桥、适配器或 IO模块上发生故障,则可以通过一个或更多个冗余网络、底板、桥、适配器或IO模块继续操作。
在操作期间,HA控制系统可以使用一个部件作为起作用部件,而另一部件作为备用部件。备用部件接收相同的输入信号,生成相同的输出信号,以及/或者执行与起作用部件相同的操作,使得备用部件的状态与起作用部件的状态相同。然而,受控系统的实际控制由起作用部件执行。在起作用部件故障时,例如,开关可以断开起作用部件,并连接备用部件,以维持受控系统的操作。当一个部件断开而另一部件连接时发生短暂的切换时间。然而,一些应用是如此高度依赖于连续操作,以致于在一些子系统中发生故障的情况下HA控制系统中的任何延迟或切换时间对应用都是不利的。例如,执行发电操作的发电厂在发电操作期间需要最大程度的连续操作。由于一些子系统中的故障导致的HA控制系统的任何延迟都可能对发电厂非常不利。
因此,期望提供一种用于在HA子系统上传送数据的改进系统,以进一步改进HA控制系统的容错性。
发明内容
本文中公开的主题描述了一种具有并发连接的工业控制网络,以提供用于通过网络传送数据的改进系统,并进一步改善HA控制系统的容错性。并发连接是对传输层的工业协议连接的容错机制给予的名称。并发连接不同于网络容错机制,例如在网络层提供容错的设备级环网(DLR)和并行冗余协议(PRP)。并发连接由连接开启服务创建,连接开启服务设置从连接发起者模块到连接目标模块的用于冗余的多条路径。并发连接提高 HA控制和安全仪表系统的可用性。更具体地,并发连接和架构冗余消除了控制系统内的单点故障,并进一步减少了故障检测和/或恢复期间的安全连接超时。
在本发明的一个实施方式中,公开了通过高可用性工业控制传送数据的系统。该系统包括第一生产者、第二生产者和第一消费者。第一生产者可操作以生成用于传输的第一数据分组,其中,第一数据分组包括定义系统中用于通信的连接的唯一标识符。第二生产者可操作以生成用于传输的第二数据分组,其中,第二数据分组包括唯一标识符,并且第二数据分组与第一数据分组并发传输。第一消费者可操作以首先接收第一数据分组和第二数据分组中之一,然后其次接收第一数据分组和第二数据分组中之一,从首先接收的第一数据分组和第二数据分组之一中提取数据,将从第一数据分组和第二数据分组之一中提取的数据传输至第一消费者内的控制电路,根据唯一标识符将其次接收的第一数据分组和第二数据分组之一标识为冗余,以及忽略来自被标识为冗余的第一数据分组和第二数据分组之一的数据。消费者内的控制电路可以是微处理器、诸如现场可编程阵列的可编程器件、专用集成电路、互连到电路中的单独逻辑器件等。控制电路执行控制电路所在的模块的功能。
在本发明的另一实施方式中,公开了通过高可用性工业控制网络传送数据的方法。利用第一生产者生成用于传输的第一数据分组,其中第一数据分组包括定义连接的唯一标识符。利用第二生产者生成用于传输的第二数据分组,其中第二数据分组包括唯一标识符。来自第一生产者的第一数据分组和来自第二生产者的第二数据分组被并发传输至第一消费者。在第一消费者处首先接收第一数据分组或第二数据分组,并且在第一消费者处其次接收第一数据分组和第二数据分组中的另一分组。从利用第一消费者首先接收的第一数据分组和第二数据分组中的任何一个中提取数据。第一消费者根据唯一标识符将其次接收的第一数据分组或第二数据分组标识为冗余。第一消费者忽略来自被标识为冗余的数据分组中的数据。
在本发明的又一实施方式中,公开了用于在高可用性工业控制网络中开启连接的方法。利用一对发起者生成唯一连接标识符,其中该对发起者包括第一发起者和第二发起者。唯一连接标识符被存储在该对发起者中的每一个的存储器中。在第一发起者中生成第一并发连接开启请求,并且在第二发起者中生成第二并发连接开启请求。第一并发连接开启请求和第二并发连接开启请求中的每一个包括唯一连接标识符。逐跳地将第一并发连接开启请求从第一发起者传输至第一目标,以建立第一通信路径,并且以逐跳地将第二并发连接开启请求从第二发起者传输至第一目标,以建立第二通信路径。第一目标连续接收第一并发开启请求和第二并发开启请求。响应于接收第一并发开启请求,利用第一目标将工业控制网络中的连接标记为开启,并且响应于接收第二并发开启请求,将第二并发开启请求标识为连接的一部分。
从详细描述和附图中,对于本领域技术人员而言本发明的这些和其他优点和特征将变得明显。然而,应当理解的是,详细描述和附图虽然表明了本发明的优选实施方式,但是是以说明性而非限制性的方式给出的。在不脱离本发明的精神的情况下,可以在本发明的范围内进行许多改变和修改,并且本发明包括所有这些修改。
附图说明
在附图中示出了本文中公开的主题的各种示例性实施方式,其中相同的附图标记始终表示相同的部件,并且其中:
图1是高可用性工业控制系统的一个实施方式的框图;
图2是进一步表示图1的工业控制系统的方面的框图;
图3是表示可以合并本发明的示例性工业控制系统的一个实施方式的框图;
图4是在图3的控制系统中建立的现有技术连接的运行时(runtime) 数据流图示;
图5是表示合并本发明的高可用性控制系统的另一实施方式的框图;
图6是在图5的高可用性控制系统中建立的并发连接的一个实施方式的运行时数据流图示;
图7是在具有三重冗余的高可用性控制系统中建立的并发连接的另一实施方式的运行时数据流图示;
图8是表示合并本发明的高可用性控制系统的另一实施方式的框图;
图9是在图8的高可用性控制系统中建立的并发连接的一个实施方式的运行时数据流图示;
图10是在具有三重冗余的高可用性控制系统中建立的并发连接的另一实施方式的运行时数据流图示;
图11是示出用于示例性高可用性控制系统中的并发连接开启过程的模块之间的消息流的流动图;
图12是根据本发明一个实施方式的用于并发连接开启请求的数据消息格式的框图表示;
图13是示出用于另一示例性高可用性控制系统中的并发连接开启过程的模块之间的消息流的流动图;
图14是示出当模块的一部分已经故障或丢失时,用于图11的示例性高可用性控制系统中的并发连接开启过程的模块之间的消息流的流动图;
图15是示出了根据本发明的一个实施方式的利用并发连接在运行时操作期间图11的高可用性控制系统中的模块在第一方向上的消息流的流动图;
图16是示出了根据本发明的一个实施方式的利用并发连接在运行时操作期间图11的高可用性控制系统中的模块在第二方向上的消息流的流动图,其中第二方向与图15中所示的方向相反;
图17是根据本发明的一个实施方式的用于并发连接的数据消息的扩展网络段格式的框图表示;
图18是示出了根据本发明的一个实施方式的利用并发连接在运行时操作期间图13的高可用性控制系统中的模块在第一方向上的消息流的流动图;
图19是示出了根据本发明的一个实施方式的利用并发连接在运行时操作期间图13的高可用性控制系统中的模块在第二方向上的消息流的流动图,其中第二方向与图18中所示的方向相反;
图20是示出了根据本发明的一个实施方式的利用并发连接在运行时操作期间图15的高可用性控制系统中的模块在第一方向上的消息流的流动图,其中适配器模块之一故障或被移除;
图21是示出了根据本发明的一个实施方式的利用并发连接在运行时操作期间图16的高可用性控制系统中的模块在第二方向上的消息流的流动图,其中适配器模块之一故障或被移除;
图22是根据本发明的另一实施方式的在高可用性工业控制系统中通过工业控制网络传送数据的双重冗余系统的一个实施方式的框图表示;
图23是表示单个适配器模块发生故障的图22的双重冗余系统的框图;
图24是表示单个IO模块发生故障的图22的双重冗余系统的框图;
图25是表示单个控制器发生故障的图22的双重冗余系统的框图;
图26是根据本发明的另一实施方式的在高可用性工业控制系统中通过工业控制网络传送数据的双重冗余系统的另一实施方式的框图表示;
图27是表示单个适配器模块发生故障的图26的双重冗余系统的框图;
图28是表示多个模块发生故障的图25的双重冗余系统的框图;
图29是根据本发明的另一实施方式的在高可用性工业控制系统中通过工业控制网络传送数据的部分三重冗余系统的一个实施方式的框图表示;
图30是表示单个IO模块发生故障的图29的部分三重冗余系统的框图;
图31是表示单个适配器模块发生故障的图29的部分三重冗余系统的框图;
图32是表示第一控制器发生故障的图29的部分三重冗余系统的框图;
图33是表示第二控制器发生故障的图29的部分三重冗余系统的框图;
图34是表示第三控制器发生故障的图29的部分三重冗余系统的框图;
图35是根据本发明的另一实施方式的在高可用性工业控制系统中通过工业控制网络传送数据的具有冗余网络的系统的一个实施方式的框图表示;
图36是表示一个网络发生故障的图35的具有冗余网络的系统的框图;
图37是表示单个IO模块发生故障的图35的具有冗余网络的系统的框图;
图38是表示单个控制器发生故障的图35的具有冗余网络的系统的框图;
图39是示出用于高可用性工业控制系统的冗余控制器的框图;
图40是表示一对控制器中的一个控制器发生故障的图39的冗余控制器的框图;
图41是表示另一对控制器中的一个控制器发生故障的图39的冗余控制器的框图;
图42是示出用于高可用性控制系统的冗余机架的框图;
图43是表示一个控制器发生故障的图42的冗余机架的框图;
图44是表示一个桥模块发生故障的图42的冗余机架的框图;
图45是表示不同控制器发生故障的图42的冗余机架的框图;
图46是表示不同桥模块发生故障的图42的冗余机架的框图;以及
图47是表示一对控制器中的一个控制器发生故障并且另一对控制器上的桥模块发生故障的图42的冗余机架的方框图。
在描述附图中示出的本发明的各种实施方式时,为了清楚起见,将采用特定术语。然而,并不意图将本发明限制于如此选择的特定术语,并且应当理解的是,每个特定术语包括以类似方式操作以实现类似目的的所有技术等同物。例如,经常使用“连接”、“附接”或与其类似的术语。它们不限于直接连接,而是包括通过其他元件的连接,其中这样的连接被本领域技术人员认为是等同的。
具体实施方式
参照在以下描述中详细描述的非限制性实施方式,更全面地解释本文中公开的主题的各种特征和有利细节。
首先转向图1和图2,示出了具有冗余子系统的示例性工业控制系统 5。工业控制系统5包括第一控制器机架10和第二控制器机架15。如图所示,第一控制机架10和第二控制器机架15是模块化的,并且可以由许多不同的模块组成。可以添加附加模块或移除现有模块,并且重新配置第一控制器机架10和第二控制器机架15以适应新配置。可选地,第一控制器机架10和/或第二控制器机架15可以具有预定和固定的配置。第一控制器机架10和第二控制器机架15可以具有单个底板或双底板,以便于机架中的模块之间的通信。在所示的示例性系统中,第一控制器机架10和第二控制器机架15都包括电源模块20、控制器模块(或者也简称为“控制器”)25和网桥模块30。每个控制器机架10和15进一步被示为具有可根据应用要求而选择的附加模块35。例如,附加模块35可以是模拟或数字输入或输出模块,本文中通常将其称为IO模块。可选地,每个机架可以被配置成根据应用要求具有多个附加模块35。为了便于说明,示出了单个附加模块35,并且所示模块是冗余模块,以利于双机架控制器冗余。
操作者接口40被示为连接至工业控制系统。操作者接口40可以包括处理设备45和输入设备50。输入设备50可以包括但不限于键盘、触摸板、鼠标、跟踪球或触摸屏。操作者接口还可以包括输出设备55。输出设备55可以包括但不限于显示器、扬声器或打印机。可以设想,操作者接口40的每个部件可以合并到单个单元中,例如工业计算机、膝上型计算机或平板计算机中。进一步设想可以围绕工业控制系统5分布多个操作者接口。操作者接口40可以用于显示受控机器或处理的操作参数和/或条件;接收来自操作者的命令或者改变和/或加载控制程序或配置参数。接口缆线将操作者接口40连接到第一控制器机架10上的控制器25。
第一控制器机架10和第二控制器机架15根据应用要求通过网络65 连接至其他设备。通过合适的缆线网络将控制器机架10和15的桥模块 30连接至冗余网络基础设施70,从而建立冗余网络拓扑。网络基础设施 70连接至第一远程机架75和第二远程机架80。可以设想,网络缆线可以是被配置成经由专用接口通信的定制缆线,或者可以是任何标准工业网络,包括但不限于,以太网/IP,DeviceNet或ControlNet。网桥模块30和网络70被配置成根据与其连接的网络的协议进行通信,并且还可以被配置成在两个不同的网络协议之间转换消息。专用接口缆线67将每个机架中的冗余模块35彼此连接,从而在控制器模块25之间提供专用通信信道。
第一远程机架75和第二远程机架80位于围绕受控机器或处理的不同位置。如所示出的,第一远程机架75和第二远程机架80是模块化的,并且可以由在机架中连接在一起或安装在轨道上的多个不同模块组成。可以添加附加模块或移除现有模块,并且重新配置远程机架75或80以适应新配置。可选地,第一远程机架75和第二远程机架80可以具有预定和固定的配置。第一远程机架75和第二远程机架80可以具有单个底板或双底板,以利于机架中的模块之间的通信。如所示出的,第一远程机架75和第二远程机架80各自包括一对网络适配器模块90、输入模块100和输出模块 105。每个网络适配器模块90通过合适的缆线网络连接至冗余网络基础设施70。输入模块100中的每一个被配置成从受控设备接收输入信号,并且输出模块105中的每一个被配置成向受控设备提供输出信号。可选地,其他模块仍可以包括在远程机架中。双重冗余或三重冗余输入模块100和 /或输出模块105可以包括在远程和/或控制器机架中。应当理解的是,工业控制网络、工业控制器和远程机架可以在不偏离本发明的范围的情况下采用许多其他形式和配置。还应当理解的是,输入模块100和输出模块 105可以形成IO模块110。
接下来参照图2,以框图形式示出了图1的示例性工业控制系统的一部分。设想的是系统中的每一个模块可以包括处理器145和存储器150。处理器145被配置成执行指令,并访问或存储在相应存储器150中存储的操作数据和/或配置参数。处理器145是根据节点要求的合适的处理器。设想的是处理器145可以包括单个处理设备或并行执行的多个处理设备,并且可以以单独的电子设备来实现,或合并在单个电子设备中,电子设备例如是现场可编程门阵列(FPGA)或专用集成电路(ASIC)。处理器145 包括用于处理运行时数据的随机存取存储器147。存储器设备150是非暂态存储介质,其可以是单个设备、多个设备,或者可以部分地或整体地合并在FPGA或ASIC内。每一个模块还包括时钟电路155,并且每个时钟电路155优选地根据例如IEEE-1588时钟同步标准与其他时钟电路155同步。每个时钟电路155生成时间信号,该时间信号可配置成报告精确至微秒或纳秒的当前时间。安装在同一机架中或包含在单个外壳内的模块之间的通信经由底板160发生。底板160可以是单个底板或双底板,并且包括相应的底板连接器165。经由网络介质通信的模块包括被配置成处理相应网络协议的端口170。输入模块100包括输入端子175,输入端子175被配置成从受控设备接收输入信号。输入模块100还包括处理输入信号并将输入信号从输入端子175转移至处理器145所需的任何相关逻辑电路180 和内部连接185。类似地,每个输出模块105包括输出端子190,输出端子190被配置成将输出信号传输至受控设备。输出模块105还包括处理输出信号并将输出信号从处理器145转移至输出端子190所需的任何相关逻辑电路195和内部连接200。
在操作中,连接是工业协议中的传输层机制,以通常以给定的周期性间隔在两个端点之间转移双向数据。某些连接类型不是以周期性间隔转移数据,而是在发生事件时或响应于所规划的请求/响应机制而转移数据。一些连接仅在一个方向上转移数据,而在反向方向上仅发送心跳指示 (heartbeat indication)以保持连接有效。但是,通常地,连接在两个方向上转移数据。
经由通过底板和/或网络发送的消息,通过从连接发起者模块到连接目标模块经由零个或多个中间模块的连接开启服务请求来开启连接。连接发起者模块通常是控制器机架或人机接口(HMI)中的控制器模块。连接目标模块可以是例如IO模块、电机驱动模块、另一控制器模块、网络适配器模块或在同一机架中作为控制器模块的网桥模块或在远程机架中的网桥模块。中间模块可以是网桥模块和/或网络适配器模块中的一个或更多个。连接开启请求消息包含定义连接的参数,例如连接类型、在每个方向上转移的数据大小、传输消息的周期性间隔的持续时间、连接超时持续时间、从发起者模块通过中间模块至目标模块的端到端路径等。这些参数用于分配资源(例如,CPU带宽、存储器和网络带宽),以服务于与连接相关联的模块上的运行时的连接。当在与连接相关联的模块上成功分配资源时,根据连接开启请求在反方向上从目标模块将成功响应传送返回发起者模块,并且该连接可操作用于运行时数据转移。如果不能在与连接相关联的模块之一上分配资源,或者如果模块之一不能将连接开启请求消息传送给路径中的下一个模块,则会将失败响应从连接开启请求失败的模块返回到发起者模块。
一旦开启连接,就可以通过从发起者模块通过任何中间模块(作为连接的一部分)到连接的目标模块的连接关闭服务请求来关闭它。可选地,还可以通过运行时连接超时机制来关闭连接。在运行期间,作为连接的一部分的每个模块监视来自其上游模块的数据接收,对于末端模块或中间模块而言根据情况在一个或两个方向上的数据接收,并且当在等于连接超时持续时间的时间长度中在监视的方向上没有接收到数据时,发生连接超时的模块将关闭连接以恢复所分配的资源。由于网络或底板中的模块故障或通信故障,可能会发生连接超时。
接下来转向图3,控制系统的第一实施方式包括控制器机架中的控制器模块25,以及远程机架中的网络适配器模块90和IO模块110,其中控制器机架和远程机架经由网络基础设施70连接。控制器模块25能够在网络上直接通信并通过网络缆线连接至网络基础设施70。类似地,远程机架上的网络适配器模块90通过网络缆线连接至网络基础设施70,并通过机架内的底板与同一机架上的IO模块110通信。通过经由网络基础设施 70向远程机架中的网络适配器模块90发送连接开启请求消息,从作为连接发起者模块的控制器模块25到作为连接目标模块的IO模块110开启了连接,其中,网络适配器模块作为中间模块。网络适配器模块90又通过机架中的底板向IO模块110发送连接开启消息。成功响应经由网络适配器模块90和网络基础设施70以相反方向从IO模块110返回到控制器模块25,并且该连接现在开启以转移数据。
一旦建立了连接,就不再将模块称为如开启/关闭处理期间使用的发起者模块和目标模块。相反,术语生产者和消费者用于识别连接中的运行时数据生产者和数据消费者。由于数据转移通常是双向的,因此取决于数据流的源和方向,控制器模块25是生产者P(c)和消费者C(c)二者。类似地,取决于数据流的源和方向,IO模块110是生产者P(io)和消费者C(io)二者。
参照图4,示出了现有技术连接中的双向数据流的表示。示出了对应于图3中的模块的运行时数据流模型,其中块A表示网络适配器模块90。先前,连接建立了用于双向数据流的单个端到端路径。如图所示,当IO 模块110正在生成数据并经由连接将数据发送至控制器模块25时,数据在从P(io)到C(c)的一个方向上流动,并且当控制器模块25正在生成数据并将数据发送到IO模块110时,数据在从P(c)到C(io)的另一方向上流动。然而,在建立连接时,现有技术的连接仅具有利用双向运行时数据流能力在发起者模块与目标模块之间识别的一个端到端路径。
本发明在单个连接中提供多个端到端路径,从而提高HA控制系统的可靠性。HA控制系统通常包括若干冗余子系统,例如冗余工业控制器、冗余底板、冗余桥、冗余适配器、冗余输入/输出(IO)模块、冗余电动机驱动器和/或冗余通信网络。在每个子系统中提供物理冗余,使得如果在子系统中的元件之一中发生故障,则操作可以经由其他元件继续。接下来参照图5,示出了具有冗余子系统的HA控制系统的一个实施方式。所示实施方式包括控制器机架中的两个控制器25,控制器1和控制器2。控制器25通过控制器机架中的双底板彼此通信。控制器25中的每一个通过网络缆线连接至两个网络基础设施70,网络1和网络2。远程机架包含两个IO模块110,IO 1和IO 2,以及两个网络适配器模块90,适配器1和适配器2。远程机架上的IO模块110和网络适配器模块90通过远程机架内的双底板彼此通信。网络适配器模块90各自通过网络缆线连接至两个网络基础设施70。IO模块110具有可以连接至受控设备的有限数量的IO 端点,例如,8个IO端子。远程机架上的两个冗余IO模块110上的每个相应的IO端子连接至相同的受控设备以用于冗余。尽管用一对冗余IO模块110和8个IO端子示出,但是在整个受控机器或处理中典型的HA控制系统具有连接至受控设备的数千个这样的冗余IO端点。
在HA控制系统中,并发连接用于冗余端模块之间(例如图5中所示的冗余控制器25与冗余IO模块110之间)的双向数据转移。并发连接是容错传输层机制,以响应于触发转移的事件或响应于请求/响应转移,在 HA控制系统中的多个冗余端点之间以周期性间隔转移双向数据。并发连接使用每个子系统中的物理冗余建立并管理多个冗余的端到端路径上的冗余端模块之间的双向数据转移,使得只要在每个端至少有一个端模块可用,并且至少有一个端到端路径可用于连接的每个端的模块之间的数据转移,那么不同子系统中的一个或更多个故障就不会影响数据转移。并发连接具有架构灵活性,以处理每个子系统中不同级别的物理冗余。例如,并发连接可以处理没有冗余或具有不同级别的冗余的子系统,例如单个控制器、双重冗余适配器和三重冗余IO模块。典型的HA控制系统具有冗余控制器与冗余IO模块之间、冗余控制器与其他冗余控制器之间、冗余控制器与人机接口(HMI)之间或其组合的数千个并发连接。
单个并发连接在冗余端模块之间具有多个端到端数据路径。接下来参照图6,示出了图5的示例性HA控制系统中的单个并发连接的运行时数据流模型。在数据流的第一方向上,IO模块110可以都是生产者,P(io) 1和P(io)2,并且控制器25可以都是消费者,C(c)1和C(c)2。在数据流的另一方向上,控制器25可以都是生产者,P(c)1和P(c)2,并且IO模块110可以都是消费者,C(io)1和C(io)2。两个网络适配器模块90由A1和A2表示。根据所示的流模型,存在三个模块级(即,控制器级、适配器级和IO模块级),在每个级中具有双重冗余。
如下面将更详细讨论的,在单个并发连接中沿着不同的端到端路径经由冗余数据分组将相同数据从每个生产者相继地(in tandem)传输至每个消费者。存在8个端到端路径可用于相同数据的双向数据转移。端到端路径的示例是具有相应的反向路径的P(c)1:A1:C(io)1;P(C)2: A1:C(IO)1等。只要至少一个控制器模块25和一个IO模块110以及它们之间的端到端数据路径之一正在工作,就可以在模块之间传送数据并且可以维持控制。
接下来参照图7,针对在具有三级并且每级中三重冗余的HA控制系统中建立的并发连接示出了另一运行时数据流模型。换句话说,控制器机架包括三个冗余控制器25,远程机架包括三个冗余IO模块110和三个冗余网络适配器模块90。类似地,在控制器机架与远程机架之间建立三重冗余网络基础设施70。在所示实施方式中,存在可用于单个并发连接中的数据转移的27个端到端路径。
还参照图8,示出了包括网桥模块30的HA控制系统的另一实施方式,并且图9示出了在图8的HA控制系统中建立的并发连接的运行时数据流模型。在数据流模型中,桥模块30由B1和B2表示。存在四级(即控制器级、桥级、适配器级和IO模块级),并且每级中双重冗余。在这种情况下,存在可用于数据转移的16个端到端路径。
图10示出了在具有四级并且每级中三重冗余的HA控制系统中建立的并发连接的另一运行时数据流模型。换句话说,控制器机架包括三个冗余控制器25和三个冗余桥模块30。远程机架包括三个冗余IO模块110 和三个冗余网络适配器模块90。类似地,在控制器机架与远程机架之间建立三重冗余网络基础设施70。在这种情况下,存在可用于数据转移的81个端到端路径。通常,如果存在“n”级,R1是级1中的冗余模块的数量,R2是级2中的冗余模块的数量,并且Rn是级n中的冗余的数量,则 HA控制系统中端到端路径的总数等于R1×R2×...×Rn。对于所有“n”级具有相同数量的冗余模块的特定情况,则该表达式简化为Rn。换句话说,可用于数据转移的端到端路径的数量随着级的数量和每级中冗余模块的数量呈指数增长。
建立并发连接的一个方面是在单个连接中在端模块之间建立冗余的端到端数据路径。如果使用图3的现有技术连接来期望类似的操作,则将需要大量额外资源。例如,参照图8所示的系统,作为发起者模块的每个控制器25需要首先识别其自身与目标模块之间可用的所有端到端路径。在所示实施方式中,然后要求每个控制器25开启从其自身到作为目标模块的IO模块110的8个标准连接,从而在冗余控制器25与冗余IO模块 110之间产生16个标准连接。
实现多个标准连接以创建冗余通信路径包括许多缺点。假设所有模块和端到端路径沿着16个标准连接都是活跃的,则每个端模块需要分配8 组资源,其中一组资源对应于8个标准连接中的每一个。对于每个数据生产周期,每个端模块需要发送或接收8个数据分组,其中在8个标准连接中的每一个上发送一个数据分组。对于每个数据生产周期,每个中间模块也需要接收和发送通过该中间模块的所有数据分组。最后,对于每个数据生产周期,每个消费者端模块需要识别并放弃多达7个重复数据分组。
另一方面,使用多个标准连接来创建冗余通信路径允许开启所有可用的端到端数据路径,并且允许所有资源被分配作为连接开启过程的一部分,因此不存在分配资源的运行时失败的风险。通常,为了使用多个标准连接来创建冗余通信路径所需的资源数量和需要在运行时处理的数据分组的数量取决于级数和每级中冗余模块的数量二者。
相反,一个并发连接包含在这些标准连接中限定的所有16个端到端路径。建立并发连接以包含这些端到端路径中的每一个将再次参照图8所示的系统进行讨论。与限定端到端数据路径的标准连接相比,并发连接限定每跳连接(per hop connections)。由作为并发连接的一部分的所有模块逐跳地识别并开启每跳连接。每跳连接是指从上游模块到直接下游模块的本地数据路径上的连接。控制器1将开启到桥1和桥2的每跳连接,桥1 将开启到适配器1和适配器2的每跳连接,依此类推。如先前讨论的,与用于端到端路径的16个标准连接相比,在本地数据路径上总共开启了12 个每跳连接。所有12个每跳连接形成了用单个并发连接序列号标识的单个并发连接的一部分。
与单独的端到端连接所需的8组资源相比,每个模块仅需要分配具有一些小的额外开销的一组资源。此外,每个模块在每个数据生产周期仅需要发送和/或接收两个数据分组。例如,参照图9,作为生产者的每个控制器25在跳的结束处将相同数据分组的两个副本发送至两个网桥模块30中的每一个。仅将网桥模块30接收的第一个非错误数据分组转发到下游跳中的两个网络适配器模块90中的每一个。由网桥模块接收的任何重复数据分组都在低级处被丢弃,而不消耗大量的CPU带宽。在图9的数据流模型中,每级仅存在两个冗余模块。因此,网桥模块30将转发所接收的第一个非错误数据分组,并丢弃作为重复接收的第二个分组。在图10的数据流模型中,每级存在三个冗余模块。因此,网桥模块30将转发所接收的第一个非错误数据分组,并丢弃作为重复接收的第二个和第三个分组。
类似地,仅将网络适配器模块90接收的第一个非错误数据分组转发到下游另一跳中作为消费者模块的两个IO模块110中的每一个。由网络适配器模块90接收的任何重复数据分组都在低级处被丢弃,而不消耗大量CPU带宽。类似地,仅处理由IO模块110中的每一个接收的第一个非错误数据分组。由IO模块110接收的任何重复数据分组在低级处被丢弃而不消耗大量CPU带宽。反向的数据流也以类似的方式处理,其中,IO 模块110成为生产者模块,控制器25成为消费者模块。简而言之,与在单独的端到端连接限定冗余通信路径的情况下每个模块处理的8个数据分组相比,在并发连接限定冗余通信路径的情况下,图8中的每个模块仅需要处理两个数据分组。
并发连接享有单独的端到端连接的优点而没有相关的缺点。所有可能的端到端数据路径都是活跃的,以便利用每跳配置在没有出现故障的情况下传输数据,就像利用单独的端到端连接一样。当本地数据路径中发生故障时,只需关闭相关的跳连接。在由于单个本地数据路径故障(即,由于关闭每跳连接)可能影响生产者与消费者之间的多个数据路径时,影响就像是在限定单独的端到端连接的情况下发生相同的故障。然而,如果限定了多个单独的端到端连接,则需要关闭多个连接。当模块中发生故障时,可能需要关闭多个上游和/或下游跳连接。然而,只要一个控制器25、一个IO模块110和它们之间的一个数据路径是活跃的,就可以在并发连接上维持控制。
现在将提供对并发连接的更详细描述。图11示出了用于单个并发连接的示例性HA控制系统中的并发连接开启过程的消息流模型。应当注意的是,图11仅示出了消息流而不是所有物理布置,例如网络基础设施、底板等。根据所示实施方式,两个控制器机架,控制器机架A和控制器机架B以双机架冗余模式配置。每个控制器机架包括控制器300、桥模块320和冗余模块335。控制器机架A包含控制器A 300A和桥A 320A。控制器机架B包含控制器B300B和桥B 320B。存在具有两个适配器模块305(适配器A 305A和适配器B 305B)以及两个IO模块310(IO模块A 310A和 IO模块B 310B)的远程机架。此外,还存在两个冗余模块,冗余模块A 335A 和冗余模块B 335B,其中一个冗余模块位于每个控制器机架中。提供冗余模块335以利于控制器A 300A与控制器B 300B之间的通信。每个控制器300包括存储的用户控制程序,存储的用户控制程序包含诸如以下的信息:要执行的控制任务、作为那些任务的一部分的用户例程、以及需要创建的所有并发连接的信息。用于并发连接的存储信息包括诸如以下的参数:连接类型、在每个方向上转移的数据大小、传输消息的周期性间隔的持续时间、连接超时持续时间、以及作为并发连接的一部分的所有模块的逻辑路径信息。两个控制器300是连接发起者,并且正在与两个IO模块 310建立并发连接,这两个IO模块310是并发连接开启过程期间的连接目标。
两个控制器300开启并发连接,作为存储在每个控制器中的用户控制程序的启动过程的一部分。在开启并发连接之前,两个控制器300彼此交换连接信息,并针对每个并发连接生成全局唯一的并发连接序列号。每个并发连接的唯一序列号存储在每个控制器中,并在连接开启请求期间使用。
为了开启并发连接,两个控制器300中的每一个首先向从其各自机架上的控制器300至桥320的每跳连接分配资源。关于所分配的资源的信息与并发连接参数一起存储到每并发连接(per concurrent connection)控制数据结构中(例如,针对控制器A 300A由附图标记302标识的表)。然后,两个控制器,控制器A 300A和控制器B 300 B各自通过底板向位于各自控制器机架上的模块320(分别向桥A 320A和桥B 320B)发送并发连接开启请求消息CC_Open_Req。
图12示出了并发连接开启请求的消息格式。消息分组包含传输消息分组的通信介质所需的一个或更多个底板或网络特定头部。底板或网络特定头部之后是工业协议头部,工业协议头部包括指示例如消息分组是并发连接开启请求的消息类型信息。然后,消息分组包括连接参数和分组CRC。连接参数包括诸如以下的信息:全局唯一并发连接序列号、连接类型、在每个方向上要转移的数据大小、传输消息的周期性间隔的持续时间、连接超时持续时间、以及限定作为连接的一部分的每一个模块的逻辑路径。下面包括的表1向下游模块提供可以编码在连接参数中以用于并发连接开启请求的示例性逻辑路径信息。每个控制器300包括一组完整的地址,对于这些地址,将在并发连接中建立每跳连接。除了下面包括的信息之外,控制器300还具有以下参数:该参数限定是否包括桥模块320,并且如果是,则限定它们位于多少个逻辑地址以及在什么逻辑地址。控制器300建立到每个桥模块320的每跳连接,并在适当的连接开启请求消息中将用于适配器模块305和IO模块310的信息传递给桥模块。每个桥模块320建立到每个适配器模块305的每跳连接,并在并发连接开启请求消息中将用于IO模块310的信息传递给适配器模块。因此,当建立每个每跳连接时,在并发连接开启请求消息中传递用于后续每跳连接的信息。
Figure BDA0002145492940000161
表1:并发连接开启请求的示例性逻辑路径信息
返回参照图11,当两个桥模块320中的每一个从相应的控制器300 接收并发开启请求消息时,每个桥模块320将作为消息的一部分的所有连接参数(包括唯一的并发连接序列号)和关于消息发送者的信息保存在桥模块内的每并发连接控制数据结构中。然后,每个桥模块320为到上游控制器300的每跳连接以及为到两个下游适配器模块305的每跳连接分配资源。这些分配的资源中的每一个的信息将被保存到每并发连接控制数据结构中。然后,每个桥模块320通过网络向两个下游适配器模块305发送并发开启请求消息,以建立下一个每跳连接。
每个适配器模块305进而接收两个并发连接开启请求消息,从每个上游桥模块320接收一个。由于网络通信的串行传输性质,每个适配器模块 305将在不同时间接收到两个并发连接开启请求消息。当每个适配器模块 305从上游桥模块320接收到第一个并发开启请求消息时,它将作为消息的一部分的所有连接参数(包括唯一的并发连接序列号)和关于消息发送者的信息保存到每并发连接控制数据结构(例如针对适配器A 305A由附图标记307标识的表)中。然后,每个适配器模块305为到上游桥模块 320的每跳连接以及为到两个下游IO模块310的每跳连接分配资源。这些分配的资源中的每一个的信息将被保存到每并发连接控制数据结构中。然后,每个适配器模块305通过远程机架上的底板向两个下游IO模块310 发送并发开启请求消息,以建立下一个每跳连接。
当每个适配器模块305从上游桥模块320接收到第二个并发开启请求消息时,适配器模块305将接收到的第二个开启请求消息中的全局唯一并发连接序列号与已经保存在每并发连接控制数据结构中的第一个开启请求消息中的并发连接序列号进行比较。当并发连接序列号与先前存储的序列号匹配时,适配器模块305将该消息识别为冗余消息,并且适配器模块 305通过将第二发送者信息添加到并发连接信息,来将第二个连接开启请求消息加入到每并发连接控制数据结构中的已保存的并发连接信息中,并使用已经为上游和下游每跳连接分配的资源。因此,当每个模块从上游模块接收冗余的并发连接开启请求时,模块识别它所连接的每个上游跳,但是仅转发单个并发连接开启请求(而不是转发每个并发连接开启请求)到该模块所要建立下游跳连接的其他下游模块中的每一个。
每个IO模块310接下来接收两个并发连接开启请求消息,从每个上游适配器模块305接收一个。由于底板通信的串行传输性质,每个IO模块310将在不同的时间接收到两个并发连接开启请求消息。当每个IO模块310从上游适配器模块305接收到第一个并发开启请求消息时,它将作为消息的一部分的所有连接参数(包括唯一的并发连接序列号)和关于消息发送者的信息保存到每并发连接控制数据结构(例如,针对IO模块A 310A由附图标记312标识的表)中。注意,为方便起见,仅示出了三个并发连接控制数据结构。然而,可以理解的是,并发连接内的每个模块将保持其自己的并发连接控制数据结构。然后,每个IO模块310为到上游适配器模块305的每跳连接分配资源,并将关于那些资源的信息保存到每并发连接控制数据结构中。然后,每个IO模块310将并发连接状态标记为开启,并将来自第一上游适配器模块305的跳路径标记为开启。在将并发连接建立为开启之后,每个IO模块310生成并向第一上游适配器模块 305发送具有成功状态的并发连接开启响应消息,其中每个IO模块310 通过远程机架上的底板从该第一上游适配器模块305接收连接开启请求。
当每个IO模块310从上游适配器模块305接收到第二个并发开启请求消息时,IO模块310将接收到的第二个开启请求消息中的全局唯一并发连接序列号与已经保存在每并发连接控制数据结构中的第一个开启请求消息中的并发连接序列号进行比较。当并发连接序列号与先前存储的序列号匹配时,IO模块310将该消息识别为冗余消息,并且IO模块310通过将第二发送者信息添加到每并发连接控制数据结构中的已保存的信息,来将第二个连接开启请求消息加入到已开启的并发连接中。IO模块310 使用已经为到第一适配器模块305的上游每跳连接分配的资源,并将来自第二上游适配器的跳路径标记为开启。然后,IO模块310向第二上游适配器模块305发送具有成功状态的并发连接开启响应消息,其中IO模块310通过远程机架上的底板从该第二上游适配器模块305接收连接开启请求。
当上游适配器模块305从两个下游IO模块310中的第一个接收到具有成功状态的第一个并发连接开启响应消息时,适配器模块305将并发连接状态标记为开启,并且将来自该下游IO模块310的跳路径标记为开启。然后,适配器模块305进而通过网络基础设施向两个上游桥模块320发送具有成功状态的并发连接开放响应消息。当适配器模块305从第二下游IO 模块310接收到具有成功状态的第二个并发连接开启响应消息时,适配器模块305将来自该下游IO模块310的跳路径标记为开启。
当上游桥模块320从两个下游适配器模块305中的第一个接收到具有成功状态的第一个并发连接开启响应消息时,桥模块320将并发连接状态标记为开启,并且将来自该下游适配器模块305的跳路径标记为开启。然后,桥模块320进而通过相应机架内的底板向上游控制器发送具有成功状态的并发开启响应消息。当桥模块320从第二下游适配器模块305接收具有成功状态的第二并发连接开启响应消息时,桥模块320将来自该下游适配器模块305的跳路径标记为开启。
当上游控制器300从下游桥模块320接收到具有成功状态的并发连接开启响应消息时,控制器300将并发连接状态标记为开启,并且将来自该下游桥模块320的跳路径标记为开启。因此,并发连接现在开启,并且准备好转移数据。
图13示出了用于单个并发连接的另一示例性HA控制系统中的并发连接开启过程的消息流模型。应当注意的是,图13仅示出了消息流而不是所有物理布置,例如网络基础设施、底板等。在图13所示的实施方式中,两个控制器315,控制器A 315A和控制器B 315B,处于单机架冗余模式。这两个控制器能够经由底板直接彼此通信,并且在网络上直接与适配器模块305通信,而不利用桥模块。HA控制系统的其余部分被配置成类似于图11中所示并且如上面描述的那样。两个控制器315是连接发起者,并且正在与两个IO模块310建立并发连接,这两个IO模块310是并发连接开启过程期间的连接目标。在该实施方式中,控制器315将直接向两个适配器模块305中的每一个发送并发连接开启请求消息作为第一跳。连接开启过程以相同的方式前进到IO模块310并返回,如前面参考图11 描述的,除了并发连接开启响应消息将直接从适配器模块305发送到控制器315以外。当上游控制器315从下游适配器模块305之一接收到具有成功状态的第一个并发连接开启响应消息时,它将并发连接状态标记为开启,并且将来自该下游适配器模块的跳路径标记为开启。当上游控制器 315从另一个下游适配器模块305接收到具有成功状态的第二个并发连接开启响应消息时,它将来自该下游适配器模块的跳路径标记为开启。因此,并发连接现在开启,并且准备好转移数据。
当接收并发连接开启请求的模块不能为该请求分配资源或由于任何其他原因不能开启连接时,并发连接开启请求失败的模块向发送并发连接开启请求消息的上游模块发送具有失败状态的并发连接开启响应消息。当上游模块从下游模块接收到具有失败状态的并发连接开启响应消息时,它将来自该下游模块的跳路径标记为失败。
当所有模块沿着跳路径向另一模块发送并发连接开启请求消息时,所有模块以适当的超时持续时间来启动并发连接开启请求消息计时器。如果未从下游模块接收到具有成功或失败状态的并发连接响应消息,则发送开启请求消息的上游模块上的请求消息计时器将最终超时。然后,上游模块将来自该下游模块的跳路径标记为失败。
当模块识别到并发连接的所有下游跳路径被标记为失败时,它向其所有直接上游模块发送具有失败状态的并发连接开启响应消息。然后,针对失败的并发连接,识别到失败的下游跳路径的模块关闭并发连接,释放分配的资源,并删除存储在每并发连接数据结构中的所有信息。当每跳连接在并发连接的每一端之间的至少一条路径上开启时,并发连接将保持开启状态。只要并发连接开启,上游模块就有责任定期尝试使用所保存的连接参数在失败或关闭的跳路径上开启每跳连接。当并发连接未开启时,控制器有责任定期尝试使用所保存的连接参数来开启并发连接。
接下来转向图14,示出了具有多个故障的HA控制系统中的示例性并发连接开启请求消息的消息流模型。图14所示的HA控制系统与图11所示的系统相同;然而,控制器B300B、适配器A 305A、IO模块B 310B 在并发连接开启过程期间已经发生故障或不存在。并发连接开启过程如上面参考图11所描述地继续进行,带有一些改变以适应故障模块,现在进行描述。
在没有控制器B 300B的情况下,控制器A 300A自己针对并发连接生成全局唯一的并发连接序列号,并且当控制器B 300B稍后联机时控制器A 300A向控制器B 300B提供该唯一的序列号。由于控制器B 300B不存在或已经发生故障,并发连接开启请求消息不会从控制器B发送到桥B 320B或从不存在的控制器B发送到任何其他下游路径。类似地,由于适配器A 305A不存在,它不会向两个下游IO模块310中的任何一个发送并发连接开启请求消息。当桥A 320A将并发连接开启请求消息发送到两个适配器模块305中的每一个时,桥A 320A不会从适配器A 305A接收并发连接开启响应消息,因为缺少该适配器模块。类似地,适配器B 305B 将并发连接开启请求消息发送到两个IO模块310中的每一个,但是适配器B 305B不会从不存在的IO模块B 310B接收并发连接开启响应消息。最终,如上面描述的,在桥A 320A和适配器B 305B上的并发连接开启请求消息计时器为它们尝试建立但未接收到并发响应消息的跳路径生成超时指示。这导致桥A 320A和适配器B 305B将这些跳路径标记为故障。然而,具有成功状态的并发连接开启响应消息由适配器B 305B从IO模块A 310A接收,由桥A320A从适配器B 305B接收,以及由控制器A 300A 从桥A 320A接收,从而产生那些将开启的每跳连接。并发连接能够在发起者与目标之间的一条活跃路径上开启,并可以转移数据。当任何丢失的模块稍后联机时,上游模块将重试开启至直接下游模块的每跳连接,如前面描述的,并且这些每跳连接将被添加到现有并发连接。随着单个模块和所得到的每跳路径的恢复,并发连接的另外的路径变为活跃。
尽管关于图14的描述仅集中于模块故障,但是由于网络基础设施70 和底板中的故障导致的通信故障也将导致类似的行为,因为并发连接开启请求消息将不会到达下游模块。对于发送并发连接开启请求的模块,模块中的故障或传输介质中的故障将表现为相同。传输介质中的故障表现为来自任一通信方向的不存在的模块。例如,从下游模块的角度来看,传输介质中的故障表现为与上游模块不存在时相同。类似地,从上游模块的角度来看,通信故障看起来与下游模块不存在时相同。最终,前面描述的并发连接开启请求消息计时器在上游模块尝试建立跳路径、其中未接收到并发响应消息时生成超时指示,并且上游模块将该跳路径标记为故障。
现在将描述并发连接的运行时行为。图15和图16一起示出了在具有双机架控制器冗余的HA控制系统中的运行时期间在单个并发连接中的双向数据流模型。图15示出了上面参考图11讨论的HA控制系统,并且还示出了在先前开启的并发连接的一个方向上将在输入模块310处接收的受控设备的输入信号转移至控制器300的数据流。图16示出了在并发连接的另一个方向上将受控设备的输出信号从控制器300转移至IO模块310 的数据流。应该注意的是,图15和图16仅示出数据流,而不是所有物理布置,例如网络基础设施、底板等。图15示出了针对一个方向上的数据流的作为数据生产者的IO模块310和作为数据消费者的控制器300,并且图10示出了针对另一个方向上的数据流的作为数据生产者的控制器 300和作为数据消费者的IO模块310。针对本文中的讨论,将假设并发连接类型是周期性的,意味着数据将由IO模块310和控制器300两者以周期性间隔产生,以用于在两个方向上传输。
应当注意的是,在以下关于运行时操作所讨论的数据流模型的描述中,针对从生产者到消费者的数据流的方向使用术语上游和下游,并且不总是与上面讨论的从发起者到目标的并发连接开启过程中使用的那些术语相匹配。现在参照图15,对于每个数据生成周期,在远程机架上的冗余IO模块310,IO模块A 310A和IO模块B 310B中的每一个上执行的IO应用层任务对来自受控设备的输入信号进行采样。然后,在每一个冗余IO模块310上执行的IO应用层任务彼此交换采样的输入数据,并对在当前数据生成周期期间要生成的数据以及要使用的相关数据序列号达成一致。然后,每个冗余IO模块310中的IO应用层任务向在冗余IO模块 310上执行的并发连接层提供相同的所商定的数据和序列号,以及用于数据生成的唯一并发连接标识符。冗余IO模块310上的并发连接层将使用每个并发连接的唯一并发连接标识符来查找存储在该模块上的每并发连接控制数据结构。
然后,并发连接层为给定的并发连接构建并发连接数据分组,并通过远程机架中的底板将其发送至下游适配器模块305,适配器A 305A和适配器B 305B。图17示出了根据本发明的一个实施方式的并发连接数据分组350的格式。并发连接数据分组350包含一个或更多个底板或网络特定头部352,这是传输数据分组350的通信介质所需的,随后是工业协议头部354,工业协议头部354包括诸如分组类型、跳连接标识符等的信息。协议头部354之后是并发连接头部356、数据358,以及最后是分组CRC 360。并发连接头部356包括诸如以下的信息:唯一并发连接序列号、由应用层生成的数据序列号、以及根据并发连接头部356和数据负载358中的数据确定的单独的CRC。并发连接头部中的该单独的CRC用于确保并发连接头部和数据从生产者到消费者的完整性。最终的分组CRC 360逐跳地在网络或底板上在通信期间使用。
返回参照图15,当适配器模块305通过底板从上游IO模块310接收并发连接数据分组350时,适配器模块305验证并发连接头部356中存在的单独CRC是有效的。如果对单独CRC的CRC校验失败,则适配器模块305将丢弃该并发连接数据分组350。如果单独CRC校验通过,则适配器模块305使用该数据分组350中的跳连接标识符和并发连接序列号,以识别从其接收到该数据分组的跳连接以及存储在适配器模块305上的相应的每并发连接控制数据结构。然后,适配器模块305校验数据分组 350中的数据序列号是否比存储在并发连接控制数据结构中的数据序列号的值更新。如果序列号是存储值的重复或者比存储值更旧,则适配器模块 305将丢弃数据分组350。如果序列号比先前存储的值更新,则适配器模块305将该新序列号存储在并发连接控制数据结构中,并构建用于通过网络传输到两个下游桥模块320中的每一个的数据分组。
这个过程定义了适配器模块305的转发第一个到达者方案。换句话说,适配器模块305仅转发从每个IO模块接收的具有相同数据的第一个并发连接数据分组350。适配器模块305不关心数据分组350是从IO模块A接收还是从IO模块B接收,而仅关注两个分组中的第一个分组被重新传输至下一跳,而第二个分组或任何附加的冗余数据分组被丢弃。
当桥模块320通过网络从上游适配器模块305接收并发连接数据分组 350时,桥模块320将遵循与上述用于适配器模块305从IO模块310接收并发连接数据分组相同的过程。如果在桥模块320中所有校验都通过,则桥模块320进而构建并发连接数据分组并通过本地机架中的底板将并发连接数据分组发送至下游控制器300。
当控制器模块300从上游桥模块320接收并发连接数据分组350时,控制器模块300将遵循与上述用于从上游模块接收并发连接数据分组相同的过程。如果所有校验都通过,则控制器模块300将数据和序列号提供给在控制器300中执行的应用层任务。两个控制器300中的每一个中的应用层任务与另一个控制器交换由一个控制器接收的数据和序列号,并且对于用于控制器300上所执行的用户控制程序的输入数据达成一致。
用户控制程序在每个控制器300上执行,并生成用以发送到IO模块 310的输出数据。在两个控制器300中的每一个中执行的应用层任务与另一个控制器交换在每个控制器上生成的输出数据,并且对于要发送至IO 模块310的输出数据和输出数据的序列号达成一致。然后,每个冗余控制器300中的应用层任务向并发连接层提供相同的所商定的数据和序列号,以及通过其将输出数据传输至IO模块310的并发连接的唯一并发连接标识符。
接下来参照图16,将生成并发连接数据分组,并且对于图15中所示的数据转移的反向方向,以与上面描述的方式类似的方式来将并发连接数据分组从作为生产者的控制器300传输至作为消费者的IO模块310。冗余控制器模块上的并发连接层使用唯一的并发连接标识符来查找存储在该模块上的每并发连接控制数据结构,为给定的并发连接构建并发连接数据分组350,并通过底板将数据分组发送至下游桥模块320。当桥模块320 从上游控制器300接收到并发连接数据分组350时,桥模块320遵循与上面描述的转发第一个到达者方案相同的过程,从而接受具有特定序列号的第一个并发连接数据分组350,并丢弃任何冗余数据分组。如果所有校验都通过,则桥模块320将构建并发连接数据分组,并通过网络将并发连接数据分组发送至两个下游适配器模块305中的每一个。当适配器模块305 通过网络从上游桥模块320接收并发连接数据分组时,适配器模块305也遵循转发第一个到达者方案,从而接受具有特定序列号的第一个并发连接数据分组350并且丢弃任何冗余数据分组。如果所有校验都通过,则适配器模块305构建并发连接数据分组,并通过底板将并发连接数据分组发送至两个下游IO模块310中的每一个。当IO模块310通过底板从上游适配器模块305接收并发连接数据分组时,IO模块310将类似地遵循接收第一个到达者方案,从而接受具有特定序列号的第一个并发连接数据分组350并且丢弃任何冗余数据分组。如果所有校验都通过,则每个IO模块 310向IO模块中执行的应用层任务提供数据和序列号。每个IO模块310 中的应用层任务交换在该IO模块处接收的数据和序列号与在另一个IO模块处接收的数据和序列号,并且对于用于向每一个受控设备提供输出信号的输出数据达成一致。然后,每一个冗余IO模块310中的应用层任务将所商定的输出数据作为输出信号应用于IO模块的端子,以控制受控设备的操作。因此,对每个生产周期执行双向数据传输的过程。
图18和图19一起示出了在具有先前在图13中讨论的单机架控制器冗余的HA控制系统中的运行时期间在单个并发连接中的双向数据流模型。图18示出了在一个方向上从接收受控设备的输入信号的IO模块310 向控制器315的数据流,并且图19示出了在另一个方向上从提供输出信号的控制器315向IO模块310的数据流,以控制受控设备的操作。应该注意的是,图18和19仅示出数据流,而不是所有物理布置,例如网络基础设施、底板等。图18示出了用于一个方向上的数据流的作为数据生产者的IO模块310和作为数据消费者的控制器315。图19示出了用于另一方向上的数据流的作为数据生产者的控制器315和作为数据消费者的IO 模块310。双向数据转移过程以与上面描述的图15和图16中所示的双机架冗余情况的相同方式进行。在该实施方式中,控制器315通过网络直接将并发连接数据分组350传输至适配器模块305或从适配器模块305接收数据分组。否则,以与双机架冗余情况相同的方式对每个生产周期执行双向数据转移的过程。
所有模块使用每跳连接接收计时器来监视在开启的每跳连接上来自上游模块的数据分组接收。在首次开启每跳连接时启动该计时器。计时器以作为连接参数的一部分而接收的连接超时持续时间执行。每当在每跳连接上接收到有效的并发连接数据分组时,重新启动每跳连接接收计时器。当在等于或大于连接超时持续时间的时间中没有在每跳连接上接收到有效并发连接数据分组时,每跳连接计时器将生成超时事件,并且执行计时器的模块标记每跳连接关闭。如前面描述的,上游模块(从并发连接开启过程的角度)负责定期尝试重新开启所关闭的每跳连接。当模块识别出来自上游模块的所有每跳连接被标记为关闭时,它将关闭并发连接,释放为其分配的资源,并删除存储在每并发连接数据结构中的所有信息。
图20和图21示出了除了在适配器A 305A中添加运行时故障之外与上面关于图15和图16示出并讨论的双机架冗余HA控制系统相同的数据流模型。现在参照图20,当适配器A305A在运行时期间故障时,由于未接收到来自适配器A的并发连接数据分组,桥A 320A上的每跳连接接收计时器针对经由来自适配器A 305A的每跳连接所接收的并发连接数据分组发生超时,并且桥A 320A将关闭到适配器A 305A的每跳连接。类似地,对于经由其相应的每跳连接从适配器A 305A接收的并发连接数据分组,桥B 320B也经历每跳连接接收计时器上的超时,并且关闭到适配器A的每跳连接。现在参照图21,对于在其他通信方向上从适配器A305A 接收的并发连接数据分组,IO模块A 310A和IO模块B 310B类似地经历其各自每跳连接接收计时器上的超时,并且关闭它们各自到适配器A的每跳连接。由于桥A 320A和桥B320B关闭它们各自到适配器A 305A的每跳连接,每个桥模块320将停止向适配器A 305A发送数据分组。类似地,由于IO模块A 310A和IO模块B 310B关闭它们各自到适配器A 305A的每跳连接,每个IO模块310将停止向适配器A发送数据分组。然而,并发连接保持开启,并通过剩余的每跳路径继续双向数据转移。当适配器A 305A重新联机时,桥A 320A和桥B 320B各自经由并发连接开启请求来重新开启它们各自到适配器A 305A的每跳连接路径。成功地重建桥模块 320与适配器A 305A之间的每跳连接进而使适配器A 305A重新开启到每个IO模块310的每跳连接,从而完成并发连接的恢复。
尽管上面关于图20和图21的描述仅关注模块故障,但由于网络基础设施和底板中的故障导致的通信故障也将导致类似的行为。受它们之间的通信故障影响的模块将经历每跳连接接收计时器中的超时,并且将关闭到通信故障另一侧的模块的每跳连接。并发连接继续保持开启状态,并通过剩余的每跳路径执行双向数据转移。当通信故障消失时,关于并发连接请求过程的上游模块将尝试重新建立并重新开启跳连接,以实现并发连接的恢复。
并发连接关闭过程以类似于并发连接开启过程的方式逐跳地进行。并发连接发起者(通常是控制器)通过向一个或更多个下游模块发送并发连接关闭请求消息来启动并发连接关闭过程,这取决于开启的到下游模块的每跳连接的数量。然后,控制器关闭并发连接,释放为其分配的资源,并删除存储在用于该连接的每并发连接控制数据结构中的所有信息。从上游模块接收并发连接关闭请求消息的中间模块向上游模块发送具有成功状态的并发连接关闭响应消息,并且依次关闭到该上游模块的每跳连接。如果关闭的每跳连接是最后一个开启的上游每跳连接,则中间模块还向一个或更多个下游模块发送并发连接关闭请求消息,这取决于开启的到下游模块的每跳连接的数量。然后,中间模块关闭并发连接,释放为其分配的资源,并删除存储在用于该连接的每并发连接控制数据结构中的所有信息。从上游模块接收并发连接关闭请求消息的并发连接目标模块向上游模块发送具有成功状态的并发连接关闭响应消息,并关闭到该上游模块的每跳连接。如果关闭的每跳连接是最后一个开启的上游每跳连接,则目标模块关闭并发连接,释放为其分配的资源,并删除存储在用于该连接的每并发连接控制数据结构中的所有信息。
提供并发连接诊断以帮助精确定位用户的问题。当在模块上关闭了每跳连接而与该每跳连接相关联的并发连接仍然开启时,将在模块状态信息上设置诊断比特。该模块状态信息以及由此该诊断比特对于在控制器中执行的用户控制程序容易地可用,并且可用于在检测到故障时在HMI上发出警报。可以通过来自控制器以及经由HMI的消息以编程方式从模块获得关于并发连接的所关闭的跳连接的附加信息。可替选地,该诊断信息也可在模块网页上获得。
并发连接与功能安全(例如安全仪表系统(SIS)中使用的那些)完全兼容。并发连接可以在功能安全系统的黑色通道操作模式中将安全数据作为数据负载来承载。
在通过高可用性工业控制系统传送数据的又一实施方式中,控制器冗余对中的每个控制器使用一组规则开启连接,以确保冗余目标和源之间存在至少两个开启的连接,并且冗余发起者与冗余目标之间的两个连接(或三重冗余的三个连接)尽可能使用不同的路径。在图22中示出的系统的情况下,两个控制器可以使用表2中列出的以下路径来尝试连接开启。
Figure BDA0002145492940000261
表2:图22的HA控制系统中的示例性连接路径
如果在路径段或设备之一上存在单个故障,则仅一个控制器将遇到故障,并且因此控制器中的另一个将在第一次尝试时成功完成连接开启。图 23和图24中示出了图22的实施方式的不同模块中发生的单个故障的示例。在图23中,第一连接路径中的适配器模块故障,而在图24中,第二连接路径中的IO模块故障。在图23中,第二控制器成功地在第一次尝试时建立连接,并且在图24中,第一控制器成功地在第一次尝试时建立连接。虽然第一次尝试失败的控制器中的每一个都能够在后续连接开启中建立冗余通信路径,但初始连接开启时不存在延迟,从而导致启动时没有性能损失。
如果控制器不是冗余对的一部分(或者如果其搭档控制器故障,如图 25所示),则活跃控制器将尝试开启两个连接。第一连接开启尝试被选择为从该控制器的连接列表的顶部开始,并且第二连接开启尝试被选择为从该控制器的列表底部开始。再次参照表2,图25中的第二控制器沿连接列表中的第一个连接和最后一个连接建立连接。与通过高可用性工业控制系统传送数据的其他实施方式一样,该方法允许在多个故障之后继续通信,只要故障没有发生在冗余对的每个部件上。
当控制器在其开启的连接上检测到故障时,它在其可能路径列表上向下移动来尝试重新开启连接,以找到工作路径。如果这是第一故障,当故障控制器重新开启其连接时,另一个控制器的连接将保持开启状态,因为它们在它们的两个路径中不共享公共部件。虽然控制器利用不同于其第一选择的路径进行操作,但它将定期重试其列表中较高的路径,以检测初始路径上的故障何时清除。
与通过高可用性工业控制系统传送数据的其他实施方式一样,该方法可扩展到附加的冗余层。图26至图28示出了具有冗余控制器、冗余网桥模块、冗余适配器和冗余IO模块的系统。在图26所示系统的情况下,两个控制器中的每一个将使用下面的潜在连接路径表来尝试连接开启。图 27和28示出了可能在系统中发生的示例性故障状况。
Figure BDA0002145492940000281
表3:图26的HA控制系统中的示例性连接路径
接下来转向图29至图34,示出了具有部分三重冗余的HA控制系统。控制器和IO模块各自呈现三重冗余(即,三个模块),而适配器模块仅利用并行冗余(即,两个模块)。由于连接的每端处的控制器和IO模块的数量超过了连接中间点的适配器数量,因此至少两个控制器和至少两个IO 模块必须通过一个适配器,而另一个控制器和适配器可能通过另一个适配器。
在图30和图31中,每个路径中的冗余下游模块之一已经发生故障。在图30中,第二IO模块已经发生故障。因此,控制器2在其第一次开启连接中失败,但控制器1和控制器3成功。控制器2从其列表中选择另一路径,并开启到IO模块3的新路径。在图31中,第一个适配器已经发生故障。控制器3仍然能够成功开启其初始路径。控制器1和控制器2必须选择替选路径。因为系统的这个级仅具有并行冗余,所以控制器中的每一个最终通过适配器2建立路径。
接下来参考图32和图34,系统中的控制器之一已经发生故障。如果控制器1发生故障,控制器2将从其列表底部开始开启第二连接。如果控制器2发生故障,控制器3将从其列表底部开始开启第二连接。如果控制器3发生故障,控制器1将从其列表底部开始开启第二连接。如果两个控制器发生故障,剩余的控制器将开启三个连接。
还可以使用两个完全独立的网络来建立系统。接下来参照图35,示出了使用以太网和ControlNet网络的HA控制系统。该系统提供多样性,同时仍保持无单点故障(no-single-point-of-failure)特征。图36至图38 示出了图35的系统在不同模块中具有单个故障的情况下利用冗余通信路径操作。在该HA控制系统的情况下,控制器使用下面的连接路径表来尝试连接开启。
Figure BDA0002145492940000291
表4:图35的HA控制系统中的示例性连接路径
虽然所有先前的示例都是与IO模块通信的控制器(或控制器组),但是并发连接也可以用于控制器对控制器的通信。此外,先前包括网桥模块的示例将控制器冗余和网桥冗余显示为独立的(模块级别冗余)。图39至图41示出了与另一对冗余控制器(C2a和C2b)通信的一对冗余控制器 (C1a和C1b)。可以使用三重冗余控制器、双重冗余控制器和单工控制器的任意组合来构建类似的系统。在该系统的情况下,控制器将使用下面的连接路径表来尝试连接开启。
Figure BDA0002145492940000292
表5:图39的冗余控制器之间的示例性连接路径
冗余并不总是在设备级别实现。冗余,尤其是控制器冗余,通常在机架级别实现。在这种类型的系统中,控制器与网桥模块配对,如图42至 47所示。在该系统的情况下,控制器将使用下面的连接路径表来尝试连接开启。
Figure BDA0002145492940000293
表6:图39的冗余控制器之间的示例性连接路径
将网桥模块与控制器配对具有一定优点。桥与适配器模块之间不需要特殊的连接处理。在生成两个活跃路径和处理两个分组的接收时仅涉及端点。因此,减少了网络上的通信分组的数量。
应当理解的是,本发明不将其应用限制为本文中阐述的部件的构造和布置的细节。本发明能够具有其他实施方式,并且能够以各种方式实践或实施。前面的变化和修改都在本发明的范围内。还应当理解的是,本文中公开和限定的本发明扩展到所提及的或从文本和/或附图中明显的两个或更多个单独特征的所有替选组合。所有这些不同的组合构成了本发明的各种替选方面。本文中描述的实施方式解释了实践本发明的已知最佳模式,并且将使本领域其他技术人员能够利用本发明。

Claims (20)

1.一种通过高可用性工业控制网络传送数据的系统,所述系统包括:
第一生产者,其能够操作以生成用于传输的第一数据分组,其中,所述第一数据分组包括定义所述系统中用于通信的连接的唯一标识符;
第二生产者,其能够操作以生成用于传输的第二数据分组,其中,所述第二数据分组包括所述唯一标识符,并且所述第二数据分组与所述第一数据分组被并发传输;以及
第一消费者,其能够操作以:
首先接收所述第一数据分组和所述第二数据分组之一;
其次接收所述第一数据分组和所述第二数据分组之一;
从首先接收的所述第一数据分组和所述第二数据分组之一中提取数据;
将从所述第一数据分组和所述第二数据分组之一中提取的所述数据传输至所述第一消费者内的控制电路;
根据所述唯一标识符,将其次接收的所述第一数据分组和所述第二数据分组之一标识为冗余;以及
忽略来自被标识为冗余的所述第一数据分组和所述第二数据分组之一的数据。
2.根据权利要求1所述的系统,还包括:
从所述第一生产者至所述第一消费者的第一连接路径;以及
从所述第二生产者至所述第一消费者的第二连接路径,其中,所述第二连接路径被开启以用于与所述第一连接路径并发通信,并且所述第二连接路径与所述第一连接路径不同。
3.根据权利要求2所述的系统,还包括位于所述第一生产者与所述第一消费者之间的所述第一连接路径中的至少一个中间模块,其中,在所述第一生产者、所述至少一个中间模块以及所述第一消费者之间逐跳地定义所述第一连接路径。
4.根据权利要求2所述的系统,其中:
所述第一生产者生成要传输的第一组数据,
所述第二生产者生成要传输的第二组数据,
所述第一生产者和所述第二生产者根据所述第一组数据和所述第二组数据之一就用于传输的一组数据达成一致。
5.根据权利要求4所述的系统,其中,所述第一生产者和所述第二生产者中的至少一个向用于传输的所述一组数据分配数据序列号,并且其中,所述第一消费者还能够操作以根据所述唯一标识符和所述数据序列号来将所述第一数据分组和所述第二数据分组之一标识为冗余。
6.根据权利要求1所述的系统,还包括第二消费者,所述第二消费者能够操作以:
首先接收所述第一数据分组和所述第二数据分组之一,
其次接收所述第一数据分组和所述第二数据分组之一,
从首先接收的所述第一数据分组和所述第二数据分组之一中提取数据,
将从所述第一数据分组和所述第二数据分组之一中提取的所述数据传输至所述第二消费者内的控制电路,
根据所述唯一标识符将其次接收的所述第一数据分组和所述第二数据分组之一标识为冗余,以及
忽略来自被标识为冗余的所述第一数据分组和所述第二数据分组之一的数据。
7.根据权利要求6所述的系统,其中,所述第一消费者和所述第二消费者中的至少一个将所述第一消费者提取的数据与所述第二消费者提取的数据进行比较,并且在所述第一消费者提取的数据与所述第二消费者提取的数据相匹配的情况下,将每个生产者提取的数据传输至相应的控制电路。
8.一种通过高可用性工业控制网络传送数据的方法,包括以下步骤:
利用第一生产者生成用于传输的第一数据分组,其中,所述第一数据分组包括定义连接的唯一标识符;
利用第二生产者生成用于传输的第二数据分组,其中,所述第二数据分组包括所述唯一标识符;
将来自所述第一生产者的所述第一数据分组和来自所述第二生产者的所述第二数据分组两者并发传输至第一消费者;
在所述第一消费者处首先接收所述第一数据分组和所述第二数据分组之一;
在所述第一消费者处其次接收所述第一数据分组和所述第二数据分组之一;
从利用所述第一消费者首先接收的所述第一数据分组和所述第二数据分组之一中提取数据;
利用所述第一消费者根据所述唯一标识符将其次接收的所述第一数据分组和所述第二数据分组之一标识为冗余;以及
忽略来自利用所述第一消费者标识为冗余的所述第一数据分组和所述第二数据分组之一的数据。
9.根据权利要求8所述的方法,其中:
经由从所述第一生产者至所述第一消费者的第一连接路径来转移所述第一数据分组,
经由从所述第二生产者至所述第一消费者的第二连接路径来转移所述第二数据分组,以及
所述第一连接路径与所述第二连接路径不同。
10.根据权利要求9所述的方法,其中,从所述第一生产者向所述第一消费者传输所述第一数据分组的步骤还包括:逐跳地从所述第一生产者向至少一个中间模块传输所述第一数据分组。
11.根据权利要求10所述的方法,其中,从所述第二生产者向所述第一消费者传输所述第二数据分组的步骤还包括:逐跳地从所述第二生产者向至少一个额外的中间模块传输所述第二数据分组。
12.根据权利要求8所述的方法,其中,所述第一数据分组包括由所述第一生产者生成的第一组数据,并且所述第二数据分组包括由所述第二生产者生成的第二组数据,并且所述方法还包括以下步骤:由所述第一生产者和所述第二生产者就用于传输的一组数据达成一致,其中,用于传输的所述一组数据选自所述第一组数据和所述第二组数据。
13.根据权利要求12所述的方法,还包括以下步骤:将数据序列号分配给用于传输的所述一组数据,其中,所述第一消费者进一步根据所述数据序列号将所述第一数据分组和所述第二数据分组之一标识为冗余。
14.根据权利要求8所述的方法,还包括以下步骤:
与将来自所述第一生产者的所述第一数据分组和来自所述第二生产者的所述第二数据分组二者传输至所述第一消费者并发地将来自所述第一生产者的所述第一数据分组和来自所述第二生产者的所述第二数据分组二者传输至第二消费者;
首先在所述第二消费者处接收所述第一数据分组和所述第二数据分组之一;
其次在所述第二消费者处接收所述第一数据分组和所述第二数据分组之一;
从利用所述第二消费者首先接收的所述第一数据分组和所述第二数据分组之一中提取数据;
利用所述第二消费者根据所述唯一标识符将其次接收的所述第一数据分组和所述第二数据分组之一标识为冗余;以及
忽略来自利用所述第二消费者标识为冗余的所述第一数据分组和所述第二数据分组之一的数据。
15.根据权利要求14所述的方法,还包括以下步骤:
将所述第一消费者提取的数据与所述第二消费者提取的数据进行比较,其中,由所述第一消费者和所述第二消费者中的至少一个来执行所述比较,以及
在所述第一消费者提取的数据与所述第二消费者提取的数据相匹配的情况下,将所提取的数据传输至所述第一消费者中的第一控制电路以及传输至所述第二消费者中的第二控制电路。
16.一种用于在高可用性工业控制网络中开启连接的方法,包括以下步骤:
利用一对发起者生成唯一连接标识符,其中,该对发起者包括第一发起者和第二发起者;
将所述唯一连接标识符存储在该对发起者中的每一个发起者的存储器中;
在所述第一发起者中生成第一并发连接开启请求,其中,所述第一并发连接开启请求包括所述唯一连接标识符;
在所述第二发起者中生成第二并发连接开启请求,其中,所述第二并发连接开启请求包括所述唯一连接标识符;
逐跳地将来自所述第一发起者的所述第一并发连接开启请求传输至第一目标,以建立第一通信路径;
逐跳地将来自所述第二发起者的所述第二并发连接开启请求传输至所述第一目标,以建立第二通信路径;
在所述第一目标处连续接收所述第一并发开启请求和所述第二并发开启请求;
响应于接收所述第一并发开启请求,利用所述第一目标将所述工业控制网络中的连接标记为开启;以及
响应于接收所述第二并发开启请求,将所述第二并发开启请求标识为所述连接的一部分。
17.根据权利要求16所述的方法,其中,至少一个中间模块位于所述工业控制网络中所述第一发起者与所述第一目标之间,并且其中,所述第一并发连接请求通过所述至少一个中间模块,所述方法还包括以下步骤:将所述至少一个中间模块和所述第一目标的每跳列表包括在所述第一并发连接开启请求中,其中,传输所述第一并发连接开启请求的步骤还包括以下步骤:
在第一数据分组中将所述第一并发连接开启请求从所述第一 发起者传输至所述至少一个中间模块;以及
在第二数据分组中将所述第一并发连接开启请求从所述至少一个中间模块传输至所述第一目标。
18.根据权利要求17所述的方法,还包括通过以下方式在所述至少一个中间模块中开启连接的步骤:针对所述中间模块的每个下游跳,将所述每跳列表中的每跳信息存储在所述中间模块的存储器中,将所述唯一连接标识符存储在所述中间模块的存储器中,以及将从所述中间模块至另一中间模块或所述发起者之一的上游每跳连接标记为开启。
19.根据权利要求16所述的方法,还包括以下步骤:
逐跳地将所述第一并发连接开启请求从所述第一发起者传输至第二目标,以建立第三通信路径;
逐跳地将所述第二并发连接开启请求从所述第二发起者传输至所述第二目标,以建立第四通信路径;
在所述第二目标处接收所述第一并发开启请求和所述第二并发开启请求;
响应于接收所述第一并发开启请求,利用所述第二目标将所述连接标记为开启;以及
响应于接收所述第二并发开启请求,将所述第二并发开启请求标识为所述连接的一部分。
20.根据权利要求19所述的方法,其中,只要所述第一通信路径、所述第二通信路径、所述第三通信路径以及所述第四通信路径中的至少一个保持开启,所述连接就保持开启。
CN201910683286.0A 2018-07-27 2019-07-26 在高可用性工业控制系统上传输数据的系统和方法 Active CN110780615B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862703986P 2018-07-27 2018-07-27
US62/703,986 2018-07-27
US16/277,285 US11221612B2 (en) 2018-07-27 2019-02-15 System and method of communicating data over high availability industrial control systems
US16/277,285 2019-02-15

Publications (2)

Publication Number Publication Date
CN110780615A CN110780615A (zh) 2020-02-11
CN110780615B true CN110780615B (zh) 2022-12-27

Family

ID=67438679

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910683286.0A Active CN110780615B (zh) 2018-07-27 2019-07-26 在高可用性工业控制系统上传输数据的系统和方法

Country Status (3)

Country Link
US (2) US11221612B2 (zh)
EP (1) EP3599521B1 (zh)
CN (1) CN110780615B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11669076B2 (en) 2018-07-27 2023-06-06 Rockwell Automation Technologies, Inc. System and method of communicating unconnected messages over high availability industrial control systems
US11327472B2 (en) 2018-07-27 2022-05-10 Rockwell Automation Technologies, Inc. System and method of connection management during synchronization of high availability industrial control systems
US11768479B2 (en) * 2020-09-30 2023-09-26 Rockwell Automation Technologies, Inc. System and method for secure connections in a high availability industrial controller
US11609543B2 (en) * 2020-10-21 2023-03-21 Ring Bus Americas LLC Safety network controller redundancy in an electronic safety system
US11265208B1 (en) * 2020-12-29 2022-03-01 Honeywell International Inc. Detecting path faults in parallel redundancy protocol communications
US11956339B2 (en) * 2020-12-31 2024-04-09 Honeywell International Inc. Multiple network redundancy protocols for data flow using the same physical interface
US11876608B2 (en) * 2021-02-22 2024-01-16 Hitachi, Ltd Redundant control system
CN113779148A (zh) * 2021-09-10 2021-12-10 西安热工研究院有限公司 一种实时数据库冗余的工控系统数据传输方法和系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104767682A (zh) * 2014-01-08 2015-07-08 腾讯科技(深圳)有限公司 路由方法和系统以及分发路由信息的方法和装置

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6738826B1 (en) * 2000-02-24 2004-05-18 Cisco Technology, Inc. Router software upgrade employing redundant processors
JP2003174479A (ja) * 2001-12-07 2003-06-20 Fujitsu Ltd パケット通信方法及びその装置
US6549034B1 (en) 2001-12-27 2003-04-15 Rockwell Automation Technologies, Inc. Programmable logic controller for safety systems with reduced cross-wiring
JP4000906B2 (ja) * 2002-05-22 2007-10-31 日本電気株式会社 パケット転送経路の最適化方法及びパケット転送装置並びにプログラム
US6990317B2 (en) * 2002-05-28 2006-01-24 Wireless Innovation Interference resistant wireless sensor and control system
US7093172B2 (en) * 2002-08-07 2006-08-15 Broadcom Corporation System and method for determining on-chip bit error rate (BER) in a communication system
US7337470B2 (en) * 2002-08-23 2008-02-26 International Business Machines Corporation Method for minimizing denial of service attacks on network servers
JP3799326B2 (ja) * 2002-12-02 2006-07-19 Necインフロンティア株式会社 パケット送信方式及びパケット受信方式
US7289434B2 (en) * 2002-12-05 2007-10-30 Cisco Technology, Inc. Method for verifying function of redundant standby packet forwarder
JP4726119B2 (ja) * 2005-06-17 2011-07-20 ルネサスエレクトロニクス株式会社 ループ通信システム、通信装置、ループ通信方法、及びプログラム
US7711369B2 (en) * 2005-08-22 2010-05-04 Toshiba America Research, Inc. Seamless mobility for a multiple interface device in a co-located wireless environment
JP4482630B2 (ja) * 2005-11-21 2010-06-16 インターナショナル・ビジネス・マシーンズ・コーポレーション 通信装置および通信方法
CN101022451B (zh) * 2006-02-14 2014-07-23 杭州华三通信技术有限公司 数据通信中连接状态的同步方法及其应用的通信节点
US8122144B2 (en) * 2006-06-27 2012-02-21 International Business Machines Corporation Reliable messaging using redundant message streams in a high speed, low latency data communications environment
US7940758B2 (en) * 2007-03-20 2011-05-10 Avaya Inc. Data distribution in a distributed telecommunications network
US8190699B2 (en) * 2008-07-28 2012-05-29 Crossfield Technology LLC System and method of multi-path data communications
US8689343B2 (en) * 2008-10-24 2014-04-01 Manufacturing Resources International, Inc. System and method for securely transmitting video data
EP2357571A4 (en) * 2008-11-06 2016-09-14 Fujitsu Ltd CONTROL, DATA TRANSFER UNIT, INFORMATION PROCESSOR, ARITHMETIC PROCESSING UNIT AND INFORMATION PROCESSOR CONTROL METHOD
US8265086B2 (en) * 2009-06-26 2012-09-11 Nokia Corporation Multi-path transport
TWI387381B (zh) * 2009-08-14 2013-02-21 Ind Tech Res Inst 基於鄰近覺察之同時傳輸的媒介存取控制協定裝置與方法
JP2011096163A (ja) * 2009-11-02 2011-05-12 Fujitsu Ltd レジスタアクセス制御方法およびレジスタアクセス制御回路
JP5596793B2 (ja) * 2010-10-25 2014-09-24 株式会社日立製作所 計算機システム
US9014085B2 (en) * 2011-11-28 2015-04-21 At&T Intellectual Property I, L.P. Internet protocol session persistence for mobile communications
EP2661023B1 (de) * 2012-04-30 2015-01-14 Siemens Aktiengesellschaft Kommunikationsgerät für ein redundant betreibbares industrielles Kommunikationsnetz und Verfahren zum Betrieb eines Kommunikationsgeräts
ITTO20130297A1 (it) * 2013-04-12 2014-10-13 Selex Es Spa Metodo di comunicazione di tipo smf per una rete manet, e nodo di rete e rete mobile che implementano tale metodo di comunicazione
KR101694980B1 (ko) * 2014-01-20 2017-01-23 한국전자통신연구원 데이터 분산 처리 장치 및 방법, 그리고 스토리지 서버
DE102014107793B9 (de) * 2014-06-03 2018-05-09 Fujitsu Technology Solutions Intellectual Property Gmbh Verfahren zur Weiterleitung von Daten zwischen Computersystemen, Computernetz-Infrastruktur sowie Computerprogramm-Produkt
US9992101B2 (en) * 2014-11-24 2018-06-05 Taric Mirza Parallel multipath routing architecture
US9614775B2 (en) * 2015-01-30 2017-04-04 Vmware, Inc. Data transmission using modified weighted fair queue algorithm
US9509743B1 (en) * 2015-05-08 2016-11-29 Bandwidth.Com, Inc. Bonding of multiple concurrent data streams among multiple devices
WO2017131741A1 (en) * 2016-01-29 2017-08-03 Hewlett Packard Enterprise Development Lp Expansion bus devices
US10153988B2 (en) * 2016-08-10 2018-12-11 Arista Networks, Inc. Load balancing on multi-chip network switch without full bi-section bandwidth
US10404592B2 (en) * 2017-03-24 2019-09-03 Cisco Technology, Inc. System and method to facilitate content forwarding using bit index explicit replication (BIER) in an information-centric networking (ICN) environment

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104767682A (zh) * 2014-01-08 2015-07-08 腾讯科技(深圳)有限公司 路由方法和系统以及分发路由信息的方法和装置

Also Published As

Publication number Publication date
US11221612B2 (en) 2022-01-11
EP3599521B1 (en) 2023-06-07
CN110780615A (zh) 2020-02-11
US20220113707A1 (en) 2022-04-14
US20200033840A1 (en) 2020-01-30
EP3599521C0 (en) 2023-06-07
EP3599521A1 (en) 2020-01-29

Similar Documents

Publication Publication Date Title
CN110780615B (zh) 在高可用性工业控制系统上传输数据的系统和方法
US11669076B2 (en) System and method of communicating unconnected messages over high availability industrial control systems
JP4739141B2 (ja) リングネットワーク及びマスタノード
EP1391079B1 (en) Method and system for implementing a fast recovery process in a local area network
US11927950B2 (en) System and method of communicating safety data over high availability industrial control systems
EP2148473A1 (en) Switching nodes for high availability networks
CN101951345B (zh) 一种报文的发送方法和设备
CN110967969B (zh) 高可用性工业自动化系统及通过该系统传送信息的方法
CN102611598B (zh) 控制器局域网络总线冗余系统及冗余切换的方法和装置
US20140025833A1 (en) Communication Device and Method for Transmitting Messages in a Redundantly Operable Industrial Communication Network
JP2007180830A (ja) 二重化監視制御システム、及び同システムの冗長化切替え方法
CN102394787A (zh) 基于epa交换机的双链路冗余控制方法
CN103107940B (zh) 用于设备级环网的冗余网关系统
CN107342911B (zh) 处理装置、代替处理装置、中继装置、处理系统及处理方法
US8959386B2 (en) Network and expansion unit and method for operating a network
JP4544415B2 (ja) 中継ネットワークシステム、ノード装置、および障害通知方法
WO2014060465A1 (en) Control system and method for supervisory control and data acquisition
US11327472B2 (en) System and method of connection management during synchronization of high availability industrial control systems
CN101980478B (zh) 设备故障的检测处理方法、装置和网络设备
CN101729349B (zh) 一种基于rrpp的主环通道连通性检测方法及装置
CN114326364B (zh) 用于高可用性工业控制器中的安全连接的系统和方法
KR100724495B1 (ko) 피엘씨 이중화 시스템 및 운전 방법
CN111181766B (zh) 一种冗余fc网络系统及其实现交换机动态配置的方法
RU2430400C1 (ru) Комплекс резервируемых программно-аппаратных средств автоматизации контроля и управления
KR102182494B1 (ko) 노이즈 판별 기능을 가진 이더캣 네트워크 시스템 및 이더캣 네트워크 시스템의 노이즈 판별 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant