CN116909678A - 一种容器化plc的实现方法及系统、管理服务器 - Google Patents
一种容器化plc的实现方法及系统、管理服务器 Download PDFInfo
- Publication number
- CN116909678A CN116909678A CN202211080043.6A CN202211080043A CN116909678A CN 116909678 A CN116909678 A CN 116909678A CN 202211080043 A CN202211080043 A CN 202211080043A CN 116909678 A CN116909678 A CN 116909678A
- Authority
- CN
- China
- Prior art keywords
- container
- plc
- container instance
- controller
- instance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 104
- 230000015654 memory Effects 0.000 claims description 46
- 238000010276 construction Methods 0.000 claims description 26
- 238000012544 monitoring process Methods 0.000 claims description 22
- 238000013508 migration Methods 0.000 claims description 21
- 230000005012 migration Effects 0.000 claims description 21
- 238000012545 processing Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 16
- 238000013507 mapping Methods 0.000 claims description 12
- 238000003860 storage Methods 0.000 claims description 12
- 230000001360 synchronised effect Effects 0.000 claims description 12
- 238000004891 communication Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 description 27
- 238000010586 diagram Methods 0.000 description 15
- 238000004519 manufacturing process Methods 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000003754 machining Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 238000003801 milling Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 208000036829 Device dislocation Diseases 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000012824 chemical production Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009713 electroplating Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000009776 industrial production Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000007514 turning Methods 0.000 description 1
Classifications
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Programmable Controllers (AREA)
Abstract
本申请公开了一种容器化PLC的实现方法及系统、管理服务器,所述方法包括:获取多个PLC应用程序;基于所述多个PLC应用程序构建多个容器镜像,其中,不同的PLC应用程序对应不同的容器镜像;将所述多个容器镜像分发至一个或多个控制器,所述容器镜像用于所述控制器构建容器实例。
Description
技术领域
本申请涉及可编程逻辑控制器(Programmable Logic Controller,PLC)技术领域,尤其涉及一种容器化PLC的实现方法及系统、管理服务器。
背景技术
PLC是电力、采矿、化工生产等众多行业生产过程的核心控制设备。其工作原理是从传感器接收测量数据并循环运行控制算法,为各种执行器(如电机、泵、反应器、热交换器等)产生输出信号。
PLC应用程序(PCL App或者PCL Program)是PLC的一种软件实现手段。目前,PLC应用程序依赖专用嵌入式控制器进行部署,例如将PLC应用程序部署在工控机(IndustrialPersonal Computer,IPC)上。这种PLC应用程序的部署方式缺乏灵活性,不能满足多样化应用场景的需求。
发明内容
为解决上述技术问题,本申请实施例提供了一种容器化PLC的实现方法及系统、管理服务器、控制器、计算机可读存储介质。
本申请实施例提供的容器化PLC的实现方法,应用于管理服务器,包括:
获取多个PLC应用程序;
基于所述多个PLC应用程序构建多个容器镜像,其中,不同的PLC应用程序对应不同的容器镜像;
将所述多个容器镜像分发至一个或多个控制器,所述容器镜像用于所述控制器构建容器实例。
本申请实施例提供的容器化PLC的实现方法,应用于第一控制器,所述方法包括:
接收管理服务器下发的一个或多个容器镜像,所述容器镜像基于PLC应用程序构建,其中,不同的容器镜像对应不同的PLC应用程序;
根据所述一个或多个容器镜像构建一个或多个容器实例。
本申请实施例提供的管理服务器,包括:
程序编译服务模块,用于获取多个PLC应用程序;基于所述多个PLC应用程序构建多个容器镜像,其中,不同的PLC应用程序对应不同的容器镜像;
节点配置服务模块,用于将所述多个容器镜像分发至一个或多个控制器,所述容器镜像用于所述控制器构建容器实例。
本申请实施例提供的容器化PLC系统,包括:管理服务器以及一个或多个控制器,所述一个或多个控制器通过总线与一个或多个执行器通信;其中,所述管理服务器用于执行上述的容器化PLC的实现方法;所述控制器用于执行上述的容器化PLC的实现方法。
本申请实施例提供的管理服务器,包括:处理器和存储器,该存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,执行上述的容器化PLC的实现方法。
本申请实施例提供的控制器,包括:处理器和存储器,该存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,执行上述的容器化PLC的实现方法。
本申请实施例提供的计算机可读存储介质,用于存储计算机程序,所述计算机程序使得计算机执行上述的容器化PLC的实现方法。
本申请实施例的技术方案中,根据PLC应用程序构建对应的容器镜像,不同的PLC应用程序可以构建不同的容器镜像,将构建的容器镜像分发至控制器,从而在控制器上创建出PLC应用程序对应的容器实例,如此,达到了通过容器实例来部署PLC应用程序的目的,由于容器实例具有灵活、轻量的特性,因而通过这种方式部署PLC应用程序更加灵活,可以满足多样化的应用场景的需求。
附图说明
图1是PLC硬件架构图;
图2是软件化PLC架构图;
图3是Runtime System工作原理图;
图4是本申请实施例提供的容器化PLC的实现方法的流程示意图一;
图5是本申请实施例提供的容器化PLC的实现方法的流程示意图二;
图6是本申请实施例提供的通用容器镜像文件组成示意图;
图7是本申请实施例提供的容器实例环境构建与运行流程示意图;
图8是本申请实施例提供的PLC动态迁移流程图;
图9是本申请实施例提供的柔性作业车间生产过程示意图;
图10是本申请实施例提供的管理服务器的结构示意图;
图11是本申请实施例提供的容器化PLC系统的架构图;
图12是本申请实施例提供的一种电子设备示意性结构图。
具体实施方式
为便于理解本申请实施例的技术方案,以下对本申请实施例的相关技术进行说明,以下相关技术作为可选方案与本申请实施例的技术方案可以进行任意结合,其均属于本申请实施例的保护范围。
PLC的实现手段大致有两种,一种是硬件化PLC,另一种是软件化PLC。其中,硬件化PLC是指通过PLC硬件来实现PLC的功能。软件化PLC是指通过PLC应用程序来实现PLC的功能。
图1是一种PLC硬件架构图,如图1所示,PLC硬件架构主要包括中央处理器(CPU)、内存存储模块、输入模块、以及输出模块。此外,还可以包括供电模块、通讯模块等。硬件化PLC具有如下缺点:PLC硬件架构封闭且固定,维护和升级比较困难,工业通讯协议适配性差。
软件化PLC可以克服硬件化PLC的缺点。软件化PLC(也可以简称为软PLC)是以开放硬件作为硬件平台,基于IEC 61131-3或IEC 61149工业软件编程规范,用PLC应用程序来实现PLC的功能。目前,软件化PLC的方案大都基于IPC来部署,有纯软件架构和PCI板卡架构。如图2所示,在纯软件架构中,PLC应用程序(PLC App)部署在IPC操作系统(IPC OS)上;在板卡架构中,PLC应用程序(PLC App)部署在PLC PCI板卡上。软件化PLC具有成本低、开放性好、使用方便等优点。然而,目前的软件化PLC存在如下缺点:PLC应用程序依赖专用嵌入式控制器进行部署,例如将PLC应用程序部署在IPC上。这种PLC应用程序的部署方式缺乏灵活性,不能满足多样化应用场景的需求。
此外,对于软件化PLC来说,可以有硬件级虚拟化方案和软件级虚拟化方案。硬件级虚拟化方案,是指利用运行时系统(Runtime System)作为PLC应用程序的实时运行系统,常用的运行时系统为CoDeSys运行时系统或AnyControl运行时系统。通过运行时系统可以将任何嵌入式平台或工业PC转化为基于IEC61131-3标准的控制器,其工作原理如图3所示。软件级虚拟化方案,是指采用基于内核的虚拟机(Kernel-based Virtual Machine,KVM)来实现PLC应用程序的虚拟化,KVM通过管理(Hypervisor)技术提供虚拟硬件,支撑上层实时内核和非实时内核。软件级虚拟化方案相对于硬件级虚拟化方案更具灵活性,但是软件级虚拟化方案需要Hypervisor支持,性能和效率存在不足的问题。
为此,提出了本申请实施例的以下技术方案。本申请实施例的技术方案提出一种容器化PLC的实现方法及系统、管理服务器。将PLC应用程序的部署从专用嵌入式控制器转移到更灵活、轻量的容器(Docker)实例,实现了“容器化PLC”的方案,容器实例的运行不需要Hypervisor的支持,实现了内核级虚拟化方案,因此可以实现更高的性能和效率。此外,容器实例作为一种PLC应用程序的包装形式,可将PLC应用程序部署在任何基础设备中,赋予PLC应用程序独立、便于移植的能力,适用的工业控制场景更广泛。此外,通过容器化PLC管理服务器(简称为管理服务器),为多台控制器提供容器实例部署的管理,实现动态拓展,满足工厂柔性自动化生产需求。
为便于理解本申请实施例的技术方案,以下通过具体实施例详述本申请的技术方案。以上相关技术作为可选方案与本申请实施例的技术方案可以进行任意结合,其均属于本申请实施例的保护范围。本申请实施例包括以下内容中的至少部分内容。
本申请实施例的技术方案中,提出结合容器技术构建容器化PLC系统。容器技术,也称为操作系统级虚拟化,是一种轻量级软件虚拟化方法。容器基于操作系统内核的命名空间(namespace)等机制,为应用程序提供隔离的运行空间。此外,容器宿主机可以通过控制组群(cgroups)机制限制单个容器使用的资源量,例如CPU、内存、磁盘I/O和网络。因为共享操作系统内核,所以与其他虚拟化方式(比如VMware、KVM)相比,容器化的开销更低。
图4是本申请实施例提供的容器化PLC的实现方法的流程示意图一,如图4所示,所述容器化PLC的实现方法包括以下步骤:
步骤401:管理服务器获取多个PLC应用程序;基于所述多个PLC应用程序构建多个容器镜像,不同的PLC应用程序对应不同的容器镜像;将所述多个容器镜像分发至一个或多个控制器,所述容器镜像用于所述控制器构建容器实例。
这里,针对所述多个PLC应用程序中的每个PLC应用程序,管理服务器基于所述每个PLC应用程序对应的容器镜像构建策略,构建所述PLC应用程序对应的容器镜像,其中,所述容器镜像构建策略包括:
第一构建规则,所述第一构建规则用于构建PLC APP模块,所述PLC APP模块用于实现PLC应用程序;
第二构建规则,所述第二构建规则用于构建运行时(runtime)模块,所述runtime模块用于实现PLC应用程序的软件运行环境;
第三构建规则,所述第三构建规则用于构建I/O配置模块,所述I/O配置模块用于实现PLC应用程序的I/O变量地址的配置;以及,
第四构建规则,所述第四构建规则用于构建性能监控模块,所述性能监控模块用于实现监控PLC应用程序的信息。
不同的PLC应用程序构建的容器镜像具有不同的镜像模块,所述镜像模块包括:PLC APP模块、运行时(runtime)模块、I/O配置模块以及性能监控模块;其中,所述PLC APP模块用于实现PLC应用程序,所述runtime模块用于实现PLC应用程序的软件运行环境,所述I/O配置模块用于实现PLC应用程序的I/O变量地址的配置,所述性能监控模块用于实现监控PLC应用程序的信息。
在一些实施方式中,管理服务器确定所述多个容器镜像与所述一个或多个控制器之间的映射关系;基于所述映射关系,将所述多个容器镜像分发至所述一个或多个控制器。进一步,可选地,管理服务器将所述映射关系保存至数据库中。
在一些实施方式中,所述一个或多个控制器包括第一控制器,所述第一控制器上构建有第一容器实例;管理服务器获取针对所述第一容器实例的用户输入的I/O配置信息,将所述I/O配置信息下发给所述第一控制器,所述I/O配置信息用于所述第一控制器进行所述第一容器实例的I/O变量地址的配置。可选地,管理服务器将所述I/O配置信息保存至数据库中。
在一些实施方式中,所述将所述多个容器镜像分发至一个或多个控制器之后,管理服务器对所述一个或多个控制器上构建的至少部分容器实例进行以下至少一种管理:启动容器实例;恢复容器实例;停止容器实例;暂停容器实例;监控容器实例的运行状态。
在一些实施方式中,所述多个PLC应用程序包括第一PLC应用程序,所述一个或多个控制器包括第一控制器,所述第一控制器上构建有第一容器实例,所述第一容器实例基于所述第一PLC应用程序对应的容器镜像构建;管理服务器检测到针对所述第一PLC应用程序的迁移指令的情况下,将所述第一PLC应用程序从所述第一控制器中的第一容器实例迁移到第二控制器中的第二容器实例。具体地,管理服务器通过以下步骤将所述第一PLC应用程序从所述第一控制器中的第一容器实例迁移到第二控制器中的第二容器实例:
1)从数据库中获取所述第一控制器中的第一容器实例的镜像信息;
2)基于所述第一容器实例的镜像信息获取所述第一PLC应用程序对应的容器镜像,并将所述第一PLC应用程序对应的容器镜像下发至第二控制器,所述第一PLC应用程序对应的容器镜像用于所述第二控制器构建第二容器实例;
3)将所述第一容器实例的状态信息同步至所述第二容器实例。
这里,将所述第一容器实例的状态信息同步至所述第二容器实例,可以通过以下步骤来实现:
3-1)暂停所述第一容器实例和所述第二容器实例;
3-2)接收所述第一控制器上报的所述第一容器实例的状态信息(例如状态变量),将所述第一容器实例的状态信息下发给所述第二控制器,所述第一容器实例的状态信息用于所述第二控制器更新所述第二容器实例的状态信息。可选第,将所述第一容器实例的状态信息保存至数据库中;
3-3)恢复所述第一容器实例和所述第二容器实例;
3-4)终止所述第一容器实例,并使能所述第二容器实例;
在一些实施方式中,根据所述第一容器和所述第二容器的输出是否一致,判断迁移是否成功;若迁移成功,则终止所述第一容器,并使能所述第二容器的输出。
步骤402:第一控制器接收管理服务器下发的一个或多个容器镜像,所述容器镜像基于PLC应用程序构建,不同的容器镜像对应不同的PLC应用程序;根据所述一个或多个容器镜像构建一个或多个容器实例。
这里,不同的容器镜像具有不同的镜像模块,所述镜像模块包括:PLC APP模块、runtime模块、I/O配置模块以及性能监控模块;其中,所述PLC APP模块用于实现PLC应用程序,所述runtime模块用于实现PLC应用程序的软件运行环境,所述I/O配置模块用于实现PLC应用程序的I/O变量地址的配置,所述性能监控模块用于实现监控PLC应用程序的信息。
可以理解,根据所述容器镜像构建的容器实例也包括以下模块:PLC APP模块、runtime模块、I/O配置模块以及性能监控模块。
在一些实施方式中,所述一个或多个容器实例包括第一容器实例;第一控制器接收管理服务器下发的针对所述第一容器实例的I/O配置信息;根据所述I/O配置信息对所述第一容器实例进行I/O变量地址的配置。
在一些实施方式中,在所述第一容器实例运行期间,若第一控制器接收到所述管理服务器下发的针对所述第一容器实例的更新的I/O配置信息,则根据所述更新的I/O配置信息对所述第一容器实例进行I/O变量地址的重配置。
在一些实施方式中,第一控制器从I/O端口扫描输入数据到输入寄存器;通过运行所述述第一容器实例来执行以下操作:读取所述输入寄存器中的输入数据;对所述输入数据进行处理,得到输出数据;将所述输出数据写入到输出寄存器;将所述输出寄存器中的输出数据输出到I/O端口,所述输出数据用于所述I/O端口对执行器进行控制。进一步,第一控制器将所述第一容器实例的运行信息和状态信息上报至管理服务器,所述第一容器的运行信息和状态信息用于所述管理服务器进行与所述第一容器实例相关的管理,例如所述第一容器的运行信息和状态信息用于所述管理服务器进行所述第一容器实例对应的PLC应用程序的状态备份、状态恢复、迁移以及异常处理。
图5是本申请实施例提供的容器化PLC的实现方法的流程示意图二,如图5所示,所述容器化PLC的实现方法包括以下步骤:
步骤501:管理服务器构建容器镜像。
具体地,用户将PLC应用程序编写完成并编译通过后,上传至管理服务器,通过管理服务器构建PLC程序运行时(runtime)镜像,这里,PLC程序运行时镜像也即是PLC应用程序的容器镜像。
PLC应用程序的通用容器镜像如图6所示,其中,PLC APP是用户编写的PLC应用程序(即PLC二进制执行程序);Runtime是PLC应用程序的软件运行环境;I/O配置模块可实现PLC应用程序的I/O变量地址的自动化配置;性能监控模块用于监控PLC应用程序的各项信息,并将监控到的信息定时上报给管理服务器的数据库进行存储。
步骤502:管理服务器分发容器镜像给控制器并进行I/O配置。
用户通过管理服务器将承载不同PLC APP的容器镜像分发到不同控制器,同时管理服务器将控制器与容器镜像的映射关系存储到数据库。数据库记录的映射关系数据表如下:
表1:控制器与容器的映射关系数据表
控制器编号 | 容器编号 | 镜像编号 | 容器状态 |
Controller_A | Docker_1 | Image_1 | 运行/暂停/终止 |
... | ... | ... | ... |
此外,用户可动态更改I/O配置,并保存至数据库。I/O配置数据表的示例格式如下:
表2:I/O配置数据表
在上述表2中,变量的地址由地址标识符和存储器位置组成。输入端子对应的开关量输入寄存器地址,用通配符“%I+地址值”表示,输出端子对应的开关量输出寄存器地址,用通配符“%Q+地址值”,例如,地址通配符%I0.01对应物理接线端子X1,%Q100.01对应物理接线端子Y1。此外,该数据表还记录了各变量的数据类型、初始值、是否断电保持等信息。
控制器接收到管理服务器发送的创建容器请求后,利用管理服务器分发的容器镜像和初始化的I/O配置构建容器实例。在容器实例运行过程中,Runtime根据管理服务器下发的I/O配置,动态修改I/O地址。通过修改I/O地址,对于相同PLC应用程序可以控制不同下挂设备,无需修改代码,实现容器镜像的可复用。
在一些实施方式中,容器实例环境构建与运行流程如图7所示,包括以下步骤:
S21、runtime环境读取并解析管理服务器下发的用户初始化的I/O配置。
S22、I/O配置模块根据I/O配置将地址通配符替换为真实物理地址。
S23、PLC应用程序对应的容器实例运行期间,若检测到管理服务器中I/O配置服务下发的更新数据,则更新容器实例的I/O配置模块的地址数据表,并返回到S21。
S24、从控制器南向连接的I/O端口扫描输入变量到输入寄存器,并集中读取。
S25、容器实例以固定扫描周期运行,并将输出变量写入到输出寄存器。
S26、容器实例运行完成后,将输出寄存器中的数据集中输出到I/O端口,实时控制机械手等执行器的运行。
S27、容器实例定时将中间状态变量、运行性能参数上报到管理服务器,并由服务器将数据写入状态变量数据表中,可用于异常情况下的数据备份与报警。
作为示例,状态变量数据表如下:
表3:状态变量数据表
变量 | 数值 | 寄存器地址 | 变量描述 |
M1 | @3 | %M0.01 | 辅助继电器 |
S1 | @# | %S0.01 | 状态 |
T1 | #1 | %T0.01 | 定时器 |
... |
表3所示的数据表记录了辅助继电器M、状态寄存器S、定时器寄存器T等中间状态变量的名称、数值和寄存器地址信息,在容器异常中止的情况下,管理服务器可根据状态变量信息恢复该容器实例的初始状态到中止前状态,并接续输出控制指令。
步骤503:管理服务器管理和监控控制器上的容器实例。
管理服务器可以启动、停止控制器上的容器实例,并监控容器实例的运行状态。
在一些实施方式中,管理服务器在控制器节点上实现容器实例的启动和初始化,对于处于暂停态容器实例,可实现对容器实例的恢复。
在一些实施方式中,在容器实例运行状态下,管理服务器通过节点配置服务,用户可强制终止容器实例执行。
在一些实施方式中,控制器每次扫描结束后,向管理服务器上报容器实例的运行性能参数,比如CPU负载、内存、时延抖动等,由管理服务器保存状态信息,并对异常中断、时延抖动激增的异常场景进行实时报警。
步骤504:管理服务器动态迁移PLC应用程序。
在柔性制造生产过程中,由于产线工艺、工序调整,会出现PLC设备重新配置的场景,导致传统PLC硬件搬运难和布线繁琐情况。本申请实施例的技术方案提出的管理服务器,可将PLC应用程序从控制器A上的容器实例-1(记作控制器A-容器实例-1)同步复制到另一物理位置的控制器B上的容器实例-2(记作控制器B-容器实例-2),实现同一PLC应用程序的异地动态迁移。PLC动态迁移流程图如图8所示,包括以下步骤:
S41、管理服务器首先检测用户发出的动态迁移指令,若检测到该指令,则跳转至S42。
S42、从数据库读取控制器A上的容器实例-1的镜像信息,跳转至S43。
S43、根据容器实例-1的镜像信息从镜像库中拉取容器镜像,并在控制器B上创建容器实例-2,跳转至S44。
S44、暂停容器实例-1和容器实例-2,跳转至S45。
S45、控制器A从容器实例-1中提取程序运行产生的状态变量,并将其上报到管理服务器,跳转至S46。
S46、管理服务器取回状态变量,并保存至数据库,跳转至S47。
S47、控制器B从管理服务器数据库中取回状态变量,跳转至S48。
S48、并更新容器实例-2的状态变量,使其与容器实例-1保持同步,跳转至S49。
S49、管理服务器恢复运行容器实例-1和容器实例-2,跳转至S410。
S410、根据两容器本次扫描周期结束后,输出是否保持一致,判断迁移是否正确,若不正确,跳转至S411;若正确,跳转至S412和S413;
S411、对于不正确迁移的处理,首先将结果回滚更新,然后通知用户迁移失败,以失败状态结束此流程。
S412和S413、对于正确迁移的处理,终止容器实例-1,使能容器实例-2的输出,完成PLC应用程序从控制器A-容器实例-1到控制器B-容器实例-2的迁移,以成功状态结束此流程。
以下结合一个具体应用实例对本申请实施例的技术方案进行举例说明,需要说明的是,本申请实施例的技术方案并不局限于应用于以下应用实例,还可以应用于其他场景的应用实例。
经调研发现,柔性作业车间考虑了零件多可选工艺路径和工序多可选设备等加工柔性,其调度决策包含了确定各零件的加工设备(路径)及在各设备的加工顺序(开完工时间)两部分。以某汽车零部件的机加工调度为例,其柔性作业车间生产过程如图9所示,机加工车间有4道不同工序的加工单元,每个单元中仅负责处理一类工序,按照工艺顺序分别是精车、CNC铣、电火花、线切割工序,单元主要包含1个通用控制器、多台同等能力的加工设备集合和零件传送装置,假定各个加工单元仅有1-2台加工设备。一方面,根据实际生产需要,每道工序可采用多个加工设备,如不同型号的CNC数控铣床等,依据加工不同零件的种类进行设备选型。不同加工设备在外围端口上具有固定的物理地址。传统的设备切换是通过用户手动修改程序中的每个输入输出变量的地址,或者运维人员手动插拔,改变加工设备的外部端口为程序所需地址,带来维护效率差、切换用时长的问题。采用本申请实施例的技术方案,在设备不断电的情况,用户通过管理服务器修改容器的I/O地址,在容器实例的环境构建过程中,调用I/O配置模块的地址解析库函数,实现应用运行时I/O地址的动态配置。另一方面,机加工产线的控制器需要经常变动,比如增加或减少工序。以增加电镀工序为例,传统的工厂处理方式是整个产线重新设计,其后工序的控制器、加工设备等都需进行物理位置移动,每变动一次,需要停工3-7天,并由专业人员去部署改造。针对此,采用本申请实施例的技术方案,只需添加新工序和改变其原有传送装置走向,无需更改其他工序设备和控制器的位置,通过两侧控制器容器实例的复制和应用状态的更新,即可完成PLC应用程序的异地迁移。本申请实施例的技术方案,对于容器的配置和PLC应用程序的迁移只需停工较短时间(如半小时左右),而且不需要现场人力成本,实现零成本改造。
本申请实施例的技术方案,一方面,提出了容器化PLC,具体地,用户可通过管理服务器为PLC应用程序构建容器镜像,并按需分发到控制器节点上,生成多个容器实例,用户可在后台数据库中查询节点与实例实例的映射关系、容器实例运行状态等信息,方便用户开启、停止、监控容器应用,实现了PLC应用的软硬件解耦和远程部署。另一方面,提出了容器实例的I/O地址动态配置,具体地,容器实例运行期间,用户可随时更改I/O配置,管理服务器将更新后的I/O配置下发到控制器,容器实例的容器I/O配置模块解析通配符信息,并动态更改程序输入输出变量对应的I/O端子地址值,实现程序对于不同I/O下挂设备的动态适配,实现容器镜像的可复用。再一方面,提出了PLC动态迁移,具体地,对于工业产线上需要调整的柔性制造单元,管理服务器可提供对容器化PLC的动态迁移能力,具体来说,用户通过创建相同镜像的新容器实例,并配置相同状态变量信息,两容器实例同时运行一个扫描周期后,新容器实例能够与原容器实例保持输出同步,则实现了相同PLC应用程序的异地设备迁移,便于快速调整工序,保证柔性产线的灵活性。
图10是本申请实施例提供的管理服务器的结构示意图,如图10所示,所述管理服务器包括:
程序编译服务模块1001,用于获取多个PLC应用程序;基于所述多个PLC应用程序构建多个容器镜像,其中,不同的PLC应用程序对应不同的容器镜像;
节点配置服务模块1002,用于将所述多个容器镜像分发至一个或多个控制器,所述容器镜像用于所述控制器构建容器实例。
在一些实施方式中,所述程序编译服务模块1001,用于针对所述多个PLC应用程序中的每个PLC应用程序,基于所述PLC应用程序对应的容器镜像构建策略,构建所述PLC应用程序对应的容器镜像,其中,所述容器镜像构建策略包括:
第一构建规则,所述第一构建规则用于构建PLC APP模块,所述PLC APP模块用于实现PLC应用程序;
第二构建规则,所述第二构建规则用于构建runtime模块,所述runtime模块用于实现PLC应用程序的软件运行环境;
第三构建规则,所述第三构建规则用于构建I/O配置模块,所述I/O配置模块用于实现PLC应用程序的I/O变量地址的配置;以及,
第四构建规则,所述第四构建规则用于构建性能监控模块,所述性能监控模块用于实现监控PLC应用程序的信。
在一些实施方式中,所述节点配置服务模块1002,用于确定所述多个容器镜像与所述一个或多个控制器之间的映射关系;基于所述映射关系,将所述多个容器镜像分发至所述一个或多个控制器。
在一些实施方式中,所述一个或多个控制器包括第一控制器,所述第一控制器上构建有第一容器实例;所述管理服务器还包括:I/O配置服务模块1003,用于获取针对所述第一容器实例的I/O配置信息,将所述I/O配置信息下发给所述第一控制器,所述I/O配置信息用于所述第一控制器进行所述第一容器实例的I/O变量地址的配置。
在一些实施方式中,所述管理服务器还包括:性能监控服务模块1004,用于对所述一个或多个控制器上构建的至少部分容器实例进行以下至少一种管理:启动容器实例;恢复容器实例;停止容器实例;暂停容器实例;监控容器实例的运行状态。
在一些实施方式中,所述多个PLC应用程序包括第一PLC应用程序,所述一个或多个控制器包括第一控制器,所述第一控制器上构建有第一容器实例,所述第一容器实例基于所述第一PLC应用程序对应的容器镜像构建;所述性能监控服务模块1004,还用于检测到针对所述第一PLC应用程序的迁移指令的情况下,将所述第一PLC应用程序从所述第一控制器中的第一容器实例迁移到第二控制器中的第二容器实例。
在一些实施方式中,所述性能监控服务模块1004,还用于获取所述第一控制器中的第一容器实例的镜像信息;基于所述第一容器实例的镜像信息获取所述第一PLC应用程序对应的容器镜像,并将所述第一PLC应用程序对应的容器镜像下发至第二控制器,所述第一PLC应用程序对应的容器镜像用于所述第二控制器构建第二容器实例;将所述第一容器实例的状态信息同步至所述第二容器实例。
在一些实施方式中,所述性能监控服务模块1004,还用于暂停所述第一容器实例和所述第二容器实例;接收所述第一控制器上报的所述第一容器实例的状态信息,将所述第一容器实例的状态信息下发给所述第二控制器,所述第一容器实例的状态信息用于所述第二控制器更新所述第二容器实例的状态信息;恢复所述第一容器实例和所述第二容器实例;终止所述第一容器实例,并使能所述第二容器实例。
在一些实施方式中,所述性能监控服务模块1004,还用于接收所述第一控制器上报的所述第一容器的运行信息和状态信息,并将所述第一容器的运行信息和状态信息保存至数据库中。
在一些实施方式中,所述管理服务器还包括:镜像库1005,用于存储容器镜像;数据库1006,用于存储以下至少一种信息:容器实例的运行信息和状态信息、所述多个容器镜像与所述一个或多个控制器的映射关系、I/O配置信息。
需要说明的是,管理服务器也可以描述为容器化PLC管理服务器,本申请对管理服务器的名称不做限定。作为示例,以下表4列出了管理服务器提供的服务:
表4:管理服务器的服务数据表
本领域技术人员应当理解,图10所示的管理服务器的实现功能可参照前述方法的相关描述而理解。
图11是本申请实施例提供的容器化PLC系统的架构图,如图11所示,所述系统包括:管理服务器以及一个或多个控制器(图11示意出了控制器A和控制器B),所述一个或多个控制器通过总线与一个或多个执行器通信;其中,所述管理服务器用于执行前述方案中由管理服务器执行的方法步骤,所述控制器用于执行前述方案中由第一控制器执行的方法步骤。
具体实现时,管理服务器可部署于云服务器中,采用容器的可扩展模式来最大限度地利用节点资源,提供节点配置服务、程序编译服务、I/O配置服务、性能监控服务等服务。管理服务器与各控制器通过IP连接,包括不限于标准以太网、5G等。受控工业现场的组件(例如传感器和执行器)和各控制器之间的通信通过工业总线连接。
本申请实施例的技术方案,一方面,将PLC应用程序的部署从专用设备转到更灵活的容器环境,打破传统PLC软硬一体架构,以及软PLC依赖于工控机的情况。同时,与KVM等硬件虚拟化方式相比,容器虚拟化的硬件开销更低、实时性得以保障。用户将PLC应用程序与其依赖资源一起打包,放进跨平台架构环境,可以实现PLC应用程序的弹性管理、动态配置I/O地址以及快速迁移应用,为工业柔性制造提供了便捷性和灵活性。另一方面,I/O配置解决了传统PLC和软PLC只能在程序中使用固定I/O地址问题,实现用户无需修改程序就能动态适配不同地址的下挂设备,提高了用户的代码维护效率。再一方面,动态迁移解决了传统PLC由于工序调配带来的现场设备搬运难和布线繁琐问题,用户可以动态调配不同设备上的PLC应用程序,数据的连续性保证工序的无缝切换,提高了生产线的柔性程度。
图12是本申请实施例提供的一种电子设备1200示意性结构图。该电子设备可以是管理服务器或者控制器,图12所示的电子设备1200包括处理器1210,处理器1210可以从存储器中调用并运行计算机程序,以实现本申请实施例中的方法。
可选地,如图12所示,电子设备1200还可以包括存储器1220。其中,处理器1210可以从存储器1220中调用并运行计算机程序,以实现本申请实施例中的方法。
其中,存储器1220可以是独立于处理器1210的一个单独的器件,也可以集成在处理器1210中。
可选地,如图12所示,电子设备1200还可以包括收发器1230,处理器1210可以控制该收发器1230与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。
其中,收发器1230可以包括发射机和接收机。收发器1230还可以进一步包括天线,天线的数量可以为一个或多个。
可选地,该电子设备1200具体可为本申请实施例的管理服务器,并且该电子设备1200可以实现本申请实施例的各个方法中由管理服务器实现的相应流程,为了简洁,在此不再赘述。
可选地,该电子设备1200具体可为本申请实施例的控制器,并且该电子设备1200可以实现本申请实施例的各个方法中由控制器实现的相应流程,为了简洁,在此不再赘述。
应理解,本申请实施例的处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可以理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
应理解,上述存储器为示例性但不是限制性说明,例如,本申请实施例中的存储器还可以是静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)以及直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)等等。也就是说,本申请实施例中的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本申请实施例还提供了一种计算机可读存储介质,用于存储计算机程序。
可选的,该计算机可读存储介质可应用于本申请实施例中的管理服务器,并且该计算机程序使得计算机执行本申请实施例的各个方法中由管理服务器实现的相应流程,为了简洁,在此不再赘述。
可选地,该计算机可读存储介质可应用于本申请实施例中的控制器,并且该计算机程序使得计算机执行本申请实施例的各个方法中由控制器实现的相应流程,为了简洁,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,)ROM、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (19)
1.一种容器化可编程逻辑控制器PLC的实现方法,其特征在于,应用于管理服务器,所述方法包括:
获取多个PLC应用程序;
基于所述多个PLC应用程序构建多个容器镜像,其中,不同的PLC应用程序对应不同的容器镜像;
将所述多个容器镜像分发至一个或多个控制器,所述容器镜像用于所述控制器构建容器实例。
2.根据权利要求1所述的方法,其特征在于,所述基于所述多个PLC应用程序构建多个容器镜像,包括:
针对所述多个PLC应用程序中的每个PLC应用程序,基于所述PLC应用程序对应的容器镜像构建策略,构建所述PLC应用程序对应的容器镜像,其中,所述容器镜像构建策略包括:
第一构建规则,所述第一构建规则用于构建PLC APP模块,所述PLC APP模块用于实现PLC应用程序;
第二构建规则,所述第二构建规则用于构建运行时runtime模块,所述runtime模块用于实现PLC应用程序的软件运行环境;
第三构建规则,所述第三构建规则用于构建I/O配置模块,所述I/O配置模块用于实现PLC应用程序的I/O变量地址的配置;以及,
第四构建规则,所述第四构建规则用于构建性能监控模块,所述性能监控模块用于实现监控PLC应用程序的信息。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述多个容器镜像与所述一个或多个控制器之间的映射关系;
所述将所述多个容器镜像分发至一个或多个控制器,包括:
基于所述映射关系,将所述多个容器镜像分发至所述一个或多个控制器。
4.根据权利要求1所述的方法,其特征在于,所述一个或多个控制器包括第一控制器,所述第一控制器上构建有第一容器实例;所述方法还包括:
获取针对所述第一容器实例的I/O配置信息,将所述I/O配置信息下发给所述第一控制器,所述I/O配置信息用于所述第一控制器进行所述第一容器实例的I/O变量地址的配置。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述将所述多个容器镜像分发至一个或多个控制器之后,所述方法还包括:
对所述一个或多个控制器上构建的至少部分容器实例进行以下至少一种管理:
启动容器实例;
恢复容器实例;
停止容器实例;
暂停容器实例;
监控容器实例的运行状态。
6.根据权利要求1至3中任一项所述的方法,其特征在于,所述多个PLC应用程序包括第一PLC应用程序,所述一个或多个控制器包括第一控制器,所述第一控制器上构建有第一容器实例,所述第一容器实例基于所述第一PLC应用程序对应的容器镜像构建;所述方法还包括:
检测到针对所述第一PLC应用程序的迁移指令的情况下,将所述第一PLC应用程序从所述第一控制器中的第一容器实例迁移到第二控制器中的第二容器实例。
7.根据权利要求6所述的方法,其特征在于,所述将所述第一PLC应用程序从所述第一控制器中的第一容器实例迁移到第二控制器中的第二容器实例,包括:
获取所述第一控制器中的第一容器实例的镜像信息;
基于所述第一容器实例的镜像信息获取所述第一PLC应用程序对应的容器镜像,并将所述第一PLC应用程序对应的容器镜像下发至第二控制器,所述第一PLC应用程序对应的容器镜像用于所述第二控制器构建第二容器实例;
将所述第一容器实例的状态信息同步至所述第二容器实例。
8.根据权利要求7所述的方法,其特征在于,所述将所述第一容器实例的状态信息同步至所述第二容器实例,包括:
暂停所述第一容器实例和所述第二容器实例;
接收所述第一控制器上报的所述第一容器实例的状态信息,将所述第一容器实例的状态信息下发给所述第二控制器,所述第一容器实例的状态信息用于所述第二控制器更新所述第二容器实例的状态信息;
恢复所述第一容器实例和所述第二容器实例;
终止所述第一容器实例,并使能所述第二容器实例。
9.一种容器化PLC的实现方法,其特征在于,应用于第一控制器,所述方法包括:
接收管理服务器下发的一个或多个容器镜像,所述容器镜像基于PLC应用程序构建,其中,不同的容器镜像对应不同的PLC应用程序;
根据所述一个或多个容器镜像构建一个或多个容器实例。
10.根据权利要求9所述的方法,其特征在于,所述一个或多个容器实例包括第一容器实例;所述方法还包括:
接收管理服务器下发的针对所述第一容器实例的I/O配置信息;
根据所述I/O配置信息对所述第一容器实例进行I/O变量地址的配置。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
在所述第一容器实例运行期间,若接收到所述管理服务器下发的针对所述第一容器实例的更新的I/O配置信息,则根据所述更新的I/O配置信息对所述第一容器实例进行I/O变量地址的重配置。
12.根据权利要求10或11所述的方法,其特征在于,所述方法还包括:
从I/O端口扫描输入数据到输入寄存器;
运行所述述第一容器实例以执行以下操作:读取所述输入寄存器中的输入数据;对所述输入数据进行处理,得到输出数据;将所述输出数据写入到输出寄存器;将所述输出寄存器中的输出数据输出到I/O端口,所述输出数据用于所述I/O端口对执行器进行控制。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
将所述第一容器实例的运行信息和状态信息上报至管理服务器,所述第一容器的运行信息和状态信息用于所述管理服务器进行与所述第一容器实例相关的管理。
14.一种管理服务器,其特征在于,所述管理服务器包括:
程序编译服务模块,用于获取多个PLC应用程序;基于所述多个PLC应用程序构建多个容器镜像,其中,不同的PLC应用程序对应不同的容器镜像;
节点配置服务模块,用于将所述多个容器镜像分发至一个或多个控制器,所述容器镜像用于所述控制器构建容器实例。
15.根据权利要求14所述的管理服务器,其特征在于,所述一个或多个控制器包括第一控制器,所述第一控制器上构建有第一容器实例;所述管理服务器还包括:
I/O配置服务模块,用于获取针对所述第一容器实例的I/O配置信息,将所述I/O配置信息下发给所述第一控制器,所述I/O配置信息用于所述第一控制器进行所述第一容器实例的I/O变量地址的配置。
16.一种容器化PLC系统,其特征在于,所述系统包括:管理服务器以及一个或多个控制器,所述一个或多个控制器通过总线与一个或多个执行器通信;其中,
所述管理服务器用于执行权利要求1至8中任一项所述的方法;
所述控制器用于执行权利要求9至13中任一项所述的方法。
17.一种管理服务器,其特征在于,包括:处理器和存储器,该存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,执行如权利要求1至8中任一项所述的方法。
18.一种控制器,其特征在于,包括:处理器和存储器,该存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,执行如权利要求9至13中任一项所述的方法。
19.一种计算机可读存储介质,其特征在于,用于存储计算机程序,所述计算机程序使得计算机执行如权利要求1至8中任一项所述的方法,或者权利要求9至13中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211080043.6A CN116909678A (zh) | 2022-09-05 | 2022-09-05 | 一种容器化plc的实现方法及系统、管理服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211080043.6A CN116909678A (zh) | 2022-09-05 | 2022-09-05 | 一种容器化plc的实现方法及系统、管理服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116909678A true CN116909678A (zh) | 2023-10-20 |
Family
ID=88353611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211080043.6A Pending CN116909678A (zh) | 2022-09-05 | 2022-09-05 | 一种容器化plc的实现方法及系统、管理服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116909678A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117808276A (zh) * | 2023-12-08 | 2024-04-02 | 广州翼辉信息技术有限公司 | 产线系统、产线及订单处理方法 |
-
2022
- 2022-09-05 CN CN202211080043.6A patent/CN116909678A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117808276A (zh) * | 2023-12-08 | 2024-04-02 | 广州翼辉信息技术有限公司 | 产线系统、产线及订单处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10868895B2 (en) | Distributed dynamic architecture for error correction | |
CN111638970B (zh) | 以网络为中心的进程控制系统中的冗余 | |
JP5942446B2 (ja) | サポート装置およびサポートプログラム | |
EP2897007B1 (en) | Process controller and updating method thereof | |
CN108023809B (zh) | 在过程控制系统中启用对设备的控制的系统和方法 | |
CN103403633B (zh) | 可编程控制器的中央处理器单元 | |
US10165043B2 (en) | Multi-core device with separate redundancy schemes in a process control system | |
JP2020518921A (ja) | オープンアーキテクチャ産業制御システム | |
US8706262B2 (en) | CPU unit of PLC, system program for PLC, and recording medium storing system program for PLC | |
CN102655467B (zh) | 一种以太网现场总线主站结构及控制方法 | |
CN103744342A (zh) | 一种基于双核处理器的pac实时控制系统 | |
CN109983411B (zh) | 程序模块的流程控制 | |
US9720404B2 (en) | Gateway offering logical model mapped to independent underlying networks | |
CN115378761B (zh) | 一种基于PLC的EtherCAT主站系统快速实现方法 | |
US20190056970A1 (en) | Method for computer-aided coupling a processing module into a modular technical system and modular technical system | |
US20210406050A1 (en) | Techniques to decrease a live migration time for a virtual machine | |
CN114690702B (zh) | 一种软plc和运动控制相结合的机器人控制系统 | |
WO2019097800A1 (ja) | コントロール装置 | |
JP2016177716A (ja) | 冗長化pcシステム | |
CN116909678A (zh) | 一种容器化plc的实现方法及系统、管理服务器 | |
US20140310435A1 (en) | Relay interface module for a distributed control system | |
JP2009181443A (ja) | 産業用コントローラ用機器 | |
CN103430109A (zh) | 可编程控制器的cpu单元、可编程控制器用的系统程序以及存储了可编程控制器用的系统程序的记录介质 | |
CN109906440B (zh) | 处理控制系统中的具有分开的冗余方案的多核心设备 | |
JP6686521B2 (ja) | 制御システムおよび制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |