CN117785435A - 经由数字孪生对设备更新或修改的容器化建模 - Google Patents

经由数字孪生对设备更新或修改的容器化建模 Download PDF

Info

Publication number
CN117785435A
CN117785435A CN202311130458.4A CN202311130458A CN117785435A CN 117785435 A CN117785435 A CN 117785435A CN 202311130458 A CN202311130458 A CN 202311130458A CN 117785435 A CN117785435 A CN 117785435A
Authority
CN
China
Prior art keywords
container
node
updated
operations
control system
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
Application number
CN202311130458.4A
Other languages
English (en)
Inventor
纳撒尼尔·S·桑德勒
罗布·A·恩茨明格
大卫·C·马祖尔
小布鲁斯·T·麦克利夫
乔纳森·艾伦·米尔斯
帕特里克·E·奥齐梅克
蒂姆·S·比尔纳特
迈克尔·J·安东尼
克里斯·索夫特利
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 CN117785435A publication Critical patent/CN117785435A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Abstract

本公开内容涉及经由数字孪生对设备更新或修改的容器化建模。一种方法可以包括:接收对可用经更新的容器的指示。该方法还可以涉及:识别包括与可用容器对应的第一容器和第二容器的一个或更多个计算表面,使得第一容器可以对操作技术(OT)设备的一个或更多个操作进行控制。该方法还可以包括:对经更新的容器的部署进行调度以替换第二容器;接收与同OT设备相关联的数字模型相关联的预期输出数据;以及基于预期输出数据对将一个或更多个操作的控制切换到第二容器进行调度。

Description

经由数字孪生对设备更新或修改的容器化建模
技术领域
本公开内容总体上涉及用于采用容器编排系统对在操作技术(OT)或工业平台内运行的设备执行特定更新和/或修改的系统和方法。更具体地,本公开内容的实施方式涉及用于利用容器编排系统来协调针对OT设备的更新操作的系统和方法。
背景技术
特别是在工业自动化环境中,使用自动化控制和监测系统(例如,工业控制系统)来管理和操作工业自动化系统。这样的应用可以包括控制各种部件例如阀、电动马达等,以及经由传感器收集数据。典型的工业控制系统可以包括一个或更多个部件,例如编程终端、自动化控制器、输入/输出(I/O)模块、通信网络、人机接口(HMI)终端等。
通常,在OT环境中操作的工业控制系统被用于对可经由OT网络访问的工业设备进行控制。尽管工业控制系统可以用于管理OT网络内的设备的操作,但是期望用于操作OT网络内的设备的改进的系统和方法。例如,在信息技术(IT)环境中可用的特定技术可以向特定工业控制系统用户提供他们用以操作他们的IT资产的附加管理工具。事实上,在一些情况下,改进的技术可以使得OT网络内的设备能够以更高效且更有效的方式执行特定更新操作。
本部分旨在向读者介绍可能与下面描述和/或要求保护的本公开内容的各个方面相关的技术的方面。该讨论被认为有助于向读者提供背景信息以促进更好地理解本公开内容的各个方面。因此,应当理解,这些陈述要以这个角度来理解,而不是作为对现有技术的承认。
发明内容
下面阐述了本文中公开的特定实施方式的概述。应当理解,呈现这些方面仅仅是为了向读者提供这些特定实施方式的简要概述,并且这些方面并非旨在限制本公开内容的范围。实际上,本公开内容可以包括可能未在下面阐述的多个方面。
在实施方式中,一种系统可以包括可以在工业自动化系统内执行多个操作的多个设备,使得多个设备中的每个设备可以包括可以执行相应容器的计算表面。该系统还可以包括处理器,该处理器可以接收对与执行同多个设备中的一个设备相关的操作相关联的多个容器中的第一容器的固件进行更新的请求,并且识别多个容器中的执行第一容器的数字孪生操作的第二容器。然后,处理器可以基于该更新来对第二容器的一个或更多个特性进行更新,并且在更新所述一个或更多个特性之后将操作从第一容器转移至第二容器。
在另一实施方式中,一种方法可以包括接收对可用经更新的容器的指示。该方法还可以涉及识别包括与可用容器对应的第一容器和第二容器的一个或更多个计算表面,使得第一容器可以控制操作技术(OT)设备的一个或更多个操作。该方法还可以包括:对经更新的容器的部署进行调度以替换第二容器;接收与同OT设备相关联的数字模型相关联的预期输出数据;以及基于预期输出数据对将所述一个或更多个操作的控制切换到第二容器进行调度。
在又一实施方式中,一种非暂态计算机可读介质可以包括指令,所述指令在由处理电路系统执行时使处理电路系统执行包括接收对可用经更新的容器的指示的操作。该操作还可以涉及识别包括与可用容器对应的第一容器和第二容器的一个或更多个计算表面,使得第一容器可以控制操作技术(OT)设备的一个或更多个操作。该操作还可以包括:对经更新的容器的部署进行调度以替换第二容器;接收与同OT设备相关联的数字模型相关联的预期输出数据;以及基于预期输出数据对将一个或更多个操作的控制切换到第二容器进行调度。
以上提出的特征的各种改进可以与本公开内容的各个方面相关地存在。其他特征同样也可以并入这些各个方面中。这些改进和附加特征可以单独存在或以任何组合存在。例如,下面关于一个或更多个示出的实施方式讨论的各种特征可以单独或以任何组合并入本公开内容的上述方面中的任何方面中。以上呈现的简要概述仅旨在使读者熟悉本公开内容的实施方式的特定方面和上下文,而非限制于所要求保护的主题。
附图说明
当参照附图阅读以下详细描述时,本实施方式的这些和其他特征、方面和优点将变得更好理解,其中,贯穿附图相似的附图标记表示相似的部分,在附图中:
图1是根据实施方式的示例工业自动化系统的透视图;
图2是根据实施方式的示例工业控制系统的框图;
图3是根据实施方式的与容器编排系统协调的示例操作技术(OT)网络的框图;
图4是根据实施方式的示出将容器pod部署至图3的OT网络中的工业控制系统的数据流程图;
图5是根据实施方式的用于使工业控制系统被动地实施经由控制编排系统接收的命令的方法的流程图;
图6是根据实施方式的用于使工业控制系统主动地实施经由控制编排系统接收的命令的方法的流程图;以及
图7是根据实施方式的用于使用容器编排系统来对OT网络内的设备进行更新操作的方法的流程图。
具体实施方式
下面将描述一个或更多个具体实施方式。为了提供对这些实施方式的简明描述,在本说明书中没有描述实际实现方式的所有特征。应当理解,在任何这样的实际实现方式的开发中,如在任何工程项目或设计项目中,必须做出许多特定于实现方式的决定以实现开发人员的特定目标,例如遵守与系统相关和企业相关的约束,这可能根据不同的实现方式而变化。此外,应当理解,虽然这样的开发努力可能是复杂且耗时的,但是对于受益于本公开内容的普通技术人员来说,这仍然是设计、制作和制造的常规任务。
当介绍本公开内容的各种实施方式的要素时,冠词“一”、“一个”、“该”和“所述”旨在意指存在所述要素中的一个或更多个。术语“包括”、“包含”和“具有”旨在是包含性的,并且意指可能存在除了所列出的要素之外的另外的要素。
本公开内容的实施方式通常涉及使用容器对模仿由相应OT设备执行的操作的数字孪生容器执行设备更新或修改。由于设备在工业系统内操作,操作者或客户通常对执行固件或软件更新犹豫不决,因为固件或软件更新可能潜在地使相应设备离线。为了减少客户对更新特定设备中的固件的犹豫不决,可以在可用计算表面上同时操作并行容器来执行可以对设备操作进行控制的操作。两个容器中的一个容器可以控制设备操作,而第二容器可以作为执行相同功能而与相应设备实际不对接的数字孪生容器操作。在一些实施方式中,可以向第二容器提供固件更新,以测试更新的功能和完整性。也就是说,操作者或用户可以在作为原型的第二容器中测试更新、调整与更新相关的特定参数、在沙盒环境中操作固件以针对优化进行测试等。
通过包括第二并行容器,数字孪生可以被实现成对由相应设备监测到的真实数据进行操作。在确认更新不会使相应设备在特定阈值以下执行后,用户可以向容器编排系统发送请求,以将操作切换至第二容器。尽管切换可能不是无扰动的,但是可以在设备可以执行切换时安排切换。也就是说,可以在超时或其他调度的中断期间的运行时间执行切换。在一些实施方式中,两个容器可以在处理器的不同核中操作,并且可能需要访问两个不同的存储器部件。在任何情况下,在切换发生之后,第一容器可以利用相同固件更新进行更新,并且作为数字孪生进行操作。这样,可以在第一容器上测试未来的更新,并且切换可以使设备控制返回至第一容器。
另外,并行容器可以用于在检测到设备或容器变得不可操作之后执行灾难恢复操作。例如,在检测到设备的不可操作之后,第二容器可以记录最小数据量,以获得可能与设备的操作相关的关键信息。另外,容器可以收集与关于各个容器的状态信息、计算空间、各个设备的机器状态等相关的信息。
在另一实施方式中,单独的容器可以对工作负载功能进行分配,以跨多个容器水平地扩展操作。也就是说,多个容器可以执行与操作一个或更多个设备相关联的工作负载的一部分。因此,在检测到一个容器变得不可操作之后,容器部署系统可以指派另一个容器执行先前容器的操作任务。下面将参照图1至图7讨论关于采用并行容器来执行各种任务的附加细节。
通过介绍的方式,图1是由一个或更多个工业控制系统12控制的示例工业自动化系统10的透视图。如所描绘的,工业自动化系统10包括站点14,站点14具有用于在自动化过程例如硅晶片制造中执行功能的机器部件和/或机器。自动化过程可以在站点14A处开始,用于经由输送机部分将诸如基板的物体装载到工业自动化系统10中。输送机部分可以将物体运送至站点14B以执行第一动作,例如经由模板印刷(stencil)将焊膏印刷至基板。随着物体从站点14B离开,输送机部分可以将物体运送至站点14C进行焊膏检查(SPI)以检查印刷结果,运送至站点14D、14E和14F进行表面贴装技术(SMT)部件的放置,运送至站点14G以使对流回流炉将焊料熔化而形成电耦接,以及最后运送至站点14H进行自动光学检查(AOI)以检查制成的物体(例如,制成的印刷电路板)。在物体行进通过各个站点之后,可以将物体从站点14H移出以例如存储在仓库中或进行装运。显然,对于其他应用,特定的系统、机器部件、机器、站点和/或输送机可以是不同的或者专门适用于该应用。
例如,工业自动化系统10可以包括在压缩机站点、炼油厂、用于制造食品物品的批处理操作、化学处理操作、啤酒厂操作、采矿操作、机械化装配线等中执行各种操作的机械。因此,工业自动化系统10可以包括各种操作部件,例如电动马达、阀门、致动器、温度元件、压力传感器或者用于制造、加工、材料处理和其他应用的大量机械或设备。工业自动化系统10还可以包括电气装备、液压装备、压缩空气装备、蒸汽装备、机械工具、保护装备、制冷装备、电力线、液压线、蒸汽线等。一些示例类型的装备可以包括混合器、机器输送机、罐、滑橇、专用的原始装备制造商机器等。除了上述装备之外,工业自动化系统10还可以包括马达、保护设备、开关装置、压缩机等。这些所描述的操作部件中的每个操作部件可以对应于和/或生成关于操作、状态、传感器数据、操作模式、警报状况等的各种操作技术(OT)数据,可以期望这些操作技术(OT)数据输出以利用来自IT网络的IT数据进行分析、将其存储在IT网络中、利用预期操作设置点(例如阈值)进行分析等。
在特定实施方式中,可以由工业控制系统12对工业自动化系统10中的装备例如站点14的一个或更多个特性进行监测和控制以调整控制变量。例如,感测设备(例如,传感器18)可以监测工业自动化系统10的各种特性,并且可以被工业控制系统12至少部分地用于调整工业自动化系统10的操作(例如,作为控制回路的一部分)。在一些情况下,工业自动化系统10可以与由其他装备所使用的设备相关联。例如,可以将扫描仪、仪表、阀门、流量计等设置在工业自动化系统10上或内部。此处,工业控制系统12可以从相关联的设备接收数据并且使用该数据更有效地执行它们各自的操作。例如,工业自动化系统10的与马达驱动器相关联的控制器可以接收关于所连接马达的温度的数据,并且可以基于该数据调整马达驱动器的操作。
工业控制系统12可以通信地耦接至显示器/操作者接口20(例如,人机接口(HMI))以及工业自动化系统10的设备。应当理解,可以在工业自动化系统10的特定实施方式中使用任何合适数目的工业控制系统12。工业控制系统12可以有利于通过编程对象来表示工业自动化系统10的部件,所述编程对象可以被实例化并且被执行以在显示器/操作者接口20上提供与实际部件类似或相同的模拟功能以及这些部件的可视化或者上述两者。编程对象可以包括存储在工业控制系统12中并且由工业控制系统12的处理电路系统执行的代码和/或指令。处理电路系统可以与存储器电路系统通信以允许存储部件可视化。
如所示出的,显示器/操作者接口20描绘了工业自动化系统10中的各部件的表示22。工业控制系统12可以使用由传感器18传送的数据,以通过改变部件的当前操作的一个或更多个状态、状况和/或指示来更新部件的可视化。这些传感器18可以是适于提供有关过程状况的信息的任何合适的设备。实际上,传感器18可以用在可以由工业控制系统12监测和控制的过程回路(例如,控制回路)中。这样,可以基于过程输入(例如,来自传感器18的输入)或者来自人的经由显示器/操作者接口20的直接输入来激活过程回路。操作和/或监测工业自动化系统10的人可以参考显示器/操作者接口20来确定工业自动化系统10和/或特定部件的各种状态、状况和/或当前操作。此外,操作和/或监测工业自动化系统10的人可以通过与控制面板或各种输入设备的交互将各个部件调整至启动、停止、掉电、上电或以其他方式调整工业自动化系统10的一个或更多个部件的操作。
工业自动化系统10可以被认为是具有各自分别生成各种数据的若干过程和操作的数据丰富的环境。例如,工业自动化系统10可以与可以被组织和分类为OT数据的材料数据(例如,与基板或原材料的特性或特征对应的数据)、参数数据(例如,与例如在工业自动化系统10的操作期间的机器和/或站点的性能相对应的数据)、测试结果数据(例如,与在工业自动化系统10的最终产品或中间产品上执行的各种质量控制测试相对应的数据)等相关联。另外,传感器18可以收集指示工业自动化系统10或工业控制系统12的一个或更多个操作的OT数据。以这种方式,OT数据可以是指示与工业自动化系统10或工业控制系统12的操作相关联的测量结果、状态、警报等的模拟数据或数字数据。
上述工业控制系统12可以在OT空间中操作,在OT空间中,OT数据被用于监测和控制OT资产,例如工业自动化系统10的站点14中示出的装备或其他工业装备。OT空间、环境或网络通常包括由工业控制系统12协调的直接监测和控制操作以及对应的OT资产。例如,可编程逻辑控制器(PLC)可以在OT网络中操作以控制OT资产(例如,驱动器、马达)的操作。工业控制系统12可以被特别地编程或配置成直接与相应OT资产通信。
另一方面,容器编排系统24可以在信息技术(IT)环境中操作。也就是说,容器编排系统24可以包括多个计算设备的集群,该集群协调对该集群的计算设备内的应用的各个容器的工作进行管理或调度的自动过程。换句话说,容器编排系统24可以用于跨多个计算设备以一定规模使各种任务自动化。作为示例,容器编排系统24可以使诸如以下的任务自动化:例如配置和调度容器,供应和部署容器,确定容器的可用性,根据应用在其中运行的容器来配置应用,扩展容器以均等地平衡跨基础结构的应用工作负载,在容器之间分配资源,执行容器的负载平衡、业务路由和服务发现,执行容器的健康监测,保护容器之间的交互等。在任何情况下,容器编排系统24都可以使用配置文件来确定便于容器之间进行通信的网络协议、用于保存日志的存储位置等。容器编排系统24还可以对容器到集群的部署进行调度并且识别最适于执行该容器的主机(例如,节点)。在识别出主机之后,容器编排系统24可以基于预定规范来管理容器的生命周期。
记住上述内容,应当注意,容器指的是用于打包应用及其运行时相关内容的技术。也就是说,容器包括与底层主机的基础结构(例如,操作系统)解耦的应用。通过使容器包括运行时相关内容,无论容器在其中操作的主机如何,容器都可以以相同的方式执行。在一些实施方式中,容器可以作为容器镜像28存储在容器注册表26中。容器注册表26可以是容器编排系统24可访问的任何合适的数据存储装置或数据库。容器镜像28可以对应于包括用于执行相应应用的工具和数据的可执行软件包。也就是说,容器镜像28可以包括用于操作应用的相关代码、应用库、系统库、运行时工具、各种设置的默认值等。
作为示例,用户可以使用集成开发环境(IDE)工具来创建部署配置文件,该部署配置文件指定容器编排系统24的节点集合的期望状态。部署配置文件可以连同与部署配置文件相关联的相应容器镜像28一起存储在容器注册表26中。部署配置文件可以包括不同pod的列表以及在任何给定时间应当在容器编排系统24内操作的每个pod的多个副本。每个pod可以对应于可以与一个或更多个容器相关联的应用的逻辑单元。容器编排系统24可以对部署配置文件中列出的pod的分布和执行进行协调,使得能够连续满足期望状态。在一些实施方式中,容器编排系统24可以包括主节点,该主节点从容器注册表26中检索部署配置文件、对pod到所连接节点的部署进行调度、并且确保满足部署配置文件中指定的期望状态。例如,如果某个pod在一个节点上停止操作,则主节点可以从不再执行该pod的相应的工作节点接收通知,并且将该pod部署至另一工作节点,以确保通过节点集群呈现期望状态。
如以上所提及的,容器编排系统24可以包括可以一起工作以实现如在相应容器中指定的特定规范或状态的计算设备、计算系统或容器节点的集群。在一些实施方式中,容器节点30可以被集成在如图1所示的工业控制系统12内。也就是说,容器节点30可以由工业控制系统12实现,使得它们相对于容器编排系统24中的主节点表现为工作节点。以这种方式,容器编排系统24的主节点可以向容器节点30发送命令,所述容器节点30也被配置成执行针对相应工业装备的应用和操作。
记住这一点,容器节点30可以与工业控制系统12集成在一起,使得它们充当容器编排系统24的被动-间接参与者、被动-直接参与者或主动参与者。作为被动-间接参与者,容器节点30可以对可以由容器编排系统24发出的所有命令的子集做出响应。以这种方式,容器节点30可以支持有限的容器生命周期特征,例如接收pod、执行pod、更新相应文件系统以包括供工业控制系统12执行的软件包、以及向容器编排系统24的主节点报告pod的状态。可由在被动-间接模式下操作的容器节点30实现的有限特征可以被限于相应工业控制系统12可以使用本地命令实现的命令,所述本地命令直接映射至通过容器编排系统24的主节点接收的命令。此外,在被动-间接操作模式下操作的容器节点30可能不能推送包或直接控制工业控制系统12的操作以执行该包。替代地,工业控制系统12可以定期地检查容器节点30的文件系统,并在那时检索新包以用于执行。
作为被动-直接参与者,容器节点30可以作为如下节点进行操作:所述节点是容器编排系统24的节点集群的一部分。这样,容器节点30可以支持全部的容器生命周期特征。也就是说,在被动-直接模式下操作的容器节点30可以对容器镜像进行解包并且将所得的包推送至工业控制系统12,使得工业控制系统12响应于从容器节点30接收到包而执行包。这样,容器编排系统24可以访问可以将从主节点接收的命令直接实施到工业控制系统12上的工作节点。
在主动参与者模式下,容器节点30可以包括托管操作系统(例如,Linux)的计算模块或系统,所述操作系统可以连续地操作可以参与容器操作的管理的容器主机守护进程。这样,主动参与者容器节点30可以执行容器编排系统24的主节点可以执行的任何操作。通过包括在OT空间中操作的容器节点30,容器编排系统24能够将其管理操作扩展到OT空间中。也就是说,容器节点30可以在OT空间中供应设备、用作在IT空间与OT空间之间提供双向协调的代理节点32等。例如,作为代理节点32操作的容器节点30可以拦截编排命令,并且基于所述编排命令使工业控制系统12实施适当的机器控制例程。工业控制系统12可以向代理节点32确认机器状态,然后,代理节点32可以代表工业控制系统12向容器编排系统24的主节点进行答复。
另外,工业控制系统12可以经由代理节点32共享OT设备树。这样,代理节点32可以向主节点提供状态数据、地址数据、描述性元数据、版本数据、证书数据、密钥信息以及与工业控制系统12有关的其他相关参数。此外,代理节点32可以发出针对其他工业控制系统12的请求以控制其他OT设备。例如,代理节点32可以使用一种或更多种OT通信协议来转换命令并将其转发至目标OT设备、可以接收来自OT设备的答复并对其进行转换等。这样,代理节点32可以执行健康检查、提供配置更新、发送固件补丁、执行密钥刷新以及关于其他OT设备的其他OT操作。
记住上述内容,图2是可以与本文描述的实施方式一起使用的示例工业控制系统12的框图。工业控制系统12可以包括通信部件42、处理器44、存储器46、存储装置48、输入/输出(I/O)端口50、显示器20等。通信部件42可以是有助于容器编排系统24与工业控制系统12或任何其他合适的电子设备之间进行通信的无线或有线通信部件。处理器44可以是能够执行计算机可执行代码的任何类型的计算机处理器或微处理器。处理器44还可以包括可以执行下面描述的操作的多个处理器。
存储器46和存储装置48可以是可以用作存储处理器可执行代码、数据等的介质的任何合适的制品。这些制品可以表示如下计算机可读介质(即,任何合适形式的存储器或存储装置),所述计算机可读介质可以存储由处理器44使用以执行当前公开的技术的处理器可执行代码。存储器46和存储装置48可以表示如下非暂态计算机可读介质(例如,任何合适形式的存储器或存储装置),所述非暂态计算机可读介质可以存储由处理器44使用以执行本文中描述的各种技术的处理器可执行代码。应当注意,非暂态仅指示介质是有形的而不是信号。
I/O端口50可以耦接至一个或更多个传感器18、一个或更多个输入设备、一个或更多个显示器等,以促进人或机器与工业控制系统12的交互。例如,基于经由显示器20提供给用户的通知,用户可以使用输入设备来指示OT设备的调整。
如以上所讨论的,显示器20可以操作以描绘与正由处理器44处理的软件或可执行代码相关联的可视化。在一个实施方式中,显示器20可以是能够接收来自工业控制系统12的用户的输入的触摸显示器。例如,显示器20可以是任何合适类型的显示器,例如,液晶显示器(LCD)、等离子体显示器或有机发光二极管(OLED)显示器。另外,在一个实施方式中,显示器20可以与触敏机构(例如,触摸屏)结合提供,该触敏机构可以用作用于工业控制系统12的控制接口的一部分。
虽然关于工业控制系统12描绘了图2,但是应当注意,容器编排系统24、容器节点30和代理节点32还可以包括相同或相似的部件以执行或促进执行本文描述的各种技术。此外,应当理解,关于图2描述的部件是示例性图,并且工业控制系统12和其他合适的计算系统可以包括更多或更少的如以上详细描述的部件。
记住上述内容,图3示出了描绘容器节点30和代理节点32相对于容器编排系统24的相对位置的框图。如以上所提及的,容器编排系统24可以包括用于通过多个节点实现一个或更多个容器的期望状态的节点的集合。如图3所示,容器编排系统24可以包括主节点62,主节点62可以执行针对容器编排系统24的控制平面过程。控制平面过程可以包括使得容器编排系统24能够协调容器节点30的操作以满足期望状态的过程。这样,主容器节点62可以执行用于容器编排系统24、调度器部件、核心资源控制器等的应用编程接口(API)。作为示例,主容器节点62可以协调组成容器编排系统24的集群中的节点之间的所有交互。实际上,主容器节点62可以负责决定将在容器节点30上运行的操作,所述操作包括调度工作负载(例如,容器化应用)、管理工作负载的生命周期、扩展和升级、管理工作负载的网络和存储资源等。主容器节点62可以运行API服务器以处理从容器节点30接收的请求和状态更新。
通过操作的方式,集成开发环境(IDE)工具64可以被操作者用于开发部署配置文件65。如以上所提及的,部署配置文件65可以包括有关容器、pod、操作容器/pod的约束的细节以及描述部署配置文件65中指定的容器的期望状态的其他信息。在一些实施方式中,可以以YAML文件、JSON文件或与容器编排系统24兼容的其他合适的文件格式生成部署配置文件65。在IDE工具64生成部署配置文件65之后,IDE工具64可以将部署配置文件65传送至容器注册表26,容器注册表26可以将该文件连同容器镜像28一起存储,容器镜像28表示存储在部署配置文件65中的容器。
在一些实施方式中,主容器节点62可以经由容器注册表26直接从IDE工具64等接收部署配置文件65。主容器节点62可以使用部署配置文件65来确定收集容器镜像28的位置、确定用于在容器节点30之间建立联网的通信协议、确定用于安装存储卷的位置、存储关于容器的日志的位置等。
基于部署配置文件65中提供的期望状态,主容器节点62可以将容器部署至容器主机节点30。也就是说,主容器节点62可以基于部署配置文件65中提供的约束(例如,CPU或存储器可用性)来调度容器的部署。在容器在容器节点30上进行操作之后,主容器节点62可以管理容器的生命周期,以确保由部署配置文件65指定的容器正根据所指定的约束和期望状态进行操作。
记住上述内容,工业控制系统12可以不使用与容器编排系统24兼容的操作系统(OS)。也就是说,容器编排系统24可以被配置成在涉及数字信息流的IT空间中操作。相比之下,工业控制系统12可以在OT空间中操作,OT空间涉及管理物理过程和用于执行那些物理过程的机械的操作。例如,OT空间可以涉及根据OT通信协议进行格式化的通信,所述OT通信协议例如FactoryTalk Live Data、EtherNet/IP、通用工业协议(CIP)、OPC直接访问(例如,由OPC Foundation开发的用于工业自动化的机器对机器通信协议)、或任何合适的OT通信协议(例如,DNP3、Modbus、Profibus、LonWorks、DALI、BACnet、KNX、EnOcean)。由于工业控制系统12在OT空间中操作,因此工业控制系统可能不能实现经由容器编排系统24接收的命令。
在特定实施方式中,容器节点30可以被编程或实现在工业控制系统12中,以用作可以向主容器节点62注册工业控制系统12的代理节点代理。例如,工业控制系统12可以包括可编程逻辑控制器(PLC),PLC不能支持用于接收和/或实现由容器编排系统12发出的请求操作的操作系统(例如,Linux)。然而,PLC可以执行可以被映射至特定容器事件的特定操作。这样,容器节点30可以包括可以将从主容器节点62接收的特定事件或命令映射为可以由PLC执行的动作的软件和/或硬件部件。在将接收到的命令转换成由PLC可解译的命令之后,容器节点30可以将经映射的命令转发至可以实现经映射的命令的PLC。这样,容器节点30可以作为组成容器编排系统24的节点集群的一部分操作,而控制系统66(例如,PLC)协调针对工业控制系统12中的OT设备67的OT操作。控制系统66可以包括控制器,例如可编程逻辑控制器(PLC),可编程自动化控制器(PAC)或可以监测、控制和操作工业自动化设备或部件的任何其他控制器。
工业自动化设备或部件可以对应于OT设备67。OT设备67可以包括在OT空间中操作的任何合适的工业设备。这样,OT设备67可能涉及调整经由工业系统10实现的物理过程。在一些实施方式中,OT设备67可以包括马达控制中心、马达、人机接口(HMI)、操作者接口、接触器、启动器、传感器、驱动器、中继器、保护设备、开关设备、压缩机、网络交换机(例如,以太网交换机、模块化管理型交换机、固定管理型交换机、服务路由器型交换机、工业交换机、非管理型交换机等)等。另外,OT设备67还可以涉及各种工业装备,例如混合器、机器输送机、罐、滑橇、专门的原始装备制造商机器等。OT设备67还可以与由装备所使用的设备例如扫描仪、仪表、阀门、流量计等相关联。在一个实施方式中,可以通过控制系统66来控制或操作OT设备67的每个方面。
在本文描述的本实施方式中,控制系统66可以因此基于从容器节点30接收的命令来执行动作。通过将特定容器生命周期状态映射到控制系统66可实施的适当的对应动作中,容器节点30使得能够利用主容器节点62将针对工业控制系统12的程序内容容器化、公布至特定注册表并且进行部署,从而在基于IT的容器编排系统24与基于OT的工业控制系统12之间建立桥梁。
图4示出了使用以上参照图3描述的主容器节点62和容器节点30来跟踪容器的部署的数据顺序图80。在步骤82处,IDE工具64可以创建部署配置文件65到主容器节点62的部署。在接收到部署配置文件65之后,主容器节点62可以识别可以满足部署配置文件65中提供的约束规范(例如,存储器、CPU可用性)的容器节点30。也就是说,主容器节点62执行调度操作,所述调度操作涉及检查容器编排系统24的每个节点的状态数据、确定针对部署配置文件65中提供的约束是否存在合适的节点等。
在识别到合适的容器节点之后,在步骤84处,主容器节点62可以对容器到相应容器节点30的部署进行调度。在步骤86处,主容器节点62可以将pod部署至容器节点30,这可以使得在步骤88处容器节点30从容器注册表26中检索容器镜像28。以这种方式,容器节点30被配置成从主容器节点62接收pod并执行所述pod,尽管工业控制系统12的控制系统66可能不能执行pod。在从容器注册表26中拉取(pull)容器镜像28之后,在步骤90处,容器节点30可以运行容器镜像28或对容器镜像28进行解包,并且将控制系统66可执行的应用或操作存储在文件系统中。在步骤92处,控制系统66可以检查容器节点30的文件系统是否有更新或新存储的包。在步骤94处,控制系统66可以检索所存储的包,所述包可以包括在步骤84处由主容器节点62调度用于由控制系统66操作的容器。在步骤96处,控制系统66可以执行从容器节点30的文件系统中检索的包。然后,容器节点30可以监测在控制系统66上执行的包的操作、控制系统66的状态(例如,存储器、CPU使用)并且将更新发送至主容器节点62。如果容器节点30发送指示该控制系统66不再执行该包的更新,则主容器节点62可以对另一pod到另一容器节点30的部署进行调度以用于执行来维持期望状态。
记住上述内容,图5示出了容器节点30可以经由容器编排系统24的主容器节点62实现以对活动进行协调的方法110。尽管方法110的以下描述被描述为由容器节点30执行,但是应当理解,被配置成与工业控制系统12和容器编排系统24的节点集群对接的任何合适的容器节点均可以执行本文描述的操作。另外,尽管以特定顺序描述了方法110,但是应当理解,可以以任何合适的顺序执行方法110。
现在参照图5,在块112处,容器节点30可以从主容器节点62接收pod。如以上所提及的,pod可以包括被部署至主机(例如,容器节点30)的一个或更多个容器。在一些实施方式中,pod可以操作以指定一组容器之间的协调操作。pod可以包括对与该pod有关的一个或更多个容器镜像28的存储位置的指示或参考。在一些实施方式中,容器镜像28可以被存储在容器注册表26中。这样,pod可以提供对用于访问容器注册表26中的存储位置的网络地址或其他地址的指示。
在从主容器节点62接收到pod之后,在块114处,容器节点30可以从容器注册表26下载相关的容器镜像28。如以上所提及的,容器镜像28表示封装应用及其软件相关性的数据。容器镜像28可以是可以作为独立软件执行而与对应容器节点30正在使用的操作系统无关的可执行软件捆绑包。在一些实施方式中,容器节点30可以经由主容器节点62或任何其他合适的通信方案直接从容器注册表26接收容器镜像。
在接收到容器镜像28之后,在块116处,容器节点30可以运行容器镜像28或对其进行解包,并且基于容器镜像28确定可以由控制系统66执行的命令。也就是说,容器镜像28可以包括容器节点30可执行的软件应用。然而,这些软件应用可能不能由控制系统66执行。这样,容器节点30可以确定针对控制系统66的命令,这些命令与封装在容器镜像28中的软件应用对应。在一些实施方式中,软件应用中的特定操作可以被映射至可以由控制系统66执行的特定操作。例如,用于创建、运行、启动、暂停、停止和删除的软件应用命令可以分别被映射至可以由控制系统66执行的下载、下载/运行、运行、空闲和卸载命令。
在基于容器镜像28确定了可以由控制系统66实施的命令之后,在块118处,容器节点30可以生成可以由控制系统66检索和执行的包。也就是说,容器节点30可以将所确定的命令组织或构造为可以由控制系统66使用的软件包。例如,如果控制系统66对应于PLC,则可以根据PLC自身可以用于编程的编程结构(例如,梯形逻辑)来组织该包。
在块120处,容器节点30可以将包存储在控制系统66可访问的存储器或文件系统中。在一些实施方式中,容器节点30可能不能直接与控制系统66对接。然而,容器节点30可以向控制系统66提供对其存储器或存储部件的访问,使得控制系统66可以检索已存储的包。控制系统66可以被编程为定期地(例如,每天、每小时)检查文件系统是否有更新或可用于下载的新包。
应当注意,方法110可以描述作为容器编排系统24的一部分的容器节点30的被动-间接操作模式。也就是说,容器节点30被限制于执行可以由主容器节点62提供的命令的子集,而不是执行作为容器编排系统24的一部分的节点能够执行的全部命令。此外,容器节点30可能不能执行容器中提供的所有生命周期操作。例如,如以上所描述的,容器节点30可以促进控制系统66的包下载操作,但是,如果控制系统66不具有可以被映射至相应容器生命周期操作的对应操作,则它可能不能执行容器中指定的每个功能。
在一些实施方式中,容器节点30可以在被动-直接操作模式下操作,在被动-直接操作模式下,容器节点30可以作为节点参与容器编排系统24。这样,容器节点30可以支持容器生命周期操作的全部集合。也就是说,由于控制系统66可以能够实现由主容器节点62提供的有限命令集,因此可以通过边车(sidecar)计算模块来实现或执行容器节点30,边车计算模块可以托管可以执行容器编排系统24中的节点可以执行的全套操作的容器主机守护进程。这样,边车计算模块可以是能够执行操作系统(OS)的任何合适的计算系统,使得从主容器节点62接收的命令可以由相应边车计算模块实施。
通过以边车计算模块来实现容器节点30,容器节点30可以作为如下节点进行操作:所述节点是容器编排系统24的一部分但是在OT空间中操作。作为结果,容器节点30可以将经由容器编排系统24可用的功能扩展至通常对容器编排系统24的主容器节点62不可见的OT设备67。为了在被动-直接模式下操作,容器节点30可以包括与控制系统66和主容器节点62直接对接的应用和/或API。这样,容器节点30可以提供控制系统66与主容器节点62之间的双向通信桥。在一些实施方式中,容器节点30可以包括将从控制系统66接收的OT数据转换成主容器节点62可解译的IT数据的API。这样,容器节点30可以向主容器节点62提供对在OT空间中操作的OT设备67的操作和状态的可见性。
记住这一点,图6示出了根据本文描述的实施方式的用于容器节点30将包直接发送至控制系统66并且将机器状态数据直接发送至主容器节点62的方法130。与以上描述的方法110类似,可以由任何合适的计算系统并且以任何合适的顺序来执行方法130的以下描述。应当注意,以下描述的方法130对应于在被动-直接操作模式下操作容器节点30。这样,容器节点30可以从主容器节点62等接收编排命令并对从主容器节点62等接收的编排命令进行解译,并且与控制系统66直接对接以验证控制系统66是否正在期望状态下操作。
参照图6,在块132处,容器节点30可以从主容器节点62或作为容器编排系统24的一部分的某个其他节点接收编排命令。编排命令可以包括关于控制系统66当前应该正在执行的一个或更多个容器的指令。这样,编排命令可以是监测功能的一部分,该监测功能使容器节点30验证控制系统66的机器状态数据是否对应于如部署配置文件65指定的预期机器状态。
在块134处,容器节点30可以检索来自控制系统66的机器状态数据。机器状态数据可以包括由控制系统66控制的各个OT设备的当前操作状态(例如,主动、非主动)、可用处理资源(例如,CPU可用性)、可用存储器资源(例如,存储装置、RAM)等。机器状态数据还可以指示控制系统66是否正在执行任何容器。这样,可以将机器状态数据报告回主容器节点62,以确保存在由部署配置文件65指定的期望状态。
为了接收机器状态数据,容器节点30可以经由适当的OT通信协议向控制系统66发送请求。响应于接收到请求,控制系统66可以查询数据库、存储单元或者可能包括关于所请求的数据的信息的其他合适的存储装置。在检索到所请求的信息之后,控制系统66可以使用与它以其接收请求的OT通信协议相同的OT通信协议将所请求的数据发送至容器节点30。
在一些实施方式中,容器节点30可以被嵌入或集成到控制系统66的一个或更多个核中。这样,容器节点30可以使用板载通信方法与控制系统66的部分传送数据。可替选地,容器节点30可以直接从相应存储器位置检索机器状态数据。
在从控制系统66接收到机器状态数据之后,在块136处,容器节点30可以基于部署配置文件65确定控制系统66是否正在期望状态下操作。在本实施方式中,容器节点30可以评估控制系统66是否正在执行如部署配置文件65中指定的容器。也就是说,由于容器节点30可以执行容器主机守护进程,因此容器节点30可以通过监测控制系统66的机器状态数据来参与对分布在整个容器编排系统24中的容器的管理。
如果控制系统66正在期望状态下操作,则容器节点30可以进行至块138,并且将机器状态数据发送至主容器节点62。然后,主容器节点62可以检查其他容器节点30是否正在实现期望状态。
然而,如果容器节点30确定控制系统66没有在期望状态下操作,则容器节点30可以进行至块140并且生成包,该包可以使控制系统66修改其操作以执行对应的pod和其中的容器。在生成包之后,容器节点30可以将包直接发送至控制系统66以用于执行。以这种方式,容器节点30在被动-直接模式下操作,这是因为容器节点30可以直接发送使控制系统66更改操作的命令。例如,代替控制系统66定期地检查文件系统(如以上关于图5(例如,被动-间接模式)所描述的),控制系统66可以与容器节点30直接对接,并且接收可以使它调整所连接的设备(例如,OT设备)的操作、执行接收到的包等的命令。这样,容器节点30可以在任何给定时间将包、固件更新、OT设备凭证更新、安全更新、加密密钥和其他数据推送至控制系统66。也就是说,容器系统30可以生成事件通知,该事件通知使控制系统66的API或其他部件响应于检测到事件通知而做出反应。以这种方式,容器节点30可以基于从主容器节点62等被动地接收的编排命令来主动地参与容器与相应控制系统66的协调。
通过采用容器节点30以使得容器编排系统24能够在控制系统66上实施软件容器,本文中描述的本实施方式可以使得能够对多个控制系统66和多个OT设备67的控制进行协调以控制工业自动化系统10中的操作。也就是说,期望机器状态可以包括工业装备的期望操作参数,并且容器编排系统24可以监测可用的工业装备资源,以确保通过经由与控制系统66通信地耦接的容器节点30对活动进行协调来连续实现期望机器状态。
除了在被动-间接模式和被动-直接模式下操作之外,容器节点30可以在主动模式下操作,使得容器节点可以调用针对其他容器节点30的容器编排命令。例如,返回参照图3,代理节点32可以用作容器编排系统24的一部分的代理或网关节点。代理节点32可以以具有支持容器主机守护进程的操作系统(OS)的边车计算模块来实现。在另一实施方式中,代理节点32可以直接在控制系统66的经配置(例如,经分区)的核上实现,使得控制系统66可以使用操作系统来进行操作,该操作系统使得容器节点30能够执行编排命令并且充当容器编排系统24的一部分。不论在何种情况下,代理节点32都可以充当IT/OT编排的双向桥,该双向桥使得能够基于OT数据在IT设备中执行自动化功能以及基于IT数据在OT设备67中执行自动化功能。例如,代理节点32可以经由OT通信协议获取OT设备树数据、OT设备的状态数据、与对应OT数据相关联的描述性元数据、OT设备67的版本数据、OT设备的证书/密钥数据以及其他相关的OT数据。然后,代理节点32可以将OT数据转换成IT数据,IT数据可以被格式化以使得主容器节点62能够提取相关数据(例如,机器状态数据)以执行调度操作以及确保容器编排系统24和所连接的控制系统66在期望状态下操作。基于其调度操作的结果,主容器节点62可以经由代理节点32向目标OT设备发出监督控制命令,代理节点32可以经由适当的OT通信协议对这些命令进行转换并将转换后的命令转发至相应控制系统66。
另外,代理节点32还可以基于其对相应控制系统66的机器状态数据的分析来执行特定监督操作。作为其分析的结果,代理节点32可以向作为容器编排系统24的一部分的其他节点发出命令和/或pod。例如,参照图3,代理节点32可以向可以作为容器编排系统24的一部分的其他工作容器节点68发送指令或pod。工作容器节点68可以对应于与其他控制系统70通信地耦接以控制其他OT设备71的其他容器节点30。以这种方式,代理节点32可以对命令进行转换或经由特定OT通信协议直接地将命令转发至其他控制系统70,或者经由与其他控制系统70相关联的其他工作容器节点68间接地将命令转发至其他控制系统70。另外,代理节点32可以经由OT通信协议接收来自控制系统70的答复并且对这些答复进行转换,使得容器编排系统24中的节点可以解译这些答复。以这种方式,容器编排系统24可以以协调方式有效地执行健康检查、发送配置更新、提供固件补丁、执行密钥刷新以及向OT设备71提供其他服务。也就是说,代理节点32可以使得容器编排系统能够协调多个控制系统66和70的活动,以实现所连接的OT设备67和71的期望机器状态的集合。
记住上述内容,在一些实施方式中,工业控制系统12可以包括控制系统(例如66、70),该控制系统可以使用各个控制系统的可用计算资源或表面执行多个容器。作为示例,图3中的控制系统66可以执行对OT设备67的操作进行控制的设备容器和作为由设备容器执行的软件的模拟器或数字表示进行操作的附加数字孪生容器。这样,虽然数字孪生容器可以接收与设备容器相同的输入并且执行与设备容器相同的操作,但数字孪生容器可以向表示连接至控制系统66的负载设备或OT设备67的模型(例如数字孪生模型、数字模型)或单独的数字孪生系统提供输出(例如控制信号)。以这种方式,数字孪生容器可以模拟由设备容器执行的过程操作的效果。应当注意,OT设备67的数字模型可以经由单独的容器来实现,所述单独的容器被部署至如根据主节点容器62确定的相同或不同计算表面。
另外,数字孪生容器可以用作故障安全容器或冗余容器,以在设备容器变得不可操作的情况下控制OT设备67。虽然数字孪生容器被描述为在控制系统66中实现,但是应当注意,数字孪生容器可以在任何可用的计算表面中实现,如根据本文呈现的实施方式由主容器节点62所部署的。在任何情况下,数字孪生容器都能够被切换为用于对OT设备67的操作进行控制的设备容器。
记住这一点,本文描述的本实施方式还使得数字孪生容器能够在测试固件和软件更新在设备容器上实现或在OT设备67上生效以供使用之前接收测试固件和软件更新。也就是说,在一些实施方式中,数字孪生容器可以接收经更新的容器,该经更新的容器可以包括对经由设备容器执行的容器镜像的固件更新或软件更新。如以上所提及的,工业自动化系统的客户可能对更新软件或容器犹豫不决,担心更新可能会危害生产、增加停机时间等。通过使用数字孪生容器来执行当前用于经由设备容器控制OT设备67的经更新的固件或软件版本的容器,本实施方式可以使得用户能够基于由于数字孪生容器提供的经更新的输出而在数字孪生负载设备上观察到的预期效果来测试经更新的容器的可行性。
在一些实施方式中,操作者可以基于以下内容查看OT设备67的预期效果:与由OT设备67提供的真实输出相比,被提供至经更新的数字孪生容器的实时数据输入如何影响由OT设备67的数字孪生或模型提供的输出。以这种方式,操作者可以在使经更新的软件生效并使用其控制OT设备67(或其他合适的设备)之前对更新进行沙盒或测试。在一些实施方式中,操作者可以对经更新的容器进行修改或更改,并且重新部署带有修改的经更新的容器,以基于从OT设备67的数字孪生或模型接收的输出确定新的经更新的容器是否将实现期望结果。在经更新的容器被操作者批准之后,数字孪生容器可以被切换成控制OT设备67的操作,并且现在可以作为设备容器进行操作。以同样的方式,执行设备容器的计算资源可以被关断或关闭,并且利用现在作为数字孪生容器进行操作的经更新的容器来替换。下面将参照图7描述与执行这些任务有关的附加细节。
如以上所提及的,图7示出了方法150的流程图,该方法用于根据本文呈现的实施方式针对可以在一些计算表面上操作的数字孪生容器的经更新的容器镜像的部署进行调度。虽然对方法150的以下描述被描述为由主容器节点62执行,但是应当注意,任何合适的计算系统或容器节点都可以结合容器编排系统24执行本文描述的实施方式。此外,虽然以特定顺序描述了方法150,但是应当理解,可以以任何合适的顺序执行方法150,并且不限于下面详细描述的顺序。
现在参照图7,在块152处,主容器节点62可以接收与针对诸如OT设备67的设备可用的经更新的容器相关的指示。主容器节点62可以经由订阅服务接收指示,该订阅服务响应于存储在容器注册表26中的容器镜像28被更新、替换等而提供更新或消息。在一些实施方式中,该指示可以从希望更新用于操作OT设备67的现存容器的用户或操作者发送。
在块154处,主容器节点62可以识别可以包括与经更新的容器对应的设备容器和/或数字孪生容器的控制系统或计算表面。在一些实施方式中,主容器节点62可以维护已部署容器的列表或注册表和可能正在执行已部署容器的相应计算表面或控制系统。经更新的容器可以包括指示容器的类型、软件操作、OT设备67的类型或其他合适类型的信息的元数据,该元数据可以帮助主容器节点62识别正在执行对应版本或先前版本的经更新的容器的计算表面。为了使得操作者能够测试经更新的容器的效果,主容器节点62可以识别当前正在执行相应OT设备67的数字孪生容器的计算表面或控制系统。
在识别出正在执行数字孪生容器的适当计算表面或控制系统之后,主容器节点62可以将对经更新的容器的部署调度至所识别的计算表面或控制系统,经更新的容器可以作为容器镜像28存储在容器注册表26上。这样,主容器节点62可以结束或卸载当前正在计算表面上执行的数字孪生容器,并且将经更新的容器部署至相同的计算表面以作为数字孪生容器进行操作。这样,如以上在图4中描述的,主容器节点62可以生成pod,该pod可以被发送至所识别的计算表面上可用的适当容器节点。
在接收到包含经更新的容器镜像的包后,接收到pod的容器节点将经更新的容器镜像实例化并作为经更新的数字孪生容器执行。如以上所提及的,数字孪生容器可以接收来自传感器、I/O模块或其他部件的输入,这些输入也被提供至用于对OT设备67的操作进行控制的设备容器。然而,数字孪生容器可以耦接至对应于OT设备67的数字孪生模型或模拟器,而非控制OT设备67。这样,OT设备67的数字孪生模型可以包括功能、输出表或模拟软件,当从数字孪生容器提供控制命令时,这些功能、输出表或模拟软件可以模仿或产生实际OT设备67的预期输出。数字孪生容器可以从数字孪生模型接收输出,并且将结果存储在存储部件等中。
在一些实施方式中,数字孪生容器可以包括OT设备67的数字孪生模型,以允许更高效的处理。在其他实施方式中,OT设备67的数字孪生模型可以在由主容器节点62确定的另一合适的计算表面上执行。
记住这一点并且返回参照图7,在块158处,主容器节点62可以从数字孪生容器、数字模型等接收与数字模型相关联的预期输出数据。预期输出数据可以提供与用以在不危害实际控制变化的情况下执行经更新的容器镜像以控制OT设备67的效力和有效性相关的细节。在块160处,主容器节点62可以经由显示器、消息、音频输出或其他合适的输出向用户呈现预期输出数据,以使得操作者能够考虑经更新的容器对OT设备67的操作的预期效果。在一些实施方式中,主容器节点62还可以呈现预期输出数据与如由当前对OT设备67的操作进行控制的设备容器所检测或测量的实际输出数据之间的比较。这样,操作者可以基于从基于数字孪生容器操作的OT设备67的数字模型接收的预期输出数据来确定对于OT设备67的操作是否存在任何明显变化。
在块162处,主容器节点62可以确定是否接收到对部署经更新的容器镜像的批准。在一些实施方式中,主容器节点62可以从与操作者相关联的计算设备或其他合适的设备接收对批准的指示。在其他实施方式中,主容器节点62可以响应于预期输出数据在OT设备67的实际输出数据的阈值百分比或数量之内而自动地确定接收到经更新的容器部署。
如果没有接收到对经更新的容器部署的批准,则主容器节点62可以进行至块164并且确定是否接收到对与经更新的容器镜像相关联的参数进行更新的请求。在一些实施方式中,在块162处,主容器节点62可以向操作者呈现请求,以批准对经更新的容器的部署、修改经更新的容器或拒绝对经更新的容器的部署。如果操作者提供对经更新的容器镜像的参数进行修改的请求,则主容器节点62可以进行至块166并且接收对经更新的容器的修改。在一些实施方式中,更新的参数可能与由各个经更新的容器执行的操作任务或功能相关。在一些情况下,主容器节点62可以在集成开发环境64中呈现经更新的容器的功能,以使得操作者能够进行期望的更改。修改可以使得操作者能够调整经更新的容器的功能或操作,以与OT设备67的数字模型、OT设备67、与OT设备67的操作相关的其他部件等一起更有效地操作。
基于接收到的修改,在块168处,主容器节点62可以生成带有修改的经更新的容器镜像并且将新的经更新的容器镜像存储在容器注册表26中。然后,主容器节点62可以返回至块156,并且对新的经更新的容器镜像到数字孪生容器的部署进行调度。
返回至块164,如果主容器节点62没有接收到修改参数的请求,则主容器节点62可以返回至块152并且等待接收对可用的经更新的容器镜像的另一指示。可替选地,主容器节点62可以向与操作者相关联的计算设备、集成开发环境、其他合适的计算设备、操作者可访问的显示器等发送错误消息。错误消息可以提供对经更新的容器批准未被批准的指示、对预期输出数据与实际输出数据之间的差大于阈值的指示、对经更新的容器的不兼容性的指示等。
返回参照块162,如果主容器节点62接收到对经更新的容器部署的批准,则主容器节点62可以进行至块172并且对控制OT设备67到与经更新的容器对应的数字孪生容器的切换进行调度。在一些实施方式中,主容器节点62可以监测OT设备67的机器状态,以确定将操作从设备容器切换到数字孪生容器的合适时间。机器状态可以指示OT设备67的操作状态(例如,空闲、操作、稳定状态)。特定机器状态例如空闲或关闭可能适合于使得数字孪生容器能够在切换操作期间承担对OT设备67的控制。也就是说,主容器节点62可以修改数字孪生容器的输出参数以被路由至OT设备67而不是OT设备67的数字模型。在一些实施方式中,主容器节点62可以结束当前执行的设备容器和数字孪生容器,并且利用被路由至OT设备67(例如,用于操作OT设备67的控制系统66)的输出将数字孪生容器重新实例化。
另外,在块174处,主容器节点62可以对经更新的容器镜像到先前执行设备容器的计算表面上的部署进行调度,使得针对OT设备67操作冗余的经更新的容器。以这种方式,先前的设备容器现在可以作为数字孪生容器进行操作并且被指定为数字孪生容器,而先前的数字孪生容器可以作为设备容器进行操作并且被指定为设备容器。
除了向已部署的容器提供更新之外,本实施方式还包括在检测到设备或设备容器变得不可操作之后,使用冗余容器提供灾难恢复操作。例如,在检测到OT设备67的不可操作之后,数字孪生容器可以记录或存储一定量的数据,以获得可能与OT设备67的操作相关的关键信息。另外,数字孪生容器可以采集与关于各个容器的状态信息、计算空间、各个设备的机器状态等相关的信息,以协助主容器节点62、控制系统66或其他合适的设备来维护可能与确定根本原因或者识别与设备或设备容器变得不可操作相关的问题有关的数据。
如以上所提及的,数字孪生容器可以作为可以执行与设备容器相同的操作的故障安全容器进行操作。记住这一点,如果设备容器变得不可操作,则数字孪生容器可以检索在确定设备容器变得不可操作之前的时间范围内可能接收的数据。以这种方式,可能已损坏或可能无法经由设备容器访问的数据可以经由监测并接收与设备容器相同的输入数据的数字孪生容器访问。
上述具体实施方式已通过示例的方式示出,并且应当理解,这些实施方式可以容许各种修改和替选形式。还应当理解,权利要求并不旨在限于所公开的特定形式,而是覆盖落入本公开内容的精神和范围内的所有修改、等同物和可替选方案。
本文呈现和要求保护的技术被引用并被应用于实践性质的实质对象和具体示例,这可证实地改进了本技术领域,并且因此不是抽象的、无形的或纯理论的。此外,如果本说明书所附的任何权利要求包含一个或更多个被指定为“用于[执行][功能]……的装置”或“用于[执行][功能]……的步骤”的一个或更多个要素,则旨在将根据35U.S.C.112(f)来解释这样的要素。然而,对于包含以任何其他方式指定的要素的任何权利要求,旨在将不根据35U.S.C.112(f)来解释这样的要素。

Claims (20)

1.一种系统,包括:
多个设备,所述多个设备被配置成在工业自动化系统内执行多个操作,其中,所述多个设备中的每个设备包括被配置成执行相应容器的计算表面;
处理器,所述处理器被配置成:
接收对与执行同所述多个设备中的一个设备相关的操作相关联的多个容器中的第一容器的固件进行更新的请求;
识别所述多个容器中的执行所述第一容器的数字孪生操作的第二容器;
基于所述更新来对所述第二容器的一个或更多个特性进行更新;以及
在更新所述一个或更多个特性之后,将操作从所述第一容器转移至所述第二容器。
2.根据权利要求1所述的系统,其中,所述处理器被配置成执行主容器节点,所述主容器节点被配置成对所述第一容器、所述第二容器或所述第一容器和所述第二容器到相应计算表面的部署进行调度。
3.根据权利要求1所述的系统,其中,所述处理器被配置成通过将第三容器部署到相应计算表面来对所述第二容器的所述一个或更多个特性进行更新,其中,所述第三容器与具有一个或更多个经更新的特性的所述第二容器相对应。
4.根据权利要求3所述的系统,其中,所述处理器被配置成基于所述一个设备使用所述第三容器进行操作来接收与所述一个设备的一个或更多个输出相关联的预期输出数据。
5.根据权利要求1所述的系统,其中,所述处理器被配置成响应于所述预期输出数据在与所述一个设备相关联的实际输出数据的阈值量内来将所述操作从所述第一容器转移至所述第二容器。
6.根据权利要求1所述的系统,其中,所述处理器被配置成基于所述更新来对所述第一容器的一个或更多个附加特性进行更新。
7.根据权利要求1所述的系统,其中,所述多个设备包括被配置成在操作技术网络内进行操作的至少一个操作技术设备。
8.根据权利要求1所述的系统,其中,所述第一容器部署在第一计算表面上,以及所述第二容器部署在第二计算表面上。
9.根据权利要求1所述的系统,其中,所述第一计算表面不同于所述第二计算表面。
10.一种方法,包括:
经由至少一个处理器接收对可用经更新的容器的指示;
经由所述至少一个处理器识别包括与所述可用容器对应的第一容器和第二容器的一个或更多个计算表面,其中,所述第一容器被配置成对操作技术OT设备的一个或更多个操作进行控制;
经由所述至少一个处理器对所述经更新的容器的部署进行调度以替换所述第二容器;
经由所述至少一个处理器接收与同所述OT设备相关联的数字模型相关联的预期输出数据;以及
经由所述至少一个处理器基于所述预期输出数据对将所述一个或更多个操作的控制切换到所述第二容器进行调度。
11.根据权利要求10所述的方法,包括:
经由显示器呈现所述预期输出数据;
接收与对所述经更新的容器的批准对应的输入;以及
响应于接收到所述输入,对所述切换进行调度。
12.根据权利要求10所述的方法,其中,所述第一容器和所述第二容器在所述一个或更多个计算表面之一上执行。
13.根据权利要求10所述的方法,其中,所述第一容器在第一计算表面上执行,以及所述第二容器在与所述第一计算表面分隔开的第二计算表面上执行。
14.根据权利要求10所述的方法,包括:在所述切换后对所述经更新的容器的附加部署进行调度,以替换所述第一容器。
15.根据权利要求10所述的方法,包括:
接收对与所述经更新的容器相关联的一个或更多个参数的一个或更多个修改;
对所述经更新的容器进行更改以包括所述一个或更多个修改;以及
对包括所述一个或更多个修改的所述经更新的容器的附加部署进行调度,以替换所述经更新的容器。
16.一种非暂态计算机可读介质,其包括指令,所述指令在由处理电路系统执行时使所述处理电路系统执行包括以下的操作:
接收对可用经更新的容器的指示;
识别包括与所述可用容器对应的第一容器和第二容器的一个或更多个计算表面,其中,所述第一容器被配置成对操作技术OT设备的一个或更多个操作进行控制;
对所述经更新的容器的部署进行调度以替换所述第二容器;
接收与同所述OT设备相关联的数字模型相关联的预期输出数据;以及
基于所述预期输出数据,对将所述一个或更多个操作的控制切换到所述第二容器进行调度。
17.根据权利要求16所述的非暂态计算机可读介质,其中,所述一个或更多个计算表面与被配置成通信地耦接至所述OT设备的一个或更多个控制系统相对应。
18.根据权利要求16所述的非暂态计算机可读介质,其中,所述指令使所述处理电路系统执行包括以下的操作:基于与所述OT设备相关联的机器状态来对将所述一个或更多个操作的控制切换到所述第二容器进行调度。
19.根据权利要求16所述的非暂态计算机可读介质,其中,所述指令使所述处理电路系统执行包括以下的操作:
接收与在所述第一容器上呈现的错误相关联的附加指示;以及
经由所述第二容器检索在与所述错误相关联的时间之前与所述OT设备的一个或更多个附加操作相关联的数据。
20.根据权利要求16所述的非暂态计算机可读介质,其中,所述经更新的容器包括与所述OT设备相关联的固件更新。
CN202311130458.4A 2022-09-27 2023-09-04 经由数字孪生对设备更新或修改的容器化建模 Pending CN117785435A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/953,783 US11880676B1 (en) 2022-09-27 2022-09-27 Containerized modeling of device updates or modifications via digital twins
US17/953,783 2022-09-27

Publications (1)

Publication Number Publication Date
CN117785435A true CN117785435A (zh) 2024-03-29

Family

ID=88098147

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311130458.4A Pending CN117785435A (zh) 2022-09-27 2023-09-04 经由数字孪生对设备更新或修改的容器化建模

Country Status (3)

Country Link
US (1) US11880676B1 (zh)
EP (1) EP4345616A1 (zh)
CN (1) CN117785435A (zh)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8108466B2 (en) * 2008-05-01 2012-01-31 Microsoft Corporation Automated offloading of user-defined functions to a high performance computing system
US10007509B1 (en) * 2015-12-08 2018-06-26 Amazon Technologies, Inc. Container handover for device updates
US10002247B2 (en) * 2015-12-18 2018-06-19 Amazon Technologies, Inc. Software container registry container image deployment
US9870219B1 (en) * 2016-07-06 2018-01-16 Cisco Technology, Inc. Mechanisms for performing switch upgrades using remote containers
US10445086B2 (en) * 2017-09-28 2019-10-15 At&T Intellectual Property I, L.P. Virtualization platform for creating, deploying, modifying, and relocating applications
CN108880898B (zh) * 2018-06-29 2020-09-08 新华三技术有限公司 主备容器系统切换方法及装置
US11934755B2 (en) * 2020-10-28 2024-03-19 International Business Machines Corporation Digital twin lubrication simulation
KR20230135069A (ko) * 2020-12-18 2023-09-22 스트롱 포스 브이씨엔 포트폴리오 2019, 엘엘씨 밸류 체인 네트워크를 위한 로봇 플릿 관리 및 적층제조
US11385888B1 (en) 2021-01-20 2022-07-12 Vmware, Inc. Updating container runtime using standby virtual machines
KR102484736B1 (ko) * 2021-01-28 2023-01-05 한국전자기술연구원 컨테이너 기반 재생에너지 디지털 트윈 모델 운영 플랫폼 제공 장치 및 방법

Also Published As

Publication number Publication date
US11880676B1 (en) 2024-01-23
EP4345616A1 (en) 2024-04-03

Similar Documents

Publication Publication Date Title
US11513877B2 (en) Updating operational technology devices using container orchestration systems
EP3971665A1 (en) Integrating container orchestration systems with operational technology devices
US11550311B2 (en) Centralized virtualization management node in process control systems
CN114296405B (zh) 使用容器编排系统和操作技术设备实现无服务器功能
US11880676B1 (en) Containerized modeling of device updates or modifications via digital twins
US20240134630A1 (en) Containerized modeling of device updates or modifications via digital twins
US20240103493A1 (en) Systems and methods for condition-based deployment of chainable compute operations for constrained computing devices
US11947342B1 (en) Container registry and subscription service for industrial systems
US20240085889A1 (en) Dynamic routing and edge orchestration for industrial automation data
EP4354280A2 (en) Systems and methods for automatically deploying security updates in an operations technology network
US20240103475A1 (en) Chainable and nested edge for industrial automation device analytics
US20240103491A1 (en) Automation device firmware as a service via a container implementation
US20240103455A1 (en) Application driven enhancement to industrial automation device via container implementation
US20240102890A1 (en) Systems and methods for container-based data collection and analysis in an operational technology network
US20240103894A1 (en) Systems and methods managing containers in an operational technology network
US20240103494A1 (en) Systems and methods managing containers in an operational technology network
US11846918B1 (en) Data driven digital twins for industrial automation device operation enhancement

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