CN105911885B - 用于改善工业控制系统的工业控制器 - Google Patents

用于改善工业控制系统的工业控制器 Download PDF

Info

Publication number
CN105911885B
CN105911885B CN201610089700.1A CN201610089700A CN105911885B CN 105911885 B CN105911885 B CN 105911885B CN 201610089700 A CN201610089700 A CN 201610089700A CN 105911885 B CN105911885 B CN 105911885B
Authority
CN
China
Prior art keywords
icu
industrial control
control unit
library
application
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
Application number
CN201610089700.1A
Other languages
English (en)
Other versions
CN105911885A (zh
Inventor
查尔斯·M·里斯查尔
拉迪斯拉夫·本巴莱克
菲利普·马库瑞克
迈克尔·维斯特
彼得·皮特日内茨
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.)
Rockwell Automation Technologies Inc
Original Assignee
Rockwell Automation Technologies 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 Rockwell Automation Technologies Inc filed Critical Rockwell Automation Technologies Inc
Publication of CN105911885A publication Critical patent/CN105911885A/zh
Application granted granted Critical
Publication of CN105911885B publication Critical patent/CN105911885B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • 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
    • G05B19/0426Programming the control sequence
    • 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

Abstract

本公开内容涉及一种工业控制器。提供了针对用于工业控制器的“可加载模块”架构的系统,其中,可以在不更新固件以及不中断或以其他方式损害工业控制器保持对受控过程的连续控制的能力的情况下,加载提供已更新功能或组件的新控制程序模块以扩展或修改底层操作系统和/或其他服务。可以以对象代码格式将控制程序模块和库递送至工业控制器,且工业控制器中的嵌入式链接器可以用于有效地本地创建完全链接的可执行文件。可以在运行时间期间将可加载库提供给工业控制器以扩展功能和/或提供期望的安装。结果,提供了一种在添加新能力方面更加有效且具有显著灵活性的系统。

Description

用于改善工业控制系统的工业控制器
技术领域
本发明涉及工业控制系统,并且更特别地涉及用于改善工业控制系统的技术。
背景技术
工业控制器是用于控制工厂自动化等的专用计算机。在存储的程序的指导下,工业控制器的处理器检查反映受控过程的状态的一系列输入以及改变影响对受控过程的控制的输出。可以以一系列执行循环连续地执行、周期性地执行或者基于事件而执行所存储的控制程序。
由工业控制器从受控过程接收的输入以及由工业控制器传输至受控过程的输出,通常通过用作控制器与控制过程之间的电气接口的一个或更多个输入/输出(I/O)模块。输入和输出被记录在处理器存储器中的I/O数据表中作为控制层数据。输入值可以由专用电路系统从受控过程异步地读取。输出值由处理器直接写入I/O数据表,并且然后由专用通信电路系统传送至受控过程。工业控制器可以相应地经由在受控过程环境中的传感器和致动器与受控过程交互。
相比更传统的计算机系统而言,工业控制系统通常规定了抵抗环境污染的更坚固的结构。此外,工业控制系统通常提供有提供了更大灵活性的模块化架构以及硬件配置(以与各种不同的控制应用匹配),这通常包括对多个程序的分布式处理。对此,可以将工业控制系统装配在连接至任意数量的I/O模块的多个可编程控制器(通常是加强的且容错的硬件)之中。
可以借助于高速“控制网络”、利用确保控制数据的可预测的、及时且可靠的传送的各种专用协议来将工业控制系统的各种部件连接在一起。通常在工业控制器领域使用的许多不同的控制网络包括例如ControlNet(控制网)、DeviceNet(设备网)和EtherNet/IP,其规范已被公布并且其协议被许多制造商和供应商广泛地使用。
控制网络通常还采用用于“连接的消息传送(connected messaging)”的协议,在该协议中,网络的带宽和缓冲空间被预分配给至特定硬件单元的专用“连接”以防止会单独在诸如以太网这样的标准网络协议中发生的丢失、不可预测地延迟数据传送或方向错误的数据传送。连接的消息传送的示例包括通用工业协议(“CIP”)连接的消息传送,包括如在公开号为PUB00123R0,版权为2006的“The Common Industrial Protocol(CIPTM)and theFamily of CIP Networks”中所描述的,其全部内容通过引用合并至本文。
在典型的实现流中,使用独立计算设备的设计环境被用于创建用于实现受控过程的“项目”。设计环境包括关于要使用的特定工业控制器及其特定配置的知识,该特定配置例如是其物理I/O地址。然后,控制程序在设计环境中被准备、在传送至工业控制器之前作为在模块中被传递的完整可执行文件而被编译且被链接。随后,改变控制程序通常需要在设计环境中重建控制程序和固件且在工业控制器中进行更新。因此,在传递已更新的控制程序和固件时,工业控制器通常被离线,这导致昂贵的停机时间。
然而,这导致一定的不灵活,其中,控制程序不能容易地被改变以适应工业控制器或控制过程的变化。例如,在不打断预先建立的资源连接的情况下,不能够将控制程序的模块容易地从一个工业控制器移至另一工业控制器。此外,将控制程序传送至工业控制器通常需要中断或以别的方式损害控制系统保持连续工作的能力。
一些控制系统允许在线修改和添加控制程序模块。然而,这些在线修改和添加通常受限于其仅可以使用由操作系统提供的暴露的接口和指令。这通常是期望在用户应用与操作系统之间提供分隔以提高操作可靠性的后果。
一些控制系统还使用户能够构建其自己的“指令”。然而,这些指令通常也受限于其仅可以使用由操作系统提供的暴露的接口和指令。
还已知在其他系统中使用“虚拟化”以提供附加能力。虚拟化使操作系统或服务的多个实例能够独立于一个硬件平台而进行操作。然而,由于每个虚拟环境具有其自己的操作系统服务的副本,因此虚拟化通常需要显著更大的存储器和处理能力以有效地运行。此外,在虚拟化中,在不同的虚拟环境中的服务通常不能够直接交互。
所需要的是提供增强的效率和灵活性而没有现有技术缺点的工业控制系统。
发明内容
本发明提供了用于工业控制器的“可加载模块”架构,在该工业控制器中,可以在不更新固件以及不中断或以其他方式损害工业控制器保持对受控过程的连续控制的能力的情况下,加载提供已更新功能或组件的新控制程序模块以扩展或修改底层操作系统和/或添加或修改作为工业控制器的一部分的其他服务。可以以对象代码格式将控制程序模块和库递送至工业控制器,以及工业控制器中的嵌入式链接器可以被用于有效地本地创建完全链接的可执行文件。可加载控制模块、服务模块以及库可以绑定至工业控制器的硬件、固件和/或操作系统资源并且使用它们。可以在运行时间期间将可加载库提供给工业控制器以扩展功能和/或提供期望的安装。结果,提供了在添加新能力方面更加有效且具有显著灵活性的系统。
可加载模块管理器部件可以被用于确定是否可以在不影响控制系统的工作以及不影响受控制的设备的情况下,安全地加载、移除和/或替换模块。管理器部件可以识别且管理对其他模块的依赖关系,包括便利新加载的模块定位且绑定至其所依赖的其他模块以及当模块被替代或移除时进行重新绑定。相应地,还可以提供可加载模块的多个版本以通过重新绑定至更新的版本来实现对控制或服务模块的更新版本的渐进式改变或其他移植。管理器部件还可以与其他模块无关地从服务中取出模块或者将模块放置到服务中、执行可加载模块的有序地启动和关闭以及重新启动出故障的模块。
管理器部件还可以确保加载的模块所依赖的其他模块存在且可操作,以及确保加载的模块满足可容许性标准。可容许性标准可以包括CPU利用率、存储器利用率及诸如所需响应和/或执行次数这样的调度标准、资源锁定和共享信息、以及其他硬件和软件资源的利用率。可容许性标准还可以包括对加载模块的管理许可权,以及确保兼容软件版本就位。因此,可容许性标准可以确保新加载的模块不损害控制系统的实时控制能力。
工业控制器中的嵌入式链接器可以执行将应用代码绑定至工业控制器中的现有应用资源。相应地,嵌入式链接器从设计环境中移除关于硬件部件被放置在哪里及硬件部件配置的知识需求,从而简化了设计过程且增加了灵活性。该方法还利用开放格式,例如可执行链接格式(ELF)文件,C/C++库等,以与工业控制器领域中通常不使用的其他工具和环境兼容。此外,可以在不需要附加软件工具的情况下从闪卡、USB或其他便携式介质加载、链接以及开始应用的执行。
可加载库还实现了对工业控制器的新函数、指令等的渐进式添加;甚至在运行时间处也如此,而无需固件更新。包含函数的库可以由其他库使用,以及由应用代码使用并且在不同的层处使用,例如运行时间库;操作系统的扩展;实用工具库,例如包含用于调试的函数的库;用于共享的函数和接口的供应商库;供应商基本指令库和扩展库;第三方库;以及用户库。由于来自一个库的函数可以被构建在另一库或多个库的顶部,因此可加载库还可以采用层级。
作为加载库过程的一部分,库可以与其他库和工业控制器固件链接,并且可以进行静态绑定以优化性能。在不中断当前执行控制应用代码的情况下还可以用更新的版本替换库,同时添加新能力。库可以在不同的库和模块之中共享包含在库中的执行代码。可以对库进行唯一地识别、潜在地修订、描述等,以及其函数的标识。库的多个版本可以同时存在,这允许迁移到库的更新版本,或者满足不同的可加载模块或其他库对库的不同版本的依赖关系。库还可以具有安全性和许可管理方面,这包括为了认证而被“签名”,要求用于部署或加载的证书。可以要求不同的权限/证书以相应地运行库。可以以ELF格式提供库,从而支持开放且众所周知的架构。
根据实施方式,工业控制器包括执行下述操作的处理器:存储在非暂态存储器中的操作系统,其用于管理工业控制器的硬件部件;存储在非暂态存储器中的第一应用模块,其用于经由操作系统控制受控过程的至少一部分;以及存储在非暂态存储器中的可加载模块管理器,其被配置成接收第二应用模块。可加载模块管理器还可以被配置成识别第二应用模块的依赖关系以及将第二应用模块绑定至工业控制器的资源以解析所述依赖关系。第二应用模块可以被配置成在第一应用模块控制受控过程的至少一部分的同时扩展或修改操作系统的至少一部分。
操作系统可以被配置成在管理硬件部件之前与固件进行通信,以及第二应用模块可以被配置成在不修改固件的情况下扩展或修改操作系统的至少一部分。
因此,至少一个实施方式的特征是在不改变固件的情况下给控制程序提供更新。
可加载模块管理器还可以被配置成在第二应用模块被准许扩展或修改操作系统的至少一部分之前确定是否满足安装要求。
因此,至少一个实施方式的特征是在修改控制程序之前提出用于验证的标准。
工业控制器还可以包括存储在非暂态存储器中的嵌入式链接器,该嵌入式链接器被配置成接收包含符号引用的对象文件。嵌入式链接器还可以被配置成将符号引用绑定至工业控制器的资源以产生用于控制受控过程的至少一部分的第三应用模块。
因此,与设计环境相反,至少一个实施方式的特征是在工业控制器中提供链接能力以提高控制系统的灵活性。
工业控制器还可以包括存储在非暂态存储器中的库管理器,该库管理器被配置成接收库模块。库管理器可以被配置成识别库模块的依赖关系以及将库模块绑定至工业控制器的资源以解析所述依赖关系。
因此,至少一个实施方式的特征是除应用模块以外还给工业控制器灵活地提供新的库。
根据另一实施方式,工业控制器包括执行下述操作的处理器:存储在非暂态存储器中的操作系统,其用于管理工业控制器的硬件部件;以及存储在非暂态存储器中的嵌入式链接器,其被配置成接收包含符号引用的对象文件。嵌入式链接器还被配置成将对象文件的符号引用绑定至工业控制器的资源以产生用于控制受控过程的至少一部分的应用模块。
根据另一实施方式,工业控制器包括执行下述操作的处理器:存储在非暂态存储器中的操作系统,其用于管理工业控制器的硬件部件;存储在非暂态存储器中的应用模块,其用于控制控制过程的至少一部分;存储在非暂态存储器中的第一库模块,其用于提供由应用模块使用的信息;以及存储在非暂态存储器中的库管理器,其被配置成接收第二库模块。库管理器还被配置成识别第二库模块的依赖关系以及将库绑定至工业控制器的资源以解析所述依赖关系。应用模块被配置成在库管理器将第二库模块绑定至工业控制器的资源的同时控制受控过程的至少一部分。
这些特定目的和优点仅适用于落入权利要求范围的部分实施方式,因此不限定本发明的范围。
附图说明
在附图中示出了本发明的优选示例性实施方式,在所有附图中,相似的附图标记表示相似的部件,其中:
图1示出了根据本发明的实施方式的示例性工业控制系统的硬件部件;
图2示出了根据本发明的实施方式的可能的工业控制系统架构层级;
图3示出了根据本发明的实施方式的包括控制器的示例性工业控制系统,其中示出了嵌入链接器和/或加载器、可加载模块管理器以及库管理器;
图4A示出了根据本发明的实施方式的应用模块依赖关系的图,以及图4B示出了根据本发明的实施方式的库模块依赖关系;
图5A示出了根据本发明的实施方式的、被配置成扩展或修改操作系统的至少一部分的应用模块,以及图5B示出了根据本发明的实施方式的、被配置成扩展或修改操作系统的至少一部分的库模块的图;
图6是示出根据本发明的实施方式的、用于应用模块或库模块的示例性字段的表;
图7是示出根据本发明的实施方式的、识别工业控制器的资源的示例性数据结构的表;以及
图8是示出根据本发明的实施方式的、识别依赖关系以及绑定至资源以解析所述依赖关系的流程图。
具体实施方式
现在参照图1,其示出了根据本发明的实施方式的示例性工业控制系统10的硬件部件。在下文中称为“A”的第一工业控制器12和在下文中称为“B”的第二工业控制器14经由控制网络16连接在一起,控制网络16可以是EtherNet(以太网)/IP网络或者其他控制网络并且可以实现通用工业协议(CIP)。工业控制器A和B可以是可编程逻辑控制器(PLC),然而如通常所理解的那样也可以使用附加控制器以及其他类型的控制器和控制器的组合。
工业控制器A和B均又分别连接至I/O模块18和20。I/O模块18和20可以实现在分离的硬件中或者可以集成在工业控制器A和B内。I/O模块10和20又例如经由传感器和致动器连接至受控过程22的不同的方面,从而使工业控制器A和B能够控制受控过程22。
工业控制器A和B的硬件部件均可以包括:例如,处理器30;用于与存储器34和磁盘36或者其他形式的非易失性存储装置对接的系统芯片集32,该非易失性存储装置包括但不限于闪存和/或固态硬盘;用于与受控过程硬件单元40(其允许与一个或更多个I/O模块连接且通信)、控制网络接口单元42(其允许与控制网络16和/或其他网络连接且通信)以及本地接口单元44(其允许与人机接口(HMI)和本地I/O连接且通信,本地I/O例如是键盘、鼠标、视频显示器、CD/DVD、闪卡、USB或其他便携式介质I/O)对接的I/O芯片集38;以及系统硬件46,其可以提供各种已知的系统功能,包括电源逻辑、实时时钟(RTC)等。工业控制器A和B的实际硬件或许稍微不同,例如仅在序列号方面不同,或者会更显著地不同,例如在整个硬件和/或软件架构方面不同。
电子计算机50也连接至控制网络16。电子计算机50以键盘、鼠标以及视频显示器的形式提供HMI。相应地,电子计算机50可以提供设计环境以创建、修改和/或更新实现受控过程22的项目。在其他实施方式中,电子计算机50可以通过分离的网络与工业控制器A和B连接且通信,或者可以在工业控制器A和B二者之一内执行电子计算机50的功能。此外,可以将源代码加载至工业控制器内,然后在工业控制器内对源代码进行本机编译。相应地,可以将源代码模块递送至工业控制器内,然后在工业控制器内对源代码模块进行编译以及链接以创建所产生的对象模块。
现在参照图2,其示出了根据本发明的实施方式的、用于工业控制系统10的可能的工业控制系统架构层级。工业控制器A和B均提供工业控制器所特有的硬件部件层60。例如,工业控制器A包括“硬件A”而工业控制器B包括“硬件B”。硬件A可以与硬件B非常类似或者显著不同。
工业控制器A和B还均提供工业控制器所特有的固件层62。例如,工业控制器A包括“固件A”而工业控制器B包括“固件B”。与硬件部件层60类似,固件A可以与固件B非常类似或者显著不同。固件层62通常被存储在工业控制器A和B内包含的闪存中,然而也可以使用其他类型的非易失性存储器。固件层62为工业控制器A和B的固件部件层60提供了最低层的设备指令。
工业控制器A和B还均提供工业控制器所特有的操作系统和服务层64。例如,工业控制器A包括“操作系统A”而工业控制器B包括“操作系统B”。与硬件部件层60和固件层62类似,操作系统A可以与操作系统B非常类似或者显著不同。操作系统和服务层64通常被存储在磁盘或其他非易失性存储器中并且经由在工业控制器A和B中所包含的诸如RAM这样的存储器来被存取,然而,还可以使用其他类型的非暂态存储器。操作系统和服务层64与固件层62进行通信并且为工业控制器A和B的硬件部件层60提供了次低层的指令。
最后,工业控制器A和B还均提供工业控制器所特有的应用或控制程序层66。例如,工业控制器A包括“控制程序A”而工业控制器B包括“控制程序B”。控制程序A可以与控制程序B非常类似或者显著不同。控制程序层66通常被存储在磁盘或其他非易失性存储器中并且经由在工业控制器A和B中所包含的诸如RAM这样的存储器来被存取,然而,还可以使用其他类型的非暂态存储器。控制程序层66为工业控制器A和B提供下一层指令以及实现由计算机50提出的项目。相应地,控制程序层66允许经由工业控制器A和B的操作系统和服务层64来控制受控过程22的至少一部分。
现在参照图3,其示出了根据本发明的实施方式的包括示例性工业控制器A的工业控制系统10,其中包括嵌入式链接器、加载器和/或编译器、可加载模块管理器以及库管理器。电子计算机50包括设计和配置环境100,例如来自Rockwell Automation,Inc的RSLogix5000。设计和配置环境100可以采用图形用户界面或只是一种高级计算语言,例如C++。用户相应地设计、修改和/或更新项目以及产生源模块102,源模块102可以包括源应用代码、源库代码和/或如本领域通常所理解的其他源数据。
然后,可以将源模块102提供给电子计算机50上的交叉编译器104。交叉编译器104又根据工业控制器A和B的目标平台要求以及项目实现要求来对源模块102的一个或更多个版本进行编译,以及产生具有“符号引用”的相应的对象代码和库。例如,交叉编译器104可以产生针对工业控制器A的第一对象代码106(“对象A3”)和第一库108(“LIB A3”),以及针对工业控制器B的第二对象代码110(“对象B4”)和第二库112(“LIB B4”)。对象文件可以以标准格式产生,例如可执行链接格式(ELF)文件,并且对象文件可以包括用于允许后续调试操作的断点或其他方案,包括在Bowers等人的美国专利No.7,353,508中所描述的方案,其全部内容通过引用合并至本文。
在实施方式中,电子计算机50然后可以将对象代码和库传送至目标工业控制器。例如,可以将第一对象代码106(“对象A3”)和第一库108(“LIB A3”)提供给存储在工业控制器A中的非暂态存储器中的嵌入式链接器/加载器/编译器120。此外,工业控制器A中的资源管理器122可以引用工业控制器A中的数据结构124、库管理器126以及本地固件128,以及将这样的资源信息提供给嵌入式链接器/加载器/编译器120。数据结构124可以是用于识别工业控制器A的资源以及在一些实施方式中识别工业控制系统10中的其他工业控制器(例如工业控制器B)的资源的表。库管理器126引用工业控制器A中的所加载的库130(例如“LIB_A1”和“LIB_A2”),以及将关于那些所加载的库130的信息提供给嵌入式链接器/加载器/编译器120。库管理器126还可以利用在库链接期间所创建的导出符号的哈希表132来提高性能。资源可以包括例如另一网络接口或协议堆栈,包括但不限于传输控制协议(“TCP”)、用户数据报协议(“UDP”)等,其可以由硬件支持且由基本操作系统或者由另一可加载模块或库所提供的操作系统的扩展来提供。
接着,嵌入式链接器/加载器/编译器120将对象代码和库(例如第一对象代码106(“对象A3”)和第一库108(“LIB A3”))的符号引用绑定至工业控制器的资源。相应地,嵌入式链接器/加载器/编译器120产生完全链接的可执行应用模块和库模块,例如应用模块134(“可执行”)和库模块136(“库”)。此外,嵌入式链接器/加载器/编译器120可以使工业控制器12的源能够对模块进行编译。相应地,可以加载源模块以及可执行文件和对象文件。此外,嵌入式链接器/加载器/编译器120还可以被配置成在未成功地试图绑定应用模块之后试图将应用模块绑定至资源。
接下来,存储在工业控制器A中的非暂态存储器中的可加载模块管理器138接收完全链接的可执行应用模块,例如应用模块134(“可执行”)。可加载模块管理器138又识别应用模块134(“可执行”)的一个或更多个依赖关系,例如标签名称或其他变量,以及将应用模块134(“可执行”)绑定至工业控制器A的资源以解析依赖关系,例如绑定至所加载的应用模块140之中的另一应用模块,或者物理或虚拟存储器地址,或者绑定至工业控制系统10中的另一工业控制器的资源,例如工业控制器B的资源。标签名称可以指控制系统存储器中的数据值,该数据值表示被控制的设备或控制应用自身的状态的一个方面。相应地,可加载模块管理器138将应用模块134(“可执行”)绑定且置入所加载的应用模块140之中的服务中作为运行应用模块142(“MOD_A3”)。运行应用模块142(“MOD_A3”)又可以在所加载的应用模块140中的一个或更多个继续控制受控过程的同时扩展或修改操作系统的至少一部分。
类似地,库管理器126接收完全链接的库模块,例如库模块136(“库”)。库管理器126又识别库模块136(“库”)的一个或更多个依赖关系,例如标签名称或其他变量,以及将库模块136(“库”)绑定至工业控制器A的资源以解析依赖关系,例如绑定至工业控制器A中的所加载库130之中的另一库,或者绑定至工业控制系统10中的另一工业控制器的资源,例如工业控制器B的资源。相应地,库管理器126将库模块136(“库”)绑定且置入所加载的库130之中的服务中作为运行库144(“LIB_A3”)。所加载的应用模块140中的一个或更多个可以在库管理器126将库模块136(“库”)绑定至资源的同时继续控制受控过程。
在另一实施方式中,电子计算机50可以替代地将对象代码和库传送至设计环境链接器150。例如,可以将第一对象代码106(“对象A3”)、第一库108(“LIB A3”)、第二对象代码110(“对象B4”)和第二库112(“LIB B4”)提供给电子计算机50中的设计环境链接器150。此外,设计环境链接器150可以引用设计环境数据结构152。设计环境数据结构152可以是用于识别工业控制器A和B的资源的表。
接着,设计环境链接器150将对象代码和库的符号引用绑定至工业控制器A和B的资源,对象代码和库例如是第一对象代码106(“对象A3”)、第一库108(“LIB A3”)、第二对象代码110(“对象B4”)和第二库112(“LIB B4”)。相应地,设计环境链接器150产生针对工业控制器A和B的完全链接的可执行应用模块和库模块,例如针对工业控制器A的应用模块160(“可执行A3”)和库模块162(“库A3”),以及针对工业控制器B的应用模块164(“可执行B4”)和库模块166(“库B4”)。
接下来,可加载模块管理器138接收完全链接的可执行应用模块,例如应用模块160(“可执行A3”)。可加载模块管理器138又识别应用模块160(“可执行A3”)的一个或更多个依赖关系,例如标签名称或其他变量,以及将应用模块160(“可执行A3”)绑定至工业控制器A的资源以解析依赖关系,例如,绑定至所加载的应用模块140之中的另一应用模块,或者物理或虚拟存储器地址,或者绑定至工业控制系统10中的另一工业控制器的资源,例如工业控制器B的资源。相应地,可加载模块管理器138将应用模块160(“可执行A3”)绑定和置入所加载的应用模块140之中的服务中作为运行应用模块142(“MOD_A3”)。运行应用模块142(“MOD_A3”)又可以在所加载的应用模块140中的一个或更多个继续控制受控过程的同时扩展或修改操作系统的至少一部分。
类似地,库管理器126接收完全链接的库模块,例如库模块162(“库A3”)。库管理器126又识别库模块162(“库A3”)的一个或更多个依赖关系,例如标签名称或其他变量,以及将库模块162(“库A3”)绑定至工业控制器A的资源以解析依赖关系,例如绑定至工业控制器A中的所加载的库130之中的另一库,或者绑定至工业控制系统10中的另一工业控制器的资源,例如工业控制器B的资源。相应地,库管理器126将库模块162(“库A3”)绑定和置入所加载的库130之中的服务中作为运行库144(“LIB_A3”)。所加载的应用模块140中的一个或更多个可以在库管理器126将库模块162(“库A3”)绑定至资源的同时继续控制受控过程。
可以加载库模块的多个版本。这例如在更新库和递增地重新链接/绑定至新版本或者在满足应用模块的需求方面可能是有用的,应用模块的需求可能需要相同库的不同版本。
在另一实施方式中,电子计算机50可以将对象代码和库传送至一个工业控制器,例如工业控制器A,以及将至少部分地链接的可执行应用模块和库模块传送至另一工业控制器,例如工业控制器B。此外,电子计算机50和所描述的“设计环境”可以替代地由工业控制器A或B来实现。
现在参照图4A和图4B,其示出了根据本发明的实施方式的应用模块依赖关系和库模块依赖关系。所加载的应用模块180可以包括第一应用模块182(“MOD_A1”)和第二应用模块184(“MOD_A2”)。第一应用模块182和第二应用模块184可以是在用于控制受控过程的工业控制器上运行的控制程序的模块。第一应用模块182可以具有对第二应用模块184的依赖关系,以及第二应用模块184可以具有对第一应用模块186的依赖关系,例如标签名称。当接收第三应用模块186(“MOD_A3”)时,可加载模块管理器可以确定第三应用模块186具有对第一应用模块182和第二应用模块184的依赖关系,例如标签名称,以及可以将第三应用模块186绑定至第一应用模块182和第二应用模块184以解析所述依赖关系。
类似地,所加载的库模块190可以包括第一库模块192(“LIB_A1”)和第二库模块194(“LIB_A2”)。第一库模块192和第二库模块194可以是由应用模块180引用的库。第二库模块194可以具有对第一库模块192的依赖关系,而第一库模块192可以根本不具有依赖关系。当接收第三库模块196(“LIB_A3”)时,可加载库管理器可以确定第三库模块196具有对第一库模块192和第二库模块194的依赖关系以及可以将第三库模块196绑定至第一库模块192和第二库模块194以解析所述依赖关系。电子计算机50确保将所有必需的库模块和控制模块加载至工业控制器。此外,库可以包括针对不同的硬件架构所编译的代码。电子计算机50可以选择仅加载库的一部分,该部分用于工业控制器的特定硬件。
现在参照图5A和图5B,其示出了根据本发明的实施方式的、被配置成扩展或修改操作系统的至少一部分的应用模块和库模块。操作系统和服务层198(“操作系统A”)可以由第三应用模块186(“MOD_A3”)和/或第三库模块196(“LIB_A3”)来扩展或修改。
现在参照图6,表200示出了根据本发明的实施方式的用于应用模块或库模块的示例字段。对于多个模块,在第一列202中,可以提供针对模块的标识或名称。在第二列204中,可以提供安全参数,例如运行模块的认证、许可/准许、用于对模块进行解密的加密密钥等。在第三列206中,可以提供针对模块对其他模块或其他资源的依赖关系的、例如以标签名称或变量的形式的列表。在第四列208中,可以提供循环冗余校验(“CRC”)、校验和或其他数据完整性字段以确保模块的完整性。
现在参照图7,表220示出了根据本发明的实施方式的识别工业控制器的资源的示例性数据结构。对于多个资源,在第一列222中,可以提供虚拟存储器地址。在第二列224中,可以提供物理存储器地址。在第三列226中,可以提供CIP连接或实例。在第四列228中,可以提供函数,例如存储在应用模块或库模块中的函数。在第五列230中,可以提供指令,例如存储在应用模块或库模块中的指令。在替选的实施方式中,可以根据现有技术已知的其他存储和检索机制(包括数据库、指针、哈希表等)来保持或引用表220中的资源信息。
现在参照图8,示出了根据本发明的实施方式的识别依赖关系且绑定至资源以解析依赖关系的流程图300。第一块302可以包括可能存在于控制程序应用模块304、对象文件306和/或库模块308中的多个依赖关系。
在第二块310中,工业控制器可以在继续进行之前、针对底层模块或文件确定是否满足一个或更多个安装要求。如果不满足安装要求,则工业控制器可以防止具有依赖关系的底层模块或文件继续进行。安装要求可以基于当前或预期的处理器利用率、存储器利用率和/或运行时间调度需要;运行模块或文件的授权,例如许可权限;其他模块、库或文件的合适的软件版本的预先安装、或者操作系统或固件的合适的软件版本的预先安装;具有其他模块、库或文件的多个软件版本、或者操作系统或固件的多个软件版本(其可以允许例如支持相同服务的两个版本以便利更新从而解决问题或添加能力,和/或实现可以要求相同服务的不同版本的外部客户端);正确的CRC、校验和或其他数据完整性计算等。
在第三块312中,确定存在于工业控制器中或者工业控制器知道存在于工业控制系统中的多个资源。资源可以包括其他控制程序应用模块314、其他库模块316、工业控制器的操作系统和服务318、工业控制器的本地固件320以及工业控制器的硬件322。
在第四块330中,由于根据第一块302已识别了依赖关系,根据第二块310已验证了安装要求,以及根据第三块312已得知了资源,因此工业控制器通过将第一块302的依赖关系绑定至第三块312的资源来解析依赖关系。在一些实施方式中,这还可以包括基于继续更新、系统更改等来随后“重新绑定”一次或更多次。
接下来,在第五处理块332中,工业控制器可以继续验证所有资源已被正确地绑定以确保准确性和完整性。例如,工业控制器可以执行内置式自测试或其他诊断以确保所有依赖关系绑定至合适的资源。
最后,在第六处理块334中,加载和执行完全绑定的模块。在工业控制器继续控制受控过程的同时,整个流程可以随着提供附加模块或文件而重复进行。相应地,可以连续地识别第一块302中的依赖关系和第三块312中的资源,以及第四块330中的绑定/重新绑定可以继续发生。
某些术语在本文中仅出于指代的目的而被使用并且因此不意在进行限制。这样的术语可以包括上文特别提到的词语、该词语的派生词以及相似引入的词语。例如,除非通过上下文清楚地指明,否则涉及结构的术语“第一”、“第二”或其他这样的数字型术语不意味着次序或顺序。
当介绍本公开内容和示例性实施方式的元素或者特征时,表示单数的词“一个”、“一”和“所述”意在表示存在一个或多个这样的元素或特征。术语“包括”、“包含”和“具有”意思是非排他性的,并且表示可以存在除了那些特别指出的元素或特征之外的额外的元素或特征。还应当理解,除非特别地标识为执行顺序,否则本文中所描述的方法步骤、过程和操作不应当被看作是必须要求它们按照所讨论或所示出的特定顺序来执行。还应当理解,可以采用附加的步骤或者替代的步骤。
提及的“微处理器”和“处理器”或者“所述微处理器”或者“所述处理器”可以理解为包括一个或更多个微处理器,其可以在独立的和/或分布式的环境中进行通信,并且因此可以被配置成经由有线或者无线通信与其他处理器进行通信,其中,这样的一个或更多个处理器可以被配置成在一个或多个受处理器控制的装置上工作,这些装置可以是类似的装置或者是不同装置。此外,除非指明,否则提及的存储器可以包括一个或者更多个处理器可读且可存取的存储器单元和/或部件,其可以在受处理器控制的装置内部或者外部,并且可以经由有线或者无线网络来存取。
本发明不限于本文包含的实施方式和说明,且权利要求应当被理解为包括在所附权利要求范围内的那些实施方式的修改形式,这包括实施方式的一部分以及不同实施方式的元素的组合。本文所描述的全部出版物的全部内容通过引用合并至本文,包括专利出版物和非专利出版物。

Claims (32)

1.一种通过控制工业控制过程来提供工厂自动化的工业控制器,包括:
处理器,所述处理器执行:
存储在非暂态存储器中的操作系统,所述处理器执行所述操作系统以管理所述工业控制器的硬件部件,所述硬件部件包括与用于允许控制所述工业控制过程的硬件对接的芯片集;
存储在非暂态存储器中的第一应用,所述处理器执行所述第一应用以通过所述操作系统来控制所述工业控制过程的至少一部分;以及
存储在非暂态存储器中的程序,所述处理器执行所述程序以:
识别被配置成扩展或修改所述操作系统的至少一部分的第二应用的依赖关系;和
将所述第二应用绑定至所述工业控制器的资源以解析所述依赖关系,从而允许所述第二应用在所述第一应用连续地控制所述工业控制过程的至少一部分的同时,扩展或修改所述操作系统的至少一部分。
2.根据权利要求1所述的工业控制器,其中,所述程序在尝试将所述第二应用绑定至所述资源不成功之后,将所述第二应用绑定至所述资源。
3.根据权利要求1所述的工业控制器,其中,所述操作系统被配置成在管理所述硬件部件之前与固件进行通信,其中,所述第二应用被配置成在不修改所述固件的情况下扩展或修改所述操作系统的至少一部分。
4.根据权利要求1所述的工业控制器,其中,在所述第二应用扩展或修改所述操作系统的至少一部分之前,所述程序执行以验证所述第二应用的安装要求。
5.根据权利要求4所述的工业控制器,其中,所述安装要求是基于下述中至少之一的:所述工业控制器的处理器利用率、存储器利用率以及运行时间调度。
6.根据权利要求4所述的工业控制器,其中,所述安装要求基于由所述工业控制器接收的关于运行所述第二应用的授权。
7.根据权利要求4所述的工业控制器,其中,所述安装要求基于所述操作系统和所述第一应用中至少一个的版本。
8.根据权利要求7所述的工业控制器,其中,所述安装要求基于具有所述操作系统和所述第一应用中至少一个的多个版本。
9.根据权利要求1所述的工业控制器,其中,所述程序将所述第二应用绑定至所述操作系统和所述第一应用中的至少一个。
10.根据权利要求9所述的工业控制器,其中,所述资源是虚拟存储器地址。
11.根据权利要求9所述的工业控制器,其中,所述资源是通用工业协议CIP连接。
12.根据权利要求9所述的工业控制器,其中,所述依赖关系是标签名称。
13.根据权利要求1所述的工业控制器,还包括存储在非暂态存储器中的嵌入式链接器,所述嵌入式链接器被配置成接收包含符号引用的对象文件,其中,所述嵌入式链接器还被配置成将所述符号引用绑定至所述工业控制器的资源以产生用于控制所述工业控制过程的至少一部分的第三应用。
14.根据权利要求1所述的工业控制器,还包括存储在非暂态存储器中的嵌入式编译器,其中,所述处理器执行所述嵌入式编译器以对源文件进行编译,从而产生所述第二应用。
15.根据权利要求1所述的工业控制器,其中,所述程序是第一程序,并且所述工业控制器还包括存储在非暂态存储器中的第二程序,所述处理器执行所述第二程序以识别库的依赖关系并且将所述库绑定至所述工业控制器的资源以解析所述依赖关系。
16.根据权利要求13所述的工业控制器,还包括数据结构,所述数据结构识别所述工业控制器的资源,其中,所述嵌入式链接器引用所述数据结构以绑定所述符号引用。
17.根据权利要求13所述的工业控制器,其中,所述对象文件是可执行链接格式ELF文件。
18.根据权利要求13所述的工业控制器,其中,所述资源是通用工业协议CIP连接。
19.根据权利要求13所述的工业控制器,其中,所述对象文件包括用于允许进行调试的断点。
20.根据权利要求13所述的工业控制器,其中,所述对象文件包括用于提供循环冗余校验CRC和校验和中至少一个的信息。
21.根据权利要求13所述的工业控制器,其中,所述嵌入式链接器还用作用于所述第一应用和所述第二应用的加载器。
22.根据权利要求13所述的工业控制器,其中,所述工业控制器经由闪存装置来接收所述对象文件。
23.根据权利要求13所述的工业控制器,其中,所述嵌入式链接器还被配置成接收库,以及将所述库绑定至所述工业控制器的资源。
24.根据权利要求1所述的工业控制器,其中,所述程序是第一程序,所述工业控制器还包括:
存储在非暂态存储器中的第一库,所述第一库用于提供由所述第一应用和所述第二应用使用的信息;以及
存储在非暂态存储器中的第二程序,所述第二程序被配置成接收第二库,
其中,所述第二程序还被配置成识别所述第二库对所述第一库的依赖关系以及将所述第二库绑定至所述工业控制器的资源以解析所述依赖关系,以及
其中,所述第一应用和所述第二应用被配置成在所述第二程序将所述第二库绑定至所述工业控制器的资源的同时,控制所述工业控制过程的至少一部分。
25.根据权利要求24所述的工业控制器,其中,所述操作系统被配置成在管理所述硬件部件之前与固件进行通信,其中,所述第一应用和所述第二应用被配置成在不修改所述固件的情况下,在所述第二程序将所述第二库绑定至所述工业控制器的资源的同时控制所述工业控制过程的至少一部分。
26.根据权利要求24所述的工业控制器,其中,所述第二程序将所述第二库绑定至所述操作系统和所述第一库中至少一个。
27.根据权利要求24所述的工业控制器,其中,所述第二库是所述第一库的不同版本。
28.根据权利要求24所述的工业控制器,其中,所述第二程序还被配置成在所述第二程序将所述第二库绑定至所述工业控制器的资源之前确定是否满足安装要求。
29.根据权利要求28所述的工业控制器,其中,所述安装要求基于下述中至少一个:所述工业控制器的处理器利用率、存储器利用率以及运行时间调度。
30.根据权利要求28所述的工业控制器,其中,所述安装要求基于由所述工业控制器接收的关于运行所述第二库的授权。
31.根据权利要求28所述的工业控制器,其中,所述安装要求基于所述操作系统和所述第一库中至少一个的版本。
32.根据权利要求24所述的工业控制器,还包括存储在非暂态存储器中的嵌入式链接器,所述嵌入式链接器被配置成接收包含符号引用的对象文件,其中,所述嵌入式链接器还被配置成将所述符号引用绑定至所述工业控制器的资源以产生用于控制所述工业控制过程的至少一部分的第三应用。
CN201610089700.1A 2015-02-19 2016-02-17 用于改善工业控制系统的工业控制器 Active CN105911885B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/626,058 2015-02-19
US14/626,058 US9958848B2 (en) 2015-02-19 2015-02-19 Techniques for improving industrial control systems

Publications (2)

Publication Number Publication Date
CN105911885A CN105911885A (zh) 2016-08-31
CN105911885B true CN105911885B (zh) 2018-09-18

Family

ID=55236239

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610089700.1A Active CN105911885B (zh) 2015-02-19 2016-02-17 用于改善工业控制系统的工业控制器

Country Status (3)

Country Link
US (3) US9958848B2 (zh)
EP (1) EP3059647B1 (zh)
CN (1) CN105911885B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9958848B2 (en) * 2015-02-19 2018-05-01 Rockwell Automation Technologies, Inc. Techniques for improving industrial control systems
US9921563B2 (en) 2015-10-02 2018-03-20 Rockwell Automation Technologies, Inc. System for updating a control program actively controlling an industrial process
US10366054B2 (en) * 2015-12-14 2019-07-30 Abb Schweiz Ag Method and apparatus for for software application internal re-structuring of specifically authorized multi-level sub-folders
US10241842B2 (en) * 2016-09-29 2019-03-26 Intel Corporation Cloud container resource binding and tasking using keys
JP6812726B2 (ja) * 2016-09-30 2021-01-13 オムロン株式会社 制御ユニット、データリフレッシュ方法、データリフレッシュプログラム
WO2018137258A1 (en) * 2017-01-30 2018-08-02 Qualcomm Incorporated Loadable modules with partial linking and load-time relocation
DE102018100657A1 (de) * 2018-01-12 2019-07-18 Wago Verwaltungsgesellschaft Mbh Automatisierungseinrichtung und Verfahren zum Betrieb einer Automatisierungseinrichtung
KR20200019444A (ko) * 2018-08-14 2020-02-24 에스케이하이닉스 주식회사 데이터 처리 시스템 및 데이터 처리 시스템의 동작 방법
DE102018126995A1 (de) * 2018-10-29 2020-04-30 Lenze Automation Gmbh Verfahren zum Konfigurieren eines Antriebssystems für eine technische Einrichtung
JP6954256B2 (ja) * 2018-11-02 2021-10-27 横河電機株式会社 エンジニアリング装置、エンジニアリング装置の制御方法及びプログラム
DE102019119354A1 (de) * 2019-07-17 2021-01-21 WAGO Verwaltungsgesellschaft mit beschränkter Haftung Firmware-aktualisierung von komponenten eines modularen knotens
US11454957B2 (en) * 2020-04-03 2022-09-27 Schneider Electric Systems Usa, Inc. Systems and methods for operation and design of industrial system
US11442740B2 (en) 2020-09-29 2022-09-13 Rockwell Automation Technologies, Inc. Supporting instruction set architecture components across releases

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPQ808700A0 (en) * 2000-06-09 2000-07-06 Honeywell Limited Human-machine interface
EP1280056B1 (en) 2001-07-26 2011-10-05 STMicroelectronics Limited Generation of debugging information
DE10335989B4 (de) 2003-08-01 2019-07-11 Kw-Software Gmbh Online-Änderungen von CIL-Code-Programmen für die Industrieautomatisierung
JP2007536634A (ja) * 2004-05-04 2007-12-13 フィッシャー−ローズマウント・システムズ・インコーポレーテッド プロセス制御システムのためのサービス指向型アーキテクチャ
US20080189638A1 (en) * 2006-10-16 2008-08-07 Invensys Systems, Inc. Bridging human machine interface technologies in a process automation and information management environment
US8255875B2 (en) * 2008-09-30 2012-08-28 Rockwell Automation Technologies, Inc. Application builder for industrial automation
US9392072B2 (en) * 2010-04-15 2016-07-12 Rockwell Automation Technologies, Inc. Systems and methods for conducting communications among components of multidomain industrial automation system
US9355193B2 (en) * 2012-11-06 2016-05-31 Rockwell Automation Technologies, Inc. Object design data model
CN106716274B (zh) * 2014-09-30 2021-03-16 西门子瑞士有限公司 配置通用自动化系统控制器
US10372107B2 (en) * 2014-10-15 2019-08-06 Rockwell Automation Technologies, Inc. Custom properties in an application environment
US10108183B2 (en) * 2014-11-12 2018-10-23 Yokogawa Electric Corporation Process control system and configuration system
US9958848B2 (en) * 2015-02-19 2018-05-01 Rockwell Automation Technologies, Inc. Techniques for improving industrial control systems

Also Published As

Publication number Publication date
US20180217571A1 (en) 2018-08-02
US9958848B2 (en) 2018-05-01
US20200241495A1 (en) 2020-07-30
US20160246276A1 (en) 2016-08-25
US10671041B2 (en) 2020-06-02
EP3059647A2 (en) 2016-08-24
EP3059647A3 (en) 2016-10-19
EP3059647B1 (en) 2020-08-12
US11209788B2 (en) 2021-12-28
CN105911885A (zh) 2016-08-31

Similar Documents

Publication Publication Date Title
CN105911885B (zh) 用于改善工业控制系统的工业控制器
Silva et al. Decomposition tool for event‐B
US20210055718A1 (en) Computer-implemented method for providing data, in particular for conformity tracking
US8521359B1 (en) Application-independent and component-isolated system and system of systems framework
US11022950B2 (en) Resilient failover of industrial programmable logic controllers
US10162328B2 (en) Controller and control system
CN102177501B (zh) 电子设备及其管理方法
CN111066039A (zh) 包括企业模型的微处理器
US20130274901A1 (en) Industrial automation control system
CN103645888A (zh) 一种自动构建操作系统的系统及方法
EP2725438B1 (en) System and method for vendor release independent reusable customized function block libraries
Kajtazovic et al. A component-based dynamic link support for safety-critical embedded systems
US20230315038A1 (en) Method and system for providing engineering of an industrial device in a cloud computing environment
US8458790B2 (en) Defending smart cards against attacks by redundant processing
CN116028163A (zh) 一种容器组的动态链接库调度方法、装置及存储介质
KR20190075508A (ko) 가상화된 시스템 상에서 임베디드 소프트웨어를 자동으로 생성하는 방법 및 컴퓨팅 시스템
US11379634B2 (en) System and method for safety analysis of failure behavior
EP3872625A1 (en) Method and system for managing an app
EP3644178A1 (en) Installing software components to controllers of industrial sites
JP5951405B2 (ja) プログラマブルコントローラ、エンジニアリングツールプログラム、およびそのシステム
CN102473090A (zh) 可用于访问bios的多个接口文件
US20160202956A1 (en) Resource closing
US10621312B2 (en) Method for operating a computer system to authorize use of software on a process computer
JP2008225762A (ja) ライブラリ管理システム
WO2010101574A1 (en) Application sequencing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into 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