CN106970806B - 用于对正在控制工业过程的控制程序进行更新的系统 - Google Patents
用于对正在控制工业过程的控制程序进行更新的系统 Download PDFInfo
- Publication number
- CN106970806B CN106970806B CN201610878434.0A CN201610878434A CN106970806B CN 106970806 B CN106970806 B CN 106970806B CN 201610878434 A CN201610878434 A CN 201610878434A CN 106970806 B CN106970806 B CN 106970806B
- Authority
- CN
- China
- Prior art keywords
- machine
- readable
- control program
- program
- readable 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0426—Programming the control sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/054—Input/output
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/056—Programming the PLC
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23333—Modify program and store it
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Automation & Control Theory (AREA)
- Stored Programmes (AREA)
Abstract
公开了一种用于对正在控制工业过程的控制程序进行更新的系统。发明人已经意识到,通过以下操作,工业控制器可以在它们被部署在场地中之后来更新,同时控制工业过程并且没有昂贵的停机时间:将替换机器可读部件存储在分配的程序空间中;定位被复制在分配的程序空间中的一个或更多个相关机器可读部件并且将其修改成替代地与替换机器可读部件相关;重新链接分配的程序空间中的控制程序的复本;以及将执行重定向至分配的程序空间中的控制程序。替换机器可读部件可以是指令、库或控制程序的子例程,并且不限于用户逻辑。分配的程序空间中的控制程序可以通过以下操作被最佳地测试:在将执行重定向至分配的程序空间中的控制程序之前验证操作。
Description
技术领域
本发明涉及工业控制器领域,并且更具体地涉及用于对正在控制工业过程的控制程序进行更新的系统和方法。
背景技术
工业控制器是用于控制例如工厂环境中的工业过程或机器的专用计算机系统。一般地,工业控制器执行存储的控制程序,该存储的控制程序从与受控过程或机器相关联并且感测过程或机器的条件的各种传感器读取输入,并且该工业控制器基于那些输入和存储的控制程序来计算用于对控制过程或机器的致动器进行控制的输出集合。来自威斯康星州密尔沃基市的洛克威尔自动化(Rockwell Automation)公司的Logix5000控制器是这样的工业控制器的示例。
工业控制器在多个方面与常规计算机不同。在物理上,它们被构造成与常规计算机相比,基本上对冲击和损害鲁棒性更好并且更好地抵抗外部污染物和极端环境条件。处理器和操作系统被优化用于实时控制并且以被设计成允许快速地开发控制程序的语言来编程,该控制程序被定制成不断地改变机器控制或过程控制应用的集合。
一般地,工业控制器具有高度模块化架构,例如,使得能够使用不同数目和类型的输入模块和输出模块将控制器连接至要控制的过程或机器。通过使用适于高度可靠且可用的实时通信的专用“控制网络”来便于该模块化。这样的控制网络(例如,以太网(EtherNet)/IP、设备网(DeviceNet)和控制网(ControlNet))与标准通信网络(例如以太网)的不同在于:通过对网络的通信容量进行预调度来确保最大通信延迟;和/或针对高可用性来提供冗余通信能力。
作为其增强的模块化的一部分,工业控制器可以采用专用于特定类型的电信号和功能(例如检测输入AC或DC信号或者控制输出AC或DC信号)的I/O模块或设备。这些I/O模块或设备中的每一个可以具有连接器系统,该连接器系统使得这些I/O模块或设备能够以不同组合与所选择的其他I/O模块或设备一起被安装在壳体或机架中,以匹配特定应用的需求。多个或单独的I/O模块或设备可以被定位在靠近受控过程或机器的便利控制点处以经由控制网络与中央工业控制器通信。
在工业控制器被部署在场地中并且进行操作以控制工业过程或机器之后,随后更新工业控制器可能是困难的。更新可以由厂家推荐或要求以解决任意数目的问题,例如校正具有首次在场地中被通知的异常的指令或库,或者扩展指令或库以提供如随后在场地中确定的更强的功能性。安装这样的更新通常需要更新(或刷新)工业控制器的固件,并且更新固件通常需要工业控制器的暂时停机时间。
然而,中断对工业过程的控制通常是昂贵的因而是不期望的。例如,如果工业控制器正在控制生产物品的装配线,每隔一分钟工业控制器被停机,则装配线可能损失可计量的数目的物品的生产。因此,操作工业控制器的实体通常必须决定工业控制器更新的益处是否比成本更有价值,并且如果是,则决定用于以对成本的最小影响来更新工业控制器的最优日期/时间。
在一些实例中,可以在线更新工业控制器的用户逻辑,例如在线编辑(OnlineEditing)或在线部分导入(Partial Import Online)。然而,利用这样的工具的在线更新通常仅被限制于由用户所创建的逻辑。
所需要的是以下机制:通过该机制,工业控制器可以在它们被部署在场地中之后被便利地更新,而不需要昂贵的停机时间和/或被限制于用户逻辑。
发明内容
发明人已经意识到,通过以下操作,工业控制器可以在它们被部署在场地中之后来更新,同时控制工业过程并且没有昂贵的停机时间:将替换机器可读部件存储在分配的程序空间中;定位被复制在分配的程序空间中的一个或更多个相关机器可读部件并且将其修改成替代地与替换机器可读部件相关;重新链接分配的程序空间中的控制程序的复本;以及将执行重定向至分配的程序空间中的控制程序。替换机器可读部件可以为指令、库或控制程序的子例程,并且不限于用户逻辑。分配的程序空间中的控制程序可以通过以下操作被最佳地测试:在将执行重定向至分配的程序空间中的控制程序之前验证操作。
本发明的方面提供了用于在控制器运转(例如,控制生产线)的同时在版本之间更新工业控制器如Logix控制器的手段。能够被更新的范围包括被实现为(1)可加载库和(2)内联代码(inline code)的任何控制器行为(包括指令)。之后可以进行不同的部件打补丁(patching)过程,例如库打补丁和内联打补丁。
在一个方面中,库打补丁过程可以包括:(1)下载库;(2)找到与被替换的库相关的任何库;(3)下载库相关项;(4)下载用户逻辑;(5)测试补丁以确保其按期望来工作;(6)接受该补丁;以及(7)使该补丁为永久的。
在另一个方面中,内联打补丁过程可以包括:(1)改变系统部件(即,安装补丁);(2)找到与被改变的系统部件相关的任何用户逻辑部件;(3)将期望部件(所有期望部件或选择的期望部件)标记为脏(dirty);(4)对脏部件进行重建;(5)下载用户逻辑;(6)测试补丁以确保其按期望来工作;(7)接受补丁;以及(8)使该补丁为永久的。
因此,提供了用于向工业控制器提供在线更新的机制。可以在无需中断以刷新固件的(以及所导致的工业过程的停机时间)的情况下更新工业控制器。更新可以在特定目标区域中例如经由附加指令(Add-On Instructions,“AOI”)或者贯穿所有的用户逻辑来改变行为如何工作。可以立即执行或者在随后的下载时执行更新。可以对较窄的一部分的行为进行更新,并且实体无需在在线的同时对工业控制器的固件全部进行升级。此外,如本文所描述的,在能够修改小块的代码方面存在较少的风险和中断。
然后,具体地,本发明的一个方面提供了一种工业控制系统,该工业控制系统包括工业控制器,该工业控制器执行正在控制工业过程的控制程序。工业控制器可以执行以:(a)将第一机器可读部件存储在分配的程序空间中,第一机器可读部件被存储以替换支持控制程序的第二机器可读部件;(b)定位与第二机器可读部件具有数据相关性的相关机器可读部件,并且将该相关机器可读部件复制到分配的程序空间;(c)修改分配的程序空间中的相关机器可读部件,以将与第二机器可读部件的数据相关性改变成与第一机器可读部件的数据相关性;(d)将控制程序复制到分配的程序空间,并且将分配的程序空间中的控制程序与分配的程序空间中的第一机器可读部件和相关机器可读部件链接;(e)执行分配的程序空间中的控制程序以验证操作;以及(f)在成功地验证操作之后,并且在控制程序正在控制工业过程的同时,将控制程序的执行重定向至分配的程序空间中的控制程序的执行。
第一机器可读部件和第二机器可读部件可以是包括能够操作成由控制程序使用的非易失性资源的第一库和第二库。替选地,第一机器可读部件和第二机器可读部件可以是能够操作成由控制程序使用的第一指令和第二指令,并且第一指令和第二指令可以是针对工业过程所定制的附加指令。替选地,第一机器可读部件和第二机器可读部件可以是控制程序的第一子例程和第二子例程(用户逻辑的一部分)。
相关机器可读部件可以是能够操作成由控制程序使用的指令或者可以是包括能够操作成由控制程序使用的非易失性资源的库。工业控制器还可以执行以:定位多个相关机器可读部件,多个相关机器可读部件中的每个相关机器可读部件与第二机器可读部件具有数据相关性;以及将多个相关机器可读部件复制到分配的程序空间中。
本发明的另一方面可以提供一种用于对执行正在控制工业过程的控制程序的工业控制系统进行更新的方法。该方法可以包括:(a)将第一机器可读部件存储在分配的程序空间中,第一机器可读部件被存储以替换第二机器可读部件;(b)定位与第二机器可读部件具有数据相关性的相关机器可读部件,并且将相关机器可读部件复制到分配的程序空间;(c)修改分配的程序空间中的相关机器可读部件,以将与第二机器可读部件的数据相关性改变成与第一机器可读部件的数据相关性;(d)将控制程序复制到分配的程序空间,并且将分配的程序空间中的控制程序与分配的程序空间中的第一机器可读部件和相关机器可读部件链接;(e)执行分配的程序空间中的控制程序以验证操作;以及(f)在成功地验证操作之后,并且在控制程序正在控制工业过程的同时,将控制程序的执行重定向至分配的程序空间中的控制程序的执行。
根据以下详细描述和附图,本发明的这些以及其他的特征和优点对于本领域技术人员而言将变得明显。然而,应当理解的是,详细描述和特定示例尽管指示本发明的优选实施方式,但是作为示例给出而非限制。可以在不背离本发明的精神的前提下在本发明的范围内做出许多改变和修改,并且本发明包括所有这样的修改。
附图说明
在附图中示出了本发明的优选示例性实施方式,其中,相似的附图标记表示贯穿本文的相似部件,并且在附图中:
图1是根据本发明的实施方式的工业控制系统的简化图;
图2是在图1的工业控制系统中的计算机可读介质中提供的示例性机器可读结构的简化图;
图3A是示出根据本发明的实施方式的修改分配的程序空间中的指令以将数据相关性改变成与替换库相关的简化图;
图3B是示出根据本发明的实施方式的修改分配的程序空间中的附加指令以将数据相关性改变成与替换指令相关的简化图;
图3C是示出根据本发明的实施方式的修改分配的程序空间中的控制程序的子例程以将数据相关性改变成与替换附加指令相关的简化图;
图3D是示出根据本发明的实施方式的修改分配的程序空间中的控制程序的子例程以将数据相关性改变成与控制程序的替换子例程相关的简化图;
图4是示出根据本发明的实施方式的将控制程序的执行重定向至分配的程序空间中的控制程序的执行的简化图;以及
图5是示出用于对执行正在控制工业过程的控制程序的工业控制系统进行更新的方法的简化流程图。
具体实施方式
现在参照图1,提供了根据本发明的实施方式的工业控制系统10的简化图。工业控制系统10包括工业控制器12,工业控制器12执行正在控制工业过程14的控制程序。工业控制器12可以经由控制网络18与多个工业控制模块16(标识为模块“0”至模块“n”)通信。控制网络18可以通过以下操作适于高度可靠且可用的实时通信:通过预调度网络的通信容量来确保最大通信延迟;和/或针对高可用性来提供冗余通信能力。控制网络18可以例如为EtherNet/IP、DeviceNet或ControlNet网络。
模块16可以为专用于特定类型的电信号和功能(例如,检测输入AC或DC信号或控制工业过程14的输出AC或DC信号)的输入和/或输出模块或设备。模块16中的每个模块可以具有例如连接器系统,该连接器系统使得模块16能够以不同组合与选择的其他I/O模块或设备一起被安装在壳体或机架中,以匹配特定应用的需求。模块16可以被定位在靠近工业过程14的便利控制点处以经由控制网络18与工业控制器12通信。
工业控制器12还可以与各种操作者控制设备例如人机接口(“HMI”)20和/或工作站22通信。这样的操作者控制设备可以经由如所示的第二网络24(该网络还可以为控制网络,或者更通常地为标准通信网络如以太网)连接至工业控制器12。替选地,这样的操作者控制设备可以经由控制网络18连接至工业控制器12。HMI 20可以提供触摸屏显示器、键盘、鼠标等以提供人机交互以及对工业控制器12的控制。工作站22可以提供用于设计和配置由工业控制器12执行的软件的计算机设计环境,该软件包括控制程序和替换机器可读部件。
工业控制器12可以包括用于经由控制网络18与模块16通信的第一网络接口30以及用于经由第二网络24与HMI 20和/或工作站22通信的第二网络接口32。工业控制器12的芯片组34可以分别与工业控制器12的第一网络接口30和第二网络接口32以及固件36和一个或更多个处理器38进行通信。固件36可以将软件存储在非易失性存储器如闪速存储器中,以提供关于工业控制器12的控制、监视和/或数据操纵。
处理器38还可以直接地或间接地(如经由芯片组34)与连接至处理器38的计算机可读介质40通信。计算机可读介质40可以例如为用于保持机器可读代码的随机存取存储器(RAM)、闪速存储器、磁性介质和/或光学介质。如下面将描述的,计算机可读介质40包括用于存储机器可读程序和数据结构的区域,例如:第一存储区域42,其用于保持用户逻辑44(例如正在控制工业过程14的控制程序)、用于保持能够操作成由控制程序使用的内联框架的指令46和/或用于保持包括能够操作成由控制程序使用的非易失性资源的可加载库的库48;第二存储区域50,其用于保持独立运行时间库和/或定义核行为的应用程序接口(“API”)52以及操作系统(“OS”)54;以及分配的程序空间60,其包括用于保持复制的用户逻辑62(例如正在控制工业过程14的复制的控制程序或其一部分)、复制的指令64和/或复制的库66。
工业控制器12可以执行正在控制工业过程14的用户逻辑44中的控制程序。为了提供对工业控制器12的行为更新,例如为了校正具有在场地中发现的异常的指令或库,或者为了扩展指令或库以提供如在场地中确定的更强的功能性,替换机器可读部件68可以由工业控制器12接收并且存储在分配的程序空间60中。替换机器可读部件68可以被设计成替换支持用户逻辑44中的控制程序的较早版本的机器可读部件。替换机器可读部件68可以由HMI 20提供,或者更通常地,由设计环境中的工作站22提供,并且可以为指令、库或控制程序的子例程。
工业控制器12然后可以定位与较早版本的机器可读部件具有数据相关性的相关机器可读部件,例如来自指令46的指令或来自库48的库。工业控制器12然后可以将相关机器可读部件复制到分配的程序空间60(例如,根据需要,复制到复制的指令64或复制的库66)。工业控制器12然后可以修改分配的程序空间60中的相关机器可读部件,以将与较早版本的机器可读部件的数据相关性改变成与替换机器可读部件68的数据相关性。
工业控制器12然后可以将用户逻辑44中的控制程序(或其一部分)与任何其他基本部件一起复制到分配的程序空间60(例如,复制到复制的用户逻辑62)。工业控制器12然后将包括分配的程序空间60中的控制程序的复制的用户逻辑62与分配的程序空间60中的替换机器可读部件68和相关机器可读部件链接。替换机器可读部件68又与其相关的机器可读部件如其他部件一样可以在链接过程中被解析,在链接过程中,链接器可以定位已存在的部件中的未解析的参考。工业控制器12然后可以执行包括分配的程序空间60中的控制程序的复制的用户逻辑62,以验证操作。在成功验证该操作之后,并且在用户逻辑44中的控制程序正在控制工业过程14的同时,工业控制器12可以将用户逻辑44中的控制程序的执行重定向至在分配的程序空间60中的复制的用户逻辑62中的控制程序的执行。
现在参照图2,提供了在工业控制系统10的计算机可读介质40中提供的示例性机器可读结构的简化图。通过示例,在第一存储区域42中,用户逻辑44可以包括控制程序70,控制程序70可以由包括多个子例程72(标识为“R1”、“R2”、“R3”和“R4”)的机器可读软件程序(标识为“程序1”)组成。用户逻辑44还可以包括附加指令74(标识为“AOI1”)。
附加指令为可以针对特定工业过程例如工业过程14来设计和创建的定制指令。可选“扫描模式”例程可以配置有用于进一步定义其行为的附加指令。例如,附加指令可以包括:真(“T”)扫描模式,其使得指令由于真的梯级条件或“启动(EnableIn)”参数被设置而被扫描;假(“F”)扫描模式,其使得指令由于假的梯级条件或“启动(EnableIn)”参数未被设置而被扫描;预扫描(“Pr”)扫描模式,其可以在控制器在“运行(Run)”模式下上电或者从“编程(Program)”转换到“运行”时发生;和/或后扫描(“Po”)扫描模式,其可以由于在“顺序功能图”(“SFC”)例程中的“动作(Action)”变得不活动而发生。针对更多的关于附加指令的信息,参考出版号为1756-PM010F-EN-P,2014年10月,洛克威尔自动化公司,Allen-Bradley,“Logix5000 Controllers Add On Instructions”编程手册,该文档的全部内容通过引用合并到本文中。
还在第一存储区域42中,指令46可以包括作为内联框架的一部分的多个内联指令76,例如标识为“i.1”、“i.2”、“i.3”、“i.4”和“i.5”的指令。还在第一存储区域42中,库48可以包括多个可加载库78,例如标识为“iLib_a”和“iLib_b”的可加载库。
在第二存储区域50中,独立运行时间库和/或API 52可以包括:多个独立运行时间库80,例如标识为“Lib 1”和“Lib 2”的独立运行时间库;以及定义了核行为的平台特定API82,例如“Logix API”。
在计算机可读介质40中,某些数据相关性将存在于各种机器可读部件之间。如本文所使用的,在机器可读部件相关于(或参考)另外的机器可读部件以进行操作时,发生数据相关性或数据绑定。具有数据相关性的机器可读部件被称为“相关机器可读部件”。指令(包括附加指令74和内联指令76)、库(包括可加载库78和运行时间库80)以及子例程(包括子例程72)均潜在地可以为与其他机器可读部件具有数据相关性的相关机器可读部件。
在图2中通过示例示出了各种数据相关性。例如:“iLib_b”是关于“i.5”的相关机器可读部件;“Lib 1”是关于“iLib_a”的相关机器可读部件;“i.4”和“i.5”是关于“AOI 1”的相关机器可读部件;“i.2”是关于“R3”的相关机器可读部件;等等。
现在参照图3A至图3D,提供了根据本发明的实施方式的修改分配的程序空间60中的相关机器可读部件以将与较早版本的机器可读部件的数据相关性替代地改变成与替换机器可读部件的数据相关性的各种示例。在图3A中,替换机器可读部件iLib_b′(库)存储在分配的程序空间60中。存储替换机器可读部件iLib_b′以替换支持控制程序70的较早版本的机器可读部件iLib_b。工业控制器12执行以定位与较早版本的机器可读部件iLib_b具有数据相关性的相关机器可读部件。因此,工业控制器12定位相关机器可读部件i.5(与较早版本的机器可读部件iLib_b具有数据相关性的指令),并且进一步将i.5复制到分配的程序空间60中。工业控制器12然后执行以修改相关机器可读部件i.5,以将与较早版本的机器可读部件iLib_b的数据相关性改变成与替换机器可读部件iLib_b′的数据相关性。工业控制器12然后将包括控制程序70(或其一部分)的用户逻辑44复制到分配的程序空间60(包括控制程序70′的复制的用户逻辑62),并且将分配的程序空间60中的复制的用户逻辑62和控制程序70′与替换机器可读部件iLib_b′和修改的相关机器可读部件i.5链接。工业控制器12然后执行分配的程序空间60中的用户逻辑62的控制程序以验证操作。在成功验证该操作之后,并且在控制程序70正在控制工业过程14的同时,工业控制器12然后将控制程序70的执行重定向至分配的程序空间60中的包括控制程序70′的用户逻辑62的执行。
图3B至图3D示出了与以上关于图3A所描述的那些示例类似的其他示例。在图3B中,替换机器可读部件i.5′(指令)存储在分配的程序空间60中。工业控制器12类似地执行以:定位相关机器可读部件AOI 1(与较早版本的机器可读部件i.5具有数据相关性的附加指令);将AOI 1复制到分配的程序空间60;修改AOI 1的数据相关性;将包括控制程序70(或其一部分)的用户逻辑44复制到分配的程序空间60(包括控制程序70′的复制的用户逻辑62);将用户逻辑62和控制程序70′与替换机器可读部件i.5′和修改的相关机器可读部件AOI 1链接;验证操作;以及在成功验证该操作之后,并且在控制程序70正在控制工业过程14的同时,将控制程序70的执行重定向至包括控制程序70′的用户逻辑62的执行。
在图3C中,替换机器可读部件AOI 1′(附加指令)存储在分配的程序空间60中。工业控制器12类似地执行以:定位相关机器可读部件R2和R4(与较早版本的机器可读部件AOI1具有数据相关性的子例程);将R2和R4复制到分配的程序空间60;修改R2和R4的数据相关性;将包括控制程序70(或其一部分)的用户逻辑44复制到分配的程序空间60(包括控制程序70′的复制的用户逻辑62);将用户逻辑62和控制程序70′与替换机器可读部件AOI 1′和修改的相关机器可读部件R2和R4链接;验证操作;以及在成功验证操作之后,并且在控制程序70正在控制工业过程14的同时,将控制程序70的执行重定向至包括控制程序70′的用户逻辑62的执行。
在图3D中,替换机器可读部件R4′(子例程)存储在分配的程序空间60中。工业控制器12类似地执行以:定位相关机器可读部件R2(与较早版本的机器可读部件R4具有数据相关性的子例程);将R2复制到分配的程序空间60;修改R2的数据相关性;将包括控制程序70(或其一部分)的用户逻辑44复制到分配的程序空间60(包括控制程序70′的复制的用户逻辑62);将用户逻辑62和控制程序70′与替换机器可读部件R4′和修改的相关机器可读部件R2链接;验证操作;以及在成功验证操作之后,并且在控制程序70正在控制工业过程14的同时,将控制程序70的执行重定向至包括控制程序70′的用户逻辑62的执行。
现在参照图4,提供了示出根据本发明的实施方式的将控制程序70的执行重定向至分配的程序空间60中的控制程序70′的执行的简化图。在存储替换机器可读部件,定位、复制和修改相关机器可读部件,以及复制、链接和验证控制程序70′时,工业控制器12准备好将执行从控制程序70重定向至分配的程序空间60中的复制的控制程序70′。因此,在工业控制器12执行标识有地址偏移“[A]”的第一存储区域42中的控制程序70时,工业控制器12可以调度标识有地址偏移“[B]”的分配的程序空间60中的控制程序70′的代码序列中的下一指令。例如,在控制程序70的指令号“0025”之后,并非继续控制程序70的下一指令号“0026”,而是工业控制器12根据调度将执行重定向至控制程序70′的指令号“0026”。
现在参照图5,提供了示出根据本发明的实施方式的用于对执行正在控制工业过程的控制程序的工业控制系统进行更新的方法的简化流程图100。在步骤102中,工业控制器接收一个或更多个替换(第一)机器可读部件并且将其存储在分配的程序空间中。替换(第一)机器可读部件被存储用于替换相应的较早版本的(第二)机器可读部件。
接下来,在步骤104中,工业控制器定位与较早版本的(第二)机器可读部件具有数据相关性的相关机器可读部件。然后,在步骤106中,工业控制器将相关机器可读部件复制到分配的程序空间,并且修改分配的程序空间中的相关机器可读部件,以将与较早版本的(第二)机器可读部件的数据相关性改变成与替换(第一)机器可读部件的数据相关性。
接下来,在步骤108中,工业控制器将包括控制程序(或其一部分)和/或可能需要的附加指令的用户逻辑复制到分配的程序空间,并且将分配的程序空间中的控制程序(或其一部分)与分配的程序空间中的替换(第一)机器可读部件和修改的相关机器可读部件链接。替换机器可读部件68又与其相关的机器可读部件如其他部件一样可以在链接过程中被解析,在链接过程中,链接器可以对已存在的部件中的未解析的参考进行定位。
接下来,在步骤110中,工业控制器执行分配的程序空间中的控制程序以验证操作。这可以为仿真任务,例如仿真一个或更多个输入并且验证一个或更多个输出如所期望的那样。替选地,这可以为实际任务,例如与工业过程14或另外的过程交互并且验证一个或更多个输出如所期望的那样。
接下来,在判定步骤112中,在成功地验证操作之后,并且在控制程序正在控制工业过程的同时,在步骤114中,工业控制器将控制程序的执行重定向至分配的程序空间中的控制程序的执行。然而,如果工业控制器不能成功地验证操作,或者如果工业控制器被命令中止,则工业控制器可以替代地继续执行控制程序,而不考虑分配的程序空间中的控制程序。换言之,工业控制器可以保持其当前执行并且取消或中止更新。
某些术语在本文中仅出于参考目的来使用,因此并非意在限制。例如,术语如“上方(upper)”、“下方(lower)”、“以上(above)”和“以下(below)”指代所参考的附图中的方向。术语如“前(front)”、“后(back)”、“背后(rear)”、“底部(bottom)”、“侧(side)”、“左(left)”和“右(right)”描述了通过参考描述当前讨论的部件的文本和相关附图而清楚的、一致但任意的参考系内的部件的各部分的方位。这样的术语可以包括以上具体提及的词语、其衍生词语以及类似引入的词汇。类似地,术语“第一”、“第二”和其他这样的引用结构的数值术语不隐含顺序或次序,除非上下文清楚地指示。
当介绍本公开内容和示例性实施方式的元件或特征时,冠词“一(a)”、“一个(an)”、“该(the)”和“所述(said)”意指存在一个或更多个这样的元件或特征。术语“包括(comprising)”、“包含(including)”和“具有(having)”意在为包括性的并且意指可能存在除具体指出的这些元件或特征以外的另外的元件或特征。还要理解的是,本文所描述的方法、步骤、过程和操作不应当解释为必须要求它们按照所讨论或示出的特定次序来执行,除非所述特定次序被具体标识为执行的次序。还要理解的是,可以采用另外的或替选的步骤。
对“微处理器”和“处理器”或“该微处理器”和“该处理器”的引用可以被理解为包括能够在独立的环境和/或分布式环境中进行通信的一个或更多个微处理器,因此能够被配置成经由有线或无线通信与其它处理器通信,其中,这样的一个或更多个处理器能够被配置成对一个或更多个处理器控制装置进行操作,其中处理器控制装置可以是类似的或不同的装置。此外,除非另有指定,否则对存储器的引用可以包括一个或更多个处理器可读且可访问的存储器元件和/或部件,其中,这些存储器元件和/或部件可以在处理器控制装置的内部、在处理器控制装置的外部和/或可以经由有线或无线网络来访问。
特别指出,本发明不应当被限制于本文中所包含的实施方式和说明,并且权利要求应该被理解为包括落入所附权利要求的范围内的那些实施方式的修改形式,所述实施方式的修改形式包括所述实施方式的各部分以及不同的实施方式的元素的组合。本文中所描述的包括专利公开和非专利公开的所有公开的全部内容通过引用被合并到本文中。
Claims (20)
1.一种工业控制系统,包括:
工业控制器,所述工业控制器执行正在控制工业过程的控制程序,所述工业控制器执行以:
(a)将第一机器可读部件存储在分配的程序空间中,所述第一机器可读部件被存储以替换支持所述控制程序的第二机器可读部件;
(b)定位与所述第二机器可读部件具有数据相关性的相关机器可读部件,并且将所述相关机器可读部件复制到所述分配的程序空间;
(c)修改所述分配的程序空间中的所述相关机器可读部件,以将与所述第二机器可读部件的数据相关性改变成与所述第一机器可读部件的数据相关性;
(d)将所述控制程序复制到所述分配的程序空间,并且将所述分配的程序空间中的控制程序与所述分配的程序空间中的所述第一机器可读部件和所述相关机器可读部件链接;
(e)执行所述分配的程序空间中的控制程序以验证操作;以及
(f)在成功地验证所述操作之后,并且在所述控制程序正在控制所述工业过程的同时,将所述控制程序的执行重定向至所述分配的程序空间中的控制程序的执行。
2.根据权利要求1所述的工业控制系统,其中,所述第一机器可读部件和所述第二机器可读部件是包括能够操作成由所述控制程序使用的非易失性资源的第一库和第二库。
3.根据权利要求2所述的工业控制系统,其中,所述相关机器可读部件是能够操作成由所述控制程序使用的指令。
4.根据权利要求1所述的工业控制系统,其中,所述第一机器可读部件和所述第二机器可读部件是能够操作成由所述控制程序使用的第一指令和第二指令。
5.根据权利要求4所述的工业控制系统,其中,所述第一指令和所述第二指令是针对所述工业过程所定制的附加指令。
6.根据权利要求4所述的工业控制系统,其中,所述相关机器可读部件是能够操作成由所述控制程序使用的第三指令。
7.根据权利要求4所述的工业控制系统,其中,所述相关机器可读部件是所述控制程序的子例程。
8.根据权利要求1所述的工业控制系统,其中,所述第一机器可读部件和所述第二机器可读部件是所述控制程序的第一子例程和第二子例程。
9.根据权利要求8所述的工业控制系统,其中,所述相关机器可读部件是所述控制程序的第三子例程。
10.根据权利要求1所述的工业控制系统,其中,所述工业控制器执行以:定位多个相关机器可读部件,所述多个相关机器可读部件中的每个相关机器可读部件与所述第二机器可读部件均具有数据相关性;以及将所述多个相关机器可读部件复制到所述分配的程序空间。
11.根据权利要求1所述的工业控制系统,其中,所述工业控制系统包括与所述控制程序通信的固件,并且所述工业控制器执行以:在不修改所述固件的情况下用所述第一机器可读部件替换所述第二机器可读部件。
12.一种用于对工业控制系统进行更新的方法,所述工业控制系统执行正在控制工业过程的控制程序,所述方法包括:
(a)将第一机器可读部件存储在分配的程序空间中,所述第一机器可读部件被存储用于替换第二机器可读部件;
(b)定位与所述第二机器可读部件具有数据相关性的相关机器可读部件,并且将所述相关机器可读部件复制到所述分配的程序空间;
(c)修改所述分配的程序空间中的所述相关机器可读部件,以将与所述第二机器可读部件的数据相关性改变成与所述第一机器可读部件的数据相关性;
(d)将所述控制程序复制到所述分配的程序空间,并且将所述分配的程序空间中的控制程序与所述分配的程序空间中的所述第一机器可读部件和所述相关机器可读部件链接;
(e)执行所述分配的程序空间中的控制程序以验证操作;以及
(f)在成功地验证所述操作之后,并且在所述控制程序正在控制所述工业过程的同时,将所述控制程序的执行重定向至所述分配的程序空间中的控制程序的执行。
13.根据权利要求12所述的方法,其中,所述第一机器可读部件和所述第二机器可读部件是包括能够操作成由所述控制程序使用的非易失性资源的第一库和第二库。
14.根据权利要求13所述的方法,其中,所述相关机器部件是能够操作成由所述控制程序使用的指令。
15.根据权利要求12所述的方法,其中,所述第一机器可读部件和所述第二机器可读部件是能够操作成由所述控制程序使用的第一指令和第二指令。
16.根据权利要求15所述的方法,其中,所述相关机器可读部件是能够操作成由所述控制程序使用的第三指令。
17.根据权利要求15所述的方法,其中,所述相关机器可读部件是所述控制程序的子例程。
18.根据权利要求12所述的方法,其中,所述第一机器可读部件和所述第二机器可读部件是所述控制程序的第一子例程和第二子例程。
19.根据权利要求12所述的方法,其中,步骤(b)还包括:定位多个相关机器可读部件,所述多个相关机器可读部件中的每个相关机器可读部件均与所述第二机器可读部件具有数据相关性;以及将所述多个相关机器可读部件复制到所述分配的程序空间。
20.根据权利要求12所述的方法,其中,所述工业控制系统包括与所述控制程序通信的固件,并且所述方法还包括:在不修改所述固件的情况下用所述第一机器可读部件来更新所述工业控制系统。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/873,386 | 2015-10-02 | ||
US14/873,386 US9921563B2 (en) | 2015-10-02 | 2015-10-02 | System for updating a control program actively controlling an industrial process |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106970806A CN106970806A (zh) | 2017-07-21 |
CN106970806B true CN106970806B (zh) | 2020-04-21 |
Family
ID=57083184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610878434.0A Active CN106970806B (zh) | 2015-10-02 | 2016-10-08 | 用于对正在控制工业过程的控制程序进行更新的系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9921563B2 (zh) |
EP (1) | EP3151071B1 (zh) |
CN (1) | CN106970806B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6812727B2 (ja) * | 2016-09-30 | 2021-01-13 | オムロン株式会社 | 安全制御ユニット、安全制御方法、安全制御プログラム |
JP6812726B2 (ja) * | 2016-09-30 | 2021-01-13 | オムロン株式会社 | 制御ユニット、データリフレッシュ方法、データリフレッシュプログラム |
EP3547122B1 (en) * | 2018-03-27 | 2023-06-07 | CODESYS Holding GmbH | A method and system for replacing a software component of a runtime system |
US11327472B2 (en) * | 2018-07-27 | 2022-05-10 | Rockwell Automation Technologies, Inc. | System and method of connection management during synchronization of high availability industrial control systems |
US11927950B2 (en) | 2018-07-27 | 2024-03-12 | Rockwell Automation Technologies, Inc. | System and method of communicating safety data over high availability industrial control systems |
US11442740B2 (en) * | 2020-09-29 | 2022-09-13 | Rockwell Automation Technologies, Inc. | Supporting instruction set architecture components across releases |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101154187A (zh) * | 2006-09-29 | 2008-04-02 | 英特尔公司 | 用于为程序打补丁的方法、产品、服务处理器和系统 |
EP2177986A1 (en) * | 2008-09-30 | 2010-04-21 | ICS Triplex ISaGRAF Inc. | Application builder for industrial automation |
CN101984409A (zh) * | 2010-11-10 | 2011-03-09 | 南京南瑞继保电气有限公司 | 一种用于Linux系统测试代码注入的方法 |
JP2011180956A (ja) * | 2010-03-03 | 2011-09-15 | Seiko Epson Corp | プログラム管理システムおよびプログラム管理方法 |
CN104239103A (zh) * | 2014-09-17 | 2014-12-24 | 北京优特捷信息技术有限公司 | 一种软件更新方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5581697A (en) | 1994-01-28 | 1996-12-03 | Sun Microsystems, Inc. | Method and apparatus for run-time error checking using dynamic patching |
US7457671B2 (en) * | 2004-09-30 | 2008-11-25 | Rockwell Automation Technologies, Inc. | Systems and methods that facilitate management of add-on instruction generation, selection, and/or monitoring during execution |
US7797060B2 (en) * | 2007-02-27 | 2010-09-14 | Rockwell Automation Technologies, Inc. | Prioritization associated with controller engine instances |
US7996093B2 (en) * | 2008-01-24 | 2011-08-09 | Rockwell Automation Technologies, Inc. | Automatic controller relationship resolution |
US20100082133A1 (en) * | 2008-09-30 | 2010-04-01 | Ics Triplex Isagraf Inc. | Application builder for industrial automation |
US9958848B2 (en) | 2015-02-19 | 2018-05-01 | Rockwell Automation Technologies, Inc. | Techniques for improving industrial control systems |
-
2015
- 2015-10-02 US US14/873,386 patent/US9921563B2/en active Active
-
2016
- 2016-10-04 EP EP16192240.6A patent/EP3151071B1/en active Active
- 2016-10-08 CN CN201610878434.0A patent/CN106970806B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101154187A (zh) * | 2006-09-29 | 2008-04-02 | 英特尔公司 | 用于为程序打补丁的方法、产品、服务处理器和系统 |
EP2177986A1 (en) * | 2008-09-30 | 2010-04-21 | ICS Triplex ISaGRAF Inc. | Application builder for industrial automation |
JP2011180956A (ja) * | 2010-03-03 | 2011-09-15 | Seiko Epson Corp | プログラム管理システムおよびプログラム管理方法 |
CN101984409A (zh) * | 2010-11-10 | 2011-03-09 | 南京南瑞继保电气有限公司 | 一种用于Linux系统测试代码注入的方法 |
CN104239103A (zh) * | 2014-09-17 | 2014-12-24 | 北京优特捷信息技术有限公司 | 一种软件更新方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20170097624A1 (en) | 2017-04-06 |
EP3151071B1 (en) | 2019-07-17 |
EP3151071A1 (en) | 2017-04-05 |
CN106970806A (zh) | 2017-07-21 |
US9921563B2 (en) | 2018-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106970806B (zh) | 用于对正在控制工业过程的控制程序进行更新的系统 | |
JP6096414B2 (ja) | バッチ構成を試験するための方法、装置、およびプログラム | |
EP4027237A1 (en) | Supporting instruction set library components across releases | |
CN117714527A (zh) | 利用微服务的边缘设备和关联的网络 | |
EP2950173A1 (en) | Simulation system | |
CN109324799A (zh) | 一种代码编译方法、计算机装置及计算机可读存储介质 | |
EP3336627A1 (en) | Support device, method, and recording medium whereon support program is stored | |
JP6866663B2 (ja) | プログラマブルコントローラシステム、プログラマブルコントローラ、支援装置、hci装置、二重化プログラマブルコントローラシステム | |
US20180203973A1 (en) | System and simulator for the disengageable simulation of installations or machines within programmable logic controllers | |
JP2007102625A (ja) | Nc工作機械の制御プログラムの更新方法及び装置 | |
CN103645888A (zh) | 一种自动构建操作系统的系统及方法 | |
US10162827B2 (en) | Method and system for distributed control system (DCS) process data cloning and migration through secured file system | |
JP5636783B2 (ja) | プログラマブルコントローラ、およびプログラマブルコントローラのデバッグ方法 | |
KR20190046984A (ko) | 시뮬레이션 장치 | |
US20110218654A1 (en) | Method For Optimizing A Control Program For Actuators | |
EP3196718A1 (en) | Embedded emulation modules in industrial control devices | |
JP4670719B2 (ja) | 数値制御装置およびこの数値制御装置からのデータを用いてシミュレーションを実施するシミュレーション装置 | |
JP6205934B2 (ja) | プログラマブルコントローラシステム、その支援装置、プログラム | |
JP2016024798A (ja) | 冗長化コントローラシステム、その待機系コントローラ | |
JP6483507B2 (ja) | 制御プログラム作成装置、及び制御プログラムのデバッグ方法 | |
CN116848476A (zh) | 针对控制功能的零停机时间升级的基于plc的支持 | |
JP6455096B2 (ja) | コントロールシステム、その支援装置、プログラマブルコントロール装置 | |
CN113886008A (zh) | 一种虚拟机管理方法、系统、设备以及介质 | |
JP7156995B2 (ja) | 更新システム | |
JP2013250810A (ja) | プログラマブルコントローラ、その支援装置、プログラム、プログラム転送方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: ohio Applicant after: Rockwell automation technologies Address before: ohio Applicant before: Rockwell Automation Tech Inc. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |