CN112470088B - 控制装置 - Google Patents
控制装置 Download PDFInfo
- Publication number
- CN112470088B CN112470088B CN201980048530.4A CN201980048530A CN112470088B CN 112470088 B CN112470088 B CN 112470088B CN 201980048530 A CN201980048530 A CN 201980048530A CN 112470088 B CN112470088 B CN 112470088B
- Authority
- CN
- China
- Prior art keywords
- program
- control
- information
- programs
- resources
- 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
- 230000010365 information processing Effects 0.000 claims abstract description 22
- 230000015654 memory Effects 0.000 claims description 67
- 238000003860 storage Methods 0.000 claims description 36
- 238000000034 method Methods 0.000 claims description 27
- 230000009471 action Effects 0.000 claims description 5
- 238000009434 installation Methods 0.000 claims description 3
- 230000008859 change Effects 0.000 abstract description 27
- 238000007726 management method Methods 0.000 description 177
- 238000012545 processing Methods 0.000 description 46
- 230000006870 function Effects 0.000 description 45
- 238000010586 diagram Methods 0.000 description 35
- 238000004891 communication Methods 0.000 description 27
- 230000002093 peripheral effect Effects 0.000 description 21
- 230000008569 process Effects 0.000 description 16
- 238000012544 monitoring process Methods 0.000 description 13
- 238000012986 modification Methods 0.000 description 11
- 230000004048 modification Effects 0.000 description 11
- 238000004519 manufacturing process Methods 0.000 description 9
- 101100513046 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) eth-1 gene Proteins 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 8
- 230000002411 adverse Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 6
- 230000018109 developmental process Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000000052 comparative effect Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 101100048435 Caenorhabditis elegans unc-18 gene Proteins 0.000 description 1
- 206010067482 No adverse event Diseases 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000012447 hatching Effects 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- 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
-
- 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/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/4155—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
-
- 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/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
- G05B19/4188—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by CIM planning or realisation
-
- 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/10—Plc systems
- G05B2219/13—Plc programming
- G05B2219/13123—C language
-
- 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/10—Plc systems
- G05B2219/13—Plc programming
- G05B2219/13134—Two or more languages mixed, RLD, SFC, FBD, IL, ST, relay ladder, function block, sequential function, instruction list, structured text mixed to form logic control program
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Manufacturing & Machinery (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Programmable Controllers (AREA)
- Stored Programmes (AREA)
- Iron Core Of Rotating Electric Machines (AREA)
- Massaging Devices (AREA)
- Valve Device For Special Equipments (AREA)
Abstract
本发明提供一种控制装置,其共存有控制程序和信息程序,能够适当地变更表示程序能够使用的资源即资源上限的执行管理数据。控制装置从程序分发装置中经由网络和一个以上的网络端口,下载一个以上的对象程序(一个以上的控制程序和一个以上的信息程序中的一个以上的程序)中的至少一个,在与该下载的时刻不同的时刻,变更关于控制装置的多个计算资源表示该对象程序能够使用的资源即资源上限的执行管理数据。各控制程序是进行输出与I/O端口连接的控制对象装置的控制信息的扫描动作的程序。各信息程序是进行与扫描动作不同的信息处理的程序。
Description
技术领域
本发明大体上涉及控制装置。
背景技术
专利文献1(日本特开2004-362327号公报)公开的是“一种分布式监视控制***,其用网络将工厂的监视控制设备中的监视用个人计算机和控制用可编程逻辑控制器连接在一起,其特征为,在监视用通用个人计算机上设有控制用通用可编程逻辑控制器的信息管理文件,在上述控制用通用可编程逻辑控制器上设有该控制用通用可编程逻辑控制器的信息自动清除工具,用通用软件综合管理输入到上述通用个人计算机的信息和上述通用控制用可编程逻辑控制器的工艺信息。”(参照技术方案1)。
专利文献2(日本特开2006-178818号公报)公开的是“一种运动控制器,其包括实时OS、存储器、与运动控制周期同步地执行梯形图语言程序的执行单元、使上述梯形图语言程序和C语言程序两者都动作的微处理器,其特征为,如果根据工程工具的项目设定文件加载的上述C语言程序是任务型项目,则作为上述实时OS的任务而动作,如果上述C语言程序是函数型项目,则作为函数从其他任务在可调用的状态下保存在上述存储器中。”(参照技术方案1)。
现有技术文献
专利文献
专利文献1:日本特开2004-362327号公报
专利文献2:日本特开2006-178818号公报
发明内容
发明要解决的课题
专利文献1记载为“但是,就现有分布式监视控制***41而言,操作站50a~50n、数字控制装置60a~60n、传输线路52a~52n、主干传输线路42、传输线路61a~61n等都是每个分布式监视控制***制造商的专用设备,因为价格昂贵且与其他制造商的产品不兼容,所以扩展性差,另外,随着近年来的个人电脑等通用设备的性能提高,尽管在能力上凌驾于专用设备之上,但都没有使用通用设备。”(参照0004段落)。
每个分布式监视控制***制造商的专用设备都是可编程逻辑控制器,在作为这种装置结构的背景下,可编程逻辑控制器是进行I/O单元等的控制的控制器,因为与工厂内的生产或输送等所使用的装置连接,所以当在控制上发生了延迟时,工厂内的装置等的动作就会变得不稳定,有时会产生意想不到的动作。因此,现有可编程逻辑控制器不会进行复杂的处理。专利文献1公开的发明也同样,不会进行复杂的处理,且公开了一种通过在监视用通用个人计算机上设置控制用通用可编程逻辑控制器的信息管理文件,不会给可编程逻辑控制器的控制造成影响的技术。
因此,专利文献1没有考虑到在可编程逻辑控制器内进行信息处理。
专利文献2的课题栏记载为“因为在梯形图语言应用程序和C语言应用程序不同的微处理器上进行动作,所以存在不能从梯形图语言应用程序中调用C语言应用程序作为函数之类的问题。”
即,专利文献2的目的在于,在同一微处理器上,梯形图语言应用程序调用C语言应用程序作为函数。
专利文献2记载了一种***的发明,该***由运动控制器和工程工具构成,在运动控制器中,梯形图语言任务和C语言任务共存地动作,工程工具将C语言的程序和设定文件下载到运动控制器中。
另外,记载了如下技术,即,在运动控制器上共存有梯形图语言任务和C语言任务,梯形图语言任务和C语言程序的任务在实时OS(Operating System)上动作。
如果C语言程序是任务型项目,则作为实时OS的任务而动作,如果是函数型项目,则作为函数从其他任务在可调用的状态下保存在运动控制器的存储器中。
即,如果是函数型项目,则其他任务例如梯形图语言任务就输入函数型项目的项目名称作为自变量,执行C语言函数调用用功能块。
即,梯形图语言任务调用C语言的函数型项目,对与运动控制器连接的工作机械等进行数值控制。
C语言任务输入任务型项目的项目名称和任务的唤醒或中断等操作的类别作为自变量,调用任务操作用API。任务操作用API将项目名称作为任务名称来处理,调用与任务操作的类别对应的实时OS提供的功能,间接地实现其他任务型项目的任务操作。
另外,关于作这任务型项目而加载的C语言程序,记载的是在梯形图语言程序的执行时刻,能够控制作为任务型项目而加载的C语言程序的执行。
即,作为任务型项目而加载的C语言程序能够用在进行与运动控制同步的动作的用途、像高级数值计算那样在处理上花费时间那样的用途上。
即,为了控制与运动控制器连接的工作机械等,在梯形图语言程序的执行时刻,用于进行作为任务型项目而加载的C语言程序的执行控制。
因而,无论是函数型还是任务型,都以梯形图语言的一部分为C语言,在记述或者梯形图语言程序的执行时刻进行C语言程序的执行控制。即,关于专利文献2记载的C语言程序,公开了用于控制与运动控制器连接的工作机械等的技术思想。
因此,专利文献2没有考虑到将C语言程序用在控制与装置连接的工作机械等硬件以外的目的上。
另外,为了维持适当地控制工作机械等,关于多个计算资源,考虑基于表示程序能够使用的资源即资源上限的执行管理数据,控制程序的执行,俣专利文献1和2都没有公开或暗示与那样的数据和其变更相关的技术。
本发明是考虑到以上方面而完成的,其目的在于,提供一种能够适当地变更表示装载于控制装置的程序能够使用的资源即资源上限的执行管理数据的技术。
用于解决课题的方法
为了解决这种课题,如果举出本发明的一个例子,则举出一种控制装置,控制一个以上的控制对象装置的动作,其包括包含与该一个以上的控制对象装置的动作的控制相关的多种计算资源的多个计算资源。多个计算资源包含接口部、存储部和处理器部。接口部包含与一个以上的控制对象装置连接的一个以上的I/O端口、与网络连接的一个以上的网络端口。存储部包含一个以上的存储器。处理器部包含一个以上的处理器。程序组(一个以上的控制程序和一个以上的信息程序以外的一个以上的程序)从程序分发装置中经由网络和一个以上的网络端口,下载一个以上的对象程序(一个以上的控制程序和一个以上的信息程序中的一个以上的程序)中的至少一个。在与该下载的时刻不同的时刻,程序组变更关于多个计算资源表示该对象程序能够使用的资源即资源上限的执行管理数据。
一个以上的控制程序各自是进行输出与I/O端口连接的控制对象装置的控制信息的扫描动作的程序。
另一方面,一个以上的信息程序各自是进行与扫描动作不同的信息处理的程序。
发明效果
根据本发明,能够适当地变更表示装载于控制装置的程序能够使用的资源即资源上限的执行管理数据。即,装载于控制装置的多个程序能够适当地变更该控制装置具有的硬件资源。
附图说明
图1是表示包含第1实施方式的控制装置的***的硬件结构例的方框图。
图2是表示包含第1实施方式的控制装置的***的功能概略结构的方框图。
图3是表示执行管理表的表结构例的图。
图4是表示程序下载处理的流程之一例的流程图。
图5是表示程序执行处理的流程之一例的流程图。
图6A是表示执行管理表的表结构例的图。
图6B是表示执行管理表的表结构例的图。
图7是表示设定范围表的表结构例的图。
图8A是示意地表示资源边界和其变更的第1例的图。
图8B是示意地表示资源边界和其变更的第2例的图。
图8C是示意地表示资源边界和其变更的第3例的图。
图9表示控制程序和信息程序共存的平台的另一例。
图10是表示第3实施方式的控制装置的功能概略结构的方框图。
图11是表示执行管理数据的变更的第1例的图。
图12是表示执行管理数据的变更的第2例的图。
图13是表示对于控制程序和信息程序各者来说的资源上限的意义之一例的示意图。
具体实施方式
下面,基于附图对本发明的实施方式进行说明。
除了特别需要时以外,原则上不重复进行相同或同样部分的说明。关于规定图中记载的符号,即使在用其他图进行说明的情况下,也省略相同或同样部分的说明。
在以下实施方式中,为了方便起见,在有那个必要时,分割为多个部分或实施方式进行说明,但除了特别明示的情况以外,它们都不是相互无关的,一方与另一方的一部分或全部的变形例、详细、补充说明等有关。
在以下实施方式中,在说到要素的数量等(包含个数、数值、量、范围等)的情况下,除了特别明示的情况和原理上明确限定于特定数量的情况等以外,都不限定于其特定的数量,可以是特定的数量以上,也可以是以下。
在以下实施方式中,“接口部”包含一个以上的接口。一个以上的接口可以是一个以上的同一类型的接口装置,也可以是两个以上的不同类型的接口装置。
在以下实施方式中,“存储部”包含一个以上的存储器。关于存储部,至少一个存储器可以是易失性存储器。存储部主要在由处理器部进行处理时使用。存储部除了存储器以外,也可以还包含一个以上的非易失性存储装置(例如,HDD(Hard Disk Drive)或SSD(Solid State Drive))。
在以下实施方式中,“处理器部”包含一个以上的处理器。至少一个处理器典型的是像CPU(Central Processing Unit)那样的微处理器,也可以是像GPU(GraphicsProcessing Unit)那样的其他类型的处理器。一个以上的处理器分别可以是单核,也可以是多核。处理器也可以包含进行一部分或全部处理的硬件电路。
在以下实施方式中,往往用“kkk部”(除了接口部、存储部和处理器部以外)的表达来说明功能,但功能可以通过由处理器部执行一个以上的计算机程序(除了后述的控制程序和信息程序以外)来实现,也可以由一个以上的硬件电路(例如FPGA(Field-Programmable Gate Array)或ASIC(Application Specific Integrated Circuit))来实现。在由处理器部执行程序来实现功能的情况下,因为规定的处理是适当地使用存储部和/或接口部等来进行的,所以功能也可以设为处理器部的至少一部分。以功能为主题进行了说明的处理也可以设为处理器部或具有其处理器部的装置进行的处理。程序也可以从程序源中进行安装。程序源例如也能够是程序分发计算机或计算机可读取的记录介质(例如,非暂时性的记录介质)。各功能的说明只是一个例子而已,多个功能也可以汇总成一个功能,或者一个功能也可以分割为多个功能。
另外,在以下说明中,往往用“xxx表”之类的表达对相对于输入得到输出的信息进行说明,但该信息可以是某种构造的数据,也可以是产生相对于输入的输出的像神经网络那样的学习模型。因此,可将“xxx表”称为“xxx信息”。另外,在以下说明中,各表的结构只是一个例子而已,一个表也可以分割成两个以上的表,两个以上的表的全部或一部分也可以是一个表。
在以下实施方式中,其构成要素(也包含要素步骤等)除了特别明示的情况和原理上明确认为是必须的情况等以外,都不一定是必须的,这是不言而喻的。
控制装置也称为顺序控制装置、运动控制装置或可编程逻辑控制器(PLC)。在控制装置中,将使用诸如梯形逻辑图(LD语言)、顺序功能图(SFC语言)、功能块图(FBD语言)、结构化文本(ST语言)、指令列表(IL语言)那样的控制装置特有的编程语言、或者像C语言那样的在信息通信领域中使用的通用编程语言来记述,且执行以顺序控制或运动控制为代表的控制处理的程序称为“控制程序”。控制程序需要经由I/O模块等实际动作包含电动机等在内的***设备,使生产***等适当地动作。因此,控制程序被要求在所设定的时间内可靠地执行处理(实时性)。
控制程序通过记述有控制内容的命令,对控制对象装置(例如,像装置部件那样的硬件模块、包括一个以上硬件模块的装置、或包括多个装置的***)进行控制。例如,在“经由I/O模块等实际动作包含电动机等在内的***设备,使生产***适当动作”之类的控制中,“生产***”或“构成生产***的至少一个装置”都是“控制对象装置”。控制对象装置典型的是经由控制装置的I/O控制装置(接口部之一例)而连接的装置。控制对象装置可以由控制程序直接(例如,不经由与控制装置连接的I/O模块或***设备)控制,也可以由控制程序间接地(例如,经由与控制装置连接的I/O模块或***设备)控制。
控制控制对象装置的语言不限于梯形图语言等控制特有的编程语言,有时也用C语言等通用编程语言来记述,所以将控制控制对象装置(典型的是硬件)的程序称为“控制程序”。
由梯形图语言等记述的控制程序进行读入或写入(取得或更新)在该梯形图语言等记述中被指定的控制对象装置的状态的“扫描动作”。
该扫描动作需要以规定间隔来进行,将该规定间隔称为“扫描时间”。扫描时间与控制程序的运算时间有关,因为反复以规定间隔进行与控制相关的运算周期或与控制相关的运算,所以往往也被称为“循环时间”。
因为与控制装置连接的控制对象装置与例如工厂内的用于生产或输送等的装置连接,所以当扫描动作延迟时,工厂内的装置等的动作有时会变得不稳定,有时会产生意想不到的动作。因此,需要在规定的扫描时间内进行扫描动作。
扫描时间根据控制装置控制的控制对象装置的数量或种类的增加而延长,但在扫描时间内进行控制对象装置的扫描动作是很重要的。
在控制装置中内置或连接有I/O(Input/Output)端口。I/O端口有时具有I/O模块或I/O单元等。以下,有时将I/O端口本身或具有I/O端口的装置(I/O模块或I/O单元等)统称为“I/O端口”。
I/O端口与控制对象装置例如生产设备中的传送带、限位开关、致动器(例如电动机)连接,用于进行与控制对象装置的动作相关的控制。I/O端口是数字或模拟的I/O端口。例如,模拟I/O端口用于进行控制装置的控制对象装置的电压、电流、温度等信息的读写。
就基于控制程序而有线或无线地接收从控制装置的I/O端口发送的控制信息的逆变单元或CNC(Computerized Numerical Control)而言,因为逆变器或CNC自身进行致动器的运动控制,所以要求具有实时性。
另外,所谓控制对象装置的控制,指的是对连接有控制对象装置的状态下的I/O端口的动作进行控制。即,所谓控制程序,指的是进行连接有控制对象装置的I/O端口的控制的程序,换句话说,是向连接有控制对象装置的I/O端口输出该控制对象装置的控制信息(具体地说,进行例如包含该控制信息的输出的扫描动作)的程序。
在这种控制装置中,除了研究控制对象装置的控制以外,还研究进行信息处理(例如,复杂的算术运算或与SCADA、MES、云***进行信息收发那样的信息通信处理)的技术。这种信息处理有时难以用上述的控制特有的语言进行编程,往往使用C语言或Java(注册商标)语言等在信息处理领域中使用的编程语言来记述。将执行这种信息处理的程序称为“信息程序”。
下面,对控制程序和信息程序的差异之一例进行说明。
如上所述,控制程序是与控制装置的I/O端口的控制有关系的程序,信息程序是进行信息处理(例如,如上所述,算术运算或与云进行的通信)的程序。
控制程序用梯形图或ST语言等来记述,与以java(注册商标)或python等为代表的通用语言相比,实时性高。信息程序用以java(注册商标)或python等为代表的语言来记述,与梯形图等相比,更适合于信息处理。
C语言等的实时性高,也适合于硬件的控制,另外,也适合于信息处理的语言有时也可用于控制程序和信息程序中的任一种。
另外,信息程序是前面说明的控制程序以外的程序(但是,例如用于实现后述的任务管理部110、控制程序执行部111、信息程序执行部112和I/O控制部117的一个以上的程序除外)。控制对象装置经由I/O端口与控制装置连接,但信息程序是不访问与控制对象装置连接的模拟或数字的I/O端口(但是,容许与信息程序共享的I/O端口除外)的程序。换句话说,控制程序是进行扫描动作的程序,该扫描动作包含向与控制对象装置连接的模拟或数字的I/O端口发送控制对象装置的控制信息的动作。另一方面,信息程序是进行不包含扫描动作(与扫描动作不同)的信息处理的程序(即,不进行扫描动作的程序)。
装载控制程序和信息程序的以下实施方式的控制装置实现的是即使除了执行控制程序以外还执行信息程序,也不会使控制程序停止,或者既不会使控制程序的扫描动作延迟,又不会产生控制程序的意想不到的动作,而是进行信息程序的追加、删除、更新(重写)或更改之类的程序变更。
[第1实施方式]
下面,利用图1对第1实施方式进行说明。
图1是表示包含第1实施方式的控制装置的***的硬件结构例的方框图。
程序分发装置101、控制装置109、一个以上的管理用户计算机151M和一个以上的一般用户计算机151G均与信息网络108连接。另外,控制装置109和一个以上的I/O模块119(I/O端口之一例)与控制网络118连接。信息网络108是在信息程序进行的信息通信处理(即,与控制信息的发送不同的通信处理)时所使用的通信网络。控制网络118是在控制程序进行的控制信息发送时所使用的通信网络。信息网络108和控制网络118可以是不同类型的网络,也可以是同一类型的网络(例如,都是LAN(Local Area Network))。另外,信息网络108的至少一部分和控制网络118的至少一部分也可以是一体。
管理用户计算机151M至少是管理用户进行操作的计算机。一般用户计算机151G至少是一般用户进行操作的计算机。任一台计算机都作为针对程序分发装置101和控制装置109中的至少一个的输入输出控制台发挥功能。具体地说,例如,任一台计算机都具有像键盘和指示设备那样的输入器件和像显示器件那样的输出器件。“管理用户”是记述控制程序的用户(例如,关于自动机械或生产设备之类的控制对象具有渊博知识的技术人员),“一般用户”是记述信息程序的用户(例如,关于控制对象不具有渊博知识的一般***工程师)。控制装置109可以从管理用户计算机151M和一般用户计算机151G中的至少一个接受对控制程序和信息程序的至少一个的记述(包含参数组的设定),代替控制装置109或除此以外,程序分发装置101也可以接受该记述。以下,往往将管理用户和一般用户统称为“用户”。用户也可以是***管理人员(例如,由程序分发装置101和控制装置109构成的***即控制***的管理人员)之类的另一类型的用户来代替管理用户和一般用户中的任一个。
在一个以上的I/O模块119上连接有一个以上的***设备120。***设备120是传感器和驱动器等中的至少一个设备。I/O模块119作为根据需要可拆卸地安装***设备120的总线插槽发挥功能。控制对象装置经由或非经由***设备120与I/O模块119连接。控制对象装置和I/O模块119也可以是1︰1、1︰多、多︰1和多︰多中的任一种。另外,一部分I/O模块119也可以除了与控制网络118连接以外还与信息网络108连接,即,该一部分I/O模块119也可以是控制程序和信息程序共享的器件。
程序分发装置101管理的是控制程序和信息程序。程序分发装置101包括EPROM201、CPU202、主存储器203、***控制装置205、非易失性存储装置206和网络接口(相当于图示的网络I/F)207。程序分发装置101经由网络接口207与信息网络108连接。
程序分发装置101通过***控制装置205的控制,经由信息网络108对控制装置109提供控制程序,或者提供信息程序。在该程序分发装置101中,通过CPU202的控制,根据请求向非易失性存储装置206提供预先保存的控制程序和信息程序。
***控制装置205经由总线204与EPROM201、CPU202和主存储器203连接。CPU202将预先保存于EPROM201的管理程序读出到主存储器203上来执行,通过该管理程序,对上述控制程序和信息程序进行管理。
该管理程序根据请求依次提供上述的控制程序和信息程序中的至少一个程序。通过由CPU202执行该管理程序,来实现后述的程序分发部102和执行管理数据生成部103。
另一方面,控制装置109包括EPROM208、CPU209、主存储器210、***控制装置212、I/O控制装置214、非易失性存储装置215和网络接口(相当于图示的网络I/F)213。I/O控制装置214和网络I/F213是接口部之一例。EPROM208、主存储器210和非易失性存储装置215是存储部之一例。CPU209和***控制装置212是处理器部之一例。在控制装置109中,由程序分发装置101提供的控制程序和信息程序在同一平台上共存并且进行动作。
***控制装置212与网络I/F213、I/O控制装置214、非易失性存储装置215和总线211连接。此外,在该总线211上连接有EPROM208、CPU209和主存储器210。
在EPROM208中保存有在初始状态下预先准备于控制装置109的控制程序和信息程序。CPU209包括多个核,能够使各核独立地动作。
装载于控制装置109的控制程序和信息程序不仅各自是各一个,而且通过按程序来设定控制装置109能够使用的资源,能够装载多个控制程序和/或多个信息程序。
CPU209将预先保存于EPROM208的控制程序和信息程序读出到主存储器210上来执行,控制这些控制程序和信息程序的动作。
即,当读出并执行这些控制程序和信息程序时,就成为后述的图2的控制程序114和信息程序115。
控制程序114和信息程序115具有不同的作用。
控制程序114访问控制装置109的I/O模块119,对控制对象装置进行控制。另外,控制程序114基于所读入的结果,进行运算,为了控制对象装置的控制,也可以对I/O控制装置214进行基于该运算结果的访问。控制程序114为了控制对象装置的控制,也可以对连接有该控制对象装置的网络I/F213进行访问。即,代替I/O模块119或除此以外,I/O控制装置214和网络I/F213的至少一个也可成为“I/O端口”之一例。即,控制程序114为了控制对象装置的控制(为了控制对象装置的控制信息的发送),对连接有该控制对象装置的I/O端口进行访问,换句话说,发送对该I/O端口进行控制的命令。
另一方面,信息程序115取得I/O控制装置214等的信息,进行运算,将运算的结果经由网络I/F213发送给与控制装置109连接的其他装置或设备。该段落中所说的“其他装置或设备”是与控制装置109连接但与控制程序114的控制对象装置不同的装置或设备。
控制装置109能够具有控制程序114和信息程序115的两者均可访问的共享区域(未图示)。该共享区域可以被确保在主存储器210和非易失性存储装置215中。共享区域例如可以是共享目录之类的逻辑存储区域,也可以是由物理地址(例如,存储地址)指定的物理存储区域。例如,控制程序114能够生成将也能够呈现于信息程序115的数据值读写到共享区域内的任务,通过执行该任务,可从信息程序访问该共享区域内的数据值。所谓“也可以呈现的数据值”,广义上是与一个以上的信息程序115共享的信息即共享信息。共享信息例如可举出表示I/O端口的状态(或者,包含与I/O端口相关的其他类型的信息)的端口信息、与控制程序的内部变量等相关的控制程序信息。共享区域例如可以由后述的任务管理部110来设置,也可以由访问同一共享区域的控制程序114和信息程序115中的至少一个来设置。
这样,因为信息程序115能够防止直接访问连接有控制程序114的控制对象装置的I/O端口,所以安全性提高。换句话说,信息程序115通过参照共享区域内的共享信息,能够得知I/O端口的状态或控制程序114的状态,以代替直接访问连接有控制程序114的控制对象装置的I/O端口。
另外,信息程序115也可以从经由网络I/F213来连接但并非是控制程序114的控制对象装置的设备或装置中接收信息。信息程序115能够运算该接收到的信息等,且经由网络I/F213与其他装置或设备进行通信。
CPU209控制***控制装置212,并经由网络I/F213控制来自程序分发装置101的控制程序和信息程序的下载。
CPU209控制***控制装置212,并经由I/O控制装置214和多个I/O模块119控制多个***设备120。***设备120以1︰1与I/O模块119对应,CPU例如对I/O模块119和1︰1的数字I/O寄存器进行管理,通过寄存器操作,可逐一地进行I/O模块119的操作。
图2是表示包含第1实施方式的控制装置的***的功能性概略结构例的方框图。
程序分发装置101包括程序管理数据库(相当于图示的程序管理DB)104、程序分发部102和执行管理生成部103。程序管理DB104基于主存储器203和非易失性存储装置206的至少一部分。这些程序分发部102和执行管理生成部103通过由CPU202执行上述的管理程序来实现。
程序管理数据库104对控制程序105和信息程序106进行管理。执行管理生成部103生成表示在控制装置109中执行控制程序105和信息程序106中的至少一个程序时的参数的执行管理数据。该执行管理数据例如是控制程序105和信息程序106的各任务的优先度、和可用于每个控制程序105和信息程序106的上限存储容量那样的一个以上的参数。
程序分发部102在根据请求提供上述至少一个程序时,同时提供表示与上述至少一个程序对应的参数值的执行管理数据。
控制装置109往往也被称为顺序控制装置、运动控制装置、或可编程逻辑控制器(PLC)。用诸如梯形逻辑图(LD语言)、顺序功能图(SFC语言)、功能块图(FBD语言)、结构化文本(ST语言)、指令列表(IL语言)那样的控制特有的编程语言来记述控制内容。另外,在某些情况下,C语言等通用编程语言的记述也可以调换为梯形图语言等的记述的一部分或全部。
控制与这种控制装置109连接的控制对象的控制程序105(114)在使用以梯形图语言为代表的控制特有的编程语言时是有效的。可进行梯形图的显示,对控制对象的状态监视等有效。
另一方面,信息程序106(115)对这种控制装置109的信息处理(例如,复杂的算术运算、与SCADA、MES、云***进行信息收发那样的信息通信处理)有效。
这种信息处理有时难以用控制特有的语言进行编程,有时使用所谓的C语言或Java(注册商标)语言等在信息通信领域中使用的编程语言来记述。
程序管理数据库104对具有执行上述控制内容的功能的控制程序105、和具有执行上述信息处理的功能的信息程序106进行管理。
控制装置109包括任务管理部110、控制程序执行部111、信息程序执行部112、执行管理表113和I/O控制部117。
控制程序执行部111例如是运行时库,根据来自控制程序114的调用,与控制程序114一同动作。信息程序执行部112例如是所谓的库,根据来自信息程序115的调用,与信息程序115一同动作。
此外,控制程序114相当于从程序分发装置101向控制装置109分发完毕的控制程序105(或随着该控制程序105的执行而生成的一个以上的任务),信息程序115相当于从程序分发装置101向控制装置109分发完毕的信息程序106(或随着该信息程序106的执行而生成的一个以上的任务)。
执行管理表113保存与由程序分发装置101提供的上述至少一个程序一同获取的上述执行管理数据。
另一方面,任务管理部110主要具有两个功能,具体地说,具有程序接收功能和程序执行管理功能。程序接收功能是根据请求接收由程序分发装置101提供的上述至少一个程序的功能。另一方面,程序执行管理功能是在执行上述至少一个程序时基于执行管理表113所保存的执行管理数据来控制上述至少一个程序的执行的功能。
I/O控制部117将来自控制程序114的控制信息传送到该控制信息的发送目的地。
如上所述,控制装置109包括主存储器210,该主存储器210具有控制程序114和信息程序115的各任务使用的规定的存储容量的存储区域。
这里,在程序分发装置101中,执行管理生成部103至少生成控制程序105和信息程序106的各任务的优先度、和表示可由控制程序105和信息程序106的各任务使用的主存储器210的上限存储容量的至少一个参数值的执行管理数据作为执行管理数据。
图3表示图2所示的执行管理表113的表结构例。
执行管理表113针对控制程序114和信息程序115分别具有条目。各条目保存例如程序名称301、程序类别302、任务优先度303、执行周期304、存储器上限305、CPU核编号306、利用器件307和专有器件308之类的信息。以下,以一个程序为例(在图3的说明中为“对象程序”)。
程序名称301表示对象程序的名称。程序类别302表示对象程序是控制程序114还是信息程序115之类的程序的类别。此外,即使在上述的程序名称301的开头3个字符中,也能够识别是控制程序114还是信息程序115。“CTL”表示控制程序114,“ICT”表示信息程序115。以下,往往用程序名称来表达控制程序114和信息程序115各者。
任务优先度303表示与对象程序对应的任务的优先度。在任务优先度303中,例如可在从“0(优先度:高)”到“20(优先度:低)”之间设定优先度。即,作为任务优先度303的值越小,优先度越高。
执行周期304表示执行对象程序中的正常处理的周期。“执行周期”是扫描时间。根据图示的例子,CTL001的扫描时间为10msec,CTL002的扫描时间为1msec。因为扫描动作是控制程序114和信息程序115中的控制程序114特有的动作,所以执行周期304对控制程序114是有效值,但对信息程序115是无效值。执行周期304(扫描时间)也可以是用工程工具通过模拟而确定的值、或通过实际上由控制装置109执行控制程序114来确定的扫描时间。
存储器上限305表示对象程序在主存储器203的存储区域中能够使用的存储容量的上限。
CPU核编号306表示装载于控制装置109的CPU209的多个核中的分配给对象程序的核的编号。
利用器件307表示对象程序可利用的器件即利用器件,具体地表示对象程序可利用的I/O模块119(与I/O模块119连接的可利用的***设备120)。
专有器件308表示与对象程序对应的利用器件307表示的一个以上的利用器件(I/O模块119)中的专有于对象程序的器件即专有器件(即,对象程序不可与其他控制程序114或信息程序115共享的I/O模块119)。
根据图示的例子,例如可以说如下所述。
CTL001是控制程序。关于CTL001,例如如下所述。即,任务优先度设定为比CTL002低。另外,存储器上限为16MB,要使用的CPU核的编号为0。利用器件为DI1和DO1(控制装置的数字输入1和数字输出1)。
将DI1和DO1设定为由CTL001专有,以免其他程序使用。在控制装置中,因为专有器件(被设定为专有器件308的器件)不在多个程序间共享,所以能够防止与专有器件(这里是DI1和DO1)有关系的控制变得不稳定。
另外,CTL002是利用器件为eth1、eth2、串行1的控制程序,具体地是利用两个Ethernet(注册商标)的端口、一个RS-232C的端口的控制程序。另外,因为CTL002比CTL001的实时性高,所以任务优先度比CTL001高。
CTL002表示eth2是例如用于运动控制的器件的情况。运动控制因为实时性高,且其他处理也优先,所以在四个程序中设定为优先度最高。
另外,因为CTL002使用的CPU核的编号为1,CTL001、ICT001、ICT006使用的CPU核的编号为0,所以CTL002专有编号为1的CPU核。
CTL002不仅从任务优先度303中规定的优先度的观点来看,而且也从专有CPU209具有的多个核中的编号为1的核的观点来看,可知优先度较高。通过进行这种设定,即使在控制程序中也能够将CTL002的优先度设为较高的状态。
接着,对存储器上限305进行说明。
在未设定存储器上限的情况下,在实际进行运算时,各程序都能够无穷尽地确保使用存储器。例如,在未设定信息程序能够使用的存储器上限的情况下,控制程序有可能使用,但信息程序有时确保未被确保的区域。但是,例如在追加了大量使用存储器的程序的情况下,随着该程序的追加,会发生耗尽***整体的存储器这种情况。在这种情况下,有时会因控制装置或OS停机而控制程序的动作停止,或者因OS强制启动存储器释放功能而妨碍控制程序的处理,导致在扫描时间内不能完成扫描动作。
因此,在本实施方式中,通过将存储器上限305的合计值设为控制装置的***整体可利用的值以下,能够防止控制装置等的停机。
此外,***整体可利用的值优选为从装载于控制装置的存储器中排除了OS等所使用的部分所得的值。这是因为控制或信息程序的处理不会影响到OS等区域。
另外,通过按程序来设定存储器上限305的值,如果在某个程序中存在使用了超出预期的存储器的不妥之处的情况下,则仅该程序停止,能够防止给其他程序造成影响。
接着,对任务优先度303进行说明。
任务优先度是执行各程序时的优先度。通过在各程序中设定任务优先度,能够使OS的调度器等识别向程序分配CPU的优先顺序。
当未明示地设定任务优先度就执行多个程序时,就会预先根据OS的调度器具有的规则,进行像CPU分配那样的资源分配。例如,进行像对多个程序平等地进行CPU的分配那样的调度。
这种调度在像控制程序那样的重要的是在扫描时间内可靠地结束处理的程序的情况下,有时会因其他程序的动作而不能在扫描时间内结束处理等给控制程序的动作造成影响。
例如,在第1程序的处理执行(CPU分配)中,当因计时器中断等而发出了任务优先度相对高于第1程序的第2任务的处理起始请求时,第1程序的处理就会中断,开始第2程序的处理。其后,当第2程序因Sleep等而结束了CPU的分配时,就会重新开始第1程序的处理。
另外,例如在第1程序的处理执行(CPU分配)中,当因计时器中断等而发出了任务优先度相对低于第1程序的第3任务的处理起始请求时,直到第1程序因Sleep等而结束了CPU的分配为止,都等待第3程序的处理起始。
因此,通过设定任务优先度303,能够优先进行优先度更高的程序的处理。
由此,能够优先处理用户判断为重要性更高的程序。即使在用控制装置来处理信息程序,且信息程序进行复杂计算的情况下,也能够不给控制程序造成影响。
ICT001和ICT002虽然未设定执行周期304即扫描时间,但因为信息程序的任务优先度比控制程序低,所以能够在控制程序的计算中的未利用CPU核的时间(例如,空闲时间)内进行信息程序的处理。由此,不会给控制程序的处理造成影响,能够对信息程序进行处理。
ICT001和ICT002的利用器件均为eth1,eth1未被设定为专有。因此,关于eth1的端口,ICT001和ICT002可共享利用。
在ICT001和ICT006同时使用了eth1的情况下,任务优先度303高的ICT001先使用eth1。在ICT001结束了eth1的使用时,任务优先度303高的ICT006才能够使用eth1。这样,程序分别可进行与任务优先度相应的处理。
图4是表示控制装置109从程序分发装置101中下载所期望的程序的程序下载处理之一例的流程图。
首先,在程序分发装置101中,根据使用了未图示的操作画面的用户的操作,选择要下载的程序(步骤S401)。由此,程序分发部102在程序管理数据库104中确定对应的确定程序。
接着,在程序分发装置101中,在操作画面上根据用户的操作对上述确定的程序设定执行管理数据(步骤S402)。如图3所示,该执行管理数据包含例如任务优先度303。
由此,执行管理生成部103能够根据用户的输入内容,设定例如执行各程序的各任务时的优先度、和各任务能够使用的主存储器210内的上限存储容量中的至少一个参数作为与上述确定的程序的动作形态相关的参数。
下面,作为一例主要举出优先度进行说明。以上表示程序分发装置101中的处理,以后表示控制装置109中的处理。
程序分发装置101根据控制装置109的请求,将上述确定的程序和与之对应的执行管理数据下载到控制装置109中(步骤S403)。
接着,在控制装置109中,任务管理部110接收上述下载的上述确定的程序(相当于上述的程序接收功能)。任务管理部110在完成了接收时,在上述确定的程序为控制程序的情况下,就将其保存在主存储器210中作为控制程序114(步骤S404)。
接着,在控制装置109中,任务管理部110将与上述确定的程序一同下载的执行管理数据追加记录到执行管理表113中(相当于上述的程序执行管理功能)(步骤S405)。
图5是表示程序执行处理之一例的流程图。该程序执行处理表示在控制装置109中执行上述确定的程序时的处理内容。
任务管理部110在要新执行某个规定程序时,就从执行管理表113中读出与该规定程序对应的执行管理数据(步骤S501)。
作为与该规定程序对应的执行管理数据,包含执行该规定程序的各任务时的优先度,该规定程序是在执行管理表113中的优先度303中管理的程序。
接着,任务管理部110基于该读出的执行管理数据,设定例如该规定程序(控制程序105和信息程序106中的至少一个程序)的各任务的优先度,或者设定或确定各任务能够使用的主存储器210的上限存储容量作为该规定程序的参数(步骤S502)。
任务管理部110使用规定的指令来设定这种优先度。另一方面,任务管理部110设定上述的上限存储容量。
根据如上所述的实施方式,共存于同一平台(即控制装置109)的控制程序114和信息程序115分别在该平台上根据对应的参数而动作。任务管理部110通过使控制程序114和信息程序115基于该程序114和115各自的任务优先度等参数值而控制控制程序执行部111和信息程序执行部112,来控制该程序114和115各自的执行(步骤S503)。
在这种情况下,信息程序115即ICT001和ICT002以规定的资源而动作。另外,控制程序114即CTL001和CTL002以规定的资源且以高于ICT001和ICT002的优先度而动作。
通过适当变更执行管理表113,控制程序114和信息程序115彼此在进行例如任务的追加、更新或删除那样的功能变更时,能够在其他程序保持动作的状态下,变更一部分控制程序114或信息程序115。
另外,信息程序115在确保了规定的资源的情况下,在不与其他程序发生影响时,不需要重新编译或重新下载,即使变更执行管理表113,也能够动作(关于需要重新编译或重新下载的一个比较例,后面进行描述)。
因此,因为也容易进行控制程序114和信息程序115的各任务的追加、更新和删除中的任一个的功能性的变更,所以控制装置109能够进行灵活的功能变更。
[第2实施方式]
利用图3等对第2实施方式进行说明。此时,以与第1实施方式的不同点为中心进行说明,关于与第1实施方式的共同点,省略或简化说明。
在第2实施方式中,在上述的操作画面(未图示)上,基于图3所示的执行管理表113,显示根据上述的各程序能够使用的主存储器210的上限存储容量而导出的剩余资源,例如,各程序能够使用的主存储器210的剩余容量。
在程序分发装置101中,当在上述的操作画面中根据规定的操作选择了例如剩余资源等时,就将表示包含该剩余资源的参数值的执行管理数据与选择到的程序一同下载到控制装置109中。
在控制装置109中,任务管理部110与该选择到的程序一同获取上述执行管理数据,将该执行管理数据注册到执行管理表113中。
如果该选择到的程序是控制程序114,则控制程序执行部111以基于上述执行管理数据的剩余资源为参数值,执行该选择到的程序即控制程序114。
另一方面,如果该选择到的程序是信息程序115,则信息程序执行部112以基于上述执行管理数据的剩余资源为参数值,执行该选择到的程序即信息程序115。
当采用如上所述的结构时,能够得到与第1实施方式同样的效果,并且还能够使与那种各任务能够使用的主存储器210的剩余资源接触的用户基于适当的信息,进行下载设定,并且能够使上述选择到的程序不影响现有程序。
[几个变形例]
接着,对变型例进行说明。在上述的第1和第2实施方式中的至少一个中,能够采用如下所述的变型例中的至少一个。
作为第1变型例,例如也可以利用管理程序等从OS层中分离出来。
作为第2变形例,只要不与处理结果发生矛盾,也可以构成为更改处理的顺序或并行动作来代替按顺序进行各种程序的处理。
作为第3变形例,有图6A和图6B所示的例子。即,在控制程序的动作中变更信息程序。具体地说,例如,如图6A所示,关于CTL007和ITL008,CPU核编号306是共同的。这表示在控制程序即CTL007的动作中,为了执行信息程序即ITL008,能够使用同一核,即,虽然任务优先度303或利用器件307不同,但CTL007的处理会受到ITL008的影响。
ITL008因为是信息程序,所以是可在控制程序的执行中变更的程序。在删除了控制装置109具有的ITL008之后,将ITL009传送到控制装置109中。传送是由程序分发装置101等进行的。由此,能够将ITL008变更为ITL009。
[上述说明的概念之一例]
如果对上述说明的概念之一例进行说明,则如下所述。一种控制装置,其通过访问物理(不仅包含直接的情况,还包含通过网络而间接连接的情况)连接的控制对象装置硬件的I/O端口,来控制硬件的动作,其特征为,将I/O端口的信息读入且将其保存于控制程序和信息程序可访问的共享区域中的保存单元和控制程序取得I/O端口或所保存的I/O端口的信息,向I/O端口输出与该I/O端口连接的装置的控制信息,信息程序取得所保存的I/O端口的信息,通过对所取得的I/O端口的信息进行运算,来确定处理信息。
[总结和更具体的实施方式之一例]
下面的说明包含到此为止的说明的总结和更具体的实施方式之一例。换句话说,下面的说明也可以包含到此为止的说明的重复部分和到此为止的说明中没有的事项中的任一个。
考虑将用于取得控制对象装置的控制所需的信息(例如,传感器的测定值)的通信设为基于控制程序的控制的一部分(即,关于通信,记述在控制程序中),但认为像通信那样的信息处理优选与基于控制程序的控制分离。那样考虑的一个理由是,因为控制装置的控制对象装置通常是像工作机械、自动组装装置或自动输送装置那样的自动机械或生产设备,所以要求具有较高的稳定性,即实时性。
因此,考虑除了准备控制程序以外,关于像通信那样的信息处理,还要准备所记述的程序即信息程序。为了维持实时性,应该使控制程序优先,考虑用与控制装置分体的装置来执行信息程序,但从节约资源的观点来看,考虑在像控制装置那样的同一平台上执行控制程序和信息程序两者。在这种情况下,要求控制程序和信息程序在控制装置内适当地共存。
但是,由上述的理由可知,上述的专利文献1和2既没有公开也没有暗示用于控制程序和信息程序适当共存的技术。
在同一平台上,执行包含一个以上的控制程序114和一个以上的信息程序115的多个程序。根据上述的说明,“同一平台”是控制装置109。
一个以上的控制程序各自是进行对于该控制程序来说的用于控制对象装置的控制的扫描动作的程序。另一方面,一个以上的信息程序各自是进行不包含扫描动作的信息处理的程序。
通过下述例示的至少一个,能够灵活地变更信息程序。
·关于多个程序114和115各者,设定有规定了该程序的动作范围的多个参数值。控制程序114的执行和信息程序115的执行基于该控制程序114和该信息程序115各自的多个参数值来进行。可调节信息程序115的多个参数值,以使其不对任一个控制程序114的执行产生不良影响。
·设置一个以上的共享区域。关于一个以上的共享区域各者,如下所述。即,该共享区域是一个以上的控制程序114的至少一个控制程序114和一个以上的信息程序115的至少一个信息程序115可访问的存储区域。在该存储区域内保存有例如包含与由该控制程序114访问的I/O端口相关的信息和与该控制程序114相关的信息(例如内部变量)中的至少一方的共享信息。基于该共享区域所保存的共享信息,可访问该共享区域的信息程序115能够进行信息处理。换句话说,因为根据基于控制程序114的执行结果的共享信息来执行信息程序115,所以可期待信息程序115的执行不会给控制程序114造成不良影响。因此,能够期待在不给控制程序114造成不良影响的情况下变更信息程序115。
例如,关于多个程序114和115各者,准备包含规定了动作范围的多个参数值的执行管理表113。由此,能够防止因信息程序115的执行(动作)给控制程序114的执行造成不良影响。关于该多个程序114和115各者,多个参数值包含下述中的至少一个:
·任务优先度303(该程序的优先度之一例)、
·存储器上限305(与一种以上的计算资源对应的一个以上的资源上限之一例)、
·利用器件307和专有器件308(表示该程序可利用的一个以上的I/O端口中的哪个I/O端口是专有于该程序的I/O端口,且哪个I/O端口是包含该程序的两个以上的程序可共享的I/O端口的专有/共享器件之一例)。
通过有像任务优先度303那样的程序优先度之类的参数值,能够进行优先维持控制程序114所要求的实时性的处理。例如,从节约计算资源的观点来看,考虑将CPU核、存储器区域和I/O端口之类的至少一个计算资源设为共享器件,具体地说,控制程序114和信息程序115共享。通过任务优先度303的设定,即使控制程序114和信息程序115共享计算资源,也能够以不损害控制程序114的实时性的方式执行信息程序115。
通过有像存储器上限305那样的资源上限,也能够进行优先维持控制程序114所要求的实时性的处理。例如,在信息程序115未再现地使用了存储器量之后就停止的情况下,会使释放存储器量的处理开始运行,但考虑该处理优先于控制程序114地进行。这是考虑到不释放存储器量控制程序114就不能进行适当处理的缘故。但是,那样的话,就会有损控制程序114所要求的实时性。为了避免这种情况,有效的是资源上限。
关于控制程序114和信息程序115各者,专有/共享器件之类的设定可以是两个以上参数值的组合的设定。通过设定专有器件,能够期待稳定的性能,例如,实时性的维持。通过设定共享器件,既能够期待节约计算资源,又能够期待灵活的处理。
例如,也可以准备图7例示的设定范围表700。表示与用图6A和图6B进行了说明的例子不同的设定方法。另外,图8A和图8B所示的CPU核、存储器上限、LAN端口各自是表示与图7的默认值703和设定值704的值对应的信息程序115可利用的资源的图。即,图8A表示控制程序114专有CPU核1~4,但3~4尚未被利用,信息程序115专有5~8的状态。
另外,存储器能够由控制程序114和信息程序115分别使用最大128MB。接着,表示控制程序114专有LAN1和2,信息程序115专有LAN4,这两个程序共享LAN3的情况。图8B表示与图7所示的设定值704的值对应的资源。设定范围表700可以从用户使用的计算机(例如,管理用户计算机151M)中经由或非经由程序分发装置101地保存在控制装置109中。设定范围表700是规定与信息程序115相关的参数值范围的表,关于多个参数项目(例如,包含与图3例示的参数项目303~308中的至少一个相同的参数项目的多个参数项目)各者,保存属性701、可设定范围702和默认值703之类的信息。以下,以一个参数项目为例(在图7的说明中为“对象参数项目”)。设定值704是在不使用默认值703的情况下设定的值。在输入或设定了设定值704的一部分的情况下,未输入或设定的值可以使用默认值703的值。由此,用户在利用信息程序115时,即使不设定所有项目或一部分项目,也能够执行信息程序115。如图7所示,可以显示于显示单元,且由输入单元来输入,也可以仅另外设定设定值704。
接着,对图8C进行说明。图8C表示变更了图8A的设定的状态。图8C表示控制程序114专有CPU核1和2、信息程序115专有CPU核7和8、共享CPU核3~5的情况。被共享的CPU核能够在各自的程序114和115的计算处理不足的情况下利用。另外,也能够根据任务优先度来变更使用量。
被共享的CPU核当使用虚线的边界线时,与图8B的差异就会明确地显示给用户,是很便利的,但作为该差异的表达,也可以采用其他表达。例如,也可以采用变更专有、共享各自的背景色、或分别实施不同的剖面线处理等。存储器的设定与图8B同样,所以省略说明。就LAN端口而言,控制程序114专有LAN1,信息程序115专有LAN3,控制程序114和信息程序115共享LAN2和4。
属性701表示关于任一个信息程序115,当变更与对象参数项目对应的参数值时,是否有可能给任一个控制程序114的执行(动作)造成不良影响。“A:设定注意”意味着有可能造成不良影响。“B:可自由设定”意味着不会造成不良影响。通过表示属性701,用户能够容易得知不造成不良影响的项目。
可设定范围702表示就对象参数项目而言关于信息程序115可设定的参数值的范围。在该范围内可调节参数值。关于至少一个参数项目,可设定范围702也能够表示关于各个信息程序115的值,但在图7的例子中,关于任一个参数项目,都表示作为所有信息程序115的合计的值。例如,参数项目“CPU核数”能够设定信息程序115使用CPU核2~8中的哪个核,但在未特别设定的情况下,如默认值703所述,使用CPU核4-8。与“存储器上限”对应的可设定范围702是关于所有信息程序115的存储器量合计的上限的范围。在图8B所示的例子中,信息程序115可设定为16~256MB,但在未设定有设定值704的情况下,使用默认值703的值即128MB,在将设定值704设定为160MB的情况下,能够使用160MB。由此,在图8A所示的例子中,因为信息程序115能够充分利用存储器,所以能够使信息程序115的动作更加稳定。
此外,关于至少一个参数项目,可设定范围702能够被自动地设定或变更。在自动设定时,控制程序114能够参考地设定器件的资源、专有或共享的信息。例如,任务管理部110能够基于控制程序114的使用资源,自动地设定或变更关于信息程序115的可设定范围702。例如,在控制程序114专有LAN端口中的LAN1和LAN2,且共享LAN3的情况下,能够将可利用LAN端口的可设定范围702设为LAN3、LAN4,且将专有LAN的可设定范围702设为LAN4。在这种情况下,当设定为信息程序115专有LAN3时,就不能使用控制程序114,所以在属性701上记载为设定注意。此外,当仅将可利用LAN端口的可设定范围702设定为LAN4时,专有LAN端口的可设定范围702仅成为LAN4。这意味着将不能利用的LAN端口变更为不能自动专有的设定。
另外,参数项目“路由方式”在图9例示的OS共同安装中被采用。例如,如果参照后述的图9,则“Masquerade”意味着容器953(执行环境之一例)不会从控制装置909的外部接受通信。“Port forward”意味着仅接受来自控制装置909的外部的通信中的对某个端口的通信。“IP forward”意味着对物理网络I/F(例如图1的网络I/F213)追加赋予信息容器953B专用的IP地址,且将指定了该IP地址的通信传送到信息容器953B内的信息程序115中。
另外,参数项目“可利用LAN端口”表示信息程序115可利用的LAN端口,“专有LAN端口”表示信息程序115专有的LAN端口。即,信息程序115成为默认地与控制程序114共享LAN端口3和4,且专有LAN端口4的设定。
另外,参数值“共享文件夹”表示指向共享区域之一例即共享文件夹的路径。因为在默认值703中是没有共享的,所以只要没有特别设定,就成为没有共享文件夹的状态。
默认值703表示与对象参数项目对应的默认值。例如,根据与参数项目“LAN端口”对应的默认值,在信息程序115中设定有参数值“LAN3”和“LAN4”,在专有LAN端口的参数值中设定有“LAN4”。即,LAN3是共享器件,LAN4是信息程序115专有的器件。如图8A所示,LAN端口表示控制程序专有一个端口、信息程序专有一个端口、控制程序和信息程序共用两个端口的状态。所谓这里的共享,指的是即使是控制程序也不一定要求实时性的通信和信息程序分别利用LAN端口的情况。
例如,在一个程序使用共享LAN端口时,在使用另一个程序的情况下,直到一个程序的通信结束为止,都进行待机,且使用另一个程序。通过控制程序114专有LAN端口,在使用实时控制通信的情况下有效。通过控制程序114和信息程序115共享LAN端口,在进行通常的Ethernet通信等非实时通信的情况下有效。在信息程序115与控制装置109的外部例如工厂的外部或因特网等进行通信时,能够不让从控制装置109的外部看到控制程序114或与控制装置109连接的装置,所以从安全的观点来看是有效的。
关于多个程序114和115各者,如图8A所示,就一种以上的计算资源(例如CPU核、存储器、LAN(I/O端口之一例))各者而言,与该种类(各个参数项目)的计算资源对应的资源上限是基于对该种类的计算资源规定的资源边界(在图8中,用粗实线表示)而定的。在共享LAN的情况下,为了方便起见,在中间位置设置边界线来表达。关于一种以上的计算资源各者,资源边界是用下述(x)和(y)定义的边界。通过控制程序114以(x)以下的资源来执行,且信息程序115以(y)以下的资源来执行,能够不给各个程序造成影响地执行。此外,CPU不限于核数,也能够包含单一核的情况在内地设定调度的优先度。另外,在CPU核为多个的情况下,也能够进行调度,以使其不变更CPU核的专有设定地在规定的扫描时间内执行控制程序115,在这种情况下,能够高效地使用多个核。
(x)是该种类的计算资源的资源上限,且是全部控制程序114能够使用该种类的计算资源的资源合计。
(y)是该种类的计算资源的资源上限,且是一个以上的信息程序能够使用该种类的计算资源的资源合计。
通过这种资源边界,能够期待实时性的维持。此外,在图8中,关于各种计算资源,比资源边界更靠左侧的灰色带意味着全部控制程序114使用的资源的合计即总使用资源,比资源边界更靠左侧的白色带表示关于控制程序114的富余资源(资源边界与总使用资源之差)。即,灰色带表示实际的利用状态,白色带表示未使用但能够使用的资源。另一方面,关于各种计算资源,比资源边界更靠右侧的灰色带意味着全部信息程序115使用的资源的合计即总使用资源,比资源边界更靠左侧的白色带表示关于信息程序115的富余资源(资源边界与总使用资源之差)。通过实时显示或错时显示该资源,来确定资源的使用量,通过设定值704,能够更高效地执行控制程序114或信息程序115。
如图8所示,控制多个程序114和115的执行的任务管理部110动态地变更该一种以上的计算资源中的至少一种计算资源的资源边界。该变更在例如发生了用于资源边界变更的规定事件的情况下(例如,在任务管理部110从用户接收到了资源边界的变更请求的情况下)进行。由此,例如,关于控制程序114,就富余资源充分的某种计算资源而言,执行对于控制程序114来说的资源减少的资源边界变更(例如,参照计算资源种类“存储器”)。这样,通过灵活地变更资源边界,既能够期待维持实时性,又能够期待高吞吐量。即,能够期待实时性和高吞吐量两者。
此外,关于至少一种计算资源,该种类的计算资源的资源边界的变更在对于控制程序114来说的资源减少的变更的情况下,可以由任务管理部110进行下述的(A)和(B)。通过下述的(A)和(B),即使是对于控制程序114来说的资源减少的边界变更,换句话说,即使追加了信息程序115时的前提被变更,也能够期待实时性的维持。
(A)停止一个以上的信息程序115中的至少一个。
(B)关于至少一个控制程序114,执行下述(b1)和(b2)中的至少一个。
(b1)将分配给停止后的信息程序115的共享器件(例如I/O端口中的至少一个)变更为该控制程序114的专有器件。
(b2)进行相对提高该控制程序的任务优先度303(即,提高该控制程序的任务优先度303、降低停止后的信息程序115的任务优先度303中的至少一个)。
另外,在上述的说明中,控制程序114和信息程序115共存的平台是作为物理计算机的控制装置109,但如图9所示,作为另一例,可采用同一OS952。即,控制程序114和信息程序115的OS是共同的。这里,关于多个程序114和115各者,也设定有包含规定了该程序的动作范围的多个参数值的执行管理表113。
关于控制,通常要求高实时性,关于信息处理,通常要求高吞吐量。而且,作为OS,也通常有作为面向控制的OS的专用OS(实时OS)和作为面向信息处理的OS的通用OS。
通常,控制程序由装载有专用OS的计算机执行,另外,由装载有通用OS的计算机执行,该通用OS是从装载有专用OS的计算机接收到了信息***的计算所需的信息的OS。这里,假如考虑到了最近通用计算机领域的技术,则认为通过控制程序在专用OS上执行,且信息程序在通用OS上执行,能够采用与本申请发明类似的结构。因此,在同一计算机中共存有控制程序和信息程序的情况下,通常采用模拟计算机中的计算资源集合(作为物理计算资源的集合的硬件)的虚拟机技术。具体地说,例如,考虑管理程序在控制程序用时,生成装载有专用OS的虚拟机作为备用OS,在信息程序用时,生成装载有通用OS的虚拟机作为备用OS,控制程序和信息程序用OS不同的各自的虚拟机执行。
但是,在虚拟机技术中,除了存在虚拟机中的备用OS以外,还存在成为虚拟机的基础的主机OS。作为结果,考虑管理对象多,管理复杂。
另外,即使在计算机上连接有设备,该计算机中的所有控制程序或信息程序也并非能够容易识别该设备。除了虚拟机以外,还需要用于经由备用OS识别该设备的处理。换句话说,控制程序和信息程序难以共享器件。
根据本申请的发明人员的考察,提供了一种虽然是通用OS的***但具有能够提供必要的实时性的实时功能的OS(以下,为了方便起见,称为“实时通用OS”)。
因此,如图9所示,考虑采用实时通用OS作为控制程序114和信息程序115共存的OS952。
但是,当控制程序114和信息程序115在实时通用OS上共存时,有可能降低控制程序114的实时性。具体地说,例如,实时通用OS具有调度器,在该调度器中会发生中断。调度器如果有要执行的实时任务(与控制程序114对应的任务),则根据任务优先度303,向该实时任务传递控制,如果没有要执行的实时任务,则向通常任务(例如与信息程序115对应的任务)传递控制。即使有要执行的实时任务,如果通常任务未结束到规定的处理,则该通常任务不会停止。因此,实时任务的起始延迟,作为结果,有可能损害实时性。
因此,通过采用OS952作为控制程序114和信息程序115的同一平台,且在该环境中采用上述的设计中的至少一个,例如,下述中的至少一个,来维持实时性。
·设定上述的执行管理表113。即,关于控制程序114和信息程序115各者,设定以实时性的维持为目的而决定的参数值。
·为了避免实时性降低来代替器件的共享化变得容易,设定如上所述的资源边界。
作为参数值的设置,具体地说,例如,通过图3例示的参数值303~308的组合,即使控制程序114和信息程序115在同一OS952上共存,也可实现实时性的维持。例如,进行如下处理,即,考虑如果通常任务未结束到规定的处理,则该通常任务不会停止,来决定参数值303~308。
另外,可以适当地考虑吞吐量,而由例如主机程序之一例即执行控制程序957动态地变更资源边界。此时,资源边界的变更在对于控制程序114来说的资源减少的边界变更的情况下,可以由例如执行控制程序957进行上述的(A)和(B)。
关于图9的控制装置909,例如如下所述。
在控制装置909的计算资源集合951上执行OS952。作为OS952上的程序执行环境,采用根据容器型虚拟化而成的容器953。即,程序设定于容器953,在OS952上以容器953为单位来执行。作为容器953,例如有控制容器953A和信息容器953B这两种容器。
控制容器953A是保存且执行控制程序114的容器。控制程序114例如可以在软件PLC***运行器961上执行。控制程序114也可以进行控制***通信。此外,控制系通信可以是串行或并行的有线通信,也可以是无线通信。
信息容器953B是保存且执行信息程序115的容器。至少一个信息程序115能够进行信息***通信。
作为由控制装置909执行的程序,除了上述的程序114和115以外,还有其他程序,例如,Web服务程序956和执行控制程序957。Web服务程序956和执行控制程序957都是在容器953的外部执行的主机程序之一例。执行控制程序957可以是进行容器953的生成或删除等的容器引擎。通过执行Web服务程序956和执行控制程序957,可以实现上述的任务管理部110。
Web服务程序956是用于作为Web服务发挥功能的程序。Web服务程序956分别与管理用户计算机151M和一般用户计算机151G(客户端)进行通信。Web服务程序956是针对保存一个以上的信息程序115中的至少一个的容器来接受参数值的设定的用户接口程序之一例。
执行控制程序957基于关于容器953中的程序而设定的多个参数值,控制容器953(正确的是容器953中的程序)的执行。
[第3实施方式]
下面,利用图10等对第3实施方式进行说明。此时,以与第1实施方式的不同点为中心进行说明,关于与第1实施方式的共同点,省略或简化说明。另外,在下面的说明中,“计算资源”是物理资源,与此相对,被使用或能够使用的“资源”能够是被使用或能够使用的资源量(例如,CPU核数或存储容量)的意思。
图10是表示第3实施方式的控制装置的功能概略结构的方框图。
计算资源集合951是包含图1所示的多种计算资源的多个计算资源。计算资源集合951包含例如与像一个以上的***设备120(参照图1)那样的一个以上的控制对象装置连接的一个以上的I/O端口(例如,I/O控制装置214或I/O模块119)、与网络108(参照图1)连接的一个以上的网络端口(例如,网络I/F213)。
任务管理部1010和使用资源监视部1017可以是通过执行一个以上的控制程序114和一个以上的信息程序115以外的一个以上的程序即程序组来实现的功能之一例。
任务管理部1010从程序分发装置101(参照图1)中,经由网络108和网络I/F213,下载一个以上的控制程序和一个以上的信息程序中的一个以上的程序即一个以上的对象程序中的至少一个,但在与该下载的时刻不同的时刻,变更关于计算资源集合951表示该对象程序能够使用的资源即资源上限的执行管理数据。此外,一个以上的控制程序114各自是进行扫描动作的程序,该扫描动作是输出与I/O端口连接的***设备120(控制对象装置之一例)的控制信息的扫描动作。一个以上的信息程序115各自是进行与扫描动作不同的信息处理的程序。
如上所述,控制程序114要求在所设定的时间内可靠地执行处理(实时性)。因此,控制程序114将比较大的资源上限分配给信息程序115即可。换句话说,考虑信息程序115使要分配的资源上限比控制程序114小。但是,控制程序114通过与什么样的信息程序115共存于控制装置1009,会在控制程序114或信息程序115使用的资源上限上产生过不足。另外,根据资源的种类,当程序不试着实际动作时,就不知道要使用哪种程度的资源。另外,通常,至少根据资源的种类,用户有时不考虑开发对象程序使用哪种程度的资源或者怎样共享资源就进行该程序的开发。开发信息程序115的信息***的开发人员在面向通用计算机的开发中,因为很少意识到控制对象和要控制的硬件资源,所以要共享的资源的管理是很重要的。
因此,在本实施方式中,对象程序的执行管理数据在与该对象程序的下载不同的时刻被变更。因此,能够适当地变更该执行管理数据。即,根据装载于控制装置的程序所需的资源,不限于在程序的下载时,就能够适当地变更要使用的资源。进而,有助于使控制装置的运用效率上升。
使用资源监视部1017针对由网络I/F213传送的各对象程序,监视该对象程序使用的资源,将监视结果(表示针对该程序确定的使用资源的数据)保存在使用资源管理表1013中。由此,根据控制程序114或信息程序115的实际使用资源,能够适当地变更执行管理数据(资源上限)。此外,使用资源管理表1013可以按对象程序包含表示使用资源的数据。使用资源管理表1013被保存在控制装置1009的存储部(例如,主存储器210)中。在规定程序以监视结果中的比规定了当初使用的资源少的资源进行动作的情况下,通过重写执行管理信息,来减小要使用的资源,由此能够使其他程序能够使用的资源增加。由此,能够适当地变更规定程序所使用的资源,能够使控制装置以更适当的资源进行动作。另外,即使在规定程序需要比当初的规定还多的资源的情况下,即使在该规定程序的执行后,也能够变更要使用的资源,所以能够实现控制装置的灵活运用。
在本实施方式中,作为执行管理数据的变更的例子,有图11所示的第1例和图12所示的第2例。第1例是不经管理用户(控制程序114的开发用户)的许可就变更执行管理数据的例子。第2例是在得到了管理用户的许可的情况下变更执行管理数据的例子(换句话说,是不经管理用户的许可就不可能变更执行管理数据的例子)。第1例是控制程序114和信息程序115具有共同的流程。第2例是信息程序115具有特有的流程。关于信息程序115,可以预先决定采用第1例和第2例中的哪一个,也可以根据控制装置1009的环境状况(例如,控制程序114的数量和信息程序115的数量),由任务管理部1010决定。下面,对执行管理数据的变更的例子进行说明。
图11是表示执行管理数据的变更的第1例的图。以下,在图11的说明中,以一个对象程序为例。
任务管理部1010从程序分发装置101向控制装置1009下载对象程序,且将其保存在存储部(步骤S1101)。
任务管理部1010因为关于该对象程序的执行管理数据没有用户的明示、输入或设定(例如,经由像GUI(Graphical User Interface)那样的用户接口来接受资源上限的设定),所以决定该对象程序的默认的执行管理数据,且将该执行管理数据保存在执行管理表113中(步骤S1102)。这样,在下载时,自动地设定执行管理数据。也可以在对象程序的执行管理数据中分别针对一种以上的资源来设定资源上限。此外,关于该对象程序的执行管理数据,任务管理部1010确定预先设定的第一执行管理数据(默认的执行管理数据之一例),在有用户的明示、输入或设定的情况下,也可以确定与该第一执行管理数据不同的第二执行管理数据。
任务管理部1010作为例如Web服务发挥功能。具体地说,例如,任务管理部1010从用户计算机151接受变更该对象程序的执行管理数据(例如,变更像资源上限那样的参数)的操作即变更操作(步骤S1103),根据该接受的变更操作,变更执行管理数据(步骤S1104)。
这样,在本实施方式中,对象程序的执行管理数据并非与该对象程序一同被下载。在本实施方式中,关于对象程序,该对象程序的执行管理数据不是保存在程序分发装置101中,而是保存在控制装置1009的存储部。即,每个可下载的程序,都不需要将执行管理数据准备在程序分发装置101中。程序分发装置101是例如程序开发环境、程序写入器或程序传送装置。
另外,每次由一般用户(和管理用户)设定信息程序115(和控制程序114)的执行管理数据都是很复杂的,但根据步骤S1102,可根据像信息程序115那样的对象程序所需的资源而自动地生成设定执行管理数据。因此,对于用户来说的便利性提高。此外,至少关于信息程序115,任务管理部1010也可以向管理用户计算机151M(参照图12)发出允许设定在步骤S1102中决定的执行管理数据(例如,两个网络端口的使用和一个串行器件的使用)的询问,在允许对该询问进行回答的情况下,设定该执行管理数据。
步骤S1102中的默认的执行管理数据的决定例如也可以如下面的至少一个那样进行。此外,对象程序是控制程序114还是信息程序,可根据程序的元数据、程序的保存源等来判別。
·在对象程序是控制程序114的情况下,任务管理部1010确定在该控制程序114的源数据或元数据中记述的程序特性(例如,所需的串行器件的数量),基于该程序特性,决定该控制程序114的执行管理数据(资源上限)。也可以不管该控制程序114的程序特性如何,都将全部控制程序114共用的资源上限设定在该控制程序的执行管理数据中。
·在对象程序是信息程序115的情况下,任务管理部1010确定在该信息程序115的源数据或元数据中记述的程序特性(例如,所需的串行器件的数量),基于该程序特性,决定该信息程序115的执行管理数据(资源上限)。例如,任务管理部1010在确定了使用两个网络端口的情况下,在执行管理数据中设定两个网络端口作为资源上限(参数)之一例。另外,例如,任务管理部1010在确定了使用串行器件的情况下,将至少一个串行器件作为专有或共享的器件而设定在执行管理数据中。也能够不管该信息程序115的程序特性如何,都将所有信息程序115共用的资源上限(例如,一个未使用的CPU核、和所有信息程序115能够使用的存储容量的X%)设定在该信息程序的执行管理数据中。
图12是表示执行管理数据的变更的第2例的图。以下,在图12的说明中,以一个对象程序为例。
进行与图11的步骤S1101~S1102同样的处理(步骤S1201~S1202)。
其后,任务管理部1010从一般用户计算机151G接受信息程序115的执行管理数据的变更操作(步骤S1203)。在那种情况下,任务管理部1010向管理用户计算机151M发出允许变更该信息程序115的执行管理数据的询问(步骤S1204)。在从管理用户计算机151M接受到对该询问的许可的情况下(步骤S1205),任务管理部1010按照在步骤S1203中接受到的变更操作,变更该信息程序115的执行管理数据(步骤S1206)。
在步骤S1204中发出的询问例如包含下述的信息,包含该询问的信息显示在管理用户计算机151M上。因此,管理用户容易判断是否可以允许根据在步骤S1203中接受到的变更操作进行变更。
·表示在步骤S1203中接受到的变更操作的内容(将哪个资源上限变更为怎样的资源上限)的信息。
·表示与资源上限相关的部分的信息(例如,如果变更对象的资源上限是参数项目“存储器上限”,则是与存储器上限对应的信息701~704),该资源上限是图7例示的设定范围表中的至少与该变更操作相关的资源上限。
作为一个比较例,考虑为了维持控制程序114的控制的实时性,要将控制程序114使用的可能性高的所有计算资源(例如,串行器件)设为控制程序114的专有器件,且对信息程序115进行不能够使用的设定,换句话说,过剩地限制信息程序115能够使用的计算资源。因此,在本实施方式中,如图12所示,一般用户能够表示出在信息程序115的下载后适当地变更该信息程序115的执行管理数据的意思,在得到了管理用户的许可的情况下(维持控制的实时性的情况之一例),能够变更该信息程序115的执行管理数据。
图13是表示对于控制程序114和信息程序115各者来说的资源上限的意义之一例的示意图。
根据图13的例子,资源边界是对于控制程序114来说的资源上限的一个例子,也是对于信息程序115来说的资源上限的一个例子。根据图13的例子,对于控制程序114来说的资源上限会影响到对于信息程序115来说的资源上限,对于信息程序115来说的资源上限会影响到对于控制程序114来说的资源上限。但是,不限于这个例子,例如,关于控制程序114,从资源边界起一定的余量可以是该控制程序114的资源上限。同样,关于信息程序115,从资源边界起一定的余量可以是该信息程序115的资源上限。
资源上限的意义因程序是控制程序114还是信息程序115而不同。具体地说,对于信息程序115来说的资源上限比对于控制程序114来说的资源上限更严格。下面,进行详细描述。
<关于对于控制程序114来说的资源上限>
关于某种类的资源(例如存储器使用量),控制程序114或任务管理部1010根据该控制程序114使用的资源,变更该控制程序114的执行管理数据。具体地说,例如,在该控制程序114的使用资源(例如存储器使用量)超过了其资源上限1303B的情况下(参照符号1301),如箭头1302所示,该控制程序114或任务管理部1010自发地将该控制程序114的资源上限从资源上限1303B扩展到资源上限1303A。在这种情况下,对于信息程序115来说,该种类的资源的资源上限缩小。此外,该种类的控制程序114的使用资源例如可从上述的使用资源管理表1013中确定。另外,关于该种类的资源,将控制程序114的资源上限扩展,作为结果,在对于信息程序115来说的资源上限被缩小的情况下,该控制程序114或任务管理部1010可以判断该缩小后的资源上限是否为该信息程序115的使用资源以上。在该判断的结果是真的情况下,该控制程序114或任务管理部1010可以执行对于该控制程序114来说的资源上限的扩展。在该判断的结果是假的情况下,该控制程序114或任务管理部1010可以进行下述中的任一个。
·等待到该判断的结果成为真(直到该信息程序115的使用资源小于缩小后的资源上限为止)。
·停止该控制程序114的动作,执行对于该控制程序114来说的资源上限的扩展。
根据这个例子,可根据控制程序114的实际使用资源,来变更该控制程序114的资源上限。即,可灵活地变更控制程序114的资源上限(作为结果,信息程序115的资源上限)。因此,一般用户(信息程序115的开发用户)的开发自由度提高。具体地说,例如,一般用户无需严格考虑控制程序114的资源上限就能够开发信息程序115。这是因为根据控制程序114的使用资源,信息程序115的资源上限随着控制程序114的资源上限的变更而适当变更。
此外,如图12所示,在得到了管理用户的许可的情况下,能够变更执行管理数据(资源上限),这也能够代替信息程序115的资源上限的变更,也适用于控制程序114的资源上限变更的事例。
<关于对于信息程序115来说的资源上限>
如上所述,对于信息程序115来说的资源上限比对于控制程序114来说的资源上限更严格。例如,在信息程序115的使用资源超过了它的资源上限的情况下(参照符号1311),该信息程序115的动作就会停止(符号1312)。
关于该信息程序115,在例如由步骤S1102或S1202决定的执行管理数据表示的资源上限超过了信息程序115能够使用的资源的上限(例如,基于控制程序114的变更后的执行管理数据表示的资源上限而定的该信息程序115能够使用的资源的上限)的情况下,任务管理部1010限制该信息程序115的执行。
所谓该信息程序115的执行的限制,是指拒绝下载后的该信息程序115的安装(或下载本身)。
或者,所谓该信息程序115的执行的限制,是指直到进行以下(A)或(B)为止(参照符号1321),都禁止该信息程序115的执行(参照符号1322)。
(A)针对该信息程序115决定的执行管理数据表示的资源上限超过该信息程序115能够使用的资源的上限;
(B)(A)从管理用户得到了许可。此外,(A)能够是例如基于控制程序114的变更后的执行管理数据表示的资源上限而定的、该信息程序115能够使用的资源的上限成为针对该信息程序115决定的执行管理数据表示的资源上限以下。
如上所述,控制程序114或信息程序115的使用资源会随着动作而变化。在控制程序114的使用资源超过了资源上限时,该资源上限被扩展,在信息程序115的使用资源超过了资源上限时,该信息程序115的动作就会停止(直到该资源上限的扩展从管理用户得到了许可为止,都不可进行该资源上限的扩展)。如果控制程序114的资源上限过高(如果过剩地向控制程序114分配了资源),则通过缩小控制程序114的资源上限,或者通过响应来自管理用户的许可而扩展信息程序115的资源上限,从控制程序114释放过剩分配的资源,释放后的资源的至少一部分被分配给信息程序115。因此,在控制程序114或信息程序115的下载后,改变执行管理数据(资源上限)的意义是重大的。
此外,任务管理部1010无需使控制程序114的动作停止即可进行信息程序115的资源上限的扩展。例如,关于控制程序114和信息程序115中的任一个,资源上限都位于从资源边界起一定余量的位置。而且,控制程序114的使用资源也可以超过其资源上限,但禁止超过资源边界。在这种情况下,如符号1331所示,任务管理部1010能够将信息程序115的资源上限从当前的资源上限扩展到资源边界(即,直到使用资源的范围中的最大值为止)。因为资源边界是控制程序114的使用资源的最大值,所以扩展信息程序115的资源上限不会影响到控制程序114的动作。
根据图13的例子,关于控制程序114和信息程序115中的至少一方,资源上限可以与资源边界同义,也可以在从资源边界起一定的范围内可变。在后者的情况下,可在不影响另一个程序的动作的情况下变更关于控制程序114和信息程序115中的一个程序的资源上限。
以上,基于本发明的实施方式对由本发明人员完成的发明进行了具体说明,但本发明不限定于上述发明的实施方式,可在不脱离其主旨的范围内进行种种变更,这是不言而喻的。
此外,本发明不限定于上述的实施方式,包含各种各样的变形例。例如,上述的实施方式是为了容易理解地说明本发明而详细地说明的方式,未必限定于包括说明的全部结构。
另外,可将某实施方式的一部分结构替换为其他实施方式的结构,另外,也可在某实施方式的结构中加入其他实施方式的结构。
附图标记说明
101……程序分发装置
102……程序分发部
103……执行管理生成部
104……程序管理数据库
105……控制程序
106……信息程序
109……控制装置
110……任务管理部
113……执行管理表
114……控制程序
115……信息程序。
Claims (12)
1.一种控制装置,控制一个以上的控制对象装置的动作,其特征在于:
具有包含与所述一个以上的控制对象装置的动作的控制相关的多种计算资源的多个计算资源,
所述多个计算资源包含接口部、存储部和处理器部,
所述接口部包含与所述一个以上的控制对象装置连接的一个以上的I/O端口和与网络连接一个以上的网络端口,
所述存储部包含一个以上的存储器,
所述处理器部包含一个以上的处理器,
程序组,
从程序分发装置经由所述网络和所述一个以上的网络端口,下载一个以上的对象程序中的至少一个,所述一个以上的对象程序为一个以上的控制程序和一个以上的信息程序中的一个以上的程序,
在与该下载的时刻不同的时刻,变更表示资源上限的执行管理数据,所述资源上限是关于所述多个计算资源该对象程序能够使用的资源,
所述程序组是所述一个以上的控制程序和所述一个以上的信息程序以外的一个以上的程序,
所述一个以上的控制程序各自是进行输出与所述I/O端口连接的控制对象装置的控制信息的扫描动作的程序,
所述一个以上的信息程序各自是进行与所述扫描动作不同的信息处理的程序,
所述一个以上的对象程序包含控制程序和信息程序两者,
所述程序组根据该信息程序所需的资源,无需来自用户的明示即可决定该信息程序的执行管理数据,
在所述信息程序能够使用的资源的上限超过了对于该信息程序决定的所述执行管理数据表示的资源上限的情况下,所述程序组限制该信息程序的执行。
2.如权利要求1所述的控制装置,其特征在于:
关于所述一个以上的对象程序的各个对象程序,所述程序组在对于该对象程序的执行管理数据没有用户的明示、输入或设定的情况下,决定默认的执行管理数据。
3.如权利要求1所述的控制装置,其特征在于:
所述一个以上的对象程序包含控制程序和信息程序,
所述程序组持续进行该控制程序的动作,或者不停止该控制程序的动作而变更该信息程序的执行管理数据。
4.如权利要求1所述的控制装置,其特征在于:
对于经由所述一个以上的网络端口下载的各对象程序,所述程序组监视该对象程序正在使用的资源。
5.如权利要求1所述的控制装置,其特征在于:
所述一个以上的对象程序中的至少一个是控制程序,
该控制程序或所述程序组,根据该控制程序正在使用的资源,变更该控制程序的执行管理数据。
6.如权利要求1所述的控制装置,其特征在于:
所述信息程序的执行的限制,是指拒绝所述信息程序的下载或安装。
7.如权利要求1所述的控制装置,其特征在于:
所述信息程序的执行的限制,是指直到进行以下(A)或(B)为止,禁止所述信息程序的执行,
(A)对于该信息程序决定的所述执行管理数据表示的资源上限超过所述信息程序能够使用的资源的上限;
(B)所述(A)从管理人员得到了许可。
8.如权利要求1所述的控制装置,其特征在于:
所述一个以上的对象程序中的至少一个是信息程序,
所述程序组根据该信息程序所需的资源,无需来自用户的明示即可决定该信息程序的执行管理数据。
9.如权利要求1所述的控制装置,其特征在于:
在所述一个以上的对象程序中的至少一个是信息程序的情况下,所述程序组,
向用户发出是否允许变更该信息程序的执行管理数据的询问,
在对该询问接收到许可指示的情况下,变更该信息程序的执行管理数据。
10.如权利要求1所述的控制装置,其特征在于:
对于所述一个以上的对象程序的各个对象程序,该对象程序的执行管理数据不是保存在所述程序分发装置中,而是保存在所述存储部。
11.如权利要求1所述的控制装置,其特征在于:
对于所述一个以上的对象程序的各个对象程序,所述程序组对于该对象程序的执行管理数据确定预先设定的第一执行管理数据,在有用户的明示、输入或设定的情况下,确定与所述第一执行管理数据不同的第二执行管理数据。
12.一种控制方法,控制一个以上的控制对象装置的动作,其特征在于:
程序组从程序分发装置经由网络和所述一个以上的网络端口,下载一个以上的对象程序中的至少一个,所述一个以上的对象程序为一个以上的控制程序和一个以上的信息程序中的一个以上的程序,
所述程序组在与该下载的时刻不同的时刻,变更表示资源上限的执行管理数据,资源上限是关于多个计算资源该对象程序能够使用的资源,
所述多个计算资源包含与所述一个以上的控制对象装置的动作的控制相关的多种计算资源,
所述多个计算资源包含接口部、存储部和处理器部,
所述接口部包含与所述一个以上的控制对象装置连接的一个以上的I/O端口和与所述网络连接一个以上的网络端口,
所述存储部包含一个以上的存储器,
所述处理器部包含一个以上的处理器,
所述程序组是所述一个以上的控制程序和所述一个以上的信息程序以外的一个以上的程序,
所述一个以上的控制程序各自是进行输出与所述I/O端口连接的控制对象装置的控制信息的扫描动作的程序,
所述一个以上的信息程序各自是进行与所述扫描动作不同的信息处理的程序,
所述一个以上的对象程序包含控制程序和信息程序两者,
所述程序组根据该信息程序所需的资源,无需来自用户的明示即可决定该信息程序的执行管理数据,
在所述信息程序能够使用的资源的上限超过了对于该信息程序决定的所述执行管理数据表示的资源上限的情况下,所述程序组限制该信息程序的执行。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018-193902 | 2018-10-12 | ||
JP2018193902A JP7141905B2 (ja) | 2018-10-12 | 2018-10-12 | コントロール装置及びコントロール方法 |
PCT/JP2019/025695 WO2020075351A1 (ja) | 2018-10-12 | 2019-06-27 | コントロール装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112470088A CN112470088A (zh) | 2021-03-09 |
CN112470088B true CN112470088B (zh) | 2023-09-12 |
Family
ID=70164234
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980048530.4A Active CN112470088B (zh) | 2018-10-12 | 2019-06-27 | 控制装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20210373538A1 (zh) |
EP (1) | EP3865959A4 (zh) |
JP (1) | JP7141905B2 (zh) |
KR (1) | KR102445194B1 (zh) |
CN (1) | CN112470088B (zh) |
WO (1) | WO2020075351A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7413183B2 (ja) * | 2020-07-31 | 2024-01-15 | 株式会社日立産機システム | コントロールシステム |
EP4369123A1 (en) * | 2021-07-09 | 2024-05-15 | Kabushiki Kaisha Yaskawa Denki | Production system, program creation device, production method, and program |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07230387A (ja) * | 1994-02-18 | 1995-08-29 | Hitachi Ltd | 排他制御方法 |
JP2005309644A (ja) * | 2004-04-20 | 2005-11-04 | Hitachi Ltd | リソース制御方法及びそのシステム |
CN103370906A (zh) * | 2011-02-14 | 2013-10-23 | 株式会社日立产机*** | 通信*** |
CN106020008A (zh) * | 2015-03-31 | 2016-10-12 | 欧姆龙株式会社 | 控制装置 |
JP2018084994A (ja) * | 2016-11-24 | 2018-05-31 | 株式会社日立産機システム | コントロールシステム及びコントロール方法 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5153909A (en) * | 1989-05-25 | 1992-10-06 | At&T Bell Laboratories | Resource control and data handling for central office based automatic call distributors |
US20020016166A1 (en) * | 2000-08-01 | 2002-02-07 | Kazuyuki Uchida | Download system |
US8136088B2 (en) * | 2002-06-24 | 2012-03-13 | National Instruments Corporation | Task based polymorphic graphical program function nodes |
JP2004362327A (ja) | 2003-06-05 | 2004-12-24 | Toshiba Plant Systems & Services Corp | 分散型監視制御システム |
US7257580B2 (en) * | 2004-02-24 | 2007-08-14 | International Business Machines Corporation | Method, system, and program for restricting modifications to allocations of computational resources |
JP2006178818A (ja) | 2004-12-24 | 2006-07-06 | Yaskawa Electric Corp | モーションコントローラとエンジニアリングツール並びにc言語実行システム |
US7568198B2 (en) * | 2006-01-10 | 2009-07-28 | National Instruments Corporation | Control of tasks in a programmable logic controller |
US20090265707A1 (en) * | 2008-04-21 | 2009-10-22 | Microsoft Corporation | Optimizing application performance on virtual machines automatically with end-user preferences |
US8286198B2 (en) * | 2008-06-06 | 2012-10-09 | Apple Inc. | Application programming interfaces for data parallel computing on multiple processors |
US8676976B2 (en) * | 2009-02-25 | 2014-03-18 | International Business Machines Corporation | Microprocessor with software control over allocation of shared resources among multiple virtual servers |
KR101918734B1 (ko) * | 2011-07-13 | 2019-02-08 | 한국전자통신연구원 | 모바일 방송 서비스를 위한 시스템 및 방법, 컨트롤러 및 컨트롤러의 구동 방법, 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체 |
CN104919429B (zh) * | 2013-06-14 | 2018-01-09 | 株式会社日立制作所 | 存储管理计算机及存储管理方法 |
US10191771B2 (en) * | 2015-09-18 | 2019-01-29 | Huawei Technologies Co., Ltd. | System and method for resource management |
JP6733219B2 (ja) * | 2016-03-03 | 2020-07-29 | オムロン株式会社 | 管理装置、管理システム、管理方法および管理プログラム |
US10387392B2 (en) * | 2016-05-17 | 2019-08-20 | Rockwell Automation Technologies, Inc. | Method to automate historian configuration using controller based tag meta attribute |
JP6879625B2 (ja) * | 2016-12-27 | 2021-06-02 | 東芝インフラシステムズ株式会社 | プログラマブルコントローラ、管理装置および制御システム |
US10318354B1 (en) * | 2017-05-22 | 2019-06-11 | Datacore Software Corporation | Methods and apparatus for command list processing in performing parallel IO operations |
JP6946909B2 (ja) * | 2017-09-29 | 2021-10-13 | オムロン株式会社 | 制御システムおよび制御装置 |
WO2019097800A1 (ja) * | 2017-11-16 | 2019-05-23 | 株式会社日立産機システム | コントロール装置 |
TWI641951B (zh) * | 2017-11-20 | 2018-11-21 | 宏碁股份有限公司 | 動態分派工作及提供資源的方法、裝置及其系統 |
WO2019135703A1 (en) * | 2018-01-08 | 2019-07-11 | Telefonaktiebolaget Lm Ericsson (Publ) | Process placement in a cloud environment based on automatically optimized placement policies and process execution profiles |
JP6927089B2 (ja) * | 2018-03-05 | 2021-08-25 | オムロン株式会社 | 制御装置、システムプログラム、制御方法 |
US11036555B2 (en) * | 2018-07-25 | 2021-06-15 | Vmware, Inc. | Virtual processor allocation with execution guarantee |
EP3851591A3 (en) * | 2019-12-28 | 2021-10-13 | Kubota Corporation | Working machine and program update system for working machine |
-
2018
- 2018-10-12 JP JP2018193902A patent/JP7141905B2/ja active Active
-
2019
- 2019-06-27 US US17/277,995 patent/US20210373538A1/en not_active Abandoned
- 2019-06-27 CN CN201980048530.4A patent/CN112470088B/zh active Active
- 2019-06-27 EP EP19872111.0A patent/EP3865959A4/en active Pending
- 2019-06-27 KR KR1020217000345A patent/KR102445194B1/ko active IP Right Grant
- 2019-06-27 WO PCT/JP2019/025695 patent/WO2020075351A1/ja unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07230387A (ja) * | 1994-02-18 | 1995-08-29 | Hitachi Ltd | 排他制御方法 |
JP2005309644A (ja) * | 2004-04-20 | 2005-11-04 | Hitachi Ltd | リソース制御方法及びそのシステム |
CN103370906A (zh) * | 2011-02-14 | 2013-10-23 | 株式会社日立产机*** | 通信*** |
CN106020008A (zh) * | 2015-03-31 | 2016-10-12 | 欧姆龙株式会社 | 控制装置 |
JP2018084994A (ja) * | 2016-11-24 | 2018-05-31 | 株式会社日立産機システム | コントロールシステム及びコントロール方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3865959A1 (en) | 2021-08-18 |
CN112470088A (zh) | 2021-03-09 |
KR102445194B1 (ko) | 2022-09-21 |
US20210373538A1 (en) | 2021-12-02 |
WO2020075351A1 (ja) | 2020-04-16 |
EP3865959A4 (en) | 2022-06-29 |
JP2020061104A (ja) | 2020-04-16 |
JP7141905B2 (ja) | 2022-09-26 |
KR20210016617A (ko) | 2021-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110770703B (zh) | 控制装置 | |
JP2008090846A (ja) | プロセス制御システムにおいて使用する機能ブロックの動作を修正変更するための方法及び動的モディファイア機能ブロック | |
CN112470088B (zh) | 控制装置 | |
US11334379B2 (en) | Control device | |
WO2018084024A1 (ja) | 車両制御装置 | |
JP2016035692A (ja) | 画像処理装置、システム、情報処理方法及びプログラム | |
CN111919181B (zh) | 控制装置 | |
JP7085305B2 (ja) | コントロールシステム及びコントロール方法 | |
JP6292096B2 (ja) | プログラマブルコントローラシステム、その支援装置 | |
JP7413169B2 (ja) | コントロール装置 | |
JP7240282B2 (ja) | 産業用コントロール装置及びアクティベーション方法 | |
JP6833649B2 (ja) | プログラマブルコントローラ及びコントロールシステム | |
WO2016110983A1 (ja) | システム設計支援ツール | |
JP6295914B2 (ja) | プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ | |
JP7413183B2 (ja) | コントロールシステム | |
CN114041121A (zh) | 用于同时执行自动化设备的多个运行时***的运行时服务器 | |
CN106066638B (zh) | 用于灵活的过程控制的方法和装置 |
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 |