过程软件的实时更新方法技术

技术编号:35094162 阅读:18 留言:0更新日期:2022-10-01 16:55
一种用于过程应用的实时更新的方法,包括以下步骤:由第一执行引擎执行第一过程应用从而控制过程设备;由更新管理器接收已更新软件,其中已更新软件包括已更新过程应用和/或已更新执行引擎;其中更新管理器是部署在部署单元中的第二软件容器;由更新管理器在第二执行引擎中初始化已更新软件;由更新管理器确定第一过程应用的应用状态;由更新管理器指示应用状态经由过程间通信从第一执行引擎到第二执行引擎的转移;由更新管理器指示第二执行引擎使用所接收的应用状态执行已更新过程应用;以及由更新管理器指示第一执行引擎停止为过程设备写入输出信号,并且指示第二执行引擎为过程设备(300)写入输出信号。过程设备(300)写入输出信号。过程设备(300)写入输出信号。

【技术实现步骤摘要】
过程软件的实时更新方法


[0001]本专利技术涉及过程自动化领域,尤其涉及工业厂房中的过程自动化

技术介绍

[0002]在过程自动化中,过程应用、特别是用于计算执行器输出的控制应用是基于传感器数据的。它们以例如100ms、10ms、在极端情况下甚至可以低至1ms的循环时间周期性地执行。这样的应用需要更新,特别是以优化生产效率、纠正故障、应用安全更新或符合新标准。但是,为了避免生产停止,不希望停止应用以进行更新,尤其是在对控制代码进行细微调节的情况下。
[0003]执行应用的应用执行引擎在单独的软件容器中运行,例如Docker容器、rkt容器、LXD容器,使得它们可以由容器协调引擎(例如,Kubernetes、Docker Swarm、Nomad)管理。这为管理和控制软件带来了很多好处。但是,协调引擎可能会将每个容器部署在不同物理节点上,因此在状态转移的情况下会引入不希望的网络延迟。在这种情况下,不同部署单元(例如,Kubernetes pod、Docker Swarm的Podlike)只能经由网络套接字进行通信,从而引入了延迟。
[0004]应用携带有状态,例如内部计数器或内部定时器。已更新应用需要使用第一应用的确切状态进行初始化,使得它可以输出相同结果,或者在逻辑改变的情况下,输出略有不同的结果。
[0005]状态转移必须以相当快的速度(远低于循环时间)发生。特别是状态转移需要在控制应用执行结束之后并且直到下一执行循环开始之前的剩余时间内完成。状态转移需要在应用之间转移内部状态,因此不希望通过物理或虚拟网络进行的传输,因为在网络堆栈的多个层处增加了网络协议的延迟。

技术实现思路

[0006]因此,本专利技术的一个目的是提供一种允许过程软件的实时更新的方法。该目的通过独立权利要求的主题来实现。另外的优选实施例从从属权利要求中很清楚。
[0007]根据本专利技术的一个方面,提供了一种用于过程软件的实时更新的方法,该方法包括以下步骤。在一个步骤中,由第一执行引擎执行第一过程应用从而控制过程设备,其中第一执行引擎是部署在部署单元中的第一软件容器,其中部署单元的软件容器部署在单个物理主机节点上。在另一步骤中,由更新管理器接收已更新软件,其中已更新软件包括已更新过程应用和/或已更新执行引擎,已更新过程应用是第一过程应用的已更新版本,已更新执行引擎是第一执行引擎的已更新版本,其中更新管理器是部署在部署单元中的第二软件容器。在另一步骤中,由更新管理器在第二执行引擎中初始化已更新过程应用,其中第二执行引擎是部署在部署单元中的第三软件容器。在另一步骤中,由更新管理器确定第一过程应用的应用状态。在另一步骤中,由更新管理器指示应用状态经由过程间通信从第一执行引擎到第二执行引擎的转移。在另一步骤中,由更新管理器指示第二执行引擎使用所接收的
应用状态执行已更新过程应用。在另一步骤中,由更新管理器指示第一执行引擎停止为过程设备写入输出信号,并且指示第二执行引擎为过程设备写入输出信号。
[0008]换言之,更新过程软件包括仅更新第一过程应用并且在与第一执行引擎相同的第二执行引擎中运行已更新过程应用。此外,更新过程软件包括仅更新第一执行引擎并且在已更新执行引擎中运行与第一过程应用相同的第二过程应用。此外,更新过程软件包括更新第一执行引擎和第一过程应用并且从而在已更新执行引擎中运行已更新过程应用。
[0009]如本文中使用的,术语“应用状态”包括已经由第一过程应用设置的变量的值。变量包括内部计数器、内部定时器、过去执行和/或PID回路的状态,但不包括所接收的传感器信号或所发送的输出信号。
[0010]如本文中使用的,术语“过程设备”涉及在工业厂房中使用的用于运行生产过程的设备。过程设备也称为现场设备。
[0011]如本文中使用的,术语“执行引擎”包括能够循环执行过程应用、特别是控制逻辑应用的运行时环境,例如根据IEC 61131

3。运行时环境从过程设备周期性地接收输入信号。执行引擎对这些信号执行过程应用,特别是控制算法,并且计算输出信号,输出信号被发送回过程设备。
[0012]如本文中使用的,术语“过程应用”包括类似于控制算法的程序,例如用于锅炉中的气流的PID控制器。例如,过程应用是使用五种IEC 61131

3编程语言(结构化文本、功能块图、指令列表、顺序功能图、梯形图逻辑)中的一种来实现的。在执行期间,过程应用优选地携带应用状态,例如计数器变量、中间计算或定时器的值。
[0013]优选地,过程设备包括传感器或执行器。
[0014]如本文中使用的,术语“过程设备”也称为现场设备。过程设备调节工业过程,例如石油管道中的温度和流量或化学反应器的填充水平。过程设备连接到容器部署单元,例如经由网络链接、现场总线或直接使用模拟输入/输出设备。传感器周期性地提供已更新传感器值,例如温度为70度,而执行器持续监听输入信号,例如将阀门关闭至20%。通常有网关将过程设备连接到驻留在定制DCS控制器或服务器上的控制软件。
[0015]优选地,更新管理器在软件容器中运行并且被配置为在运行时期间协调更新过程应用的过程。
[0016]为了控制过程设备,执行引擎从过程设备接收输入信号并且提供输出信号,输出输出信号被提供回过程设备。
[0017]优选地,过程应用包括用于控制过程设备、特别是用于生产过程的控制应用。
[0018]在单个部署单元中部署第一执行引擎和第二执行引擎允许过程间通信。因此,可以省略例如远程过程调用或用于利用网络堆栈转移应用状态的其他方式,这些方式通常不能符合过程应用的动态更新所需要的时序要求。
[0019]换言之,利用单个容器部署单元来托管两个应用执行引擎和因此过程应用使得能够经由过程间通信IPC进行快速状态转移。只有同一容器部署单元中的软件容器共享同一IPC命名空间,因此可以实现过程间通信,例如使用SystemV信号量或POSIX共享存储器。这允许软件容器之间相对快速的通信,特别是与将每个应用执行引擎直接映射到单独的部署单元(这将阻止使用IPC并且需要使用较慢的(本地)网络通信)相比。
[0020]优选地,更新管理器通过与更新管理器更新第一过程应用相同的方式接收替换第
一执行引擎的已更新执行引擎,例如第一执行引擎。换言之,该机制允许即时更新执行引擎本身,例如以升级到新特征或应用安全修复。例如,已知的Load

Evaluate

Go方法在同一执行引擎中执行过程应用的两个版本并且因此不允许更新执行引擎本身。
[0021]所提供的方法允许执行引擎之间的快速内部应用状态转移。
[0022]优选地,由更新管理器接收已更新过程软件,特别是从应用工程工具接收。已更新过程软件、特别是已更新过程应用优选地被接收作为文本时间,例如XML文件。自动化工程师使用应用工程工具、或换言之应用工程软件来实现过程应用。应用工程工具优选地是允许将过程应用上传到控制器或服本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于过程软件的实时更新的方法,包括以下步骤:由第一执行引擎(10)执行(S10)第一过程应用(Ao)从而控制过程设备(300),其中所述第一执行引擎(10)是部署在部署单元(100)中的第一软件容器,其中所述部署单元(100)的软件容器被部署在单个物理主机节点上;由更新管理器(20)接收(S20)已更新软件,其中所述已更新软件包括已更新过程应用(Au)和/或已更新执行引擎,所述已更新过程应用(Au)是所述第一过程应用(Ao)的已更新版本,所述已更新执行引擎是所述第一执行引擎(10)的已更新版本;其中所述更新管理器(20)是部署在所述部署单元(100)中的第二软件容器;由所述更新管理器(20)在第二执行引擎(30)中初始化(S30)所述已更新软件,其中所述第二执行引擎(30)是部署在所述部署单元(100)中的第三软件容器;由所述更新管理器(20)确定(S40)所述第一过程应用(Ao)的应用状态(S);由所述更新管理器(20)指示(S50)所述应用状态(S)经由过程间通信从所述第一执行引擎(10)到所述第二执行引擎(30)的转移;由所述更新管理器(20)指示(S60)所述第二执行引擎(30)使用所接收的应用状态(S)执行所述更新;以及由所述更新管理器(20)指示(S70)所述第一执行引擎(10)停止为所述过程设备(300)写入输出信号(So),并且指示所述第二执行引擎(30)为所述过程设备(300)写入输出信号(So)。2.根据权利要求1所述的方法,其中所述第一过程应用(Ao)包括预定循环时间,其中所述循环时间定义周期性地执行所述第一过程应用(Ao)和为所述过程设备(300)写入输出信号(So)的频率;其中用于由所述第二执行引擎(30)将所述应用状态(S)从所述第一执行引擎(10)转移到所述第二执行引擎(30)、执行所述已更新过程应用(Au)以及为所述过程设备(300)写入所述输出信号(So)的时间在所述预定循环时间内。3.根据前述权利要求中任一项所述的方法,其中所述预定循环时间小于100ms。4.根据前述权利要求中任一项所述的方法,其中所述应用状态(S)包括已经在执行期间由所述第一过程应用(Ao)设置的变量。5.根据前述权利要求中任一项所述的方法,其中所述第一执行引擎(10)与所述第二执行引擎(30)之间的所述过程间通信是通过使用共享存储器(40)而被提供的,所述共享存储器(40)由所述第一执行引擎(10)和所述第二执行引擎(30)共享。6.根据前述权利要求中任一项所述的方法,其中初始化(S30)所述已更新过程应用(Au)包括:初始化所述第二执行引擎(30);以及将所述已更新过程应用(Au)转移到所述第二执行引擎(30)。7.根据前述权利要求中任一项所述的方法,其中...

【专利技术属性】
技术研发人员:海科
申请(专利权)人:ABB瑞士股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1