CN110770703B - 控制装置 - Google Patents
控制装置 Download PDFInfo
- Publication number
- CN110770703B CN110770703B CN201880040519.9A CN201880040519A CN110770703B CN 110770703 B CN110770703 B CN 110770703B CN 201880040519 A CN201880040519 A CN 201880040519A CN 110770703 B CN110770703 B CN 110770703B
- Authority
- CN
- China
- Prior art keywords
- program
- control
- information
- programs
- ports
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/054—Input/output
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0421—Multiprocessor system
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
Abstract
本发明的控制装置,通过访问与1个以上的控制对象装置连接的1个以上的I/O端口中的至少1个I/O端口来控制与该I/O端口连接的控制对象装置的动作,所述控制装置包括:执行多个程序的处理器部;和存储部,其能够存储关于1个以上的I/O端口的信息,并能够提供多个程序中的各个程序能够访问的1个以上的共用区域。多个程序包括1个以上的控制程序和1个以上的信息程序。1个以上的控制程序中的各个控制程序是进行扫描处理的程序,其中扫描处理输出与I/O端口连接的该控制对象装置的控制信息。1个以上的信息程序中的各个信息程序是进行与扫描动作不同的信息处理的程序。
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个以上的控制对象装置连接的1个以上的I/O端口中的至少1个I/O端口来控制与该I/O端口连接的控制对象装置的动作,所述控制装置包括:执行多个程序的处理器部;和存储部,其能够存储关于1个以上的I/O端口的信息,并能够提供多个程序中的各个程序能够访问的1个以上的共用区域。多个程序包括1个以上的控制程序和1个以上的信息程序。1个以上的控制程序中的各个控制程序是进行扫描处理的程序,其中扫描处理输出与I/O端口连接的该控制对象装置的控制信息。1个以上的信息程序中的各个信息程序是进行与扫描动作不同的信息处理的程序。
发明的效果
依照本发明,能够灵活地改变控制装置中安装的程序。
附图说明
图1是表示第1实施方式的控制系统的硬件结构例的框图。
图2是表示第1实施方式的控制系统的功能性的概略结构的框图。
图3的表示图2所示的执行管理信息表的表结构例的图。
图4是表示控制装置从程序分发装置下载所希望的程序的程序下载处理的一例的流程图。
图5是表示程序执行处理的一例的流程图。
图6是表示执行管理信息表的表结构例的图。
图7是表示执行管理信息表的表结构例的图。
图8表示控制程序和信息程序共存的平台的另一例。
具体实施方式
下面,参照附图对本发明的实施方式进行说明。
除非特别需要,否则原则上对相同部分的说明不重复。对于规定附图中记载的附图标记,即使是在使用其它附图进行说明的情况下,也省略对相同部分的说明。
在下面的实施方式中,为了便于说明而需要时,分为多个部分或实施方式进行说明,除了特别说明了的情况以外,它们并不是无关系的,一者为另一者的一部分或全部的变形例、详细说明、补充说明等的关系。
在下述实施方式中,在涉及到要素的数量等(包括个数,数值,量,范围等)的情况下,除了特别说明的情况以及原理上明显限定于特定数量的情况等之外,并不限定于该特定数量,既可以是特定数量以上、也可以是特定数量以下。
在下面的实施方式中,“接口部”包括1个以上的接口。1个以上的接口可以是1个以上的同类的接口装置,也可以是2个以上的不同种类的接口装置。
在下述实施方式中,“存储部”包括1个以上的存储器。关于存储部,至少1个存储器是易失性存储器即可。存储部主要在处理器部进行处理时使用。存储部除了包括存储器之外,还可以包括1个以上的非易失性的存储装置(例如,HDD(Hard Disk Drive,硬盘驱动器)或SSD(Solid State Drive,固态硬盘))。
在下面的实施方式中,“处理器部”包括1个以上的处理器。至少1个处理器典型地是CPU(Central Processing Unit,中央处理器)这样的微处理器,也可以是GPU(GraphicsProcessing Unit,图形处理器)这样的其它种类的处理器。1个以上的处理器各自既可以是单核,也可以是多核。处理器也可以包括进行处理的一部分或全部的硬件电路。
在下述实施方式中,有时用“kkk部”(除了接口部、存储部和处理器部之外)的表述来说明功能,功能可以通过1个以上的计算机程序(除了后述的控制程序和信息程序之外)由处理器部执行而实现,也可以是通过1个以上的硬件电路(例如FPGA(Field-Programmable Gate Array,现场可编程门阵列)或ASIC(Application SpecificIntegrated Circuit,专用集成电路))而实现。在通过处理器部执行程序来实现功能的情况下,由于适当地使用存储部和/或接口部等进行所决定的处理,因此功能也可以作为处理器部的至少一部分。以功能为主语说明的处理,可以是处理器部或具有该处理器部的装置进行的处理。程序可以从程序源安装。程序源例如可以是程序分发计算机或计算机能够读取的记录介质(例如不是临时记录介质)。各功能的说明是一例,也可以看将多个功能汇总为1个功能,或将1个功能分为多个功能。
此外,在下面的说明中,有时用“xxx表”这样的表述来说明相对于输入得到输出的信息,该信息可以是任何结构的数据,也可以是相对于输入而产生输出的神经网络这样的学习模式。因此,能够将“xxx表”表述为“xxx信息”。此外,在下面的说明中,各表的结构是一例,1个表可以分为2个以上的表,也可以是2个以上的表的全部或一部分形成为1个表。
在下述实施方式中,其构成要素(还包括要素步骤等),除了特别说明的情况以及原理上认为明显必需的情况等之外,当然并不一定是必需的构成要素。
控制装置也被称为顺序控制装置、动作控制装置或可编程逻辑控制器(PLC)。在控制装置中,使用梯形图逻辑(LD语言)、顺序功能图(SFC语言)、功能区块(FBD语言),结构文本(ST语言)、指令表(IL语言)这样的控制装置特有的编程语言,或C语言这样的在信息通信领域使用的通用的编程语言来描述的、执行以顺序控制、动作控制为代表的控制处理的程序,被称为“控制程序”。控制程序需要通过I/O模块等实际上对包括电动机等的周边设备进行操作,适当地使生产系统等动作。为此,控制程序被要求在所设定的时间内可靠地执行处理(实时性)。
控制程序通过描述了控制内容的命令对控制对象装置(例如,装置部件这样的硬件模块,具有1个以上的硬件模块的装置,或具有多个装置的系统)进行控制。例如,在“通过I/O模块等实际上对包括电动机等的周边设备进行操作,使生产系统适当地动作”这样的控制中,“生产系统”或“构成生产系统的至少1个装置”是“控制对象装置”。控制对象装置典型地是经控制装置中的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端口用于控制装置的控制对象装置的电压、电流、温度等信息的读写。
对于基于控制程序从控制装置发送的控制信息,通过有线或无线的通信单元连接的逆变器单元、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的1个以上的程序之外)。控制对象装置经I/O端口与控制装置连接,信息程序是不访问与控制对象装置连接的模拟或数字的I/O端口(但是,除了容许与信息程序的共用的I/O端口之外)的程序。换言之,控制程序是进行包括对与控制对象装置连接的模拟或数字的I/O端口发送控制对象装置的控制信息的扫描动作的程序。另一方面,信息程序是进行不包括扫描动作(与扫描动作不同)的信息处理的程序(即不进行扫描动作的程序)。
安装控制程序和信息程序的下面的实施方式的控制装置,即使除了执行控制程序之外还执行信息程序,也不使控制程序停止,或者不使控制程序的扫描动作延迟或发生控制程序的未预想的动作,能够实现信息程序的增加、删除、更新(改写)或替换这样的程序改变。
优选在信息程序访问与控制装置连接的控制对象的装置、或与设备连接的模拟或数字输入输出等模块或单元的I/O端口的情况下,控制装置将该信息程序作为控制程序对待。
[第1实施方式]
使用图1等对第1实施方式进行说明。
图1是表示第1实施方式的控制系统的硬件结构例的框图。
程序分发装置101、控制装置109、1个以上的管理用户计算机151M及1个以上的普通用户计算机151G与信息网络108连接。此外,控制装置109和1个以上的I/O模块119(I/O端口的一例)与控制网络118连接。信息网络108是信息程序进行的信息通信处理(即与控制信息的发送不同的通信处理)时使用的通信网络。控制网络118是控制程序进行的控制信息发送时使用的通信网络。信息网络108和控制网络118可以是不同种类的的网络,也可以是相同种类的网络(例如可以均是LAN(Local Area Network,局域网))。此外,信息网络108的至少一部分与控制网络118的至少一部分可以是一体的。
管理用户计算机151M是至少供管理用户操作的计算机。普通用户计算机151G是至少供普通用户操作的计算机。任一种计算机均用作对程序分发装置101和控制装置109中的至少一者的输入输出控制台。具体而言,例如,任一种计算机均具有键盘和指点设备这样的输入设备和显示器这样的输出设备。“管理用户”是描述控制程序的用户(例如,是关于自动机械、生产设备之类的控制对象具有深入的知识的技术人员),“普通用户”是描述信息程序的用户(例如,是关于控制对象不具有深入的知识的普通的系统工程师)。既可以是,控制装置109从管理用户计算机151M和普通用户计算机151G中的至少1者接收关于控制程序和信息程序中的至少1者的描述(包括参数组的设定),也可以是,代替控制装置109或者在控制装置109的基础上,程序分发装置101接收该描述。以下,有时将管理用户和普通用户统称为“用户”。用户也可以代替管理用户和普通用户中的任一者,是系统管理者(例如,作为由程序分发装置101和控制装置109构成的系统的控制系统的管理者)这样的其他种类的用户。
1个以上的周边设备120与1个以上的I/O模块119连接。周边设备120是传感器和驱动器等中的至少1个设备。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模块119的情况下,I/O控制装置214和网络I/F213中的至少1个也成为“I/O端口”的一例。即,控制程序114为了进行控制对象装置的控制(为了发送控制对象装置的控制信息),访问连接着该控制对象装置的I/O端口,换言之,发送控制该I/O端口的命令。
另一方面,信息程序115获取I/O控制装置214等的信息而进行运算,将运算的结果经网络I/F213发送至与控制装置109连接的其他装置或设备。在本段中所谓的“其他装置或设备”是与控制装置109连接但是与控制程序114的控制对象装置不同的装置或设备。
控制装置109能够具有控制程序114和信息程序115两者能够访问的共用区域(未图示)。该共用区域形成在主存储器210和非易失性存储装置215中即可。共用区域例如可以是共享目录这样的逻辑存储区域,也可以是由物理地址(例如存储器地址)指定的物理存储区域。例如,也可以构成为,控制程序114生成将可以给信息程序115看的数据的值写入至共用区域的任务,通过执行该任务,能够从信息程序访问该共用区域内的数据的值。所谓的“可以给……看的数据的值”,广义而言是与1个以上的信息程序115共用的信息、即共用信息。共用信息例如能够列举表示I/O端口的状态(或关于I/O端口包括其他种类的信息)的端口信息、关于控制程序的内部变量等的控制程序信息。共用区域例如既可以由后述的任务管理部110设置,也可以由可访问同一共用区域的控制程序114和信息程序115中的至少1者设置。
这样,信息程序115由于能够防止直接访问连接着控制程序114的控制对象装置的I/O端口,因此能够提高安全性。换言之,信息程序115通过代替直接访问连接着控制程序114的控制对象装置的I/O端口的方式,参照共用区域内的共用信息,能够知道I/O端口的状态或控制程序114的状态。
此外,信息程序115也可以从经网络I/F213而连接但不是控制程序114的控制对象装置的设备或装置接收信息。信息程序115能够对接收到的信息等进行运算,经网络I/F213与其他装置或设备通信。
CPU209控制周边控制装置212来控制经网络I/F213的来自程序分发装置101的控制程序和信息程序的下载。
CPU209控制周边控制装置212来经I/O控制装置214和多个I/O模块119控制多个周边设备120。周边设备120与I/O模块119以1:1对应,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能够使用的上限存储容量这样的1个以上的参数。
程序分发部102在按照要求提供上述至少一个程序时提供表示与上述至少一个程序对应的参数值的管理信息。
控制装置109有时也被称为顺序控制装置、动作控制装置或可编程逻辑控制器(PLC)。用梯形图逻辑(LD语言)、顺序功能图(SFC语言),功能区块(FBD语言)、结构化文本(ST语言)、指令列表(IL语言)这样的控制特有的编程语言描述控制内容。此外,根据情况,能够使用C语言等通用语言描述梯形图语言等的一部分或全部。
对与这样的控制装置109连接的控制对象进行控制的控制程序114,使用以梯形图语言为代表的控制特有的编程语言是有效的。能够进行梯形图的表示,对控制对象的状态的监视等是有效的。
另一方面,信息程序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的执行而生成的1个以上的任务),信息程序115相当于已经从程序分发装置101对控制装置109分发了的信息程序106(或随该信息程序106的执行而生成的1个以上的任务)。
执行管理信息表113中保存与从程序分发装置101提供的上述至少一个程序一起接收的上述执行管理信息。
另一方面,任务管理部110主要具有2个功能,具体而言具有程序接收功能和程序执行管理功能。程序接收功能是接收按照要求从程序分发装置101提供的上述至少一个程序的功能。另一方面,程序执行管理功能是在执行上述至少一个程序时,基于执行管理信息表113中保存的执行管理信息来控制上述至少一个程序的执行的功能。
I/O控制部117将来自控制程序114的控制信息转送至该控制信息的发送目的地。
如上所述,控制装置109具有主存储器210,该主存储器210具有控制程序114和信息程序115的各任务使用的规定的存储容量的存储区域。
这里,在程序分发装置101中,执行管理信息生成部103作为执行管理信息至少生成表示控制程序105和信息程序106的各任务的优先级、和可由控制程序105以及信息程序106的各任务使用的主存储器210的上限存储容量中的至少一者的参数值的执行管理信息。
图3是表示图2所示的执行管理信息表113的表结构例。
在执行管理信息表113中,控制程序114和信息程序115各自具有条目(entry)。各条目例如包括程序名301、程序类别302、任务优先级303、执行周期304、存储器上限305、CPU核编号306和使用设备307。存储这样的信息。
程序名301表示各程序的名称。程序类别302表示各程序是控制程序114还是信息程序115这样的程序的类别。
根据上述程序名301的最先的3个字符,也能够识别是控制程序114还是信息程序115,“CTL”表示控制程序114,“ICT”表示信息程序115。下面,有时用程序名表示各个控制程序114和信息程序115。
任务优先级303表示与执行期间的控制程序114和信息程序115对应的任务的优先级。在任务优先级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所表示的1个以上的使用设备(I/O模块119)中由对象程序专用的设备、即专用设备(即,对象程序不能与其他控制程序114或信息程序115共用的I/O模块119)。
依照图示的例子,例如能够得到下述的结论。
CTL001是控制程序。关于CTL001,例如如下所述。即,任务优先级设定得低于CTL002。此外,存储器上限是16MB,使用的CPU核的编号是0。使用设备是DI1和DO1(控制装置的数字输入1和数字输出1)。
设定成其他程序不使用DI1和DO1而由CTL001专用DI1和DO1。在控制装置中,由于专用设备(设定为专用设备308的设备)不被多个程序共用,因此能够防止与专用设备(这里是DI1和DO1)相关的控制变得不稳定。
此外,CTL002是使用设备为eth1、eth2、系列1的控制程序,具体而言,是使用2个Ethernet(注册商标)的端口、1个RS-232C的端口的控制程序。此外,由于与CTL001相比,CTL002的实时性较高,因此任务优先级比CTL001高。
CTL002表示eth2例如是被用于动作控制的设备的情况下。由于动作控制的实时性高,比其他处理优先,因此在4个程序中优先级设定得最高。
此外,由于CTL002使用的CPU核的编号是1,CTL001、ICT001和ICT006使用的CPU核的编号是0,因此CTL002专用编号为1的CPU核。
关于CTL002,不仅根据由任务优先级303规定的优先级,而且根据专用CPU209具有的多个核中的编号1的核的观点,可知CTL002的优先级较高。通过进行这样的设定,能够使CTL002在控制程序中也是优先级较高的状态。
接着,对存储器上限305进行说明。
在没有设定存储器上限的情况下,在实际进行运算时各程序能够最大地确保并使用存储器。但是,例如,在增加了大量地使用存储器的程序的情况下,伴随该程序的增加,可能发生用尽系统整体的存储器的情况。在这样的情况下,存在这样的情况:通过使控制装置或OS停机(down),控制程序的动作停止,或者通过发动OS的强制性的存储器释放功能的发动,阻止控制程序的处理,在扫描时间内不能完成扫描动作。
于是,在本实施方式中,通过使存储器上限305的合计值为控制装置的系统整体能够使用的值以下,能够防止控制装置等停机。
系统整体能够使用的值优选是从安装在控制装置中的存储器除去了OS等使用的部分的值。这是为了使得不对OS等区域中控制或信息程序的处理施加影响。
此外,通过按照每个程序设定存储器上限305的值,如果在某个程序发生了使用设想以上的存储器的问题的情况下,能够仅使该程序停止,防止影响其他程序。
接着,对任务优先级303进行说明。
任务优先级是执行各程序的情况下的优先级。通过对各程序设定任务优先级,能够使OS的调度程序等识别将CPU分配给程序的优先顺序。
如果不明确地设定任务优先级来执行多个程序,预先按照OS的调度程序所具有的规则进行CPU分配这样的资源分配。例如,进行对多个程序平等地分配CPU这样的规划。
在这样的规划是在控制程序这样的扫描时间内可靠地结束处理是很重要的程序的情况下,存在这样的情况,即,由于其他程序的动作,不能在扫描时间内结束处理等影响控制程序的动作的情况。
例如,在第一程序的处理执行(CPU分配)期间,在通过定时器中断等发出与第一程序相比任务优先级相对地较高的第二任务的处理开始请求时,第一程序的处理被中断,第二程序的处理被开始。之后,第二程序因Sleep(休眠)等而在结束CPU的分配时再次开始第一程序的处理。
此外,例如,在第一程序的处理执行(CPU分配)期间,通过定时器中断等发出与第一程序相比任务优先级相对较低的第二任务的处理开始请求出,第一程序通过Sleep(休眠)等等待第二程序的处理开始直至结束CPU的分配。
因此,通过设定任务优先级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完成信息接收时,在上述特定程序为控制程序的情况下作为控制程序114保存至主存储器210(步骤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个方式中,能够采用下述的变形例中的至少1个变形例。
作为第1变形例,例如也可以使用管理程序等从OS层分开。
作为第2变形例,也可以构成为,代替按顺序进行各种程序的处理的方式,在处理结果不产生矛盾的范围内,调换处理的顺序或使处理的顺序进行并行动作。
作为第3变形例,有图6和图7所示的例子。即,能够在控制程序的动作期间改变信息程序。具体而言,例如如图6所示,关于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个理由是,控制装置的控制对象装置由于通常是工作机械、自动组装装置或自动搬送装置这样的自动机械、生产设备,因此被要求高的稳定性,即实时性。
于是,考虑除了准备控制程序,还准备关于通信这样的信息处理描述的程序即信息程序。为了维持实时性而应当优先控制程序,能够考虑用控制装置之外的装置执行信息程序,但是从节约资源的观点出发,能够考虑在控制装置这样的同一平台上执行控制程序和信息程序这两者。在此情况下,要求控制程序和信息程序适当地共存在控制装置内。
但是,上述的专利文献1和2由于之前所述的理由,没有公开用于使控制程序和信息程序适当的共存的技术,也没有给出这样的技术的启示。
在同一平台上执行包括1个以上的控制程序114和1个以上的信息程序115的多个程序。所谓“同一平台”,根据上述的说明,是控制装置109。
1个以上的控制程序各自是进行用于控制该控制程序的控制对象装置的扫描动作的程序。另一方面,1个以上的信息程序各自是进行与扫描动作不同(例如不包括扫描动作)的信息处理的程序。
根据下述例示的至少1个方式,能够灵活地改变信息程序。
·对于多个程序114和115的各个程序,能够设定规定了该程序的动作的范围的多个参数值。基于关于该控制程序114和该信息程序115的各个程序的多个参数值,进行控制程序114的执行和信息程序115的执行。能够调节信息程序115的多个参数值,使得对任一控制程序114的执行产生不良影响。
·设置1个以上的共用区域。关于1个以上的共用区域的各个共用区域,能够得到下面的结论。即,该共用区域是1个以上的控制程序114中的至少1个控制程序114和1个以上的信息程序115中的至少1个信息程序115能够访问的存储区域。在该存储区域中例如存储包括关于通过该控制程序114访问的I/O端口的信息和关于该控制程序114的信息(例如内部变量)中的至少一者的共用信息。基于存储在该共用区域的共用信息,能够访问该共用区域的信息程序115能够进行信息处理。换言之,由于能够以基于控制程序114的执行结果的共用信息为基础执行信息程序115,因此能够期待信息程序115的执行不会对控制程序114产生不良影响。因此,能够期待不用对控制程序114产生不良影响就能够改变信息程序115。
例如,对于多个程序114和115的各个程序,准备包含规定了动作范围的多个参数值的执行管理表113。由此,能够防止因信息程序115的执行(动作)而对控制程序114的执行产生不良影响。关于该多个程序114和115中的各个程序,多个参数值包含下述中的至少一者:
·任务优先级303(该程序的优先级的一例),
·存储器上限305(与1种以上的计算资源对应的1个以上的资源上限的一例),
·使用设备307和专用设备308(表示该程序能够使用的1个以上的I/O端口中的任意I/O端口是该程序专用的I/O端口,或任意I/O端口是包括该程序在内的2个以上的程序能够共用的I/O端口的专用/共用设备的一例)。
由于具有任务优先级303这样的程序优先级这一参数值,能够进行优先地维持对控制程序114要求的实时性的处理。例如,从节约计算资源的观点出发,能够考虑令CPU核、存储器区域和I/O端口这样的至少1个计算资源为共用设备,具体而言,控制程序114和信息程序115共用上述的至少1个计算资源。通过任务优先级303的设定,即使控制程序114和信息程序115共用计算资源,也能够执行不损害控制程序114的实时性的信息程序115。
即使有存储器上限305这样的资源上限,也能够进行优选维持对控制程序114要求的实时性的处理。例如,在信息程序115不再现地使用存储器量后停止了的情况下,进行存储器量释放的处理,能够比控制程序114优先地进行该处理。这是因为,如果不释放存储器量,则控制程序114不能进行恰当的处理。但是,如果这样,则损害对控制程序114所要求的实时性。为了避免这样的情况,资源上限是有用的。
关于控制程序114和信息程序115的各个程序,专用/共用设备的设定,也可以是2个以上的参数值的组合的设定。通过设定专用设备,能够期待稳定的性能,例如实时性的维持。通过设定共用设备,能够节约计算资源并期待灵活的处理。
此外,在上述说明中,控制程序114和信息程序115共存的平台是作为物理的计算机的控制装置109,如图8所例示的那样,作为另一例,能够采用同一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的系统,但是具有能够提供所需要的实时性的实时功能。
因此,能够考虑如图8所例示的那样,采用实时通用OS作为控制程序114和信息程序115共存的OS952。
但是,当控制程序114和信息程序115在实时通用OS上共存时,担心控制程序114的实时性下降。具体而言,例如,实时通用OS具有调度程序,在该调度程序产生中断。调度程序如果要执行的实时任务(与控制程序114对应的任务),则按照任务优先级303将控制交给该实时任务,如果没有要执行的实时任务,则将控制交给通常任务(例如与信息程序115对应的任务)。即使有要执行的实时任务,如果关于通常任务不完成至规定的处理,则该通常任务不被停止。因此,实时任务的开始延迟,其结果是,有时损害实时性。
于是,作为控制程序114和信息程序115的同一平台采用OS952,并且,在该环境下,通过采用上述方式中的至少1个,例如通过采用下述的方式,能够维持实时性。
·设定上述的执行管理表113。即,关于控制程序114和信息程序115的各个程序,设定以维持实时性为目的而决定的参数值。
作为参数值的设置,具体而言,例如通过图3例示的参数值303~308的组合,即使控制程序114和信息程序115共存在同一OS952上,也能够维持实时性。例如,关于通常任务,考虑如果不完成至规定的处理则不停止该通常任务,决定参数值303~308。
图8的控制装置909,例如如下所述。
在控制装置909的物理资源集合951上执行OS952。作为OS952上的程序执行环境,能够采用按照容器型虚拟化的容器953。即,程序设定在容器953,在OS952上以容器953的单位执行。作为容器953,例如有控制容器953A和信息容器953B这2种容器。
控制容器953A是存储并执行控制程序114的容器。控制程序114例如也可以在软件PLC系统运行时间961上执行。控制程序114也可以进行控制系统通信。控制系统通信可以是串行或并行的有线通信,也可以看是无线通信。
信息容器953B是存储并执行信息程序115的容器。至少1个信息程序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是关于存储1个以上的信息程序115中的至少1个的容器,受理参数值的设定的用户接口程序的一例。
执行控制程序957基于关于容器953中的程序设定的多个参数值,控制容器953(准确而言是容器953中的程序)的执行。
上面,基于发明的实施方式具体地说明了本发明者作出的发明,但是本发明并不限定于所述发明的实施方式,在不超过其要旨的范围内当然能够进行各种改变。
本发明不仅不限定于上述的实施方式,还包括各种变形例。例如,上述的实施方式是为了容易理解本发明而详细说明的,并不一定限定于具有所说明的全部结构。
此外,能够将某个实施方式的结构的一部分置换成其他实施方式的结构,此外,还能够在某个实施方式的结构上增加其他实施方式的结构。
附图标记的说明
101……程序分发装置,102……程序分发部,103……执行管理信息生成部,104……程序管理数据库,105……控制程序,106……信息程序,109……控制装置,110……任务管理部,113……执行管理信息表,114……控制程序,115……信息程序。
Claims (10)
1.一种控制装置,其通过访问与1个以上的控制对象装置连接的1个以上的I/O端口中的至少1个I/O端口来控制与该I/O端口连接的控制对象装置的动作,所述控制装置的特征在于,包括:
能够执行多个程序的处理器部;和
存储部,其能够存储关于所述1个以上的I/O端口的信息,并能够提供所述多个程序中的各个程序能够访问的1个以上的共用区域,
所述多个程序包括1个以上的控制程序和1个以上的信息程序,
所述1个以上的控制程序中的各个控制程序是进行扫描处理的程序,其中,所述扫描处理获取或更新与所述I/O端口连接的该控制对象装置的状态,输出该控制对象装置的控制信息,
所述1个以上的信息程序中的各个信息程序是进行与所述扫描处理不同的信息处理,并参照所述共用区域内的共用信息的程序,
所述1个以上的信息程序中的各个信息程序不访问与所述控制对象装置连接的I/O端口,并且,
即使除了所述控制程序之外还执行所述信息程序,也不使所述控制程序停止地、或者不使所述控制程序的扫描处理延迟地,执行控制程序或信息程序的程序变更。
2.如权利要求1所述的控制装置,其特征在于:
与所述扫描处理不同的信息处理是不包含该扫描处理的信息处理。
3.如权利要求2所述的控制装置,其特征在于:
所述扫描处理对为了进行所述控制程序对控制对象装置的控制而访问的I/O端口输出与所述I/O端口连接的该控制对象装置的控制信息。
4.如权利要求3所述的控制装置,其特征在于:
所述存储部能够存储执行管理信息,
所述执行管理信息对于所述多个程序中的各个程序包含规定了该程序的动作范围的多个参数值,
对于所述多个程序中的各个程序,所述多个参数值包括下述参数值中的至少一个:
该程序的优先级;
与1种以上的计算资源对应的1个以上的资源上限;和
专用/共用设备,其表示该程序能够使用的1个以上的I/O端口中的哪些I/O端口是该程序专用的I/O端口,哪些I/O端口是包括该程序的2个以上的程序能够共用的I/O端口。
5.如权利要求3所述的控制装置,其特征在于:
对所述多个程序中的各个程序设定规定了该程序的动作范围的多个参数值,
对于所述多个程序中的各个程序,所述多个参数值包括专用/共用设备,该专用/共用设备表示该程序能够使用的1个以上的I/O端口中的哪些I/O端口是该程序专用的I/O端口,哪些I/O端口是包括该程序的2个以上的程序能够共用的I/O端口。
6.一种控制方法,其特征在于:
存储关于与1个以上的控制对象装置连接的1个以上的I/O端口的信息,管理包括1个以上的控制程序和1个以上的信息程序的多个程序各自能够访问的1个以上的共用区域,
执行所述多个程序,
所述1个以上的控制程序中的各个控制程序是进行扫描处理的程序,其中,所述扫描处理获取或更新与所述I/O端口连接的该控制对象装置的状态,输出该控制对象装置的控制信息,
所述1个以上的信息程序中的各个信息程序是进行与所述扫描处理不同的信息处理,并参照所述共用区域内的共用信息的程序,
所述1个以上的信息程序中的各个信息程序不访问与所述控制对象装置连接的I/O端口,并且,
即使除了所述控制程序之外还执行所述信息程序,也不使所述控制程序停止地、或者不使所述控制程序的扫描处理延迟地,执行控制程序或信息程序的程序变更。
7.如权利要求6所述的控制方法,其特征在于:
与所述扫描处理不同的信息处理是不包括该扫描处理的信息处理。
8.如权利要求7所述的控制方法,其特征在于:
所述扫描处理对为了进行所述控制程序对控制对象装置的控制而访问的I/O端口输出与所述I/O端口连接的该控制对象装置的控制信息。
9.如权利要求8所述的控制方法,其特征在于:
存储部存储执行管理信息,
所述执行管理信息对于所述多个程序中的各个程序包含规定了该程序的动作范围的多个参数值,
对于所述多个程序中的各个程序,所述多个参数值包括下述参数值中的至少一个:
该程序的优先级;
与1种以上的计算资源对应的1个以上的资源上限;和
专用/共用设备,其表示该程序能够使用的1个以上的I/O端口中的哪些I/O端口是该程序专用的I/O端口,哪些I/O端口是包括该程序的2个以上的程序能够共用的I/O端口。
10.如权利要求8所述的控制方法,其特征在于:
对所述多个程序中的各个程序设定规定了该程序的动作范围的多个参数值,
对于所述多个程序中的各个程序,所述多个参数值包括专用/共用设备,该专用/共用设备表示该程序能够使用的1个以上的I/O端口中的哪些I/O端口是该程序专用的I/O端口,哪些I/O端口是包括该程序的2个以上的程序能够共用的I/O端口。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017-220595 | 2017-11-16 | ||
JP2017220595 | 2017-11-16 | ||
PCT/JP2018/031256 WO2019097800A1 (ja) | 2017-11-16 | 2018-08-23 | コントロール装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110770703A CN110770703A (zh) | 2020-02-07 |
CN110770703B true CN110770703B (zh) | 2023-09-12 |
Family
ID=66540220
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880040519.9A Active CN110770703B (zh) | 2017-11-16 | 2018-08-23 | 控制装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11194739B2 (zh) |
EP (1) | EP3712767B1 (zh) |
JP (1) | JP7048638B2 (zh) |
KR (1) | KR102294177B1 (zh) |
CN (1) | CN110770703B (zh) |
WO (1) | WO2019097800A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7141905B2 (ja) * | 2018-10-12 | 2022-09-26 | 株式会社日立産機システム | コントロール装置及びコントロール方法 |
JP7413169B2 (ja) * | 2020-07-06 | 2024-01-15 | 株式会社日立産機システム | コントロール装置 |
JP7361669B2 (ja) * | 2020-09-01 | 2023-10-16 | 株式会社日立産機システム | 制御装置 |
US20240255922A1 (en) * | 2021-06-18 | 2024-08-01 | Fanuc Corporation | Control device and control method |
WO2023238220A1 (ja) * | 2022-06-07 | 2023-12-14 | 三菱電機株式会社 | プログラム作成装置、プログラム作成方法及びプログラム |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013196055A (ja) * | 2012-03-15 | 2013-09-30 | Fujitsu Ltd | 情報処理装置及び制御プログラム |
JP2014179012A (ja) * | 2013-03-15 | 2014-09-25 | Ricoh Co Ltd | 情報処理装置、プログラム |
CN105808444A (zh) * | 2015-01-19 | 2016-07-27 | 株式会社东芝 | 存储装置及非易失性存储器的控制方法 |
CN106020009A (zh) * | 2015-03-31 | 2016-10-12 | 欧姆龙株式会社 | 控制装置 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2003245660A1 (en) * | 2002-06-24 | 2004-01-06 | National Instruments Corporation | Task based polymorphic graphical program function nodes |
JP2004246498A (ja) | 2003-02-12 | 2004-09-02 | Fanuc Ltd | 位置制御装置 |
JP2004280299A (ja) | 2003-03-13 | 2004-10-07 | Omron Corp | コントローラ、開発装置及びシステム |
JP2004280222A (ja) * | 2003-03-13 | 2004-10-07 | Omron Corp | コントローラ |
JP2004362327A (ja) | 2003-06-05 | 2004-12-24 | Toshiba Plant Systems & Services Corp | 分散型監視制御システム |
JP2006178818A (ja) | 2004-12-24 | 2006-07-06 | Yaskawa Electric Corp | モーションコントローラとエンジニアリングツール並びにc言語実行システム |
US8856311B2 (en) * | 2005-06-30 | 2014-10-07 | Nokia Corporation | System coordinated WLAN scanning |
JP2007020735A (ja) | 2005-07-13 | 2007-02-01 | Toshiba Corp | 生体光計測装置 |
JP4960237B2 (ja) | 2005-08-18 | 2012-06-27 | パナソニック株式会社 | 競合解決装置 |
CN101796493B (zh) * | 2007-09-07 | 2014-10-08 | 哈明头株式会社 | 信息检索系统、信息检索方法及程序 |
JP2010050335A (ja) | 2008-08-22 | 2010-03-04 | Murata Mfg Co Ltd | 部品内蔵モジュールの製造方法および部品内蔵モジュール |
WO2010050335A1 (ja) * | 2008-10-27 | 2010-05-06 | 株式会社 日立製作所 | リソース管理方法と組込み装置 |
JP5499950B2 (ja) * | 2010-06-30 | 2014-05-21 | 富士通株式会社 | 制御装置、情報処理装置、制御プログラム、及び制御方法 |
JP6119452B2 (ja) * | 2013-06-21 | 2017-04-26 | 富士電機株式会社 | プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ、プログラム |
JP6784071B2 (ja) * | 2016-06-20 | 2020-11-11 | ブラザー工業株式会社 | 画像処理装置及びシステム |
JP6769136B2 (ja) * | 2016-06-28 | 2020-10-14 | ブラザー工業株式会社 | プログラム及び携帯端末 |
-
2018
- 2018-08-23 CN CN201880040519.9A patent/CN110770703B/zh active Active
- 2018-08-23 US US16/635,081 patent/US11194739B2/en active Active
- 2018-08-23 JP JP2019553698A patent/JP7048638B2/ja active Active
- 2018-08-23 WO PCT/JP2018/031256 patent/WO2019097800A1/ja unknown
- 2018-08-23 EP EP18878086.0A patent/EP3712767B1/en active Active
- 2018-08-23 KR KR1020197038393A patent/KR102294177B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013196055A (ja) * | 2012-03-15 | 2013-09-30 | Fujitsu Ltd | 情報処理装置及び制御プログラム |
JP2014179012A (ja) * | 2013-03-15 | 2014-09-25 | Ricoh Co Ltd | 情報処理装置、プログラム |
CN105808444A (zh) * | 2015-01-19 | 2016-07-27 | 株式会社东芝 | 存储装置及非易失性存储器的控制方法 |
CN106020009A (zh) * | 2015-03-31 | 2016-10-12 | 欧姆龙株式会社 | 控制装置 |
Also Published As
Publication number | Publication date |
---|---|
EP3712767A4 (en) | 2021-08-11 |
US11194739B2 (en) | 2021-12-07 |
EP3712767B1 (en) | 2023-10-11 |
US20210117344A1 (en) | 2021-04-22 |
CN110770703A (zh) | 2020-02-07 |
KR102294177B1 (ko) | 2021-08-27 |
WO2019097800A1 (ja) | 2019-05-23 |
KR20200012930A (ko) | 2020-02-05 |
JPWO2019097800A1 (ja) | 2020-06-25 |
EP3712767A1 (en) | 2020-09-23 |
JP7048638B2 (ja) | 2022-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110770703B (zh) | 控制装置 | |
CN109983411B (zh) | 程序模块的流程控制 | |
JP2008090846A (ja) | プロセス制御システムにおいて使用する機能ブロックの動作を修正変更するための方法及び動的モディファイア機能ブロック | |
CN111919181B (zh) | 控制装置 | |
US12045038B2 (en) | Runtime server for simultaneous execution of a plurality of runtime systems of an automation system | |
CN112470088B (zh) | 控制装置 | |
CN115617456A (zh) | 混合运行虚拟机与容器的方法、装置、电子设备和可读存储介质 | |
JP7085305B2 (ja) | コントロールシステム及びコントロール方法 | |
EP4354280A2 (en) | Systems and methods for automatically deploying security updates in an operations technology network | |
JP7413169B2 (ja) | コントロール装置 | |
JP7240282B2 (ja) | 産業用コントロール装置及びアクティベーション方法 | |
JP2019057212A (ja) | プログラマブルコントローラ及びコントロールシステム | |
KR102618391B1 (ko) | 호스트 가상화를 통한 임베디드 장치의 테스트 방법 및 이를 수행하는 컴퓨팅 장치 | |
US20240295871A1 (en) | Systems and methods for recurring industrial automation project design validation | |
CN114556298A (zh) | 用于控制和/或监测机器和/或设备的方法和自动化系统 | |
CN117519906A (zh) | 一种基于自主架构服务器的虚拟机管理和调度方法 | |
Dumitru et al. | AUTOMATED FPGA FIRMWARE MANAGEMENT IN HPC CLUSTERS. | |
JP2020046954A (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 |