CN117742282A - 用于控制逻辑测试的分布式控制系统的虚拟部署 - Google Patents
用于控制逻辑测试的分布式控制系统的虚拟部署 Download PDFInfo
- Publication number
- CN117742282A CN117742282A CN202311210403.4A CN202311210403A CN117742282A CN 117742282 A CN117742282 A CN 117742282A CN 202311210403 A CN202311210403 A CN 202311210403A CN 117742282 A CN117742282 A CN 117742282A
- Authority
- CN
- China
- Prior art keywords
- dcs
- control logic
- virtual
- declarative
- deployment
- 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
- 238000012360 testing method Methods 0.000 title claims description 58
- 238000000034 method Methods 0.000 claims abstract description 47
- 238000004519 manufacturing process Methods 0.000 claims abstract description 39
- 230000006399 behavior Effects 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 claims description 4
- 230000009471 action Effects 0.000 claims description 3
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 claims description 3
- 238000003860 storage Methods 0.000 claims description 2
- 238000004088 simulation Methods 0.000 description 16
- 241000196324 Embryophyta Species 0.000 description 14
- 230000008569 process Effects 0.000 description 13
- 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 11
- 238000013515 script Methods 0.000 description 10
- 238000009434 installation Methods 0.000 description 6
- 239000008186 active pharmaceutical agent Substances 0.000 description 4
- 238000011989 factory acceptance test Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000011990 functional testing Methods 0.000 description 2
- 238000004886 process control Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 241000380131 Ammophila arenaria Species 0.000 description 1
- 108010023321 Factor VII Proteins 0.000 description 1
- 208000027418 Wounds and injury Diseases 0.000 description 1
- 238000003889 chemical engineering Methods 0.000 description 1
- 238000001311 chemical methods and process Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 229910003460 diamond Inorganic materials 0.000 description 1
- 239000010432 diamond Substances 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 208000014674 injury Diseases 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000013102 re-test Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000000638 stimulation Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
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
- 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/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
-
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
-
- 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/24058—Remote testing, monitoring independent from normal control by pc
-
- 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/25—Pc structure of the system
- G05B2219/25232—DCS, distributed control system, decentralised control unit
-
- 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/31—From computer integrated manufacturing till monitoring
- G05B2219/31018—Virtual factory, modules in network, can be selected and combined at will
-
- 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/32345—Of interconnection of cells, subsystems, distributed simulation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Automation & Control Theory (AREA)
- General Engineering & Computer Science (AREA)
- Manufacturing & Machinery (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种用于针对给定工业过程创建分布式控制系统DCS的虚拟部署的计算机实现的方法,包括以下步骤:提供资产的实行工业过程的拓扑结构以及用于控制这些资产的控制逻辑;提供至少一个I/O模拟器,其被配置为向DCS供应传感器和/或行动者数据,其在给定工业过程的语境下是真实的;至少部分基于资产的所述拓扑结构和控制逻辑,确定形成DCS的部分的设备的拓扑结构;至少部分基于设备的拓扑结构,建立DCS的至少一个声明性和/或命令性描述,其表征DCS的多个设备、它们的放置和连接;至少部分基于声明性和/或命令性描述,在所选取的环境中创建DCS的设备的虚拟实例及其的连接,其中DCS的至少一个设备连接到至少一个I/O模拟器,从而得出DCS的所寻求的虚拟部署。
Description
技术领域
本发明涉及用于对工业工厂实行工业过程的分布式控制系统的控制逻辑的测试。
语境技术
自动化系统的控制逻辑容易出错,并且在开始实际生产之前需要进行彻底测试,以避免对人员和装备造成伤害。当已经安装了服务器和控制器时,在调试阶段后期测试逻辑可能会延迟距离生产的时间,以防后期发现误差并且需要修复。因此,在设计阶段中,可以在模拟环境中测试控制系统,该模拟环境根据IO模拟器刺激控制逻辑输入(例如,模拟温度、流动、液位、压力等)。然而,针对这种模拟环境维护单独的硬件和软件安装耗时费力且成本高昂,因此模拟通常只对极其大型安装具有成本效益。建立模拟系统仍然主要是手动过程,并且需要购买硬件、安装操作系统、安装安全措施、配置网络和部署软件。这可能会导致人为误差,既乏味又昂贵。当调试实际目标系统时,需要再次遵循相似的费力且容易出错的过程,从而增加附加成本和生产延迟。
EP 2 778 816 B1公开了一种用于测试分布式控制系统的方法。在远程数据处理服务器上,启动了多个虚拟机。这样的虚拟机可以包括软仿真器,以仿真DCS的元件,使得可以测试用于这种设备的设备软件。
发明目的
因此,本发明的目的是便于和加快测试待部署分布式控制系统的控制逻辑,并且还提高所获得的结果的质量。
该目的通过根据独立权利要求的方法来实现。在相应从属权利要求中对其他有利实施例进行详述。
发明内容
本发明提供了一种计算机实现的方法,用于针对给定工业过程创建分布式控制系统DCS的虚拟部署。也就是说,任务是设立具有当在以物理方式部署在工厂中的DCS上运行时可以执行工业过程的功能的分布式控制系统的模型。这种虚拟部署的目的有两个:首先,它可以用来测试这种部署当以物理形式设立时是否可能适合实行工业过程。其次,它可以用作用于测试控制逻辑的平台。
该方法从提供实行工业过程的资产的拓扑结构开始。该拓扑结构描述了执行工业过程需要哪些资产、这些资产必须按照何种次序协同工作才能实现这点、以及资产的位置。此外,提供了用于控制资产的控制逻辑。该控制逻辑可以包括实行整个工业过程所必需的控制逻辑的一部分或全部。
此外,还提供了I/O模拟器。该I/O模拟器被配置为向DCS供应传感器和/或行动者数据,传感器和/或行动者数据在给定工业过程的语境下是真实的。基本上,在尚未连接到真实过程的虚拟部署中,I/O模拟器弥补了与真实过程的缺失连接,从而控制逻辑和DCS具有一些真实数据可以处理,并且可以研究它们在静态情形和动态情形下的行为。I/O模拟器可以来自任何合适源。例如,它可以由用户输入,从库中获得,或基于实行工业过程的资产的拓扑结构自动生成。在以下各项中给出了用于自动生成I/O模拟器的示例性方法:
·Arroyo,E.,Hoernicke,M.,Rodríguez,P.,&Fay,A.(2016).Automaticderivation of qualitative plant simulation models from legacy piping andinstrumentation diagrams.Computers&Chemical Engineering,92,112-132;
·Barth,M.,&Fay,A.(2013).Automated generation of simulation modelsfor control code tests.Control Engineering Practice,21(2),218-230;以及
·Hoernicke,M.,Fay,A.,&Barth,M.(2015,September).Virtual plants forbrown-field projects.In 2015IEEE 20th Conference on Emerging Technologies&Factory Automation(ETFA)(第1页至第8页)
I/O模拟器例如可以是低保真度模拟器,其为过程控制系统的基本功能测试提供人工计算的传感器和行动者值。可替代地,I/O模拟器可以是高保真度模拟器,其集成化学过程或其他过程的专门模拟库。依据I/O模拟器的保真度,稍后可以执行不同种类的测试,例如,基本功能测试与更复杂的过程优化。从用于运行过程的资产的拓扑结构和控制逻辑自动导出低保真度I/O模拟器的一种示例性方式是跟踪测试流体(诸如水)通过工厂的流动。即使使用不包括物质的化学反应的低保真度I/O模拟器,也会发现控制逻辑中的几个软件误差以及DCS本身的许多问题。
高保真度I/O模拟可以超出这些低级误差,并且优化包括高级过程控制在内的整个自动化参数化。然而,这种模拟通常需要专门为定制化学过程而构建的模拟库,因此这些模拟库由专门组织的专家创建,通常招致高昂的许可成本。因此,这种高保真度模拟通常只针对大型且昂贵的加工工厂而构建。
至少部分基于资产的拓扑结构和控制逻辑,来确定形成DCS的一部分的设备的拓扑结构。也就是说,工业工厂的物理世界中的资产的拓扑结构影响DCS的设备的拓扑结构及其连接。例如,如果工厂被划分为位于不同建筑中的不同部分,则这种划分也将存在于DCS的拓扑结构中。这点很重要,因为它使基于虚拟部署的DCS的测试更加真实。例如,如果虚拟部署像实际工厂一样被划分为不同的部分,则可以研究这些部分之间的流量的连接和带宽问题。
至少部分基于DCS设备的这种拓扑结构(还被称为IT拓扑结构,与用于物理工业资产的拓扑结构的OT拓扑结构相反)并且可选地还基于控制逻辑,来建立表征DCS的多个设备、多个设备的布置和多个设备的连接的DCS的至少一个声明性和/或命令性描述。该声明性和/或命令性描述包含设立虚拟部署所需的所有信息。理想情况下,该声明性和/或命令性描述具有幂等性,这意味着无论环境的起始状态如何,部署DCS都将始终将该环境移动到相同的结束状态。虚拟部署的声明性和/或命令性描述的示例包括:
·Docker编写文件,其定义一个或多个服务以及它们如何协同工作;
·Kubernetes模板,其定义如何从多个容器组装应用;
·NixOS配置文件,其完整描述运行NixOS操作系统的物理或虚拟机上的系统配置和所安装的软件;以及
·OASIS TOSCA模板,其定义服务及其到计算节点的部署。
至少部分基于声明性和/或命令性描述,来在所选取的环境中创建DCS的设备及其连接的虚拟实例。本文中,DCS的至少一个设备连接到至少一个I/O模拟器,从而得出所寻求的DCS的虚拟部署。
对于测试DCS部署本身和对于测试控制逻辑两者,基于声明性和/或命令性描述的部署是可复制的,这是个重要优点。也就是说,同一描述可以总是以相同方式进行渲染。在不影响系统的功能和功能测试结果的情况下该描述还可以以应对(例如,在不同的目标环境中具有带有不同硬件特点的或多或少的计算节点的)部署拓扑结构的微小改变的方式来进行渲染。这意味着,如果需要改变并且修订描述,则对部署及其行为的改变可以直接归因于描述的改变。因此,可以通过对描述进行有针对性的改变来优化部署。例如,可以使描述中的某些参数(诸如DCS设备的云实例类型)变化,可以创建新部署,然后,可以评价该新部署是否比先前部署好。
通过这种方式,因为过程在更大程度上是自动化的,所以DCS的工厂验收测试(FAT)可以更快地且以更低的成本执行。先前,使用模拟系统执行FAT主要是手动过程,并且需要购买硬件、安装操作系统、安装安全措施、配置网络和部署软件。如果后来证明有必要对DCS进行修改,则对应修改必须延续到新FAT的模拟系统最终。这同样适用于当更新或扩展DCS或其控制逻辑时可能需要的重新测试。
而且,当确定了其在虚拟部署中的渲染展现出令人满意的性能的描述时,可以使用相同的描述在工业工厂中的物理硬件上进行实际生产部署。只需要改变部署的目标。但是,凭借声明性和/或命令性描述,如果DCS在虚拟部署中展现出令人满意的性能,则在生产部署中也会如此。在这种语境下,I/O模拟器的存在使虚拟部署更加真实,从而更好地转移到生产部署,在该生产部署中,I/O模拟器将被实际工业工厂取代。也就是说,在声明性和/或命令性描述中,以易于重复使用和可重复执行的方式对DCS进行编码有助于切换到生产环境,以使所创建和测试的DCS可以在实际工业过程中投入使用。
在一个特别有利的实施例中,根据声明性和/或命令性描述来确定DCS的预期状态的表示。然后,可以将通过创建DCS的设备及其连接的虚拟实例而获得的DCS的状态与该预期状态进行比较。如果虚拟DCS的实际状态不同于预期状态,则可以创建、修改和/或删除DCS的设备及其连接的虚拟实例,目标是使DCS的实际状态接近其预期状态。通过这种方式,该方法可以在部署期间对某些操作的失败做出动态反应。例如,在云部署中,因为云平台上的资源暂时短缺,所以部署资源的第一次尝试总是可能不成功。
在另一特别有利的实施例中,声明性和/或命令性描述包括基础设施作为代码指令,该基础设施作为代码指令当由云平台、和/或虚拟化平台、和/或配置管理工具执行时,使得云平台、和/或虚拟化平台、和/或配置管理工具创建DCS的至少一个设备的虚拟实例,虚拟实例具有在声明性和/或命令性描述中定义的属性。这样的基础设施作为代码指令的示例包括Amazon AWS CloudFormation模板或Terraform配置文件。通过这种方式,可以直接操纵和优化管控云中的实例的创建的参数。
具体地,声明性和/或命令性描述可以表征充当DCS的至少一个设备的虚拟实例的至少一个计算实例的:
·处理器内核的数目、和/或时钟速度、和/或占空比极限,和/或
·存储器大小,和/或
·大容量存储大小,和/或
·网络接口类型,和/或
·最大网络带宽,
和/或来自特定云平台上可用的实例类型库的实例类型的标识符。
这些数量可以针对任何给定目标进行优化。例如,一个这样的目标可以是使用最少的资源使用来实现令人满意的DCS性能。
在另一特别有利的实施例中,声明性和/或命令性描述表征DCS的设备的多个虚拟实例被连接到的至少一个网络的架构、带宽和/或延迟。通过这种方式,虚拟实例之间的连接可以以与这些实例本身相同的方式进行优化。
在另一特别有利的实施例中,在DCS的虚拟部署上测试实行控制逻辑。在实行期间监测控制逻辑的行为。将该行为与控制逻辑的给定预期行为进行比较。从该比较的结果根据预定准则来评价对控制逻辑的测试是合格还是失败。
如之前所讨论的,为了获得用于测试控制逻辑的试验台,使用基于声明性和/或命令性描述的虚拟部署降低了成本并且提高了可靠性。具体地,这种虚拟部署可以基于嵌入IT拓扑结构规范中的基础设施作为代码模板(例如,OASIS TOSCA、OASIS CAMP、Ansible剧本、Terraform部署模型),这些基础设施作为代码模板可以由被称为“编排器”的软件工具处理。规范可以通过版本控制系统进行管理,以使可以回滚到以前状态。编排器与配置管理工具(例如,Ansible、Puppet、Chef)、基础设施工具(例如,AWS CloudFormation、Terraform)、容器编排工具(例如,Docker Swarm、Kubernetes)、操作系统、虚拟化平台(例如,OpenStack、OpenShift、vSphere)和基于云的服务(例如,AWS、Google cloud、Azure)接口。
本发明中的拓扑结构规范与由工厂拓扑结构规范和控制逻辑生成的“IO模拟器”集成在一起,从而创建了独立测试系统。IT拓扑结构规范允许将模拟系统快速部署到私有/公共/混合云基础设施上,从而节省硬件的资本费用,并且将它们转化为云资源订阅的操作费用。由于测试基础设施只是临时使用,而云服务遵循按次付费的支付模型,所以使用公共云服务器可以显著降低测试环境的总拥有成本。
虚拟部署不仅节约了成本,还节省了手动设置测试环境的工作量。拓扑结构规范允许进行修改,以轻松测试各种场景,诸如:
·改变云部署目标(例如,以选取更符合需求或成本更低的提供商,或从公有云改为私有云);
·改变虚拟节点的数目(扩大/缩小)、测试不同的部署、提出经优化的部署;
·改变系统上的工作负载;以及
·将部署目标改为自有安装,然后,使用真实设备替换模拟传感器和致动器(自有安装无需附加手动安装工作量)。
模拟允许自动化工程师对系统执行各种测试,诸如:
·检查控制逻辑的功能;
·评价所设计的系统的资源利用,以协助进行产能规划;
·训练工厂操作员使用自动化系统;
·模拟故障场景并且训练适当的操作员动作;以及
·改变网络的配置并且检查节点的可访问性。
因此,在一个特别有利的实施例中,测试实行包括:通过至少一个I/O模拟器向控制逻辑供应传感器和/或行动者数据,在控制逻辑中存在特定待检测软件误差的情况下,使得控制逻辑的行为偏离预期行为。通过这种方式,只有在某些操作情形下才会产生后果的软件误差被发现的几率就会更高,因为这些情形都是以虚拟方式发生。
具体地,待检测软件误差可以包括以下各项中的一项或多项:
·同一变量的同时或以其他方式的多次使用;
·变量的错误设置和重置;
·控制逻辑对变量改变的错误反应;
·错误的极限或设定点值;
·缺失的或错误地实现的联锁逻辑;
·错误地定义的控制序列或动作序列;以及
·变量的溢出和/或裁剪。
1996年,第一枚阿丽亚娜五号火箭因整数溢出而丢失,就是工业环境中最后一个软件误差的突出示例。通过合适的I/O模拟器和虚拟的DCS部署,可能会在投入生产之前就已经注意到这个误差。
在另一特别有利的实施例中,响应于确定对控制逻辑的测试已经合格,设立与DCS的虚拟部署相对应的物理DCS。如之前所讨论的,仅通过基于相同的声明性和/或命令性描述再次启动部署并且仅将部署的目标改为生产环境,就可以使该物理DCS上的软件设置与先前虚拟DCS上的软件设置相同。物理DCS的设备连接到工业过程的资产,而非连接到I/O模拟器。
在另一特别有利的实施例中,响应于确定对控制逻辑的测试已经失败,
·DCS的声明性和/或命令性描述被修改,并且DCS的虚拟部署基于该经修改的声明性和/或命令性描述被更新;和/或
·控制逻辑被修改,
目标是提高控制逻辑的性能。此外,利用DCS的经更新的虚拟部署和/或利用经修改的控制逻辑,来恢复测试实行。
这是基于这样一种认识:如果控制逻辑未能在给定DCS部署中正确实行并递送令人满意的结果,则控制逻辑本身是一个潜在根本原因,但并非唯一原因。相反,分布式控制系统的部署也可能不够充分。例如,如果DCS的两个设备之间存在不适当的通信延迟,则控制逻辑的这一控制回路可能对过程的状态变量的改变做出迟来的反应,并且这可能使得控制逻辑的性能较差。
在另一特别有利的实施例中,根据预定准则,将性能系数指定给DCS的虚拟部署和/或指定给该虚拟部署上的控制逻辑的实行。在控制逻辑在DCS的相应虚拟部署上的测试合格的约束条件下,优化DCS的声明性和/或命令性描述,目标是提高这一性能系数。
在这种语境下,基于声明性和/或命令性描述自动创建DCS的虚拟部署的特定优点在于,可以将描述的许多不同版本呈现为虚拟部署,然后在没有人为干预的情况下进行测试。具体地,如果云用于这样的部署,则可以同时创建许多部署。当对某个性能因子执行优化时,高效进行这种优化的通常方式是计算待优化量相关的梯度。但这在当前语境下是不可能的,因为声明性和/或命令性描述包括许多离散性质的参数。因此,为了执行优化,需要测试更多的候选部署。要执行如此大量的测试,人力是不可能完成的。在人类参与的情况下执行如此大量的测试是不可能的。但在云中,人们可以投入任何计算能力来解决这个问题。
在另一特别有利的实施例中,在DCS的设备的至少一个虚拟实例中和/或在一个这样的实例的至少一个连接中模拟至少一个故障。然后,监测该模拟故障对控制逻辑的行为的影响。通过这种方式,可以检测到哪些实例或连接对于控制逻辑的运转至关重要。由此得出的一个可能结论是,可能值得为特定实例或连接提供冗余以便提高可靠性。
因为它是计算机实现的,所以本方法可以以软件的形式体现。因此,本发明还涉及一种具有机器可读指令的计算机程序,这些机器可读指令当由一个或多个计算机和/或计算实例实行时,使得一个或多个计算机和/或计算实例执行上文所描述的方法。计算实例的示例包括云中的虚拟机、容器或无服务器实行环境。本发明还涉及一种具有计算机程序的机器可读数据载体和/或下载产品。下载产品是一种具有计算机程序的数字产品,该数字产品可以在网上商店出售,以供立即完成并下载到一个或多个计算机。本发明还涉及一个或多个与计算机程序和/或机器可读数据载体和/或下载产品接口的计算实例。
附图说明
在下文中,使用附图来说明本发明,而不旨在限制本发明的范围。这些附图示出了:
图1是用于创建给定工业过程1的分布式控制系统DCS10的虚拟部署10*的方法100的示例性实施例;
图2是方法100在具有自动化工程系统22和自有DCS控制集群42的工业工厂中的示例性实现方式。
具体实施方式
图1是用于针对给定工业过程1创建分布式控制系统DCS10的虚拟部署10*的方法100的实施例的示意性流程图。
在步骤110中,提供实行工业过程1的资产的拓扑结构2(“OT拓扑结构”)以及用于控制这些资产的控制逻辑3。
在步骤120中,提供至少一个I/O模拟器4。该I/O模拟器4被配置为向DCS10提供传感器和/或行动者数据,传感器和/或行动者数据在给定工业过程1的语境下是真实的。
在步骤130中,至少部分基于资产的所述拓扑结构2和控制逻辑3,来确定形成DCS10的一部分的设备11的拓扑结构11a(“IT拓扑结构”)。
在步骤140中,至少部分基于设备11的这一拓扑结构11a,来建立DCS10的至少一个声明性和/或命令性描述12。该声明性和/或命令性描述12表征DCS10的多个设备11、多个设备11的布置和多个设备11的连接。
在步骤150中,至少部分基于声明性和/或命令性描述12,来在所选取的环境中创建DCS10的设备11的虚拟实例11*及其连接。DCS 10的至少一个设备11连接到至少一个I/O模拟器4,从而得出所寻求的DCS10的虚拟部署10*。
根据框151,可以从声明性和/或命令性描述12确定DCS10的预期状态10a*的表示。根据框152,然后,可以将通过创建DCS10的设备及其连接的虚拟实例11而获得的DCS10的状态10a与所述预期状态10a*进行比较。响应于确定DCS10的状态10a不同于DCS10的预期状态10a*(真值0),根据框153,可以创建、修改和/或删除DCS10的设备11的虚拟实例11*及其连接,目标是使DCS10的状态10a接近其预期状态10a*。
在步骤160中,在DCS10的虚拟部署10*上测试实行控制逻辑3。
根据框161,该测试实行可以包括:通过至少一个I/O模拟器4向控制逻辑3供应传感器和/或行动者数据,在控制逻辑3中存在特定待检测软件误差的情况下,使得控制逻辑的行为偏离预期行为。也就是说,如果存在软件误差,则应当通过将合适输入数据馈送到控制逻辑3来触发软件误差以显现其自身。
根据框162,可以模拟DCS10的设备11的至少一个虚拟实例11*中的故障和/或一个这样的实例11*的至少一个连接中的故障。根据框163,然后,可以监测该模拟故障对控制逻辑3的行为的影响。
在步骤170中,监测控制逻辑3在实行期间的行为3a。
在步骤180中,将该行为3a与控制逻辑3的给定预期行为3b进行比较。
在步骤190中,从这一比较180的结果180a根据预定准则5来评价对控制逻辑3的测试是合格还是失败。
如果测试已经合格(真值1),则在步骤200中,建立与该DCS 10的虚拟部署10*相对应的物理DCS10。这意味着该DCS的物理设备11(包括物理设备11的配置)也与虚拟部署10*中的设备11的虚拟实例11*相对应。在步骤210中,物理DCS10的设备11与实行工业过程1的资产而非I/O模拟器4。
如果测试失败(菱形190处的真值0),则在步骤220中,可以修改DCS10的声明性和/或命令性描述12,并且在步骤230中,可以基于经修改的这一声明性和/或命令性描述12来更新DCS(10)的虚拟部署10*。可替代地或与此相结合,在步骤240中,可以修改控制逻辑3。
然后,利用DCS10的经更新的虚拟部署10*和/或利用经修改的控制逻辑3,来恢复测试实行160。
在步骤250中,通过预定准则6,效能系数7可以被指定给DCS10的虚拟部署10*和/或被指定给虚拟部署10*上的控制逻辑3的实行。在步骤260中,然后,在控制逻辑在DCS10的相应虚拟部署10*上的测试合格的前提条件下,可以优化DCS10的声明性和/或命令性描述12,目标是提高效能系数7。
图2图示了方法100在具有自动化工程系统22和自有DCS控制集群42的工业工厂中的实现方式。
控制逻辑3由自动化工程系统22基于自动化要求8生成。I/O模拟生成器21从实行工业过程1的资产的控制逻辑3和拓扑结构2产生I/O模拟器4。
自动化工程系统22输出控制逻辑3以及过程图形和HMI系统9,该控制逻辑3可以使用实行引擎来丰富。过程图形和HMI系统9通常由工厂操作员用来监测工业过程1的实行,并且监测DCS10的性能。
基于控制逻辑3、I/O模拟器4以及可选的过程图形和HMI系统9和基础设施模板14,按照上文所描述的方法100的步骤130和140,拓扑结构建模工具31产生形成DCS10的一部分的设备11的拓扑结构11a以及表征DCS10的多个设备11的DCS10的声明性和/或命令性描述12。具体地,基础设施模板14可以包括用于IT基础设施的自动化任务的蓝图。例如,它们可以是指不同部署目标平台(例如,特定云供应商平台或自动化客户的私有IT基础设施)的规程、API和配置。模板提供了与目标平台的链接,并且包含部署部署工件所需的所有必要的安装和监测规程。特定基础设施模板格式的示例有Terraform计划、Ansible剧本或外壳脚本。
拓扑结构建模工具31可以具有规范语法,该规范语法可以可选地遵循工业标准,例如,OASIS TOSCA或OASIS CAMP。除了部署工件、IO模拟器、控制执行引擎和HMI系统外,拓扑结构建模工具还考虑了多个基础设施模板14(即,IT基础设施的自动化任务的蓝图)。这些是指不同部署目标平台(例如,特定云供应商平台或自动化客户的私有IT基础设施)的规程、API和配置。模板提供了与目标平台的链接,并且包含部署部署工件所需的所有必要的安装和监测规程。特定基础设施模板格式的示例是Terraform计划、Ansible剧本或外壳脚本。
DCS10的声明性和/或命令性描述12允许将软件部件指定给特定计算机节点或特定计算机节点类型。在分布式控制系统中,由于空间或联网原因,所以可能需要将部件特定指定给专用节点。如果部件需要虚拟化,诸如hypervisor或容器运行时,则部署架构师可以使用规范符号来指定这种虚拟化,以使编排器稍后可以使用这些信息来初始化相应虚拟化基础设施。该规范可以直接包括二进制编译的软件部件,或是指其中编排器可以下载这些二进制文件的网络存储库(例如,Docker存储库、Helm chart存储库)。
该规范还涵盖了集成所需项目特定输入参数(例如,用户凭据、用户偏好)以安装和启动目标软件的手段。这些可以在编排期间向编排器用户询问,或可以经由分开的拓扑结构编排配置文件13集成。这些包括例如用户凭证和用户偏好以及特定部署目标(例如,云平台或自有集群)的用户选项。所提出的发明的特殊优点在于,部署目标的选项仅由这些配置文件捕获。为了将系统从云中的测试环境重新部署到自有的实际运行时环境,用户只需要改变或编辑这些配置文件,而基础设施模板和声明性和/或命令性描述12可以按原样重新使用。这降低了重新部署的复杂性,从而减少了所需的时间和人为误差的来源。
根据上文所描述的方法100的方法步骤150,编排器32根据声明性和/或命令性描述12并且可选地还根据拓扑结构编排配置文件13产生:
·DCS10的虚拟部署10*,用于在云平台41上进行测试(T),或
·在自有集群42上配置物理DCS10以用于生产(P)。
如之前所讨论的,对于两种类型的部署,可以使用编排器32的相同输入。只需要切换目标。
部署的编排包括编排器,该编排器解析拓扑结构+编排规范和配置,并且构建预期部署架构的内部拓扑结构表示。然后,它实行描述中包括的基础设施作为代码脚本,并且相应地更新内部拓扑结构表示。例如,对于描述中的每个计算节点,它调用“创建”操作,该“创建”操作从公共云提供商提供资源或在裸机集群中设立资源。然后,编排器从基础设施接收关于节点和部件的状态(例如,启动、配置、运行、停止等)的更新,并且相应地更新内部拓扑结构表示。
所包括的基础设施作为代码脚本可以例如创建虚拟机或容器编排系统。它们可以为不同的云提供商(例如,Microsoft Azure云或Amazon Webservices)编写,并且与其API交互。其他云提供商的备选脚本可以“插入”到拓扑结构+编排规范中。脚本可以例如创建虚拟机,实行软件部件的安装程序,并且与软件容器编排API(例如,K8sAPI)交互。
编排器还注册来自目标基础设施的事件(例如,“节点关闭”、“部件崩溃”、“达到阈值”、“重新部署部件”),以便能够将内部拓扑结构表示更新为实际状态。编排器可以具有用户接口,以便部署架构师或自动化工程师可以在运行时监测和编辑拓扑结构和部件。
一旦工程控制逻辑和HMI图形与所生成的IO模拟器4一起部署在云平台41中,自动化工程师就可以开始测试系统。使用云平台可以引出许多节点进行可扩展性测试。云资源只在测试期间招致订阅费,使得自动化工程师就可以节省安装和管理单独测试系统的资本费用。自动化工程师可以实行启动和关闭序列,并且观察模拟控制系统是否按预期运行。经由HMI图形,他们可以在运行时监测模拟系统,并且与面板交互,例如,改变设置点和阀门位置以运行测试场景。他们可以比实时更快地实行刺激系统的整个模拟脚本。通过这种方式,可以根据任何给定协议来执行对DCS10的审计。如果测试揭示了控制逻辑中的问题,自动化工程师可以编辑自动化工程系统22中的逻辑,并且将其重新部署到模拟环境中。
一旦成功实行了所有测试,软件就可以部署在实际的目标环境中了。在工厂调试期间,在服务器和控制器已经安装和连接之后,部署架构师改变拓扑结构+编排规范以将系统部署到目标平台42。现在,只需要特定于目标平台42的测试,但不需要更多的功能测试。这大大缩短了系统的生产时间。取消对云平台资源的调试,因此不会招致订阅费。在任何时间,它们都可以经由编排器32被重新激活,例如,在其中需要测试新功能的工厂校订期间。
附图标记列表
1 工业过程
2 实行工业过程1的资产的拓扑结构
3 用于控制工业过程1的资产的控制逻辑
3a 控制逻辑在实行期间的实际行为
3b 控制逻辑在实行期间的预期行为
4 过程1中的真实数据的I/O模拟器
5 控制逻辑的测试准则
6 用于指定效能系数7的准则
7 效能系数
8 自动化要求
9 过程图形和HMI系统
10 分布式控制系统DCS
10a DCS的状态
10a*DCS的预期状态
10*DCS10的虚拟部署
11DCS10的设备
11*设备11的虚拟实例
12 虚拟DCS10*的声明性和/或命令性描述
13 拓扑结构和编排配置文件
14 基础设施模板
21 I/O模拟生成器
22 自动化工程系统
31 拓扑结构建模工具
32 编排器
41 云平台
42 自有集群
100用于创建虚拟部署10*的方法110 提供资产的拓扑结构2
120 提供I/O模拟器4
130确定设备11的拓扑结构11a
140建立声明性和/或命令性描述
150创建虚拟实例11*及其连接151确定DCS的预期状态10a*
152将状态10a与预期状态10a*进行比较153创建、修改和/或删除虚拟实例11*
160测试实行控制逻辑3
161供应触发软件误差的数据(如果存在)
162模拟虚拟实例11*或连接中的故障163监测模拟故障的影响170监测控制逻辑3的行为3a
180将行为3a与预期行为3b进行比较180a比较结果180
190从结果180a评价控制逻辑的适合性200设立物理DCS10
210将DCS10的设备11连接到过程1的资产220修改声明性和/或命令性描述12
230更新虚拟部署10*
240 修改控制逻辑3
250 根据准则6确定效能系数7
260 优化声明性和/或命令性描述12
Claims (15)
1.一种用于针对给定工业过程(1)创建分布式控制系统DCS(10)的虚拟部署(10*)的计算机实现的方法(100),包括以下步骤:
·提供(110)资产的实行所述工业过程(1)的拓扑结构(2)以及用于控制所述资产的控制逻辑(3);
·提供(120)至少一个I/O模拟器(4),所述至少一个I/O模拟器被配置为向所述DCS(10)供应传感器和/或行动者数据,所述传感器和/或行动者数据在所述给定工业过程(1)的语境下是真实的;
·至少部分基于所述资产的所述拓扑结构(2)和所述控制逻辑(3),来确定(130)形成所述DCS(10)的部分的设备(11)的拓扑结构(11a);
·至少部分基于设备(11)的所述拓扑结构(11a),来建立(140)所述DCS(10)的至少一个声明性和/或命令性描述(12),所述至少一个声明性和/或命令性描述(12)表征所述DCS(10)的多个设备(11)、所述多个设备(11)的放置和所述多个设备(11)的连接;
·至少部分基于所述声明性和/或命令性描述(12),来在所选取的环境中创建(150)所述DCS(10)的所述设备(11)的虚拟实例(11*)以及所述虚拟实例(11*)的连接,其中所述DCS(10)的至少一个设备(11)被连接到至少一个I/O模拟器(4),从而得出所述DCS(10)的所寻求的所述虚拟部署(10*)。
2.根据权利要求1所述的方法(100),还包括:
·从所述声明性和/或命令性描述(12)来确定(151)所述DCS(10)的预期状态(10a*)的表示;
·将通过创建所述DCS(10)的所述设备的虚拟实例(11*)以及所述虚拟实例(11*)的连接而获得的所述DCS(10)的所述状态(10a)与所述预期状态(10a*)进行比较(152);以及
·响应于确定所述DCS(10)的所述状态(10a)不同于所述DCS(10)的所述预期状态(10a*),来创建、修改和/或删除(153)所述DCS(10)的设备(11)的虚拟实例(11*)以及所述虚拟实例(11*)的连接,目标是使所述DCS(10)的所述状态(10a)接近所述DCS(10)的预期状态(10a*)。
3.根据权利要求1至2中任一项所述的方法(100),其中所述声明性和/或命令性描述(12)包括基础设施作为代码指令,所述基础设施作为代码指令当由云平台、和/或虚拟化平台、和/或配置管理工具实行时,使得所述云平台、和/或所述虚拟化平台、和/或所述配置管理工具创建所述DCS(10)的至少一个设备(11)的虚拟实例(11*),所述虚拟实例(11*)具有在所述声明性和/或命令性描述(12)中定义的特性。
4.根据权利要求1至3中任一项所述的方法(100),其中所述声明性和/或命令性描述(12)表征充当所述DCS(10)的至少一个设备(11)的虚拟实例(11*)的至少一个计算实例的:
·处理器内核的数目、和/或时钟速度、和/或占空比极限,和/或
·存储器大小,和/或
·大容量存储大小,和/或
·网络接口类型,和/或
·最大网络带宽,
和/或来自特定云平台上可用的实例类型库的实例类型的标识符。
5.根据权利要求1至4中任一项所述的方法(100),其中所述声明性和/或命令性描述(12)表征所述DCS(10)的设备(11)的多个虚拟实例(11*)被连接到的至少一个网络的架构、带宽和/或延迟。
6.根据权利要求1至5中任一项所述的方法(100),还包括:
·在所述DCS(10)的所述虚拟部署(10*)上测试实行(160)所述控制逻辑(3);
·在实行期间监测(170)所述控制逻辑(3)的所述行为(3a);
·将所述行为(3a)与所述控制逻辑(3)的给定预期行为(3b)进行比较(180);以及
·从所述比较(180)的结果(180a)根据预定准则(5)来评价(190)对所述控制逻辑(3)的测试是合格还是失败。
7.根据权利要求6所述的方法(100),其中所述测试实行(160)包括:通过所述至少一个I/O模拟器(4)向所述控制逻辑(3)供应(161)传感器和/或行动者数据,在所述控制逻辑(3)中存在特定待检测软件误差的情况下,使得所述控制逻辑的所述行为偏离所述预期行为。
8.根据权利要求7所述的方法(100),其中所述待检测软件误差包括以下各项中的一项或多项:
·同一变量的同时或以其他方式的多次使用;
·变量的错误设置和重置;
·所述控制逻辑对变量改变的错误反应;
·错误的极限或设定点值;
·缺失的或错误地实现的联锁逻辑;
·错误地定义的控制序列或动作序列;以及
·变量的溢出和/或裁剪。
9.根据权利要求6至8中任一项所述的方法(100),还包括:响应于确定对所述控制逻辑的所述测试已经合格,
·设立(200)与所述DCS(10)的所述虚拟部署(10*)相对应的物理DCS(10);以及
·将所述物理DCS(10)的所述设备(11)连接(210)到实行所述工业过程(1)的所述资产,而非连接到所述I/O模拟器(4)。
10.根据权利要求6至9中任一项所述的方法(100),还包括:响应于确定对所述控制逻辑的所述测试已经失败,
·修改(220)所述DCS(10)的所述声明性和/或命令性描述(12),并且基于经修改的所述声明性描述和/或指令性描述(12)来更新(230)所述DCS(10)的所述虚拟部署(10*);和/或
·修改(240)所述控制逻辑(3),目标是提高所述控制逻辑(3)的所述性能,以及
·利用所述DCS(10)的经更新的所述虚拟部署(10*)和/或利用经修改的控制逻辑(3),来恢复所述测试实行(160)。
11.根据权利要求6至10中任一项所述的方法(100),还包括:
·通过预定准则(6)向所述DCS(10)的虚拟部署(10*)和/或所述虚拟部署(10*)上的所述控制逻辑(3)的实行指定(250)性能系数(7);以及
·在所述控制逻辑在所述DCS(10)的所述相应虚拟部署(10*)上的所述测试合格的约束条件下,优化(260)所述DCS(10)的所述声明性和/或命令性描述(12),目标是提高所述性能系数(7)。
12.根据权利要求6至11中任一项所述的方法,还包括:
·模拟(162)所述DCS(10)的设备(11)的至少一个虚拟实例(11*)中的故障和/或一个这样的实例(11*)的至少一个连接中的故障;以及
·监测(163)所模拟的故障对所述控制逻辑(3)的所述行为的影响。
13.一种计算机程序,包括机器可读指令,所述机器可读指令当由一个或多个计算机和/或计算实例实行时,使得所述一个或多个计算机和/或计算实例执行根据权利要求1至12中任一项所述的方法(100)。
14.一种非暂态机器可读数据载体,具有根据权利要求13所述的计算机程序。
15.一个或多个计算机和/或计算实例,具有根据权利要求13所述的计算机程序和/或根据权利要求14所述的非暂态机器可读数据载体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP22196887.8A EP4343473A1 (en) | 2022-09-21 | 2022-09-21 | Virtual deployment of distributed control systems for control logic testing |
EP22196887.8 | 2022-09-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117742282A true CN117742282A (zh) | 2024-03-22 |
Family
ID=83688684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311210403.4A Pending CN117742282A (zh) | 2022-09-21 | 2023-09-19 | 用于控制逻辑测试的分布式控制系统的虚拟部署 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240094694A1 (zh) |
EP (1) | EP4343473A1 (zh) |
CN (1) | CN117742282A (zh) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2778816B1 (en) | 2013-03-12 | 2015-10-07 | ABB Technology AG | System and method for testing a distributed control system of an industrial plant |
WO2017115162A1 (en) * | 2015-12-31 | 2017-07-06 | Abb Schweiz Ag | Method and system for testing distributed control systems of industrial plants |
-
2022
- 2022-09-21 EP EP22196887.8A patent/EP4343473A1/en active Pending
-
2023
- 2023-09-19 CN CN202311210403.4A patent/CN117742282A/zh active Pending
- 2023-09-21 US US18/471,752 patent/US20240094694A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240094694A1 (en) | 2024-03-21 |
EP4343473A1 (en) | 2024-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3287901A1 (en) | Simulation including multiple simulators | |
CN112602025A (zh) | 工业控制器的数字孪生的自动设置 | |
CN108121654B (zh) | 一种基于Docker的软件大规模测试方法 | |
US20090089234A1 (en) | Automated code generation for simulators | |
US9239773B1 (en) | Method and system for debugging a program that includes declarative code and procedural code | |
US8701079B2 (en) | Procedure and development environment for generation of an executable overall control program | |
JP2009265668A (ja) | 工学プロジェクトの訓練シミュレータ | |
JP2014517948A (ja) | クラスタ化シミュレーションネットワークの設定のためのシステムおよび方法 | |
CN116490830A (zh) | 控制系统以及控制方法 | |
CN110109684B (zh) | 区块链节点管理代理服务安装方法、电子装置及存储介质 | |
CN113254054B (zh) | 一种智能合约一站式开发系统及方法 | |
CN113918452B (zh) | 一种多国产化平台下的工业软件兼容性测试方法 | |
EP4148584A1 (en) | Method and system for generating and optimizing test cases for an engineering program | |
CN117742282A (zh) | 用于控制逻辑测试的分布式控制系统的虚拟部署 | |
US20230315038A1 (en) | Method and system for providing engineering of an industrial device in a cloud computing environment | |
Andrzejak et al. | Feedbackflow-an adaptive workflow generator for systems management | |
Gruhn et al. | Engineering cyber-physical systems | |
CN111857726A (zh) | 一种气象预报的方法和设备 | |
US20230315613A1 (en) | Method and system for eradicating programmatical errors from engineering programs in a technical installation | |
Stritzke et al. | Towards a Method for end-to-end SDN App Development | |
US20230350392A1 (en) | Method and system for seamless transition of runtime system from controller device to digitalization platform | |
RU2789787C1 (ru) | Способ разработки и симуляции системы автоматизации посредством цифровых двойников | |
EP4113282A1 (en) | Method and system for generating programs for an automation system by code-similarity based approach | |
Juurinen | Test Automation for Control Applications on Distributed Control System | |
Sastry et al. | TESTING DISTRIBUTED EMBEDDED SYSTEMS THROUGH INSTRUCTION SET SIMULATORS |
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 |