CN111638890A - 在进程控制系统中的节点的在线固件升级 - Google Patents

在进程控制系统中的节点的在线固件升级 Download PDF

Info

Publication number
CN111638890A
CN111638890A CN202010130758.2A CN202010130758A CN111638890A CN 111638890 A CN111638890 A CN 111638890A CN 202010130758 A CN202010130758 A CN 202010130758A CN 111638890 A CN111638890 A CN 111638890A
Authority
CN
China
Prior art keywords
component
node
upgraded
new
new component
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
CN202010130758.2A
Other languages
English (en)
Inventor
S·安德森
S·萨尔贝格
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.)
ABB Schweiz AG
Original Assignee
ABB Schweiz AG
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 ABB Schweiz AG filed Critical ABB Schweiz AG
Publication of CN111638890A publication Critical patent/CN111638890A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Stored Programmes (AREA)

Abstract

本公开提供了用于在进程控制系统中的节点的在线固件升级的机制。节点包括部件。每个部件是在单独的操作系统进程中运行的单独的可执行文件,单独的操作系统进程由节点的实时操作系统提供。方法由要被升级的节点的节点管理器执行。该方法包括针对要被升级的部件中的至少一个要被升级的部件中的每个部件创建新部件,使得每个新部件实现与其要被升级的部件相对应的固件升级的一部分,并且其中每个新部件是在单独的操作系统进程中运行的单独的可执行文件。该方法包括将在每个新部件中的运行时数据与其对应的要被升级的部件的运行时数据进行同步。该方法包括用其新部件替换至少一个要被升级的部件,并且由此升级节点。

Description

在进程控制系统中的节点的在线固件升级
技术领域
本文呈现的实施例涉及用于在进程控制系统中的节点的在线固 件升级的方法、节点管理器、计算机程序和计算机程序产品。
背景技术
现有进程控制系统具有以控制器为中心的架构,即:每个控制器 使用被连接到控制器的输入/输出(I/O)接口和设备,或经由被连接 到控制器的现场总线来执行控制逻辑应用集合。I/O接口和设备由控 制器配置和扫描,这使得控制器依赖于有关硬件拓扑以及I/O接口、 设备和现场总线的特定实现方式的知识。来自上层系统的I/O接口的 访问和设备数据通过控制器进行路由,并且有时需要修改控制逻辑。
现有进程控制系统需要冗余控制器硬件、冗余网关硬件、冗余设 备硬件等,以支持在线固件升级。这需要额外的硬件成本,并且有时 还需要额外的设计。
在线固件升级期间,新固件版本具有对控制系统运行时行为和动 态产生不可预见和不被期望的影响,该影响是小的但不可忽视的风 险,在最坏的情况下,该风险可能会导致生产损失。
因此,仍然存在针对改进进程控制系统的固件升级的需要。
发明内容
本文的实施例的目的是提供进程控制系统的有效固件升级。
根据第一方面,提出了一种用于在进程控制系统中的节点的固件 在线升级的方法。节点包括部件。每个部件是单独的可执行文件,该 单独的可执行文件在单独的操作系统进程中运行,单独的操作系统进 程由节点的实时操作系统提供。该方法由要被升级的节点的节点管理 器执行。该方法包括针对要被升级的部件中的至少一个要被升级的部 件的每个部件创建新部件,使得每个新部件实现与其要被升级的部件 对应的固件升级的一部分,并且其中每个新部件是在单独的操作系统 进程中运行的单独的可执行文件。该方法包括将在每个新部件中的运 行时数据与其相对应的要被升级的部件的运行时数据进行同步。该方 法包括用其新部件替换至少一个要被升级的部件,从而升级节点。
根据第二方面,提出了用于在进程控制系统中的节点的在线固件 升级的节点管理器。节点管理器包括处理电路。处理电路被配置为使 得节点管理器执行根据第一方面的方法。
根据第三方面,提出了一种进程控制系统,包括至少一个节点和 根据第二方面的节点管理器。
根据第四方面,提出了一种用于在进程控制系统中的节点的在线 固件升级的计算机程序,计算机程序包括计算机程序代码,该计算机 程序代码当在节点管理器上运行时,使得节点管理器执行根据第一方 面的方法。
根据第五方面,提出了一种计算机程序产品,其包括根据第四方 面的计算机程序和其上存储有计算机程序的计算机可读存储介质。计 算机可读存储介质可以是非暂时性计算机可读存储介质。
有利地,这提供在进程控制系统中的节点的有效固件升级。
有利地,这使得能够在非冗余控制器、网关和设备以及冗余控制 器、网关和设备中在线升级单个组件或组件的集合的固件。
有利地,这可以与新部件的性能评估相结合。
有利地,此类针对控制系统行为的评估可以被用于避免对控制系 统运行时行为和动态的不可预见和不期望的影响。
所附实施例的其他目的、特征和优点将从根据以下详细公开、根 据所附从属权利要求以及根据附图而变得明显。
总体上,除非本文另有明确定义,否则在权利要求书中使用的所 有术语均应按照其在技术领域的普通含义来解释。除非另有明确说 明,否则对“一/一个/该元件、装置、部件、设备、模块、进程块等” 的所有引用应当被广义地解释为该元件、装置、部件、设备、模块、 处进程块等的至少一个实例。除非明确说明,否则本文公开的任何方 法的处理块不必按照公开的确切顺序执行。
附图说明
现在,通过示例并参考附图的方式来描述本发明的概念,其中:
图1示意性地图示了进程控制系统的以网络为中心的架构;
图2示意性地图示了被分配给不同节点的控制服务;
图3示意性地图示了根据实施例的节点架构;
图4A和图4B是根据实施例的方法的流程图;
图5A至图5B示意性地图示了根据实施例的用于在线固件升级 的四种使用情况;
图6A至图6B示意性地图示了根据实施例的运行时数据的同步;
图7A至图7B示意性地图示了根据实施例的输入数据的同步;
图8A至图8B示意性地图示了根据实施例的执行的同步;
图9是示出了根据实施例的节点管理器的功能单元的示意图;以 及
图10示出了根据实施例的包括计算机可读存储介质的计算机程 序产品的一种示例。
具体实施方式
现在将参照附图更全面地描述本发明概念,在附图中示出了本发 明概念的某些实施例。然而,本发明的概念可以在多种不同的形式中 被实施,并且不应被解释为限限制本文所述的实施例;相反,这些实 施例由示例的方式提供,以便本公开将是彻底和完整的,并且可以将 本发明的概念的范围完全传达给本领域技术人员。相似数字指的是在 整个描述中的相似元素。由虚线所图示的任何处理块或特征应被视为 可选项。
在如图1中图示的进程控制系统100的以网络为中心的架构中, 作为节点300的示例的输入/输出(I/O)实体和设备不像在以控制器 为中心的进程控制系统架构中那样由控制器“拥有”。用于I/O实体和 设备配置的设计工具将配置数据部署到I/O实体和设备,而不涉及(中 央)控制器。控制器专注于控制逻辑的执行,并且可以访问来自任何 I/O实体或设备的I/O信号。以网络为中心的进程控制系统架构提供 了在系统范围内的访问I/O实体信息和设备信息的便捷途径,该信息 来自上层系统(诸如,操作和设计),而无需通过控制器路由任何信 息。不必更新控制逻辑即可访问I/O实体信息和设备信息。
一般而言,在控制服务之间的进程数据的交换由中间件处理。然 后数据被表示为信号。控制服务表示在控制器、网关和设备中的主要 服务,例如,在控制器中的控制逻辑的执行、在现场总线网关中的I/O 和现场设备的扫描、在设备中设备功能的管理等。
控制服务通常被在不同的节点中分配,每个节点一个或多个控制 服务。
总体而言,控制服务不具有关于与该控制服务交互的其他控制服 务在哪里被分配的知识。这是由中间件处理,并且该处理对控制服务 是透明的。图2示出了在三个节点中执行具有四个控制服务310a、 310b、310c、310d的进程控制系统100’的示例;诸如在节点300b是 设备、节点300c是现场总线网关并且节点300a是控制器的情况下, 其中节点300a托管两个控制服务310a、310b,其中,节点300b托管 一个控制服务310c,并且节点300c托管一个控制服务310d。节点 300a、300b和300c各自具有对应的中间件(诸如,中间件330a,330b 和330c),对应的中间件用于被分配在不同的节点中的控制服务之间 的信号交换,以及用于被分配在相同的节点中的控制服务之间(即, 在该示例中的控制器330a中)的信号交换。
如在图2中图示的,与不使用中间件的控制器、设备等的交互由 用于特定的交互所需的通信协议的控制服务处理。物联网(IoT)连 接控制服务310可操作地将控制器300a连接到IoT设备110,并且现 场总线网关300c的现场总线连接控制服务310可操作地将现场总线 网关连接到现场总线设备120(例如Profibus设备)。此类控制服务可 以在任何节点中执行,例如,在控制器节点中执行,作为物联网连接 控制服务,或者在单独的节点中执行,作为现场总线连接控制服务。
中间件和控制服务可以作为在单独的操作系统进程中运行的单 独的可执行文件而被提供,用于存储器的保护和故障的隔离。控制服 务通过进程间通信与中间件进行交互。
控制服务由设计工具的集合配置;每种控制服务类型一个工具, 例如:一个设计工具用于控制逻辑配置,以及另一个工具用于I/O实 体配置和设备配置。例如,这将控制逻辑设计从I/O设计隔离。也就 是说,可以彻底地设计控制逻辑,而无需知道它将在哪里执行,也不 知道I/O实体和设备将如何连接/或在哪里连接。
中间件由中间件配置部件配置,该中间件配置部件使用由设计工 具提供的信号定义来创建中间件配置。中间件配置与控制服务配置一 起被发送,并且由控制服务转发到中间件。
一般而言,信号在发布者和订阅者之间定义了合约/接口,用于交 换进程数据。信号包括以下属性:系统唯一信号标识(ID)、针对信 号值的数据类型、针对信号值的范围和设计单位(仅用于模拟信号)、 覆盖值(由信号订阅者在信号质量差时使用)和替换值(由信号发布 者在信号质量差时使用)。在用于控制逻辑和I/O设计的设计工具中, 信号被配置并连接到控制逻辑变量和I/O通道,并且被下载到节点。 中间件配置部件的责任是确保信号ID在系统内是唯一的。
现有的进程控制系统需要冗余控制器硬件、冗余网关硬件、冗余 设备硬件等,以支持在线固件升级。这需要额外的硬件成本,有时还 需要额外的设计成本。此外,在线固件升级期间,新固件版本可能会 对控制系统运行时行为和动态产生不可预见和不被期望的影响,这是 小的但不可忽视的风险,在最坏的情况下,其可能会导致生产损失。
本文所公开的实施例使得能够在非冗余控制器、网关和设备以及 冗余控制器、网关和设备中在线升级单个组件或组件的集合的固件。 可以在控制服务固件升级期间评估控制系统行为,以避免由于在线固 件升级而对控制系统运行时行为和动态造成不可预见和不期望的影 响。因此,在线固件升级可以在被接受或被拒绝之前被监督和评估。
图3示意性地图示了在进程控制系统100、100’中的用于节点300a 的部件架构。在一些示例中,节点300a是控制器、网关或处理设备。
节点300a具有一个或多个运行在平台部件320a上的控制服务部 件310a、310b。平台部件320a包括以下部件:中间件330a、节点管 理器200a和通信接口340a。在一些示例中,通信接口340a包括或充 当,垂直通信部件。
每个部件是在在单独的操作系统进程中运行的单独的可执行文 件,单独的操作系统进程由节点300a的实时操作系统(在图中未示 出)提供的。在一些示例中,待重新配置的至少一个部件是控制服务 部件和/或控制服务部件正在其上运行平台部件320a。
例如,每个部件可以包括用于信号交换的中间件330a,使得任何 控制服务都能够在不了解网络布局、控制服务部署或控制服务内部结 构的情况下访问任何其他控制服务中的任何信号。
中间件330a使得能够在不影响订阅者的情况下将信号发布者从 一个节点300a移动到另一个节点300a,反之亦然。
为了简化控制服务的实现方式,并且协调控制服务的行为,每个 控制服务部件310a、310b被提供为具有三个子部件:中间件(MW) 应用编程接口(API)350a、350b、节点管理器(NM)API 360a、360b 和用于被使用以与平台部件320a的控制服务交互的地址空间370a、 370b。这些子部件也可以被复制为平台部件的一部分。也就是说,在 一些示例中,控制服务部件包括:中间件API、节点管理器API和地 址空间。
每个部件都具有自己的用于运行时数据和配置数据的数据库。也 就是说,没有单独的部件充当由所有部件使用的中央数据库。部件运 行时数据库针对最频繁的数据访问(例如,针对控制逻辑执行)被最 优化,并且允许控制服务具有特定的信息模型,例如,具有程序组织 单元(POU)、变量等的IEC 61131-3信息模型,其他部件不需要的信 息被隐藏在控制服务内部。在这方面中,可以将数据库作为任何被配 置为存储数据的对象来提供(例如,传统数据库、类、表格或任何其 他类型的适当数据结构。
节点管理器200a被配置为用于启动在节点300中的所有部件, 并且节点管理器200a被配置为用于针对部件的运行时行为、健康等 的监督。取决于节点管理器200a的配置,节点管理器200a可以被配 置为停止或重新启动部件的执行。
节点管理器200a被配置为用于在节点300a中执行在线固件升 级。
由于每个部件都是单独的可执行文件,并且每个部件都有自己的 运行时数据和配置数据数据库,因此在节点300a中,可以在不需要 节点300a的冗余硬件的情况下升级单个部件以及完整的部件的集合。 因此,在一些方面中,实时操作系统在节点300a中的非冗余硬件上 运行。然而,实时操作系统的在线升级通常需要冗余硬件。也就是说, 在其它方面中,实时操作系统在节点300a中的冗余硬件上运行。
本文公开的示例性实施例特别涉及用于进程控制系统100、100’ 中的节点300a的在线固件升级的机制。为了获得此类机制,提供了 一种节点管理器200,以及由该节点管理器200a执行的方法,一种计 算机程序产品,该计算机程序产品包括例如在计算机程序形式中的代 码,当代码在节点管理器200a上运行时,该代码使得节点管理器200a 执行该方法。
图4A图示了根据本公开的示例性方面的用于在进程控制系统 100、100’中节点300a的在线固件升级的方法,其中节点300a包括部 件,其中,每个部件是在单独的操作系统进程中运行的单独的可执行 文件,单独的操作系统进程由节点300a的实时操作系统提供。在示 例性实施例中,该方法由要重新配置的节点300a的节点管理器200a 执行。该方法被有利地提供为计算机程序1020。
如下文结合下图更详细地描述的,该进程在进程块104中开始, 通过针对要被升级的部件中的至少一个要被升级的部件的每个部件 创建新部件,使得每个新部件实现与其要被升级的部件对应的固件升 级的一部分,并且其中,每个新部件是在单独的操作系统进程中运行 的单独的可执行文件。
接下来如下文结合下图更详细地描述的,在处理块S108中,将 每个新部件中的运行时数据与其对应的要被升级的部件的运行时数 据进行同步。
接下来如下文结合下图更详细地描述的,在处理块S112中,要 被升级的至少一个部件被替换为其新部件,从而升级节点300a。
在图4B中进一步图示了用于在图4A中示出的在进程控制系统 100、100’中在线升级节点300的方法的实施例的流程图。参考图4B, 节点300a包括部件。每个部件是在单独的操作系统进程中运行的单 独的可执行文件,单独的操作系统进程由节点300a的实时操作系统 提供。在示例性实施例中,这些方法由节点管理器200a执行。这些 方法有利地被提供为计算机程序1020。
总体而言,针对方法存在四种使用情况:1)节点300的单一控 制服务的在线固件升级,2)节点300的单一平台部件320的在线固 件升级,3)节点300的所有部件的在线固件升级,以及4)使用冗余 的固件的完整在线固件升级。在如图5A至图5B中图示了使用情况,其中使用情况1在(a)处所图示,使用情况2在(b)处所图示,使 用情况3在(c)处所图示,并且使用情况4在(d)处所图示。在图 5A至图5B中使用虚线以标识任何要被升级的部件200b、310c、310d、 330b、340b,以及其中冗余硬件由节点300b限定。当在这些使用情 况之间不需要区分时,将使用“至少一个部件的固件升级”的通式。 在(a)和(b)处的前两个使用情况中,单个部件200b、310c、310d、 330b、340b的固件被升级。单个部件的固件升级要求新部件(由固件 升级所产生)与在节点300中剩余的现有部件兼容。如果不是这种情 况,在(c)和(d)处的第三使用情况中升级所有部件的固件。在第 四使用情况(d)中,使用由节点300b限定的冗余硬件,其可能是实 时操作系统和节点管理器200a的固件的在线升级所必需的。
固件升级可以由固件升级工具编排。因此,可以使用固件升级工 具以将新固件传输到节点300a,并且用于在如下文的处理块 S102-S112所定义的升级过程期间发送升级命令。因此,节点管理器 200a是升级命令和新固件的接收器,并且节点管理器200a被配置为通过执行根据下文的处理块S102-S112的方法来执行升级命令。因此, 根据实施例,节点管理器200a被配置为执行(可选的)处理块S102:
S102:节点管理器200a针对节点300a的至少一个部件获得固件 升级。
节点管理器200a使用固件升级来创建与要被升级的部件的(多 个)可执行文件并行的新部件的(多个)可执行文件。也就是说,节 点管理器200a被配置为执行处理块S104:
S104:节点管理器200a针对要被升级的部件中的至少一个要被 升级的部件的每个部件创建新部件,以使每个新部件实现与其要被升 级的部件相对应的固件升级的一部分。每个新部件都是在单独的操作 系统进程中运行的单独的可执行文件。每个操作系统进程可以由节点 300a的实时操作系统提供。当要被重新配置的部件中的至少一个部件 仍在运行时,新部件被创建。
(多个)新部件被配置为使用与配置旧版本部件时使用的配置文 件相同。为了防止旧配置文件格式与新固件版本不兼容,则新配置文 件将与新固件一起传输。也就是说,根据一种实施例,每个新部件在 被创建时被配置为与其对应的要被升级的部件的配置相同,并且根据 另一个实施例,每个新部件在被创建时被配置为有由固件升级提供的 配置。
然后,节点管理器200a可以停止执行所有要被升级的部件。也 就是说,根据一种实施例,节点管理器200a被配置为执行(可选) 处理块S106:
S106:节点管理器200a停止在节点300a上要被升级和运行的每 个部件的执行。
然后,节点管理器200a开始将在(多个)新部件中的运行时数 据与来自(多个)旧部件的运行时数据进行同步。也就是说,节点管 理器200a被配置为执行处理块S108:
S108:节点管理器200a将在每个新部件中的运行时数据与其对 应的要被升级的部件的运行时数据进行同步。
在图6A至图6B中示意性地图示了同步。图6A(a)图示了使用 情况1和2,图6B(b)图示了使用情况3和4。因此,在图6A(a) 中的节点300a包括与在图5A(a)中的节点300a相同的部件,并且 还附加地直接示出了控制服务310a、310b的子部件350a、350b、360a、 360b、370a、370b。图6A(a)还示出了与在图5A(a)中的控制服 务310d的子部件对应的子部件350d、360d、370d。此外,在图6B (b)中的节点300a包括与在图5B(d)中的节点300a相同的部件, 并且还附加地直接示出了控制服务310a、310b的子部件350a、350b、 360a、360b、370a、370b。图6B(b)还示出了与在图5B(d)中的 节点300b的相对应的子部件200a、310c、310d、330b、340b、350c、 350d、360c、360d、370c、370d。
如由箭头600a所图示的,在使用情况1和使用情况2中,所有 控制逻辑变量等(包含必须保留的状态)被收集,并且这些被收集的 变量被提交给节点管理器API 360b子部件,该子部件将其打包到容 器中并将其转发给节点管理器200a(如由箭头600a所图示的)。节点 管理器200a将它们发送到在新部件310c中的节点管理器API 360c (如由箭头600b所图示的),在此处它们被用于更新运行时数据。
在使用情况3和4中,被收集的状态被提交到节点管理器200(如 由箭头600c所图示的),节点管理器200将它们打包并将它们转发(如 由箭头600d所图示的),到新节点管理器200b,新节点管理器200b 将它们转发到其他新部件,以更新运行时数据(如由箭头600e所图 示的)。为了简化附图,仅为一个部件示出了状态的收集和更新;用 于控制服务B。尽管部件的内部状态表示在新的部件版本和现有的部 件版本之间不同,被传输的状态在容器中具有版本独立的表示,以实 现状态转移。
在同步完成之后,节点管理器200a启动(多个)新部件,并删 除(多个)旧部件。在使用情况4中,这是通过切换到由节点管理器 200a发起的被动硬件单元(由节点300b定义)来完成的。也就是说, 节点管理器200a被配置为执行处理块S112:
S112:节点管理器200a用其新部件替换要被升级的至少一个部 件,并从而升级节点300a。在一些方面中,节点管理器200在已经删 除了至少一个要被升级的部件之后,通过开始执行每个新部件来升级 节点300a。
现在将公开涉及与由节点管理器200a执行的在进程控制系统 100、100’中的节点300a的在线固件升级的进一步细节的实施例。
为了避免由于固件在线升级而对控制系统运行时行为和动态造 成不可预见和不被期望的影响,在一些方面中提供了一种在固件升级 期间评估控制系统行为的机制。在一些方面中,性能评估由固件升级 工具执行。在其他方面中,性能评估在节点中被执行。因此,根据一 种实施例,节点管理器200a被配置为执行(可选)处理块S110:
在将运行时数据进行同步之后、但是在删除至少一个要被升级的 部件之前,节点管理器200a评估每个新部件的性能。
在处理块S108中的同步进行之后,该评估被执行。
新部件和要被升级的现有部件二者是并行启动和运行的。因此, 根据一种实施例,节点管理器200a被配置为执行(可选)作为处理 块S110的一部分的处理块S110a:
S110a:节点管理器200a启动每个新部件和至少一个要被升级的 部件的并行执行。因此,每个新部件和至少一个要被升级的部件并行 运行。每个新部件和至少一个要被升级的部件使用相同的输入运行, 但是在进程控制系统100、100’中仅使用通过使用输入来运行至少一 个要被升级的部件所产生的输出。也就是说,只有现有部件控制输出。
因此,可以评估一个或多个部件在运行时行为和动态方面的潜在 差异。在一些方面中,固件升级工具通过验证新部件产生预期输出(针 对给定输入)来验证新部件具有可接受的行为,并且从而按预期执行。 在其他方面中,验证在节点内部执行。具体地,根据一种实施例,节 点管理器200被配置为执行(可选)作为处理块S110的一部分的处 理块S110b:
S110b:节点管理器200a验证每个新部件产生预期的输出。
一旦该验证完毕,执行就被停止。具体地,根据一种实施例,节 点管理器200被配置为执行(可选)作为处理块S110的一部分的处 理块S110c:
S110c:基于验证,节点管理器200a停止每个新部件和至少一个 要被升级的部件的执行。换言之,在固件升级工具或节点管理器200a 验证了每个新部件产生与其对应的要被升级的部件相同的输出后,执 行就被停止。
在固件升级工具或节点管理器200a无法验证每个新部件产生预 期输出的情况下,则在线固件升级进程被终止。在终止的情况下,每 个新部件都被删除,并且使用本来将要升级的(多个)对应部件来继 续节点300a的操作。
如下面将进一步公开的,根据一种实施例,每个新部件都经由节 点管理器200a被提供来自其对应的要被升级的部件的输入。
在一些方面中,由于平台部件固件升级而导致的差异无法评估。 也就是说,根据一种实施例,仅当要被升级的是控制服务部件的固件 时,才执行在处理块S110中的评估。因此,鉴于上述情况,可以针 对在上述使用情况1、3和4中的任何一个使用情况进行评估。
一旦已验证固件升级产生的新固件版本按预期运行,则新部件可 以被设置为活动的,即:作为例如控制节点300a的输出并通过新部 件的命名空间访问的部件。在使用情况4中,这是通过由节点管理器 200a发起的切换到运行新部件的硬件单元(由节点300b定义)而实 现的。
与在节点管理器200a和节点管理器API 360a处理控制服务中的 运行时数据的同步的方式类似,节点管理器200a和节点管理器API 360a处理部件输入的同步以及部件执行的同步。
在启动新部件时,新部件订阅输入信号并在中间件中注册其输出 信号(使用中间件API),从而使得能够快速地切换到新部件。但是, 新部件在评估期间将不会使用接收到的信号,也不会将其信号发布到 中间件330a,在评估期间新部件的信号将由中间件API屏蔽。相反, 新部件将使用从现有部件接收的输入信号。中间件API和在现有部件 中的地址空间将所有接收到的输入转发给节点管理器API,该节点管 理器API将它们打包到版本独立的容器中,并将它们提交给节点管理 器200,节点管理器200将容器转发给在新部件中的节点管理器API, 这使得它们对于中间件API可用。
图7至图7B图示了用于使用情况1(在(a)处)和使用情况4 (在(b)处)的输入数据的同步。该图未示出所有细节,例如:订 阅信号被两个部件版本(即,现有的和新的)接收。图7A(a)图示 了具有与在图6A(a)中的节点300a相同的部件的节点300a。图7B (b)图示了具有与在图6B(b)中的节点300a、300b相同部件的节 点300a、300b。
其他类型的输入数据,例如来自与上层系统部分的通信、来自I/O 扫描器或来自通信堆栈的数据也被同步。来自上层系统部分的输入数 据被通信接口340a接收(如由箭头700a象征性地示出的),通信接 口340a将来自上层系统部分的输入数据转发到在现有部件中的地址 空间370b(如由箭头700b象征性地示出的)。地址空间370b将输入 数据发送给节点管理器API 360b,节点管理器API 360b将其转发给 新部件(如由箭头700c、700d象征性地示出的)。其他输入数据,例 如由在部件中的I/O扫描仪接收的数据,由现有部件通过节点管理器 API 360发送到新部件。在新部件是I/O扫描器的情况下,则它在评 估期间不会控制I/O和设备。该控制是由现有部件处理的。
使要被升级的部件的执行同步,即:如上所述的输入数据的同步、 将信号值复制到内部变量、执行控制或扫描逻辑等,以及将内部变量 值复制到信号。在这方面中,中间件API 350使用节点管理器API 360 触发同步(例如,复制入、执行、复制出、输入数据同步),节点管 理器API 360使用如上所述的基础设施转发同步信息。在图8A至图 8B中由箭头800a、800b、800c、800d、800e、800f针对使用情况1 (在(a)处)和使用情况3(在(b)处)进行了说明。图8A(a) 图示了具有与在图7A(a)中的节点300a相同的部件的节点300a。 图8B(b)图示了与在图7B(b)中的节点300a、300b具有相同部件 的节点300a、300b。
由于现有部件和新部件在地址空间中暴露相同的实体,因此在一 些方面中,新部件针对其实体而使用单独的命名空间(评估命名空 间)。因此,根据实施例,在在处理块S110评估性能时,针对每个新 部件都使用临时命名空间。例如,特定控件逻辑变量将在现有部件中 与在新部件中具有相同的项ID,但具有不同的命名空间ID。然而, 因为现有部件和新部件在不同节点300a中运行,所以在使用情况4 中不需要单独的评估命名空间。
通信接口340a、340b子部件可以被用于读取控制逻辑或I/O扫描 器变量值、信号值等。固件升级工具可以被配置为通过从两个命名空 间(普通命名空间和评估命名空间)读取值来评估在运行时行为和动 态中的潜在差异。固件升级工具使用命名空间ID来标识哪个部件 (即,现有部件或新部件)以用于请求该值。被请求的控制服务的地 址空间370a-370e使用项目ID来查找对应的实体。
控制服务不知道其控制服务通信伙伴被分配的位置。因此,发布 数据集合(一组信号)的控制服务可以由在相同节点300a或在不同 节点300a中的另一控制服务替换,而不影响数据集合的订阅者,并 且在不影响数据集合的发布者的情况下,订阅数据集合的控制服务可 以由在相同节点300a或在不同节点300a中的另一控制服务替换。
图9示意性地图示了根据一种实施例的节点管理器200a的部件 (在多个功能单元方面上)。处理电路210使用适当的中央处理单元 (CPU)、多处理器、微控制器、数字信号处理器(DSP)等中的一个 或多个的任意组合来提供,其能够执行被存储在计算机程序产品1010 (如图10所示)中的软件指令(例如,以存储介质230的形式中)。 处理电路210还可以被提供为至少一个应用专用集成电路(ASIC)或 现场可编程门阵列(FPGA)。
特别地,处理电路210被配置为使得节点管理器200a执行如上 文所公开的操作的集合或处理块。例如,存储介质230可以存储操作 的集合,并且处理电路210可以被配置为从存储介质230检索操作的 集合,以使得节点管理器200a执行操作的集合。该操作的集合可以 作为可执行指令的集合而被提供。
因此,处理电路210被布置为执行本文所公开的方法。存储介质 230还可以包括永久存储器,例如,可以是磁性存储器、光学存储器、 固态存储器、或甚至是被远程安装的存储器的任何单个或组合。节点 管理器200a还可以包括至少被配置用于与节点的其它组件通信的通 信接口220。因此,通信接口220可以包括一个或多个发射器和接收 器(包括模拟和数字部件)。处理电路210控制节点管理器200a的一 般操作(例如,通过向通信接口220和存储介质230发送数据和控制 信号,通过从通信接口220接收数据和报告,以及通过从存储介质230 检索数据和指令)。省略节点管理器200a的其它组件以及相关功能, 以避免混淆在本文中提出的概念。
如上文所公开的,节点管理器200a可以被提供为节点300a的部 件,因此可以根据需要与节点300a共享资源(诸如,处理电路210 等)。
图10示出了包括计算机可读存储介质1030的计算机程序产品 1010的一个示例。在该计算机可读存储介质1030上,计算机程序1020 可以被存储,计算机程序1020可以使得处理电路210及与其可操作 地耦合的实体和设备(诸如通信接口220和存储介质230),以执行根 据本文所描述的实施例的方法。因此,计算机程序1020和/或计算机 程序产品1010可以提供用于执行本文所公开的任何处理块的装置。
在图10的示例中,计算机程序产品1010被图示为光盘(诸如 CD(光盘)或DVD(数字多功能光盘)或蓝光光盘)。计算机程序产 品1010还可以被实施为存储器,诸如:随机存取存储器(RAM)、只 读存储器(ROM)、可擦除可编程只读存储器(EPROM)或电可擦除 可编程只读存储器(EEPROM),并且更具体地作为设备在外部存储 器中的非易失性存储器(例如USB(通用串行总线)或闪存(诸如, 小型闪存)。因此,尽管计算机程序1020在此处示意性地示出为所描 绘的光盘上的轨道时,计算机程序1020可以以适合于计算机程序产 品1010的任何方式存储。
本发明的概念主要在上面参照一些实施例进行了描述。然而,如 本领域技术人员所容易理解的,除了上面公开的实施例以外的其他实 施例同样可以落入由所附权利要求所限定的本发明的保护范围内。

Claims (15)

1.一种用于在进程控制系统(100、100’)中的节点(300a)的在线固件升级的方法,其中所述节点(300a)包括部件,其中每个部件是在单独的操作系统进程中运行的单独的可执行文件,所述单独的操作系统进程由所述节点(300a)的实时操作系统提供,所述方法由要被升级的所述节点(300a)的节点管理器(200a)执行,所述方法包括:
针对要被升级的部件中的至少一个要被升级的部件中的每个部件创建(S104)新部件,使得每个新部件实现与其要被升级的部件相对应的所述固件升级的一部分,并且其中每个新部件是在单独的操作系统进程中运行的单独的可执行文件;
将每个新部件中的运行时数据与所述新部件的对应的要被升级的部件的运行时数据进行同步(S108);以及
使用所述至少一个要被升级的部件的新部件来替换(S112)所述至少一个要被升级的部件,并且由此升级所述节点(300a)。
2.根据权利要求1所述的方法,其中每个新部件在被创建时被配置有与所述新部件的对应的要被升级的部件相同的配置。
3.根据权利要求1所述的方法,其中每个新部件在被创建时被配置有由所述固件升级提供的配置。
4.根据权利要求1所述的方法,其中所述实时操作系统在所述节点(300a)中的非冗余硬件上运行。
5.根据权利要求1所述的方法,还包括:
在将所述运行时数据进行同步之后、但是在删除所述至少一个要被升级的部件之前,评估(S110)每个新部件的性能。
6.根据权利要求5所述的方法,其中评估所述性能包括:
启动(S110a)每个新部件和所述至少一个要被升级的部件的并行执行,其中每个新部件和所述至少一个要被升级的部件使用相同的输入运行,但是其中在所述进程控制系统(100、100’)中仅使用了通过使用所述输入来运行所述至少一个要被升级的部件而产生的输出;
验证(S104b)每个新部件产生预期的输出;以及
基于所述验证来停止(S110c)每个新部件和所述至少一个要被升级的部件的执行。
7.根据权利要求6所述的方法,其中每个新部件经由所述节点管理器(200a)而被提供有来自所述新部件的对应的要被升级的部件的所述输入。
8.根据权利要求5、6或7中任一项所述的方法,其中在评估所述性能时,为每个新部件使用临时命名空间。
9.根据权利要求1所述的方法,其中所述至少一个要被升级的部件是控制服务部件(310a)和/或平台部件(340a),所述控制服务部件(310a)在所述平台部件(340a)上运行。
10.根据权利要求9所述的方法,其中所述控制服务部件(310a)包括:中间件API(350a)、节点管理器API(360a)、以及地址空间(370a)。
11.根据权利要求9所述的方法,其中所述平台部件(320)包括:中间件(330a)、所述节点管理器(200a)、以及通信接口(340a)。
12.根据权利要求5或6中任一项结合权利要求9、10或11中任一项所述的方法,其中所述评估仅在所述控制服务部件(310a)的固件要被升级的情况下被执行。
13.根据权利要求1所述的方法,还包括:
在已经创建所述新部件之后、并且在将所述运行时数据进行同步之前,停止(S106)要被升级、并且在所述节点(300a)上运行的每个部件的执行。
14.一种节点管理器(200a),用于在进程控制系统(100、100’)中的节点(300a)的在线固件升级,其中所述节点(300a)包括部件,其中每个部件是在单独的操作系统进程中运行的单独的可执行文件,所述单独的操作系统进程由所述节点(300a)的实时操作系统提供,所述节点管理器(200a)包括处理电路(210),所述处理电路(210a)被配置为使得所述节点管理器(200a)执行根据前述权利要求中任一项所述的方法。
15.一种用于在进程控制系统(100、100’)中的节点(300a)的在线固件升级的计算机程序(1020),其中所述节点(300a)包括部件,其中每个部件是在单独的操作系统进程中运行的单独的可执行文件,所述单独的操作系统进程由所述节点(300a)的实时操作系统提供,所述计算机程序包括计算机代码,所述计算机代码当在节点管理器(200a)的处理电路(210)上运行时,使得所述节点管理器(200a)执行根据前述权利要求中任一项所述的方法。
CN202010130758.2A 2019-03-01 2020-02-28 在进程控制系统中的节点的在线固件升级 Pending CN111638890A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP19160284.6A EP3702910B1 (en) 2019-03-01 2019-03-01 Online firmware upgrade of a node in a process control system
EP19160284.6 2019-03-01

Publications (1)

Publication Number Publication Date
CN111638890A true CN111638890A (zh) 2020-09-08

Family

ID=65724162

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010130758.2A Pending CN111638890A (zh) 2019-03-01 2020-02-28 在进程控制系统中的节点的在线固件升级

Country Status (3)

Country Link
US (1) US11281448B2 (zh)
EP (1) EP3702910B1 (zh)
CN (1) CN111638890A (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4063974A1 (en) * 2021-03-23 2022-09-28 ABB Schweiz AG Controlling an industrial process using virtualized instances of control software
EP4372550A1 (de) * 2022-11-17 2024-05-22 VEGA Grieshaber KG Verfahren zur reduktion der unterbrechungszeiten bei einem software-update eines feldgeräts

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101126987A (zh) * 2006-08-15 2008-02-20 阿尔卡特朗讯公司 流处理系统中的软件替换
US20090076628A1 (en) * 2007-09-18 2009-03-19 David Mark Smith Methods and apparatus to upgrade and provide control redundancy in process plants
US20100199272A1 (en) * 2009-02-05 2010-08-05 International Business Machines Corporation Updating firmware without disrupting service
US20110154313A1 (en) * 2009-12-21 2011-06-23 International Business Machines Corporation Updating A Firmware Package
US20140013315A1 (en) * 2012-07-04 2014-01-09 Pavel GENEVSKI Scheduled and quarantined software deployment based on dependency analysis
US20140304696A1 (en) * 2011-10-11 2014-10-09 Sandvik Mining And Construction Oy Arrangement for updating a control system
CN104572229A (zh) * 2015-02-12 2015-04-29 西安诺瓦电子科技有限公司 嵌入式系统的固件升级方法以及固件升级装置
US20170139727A1 (en) * 2015-11-18 2017-05-18 Level 3 Communications, Llc Communication node upgrade system and method for a communication network
US20170168803A1 (en) * 2015-12-14 2017-06-15 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for performing hitless update of line cards of a network device
US20170192770A1 (en) * 2015-09-14 2017-07-06 Panasonic Intellectual Property Corporation Of America Gateway device, in-vehicle network system, and firmware update method
CN107515776A (zh) * 2017-07-18 2017-12-26 深信服科技股份有限公司 业务不间断升级方法、待升级节点和可读存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10642603B2 (en) * 2018-01-16 2020-05-05 Nutanix, Inc. Scheduling upgrades in distributed computing systems

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101126987A (zh) * 2006-08-15 2008-02-20 阿尔卡特朗讯公司 流处理系统中的软件替换
US20090076628A1 (en) * 2007-09-18 2009-03-19 David Mark Smith Methods and apparatus to upgrade and provide control redundancy in process plants
US20100199272A1 (en) * 2009-02-05 2010-08-05 International Business Machines Corporation Updating firmware without disrupting service
US20110154313A1 (en) * 2009-12-21 2011-06-23 International Business Machines Corporation Updating A Firmware Package
US20140304696A1 (en) * 2011-10-11 2014-10-09 Sandvik Mining And Construction Oy Arrangement for updating a control system
US20140013315A1 (en) * 2012-07-04 2014-01-09 Pavel GENEVSKI Scheduled and quarantined software deployment based on dependency analysis
CN104572229A (zh) * 2015-02-12 2015-04-29 西安诺瓦电子科技有限公司 嵌入式系统的固件升级方法以及固件升级装置
US20170192770A1 (en) * 2015-09-14 2017-07-06 Panasonic Intellectual Property Corporation Of America Gateway device, in-vehicle network system, and firmware update method
US20170139727A1 (en) * 2015-11-18 2017-05-18 Level 3 Communications, Llc Communication node upgrade system and method for a communication network
US20170168803A1 (en) * 2015-12-14 2017-06-15 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for performing hitless update of line cards of a network device
CN107515776A (zh) * 2017-07-18 2017-12-26 深信服科技股份有限公司 业务不间断升级方法、待升级节点和可读存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JONATHAN E. COOK 等: "Highly reliable upgrading of components", 《 ICSE \'99: PROCEEDINGS OF THE 21ST INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING》, 31 May 1999 (1999-05-31), pages 203, XP058375496, DOI: 10.1145/302405.302466 *
张敏狄 等: "分布式网络设备的业务不中断软件升级系统设计", 《计算机系统应用》, 30 June 2010 (2010-06-30), pages 40 - 43 *
张敏狄: "分布式网络设备的软件在线升级系统设计", 《中国优秀硕士学位论文全文数据库信息科技辑》, 15 February 2012 (2012-02-15), pages 138 - 1208 *

Also Published As

Publication number Publication date
US20200278856A1 (en) 2020-09-03
EP3702910A1 (en) 2020-09-02
US11281448B2 (en) 2022-03-22
EP3702910B1 (en) 2022-06-29

Similar Documents

Publication Publication Date Title
EP3702857B1 (en) Redundancy in a network centric process control system
JP4285420B2 (ja) センサネット管理システム
CN111641516B (zh) 进程控制系统中节点的在线重新配置
US8078357B1 (en) Application-independent and component-isolated system and system of systems framework
US9536081B2 (en) System and process for managing network communications
CN100545851C (zh) 使用命令行环境的远程系统管理
CN101814077B (zh) 一种基于oci 9的数据库访问中间件
CN103365262A (zh) 用于确定现场装置之间的操作兼容性的设备和方法
WO2007041083A2 (en) Enabling transactional mechanisms in an automated controller system
CN111638890A (zh) 在进程控制系统中的节点的在线固件升级
CN102662362B (zh) 一种集成电路制造装备通用控制系统
US11500690B2 (en) Dynamic load balancing in network centric process control systems
CN112583630B (zh) 设备管理方法、装置、系统、设备及存储介质
JP2005538460A (ja) データ処理システム及び方法(非同種プロセスを統合するように適合されたデータ処理システム)
CN112134918B (zh) 云服务中函数与触发器匹配状态的检测及处理方法
US8301273B2 (en) Method for providing functions in an industrial automation system, control program and industrial automation system
CN116149840A (zh) 用于微服务架构中的基于云的混合服务网格的系统和方法
CN113593096A (zh) 一种异构智能锁的控制方法和系统
US20060221964A1 (en) Data relay method and data relay apparatus
CN116466973B (zh) 一种多并发固件升级方法、系统、计算机设备及存储介质
Draganov et al. A solution for optimizing the integration of AGV systems in enterprises which are using ERP systems
CN112882744B (zh) 应用在区块链系统上的智能合约升级和兼容方法及系统
US20230315719A1 (en) Data transfer device, data transfer method and non-transitory computer readable medium
JP2001177549A (ja) 伝送ネットワークシステムにおける装置間通信パラメータの変更方式
CN114117552A (zh) 调用智能合约的方法及装置

Legal Events

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