CN113508346B - 控制装置以及软件的部署方法 - Google Patents

控制装置以及软件的部署方法 Download PDF

Info

Publication number
CN113508346B
CN113508346B CN202080017947.7A CN202080017947A CN113508346B CN 113508346 B CN113508346 B CN 113508346B CN 202080017947 A CN202080017947 A CN 202080017947A CN 113508346 B CN113508346 B CN 113508346B
Authority
CN
China
Prior art keywords
program
version
package
packages
user program
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
CN202080017947.7A
Other languages
English (en)
Other versions
CN113508346A (zh
Inventor
小岛达矢
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.)
Omron Corp
Original Assignee
Omron Corp
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 Omron Corp filed Critical Omron Corp
Publication of CN113508346A publication Critical patent/CN113508346A/zh
Application granted granted Critical
Publication of CN113508346B publication Critical patent/CN113508346B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31418NC program management, support, storage, distribution, version, update

Abstract

控制装置(100)具有非易失性地保存用户程序和程序包(32A、32B、32C)的主存储装置(108)、配置有包管理模块(106A)的主存储器(106)以及处理器(102)。包管理模块(106A)执行部署处理,所述部署处理用于基于用户程序的版本,从程序包(32A、32B、32C)中选择作为部署对象的包,并从作为部署对象的包中,将与用户程序的版本相适合的版本的程序配置到主存储器(106)中。

Description

控制装置以及软件的部署方法
技术领域
本公开涉及对控制对象进行控制的控制装置以及该控制装置中的软件的部署方法。
背景技术
在各种制造现场,导入有PLC(Programmable Logic Controller:可编程逻辑控制器)等控制装置。这样的控制装置是一种计算机,执行根据制造装置、制造设备等而设计的控制程序等用户程序。这种可编程控制器存储利用程序工具创建的用户程序,并且解释和执行该用户程序来控制过程。
由于编程工具和可编程控制器分别管理程序,可能会产生在工具与控制器之间程序的版本不匹配的情况。日本特开平7-253875号公报(专利文献1)公开了一种程序执行阻止单元,在工具版本与解释器版本不一致的情况下,该程序执行阻止单元阻止相应的用户程序的执行。
现有技术文献
专利文献
专利文献1:日本特开平7-253875号公报
发明内容
发明所要解决的课题
在可编程控制器中,大多预先保存有在用户程序的执行时被调用的多个程序。为了能够应对用户程序的各种版本,考虑将各种版本的程序保存在可编程控制器中。因此,为了执行用户程序,可编程控制器需要选择与用户程序的版本对应的适当版本的打包程序。
本公开的1个目的在于,提供一种能够根据用户程序的版本从多个版本中选择适当版本的打包程序的控制装置以及该控制装置中的软件的部署方法。
用于解决课题的手段
本公开的一个例子是用于对控制对象进行控制的控制装置,该控制装置具有:主存储装置,其非易失性地保存用户程序和1个或多个程序包,所述1个或多个程序包保存与用户程序协作执行的1个或多个版本的程序;主存储器,其用于配置用户程序和程序包的程序;以及处理器,其用于执行包含对程序包进行管理的包管理模块的软件,包管理模块执行部署处理,所述部署处理用于基于用户程序的版本,从1个或多个程序包中选择作为部署对象的包,并从作为部署对象的包中,将与用户程序的版本相适合的版本的程序配置到主存储器中。
根据上述内容,控制装置能够根据用户程序的版本,从多个版本中选择适当版本的打包程序。由此,例如能够确保用户程序的向后兼容性。
优选的是,1个或多个程序包包含校验模块,所述校验模块根据包管理模块的部署处理,从作为部署对象的包中选择与用户程序的版本相适合的版本的程序,并将该选择的程序配置到主存储器中。
根据上述内容,包管理模块仅选择所需的包即可。另一方面,校验模块仅选择适当版本的程序即可。因此,能够灵活地应对包的追加。
优选的是,主存储装置保存与控制装置的硬件的形式名相关的形式信息,包管理模块从主存储装置中取得形式信息,基于形式信息和用户程序的版本,从1个或多个程序包中选择作为部署对象的包。
根据上述内容,能够基于形式信息,选择包含与用户程序协作的程序的包。
优选的是,主存储装置保存包管理表,所述包管理表对形式信息、和在1个或多个程序包中与形式信息对应的程序的版本进行存储,校验模块基于形式信息和存储在包管理表中的信息,取得与用户程序的版本相适合的、关于包的程序的版本的信息。
根据上述内容,能够基于形式信息和用户程序的版本,从包中选择与用户程序相适合的程序。
优选的是,1个或多个程序包是多个程序包,多个程序包包含附加到控制装置的附加包,主存储装置保存将用户程序的版本和多个程序包各自的程序的版本对应起来进行存储的表,包管理模块基于存储在表中的信息,判定包含附加包的多个程序包的组合是否是与用户程序的版本相适合的组合,在是与用户程序的版本相适合的组合的情况下,选择具有与用户程序的版本相适合的版本的附加包的程序。
根据上述内容,能够适当地对附加包的程序进行部署。
本公开的一个例子是软件的部署方法,其在对控制对象进行控制的控制装置中被利用,其中,控制装置具有:主存储装置,其非易失性地保存用户程序和1个或多个程序包,所述1个或多个程序包保存与用户程序协作执行的1个或多个版本的程序;主存储器,其用于配置用户程序和程序包的程序;以及处理器,其用于执行软件,部署方法具有以下步骤:取得用户程序的版本;基于用户程序的版本,从1个或多个程序包中选择作为部署对象的包;从作为部署对象的包中,选择与用户程序的版本相适合的版本的程序;以及将所选择的程序配置到主存储器中。
根据上述内容,能够根据用户程序的版本,从多个版本中选择适当版本的打包程序。由此,例如能够确保用户程序的向后兼容性。
优选的是,选择作为部署对象的包的步骤包含以下步骤:取得存储在主存储装置中的、与控制装置的硬件的形式名相关的形式信息;以及基于形式信息和用户程序的版本,从1个或多个程序包中选择作为部署对象的包。
根据上述内容,能够基于形式信息,选择包含与用户程序协作的程序的包。
优选的是,主存储装置保存包管理表,所述包管理表对形式信息、和在1个或多个程序包中与形式信息对应的程序的版本进行存储,选择与用户程序的版本相适合的版本的程序的步骤包含基于形式信息取得版本的信息的步骤。
根据上述内容,能够基于形式信息和用户程序的版本,从包中选择与用户程序相适合的程序。
优选的是,1个或多个程序包是多个程序包,多个程序包包含附加到控制装置的附加包,主存储装置保存将用户程序的版本和多个程序包各自的程序的版本对应起来进行存储的表,从作为部署对象的包中选择与用户程序的版本相适合的版本的程序的步骤包含以下步骤:基于存储在表中的信息,判定包含附加包的多个程序包的组合是否是与用户程序的版本相适合的组合;以及在多个程序包的组合是与用户程序的版本相适合的组合的情况下,选择具有与用户程序的版本相适合的版本的附加包的程序。
根据上述内容,能够适当地对附加包的程序进行部署。
发明的效果
根据本公开,控制装置能够根据用户程序的版本,从多个版本中选择适当版本的打包程序。
附图说明
图1是示意性表示本实施方式的控制系统的整体结构例的图。
图2是表示本实施方式的控制装置的硬件结构例的框图。
图3是表示与本实施方式的控制装置连接的支持装置的硬件结构例的示意图。
图4是表示本实施方式的控制装置的应用场景的一例的图。
图5是表示包管理表的例子的示意图。
图6是表示包匹配性表60的例子的示意图。
图7是说明本实施方式的控制装置中的基于固定形式信息的部署处理的图。
图8是说明本实施方式的控制装置中的附加包的部署处理的图。
图9是表示打包程序内的校验模块执行的处理的流程的流程图。
具体实施方式
以下,参照附图说明本发明的本实施方式。在以下的说明中,对相同的部件和结构要素标注相同标号。它们的名称和功能也相同。因此,不重复对它们的详细说明。另外,以下说明的本实施方式以及各变形例也可以适当地选择性地组合。
<A.应用例>
首先,参照图1和图2,对应用本发明的场景的一例进行说明。
图1是示意性表示本实施方式的控制系统1的整体结构例的图。图1表示以本实施方式的控制装置100为中心的控制系统1。
参照图1,控制装置100相当于对各种设备、装置等控制对象进行控制的工业用控制器。控制装置100是执行后述的控制运算的一种计算机,典型地,也可以具体化为PLC(可编程控制器)。
控制装置100也可以经由现场网络2与各种现场设备500连接。控制装置100经由现场网络2等与1个或多个现场设备500之间交换数据。一般而言,“现场网络”也被称为“现场总线”,但为了简化说明,在以下的说明中总称为“现场网络”。即,本说明书的“现场网络”是除了狭义的“现场网络”之外还能够包含“现场总线”的概念。
现场网络2能够连接任意的现场设备500。现场设备500包含对制造装置或生产线等(以下,也统称为“现场”。)提供某种物理性的作用的致动器、以及与现场之间交换信息的输入输出装置等。例如,作为现场网络2,能够采用EtherCAT(注册商标)。
在图1所示的例子中,与现场网络2连接的现场设备500包含远程I/O(Input/Output:输入输出)装置510、机器人控制器522、526以及伺服驱动器540、544。机器人控制器522、526以及伺服驱动器540、544相当于按照来自控制装置100的控制指令而动作的1个或多个致动器(器件)。
在图1中,对于按照来自控制装置100的控制指令进行动作的1个或多个致动器,示出了也与现场网络2连接的例子,但不限于此,只要能够接收来自控制装置100的控制指令,则可以是任意的连接方式。例如,也可以经由信号线从与现场网络2连接的远程I/O装置510提供控制指令。
图2是表示本实施方式的控制装置100的硬件结构例的框图。参照图2,本实施方式的控制装置100是也被称为CPU单元的运算处理部,具有处理器102和现场网络控制器130。
现场网络控制器130控制经由现场网络2的现场设备500之间的数据交换。这样的数据交换包含:从控制装置100发送针对现场设备500的控制指令等数据(以下,也称为“输出数据”。)的处理;以及控制装置100接收在现场设备500中收集或生成的数据(以下,也称为“输入数据”。)的处理。现场网络控制器130对应于“通信电路”的一个实施例。
控制装置100构成为每隔预先确定的控制周期,依次反复输出数据的发送、输入数据的接收、使用输入数据生成输出数据的控制程序的执行,由此控制现场设备500。
控制程序包含根据用户的控制目的而生成的用户程序、和与用户程序协作来实现用户的控制目的的至少1个程序。后者的程序例如可以包含系统程序。在本实施方式中,在控制装置100中保存有至少1个包,包具有1个或多个版本的程序。
控制装置100根据用户程序的版本等,选择所需的包,对各包给出包含用户程序的版本信息的部署指示。各包根据其版本信息,加载适当的版本的程序。因此,在控制装置100中,能够根据用户程序的版本,从多个版本中选择适当版本的打包程序。并且,在控制装置100中,还能够灵活地应对包的追加(附加)。
以下,作为本发明的更具体的应用例,对本实施方式的控制系统1的更详细的结构以及处理进行说明。
<B.控制系统的整体结构例>
首先,对图1所示的控制系统1的整体结构例更详细地进行说明。
在图1所示的结构例中,伺服驱动器540、544按照来自控制装置100的控制指令(例如位置指令或速度指令等),分别驱动伺服电机542、546。
机器人控制器522驱动机器人520,机器人控制器526驱动机器人524。机器人控制器522、526按照来自控制装置100的控制指令(位置指令或速度指令等),进行轨迹计算和各轴的角度计算等,并且按照计算结果,驱动构成机器人520、524的伺服电机等。
远程I/O装置510典型地包含经由现场网络2进行通信的通信耦合器、以及用于进行输入数据的取得和输出数据的输出的输入输出部(以下,也称为“I/O单元”。)。在远程I/O装置510上连接有输入继电器、各种传感器(例如模拟传感器、温度传感器、振动传感器等)等对输入数据进行收集的装置以及输出继电器、接触器、伺服驱动器和其他任意的致动器等对现场施加某种作用的装置。
作为现场设备500,并不限定于这些,能够采用收集输入数据的任意的器件(例如视觉传感器等)、以及给出依据输出数据的某些作用的任意器件(例如,逆变器装置等)等。
控制装置100也可以经由上位网络6与其他装置连接。上位网络6也可以采用作为通常的网络协议的以太网(注册商标)或EtherNet/IP(注册商标)。更具体而言,也可以在上位网络61上连接1个或多个服务器装置300、或1个或多个显示装置400。
作为服务器装置300,设想数据库系统、制造执行系统(MES:ManufacturingExecution System)等。制造执行系统取得来自作为控制对象的制造装置、设备的信息,对生产整体进行监视和管理,还能够处理订单信息、品质信息、出货信息等。不限于此,也可以在上位网络61上连接提供信息系统服务的装置。作为信息系统服务,设想取得来自作为控制对象的制造装置、设备的信息,并进行宏观或微观的分析等的处理。例如,可设想从来自作为控制对象的制造装置、设备的信息中提取该信息所包含的某些特征性趋势的数据挖掘、用于基于来自作为控制对象的设备、机械的信息进行机器学习的机器学习工具等。
显示装置400接受来自用户的操作,对控制装置100输出与用户操作对应的命令等,并且图形化地显示控制装置100中的运算结果等。
此外,可对控制装置100连接支持装置200。支持装置200是辅助控制装置100对控制对象进行控制所需的准备的装置。具体而言,支持装置200提供在控制装置100中执行的程序的开发环境(程序创建编辑工具、解析器、编译器等)、用于设定与控制装置100以及控制装置100连接的各种设备的参数(配置)的设定环境、向控制装置100输出所生成的序列程序的功能、在线修正/变更在控制装置100上执行的序列程序等的功能等。
在图1所示的控制系统1中,控制装置100、支持装置200及显示装置400各自分体地构成,但也可以采用将这些功能的全部或一部分集成于单一装置的结构。
<C.控制装置的硬件结构例>
图2是表示本实施方式的控制装置100的硬件结构例的框图。
参照图2,控制装置100是被称作CPU单元的运算处理部,包含处理器102、芯片组104、主存储器106、储存器108、上位网络控制器110、USB(Universal Serial Bus:通用串行总线)控制器112、存储卡接口114、内部总线控制器120、现场网络控制器130。
处理器102由CPU(Central Processing Unit:中央处理单元)、MPU(MicroProcessing Unit:微处理单元)、GPU(Graphics Processing Unit:图形处理单元)等构成。作为处理器102,可以采用具有多个核的结构,也可以配置多个处理器102。即,控制装置100具有1个或多个处理器102和/或具有1个或多个核的处理器102。芯片组104通过控制处理器102和外围元件来实现作为控制装置100整体的处理。
主存储器106由DRAM(Dynamic Random Access Memory:动态随机存取存储器)或SRAM(Static Random Access Memory:静态随机存取存储器)等易失性存储装置等构成。储存器108是主存储装置,例如由HDD(Hard Disk Drive:硬盘驱动器)和SSD(Solid StateDrive:固态硬盘)等非易失性存储装置等构成。
处理器102读出保存在储存器108中的各种程序,并在主存储器106中展开执行,由此实现与控制对象相应的控制以及各种处理。在储存器108中,除了用户数据30之外,还保存有1个或多个打包程序32以及设定信息40。
根据用户的控制目的,在支持装置200中创建用户数据30,并从支持装置200发送到控制装置100。用户数据30包含根据使用控制系统1进行控制的对象生产线(过程)等而设计的用户程序。用户程序与打包程序32协作,实现用户的控制目的。即,用户程序通过利用由打包程序32提供的命令、函数、功能模块等来实现被编程的动作。因此,有时也将用户程序和打包程序总称为“控制程序”。打包程序32例如根据作为控制对象的制造装置或者设备等来准备,并保存在储存器108中。
系统程序34能够包含协议栈36以及设备驱动器38。系统程序34是用于实现作为控制装置100的功能的程序。例如,系统程序34能够包含调度程序、输入输出处理程序、其他系统程序。协议栈36由对现场网络2中的通信的步骤、交换进行规定的多个协议的层级构成。设备驱动器38是用于控制现场网络控制器130的驱动器。
上位网络控制器110经由上位网络6来控制与服务器装置300、显示装置400(参照图1)等之间的数据交换。USB控制器112经由USB连接来控制与支持装置200之间的数据交换。
存储卡接口114构成为能够装卸存储卡116,能够对存储卡116写入数据,并从存储卡116读出各种数据(序列程序、用户程序等)。
内部总线控制器120控制与安装于控制装置100的I/O单元122之间的数据交换。具体而言,内部总线控制器120作为向I/O单元122输出的数据(输出数据)的发送缓冲器、以及从I/O单元122输入的数据(输入数据)的接收缓冲器发挥功能。另外,通过处理器102的运算处理而生成的输出数据被原始保存在储存器108中。然后,要传送到特定的I/O单元122的输出数据从储存器108被读出,并临时保持在发送缓冲器中。另外,从I/O单元122传送的输入数据被临时保持在接收缓冲器中之后,转移到储存器108。内部总线控制器120还与I/O单元122之间进行发送出发送缓冲器的输出数据的处理、以及接收输入数据并保存到接收缓冲器的处理。典型地,内部总线控制器120提供内部总线中的物理层和数据链路层的功能。
现场网络控制器130控制经由现场网络2的与现场设备500之间的数据交换。即,现场网络控制器130按照现场网络2的规格,控制输出数据的发送及输入数据的接收。具体而言,现场网络控制器130作为向现场设备500输出的数据(输出数据)的发送缓冲器、以及从现场设备500输入的数据(输入数据)的接收缓冲器发挥功能。另外,通过处理器102的运算处理而生成的输出数据被原始保存在储存器108中。然后,要传送到特定的现场设备500的输出数据从储存器108被读出,并临时保持在发送缓冲器中。另外,从现场设备500传送的输入数据被临时保持在接收缓冲器中之后,转移到储存器108。现场网络控制器130还与现场设备500之间进行发送出发送缓冲器的输出数据的处理、以及接收输入数据并保存到接收缓冲器的处理。典型地,现场网络控制器130提供现场网络2中的物理层和数据链路层的功能。
在图2中,示出了通过处理器102执行程序而提供所需的功能的结构例,但也可以使用专用的硬件电路(例如ASIC或FPGA等)来安装这些所提供的功能的一部分或全部。或者,也可以使用遵循通用架构的硬件(例如以通用个人计算机为基础的工业用个人计算机)来实现控制装置100的主要部分。在该情况下,也可以使用虚拟化技术并行地执行用途不同的多个OS(Operating System:操作系统),并且在各OS上执行所需的应用程序。
<D.支持装置的结构例>
图3是表示与本实施方式的控制装置100连接的支持装置200的硬件结构例的示意图。作为一例,支持装置200使用遵循通用架构的硬件(例如,通用个人计算机)来实现。
参照图3,支持装置200包含CPU或GPU等处理器202、主存储装置204、输入部206、输出部208、二次存储装置210、光学驱动器212、通信接口218。这些组件经由处理器总线220连接。
处理器202读出保存在二次存储装置210中的程序(作为一例,OS 2102和支持程序2104),并在主存储装置204中展开执行,由此实现各种处理。
在二次存储装置210中,除了用于实现基本功能的OS 2102以外,还保存有用于提供作为支持装置200的功能的支持程序2104。支持程序2104通过由作为计算机的信息处理装置(实质上为处理器202)执行,实现本实施方式的支持装置200。
在二次存储装置210中保存有在执行支持程序2104而提供的开发环境中由用户创建的项目2106。
在本实施方式中,支持装置200提供能够集成进行针对控制装置100(图3中记述为“PLC”)所包含的各设备的设定、以及由各设备执行的程序的创建的开发环境。项目2106包含通过这样的集成开发环境生成的数据。
典型地,项目2106包含标准控制源程序2108。标准控制源程序2108在被转换为目标代码后,被传送到控制装置100,并作为用户程序进行保存。
输入部206由键盘、鼠标等构成,受理用户操作。输出部208由显示器、各种指示器、打印机等构成,输出来自处理器202的处理结果。
通信接口218经由USB或以太网等任意的通信介质来与控制系统1之间交换数据。
支持装置200具有光学驱动器212,从非易失性地保存计算机可读取的命令的记录介质214(例如DVD(Digital Versatile Disc:数字多功能光盘)等光学记录介质)中读取保存于其中的程序,并安装于二次存储装置210等。
由支持装置200执行的支持程序2104等可以经由计算机可读取的记录介质214进行安装,但也可以以从网络上的服务器装置等下载的形式进行安装。另外,本实施方式的支持装置200提供的功能也有时以利用OS提供的模块的一部分的形式实现。
在图3中,示出了通过处理器202执行程序来提供作为支持装置200所需的功能的结构例,但也可以使用专用的硬件电路(例如ASIC或FPGA等)来安装这些所提供的功能的一部分或全部。
<E.控制装置的应用场景的例子>
图4是表示本实施方式的控制装置100的应用场景的一例的图。另外,图4所示的结构通过在主存储器106中展开程序来实现。
作为主存储装置的储存器108保存用户数据30、包32A、32B、32C、形式信息50以及包匹配性表60。包32A、32B、32C在图4中也分别标记为“包A”、“包B”、“包C”。另一方面,通过在主存储器106中展开程序,将包管理模块106A配置在主存储器106中。
用户数据30在支持装置200中被创建,并从支持装置200被传送到控制装置100。用户数据30包含用户程序10、用户数据版本信息12以及配置数据14。
用户程序10利用由包32A~32C中的1个或多个提供的命令、函数、功能模块等来实现目标动作。用户程序10的版本由用户数据版本信息12表示。在图3的示例中,用户数据的版本是“1.2”。用户数据30除了用户数据版本的信息以外,还可以包含用户数据的属性信息。
配置数据14包括对包含控制装置100的控制系统1的结构、设定进行定义的信息。例如,配置数据14能够包含与连接于现场网络2的现场设备500建立了关联的用户程序、设定值的信息以及与连接于上位网络6的装置相关联的用户程序、设定值的信息。
在控制装置100中以包单位保存程序。例如,包32A、32B、32C也可以与E-CAT等通信协议相关。包可以预先安装在控制装置100中,也可以通过附加而安装在控制装置100中。
包32A、32B、32C各自包含1个或多个版本的程序(打包程序)和校验模块。包32A包含版本1.0的程序20A、版本1.1的程序21A、版本1.2的程序22A和校验模块25A。
包32B包含版本1.0的程序20B、版本2.0的程序22B和校验模块25B。
包件32C包含版本1.0的程序20C和校验模块25C。
在后述的部署中,各包的校验模块对该包所包含的1个或多个程序的版本进行校验,并选择适当版本的程序。所谓适当版本,例如是用户程序相对于作为打包程序的程序具有向后兼容性的情况下的版本。也可以是用户程序相对于作为打包程序的程序具有向前兼容性的版本。
形式信息50包含形式名信息52和包管理表54。形式名信息52包含与硬件的形式名相关的信息,例如图2所示的处理器102的形式。形式名信息52也可以包含与其他硬件的形式名相关的信息。例如形式名信息52也可以包含现场网络控制器130的形式信息。
包管理表54将形式名信息52中包含的形式名与对应的打包程序的程序版本关联起来进行存储。图5是表示包管理表54的例子的示意图。在包管理表54中保存有处理器102的形式。处理器102的形式与各包的程序(图5中记载为“包A程序”、“包B程序”等)的适用版本对应。例如在处理器102的形式为“CPU101-1”的情况下,包A程序的适用程序的版本为1.1以后,包B程序的适用程序的版本为1.0以后。
包匹配性表60将用户数据版本与打包程序的版本对应起来进行存储。图6是表示包匹配性表60的例子的示意图。如图6所示,针对1个用户数据版本,登记各包的程序的版本。包匹配性表60表示相对于某个用户数据版本无法使用的打包程序的版本的组合。例如,当用户数据版本是1.0时,不能利用包A程序A(版本1.01)、包B程序(版本1.01)和包C程序(版本1.02)的组合。
在主存储器106中展开由处理器102执行的程序。包管理模块106A是在主存储器106中展开的程序的模块之一。通过处理器102执行程序而取得的数据、信息等被临时保存在主存储器106中。在图4中,从储存器108向包管理模块106A的方向的箭头表示从储存器108取得的信息被保存到主存储器106中。另一方面,从包管理模块106A向储存器108的方向的箭头表示由包管理模块106A进行的控制。
包管理模块106A从储存器108取得形式信息50,从各个包32A、32B、32C中选择作为部署对象的打包程序。包管理模块106A从储存器108取得用户数据的版本,基于该用户数据版本对选择出的打包程序进行部署。由此,与用户数据版本相适合的版本的打包程序被展开到主存储器106中。
<F.部署处理>
在以下说明的例子中,设为包32A、32B被预先安装于控制装置100,包32C是被附加到控制装置100的打包程序。
图7是说明本实施方式的控制装置中的基于固定形式信息的部署处理的图。图7表示基于预先包含在形式信息50中的信息的部署的流程。在步骤S1中,包管理模块106A参照形式信息50,取得形式信息(例如处理器102的形式信息)。
接着,在步骤S2中,包管理模块106A参照包管理表54。包管理模块106A基于在步骤S1中取得的形式信息,取得作为部署对象的包、以及与该包的程序的适当的版本相关的信息(形式信息)。
接着,在步骤S3中,包管理模块106A参照用户数据30。具体而言,包管理模块106A参照用户数据版本信息12,取得用户数据版本。
在步骤S4A中,包管理模块106A根据用户数据版本执行包32A的部署。在该情况下,包管理模块106A对包32A的校验模块25A给出部署指示。在包32A中,选择能够与校验模块25A相适合的打包程序(步骤S5A),对该程序进行部署(步骤S6A)。
同样地,在步骤S4B中,包管理模块106A按照用户数据版本,对包32B进行部署。包管理模块106A对包32B的校验模块25B给出部署指示。在包32B中,选择能够与校验模块25B相适合的打包程序(步骤S5B),对该程序进行部署(步骤S6B)。
为了便于说明,接着步骤S4A的处理说明之后对步骤S4B的处理进行了说明,但步骤S4A、S4B的处理可以按顺序执行,也可以并行地执行。另外,在步骤S4A、S4B的处理中,也可以参照包匹配性表60。
图8是说明本实施方式的控制装置中的附加包的部署处理的图。参照图8,在步骤S11中,包管理模块106A按照用户数据版本执行包32A的部署。在步骤S12中,包管理模块106A按照用户数据版本执行包32B的部署。步骤S11、S12的处理与图7所示的对应步骤的处理基本相同,因此不重复以后的说明。
在步骤S13中,包管理模块106A从外部受理包32C的附加操作。在该情况下,包管理模块106A参照包匹配性表60,判断在包32A、32B、32C的程序的组合中是否存在能够适合的版本的组合。
在存在能够适合的适合版本的组合的情况下,在步骤S15中,包管理模块106A参照用户数据版本信息12,取得用户数据版本。在步骤S16中,包管理模块106A指示校验模块25C按照用户数据版本对包32C的能够适合版本的程序进行部署。在包32C中,选择能够与校验模块25C相适合的打包程序(步骤S17A),对该打包程序进行部署(步骤S18A)。
图9是表示打包程序内的校验模块执行的处理的流程的流程图。当处理开始时,在步骤S21中,从包管理模块106A接收用户数据版本,校验模块开始部署处理。在步骤S22中,校验模块从包管理表54取得各包的能够部署的程序的版本。此时,在存在能够部署的打包程序的情况下,处理进入步骤S23,校验模块使能够部署的打包程序有效化。接着,在步骤S24中,校验模块将有效化的打包程序版本传递给包管理模块。另一方面,在没有能够部署的打包程序的情况下,校验模块将没有能够部署的打包程序的情况传递给包管理模块106A。
根据本实施方式,包管理模块仅选择所需的包即可。另一方面,校验模块仅选择适当版本的程序即可。因此,能够灵活地应对包的追加。
另外,在上述的实施方式中,校验模块包含在各打包程序中。然而,包管理模块106A也可以具有校验模块。
<G.附记>
如以上所说明那样,本实施方式包含以下列举的公开。
1.一种控制装置(100),其用于对控制对象进行控制,该控制装置(100)具有:
主存储装置(108),其非易失性地保存用户程序和1个或多个程序包(32A、32B、32C),所述1个或多个程序包(32A、32B、32C)保存与所述用户程序协作执行的1个或多个版本的程序;
主存储器(106),其用于配置所述用户程序和所述程序包(32A、32B、32C)的所述程序;以及
处理器(102),其用于执行包含对所述程序包(32A、32B、32C)进行管理的包管理模块(106A)的软件,
所述包管理模块(106A)执行部署处理,所述部署处理用于基于所述用户程序的版本,从所述1个或多个程序包(32A、32B、32C)中选择作为部署对象的包,并从所述作为部署对象的包中,将与所述用户程序的版本相适合的版本的程序配置到所述主存储器(106)中。
2.在1.所记载的控制装置(100)中,
所述1个或多个程序包(32A、32B、32C)包含校验模块(25A、25B、25C),所述校验模块(25A、25B、25C)根据所述包管理模块(106A)的所述部署处理,从所述作为部署对象的包中选择与所述用户程序的版本相适合的版本的程序,并将该选择的程序配置到所述主存储器(106)中。
3.在2.所记载的控制装置(100)中,
所述主存储装置(108)保存与所述控制装置(100)的硬件的形式名相关的形式信息,
所述包管理模块(106A)从所述主存储装置(108)取得所述形式信息,基于所述形式信息和所述用户程序的版本,从所述1个或多个程序包(32A、32B、32C)中选择所述作为部署对象的包。
4.在3.所记载的控制装置(100)中,
所述主存储装置(108)保存包管理表(54),所述包管理表(54)对所述形式信息、和在所述1个或多个程序包(32A、32B、32C)中与所述形式信息对应的程序的版本进行存储,
所述校验模块(25A、25B、25C)基于所述形式信息和存储在所述包管理表(54)中的信息,取得与所述用户程序的版本相适合的、关于所述包的程序的版本的信息。
5.在1.至4.中的任意一项所记载的控制装置(100)中,
所述1个或多个程序包(32A、32B、32C)是多个程序包,
所述多个程序包包含附加到所述控制装置(100)的附加包(32C),
所述主存储装置(108)保存将所述用户程序的版本和所述多个程序包各自的程序的版本对应起来进行存储的表(60),
所述包管理模块(106A)基于存储在所述表(60)中的信息,判定包含所述附加包(32C)的多个程序包的组合是否是与所述用户程序的版本相适合的组合,在是与所述用户程序的版本相适合的组合的情况下,选择具有与所述用户程序的版本相适合的版本的所述附加包(32C)的程序。
6.一种软件的部署方法,其在对控制对象进行控制的控制装置(100)中被利用,其中,
所述控制装置(100)具有:
主存储装置(108),其非易失性地保存用户程序和1个或多个程序包(32A、32B、32C),所述1个或多个程序包(32A、32B、32C)保存与所述用户程序协作执行的1个或多个版本的程序;
主存储器(106),其用于配置所述用户程序和所述程序包(32A、32B、32C)的所述程序;以及
处理器(102),其用于执行所述软件,
所述部署方法具有以下步骤:
取得所述用户程序的版本;
基于所述用户程序的版本,从所述1个或多个程序包(32A、32B、32C)中选择作为部署对象的包;
从所述作为部署对象的包中,选择与所述用户程序的版本相适合的版本的程序;以及
将所选择的程序配置到所述主存储器(106)中。
7.在6.所记载的软件的部署方法中,
选择所述作为部署对象的包的步骤包含以下步骤:
取得存储在所述主存储装置(108)中的、与所述控制装置(100)的硬件的形式名相关的形式信息;以及
基于所述形式信息和所述用户程序的版本,从所述1个或多个程序包(32A、32B、32C)中选择所述作为部署对象的包。
8.在7.所记载的软件的部署方法中,
所述主存储装置(108)保存包管理表(54),所述包管理表(54)对所述形式信息、和在所述1个或多个程序包(32A、32B、32C)中与所述形式信息对应的程序的版本进行存储,
选择与所述用户程序的版本相适合的版本的程序的步骤包含基于所述形式信息取得版本的信息的步骤。
9.在6.至8.中的任意一项所记载的软件的部署方法中,
所述1个或多个程序包(32A、32B、32C)是多个程序包,
所述多个程序包包含附加到所述控制装置(100)的附加包(32C),
所述主存储装置(108)保存将所述用户程序的版本和所述多个程序包各自的程序的版本对应起来进行存储的表(60),
从所述作为部署对象的包中,选择与所述用户程序的版本相适合的版本的程序的步骤包含以下步骤:
基于存储在所述表(60)中的信息,判定包含所述附加包(32C)的多个程序包的组合是否是与所述用户程序的版本相适合的组合;以及
在所述多个程序包的组合是与所述用户程序的版本相适合的组合的情况下,选择具有与所述用户程序的版本相适合的版本的所述附加包(32C)的程序。
应该认为本次公开的实施方式在所有方面都是例示而不是限制性的。本发明的范围由权利要求书、而不由上述的说明来表示,意在包含与权利要求书等同的意思以及范围内的所有变更。
标号说明
1:控制系统;2:现场网络;6:上位网络;10:用户程序;12:用户数据版本信息;14:配置数据;20A、20B、20C、21A、22A、22B:程序;25A、25B、25C:校验模块;30:用户数据;32:打包程序;32A、32B、32C:包;34:系统程序;36:协议栈;38:设备驱动器;40:设定信息;50:形式信息;52:形式名信息;54:包管理表;60:包匹配性表;100:控制装置;102、202:处理器;104:芯片组;106:主存储器;106A:包管理模块;108:储存器;110:上位网络控制器;112:USB控制器;114:存储卡接口;116:存储卡;120:内部总线控制器;122:I/O单元;130:现场网络控制器;200:支持装置;204:主存储装置;206:输入部;208:输出部;210:二次存储装置;212:光学驱动器;214:记录介质;218:通信接口;220:处理器总线;300:服务器装置;400:显示装置;500:现场设备;520、524:机器人;522、526:机器人控制器;540、544:伺服驱动器;542、546:伺服电机;2104:支持程序;2106:项目;2108:标准控制源程序;S1~S24:步骤。

Claims (9)

1.一种控制装置,其用于对控制对象进行控制,该控制装置具有:
主存储装置,其非易失性地保存用户程序和1个或多个程序包,所述1个或多个程序包保存与所述用户程序协作执行的1个或多个版本的程序;
主存储器,其用于配置所述用户程序和所述程序包的所述程序;以及
处理器,其用于执行包含对所述程序包进行管理的包管理模块的软件,
所述包管理模块执行部署处理,所述部署处理用于基于所述用户程序的版本,从所述1个或多个程序包中选择作为部署对象的包,并从所述作为部署对象的包中,将与所述用户程序的版本相适合的版本的程序配置到所述主存储器中。
2.根据权利要求1所述的控制装置,其中,
所述1个或多个程序包包含校验模块,所述校验模块根据所述包管理模块的所述部署处理,从所述作为部署对象的包中选择与所述用户程序的版本相适合的版本的程序,并将该选择的程序配置到所述主存储器中。
3.根据权利要求2所述的控制装置,其中,
所述主存储装置保存与所述控制装置的硬件的形式名相关的形式信息,
所述包管理模块从所述主存储装置中取得所述形式信息,基于所述形式信息和所述用户程序的版本,从所述1个或多个程序包中选择所述作为部署对象的包。
4.根据权利要求3所述的控制装置,其中,
所述主存储装置保存包管理表,所述包管理表对所述形式信息、和在所述1个或多个程序包中与所述形式信息对应的程序的版本进行存储,
所述校验模块基于所述形式信息和存储在所述包管理表中的信息,取得与所述用户程序的版本相适合的、关于所述包的程序的版本的信息。
5.根据权利要求1~4中的任意一项所述的控制装置,其中,
所述1个或多个程序包是多个程序包,
所述多个程序包包含附加到所述控制装置的附加包,
所述主存储装置保存将所述用户程序的版本和所述多个程序包各自的程序的版本对应起来进行存储的表,
所述包管理模块基于存储在所述表中的信息,判定包含所述附加包的多个程序包的组合是否是与所述用户程序的版本相适合的组合,在是与所述用户程序的版本相适合的组合的情况下,选择具有与所述用户程序的版本相适合的版本的所述附加包的程序。
6.一种软件的部署方法,其在对控制对象进行控制的控制装置中被利用,其中,
所述控制装置具有:
主存储装置,其非易失性地保存用户程序和1个或多个程序包,所述1个或多个程序包保存与所述用户程序协作执行的1个或多个版本的程序;
主存储器,其用于配置所述用户程序和所述程序包的所述程序;以及
处理器,其用于执行所述软件,
所述部署方法具有以下步骤:
取得所述用户程序的版本;
基于所述用户程序的版本,从所述1个或多个程序包中选择作为部署对象的包;
从所述作为部署对象的包中,选择与所述用户程序的版本相适合的版本的程序;以及
将所选择的程序配置到所述主存储器中。
7.根据权利要求6所述的软件的部署方法,其中,
选择所述作为部署对象的包的步骤包含以下步骤:
取得存储在所述主存储装置中的、与所述控制装置的硬件的形式名相关的形式信息;以及
基于所述形式信息和所述用户程序的版本,从所述1个或多个程序包中选择所述作为部署对象的包。
8.根据权利要求7所述的软件的部署方法,其中,
所述主存储装置保存包管理表,所述包管理表对所述形式信息、和在所述1个或多个程序包中与所述形式信息对应的程序的版本进行存储,
选择与所述用户程序的版本相适合的版本的程序的步骤包含基于所述形式信息取得版本的信息的步骤。
9.根据权利要求6~8中的任意一项所述的软件的部署方法,其中,
所述1个或多个程序包是多个程序包,
所述多个程序包包含附加到所述控制装置的附加包,
所述主存储装置保存将所述用户程序的版本和所述多个程序包各自的程序的版本对应起来进行存储的表,
从所述作为部署对象的包中,选择与所述用户程序的版本相适合的版本的程序的步骤包含以下步骤:
基于存储在所述表中的信息,判定包含所述附加包的多个程序包的组合是否是与所述用户程序的版本相适合的组合;以及
在所述多个程序包的组合是与所述用户程序的版本相适合的组合的情况下,选择具有与所述用户程序的版本相适合的版本的所述附加包的程序。
CN202080017947.7A 2019-03-06 2020-02-26 控制装置以及软件的部署方法 Active CN113508346B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2019-040601 2019-03-06
JP2019040601A JP7036064B2 (ja) 2019-03-06 2019-03-06 制御装置およびソフトウェアのデプロイ方法
PCT/JP2020/007790 WO2020179581A1 (ja) 2019-03-06 2020-02-26 制御装置およびソフトウェアのデプロイ方法

Publications (2)

Publication Number Publication Date
CN113508346A CN113508346A (zh) 2021-10-15
CN113508346B true CN113508346B (zh) 2024-01-30

Family

ID=72338618

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080017947.7A Active CN113508346B (zh) 2019-03-06 2020-02-26 控制装置以及软件的部署方法

Country Status (5)

Country Link
US (1) US11907735B2 (zh)
EP (1) EP3936951A4 (zh)
JP (1) JP7036064B2 (zh)
CN (1) CN113508346B (zh)
WO (1) WO2020179581A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11921486B2 (en) * 2021-11-05 2024-03-05 Rockwell Automation Technologies, Inc. Automation design environment with integrated industrial power system management capabilities

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11224999A (ja) * 1998-02-06 1999-08-17 Matsushita Electric Ind Co Ltd 電子部品実装用装置および電子部品実装用装置における制御プログラムのバージョン管理方法
JP2005038063A (ja) * 2003-07-16 2005-02-10 Omron Corp プログラマブルコントローラシステムおよびサポートツールならびにプログラマブルコントローラ用ユニットおよび接続保証方法
CN103593203A (zh) * 2012-08-16 2014-02-19 施耐德电器工业公司 可编程逻辑控制器的编程和固件更新方法
CN105912346A (zh) * 2016-05-09 2016-08-31 合肥联宝信息技术有限公司 固件版本恢复方法、装置及终端
CN107809445A (zh) * 2016-08-31 2018-03-16 阿里巴巴集团控股有限公司 服务请求处理系统、方法和装置
CN107864098A (zh) * 2017-10-18 2018-03-30 上海斐讯数据通信技术有限公司 一种路由器固件的兼容方法及系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3270238B2 (ja) 1994-03-14 2002-04-02 株式会社東芝 プログラマブルコントローラ及びそのプログラムツール
JPH11161479A (ja) * 1997-11-28 1999-06-18 Brother Ind Ltd データ処理装置およびデータ処理方法ならびに記録媒体
US7376945B1 (en) * 2003-12-02 2008-05-20 Cisco Technology, Inc. Software change modeling for network devices
JP4110557B2 (ja) * 2005-06-21 2008-07-02 三菱電機株式会社 プログラム実行システムを備えた検査装置およびプログラミングシステム
JP5864467B2 (ja) 2013-03-28 2016-02-17 株式会社沖データ 情報処理装置、ファームウェア更新方法及びコンピュータプログラム
US9690564B2 (en) * 2013-09-10 2017-06-27 International Business Machines Corporation Runtime detection of software configurations and upgrades
JP2016224559A (ja) * 2015-05-27 2016-12-28 株式会社キーエンス プログラム作成支援装置、制御方法およびプログラム
US9965377B1 (en) * 2016-03-29 2018-05-08 EMC IP Holding Company LLC Deploy pipeline for development packages
US10447814B2 (en) * 2017-02-02 2019-10-15 Microsoft Technology Licensing, Llc Joint servicing of software packages
US20180341475A1 (en) * 2017-05-24 2018-11-29 Dell Products L.P. Just In Time Deployment with Package Managers

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11224999A (ja) * 1998-02-06 1999-08-17 Matsushita Electric Ind Co Ltd 電子部品実装用装置および電子部品実装用装置における制御プログラムのバージョン管理方法
JP2005038063A (ja) * 2003-07-16 2005-02-10 Omron Corp プログラマブルコントローラシステムおよびサポートツールならびにプログラマブルコントローラ用ユニットおよび接続保証方法
CN103593203A (zh) * 2012-08-16 2014-02-19 施耐德电器工业公司 可编程逻辑控制器的编程和固件更新方法
CN105912346A (zh) * 2016-05-09 2016-08-31 合肥联宝信息技术有限公司 固件版本恢复方法、装置及终端
CN107809445A (zh) * 2016-08-31 2018-03-16 阿里巴巴集团控股有限公司 服务请求处理系统、方法和装置
CN107864098A (zh) * 2017-10-18 2018-03-30 上海斐讯数据通信技术有限公司 一种路由器固件的兼容方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于 IAP 的 ARM 处理器固件升级设计;方彬浩;《现代信息科技》;第2卷(第8期);第50-51页 *
基于模拟 BIOS 的可穿戴设备固件在线升级实现;何国峰;《电子技术应用》;第43卷(第3期);第63-65、69页 *

Also Published As

Publication number Publication date
US20220171636A1 (en) 2022-06-02
CN113508346A (zh) 2021-10-15
WO2020179581A1 (ja) 2020-09-10
EP3936951A1 (en) 2022-01-12
JP7036064B2 (ja) 2022-03-15
EP3936951A4 (en) 2022-11-16
JP2020144594A (ja) 2020-09-10
US11907735B2 (en) 2024-02-20

Similar Documents

Publication Publication Date Title
JP7189383B1 (ja) 検証システムおよび検証方法
WO2015121930A1 (ja) 作画装置および制御システム
US20210397146A1 (en) Method and apparatus for computer aided simulation of a modular technical system
CN113508346B (zh) 控制装置以及软件的部署方法
US11165745B2 (en) Control system, controller, and control method
CN114072737A (zh) 控制系统、设定装置以及计算机程序
US11855907B2 (en) Robot control system and control method
JP5921781B2 (ja) プログラマブルコントローラおよびプログラマブルコントローラの制御方法
CN111052012B (zh) 控制装置以及控制系统
EP3457239B1 (en) Control device and control method
JP2005092520A (ja) 2重化コントローラシステム、その等値化方法
US11651006B2 (en) Method of visualizing screen content on a data visualization system, and data visualization system for visualizing screen content
JP6895208B2 (ja) プラント制御装置
CN103518164A (zh) 用于运行自动化系统的方法
JP6645054B2 (ja) 制御システム、制御装置およびネットワーク装置
EP3862825A1 (en) Control system, support device, and program
JP2022048289A (ja) 制御装置および制御システム
JP6002021B2 (ja) スレーブ機器
JP5490267B2 (ja) データ転送装置
JP2020144812A (ja) エンジニアリングツール
Konovalov et al. Software complex used for designing, testing and maintenance of computing products for avionics
JP2005285018A (ja) 2重化コントローラシステム、その稼動/待機切換え方法
JP2006127115A (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
GR01 Patent grant
GR01 Patent grant