CN115480540A - 用于工业过程工厂的软件定义过程控制系统和方法 - Google Patents

用于工业过程工厂的软件定义过程控制系统和方法 Download PDF

Info

Publication number
CN115480540A
CN115480540A CN202210737702.2A CN202210737702A CN115480540A CN 115480540 A CN115480540 A CN 115480540A CN 202210737702 A CN202210737702 A CN 202210737702A CN 115480540 A CN115480540 A CN 115480540A
Authority
CN
China
Prior art keywords
service
container
iscs
services
software
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
CN202210737702.2A
Other languages
English (en)
Inventor
A·小阿马罗
M·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.)
Fisher Rosemount Systems Inc
Original Assignee
Fisher Rosemount Systems 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 Fisher Rosemount Systems Inc filed Critical Fisher Rosemount Systems Inc
Publication of CN115480540A publication Critical patent/CN115480540A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • G05B19/41845Total 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], computer integrated manufacturing [CIM] characterised by system universality, reconfigurability, modularity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • G05B19/4185Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by the network communication
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31088Network communication between supervisor and cell, machine group
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31229Supervisor, master, workstation controller, automation, machine control
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Abstract

一种软件定义(SD)过程控制系统(SDCS)将控制器和其它与过程控制相关的业务逻辑实现为与硬件和软件计算平台资源分离的逻辑抽象(例如,在容器、VM等中执行的应用层服务)。SDCS的SD网络层响应于业务逻辑的要求和需求、以及在过程工厂运行时期间动态改变SDCS硬件和/或软件资产的条件(如硬件和/或软件资产的性能、故障、添加/删除等)而利用过程控制特定操作系统支持服务来管理对计算平台资源的使用、以及对应用层服务与现场环境中部署的设备和其它服务的创建、删除、修改和联网。因此,对硬件/软件资源的动态(重新)分配主要(若非完全)并持续通过应用层服务的当前要求和需求以及动态改变SDCS条件实时管理。

Description

用于工业过程工厂的软件定义过程控制系统和方法
相关申请的交叉引用
本申请要求享有于2021年6月16日提交的、标题为“Software Defined ProcessControl System for Industrial Process Plants”的美国临时申请63/211,535的优先权和权益,该申请在此通过引用全部并入。
技术领域
本申请总体上涉及工业过程工厂的工业过程控制系统,并且更具体而言,涉及被软件定义的工业过程控制系统。
背景技术
当前的分布式工业过程控制系统,例如那些在化学、石油、工业或其他过程工厂中用于制造、精炼、转换、生成或生产物理材料或产品的分布式工业过程控制系统,通常包括一个或多个过程控制器,这些过程控制器经由物理层通信地耦合到一个或多个现场设备,这些物理层可以是模拟、数字或组合的模拟/数字总线,或者可以包括一个或多个无线通信链路或网络。可以是例如阀、阀定位器、开关和变送器(例如,温度、压力、液位和流率传感器)的现场设备位于工业过程工厂的过程环境(其在本文中可互换地称为工业过程工厂的“现场环境”或“工厂环境”)内,并且通常执行物理过程控制功能,诸如打开或关闭阀、测量过程和/或诸如流量、温度或压力等的环境参数,以控制在过程工厂或系统内执行的一个或多个过程。智能现场设备(诸如符合众所周知的
Figure BDA0003698938440000011
Fieldbus协议的现场设备)也可以执行控制计算、报警功能和通常在控制器内执行的其他控制功能。,通常位于工厂环境中的过程控制器也可以位于与工厂相关联的后端、受保护的环境中,可以接收指示由现场设备做出的过程测量和/或与现场设备有关的其他信息的信号,并且执行控制例程或应用,所述控制例程或应用运行例如不同控制模块,不同控制模块利用不同控制算法做出过程控制决策、基于所接收的信息生成过程控制信号、并且与在现场设备(诸如
Figure BDA0003698938440000012
Figure BDA0003698938440000013
Fieldbus现场设备)中执行的控制模块或块配合。
其他类型的现场设备可以包括例如光谱测定设备,其可以例如在专业化学和制药过程工厂中用于质量控制和纯度验证。光谱现场设备的示例包括NIR(近红外)、UV-VIS(紫外-可见)和拉曼光谱仪,仅举几个示例。光谱测定现场设备可以由控制器或设备管理器来控制或管理,所述控制器或设备管理器通常指示光谱测定设备何时收集数据、何时传送所收集的数据等。
设置在现场设备和控制器之间的I/O设备使得能够在它们之间进行通信。例如,过程控制器中的控制模块将控制信号发送到各种不同的输入/输出(I/O)设备,然后这些输入/输出设备通过专用通信线路或链路(通信物理层)将这些控制信号发送到实际的现场设备,从而控制过程工厂或系统的至少一部分的操作,例如,控制在工厂或系统内运行或执行的一个或多个工业过程(例如,物理过程)的至少一部分。在另一个示例中,光谱测定管理器或控制器将指令传送到各种I/O设备,然后I/O设备经由专用通信线路或链路将指令发送到设置在工业过程工厂中的物理光谱测定设备。响应于该指令,光谱测定设备通过I/O设备经由类似的反向路径将所收集的数据传送到管理器/控制器和/或过程控制系统中的其他接收方设备。通常也位于工厂环境中的I/O设备通常被设置在控制器和一个或多个现场设备之间,并且例如通过将电信号转换为数字值以及将数字值转换为电信号来实现在控制器和一个或多个现场设备之间的通信。提供不同的I/O设备以支持使用不同的专用通信协议的现场设备。更具体而言,在控制器和使用特定通信协议的现场设备中的每一个之间提供不同的I/O设备,以便第一I/O设备用于支持HART现场设备,第二I/O设备用于支持Fieldbus现场设备,第三I/O设备用于支持Profibus现场设备等。现场设备、控制器和I/O设备通常被称为“过程控制设备”,并且通常位于、设置或安装在过程控制系统或工厂的现场环境中。
更进一步,来自现场设备及其相应控制器的信息通常通过控制器经数据高速通道或通信网络可用于一个或多个其他硬件设备,例如操作员工作站、个人计算机或计算设备、数据历史库、报告生成器、集中式数据库或其他集中式管理计算设备,这些设备通常放置在控制室或远离工厂的较恶劣和/或危险现场环境的其他位置,例如在过程工厂的后端环境中。这些硬件设备中的每一个通常都集中在整个过程工厂或过程工厂的一部分。这些硬件设备运行应用,这些应用可以例如使操作员能够执行关于控制过程和/或操作过程工厂的功能,诸如改变过程控制例程的设置、修改控制器或现场设备内的控制模块的操作、查看过程的当前状态、查看由现场设备和控制器生成的警报、出于培训人员或测试过程控制软件的目的而仿真过程的操作、保持和更新配置数据库等。硬件设备和过程控制器所使用的数据高速通道可以包括有线通信路径、无线通信路径、或有线通信路径和无线通信路径的组合,并且通常使用基于分组的通信协议和非时间敏感通信协议,诸如以太网或IP协议。
作为示例,由艾默生过程管理公司销售的DeltaVTM控制系统包括存储在位于过程工厂内不同位置的不同设备中并由其执行的多个应用。驻留在一个或多个工作站或计算设备中的配置应用,使用户能够创建或改变过程控制模块,并经由数据高速通道将这些过程控制模块下载到专用的分布式控制器。通常,这些控制模块由通信互连的功能块组成,这些功能块可以是面向对象的编程协议中的对象,这些对象基于对其输入来执行控制方案内的功能,并且向控制方案内的其他功能块提供输出。配置应用还可以允许配置工程师创建或改变操作员接口,所述操作员接口由查看应用使用来向操作员显示数据,并使操作员能够改变过程控制例程内的设置(例如设定点)。每个专用控制器以及在一些情况下的一个或多个现场设备,存储并执行相应的控制器应用,该控制器应用运行分配并下载到该控制器应用的控制模块,以实现实际的过程控制功能。可以在一个或多个操作员工作站上(或在与操作员工作站和数据高速通道通信连接的一个或多个远程计算设备上)执行的查看应用,经由数据高速通道从控制器应用接收数据,并使用用户接口向过程控制系统设计者、操作员或用户显示该数据,并且可以提供多个不同视图中的任何视图,例如操作员的视图、工程师的视图、技术人员的视图等。数据历史库应用通常存储在数据历史库设备中并由其执行,该数据历史库设备收集并存储一些或所有通过数据高速通道提供的数据,而配置数据库应用可以在附接到数据高速通道的另一个计算机中运行,以存储当前的过程控制例程配置和与之相关联的数据。可替换地,配置数据库可以位于与配置应用相同的工作站中。
分布式工业过程控制系统随着时间的推移而发展,已经开发并添加了不同的硬件、通信和联网技术。因此,当今的过程控制系统通常包括无数不灵活的、以硬件为中心的设备,诸如专用操作员控制台、配置站、特制控制器和I/O卡,仅举几个示例。过程控制系统内的不同类型的硬件设备的这种回转需要多级配置并将底层系统暴露给用户,并且通常转化为初始工程设计工作的成本增加和执行改变管理的成本增加。此外,由于过程工厂安装和扩展依赖于特制硬件,它们容易受制于成本超限和供应链延迟。
信息技术(IT)部门也存在类似的问题,尽管在更一般的意义上。在IT部门中,最近的趋势包括从承载用户的商业逻辑中抽象出基础设施的层(包括物理硬件需求),以便允许硬件安装的灵活性。通常,在IT系统中,IT管理员设计、规定或以其他方式阐述被认为是实现承载目标用户的业务逻辑所需的硬件要求,并且IT管理员在业务逻辑需要改变时调整硬件平台配置和利用。
发明内容
工业软件定义过程控制系统(SDCS)为工业过程工厂的过程控制系统提供了新颖的架构,该架构在很大程度上使过程控制系统的软件和硬件分离。一般而言,过程控制系统自动化的业务逻辑被实现为在软件和硬件计算机资源之上的逻辑抽象。可以在超会聚计算机系统基础设施环境中实现用于工业过程控制的这些资源的管理,其中软件定义(SD)部件或元件由软件定义过程控制系统使用本文描述的一些或全部技术来管理和分布。有利地,软件定义过程控制系统动态地并自动地管理软件和硬件资源,以便在软件定义过程控制系统的运行时期间,鉴于过程控制系统和工业过程工厂的动态发生的条件(例如,响应性地和/或预测性地)支持过程控制系统业务逻辑的动态需求。
软件定义过程控制系统(SDCS)可以包括由物理层支持的软件定义联网层、软件定义应用层和软件定义存储层。物理层可以包括在SDCS中,也可以不包括在SDCS中。一般而言,物理层包括硬件接口(例如,一个或多个网络接口或端口),SDCS经由该硬件接口通信连接到工业过程工厂的现场环境和部署在其中的物理设备或物理部件。例如,硬件接口可以包括输入/输出(I/O)接口。物理层还可以包括路由部件,其可以经由软件和/或硬件来实现,以向和从接口端口传送数据。在一些实施例中,SDCS包括物理层,而在一些实施例中,SDCS不包括物理层并通信连接到提供物理层的另一个计算设备集合或计算平台。
SDCS的软件定义联网层包括计算平台,该计算平台包括一个或多个数据计算集群,如果不是全部,则至少对一个或多个数据计算集群部分地进行网络互连。每个集群都可以包括一个或多个节点,所述节点经由相应的联网资源至少部分地彼此联网,并且每个节点都包括处理器和/或处理器核心资源和存储器资源的相应集合。例如,节点可以在计算设备或服务器上实现。计算设备或服务器可以包括多个处理器,并且处理器可以包括多个核心。
在SD联网层,软件定义操作系统监控并管理软件定义应用层的部件的创建以及在SDCS的启动和运行时期间计算平台节点中可用节点(以及可能动态改变的硬件和软件资源)的应用层部件的使用或利用(单个地和共同地)。例如,SD操作系统指派应用层部件以在计算平台的特定节点上执行,和/或利用计算平台的节点的特定处理器资源、处理核心资源和/或存储器资源。一般而言,SD联网层的SD操作系统提供支持服务,其中一些支持服务由SD应用层部件消耗,这些支持服务协同监控并管理节点的硬件和软件资源以支持软件定义应用层部件,根据过程控制系统业务逻辑、定时和性能要求,将SD应用层部件分配、指派、重新分配、重新指派、负载平衡等到各个节点和在各个节点之间(以及在一些情况下,到特定节点的各种处理资源和/或存储器资源)。此外,软件定义联网层通信耦合并管理软件定义应用层部件与它们各自的端点之间数据的联网或传送,其可以是其他软件定义应用层部件、部署在过程工厂现场环境中的设备、用户接口设备、外部系统等。
软件定义应用层包括过程控制系统业务逻辑,其通常经由容器、虚拟机或其他适合的封装执行环境来实现。例如,过程控制系统业务逻辑可以被实现为应用层服务集合,其中应用层服务可以分别被配置用于特定的业务逻辑集合,并且所配置的服务的每个实例都可以在单独的封装执行环境中执行。例如,SDCS应用层服务可以包括过程控制器、用户接口、诊断、分析、I/O联网和历史库,仅举几个示例。SD应用层服务可以配置有控制例程、标签、设备标识符、设备信号标识符、参数、值等,以形成服务的配置实例,其中的每一个都可以在相应的封装执行环境(例如,配置容器、虚拟机等)中执行。所配置的封装执行环境由SD联网层指派或分配(并且在一些情况下,基于工业过程工厂内动态出现的条件重新指派或重新分配),以在计算平台的节点的相应软件和/或硬件资源上执行。
软件定义存储层包括可以由软件定义应用层利用的过程控制系统数据存储器。类似于软件定义应用层,软件定义存储层提供逻辑存储实体或位置以供SD应用层的应用使用,并且逻辑存储实体被SD联网层指派和/或分配(在一些情况下,重新指派和/或重新分配)到计算平台的节点的各种资源。此外,如果需要,SD联网层可以提供各种逻辑存储实体的冗余。
用于控制工业过程控制工厂的方法和系统使用软件定义控制器、软件定义输入/输出资源、软件定义存储器和/或软件定义联网,以使用SDCS应用层服务来促进过程控制。SDCS应用层包括执行一个或多个服务的一个或多个容器。协调器作为超会聚基础设施的一部分操作以控制一个或多个容器的实例化,并且通过在不同硬件资源之间复制和/或移动(例如,重新实例化)容器来促进负载平衡和容错。例如,当硬件资源(例如,处理器、处理器核心、存储器设备、网络容量)成为被加载时,执行相应服务的各个容器可以在硬件资源之间移动,以便确保所有服务都标称地操作。作为另一个示例,特定容器的多个副本(即服务过程工厂的特定部分的服务的多个副本)可以在不同的硬件资源上实例化,以便确保如果容器的单个副本变得不稳定或不可用,或者硬件资源故障,则控制可以转移到容器的另一个副本,而不需要任何时间(或者例如仅有最少的几毫秒)来确保过程的连续控制。以这种方式实现并由协调器控制的服务可以包括I/O服务器服务、控制器服务、历史库、子系统(例如,批次控制、连续控制、事件控制、报警子系统、诊断子系统等)、网络服务(例如,软件防火墙)以及SDCS中的任何其他容器化服务。在其上可以在相同容器之间实现硬件多样性的硬件资源包括数据集群、电源、服务器节点、处理器、处理器核心、存储器设备等,并且可以允许根据需要或要求动态添加或去除硬件资源。
当前描述的系统的另一方面包括在SDCS内操作的嵌套计算容器。虽然在计算节点上实例化的容器中的每一个都是在计算节点的操作系统内执行的隔离执行环境,但是给定容器可以在另一容器内被实例化和/或可以具有在其中实例化的一个或多个容器。这样,例如,可以复制过程工厂内的物理或逻辑层级,从而在SDCS的设置中复制过程工厂内元件的物理和逻辑布置。例如,工厂区域、区域内的单元和单元内的过程模块可以在SDCS的嵌套容器中复制。
更进一步地,在本文描述的SDCS中,可以将容器绑住(pin)到过程控制环境的其他元件。通过将容器绑住过程控制系统或工厂的另一个元件,配置工程师或操作员可以确保满足某些参数,但是协调器享有一些自主性。例如,可以将容器绑住到计算资源、存储资源、网络资源、电源资源等,以便确保容错性的某些方面被维护,即使容器可以出于负载平衡的目的而被“移动”(例如,容器可以保持在耦合到特定电源的计算资源上,即使容器可以在耦合到该电源的计算资源之间移动)。还可以将容器绑住到其他容器或容器组(以便它们被一起移动/实例化),无论是否嵌套,或者可以被绑住到过程控制工厂本身中的硬件(例如,以便特定控制器容器与过程控制硬件的特定单元相关联)。
在示例操作中,SDCS的I/O服务器服务与多个容器化控制器服务连接,每个容器化控制器服务实施相同的控制例程以控制相同工厂的相同部分。I/O服务器服务可以向容器化控制器服务中的每一个提供相同的控制器输入(例如,表示已经由现场设备获得并由现场设备传送到I/O服务器服务的测量的控制器输出)。每个容器化控制器服务执行相同的控制例程以生成控制器输出集合。I/O服务器服务接收每个控制器输出集合,并将“活动的”控制器输出集合转发到适当的现场设备。来自其他控制器服务的输出集合可以不被传送到现场设备。I/O服务器服务和系统中的其他服务(例如协调器服务)可以连续地评估控制系统中的性能和资源利用,并且可以动态地启动和停用控制器服务以适当地优化性能。如果需要,可以将I/O服务器服务容器化。此外,可以存在同一容器化I/O服务器服务的多于一个的实例。在这种实施方式中,这些实例中的单个实例可以被认为是“活动的”,充当现场设备与容器化控制器服务之间的I/O流量的全功能中介。“非活动的”I/O服务器服务可以接收由“活动的”I/O服务器服务接收的同一I/O流量,并且可以对I/O流量实现相同的逻辑。然而,如果需要,“非活动的”I/O服务器服务不转发I/O流量;或者如果它们转发,则目标服务或设备不接收该流量并对其操作(例如,网络交换机可以接收该流量并确定它是“非活动的”I/O流量,并因此可能不将其转发到其目标)。
容器化控制器服务和容器化I/O服务器服务可以以任何期望的方式分布在工厂的物理资源或其他地方。此外,如果需要,实现的容器中的任何一个或多个不是永久地固定或绑到在任何给定时间上述容器碰巧在其上执行的任何特定的计算机集群或节点/服务器。当期望平衡计算和网络负载并减轻计算或联网低效(例如,当给定物理资源在计算上或由网络流量而变得负担过重)时,可以在不同计算机处动态地(例如,在执行期间实时或接近实时地)实例化、删除和重新实例化容器。此外,给定容器的总的实例可以根据需要动态地减少或增加,并且这些实例中的任何一个(例如,各自实现相同的控制器服务)可以根据需要启动或停用。如果用于物理资源的计算和联网工作负载是高度可变的,则容器之间的这种“杂凑(juggling)”可能是有帮助的。每个控制器服务都可以被容纳在其自己的专用容器中,从而提供相对隔离的、一致的并且可预测的环境,在该环境中实现了每个控制器服务,而不管实现容器的节点上存在的更广泛的软件环境如何。例如,容器可以包括给定控制器服务所需的软件依赖性和软件库。在没有容器的情况下,可能需要适当地配置控制器服务可以在其上运行的每个单个节点,以便确保控制器服务的一致环境。并且如果给定节点需要能够实现各种不同类型的服务(其中的每一个都可能具有不同的环境要求),则确保节点的适当配置可能变得复杂。相反,所描述的控制器服务容器使得每个控制器服务都能够容易地在任何给定节点处实例化并且容易地在节点/服务器或计算集群之间(例如,通过I/O服务器服务)移动。
当前描述的系统的另一方面包括SDCS内的安全服务。在SD联网层,SD联网服务可以控制和管理由逻辑过程控制系统使用的逻辑或虚拟网络,其可以由SD联网服务跨物理节点实现。SD联网服务可在SDCS中部署和管理网络设备的实例(诸如虚拟路由器、虚拟防火墙、虚拟交换机、虚拟接口、虚拟数据二极管等)以及网络服务的实例(诸如分组检查服务、访问控制服务、授权服务、认证服务、加密服务、证书授权服务、密钥管理服务等)。
例如,SD联网服务可以部署用于SDCS内的基于角色的授权的服务。当用户请求授权来访问SDCS内的服务(例如,控制服务)时,授权服务可以基于该请求来确定用户的授权级别,并且确定是否授权用户访问其他服务。更具体而言,授权服务可以确定用于访问控制服务的最小阈值授权级别,并且确定用户的授权级别是否满足或超过最小阈值授权级别。如果用户未被授权,则授权服务可以阻止对控制服务的访问。
SD联网服务还可部署证书授权服务。证书授权服务可以生成用于物理或逻辑资产的数字证书以用于认证物理或逻辑资产。证书可以指示证书授权服务验证了物理或逻辑资产的身份,以使得每次物理或逻辑资产与SDCS的服务或节点通信时不需要验证该物理或逻辑资产的身份。
SDCS还可以包括经由SDCS的计算节点上的容器执行的发现服务。当物理或逻辑资产加入过程工厂中的网络时,物理或逻辑资产通告其存在。发现服务然后生成并存储过程工厂中的每个物理或逻辑资产的身份、能力和/或位置的记录,物理或逻辑资产可以在过程工厂的运行时期间被利用来控制工业过程的至少一部分。以这种方式,发现服务可以帮助调试过程工厂内的物理资产(例如现场设备),以及调试逻辑资产(例如容器、服务和微服务)。SDCS中的物理或逻辑资产可以在发现时自动调试而无需手动输入。
当过程工厂中的物理或逻辑资产的记录被破坏或毁坏时,发现服务还可以通过向网络中的每个物理或逻辑资产广播请求以通告它们的存在,来执行故障恢复。以这种方式,可以自动恢复物理或逻辑资产的记录,而不必手动输入关于过程工厂中的物理或逻辑资产中的每一个的信息。
此外,与当前的过程控制数据交换标准(例如OPC,其中系统至多标识由物理或逻辑资产(在本文也称为“主要变量”)通告的能力)不同,本文描述的发现服务被配置为自动推断物理或逻辑资产的附加能力,当发现物理或逻辑资产时,该附加能力没有被通告给发现服务(在本文也称为“上下文变量”)。附加能力可以包括由物理或逻辑资产提供的附加参数或服务、或被配置为与物理或逻辑资产通信的服务。发现服务然后可以向SDCS中的、请求关于物理或逻辑资产的信息的另一节点或服务提供物理或逻辑资产的能力的指示。以这种方式,发现服务可以存储比先前的过程控制系统更完整的过程工厂中的物理或逻辑资产的记录及其相应的能力。因此,SDCS中的节点和服务可以从发现服务获得关于过程工厂中物理或逻辑资产的能力的详细信息,而不必直接轮询物理或逻辑资产以标识附加能力。
更进一步,为了帮助用户可视化SDCS的运行时操作,可视化服务与协调器和配置数据库连接,以获得配置数据和当前运行时操作数据,其定义控制系统的各种逻辑元件(诸如控制容器和子系统容器)彼此之间、以及各种逻辑元件与系统中的物理元件之间当前建立的相互关系或操作该相互关系。可视化服务可创建示出这些关系(如SDCS中当前配置和操作的)并且还为所显示的逻辑和/或物理元件中的一个或多个提供关键性能或健康参数的任何数量的不同用户显示。例如,可视化服务可以创建运行时操作层级结构,该运行时操作层级结构在分层视图中示出诸如控制容器及其子单元的各种逻辑元件被嵌套在彼此内并绑住彼此的方式。该层级结构还可以示出各种逻辑元件被绑住或简单地在控制系统的各种物理元件中执行或被指派给控制系统的各种物理元件的方式。该层级显示还可以使用户能够移动或动态地将各种逻辑元件重新指派给系统内的其他逻辑元件或物理元件。更进一步地,可视化服务可以创建并呈现示出控制系统内的物理硬件(例如,服务器、节点、计算集群、处理器等)和当前在那些物理元件上执行的逻辑元件(例如,控制容器、第三方容器、子系统容器等)的显示。显示还可以包括性能或健康指数,其指示显示内的物理元件和逻辑元件的各种性能和/或健康度量。在其他情况下,可视化服务可以创建并呈现显示,该显示示出了各种逻辑元件和这些逻辑元件彼此嵌套或绑住的方式,以及当前用于在控制系统的当前运行时期间执行逻辑元件中的每一个的物理元件。这些显示还可以提供或指示用于其中显示的不同逻辑元件和物理元件的各种性能测量,以使用户能够容易地看到或可视化控制系统或其各个部分的当前操作和操作健康。
附图说明
图1示出了包括软件定义控制系统(SDCS)的示例物理工业过程工厂的框图。
图2示出了示例软件定义控制系统的框图,其可以被包括在图1的工业过程工厂中。
图3是示出容错和负载平衡的原理的框图。
图4A是概念性地示出负载平衡的框图。
图4B是示出实现优先容器和容器级别上的负载平衡的框图。
图5A是示出容器级别上的容错的实施方式的框图。
图5B是示出服务器级别上的容错的实施方式的框图。
图6是由协调器维护以跟踪实例化的服务和容器的示例数据结构。
图7是示出软件定义存储服务的框图。
图8是示出过程工厂的逻辑和物理层级结构布置的框图。
图9是示出过程控制系统中的嵌套容器的示例实施方式的框图。
图10是示出使用嵌套容器进行容错和负载平衡的框图。
图11是示出嵌套层级结构系统中的各个实例化的容器的框图。
图12是示出容器嵌套的另一示例的框图。
图13是示出过程控制系统中的容器绑住的第一示例的框图。
图14是示出过程控制系统中的容器绑住的第二示例的框图。
图15是包括用于实现图1所示工厂的区域的部分的控制的容器化服务的I/O网络的框图。
图16是包括物理资源(例如,计算机、服务器、联网设备等)的计算机集群的框图,在该计算机集群上可以实现、动态分配和负载平衡本文所述的各种容器、微容器、服务和/或例程中的任何一个或多个,以优化计算机资源使用和性能。
图17示出了可以在其上实现诸如图15和图16中所示的那些容器化服务的物理服务器的示例实施例。
图18是用于实现诸如图15-图17中所示的I/O服务器服务之一的I/O服务器服务的方法的流程图。
图19是用于评估诸如图15-图17中所示的容器化控制器服务之一的容器化控制器服务和在容器化控制器服务之间转换的方法的流程图。
图20示出了包括在图1的SDCS中的与网络安全性相关的示例容器、服务和/或子系统的框图。
图21示出了包括在图1的SDCS中的与网络安全性相关的示例容器、服务和/或子系统的另一框图。
图22示出了被配置为执行图1的SDCS内的虚拟路由器的示例容器的框图。
图23示出了示例虚拟防火墙的框图,每个虚拟防火墙与相应的控制服务相关联,并且包括专用于相关联的控制服务的防火墙规则集合。
图24示出了被配置为执行虚拟控制器并且包括被配置为执行用于虚拟控制器的安全服务的嵌套容器的示例容器的框图。
图25示出了被配置为执行图1的SDCS内的虚拟路由器的示例容器的另一框图,其中虚拟路由器包括嵌套容器,嵌套容器被配置为分别执行虚拟现场网关、虚拟数据二极管和虚拟边缘网关。
图26示出了被配置为执行证书授权服务的示例容器的框图。
图27示出了包括在图1的SDCS中的示例容器、服务和/或子系统的框图,示例容器、服务和/或子系统被配置为执行认证和授权服务。
图28示出了被配置为执行存储服务的示例容器的框图。
图29示出了表示保护过程工厂的过程控制系统的示例方法的流程图。
图30示出了表示用于软件定义过程控制系统(SDCS)中的基于角色的授权的示例方法的流程图。
图31示出了表示用于由证书授权服务生成数字证书以用于认证过程工厂的物理或逻辑资产的示例方法的流程图。
图32示出了表示用于认证过程工厂的物理或逻辑资产的示例方法的流程图。
图33示出了包括在图1的SDCS中的、与发现相关的示例容器、服务和/或子系统的框图。
图34示出了被配置为执行发现服务的示例容器的框图。
图35示出了被配置为执行上下文字典服务的示例容器的框图。
图36示出了可以包括在上下文字典容器中的示例上下文的框图。
图37示出了表示用于提供发现软件作为过程工厂中的服务的示例方法的流程图。
图38示出了表示用于使用上下文字典来推断关于过程工厂的物理或逻辑资产的信息的示例方法的流程图。
图39示出了表示用于将能力集合映射到过程工厂中的每种类型的物理或逻辑资产并确定所发现的物理或逻辑资产的能力的示例方法的流程图。
图40示出了表示用于过程工厂中的发现项目的故障恢复的示例方法的流程图。
图41示出了表示用于自动调试SDCS的示例方法的流程图。
图42示出了连接到配置数据库和协调器的可视化服务或实用程序的图,除了与系统的逻辑和物理元件相关联的各种性能指示符之外,其还可用于向用户提供的当前逻辑和物理配置和运行时信息。
图43示出了可以由图42的可视化服务呈现的第一屏幕显示,以在分层视图中示出控制系统中的逻辑和物理元件的配置的和运行时交互。
图44示出了可以由图42的可视化服务呈现的第二屏幕显示,以示出当前在控制系统中的特定物理元件集合上实现的逻辑元件的配置的和运行时交互。
图45示出了可以由图42的可视化服务呈现的第三屏幕显示,以示出与控制系统中的特定或选定的逻辑元件集合相关联的物理元件的配置的和运行时交互。
图46示出了可以由图42的可视化服务呈现的第四屏幕显示,除了每个元件的各种性能指示符之外还示出控制系统中的逻辑和物理元件的配置的和运行时交互。
具体实施方式
图1示出了包括示例软件定义控制系统(SDCS)100的示例物理工业过程工厂10的框图。过程工厂10包括通信连接到后端环境15的现场环境12(例如过程工厂车间)。工厂10的后端环境15通常被屏蔽以免受现场环境12的恶劣条件和材料的影响,并且可以包括例如单独的房间、建筑物或现场上靠近现场环境12的位置、远离工厂现场定位的任何数量的设备、和/或在位于远离工厂现场的设备或系统上远程执行的任何数量的应用程序。后端环境15包括SDCS 100,并且通常还包括通信地连接到SDCS 100的一个或多个物理工作站和/或用户接口20a-20e。例如,一个或多个操作员和/或配置工作站20a可位于工厂10的现场屏蔽室中,并经由有线数据或通信链路22(例如,以太网或其他合适的有线链路)与SDCS 100通信连接,并且现场人员所利用的一个或多个操作员平板电脑20b可经由无线链路25(例如,Wi-Fi、WirelessHART、诸如4G LTE、5G或6G的蜂窝通信系统链路或某种其他类型的合适的无线链路)和有线链路22与SDCS 100通信连接。与过程工厂10相关联的其他用户接口20c-20e可被设置在工厂10的外部,并可经由最后一英里链路30和/或无线32链路和/或经由一个或多个网络专用和/或公共网络35通信地连接到SDCS 100。例如,膝上型计算机20c、移动设备20d和/或在膝上型计算机20c、移动设备20d和/或车辆系统20e中执行的过程工厂相关应用程序可以经由各自的无线链路32、一个或多个公共和/或专用数据或通信网络35以及到SDCS100的直接或最后一英里链路30(其通常但不是必须是有线链路)通信连接到SDCS100。远程用户接口和设备20c-20e可以由例如工厂操作员、配置工程师和/或与工业过程工厂10及其部件相关联的其他人员使用。
如图1所示,SDCS 100经由I/O(输入/输出)接口系统或网关40通信连接到现场环境12的部件。一般而言,I/O接口系统40的面向现场的部分包括一组物理端口或物理硬件接口,经由其向/从设置在现场环境中的部件输送各种类型的I/O数据并且物理端口或物理硬件接口与通过其输送I/O数据的各种类型的过程工厂通信链路或数据链路42-58连接和/或支持各种类型的过程工厂通信链路或数据链路42-58。I/O接口系统40将经由链路42-58接收的物理I/O从现场环境12的部件转换和/或路由到SDCS 100的接收方部件(图1中未示出),并且相反地,I/O接口系统40将SDCS100生成的通信转换成对应的物理I/O,并且例如经由对应的链路42-58将物理I/O路由到设置在现场环境12内的相应接收方部件。这样,I/O接口系统40在本文可互换地称为“I/O网关”40。在图1所示的实施例中,SDCS 100和I/O网关40的至少一部分使用公共硬件和软件计算资源集合(例如相同计算平台)来实现。即,在图1所示的实施例中,SDCS 100和I/O网关40的至少一部分(例如,I/O网关40的执行转换、路由、交换等的部分)共享至少一些计算硬件和软件资源;然而,I/O网关40还包括到数据或通信链路42-58的物理I/O端口或I/O硬件接口。然而,在其他实施例中,SDCS 100和I/O网关40可在独立的、通信连接的计算平台上实现,每个计算平台利用独立的硬件和软件计算资源集合,例如如图2所示。
现在转到现场环境12,图1示出了在其中布置、安装和互连的各种物理部件和/或设备(例如,过程控制设备、现场设备、网络元件等),其例如通过共同地通信和物理地操作以将原材料或输入材料变换成期望的产品或输出材料,来操作以在工厂10的运行时间期间控制工业过程(例如,物理过程)。各种现场设备60、62、70、80、90和其他现场部件68、72、82可以通过利用不同类型的过程I/O经由I/O网关40向/从SDCS 100传送过程I/O。
例如,一个或多个有线现场设备(“FD”)60可以被设置在现场环境12中,并且可以使用标准(例如,传统的)有线物理I/O类型(例如,模拟输出(AO)、模拟输入(AI)、离散输出(DO)、离散输入(DI)等)进行通信。有线现场设备60可以包括例如阀、致动器、泵、传感器等,其生成数据信号并接收控制信号,从而控制它们在工厂10中的相应物理操作,以及提供状态、诊断和其他信息。有线现场设备60可以使用任何已知的工业自动化有线协议,诸如4-20mA、Fieldbus、Profibus、Modbus、HART等,通过有线链路42与I/O网关40通信连接。因而,I/O网关40可以包括服务于经由链路42接收和发送的通信的相应I/O卡或设备(未示出)。另外或可替换地,在某些配置中,一个或多个有线现场设备60可以直接连接到一个单独的、相应的I/O卡或设备61,并且可以通过一个数据高速通道58,例如以太网或其他合适的高带宽传输介质,从/向I/O网关40输送到/来自单独的I/O卡或设备61的通信。
现场环境12可以包括一个或多个无线现场设备62,其中一些可以是固有无线的,而其中一些可以是连接到相应无线适配器的有线现场设备。无线现场设备和适配器62可以经由任何已知的工业自动化无线协议(例如无线HART)或通用无线协议(例如Wi-Fi、4GLTE、5G、6G等)经由各自的无线链路65进行通信。一个或多个无线网关68可以将经由无线链路65从无线设备62接收的无线信号转换成经由一个或多个链路48被输送到I/O网关40的有线信号,并且可以将经由链路48从I/O网关40接收的信号转换成无线信号,并且经由无线链路65将无线信号发送到适当的接收方设备62。因此,链路48可以支持无线I/O类型,并且I/O网关40可以包括服务于经由链路48发送和接收的通信的相应无线I/O卡或设备(未示出)。在一个实施例中(图1中未示出),至少一些链路48可以直接连接到相应的无线I/O卡或设备,其又可以经由数据高速通道(例如,以类似于有线设备60和I/O卡/设备61的方式)通信地连接到I/O网关40,其中数据高速通道可以包括在数据高速通道58中或者可以是不同的数据高速通道。
过程工厂10可以包括一组现场设备70,其通过各自的终端72、一个或多个远程或调度I/O机柜或系统75以及一个或多个链路50通信连接到I/O网关40。即,每个现场设备70可以使用标准或传统的有线I/O类型(例如AO、DO、AI、DI等)通过相应的物理连接和终端72与远程I/O调度系统75通信。远程I/O系统75的一个或多个处理器78可以作为远程I/O系统75的本地开关,并且因此可以例如经由链路50切换或路由去往/来自物理终端72(以及它们各自连接的现场设备70)和I/O接口系统40的通信。因此,链路50可以支持调度的或远程的I/O类型,并且I/O网关40可以包括相应的I/O卡或设备,以服务于经由链路50传送的通信。在实施例中(图1中未示出),至少一些链路50可以直接连接到相应的远程I/O卡或设备,其又可以通信地连接到I/O网关40,并且可以经由数据高速通道、经由数据高速通道(例如,以类似于有线设备60和I/O卡/设备61的方式)从/向I/O网关40输送去往/来自远程I/O卡或设备的通信,其中数据高速通道可以包括在数据高速通道58中或者可以是不同的数据高速通道。
在一些实施方式中,过程工厂10包括一组有线和/或无线现场设备80,其经由APL(高级物理层)交换机82通信地连接到I/O网关40。一般而言,APL交换机82及其链路85例如以满足危险现场环境12的管辖电力安全要求的方式向现场设备80提供电力,并且在一些情况下向诸如无线路由器88的其他设备提供电力。通常,APL兼容链路85经由高带宽传输介质和分组协议,诸如以太网和IP协议,或其他合适的高带宽传输介质和分组协议,提供去往/来自现场设备80和无线路由器88的数据传输。一些现场设备80可以是下一代或APL兼容的现场设备,一些现场设备80可以是通过相应的APL适配器连接到链路85的标准现场设备。与链路85类似,通信地连接APL交换机82和I/O网关40的链路55也可以利用APL兼容的传输介质和/或分组协议,例如高带宽以太网和IP协议,并且因此链路55可以支持APL I/O类型。因此,I/O网关40可包括相应的I/O卡或设备以服务于经由链路55输送的通信。
此外,在一些配置中,APL交换机82或通信地连接到I/O网关40的另一个APL交换机(未示出)可以提供到远程I/O总线的直接连接,例如包括在远程I/O机柜或调度系统75中的远程I/O总线,或包括在另一个远程I/O机柜或调度系统(未示出)中的另一个远程I/O总线。在这些配置中,APL交换机可以向远程I/O机柜或调度系统提供电力。
在一些配置中,过程工厂10可以包括一组现场设备90,其通过标准或非APL以太网连接52通信连接到I/O网关40。例如,现场设备90可经由与危险现场环境12屏蔽但不向现场设备90提供电力的一个或多个高带宽以太网链路52,通过使用工业控制IP协议(诸如HART-IP或其他合适的工业控制IP协议),经由I/O网关40与SDCS 100通信。这样,链路52支持标准以太网或分组I/O类型,并且I/O网关40可包括相应的I/O卡或设备以服务于经由链路52输送的通信。在实施例中(图1中未示出),至少一些链路52可以直接连接到相应的IP兼容(标准以太网)I/O卡或设备,其又可以经由数据高速通道(例如,以类似于有线设备60和I/O卡/设备61的方式)通信地连接到I/O网关40,该数据高速通道可以包括在数据高速通道58中或者可以是不同的数据高速通道。
当然,图1中所示的现场设备60、62、70、80、90和现场部件68、72、82仅是示例性的。工业过程工厂10的其他类型的现场设备和现场部件可以另外或替代地在过程工厂10中使用,并且可以通过使用合适的链路、协议和过程I/O类型经由I/O网关40与SDCS 100通信。
图2示出了示例软件定义控制系统(SDCS)200的架构的框图,其可以包括在图1的工业过程工厂中。例如,架构200的至少一部分可由图1的SDCS 100利用。一般而言,如下所述,SDCS200利用分层架构,其中从SDCS 200的物理计算平台中抽象出SDCS 200的业务逻辑。为了便于讨论,同时参考图1的工业过程工厂10的各个部分来描述SDCS 200;然而,这仅用于说明目的而非限制。
图2将SDCS 200示为通过I/O接口系统或I/O网关202通信连接到现场环境12,与图1的I/O接口系统40不同,该I/O接口系统利用与SDCS 200所利用的硬件和软件计算资源集不同的硬件和软件计算资源集。由I/O接口系统202提供的功能202a,例如交换、路由和转换在SDCS 200和设置在处理工厂10的现场环境12中的设备或部件之间传送的通信,例如通过利用I/O网关202的硬件和/或软件计算资源来执行。这样,这些功能202a在本文被分类地和共同地称为“网络交换机”202a。网络交换机202a所利用的软件和硬件资源可以在I/O网关202的一个或多个存储器和处理器上实现。例如,网络交换机202a可以在一个或多个服务器上、通过一组联网计算设备、云计算系统、一个或多个数据集群等来实现。但是,类似于图1的接口系统40,I/O接口系统202包括一组物理端口或接口202b,各种类型的I/O链路42-58经由这些端口或接口202b将物理I/O从SDCS 200传送到现场环境12的部件,反之亦然。I/O接口系统202和SDCS 200可经由通常为高带宽数据或通信链路的一个或多个链路205通信地连接。
如图2所示,SDCS 200的架构包括支持架构的较高层的硬件和软件资源的计算平台208。因此,计算平台208在本文中可互换地称为SDCS 200的“物理层208”,因为它包含物理处理器、处理器核心、存储器和联网接口。计算平台或SDCS物理层208包括数据中心集群C1、C2、…、Cn的集合,其中每个集群包括相应的多个节点,其中每个数据中心集群内包括的节点可以至少部分地(如果不是全部地)互连。每个数据中心集群的每个节点包括一个或多个相应的处理器和/或处理器核心、一个或多个相应的存储器以及相应的联网资源,例如将节点通信地连接到数据集群的一个或多个其他节点的一个或多个相应的物理通信接口。例如,节点可以在单个服务器上实现,或者可以在服务器的组或库上实现。
另外,每个数据中心集群与平台208的一个或多个其他数据中心集群通信地连接或联网。因此,本公开内容还可互换地将SDCS 200的计算平台208称为“数据中心集群”、“计算平台节点”或“节点”208。在图2中,SDCS 200的SDCS超融合基础架构(HCI)操作系统(OS)210(在本文可互换地称为“SD HCI OS”210)可以指派、指定或分配各种节点208以执行相应的角色来支持SDCS 200,例如计算(例如经由节点的相应处理器和/或处理核心)或数据存储(例如经由节点的相应存储器)。被指派、指定或分配为执行SDCS 200的计算活动的节点208在本文分别称为“计算节点”或“运算节点”。类似地,被指派、指定或分配为执行SDCS200的存储活动的节点208在本文分别称为“存储节点”。单个节点208可以被用作仅计算节点、仅存储节点、或计算节点和存储节点两者,并且每个单个节点208的(多个)角色可以例如在SD HCI OS210的指导下随时间动态地改变。有利地,计算平台208是可扩展的,使得可以根据需要容易地添加、去除、换出各个节点208和/或各个集群Cx,以支持软件定义过程控制系统200,并且特别地,根据SDCS 200的其他更高层的要求。
SDCS超融合基础架构(HCI)操作系统210在计算平台208上执行,并且可以基于任何合适的通用HCI操作系统(OS)来构建,诸如Microsoft Azure Stack、VMWare HCI、Nutanix AOS、Kubernetes Orchestration,包括Linux容器(LXC/LXD)、Docker容器、Kata容器等。这样,SDCS HCI OS 210以与通用HCI操作系统有些类似的方式提供一组计算、存储和联网支持服务。然而,与通用HCI OS相反,并且有利地,在SDCS 200中,这些SD HCI OS支持服务动态地响应SDCS 200的逻辑或抽象过程控制系统,例如响应SDCS 200的应用层212的软件部件。即,当应用层212的各种应用层服务、子系统和其他软件部件的性能、资源需求和配置动态地改变(和/或由应用层212内的服务动态地预测要改变)时,SDCS HCI操作系统210可自动并响应性地调整和/或管理SDCS200的硬件和/或软件资源208的使用,以支持SDCS 200的计算、存储和联网需求以及与工业过程控制相关的其他功能性。为此,SD HCI操作系统210可以包括一组支持服务,包括例如软件定义(SD)计算(或运算)服务215、SD存储服务218、SD联网服务220、SD协调器服务222,以及可选地一个或多个其他SDCS HCI OS支持服务和/或功能225。这样,在一个实施例中,SDCS HCI操作系统210包括通用HCI操作系统平台(例如,Microsoft Azure Stack、VMWare HCI等),该平台被特别定制为包括SD计算服务215、SD存储服务218、SD联网服务220、SD协调器服务222和其他SDCS HCI OS支持服务和/或功能225,其中该组支持服务215-225自动响应并特别支持软件定义控制系统200的SDCS应用层软件部件212。一般而言,SD HCI OS 210和SD HCI OS 210提供的SD支持服务212-225在本文被共同地和一般地称为SDCS 200的“软件定义联网层”210。
具体地,当SDCS HCI OS 210经由SDCS HCI OS支持服务215-225管理物理层208的节点的硬件和软件资源的分配时,SDCS HCI OS支持服务215-225可以用作SDCS HCI OS210与SDCS 200的应用层212的较高级服务、子系统和其他软件部件之间的接口服务,和/或可以提供应用层212的较高级服务、子系统和其他软件部件的框架。这样,SDCS应用层212的软件部件可以经由一组应用编程接口(API)228,或者经由HCI适配器230(本文也称为“HCI适配器层”230)和另一组API232,或者直接地(图2中未示出)与SD HCI OS 210(并且在一些情况下,特别是与其SD专用支持服务215、218、220、222、225中的一个或多个)接口连接。HCI适配器层230使得SDCS应用层212能够访问支持服务215、218、220、222、225,同时保持对通用HCI操作系统(例如,Microsoft Azure Stack、VMWare HCI等)的细节的不可知,该通用HCI操作系统已经利用这样的SD专用服务215-225定制以形成SD HCI OS 210。因此,HCI适配器230将SDCS应用层212所使用的API228变换或转换成一组API 232,其被SDCS 200的定制或适配的通用HC操作系统210理解或以其他方式为其所知或与其兼容。
因此,与一般化的分层IT(信息技术)系统架构(其中,从硬件和软件计算平台抽象业务逻辑应用,并且计算平台资源的管理主要由人类IT管理员来管理和设计)不同,SDCS200的架构不仅从硬件和软件计算平台208抽象应用层212的高级业务逻辑服务、子系统和其他软件部件,而且还使得高级SD服务、子系统和其他软件部件212能够例如经由API 228和SD支持服务215、218、220、222、225来动态地、自动地、并响应性地引导和引起对计算平台208的节点和集群的硬件和软件资源的使用的改变,而不需要任何人类干预或指导。特别地,并且有利地,计算平台208的资源的管理动态地响应于这些较高级SD服务、子系统和应用层212的其他软件部件的配置和需求的变化,并且特别地,关于工业过程控制系统的特定要求、边界和界限的变化。
在SDCS 200中,工业过程控制和其他相关联的商业逻辑由SDCS 200的应用层212处的较高级SD服务、子系统以及其他软件部件235、238、240、242、248执行。本文中为了易于阅读,本公开内容将这些较高级SD服务、子系统和其他软件部件235-248归类地称为SDCS200的软件定义的“应用层软件部件”。共同地,SD应用层部件235、238、240、242的集合(以及可选地至少一些第三方服务248)形成逻辑过程控制系统245(在本文也可互换地称为“虚拟过程控制系统”245),用于控制例如在工业过程工厂10中执行的一个或多个工业或物理过程。如图2所示,SD应用层软件部件212包括过程控制服务235集合和过程控制子系统238集合,并且可选地可以包括其他SDCS业务逻辑服务240集合。在图2中,为了讨论清楚(而非限制)的目的,将I/O服务器服务242分开示出;然而,I/O服务器服务242可被包括在SDCS 200的子系统238中,或者可被包括在其他SDCS业务逻辑服务240集合中。实际上,在SDCS 200的其他实施例(未示出)中,I/O服务器服务242的至少相应部分或整体可以在HCI适配器230、SD HCI操作系统210和/或甚至网络交换机202a中实现。另外,在SDCS 200的一些实施方式中,第三方业务逻辑服务248集合也可在SDCS应用层212执行,并且可作为或不作为逻辑过程控制系统245的一部分来操作。例如,第三方服务248可以由SDCS 200的软件开发工具包(未示出)生成,用户可以经由该工具包在SD应用层212开发、生成、安装和管理第三方服务248。在本公开内容内的其他部分提供I/O服务器服务242和第三方服务248的更详细讨论。
在实施例中,SD应用层软件部件235-248中的至少一些可以被部署为经由微服务总线(未示出)通信连接的微服务,使得微服务235-248可以向其他微服务235-248传送数据并且从其接收数据。微服务235-248和其间的数据输送可由I/O服务器服务242和/或由SDHCI操作系统210及其SD支持服务215-225支持和/或管理。这样,SD应用层软件部件235-248可以在可以运行SD HCI操作系统210的任何合适的硬件平台208上执行,诸如服务器类硬件、嵌入式硬件等。因此,微服务235-248可以是SDCS 200的远离计算平台208抽象的业务逻辑部件。
在SDCS 200的架构内,应用层软件部件235-248可以在容器、厚供应的虚拟机环境、薄供应的虚拟机环境、和/或作为实例化软件部件(ISC)的其他合适类型的封装执行环境中执行。例如,ISC可以是配置有特定应用层软件部件235-248的实例的容器,以形成用于特定应用层软件部件235-248的配置容器或容器映像,并且特定应用层软件部件235-248的容器映像可以被实例化,以在特定节点208上作为特定ISC执行。在另一个示例中,ISC可以是作为虚拟机(例如,过程或应用虚拟机)的实例实现的特定应用层软件部件235-248,以形成特定应用层软件部件235-248的虚拟机映像,并且特定应用层软件部件235-248的虚拟机映像可以被实例化以在特定节点208上作为特定ISC执行。无论如何,无论是基于容器还是基于虚拟机,SD应用层软件部件235-248的封装的执行环境将实例化的和执行的软件部件235-248与在相同节点208上执行的其他服务和应用隔离。然而,为了便于讨论(而不是出于限制的目的),SD应用层软件部件235-248的执行环境在本文被称为“容器”,尽管本领域技术人员将理解,如果需要,本文关于容器描述的原理和技术可以容易地应用于虚拟机。
利用SDCS 200,应用层服务235、240、248的每个实例可以在相应容器中执行,每个子系统238可以在相应容器中提供或执行,I/O服务器服务242可以在相应容器中执行等,从而形成相应配置的容器或容器映像。例如,控制器服务235可以配置有工业过程工厂10的一个或多个过程控制模块服务235、参数和值,诸如输入和输出的标签、参考值等,从而形成配置的或编程的控制器服务。容器可以被配置有配置的控制器服务的实例,从而形成配置的控制器服务的容器映像。即,配置的容器包括配置的控制器服务的实例,其中配置的控制器服务的实例可执行以使用配置的控制模块容器、标签、参考值等执行特定的、配置的过程控制逻辑集合。配置的控制器服务(或其他配置的服务)的多个实例可以由SDCS 200进行实例化和执行,如在本公开内容中的其他地方所描述的。
容器映像(或容器内的配置的控制器服务的实例)可以例如经由SD计算服务215被分配、绑住或动态地指派以在相应的SD节点和/或数据中心集群208上执行。SD计算服务215可以根据需要或在需要时动态地改变、更新、维护、和/或以其他方式管理容器映像及其对计算节点208的相应指派,例如,以响应于检测到的性能问题,跨计算节点208进行负载平衡,用于计算节点208和/或其物理部件的调度维护,以支持逻辑过程控制系统245的扩展或收缩,以支持计算平台208的扩展或收缩等。在一些实施方式中,应用层软件部件235-248在其中执行的容器(例如,配置的容器或容器映像)可被指派或绑住到SDCS 200外部(例如,与其分离)的I/O设备(或以其他方式在其上执行),例如包括在I/O接口系统202中的设备。在这些实施方式中,SDCS 200发现在其他设备/系统上执行的这种配置的容器(本文称为“微容器”),并且包括网络调度中的发现的微容器和与逻辑过程控制系统245对应的其他方面。
在SDCS 200内,一些配置的容器可以由SD计算服务215基于逻辑过程控制系统245的动态改变的配置、性能和需要而分配或指派给相应的SD计算节点208并且动态地重新指派给不同的SD计算节点208。在一些情况下,容器可以被指派(和重新指派)以由SD计算节点208的特定处理器或特定处理器核心执行。然而,可以将一些配置的容器绑住到相应的SD计算节点208(例如,由SD计算服务215、由配置、由用户等),并且不会由于动态发生的条件而被SD计算服务215动态地重新指派。即,被绑住的配置容器可以在该配置容器所绑住到的SDC计算节点208上执行,直到从计算节点208释放该配置容器,例如,与逻辑过程控制系统245的动态条件无关(除了可能该配置容器所绑住到的计算节点208的故障)。即,软件定义联网层210可以通过绑住的配置容器将利用率限制为仅对其绑住的硬件和/或软件资源,并且当配置容器被释放时,SD联网层210去除该限制。如果需要,可以将容器另外或替换地绑住到SDCS 200的其他物理或逻辑部件。例如,可以将容器绑住到另一容器、绑住到特定数据集群、绑住到特定处理资源(例如,SD计算节点208的特定物理处理器或特定物理处理器核心)、绑住到由特定电源服务的物理机架或物理机架的一部分(其中物理机架物理地容纳一个或多个节点的硬件)等。
此外,配置的容器可以嵌套在其他配置的容器内,这在配置和组织逻辑过程控制系统245时特别有用。例如,当特定的过程控制子系统238提供特定的控制服务集合235和/或其他SDCS服务240时,特定集合中的每个所提供的服务235、240的配置容器可以嵌套在特定过程控制系统238的配置容器中。在本公开内容的其他部分更详细地描述了将配置的容器分配/指派到计算节点208、绑住和嵌套配置的容器。
为了清楚和便于本文的讨论,术语“容器”在本文用来一般地指代实例化的软件部件(ISC),该实例化的软件部件是配置的容器或容器映像,例如,已经被配置为包括相应SDCS控制器服务、SDCS子系统或由SDCS 200提供的其他服务的实例的容器。因此,在语义上讲,在本公开内容内,“容器”可以被实例化并被指派以在计算节点208处执行,“容器”可以被绑住到特定计算节点或其他容器,并且“容器”可以被嵌套在另一“容器”内。
无论如何,以类似于针对计算平台208的计算资源所讨论的方式,容器可以例如经由SD存储服务218动态地分配和/或指派、绑住和/或嵌套到各SDC存储节点208,从而支持逻辑过程控制系统245的各种存储需要。例如,SD存储服务218可以控制和管理由逻辑过程控制系统245的容器跨一个或多个节点208的各种物理硬件存储器资源使用的逻辑存储资源。例如,配置的容器和其操作所需的存储器(例如,随机存取存储器等)可以存储在特定的SD存储节点208或特定的存储设备或SD存储节点208的空间上。物理硬件存储器资源208的类型的示例可包括(但不限于)跨多个硬盘驱动器(和/或闪存驱动器)设备的卷文件系统池;NRAM、MRAM、FRAM、PRAM和/或其他类型的NVRAM;NVMe存储器,仅举几个示例。另外,如果需要,一些容器可以绑住到相应的SD存储节点208和/或SD存储节点208的特定存储设备或存储区。SD存储服务218可以改变、更新或以其他方式管理一个或多个物理硬件存储器208,以便在需要时,例如由于磁盘或其他类型的错误、针对由于计算平台208中的可用物理存储器的添加/扩展的调度维护等,支持SDCS 200的逻辑存储资源。
仍然类似地,SD联网服务220可以控制和管理由逻辑过程控制系统245使用的逻辑或虚拟网络,其可以由SD联网服务220跨节点208实现。例如,SD联网服务220可以控制和管理计算平台208的联网和硬件资源,以支持包括在逻辑或虚拟过程控制系统245中的逻辑联网功能,诸如虚拟接口、虚拟交换机、虚拟专用网络、虚拟防火墙规则等,以及支持逻辑过程控制系统245的各种容器或容器映像之间的所需联网。当逻辑过程控制系统245服务于工业过程工厂10时,SDCS 200的逻辑和物理部件的定时和同步以及它们之间的联网是极其重要的,因为遗漏和/或丢失的消息或通信可能导致工业或物理过程变得不受控制,这继而可能导致灾难性后果,例如溢出、气体泄漏、爆炸、设备丢失以及在一些情况下人员生命的损失。幸运的是,SD联网服务220响应于SDCS 200的关键过程I/O定时和同步,使得可以以及时和确定的方式可靠地传递通信(并且具体地,去往/来自控制服务235的通信)。例如,SD联网服务220可支持数据中心集群208的时间同步在1毫秒内,以确保过程控制服务235、过程控制子系统238、I/O服务器242和SDCS应用层212的其他SDCS服务240、248之间的所需同步。
除了SD计算服务215、SD存储服务218和SD联网服务220之外,SD HCI操作系统210可以提供其他OS支持服务225,其可以经由API 228、232的集合访问并且由应用层212利用或访问以支持逻辑过程控制系统245。例如,其他SD HCI OS服务225可以包括服务生命周期管理服务、发现服务、安全服务、加密器服务、证书特许子系统服务、密钥管理服务、认证服务、时间同步服务、服务位置服务和/或控制台支持服务(在图2中均未示出),仅举几个示例。在本公开内容的其他部分提供了与OS支持服务225相关的这些其他过程控制系统的更详细的讨论。在SDCS 200的一些实施例中,一个或多个支持服务可在应用层212执行,例如作为其他SDCS服务240,而不是在软件定义网络层210作为OS支持服务225执行。
现在转到SDCS 200的应用层212,SD过程控制服务235集合提供逻辑过程控制系统245的过程控制业务逻辑。每个不同的控制服务235可以被配置有期望的参数、值等,并且可选地配置有其他控制服务235;配置的控制服务235的每个实例可以在相应的容器中执行;并且每个容器可以被分配(或绑住)以在相应的节点或集群上执行。因此,每个配置的控制服务235可以是逻辑或软件定义的控制实体,其在功能上可以被配置,并且可以以类似于传统的硬件实现的过程控制器设备、过程控制模块、过程控制功能块等的方式执行。然而,与传统的、硬件实现的过程控制器设备、传统的控制模块和传统的控制功能块不同,并且有利地,SDCS 200可以容易地复制相同配置的控制服务235的多个实例,以用于各种目的,例如性能、容错、恢复等。例如,控制器服务(其在其自己的容器中执行)可以被配置为执行控制模块服务(其在其自己的容器中执行),并且控制模块服务可以被配置为执行控制功能块服务集合(其中的每一个在其自己的容器中执行,并且其中的每一个可以被配置有相应的参数、值等)。这样,与配置的控制功能块服务集合相对应的容器集合可以嵌套在控制模块服务容器中,并且控制模块服务容器可以嵌套在控制器服务容器中。例如,出于性能负载平衡的目的,可以指派与所配置的功能块服务的集合相对应的容器的集合以在物理层处理器208的不同核心上执行。当负载改变时,可以移动一个或多个功能块服务容器以在不同的处理器核心、不同的处理器、或者甚至不同的节点上执行,以试图重新平衡负载;然而,被移动的功能块服务容器将仍然嵌套在控制模块服务容器之下,并且将相应地执行。
除了软件定义的控制服务235之外,SDCS应用层212可以包括其他类型的SDCS应用层服务240,例如但不限于操作员显示和接口、诊断、分析、安全例程、报告、数据的历史记录、服务的配置、容器的配置、与外部或其他系统的通信信息等。一般而言,能够在传统过程控制系统中配置并下载到传统过程控制系统的特定物理设备中和/或在传统过程控制系统的特定物理设备处实例化以在工业过程工厂的运行时期间执行的任何模块或过程控制系统相关功能或商业逻辑可以在SDCS200中逻辑地实现为在相应容器中执行的相应服务235、240。此外,任何容器化的SD控制服务235可以与设置在工业过程工厂的现场环境12中的相应的一个或多个设备(例如,过程控制现场设备60、62、70、80、90;用户接口设备和/或其他现场环境设备)和/或与相应的一个或多个用户接口/用户接口设备20a-20e通信连接,例如,经由SD联网层210,以在容器化的SD控制服务235的业务逻辑和/或通过接收方设备(或在接收方设备上执行的应用或服务)要求这样做时,在其间传输I/O数据和/或其他类型的数据。在一些情况下,不同的容器化的SD控制服务235可以与其他容器化的SD控制服务235和/或其他SDCS服务240通信连接(例如,经由SD联网层210、I/O服务器服务242、微服务总线等),以在它们各自的业务逻辑要求这样做时在它们之间传输数据。
SDCS 200的应用层212处的SD子系统238的集合提供逻辑过程控制系统245的虚拟或逻辑过程控制相关子系统。每个不同的SD子系统238可以由各自的容器提供或在各自的容器中执行。在一些情况下(图2中未示出),子系统238可以提供或包括一个或多个应用层服务,并且因此,由子系统提供的服务235、238的容器可以嵌套在子系统容器中。例如,历史记录子系统238可以包括读取服务、写入服务和搜索服务,其相应的容器嵌套在历史记录子系统容器中。在另一示例中,批次过程控制子系统238可以包括单元程序服务、配方服务及管理记录生成服务,其可以嵌套在批次过程控制系统容器内。通常,SD子系统238的集合允许容易地和一致地分组和/或管理SDCS控制服务235和其他SDCS服务240。在优选实施例中,SDCS 200的每个节点208托管SD子系统238集合的每个子系统的相应实例,例如,使得子系统服务近似地并且容易地可用于当前在每个节点208上执行的其他应用层服务235、240、248。因此,可以在每个节点208处执行的子系统238中的一个或多个的对应实例之间协调对其的改变(例如,在SD HCI OS 210的指导下)。这样,不仅SD子系统238的集合对在相同节点208上执行的任何SD服务235、240、248高度和近似地可用,而且在节点故障、节点部件故障或节点处特定子系统实例故障的情况下,可以容易地为逻辑过程控制系统245维护由SD子系统238的集合提供的功能。SD子系统238的示例包括,但不限于:连续过程控制、事件驱动过程控制、批次过程控制、基于状态的控制、梯形逻辑控制、历史记录、边缘连接、过程用户、警报、许可、事件、版本控制、过程配置和过程I/O,仅举几个示例。
例如,SD子系统238集合可以包括连续过程控制子系统。连续过程控制子系统可以包括控制服务235集合,其负责执行为连续生产和操作定制的过程控制。例如,由连续过程控制子系统提供的控制服务235可以执行模块化控制(例如,控制模块服务),其能够利用I/O分配来周期性地执行。可以在连续过程控制子系统内管理的控制系统实体(逻辑的和物理的)的业务逻辑可以包括(但不限于)控制器、I/O分配、控制模块、功能块、梯形逻辑和基于结构文本的控制算法,仅举几个示例。可以周期性地调度连续的控制模块服务,具有或不具有模块链。例如,连续控制模块服务可以形成执行链,使得用户定义的连续控制模块服务集可以以链式方式一个接一个地执行。连续控制模块服务链可以在模块服务链内包含的控制逻辑的尽力而为评估中以指派的(周期性)执行量执行。未链接的连续控制模块服务可以在相同的周期量期间相对于链接的连续控制模块服务并行地执行。
在另一个示例中,SD子系统238集合可以包括基于状态的过程控制子系统。基于状态的过程控制系统可以包括基于状态的控制服务235集合,其负责跟踪、指派和获取过程控制系统245作为整体的状态。一般而言,过程控制系统的基于状态的操作可以包括旨在自动或半自动地改变工厂基础设施内的过程单元集合上的过程(或其部分)的状态的操作。每个状态操作可以具有例如获取过程单元的当前状态、确定当前状态、分析当前过程状态和已知过程状态的记录的标准化之间的差异、以及驱动过程以实现过程状态的能力。
例如,基于状态的过程控制子系统可以自动地获取中间过程I/O或控制改变,以便将过程控制系统245的至少一部分从一个状态驱动到另一个状态。SDCS 200的状态可以被保存和恢复,其中状态之间的自动获取的转变遵守与过程安全性和过程收益性对应的边界条件。为了说明,在一个示例的方案中,为了安全地将过程单元A的状态驱动到已知状态B再到已知状态B',可以生成过程指令集合(例如,通过包括在基于状态的过程控制系统中的一个或多个应用层服务235),其中所生成的过程指令遵守过程安全限制,即锅炉单元的燃烧器必须小于200摄氏度。另外,由于通过使每时间段的燃料利用量减到最小以影响状态变化以及通过使与报告环境排放相关联的金钱收费减到最少可以保持收益性,所以自动获取的过程指令还可以遵守收益性约束,该收益性约束将燃烧器输出的变化限制到每秒1摄氏度,以便防止由于突然的骤燃而引起的环境排放,和/或防止燃烧器本身上的富油运行状况。
此外,基于状态的过程控制子系统可以提供应用层服务235,其识别过程工厂内的未知状态并解析未知状态。一般而言,当过程工厂I/O和过程标签处于偏离已知状态超过预定量的状态时,可能出现过程工厂的未知状态。另外或可替换地,当过程I/O或过程设备具有不可读或不确定的状态或值时,例如当传感器具有范围外的状态或传感器根本不通信时,可能发生未知的过程工厂状态。由基于状态的过程控制子系统提供的应用层服务可以记录过程控制系统245的各个部分和/或部件的最后已知过程状态,并将最后已知状态呈现给用户,以便与未知状态进行比较。然而,基于状态的过程控制子系统还可以包括应用层服务235,当包括在其中的过程设备没有通信但是仍然运行时,即,当除了与非通信过程设备相关联的那些之外的所有其他控制和I/O标签值与已知状态一致时,其估计过程单元的状态。这种情况的一个示例可以是不再连通的现场阀;然而,阀位置没有从最后已知的过程单元状态改变。包括在基于状态的过程控制子系统中的应用层服务235可以确定这种情况,因为所有其他过程I/O和传感器标签仍然报告给定状态的有效过程值,所以可以估计现场阀位置处于先前报告的已知状态。状态可视化工具可以示出估计的状态和实际过程值之间的差异以警告用户,例如,使得维护任务将系统带到已知的记录的可证明(例如,未估计的)状态。
此外,基于状态的过程控制子系统可以提供应用层服务235,其自动地帮助用户创建和保存状态定义。一般而言,过程状态可以由用户定义,通常通过参考状态转移图。为了帮助用户创建状态定义,由基于状态的过程控制子系统提供的应用层服务235可以通过采用正在运行的过程或数字双生系统的当前值并将那些值处理到例如由用户定义的特定命名状态的状态范围中,来自动创建状态定义。例如,如果工厂过程被关闭,则由基于状态的过程控制子系统提供的应用层服务235可以通过基于当前读取的过程I/O和设备标签值创建状态范围来创建标记为关闭状态的状态定义。可以记录发生的偏差(无论是自主生成的还是有意插入的),且可以创建状态范围以捕捉那些偏差作为状态定义的一部分。例如,当在数据收集时间段期间由于振动或10%的温度而发生水平偏差时,由基于状态的过程控制子系统提供的自动状态定义创建应用层服务235可以为该过程值生成+/-10%的范围,以定义为给定过程状态定义的验证范围。过程状态定义可以使用当前过程值从运行过程自动导出,或者可以基于由综合过程历史记录装置指示的给定状态的特定时间段导出。
在另一个示例中,基于事件的过程控制子系统可以包括应用层控制服务235集合,其可以基于一个或多个事件的发生而被触发执行。例如,基于事件的控制模块服务可以在I/O条件达到某个值或状态时执行。控制模块服务执行链也可以基于事件被触发。此外,各种控制模块服务和/或控制模块服务链可以被配置为当事件超时发生时执行,例如,当控制逻辑主要是事件驱动的并且触发事件未能在特定时间段内发生时。在这些情况下,在实施例中,周期性调度器可以在事件超时已经发生之后执行控制模块服务和/或控制模块服务链。SDCS 200内的其他事件可以触发各种控制模块服务的执行,其中其他事件可以包括诊断事件或条件、过程下载改变或其他SDCS事件。
在另一个示例中,批次过程控制子系统可以包括应用层控制服务235集合,其执行批次控制及对监管项目的跟踪(例如,为了政府可追溯性)。由批次过程控制子系统提供的应用层控制服务235可以提供例如单元程序、配方、阶段过渡等等。此外,由批次过程控制子系统提供的应用层控制服务235可以管理与所生成的批次过程控制有关的监管记录。
SDCS子系统238可包括历史库子系统,其提供应用层服务240集合以记录软件定义控制系统200内的过程I/O和事件的时间序列数据。例如,由历史库子系统提供的各种应用层服务240可以出于记录目的订阅过程I/O和/或事件数据。由历史库子系统提供的其他应用层服务235可以包括源时间戳记服务、时间压缩服务(例如,其可以记录恒定值一次并且相应地更新时间范围)、传统的时间序列数据库特征等。所记录的历史数据可被复制并可被SDCS 200内的所有节点208使用。此外,在实施例中,历史数据可以按照源子系统(例如,生成历史数据的服务或子系统)、生产资产、生产标签、SDCS数据路径和/或按照任何其他期望的类别来分类。
另外或可替换地,SDCS子系统238集合可以包括边缘连接子系统,其可以经由相应的应用层服务240集合提供边缘协议集合,该边缘协议允许过程控制数据被发送到过程控制系统外部的各种第三方部件以及从各种第三方部件接收过程控制数据。这种边缘协议的示例包括OPC-UA和MQTT,仅举几个示例。边缘连接子系统可以包括一个或多个应用层服务240,其提供到SDCS 200的云连接,其中基于云的应用可以支持各种功能,诸如针对工厂状态和资产健康监视工业过程工厂以及其他类型的功能。由边缘连接子系统提供的至少一些应用层服务240可以生成SDCS 200和相应的过程I/O数据的逻辑表示,作为所使用的边缘协议的特定数据模型。当需要时,这种数据模型允许对所选择过程数据的安全的第三方访问。
在一些实施例中,SDCS子系统238集合包括诊断子系统,其可提供应用层服务240集合,用于从各种其他SD应用层服务235、240、248;从各个其他SD子系统238;从节点208;以及从SDCS200的SD联网层部件210收集和提供诊断数据。
SDCS子系统238集合可以包括过程I/O子系统,其提供应用层服务240集合,以管理过程控制系统245内的I/O连接和过程I/O的配置。如前所述,在实施例中,过程I/O子系统可以提供I/O服务器服务242。
SDCS子系统238集合可包括过程用户子系统,其提供应用层服务240集合以在用户登录到SDCS 200时验证和/或确认用户证书。另外,过程用户子系统的服务240可以向其他服务235、240、248提供用户信息,例如用于授权。如果需要,可以在数据中心集群208内复制用户的数据。
另外,SDCS子系统238集合可包括报警子系统,其提供应用层服务240集合,用于维护SDCS200内的报警的定义、一个或多个状态。警报可以包括例如过程警报、硬件警报、维护警报、单元警报、联网层警报、I/O警报、硬件资产警报、软件资产警报、诊断警报等。
在一些实施方式中,SDCS子系统238集合可包括许可子系统,其提供应用层服务240集合以验证或确保用户具有根据SDCS 200的许可级别的特权。许可证级别可对所有SDCS服务235、240和子系统238可用,并且可采取永久许可、时间订阅许可、基于消费的许可、远程许可(例如,来自云或来自专用许可证服务器的许可数据)等的形式。由实施许可的许可子系统提供的应用层服务240是特别重要的,因为当SDCS 200的许可期满或无效时,SDCS 200可能正在运行对人类健康关键或有害的过程。在这样的情况下,许可实施服务可以防止未经许可的活动发生,同时确保许可实施不会导致对用户不安全的环境。例如,在实施例中,当SDCS 200变为未经许可时,所有面向用户的应用、操作员图形和工作站可以覆盖有水印或半透明横幅文本,显示系统已经变为未经许可,并且除了由控制子系统提供的服务之外的所有服务都可以拒绝对其的任何改变或修改。这样,可以减少或停用一些许可的功能,而同时确保过程执行不会变得不受控制或危险。
为了管理许可,在实施例中,许可子系统可以包括应用层服务240,其仅提供单个主要管理员控制台会话或用户会话,其被允许相对于基于许可的限制来控制工厂操作;可以阻止所有其他控制台和/或用户会话避免影响任何用户发起的改变。这样,许可子系统可以提供应用层服务240,其提供了一种机制,以确定仅一个具有管理员特权的会话(例如,一次)能够在未许可状态下执行控制操作。例如,如果活动的管理员控制台或会话发生故障或变得不响应,则许可子系统可以允许随后的活动的管理员会话来控制工厂操作。可以阻止所有其他控制台会话和用户会话避免对过程控制系统进行改变,直到已恢复许可之后。
此外,在实施例中,许可子系统可以提供应用层服务240,其被配置为向制造商系统远程报告许可状态和/或活动,例如用于实施和/或法律补救。在制造商不提供远程报告的配置中,许可子系统可以经由一个或多个应用层服务240维护所有许可相关事件的记录日志以供将来获取。
SDCS子系统238的集合可以包括分布式事件子系统,其提供应用层服务240集合以跨SDCS200的所有节点208分布所生成的事件(或其通知)以及指示在相应事件源处的相应发生时间的对应时间戳。以这种方式,可以在所有节点208上提供一致的记录保持。
另外,SDCS 200的每个节点208都可以包括配置子系统238的实例,其中配置子系统238在配置子系统238提供的配置数据库中存储SDCS 200执行的控制服务(例如所有控制服务235的)的配置。因此,当修改和保存控制策略(例如,作为相应的更新的控制服务235)时,配置子系统可以经由相应的应用层服务240,相应地更新配置数据库内的相关联的配置。当配置数据库的相应实例被存储在每个节点208处时,SDCS 200跨SDCS的所有节点提供配置数据库的容错。这样,对数据库的写入(例如,由配置子系统提供的配置数据库写入服务执行)可以是跨整个SDCS的所有容错实例的原子(atomic)。即,直到所有节点208处的配置子系统的所有容错实例都已经接收并处理了写操作,数据库写事务才完成。原子写入对被访问的项目或特定配置可以是粒度化的。这样,当正在写入数据库内的一个实体时,也可以以多线程方式写入(例如,在相同或重叠的时间)数据库内的其他实体,因为同步锁定机制范围可限于正被写入的每个项目或对象(条目)。此外,锁定和解锁操作可以在配置数据库的所有实例上是原子的,使得直到在配置数据库的所有实例处的对象的所有副本都被锁定,才认为获得对象锁定是成功的。此外,配置子系统可以提供一个或多个应用层服务240以管理配置数据库的版本控制。例如,版本控制服务可以跟踪配置数据库的改变、改变何时发生、以及登记改变的各方。
来自配置数据库的读取(例如,由配置子系统提供的配置数据库读取服务执行)可以来自配置数据库的单个本地实例。然而,在一些情况下,数据库读取请求可以分布在多个节点208之间,例如,使得大的读取请求可以被分段并且结果可以以并行方式从多个节点208提供。
如前所述,SDCS 200的I/O服务器服务242可以包括在过程I/O子系统或另一子系统238中。可替换地,I/O服务器服务242可以是在其自己的独立子系统中的SDCS服务240,或者不与任何子系统相关联。无论如何,I/O服务器服务242通常作为负责在逻辑过程控制系统245的端点之间传送I/O数据(以及在一些场景中,其他类型的数据)的服务来操作,例如,从现场设备到应用层服务235、240、248(诸如控制器、操作员接口、诊断、分析、历史库或第三方服务)的实例化的容器映像;从应用层服务235、240、248的实例化容器映像到现场设备,从控制服务235的实例化容器映像到另一类型的SDCS服务240(例如,操作员接口、诊断、分析、历史库、第三方服务等)的另一实例化容器映像;等等。例如,I/O服务器服务242可以通信地耦合相应端点,并且使用任何合适的数据递送或数据传输范例在其间传输数据,包括请求/响应、发布/订阅等。
这样,I/O服务器服务242可以由其他应用层软件部件235、238、240、248访问以用于数据传送或数据递送的目的,并且I/O服务器服务242可以利用API 228,由此例如经由SDHCI OS支持服务215-225致使I/O数据和/或其他类型的数据传送。在一些情况下,I/O服务器服务242可以使得数据经由微服务总线传输。实际上,I/O服务器服务242用作逻辑或API网关,其使得在SDCS200的容器之间路由过程I/O和/或其他类型的数据,并且使得在SDCS200的容器和部署在工业过程工厂10的现场环境12中的设备之间路由过程I/O。有利地,I/O服务器服务242可以自动管理过程控制服务和子系统容器的容错和服务质量,以驱动工业过程输出,如在本文其他部分更详细描述的。
此外,在SDCS 200的应用层212,传统过程控制系统的至少一些物理过程控制设备或部件(例如,控制器、安全逻辑解算器或设备、数据存储设备、边缘网关等)可以在逻辑过程控制系统245中逻辑地实现为在相应容器中执行的相应服务235、240或子系统238。如果需要,通过用控制例程、其他应用层软件部件212、参数、参考值、列表、和/或其他数据配置逻辑设备,可以以类似于它们的物理对应物的方式配置过程控制设备或部件的这种逻辑或虚拟实例。例如,特定的逻辑边缘网关服务可以被配置有白名单和到特定逻辑数据二极管服务的连接,控制器服务可以被配置有若干控制模块等。可以例如经由相应的设备标签或标识在逻辑过程控制系统245内标识所配置的逻辑或虚拟过程控制设备或部件(例如,过程控制设备或部件的容器实例),并且可以经由相应的设备信号标签或标识符在逻辑过程控制系统245内标识由过程控制设备的所配置的逻辑或虚拟实例接收和生成的相应信号。
更进一步,SDCS 200提供SD应用层212内的容器,以用于表示和/或逻辑上组织工业过程工厂10的物理和/或逻辑区域、地区和部件。例如,单元、区域等可以由相应的容器表示,并且对应于每个单元、区域等的物理和/或逻辑部件的容器可以嵌套在它们相应的(多个)组织容器内和/或绑住到它们相应的组织(多个)容器上。例如,工业过程工厂10的分馏区容器可以包括脱丙烷器单元容器和脱丁烷器单元容器;即,脱丙烷器单元容器和脱丁烷器单元容器可以嵌套在分馏区域容器内或绑住到分馏区域容器上。在脱丙烷器单元容器内,控制器容器可以配置有控制例程容器,该控制例程容器被配置为对来自物理测量现场设备的流速测量结果进行操作,该物理测量现场设备设置在过程工厂10的现场环境12内的物理脱丙烷器的输出端口处。基于接收的流速测量结果,在配置的控制例程容器内执行的控制例程可以生成控制输出,控制器容器可以将该控制输出提供给为脱丙烷器的输出端口服务的阀的致动器,其中物理致动器和物理阀也设置在工厂10的现场环境12中。这样,在SDCS 200内,所配置的控制例程容器可以嵌套在控制器容器内或绑住到控制器容器上,并且控制器容器可以嵌套在脱丙烷器单元容器内或绑住到脱丙烷器单元容器上。控制例程服务容器可以配置有从现场设备接收的流速测量结果的信号标签和被输送到致动器的控制输出信号的信号标签,并且如果需要,控制器服务容器可以进一步配置有物理测量现场设备和物理致动器的设备标签或标识。例如,关于配置控制服务235,用户接口服务容器可以与过程控制配置服务容器通信或执行过程控制配置服务容器,用户可以经由该过程控制配置服务容器来配置控制器服务和控制例程服务以包括期望的标签、标识符、值和(多个)控制例程。
在SD应用层212,SDCS 200还包括软件定义存储实体或部件213,其为SD应用层212的服务和子系统235-248提供抽象数据存储器(和对其的访问)。例如,历史库数据库、配置数据库、和其他类型的过程控制系统数据库和数据存储实体、以及在执行期间由各种过程控制应用服务235-248使用的临时存储器可以由SD定义存储实体213提供。SD存储数据库、区域、设备等可以虚拟化或可以是逻辑存储实体或部件,其可以由SD HCI操作系统210指派或分配(以及可以重新指派和重新分配)给计算平台208的节点的各种存储资源。例如,可以在多个节点208的硬件存储器资源上实现单个SD定义的逻辑数据库。另外,SD HCI操作系统210的SD存储服务218可以基于SD存储实体或部件213以及可选地SD应用层212的其他部件的性能、资源和配置需要,在SDCS应用层212向由节点208提供的不同存储资源指派/重新指派和重新指派/重新分配SD存储实体213。
现在回到SDCS 200的软件定义联网层210,为了易于讨论,图2示出了与其他SDHCI OS服务215-220、225的描述分开的特定SD HCI OS服务,即SD协调器服务222。一般而言,SD协调器服务222将(例如,应用层控制服务235、子系统238、第三方服务248和其他SDCS服务240的)容器映像实例化到在相应硬件和/或软件物理计算资源208上运行或执行容器过程,以及指派各种SD数据存储实体驻留在相应硬件存储和/或软件存储资源208上。例如,SD协调器222可以实例化和指派各种实例化的容器映像以在各种特定的硬件和/或软件计算资源208集合上执行和/或利用这些特定集合,该计算资源208集合可以是单个节点的资源,或者可以是两个或更多个节点的资源。此外,SD协调器222可以分配各种SD数据存储实体或部件213以驻留在单个节点、多个节点等的物理层存储资源208上,例如,为了驻留容器的访问的容易和速度,出于冗余目的,为了平衡物理平台上的存储器使用等。在这样做时,SD协调器服务222不仅建立运行的容器过程,而且例如经由QoS配置服务252、容错服务255、负载平衡服务258和由SD HCI OS210提供的可选的其他性能相关服务260来管理SDCS 200的运行的容器过程的容错、负载平衡、服务质量(QoS)和/或其他性能方面。这样,SD协调器服务222可由其他SD HCI OS服务215、218、220、225调用或访问,并且SD协调器服务222可进而调用或访问一个或多个性能相关的服务252-260。一般而言,SD协调器服务222将资源分配给逻辑过程控制系统245的容器和SD数据存储实体,使得容器能够至少在尽力而为性能级别上高效地和安全地操作,例如控制工业过程。
为此,SD HCI OS 210的性能相关服务252-260可以在运行时期间监视性能参数、资源使用和/或标准,检测发生和/或预测发生的任何关联条件,并且提供和/或实现SD应用层软件部件(例如容器)212到计算平台208的硬件和/或软件资源的指派的任何改变。因此,在工业过程工厂10的运行时期间,当各种期望的和/或不期望的硬件和/或软件条件出现并被检测到时,SD协调器服务222响应性地调整各种节点208的硬件和/或软件资源到实例化容器映像的分配,以维持(或试图维持)目标或尽力而为的性能级别和操作的保真度。可以使SD协调器222修改容器212和节点资源208之间的分配和/或指派的检测到的条件可以包括例如硬件故障或失效、软件故障或失效、特定节点的过载、各种联网部件的增加或减少的带宽、节点和/或节点集群的添加或去除、硬件和/或软件升级、容器的绑住和/或解绑、诊断、维护、和可以使硬件和/或软件资源暂时不可用于运行时使用的其他例程等。SD协调器服务可以采取的可能的响应和/或减轻管理的动作可以包括例如重新指派容器以使用不同的软件和/或硬件资源(在某些情况下,在不同的节点上)来执行、启动和/或停用软件和/或硬件资源、改变各种容器对各种软件和/或硬件资源的访问的优先级等。在本公开内容的其他部分提供SD协调器服务222的更详细讨论。
因此,一般来说,SDCS应用层212的服务、子系统和其他软件部件(例如235、238、240)可以在单独的容器级别和在集合级别(例如,在子系统级别、单元级别、区域级别和/或作为整体的过程控制系统245)确定、定义或指定逻辑过程控制系统245的处理、容器化、联网和存储需求。通过API 228(并且在一些配置中,还通过HCI适配器层230和API 232),SDHCI OS 210、其支持服务215、218、220、222、225、及其SD协调器服务222管控和管理节点208的硬件和软件资源以支持那些需要。例如,在一些实施例中,SD协调器222可以使得特定控制容器235或特定其他SDCS服务容器240的不同实例在不同节点208上执行,例如以用于SDCS 200的容错性、服务质量和/或其他性能标准。有利地,当逻辑过程控制系统245的需求随时间动态地改变时,SD HCI OS支持服务215、218、220、222、225和/或SD协调器222可以例如以响应和/或预测的方式修改、改变和调整节点208的硬件和软件资源的使用。例如,当逻辑过程控制系统245创建在附加容器中执行的控制服务235的附加实例时,SD HCI OS支持服务215-225可以响应地(经由APIS 228以及可选地HCI适配器230和API 232)指派新创建的容器以在对应节点上执行,可以在节点之间重新平衡现有容器,可以指派特定硬件存储器资源以支持附加容器的逻辑存储器资源需求,可以调整由节点208使用的路由表以支持新创建的容器的逻辑路由需求等。在另一个示例中,当特定集群C2需要退出服务时(例如,预期出于维护目的或意外地由于雷击),SD HCI OS支持服务215-225可以根据逻辑过程控制系统245的当前需要和其他集群的硬件和/或软件资源的可用性,将当前被指派为在集群C2上执行的容器预先重新指派给其他集群,并且SD HCI支持服务215-225可以相应地调整集群208所使用的路由表,使得即使当集群C2退出服务时也保持所述容器的执行的连续性。这样,SDCS联网层210基于检测到的条件,自动、动态和响应性地确定、发起和执行对计算平台208的节点的硬件和软件资源到不同SD应用层软件部件212的分配的改变,所述条件例如是各个逻辑和/或物理部件或其组的性能的改进、各个逻辑和/或物理部件或其组的性能的下降、故障发生、逻辑和/或物理部件的故障、配置改变(例如,由于用户命令或由于SDCS200的服务的自动重新配置)等。因此,对于SDCS 200,用户或系统管理员不需要规定或管理节点208的硬件和软件资源的重新分配以支持SDCS200或其改变。实际上,在大多数情况下,用户或系统管理员可能不知道节点208的硬件和/或软件资源的重新分配,这是由SDCS 200响应于SDCS 200的条件和部件的改变而自动执行的。
虽然图2表示支持SDCS 200的计算平台208,但是在一些配置中,计算平台208可以支持多个SDCS。多个SDCS可共享计算平台208的硬件和/或软件资源的集合,或者可在多个SDCS之间划分计算平台208的硬件和/或软件资源。在多个SDCS之间共享硬件和/或软件资源的实施例中,SDC HCI操作系统210可以管理多个SDCS的应用层服务之间的共享资源。
另外,在一些实施方式中,SDCS 200可实现各种SD应用服务235、240、248、整个SD应用层212、各种SD支持服务215-225、252-260和/或整个SD联网层210的数字孪生。即,目标部件/层的数字孪生可以与计算平台208之上的活动目标部件/层一致地执行,并且由此从工业过程工厂的现场环境接收运行时数据,并且相应地以与活动目标部件/层相同的逻辑、状态、定时等操作。然而,阻止由数字孪生生成的I/O和其他类型的数据被传送到现场环境。以这种方式,如果活动目标/部件发生故障,则可以简单地启动所提交的目标/部件的数字孪生以无缝地维持工业过程工厂的运行时操作。
此外,在一些实施方式中,SDCS 200可实现对各个SD应用服务235、240、248、对整个SD应用层212、对各个SD支持服务215-225、252-260和/或整个SD联网层210的仿真或改变。即,目标部件/层的仿真可以与计算平台208之上的活动SDCS部件/层一致地执行,并且由此从工业过程工厂的现场环境接收运行时数据,并且相应地例如以与活动目标部件/层相同的逻辑、状态、定时等或者以仿真的测试逻辑、状态、定时等进行操作。然而,阻止由仿真生成的I/O和其他类型的数据被传送到现场环境,并且仿真可以被暂停、加速、减速、馈送测试输入,并且以其他方式被管理以观察行为并且对仿真的部件/层进行修改。因此,在SDCS 200的仿真部分得到批准后,可以简单地启动仿真部分以便在工业过程工厂的运行时操作期间使用,而不需要暂停或使SDCS 200的部分退出服务来这样做。
此外,注意,尽管与SDCS 200关联的物理层208在上文中被描述为通过使用物理数据中心集群C1-Cx来实现,但是在一些实施例中,物理层208的至少一部分可以实现为虚拟化物理层208。例如,数据中心集群C1-Cx(或其子集)可以被实现为虚拟机,例如,其在云计算系统中执行。这样,HCI适配器层230可以将SD应用层、SD存储层、和SD联网层210与虚拟化物理层208连接。
从以上描述中可以明显看出,并且本领域技术人员可以理解,诸如本文描述的工业过程控制系统可以并且通常是极其复杂的系统。它们可能涉及必须以协调方式操作以控制过程的成百上千或甚至数万个离散但互连的现场设备。由设备的绝对数量带来的复杂性被调试和维护系统的复杂性倍增,调试和维护系统包括创建和维护连接所有设备的有线和无线网络、创建和维护基于来自现场设备的测量结果来操作以控制现场设备的控制模块、确保足够的资源(网络带宽、处理能力等)可用于确保系统的设计容限(网络延迟、同步消息收发等)被连续满足等。
在所描述的软件定义控制系统中实现容器有助于以多种方式有效地管理和操作工业过程控制环境。如下面将进一步描述的,容器化便于更直观地组织控制资源,其可以模仿过程工厂中设备的物理或逻辑组织,以及控制过程工厂中设备的过程和计算资源的物理或逻辑组织。容器的实现还促进了关于维护服务质量参数以及创建和维护故障冗余的无数可能性。
图3是示出容错和负载平衡的原理的框图。在图3中,两个计算节点300和302为SDCS提供计算、存储和联网资源。如应当理解的,两个计算节点300和302中的每一个可以包括一个计算节点或多个计算节点(未示出),并且每个计算节点又可以包括一个或多个处理器(未示出),每个处理器可以具有一个或多个处理器核心(未示出)。在实施例中,协调器222根据特定系统的要求(例如,根据特定容器或过程控制工厂的要求)、和/或根据负载平衡和容错的一般要求(例如,当没有指定过程控制工厂的特定要求时),管理各种容器的实例化以及分配给各种容器的资源。
更详细地,容器协调器服务(即,协调器222)负责将容器映像实例化到可用计算资源上的运行的容器过程中。协调器222负责确保每个容器被正确地建立,并且还管理与容器有关的容错和负载平衡问题。通过采用水平缩放方法来创建容错,由此针对多输入、单输出机制来实例化容器的多个副本。在一些实施例中,协调器222从容器的多个冗余副本中选择“活动的”容器。如本文所使用的,术语“活动的”是指多个冗余容器中的一个,其被选择使得所选容器的输出将输入驱动到另一容器、控制现场设备等。例如,在实例化分布式报警子系统容器的多个冗余副本的情况下,协调器222可以选择冗余容器中的哪个是活动的容器。作为另一个示例,在实例化I/O服务器容器的多个冗余副本的情况下,协调器222可以选择哪个I/O服务器容器是活动的容器。在这种情况下,每个冗余I/O服务器容器可以从过程工厂中的现场设备接收过程数据,并且可以从一个或多个控制器容器接收输出,但是仅来自活动的I/O服务器容器的输出将经由物理I/O层被传输到过程工厂中的现场设备,并且每个控制器容器将仅从活动的I/O服务器容器接收过程数据。
服务容器的容错副本之间的通信可以(并且在某些情况下是必需的)传输和建立状态信息。协调器222负责维护容错部署中的特定服务容器的列表,其中列表顺序表示要接管的下一个可用容器(活动的容器在列表的顶部)。该列表随着数据中心内的条件的改变而不断更新。在主动通知活动的服务容器将要退出服务时,协调器222可以对要接管的下一个可用容错副本做出快速决定。在未计划的活动的容器退出服务(例如,由于电源故障)时,容器协调器可具有超时延迟以检测何时发生了这种“硬”故障,并且可移动以启动下一可用服务容器。在检测到多个活动的状态时,服务输出的接收者将在短时间段内接收多个输出。接收服务将通知协调器222所接收的双倍输出,据此协调器222将重新配置(或者如果重新配置失败则销毁和重新创建)旧的活动的容器,并将其实例化为非活动的容器。在此期间,接收容器将默认为最后已知的良好信息源,直到消除重复的信息源。
虽然在一些实例中,协调器222负责选择活动的容器,但是在某些情况下,诸如在I/O服务器容器的情况下,容器本身可以基于各种参数来选择活动的容器,如下面关于I/O服务器容器所描述的。
如本文所使用的,短语“负载平衡”是指针对在系统上运行的过程(例如,容器)使用计算、存储器和/或通信资源,使得处理器核心、处理器、计算节点和/或服务器满足期望的服务质量度量。负载平衡于是在一些实例中包括均衡计算、存储器和/或通信资源的使用,并且在一些实例中确保满足最小QoS参数(即,确保某些信号的最大网络延迟不超过编程的值,确保某些过程的最大处理延迟不超过编程的值,确保特定值的总延迟不超过编程的值,对于某些过程确保足够的存储器资源等)。
在实施例中,诸如最大网络延迟、最大计算延迟等的负载平衡参数可以被编程为容器中的一个或多个的参数,和/或被编程为在容器内执行的特定服务的参数,和/或被编程为在容器内执行的服务处接收的或从其发送的特定值的参数。负载平衡参数也可以在系统级上设置,以提供全局参数或提供可以被特定容器或服务内设置的参数取代的默认参数。协调器222的QoS配置服务252可提供接口以便于在全局、默认、容器和/或服务级别上配置QoS参数。QoS配置服务252还可以读取编程到各种容器和/或服务中的QoS参数,以便确保参数由协调器222实现和维护。
在实施例中,在协调器222内操作的容错服务255在SDCS内保持容错。如本文所使用的,短语“容错”是指冗余过程和/或服务的创建(例如,通过多个容器的创建),无论是否在不同的处理器核心、不同的处理器、不同的计算节点/服务器上实例化,并且包括其中协调器222(即,经由容错服务255)确保一个或多个冗余容器在由单独的电源供电的计算资源上实例化以确保电源的故障不影响特定容器的所有操作副本的实施例。在实施例中,协调器222本身可被实例化为冗余部件,以确保即使协调器222的活动的实例由于处理器故障、电源故障等而异常终止,容错也能持续。
再次参考图3,若干逻辑功能被示出为跨两个服务器300和302实现。逻辑功能包括第一控制器(即,控制相关联的过程工厂的第一部分的第一组设备的控制器)304、第二控制器(即,控制相关联的过程工厂的第二部分的第二组设备的控制器)306、I/O服务器308、和历史库310。逻辑功能304-310中的每一个由在一个或多个对应容器内执行的相关联的服务实现。为了简单起见,此处的描述将在容器内执行的这些服务简称为“容器”,但是应当理解,图3中的每个“容器”都在执行相关联的服务,该服务被配置为相对于其他容器、服务和/或过程控制现场设备进行操作。例如,每个控制器容器具有在其中执行的控制器服务,该控制器服务被编程为控制其相关联的设备集合。在一些实施例中,控制器服务可以用一个或多个控制模块服务编程,并且每个控制模块服务可以用一个或多个控制功能块服务编程,其中每个控制模块服务和每个控制功能块服务可以在相应的容器内执行。
图3示出了逻辑控制器304包括三个控制器容器304A、304B和304C。在与其他控制器容器304A-304C中的至少一个不同的计算资源(即处理器核心、处理器、计算节点或服务器)上实例化控制器容器304A-304C中的每一个。即,控制器容器304A在与其他控制器容器304B和304C(在服务器302上实例化)不同的服务器(服务器300)上实例化;控制器容器304B在与控制器容器304A(在服务器300上实例化)不同的服务器(302)上并且在与控制器容器304C不同的处理器或处理器核心上实例化;并且控制器容器304C在与控制器容器304A(在服务器300上实例化)不同的服务器(302)上以及在与控制器容器304B不同的处理器或处理器核心上实例化。图3还示出了在服务器300和302上以类似方式实例化的三个控制器容器306A、306B和306C,分别在服务器300和302上实例化的两个I/O服务器容器308A和308B,以及分别在服务器300和302上实例化的两个历史库容器310A和310B。
参考逻辑控制器304,应当清楚的是,在给定的时刻,控制器容器304A-304C中只有一个可以是活动的的(即,向受控设备提供控制输出),通过在不同的计算硬件上实例化控制器容器304A-304C,控制器容器304A-304C中的任何一个上的故障不会导致失去对由逻辑控制器304控制的设备的控制。在控制器304A-304C中的一个活动的控制器上发生故障时,剩余的两个控制器中的一个将成为活动的控制器。因为所有三个控制器容器304A-304C都执行相同的控制算法并且接收由活动的控制器接收的所有数据,所以由每个控制器容器304A-304C提供的输出是相同的,并且当活动的控制器经历故障时,可以从控制器304A-304C中选择新的活动的控制器。此外,如果活动的控制器上的故障是由其上实例化了控制器容器的服务器上的电源故障引起的,则如果控制器容器304A-304C中的至少一个在使用不同电源的计算资源上被实例化,那么控制器容器的至少一个其他实例可用于作为活动的控制器容器来接管。
在实施例中,协调器222可监视实例化的各个容器的QoS度量。作为示例而非限制,QoS度量可包括处理器负载、输出延迟、网络延迟和网络带宽。如果QoS度量指示容器之一或在容器中执行的服务正变得不稳定,或者如果QoS度量指示容器之一未在为容器或服务指定的要求内执行,则协调器222可实例化容器的另一实例并终止不稳定的容器实例,并且在这样做时,在用正常执行的容器替换执行不佳的容器的同时维持相同的冗余级别。在实施例中,新实例化的容器可以在与较差执行的容器不同的硬件(不同的处理器、不同的服务器等)上实例化,这取决于例如QoS度量是否指示容器由于容器在其上被实例化的硬件而正在较差地执行。同时,如果QoS度量指示对一个硬件资源利用不足,而对另一个硬件资源利用严重,则负载平衡服务258可以使协调器222将一个或多个容器从利用严重的资源移动到利用不足的资源(即,在利用不足的资源上创建新的容器,并在利用严重的资源上终止容器)。
再次参考图3,协调器222在两个服务器300和302上实例化了四个逻辑功能304-310。如前所述,控制器#1容器304A的一个实例在第一服务器300上,而控制器#1容器304B和304C的两个实例在第二服务器302上。同时,协调器222通过在第一服务器300上实例化三个控制器#2容器(306A和306B)中的两个,并仅在第二服务器302上实例化控制器#2容器(306C)中的一个,来“平衡”两个服务器的负载。两个容器308A和308B分别在第一服务器300和第二服务器302上执行I/O服务器服务。类似地,两个容器310A和310B分别在第一服务器300和第二服务器302上执行历史库服务。
图4A示出了负载平衡概念。在图4A中,五个容器312、314、316、318、320在三个计算节点322、324、326上实例化。图4A中所示的每个容器312、314、316、318、320执行不同的服务。尽管图4A未示出冗余容器,但应理解,此类冗余可存在于任何所描述的实施例中,即使未示出以便针对所描述的概念简化(多个)附图。图4A示出了在第一计算节点322上实例化的控制器容器312和连续控制子系统容器314、在第二计算节点324上实例化的分布式报警子系统容器316和I/O服务器容器318、以及在第三计算节点326上实例化的安全仪表系统(SIS)控制器容器320。
图4A示出了在第二计算节点324变得负载严重时(例如,在I/O服务器容器318消耗第二计算节点324的相当一部分资源的情况下),分布式报警子系统容器316可以从第二计算节点324“移动”到第一计算节点322,使得不维持I/O服务器容器318的QoS度量,使得不维持分布式报警子系统容器316的QoS度量,或者使得不维持第二计算节点324上的可用资源的最小量。在这种情况下,协调器222可在具有足够资源的另一计算节点(例如,在第一计算节点322上,如图4A中所示出的)上实例化容器316的第二实例316'。一旦新实例化的分布式报警子系统316'稳定,则协调器222就可以使容器316'成为活动的容器,并且可以终止在第二计算节点324上实例化的分布式报警子系统容器316,从而释放第二计算节点324上的资源。
还应当认识到,尽管冗余容器的非活动实例可能不在驱动服务的输出(例如,非活动控制器容器可能不在驱动过程),但是冗余容器仍然可以向系统的部分提供数据,只要冗余容器中的每一个所接收的数据是等效的。例如,虽然活动的控制器容器可以通过向在过程工厂中操作的过程控制现场设备提供控制信号来驱动过程,但是一个或多个冗余控制器容器可以向SDCS内的其他服务、例如向历史库服务提供数据。以这种方式,系统的性能负载可以跨冗余容器中的多个冗余容器分布,尤其是在那些冗余容器跨多个硬件资源分布的情况下。
SDCS 100还可被配置为包括“优先”容器(本文也称为“高优先”容器)。优先容器是正在执行高优先级服务的容器,并且可以由配置工程师在配置SDCS时指定,或者对于某些服务默认地指定。作为示例,被分类为安全等级的容器服务(例如SIS控制器)可以被普遍地指定为优先容器。关于负载平衡,优先容器可以是有保证的计算资源(例如,处理器资源、网络带宽、存储器、储存器等)。
这样,协调器222可以执行负载平衡以维持用于优先容器的保证资源。仍然参考图4A,SIS控制器容器320被示出为在第三计算节点326上实例化(加粗的容器边界在图中指示该容器是优先容器)。在实施例中,优先容器可以默认地在以其他方式卸载的计算节点(如图4A中所示)上、在以其他方式卸载的处理器核心上等操作,以便确保保证的资源可用。然而,只要保证的资源被提供给(多个)优先容器,就不需要优先容器在其上也没有实例化其他容器(有优先级或没有)的服务器、处理器或其他硬件部件上。
保证的资源可以由容器类型(例如,分层容器、控制器容器、I/O服务器容器)、服务类型(例如,I/O服务器、控制器、子系统、SIS控制器)、或单独的容器(例如,控制过程工厂的特定区域的控制器#1)来指定。不管指定优先容器的级别如何,优先容器的指定可以包括为这样的容器保留的资源类型和数量的指定。例如但不限于,可以为优先容器保证特定水平的处理器性能、最小量的系统存储器、最小量的网络带宽、最小量的储存存储器和/或最大传输延迟中的一个或多个。
图4B示出了优先容器的概念,并且还示出了协调器222的负载平衡服务258的附加能力。具体地,图4B示出了协调器222在实施例中可以向集群添加一个或多个计算节点、处理器和/或处理器核心和/或从集群移除一个或多个计算节点、处理器和/或处理器核心。图4B示出了第一计算节点328,其上实例化了控制器容器330、连续控制子系统容器332和分布式报警子系统容器334中的每一个。第二计算节点336在其上实例化了优先级SIS容器338和I/O服务器容器340。在图4B的所示系统中,I/O服务器容器340需要第二计算节点336的资源,其侵占了保证给优先容器338的资源,使得协调器222的负载平衡服务258释放用于优先容器338的资源。在所示出的示例中,协调器222通过向集群添加新的计算节点(即,第三计算节点)342来释放资源,并且在新的计算节点342上实例化I/O服务器容器340的复制容器340'。一旦新实例化的I/O服务器容器340'稳定,协调器222就可以使容器340'成为活动的I/O服务器容器,并且可以终止在第二计算节点336上实例化的I/O服务器容器340,释放第二计算节点336上的资源以满足用于优先容器338的保证的资源。
图5A中示出了容错的示例实施方式。在图5A中,第一计算节点344和第二计算节点346各自在其上实例化了控制器容器350A、350B、连续控制子系统容器352A、352B、分布式报警子系统容器354A、354B和I/O服务器容器356A、356B中的每一个。第三服务器348保持空闲。图5A示出了控制器容器350A变得不稳定或突然终止(由有差异的轮廓表示)。协调器222识别出容器350A是不稳定的或被终止的,确保剩余的控制器容器350B是活动的控制器容器,在第三计算节点348上实例化控制器容器350C的另外的冗余副本以保持冗余。
如果例如致使整个计算节点不可操作(例如,由于电源故障),则发生类似的过程。图5B示出了这种情况。在图5B中,第一计算节点358和第二计算节点360各自在其上实例化了控制器容器364A、364B、连续控制子系统容器366A、366B、分布式报警子系统容器368A、368B和I/O服务器容器370A、370B中的每一个。第三服务器362保持空闲。图5B示出第一计算节点358变得不可用,或者在任何情况下,所有容器364A、366A、368A、370A突然终止(由有差异的轮廓指示)。协调器222认识到第一计算节点358已经变得不可用,确保容器364B、366B、368B、370B是活动的容器,并且继续通过在第三计算节点362上实例化容器364C、366C、368C、370C的另外的冗余副本来确保所维持的冗余。
在实施例中,协调器222维护或访问列表、表格、数据库或其他数据结构,其保持跟踪在数据中心208上(或者,在任何情况下,在协调器222的范围内的数据中心208的部分)实例化的所有实例化的服务和容器。数据结构中的信息可以由例如在协调器222中执行的服务(例如,性能相关服务260)、由服务(例如,在HCI操作系统210中执行的软件定义服务和功能225)、由软件定义计算服务215、由软件定义存储服务218和/或软件定义联网服务220来填充。图6在表372中示出了协调器222在数据结构中维护或访问的信息的类型。通常,数据结构维护在数据中心中实例化的所有容器和服务的列表(列373),每个容器和服务是否是活动的容器或服务(列374),以及与每个容器或服务相关的各种信息和度量376。仅作为示例,信息和度量376可以包括以下各项中的一个或多个:多个电源中的哪个电源正在向每个容器或服务在其上实例化的资源供电的指示377;容器或服务在多个节点中的哪个节点上被实例化的指示378;节点的负载的指示379;在多个处理器中的哪个处理器上实例化容器或服务的指示380;处理器的加载的指示381;在多个处理器核心中的哪个处理器核心上实例化容器或服务的指示382,以及处理器核心的加载的指示383。
协调器222还可在比容器和服务级别更高的级别维护或访问数据结构跟踪信息。例如,协调器222可以访问或维护关于在每个集群、节点、服务器、处理器和/或处理器核心上和/或对每个集群、节点、服务器、处理器和/或处理器核心可用的计算资源、存储资源、和/或网络资源的量的统计数据,关于各个电源的稳定性(例如,电压稳定性、不间断电源的状态等)的统计数据,关于各个物理网络连接的延迟的统计数据等。协调器222可以使用数据结构372中的信息和/或跟踪更高等级信息的数据结构,来确定在任何给定时刻,每个冗余容器集合中的哪个冗余容器是活动的的(例如,表372中的列374),以及每个冗余容器集合中的哪个冗余容器是下一个最佳或下一个可用容器(表372中的列375)。以这种方式,协调器222可以在先前活动的的容器变得不稳定、呈现降级的性能或被终止的情况下立即使新的容器运行。
为了使协调器222实例化新的容器,出于负载平衡目的、容错目的或故障恢复目的,协调器222(以及被实例化的服务)部分地依赖于软件定义存储服务218。图7是更详细地示出软件定义存储服务218以及针对上下文描述HCI操作系统210和SDCS应用层212的一些其他部件的框图。如上所述,在SDCS应用层212中的容器内执行的应用程序(即,微服务)经由作为HCI操作系统210的软件定义联网220的一部分的微服务总线384进行通信。除了促进实例化的容器之间的通信之外,微服务总线384还促进容器和协调器222之间、容器和软件定义的存储器218之间以及协调器222和软件定义的存储器218之间的通信。
软件定义存储器218包括各种存储资源,包括三个配置数据服务,其被广义地分类为冷过程配置数据服务386(“冷PCDS”)、温过程配置数据服务388(“温PCDS”)和热过程配置数据服务390(“热PCDS”)。冷PCDS 386存储例如与软件定义控制系统100的启动配置有关的数据。存储在冷PCDS 386中的数据可以包括例如SDCS 100的冗余和容错要求、实例化哪些应用服务235、实例化哪些子系统238、实例化哪些其他SDCS服务和/或应用240、以及实例化哪些第三方应用248。另外,冷PCDS 386可以存储用于每个容器服务的启动配置。例如,当控制器容器的每个实例实施控制器服务时,控制器服务需要配置信息以利用控制模块服务或控制回路服务对控制器服务进行编程,以及对于控制器实施控制器要控制的过程工厂或过程工厂的一部分的控制而言所必需的其他信息。因此,通常由用户(例如,配置工程师)或制造商来设计冷PCDS 386中的数据,以便为每个服务提供专用于该服务的操作指令集。每个SDCS服务(容器)将向冷PCDS 386查询所存储的配置数据。在实施例中,将存储在冷PCDS386内的数据保存到专用于该服务的软件定义的盘卷。
温PCDS 388存储容器服务在启动时所需的数据,并且需要从服务的先前实例中或者在从服务故障中恢复时恢复操作状态。因此,存储在温PCDS 388中的数据可以包括每个实例化的服务的状态的状态信息、每个活动的实例化的服务的状态的状态信息等。作为示例,这种状态信息可以包括积分累加器值,其中配置随着时间在执行运行的数学积分,其快速改变,因此将不适合存储在冷PCDS386中。温PCDS 376在温重启应用的情况下处理快速改变的参数存储。结果,在实施例中,温PCDS388使用到映射卷的回写高速缓存来捕获快速变化的参数。
然而,在一些情况下,实例化的容器可能必须具有服务的确切运行状态的信息。例如,这可能是容器意外终止而没有可用于故障转移的冗余容器的情况。在需要服务的确切运行状态的这种情况下,数据可存储在热PCDS 390中,其捕获SDCS服务(即,容器)的确切运行状态,使得热PCDS390可代替微服务可用的传统RAM设施。存储在热PCDS 390中的数据通常保存到非常快的非易失性存储器卷,例如MRAM或NVMe驱动技术。新实例化的替换容器可以使用冷、温和热过程数据来更新配置,以从终止的前导容器接管过程操作。
在大型工业过程工厂中,通常利用并行过程流。即,生产产品的必要设备可以倍增许多倍,以生产相同的产品或产品的变型。因此,过程工厂经常被分成不同的物理层级和领域。例如,特定的设备组可以形成单元,该单元可以在过程工厂的物理区域内被复制多次,允许不同的产品流通过这些单元中的相应的单元,同时在过程工厂的特定区域内保持类似的设备组。类似地,存在逻辑层级,有时与物理层级相结合,以区分设备集合。例如,在批次控制的领域中,“过程小组(cell)”被定义为包括用于生产一个或多个批次的设备的设备逻辑分组。过程小组可以包括一个或多个单元,每个单元包括一个或多个构成该单元的设备模块。每个设备模块可以由一个或多个控制模块(例如,现场设备)组成。
在过程工厂10中,特别是在SDCS 100中,可以实现与协调器222有关的各种方法。一种方法可以包括:配置第一容器以包括在第一容器内执行的服务;以及指派所配置的第一容器以在多个硬件资源中的可用硬件资源上执行。在这样做时,第一容器可以被配置为控制在过程工厂10中运行的过程控制现场设备60、70、80、90。第一容器可以被配置为执行控制器服务,该控制器服务从现场设备接收数据,并根据所接收的数据确定一个或多个控制输出,并将一个或多个控制输出发送到多个现场设备。第一容器可以替换地被配置为执行I/O服务器服务。在其他实施例中,第一容器可以被配置为执行历史库服务、分布式报警子系统服务或诊断子系统服务中的任何服务。
指派第一容器在可用硬件资源上执行可包括指派第一容器在特定电源上执行。可替换地,可用硬件资源可被指定为特定数据集群、特定数据集群集合、特定服务器机架或特定服务器。在其他实施例中,可用硬件资源可被指定为特定处理器、特定处理器核心、特定存储器设备或特定存储器资源。
此外,在一些实施例中,该方法可以包括动态地添加或移除硬件资源,诸如物理服务器、数据集群或节点。
在实施例中,根据与可用硬件资源相关的度量来选择第一容器被指派到的可用硬件资源。指派所配置的第一容器以在可用硬件资源上执行可以包括根据与当前硬件资源、可用硬件资源相关的度量,或者当前硬件资源和可用硬件资源的度量之间的比较,将所配置的第一容器从在当前硬件资源上执行移动到在可用硬件资源上执行。在各实施例中,该度量可以包括例如处理带宽、网络带宽、存储器资源、或硬件资源与另一部件之间的通信延迟。
该方法还可以包括配置一个或多个冗余容器以包括在一个或多个容器中的每一个容器内执行的服务,以及指派一个或多个容器中的每一个容器以在相应的可用硬件资源上执行。第一容器可以被指派为活动的容器,使得活动的容器的输出为驱动输出(即,被提供给现场设备或驱动到另一容器的输入)。
该方法可以包括维护冗余容器(包括活动的容器)的列表,并且更新冗余容器的列表以指示哪个容器是活动的容器。在这样的实施方式中,分配冗余容器中的每一个冗余容器以在相应的可用硬件资源上执行可以包括选择相应的可用硬件资源,使得一个或多个冗余容器中的每一个冗余容器在至少一个方面创建容错,诸如创建处理器多样性、服务器多样性、和/或电源多样性。
在另外的实施例中,该方法可以包括接收第一容器是优先容器的指示,并且因此,在硬件资源上维持资源可用性的预定阈值以确保优先容器和/或可用硬件资源满足或超过指定的性能要求。
图8是示出示例过程工厂400的逻辑和物理层级布置的框图。过程工厂400包括两个过程单元402A和402B,每个过程单元包括三个单元404。过程单元402A包括单元A1、A2和A3,而过程单元402B包括单元B1、B2和B3。每个单元包括一个或多个设备模块,设备模块又包括一个或多个控制模块。作为示例,过程单元402A中的单元A1包括两个设备模块404A和404B。设备模块404A包括控制模块406A和406B,而设备模块404B包括控制模块408A和408B。过程单元402A和A02B中的其他单元每个都包括一个或多个设备模块(未示出),这些设备模块又包括一个或多个控制模块(未示出)。
同时,可以在过程工厂400内部采用物理层级或组织。例如,如果过程单元402A和402B正在处理类似的产品,则单元A1和B1、A2和B2、以及A3和B3可以各自包括根据相同或不同的控制方案操作的相同的设备集合。结果,过程工厂操作者可以将过程工厂的“区域”内的类似单元分组。在过程工厂400中,例如,单元A1和B1在区域1中,单元A1和B2在区域2中,单元A3和B3在区域3中。
可以理解,取决于过程工厂,各种逻辑和物理层级和排列是可能的,并且图8中所示的示例过程工厂400仅仅描述了一种可能的组织方案。当然,大型工业过程可以具有任何数量的区域、过程单元、设备模块和控制模块,并且因此,这些模块在控制方案内的逻辑组织可能特别有帮助。
如上所述,SDCS 100实现容器化架构,其中每个容器是在托管容器的计算节点的操作系统内(即,在其上实例化容器的计算节点的操作系统内)执行的隔离执行环境。因为每个容器在未配置时本质上是其中可以实例化服务和其他项的“沙箱”,所以SDCS 100中的容器可以表示过程工厂10内的逻辑和/或物理层级。具体地,SDCS 100内的容器可以被嵌套以便以精确的方式表示过程工厂的逻辑和/或物理配置。
图9是示出过程控制系统中的嵌套容器的示例实施方式的框图。数据集群(例如,数据集群208)上的计算节点410在其上实例化了表示过程区域“过程区域1”的容器412。过程区域1包括两个单元,单元1和单元2。因此,表示过程区域1的容器412在其中实例化了表示单元1的容器414和表示单元2的容器416。这样,过程工厂的层级结构可以在SDCS 100的计算元件的组织内表示。在图9所示的示例中,在容器412内的容器418中执行的单个连续控制子系统服务负责单元1和单元2,并且在容器412内的容器420中执行的单个历史库服务负责历史化单元1和单元2的数据。专用于每个单元的控制器服务、I/O服务器服务、分布式报警子系统服务和诊断子系统服务分别在嵌套在容器414内的容器422、424、426和428内以及在嵌套在容器416内的容器430、432、434和436内执行。
以这种方式,工厂操作员可以以表示相关联的过程工厂的逻辑和/或物理设计的方式来配置SDCS 100。以这种方式,容器还可以被配置为便于容器结构的复制,以便实现对过程工厂的分离但相同的部分的控制,和/或以便创建冗余,和/或以便便于负载平衡操作。例如,容器可以被配置为使得在实例化时,它包含特定的子容器,在实例化时,只需要为要被控制的过程工厂的特定设备区域配置该特定的子容器。再次参考图9,容器414和416可以是同一容器的不同实例,在实例化时,其仅需要被配置为使得容器414内的容器422、424、426和428与单元1的设备相关联,并且容器416内的容器430、432、434和436与单元2的设备相关联。
现在转向图10,可以复制单独的和/或嵌套的容器以促进容错和/或在计算节点或其他资源之间移动以便促进负载平衡。图10示出了其中图9的容器412在计算节点410(容器412)上和第二计算节点440(容器412')上实例化的示例。容器412和412'在功能上是相同的,但是在不同的计算节点上被实例化,允许容器中的一个(例如,容器412)被指定为活动的容器,而容器中的另一个(例如,容器412')被指定为冗余的(如由具有虚线的容器所指示的)。这样做,如果活动的容器遭受降级的服务(下面进一步描述)或者其上实例化活动的容器的计算节点遭受故障(例如,意外的服务器错误、电源故障等),则容器中的冗余容器(例如,容器412')可以被指定为活动的容器,并且可以连续地和可靠地控制过程工厂的相关部分。
当然,尽管容器可被配置为使得容器的任何实例化必须包括嵌套在其中的所有容器(例如,使得单元1的容器的实例化包括所有容器422、424、426和428),但也可能单独地实例化每个容器。例如,图11中示出了这样的实施方式,其中两个计算节点410和440各自执行所示的过程控制系统的一部分。在图11所示出的示例中,容器412在计算节点410上实例化。容器412在其中实例化了执行连续控制子系统服务的容器418和执行历史库服务的容器420。与单元1相关联的容器414在容器412中实例化,并且分别执行控制器服务、I/O服务器服务、分布式报警子系统服务和诊断子系统服务的容器422、424、426和428在容器414中实例化。同时,容器412'在计算节点440上实例化。容器412'在其中实例化了执行连续控制子系统服务的冗余实例(由虚线指示)的容器418'和执行历史库服务的冗余实例(由虚线指示)的容器420'。与单元2相关联的容器416在容器412'中实例化,并且分别执行控制器服务、I/O服务器服务、分布式报警子系统服务和诊断子系统服务的容器430、432、434和436在容器416'内实例化。以这种方式,可以通过在计算节点440上实现与单元2相关的服务以及在计算节点410上实现与单元1相关的服务来实现负载平衡,同时还实现历史库和连续控制子系统服务的冗余。
图12示出了容器嵌套的另一示例。在图12中,分别在第一计算节点442和第二计算节点444上实例化冗余配置。在两个冗余配置中的每一个中,实例化对应于相同过程区域1的容器446、446',并且在其中实例化对应于过程区域1的相同单元1的容器448、448'。容器448、448'中的每一个包括可操作以提供用于单元1的服务的容器集合,包括控制器容器450、450'、历史库容器452、452'、连续控制子系统容器454、454'、分布式报警子系统容器456、456'和诊断子系统容器458、458'。冗余I/O服务器容器460、460'在第一计算节点442和第二计算节点444中的每一个上实例化。由I/O服务器容器460、460'实现的I/O服务器可以执行用于除了图12中所示出的那些之外的其他过程区域、单元和控制器的I/O服务,并且因此未被示出为在用于过程区域1的容器446、446'内或用于单元1的容器448、448'内。
虽然由I/O服务器容器460、460'实现的I/O服务器可以由除了图12中所示出的那些容器之外的容器使用,但是用于过程区域1的容器446、446'在图中被示出为“绑住”到I/O服务器1。以这种方式,图12示出了SDCS 100的另一特征,即SDCS 100内的元件可以彼此绑住,使得绑住的元件在相同的硬件上操作或者在它们绑住到的硬件上操作。在图12中,例如,因为用于过程区域1的容器446、446'被绑住到相应的I/O服务器容器460、460',所以容器446将在与I/O服务器容器460相同的服务器上实例化,并且容器446'将在与I/O服务器容器460'相同的服务器上实例化。因此,如果过程区域容器446被移动到另一服务器,则I/O服务器容器460将同样被移动到与过程区域容器446相同的服务器。对于绑住到容器460'的容器446'也是如此。
可以将容器绑住到过程工厂10中的各种部件中的任何一个。如参考图12所述,在各实施例中,可以将容器绑住到其他容器,使得这些容器如果从一个处理硬件移动到另一个处理硬件,则作为一个单元移动并保持在同一硬件上执行。这对于例如确保被绑住的容器之间的网络延迟保持最小可能是有用的。在实施例中,可以将容器绑住到特定处理硬件,包括绑住到特定数据集群、数据集群的特定计算节点、特定计算节点的特定处理器、特定服务器机架、处理器的特定处理器核心等。在一些实施例中,容器可以在智能现场设备上实例化,并且因此,可以将容器绑住到特定的现场设备。还可以将容器绑住到特定的非计算物理资源。例如,可以将容器绑住到特定的物理I/O接口,或者甚至绑住到为多个计算资源供电的特定电源。在后一种情况下,这将允许两个冗余容器中的每一个在由相应电源供电的计算资源之间移动,同时保持关于电源的容错性。
图13和图14示出了将容器绑住到部件的各种示例。在图13中,计算节点462已在其上实例化了多个容器464-474,包括控制器容器464、历史库容器466、连续控制子系统容器468、分布式报警子系统容器470、诊断子系统容器472和I/O服务器容器474。如图13所示,I/O服务器容器474被绑住到计算节点462。因此,虽然在计算节点462上实例化的其他容器可以被“移动”(即,在计算节点462上实例化的实例终止之前在其他硬件上实例化),但是I/O服务器容器464将保持在计算节点462上,直到或除非某些情况(例如,服务器不稳定性、异常终止等)迫使I/O服务器容器464移动。同时,连续控制子系统容器468被绑住到控制器容器464。控制器容器464和连续控制子系统容器468将被实例化为一对,例如,以便确保在容器464、468之间传递的数据由于它们在相同硬件资源上的实例化而维持最小延迟。
可以显而易见的是,当容器被绑住到特定硬件资源时,该绑住可以是特定于该容器的实例的,即,容器的一个实例可以被绑住到第一硬件资源,而该容器的第二冗余实例可以被绑住到第二单独的硬件资源。在这种情况下,将容器绑住到硬件资源可以促进冗余和容错。然而,当容器被绑住到另一容器时,在一些实例中,该绑住可以被携带到容器对的所有冗余实例化上,即,控制器连续控制子系统对可以被一起实例化,而不管该对的每个实例在哪个硬件资源上被实例化。以这种方式,可以实现将一个容器绑住到另一个容器,以实现例如与网络延迟和带宽管理相关的目标。
同时,图14示出了两个电源476和478向相应的计算节点集合供电的示例。电源中的第一电源476向三个计算节点479、480、481供电,而电源中的第二电源478向三个其他计算节点482、483、484供电。每个服务器集合479-481和482-484共同地在其上实例化了相同的容器集合,从而提供1:2的容错,使得如果电源476、478中的一个发生故障,则冗余容器将在电源476、478中的另一个上保持活动。共同地,服务器479-481已在其上实例化了:SIS控制器容器485、控制器容器486、连续控制子系统容器487、分布式报警子系统容器488、I/O服务器容器489、历史库容器490和诊断子系统容器491。类似地,服务器482-484已在其上实例化了:SIS控制器容器485'、控制器容器486'、连续控制子系统容器487'、分布式报警子系统容器488'、I/O服务器容器489'、历史库容器490'和诊断子系统容器491'。有效地,在服务器479-481上实例化的容器485-491中的每一个被绑住到第一电源476,其中SIS控制器容器485被特别地绑住到第一计算节点479,历史库容器被绑住到第三服务器481,并且容器485-491中的剩余容器被一般地绑住到第一电源476。同时,在服务器482-484上实例化的容器485'-491'中的每一个被有效地绑住到第二电源478,其中SIS控制器容器485'被特别地绑住到第四计算节点482,历史库容器被绑住到第六服务器484,并且容器485'-491'中的剩余容器被一般地绑住到第二电源478。除了SIS控制器容器485、485'和历史库容器490、490'之外,容器485-491可以在第一、第二和第三服务器479-481之间移动,并且容器485'-491'可以在第四、第五和第六服务器482-484之间移动,以用于负载平衡,同时保持容错。
当然,如上文的段落中所示,容器的嵌套和绑住可彼此结合使用或单独使用。因此,一种方法可以包括在数据集群的第一计算节点中实例化第一容器和第二容器,第一容器和第二容器中的每个容器是第一计算节点的操作系统内的相应隔离执行环境。第二容器可以在第一容器内被实例化,而服务在第二容器内被实例化。在实施例中,第一容器和第二容器中的每一个分别对应于过程工厂的层级结构的第一级和第二级。同时,第一容器中还可以在其中执行一个或多个服务。在实施例中,在第一容器内执行的服务可以是I/O服务。
该方法还可以包括在第一计算节点上实例化具体在第一容器内实例化的第三容器。在实施例中,在第二容器内执行的服务可以是执行控制例程的控制器服务,该控制例程被配置为控制工业过程工厂的第一部分中的过程控制现场设备的子集,而在第三容器中执行的服务可以是执行控制例程的控制器服务,该控制例程被配置为控制工业过程工厂的第二部分中的过程控制现场设备的不同子集。在一些实施例中,在第二和第三容器中执行的服务可以包括相应的I/O服务器服务,所述I/O服务器服务被配置为在过程控制现场设备与相应的控制器服务之间传送数据。在实施例中,该方法可以包括在数据集群的一个或多个不同节点上实例化冗余嵌套容器结构。
在各种实施例中,一种方法可以包括在执行SDCS 100的工业过程控制系统10的数据集群中实例化多个容器,该SDCS用于对操作以控制工业过程工厂中的物理过程的多个过程控制现场设备60、70、80、90进行控制。多个实例化容器中的每一个可以是在其上实例化容器的多个计算节点之一的操作系统内执行的隔离执行环境。多个实例化的容器可以协作以促进软件定义的控制系统中的控制策略的执行。该方法还可以包括将多个容器中的第一容器绑住到软件定义的控制系统的部件。如上所述,在一些实施例中,多个容器中的一个或多个可以对应于过程工厂的层级结构的层级。
在实施例中,该方法还可以包括在多个实例化容器中的至少一个内执行服务。服务可以包括例如I/O服务器服务、控制器服务、历史库服务、分布式报警子系统服务、诊断子系统服务、第三方服务或安全服务。此外,将第一容器绑住到SDCS的部件可以包括将该容器绑住到另一容器,该另一容器本身可以在第一容器内实例化,或者其中可以实例化第一容器。
容器被绑住到的部件可以是向一个或多个数据集群或数据集群的一部分供电的电源,或者可以是数据集群、数据集群的计算节点、数据集群内的服务器机架、服务器、特定处理器、或处理器内的特定处理器核心中的任何一个。该部件可以可替换地是其中正在执行I/O服务器服务的I/O服务器容器,可以是过程控制现场设备,或者可以是物理I/O接口。在实施例中,该方法可以包括实例化被绑住到不同节点、服务器、电源、处理器、或处理器核心的冗余容器结构。
图15是包括用于实现图1所示的工厂10的区域501中的过程的一部分和区域502中的过程的一部分的控制的容器化服务的I/O子系统或I/O网络500的框图。I/O子系统500可以是图1和图2中所示的I/O网关40和SDCS 100/200的一部分和/或连接到它们。
关于术语“I/O网络”,一般而言,由一个或多个控制器或控制器服务(例如,容器化的)、通信连接到一个或多个控制器或控制器服务的现场设备、以及促进控制器或控制器服务与现场设备之间的通信的中间硬件或软件节点(例如,I/O服务器服务、I/O卡等)形成的网络可以被称为“I/O网络”或“I/O子系统”。
在高层级,I/O子系统500包括:(i)用于区域501的I/O服务器服务(有时称“I/O服务”或仅称“服务”)511a,以及(ii)用于区域502的I/O服务511b。注意,虽然以下描述的大部分集中在I/O服务511a的配置和操作,但是将理解,I/O服务561a可以类似地配置为提供关于用于实现区域502中的过程设备的控制的实体的类似功能。
I/O服务511a是在任何适当的计算设备或节点上实现的软件服务。服务511a可以被认为是平台、应用程序或应用程序套件,其(例如,通过链路或网络)为工厂10中的各种例程、模块、服务、容器、设备或节点提供与I/O子系统500相关的I/O功能。例如,现场设备(或耦合到现场设备的I/O卡)可以通过以下方式与I/O服务511a交互:(i)从服务511a接收控制器输出,例如用于启动现场设备的命令,和/或(ii)向I/O服务511传送现场设备输出,例如由现场设备生成或计算的测量的过程参数或指数。此外,控制器服务可以通过以下方式与I/O服务511a交互:(i)向I/O服务511提供控制器输出(例如,携带命令),和/或(ii)从I/O服务511a接收控制器输入(例如,表示例如所测量的过程参数的现场设备输出)。I/O服务511a与其服务的实体(例如,现场设备、控制器服务器)之间的通信可以使用任何合适的通信模型来实现,诸如推送模型,其中I/O服务511a是发布者,并且现场设备和/或控制器服务是订阅者;或者其中I/O服务511a是订阅者,并且现场设备和/或控制器服务是发布者。同样,可以使用拉取模型,其中I/O服务511a是请求者,并且现场设备和/或控制器服务响应该请求;或者其中I/O服务511a响应来自现场设备和/或控制器服务的请求。如果需要,可以使用混合模型,其中I/O服务511a执行与现场设备的通信角色(例如,发布者、订阅者、请求者、响应者等)不同于其与控制器服务的通信角色。
在任何情况下,在示例操作期间,I/O服务511a从多个容器化的控制器服务接收多个控制器输出集合,每个控制器输出实现相同的控制例程以控制区域501。在典型的示例中,服务501将控制器输出(即,来自容器化的控制器服务中的特定一个控制器服务的输出)的单个“活动的”集合传递到相关现场设备以控制区域501。此外,控制器输出的其他“非活动的”集合不被转发到相关现场设备。I/O服务器服务561a相对于区域502类似地配置,能够处理多个控制器输出集合,包括控制器输出的“活动的”集合和一个或多个“非活动的”集合。
在高层级,I/O服务511a充当以下两者之间的中介:(i)执行工厂中的一些物理控制动作的一组现场设备531(例如,包括泵、阀和其他致动设备)、作为变送器操作以测量和发送工厂中的过程变量的一组现场设备532(例如,包括基于传感器的现场设备)、以及潜在地封装执行“定制”算法(诸如与光谱仪设备内的光谱处理相关的光谱处理微容器,或者用于附接有相机的设备的图像处理微服务)并且产生和发送针对特定用途(其可以是控制或维护用途)的经处理的I/O数据的一组微容器的一组现场设备533,以及(ii)一个或多个容器化控制器服务521a-c,各自运行相同控制例程#1(例如,相同配置的控制例程服务#1)的实例525a-c以控制相同的一组现场设备531和532,从而控制区域501。虽然现场设备531被示出为对与用作(例如,测量的过程参数的)变送器的现场设备532不同的现场设备进行致动,现场设备532与包括处理或操纵过程变量数据的定制算法或定制微容器的现场设备533不同,但为了简单起见,将理解,所描述的现场设备可以能够执行以下操作中的任何一个或全部:致动控制元件(例如,阀杆)以操纵过程变量、测量和传输测量的或计算的现场设备或过程变量、以及处理或操纵收集的过程数据或其他测量结果并传输经处理的或操纵的数据。例如,智能阀定位器可以被配置为接收命令以致动阀并传输测量的流量、检测的阀位置、关于阀的健康指数,以及处理来自阀定位器上的相机的收集的图像数据以检测损坏的阀并传输经处理的或收集的数据等。
在一些实施例中,I/O服务511a不是容器化的。然而,如果需要,I/O服务511a被容器化在I/O服务器容器(有时称为“I/O容器”)505a中。在各种实施例中,I/O子系统500包括多个I/O容器505a-c。I/O容器505a-c中的每一个接收相同的输入(例如,从控制器服务和现场设备),生成相同的输出(例如,去往现场设备和控制器服务),并实现相同的逻辑(例如,用于评估哪个容器化的控制器服务应该是活动的,用于处理控制器服务之间的转换,等等)。因此,当实现多个I/O服务器容器505a-c时,I/O服务器容器505a-c中的单个容器可以被指定为“活动的”。例如,通过实线和虚线,图15指示I/O容器505a是“活动的”,并且I/O服务器容器505b和505c是“非活动的”。在这样的示例中,I/O容器505a将流量转发到控制器服务和现场设备,但是容器505b和505c不转发。可以说,在一个实施例中,所有容器(包括“非活动的”容器)接收相同的I/O数据,但是只有“活动的”容器传送由控制器服务和现场设备接收并对其操作的I/O数据。
在一些实例中,非活动的I/O容器不传送流量。在其他实例中,I/O容器505a-c中的每一个都传送I/O流量(包括非活动的I/O容器),但是交换机拦截流量并且仅在从“活动的”I/O服务器容器传送流量的情况下将流量转发到其目的地。在一些情况下,“非活动的”I/O服务器容器可以向其他容器传送数据,尽管没有主动地充当现场设备和控制器服务之间的中间I/O服务器。例如,“非活动的”I/O服务器容器可以通过将I/O流量(例如,控制器输入、控制器输出等)传送到历史库或历史库容器、用户工作站或工作站容器、其他工厂或外部网络等来参与负载平衡操作。因此,“非活动的”I/O服务器可以减轻“活动的”I/O容器在执行此类功能时“浪费”处理能力或网络容量。如果I/O容器505a-c跨越多于一个的物理机器而分布,这可能是特别有利的。每个I/O容器505a-c可以在一个或多个物理服务器处实现,例如图16和图17中所示的那些。
如上所述,容器化的控制器服务521a-c分别在容器515a-c内各自运行相同控制例程#1的相应实例525a-c,以控制现场设备531和532的相同集合,并由此控制区域501。在一些实施例中,控制例程#1可以被实现为例如一个或多个配置的控制例程服务和/或一个或多个配置的控制功能块服务。容器515a-c可以在任何合适的计算机设备、节点或计算集群上实现。在一些实例中,在工厂环境中的、对应的控制器服务被配置为控制的现场设备附近的计算设备处实现容器中的一个或多个。在一些情况下,实现容器的设备可以是机架安装的,并且可以具有与物理过程控制器通常所具有的形状因子或外壳类似的形状因子或外壳。在其他情况下,控制器服务容器由工厂中不同位置处、控制室处、数据中心处、计算集群处、远程站点处等的服务器或计算机实现。简言之,只要容器化的控制器服务能够建立与它们正在控制的现场设备的适当网络连接(例如,经由诸如服务511a之类的I/O服务器服务),容器化的控制器服务就可以在任何适当位置处在任何适当硬件上实现。
如上所述,每个容器化的控制器服务521a-c表示实现相同控制例程#1(各自被配置为从与相同现场设备相关联的相同标签读取和向其写入)的相同概念控制器。在任何给定时间,三个容器化的控制器服务521a-c中的两个可以被认为是“活动的”容器化的控制器服务的副本或冗余控制器服务。一般而言,每个“控制器服务”表示与可能在硬件控制器中找到的软件平台或基础设施类似的软件平台或基础设施。每个控制器服务被配置为识别和执行控制例程,所述控制例程通常具有专门的和期望的数据格式和结构(例如,如由已配置的控制模块服务所定义的,所述控制模块服务又已被配置有控制功能块服务)。控制器服务可以被认为是在物理设备上运行的容器和顶层级应用程序(例如,控制例程)之间的层。为此,“控制器服务”可以被认为类似于在计算设备处的容器内实现的操作系统,以使得容器和计算设备能够正确地识别和执行控制例程。在一些实例中,控制器服务可以是或可以包括仿真物理过程控制器的特定硬件模型的仿真器。
控制例程或控制模块是可由处理器执行的指令集,用于执行一个或多个操作以提供或执行对过程的至少一部分的控制。一般而言,控制例程或控制模块可以被理解为被配置为实现特定控制策略的软件,并且可以在SDCS 200内被实现为在其容器中执行的配置控制模块服务。控制例程或控制模块可以包括与各种功能相关联的一个或多个互连的控制功能块。这些功能块可以是面向对象的编程协议中的对象,其基于对其的输入来执行控制方案内的功能,并且可以向控制方案内的其他功能块提供输出。在实施例中,控制功能块可以在SDCS 200内实现为在其容器中执行的配置控制功能块服务。更一般地,控制例程表示基于一个或多个控制器输入(例如,测量的过程变量,诸如温度、压力、流量等)执行以产生一个或多个控制器输出(例如,用于操纵诸如控制阀之类的现场设备的命令)的逻辑。控制器输出可以引起对过程输入(例如前述的阀位置)的操纵(这样的过程输入也可以被称为“受操纵变量”),以改变或驱动过程输出(其可以被称为“受控变量”或简称为“过程变量”)。受控变量可以是控制例程试图控制的任何合适的变量。与先前的示例一样,可以在入口阀上操纵控制阀位置,以打开入口阀并增加罐内的液位(液位在此处是受控变量)。在许多情况下,测量受控变量并将其作为控制器输入返回到控制例程。控制例程还可以接受受控变量的期望值(即,设定点)作为输入,该期望值可以由用户或控制例程(例如,相同的控制例程或不同的控制例程)提供。虽然图15没有明确地示出设定点作为控制例程实例525a-c或575a-c中的任何一个的输入,但是应当理解,所描述或示出的每个控制例程实例可以接收设定点。
继续参考图15,在典型的操作期间,I/O服务511a经由I/O通道542a从现场设备532接收过程输出(有时称为“现场设备输出”)或过程输出集合,或者经由I/O通道542b从现场设备533接收处理后的数据集合。过程输出可以是任何合适的过程变量,并且可以携带经检测或计算的值(例如,指示罐液位变量LT004具有20%满的值)。I/O服务511a将过程输出作为控制器输入经由I/O通道543a-c传递到每个控制例程实例525a-c。即,I/O通道543a-c中的每一个被分配了携带相同值或相同值集合(例如,指示LT004=20%)的相同变量或变量集合。
控制例程服务实例525a-c接收控制器输入,并基于控制器输入的值(例如,LT004=20%)和控制例程的逻辑(例如,指示罐应该填充到更高的液位)生成控制器输出(例如,将入口阀开启到75%打开的命令)。控制器服务521a-c分别经由I/O通道544a-c将控制器输出传送到I/O服务511a。即,I/O通道544a承载来自控制例程实例525a的输出集合;I/O通道544b承载来自控制例程实例525b的控制器输出集合;并且I/O通道544c承载来自控制例程实例525c的控制器输出集合。在典型的示例中,因为控制器输入通常是相同的,并且因为控制例程#1的实例525a-c是相同的,所以控制器输出集合通常是相同的(例如,每个I/O通道544a-c可以承载用于将入口阀打开到75%的命令)。即,如果控制例程或网络流量以某种方式受到损害,则各个集合可以不同。因此,I/O服务511a可对接收到的集合实施各种错误检查。在一些情况下,I/O服务可以执行一致性分析或“n”个中的最佳投票方案来选择集合。例如,如果服务511a接收的前两个集合不同,则服务511a可以基于两个接收的集合中的哪个集合匹配服务511a接收的第三集合来选择两个集合中的一个进行转发。
更具体而言,I/O服务511a分析接收到的控制器输出集合和/或与每个控制器输出集合相关联的元数据。具体地,可以分析每个集合的QoS度量,并且具有最佳QoS度量的集合可以由I/O服务511a或由某个其他服务(例如,协调器服务)确定为控制器输出的“活动的”集合。QoS度量可以是用于分析由容器化的控制器服务提供的服务质量的任何期望的度量,诸如延迟、准确性、消息速率等。对应于“最佳”QoS度量的例程、服务、容器和I/O通道可以被(明确地或隐含地)指定为“活动的”。在实施例中,单个控制例程服务实例525a-c、单个控制器服务521a-c、单个容器521a-c和单个I/O通道44a-c可被认为在给定时间是“活动的”。剩余的控制例程服务实例525a-c、控制器服务521a-c、容器521a-c和I/O通道544a-c可以被指定或认为是“非活动的”。I/O服务511a通过I/O通道540将来自“活动的”容器和控制器服务的控制器输出集合转发到现场设备531。不将来自“非活动的”容器的控制器输出集合转发到现场设备,尽管出于其他目的(例如,以优化计算机和/或网络资源的使用)可以将它们转发到其他容器和/或服务(例如,到数据历史库)。
继续参考图15,虚线指示哪些例程、服务、容器和通道是非活动的。如图所示,容器515c、控制器服务521c、例程服务525c和I/O通道544c是“活动的”,意味着由例程服务实例525c生成并传递到I/O服务511a的控制器输出由I/O服务511a通过I/O通道540转发到现场设备531。相反,容器515a和515a b、控制器服务521a和521b、例程服务525a和525b以及I/O通道544a和544b是“非活动的”。结果,I/O服务器服务511a不将控制器输出从例程服务525a和525b转发到现场设备531。
如前所述,I/O服务器服务561a以类似于关于I/O服务511a和区域501所描述的方式来促进区域502的控制。例如,服务561a充当以下项之间的中间节点:(i)现场设备581和582和583集合,以及(ii)容器化的控制器服务571A和571B,其分别运行相同控制例程#2的实例575A和575B,以控制同一现场设备581和582和583集合,从而控制工厂10的部分502。I/O服务器服务561a可以评估容器化的控制器服务,选择一个“活动的”服务,并利用来自活动的服务的控制器输出来控制现场设备集合(从而实现对过程的控制)。
应当理解,图15所示的容器可以以任何期望的方式跨工厂10或其他位置处的物理资源而分布。例如,用于区域501的容器515和505可以在区域501附近或之内的计算机处实现,并且用于区域502的容器555和565可以在区域502附近或之内的计算机处实现。然而,如果需要,容器505和/或515中的一些或全部可以在区域502附近或中的计算机处实现,和/或容器555和/或565中的一些或全部可以在区域501附近或中实现。或者,任何一个或多个上述容器可以在工厂10的其他区域中的计算机上实现,或者在远离工厂10的非现场位置上实现(这对于确保在工厂10处的断电或其他故障的情况下的无缝转换可能特别有用)。此外,上述容器中没有一个必须永久地固定或绑住到在任何给定时间它们碰巧在其上执行的任何计算机集群或节点/服务器。当期望平衡计算和网络负载并消除计算或联网低效时(例如,当给定物理资源在计算上或由于网络流量变得负担过重时),可以在不同计算机处动态地(例如,在执行期间实时或接近实时地)实例化、删除和重新实例化容器。此外,给定容器的总实例可根据需要动态地减少或增加。例如,如果实现控制器容器565a和565b的物理资源表现为变得负担过重,则用于控制器#2服务的第三控制器容器可以在新的计算机或物理资源处被实例化(并且如果需要,可以启动第三容器)。I/O服务器服务561a然后可以继续监视控制器#2服务的三个容器,并且可以在任何给定时间连续启动最佳性能容器。如果物理资源的计算和网络工作负荷是高度可变的,则容器之间的这种“杂凑(juggle)”可能是有帮助的。每个控制器服务可以被容器化在其自己的专用容器中,从而提供相对隔离、一致和可预测的环境,在该环境中实现每个控制器服务,而不管实现容器的节点上存在的更广泛的软件环境。例如,容器可以包括给定控制器服务所需的软件依赖性和软件库。在没有容器的情况下,可能需要适当地配置控制器服务可能在其上运行的每个单个节点,以便确保控制器服务的一致环境。并且,如果给定节点需要能够实现各种不同类型的服务(其可能具有不同的环境要求),则确保节点的适当配置可能变得复杂。相反,所描述的控制器服务容器使得每个控制器服务能够容易地在任何给定节点处实例化并且能够容易地在节点/服务器或计算集群之间移动。
此外,注意,尽管以上讨论涉及可以在任何给定节点处实例化并且在节点/服务器或计算集群之间移动的控制器服务容器,但是概念和技术可以容易地应用于其他类型的控制服务235,诸如控制模块服务和/或控制功能块服务。例如,配置的控制功能块服务的多个实例可以在不同的处理器核心上实例化,并且在不同的进程核或甚至不同的处理器之间移动,并且活动的I/O服务器可以选择配置的控制功能块服务的多个实例之一,并且可以将配置的控制功能块服务的所选实例的输出提供给配置的控制模块服务的多个实例中的每一个,以便在其上操作。类似地,活动的I/O服务器可以选择经配置的控制模块服务的多个实例中的一个,并且可以将经配置的控制模块服务的所选实例的输出提供给配置的控制器服务的每个实例。
在任何情况下,还将理解,参考图15,每个I/O通道540-544c和570-574b可被配置为承载特定变量或变量集合。例如,现场设备531可以是阀,并且I/O通道540可以被配置为总是承载控制阀命令(例如,表示期望的阀位置)。在一些情况下,一个或多个I/O通道被配置为承载特定的主要变量(例如,期望的阀位置)和一个或多个次要变量(例如,阀健康指数、检测到的阀位置、测量的流量、致动器上测量的应变等)。在任何情况下,例如,可以将I/O通道540称为控制器输出540。
图16是包括多个节点或物理资源(例如,计算机、服务器、联网设备等)的计算机集群601的框图,在其上可以实现、动态指派和负载平衡本文所述的各种容器、微容器、服务和/或例程中的任何一个或多个,以优化计算机资源使用和性能。具体地,集群601可以包括被配置为实现图15中所示的容器515、505、555和/或565中的任何一个或多个的物理服务器602和604。
服务器602和604中的每一个可以是任何合适的计算设备,包括例如处理器、存储器和通信接口,并且每一个可以被布置在工厂10内或外的任何合适的位置。例如,图17示出了服务器602(有时称为系统/服务器/设备700)的示例实施例700。如图所示,服务器700包括处理器702、存储器704和通信接口706。服务器700的部件可以被容纳在任何合适的外壳(未示出)中。
虽然被示出为包括单个处理器702,但是在各种实施例中,服务器700可以包括多个处理器702。在该示例中,处理器702可以实现容器505a、I/O服务器服务511a和/或I/O逻辑711(例如,包括用于执行本文描述的I/O服务器操作或功能的逻辑)。处理器702还可以实现其他容器715(例如,图1、图2、图15或图16中所示的任何其他容器)。如果需要,可以在服务器700处实例化和实现任何数量的容器505和/或715(例如,在负载平衡操作期间的运行时期间)。
存储器704可以存储软件和/或机器可读指令,诸如可以由处理器702执行的容器505和715。存储器704可包括易失性和/或非易失性存储器或盘,其包括用于存储软件和/或机器可读指令的非暂时性计算机可读介质(“CRM”)。
服务器700包括一个或多个通信接口706,其被配置为使得服务器700能够与例如另一设备、系统、主机系统或任何其他机器通信。通信接口706可以包括使得能够经由一个或多个网络与其他系统通信(例如,使得服务器700能够与服务器604通信)的网络接口。通信接口706可以包括被配置为根据任何适当的协议进行操作的任何适当类型的有线和/或无线网络接口。示例接口包括TCP/IP接口、Wi-FiTM收发机(根据IEEE 802.11标准系列)、以太网收发机、蜂窝网络无线电设备、卫星网络无线电设备、同轴电缆调制解调器、无线HART无线设备电、或实现任何期望的通信协议或标准的任何其他合适的接口。
回到图16,节点或服务器602或604中的任一个可以包括与图17中所示的服务器700类似的部件。如图16所示,容器505和515分布在服务器602和604上。注意,控制器服务521可以在概念上被称为单个“控制器”。即,当某人提及“控制器#1”时,他们指的是实现控制器服务521的容器515的组,其进而各自执行用于控制相同设备集合的相同控制例程服务#1的实例525。因为协调器和/或I/O服务器服务511a可以动态地改变现有的容器化的控制器服务521的数量,并且因为它们可以动态地改变在任何给定时间哪个容器化的控制器服务521是活动的,并且因为它们可以改变在任何给定时间哪个物理服务器实现容器化的控制器服务521,所以对“控制器#1”的提及不一定是指任何固定的特定设备或容器。也许这样说更好,表示“容器1”的特定设备和特定容器可以在不同的时间不同,这取决于由I/O服务器服务511a和协调器服务做出的各种负载平衡操作和决定。在任何情况下,图16中所示的容器和服务器可以以任何期望的方式跨工厂10的物理资源和位置而分布。
现场设备631可以以与参考图15所示的现场设备531和532所描述的相同方式与容器505和/或515中的任何一个或多个通信,并且可以以类似的方式配置。如图16所示,现场设备631可以通过物理I/O模块或卡614和网络交换机612与集群601通信。
I/O模块或卡614每个可以是任何适当的I/O卡(有时称为“I/O设备”或“I/O模块”)。I/O卡614通常位于工厂环境中,并用作控制器服务和一个或多个现场设备之间的中间节点,从而实现其间的通信。现场设备输入和输出有时被配置用于模拟或离散通信。为了与现场设备通信,控制器或控制器服务通常需要被配置用于现场设备所使用的相同类型的输入或输出的I/O卡。即,对于被配置为接收模拟控制信号(例如,4-20ma信号)的现场设备,相应的控制器或控制器服务可能需要模拟输出(AO)I/O卡来传送适当的控制信号。并且,对于被配置为经由模拟信号传送测量结果或其他信息的现场设备,控制器或控制器服务可能需要模拟输入(AI)卡来接收传送的信息。类似地,对于被配置为接收离散控制信号的现场设备,控制器或控制器服务可能需要离散输出(DO)I/O卡来传送适当的控制信号;并且,对于被配置为经由离散信号传送信息的现场设备,控制器或控制器服务可能需要离散输入(DI)I/O卡。通常,每个I/O卡可以连接到多个现场设备输入或输出,其中到特定输入或输出的每个通信链路被称为“通道”。例如,120个通道DO I/O卡可以通信连接到120个不同的离散现场设备输入,使控制器能够(通过DO I/O卡)将离散控制输出信号传送到120个不同的离散现场设备输入。在一些情况下,I/O卡614中的任何一个或多个是可重新配置的,从而能够与配置用于任何类型的I/O(例如AI、AO、DO、DI等)的现场设备进行通信。一些现场设备不被配置为通过I/O卡进行通信。这样的设备仍然可以连接到I/O子系统500中所示的控制器服务。例如,一些现场设备通过以太网端口和链路与控制器或控制器服务通信。一些现场设备经由任何合适的无线协议与控制器或控制器服务通信。
在任何情况下,I/O卡614通过给定的过程控制协议(例如,HART)与现场设备631通信,并可以通过任何其他适当的协议(例如,TCP/IP)与集群601通信。I/O卡614将消息路由到网络交换机612,并从其接收消息。网络交换机612可以是被配置为在计算机集群601和现场设备631之间路由或转发消息的任何合适的网络交换机。在一些实例中,I/O卡614中的一个或多个可以实现微容器,该微容器实现I/O卡服务。因此,如果特定I/O卡装置发生故障并且被新的I/O卡装置替换,则可以用I/O卡微容器加载其,从而以与先前的I/O卡装置相同的方式快速配置其。作为示例,在该系统中,物理I/O服务器可以具有活动的I/O卡,并且另外具有以适当微容器准备待用的非活动的I/O卡,该微容器被实例化以在活动I/O卡故障的情况下快速接管。活动的I/O卡以与如前所述“活动的”和“非活动的”I/O服务器容器如何操作类似的方式将从任何连接的(多个)设备接收的输入数据发送到备用I/O卡。重要的是,在这种情况下,“活动的”和“非活动的”I/O卡(例如,其可以是典型的或已知的轨道总线卡或Emerson CHARM I/O卡)必须物理地连接到逻辑I/O服务器,以便“非活动的”卡作为“活动的”卡接管,并开始从逻辑I/O服务器接收I/O数据。微容器的一个示例是被称为“监狱(jail)”的极轻量容器化技术,监狱是整个行业中已知的技术术语,由此操作系统将微服务隔离到沙箱环境中。
在一些情况下,网络交换机612可以被容器化。容器可以包括交换机612所依赖的逻辑。该逻辑可以包括路由表,该路由表包括到现场设备、I/O卡(或I/O卡容器)和/或控制器服务的地址的路由。逻辑可以包括将这样的地址映射到交换机的端口的转发表(例如,在知道或不知道到达该地址的路径的情况下)。通过将交换机的逻辑容器化,网络交换机612可以在任何期望的和合适的硬件处实例化,使得交换机硬件能够被快速配置和重新配置以用于任何期望的交换/路由操作(例如,在用于网络交换机612的物理设备被替换的情况下)。
在实施例中,任何合适的容器、微容器或I/O可以被指派给计算机集群601,并且可以根据资源可用性而被动态地指派给服务器602或服务器604并在其处实例化。这种动态负载平衡和资源分配使得控制系统能够迅速地响应变化的处理负载、资源可用性、网络约束等,而不损失功能性。
注意,虽然没有明确地示出,但是I/O子系统500可以包括物理I/O卡和/或一个或多个网络交换机(例如,类似于图16中所示的那些),它们用作现场设备(531、532、581、582)和I/O服务器服务511a和/或561a之间的中介。
在实施例中,当物理或逻辑资产连接到系统时,I/O服务器服务505将在发现服务发现这些资产时就自动地解析和调试这些资产。例如,现场设备可以具有对于该现场设备唯一的现场设备标识符,并且控制系统可以被配置为基于现场设备唯一ID将现场设备链接到一个或多个变量标签(例如,表示现场设备被配置为接收的命令和/或表示现场设备被配置为传送的参数)。使用该唯一标识符,现场设备可以断开连接并且重新连接到控制系统,并且控制系统可以自动地在现场设备和依赖于现场设备的控制器服务之间路由通信,而不管哪个硬件已经实例化并且实现了控制器服务,也不管硬件在地理上位于何处。每个容器同样可以具有唯一标识符,该唯一标识符使得能够在适当的容器/服务之间进行路由,而不管哪个特定硬件已经实例化了容器,也不管该硬件在地理上位于何处。
图18是用于实现诸如图15-图17所示的I/O服务器服务之一的I/O服务器服务的方法800的流程图。方法800可以全部或部分地由图1和图2中所示的SDCS 100/200和/或I/O网关40来实现,并且更具体地,由图15-图17中所示的I/O服务器服务511/61来实现。因此,方法800可以作为一个或多个指令或例程保存到存储器(例如,保存到图17所示的存储器704)。为了便于解释,图18的描述参考系统15的服务511a作为实现方法1800。
方法800开始于步骤805,此时I/O服务器服务511a接收到现场设备或过程输出542a和542b集合。例如,I/O服务器服务511a可以从现场设备532接收针对变量FT002的10加仑每分钟(gpm)的测量流量。
在步骤810,I/O服务器服务511a生成多个控制器输入集合(例如,经由I/O通道543承载),每个控制器输入集合对应于经由I/O通道542a和542b接收的所接收的过程输出集合,使得每个控制器输入集合携带与多个控制器输入集合中的每个其他集合相同的值集合。与最后的示例一样,每个控制器输入集合可以携带具有相同值(例如,10gpm)的相同FT002参数。为了说明,I/O服务器服务511a可以从过程输出集合生成第一控制器输入集合(例如,通道543a可以是用于控制器服务521a的第一控制器输入,可以表示参数FT002,并且可以携带10gpm的值)。类似地,I/O服务器服务511a可以从过程输出集合生成第二控制器输入集合(例如,通道543b可以表示用于控制器服务521b的第二控制器输入,可以类似地表示参数FT002,并且可以携带相同的10gpm的值)。
在步骤815,I/O服务器服务511a将每个控制器输入集合(例如,集合543a-c)传送到多个控制器服务521a-c中的不同的一个。如图15所示,每个控制器服务521a-c实现相同控制器例程#1的不同实例(包括实例525a-c)。因为控制例程各自都是相同例程的实例,所以它们都被配置为生成相同的控制器输出集合(例如,相同的命令变量集合),以基于用于相同的控制器输入集合的相同的值集合经由现场设备531和532控制过程工厂10的相同部分501。注意,可以存在任何期望数量的容器化的控制器服务,并且控制器输入集合(各自携带相同的参数和值)可以用于每个容器化的控制器服务。
在步骤820,I/O服务器服务511a经由I/O通道544a-c接收多个控制器输出集合,每个集合来自多个控制器服务521a-c中的不同控制器服务。
在步骤825,I/O服务器服务511a分析经由I/O通道544a-c接收的多个控制器输出集合和/或与集合相关联的元数据(例如,延迟信息)。具体而言,可以分析每个集合的QoS度量,并且可以识别具有最佳QoS度量的集合。QoS度量可以是用于分析由容器化的控制器服务提供的服务质量的任何期望的度量,诸如延迟、准确性等。
在步骤830,I/O服务器服务511a基于分析来选择控制器输出的活动集合。在一个实施例中,I/O服务器服务511a基于该分析启动控制器输出的活动集合。例如,服务511a可以基于与每个容器515a-c相关联的QoS度量来启动集合544c。服务511a可以选择例如具有最低延迟的容器或控制器服务。在一个实施例中,在已形成某种共识之后,服务启动给定的容器、服务器或通道。例如,它可以启动第一容器、服务器或通道,第二容器为第一容器、服务器或通道提供用于控制器输出集合544a-c的相同值。在示例中,服务511a使用“n”个中的最佳投票方案来启动容器/控制器服务/通道。在一个实施例中,诸如协调器服务之类的另一服务而不是服务511a执行步骤830。
在一些实例中,I/O服务器服务511a可以确认控制器输出544a-c中的任何一个或多个的状态(例如,在选择活动的容器之前或之后)。例如,服务511a可以验证输出最近已被更新并且不是旧的。这可以至少部分地通过交叉检查至少一个输出集合544a-c与集合544a-c中的另一个来完成。
在步骤835,I/O服务器服务511a将控制器输出的活动集合(例如,包括用于打开或关闭阀的命令)传送到现场设备531,以驱动工业过程的过程输出(例如,依赖于被操纵的阀的状态的流率),从而控制工业过程的特定部分501。
I/O服务器服务511a可以在它将控制器输入或输出从现场设备中继到控制器服务(或反之亦然)之前,以任何适当的方式调节携带控制器输入或控制器输出的信号。I/O服务器服务511a可以实现模拟调节技术和/或数字信号调节技术。可以由I/O服务器服务511a实现的示例模拟信号调节技术包括滤波、放大、缩放和线性化技术。可以由I/O服务器服务511a实现的示例数字调节技术包括单元转换、枚举、编码以及向信号添加或编辑状态值。表征器或线性化功能可以在模拟或数字调节期间由I/O服务器服务511A实现。
图19是用于评估容器化的控制器服务(或对应的I/O通道)并在其间转换的方法900的流程图,例如图15-图17中所示的那些之一。方法900可以全部或部分地由图1和图2中所示的SDCS100/200和/或I/O网关40来实现,并且更具体地,由图15-图17中所示的I/O服务器服务511/61来实现。因此,方法900可以作为一个或多个指令或例程保存到存储器(例如,保存到图17所示的存储器704)。为了便于解释,图19的描述参考系统15的服务511a作为实现方法1900。
在步骤905,I/O服务器服务511a通过多个I/O通道544a-c接收过程控制流量。
在步骤910,I/O服务器服务511a识别活动的第一I/O通道(例如,544c)。如图5所示,服务521c和I/O通道544c是活动的,而服务521a/b和I/O通道544a/b是非活动的。在一个实施例中,I/O服务器服务511a启动活动的服务544c。
在步骤915,I/O服务器服务511a使用来自活动的I/O通道544c的过程控制流量(traffic)来控制一个或多个现场设备。例如,与方法800的描述一致,服务511a可以将所接收的控制流量(例如,包括控制器输出或命令)经由I/O通道540传递到现场设备。
在步骤920,I/O服务器服务511a评估来自控制器服务的每个I/O通道544a-c的QoS度量。如已经指出的,QoS度量可以是用于分析由容器化的控制器服务提供的服务质量的任何期望的度量,诸如延迟、准确性等。
在步骤925,I/O服务器服务511a确定最高或最佳QoS度量是否对应于非活动的通道。如果不是(即,如果它对应于当前活动的I/O通道或控制器容器),则I/O服务器服务511a维持当前活动的I/O通道(步骤930)并返回到步骤910。可替换地,如果最高或最佳QoS度量对应于非活动的通道,则在步骤935,I/O服务器服务511a可将具有最高或最佳QoS的非活动的通道指定为活动的I/O通道。然后,I/O服务器服务511a返回到步骤910。
在一个实施例中,每个控制器服务跟踪每个控制例程在执行控制例程的过程中的何处。例如,控制例程可以被分解为阶段或级,使得控制例程能够被同步以用于控制器服务之间的转换。在一个实施例中,控制器服务以锁步或相对锁步执行。例如,每个控制器服务可以在执行给定级或阶段之后停止,并且可以等待直到其他控制器服务(或阈值数量的容器服务)在开始控制例程的下一状态或阶段之前已经完成执行相同的给定阶段。这种“锁步”执行在关心过程安全性的情况下可能是有益的。
如上所述,参考图2,SD联网服务220可以控制和管理由逻辑过程控制系统245使用的逻辑或虚拟网络,其可以由SD联网服务220跨物理节点208实现。SD联网服务220可在SDCS200中部署和管理网络设备的实例,例如虚拟路由器、虚拟防火墙、虚拟交换机、虚拟接口、虚拟数据二极管等,以及网络服务的实例,例如分组检查服务、访问控制服务、授权服务、认证服务、加密服务、证书授权服务、密钥管理服务等。网络服务可以被实现为服务或微服务。
另外,SD联网服务220可以将执行安全设备(security appliance)/服务的容器嵌套在执行其他类型的服务的其他容器内。例如,SD联网服务220可以将安全容器嵌套在控制容器内以执行与控制功能相关的安全服务。SD联网服务220也可以将执行安全设备/服务的容器嵌套在执行安全设备/服务的其他容器内。例如,SD联网服务220可以将防火墙容器和智能交换机容器嵌套在路由器容器内。
此外,SD联网服务220可在SDCS 200中部署执行安全设备/服务的容器的N个冗余实例。例如,SD联网服务220可以部署防火墙容器的第一实例以接收传入的数据分组和传送传出的数据分组,以及部署防火墙容器的第二实例以接收传入的数据分组和传送传出的数据分组。SD联网服务220可部署防火墙容器的第一和第二实例以从相同的源(例如,控制服务)接收输入数据分组。然而,虽然防火墙容器的第一实例可以将传出的数据分组传送到SDCS 200外部的远程系统,但是SD联网服务220不将防火墙的第二实例配置为将传出的数据分组传送到远程系统。相反,SD联网服务220可将防火墙的第二实例配置为将传出数据分组传送到SDCS 200内的监视系统,或者将如何处理传入的数据分组的指示传送到SDCS 200内的监视系统。以这种方式,SD联网服务220可以监视防火墙功能是否正确地执行。
图20示出了与网络安全相关的示例容器、服务和/或子系统的框图。如图20所示,SDCS包括执行类似于图2所示的SD联网服务220的联网服务1002的容器。联网服务1002部署并管理路由器容器1004的第一实例和路由器容器1006的第二实例。第一路由器容器1004执行第一安全服务1008,并且第二路由器容器1006执行第二安全服务1010。联网服务1002可以部署第一路由器容器1004以连接到具有第一罐容器1014和第一控制容器1016的第一单元容器1012。联网服务1002还可以部署第一路由器容器1004以连接到第一I/O服务器容器1018。以这种方式,第一路由器容器1004可以促进第一单元容器1012和第一I/O服务器容器1018之间的通信。第一安全服务1008可以包括用于在第一单元容器1012和第一I/O服务器容器1018之间路由通信的第一安全规则集合。
联网服务1002可以部署第二路由器容器1006以连接到具有第一混合器容器1022和第二控制容器1024的第二单元容器1020。联网服务1002还可以部署第二路由器容器1006以连接到第二I/O服务器容器1026。以这种方式,第二路由器容器1006可以促进第一单元容器1020和第二I/O服务器容器1026之间的通信。第二安全服务1010可以包括用于在第二单元容器1020和第二I/O服务器容器1026之间路由通信的第二安全规则集合。
SDCS还可以包括执行证书授权服务1028的容器。另外,SDCS可以包括过程工厂10的物理或逻辑资产,其可以在过程工厂10的运行时间期间用于控制工业过程的至少一部分,诸如现场设备、控制器、过程控制设备、I/O设备、计算节点、容器、服务(例如,控制服务)、微服务等。物理或逻辑资产可以从证书授权服务1028请求数字证书,以在SDCS中通信时证明它们的真实性,例如公共密钥基础设施(PKI)证书。当物理资产或逻辑资产请求证书时,证书授权服务1028获得物理资产或逻辑资产的标识信息,并且基于该标识信息来验证物理资产或逻辑资产的身份。证书授权服务1028然后生成用于物理或逻辑资产的证书,该证书可以包括用于物理或逻辑资产的密码公钥或其他标识符、用于证书授权服务1028的标识符、以及用于证书授权服务1028的数字签名,以证明证书已经由证书授权服务1028生成。证书授权服务1028将证书提供给物理或逻辑资产,该物理或逻辑资产可以在与SDCS内的其他节点或服务通信时将证书用于认证目的。在一些实施方式中,其他服务可以使用包括在证书中的物理或逻辑资产的密码公钥来加密与物理或逻辑资产的通信。
同样在一些实施方式中,SDCS内的用户可以从证书授权服务1028请求数字证书,例如工厂操作员、配置工程师和/或与工业过程工厂10关联的其他人员。当用户请求数字证书时,用户可以提供识别信息,例如用户的名称、地址、电话号码、工业过程工厂10内的角色、用户名和密码等。证书授权服务1028可例如通过将从用户获得的标识信息与从其他源获得的用户的标识信息进行比较来验证用户的身份。如果证书授权服务1028能够验证用户,则证书授权服务1028生成数字证书并将其提供给用户。以这种方式,用户可以提供数字证书来访问SDCS内的节点或服务,而不必输入登录信息。在一些实施方式中,证书授权服务1028可以在证书中包括用于用户的授权信息。SDCS可以基于用户在工业过程工厂10中的角色来向用户指派授权级别。然后,证书授权服务1028可以为工业过程工厂10内的不同授权级别和/或角色生成不同类型的证书。以这种方式,用户试图访问的节点或服务可以基于用户提供的证书的类型来确定用户在工业过程工厂10内的授权级别和/或角色。节点或服务然后可以基于用户在工业过程工厂10内的授权级别和/或角色来确定用户是否被授权为访问节点或服务。在一些实施方式中,用户可以基于用户的授权级别和/或在工业过程工厂10内的角色而部分访问节点或服务。因此,节点或服务可以向用户提供对节点或服务的一些部分的访问,并且阻止用户访问节点或服务的其他部分。
在一些实施方式中,用户可以由通过数字证书保护的角色来定义。例如,过程管理者角色可以对应于具有第一数字证书集合的第一授权级别,其不同于对应于具有第二数字证书集合的第二授权级别的操作员角色。
虽然图20中的促进控制服务和I/O服务之间的通信的路由器容器1004、1006中包括安全服务1008、1010,但是这仅仅是一个示例实施方式。另外或可替换地,安全服务可以嵌套在执行诸如控制服务、I/O服务等的其他类型的服务的容器中。图21示出了图20中的SDCS的附加或替代实施方式的框图。如图21所示,除了分别在第一路由器容器1004和第二路由器容器1006内部署第一安全服务1008和第二安全服务1010之外,联网服务1002还在第一控制容器1116内执行的容器(安全容器)内部署第三安全服务1102,并且在第二控制容器1124内执行的容器(安全容器)内部署第四安全服务1104。第三安全容器1102可以具有定义安全条件的内容,例如安全规则集合。另外,第四安全容器1104也可以具有定义安全条件的内容,诸如可以与第三安全容器1102的内容相同或不同的安全规则集合。内容还可以包括用于相应控制容器的控制策略,例如控制历史和存储。
以这种方式,第三安全服务1102可以包括第三安全规则集合,其专用于第一控制容器1116,而不一定应用于连接到路由器容器的其他服务或节点。此外,第三安全服务1102可以在由第一控制容器1116生成的数据跨通信网络被传送之前对其进行加密。这可以在数据到达路由器容器之前提供附加的安全层。虽然在图21中安全服务1102和1104被嵌套在控制容器中,但是安全服务可以被嵌套在任何合适的容器中,诸如I/O服务器容器、操作员工作站容器等。
图22示出了图20的第一路由器容器1004的详细框图。路由器容器可以包括嵌套在路由器容器内的安全设备或服务。另外,每个安全设备或服务可以包括嵌套在其中的另外的服务。路由器容器可以包括执行第一安全服务1204的第一防火墙容器1202、执行第二安全服务1208的第一数据二极管容器1206、执行第三安全服务1212的第一智能交换机容器1210、以及分组检查服务1214。
第一安全服务1204可以包括用于第一防火墙容器1202的第一安全规则集合,诸如白名单或接受列表,其允许数据由预定的节点或服务接收/传送,同时阻止其他连接类型或端口。第一安全规则集合可以仅允许从第一路由器容器1004传送授权的流量。例如,第一安全服务1204可以防止来自过程工厂10的外部源的数据被发送到控制容器。
第二安全服务1208可以允许数据流量从SDCS输出到远程系统,并且可以防止数据流量(例如,从远程系统或其他系统传送或发送的数据)进入SDCS。因此,第二安全服务1208仅支持经由软件从虚拟输入端口到虚拟输出端口的单向数据流,例如通过丢弃或阻止在虚拟输出端口处接收的(例如,来自远程系统的)任何消息和/或通过丢弃或阻止寻址到虚拟输入端口的(例如,从远程系统寻址到SDCS中的节点或服务的)任何消息。第二安全服务1208还可加密从SDCS传送到远程系统的数据。
第三安全服务1208可以确定用于旨在接收数据分组的节点或服务的网络地址,并且可以经由该网络地址将数据分组传送到该节点或服务。例如,当控制容器经由路由器容器向I/O服务器容器传送数据时,第三安全服务1208识别I/O服务器容器的网络地址并且经由该网络地址向I/O服务器容器传送数据。第三安全服务1208可以向连接到路由器容器的每个节点或服务指派网络地址,并且可以确定指派给旨在接收数据分组的节点或服务的网络地址。
分组检查服务1214可以通过在分组内容流过路由器容器时检查分组内容来识别经过路由器容器的网络数据流的模式。分组检查服务1214然后可以使用已知的流量模式来确定特定服务或节点是否正在经历超规范行为。分组检查服务1214然后可将服务或节点识别为可疑的,并且可将它们标记给用户以便采取行动。分组检查服务1214还可执行诊断操作以确定超规范行为的可能原因。虽然图22中的路由器容器包括第一防火墙容器1202、第一数据二极管容器1206、第一智能交换机容器1210和分组检查服务1214,但是这仅是为了便于说明的一个示例实施方式。路由器容器可以包括任何适当的安全设备和/或服务。
在一些实施方式中,联网服务可以部署具有在SDCS内运行的每个控制服务的防火墙服务。防火墙服务可以在嵌套在执行相应控制服务的容器中的容器内执行。在其他实施方式中,防火墙服务在指派给相应控制服务的独立容器内执行。如图23所示,联网服务部署第一防火墙容器1302以管理去往和来自第一控制容器1304的网络流量,并且部署第二防火墙容器1308以管理去往和来自第二控制容器1310的网络流量。可以由SD存储服务218管理的控制配置数据库1306可以向第一控制容器1304提供第一控制配置。控制配置数据库1306还可以向用于所指派的第一控制容器1304的第一防火墙容器1302提供第一组定制的防火墙规则。另外,控制配置数据库1306可以向第二控制容器1310提供第二控制配置。控制配置数据库1306可以向用于所指派的第二控制容器1310的第二防火墙容器1308提供第二组定制的防火墙规则。在其他实施方式中,控制配置服务与控制配置数据库1306通信以向控制容器1304、1310提供控制配置并向防火墙容器1302、1308提供定制的防火墙规则。
例如,第一组定制的防火墙规则可包括白名单或接受列表,其允许第一控制容器1304接收数据并将数据传送到第一I/O服务器,但不允许第一控制容器1304接收数据或将数据传送到任何其他节点或服务。在另一示例中,第一组定制的防火墙规则可包括白名单或接受列表,其允许第一控制容器1304接收数据并将数据传送到SDCS外部的远程系统的特定网络地址。在又一示例中,第一组定制的防火墙规则可包括被允许访问来自第一控制容器1304的数据的服务或节点的白名单或接受列表,并且阻止未包括在白名单或接受列表中的服务或节点访问来自控制容器的数据。定制的防火墙规则可以是动态的,因为防火墙容器1302、1308可以基于对控制容器1304、1310的配置的未来改变从控制配置服务接收不同的防火墙规则。
如上所述,本文描述的安全服务可以包括分组检查服务、访问控制服务、授权服务、认证服务、加密服务、证书授权服务、密钥管理服务等。图24示出了嵌套在控制容器1402内的安全容器1404的详细框图,类似于图21所示的配置。安全容器1404可以包括加密服务1406、认证服务1408和授权服务1410。以这种方式,安全容器1404可以加密由控制容器1402传送的数据。安全容器1404还可以认证和/或授权试图访问控制容器1402的物理或逻辑资产或用户。
例如,当物理或逻辑资产或用户试图访问控制容器1402时,认证服务1408可验证试图访问控制容器1402的物理或逻辑资产或用户的真实性。例如,认证服务1408可以从物理或逻辑资产或用户获得由证书授权机构颁发的数字证书,以验证物理或逻辑资产或用户的真实性。数字证书可以包括用于物理或逻辑资产的密码公钥或其他标识符、用于证书授权服务的标识符、以及用于证书授权服务的数字签名,以证明证书已经由证书授权服务生成。在一些实施方式中,认证服务1408分析证书授权服务的标识符和证书授权服务的数字签名以确定证书是否已经由证书授权服务生成。在其他实施方式中,认证服务1408将数字证书传送到SDCS中的证书授权服务,以确定证书是否已由证书授权服务生成。
如果认证服务1408能够验证物理或逻辑资产或用户的真实性,则授权服务1410可以确定物理或逻辑资产或用户的授权级别。另一方面,如果认证服务1408不能验证物理或逻辑资产或用户的真实性,则认证服务1408可拒绝对控制容器1402的访问。
在任何情况下,授权服务1410基于物理或逻辑资产或用户的授权级别来确定物理或逻辑资产或用户是否被授权为访问控制容器1402。如果物理或逻辑资产或用户具有满足或超过用于访问控制容器1402的最小授权级别的授权级别,则授权服务1410确定物理或逻辑资产或用户被授权为访问控制容器1402。否则,授权服务1410可拒绝对控制容器1402的访问。
在一些实施方式中,物理或逻辑资产或用户的授权级别被包括在证书中。不同类型的证书可以指示工业过程工厂10内的不同授权级别和/或角色。因此,授权服务1410可以基于证书来确定物理或逻辑资产或用户的授权级别。在其他实施方式中,授权服务1410从逻辑存储资源获得物理或逻辑资产或用户的预存储的授权级别,并且基于预存储的授权级别确定物理或逻辑资产的授权级别。在一些实施方式中,物理或逻辑资产或用户可以基于授权级别来部分地访问控制容器1402。因此,控制容器1402可以向物理或逻辑资产或用户提供对控制容器1402的一些部分的访问,并且阻止物理或逻辑资产或用户访问控制容器1402的其他部分。
在任何情况下,响应于认证和授权物理或逻辑资产或用户,加密服务1406可使用包括在证书中的密码公钥来加密从控制容器1402到物理或逻辑资产或用户的数据。物理或逻辑资产或用户然后可以使用与密码公钥配对的密码私钥来解密数据。如果物理或逻辑资产或用户不具有与密码公钥配对的密码私钥,则物理或逻辑资产或用户不能解密数据,这是另一种形式的认证。
访问控制服务可以包括上述授权或认证服务以及白名单或接受列表、和/或允许由预定节点或服务接收/传送数据同时阻止其他节点或服务在过程控制网络中接收或传送数据的其他服务。密钥管理服务可以存储和/或访问与过程工厂10中的每个物理或逻辑资产相关联的密码公钥的记录。在其他实施方式中,密钥管理服务从发现项目数据储存器获取密码公钥的记录,如下面更详细描述的。然后,当需要认证物理或逻辑资产时,物理或逻辑资产将其密码公钥提供给认证服务。认证服务可以调用密钥管理服务以从发现项目数据储存器获取记录,以确定针对物理或逻辑资产所提供的密码公钥是否与包括在发现项目数据储存器中的密码公钥匹配。
密钥管理服务还可以存储用于过程工厂10中的物理或逻辑资产的密码私钥和/或PSK。另外,密钥管理服务可以存储用于过程工厂10中的物理或逻辑资产的证书。密钥管理服务可以密码保护密钥和证书和/或对它们进行加密,使得用户或物理或逻辑资产必须在获得对其相应密钥或证书的访问之前对其自身进行认证。
在图22的示例路由器容器中,路由器容器可以促进SDCS内的节点或服务之间的通信或者SDCS内的节点或服务与SDCS外部的远程系统之间的通信。图25示出了用于促进SDCS内的节点或服务与SDCS外部的远程系统之间的通信的示例路由器容器1502的框图。路由器容器1502可以包括执行第一加密服务1506的现场网关容器1504、执行第二加密服务1510的数据二极管容器1508、以及执行防火墙服务1514和认证服务1516的边缘网关容器1512。
现场网关容器1504可以与过程工厂的现场环境12中的节点或服务通信,例如过程控制设备、现场设备、控制服务等。例如,现场网关容器1504可以包括具有防火墙规则的防火墙服务,以仅允许来自过程工厂的现场环境12中的节点或服务的流量。现场网关容器1504还可以执行第一加密服务1506以对来自过程工厂的现场环境12的数据进行加密。然后,现场网关容器1504可以将数据传送到数据二极管容器1508。
数据二极管容器1508可以允许数据流量从现场网关容器1504输出到远程系统,并且可以防止数据流量(例如,从远程系统或其他系统传送或传送的数据流量)进入到现场网关容器1504中。因此,数据二极管容器1508仅支持经由软件从现场网关容器1504到边缘网关容器1512的单向数据流,例如通过丢弃或阻止在边缘网关容器1512处接收的(例如,来自远程系统的)任何消息和/或通过丢弃或阻止寻址到现场网关容器1504的(例如,从远程系统寻址到SDCS中的节点或服务的)任何消息。除了第一加密服务1506之外或作为其替代,第二加密服务1510还可以对来自现场网关容器1504的数据进行加密。数据二极管容器1508随后可以将加密数据传送到边缘网关容器1512。
在一些实施方式中,在实例化期间,数据二极管容器1508可以临时允许在实体(例如,现场网关容器1504和边缘网关容器1512)之间的握手(例如,证书和预共享密钥的交换),所述实体经由数据二极管容器1508向/从过程工厂10传送传入或传出的数据,以适当地建立加密连接,例如在数据报传输层安全(DTLS)或其他面向消息的安全协议中。一旦DTLS握手完成,就建立了连接,并且从该点开始数据二极管容器1508在数据二极管容器1508的剩余持续时间内仅支持单向数据流,例如,从现场网关容器1504到边缘网关容器1512的单向数据流。如果在数据二极管容器1508的输入端和输出端上的实体之间存在连接问题,则数据二极管容器1508可能需要重新启动,以允许再次进行DTLS握手。
边缘网关容器1512可以与过程工厂10外部的远程系统通信。边缘网关容器1512可以包括具有防火墙规则的防火墙服务1514,以仅允许来自预定远程系统的流量。边缘网关容器1512还可以执行认证服务,以认证与边缘网关容器1512通信的远程系统。例如,从边缘网关容器1512输送到远程系统的流量可以经由SAS(共享访问签名)令牌来保护,SAS令牌可以通过在远程系统210处提供的令牌服务来管理。边缘网关容器1512认证令牌服务并请求SAS令牌,SAS令牌可能仅在有限时间段内有效,例如两分钟、五分钟、三十分钟、不超过一小时等。边缘网关容器1512接收SAS令牌并使用SAS令牌来保护和认证到远程系统的AMQP(高级消息排队协议)连接,经由该AMQP连接,内容数据从边缘网关容器1512传送到远程系统。另外或可替换地,可以利用其他安全机制来保护在边缘网关容器1512和远程系统210之间传送的数据,例如X.509证书、其他类型的令牌、诸如MQTT(MQ遥测传输)或XMPP(可扩展消息传递和存在协议)之类的其他IOT协议等等。边缘网关容器1512随后可以将数据传送到远程系统。
如上所述,为了在SDCS中通信时证明真实性,物理或逻辑资产或用户可以从证书授权服务请求数字证书。图26示出了类似于如图20所示的证书授权容器1028的证书授权容器1602的详细框图。证书授权容器1602可包括证书生成服务1604和证书验证服务1606。
证书生成服务1604可以在例如从物理或逻辑资产接收到请求时生成针对物理或逻辑资产的数字证书。在接收到请求时,证书生成服务1604获取物理或逻辑资产的标识信息,并基于该标识信息验证物理或逻辑资产的身份。例如,请求可以包括物理或逻辑资产的名称、物理或逻辑资产的样式和型号、与物理或逻辑资产所拥有的密码私钥相关联的密码公钥、或任何其他合适的标识信息。证书生成服务1604可以例如通过将从物理或逻辑资产获得的标识信息与从其他源获得的物理或逻辑资产的标识信息进行比较来验证物理或逻辑资产的身份。如果证书生成服务1604不能验证物理或逻辑资产的身份,则证书生成服务1604不为物理或逻辑资产生成证书。
另一方面,如果证书生成服务1604能够验证物理或逻辑资产的身份,则证书生成服务1604为物理或逻辑资产生成证书,该证书可包括用于物理或逻辑资产的密码公钥或其他标识符、用于证书授权服务1602的标识符(诸如密码公钥)、以及用于证书授权服务1602的数字签名,以证明证书已经由证书授权服务1602生成。证书生成服务1604向物理或逻辑资产提供证书,该物理或逻辑资产在与SDCS内的其他节点或服务通信时可以使用该证书用于认证目的。在一些实施方式中,其他服务可以使用包括在证书中的物理或逻辑资产的密码公钥来加密与物理或逻辑资产的通信。
同样在一些实施方式中,SDCS内的用户可以从证书生成服务1604请求数字证书,例如工厂操作员、配置工程师和/或与工业过程工厂10关联的其他人员。当用户请求数字证书时,用户可以提供标识信息,例如用户的名称、地址、电话号码、工业过程工厂10内的角色、用户名和密码等。证书生成服务1604可以通过例如将从用户获得的标识信息与从其他源获得的用户的标识信息进行比较来验证用户的身份。
如果证书生成服务1604不能验证用户,则证书生成服务1604不为用户生成证书。另一方面,如果证书生成服务1604能够验证用户,则证书生成服务1604生成数字证书并将其提供给用户。以这种方式,用户可以提供数字证书来访问SDCS内的节点或服务,而不必输入登录信息。在一些实施方式中,证书生成服务1604可以在证书中包括用户的授权信息。SDCS可以基于用户在工业过程工厂10中的角色来向用户指派授权级别。证书生成服务1604然后可以为工业过程工厂10内的不同授权级别和/或角色生成不同类型的证书。以这种方式,用户试图访问的节点或服务可以基于用户提供的证书的类型来确定用户在工业过程工厂10内的授权级别和/或角色。
当物理或者逻辑资产或者用户试图访问SDCS中的节点或者服务时,该节点或者服务可以向证书验证服务1606提供请求以认证物理或者逻辑资产或者用户。更具体而言,物理或逻辑资产或用户可以向节点或服务提供证书,该节点或服务可以将证书转发给证书验证服务1606。在一些实施方式中,证书验证服务1606分析证书中包括的证书授权服务的标识符和证书中包括的证书授权服务的数字签名,以确定证书是否已经由证书授权服务生成。例如,证书验证服务1606可确定包括在证书中的证书授权机构密码公钥是否与证书授权机构的密码公钥匹配。另外,证书验证服务1606可确定数字签名是否证明生成证书的实体拥有与密码公钥相关联的密码私钥。如果这两者都为真,则证书验证服务1606可以确定证书已经由证书授权服务生成。
则证书验证服务1606可以向节点或服务提供物理或逻辑资产或用户已被认证的指示。另外或可替换地,当证书包括用户的授权级别的指示时,证书验证服务1606可以向节点或服务提供授权级别的指示。
图27示出了可以包括在SDCS的节点或服务(例如控制容器和操作员工作站容器(例如虚拟工作站))中的示例认证和授权服务。如图27所示,控制容器1702包括第一认证服务1704,并且操作者工作站容器1706包括第二认证服务1708和授权服务1710。
控制容器1702可以接收来自物理或逻辑资产的访问请求,其中该请求包括证书。因此,第一认证服务1704可使用证书来认证物理或逻辑资产。在一些实施方式中,第一认证服务1704可以向诸如图26所示的证书授权服务1602之类的证书授权服务提供证书,以认证物理或逻辑资产。在任何情况下,在认证物理或逻辑资产之后,第一认证服务1704可提供对控制容器1702的访问。否则,第一认证服务1704可拒绝对控制容器1702的访问。
操作员工作站容器1706可接收来自用户的访问请求,其中该请求包括证书。因此,第二认证服务1708可以使用证书来认证用户。在一些实施方式中,第二认证服务1708可以向诸如图26所示的证书授权服务1602之类的证书授权服务提供证书以认证用户。在任何情况下,在认证用户之后,第一认证服务1704可向操作员工作站容器1706提供用户已被认证的指示。
授权服务1710然后基于用户的授权级别确定用户是否被授权为访问操作员工作站容器1706。如果用户具有满足或超过用于访问操作员工作站容器1706的最小授权级别的授权级别,则授权服务1710确定用户被授权为访问操作员工作站容器1706。否则,授权服务1710可以拒绝对操作员工作站容器1706的访问。
在一些实施方式中,用户的授权级别被包括在证书中。不同类型的证书用于工业过程工厂10内的不同授权级别和/或角色。因此,授权服务1710可以基于证书来确定用户的授权级别。在其他实施方式中,授权服务1710从逻辑存储资源获得用户的预存储的授权级别,并且基于预存储的授权级别确定用户的授权级别。在一些实施方式中,用户可以基于授权级别而部分访问操作员工作站容器1706。因此,操作员工作站容器1706可向用户提供对操作员工作站容器1706的某些部分的访问,并阻止用户访问操作员工作站容器1706的其他部分。
除了加密SDCS中的网络通信之外,SDCS还加密逻辑存储资源。图28示出了包括加密服务1804和认证服务1806的示例存储服务1802的框图。
当存储服务1802将逻辑存储资源存储在SDCS中时,加密服务1804对逻辑存储资源中包括的数据进行加密。然后,当物理或逻辑资产或用户试图访问逻辑存储资源时,认证服务1806对物理或逻辑资产或用户进行认证。例如,认证服务1806可以基于由证书授权机构颁发的用于物理或逻辑资产或用户的证书来认证物理或逻辑资产或用户。如果认证服务1806能够认证物理或逻辑资产或用户,则存储服务1802可以解密包括在逻辑存储资源中的数据,并且将经解密的逻辑存储资源提供给物理或逻辑资产或用户。否则,存储服务1802不为物理或逻辑资产或用户解密数据。
图29示出了表示保护过程工厂的过程控制系统的示例方法1900的流程图。该方法可以由软件定义联网服务、安全容器或这些的任何合适的组合来执行。
在框1902,软件定义联网服务生成被配置为经由SDCS内的计算节点上的容器执行的安全服务。例如,安全服务可以包括虚拟路由器、虚拟防火墙、虚拟交换机、虚拟接口、虚拟数据二极管、分组检查服务、访问控制服务、授权服务、认证服务、加密服务、证书授权服务、密钥管理服务、或与安全有关的任何其他合适的服务。
然后在框1904,软件定义联网服务实例化安全容器的实例以与控制容器一起操作。安全容器的实例可以是主要实例。软件定义联网服务还可以实例化安全容器的N个冗余实例,例如,以仿真与控制容器的操作,而不实际控制对控制容器的访问或来自控制容器的数据流。在一些实施方式中,软件定义联网服务将安全容器嵌套在控制容器内。在另外的或替代的实施方式中,软件定义联网服务将安全容器绑住到与控制容器在其上执行的计算节点相同的计算节点。在其他实施方式中,安全容器是被指派给控制容器的独立容器。
在框1906,软件定义联网服务根据控制容器向安全容器指派安全条件。例如,控制配置服务可以从控制配置存储资源获得控制配置,并且将控制配置提供给控制容器。控制配置存储资源还可以包括用于控制容器的定制的防火墙规则集合。软件定义联网服务可从控制配置服务获得用于控制容器的定制的防火墙规则集合,并且可将该定制的防火墙规则集合指派给安全容器作为安全条件。软件定义联网服务还可以根据控制容器指派其他安全条件,例如认证试图访问控制容器的物理或逻辑资产或用户、要求用户具有超过或满足最小阈值授权级别的授权级别、防止来自过程工厂10外部的远程系统的访问、或防止来自过程工厂10外部的远程系统的传入数据。
在一些实施方式中,软件定义联网服务可以向安全容器指派替代的或附加的安全条件以更新安全容器的内容。例如,在第一时间点,软件定义联网服务可向安全容器指派第一安全规则集合。然后,在稍后的时间点,软件定义联网服务可以获得用于控制容器的经更新的控制配置。软件定义联网服务还可由于控制配置的改变而获得用于控制容器的经更新的防火墙规则,并且可将经更新的防火墙规则指派给安全容器作为安全条件。
在框1908,安全容器基于指派给该安全容器的安全条件来控制对该控制容器的访问和/或来自该控制容器的数据流。例如,安全容器可以防止未包括在白名单或接受列表中的节点或服务与控制容器通信。
图30示出了表示用于SDCS中的基于角色的授权的示例方法2000的流程图。该方法可以由安全容器或授权服务执行。
在框2002,经由SDCS内的计算节点上的容器执行的安全服务从用户获得访问SDCS内的另一服务或节点(例如控制容器)的请求。在一些实施方式中,安全服务可以从由用户控制的过程工厂10的物理或逻辑资产获得请求。同样在一些实施方式中,请求可以包括由用户提供的证书,用于验证用户的真实性并且包括用于用户的授权信息。
在框2004,安全服务确定用户的授权级别。例如,用户的授权级别可以被包括在证书中。不同类型的证书可以指示工业过程工厂10内的不同授权级别和/或角色。因此,安全服务可以基于证书来确定用户的授权级别。在其他实施方式中,安全服务从逻辑存储资源获得用户的预存储的授权级别,并基于预存储的授权级别确定物理或逻辑资产的授权级别。
在框2006,安全服务基于授权级别来确定用户是否被授权为访问其他服务或节点。例如,如果用户具有满足或超过用于访问SDCS内的其他服务或节点的最小授权级别的授权级别,则安全服务确定用户被授权为访问其他服务或节点。因此,安全服务向用户提供对诸如控制容器之类的其他服务或节点的访问(框2008)。否则,安全服务可以拒绝对其他服务或节点的访问(框2010)。
图31示出了表示用于由证书授权服务生成数字证书以用于认证过程工厂10的物理或逻辑资产的示例方法2100的流程图。该方法可以由证书授权服务执行。
在框2102,证书授权服务从过程工厂10的物理或逻辑资产获得对证书的请求。在接收到请求时,证书授权服务获得物理或逻辑资产的标识信息,并基于该标识信息验证物理或逻辑资产的身份(框2104)。例如,请求可以包括物理或逻辑资产的名称、物理或逻辑资产的样式和型号、与物理或逻辑资产所拥有的密码私钥相关联的密码公钥、或任何其他适合的标识信息。证书授权服务可以通过例如将从物理或逻辑资产获得的标识信息与从其他源获得的物理或逻辑资产的标识信息进行比较来验证物理或逻辑资产的身份。如果证书授权服务不能验证物理或逻辑资产的身份,则证书授权服务不生成物理或逻辑资产的证书。
另一方面,如果证书授权服务能够验证物理或逻辑资产的身份,则证书授权服务生成物理或逻辑资产的证书,该证书可包括物理或逻辑资产的密码公钥或其他标识符、诸如密码公钥的证书授权服务的标识符、以及证书授权服务的数字签名,以证明证书已由证书授权服务生成(框2106)。证书授权服务向物理或逻辑资产提供证书,该物理或逻辑资产可以在与SDCS内的其他节点或服务通信时用于认证目的使用证书(框2108)。在一些实施方式中,其他服务可以使用包括在证书中的物理或逻辑资产的密码公钥来加密与物理或逻辑资产的通信。
图32示出了表示用于认证过程工厂10的物理或逻辑资产的示例方法2200的流程图。该方法可以由安全服务、认证服务或这些服务的任何适合的组合来执行。
在框2202,经由SDCS内的计算节点上的容器执行的安全服务从物理或逻辑资产获得访问SDCS内的另一服务或节点的请求。该请求可以包括由物理或逻辑资产提供的证书,以用于验证物理或逻辑资产的真实性。
在框2204,经由SDCS内的计算节点上的容器执行的认证服务基于证书来验证物理或逻辑资产的真实性。例如,认证服务可以分析包括在证书中的证书授权服务的标识符、以及包括在证书中的证书授权服务的数字签名,以确定证书是否已经由证书授权服务生成。在其他实施方式中,认证服务向证书授权服务提供证书以验证物理或逻辑资产的真实性。
如果认证服务能够验证物理或逻辑资产或用户的真实性(框2208),则安全服务可以提供对其他服务或节点的访问。另一方面,如果认证服务不能验证物理或逻辑资产的真实性,则安全服务可以拒绝对其他服务或节点的访问(框2210)。
SDCS还可以包括经由SDCS的计算节点上的容器执行的发现服务。发现服务存储过程工厂10中的每个物理或逻辑资产的身份、能力和/或位置的记录,该物理或逻辑资产可以在过程工厂10的运行时期间被利用以控制工业过程的至少一部分,例如现场设备、控制器、过程控制设备、I/O设备、计算节点、容器、服务(例如控制服务)、微服务等。
在一些实施方式中,发现服务可将记录存储在发现项目数据存储器中。SDCS可以包括用于冗余/容错的跨多个计算节点存储的发现项目数据存储器的多个实例。在其他实施方式中,发现项目数据存储器的实例可以存储在SDCS内的每个计算节点上,以便于访问的容易性和速度。
同样在一些实施方式中,发现服务可以将记录或其至少一部分提供给I/O服务器服务,以便调试物理或逻辑资产。例如,当物理或逻辑资产加入过程工厂10中的网络22、25、30、32、35、42-58时,物理或逻辑资产通告其存在。该通告可以包括诸如物理或逻辑资产的标识信息和物理或逻辑资产的位置信息之类的参数,例如用于与物理或逻辑资产通信的网络地址。发现服务或任何其他适合的服务可获得通告,并将物理或逻辑资产的标识信息和位置信息传送到I/O服务器服务以供使用标识信息和位置信息来自动调试物理或逻辑资产。
图33示出了与发现相关的示例容器、服务和/或子系统的框图。如图33所示,SDCS包括执行发现服务2302的容器。虽然发现服务2302在图33中示出在容器(发现容器)内执行,但是在其他实施方式中,发现服务2302可以不被容器化。同样在一些实施方式中,SDCS可以包括在多个容器中的发现服务2302的多个实例以供冗余。在一些实施方式中,发现服务2302可以由SD联网服务220部署或嵌套在图2的SD联网服务220内。
SDCS还包括发现项目数据存储器2304,其是存储过程工厂10中的每个发现的物理或逻辑资产的记录的逻辑存储资源。在发现物理或逻辑资产时,发现服务2302可以将物理或逻辑资产的记录存储在发现项目数据存储器2304中。
当新的物理或逻辑资产被添加到过程工厂10中的网络22、25、30、32、35、42-58(本文也称为“过程工厂网络”)时,新的物理或逻辑资产可以通过例如将其网络地址广播到连接到过程工厂网络22、25、30、32、35、42-58的节点或服务来通告其存在。在其他实施方式中,新的物理或逻辑资产可以通过例如响应来自连接到过程工厂网络22、25、30、32、35、42-58的特定节点或服务的多播通告来通告其存在。在其他实施方式中,新的物理或逻辑资产可以将其网络地址通告到保留的点对点网络地址或多播地址。新的物理或逻辑资产可以一次性地、周期性地、根据请求或者以任何适当的方式通告其网络地址。
过程工厂10中的物理资产可以是被配置为在过程工厂10的运行时期间控制工业过程的至少一部分的物理硬件设备,例如现场设备、控制器、过程控制设备、I/O设备、计算节点等。物理硬件设备可以包括相应的处理器和/或处理器核心资源和存储器资源的集合。过程工厂10中的逻辑资产可以是被配置为在过程工厂10的运行时期间控制工业过程的至少一部分的软件,例如容器、诸如控制服务的服务、微服务等等。在一些实施方式中,逻辑资产可以在物理资产内执行。
发现服务2302可以获得该通告并基于该通告中所包括的物理或逻辑资产的参数来确定该物理或逻辑资产的身份。通告可以包括定义每个物理或逻辑资产的YAML文件。例如,当SDCS先前已被调试/配置时,可以手动或自动生成YAML文件。在其他实施方式中,通告包括不同类型的文件,诸如JSON文件、XML文件或任何其他数据串行化文件。
更具体地,该通告可以包括物理或逻辑资产的资产标签、物理或逻辑资产的媒体访问控制(MAC)地址、物理或逻辑资产的网络地址、物理或逻辑资产的密码密钥、物理或逻辑资产的序列号、和/或与物理或逻辑资产相关联的服务或子系统的名称。虽然参数中的一些(例如MAC地址)可以唯一地标识物理或逻辑资产,但是其他参数(例如序列号)可以对应于具有相同样式和型号的多个资产。因此,发现服务2302可以基于包括在通告中的参数的任何适合的组合来标识物理或逻辑资产。例如,两个物理或逻辑资产可以是具有作为部件号的相同序列号的阀。可以基于两个阀的序列号和密码密钥的组合来标识两个阀。
资产标签可以是指派给/配置到物理或逻辑资产的名称或编号,并且可以唯一地标识SDCS内的特定物理或逻辑资产,或者可以更一般地标识资产类型。例如,如果物理资产是控制阀,则资产标签可以是“CTRL-VALVE”,并且过程工厂10可以包括具有相同资产标签的若干控制阀。在其他实施方式中,资产标签可以是“CTRL-VALVE-01”以唯一地标识该特定控制阀,并且其他控制阀可以是“CTRL-VALVE-02”、“CTRL-VALVE-03”等。在另一个示例中,如果逻辑资产是控制服务,则资产标签可以是“CTRL-SERV”,并且过程工厂10可以包括具有相同资产标签的若干控制服务。在其他实施方式中,资产标签可以是“CTRL-SERV-01”以唯一地标识该特定控制服务,并且其他控制服务可以是“CTRL-SERV-02”、“CTRL-SERV-03”等。
MAC地址可以是与物理或逻辑资产一起操作的网卡的地址。MAC地址可以唯一地标识物理资产。然而,对于逻辑资产,MAC地址对于在相同计算节点上操作的服务可以是相同的,并且当服务在不同计算节点上操作时MAC地址可以改变。因此,在一些实施方式中,MAC地址可以不用于标识逻辑资产,或者MAC地址可以与其他参数结合使用以标识逻辑资产。
网络地址可以是过程工厂网络22、25、30、32、35、42-58中的物理或逻辑资产的IP地址或其他标识符。序列号可以是指示物理资产的样式和型号的制造商指派的号码,例如部件号。
在一些实施方式中,可以向物理或逻辑资产指派包括密码私钥和密码公钥的非对称密钥对。非对称密钥对可以由用户或制造商指派。然后,物理或逻辑资产可以存储密码私钥而不与任何其他节点或服务共享它。物理或逻辑资产可以例如与发现服务2302共享密码公钥,并且发现服务2302可以存储指示密码公钥对应于特定资产的记录。
然后,当物理或逻辑资产需要被认证时,物理或逻辑资产向认证服务提供密码公钥。如以下参考图34更详细地示出的,认证服务可嵌套在发现服务内。在其他实施方式中,在与发现服务通信的SDCS的另一容器内提供认证服务。认证服务从发现项目数据存储器2304获取记录以确定为物理或逻辑资产提供的密码公钥是否与包括在发现项目数据存储器2304中的密码公钥匹配。物理或逻辑资产还向认证服务提供数字签名,以证明物理或逻辑资产拥有与密码公钥相对应的密码私钥。如果认证服务确定为物理或逻辑资产提供的密码公钥与包括在发现项目数据存储器2304中的密码公钥匹配,并且数字签名证明物理或逻辑资产拥有与密码公钥相对应的密码私钥,则认证服务认证物理或逻辑资产。
在其他实施方式中,物理或逻辑资产可以被指派物理或逻辑资产与发现服务2302共享的预共享密钥(PSK)。发现服务2302可以将与物理或逻辑资产相关联的PSK存储在发现项目数据存储器2304中。然后,当物理或逻辑资产与其他节点或服务通信时,物理或逻辑资产可以使用PSK对通信进行加密。发现服务2302然后可以从发现项目数据存储器2304中获取与物理或逻辑资产相关联地存储的PSK,对通信进行解密,并将解密的通信转发到其他节点或服务。以此方式,认证物理或逻辑资产,因为它使用仅在物理或逻辑资产与发现服务2302之间共享的PSK来加密通信。
除了确定物理或逻辑资产的身份之外,发现服务2302可以确定物理或逻辑资产在SDCS内的位置。例如,位置可以是物理或逻辑资产的网络地址,例如过程工厂网络22、25、30、32、35、42-58内的物理或逻辑资产的IP地址或其他标识符。除了网络位置之外,该位置还可以包括物理或逻辑资产的物理位置,诸如物理资产所在的过程工厂10的特定部分,或者存储和/或执行逻辑资产的计算节点的物理位置。发现服务2302基于包括在通告中的信息(诸如网络地址或物理位置的描述),确定物理或逻辑资产的位置。
此外,发现服务2302可以标识物理或逻辑资产的能力集合,诸如由物理或逻辑资产提供的过程参数(例如,阀打开百分比、罐填充百分比等)、由物理或逻辑资产提供的服务(例如,认证、授权、控制、分析、存储等)和/或被配置为与物理或逻辑资产通信的服务。例如,物理或逻辑资产可以包括作为主要变量的、通告中的物理或逻辑资产的能力中的至少一些。发现服务2302还可以标识物理或逻辑资产的未包括在通告中的能力,即上下文变量。更具体地,发现服务2302可以从上下文字典服务获取上下文变量,该上下文字典服务从物理或逻辑资产的类型推断能力集合。发现服务2302可以将物理或逻辑资产的身份提供给上下文字典服务,并且上下文字典服务可以基于该身份来确定物理或逻辑资产的类型。随后上下文字典服务向发现服务2302提供从物理或逻辑资产的类型推断的能力集合。下面将参考图34-36更详细地描述上下文字典服务。
在一些实施方式中,在标识物理或逻辑资产时,发现服务2302向过程控制配置服务通知新发现的物理或逻辑资产,以便调试和/或包括在SDCS拓扑中。然后,用户可以在过程控制配置服务处接受或拒绝新发现的物理或逻辑资产包括在SDCS拓扑中。此外在一些实施方式中,新发现的物理或逻辑资产可以由过程控制配置服务自动地包括在SDCS拓扑中。
在任何情况下,发现服务2302将物理或逻辑资产的记录存储在发现项目数据存储器2304中,该记录包括物理或逻辑资产的身份、物理或逻辑资产的位置、和/或物理或逻辑资产的能力的集合。以这种方式,发现项目数据存储器2304保持过程工厂10内的物理或逻辑资产中的每个的记录。其他物理或逻辑资产可以请求某些过程参数或服务,并且发现服务2302可以标识向请求物理或逻辑资产提供所请求的过程参数或服务的物理或逻辑资产。发现服务2302还可以向提供所请求的过程参数或服务的物理或逻辑资产提供位置信息,以使得请求物理或逻辑资产可以获得所请求的过程参数或服务。此外,发现服务2302可以将物理或逻辑资产的记录提供给I/O服务器或I/O设备,以便调试物理或逻辑资产,例如当物理或逻辑资产是现场设备时。
如果发现项目数据存储器2304被破坏或毁坏,发现服务2302可以经由过程工厂网络22、25、30、32、35、42-58自动广播请求过程工厂10中的物理或逻辑资产中的每一个通告它们的存在。然后,发现服务2302可以快速恢复过程工厂10内的物理或逻辑资产中的每一个的记录,而无需手动输入,并且不必中断过程工厂10的操作。
在一些实施方式中,来自发现服务2302的、对物理或逻辑资产的用于通告它们的存在的发现请求可以在具有中介的物理或逻辑资产之间转发。例如,图1的远程I/O资产78可以将发现请求转发到通信连接到远程I/O资产78的现场设备70中的每一个。现场设备70然后可以通过向远程I/O资产78通告它们的存在来响应发现请求,该远程I/O资产将通告转发到发现服务2302。
图34示出了被配置为执行与图33的发现服务2302类似的发现服务的示例发现容器2402的详细框图。发现容器2402包括可以执行认证服务2406的发现服务2404、可以包括上下文2410的上下文字典容器2408、以及位置服务2412。
发现服务2404可以获得加入过程工厂网络22、25、30、32、35、42-58的物理或逻辑资产的通告。通告可以包括物理或逻辑资产的资产标签、物理或逻辑资产的MAC地址、物理或逻辑资产的网络地址、物理或逻辑资产的密码密钥、物理或逻辑资产的序列号、和/或与物理或逻辑资产相关联的服务或子系统的名称。发现服务2404可以基于包括在通告中的这些参数来确定物理或逻辑资产的身份。
发现服务2404还可以确定物理或逻辑资产在SDCS内的位置。例如,位置可以是物理或逻辑资产的网络地址,例如过程工厂网络22、25、30、32、35、42-58内的物理或逻辑资产的IP地址或其他标识符。除了网络位置之外,该位置还可以包括物理或逻辑资产的物理位置,诸如物理资产所在的过程工厂10的特定部分,或者存储和/或执行逻辑资产的计算节点的物理位置。发现服务2404基于包括在通告中的信息(诸如网络地址或物理位置的描述),确定物理或逻辑资产的位置。
此外,发现服务2404可以标识物理或逻辑资产的能力集合,诸如由物理或逻辑资产提供的过程参数(例如,阀打开百分比、罐填充百分比等)、由物理或逻辑资产提供的服务(例如,认证、授权等)、和/或被配置为与物理或逻辑资产通信的服务。例如,物理或逻辑资产可以包括通告中的物理或逻辑资产的能力中的至少一些。发现服务2404还可以自动推断未包括在通告中的物理或逻辑资产的能力。例如,当物理或逻辑资产是现场设备时,通告可以包括可从现场设备获取的主要变量,例如流体的质量流率。发现服务2404还可以自动推断现场设备的上下文变量,诸如流体的速率、速度和/或密度。例如,当物理或逻辑资产是传统设备时,传统设备可能不被配置为通告某些能力。因此,传统设备通告主要变量,并且发现服务2404自动推断未包括在通告中的剩余能力或上下文变量。
在另一个示例中,当物理或逻辑资产是现场设备时,现场设备可以在事件驱动数据层(EDDL)中通告主要变量,例如阀位置和阀中的气压。发现服务2404可以自动推断现场设备的上下文变量,诸如阀健康度量、阀行程度量等。
更具体而言,发现服务2404可以从上下文字典容器2408获取这些能力。上下文字典容器2408包括从物理或逻辑资产的类型推断能力集合的上下文2410。对于每种类型的物理或逻辑资产,上下文2410可以包括由物理或逻辑资产提供的过程参数中的每一个、由物理或逻辑资产执行的服务中的每一个、以及SDCS内调用物理或逻辑资产以传送信息的服务中的每一个的列表。
发现服务2404可以将物理或逻辑资产的身份提供给上下文字典容器2408,并且上下文字典容器2408可以基于该身份来确定物理或逻辑资产的类型。例如,上下文字典容器2408可以存储用于基于物理或逻辑资产的身份来确定物理或逻辑资产的类型的规则集。更具体而言,上下文字典容器2408可以分析与物理或逻辑资产相关联的服务或子系统的资产标签、序列号或名称,以确定物理或逻辑资产的类型。例如,如果物理或逻辑资产的资产标签是“CTRL-VALVE-01”,则上下文字典容器2408可以确定物理或逻辑资产的类型是控制阀。上下文字典容器2408可以存储物理或逻辑资源类型以及对应于每个物理或逻辑资源类型的资源标签、序列号、名称或其部分的列表。
然后上下文字典容器2408使用上下文2410自动地从物理或逻辑资产的类型推断能力集合,并将从物理或逻辑资产的类型推断的能力集合提供给发现服务2404。发现服务2404然后将物理或逻辑资产的记录存储在发现项目数据存储器中,该记录包括物理或逻辑资产的身份、物理或逻辑资产的位置和/或物理或逻辑资产的能力集合。
当物理资产或逻辑资产请求对SDCS内的节点或服务的访问时,发现服务2404内的认证服务2406认证物理或逻辑资产。例如,认证服务2406通过获取包括在发现项目数据存储器中的物理或逻辑资产的密码公钥来认证物理或逻辑资产。认证服务2406然后可以将获取到的物理或逻辑资产的密码公钥与物理或逻辑资产在对节点或服务的访问请求中所提供的密码公钥进行比较,以确定是否存在匹配。认证服务2406还可以分析由物理或逻辑资产对节点或服务的访问请求中提供的数字签名,以确定数字签名是否证明物理或逻辑资产拥有与密码公钥相对应的密码私钥。如果满足这两个条件,则认证服务2406可以认证物理或逻辑资产。
在另一个示例中,认证服务2406通过从发现项目数据存储器获取物理或逻辑资产的PSK来认证物理或逻辑资产。认证服务2406然后可以尝试使用所获取的PSK来解密对节点或服务的访问请求。如果认证服务2406成功地解密了该请求,则认证服务2406可以认证物理或逻辑资产。
虽然认证服务2406被示为被嵌套在发现服务2404内,但这仅是为了便于说明的一个示例实施方式。在其他实施方式中,认证服务2406没有被嵌套在发现服务2404内。
位置服务2412可以从SDCS内的节点或服务接收物理或逻辑资产的位置的请求。位置服务2412然后可以从发现项目数据存储器获得物理或逻辑资产的位置的记录。例如,位置可以是物理或逻辑资产的网络地址,例如过程工厂网络22、25、30、32、35、42-58内的物理或逻辑资产的IP地址或其他标识符。除了网络位置之外,该位置还可以包括物理或逻辑资产的物理位置,诸如物理资产所在的过程工厂10的特定部分,或者存储和/或执行逻辑资产的计算节点的物理位置。位置服务2412然后将物理或逻辑资产的位置信息作为对该请求的响应提供给提供该请求的节点或服务。
图35示出了与图34的上下文字典容器2408类似的示例上下文字典容器2502的详细框图。如在上下文字典容器2408中,上下文字典容器2502包括上下文字典服务2504和上下文2508。上下文字典服务2504还包括资产能力标识服务2506。
资产能力标识服务2506可以基于物理或逻辑资产的身份来确定物理或逻辑资产的类型。例如,资产能力标识服务2506可以存储用于基于物理或逻辑资产的身份来确定物理或逻辑资产的类型的规则集。更具体地,资产能力标识服务2506可以分析与物理或逻辑资产相关联的服务或子系统的资产标签、序列号或名称,以确定物理或逻辑资产的类型。例如,如果物理或逻辑资产的资产标签是“CTRL-VALVE-01”,则资产能力标识服务2506可以确定物理或逻辑资产的类型是控制阀。资产能力标识服务2506可以存储物理或逻辑资产类型以及对应于每个物理或逻辑资产类型的资产标签、序列号、名称或其部分的列表。
另外或替换地,资产能力标识服务2506可以分析包括在通知中的物理或逻辑资产的主要变量,以确定物理或逻辑资产的类型,诸如包括在EDDL中的主要变量。例如,如果物理或逻辑资产的主要变量是阀位置,则资产能力标识服务2506可以确定物理或逻辑资产是阀。在另一个示例中,如果物理或逻辑资产的主要变量是控制服务,则资产能力标识服务2506可以确定物理或逻辑资产是控制容器。一些物理或逻辑资产可以包括能力的组合,例如阀位置能力和控制服务能力。在这种情况下,资产能力标识服务2506可以基于能力的组合来确定物理或逻辑资产的类型。
资产能力标识服务2506然后可以使用上下文2508从物理或逻辑资产的类型推断能力。例如,对于特定的物理或逻辑资产,通告可以指示物理或逻辑资产可以提供与物理或逻辑资产的控制有关的第一参数集合。上下文2508可以进一步标识与物理或逻辑资产的维护有关的附加参数。在另一个示例中,上下文2508可以包括用于访问附加参数或服务中的每一个的机制,例如用于访问维护参数的机制。用于访问附加参数或服务的机制可以是用于提供给物理或逻辑资产以获取附加参数或服务的请求的格式和/或内容。在另一个示例中,该机制可以是与附加参数或服务相对应的参考数字或标识符,其可以用于获取附加参数或使物理或逻辑资产执行附加服务。
图36示出了与图35的上下文2508类似的示例上下文2602的详细框图。上下文2602可包括将设备类型与类上下文相关联的数据表2604。更具体而言,数据表2604可以包括设备类型、主要变量和上下文变量。例如,当设备类型是热电偶时,主要变量可以是温度,并且上下文变量可以包括热电偶的设备健康度量和指示热电偶的可变性的设备容差。当设备类型是质量流动传感器时,主要变量可以是质量流动,并且上下文变量可以包括流体速率、流体速度和流体密度。在另一个示例中,当设备类型是阀时,主要变量可以包括阀位置和阀中的空气压力。上下文变量可以包括阀健康度量、阀行程度量、阀的操作模式(例如全行程循环、连续节流、周期性节流等)以及阀中的条件(例如死区和死区时间(dead time))。另外,这些上下文变量可以包括阀可以执行的服务,例如阀监控服务和/或可以利用来自阀的主要或上下文变量的服务。
SDCS还可以包括推荐器服务,该推荐器服务从上下文字典服务2504和/或发现服务2404获得物理或逻辑资产的主要变量和上下文变量,并且在配置期间向用户推荐特征。例如,当用户将新阀配置到SDCS时,上下文字典服务2504可以从新阀的上下文变量中检测到存在读回值。当用户配置新阀时,例如当用户试图将配置提交给过程控制配置服务时,推荐器服务可以提醒用户存在可用的但未使用的未使用阀位置读回值。以这种方式,当用户不知道物理或逻辑资产的全部能力时,推荐器服务允许用户了解物理或逻辑资产的能力,而不必阅读在SDCS内配置或调试的资产中的每一个的手册。
图37示出了表示用于提供发现软件作为过程工厂10中的服务的示例方法2700的流程图。该方法可由发现服务执行。
在框2702,发现服务获得指示物理或逻辑资产的存在的通告。当诸如现场设备、过程控制设备、计算节点、容器、服务、微服务等的新的物理或逻辑资产被添加到过程工厂网络22、25、30、32、35、42-58时,新的物理或逻辑资产可以通过例如将其网络地址广播到与过程工厂网络22、25、30、32、35、42-58相连的节点或服务来通告其存在。在其他实施方式中,发现服务可以向过程工厂网络22、25、30、32、35、42-58中的物理或逻辑资产中的每一个广播通告它们的存在的请求。
该通告可以包括用于物理或逻辑资产的标识参数,诸如物理或逻辑资产的资产标签、物理或逻辑资产的MAC地址、物理或逻辑资产的网络地址、物理或逻辑资产的密码密钥、物理或逻辑资产的序列号和/或与物理或逻辑资产相关联的服务或子系统的名称。通告还可以包括物理或逻辑资产的网络地址或包括物理或网络位置信息的物理或逻辑资产的任何其他适合的位置信息。另外,该通告可以包括物理或逻辑资产的能力,例如物理或逻辑资产被配置为提供的过程参数、物理或逻辑资产被配置为提供的服务、或被配置为与物理或逻辑资产通信的服务。
在框2704,发现服务基于包括在通告中的标识参数来确定物理或逻辑资产的身份。在一些实施方式中,发现服务基于唯一地标识物理或逻辑资产的标识参数之一(例如,MAC地址)来确定物理或逻辑资产的身份。在其他实施方式中,发现服务基于标识参数的组合来确定物理或逻辑资产的身份。例如,序列号可以对应于具有相同样式和型号的多个资产。因此,发现服务可以基于物理或逻辑资产的序列号和密码密钥的组合来确定物理或逻辑资产的身份。
然后在框2706,发现服务将物理或逻辑资产的记录存储在发现项目数据存储器中。该记录可以包括物理或逻辑资产的身份的指示、物理或逻辑资产的能力集合、以及物理或逻辑资产在SDCS内的位置。物理或逻辑资产的能力集合可以包括在通告中包括的能力。能力集合还可包括由发现服务自动推断的、未被包括在通告中的能力。
更具体而言,发现服务可以从上下文字典容器中获取这些能力。上下文字典容器包括从物理或逻辑资产的类型推断能力集合的上下文。对于每种类型的物理或逻辑资产,上下文可以包括由物理或逻辑资产提供的过程参数中的每一个、由物理或逻辑资产执行的服务中的每一个、以及SDCS内调用物理或逻辑资产以传送信息的服务中的每一个的列表。
图38示出表示用于使用上下文字典来推断关于过程工厂的物理或逻辑资产的信息的示例方法2800的流程图。该方法可由发现服务执行。
在框2802,发现服务获得指示物理或逻辑资产的存在的通告。当诸如现场设备、过程控制设备、计算节点、容器、服务、微服务等的新物理或逻辑资产被添加到过程工厂网络22、25、30、32、35、42-58时,新物理或逻辑资产可以通过例如向与过程工厂网络22、25、30、32、35、42-58相连的节点或服务广播其网络地址来通告其存在。在其他实施方式中,发现服务可以向过程工厂网络22、25、30、32、35、42-58中的物理或逻辑资产中每一个广播通告它们的存在的请求。
通告可以包括用于物理或逻辑资产的标识参数,诸如物理或逻辑资产的资产标签、物理或逻辑资产的MAC地址、物理或逻辑资产的网络地址、物理或逻辑资产的密码密钥、物理或逻辑资产的序列号和/或与物理或逻辑资产相关联的服务或子系统的名称。通告还可以包括物理或逻辑资产的网络地址或包括物理或网络位置信息的物理或逻辑资产的任何其他适合的位置信息。另外,该通告可以包括物理或逻辑资产的能力,例如物理或逻辑资产被配置为提供的过程参数、物理或逻辑资产被配置为提供的服务、或被配置为与物理或逻辑资产通信的服务。
在框2804,发现服务获得与物理或逻辑资产相关联的、未作为物理或逻辑资产的能力被包括在通告中的附加参数或服务。更具体而言,发现服务可以从上下文字典容器中获取附加参数或服务。
上下文字典容器包括从物理或逻辑资产的类型推断能力集合的上下文。对于每种类型的物理或逻辑资产,上下文可以包括由物理或逻辑资产提供的过程参数中的每一个、由物理或逻辑资产执行的服务中的每一个以及SDCS内的调用物理或逻辑资产以传送信息的服务中的每一个的列表。
发现服务可以将物理或逻辑资产的身份提供给上下文字典容器,并且上下文字典容器可以基于该身份来确定物理或逻辑资产的类型。例如,上下文字典容器可以存储用于基于物理或逻辑资产的身份来确定物理或逻辑资产的类型的规则集合。更具体而言,上下文字典容器可以分析与物理或逻辑资产相关联的服务或子系统的资产标签、序列号或名称,以确定物理或逻辑资产的类型。例如,如果物理或逻辑资产的资产标签是“CTRL-VALVE-01”,则上下文字典容器可以确定物理或逻辑资产的类型是控制阀。上下文字典容器可以存储物理或逻辑资源类型以及对应于每个物理或逻辑资源类型的资源标签、序列号、名称或其部分的列表。
随后,上下文字典容器使用上下文从物理或逻辑资产的类型自动推断能力集合,并将从物理或逻辑资产的类型推断的能力集合提供给发现服务。例如,对于特定的物理或逻辑资产,通告可以指示物理或逻辑资产可以提供与物理或逻辑资产的控制有关的第一参数集合。上下文还可以标识与物理或逻辑资产的维护有关的附加参数。在另一个示例中,上下文可以包括用于访问附加参数或服务中的每一个的机制,例如用于访问维护参数的机制。
然后,在框2806,发现服务将物理或逻辑资产的记录存储在发现项目数据存储器中。该记录可以包括物理或逻辑资产的身份的指示,以及与物理或逻辑资产相关联的、未包括在通告中的附加参数或服务。该记录还可以包括在通告中包括的能力。
图39示出了表示用于从过程工厂中的每种类型的物理或逻辑资产推断能力集合并确定所发现的物理或逻辑资产的能力的示例方法2900的流程图。该方法可以由上下文字典服务执行。
在框2902,上下文字典服务存储过程工厂10的每种类型的物理或逻辑资产。然后,对于每种类型的物理或逻辑资产,上下文字典服务存储该类型的物理或逻辑资产的能力集合(框2904)。能力集合可以包括可从物理或逻辑资产的类型以及与物理或逻辑资产的类型相关联的服务获取的参数,诸如由物理或逻辑资产执行的服务或者与物理或逻辑资产通信的服务。上下文字典服务可以使用上下文来推断每种类型的物理或逻辑资产的对应能力。
然后在框2906,上下文字典服务获得对特定物理或逻辑资产的能力的请求。请求可以包括物理或逻辑资产的标识信息,诸如资产标签、物理或逻辑资产的MAC地址、物理或逻辑资产的网络地址、物理或逻辑资产的密码密钥、物理或逻辑资产的序列号和/或与物理或逻辑资产相关联的服务或子系统的名称。请求可以由发现服务提供。在其他情况下,请求可以由SDCS内尝试定位具有特定能力的特定物理或逻辑资产的节点或服务提供。在其他情况下,请求可以由SDCS内对访问物理或逻辑资产所提供的过程参数或服务感兴趣的节点或服务来提供。
响应于该请求,上下文字典服务基于物理或逻辑资产的标识信息来确定物理或逻辑资产的类型(框G2908)。例如,上下文字典服务可以存储用于基于物理或逻辑资产的身份来确定物理或逻辑资产的类型的规则集合。更具体而言,上下文字典服务可以分析与物理或逻辑资产相关联的服务或子系统的资产标签、序列号或名称,以确定物理或逻辑资产的类型。上下文字典服务可以存储物理或逻辑资源类型以及对应于每个物理或逻辑资源类型的资源标签、序列号、名称或其部分的列表。
然后在框2910,上下文字典服务可以使用上下文从物理或逻辑资产的类型推断能力集合。上下文字典服务然后可以提供对请求的响应,该响应包括与物理或逻辑资产的类型相对应的能力集合。
在一些实施方式中,上下文字典服务经由嵌套在用于发现服务的第二容器中的第一容器来执行。在其他实施方式中,上下文字典服务和发现服务不在嵌套容器中执行。
图40示出了表示用于过程工厂10中的发现项目的故障恢复的示例方法3000的流程图。该方法可由发现服务执行。
在框3002,在发现项目数据存储器中检测到故障。例如,发现项目数据存储器可能被破坏、毁坏,由此丢失物理或逻辑资产的记录。另外,发现项目数据存储器可能例如由于断电而被重置。响应于检测到故障,发现服务向过程工厂10中的物理或逻辑资产广播通告它们的存在的请求(框3004)。
响应于该请求,发现服务从过程工厂10中的物理或逻辑资产接收通告(框3006)。每个通告都可以包括用于物理或逻辑资产的标识参数,诸如物理或逻辑资产的资产标签、物理或逻辑资产的MAC地址、物理或逻辑资产的网络地址、物理或逻辑资产的密码密钥、物理或逻辑资产的序列号和/或与物理或逻辑资产相关联的服务或子系统的名称。通告还可以包括物理或逻辑资产的网络地址或包括物理或网络位置信息的物理或逻辑资产的任何其他适合的位置信息。另外,通告可以包括物理或逻辑资产的能力,例如物理或逻辑资产被配置为提供的过程参数、物理或逻辑资产被配置为提供的服务、或被配置为与物理或逻辑资产通信的服务。
然后在框3008,发现服务将物理或逻辑资产的恢复记录存储在发现项目数据存储器中。对于每个物理或逻辑资产,恢复记录可以包括物理或逻辑资产的身份的指示、物理或逻辑资产的能力集合、以及物理或逻辑资产在SDCS内的位置。物理或逻辑资产的能力集合可以包括包含在通告中的能力。能力集合还可包括由发现服务自动推断的未被包括在通告中的能力。以这种方式,自动接收物理或逻辑资产的记录而无需手动输入。
如上所述,发现服务可以帮助调试过程工厂10内的物理或逻辑资产,以便SDCS可以自动调试物理或逻辑资产,而无需手动输入。尽管SDCS,并且更具体地I/O服务器服务,可以响应于发现服务发现物理或逻辑资产而调试物理或逻辑资产,但是这仅仅是一个示例实施方式。在其他实施方式中,其他服务可以标识过程工厂10内的物理或逻辑资产,例如过程控制配置服务。
图41示出了表示用于自动调试SDCS的示例方法3100的流程图。该方法可以由发现服务、过程控制配置服务、I/O服务器服务或这些的任何适合组合来执行。
在框3102,获得了指示物理或逻辑资产的存在的通告。当诸如现场设备、过程控制设备、计算节点、容器、服务、微服务等的新的物理或逻辑资产被添加到过程工厂网络22、25、30、32、35、42-58时,新的物理或逻辑资产可以通过例如向与过程工厂网络22、25、30、32、35、42-58相连的节点或服务广播其网络地址来通告其存在。在其他实施方式中,发现服务可以向过程工厂网络22、25、30、32、35、42-58中的物理或逻辑资产中的每一个广播通告它们的存在的请求。
通告可以包括用于物理或逻辑资产的标识参数,例如物理或逻辑资产的资产标签、物理或逻辑资产的MAC地址、物理或逻辑资产的密码密钥、物理或逻辑资产的序列号和/或与物理或逻辑资产相关联的服务或子系统的名称。通告还可以包括物理或逻辑资产的网络地址或包括物理或网络位置信息的物理或逻辑资产的任何其他适合的位置信息。例如,位置信息还可以包括物理或逻辑资产的物理位置,诸如物理资产所在的过程工厂10的特定部分,或者存储和/或执行逻辑资产的计算节点的物理位置。
在框3104,将物理或逻辑资产的标识参数和位置参数传送到I/O服务器服务,例如图2的I/O服务器服务242。发现服务或过程控制配置服务可以将包括在通告中的、用于物理或逻辑资产的标识参数中的每一个传送到I/O服务器服务,或者可以传送包括在通告中的标识参数的子集,该子集可以用于唯一地标识物理或逻辑资产。另外,发现服务或过程控制配置服务可以将位置信息传送到I/O服务器服务,以使得I/O服务器服务可以与物理或逻辑资产通信。
在框3106,I/O服务器服务可以基于标识信息和位置信息自动地调试物理或逻辑资产。调试可以包括动作或活动,例如验证或确认物理或逻辑资产的身份、生成唯一标识过程工厂10内的物理或逻辑资产的标签、以及执行测试以确保I/O服务器服务在物理或逻辑资产内通信。
I/O服务器服务可以基于用于物理或逻辑资产的标识参数来生成用于唯一地标识物理或逻辑资产的标签。例如,如上所述,用于物理或逻辑资产的标识参数可以包括诸如“CTRL-VALVE”的资产标签,并且过程工厂10可以包括具有相同资产标签的若干控制阀。I/O服务器服务可以基于资产标签和阀的密码公钥的组合来生成阀的标签。例如,如果用于阀的密码公钥的最后四个字符是“xg4t”,则标签可以是“CTRL-VALVE-xg4t”。
在其他实施方式中,I/O服务器服务可以生成用于控制阀的标签,该标签包括字符串“CTRL-VALVE”,后面跟着尚未被用于标识过程工厂10中的另一个阀的数字。如果例如存在四个控制阀,则标签可以是“CTRL-VALVE-01”、“CTRL-VALVE-02”、“CTRL-VALVE-03”和“CTRL-VALVE-04”。I/O服务器服务可以通过将物理或逻辑资产的标识参数与已经被指派标签的物理或逻辑资产的标识参数进行比较来确定物理或逻辑资产还没有被指派唯一标签。如果标识参数不匹配,则I/O服务器服务可以向物理或逻辑资产指派新的唯一标签,例如“CTRL-VALVE-05”。
在另一个示例中,两个物理或逻辑资产可以是具有作为部件号的相同序列号的阀。可以基于两个阀的序列号和密码密钥的组合来唯一地标识两个阀。因此,I/O服务器服务可以基于每个阀的序列号和密码密钥的组合来为每个阀生成标签。
然后,I/O服务器服务可以将与物理或逻辑资产的位置信息相关联的标签存储在数据存储器中,该标签可以用作与物理或逻辑资产进行通信的参考。
为了测试物理或逻辑资产,I/O服务器服务可以使用位置信息将数据传送到物理或逻辑资产或从物理或逻辑资产请求信息。如果I/O服务器服务能够成功地与物理或逻辑资产通信,则I/O服务器服务可以确定物理或逻辑资产已经被成功地调试。在一些实施方式中,I/O服务器服务可以从物理或逻辑资产请求特定参数(例如,质量流率),并且可以生成并存储与物理或逻辑资产相关联的特定参数或服务的信号标签。信号标签可以包括用于物理或逻辑资产的标签和特定参数或服务的标识符的组合。在其他实施方式中,I/O服务器服务不存储信号标签。
为了验证或确认物理或逻辑资产的身份,I/O服务器服务可以例如从标识参数获得物理或逻辑资产的密码公钥或PSK。I/O服务器服务可以使用密码公钥或PSK来加密对信息的请求,并且如果I/O服务器服务从物理或逻辑资产接收到对请求的响应,则I/O服务器服务确定物理或逻辑资产能够使用密码公钥或PSK来解密请求。结果,I/O服务器服务验证物理或逻辑资产的身份。
如上所述,系统协调器222控制或管理包括容器的各种逻辑实体到数据中心集群208中的各个集群并且最终到诸如服务器的各个计算设备(并且甚至到数据集群208的服务器中的处理器或处理器核心)的分配,并且可以在控制系统的运行时操作期间执行该指派,以便确保当各种物理设备(诸如服务器)故障、停止服务、变得过载、运行缓慢等等时控制系统的操作。这种动态和运行时间分配与过去的控制系统架构非常不同,在过去的控制系统架构中,实现逻辑元件(诸如控制模块或控制例程)的物理资产或计算设备由配置系统指定并且在运行时期间不改变。因此,在这种新的系统架构中,用户可能不知道在任何特定时间在哪里执行或实现诸如控制器或与控制器相关联的容器之类的特定逻辑元件,更不用说知道或能够容易地确定与这种逻辑元件相关联的健康或性能统计(诸如通信带宽或消息速率)。此外,用户不容易获得特定逻辑元件当前正在其中执行的物理设备的性能或健康指标,例如等待时间、效率、负载等,因为用户不能单独从配置系统知道在任何给定时间什么逻辑元件当前正在任何特定物理设备或物理节点上操作。
然而,在许多情况下,重要的是,诸如控制系统操作员、维护人员等的用户能够查看控制系统的一个或多个逻辑元件的当前操作状态,以便查看和/或诊断过程控制系统的当前操作状态或诊断过程控制系统内的问题。更进一步,用户可能需要知道什么逻辑元件当前正在特定物理设备或物理节点上执行,以便在该设备或节点处或上执行服务、更新或其他维护或修理活动。更进一步地,如上所述,容易可视化工厂内的逻辑元件的当前配置可能是重要的,包括过程控制系统的逻辑元件(例如容器)彼此嵌套或绑住的方式和/或这些逻辑元件被绑到特定硬件部件的方式。
为了帮助用户查看使用本文描述的新系统架构的控制系统的当前运行时操作,可以提供可以是图2的服务240之一的可视化服务,以(经由用户接口)为用户生成一个或多个系统配置和/或运行时可视化图像,以帮助用户理解控制系统的各种逻辑和物理元件之间的当前配置和操作关系,以及查看逻辑和物理元件的一个或多个性能指示符。特别地,在图42中示出了可视化(或用户接口)服务3202,其在计算机处理器上执行,并操作以询问或以其他方式与协调器222以及协调器子系统252、255、258、260中的一个或多个通信,并在任何特定时间发现哪些逻辑元件在哪些物理设备上被托管或执行,以及与这些逻辑元件和/或物理设备相关联的各种健康和/或性能统计或索引。在一些情况下,可视化服务3202可以另外与配置数据库3203通信以获得逻辑和物理元件配置信息并且创建控制系统(包括逻辑和物理元件两者)的配置/运行时可视化图像,其使得用户能够查看标识控制系统的逻辑元件之间(彼此)以及逻辑元件和物理元件之间的当前配置的相互作用的各种配置和运行时细节的信息。在一些情况下,该配置接口可以使得用户能够在工作中或在运行时期间改变配置细节(诸如逻辑和/或物理元件的绑住和嵌套)。
图42将可视化服务或实用程序3202(其在计算机处理器上执行)示出为与图1的协调器222通信,并且如果必要,与配置数据库3203通信,以发现用于各种逻辑和物理元件的配置和运行时信息。可视化服务3202可以从协调器222订阅信息以用于活动的可视化,和/或可以在经由用户接口3204生成用于用户的可视化图像时向协调器222(和配置数据库3203)发送一个或多个查询。在任何情况下,可视化服务3202执行以经由用户接口设备3204(其可以是任何类型的用户接口,诸如膝上型计算机、无线设备、电话应用、工作站等)向用户显示关于控制系统的逻辑和物理信息,并且可以以交互的方式显示控制系统信息,以便使得用户能够查看工厂内的各种逻辑元件配置的以及当前运行时操作、以及这些逻辑元件当前被指派到的物理元件的配置的以及当前运行时操作。具体地,可视化服务3202可以经由显示控制系统的一个或多个逻辑和/或物理元件的用户接口设备3204向用户呈现一个或多个屏幕,并且可以使得用户能够选择控制系统的各种逻辑和/或物理元件中的任何一个,如当前被实现的,以指示关于用户希望看到的配置和/或运行时信息的更多细节。可视化服务3202然后从协调器222获得所选逻辑和/或物理元件的运行时信息,包括例如逻辑元件(例如,诸如控制容器的容器)被嵌套在彼此内或彼此绑住的方式、逻辑元件在各种物理元件中或上执行的方式、和/或指示逻辑和/或物理元件当前操作时的操作健康或性能的一个或多个性能指示符。可视化服务3202在一个或多个屏幕显示中向用户呈现该信息,并且在一些情况下,可以使得用户能够经由屏幕显示进行交互以查看其他信息,并且根据逻辑元件中的一个或多个如何被指派给其他逻辑元件或物理元件来动态地改变对控制系统的操作。
在一个示例中,除了从协调器222获得运行时信息之外,实用程序3202可以从配置数据库3203获得配置信息(诸如配置层级),并且可以向用户呈现配置层级(包括配置信息和运行时指派信息两者),以使得用户能够在控制系统的各种配置的元件当前正在工厂或控制系统内操作或执行时查看它们。图43示出了可以提供给用户的示例配置/运行时层级结构3210。在这种情况下,层级结构3210包括熟悉结构中的物理和逻辑元件,并且使得用户能够在层级结构3210中向下挖掘以查看更多关于上层或更高层的逻辑和物理元件信息中的任一个的信息,从而看到更多关于当前配置的和运行时当前操作的系统的信息。具体地,在图43的示例中,层级结构3210示出了逻辑元件(包括与各种控制、子系统和I/O服务相关联的容器)和物理元件(例如,数据集群、计算节点等)两者。一般地,如上所述,软件定义控制系统在被配置时将物理节点划分成微服务(容器),然后在计算节点的一个或多个集群上运行这些容器,其中的一些由协调器222在运行时期间选择。图43的层级结构3210示出了这种配置,因为层级结构3210包括物理网络元件3220和控制网络元件3230。物理网络元件3220在被扩展时可以以分层方式详细说明或列出与软件定义控制系统相关联的物理元件或设备(包括现场设备(阀、变送器等)、物理I/O设备、网络交换机、数据中心集群及其部件、用户接口、历史库等中的任何一个)的物理互连。在一个示例中,数据中心集群可以各自包括物理节点的集合(即,服务器的集合),其中每个服务器都可以位于服务器机架的特定刀片中(其可以或可以不全部是相同集群的一部分)。此外,每个服务器都可以具有一个或多个处理器,并且每个处理器都可以具有一个或多个核心,并且所有这些各种元件可以在物理网络元件3220之下或作为其一部分来指定或示出。更进一步,如果需要,每个节点或节点的机架可以与一个或多个特定的电源相关联,以使得电源可以为整个机架供电,或者仅为机架上的某些节点供电,以使得单个机架中的节点可以具有电源冗余。在任何情况下,这种和其他物理配置信息可以在物理网络元件3220下的层级结构3210中示出。
更进一步,在图43的示例显示3210中,控制网络元件3230包括在其中的各种不同的物理和逻辑部件,包括用户接口(ProPlus站)、I/O网络(具有标签)、无线I/O网络、以及一个或多个计算集群(如图43所示,具有用附图标记3235标记的计算集群1)。更进一步地,每个计算集群都可具有与其相关联或在其下方的多个节点3236,其中这些节点3236之一在图43中示出。因此,控制网络元件3230的上层元件通常是物理元件。然而,如先前所述并且如层级结构3210中所示,每个节点3236都可以具有向其指派的或与其相关联的各种逻辑元件(例如,容器),包括例如指定不同配置的控制器(其是SDCS架构中的逻辑元件)的控制器容器3240、控制子系统容器(诸如指派的模块3242、指派的I/O容器3244、第三方容器3246、区域容器3247、历史库容器3248等)。图43中的框3250指向层级结构3210中指示的一些而非全部容器。将注意,图43的层级结构3210示出了经配置的硬件部件和经配置的逻辑元件两者,包括容器。更进一步地且重要的是,图43的层级结构3210示出其中所示的各个容器被嵌套或绑住到不同层级结构层之下的其他容器和/或物理元件的方式。例如,Boiler_1的指派模块(3260)被绑住到控制器2容器940(如由附图标记3260在层级结构3210中的多个位置所示),并且第三方容器材料成分被绑住到控制器2(如附图标记3262所示)。还将理解,在层级结构3210中列出的、在另一容器下方的容器在呈现层级结构3210时嵌套在较高级别的容器中。该嵌套可以是元件绑住的结果或由协调器222对元件的运行时放置的结果。因此,层级结构3210可用于指示系统的经配置操作(根据容器如何相对于彼此或相对于特定硬件元件被绑住)和系统的运行时操作(根据容器如何被嵌套在其他容器内并在特定硬件或物理部件中被执行)。此外,层级结构3210可以根据在运行时操作期间可指派的逻辑元件来指示控制系统的当前操作配置,诸如通过示出特定可指派的容器当前被指派到的控制器或模块、和/或特定容器当前被指派到的物理元件。
此外,层级结构3210可指示各种容器可由用户动态指派,诸如经由层级结构3210内的元件的交互。例如,图43的层级结构3210指示各种配方3270是可动态指派的容器。在一些情况下,用户接口应用可使用户能够通过选择层级结构3210中的元件并将该元件拖放到层级结构3210内的新逻辑或物理实体之下或之内来重新指派容器(诸如配方或其他动态可指派容器)。当然,也可以使用执行将逻辑元件动态重新指派给另一逻辑元件或物理元件的其他方式(例如,下拉菜单、新窗口等)。
因此,如图43的层级结构3210所示,诸如区域、单元、设备模块和模块之类的控制项可以与物理控制集群相关联。一旦被指派,控制项目(例如单元C-101)作为控制策略保持在一起。因为在该示例中,单元C-101未被绑住,所以它可以被分配给控制器节点(计算节点)中的任一个。另一方面,单元BOILER_1已被绑住到控制器2。如果控制器2被指派到的硬件节点发生故障,则绑住到控制器2的所有东西将(基于协调器222的操作)迁移到具有空闲资源的另一服务器或节点。另一方面,可动态指派的控制项可动态地分配给具有空闲资源的任何控制器。
以上针对控制项描述的相同方法也用于历史、警报和事件、批次、连续历史库和其他子系统容器。子系统在单独的容器中运行,并且可以被绑住到控制器/计算节点,或者它们可以被动态分配。因此,根据以上描述,所有子系统都被视为容器。作为进一步的分配,来自控制策略层级结构的控制项可以被指派给计算集群,然后被绑住或动态地指派给计算节点(例如,通过在层级结构3210中使用拖放技术)。类似地,I/O容器可以被指派给计算集群,并且随着动态指派控制项而被动态指派。此外,微容器可以在I/O设备上运行。
在任何情况下,如将理解的,可视化服务3202可以创建层级结构3210,以使得层级结构3210指示(1)物理元件与逻辑元件之间以及逻辑元件与其他逻辑元件之间的永久配置的(不可改变的或绑住的)关系,(2)物理元件与逻辑元件之间以及逻辑元件与其他逻辑元件之间的临时配置的(在运行时期间用户可指派的或动态可指派的)关系,以及(3)在运行时期间由协调器222当前指派的物理元件与逻辑元件之间以及逻辑元件与其他逻辑元件之间的运行时间或当前关系。因此,可以创建层级结构3210以指示容器与当前正在其上执行那些容器的各种硬件元件(诸如节点、服务器、处理器、核、机架、电源等)之间的关系,以及这些关系是否被绑住。更进一步,层级结构3210可被用于指示动态可指派容器,并且甚至可由用户使用或操纵来在运行时期间执行动态可指派容器的重新指派。在这种情况下,可视化服务3202在接收到将容器重新指派给另一逻辑和/或物理元件的指令时,将指示重新指派的协调器222,并且协调器222将执行对容器(以及嵌套在重新分配的容器内或钉住重新分配的容器的任何容器)的重新指派。更进一步地,可创建层级结构3210来指示各种逻辑和物理元件相对于彼此的运行时配置(如由协调器222执行的)。
当然,可视化服务3202可以以其他方式显示逻辑元件(例如,容器)与其他逻辑元件和/或物理元件之间的关系,并且还可以包括关键性能和诊断指示符以使得用户能够理解控制系统或其各种部件中的任何一个的当前操作健康或性能。作为示例,图42的可视化服务3202可通过结合当前被分配给其或在其上运行的逻辑元件(容器)示出物理元件来为用户示出物理元件(例如,系统的节点或服务器,诸如特定计算集群的所有节点)集合中的每一个的当前配置。在这种情况下,可视化服务3202还可以获得并指示由例如图2的实用程序252、255、258、260中的一个或多个计算或确定的物理元件健康、诊断和/或性能统计或测量。图44示出了可以由可视化服务3202创建的示例用户接口或显示3300,以示出其中具有三个服务器或节点3320的数据集群3310。显示3300还示出了用于节点3320中的每一个的容器或容器类型的集合,并且在这种情况下,包括容器协调器服务3330、控制容器3332的集合、批次执行容器3334、以及在节点3320中的每一个中的连续历史库容器3336。尽管在图44中未示出,可视化服务3202可以使得用户能够向下挖掘到框3332至3336中的每一个中以看到各种容器(例如,控制容器和嵌套在这些控制容器内或绑住到这些控制容器的任何容器)以及子系统容器3334和3336,以查看当前在相应服务器3320中的每一个上执行的逻辑元件。更进一步,可视化服务3202可以在显示3300上呈现用于服务器中每一个的性能指示符3340的集合,包括例如当前CPU负载(CPU loading)、存储利用率、网络带宽和核心温度。当然,这些仅是可以针对服务器或节点3320中的每一个获得并显示的几个示例诊断或性能指示符,并且也可以或替代地针对硬件元件(服务器或节点3320)中的每一个提供其他性能和诊断信息。更进一步,可视化服务3202可以显示或提供其他性能指示符(例如图44的集群3310中的通信网络的网络健康3342),并且可以指示逻辑元件的性能指示符(例如服务器3320之一中的批次执行的服务容器健康3344)。
再次,可视化服务3202可以使用户能够向下挖掘到元件3330、3332、3334和3336中的任一个(或其他容器,诸如被显示为与硬件元件3320中的任一个相关联的第三方容器等),以查看在相应服务器或硬件节点上执行的那些容器内的逻辑元件以及用于子元件中的任一个的一个或多个性能或诊断指示符。可视化服务3202还可以指示执行逻辑元件的子单元中的每一个的物理元件的子单元,诸如与逻辑子单元相关联或实现逻辑子单元的特定服务器处理器或核心或刀片或电源。因此,该工具可以从多个方面(例如从控制器和I/O及其相关服务容器的逻辑视图、以及服务器和物理资源管理的物理视图),向用户提供作为整体的系统的大粒度更新,并且还可以在任何特定时间提供与软件定义控制系统或其任何部分的性能有关的诊断信息。
在另一种情况下,可视化服务3202可以提供系统或系统的某个子部分的逻辑元件或容器的图,并且指示这些逻辑元件当前正在其上运行或执行的各种物理元件。图45示出了可以用于示出逻辑元件(在这种情况下为控制器1容器)和在控制系统的执行期间控制器1容器的各种逻辑子元件在当前时间在硬件中分布的方式的示例显示3400。因此,在图45的示例显示3400中,逻辑控制器#1被显示为包括三个冗余控制器容器(控制器容器#1),其中,出于冗余目的,控制器容器#1实例中的第一实例在物理服务器3430上执行,并且控制器容器#1实例中的第二实例和第三实例在不同的物理服务器3432上执行。此外,图45的图3400示出了逻辑控制器#1(包括嵌套在其中或绑住到其的三个子容器)使用绑定到远程I/O容器3442的冗余I/O服务器或I/O容器3440集合来通信。图3400还指示哪个冗余控制器#1实例当前正作为活动的控制器或控制器实例操作。如果需要,图45的显示3400可以示出当前正在实现冗余I/O容器3440的特定硬件元件,和/或当前正在执行远程I/O容器3442的硬件设备。此外,可视化服务3202可以在显示3400中提供用于其中所示出的逻辑或物理元件中的任一个的期望的性能指示符集合中的任何一个。当然,图45仅是简单的示例,并且图45的图3400可以被扩展以示出任何逻辑元件集合和这些元件当前在其上运行的对应物理节点或硬件。另外,可以在图45的图3400中以任何期望的方式显示针对其中所示的逻辑元件(以及如果期望的话,物理元件)中的每一个的关键性能和诊断指示符。
图46示出了可以由可视化服务3202提供或创建的另一可视化或显示屏幕3500,以指示工厂或控制系统内的各种逻辑和物理资产的当前操作配置和交互以及针对每个显示的元件的各种性能和/或诊断指示符。屏幕显示3500在右侧示出了逻辑元件集合,在该示例中,包括软件定义控制系统容器3502、批次执行容器3504和连续历史库容器3506。图或接口屏幕3500示出这些逻辑元件经由总线3510连接到I/O服务器3512,该I/O服务器3512又耦合到现场设备3514集合。此外,图3500示出了用于逻辑元件或容器3502、3504和3506中的每一个的各种不同的性能指示符3520(指示当前运行的控制系统的元件的性能),在该示例中包括每秒消息指示符、存储利用率指示符、网络带宽指示符和错误率指示符。此外,图3500可以在性能指示符3520的列表中包括用于实现逻辑元件的物理元件,诸如为相关联的逻辑元件中的每一个指派的物理节点。然而,该物理指派指示符可以指示其他物理硬件,例如服务器、处理器、核心、刀片、电源等。图3500还示出了用于I/O服务器容器3512的相同性能和诊断指示符,但是当然可以为本文所示出的这个或任何逻辑元件提供不同的性能和诊断指示符。更进一步,图3500以总线带宽、消息诊断和错误条件的形式示出了用于总线3510的性能和诊断指示符3522,并且附加地指示构成或正被实现为总线3510的物理网络适配器,容器3502、3504和3506通过该总线3510与I/O服务器容器3512(其可以是实际的I/O服务器)进行通信。当然,也可以获得并显示其他性能和诊断指示符。因此,图46的可视化图像3500再次示出了各种逻辑元件(容器)在实现这些逻辑元件的物理硬件中被连接并且被实现的方式,并且提供了用于构成控制系统的这个部分的逻辑元件和物理元件中的一个或二者的诊断或性能指示符以帮助用户可视化对软件定义控制系统的操作。
在这些示例中的每一个中,当这些物理和逻辑元件由容器协调器和管理通过系统的所有网络流量的软件定义联网控制器实现时,用户接口或可视化服务3202可以示出或图示物理和逻辑配置(以及如果期望,经由各种不同的诊断服务获得的相关联的性能数据)。此外,这些图中呈现的任何或所有可视化图像可以使用颜色分布图来表示特定健康水平,并且可以提供推荐系统来推荐用户应当采取的动作以缓解正被可视化的软件定义控制系统内的感知到的或检测到的问题。当然,将理解,图43-46仅示出了可用于显示在控制系统的运行时期间的任何特定时间各种逻辑和物理元件正在交互和执行的方式的屏幕的几个示例,并且可以替代地使用其他可视化。
其他考虑
当以软件实现时,本文描述的应用、模块等中的任一个可被存储在任何有形的非暂时性计算机可读存储器中,诸如在磁盘、激光盘、固态存储器设备、分子存储器存储设备、或其他存储介质上、在计算机或处理器的RAM或ROM中等。尽管本文公开的示例系统被公开为包括在硬件上执行的软件和/或固件以及其他部件,但是应当注意,这种系统仅仅是示意性的,并且不应当被认为是限制性的。例如,可以设想,这些硬件、软件和固件部件中的任何一个或全部可以专门以硬件、专门以软件或以硬件和软件的任何组合来实现。因此,虽然本文描述的示例系统被描述为在一个或多个计算机设备的处理器上执行的软件中实现,但是本领域普通技术人员将容易理解的是,所提供的示例不是实现这种系统的唯一方式。
因此,虽然已经参考特定示例描述了本发明,但是这些示例仅旨在说明而不是限制本发明,对于本领域普通技术人员而言将显而易见的是,可以对所公开的实施例进行改变、添加或删除,而不脱离本发明的精神和范围。
任何具体实施例的特定特征、结构和/或特性可以以任何适当的方式和/或以任何适当的组合与一个和/或多个其他实施例组合,包括使用所选特征而相应地使用或不使用其他特征。此外,可以进行许多修改以使特定应用、情况和/或材料适于本发明的实质范围或精神。应当理解,根据本文的教导,本文描述和/或示出的本发明的实施例的其他变化和/或修改是可能的,并且应当被认为是本发明的精神或范围的一部分。本发明的某些方面在本文中作为示例方面来描述。

Claims (36)

1.一种利用过程控制系统来控制工业过程工厂内的工业过程的方法,所述方法包括:
由所述过程控制系统的软件定义联网层经由一个或多个输入/输出(I/O)硬件接口,将多个实例化软件部件(ISC)中的特定ISC与一个或多个过程控制现场设备通信耦合,所述过程控制现场设备部署于所述工业过程工厂的现场环境中并响应于由所述特定ISC生成的控制输出操作以控制所述工业过程,
执行控制器服务的实例的所述特定ISC能够操作为接收由所述一个或多个过程控制现场设备生成的数据,并基于所接收的数据生成控制输出,
所述一个或多个I/O硬件接口支持将所述过程控制系统与所述一个或多个过程控制现场设备通信连接的一个或多个链路,并且
所述多个实例化软件部件(ISC)包括在所述过程控制系统的应用层中,并在多个节点中的一个或多个节点上执行,每个节点都包括一个或多个相应的处理器、一个或多个相应的存储器、以及一个或多个相应的接口,所述一个或多个相应的接口将所述每个节点通信耦合到所述多个节点中的至少一个其它节点;
由所述软件定义联网层经由所述通信耦合将由所述一个或多个过程控制现场设备生成的数据传递到所述特定ISC,由所述一个或多个过程控制现场设备生成的数据由所述软件定义联网层经由所述一个或多个I/O硬件接口接收;
由所述软件定义联网层经由所述一个或多个I/O硬件接口将由所述特定ISC基于所接收到的数据生成的所述控制输出传递到所述一个或多个过程控制现场设备,所述控制输出由所述软件定义联网层经由所述通信耦合接收;以及
由所述软件定义联网层并响应于对所述多个ISC的一个或多个更改,发起和执行对用于执行所述特定ISC的所述多个节点的处理器资源或存储器资源中的至少一个的修改。
2.根据权利要求1所述的方法,其中,响应于对所述多个ISC的所述一个或多个更改而发起和执行所述修改包括:响应于以下中的至少一个而发起和执行所述修改:向所述多个ISC添加另一个ISC、从所述多个ISC中移除现有ISC、对所述特定ISC的配置的更改、对所述多个ISC中包括的另一个ISC的配置的更改、对与所述特定ISC相对应的所述控制器服务的配置的更改、对与另一个ISC相对应的另一个服务的配置的更改、一个或多个ISC的性能降级,所述一个或多个ISC的性能改善,一个或多个节点的性能降级、一个或多个节点的性能改善、故障发生、或所述多个ISC中包括的另一个ISC的故障。
3.根据权利要求1所述的方法,其中,所述特定ISC被绑住到所述多个节点中的特定节点,并且所述方法还包括:
由所述软件定义联网层将对用于执行所述特定ISC的所述多个节点的所述处理器资源或所述存储器资源中的所述至少一个的利用限制为仅对所述特定节点的处理器资源或存储器资源中的至少一个的利用。
4.根据权利要求3所述的方法,其中,所述特定ISC随后从所述特定节点解除绑定;并且所述方法还包括:响应于所述解除绑定,由所述软件定义联网层移除所述限制。
5.根据权利要求1所述的方法,还包括:由所述软件定义联网层并响应对所述多个ISC的所述一个或多个更改,自动修改所述多个ISC中多于一个ISC中的每个ISC对所述多个节点的相应处理器资源或存储器资源中的至少一个的相应利用。
6.根据权利要求1所述的方法,还包括:由所述软件定义联网层检测或预测对所述多个ISC的所述一个或多个更改中的至少一个更改。
7.根据权利要求6所述的方法,还包括:由所述软件定义联网层在所述过程控制系统的运行时期间连续或周期监控所述多个ISC的性能度量,并且其中,检测或预测对所述多个ISC的所述一个或多个更改中的至少一个更改包括基于所述监控来检测或预测对一个或多个运行时性能度量的更改。
8.根据权利要求1所述的方法,其中:
所述多个ISC包括服务ISC集合,每个服务ISC执行从以下服务中选择的相应过程控制服务的相应实例:所述控制器服务、另一个控制器服务、批次配方服务、操作员显示服务、操作员用户接口服务、配置显示服务、配置用户接口服务、可视化服务、诊断服务、分析服务、安全例程服务、报告服务、历史化服务、安全服务、仿真服务、数字孪生服务、外部通信服务或另一个过程控制服务;并且
所述方法还包括:由所述软件定义联网层将所述服务ISC集合中的每个ISC与以下中的至少一个通信耦合:(i)所述多个ISC中的至少一个其它服务ISC,或(ii)部署于所述工业过程工厂的所述现场环境中的一个或多个相应过程控制现场设备。
9.根据权利要求8所述的方法,其中,将所述服务ISC集合中的每个服务ISC与所述多个ISC中的至少一个其它服务ISC或一个或多个相应过程控制现场设备通信耦合包括:将第一服务ISC与第二服务ISC或相应过程控制现场设备中的至少一个通信耦合,其中,所述第一服务ISC与所述第二服务ISC或所述相应过程控制现场设备中的所述至少一个之间的通信利用请求-响应范例。
10.根据权利要求8所述的方法,其中,将所述服务ISC集合中的每个服务ISC与所述多个ISC中的所述至少一个其它服务ISC或所述一个或多个相应过程控制现场设备通信耦合包括:将第三服务ISC与第四服务ISC或相应过程控制现场设备中的至少一个通信耦合,并且其中,所述第三服务ISC与所述第四服务ISC或所述相应过程控制现场设备中的所述至少一个之间的通信利用发布-订阅范例。
11.根据权利要求8所述的方法,其中,
所述多个ISC还包括子系统ISC集合,每个子系统ISC执行从以下子系统中选择的相应过程控制子系统的相应实例:连续过程控制子系统、事件驱动过程控制子系统、批次过程控制子系统、基于状态的控制子系统、历史库子系统、边缘连接或边缘网关子系统、诊断子系统、过程用户子系统、报警子系统、许可子系统、事件子系统、版本控制子系统、过程配置子系统、过程I/O子系统、配置数据库子系统或另一个过程控制子系统;并且
所述方法还包括:将所述子系统ISC集合中的每个子系统ISC与所述多个ISC中的一个或多个其它ISC通信耦合。
12.根据权利要求11所述的方法,其中,将所述子系统ISC集合中的每个子系统ISC与所述一个或多个其它ISC通信耦合包括:将所述服务ISC集合中的至少一个相应服务ISC嵌套在每个子系统ISC内。
13.根据权利要求1所述的方法,其中:
所述过程控制系统与软件开发工具包通信连接;
所述多个ISC中的至少一个ISC执行经由所述软件开发工具包生成的第三方服务或第三方子系统中的至少一个的相应实例;并且
所述方法还包括:将执行所述第三方服务或所述第三方子系统中的所述至少一个的所述相应实例的所述至少一个ISC与以下中的至少一个通信耦合:(i)所述多个ISC中的至少一个其它ISC、或(ii)部署于所述工业过程工厂的现场环境中的至少一个过程控制现场设备。
14.根据权利要求1所述的方法,其中:
所述过程控制系统与一个或多个用户设备通信连接;并且
所述软件定义联网层经由所述一个或多个I/O硬件接口将执行用户接口服务的相应实例的一个或多个ISC与以下中的至少一个通信耦合:所述一个或多个用户设备、或在所述一个或多个用户设备上执行的相应用户接口应用。
15.根据权利要求14所述的方法,其中,所述过程控制系统包括执行安全服务的实例的ISC,所述方法还包括:
将执行所述用户接口服务的所述相应实例的一个或多个ISC中的至少一个ISC与执行所述安全服务的所述实例的ISC通信耦合;以及
基于所述安全服务的所述执行实例生成的结果,建立执行所述用户接口服务的所述相应实例的所述一个或多个ISC中的所述至少一个ISC与以下中的至少一个的通信耦合:所述一个或多个用户设备、或所述相应用户接口应用。
16.根据权利要求1所述的方法,其中,将所述特定ISC与所述一个或多个过程控制现场设备通信耦合包括:
经由所述过程控制系统的软件定义输入/输出(I/O)服务器服务,将所述多个ISC中的两个或更多个ISC与所述一个或多个过程控制现场设备通信耦合,所述两个或更多个ISC包括所述特定ISC,并且所述两个或更多个ISC中的每个ISC都执行所述控制器服务的复制实例,
所述软件定义I/O服务器服务在所述多个节点中的至少一个节点上执行,以执行以下动作:(i)向所述控制器服务的每个复制实例传递由所述一个或多个过程控制现场设备生成的数据,(ii)基于一个或多个性能度量选择所述控制器服务的两个或更多个复制实例中的一个复制实例,以及(iii)向所述一个或多个过程控制现场设备提供由所述控制器服务的所选择的复制实例生成的控制输出。
17.根据权利要求1所述的方法,其中,第一ISC被绑住到第二ISC,从而形成整体单元,并且所述方法还包括:
由软件定义联网层将所述整体单元的执行作为整体指派给所述多个节点的所述处理器资源或所述存储器资源中的所述至少一个的一部分;以及
由所述软件定义联网层响应于对所述多个ISC的一个或多个更改,将所述整体单元的执行作为整体指派给所述多个节点的所述处理器资源或所述存储器资源中的所述至少一个的不同部分。
18.根据权利要求1所述的方法,其中,特定ISC被绑住到所述多个节点中的特定节点,并且,所述方法还包括:
由所述软件定义联网层将所述特定ISC的执行限制为仅利用所述特定节点的所述处理器资源或所述存储器资源中的至少一个。
19.根据权利要求1所述的方法,其中,特定ISC被绑住到物理上容纳所述多个节点的所述处理器资源或所述存储器资源中的所述至少一个的一部分的机架或另一个结构,并且,所述方法还包括:
由所述软件定义联网层限制将所述特定ISC的执行为仅利用容纳在所述机架或所述另一个结构中的节点的所述处理器资源或所述存储器资源中的所述至少一个的所述部分。
20.根据权利要求1所述的方法,其中:
所述特定ISC为第一特定ISC;
所述过程控制系统的至少一部分包括在所述工业过程工厂运行时期间执行的所述多个ISC的第一子集,所述ISC的第一子集包括所述第一特定ISC;
所述多个ISC的第二ISC子集为所述过程控制系统的至少所述部分的数字孪生,所述多个ISC的所述第二子集在所述工业过程工厂的运行时期间执行;并且
所述方法还包括由所述软件定义联网层将所述过程控制系统的至少所述部分从包括所述ISC的第一子集切换到包括所述数字孪生,从而启动所述数字孪生以便在所述工业过程工厂的运行时期间执行。
21.根据权利要求1所述的方法,其中:
所述多个ISC的子集仿真所述过程控制系统的一部分,所述多个ISC的子集响应于以下中的至少一个:仿真输入、由所述多个ISC中的一个或多个ISC生成的数据、或在运行时期间由部署于所述现场环境中的一个或多个设备生成的数据;并且
所述方法还包括:
防止由所述过程控制系统的仿真部分生成的任何输出被传递到部署于所述工业过程工厂的所述现场环境中的任何接收方设备和任何启动的接收方ISC;以及
基于对所述过程控制系统的所述仿真部分的批准,由所述软件定义联网层将所述多个ISC的所述子集通信耦合到以下中的至少一个:在所述过程控制系统运行时执行的所述多个ISC中的一个或多个启动的ISC、或部署于所述工业过程工厂的所述现场环境中的至少一个过程控制现场设备,从而启动所述仿真部分以便在所述工业过程工厂的运行时期间执行。
22.根据权利要求1所述的方法,还包括:由所述软件定义联网层指派所述多个ISC中的每个ISC以在所述多个节点的相应节点集合上执行。
23.根据权利要求22所述的方法,其中,由所述软件定义联网层指派所述多个ISC中的每个ISC以在所述多个节点的相应节点集合上执行包括:指派每个ISC以在所述多个节点的相应节点集合的相应处理器资源和/或存储器资源上执行。
24.根据权利要求23所述的方法,还包括:由所述软件定义联网层在所述工业过程工厂的运行时期间监控所述过程控制系统的一个或多个性能度量,并响应于所述一个或多个性能度量的变化重新指派所述多个ISC中的至少一个ISC以在不同的相应节点集合上执行。
25.根据权利要求24所述的方法,其中,监控所述过程控制系统的一个或多个性能度量包括:随时间变化重复计算以下度量中的至少一个:所述过程控制系统的节点或ISC中的至少一个的容错度量、负载平衡度量或服务质量(QoS)度量。
26.根据权利要求24所述的方法,还包括:由所述软件定义联网层重新配置所述过程控制系统的参数的一个或多个值,其响应于所述一个或多个被监控的性能度量的变化影响所述QoS度量。
27.根据权利要求23所述的方法,还包括:基于以下中的至少一项重新指派所述多个ISC中的至少一个ISC以在所述多个节点的相应不同处理资源和/或存储器资源上执行:从所述多个节点中移除现有节点、向所述多个节点添加另一个节点、对所述多个节点中的特定节点的硬件配置的更改、所述特定节点发生故障、或所述特定节点的失效。
28.根据权利要求1所述的方法,还包括:响应于所述一个或多个性能度量的所述变化,执行以下步骤中的至少一个:
由所述软件定义联网层生成新的ISC,所述新的ISC执行与所述多个ISC相对应的第一服务的新实例;或
由所述软件定义联网层停用所述多个ISC中的现有ISC,所述现有ISC执行第二服务的相应实例。
29.根据权利要求1所述的方法,还包括:经由应用程序编程接口(API)集合将所述软件定义联网层与所述应用层通信耦合,并且其中,对用于执行多个ISC的所述多个节点的所述处理器资源或所述存储器资源中的所述至少一个的利用是经由所述API集合的。
30.根据权利要求29所述的方法,其中,经由所述API集合将所述软件定义联网层与所述应用层通信耦合包括:经由所述API集合和适配器层将所述软件定义联网层与所述应用层通信耦合。
31.根据权利要求29所述的方法,其中,所述软件定义联网层包括经由所述API集合调用的支持服务集合,并且,所述方法还包括:由所述软件定义联网层经由所述支持服务集合管理对所述多个节点的所述处理器资源或所述存储器资源中的所述至少一个的利用,以支持所述多个ISC的执行。
32.根据权利要求31所述的方法,其中,经由所述支持服务集合管理对所述处理器资源或所述存储器资源中的所述至少一个的利用以支持所述多个ISC的执行包括:经由软件定义计算服务管理对所述多个节点的所述处理器资源的利用以支持所述多个ISC的执行,包括响应于对所述多个ISC的所述一个或多个更改,由所述软件定义计算服务自动发起和执行对所述多个节点的所述处理器资源的利用的修改。
33.根据权利要求32所述的方法,其中,经由所述支持服务集合管理对所述处理器资源或所述存储器资源中的所述至少一个的利用以支持所述多个ISC的执行包括:经由软件定义存储服务管理对所述多个节点的所述存储器资源的利用以支持所述多个ISC的执行,包括响应于对所述多个ISC的所述一个或多个更改,由所述软件定义存储服务自动发起和执行对所述多个节点的所述存储器资源的利用的修改。
34.根据权利要求31所述的方法,还包括:由所述软件定义存储服务经由所述支持服务集合指派所述多个ISC的逻辑存储器资源以利用所述多个节点的所述存储器资源的第一部分,以及响应于对所述多个ISC的所述一个或多个更改,经由所述支持服务集合重新指派所述逻辑存储器资源以利用所述多个节点的所述存储器资源的不同部分。
35.根据权利要求31所述的方法,还包括:由所述软件定义联网层经由所述支持服务集合,根据在所述多个ISC中执行的服务的逻辑联网来管理所述多个节点之间的物理联网。
36.根据权利要求35所述的过程控制系统,还包括:由所述软件定义联网服务响应于对所述多个ISC的所述一个或多个更改,经由所述支持服务集合修改所述多个节点之间的物理联网。
CN202210737702.2A 2021-06-16 2022-06-16 用于工业过程工厂的软件定义过程控制系统和方法 Pending CN115480540A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163211535P 2021-06-16 2021-06-16
US63/211,535 2021-06-16
US17/487,858 US20220404799A1 (en) 2021-06-16 2021-09-28 Software defined process control system and methods for industrial process plants
US17/487,858 2021-09-28

Publications (1)

Publication Number Publication Date
CN115480540A true CN115480540A (zh) 2022-12-16

Family

ID=82496330

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210737702.2A Pending CN115480540A (zh) 2021-06-16 2022-06-16 用于工业过程工厂的软件定义过程控制系统和方法

Country Status (5)

Country Link
US (1) US20220404799A1 (zh)
JP (1) JP2022192059A (zh)
CN (1) CN115480540A (zh)
DE (1) DE102022114302A1 (zh)
GB (1) GB2610029A (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11768878B2 (en) * 2019-09-20 2023-09-26 Fisher-Rosemount Systems, Inc. Search results display in a process control system
US11768877B2 (en) * 2019-09-20 2023-09-26 Fisher-Rosemount Systems, Inc. Smart search capabilities in a process control system

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7774073B2 (en) * 2004-03-22 2010-08-10 Fairmont Automation Inc. Modular programmable automation controller with multi-processor architecture
US20090076628A1 (en) * 2007-09-18 2009-03-19 David Mark Smith Methods and apparatus to upgrade and provide control redundancy in process plants
CA2692018A1 (en) * 2009-02-06 2010-08-06 It Actual Sdn. Bhd. Computing platform based on a hierarchy of nested data structures
US9003429B2 (en) * 2009-09-23 2015-04-07 Aliphcom System and method of enabling additional functions or services of device by use of transparent gateway or proxy
US10148496B2 (en) * 2015-05-05 2018-12-04 Citrix Systems, Inc. Systems and methods for configuring a device via a software-defined networking controller
US10511490B2 (en) * 2015-06-19 2019-12-17 International Business Machines Corporation Automated configuration of software defined network controller
US11079744B2 (en) * 2015-10-13 2021-08-03 Schneider Electric Industries Sas Centralized management of a software defined automation system
US10013213B2 (en) * 2016-04-22 2018-07-03 EMC IP Holding Company LLC Container migration utilizing state storage of partitioned storage volume
DE112018005879T5 (de) * 2017-11-16 2020-08-20 Intel Corporation Verteilte softwaredefinierte industrielle Systeme
EP3660612B1 (en) * 2018-11-30 2022-12-28 Siemens Aktiengesellschaft Method and system for elimination of fault conditions in a technical installation
EP4273700A3 (en) * 2018-12-07 2024-01-17 Hadean Supercomputing Ltd Computing resource allocation
US11635980B2 (en) * 2019-09-20 2023-04-25 Fisher-Rosemount Systems, Inc. Modular process control system
US11379188B2 (en) * 2019-11-15 2022-07-05 Foresight Data Systems LLC Plugin-oriented functional programming system configured with software components

Also Published As

Publication number Publication date
GB2610029A (en) 2023-02-22
GB202208758D0 (en) 2022-07-27
DE102022114302A1 (de) 2022-12-22
US20220404799A1 (en) 2022-12-22
JP2022192059A (ja) 2022-12-28

Similar Documents

Publication Publication Date Title
US20220404788A1 (en) Discovery Service in a Software Defined Control System
US20220404811A1 (en) Systems and Methods for Dynamically Maintained Redundancy and Load Balancing in Software Defined Control Systems for Industrial Process Plants
US20220404810A1 (en) Visualization of A software defined process control system for industrial process plants
CN115480522A (zh) 软件定义的控制系统中的发现服务
CN115480531A (zh) 用于工业过程工厂的软件定义控制系统中的动态维护冗余和负载平衡的系统和方法
CN115480534A (zh) 用于将工业过程工厂的软件定义的控制系统中的模块进行关联的系统和方法
US20220404798A1 (en) Software defined process control system and methods for industrial process plants
US20220405116A1 (en) Visualizsation of a software defined process control system for industrial process plants
US20220404812A1 (en) Discovery Service in a Software Defined Control System
CN115480525A (zh) 过程控制环境中用于选择和使用容器化控制器服务的活动控制器输出的i/o服务器服务
CN115480527A (zh) 配置为通过容器化的控制器服务促进过程控制环境中的控制的i/o服务器服务
US20220404790A1 (en) Visualization of a software defined process control system for industrial process plants
CN115480540A (zh) 用于工业过程工厂的软件定义过程控制系统和方法
CN115480530A (zh) 用于将工业过程工厂的软件定义的控制系统中的模块进行关联的系统和方法
CN115480524A (zh) 利用服务质量度量以促进用于i/o服务器服务的i/o通道之间的转换
CN115480535A (zh) 包括与容器化的服务通信的i/o服务器服务的软件定义控制系统
CN115480528A (zh) 软件定义的控制系统中的安全服务
CN115480529A (zh) 用于工业过程工厂的软件定义控制系统中的动态维护冗余和负载平衡的系统和方法
CN115480532A (zh) 软件定义的控制系统中的安全服务
CN115480541A (zh) 工业过程工厂的sdcs的层级组织的系统和方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication