过程控制系统、过程控制装置和程序更新方法与流程

未命名 07-12 阅读:230 评论:0

过程控制系统、过程控制装置和程序更新方法
1.本技术是申请日为2019年9月26日、申请号为201910917030.1、发明名称为“过程控制系统、过程控制装置和程序更新方法”的发明专利申请的分案申请。
技术领域
2.本公开涉及过程控制系统、过程控制装置和程序更新方法。


背景技术:

3.在相关技术中,在工厂、制造厂等(在下文中当共同描述它们时简称为“工厂”)中建立了被配置为控制工业过程的各种状态量(例如,压力、温度、流量等)的过程控制系统,从而实施高级自动化操作。具体地,作为过程控制系统的核心的控制器获取多个传感器(流量计、温度计等)的检测结果,根据检测结果获得致动器(阀等)的操作量,以及根据操作量操作致动器,从而控制各种状态量。
4.相关技术的过程控制系统是使用具有专有规范的专用设备来建立的。最近的过程控制系统正逐渐开放,并在许多情况下使用具有开放规范的通用设备(计算机、工作站等)来建立。在使用通用设备的过程控制系统中,必须更换硬件并更新软件,如一般信息系统。同时,操作系统(operating system,os)的功能增强、操作系统的错误和漏洞的纠正等可以例示为软件的升级。
5.jp-a-h11-3240(在下文中被称为ptl 1)公开了一种在安装有双工处理单元(控制侧和待机侧)的用于控制的计算机系统中、能够在不影响控制目标的情况下改变系统程序的技术。具体地,待机侧停止以加载新的系统程序,然后被激活,存储在控制侧的应用数据被复制到待机侧,控制侧停止并且待机侧被激活作为控制侧,使得在不影响控制目标的情况下改变系统程序。
6.并且,jp-a-2015-5258(在下文中被称为ptl 2)公开了一种能够在不停止过程控制系统的情况下更新操作系统、并且保证更新的操作系统上的应用的继续操作的过程控制装置。
7.在如在ptl 1和ptl 2中公开的过程控制系统中,必须更新可以是更新目标的程序(被称为“更新目标程序”),同时在不停止过程控制系统的情况下继续操作过程控制系统。此时,需要在不运行复杂的分析和处理的情况下简单且在短时间内更新更新目标程序。更新目标是要更新的程序。
8.鉴于上述情形做出了本公开,并且本公开的目的是提供一种能够简单且在短时间内更新更新目标程序、同时在不停止过程控制系统的情况下继续操作过程控制系统的过程控制系统、过程控制装置和程序更新方法。


技术实现要素:

9.与本发明的一个方面相关的过程控制系统(1)包括:第一过程控制装置(10);和第二过程控制装置(20)。第一过程控制装置包括:第一程序运行单元(11),被配置为运行不是
更新目标的非更新目标程序(pa11)和能够是更新目标的更新目标程序(pb11等);和第一程序更新管理器(15、15a-15e),被配置为基于来自外部的暂停请求暂停非更新目标程序,并且将非更新目标程序的上下文(ca11)传送到第二过程控制装置。第二过程控制装置包括:第二程序运行单元(21),被配置为运行不是更新目标的非更新目标程序(pa21)和更新之后的更新目标程序(pb21等);和第二程序更新管理器(25、25a),被配置为通过使用从第一程序更新管理器传送的上下文来恢复(restore)非更新目标程序的上下文,初始化更新目标程序的上下文,以及基于来自外部的重新开始请求使第二程序运行单元重新开始(resume)非更新目标程序和更新目标程序。
10.在与本发明的一个方面相关的过程控制系统中,当确定非更新目标程序请求的更新目标程序的处理正在进行中时,第一程序更新管理器被配置为将非更新目标程序的运行位置设置为紧挨在请求处理更新目标程序之前的位置,并且删除指示更新目标程序的处理正在进行中的信息。
11.在与本发明的一个方面相关的过程控制系统中,当确定非更新目标程序调用的更新目标程序的处理正在进行中时,第一程序更新管理器被配置为等待直到更新目标程序完成正在进行中的处理。
12.在与本发明的一个方面相关的过程控制系统中,当确定在非更新目标程序调用的更新目标程序当中存在其处理正在进行中的更新目标程序时,第一程序更新管理器被配置为:进行防止对更新目标程序当中的预先注册的更新目标程序的请求被传输到其他更新目标程序的设置;等待更新目标程序的处理停止;在更新目标程序的处理停止之后,从预先注册的更新目标程序的上下文提取重新开始处理所需的恢复数据;以及将提取的恢复数据传送到第二过程控制装置。第二程序更新管理器被配置为通过使用从第一程序更新管理器传送的恢复数据来在更新之后恢复预先注册的更新目标程序的上下文。
13.在与本发明的一个方面相关的过程控制系统中,当响应于对第一预定处理的请求而接收到指示第一预定处理的结果的响应和对第二预定处理的请求时,更新目标程序被配置为通过使用请求/响应协议来执行与其他装置的通信,以便通知指示第二预定处理的结果的响应。
14.在与本发明的一个方面相关的过程控制系统中,当更新目标程序是用于实现与其他装置通信的通信驱动器时,第一程序更新管理器被配置为阻止更新目标程序的接收端口,使得不会从其他装置接收新的请求。
15.与本发明的一个方面相关的过程控制装置(50)包括:程序运行单元(51、52),被配置为运行不是更新目标的非更新目标程序(pa11、pa21)和能够是更新目标的更新目标程序(pb11、pb21等);第一程序更新管理器(15),被配置为基于来自外部的暂停请求暂停非更新目标程序,并且传送非更新目标程序的上下文(ca11);和第二程序更新管理器(25),被配置为通过使用从第一程序更新管理器传送的上下文来恢复非更新目标程序的上下文,在更新之后初始化更新目标程序的上下文,以及基于来自外部的重新开始请求使程序运行单元重新开始非更新目标程序和更新之后的更新目标程序。
16.与本发明的一个方面相关的程序更新方法是过程控制装置(10、20、50)中的方法,在过程控制装置中将运行不是更新目标的非更新目标程序(pa11、pa21)和能够是更新目标的更新目标程序(pb1、pb21等)。该程序更新方法包括:第一步骤(s12,s13),基于来自外部
的暂停请求暂停非更新目标程序,并且传送非更新目标程序的上下文;以及第二步骤(s22-27),通过使用在第一步骤中传送的上下文,恢复不是更新目标的非更新目标程序的上下文,在更新之后初始化更新目标程序的上下文,以及基于来自外部的重新开始请求重新开始非更新目标程序和更新目标程序。
17.在与本发明的一个方面相关的程序更新方法中,第一和第二步骤在同一过程控制装置中运行。
18.在与本发明的一个方面相关的程序更新方法中,第一和第二步骤在不同的过程控制装置中运行。
19.根据本公开,可以简单且在短时间内更新更新目标程序,同时在不停止过程控制系统的情况下继续操作过程控制系统。
附图说明
20.图1是描绘根据本公开的第一示例性实施例的过程控制系统的示意性功能配置的功能配置图;
21.图2是描绘在本公开的第一示例性实施例中要在过程控制装置中操作的程序的详细配置的示意性配置图;
22.图3是描绘在本公开的第一示例性实施例中非更新目标程序和更新目标程序之间的典型调用关系的示意图;
23.图4是描绘在本公开的第一示例性实施例中的程序更新管理器(活动(active)装置侧和更新装置侧)的详细功能配置的功能框图;
24.图5是描绘根据本公开的第一示例性实施例的程序更新方法的流程图;
25.图6是描绘在本公开的第二示例性实施例中的程序更新管理器(活动装置侧和更新装置侧)的详细功能配置的功能框图;
26.图7是描绘根据本公开的第二示例性实施例的程序更新方法的流程图;
27.图8是描绘在本公开的第三示例性实施例中的程序更新管理器(活动装置侧和更新装置侧)的详细功能配置的功能框图;
28.图9是描绘根据本公开的第三示例性实施例的程序更新方法的流程图;
29.图10是描绘在本公开的第四示例性实施例中的程序更新管理器(活动装置侧和更新装置侧)的详细功能配置的功能框图;
30.图11是描绘根据本公开的第四示例性实施例的程序更新方法的流程图;
31.图12是描绘根据本公开的第四示例性实施例的程序更新方法的流程图;
32.图13是描绘根据本公开的第五示例性实施例的过程控制系统的示意性功能配置的功能配置图;
33.图14示出了将在本公开的第五示例性实施例中使用的请求/响应协议;
34.图15是描绘根据本公开的第六示例性实施例的过程控制系统的示意性功能配置的功能配置图;
35.图16是描绘在本公开的第六示例性实施例中的程序更新管理器(活动装置侧和更新装置侧)的详细功能配置的功能框图;
36.图17是描绘根据本公开的第六示例性实施例的程序更新方法的流程图;
37.图18是描绘根据本公开的第七示例性实施例的过程控制系统的示意性功能配置的功能配置图;
38.图19是描绘在本公开的第七示例性实施例中的程序更新管理器(活动装置侧和更新装置侧)的详细功能配置的功能框图;
39.图20是描绘根据本公开的第七示例性实施例的程序更新方法的流程图;
40.图21是描绘根据本公开的示例性实施例的过程控制系统应用于被配置为控制工业过程的系统的示例的框图;以及
41.图22是描绘根据本公开另一示例性实施例的过程控制装置的示意性功能配置的功能框图。
具体实施方式
42.在下文中,将参考附图详细描述根据本公开的示例性实施例的过程控制系统、过程控制装置和程序更新方法。在下文中,首先将描述本公开的示例性实施例的概要,然后将描述在本公开的示例性实施例中使用的概念、术语的定义等。随后,将描述在本公开的示例性实施例中使用的方法,然后将描述每个示例性实施例的细节。
43.[概述]
[0044]
本公开的示例性实施例将简单且在短时间内更新更新目标程序,同时在不停止过程控制系统的情况下继续操作过程控制系统。具体地,由于过程控制系统大多需要以月到年的单位长时间段连续操作以便即使稍微提高生产效率,因此不可能自由地停止操作中的过程控制系统。例如,基本上不允许停止过程控制系统,除了例如停止以便定期维护或关闭以确保工厂的安全。原因在于,如果在继续化学反应的过程中发生意外中断,则在化学过程中,例如,直到那时产生的半成品可能不可用,这转而导致很大的损失。
[0045]
同时,由于从安全性的角度要求过程控制系统没有错误操作或缺乏操作,因此当发现错误操作等的原因(例如操作系统的错误或漏洞)时,必须立即采取能够解决原因的行动(更新操作系统)。然而,如上所述,由于不可能自由地停止过程控制系统,因此即使在发现错误操作等的原因的情况下也不可能立即采取行动。
[0046]
因此,当使用ptl 1中公开的技术时,在冗余配置的控制装置中,可以通过更新不严重影响控制侧的待机侧的系统程序、并将控制侧的到目前为止的应用数据复制到待机侧,使得应用连续操作。然而,要复制的应用数据的提取方法和更新之后的重新开始处理的方法依赖于应用的设计,并且方法保密。
[0047]
并且,当使用ptl 2中公开的技术时,可以在更新控制装置的操作系统的同时继续任何应用的处理。然而,由于ptl 2中公开的技术以应用恢复为前提,因此可能需要复杂的分析和处理。并且,可能需要依赖于操作系统的功能的内部状态的恢复处理。
[0048]
为了在不运行复杂的分析和处理的情况下更新诸如需要更新的操作系统的程序(更新目标程序)同时继续操作过程控制系统,需要更简单且更广泛可用的解决方案。例如,需要一种不需要完全恢复操作系统的内部状态的方法、或者从不考虑或不需要恢复操作系统的内部状态的方法。
[0049]
在本公开的示例性实施例中,当更新将要在过程控制系统中使用的各种程序时,基于来自外部的暂停请求,暂停不是更新目标的非更新目标程序,并且传送非更新目标程
序的上下文。然后,基于来自外部的重新开始请求,使用传送的上下文来恢复不是更新目标的非更新目标程序的上下文;初始化更新之后的更新目标程序的上下文;以及重新开始非更新目标程序和更新目标程序。由此,可以简单且在短时间内更新更新目标程序同时在不停止过程控制系统的情况下继续操作过程控制系统。
[0050]
[概念、术语的定义等]
[0051]
可以使用计算机来实施本公开的示例性实施例。在计算机上,多个任务在操作系统(os)的管理下操作。操作系统用于管理计算机的各种资源(cpu时间、存储器、输入/输出设备等),并且将资源适当地分配给任务。同时,“cpu”是中央处理单元的缩写。
[0052]
任务是在操作系统的控制下独立操作的处理单元。多个任务可以并发操作。操作系统被配置为提供任务之间的通信功能。可以在多个任务之间交换信息(消息)以通过任务之间的通信并发操作。同时,除了任务之间的通信之外,还可以通过使用共享存储器等在任务之间交换信息。
[0053]
在本公开的示例性实施例中,要在过程控制系统中使用的各种程序被分类为两种类型:非更新目标程序和更新目标程序。在本公开的示例性实施例中,非更新目标程序是在程序更新之前和之后不改变的程序。非更新目标程序的主要作用是实施应用。这里,应用典型地使用pid控制、顺序控制等来控制特定工厂。
[0054]
在本公开的示例性实施例中,更新目标程序是直接或间接地从非更新目标程序调用的程序,除了稍后将描述的情况。更新目标程序的主要作用是平稳地使用计算机系统的资源。更新目标程序是所谓的系统程序。更新目标程序作为操作系统或中间件的一部分提供。更新目标程序的例外是调用侧(calling-side)更新目标程序。如稍后所述,调用侧更新目标程序是例如具有基于来自外部的触发调用(激活)非更新目标程序的功能的程序。
[0055]
任务可以分类为持续任务和使用任务。持续任务是运行非更新目标程序的任务。但是,更新目标程序可以包括在持续任务中。同时,使用任务是仅用于运行更新目标程序的任务。也就是说,持续任务可以直接或间接地调用使用任务。这里,“调用”操作不限于函数调用和过程呼叫调用。任务之间的通信、系统调用以及通过其他信息通信使用另一程序或另一程序的功能的操作被称为“调用”。
[0056]
上下文是程序在运行处理时所依赖的情形(situation)。上下文也被称为情形、声明步骤、状态、数据、存储等。上下文的物理实体是要存储在存储装置(半导体存储器、磁盘设备、外部介质等)中的数据。软件上下文包括程序使用的存储器等的存储区域的所有内容。
[0057]
当可以恢复软件上下文时,可以无条件地继续暂停的程序(继续的通用原则)。并且,当初始化软件上下文以进行重建时,可以无条件地更新程序(更新的通用原则)。在本公开的示例性实施例中,基于两个通用原则,简单且在短时间内更新更新目标程序同时在不停止过程控制系统的情况下继续操作过程控制系统。
[0058]
依赖于上下文指示程序处理的运行依赖于上下文。同时,依赖于上下文也被称为状态依赖、有状态等。上下文无关指示程序处理的运行不依赖于上下文(换句话说,没有上下文)。同时,上下文无关也被称为声明步骤无关、无声明步骤、状态无关、无状态、没有状态等。
[0059]
活动装置是当前正在操作的一侧的设备。更新装置是当前未操作并备用以便程序
的更新的一侧的设备。活动装置和更新装置的状态可以彼此切换。也就是说,作为活动装置操作的设备切换到备用状态并且变为更新装置,并且作为更新装置的处于备用状态的设备切换到操作状态并且变为活动装置。
[0060]
描述了当将本公开的示例性实施例应用于工业过程的控制时运行的典型处理的模型(示例)。从呼叫侧更新目标程序以任何时间段(例如,50毫秒到几秒的时间段)重复调用用于控制过程的非更新目标程序。每次调用时,非更新目标程序运行以下处理1至4。
[0061]
1.非更新目标程序通过使用上下文来运行当前处理,该上下文是直到先前处理的处理状态(同时,为第一上下文设置初始值)。
[0062]
2.非更新目标程序获取必要信息(例如,作为工业过程的状态的各种传感器的当前位置)和其他控制处理的结果。
[0063]
3.非更新目标程序基于获取的信息运行计算处理(例如,pid控制、顺序控制和控制模拟)。
[0064]
4.非更新目标程序基于计算处理的结果等输出信息(例如,生产设备中的致动器的操作、开关的接通(on)/断开(off))。
[0065]
在这种情况下,在微观上,非更新目标程序以离散时序控制工业过程。然而,由于甚至在非更新目标程序未运行处理的时段期间工业过程也继续改变,因此工厂的生产设备继续操作。同时,从调用侧更新目标程序调用非更新目标程序的时间段的范围不限于上述例示范围。
[0066]
非更新目标程序的暂停是暂时停止非更新目标程序,使得可以在先前处理结束之后的预定时间内重新开始非更新目标程序的先前处理。当重新开始非更新目标程序时,接管暂停的非更新目标程序的上下文。这里,“预定时间”是由设计等确定的足够短的时间。
[0067]
非更新目标程序的中断是停止更新目标程序,使得在先前处理结束之后的预定时间内不重新开始非更新目标程序的先前处理,或者防止非更新目标程序的上下文被接管(例如,初始化处理的状态),而不管先前处理是否在预定时间内重新开始。考虑到过程控制系统的目的,即工业过程的控制,允许暂停非更新目标程序,但是不允许中断非更新目标程序。
[0068]
在本公开的示例性实施例中,“请求”和“响应”包括在设备中进行并且在设备之间进行的“请求”和“响应”。例如,“请求”包括调用函数、调用系统调用、在任务之间传输通信的请求、在网络通信中传输请求等。“响应”包括从函数调用返回、从系统调用调用返回、任务之间的通信的处理结果的答复、网络通信中的响应的答复等。
[0069]
在本公开的示例性实施例中,“进行中”指示因为在设备中或设备之间未完成一系列处理而需要维持处理中的上下文的状态。可以通过一次或多次执行请求和响应的交换来完成一系列处理。当完成一系列处理时,进行非进行状态并且可以初始化上下文。同时,在两个设备之间执行网络通信处理,在向另一个装置传输请求之后,一个设备的处理在进行中,直到它从该另一个装置接收到响应(在通用通信协议的情况下为ack)。例如,在进行中时,需要保持tcp连接等。
[0070]
[要使用的方法]
[0071]
在稍后将描述的示例性实施例中,对于非更新目标程序,基于继续的通用原则,在暂停期间无条件地复制非更新目标程序使用的全部上下文(软件上下文)。对于每个程序,
继续非更新目标程序所需的接管数据是不同的。然而,可以在上下文中包括对于继续非更新目标程序所必需的接管数据,并通过上述“全部复制”方法来接管该接管数据。
[0072]
相反,更新目标程序的更新包括部分地校正更新目标程序的现有功能并向现有功能添加新的功能。在这种情况下,新添加的功能是否与现有功能相关不是问题。也就是说,要新添加的功能可以是与现有功能完全不同的功能。因此,当更新更新目标程序时,可能显著地改变更新目标程序的上下文的数据结构。在这种情况下,基于更新的通用原则,使用一种在重新开始时无条件地初始化更新目标程序使用的所有上下文的方法。通过初始化,可以无条件地更新更新目标程序。
[0073]
在稍后描述的示例性实施例中,在非更新目标程序的暂停期间,使用上述方法更新更新目标程序。因此,在稍后描述的示例性实施例中,可以简单且在短时间内更新更新目标程序同时在不停止操作过程控制系统的情况下继续操作过程控制系统。
[0074]
(第一示例性实施例)
[0075]
《过程控制系统的功能配置》
[0076]
图1是描绘根据本公开的第一示例性实施例的过程控制系统的示意性功能配置的功能配置图。如图1所示,第一示例性实施例的过程控制系统1包括过程控制装置10(第一过程控制装置)、过程控制装置20(第二过程控制装置)和工程设施30。过程控制装置10和过程控制装置20使用等同或类似的计算机来实施。在第一示例性实施例中,过程控制装置10可以被称为“活动装置”,并且过程控制装置20可以被称为“更新装置”。
[0077]
在第一示例性实施例中,为了更新程序,在过程控制装置10中操作的功能被切换到过程控制装置20。即,首先,作为活动装置的过程控制装置10进行操作以控制过程,并且作为更新装置的过程控制装置20备用。此后,基于来自工程设施30的指令信号,暂停过程控制装置10(活动装置)的过程控制功能,并且在过程控制装置20(更新装置)中重新开始该功能。过程控制装置10和过程控制装置20具有在系统正在操作的状态下更新程序的功能。
[0078]
过程控制装置10具有硬件11(第一程序运行单元)、操作系统12、任务13、任务14和程序更新管理器15(第一程序更新管理器)的功能。硬件11包括cpu、存储器、输入/输出设备、通信设备等,并且被配置为运行将在过程控制装置10中使用的各种程序(包括非更新目标程序和更新目标程序)。同时,通过由硬件11运行用于实施过程控制装置10的功能的程序来实施所述功能。也就是说,通过软件和硬件资源彼此协作来实施过程控制装置10的功能。
[0079]
操作系统12位于硬件11和应用(任务13和14等)之间,并且被配置为在管理硬件11的同时向应用提供规定的界面。具体地,操作系统12具有管理过程控制装置10的硬件资源(cpu时间、存储器、输入/输出等)并且将其适当地分配给每个任务的功能。操作系统12包括更新目标程序pb13。
[0080]
任务13是具有控制目标过程的功能的任务。任务13也被称为“控制任务”。任务13包括非更新目标程序pa11和更新目标程序pb11。非更新目标程序pa11是用于控制过程的主程序。任务14是基于来自任务13的直接或间接的请求提供预定服务的任务。任务14也被称为“使用任务”。任务14包括更新目标程序pb12。
[0081]
程序更新管理器15被配置为在操作系统的同时控制执行从活动装置到更新装置的切换(也被称为“在线更新”)的处理。具体地,当从工程设施30传输暂停请求时,程序更新管理器15运行暂停非更新目标程序pa11所需的处理并且在过程控制装置20(更新装置)中
重新开始其功能。稍后将详细描述程序更新管理器15将运行的处理。同时,程序更新管理器15也可以运行暂停更新目标程序和重新开始其功能所需的处理。
[0082]
过程控制装置20具有与过程控制装置10类似的配置,并且包括硬件21(第二程序运行单元)、操作系统22、任务23、任务24和程序更新管理器25(第二程序更新管理器)的功能。硬件21类似于硬件11,并且被配置为运行将在过程控制装置20中使用的各种程序(包括非更新目标程序和更新目标程序)。同时,通过软件和硬件资源彼此协作来实施过程控制装置20的功能。
[0083]
操作系统22具有与操作系统12类似的功能。并且,操作系统22包括更新目标程序pb23。任务23具有与任务13类似的功能。并且,任务23包括非更新目标程序pa21和更新目标程序pb21。任务24具有与任务14类似的功能。并且,任务24包括更新目标程序pb22。程序更新管理器25具有与程序更新管理器15类似的功能。同时,程序更新管理器25被配置为与程序更新管理器15协同操作。
[0084]
同时,“活动装置”和“更新装置”的指定依赖于指定时间的情形,并且过程控制装置10和过程控制装置20的作用可以依赖于情形而改变。也就是说,过程控制装置20可以用作活动装置,并且过程控制装置10可以用作更新装置。并且,可以使用三个或更多个过程控制装置来执行程序的更新和操作的过程控制装置的转换。
[0085]
工程设施30被配置为通过使用包括过程控制系统1的设计信息的工厂的设计信息来在过程控制系统1中执行各种工程。并且,工程设施30被配置为发出暂停过程控制装置10(活动装置)的过程控制功能并在过程控制装置20(更新装置)中重新开始该功能的命令。同时,工程设施30例如由诸如工作站的计算机或个人计算机实施。
[0086]
图2是描绘在本公开的第一示例性实施例中要在过程控制装置中操作的程序的详细配置的示意性配置图。图2描绘了过程控制装置10的内部配置,但过程控制装置20的内部配置也是类似的。如图2所示,每个程序都有上下文。上下文是程序正在操作的情形的状态。具体地,上下文是存储在半导体存储器、磁盘设备等中的数据。例如,数据可以是cpu的存储器空间中的数据,或者可以是由数据库管理系统(database management system,dbms)管理的数据。
[0087]
在第一示例性实施例中,数据指示的状态可以被称为“上下文”,并且包括用于物理地存储数据的存储装置在内也可以被称为“上下文”。同时,上下文可以包括关于每个程序的运行位置(程序代码中的特定位置)的信息。
[0088]
在图2的示例中,任务13包括非更新目标程序pa11、更新目标程序pb11和更新目标程序pb14。更新目标程序pb11是用于非更新目标程序pa11的专用内部功能,并且与非更新目标程序pa11静态链接以形成模块md。在模块md中,非更新目标程序pa11可以调用更新目标程序pb11。
[0089]
并且,更新目标程序pb14是模块md和其他模块共用的通用功能,并且与模块md等动态链接。模块md和更新目标程序pb14可以通过预定义的api(application programming interface,应用编程接口)彼此调用。更新目标程序pb14例如是用于容易地使用os功能的库程序。
[0090]
操作系统12包括更新目标程序pb13。更新目标程序pb13是用于实施os功能的程序。可以从任务13和任务14调用更新目标程序pb13。任务14包括更新目标程序pb12。
[0091]
在图2中,描述了程序和上下文之间的关系。包括在任务13中的非更新目标程序pa11访问上下文ca11,更新目标程序pb11访问上下文cb11,并且更新目标程序pb14访问上下文cb14。包括在任务14中的更新目标程序pb12访问上下文cb12。包括在操作系统12中的更新目标程序pb13访问上下文cb13。同时,从程序到上下文的访问可以仅用于参考或者可以伴随写入。
[0092]
图2所示的程序的非更新目标程序pa11是继续目标程序。也就是说,非更新目标程序pa11不是更新目标。并且,更新目标程序pb11、pb12、pb13和pb14是可以是更新目标的程序。当更新更新目标程序时,非更新目标程序继续操作同时将操作环境从活动装置切换到更新装置。
[0093]
关于在操作系统的同时更新程序的一个重要方面是在非更新目标程序和更新目标程序之间不共享上下文。也就是说,非更新目标程序pa11不直接地访问作为更新目标程序的上下文的上下文cb11、cb12、cb13和cb14。并且,更新目标程序pb11、pb12、pb13和pb14不直接地访问作为非更新目标程序pa11的上下文的上下文ca11。
[0094]
图3是描绘在本公开的第一示例性实施例中非更新目标程序和更新目标程序之间的典型调用关系的示意图。如图3所示,调用侧更新目标程序pc11是调用非更新目标程序pa11的一侧的程序。除了调用侧更新目标程序pc11之外的更新目标程序被直接或间接地从非更新目标程序pa11调用。
[0095]
具体地,调用侧更新目标程序pc11接收调用非更新目标程序pa11的外部触发。这里,外部触发例如是固定时段定时器的超时信号、来自网络的接收中断信号等。外部触发被重复传输到调用侧更新目标程序pc11。由此,调用侧更新目标程序pc11重复地激活非更新目标程序pa11。
[0096]
在非更新目标程序的运行期间,非更新目标程序pa11不直接或间接地调用更新目标程序pb13、pb14和pb15。在非更新目标程序pa11的运行期间,不进行触发等待。当处理结束时,非更新目标程序pa11将控制返回到调用侧更新目标程序pc11,而不停止处理(触发等待)。
[0097]
并且,可以暂停非更新目标程序pa11以进行在线程序更新。暂停非更新目标程序pa11的定时要么是紧挨在从调用侧更新目标程序pc11调用非更新目标程序pa11之前,要么是紧挨在从非更新目标程序pa11返回到调用侧更新目标程序pc11之后。因此,在程序更新期间,处理返回到非更新目标程序pa11的调用侧,并且非更新目标程序pa11使用的堆栈区域全部被释放。因此,在暂停的非更新目标程序pa11的上下文ca11中不包括堆栈区域。
[0098]
图4是描绘在本公开的第一示例性实施例中的程序更新管理器(活动装置侧和更新装置侧)的详细功能配置的功能框图。在图4中,程序更新管理器15是活动装置(图1中的过程控制装置10)的功能。并且,程序更新管理器25是更新装置(图1中的过程控制装置20)的功能。程序更新管理器15和程序更新管理器25被配置为彼此协同操作。过程控制装置具有程序更新管理器15的功能和程序更新管理器25的功能,并且被配置为切换功能,这依赖于它是作为活动装置还是作为更新装置操作。
[0099]
如图4所示,程序更新管理器15包括通信管理单元151和非更新目标程序调用停止单元152。并且,程序更新管理器25包括通信管理单元251、非更新目标程序调用重新开始单元252和上下文初始化控制单元253。同时,过程控制装置10和过程控制装置20分别经由网
络连接到工程设施30。过程控制装置10的通信管理单元151和过程控制装置20的通信管理单元251分别被配置为经由网络执行与工程设施30的通信。
[0100]
当通信管理单元151接收到从工程设施30传输的请求(暂停请求)时,通信管理单元151向非更新目标程序调用停止单元152发出暂停非更新目标程序pa11的指令。并且,当完成从工程设施30请求的处理(暂停处理)时,通信管理单元151将非更新目标程序pa11的上下文ca11(参见图2)传送到更新装置,并通知工程设施30暂停处理已完成。
[0101]
非更新目标程序调用停止单元152被配置为根据从通信管理单元151发出的指令暂停非更新目标程序pa11。具体地,非更新目标程序调用停止单元152暂停非更新目标程序pa11的调用。更具体地,非更新目标程序调用停止单元152通过停止调用侧更新目标程序pc11(参见图3)调用非更新目标程序pa11来暂停非更新目标程序pa11。当完成非更新目标程序pa11的暂停时,非更新目标程序调用停止单元152通知通信管理单元151暂停处理已完成。
[0102]
同时,当暂停非更新目标程序pa11时,程序更新管理器15运行将非更新目标程序pa11的上下文ca11(参见图2)存储在存储装置(未示出)中的处理。通信管理单元151读出存储在存储装置中的上下文ca11并将其传送到更新装置。将上下文ca11存储在存储装置中的处理也可以由非更新目标程序调用停止单元152运行。
[0103]
当通信管理单元251接收到从工程设施30传输的请求(重新开始请求)时,通信管理单元251向非更新目标程序调用重新开始单元252发出重新开始非更新目标程序pa11的指令。通信管理单元251将从通信管理单元151传送的上下文(非更新目标程序pa11的上下文ca11)存储(复制)在与活动装置相同的区域(地址)中。由此,在过程控制装置20中再现与非更新目标程序pa11的暂停等效的状态。并且,当完成从工程设施30请求的处理(重新开始处理)时,通信管理单元251通知工程设施30重新开始处理已完成。
[0104]
非更新目标程序调用重新开始单元252被配置为根据从通信管理单元251发出的指令重新开始非更新目标程序pa11。具体地,非更新目标程序调用重新开始单元252运行过程控制装置20的激活程序,并使得调用侧更新目标程序pc11(类似于图3所示的调用侧更新目标程序pc11))能够调用非更新目标程序pa21(参见图1)。同时,由于非更新目标程序pa21是与非更新目标程序pa11相同的程序,因此非更新目标程序pa21的调用与非更新目标程序pa11的调用重新开始同义。
[0105]
非更新目标程序调用重新开始单元252使得上下文初始化控制单元253能够在从通信管理单元251发出指令之后在上下文初始化控制单元253中尚未运行处理时实施处理。非更新目标程序调用重新开始单元252被配置为重新开始调用侧更新目标程序pc11,使得调用侧更新目标程序pc11(类似于图3所示的调用侧更新目标程序pc11)将调用非更新目标程序pa21。当完成非更新目标程序pa11(非更新目标程序pa21)的重新开始时,非更新目标程序调用重新开始单元252通知通信管理单元251重新开始处理已完成。
[0106]
上下文初始化控制单元253被配置为基于从非更新目标程序调用重新开始单元252发出的指令,向操作系统22发出关于是否初始化上下文的指令。具体地,上下文初始化控制单元253绕过非更新目标程序pa11的上下文ca11的初始化处理,并发出允许初始化更新目标程序的上下文的指令。同时,当完成上下文的初始化处理时,上下文初始化控制单元253通知非更新目标程序调用重新开始单元252初始化处理已经完成。
[0107]
《程序更新方法》
[0108]
图5是描绘根据本公开的第一示例性实施例的程序更新方法的流程图。作为运行图5所示的流程图的处理的前提,过程控制装置10(活动装置)通过在更新之前使用更新目标程序来操作。并且,过程控制装置20(更新装置)在安装了更新之后的更新目标程序的状态下备用。非更新目标程序不被更新,并且相同的程序(非更新目标程序和pa11和pa21)在过程控制装置10和过程控制装置20中运行。
[0109]
并且,在适当的定时处从工程设施30向过程控制装置10(活动装置)传输请求(暂停请求),并且在适当的定时处从工程设施30向过程控制装置20(更新装置)传输请求(重新开始请求)。也就是说,工程设施30首先向过程控制装置10传输请求暂停的消息。然后,工程设施30从过程控制装置10接收指示暂停的完成的消息。然后,工程设施30向过程控制装置20传输请求重新开始的消息。然后,工程设施30从过程控制装置20接收指示重新开始的完成的消息。
[0110]
同时,在向过程控制装置10传输请求暂停的消息之后,工程设施30可以使得过程控制装置10能够向过程控制装置20发出重新开始请求。当过程控制装置10能够发出重新开始请求时,工程设施30不向过程控制装置20传输请求重新开始的消息。相反,过程控制装置10还可以向过程控制装置20通知指示暂停的完成的消息,从而向过程控制装置20请求重新开始。
[0111]
如图5所示,过程控制装置10(活动装置)接收从工程设施30传输的消息(请求暂停的消息)(步骤s11)。具体地,该消息由过程控制装置10(活动装置)中提供的程序更新管理器15的通信管理单元151接收。当接收到从工程设施30传输的消息时,从通信管理单元151向非更新目标程序调用停止单元152输出暂停非更新目标程序pa11的指令。
[0112]
因此,在非更新目标程序调用停止单元152中运行停止调用非更新目标程序pa11的调用侧(调用侧更新目标程序pc11)的处理(步骤s12)。具体地,在非更新目标程序调用停止单元152中,运行通过停止调用侧更新目标程序pc11(参见图3)调用非更新目标程序pa11来运行暂停非更新目标程序pa11的处理。这里,当暂停非更新目标程序pa11时,在程序更新管理器15中运行将非更新目标程序pa11的上下文ca11存储在存储装置(未示出)中的处理。
[0113]
当完成非更新目标程序pa11的暂停时,非更新目标程序调用停止单元152通知通信管理单元151暂停的完成。然后,在通信管理单元151中运行从存储装置(未示出)读出非更新目标程序pa11的上下文ca11并将其传送到更新装置的处理(步骤s13)。当完成上述处理时,在通信管理单元151中运行通知工程设施30暂停处理已完成的处理(步骤s14)。
[0114]
如图5所示,过程控制装置20(更新装置)接收从工程设施30传输的消息(请求重新开始的消息)(步骤s21)。具体地,该消息由过程控制装置20(活动装置)中提供的程序更新管理器25的通信管理单元251接收。当接收到从工程设施30传输的消息时,从通信管理单元251向非更新目标程序调用停止单元252输出重新开始非更新目标程序pa11的指令。
[0115]
并且,在通信管理单元251中运行接收从过程控制装置10(活动装置)传送的上下文(非更新目标程序pa11的上下文ca11)的处理(步骤s22)。然后,在通信管理单元251中运行将接收的上下文存储(复制)在与活动装置相同的区域(地址)中的处理。由此,在过程控制装置20中再现与非更新目标程序pa11的暂停等效的状态。
[0116]
当输入重新开始非更新目标程序pa11的指令时,在非更新目标程序调用重新开始
单元252中运行调用过程控制装置20(更新装置)的激活程序的处理(步骤s23)。当调用激活程序时,首先在上下文初始化控制单元253中运行初始化上下文的处理。具体地,上下文初始化控制单元253确定要初始化的程序是否是非更新目标程序(步骤s24)。
[0117]
当确定要初始化的程序是非更新目标程序时(步骤s24:是),在上下文初始化控制单元253中运行绕过初始化处理的处理(步骤s25)。由此,避免了存储(复制)在与活动装置相同的区域(地址)中的上下文(非更新目标程序pa11的上下文ca11)的初始化。另一方面,当确定要初始化的程序不是非更新目标程序时(步骤s24:否),在上下文初始化控制单元253中运行允许运行初始化处理的处理(步骤s26)。从而,运行初始化所有更新目标程序的上下文的处理。
[0118]
当完成初始化处理时,上下文初始化控制单元253通知非更新目标程序调用重新开始单元252初始化处理的完成。当上下文初始化控制单元253通知初始化处理的完成并且完成激活程序时,在非更新目标程序调用重新开始单元252中运行重新开始调用非更新目标程序pa11(非更新目标程序pa21)的处理(步骤s27)。
[0119]
当完成非更新目标程序pa11(非更新目标程序pa21)的重新开始时,非更新目标程序调用重新开始单元252通知通信管理单元251重新开始处理的完成。当给出通知时,通信管理单元251运行通知工程设施30重新开始处理的完成的处理(步骤s28)。以这种方式,执行在线更新。
[0120]
如上所述,在第一示例性实施例中,基于从工程设施30传输的暂停请求,首先在过程控制装置10(活动装置)中暂停不是更新目标的非更新目标程序pa11,并且将非更新目标程序pa11的上下文ca11传送到过程控制装置20(更新装置)。然后,基于从工程设施30传输的重新开始请求,在过程控制装置20(更新装置)中使用传输的上下文ca11恢复不是更新目标的非更新目标程序pa21的上下文ca11;初始化更新之后的更新目标程序的上下文;以及重新开始非更新目标程序和更新目标程序。由此,可以简单且在短时间内更新更新目标程序同时在不停止过程控制系统的情况下继续操作过程控制系统。
[0121]
[第二示例性实施例]
[0122]
《过程控制系统的配置》
[0123]
图6是描绘在本公开的第二示例性实施例中的程序更新管理器(活动装置侧和更新装置侧)的详细功能配置的功能框图。并且,在图6中,与图4所示的配置相对应的配置用相同的附图标记表示。并且,第二示例性实施例的整个过程控制系统的功能配置类似于参考图1至图3描述的功能配置。在下文中,主要描述与第一示例性实施例的不同。
[0124]
在第二示例性实施例中,当对从非更新目标程序pa11调用的更新目标程序(例如,图1和图2所示的更新目标程序pb11)的处理正在进行中时,处理被快速中断。此时,非更新目标程序pa11的运行位置被设置为紧挨在请求更新目标程序处理之前的位置,使得非更新目标程序pa11的上下文被校正。并且,删除指示更新目标程序正在进行中的信息以保证过程控制系统1的继续操作。
[0125]
如图6所示,在第二示例性实施例中,活动装置的程序更新管理器15a具有这样的配置:非更新目标程序停止位置返回单元153被添加到图4所示的活动装置的程序更新管理器15。并且,更新装置的程序更新管理器25具有与图4所示的配置相同的配置。
[0126]
当非更新目标程序调用停止单元152暂停调用侧更新目标程序pc11(参见图3)时,
非更新目标程序停止位置返回单元153确定非更新目标程序pa11请求的更新目标程序的处理是否正在进行中。当确定非更新目标程序pa11请求的更新目标程序的处理正在进行中时,非更新目标程序停止位置返回单元153将非更新目标程序pa11的运行位置设置为紧挨在请求更新目标程序处理之前的位置。此时,非更新目标程序停止位置返回单元153删除指示非更新目标程序pa11的更新目标程序正在进行中的信息。
[0127]
《程序更新方法》
[0128]
图7是描绘根据本公开的第二示例性实施例的程序更新方法的流程图。图7所示的流程图描绘了将在程序更新管理器15a中提供的非更新目标程序停止位置返回单元153中运行的处理。在图5中的步骤s12和步骤s13的处理之间运行图7所示的流程图的处理。
[0129]
当运行图5所示的步骤s12的处理时,暂停非更新目标程序pa11。具体地,非更新目标程序pa11紧挨在从调用侧更新目标程序pc11调用非更新目标程序pa11之前暂停,或者紧挨在从非更新目标程序pa11返回到调用侧更新目标程序pc11之后暂停。当暂停非更新目标程序pa11时,非更新目标程序调用停止单元152通知非更新目标程序停止位置返回单元153该暂停。
[0130]
然后,非更新目标程序停止位置返回单元153确定非更新目标程序pa11请求的更新目标程序的处理是否正在进行中(步骤s31)。当确定非更新目标程序pa11请求的处理正在进行中时(步骤s31:是),或者当确定它是不确定的(不能确定处理是否正在进行中)时,在非更新目标程序停止位置返回单元153中运行后续处理。即,运行将非更新目标程序的运行位置设置为紧挨在请求正在进行中的更新目标程序的处理之前的位置的处理(步骤s32)。
[0131]
当上述处理结束时,在非更新目标程序停止位置返回单元153中运行删除由非更新目标程序pa11保持并指示更新目标程序正在进行中的信息的处理(步骤s32)。运行处理,使得非更新目标程序pa11保持的信息变为紧挨在请求正在进行处理的更新目标程序的处理之前信息。并且,当运行步骤s33的处理时,图7所示的流程图的处理结束。
[0132]
并且,当在步骤s31中确定非更新目标程序pa11请求的处理未在进行中时(步骤s31:否),在不运行步骤s32和步骤s33的处理的情况下结束图7所示的流程图的处理。当图7所示的流程图的处理结束时,非更新目标程序停止位置返回单元153通知非更新目标程序调用停止单元152该事实。
[0133]
然后,在通信管理单元151中顺序运行将非更新目标程序pa11的上下文ca11传送到过程控制装置20的处理(图5中的步骤s13)和通知工程设施30暂停完成的处理(图5中的步骤s14)。并且,在过程控制装置20中,以与第一示例性实施例类似的方式运行重新开始非更新目标程序pa11(非更新目标程序pa21)的处理。
[0134]
如上所述,在第二示例性实施例中,当在过程控制装置10(活动装置)中基于工程设施30的暂停请求暂停不是更新目标的非更新目标程序pa11时,运行以下处理。首先,非更新目标程序停止位置返回单元153确定更新目标程序是否正在进行中。当非更新目标程序停止位置返回单元153确定更新目标程序正在进行中时,运行将非更新目标程序pa11的运行位置设置为紧挨在请求处理更新目标程序之前的位置的处理。此时,非更新目标程序停止位置返回单元153删除由非更新目标程序pa11保持并指示更新目标程序正在进行中的信息。
[0135]
通过上述处理,不运行非更新目标程序pa11向更新目标程序请求的处理,并且由非更新目标程序pa11保持并指示非更新目标程序pa11的运行位置和更新目标程序的状态的信息被设置到紧挨在请求处理更新目标程序之前的位置。由此,可以在短时间内更新更新目标程序同时保证过程控制系统1的继续操作。
[0136]
[第三示例性实施例]
[0137]
《过程控制系统的功能配置》
[0138]
图8是描绘在本公开的第三示例性实施例中的程序更新管理器(活动装置侧和更新装置侧)的详细功能配置的功能框图。在图8中,与图4所示的配置相对应的配置用相同的附图标记表示。并且,第三示例性实施例的整个过程控制系统的功能配置类似于参考图1至图3描述的功能配置。在下文中,主要描述与第一示例性实施例的不同。
[0139]
第三示例性实施例被设计为当在对从非更新目标程序pa11调用的更新目标程序处理正在进行中时,等待处理完全完成。在第三示例性实施例中,非更新目标程序pa11的上下文ca11在完全完成从非更新目标程序pa11调用的更新目标程序的处理的状态下被传送到更新装置。由此,保证了过程控制系统1的继续操作。
[0140]
例如,在图1和图2所示的任务13中包括的非更新目标程序pa11经由操作系统12提供的任务之间的通信向任务14中包括的更新目标程序pb12传输请求并且等待响应的状态下,考虑暂停调用非更新目标程序pa11的情形。在第三示例性实施例中,在这种情形下,等待包括更新目标程序pb12的所有更新目标程序完成正在进行中的处理。
[0141]
如图8所示,在第三示例性实施例中,活动装置的程序更新管理器15b具有这样的配置:更新目标程序进行处理完成等待单元154被添加到图4所示的活动装置的程序更新管理器15中。同时,更新装置的程序更新管理器25具有与图4所示的配置相同的配置。
[0142]
当非更新目标程序调用停止单元152运行暂停非更新目标程序pa11的处理时,更新目标程序进行处理完成等待单元154确定从非更新目标程序pa11调用的更新目标程序是否是正在进行中。当确定从非更新目标程序pa11调用的更新目标程序正在进行中时,更新目标程序进行处理完成等待单元154等待从非更新目标程序pa11调用的所有更新目标程序完成正在进行中的处理。同时,可以通过从更新目标程序进行处理完成等待单元154向操作系统12进行请求来把握是否完成了正在进行中的处理。
[0143]
《程序更新方法》
[0144]
图9是描绘根据本公开的第三示例性实施例的程序更新方法的流程图。同时,图9所示的流程图描绘了将在程序更新管理器15b中提供的更新目标程序进行处理完成等待单元154中运行的处理。在图5中的步骤s12和步骤s13的处理之间运行图9所示的流程图的处理。
[0145]
当运行图5所示的步骤s12的处理时,暂停非更新目标程序pa11。具体地,非更新目标程序pa11在紧挨在从调用侧更新目标程序pc11调用非更新目标程序pa11之前或者紧挨在从非更新目标程序pa11返回到调用侧更新目标程序pc11之后的定时处暂停。当暂停非更新目标程序pa11时,非更新目标程序调用停止单元152通知更新目标程序进行处理完成等待单元154该暂停。
[0146]
然后,更新目标程序进行处理完成等待单元154确定由非更新目标程序pa11调用的更新目标程序的处理是否正在进行中(步骤s41)。当确定处理正在进行中时(步骤s41:
是)或当确定它是不确定的(不能确定处理是否正在进行中)时,在更新目标程序进行处理完成等待单元154中运行以下处理。即,运行等待直到非更新目标程序pa11调用的所有更新目标程序完成正在进行中的处理的处理(步骤s42)。同时,当运行步骤s42的处理时,图9所示的流程图的处理结束。
[0147]
并且,当在步骤s41中确定处理不在进行中时(步骤s41:否),在不运行步骤s42的处理的情况下结束图9所示的流程图的处理。当图9所示的流程图的处理结束时,更新目标程序进行处理完成等待单元154通知非更新目标程序调用停止单元152该事实。
[0148]
然后,在通信管理单元151中顺序运行将非更新目标程序pa11的上下文ca11传送到过程控制装置20的处理(图5中的步骤s13)和通知工程设施30暂停完成的处理(图5中的步骤s14)。同时,在过程控制装置20中,以与第一示例性实施例类似的方式运行重新开始非更新目标程序pa11(非更新目标程序pa21)的处理。
[0149]
如上所述,在第三示例性实施例中,当在过程控制装置10(活动装置)中基于从工程设施30传输的暂停请求暂停不是更新目标的非更新目标程序pa11时,运行以下处理。首先,更新目标程序进行处理完成等待单元154确定更新目标程序(由非更新目标程序pa11调用的更新目标程序)的处理是否正在进行中。当更新目标程序进行处理完成等待单元154确定更新目标程序正在进行中时,运行等待直到所有更新目标程序完成正在进行中的处理的处理。
[0150]
通过上述处理,在从非更新目标程序pa11调用的更新目标程序的处理全部完成的状态下,将非更新目标程序pa11的上下文ca11传送到更新装置。由此,可以在短时间内更新更新目标程序同时保证过程控制系统1的继续操作。
[0151]
[第四示例性实施例]
[0152]
《过程控制系统的功能配置》
[0153]
图10是描绘在本公开的第四示例性实施例中的程序更新管理器(活动装置侧和更新装置侧)的详细功能配置的功能框图。同时,在图10中,与图4所示的配置相对应的配置用相同的附图标记表示。并且,第四示例性实施例的整个过程控制系统的功能配置类似于参考图1至图3描述的功能配置。在下文中,主要描述与第一示例性实施例的不同。
[0154]
在第四示例性实施例中,当非更新目标程序pa11调用的更新目标程序中存在其处理需要被接管到更新装置的更新目标程序时,启用更新目标程序的处理从活动装置到更新装置的接管。在第四示例性实施例中,为了启用处理的接管,除了非更新目标程序pa11的上下文ca11之外,还提取恢复数据,该恢复数据是恢复其处理需要被接管的更新目标程序的上下文所必需的,并且该恢复数据被从活动装置传送到更新装置。然后,在更新装置中,使用传送的恢复数据恢复更新目标程序的上下文。
[0155]
如图10所示,在第四示例性实施例中,活动装置的程序更新管理器15c具有这样的配置:更新目标程序进行处理减少等待单元155和更新目标程序上下文恢复数据提取单元156被添加到图4所示的活动装置的程序更新管理器15。并且,更新装置的程序更新管理器25a具有这样的配置:更新目标程序上下文恢复单元254被添加到图4所示的程序更新管理器25。
[0156]
当非更新目标程序调用停止单元152运行暂停非更新目标程序pa11的处理时,更新目标程序进行处理减少等待单元155确定非更新目标程序pa11调用的多个更新目标程序
中是否存在其处理正在进行中的更新目标程序。更新目标程序进行处理减少等待单元155在确定更新目标程序中存在甚至一个其处理正在进行中的更新目标程序时运行以下处理。
[0157]
也就是说,更新目标程序进行处理减少等待单元155进行用于聚集非更新目标程序pa11调用的多个更新目标程序中的其规范被公布的更新目标程序(预先注册的更新目标程序)中的正在进行中的处理的设置。具体地,进行设置,使得对其规范被公布的更新目标程序的请求不被传输到其他更新目标程序。然后,它等待更新目标程序的处理停止。“其规范被公布的更新目标程序”是指其规范被明确定义和公布的系统调用、公共库等。
[0158]
当更新目标程序进行处理减少等待单元155确认更新目标程序的处理停止时,它请求更新目标程序上下文恢复数据提取单元156提取恢复数据。同时,当更新目标程序上下文恢复数据提取单元156通知恢复数据的提取完成时,更新目标程序进行处理减少等待单元155通知非更新目标程序调用停止单元152提取完成。
[0159]
当从更新目标程序进行处理减少等待单元155请求恢复数据的提取时,更新目标程序上下文恢复数据提取单元156运行从其规范被公布的更新目标程序的上下文中提取恢复上下文所需的恢复数据的处理。当完成恢复数据的提取时,更新目标程序上下文恢复数据提取单元156通知更新目标程序进行处理减少等待单元155提取完成。
[0160]
当从上下文初始化控制单元253请求上下文的恢复时,更新目标程序上下文恢复单元254通过使用从活动装置传送的恢复数据和公布的处理请求过程来恢复其规范被公布的更新目标程序的上下文。当完成上下文的恢复时,更新目标程序上下文恢复单元254通知上下文初始化控制单元253恢复完成。
[0161]
这里,考虑其规范被公布的更新目标程序的功能是任务之间的通信、并且要恢复的上下文是作为任务之间的通信的处理的结果而获得的邮箱(任务之间的通信中的未读消息的累积)的示例。在该示例中,对于任务间通信功能,更新目标程序进行处理减少等待单元155进行允许保存新传输的消息但是防止更新目标程序读出累积的未读消息的设置,从而等待更新目标程序的处理停止。例如,通过更新目标程序进行处理减少等待单元155请求操作系统12停止用于从任务之间的通信中提取请求的系统调用来实施该设置。
[0162]
例如,当任务之间的通信是图2所示的更新目标程序pb13时,更新目标程序进行处理减少等待单元155进行设置,使得对更新目标程序pb13的请求不被传输到更新目标程序pb12和pb14。同时,更新目标程序pb12和pb14可以请求更新目标程序pb13运行处理。在进行设置之后,更新目标程序进行处理减少等待单元155等待更新目标程序的处理停止。
[0163]
在该示例中,要由更新目标程序上下文恢复数据提取单元156提取的恢复数据的项目在邮箱的功能规范中定义的范围内,并且例示如下。作为第一示例,恢复数据包括邮箱的生成信息。邮箱的生成信息是要存储的最大消息数和一个消息的上限大小(例如,字节数)。并且,作为第二示例,恢复数据是单个消息(仅未读消息)的传输信息(发送任务id、目的地任务id、日期和时间、紧急性和消息体)。
[0164]
当恢复数据从活动装置传送到更新装置时,在更新目标程序上下文恢复单元254中运行基于第一恢复数据生成邮箱而不是相应任务的处理。并且,在更新装置侧,运行基于第二恢复数据邮件传输消息而不是相应任务,并且在邮箱上顺序累积消息的处理。
[0165]
《程序更新方法》
[0166]
图11和图12是描绘根据本公开的第四示例性实施例的程序更新方法的流程图。同
时,图11所示的流程图描绘了将在程序更新管理器15c提供的更新目标程序进行处理减少等待单元155和更新目标程序上下文恢复数据提取单元156中运行的处理。在图5中的步骤s12和步骤s13的处理之间运行图11所示的流程图的处理。并且,图12所示的流程图描绘了将在程序更新管理器25a中提供的更新目标程序上下文恢复单元254中运行的处理。在图5中的步骤s26和步骤s27的处理之间运行图12所示的流程图的处理。
[0167]
当运行图5所示的步骤s12的处理时,暂停非更新目标程序pa11,并且非更新目标程序调用停止单元152通知更新目标程序进行处理减少等待单元155该暂停。然后,更新目标程序进行处理减少等待单元155确定非更新目标程序pa11调用的多个更新目标程序中是否存在其处理正在进行中的更新目标程序(步骤s51)。
[0168]
当确定存在其处理正在进行中的甚至一个更新目标程序时(步骤s51:是),更新目标程序进行处理减少等待单元155运行以下处理;或者当确定它是不确定的(不能确定处理是否正在进行中)时,更新目标程序进行处理减少等待单元155运行以下处理。也就是说,更新目标程序进行处理减少等待单元155运行进行设置的处理,使得对其规范被公布的更新目标程序的请求不被传输到其他更新目标程序(步骤s52)。
[0169]
当上述设置处理结束时,更新目标程序进行处理减少等待单元155等待直到非更新目标程序pa11调用的所有更新目标程序的处理停止(步骤s52)。当确认非更新目标程序pa11调用的所有更新目标程序的处理停止时,更新目标程序进行处理减少等待单元155请求更新目标程序上下文恢复数据提取单元156提取恢复数据。
[0170]
当发出提取恢复数据的请求时,更新目标程序上下文恢复数据提取单元156运行从停止的更新目标程序(其规范被公布的更新目标程序)的上下文中提取恢复上下文所需的恢复数据的处理(步骤s54)。当完成恢复数据的提取时,更新目标程序上下文恢复数据提取单元156通知更新目标程序进行处理减少等待单元155提取完成。
[0171]
当更新目标程序上下文恢复数据提取单元156通知提取完成时,更新目标程序进行处理减少等待单元155通知非更新目标程序调用停止单元152该事实(提取完成)。然后,更新目标程序上下文恢复数据提取单元156提取的恢复数据经由通信管理单元151被传送到更新装置(步骤s55)。当运行上述处理时,图11所示的流程图的处理结束。另一方面,当在步骤s51中确定不存在其处理正在进行中的更新目标程序时(步骤s51:否),图11所示的流程图的处理结束。
[0172]
然后,在通信管理单元151中顺序运行将非更新目标程序pa11的上下文ca11传送到过程控制装置20的处理(图5中的步骤s13)和通知工程设施30暂停完成的处理(图5中的步骤s14)。
[0173]
当重新开始请求从工程设施30传输到更新装置时,类似于第一示例性实施例,运行图5所示的步骤s21至步骤s26的处理。这里,当步骤s26的处理结束时,上下文初始化控制单元253请求更新目标程序上下文恢复单元254恢复上下文。然后,更新目标程序上下文恢复单元254运行经由通信管理单元251接收恢复数据的处理(步骤s61)。
[0174]
然后,更新目标程序上下文恢复单元254运行通过使用接收的恢复数据和公布的处理请求过程来恢复其规范被公布的更新目标程序的上下文的处理(步骤s62)。当完成上下文的恢复时,更新目标程序上下文恢复单元254通知上下文初始化控制单元253恢复完成。
[0175]
然后,非更新目标程序调用重新开始单元252运行重新开始调用非更新目标程序pa11(非更新目标程序pa21)的处理(图5中的步骤s27)。当完成非更新目标程序pa11(非更新目标程序pa21)的重新开始时,非更新目标程序调用重新开始单元252通知通信管理单元251重新开始处理的完成。当进行通知时,通信管理单元251通知工程设施30重新开始处理的完成(图5中的步骤s28)。
[0176]
如上所述,在第四示例性实施例中,当确定非更新目标程序pa11调用的更新目标程序中存在其处理正在进行中的更新目标程序时,活动装置进行设置,使得对更新目标程序中的其规范被公布的更新目标程序的请求不被传输到其他更新目标程序,并且等待更新目标程序的处理停止。然后,从其规范被公布的更新目标程序的上下文中提取重新开始处理所需的恢复数据。
[0177]
并且,在第四示例性实施例中,更新装置通过使用从活动装置传送的恢复数据来在更新之后恢复更新目标程序(其规范被公布的更新目标程序)的上下文。然后,当完成上下文的恢复时,重新开始非更新目标程序pa11(pa21)的调用。
[0178]
通过上述处理,除了活动装置侧的非更新目标程序pa11的上下文ca11之外,还可以恢复更新装置侧的从非更新目标程序pa11调用的更新目标程序中的其规范被公布的更新目标程序的上下文。从而,即使在非更新目标程序pa11调用的更新目标程序中存在其处理需要被接管到更新装置侧的更新目标程序时,也可以在短时间内更新更新目标程序同时保证过程控制系统1的继续操作。
[0179]
[第五示例性实施例]
[0180]
图13是描绘根据本公开的第五示例性实施例的过程控制系统的示意性功能配置的功能配置图。在图13中,与图1和图2所示的配置相对应的配置用相同的附图标记表示。并且,在图13中,仅示出了描述第五示例性实施例所需的功能配置。为此,在图13中,例如,未示出图1所示的过程控制装置10、工程设施30等。同时,在第五示例性实施例中,程序更新管理器15和25分别提供在图4所示的活动装置和更新装置中。在下文中,主要描述与第二示例性实施例的不同。
[0181]
在第二示例性实施例中,仅考虑过程控制装置10,当正在对从非更新目标程序pa11调用的更新目标程序进行处理时,处理被快速中断。这里,当存在被配置为与过程控制装置10执行通信的通信伙伴装置40(其他设备)时,考虑到除了来自非更新目标程序pa11的调用(请求)之外,还从通信伙伴装置40向过程控制装置10进行请求,因此需要继续进行中的通信处理,使得不会发生诸如通信错误的问题。
[0182]
原因是通过继续进行中的通信处理不会感觉到过程控制装置10的暂停。即,即使当过程控制装置10暂停时,也使通信伙伴装置40感觉好像过程控制装置10在继续操作。在第五示例性实施例中,即使在存在通信伙伴装置40的情况下,也使通信伙伴装置40不会感觉到过程控制装置10的暂停,使得可以在短时间内更新更新目标程序同时保证过程控制系统1的继续操作。
[0183]
如图13所示,操作系统12具有作为更新目标程序之一的更新目标程序pb16。更新目标程序pb16是被配置为启用在操作系统12上操作的任务(例如,任务13)和在通信伙伴装置40上操作的任务(例如,在通信伙伴装置40的操作系统41上操作的任务42)之间的通信的通信驱动器。在第五示例性实施例中,请求/响应协议被安装在通信驱动器上,使得在作为
处理请求源的请求任务和作为处理运行目的地的响应任务之间实施请求的传递确认/重传和接收去重复。
[0184]
在请求/响应协议中,请求任务将通信数据id分配给通信数据并进行传输,并且响应任务分配并回复通信数据id。通信数据id是用于唯一地指定通信数据的标识符,并且例如是序列号。具有请求/响应协议的通信功能包括vnet的get通信、ff(foundation fieldbus(注册商标)协会)的客户端-服务器通信、profibus(注册商标)的dp-v1通信等。
[0185]
图14示出了将在本公开的第五示例性实施例中使用的请求/响应协议。如图14所示,在请求/响应协议中,当过程控制装置10(任务13)向通信伙伴装置40(任务42)传输(通知)请求时,过程控制装置10(任务13)等待从通信伙伴装置40(任务42)返回响应。当请求的处理(第一预定处理)结束时,已经接收到请求的通信伙伴装置40(任务42)回复(通知)指示处理的结果的响应。当已传输请求的过程控制装置10(任务13)接收到从通信伙伴装置40(任务42)回复的响应时,正在进行中的处理完成。
[0186]
相反,当通信伙伴装置40(任务42)向过程控制装置10(任务13)传输请求时,通信伙伴装置40(任务42)等待从过程控制装置10(任务13)返回响应。当请求的处理(第二预定处理)结束时,已经接收到请求的过程控制装置10(任务13)回复指示处理的结果的响应。
[0187]
这里,在使用通常的通用通信协议(例如,tcp/ip)的情况下,当来自通信伙伴装置40的请求被过程控制装置10正常接收时,即使从通信伙伴装置40请求的处理在过程控制装置10中没有结束,也从过程控制装置10向通信伙伴装置40回复确认(ack)。相反,在使用请求/响应协议的情况下,直到从通信伙伴装置40请求的处理在过程控制装置10中结束,才从过程控制装置10向通信伙伴装置40回复响应。也就是说,在使用通常的通用通信协议的情况下,在通信驱动器之间实施高度可靠的通信。然而,在使用请求/响应协议的情况下,在互连请求任务和响应任务的所有路径上实施高度可靠的通信。
[0188]
这里,当在线更新响应任务正在其中操作的活动装置时,在线更新可能丢失响应数据。即使在这种情况下,由于请求任务的通信驱动器通过请求/响应协议监视响应数据的接收,因此当在预定时间内没有接收到响应数据时,重新传输响应数据的请求数据。结果,由于恢复了丢失的响应数据,因此即使当在线更新响应任务正在其中操作的活动装置时,也可以使通信伙伴装置的请求任务感觉不到在线更新。
[0189]
相反,当在线更新请求任务正在其中操作的活动装置时,请求数据可能由于在线更新而丢失。在这种情况下,不能在请求/响应协议中恢复丢失的请求数据。因此,在请求任务已经向响应任务传输请求数据并且更新目标程序正在进行中的情况下,在暂停在线更新时,将非更新目标程序pa11的停止位置返回到紧挨在请求被传输到更新目标程序之前的状态(更新目标程序正在进行中之前的状态)。从而,恢复了丢失的请求数据。
[0190]
如上所述,在第五示例性实施例中,使用过程控制装置10和通信伙伴装置40之间的请求/响应协议来执行通信。从而,当在预定时间内未获得响应时,重新传输对响应的请求。结果,即使在存在通信伙伴装置40的情况下,也可以在短时间内更新更新目标程序同时保证过程控制系统1的继续操作。
[0191]
[第六示例性实施例]
[0192]
《过程控制系统的功能配置》
[0193]
图15是描绘根据本公开的第六示例性实施例的过程控制系统的示意性功能配置
的功能配置图。在图15中,与图1、图2和图13所示的配置相对应的配置用相同的附图标记表示。并且,在图15中,仅示出了描述第六示例性实施例所需的功能配置。为此,在图15中,例如,未示出图1所示的过程控制装置10、工程设施30等。在下文中,主要描述与第一示例性实施例的不同。
[0194]
第三示例性实施例被设计为当仅考虑过程控制装置10时,在正在对从非更新目标程序pa11调用的更新目标程序进行处理时,等待处理完全完成。在完成所有处理之后,将非更新目标程序pa11的上下文ca11传送到更新装置,从而保证过程控制系统1的继续操作。
[0195]
这里,在通信伙伴装置40被配置为执行与过程控制装置10的通信的情况下,在非更新目标程序pa11暂停之后,需要不从通信伙伴装置40接收新的请求。这是为了将通信处理中的正在进行中的处理减少到零。也就是说,当没有来自通信伙伴装置40的新的请求时,如果回复对接收的请求的响应,则正在进行中的处理结束。并且,还停止对非更新目标程序pa11的调用。然而,已经进行请求的处理在接收到响应时结束。以这种方式,在第六示例性实施例中,即使存在通信伙伴装置40,也不会从通信伙伴装置40接收新的请求,但是响应被接收,使得可以在短时间内更新更新目标程序同时保证过程控制系统1的继续操作。
[0196]
如图15所示,操作系统12具有作为更新目标程序的更新目标程序pb17和pb18。更新目标程序pb17提供在操作系统12上操作的任务(例如,任务13和14)之间的通信功能。更新目标程序pb18是通信驱动器,被配置为实现在操作系统12上操作的任务(例如,任务14)与通信伙伴装置40之间的通信。
[0197]
通信驱动器(更新目标程序pb18)被配置为通过使用通用通信协议(例如,tcp/ip)来执行通信。在通信驱动器(更新目标程序pb18)通过使用tcp/ip执行通信的情况下,执行消息的传递确认/重传和去重复。也就是说,通信驱动器(更新目标程序pb18)在传输数据时等待确认(ack),在没有接收到确认时重新传输数据,并且在接收数据时当存在重复数据时消除重复。
[0198]
在操作系统12上,任务13和14操作。在任务13中,非更新目标程序pa11操作,类似于图13所示的任务13。在任务14(使用任务)中,更新目标程序pb12操作。更新目标程序pb12用作更新目标程序pb18的接口。也就是说,任务13的非更新目标程序pa11可以经由更新目标程序pb17(任务之间的通信)和更新目标程序pb12(中继任务)访问更新目标程序pb18(通信驱动器)。
[0199]
因此,任务13的非更新目标程序pa11可以经由更新目标程序pb17(任务之间的通信)、更新目标程序pb12(中继任务)和更新目标程序pb18(通信驱动器)来执行与通信伙伴装置40的双向通信。具体地,例如,任务13的非更新目标程序pa11可以执行与在通信伙伴装置40的操作系统41上操作的任务42的双向通信。同时,使用诸如任务13和任务42之间的tcp/ip的通用通信协议来执行通信。
[0200]
同时,在任务13上操作的非更新目标程序pa11具有上下文ca11。在任务14上操作的更新目标程序pb12具有上下文cb12。并且,操作系统12的更新目标程序pb17具有上下文cb17,并且更新目标程序pb18具有上下文cb18。
[0201]
图16是描绘在本公开的第六示例性实施例中的程序更新管理器(活动装置侧和更新装置侧)的详细功能配置的功能框图。在图16中,与图8所示的配置相对应的配置用相同的附图标记表示。如图16所示,在第六示例性实施例中,活动装置侧的程序更新管理器15d
具有这样的配置:通信接收端口阻止单元157被添加到图8所示的活动装置侧的程序更新管理器15b。同时,更新装置侧的程序更新管理器25具有与图8相同的配置。
[0202]
通信接收端口阻止单元157被配置为阻止通信驱动器的接收端口(例如,图15所示的更新目标程序pb18),使得不从外部设备(例如,通信伙伴装置40)接收对新的处理的请求。当存在来自非更新目标程序调用停止单元152的请求时,通信接收端口阻止单元157立即阻止通信驱动器的接收端口。请求通信接收端口阻止单元157在更新目标程序进行处理完成等待单元154之前,通过非更新目标程序调用停止单元152请求开始处理。例如,通信接收端口阻止单元157阻止通信驱动器的接收端口,该通信接收端口阻止单元157使用操作系统12的功能来操作接收中断屏蔽。
[0203]
同时,在通信驱动器通过使用通用通信协议执行通信的情况下,即使通信驱动器的接收端口被暂时阻止,当在重传时段内重新开始通信时,也可以防止数据的丢失。同时,“重传时段”是具有通过重传次数n乘以等待时间(响应的等待时间)tw而获得的长度的时段,其中等待时间tw是请求被传输之后直到下一个请求被传输的时间。
[0204]
《程序更新方法》
[0205]
图17是描绘根据本公开的第六示例性实施例的程序更新方法的流程图。同时,图17所示的流程图描绘了由程序更新管理器15d中提供的更新目标程序进行处理完成等待单元154和通信接收端口阻止单元157运行的处理。在图5中的步骤s12和步骤s13之间运行图17所示的流程图的处理。
[0206]
当运行图5所示的步骤s12的处理时,暂停非更新目标程序pa11。具体地,非更新目标程序pa11在紧挨在从调用侧更新目标程序pc11调用非更新目标程序pa11之前或者紧挨在从非更新目标程序pa11返回到调用侧更新目标程序pc11之后的定时处暂停。当暂停非更新目标程序pa11时,从非更新目标程序调用停止单元152请求通信接收端口阻止单元157开始处理。然后,通信接收端口阻止单元157立即运行阻止通信驱动器的接收端口的处理,使得通信驱动器(图15所示的更新目标程序pb18)不接收对新的处理的请求(步骤s71)。
[0207]
当完成阻止通信驱动器的接收端口的处理时,通信接收端口阻止单元157通知非更新目标程序调用停止单元152处理完成。当通信接收端口阻止单元157通知处理完成时,从非更新目标程序调用停止单元152请求更新目标程序进行处理完成等待单元154开始处理。然后,更新目标程序进行处理完成等待单元154确定由非更新目标程序pa11调用的更新目标程序和由来自通信伙伴装置40的请求调用的更新目标程序的处理是否正在进行中(步骤s72)。
[0208]
当确定处理正在进行中时(步骤s72:是),更新目标程序进行处理完成等待单元154运行以下处理。即,运行等待直到由非更新目标程序pa11调用的更新目标程序和由来自通信伙伴装置40的请求调用的更新目标程序完成正在进行中的处理的处理(步骤s73)。同时,当运行步骤s73的处理时,图17所示的流程图的处理结束。
[0209]
并且,当在步骤s72中确定处理不在进行中时(步骤s72:否),在不运行步骤s72的处理的情况下结束图17所示的流程图的处理。当图17所示的流程图的处理结束时,更新目标程序进行处理完成等待单元154通知非更新目标程序调用停止单元152该事实。
[0210]
然后,在通信管理单元151中顺序运行将非更新目标程序pa11的上下文ca11传送到过程控制装置20的处理(图5中的步骤s13)和通知工程设施30暂停完成的处理(图5中的
步骤s14)。同时,在过程控制装置20中,以与第一示例性实施例类似的方式运行重新开始非更新目标程序pa11(非更新目标程序pa21)的处理。
[0211]
如上所述,在第六示例性实施例中,当在过程控制装置10(活动装置)中暂停不是更新目标的非更新目标程序pa11时,基于来自工程设施30的暂停请求,运行以下处理。首先,通信接收端口阻止单元157运行阻止通信驱动器(图18所示的更新目标程序pb18)的接收端口的处理。
[0212]
然后,更新目标程序进行处理完成等待单元154确定由非更新目标程序pa11调用的更新目标程序和由来自通信伙伴装置40的请求调用的更新目标程序的处理是否正在进行中。当更新目标程序进行处理完成等待单元154确定更新目标程序的处理正在进行中时,它等待直到所有更新目标程序完成正在进行中的处理。
[0213]
通过上述处理,非更新目标程序pa11的上下文ca11在由非更新目标程序pa11调用的更新目标程序和由来自通信伙伴装置40的请求调用的更新目标程序的处理全部完成的状态下被传送到更新装置。从而,即使存在通信伙伴装置40,也可以在短时间内更新更新目标程序同时保证过程控制系统1的继续操作。
[0214]
[第七示例性实施例]
[0215]
《过程控制系统的功能配置》
[0216]
图18是描绘根据本公开的第七示例性实施例的过程控制系统的示意性功能配置的功能配置图。在图18中,与图15所示的配置相对应的配置用相同的附图标记表示。并且,在图18中,仅示出了描述第七示例性实施例所需的功能配置。为此,在图18中,例如,未示出图1所示的过程控制装置10、工程设施30等。在下文中,主要描述与第四示例性实施例的不同。
[0217]
在第四示例性实施例中,仅考虑过程控制装置10,当非更新目标程序pa11调用的更新目标程序中存在其处理需要被接管到更新装置的更新目标程序时,更新目标程序的处理被从活动装置接管到更新装置。这里,类似于第六示例性实施例,当存在被配置为执行与过程控制装置10的通信的通信伙伴装置40时,在非更新目标程序pa11暂停之后不需要从通信伙伴装置40接收新的请求。在第七示例性实施例中,即使存在通信伙伴装置40,也不从通信伙伴装置40接收新的请求,使得可以在短时间内更新更新目标程序同时保证过程控制系统1的继续操作。
[0218]
如图18所示,除了更新目标程序pb17和pb18之外,操作系统12还具有作为更新目标程序的更新目标程序pb19。更新目标程序pb19提供在操作系统12上操作的任务之间的通信的功能(任务间通信功能),类似于更新目标程序pb17。同时,在图18中,更新目标程序pb17、pb19的上下文被共同示出为上下文cb17。
[0219]
任务13的非更新目标程序pa11可以经由更新目标程序pb17(任务之间的通信)、更新目标程序pb12(中继任务)、更新目标程序pb19(任务之间的通信)和更新目标程序pb18(通信驱动器)来执行与通信伙伴装置40的双向通信。同时,在任务14和通信伙伴装置40的任务42之间使用诸如tcp/ip的通用通信协议来执行通信。
[0220]
图19是描绘在本公开的第七示例性实施例中的程序更新管理器(活动装置侧和更新装置侧)的详细功能配置的功能框图。在图19中,与图10所示的配置相对应的配置用相同的附图标记表示。如图19所示,在第七示例性实施例中,活动装置的程序更新管理器15e具
有这样的配置:通信接收端口阻止单元157被添加到图10所示的活动装置的程序更新管理器15c。同时,更新装置的程序更新管理器25具有与图10所示的配置相同的配置。
[0221]
通信接收端口阻止单元157类似于图16所示的通信接收端口阻止单元。也就是说,当存在来自非更新目标程序调用停止单元152的请求时,通信接收端口阻止单元157立即阻止通信驱动器(例如,图18所示的更新目标程序pb18)的接收端口,使得不会从外部设备(例如,通信伙伴装置40)接收对新的处理的请求。同时,例如,通信接收端口阻止单元157阻止通信驱动器的接收端口,该通信接收端口阻止单元157使用操作系统12的功能来操作接收中断屏蔽。
[0222]
《程序更新方法》
[0223]
图20是描绘根据本公开的第七示例性实施例的程序更新方法的流程图。同时,图20所示的流程图描绘了将由程序更新管理器15e中提供的更新目标程序进行处理减少等待单元155、更新目标程序上下文恢复数据提取单元156和通信接收端口阻止单元157运行的处理。在图5中的步骤s12和步骤s13之间运行图20所示的流程图的处理。
[0224]
当运行图5所示的步骤s12的处理时,暂停非更新目标程序pa11。具体地,非更新目标程序pa11在紧挨在从调用侧更新目标程序pc11调用非更新目标程序pa11之前或者紧挨在从非更新目标程序pa11返回到调用侧更新目标程序pc11之后的定时处暂停。当暂停非更新目标程序pa11时,从非更新目标程序调用停止单元152请求通信接收端口阻止单元157开始处理。然后,通信接收端口阻止单元157立即运行阻止通信驱动器的接收端口的处理,使得通信驱动器(图15所示的更新目标程序pb18)不接收对新的处理的请求(步骤s81)。
[0225]
当完成阻止通信驱动器的接收端口的处理时,运行与图11所示的流程图的处理类似的处理(步骤s51至s55的处理)。同时,在图18的功能块中,其规范被公布的更新目标程序是更新目标程序pb17和pb19(任务之间的通信)。为此,在步骤s52的处理中,更新目标程序进行处理减少等待单元155运行以下处理。
[0226]
即,运行进行设置使得更新目标程序pb17的请求(任务之间的通信)不被传输到非更新目标程序pa11和更新目标程序pb12(中继任务)的处理。并且,运行进行设置使得更新目标程序pb19的请求(任务之间的通信)不被传输到非更新目标程序pa12(中继任务)和更新目标程序pb18(通信驱动器)的处理。
[0227]
当图20所示的流程图的处理结束时,在通信管理单元151中顺序执行将非更新目标程序pa11的上下文ca11传送到过程控制装置20的处理(图5中的步骤s13)和通知工程设施30暂停完成的处理(图5中的步骤s14)。并且,在过程控制装置20中,以与第四示例性实施例类似的方式运行重新开始非更新目标程序pa11(非更新目标程序pa21)的处理。
[0228]
如上所述,在第七示例性实施例中,当在过程控制装置10(活动装置)中基于来自工程设施30的暂停请求暂停不是更新目标的非更新目标程序pa11时,通信接收端口阻止单元157阻止通信驱动器(图18所示的更新目标程序pb18)的接收端口,然后运行与第四示例性实施例类似的处理。从而,即使存在通信伙伴装置40,也可以在短时间内更新更新目标程序同时保证过程控制系统1的继续操作。
[0229]
[过程控制系统的应用示例]
[0230]
图21是描绘根据本公开的示例性实施例的过程控制系统应用于被配置为控制工业过程的系统的示例的框图。如图21所示,过程控制装置10(活动装置)和过程控制装置20
(更新装置)经由网络n1连接到多个现场设备fd。现场设备fd是被配置为测量工厂等的工业过程中的各种状态并控制这些状态的设备。具体地,例如,现场设备fd是诸如流量计、温度计、湿度计和压力计的传感器或诸如阀、泵和致动器的设备。并且,过程控制装置10和20经由网络n2连接到工程设施30。
[0231]
安装在过程控制装置10和20中的非更新目标程序pa11输入有从现场设备fd收集的数据(过程值),并且被配置为执行pid控制和顺序控制、模拟处理等的计算。非更新目标程序pa11被配置为根据计算结果和处理结果操作现场设备fd并使其能够执行到其他控制装置的输出。此时,非更新目标程序pa11可以调用更新目标程序以便使用操作系统12等提供的功能。以这种方式,过程控制装置10和20把握工业过程的状态,并将工业过程的状态控制到期望的状态。
[0232]
在下文中,描述更新过程控制装置的更新目标程序的处理。首先,过程控制装置10作为活动装置操作,并且过程控制装置20作为更新装置备用。此时,过程控制装置10通过现场设备fd控制工业过程。用于过程控制的上下文仅保存在作为活动装置的过程控制装置10中,并且被适当地重写。
[0233]
然后,为了更新更新目标程序,将更新之后的更新目标程序安装(更新)在作为更新装置的过程控制装置20中,并执行必要的测试。在完成安装和测试之后,在适当的定时切换活动装置和更新装置。
[0234]
具体地,工程设施30命令过程控制装置10暂停。过程控制装置10的程序更新管理器15根据来自工程设施30的指令停止非更新目标程序pa11和更新目标程序。此时,程序更新管理器15将非更新目标程序pa11的上下文ca11传送到作为更新装置的过程控制装置20的程序更新管理器25。并且,当需要恢复更新目标程序的上下文时,程序更新管理器15提取恢复数据并将其传送到过程控制装置20的程序更新管理器25。
[0235]
在过程控制装置10停止之后,发生活动装置和更新装置都暂时不操作的时段。该时段的长度在预先设计(预定义)的预定时间内,以便不影响工业过程控制,并且甚至在该时间段内工业过程也继续。
[0236]
程序更新管理器25根据来自工程设施30的指令接收从程序更新管理器15传送的接管数据(上下文ca11,恢复数据)。并且,程序更新管理器25基于接管数据在过程控制装置20中恢复上下文并激活非更新目标程序pa21和更新目标程序。过程控制装置20的非更新目标程序pa21和更新目标程序基于恢复的上下文重新开始控制工业过程的处理。在恢复之后,过程控制装置20用作活动装置。
[0237]
同时,如上所述,程序更新管理器25可以根据来自程序更新管理器15的消息执行相应的操作,而不是根据来自工程设施30的指令接收接管数据并激活非更新目标程序pa21和更新目标程序。在这种情况下,工程设施30不向程序更新管理器25传输请求重新开始的消息。相反,程序更新管理器15也通知程序更新管理器25暂停完成的消息。
[0238]
[过程控制装置]
[0239]
图22是描绘根据本公开另一示例性实施例的过程控制装置的示意性功能配置的功能框图。在图22中,与图1所示的配置相对应的配置用相同的附图标记表示。在第一至第七示例性实施例中,两个过程控制装置10和20用于执行程序的更新和过程控制装置进行操作的转移。相反,在该示例性实施例中,仅利用一个过程控制装置50来执行程序的更新等。
[0240]
如图22所示,示例性实施例的过程控制装置50包括硬件51和管理程序52(程序运行单元)。硬件51包括cpu、存储器、输入/输出设备、通信设备等,如图1所示的硬件11和21,并且被配置为运行要在过程控制装置50中使用的各种程序(包括非更新目标程序和更新目标程序)。
[0241]
管理程序52被配置为虚拟地在硬件51上操作,作为硬件的替代,并且被提供以便分别独立地操作操作系统12、任务13、程序更新管理器15、操作系统22、任务23和程序更新管理器25。也就是说,提供管理程序52以便在一个过程控制装置50中独立地操作在图1所示的过程控制装置10中操作的功能和在过程控制装置20中操作的功能。
[0242]
像这样,示例性实施例与各个示例性实施例的不同之处在于,在过程控制装置10中操作的功能和在过程控制装置20中操作的功能在一个过程控制装置50中独立地操作,并且程序的更新等以与各个示例性实施例类似的方式执行。为此,本文省略其详细描述。
[0243]
如上所述,当使用任何一个示例性实施例时,可以在不中断工业过程的情况下更新在线状态下的过程控制装置的更新目标程序。
[0244]
同时,如上所述,各个示例性实施例中的过程控制装置、工程设施、现场控制站和现场设备中的至少一些的功能可以用计算机实施。在这种情况下,用于实施功能的程序可以记录在计算机可读记录介质中,并且记录在记录介质中的程序可以由计算机系统读取和运行。
[0245]“计算机系统”包括os和诸如外围设备等的硬件。并且,“计算机可读记录介质”是指诸如软盘、磁光盘、rom、cd-rom、dv-rom、usb存储器等的便携式介质或诸如合并在计算机系统中的硬盘的存储装置。此外,“计算机可读记录介质”可以包括被配置为在短时间段内动态保存程序的介质,诸如当程序经由诸如因特网的网络或经由诸如电话线的通信信道传输时使用的通信线路,以及被配置为在预定时间内保存程序的介质,诸如在这种情况下使用的服务器或客户端计算机系统内的易失性存储器。另外,程序可以是用于实施上述功能的一部分的程序、以及能够结合已经记录在计算机系统中的程序实施功能的程序。
[0246]
已经描述了根据本公开的示例性实施例的过程控制系统、过程控制装置和程序更新方法。然而,本公开不限于示例性实施例,并且可以在本公开的范围内任意改变。例如,在能够组合多个示例性实施例的范围内可以组合实施所述多个示例性实施例。
[0247]
例如,在图22所示的过程控制装置50中,代替程序更新管理器15和25的组合,也可以使用以下组合。也就是说,可以使用图6所示的程序更新管理器15a和25的组合、图8所示的程序更新管理器15b和25的组合、以及图10所示的程序更新管理器15c和25a的组合。并且,还可以使用图16所示的程序更新管理器15d和25的组合以及图19所示的程序更新管理器15e和25a的组合。
[0248]
并且,在多个示例性实施例中,已经描述了过程控制系统和过程控制装置的配置。然而,示例性实施例的配置可以应用于任何其他系统。在这种情况下,优选地,与示例性实施例中的非更新目标程序pa11相对应的程序从与示例性实施例中的调用侧更新目标程序pc11(参见图3)相对应的程序以预定时间段被调用,并且执行预定的计算处理。
[0249]
并且,在多个示例性实施例中,操作系统可以是用于控制安装系统的安装os,或者可以是用于控制通用计算机的通用os。并且,在示例性实施例中,在操作系统下管理的处理的运行单元被称为“任务”。然而,即使在用“处理”替换任务的情况下,也可以应用示例性实
施例的配置。

技术特征:
1.一种过程控制系统,包括:第一过程控制装置;以及第二过程控制装置,其中所述第一过程控制装置包括:第一程序运行单元,被配置为运行不是更新目标的非更新目标程序和能够是所述更新目标的更新目标程序;以及第一程序更新管理器,被配置为基于来自外部的暂停请求暂停所述非更新目标程序,以及将所述非更新目标程序的上下文传送到所述第二过程控制装置,其中所述第二过程控制装置包括:第二程序运行单元,被配置为运行不是所述更新目标的所述非更新目标程序和更新之后的更新目标程序;以及第二程序更新管理器,被配置为通过使用从所述第一程序更新管理器传送的所述上下文来恢复所述非更新目标程序的上下文,初始化所述更新目标程序的上下文,以及基于来自所述外部的重新开始请求使所述第二程序运行单元重新开始所述非更新目标程序和所述更新目标程序,以及其中,当确定所述非更新目标程序调用的所述更新目标程序的处理正在进行中时,所述第一程序更新管理器被配置为等待直到所述更新目标程序完成正在进行中的所述处理为止。2.根据权利要求1所述的过程控制系统,其中,当所述更新目标程序是用于启用与其他装置的通信的通信驱动器时,所述第一程序更新管理器被配置为阻止所述更新目标程序的接收端口,使得将不会从所述其他装置接收新的请求。3.一种过程控制装置,包括:程序运行单元,被配置为运行不是更新目标的非更新目标程序和能够是所述更新目标的更新目标程序;第一程序更新管理器,被配置为基于来自外部的暂停请求暂停所述非更新目标程序,以及传送所述非更新目标程序的上下文;以及第二程序更新管理器,被配置为通过使用从所述第一程序更新管理器传送的所述上下文来恢复所述非更新目标程序的上下文,初始化更新之后的所述更新目标程序的上下文,以及基于来自所述外部的重新开始请求使所述程序运行单元重新开始所述非更新目标程序和所述更新之后的所述更新目标程序,其中当确定所述非更新目标程序调用的所述更新目标程序的处理正在进行中时,所述第一程序更新管理器被配置为等待直到所述更新目标程序完成正在进行中的所述处理为止。4.一种过程控制装置中的程序更新方法,在所述过程控制装置中将运行不是更新目标的非更新目标程序和能够是所述更新目标的更新目标程序,所述程序更新方法包括:第一步骤,基于来自外部的暂停请求暂停所述非更新目标程序,以及传送所述非更新目标程序的上下文,以及第二步骤,通过使用在所述第一步骤中传送的所述上下文恢复不是更新目标的所述非更新目标程序的上下文,初始化更新之后的所述更新目标程序的上下文,以及基于来自所述外部的重新开始请求重新开始所述非更新目标程序和所述更新目标程序,其中
当确定所述非更新目标程序调用的所述更新目标程序的处理正在进行中时,所述第一步骤包括等待直到所述更新目标程序完成正在进行中的所述处理为止。5.根据权利要求4所述的程序更新方法,其中,所述第一步骤和所述第二步骤在同一过程控制装置中运行。6.根据权利要求4所述的程序更新方法,其中,所述第一步骤和所述第二步骤在不同的过程控制装置中运行。

技术总结
本发明涉及过程控制系统、过程控制装置和程序更新方法。过程控制系统中的第一过程控制装置运行不是更新目标的非更新目标程序和能够是更新目标的更新目标程序,基于来自外部的暂停请求暂停非更新目标程序,以及将非更新目标程序的上下文传送到第二过程控制装置。过程控制系统中的第二过程控制装置运行不是更新目标的非更新目标程序和更新之后的更新目标程序,通过使用传送的上下文来恢复非更新目标程序的上下文,初始化更新目标程序的上下文,以及基于来自外部的重新开始请求使第二程序运行单元重新开始非更新目标程序和更新目标程序。程序。程序。


技术研发人员:大野毅 村上威
受保护的技术使用者:横河电机株式会社
技术研发日:2019.09.26
技术公布日:2023/7/7
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐