CN115113591A - 使用控制软件的虚拟化实例控制工业过程 - Google Patents
使用控制软件的虚拟化实例控制工业过程 Download PDFInfo
- Publication number
- CN115113591A CN115113591A CN202210288559.3A CN202210288559A CN115113591A CN 115113591 A CN115113591 A CN 115113591A CN 202210288559 A CN202210288559 A CN 202210288559A CN 115113591 A CN115113591 A CN 115113591A
- Authority
- CN
- China
- Prior art keywords
- instance
- variables
- failover
- control software
- control
- 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.)
- Pending
Links
- 238000004519 manufacturing process Methods 0.000 title claims abstract description 46
- 238000000034 method Methods 0.000 claims abstract description 75
- 230000008569 process Effects 0.000 claims abstract description 37
- 230000000694 effects Effects 0.000 claims abstract description 17
- 230000007257 malfunction Effects 0.000 claims abstract description 14
- 238000007726 management method Methods 0.000 claims description 25
- 238000012546 transfer Methods 0.000 claims description 25
- 238000004891 communication Methods 0.000 claims description 19
- 238000004458 analytical method Methods 0.000 claims description 17
- 230000014759 maintenance of location Effects 0.000 claims description 10
- 238000012423 maintenance Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 6
- 230000003068 static effect Effects 0.000 claims description 6
- 238000003860 storage Methods 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 4
- 238000011156 evaluation Methods 0.000 claims 1
- 230000007246 mechanism Effects 0.000 description 22
- 239000003795 chemical substances by application Substances 0.000 description 20
- 238000013508 migration Methods 0.000 description 17
- 230000005012 migration Effects 0.000 description 17
- 241000196324 Embryophyta Species 0.000 description 16
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 12
- 239000000872 buffer Substances 0.000 description 10
- 230000008859 change Effects 0.000 description 8
- 239000000047 product Substances 0.000 description 8
- 238000012544 monitoring process Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000001311 chemical methods and process Methods 0.000 description 4
- 230000010076 replication Effects 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 230000002688 persistence Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000002360 explosive Substances 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 244000035744 Hura crepitans Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000009474 immediate action Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000000543 intermediate Substances 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B9/00—Safety arrangements
- G05B9/02—Safety arrangements electric
- G05B9/03—Safety arrangements electric with multiple-channel loop, i.e. redundant control systems
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total 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/41865—Total 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 job scheduling, process planning, material flow
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total 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/4184—Total 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 fault tolerance, reliability of production system
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/058—Safety, monitoring
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total 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/4188—Total 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 CIM planning or realisation
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total 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/41885—Total 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 modeling, simulation of the manufacturing system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS functionality
- G06F11/1484—Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/13—Plc programming
- G05B2219/13044—Display as flow chart, SFC, FUP
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/14—Plc safety
- G05B2219/14106—Reconfiguration of components or graceful degradation, degrade
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/24—Pc safety
- G05B2219/24182—Redundancy
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/24—Pc safety
- G05B2219/24186—Redundant processors are synchronised
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/32—Operator till task planning
- G05B2219/32252—Scheduling production, machining, job shop
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Manufacturing & Machinery (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Theoretical Computer Science (AREA)
- Hardware Redundancy (AREA)
Abstract
本公开的各实施例涉及使用控制软件的虚拟化实例控制工业过程,包括以下步骤:向控制软件的活动实例提供工业过程的过程数据作为输入,其中过程数据包括工业过程的过程变量集合和/或执行该过程的工业厂房的厂房变量;基于该输入,更新控制软件的活动实例的内部状态,其特征在于该活动实例的内部变量集合;基于该经更新的内部状态,通过活动实例确定输出信号,并且将该输出信号输出到至少一件设备,该至少一件设备被配置为更改工业过程的状态和/或行为;以及向控制软件的至少一个其他实例提供表征活动实例的状态的内部变量的优先子集,该控制软件的至少一个其他实例被配置为在活动实例发生故障和/或失灵的情况下接管对工业过程的控制。
Description
技术领域
本发明涉及即使控制软件的实例发生故障或失灵也保持可靠的工业过程的软件驱动控制。
背景技术
在工业自动化系统中,控制应用根据输入信号(例如,来自化学过程的传感器读数)和系统时钟维持内部状态。在每个计算周期(例如,每100ms)中,控制程序处理其当前输入信号及其当前内部状态(即,内部变量的值)以计算输出信号。对于非平凡控制应用,内部状态可能是长近似过程的结果,并且不会仅仅取决于当前输入信号。典型示例是使用PID控制器,该PID控制器对控制功能连续应用校正。PID包括计算积分值,该积分值取决于自初始化以来所有过去的输入信号值和正在进行的时钟。在控制程序重置的情况下(例如,由于功率故障而重新启动控制设备),维持这种内部状态以实现过程控制的无缝继续至关重要。
虽然这个问题已经在具有专用硬件控制器的简单场景中得到了解决,但是在容器化和集群环境中没有这种硬件很有挑战性。在具有硬件控制器的设置中,冗余控制器要么经由专用高带宽低延迟通信通道同步,要么状态持久保存到非易失性存储中(例如,在每个执行周期中)。在容器化集群环境中,由于共享网络资源和时钟同步,所以多个控制应用实例之间的完全同步具有挑战性。此外,单个控制应用实例的紧密耦合不太灵活,并且阻碍了故障转移机制与容器编排解决方案的集成。因此,由于所需通信开销,所以具有两个以上的冗余控制应用实例的设置难以实现。
发明内容
因此,本发明的目的是促进控制软件的实例在容器化集群环境中的部署,同时仍然满足对可靠性和/或可用性的给定要求。
该目的通过根据第一独立权利要求的用于控制工业过程的方法以及通过根据第二独立权利要求的用于配置工业控制系统的方法来实现。在相应从属权利要求中详述了其他有利实施例。
本发明提供一种用于控制工业过程的方法。在该方法的过程中,向控制软件的活动实例提供工业过程的过程数据作为输入。过程数据包括工业过程的过程变量集合和/或执行该过程的工业厂房的厂房变量。例如,过程数据可以包括来自工业厂房的任何类型的传感器读数和/或工业厂房中设备的任何类型的操作状态,诸如厂房的开/关切换状态、阀门的打开/关闭状态、和/或厂房中低级控制器的设定点。例如,这种低级控制器可以控制厂房中的设备以将温度、压力、填充级别或一些其他过程参数维持在期望设定点值。
基于提供给它的输入,控制软件的活动实例更新其内部状态。这种内部状态的特征在于内部变量集合。也就是说,从具有控制软件的新近实例的初始化执行环境开始,可以在给定这些内部变量的情况下再现活动实例的内部状态。特别地,内部变量可以包括计算结果或在输入的基础上获得的其他值。如之前所提及的,内部状态还可以例如包括维持在PID控制回路内的积分值。
基于经更新的内部状态,活动实例确定输出信号,并且将该输出信号输出到被配置为更改工业过程的状态和/或行为的至少一件设备。例如,输出信号可以被递送到直接作用于工业过程的物理行为的一个或多个致动器。但是,例如,输出信号还可以包括要被递送到低级控制器的设定点。
向控制软件的至少一个其他实例提供表征活动实例的状态的内部变量的优先子集,该至少一个其他实例被配置为在活动实例发生故障和/或失灵的情况下和/或在维护场景中接管对工业过程的控制。该其他实例可以包括与活动实例相同的控制软件,而且还可以包括不同的控制软件。例如,可以有意采用活动实例与其他实例之间的软件多样性以防止单个问题同时使所有可用实例故障。在维护场景中,主实例可能会故意“故障”,因为它是由于(例如,集群硬件的)正常维护任务而被强行杀死。数据中心的技术人员并非控制专家,需要相信系统在移除硬件节点后会继续运行并自行修复。维护场景的另一示例是集群的节点上的操作系统升级。
如上文所提及的,对于许多工业过程,在故障转移期间从活动实例到控制软件的其他实例的控制切换可能非常具有时间关键性。对于一些过程,切换需要在100毫秒或更短的时间内完成。例如,许多化学工艺配方规定了其中要维护过程参数的非常严格的范围。如果这些过程参数中的任一过程参数超出其范围,则违反了配方,并且正在处理的整批产品不能再作为符合给定规格的产品出售。如果产品因违规而固化、分解、点燃或爆炸或压力或温度过高而导致厂房损坏,则可能会产生其他不良后果。特别是,虽然温度的突然升高会因系统中的热容量而减慢,但压力可能会非常迅速地增加。
如果其他实例要在“热故障转移”中无缝接管对过程的控制,则它需要不断更新活动实例的状态。然而,在容器化环境或其他虚拟化环境中,这些更新的通信带宽受限。直接的解决方案可能会是将活动实例的完整状态不断复制到另一实例的要求视为给定要求,并且无论如何,只提供所需带宽。然而,本发明提出仅复制内部变量的优先子集。然后,其他故障转移实例的输出可能会在某种程度上偏离活动实例已经产生的输出。因此,可能会牺牲控制行为的一些准确性。但作为这种牺牲的回报,故障转移所需的时间大大减少。特别是,如果工业过程可能发展得非常迅速,则更早地采取行动比要采取完全理想的行动更为重要。这种情形有点类似于图像的有损压缩。例如,使用JPEG2000,640×480像素的彩色图像可以被压缩到1KB至2KB。如此小尺寸的压缩版本可以非常快速地通过网络传输,但仍然包含需要采取立即行动的场景的所有信息。
而且,控制软件的实例对执行环境的要求也得到了缓解,从而极大地方便了在容器化环境或其他虚拟化环境中的部署。与硬件控制器的部署相比较,因为硬件正在以潜在共享方式使用,所以虚拟化部署提供了更高的灵活性和更低的运营成本。但是这种共享使用限制了通信带宽和处理资源。通过仅传输内部变量的优先子集,可以节省时间,从而使虚拟化环境变得足够快以完成手头的任务。即使诸如处理器或其内核之类的一些专用硬件被指派给控制软件的实例,所提及的灵活性也是有利的,因为这些指派可以动态调整。例如,在维护或中断的情况下,资源可以无缝地重新指派。
可以以自动方式确定优先子集的确定。例如,可以对用作活动实例的控制软件的源代码和/或目标代码执行计算机分析。该分析可以作为启动控制软件之前的准备步骤来执行。但是依据可用的计算能力,分析也可以在控制软件正在运行的同时临时执行。该分析可以包括静态分析,但备选地或组合地,它还可以包括在沙箱中执行目标代码并且监测其行为。分析导出对于所执行的控制任务,哪些内部变量比其他内部变量更为重要。本文中,一个潜在的重要性意义可以从特定内部变量或变量集合对驱动决策的影响中导出。
特别地,代码分析可以包括:评估所访问的变量的名称、变量之间的依赖关系(例如,一个变量可能仅仅是基于其他更为重要的变量的简单计算的结果)和/或具有“保留”级别的所访问的变量的标记。根据IEC 61131-3和相关标准,在控制应用的开发中,通常的做法是标记在设计控制软件时已经被认为很重要的内部变量。因此,在对控制软件进行编码时已经付出的努力可以重新用于确定最为重要的内部变量。
然而,即使控制软件是没有有意义的变量名称或变量标记的“黑匣子”,更为深入的自动化分析也可能揭示最为重要的内部变量。
例如,可以评估在计算中访问和/或使用变量的频率。如果更为频繁地需要变量的值,则它可能比只访问一次的变量更为重要,甚至可能在写入后根本不被读取。例如,在开发过程中,变量可能已被另一变量取代,但“孤立”的旧变量仍在计算中。
此外,可以评估变量之间的静态依赖关系。特别地,可以评估共同依赖于任一特定变量的变量的数目。许多其他变量所依赖的变量很可能更为重要。
更进一步地,可以评估控制软件的输出对一个或多个特定变量的定量依赖性。这种定量依赖性在某种程度上类似于控制软件的输出相对于所讨论的变量的“偏导数”。如果某些变量占用了很多空间,但如果忽略它们,则控制应用的输出变化很小,那么将它们排除在外可能会有益。
除了进入控制软件的内部变量的标记外,某些内部变量所依赖的过程或厂房变量的标记也可以用于评估这些内部变量的重要性。
在一个有利实施例中,内部变量的优先子集包括:
·至少一个内部变量,指示和/或依赖于执行该过程的工业厂房中的至少一个压力;和/或
·活动实例中使用的所有顺序功能图(SFC)的当前状态。
特别是,如之前所讨论的,压力位于在化学过程期间以及在需要真空的过程期间可能改变非常快的数量之中。例如,如果超高真空腔室存在小泄漏,则压力从10-9毫巴下降到10-6毫巴,这就是压力增加了1000倍。
SFC描述了例如过程的顺序步骤和要在步骤内部和在步骤之间的转换上触发的动作。为了使切换控制无缝,可能需要SFC的内部状态。例如,这些内部状态可能包括关于当前活动步骤的信息以及特定于SFC的计时器。
在一个特别有利的实施例中,向控制软件的不同的其他实例提供内部变量的优先级不同的子集,这些其他实例被配置为在来自活动实例发生故障和/或失灵的不同时间段内接管对工业过程的控制。
例如,可能存在控制软件的“热故障转移”实例,该“热故障转移”实例被配置为在活动实例变得不可用时立即接管控制。为了提供更高级别的冗余,在正常操作期间,可能存在正在使用来自活动实例的更少信息更新的另一“温故障转移”实例以及正在使用更少信息更新的“冷故障转移”实例。这减少了正常操作期间的通信带宽消耗。此外,“温故障转移”实例和“冷故障转移”实例可能以较低的优先级运行,甚至在正常操作期间处于休眠状态,从而减少处理资源的开销以增加冗余。
如果活动实例变得不可用并且“热故障转移”实例接管了控制,那么“温故障转移”实例可能会收到更大的状态更新和更多的处理资源,使得在这个“热故障转移”实例接下来故障的情况下,“温故障转移”实例可以立即从“热故障转移”实例接管控制权。故障
就“冷故障转移”实例仅在活动实例故障的情况下启动意义而言,该“冷故障转移”实例甚至可能是“冷”的,以便即使活动实例不再可用也将冗余程度恢复到期望级别。
在另一特别有利的实施例中,控制软件的至少一个其他实例被配置为以与活动实例所执行的正常操作模式相比较降级的操作模式控制工业过程。以这种方式,必须为其他实例提供较少的资源开销。例如,经降级的操作可能意味着工业过程正在运行得更慢,因此它的吞吐量更少。较小的吞吐量会引发成本。但是,如果发生这种情况,比如说,每月一次,持续几分钟,则这个成本可能低于必须为虚拟化环境提供处理能力来应对活动实例24/7的完整副本的成本。
本发明还提供了一种用于配置工业控制系统以根据上文所描述的方法来控制工业过程的方法。该方法由至少一个故障转移管理器或其他管理实体执行。
该方法首先将在控制软件的活动实例发生故障和/或失灵的情况下对控制系统的行为的给定要求集合映射到以下各项的配置:
·控制软件的一个或多个其他实例,该一个或多个其他实例要在发生故障和/或失灵后接管对工业过程的控制;以及
·要提供给这些其他实例的活动实例的内部变量的相应优先子集。
根据如此确定的配置在至少一个虚拟化平台上的相应虚拟化执行环境中创建至少一个或多个实例。内部变量的相应优先子集从活动实例到控制软件的相应其他实例的传送由故障转移管理器或其他管理实体编排和/或执行。活动实例也可能是待创建配置的一部分。也就是说,可以由故障转移管理器和/或其他管理实体创建完整控制系统,包括活动实例和所有其他后备实例在内。但是该方法也可以在没有中央协调的情况下执行,即,以对等方式或其他分散方式在没有故障转移管理器的情况下执行。
如果使用管理实体,则厂房操作员只需指定要求,而无需了解虚拟化平台、其能力和当前使用状态的任何细节。所有这些细节都由故障转移管理器或其他管理实体负责。特别是,可以无缝适应虚拟化环境的任何改变。例如,整个虚拟化环境可能会移动到具有不同网络延迟的本地其他地方的另一硬件。在这种情况下,故障转移管理器可以自动重新计算需要部署的实例的配置,以便满足给定要求。
特别地,到配置的映射可以至少部分基于以下各项中的一项或多项:
·对过程的控制的可靠性级别的要求;
·对发生故障和/或失灵后的最长时间段的要求,在该最长时间段期间,至少一个其他实例必须接管对工业过程的控制;
·在虚拟化平台上创建和/或初始化至少一个其他实例所需的时间;
·用于在虚拟化平台上创建其他实例的资源可用性;
·活动实例与至少一个其他实例之间的可用通信带宽;以及
·工业过程的状态和/或阶段。
也就是说,故障转移管理器和/或其他管理实体可以充当“经纪人”,将来自厂房操作员的领域的需求和虚拟化平台的一侧的给定技术情形结合在一起。厂房操作员甚至不必了解关于正在使用的虚拟化平台的任何细节。因此,在虚拟化环境被移动到不同硬件或以某种其他方式改变的示例中,无需来自厂房操作员的气体输入来确定经更新的配置。
通过使映射依赖于工业过程的状态,故障转移管理器和/或其他管理实体可以考虑到对故障转移的要求在工业过程的不同阶段可能非常不同。例如,在存在爆炸性中间产品的化学过程阶段,可能需要具有众多其他故障转移实例的最大冗余。但是在其中不再具有爆炸性的成品只是被打包的最后阶段可能只需要一个故障转移实例。
特别地,编排内部变量的优先子集到其他实例的传送可以包括:在活动实例与至少一个其他实例之间建立至少一个通信通道。例如,在容器化环境中,不同容器中的控制软件实例最初彼此不知道任何信息。但是上级故障转移管理器和/或其他管理实体可以连接它们。
在一个特别有利的实施例中,通信通道包括发布/订阅一对多通信和/或命名管道。如果牵涉到控制软件的多于一个其他实例,则一对多通信节省了通信带宽。此外,如果添加了新的此类实例或如果此类实例的角色发生了改变(例如,从“温故障转移”改变为“热故障转移”),则通信的发布/订阅性质要求仅在接收其他实例的一侧进行改变。
在另一有利的实施例中,执行将内部变量的优先子集到其他实例的传送可以包括:在故障转移管理器和/或其他管理实体中缓冲优先子集。例如,固定大小的环形缓冲器可以保存活动实例的最新状态的滚动历史。如果故障转移的时间要求不是太高,则可能没有必要让其他故障转移实例一直运行。相反,当活动实例故障并且必须进行故障转移时,故障转移管理器和/或其他管理实体可以启动另一实例。然后,可以为新近开启的其他实例提供来自环形缓冲器的状态。
这些方法可以完全或部分由计算机实现。因此,本发明还提供一种或多种具有机器可读指令的计算机程序,当在一个或多个计算机上执行时,使得一个或多个计算机执行上文所描述的方法。特别地,虚拟化平台和一个或多个硬件控制器可以被视为计算机。
本发明还提供一种或多种非暂态存储介质和/或下载产品,具有一种或多种计算机程序。下载产品是可以在在线商店中出售以通过下载立即实现的产品。本发明还提供一个或多个计算机,具有一种或多种计算机程序和/或具有一种或多种非暂态机器可读存储介质和/或下载产品。
特别地,本发明提供至少以下优点:
·基于关键性的应用状态的自动选择和外部化。关键性基于现有注释(例如,保留)来确定或使用静态代码分析和对运行时期间的变量改变行为的分析自动导出。
·基于高级别可用性要求(例如,按照服务等级协议(SLA))由故障转移管理器(软件代理)导出具体的故障转移实例部署并且编排这些部署。给定期望应用可用性级别,故障转移管理器会计算在任何给定时间应有多少冗余备用实例处于活动状态以及它们如何分布在硬件节点或(例如,可用区域)之间。这些可用性SLA可以按照正常运行时间百分比(例如,99.999%)或按照每年/每月/每周的最大可容忍停机时间分钟/秒来提供。
·故障转移管理器自动孵化应用故障转移实例并指派故障转移角色。作为应用部署的一部分的故障转移代理监测发布率违规并自主决定接管主动执行角色。
·在一个实施例中,迁移管理器实例本身也依据其关键性订阅状态更新(例如,所有实例订阅冷保留,少数实例订阅保留,只有一个实例订阅普通变量),并且保留状态的临时副本以按需孵化新应用实例。这个本地维护的状态副本用于孵化新应用实例,以在没有故障转移应用的情况下可以接管执行。
·本发明中描述的机制可以用于需要在主机之间迁移应用的迁移用例。在这种情况下,在关闭活动实例以强制进行故障转移之前,孵化并同步故障转移实例。依据迁移时间要求,可以进行完全传送或部分传送。
本发明使得客户能够在容器编排环境中在高可用性要求下运行控制应用。为此,无需对控制应用的设计方式进行任何改变。在保留标记已在控制逻辑内使用并测试的情况下,甚至遗留/棕地应用也可以被迁移到容器编排环境而无需改变控制逻辑。所有所需故障转移机制都从应用外部实现。依据所表达的故障转移要求,新环境中应用的故障转移语义均为明确定义,并且类似于硬件控制器温/冷重启的预期行为。
关键思想包括:
·利用控制代码保留级别注释以及基于内部变量对容器编排设置中的故障转移机制的关键性而自动导出的其传送优先级以实现控制应用的灵活且高度可配置的故障转移机制的思想。
·基于保留级别注释语义而外部化状态以满足用户定义的高可用性和冗余/故障转移要求的机制。
·将高可用性和冗余/故障转移要求的高级用户规范转换为具体故障转移实例部署的机制,这些部署对不同类型和严重性的故障场景具有鲁棒性。
·使得故障转移实例能够自主或联合检测故障转移集群中的故障应用实例以接管控制应用执行的基于监测的故障转移机制。
在下文中,对示例性实施例进行描述,而无需旨在限制本发明的范围。
对于经外部化的状态的实际递送,使用访问层、网络层或应用层发布/订阅机制或应用层订阅。为此,例如,可以使用OPC UA机制,但本发明不限于此,因为它也适用于其他递送机制。在这种背景下,效率的概念是指潜在使用发布/订阅机制来减少网络负载(在被复制到多于一个故障转移实例的状态的情况下)和仅传输经改变的状态。本文中,可以使用递增递送机制,诸如关键帧/增量帧机制和OPC UA的订阅语义。
可以定义单独变量的死区,以进一步降低需要传送的状态改变率。这可以通过引入附加注释来实现,过程工程师可以把这些附加注释添加到变量定义中或这些附加注释从被配置为用于输入信号的死区自动导出并且自动应用于依赖于这些信号的变量。
本发明利用控制应用工程师当设计控制应用时手动注释内部变量的事实。这通常通过使用诸如在IEC 61131-3应用代码的情况下的“保留”之类的特定关键字标记变量来完成。这个注释的语义是变量的值被持久化(例如,每个处理周期)到非易失性存储,以在应用或完整的硬件控制器重新启动后继续存在。在一些商业控制平台中,诸如“冷保留”之类的附加注释级别用于区分不同程度的持久性要求,并且为工程师提供对应用对控制平台施加的持久性开销的甚至更细粒度的控制。本发明并不特定于这些保留级别,而且还适用于其他保留级别和定义。应当指出,控制应用工程师将现有的经过良好测试的控制逻辑库作为他们自己的应用的一部分来重用。对于这些库,保留注释要么已经存在并且已经针对实时重新配置场景进行了测试,要么只需要导出一次即可与设想的基于保留级别的状态传送机制兼容。
除了利用先前所描述的现有手动注释之外,本发明还考虑使用静态代码分析以及对变量的改变行为的运行时监测来自动导出状态注释。这样,可以基于其他变量的依赖关系和控制应用逻辑对变量本身的依赖关系,没有注释的变量可以视为与故障转移级别相关。具有许多静态依赖关系的变量意味着它们的状态对于无缝故障转移比没有依赖关系的其他变量更为重要。这避免了因变量在丢失传送的情况下可能会受到影响。被视为关键的变量可能会被认为是相关的,并且与手动注释的变量(例如,保留变量)一起转送。同样,变量的动态改变行为可能导致决定在状态传送中包括变量。因为使用递增状态传送机制的传送的开销很小,所以针对传送,可以考虑随时间而缓慢改变的附加变量。相比之下,针对传送,还可以依据对随时间而快速改变的变量的依赖关系的数目考虑这些变量。应用实例本地的故障转移代理监测变量以动态确定并更新变量对于不同故障转移级别的重要性。然而,由于这种动态分析可能会由于非明显依赖关系和实际关键性而得出错误结论,所以可以在不自动进行改变但工程师或操作人员需要确认所监测的状态变量的任何改变的模式下使用该机制。
对于控制应用工程师将太多变量注释为保留变量的场景,上述机制还可以帮助将所传送的变量的数目自动减少到较小子集,从而减少状态复制工作。
变量的关键性评级用于解锁使状态复制适应控制应用的冗余要求的能力。这使得本发明直接适用于棕地设置和应用,在于避免了任何以昂贵方式重新设计控制代码,这样,高度可用的控制应用的经过良好测试和理解的持久性设置可以用于在容器化环境中运行相同应用,而无需改变。基于代码和改变分析的附加动态关键性评级有助于微调复制,并且标识控制工程师未正确注释的相关状态。
在故障转移的情况下,需要特别注意传送顺序功能图(SFC)的相关状态。SFC描述了例如过程的顺序步骤和要在步骤内部和在步骤之间的转换上触发的动作。步骤转换可以基于在变量和过程信号上定义的计时器和布尔条件来触发。
为了支持故障转移后控制程序的继续无缝执行,当前状态还必须传送到控制程序的所有SFC。这包括特定于SFC的计时器和关于当前活动步骤的信息。因此,对步骤和SFC计时器的改变默认使用保留变量传送。
这种语义可能不同于应用的“正常”保留行为,工程师通常可以明确选择是保持SFC状态还是在CPU重启期间移动到初始状态。
在运行时期间,故障转移管理器与容器编排环境交互,以检测由于主机不可用而需要更新应用部署。因此,它请求部署故障转移控制应用实例。要求(例如,三重冗余)会影响实例的部署,例如,部署到不同的主机、集群或可用区。每个实例都配备了边车容器(所谓的“故障转移代理”),该边车容器从故障转移管理器接收配置和所指派的角色。依据关键性,应用可能具有不同类型的故障转移实例。热故障转移实例订阅活动应用实例的所有外部化状态(冷保留、保留、其他)以及应用的输入信号。依据时序需要,故障转移实例可以维持处于休眠模式(不主动执行控制代码)或活动模式(基于最近状态更新不断执行控制代码)。默认情况下,所有类型的故障转移实例都作为休眠实例启动。下一节对其中冷备用实例仅在故障发生时才被启动的备选反应模式进行描述。
作为优化,主动执行热故障转移实例可以监测本地计算结果与它经由订阅接收的远程计算结果之间的差异。一旦两者同步,故障转移实例就可以逐步将其订阅减少到最低限度,以避免不必要的状态传输。至少,它订阅应用的输入和主应用实例的输出信号,以监测其可用性和同步状态。在差异的情况下,则再次建立订阅以达到同步。根据这个描述,可以清楚地看出,主动执行的热故障转移实例会用少量所传送的状态来换取执行控制应用所花费的更多所需计算资源。
故障转移实例不是写入输出信号,而是监测活动实例的输出。热故障转移实例可以立即接管活动实例的角色,而且还需要不断处理所有状态更新或自己主动执行应用(参见关于休眠和活动模式的先前段落)。温故障转移实例仅订阅保留级别状态更新,而冷故障转移实例仅订阅冷保留状态更新(如果适用于控制平台)。因此,温故障转移实例和冷故障转移实例可能会接收到更少数量的状态更新,而且还可能以非无缝方式接管执行。然而,定义良好的保留语义会导致故障转移行为,在最坏的情况下,该故障转移行为类似于传统部署的控制应用在硬件控制器重新启动的情况下的行为。因此,故障转移可能并非是无缝的,但行为是良好定义的,按控制工程师预期,并且被认为对于特定工业过程是可以接受的。
应当指出,将状态同时复制到潜在许多故障转移实例的整体途径可能暗含大量网络负载。因此,可能有必要依据网络和主机功能限制故障转移实例和角色的数目。然而,对于最先进的计算集群设置,这没有被视为问题。本文中,用实现快速故障转移的能力以及灵活适应快速异构且快速改变的环境的能力换取网络带宽。潜在优化可能会是保留多个故障转移实例,但只将状态复制到固定数目的实例。在故障的情况下,则具有活动同步的实例将接管并且状态复制扩展到附加实例。
接管活动应用实例的执行的实际决定由各单独故障转移代理本身基于它们的角色和对所接收的状态更新的活动监测以及可选地所监测的活动实例的输出信号更新而做出。订阅被配置为在没有发生状态更新的情况下提供常规心跳消息。这样,可以基于所丢失的心跳的经预先配置的数目以快速方式检测到故障的应用。故障转移实例还可以相互监测,并且使用共识机制来确定领导者,以在每个角色存在多于一个可用实例的情况下定义确定性故障转移序列。故障转移管理器经由容器编排框架监测应用实例的可用性,该容器编排框架负责在部署改变的情况下(例如,在实例故障或容器编排事件发生的情况下)自动孵化新实例。
在应用实例故障的情况下,故障转移管理器确保丢失输出信号不会导致任何过程中断。为此,故障转移管理器可能会在启动和配置故障转移实例时临时向执行器发送保持活动消息。然而,在由于启动时间过长而无法无缝进行故障转移的情况下,则可能必须在新近启动应用的同时重置执行器(例如,在仅存在冷故障转移实例或需要启动的情况下)。在这种情况下,在类似于控制器重置启动应用的同时,执行器可能会首先返回到安全操作条件。在这种情况下,还可能重置SFC以实现安全重启过程。
在某些设置中,更期望把监测机制和触发故障转移作为故障转移管理器或编排框架的一部分来实现。在许多备用节点和故障转移管理器本身的高可用性设置的情况下,这可能是有利的。
在一个变型中,迁移管理器本身订阅状态更新,并且监测主应用实例的可用性。它把所接收的状态缓存在环形缓冲器中,该环形缓冲器始终包含最后一个执行周期内的完整内部变量集合。一旦接收到下一周期内的完整集合,旧状态就会被覆盖以限制要管理和维护的状态量。此外,在集群设置中,管理集群也是冗余的。因此,多个迁移管理器实例订阅状态更新。然而,这可以以动态适应冗余需求的方式发生。一个实例可能订阅完整内部变量集合(所有保留级别变量和所自动检索的变量),而第二实例用作仅维护保留变量和配置更新的后备。这样,第二实例只能启动新近冷故障转移实例。
当迁移管理器检测到主应用实例的故障时,它会立即启动(开启)新故障转移实例,并且将最后一个已知状态注入该实例。为了使故障转移时间尽可能短,应用实例容器图像经过调整以实现快速启动,并且容器图像被预先分发到潜在执行节点并解压缩,包括其所有依赖关系在内,以实现快速部署和启动。为此,使用了先前提出的容器编排环境扩展。因此,可以快速启动故障转移实例,这主要取决于将状态传送并注入到故障转移实例所花费的时间。这种故障转移模式预计适用于周期时间更为宽松(例如,>100ms)的应用。依据状态的大小和网络延迟,更快的故障转移也可能可行。这种反应式故障转移实现还可以用来补充之前所描述的主动式故障转移机制。
所描述的机制还可以用于应用迁移用例。在这种情况下,孵化故障转移实例,并且经由容器编排环境简单触发活动实例的关闭/删除来触发执行接管。本文中,故障转移管理器可能会等待故障转移实例发信号通知第一完成(根据期望故障转移级别)状态传送发生,并且发布删除相关执行单元(例如,运行控制应用的pod及其故障转移代理边车)。依据迁移时间要求,可以进行完全传送或部分状态传送。
附图说明
在下文中,使用附图来描述本发明,并不旨在限制本发明的范围。各附图示出了:
图1是用于控制工业过程1的方法100的示例性实施例;
图2是用于配置工业控制系统以根据方法100来控制过程1的方法200的示例性实施例;
图3是由方法200生成的第一示例性配置7;
图4是由方法200生成的第二示例性配置7。
具体实施方式
图1是用于控制工业过程1的方法100的示例性实施例的示意流程图。在步骤110中,向控制软件的活动实例2提供过程1的过程数据1a作为输入。在步骤120中,基于该输入,活动实例2更新其内部状态2a。在步骤130中,基于经更新的内部状态130,生成输出信号2b。在步骤140中,该输出信号2b输出到至少一件设备1b,该至少一件设备1b被配置为更改工业过程1的状态和/或行为。如之前所讨论的,厂房1b的示例包括直接作用于过程1的致动器以及保持某些过程参数处于设定点值的低级控制器。
图1示出了获得表征活动实例的状态2a的内部变量的优先子集2a*、2a**、2a***的两种示例性方式。在步骤150中,通过对用作活动实例2的控制软件的源代码和/或目标代码的分析来确定该优先子集2a*、2a**、2a***。在步骤160中,优先子集2a*、2a**、2a***是通过对内部变量的标记和/或这些内部变量所依赖的具有保留级别的过程或厂房变量的标记的分析来确定的。
不管如何确定优先子集2a*、2a**、2a***,在步骤170中,向控制软件的至少一个其他实例3、4、5提供优先子集2a*、2a**、2a***。这些实例可能包含与活动实例中使用的软件相同的软件,但本文中可能有意引入软件多样性,例如,为了进一步提高可靠性。根据框171,可以向控制软件的不同的其他实例3、4、5提供优先级不同的内部变量子集2a*、2a**、2a***。
图2是用于根据上文所描述的方法100控制工业过程1的方法200的示例性实施例的示意流程图。
在步骤210中,在活动实例2发生故障和/或失灵的情况下,该系统应表现出的控制系统的行为的给定要求集合被映射到配置7。该配置7包括控制软件的一个或多个其他实例3、4、5,该一个或多个其他实例3、4、5要在发生故障和/或失灵后接管对工业过程1的控制;以及活动实例2的内部变量的相应优先子集2a*、2a**、2a***,这些相应优先子集2a*、2a**、2a***提供给这些其他实例3、4、5。
在步骤220中,根据如此确定的配置7在至少一个虚拟化平台上的相应虚拟化执行环境中创建至少一个或多个其他实例3、4、5。在图2所示的示例中,活动实例2也在步骤220中创建。
在步骤230中,编排和/或执行把内部变量的相应优先子集2a*、2a**、2a***从活动实例2到控制软件的相应其他实例3、4、5的传送。根据框231,该编排可以包括:在活动实例2与至少一个其他实例3、4、5之间建立至少一个通信通道。根据框232,执行内部变量的优先子集2a*、2a**、2a***、2a***到其他实例3、4、5的传送可以包括:在故障转移管理器和/或其他管理实体10、11中缓存优先子集。
图3示出了可能是方法200的结果的配置7的第一示例性实施例。在图3所示的示例中,管理集群11用作配置控制软件的实例2、3、4、5和故障转移行为的管理实体。管理集群11包括容器编排模块11a和故障转移管理器11b。容器编排模块11a确定配置7。故障转移管理器11b根据该配置7启动并配置实例2、3、4、5,并且向容器编排模块11a确认配置7已经实现。
用于工业过程1的正常操作的活动实例2被部署在容器12中,该容器12包括活动实例2的虚拟化执行环境12a和故障转移代理边车12b。故障转移代理边车12b从活动实例2的内部状态2a中提取以下各项:
·被标记为“冷保留”的内部变量的第一优先子集2a*,
·被标记为“保留”的内部变量的第二优先子集2a**,以及
·被标记为“其他”的内部变量的第三优先子集2a***。
内部变量的所有不同子集2a*、2a**、2a***在发布/订阅系统中发布在可以由控制软件的其他实例3、4、5订阅的分开通道上。
在图3所示的示例中,配置7还包括:
·被部署在容器13中的控制软件的热故障转移实例3,
·被部署在容器14中的控制软件的温故障转移实例4,以及
·被部署在容器15中的控制软件的冷故障转移实例5。
与容器12类似,每个容器13、14、15包括其自己的用于相应实例3、4、5的虚拟化执行环境13a、14a、15a,以及其自己的故障转移代理边车13b、14b、15b。
故障转移代理边车13b订阅内部变量的所有子集2a*、2a**、2a**,并且使用这些子集更新实例3的内部状态3a。
故障转移代理边车14b仅订阅内部变量的“冷保留”子集2a*和“保留”子集2a**,并且使用这些子集来更新实例4的内部状态4a。它不订阅内部变量的“其他”子集2a***。
故障转移代理边车15b仅订阅“冷保留”子集2a*,并且使用该子集来更新实例5的内部状态5a。
所有故障转移代理边车12b、13b、14b和15b的故障转移角色由管理集群11中的故障转移管理器11b配置。
图4示出了可以是方法200的结果的配置7的第二示例性实施例。本文中,使用了两个冗余管理实体10、11。每个管理实体10、11包括容器编排模块10a、11a和迁移管理器10b、11b。
类似于图3,控制软件的活动实例2被部署在具有虚拟化执行环境12a和故障转移代理边车12b的第一容器12中。从活动实例2的内部状态2a,故障转移代理12b再次提取内部变量的“冷保留”子集2a*、“保留”子集2a*和“其他”子集2a**。所有这些子集2a*、2a**和2a***再次在发布/订阅系统中的不同通道上发布。
管理实体10中的迁移管理器10b仅订阅“冷保留”子集2a*,并且将该子集2a*的记录缓存在大小固定的环形缓冲器10c中。管理实体11中的迁移管理器11b订阅“冷保留”子集2a*和“保留”子集2a**。所接收的记录缓存在环形缓冲器11c中。当环形缓冲器10c、11c已满并且下一记录进入时,环形缓冲器10c、11c中各自最旧的记录被丢弃以便为新记录腾出空间。
在图4所示的情况下,管理实体11中的容器编排模块11a指令迁移管理器11b从活动实例2故障转移到新待创建实例3,以使活动实例2可以被迁移到其他硬件(或可能对其执行的任何其他维护工作)。迁移管理器11b使得实例3在具有虚拟化执行环境13a和故障转移代理边车13b的容器13中启动。故障转移代理边车13b从迁移管理器11b的环形缓冲器11c中获取“冷保留”子集2a*和“保留”子集2a**的记录,并且使用这些记录来更新新创建的实例3的内部状态3a,以使它可以接管活动实例2的工作。然后,迁移管理器11b确认成功的故障转移到容器编排模块11a。
附图标记列表
1 工业过程
1a 过程1的过程数据
1b 设备,作用于过程1
2 控制软件的活动实例
2a 活动实例2的内部状态
2a* 活动实例2的内部变量的“冷保留”优先子集
2a** 活动实例2的内部变量的“保留”优先子集
2a*** 活动实例2的内部变量的“其他”优先子集
2b 输出信号
3 控制软件的热故障转移实例
3a 热故障转移实例3的内部状态
4 控制软件的温故障转移实例
4a 温故障转移实例4的内部状态
5 控制软件的冷故障转移实例
5a 冷故障转移实例5的内部状态
6 控制系统的行为要求
7 实例2、3、4、5和子集2a*、2a**、2a***的配置
10、11 管理实体
10a、11a 管理实体10、11中的容器编排模块
10b、11b 管理实体10、11中的迁移管理器/故障转移管理器
10c、11c 管理实体10、11中的状态环形缓冲器
12 活动实例2的容器
12a 容器12中的虚拟化执行环境
12b 容器12中的故障转移代理边车
13 热故障转移实例3的容器
13a 容器13中的虚拟化执行环境
13b 容器13中的故障转移代理边车
14 温故障转移实例4的容器
14a 容器14中的虚拟化执行环境
14b 容器14中的故障转移代理边车
15 冷故障转移实例5的容器
15a 容器15中的虚拟化执行环境
15b 容器15中的故障转移代理边车
100 用于控制工业过程1的方法
110 向活动实例2提供过程数据1a
120 更新活动实例2的内部状态
130 确定输出信号2b
140 向设备1b输出输出信号2b
150 活动实例2的控制软件的代码解析
160 变量的标记的分析
170 向其他实例3、4、5提供子集2a*、2a**、2a***
171 对不同实例3、4、5使用不同子集2a*、2a**、2a***
200 用于配置工业控制系统的方法
210 将需求6映射到配置7
220 创建其他实例3、4、5
230 编排/执行子集2a*、2a**、2a***的传送
231 建立通信通道
232 缓存子集2a*、2a**、2a***
Claims (15)
1.一种用于控制工业过程(1)的方法(100),包括以下步骤:
·向控制软件的活动实例(2)提供(110)所述工业过程(1)的过程数据(1a)作为输入,其中所述过程数据(1a)包括所述工业过程(1)的过程变量集合和/或执行这种过程(1)的工业厂房的厂房变量;
·基于这种输入,更新(120)所述控制软件的所述活动实例(2)的内部状态(2a),其特征在于这种活动实例(2)的内部变量集合;
·基于这种经更新的内部状态(2a),通过所述活动实例(2)确定(130)输出信号(2b),并且将这种输出信号(2b)输出(140)到至少一件设备(1b),所述至少一件设备(1b)被配置为更改所述工业过程(1)的状态和/或行为;以及
·向所述控制软件的至少一个其他实例(3,4,5)提供(170)表征所述活动实例(2)的所述状态(2a)的所述内部变量的优先子集(2a*,2a**,2a***),所述控制软件的所述至少一个其他实例(3,4,5)被配置为在所述活动实例(2)发生故障和/或失灵的情况下接管对所述工业过程(1)的控制。
2.根据权利要求1所述的方法(100),还包括:通过对被用作所述活动实例(2)的所述控制软件的源代码和/或目标代码的分析来确定(150)所述内部变量的所述优先子集(2a*,2a**,2a***)。
3.根据权利要求2所述的方法(100),其中所述控制软件的所述代码分析包括对以下各项中的一项或多项的评估:
·所访问的变量的名称;
·具有保留级别的所访问的变量的标记;
·在计算中访问和/或使用的变量的频率;
·变量之间的静态依赖关系;
·共同依赖于任何一个特定变量的变量的数目;以及
·所述控制软件的所述输出对一个或多个特定变量的定量依赖性。
4.根据权利要求1至3中任一项所述的方法(100),还包括:通过对内部变量的标记和/或这些内部变量所依赖的具有保留级别的过程或厂房变量的标记的分析来确定(160)所述内部变量的所述优先子集(2a*,2a**,2a***)。
5.根据权利要求1至4中任一项所述的方法(100),其中所述内部变量的所述优先子集(2a*,2a**,2a***)包括:
·至少一个内部变量,指示和/或依赖于执行所述过程(1)的所述工业厂房中的至少一个压力;和/或
·所述活动实例中使用的所有顺序功能图SFC的当前状态。
6.根据权利要求1至5中任一项所述的方法(100),其中内部变量的优先级不同的子集(2a*,2a**,2a***)被提供(171)给控制软件的不同的其他实例(3,4,5),所述控制软件的所述不同的其他实例(3,4,5)被配置为在来自所述活动实例(2)发生所述故障和/或失灵的不同时间段内和/或在维护场景中接管对所述工业过程(1)的控制。
7.根据权利要求1至6中任一项所述的方法(100),其中控制软件的至少一个其他实例(3,4,5)被配置为以与所述活动实例(2)所执行的正常操作模式相比较降级的操作模式控制所述工业过程(1)。
8.一种用于配置工业控制系统以根据权利要求1至7中任一项所述的方法(100)来控制工业过程(1)的方法(200),包括由至少一个故障转移管理器和/或其他管理实体(10,11)执行的以下步骤:
·将在控制软件的活动实例(2)发生故障和/或失灵的情况下所述控制系统的行为的给定要求集合(6)映射(210)到以下各项的配置(7):
○控制软件的一个或多个其他实例(3,4,5),要在发生所述故障和/或失灵后接管对所述工业过程(1)的控制;以及
○所述活动实例(2)的内部变量的相应优先子集(2a*,2a**,2a***),要被提供给这些其他实例(3,4,5);
·根据如此确定的配置(7)在至少一个虚拟化平台上的相应虚拟化执行环境中创建(220)至少一个或多个其他实例(3,4,5);以及
·编排和/或执行(230)内部变量的所述相应优先子集(2a*,2a**,2a***)从所述活动实例(2)到控制软件的所述相应其他实例(3,4,5)的传送。
9.根据权利要求8所述的方法(200),其中所述映射至少部分基于以下各项中的一项或多项:
·对所述过程(1)的所述控制的可靠性级别的要求;
·对发生所述故障和/或失灵后的最长时间段的要求,在所述最长时间段期间,至少一个其他实例(3,4,5)必须接管对所述工业过程(1)的控制;
·在所述虚拟化平台上创建和/或初始化至少一个其他实例(3,4,5)所需的时间;
·用于在所述虚拟化平台上创建其他实例(3,4,5)的资源可用性;
·所述活动实例(2)与至少一个其他实例(3,4,5)之间的可用通信带宽;以及
·所述工业过程(1)的状态和/或阶段。
10.根据权利要求8至9中任一项所述的方法(200),其中编排内部变量的优先子集到其他实例的传送包括:在所述活动实例(2)与至少一个其他实例(3,4,5)之间建立(231)至少一个通信通道。
11.根据权利要求10所述的方法(200),其中所述通信通道包括:发布/订阅一对多通信和/或命名管道。
12.根据权利要求8至11中任一项所述的方法,其中执行内部变量的优先子集(2a*,2a**,2a***)到其他实例(3,4,5)的传送包括:缓存(232)所述故障转移管理器和/或所述其他管理实体(10,11)中的优先子集(2a*,2a**,2a***)。
13.一种或多种计算机程序,包括机器可读指令,所述机器可读指令当在一个或多个计算机上执行时,使得所述一个或多个计算机执行根据权利要求1至12中任一项所述的方法(100,200)。
14.一种或多种非暂态存储介质和/或下载产品,具有根据权利要求13所述的一种或多种计算机程序。
15.一种或多种计算机,具有根据权利要求13所述的一种或多种计算机程序和/或具有根据权利要求14所述的一种或多种非暂态存储介质和/或下载产品。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP21164229.3 | 2021-03-23 | ||
EP21164229.3A EP4063974A1 (en) | 2021-03-23 | 2021-03-23 | Controlling an industrial process using virtualized instances of control software |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115113591A true CN115113591A (zh) | 2022-09-27 |
Family
ID=75173125
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210288559.3A Pending CN115113591A (zh) | 2021-03-23 | 2022-03-22 | 使用控制软件的虚拟化实例控制工业过程 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220308559A1 (zh) |
EP (1) | EP4063974A1 (zh) |
CN (1) | CN115113591A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11768877B2 (en) * | 2019-09-20 | 2023-09-26 | Fisher-Rosemount Systems, Inc. | Smart search capabilities in a process control system |
US11768878B2 (en) * | 2019-09-20 | 2023-09-26 | Fisher-Rosemount Systems, Inc. | Search results display in a process control system |
Family Cites Families (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4959768A (en) * | 1989-01-23 | 1990-09-25 | Honeywell Inc. | Apparatus for tracking predetermined data for updating a secondary data base |
US5016244A (en) * | 1989-09-08 | 1991-05-14 | Honeywell Inc. | Method for controlling failover between redundant network interface modules |
US5136498A (en) * | 1990-09-26 | 1992-08-04 | Honeywell Inc. | Method for enacting failover of a 1:1 redundant pair of slave processors |
US5142470A (en) * | 1990-09-26 | 1992-08-25 | Honeywell Inc. | Method of maintaining synchronization of a free-running secondary processor |
US5202822A (en) * | 1990-09-26 | 1993-04-13 | Honeywell Inc. | Universal scheme of input/output redundancy in a process control system |
US5426774A (en) * | 1993-04-06 | 1995-06-20 | Honeywell Inc. | Method for maintaining a sequence of events function during failover in a redundant multiple layer system |
US5980078A (en) * | 1997-02-14 | 1999-11-09 | Fisher-Rosemount Systems, Inc. | Process control system including automatic sensing and automatic configuration of devices |
US6272386B1 (en) * | 1998-03-27 | 2001-08-07 | Honeywell International Inc | Systems and methods for minimizing peer-to-peer control disruption during fail-over in a system of redundant controllers |
US6266781B1 (en) * | 1998-07-20 | 2001-07-24 | Academia Sinica | Method and apparatus for providing failure detection and recovery with predetermined replication style for distributed applications in a network |
US6742136B2 (en) * | 2000-12-05 | 2004-05-25 | Fisher-Rosemount Systems Inc. | Redundant devices in a process control system |
US20030005350A1 (en) * | 2001-06-29 | 2003-01-02 | Maarten Koning | Failover management system |
EP1249744A1 (de) * | 2001-08-23 | 2002-10-16 | Siemens Aktiengesellschaft | Verfahren zum Herstellen konsistenter Speicherinhalte in redundanten Systemen |
US7363531B2 (en) * | 2003-05-30 | 2008-04-22 | Sun Microsystems, Inc. | Data synchronization for system controllers |
JP4776374B2 (ja) * | 2005-12-27 | 2011-09-21 | 株式会社東芝 | 二重化監視制御システム、及び同システムの冗長化切替え方法 |
US8359112B2 (en) * | 2006-01-13 | 2013-01-22 | Emerson Process Management Power & Water Solutions, Inc. | Method for redundant controller synchronization for bump-less failover during normal and program mismatch conditions |
US8924498B2 (en) * | 2010-11-09 | 2014-12-30 | Honeywell International Inc. | Method and system for process control network migration |
FR2982961B1 (fr) * | 2011-11-22 | 2014-09-05 | Schneider Electric Usa Inc | Arbitrage de dispositif de commande prioritaire |
EP3407513B1 (en) * | 2012-02-01 | 2019-07-10 | ABB Schweiz AG | Updating data from a controller of a primary device of a power substation |
US9626634B2 (en) * | 2012-09-12 | 2017-04-18 | Abb Schweiz Ag | Industrial plant equipment, process and maintenance optimization |
EP2813912B1 (en) * | 2013-06-14 | 2019-08-07 | ABB Schweiz AG | Fault tolerant industrial automation control system |
CN107003644B (zh) * | 2014-06-26 | 2020-10-02 | Abb瑞士股份有限公司 | 用于使用冗余本地监督控制器来控制过程工厂的方法 |
US9699022B2 (en) * | 2014-08-01 | 2017-07-04 | Honeywell International Inc. | System and method for controller redundancy and controller network redundancy with ethernet/IP I/O |
US9507678B2 (en) * | 2014-11-13 | 2016-11-29 | Netapp, Inc. | Non-disruptive controller replacement in a cross-cluster redundancy configuration |
US9853855B2 (en) * | 2014-12-03 | 2017-12-26 | Fortinet, Inc. | Stand-by controller assisted failover |
US10409270B2 (en) * | 2015-04-09 | 2019-09-10 | Honeywell International Inc. | Methods for on-process migration from one type of process control device to different type of process control device |
US10169172B2 (en) * | 2015-08-11 | 2019-01-01 | International Business Machines Corporation | Passive detection of live systems during controller failover in distributed environments |
US11386123B2 (en) * | 2015-12-14 | 2022-07-12 | Abb Schweiz Ag | Method and apparatus for file synchronization based on qualifying trigger actions in industrial control applications |
EP3542435B1 (en) * | 2016-11-18 | 2021-03-10 | ABB Power Grids Switzerland AG | Synchronization of microgrids with each other |
US10983880B2 (en) * | 2018-07-31 | 2021-04-20 | Hewlett Packard Enterprise Development Lp | Role designation in a high availability node |
EP3702857B1 (en) * | 2019-03-01 | 2024-07-24 | ABB Schweiz AG | Redundancy in a network centric process control system |
EP3702910B1 (en) * | 2019-03-01 | 2022-06-29 | ABB Schweiz AG | Online firmware upgrade of a node in a process control system |
US11481282B2 (en) * | 2019-03-29 | 2022-10-25 | Honeywell International Inc. | Redundant controllers or input-output gateways without dedicated hardware |
US11635980B2 (en) * | 2019-09-20 | 2023-04-25 | Fisher-Rosemount Systems, Inc. | Modular process control system |
US11662715B2 (en) * | 2020-02-13 | 2023-05-30 | Honeywell International Inc. | Multi-synch of a primary automation device with multiple secondaries |
US11762742B2 (en) * | 2020-03-31 | 2023-09-19 | Honeywell International Inc. | Process control system with different hardware architecture controller backup |
EP4064045A1 (en) * | 2021-03-25 | 2022-09-28 | ABB Schweiz AG | Method for real-time updating of process software |
US11609809B1 (en) * | 2021-08-25 | 2023-03-21 | Honeywell International Inc. | Method and apparatus for the enhanced diagnostic coverage of a secondary device of a redundant controller pair |
US11984760B2 (en) * | 2021-11-12 | 2024-05-14 | Abb Schweiz Ag | Modular static transfer switches |
US20230267035A1 (en) * | 2022-02-24 | 2023-08-24 | The Bank Of New York Mellon | System and methods for application failover automation |
-
2021
- 2021-03-23 EP EP21164229.3A patent/EP4063974A1/en active Pending
-
2022
- 2022-03-22 CN CN202210288559.3A patent/CN115113591A/zh active Pending
- 2022-03-22 US US17/700,981 patent/US20220308559A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4063974A1 (en) | 2022-09-28 |
US20220308559A1 (en) | 2022-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5713056B2 (ja) | プロセス制御装置及びシステム並びにその更新方法 | |
JP5243384B2 (ja) | アプリケーションステーションで利用される冗長マネージャ | |
EP2049987B1 (en) | Apparatus and method for allowing a fail-back to a prior software release in a process control system | |
CN115113591A (zh) | 使用控制软件的虚拟化实例控制工业过程 | |
US11277495B2 (en) | System and method for providing microservice-based device control interface | |
EP2354875A2 (en) | Peer-to-Peer exchange of data resources in a control system | |
US20110191627A1 (en) | System And Method for Handling a Failover Event | |
EP2972824B1 (en) | Computer system using in-service software upgrade | |
US8718807B2 (en) | System and method for robust real-time control of regular automated production using master recipe | |
KR20010072379A (ko) | 내고장성 컴퓨터 시스템 | |
CN110874261B (zh) | 可用性系统、方法和存储有程序的存储介质 | |
JPH0145658B2 (zh) | ||
US11966731B2 (en) | Method for real-time updating of process software | |
US8473702B2 (en) | Information processing apparatus, execution environment transferring method and program thereof | |
CN111143044B (zh) | 任务调度管理系统、方法、装置及其可存储介质 | |
CN112477919A (zh) | 一种适用于列车控制系统平台的动态冗余备份方法及系统 | |
CN114531373A (zh) | 节点状态检测方法、节点状态检测装置、设备及介质 | |
EP4443291A1 (en) | Cluster management method and device, and computing system | |
US20230101026A1 (en) | Method and Arrangement for Commissioning an Updated Application for an Industrial Automation Arrangement | |
US20080077925A1 (en) | Fault Tolerant System for Execution of Parallel Jobs | |
EP3757701A1 (en) | High availability for container based control execution | |
US20210019186A1 (en) | Information processing system, information processing apparatus, and method of controlling an information processing system | |
US20220308563A1 (en) | Controller and control method | |
JPH11298550A (ja) | 通信システム及び通信装置 | |
KR101907418B1 (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 |