CN109557890B - 控制装置 - Google Patents
控制装置 Download PDFInfo
- Publication number
- CN109557890B CN109557890B CN201810595167.5A CN201810595167A CN109557890B CN 109557890 B CN109557890 B CN 109557890B CN 201810595167 A CN201810595167 A CN 201810595167A CN 109557890 B CN109557890 B CN 109557890B
- Authority
- CN
- China
- Prior art keywords
- task
- priority
- program
- control device
- command
- 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
- 238000012545 processing Methods 0.000 claims abstract description 144
- 238000004458 analytical method Methods 0.000 claims abstract description 137
- 238000004364 calculation method Methods 0.000 claims abstract description 32
- 238000000034 method Methods 0.000 claims description 79
- 230000008569 process Effects 0.000 claims description 73
- 238000003860 storage Methods 0.000 claims description 6
- 239000000872 buffer Substances 0.000 description 38
- 238000010586 diagram Methods 0.000 description 28
- 230000006870 function Effects 0.000 description 25
- 230000009471 action Effects 0.000 description 22
- 230000008859 change Effects 0.000 description 17
- 238000004519 manufacturing process Methods 0.000 description 16
- 238000003754 machining Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000011156 evaluation Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000036461 convulsion Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000001404 mediated effect Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 238000012508 change request Methods 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000003801 milling Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/42—Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
-
- 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/408—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 data handling or data format, e.g. reading, buffering or conversion of data
-
- 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/414—Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
- G05B19/4145—Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller characterised by using same processor to execute programmable controller and numerical controller function [CNC] and PC controlled NC [PCNC]
-
- 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/414—Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
- G05B19/4148—Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller characterised by using several processors for different functions, distributed (real-time) systems
-
- 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/41865—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 job scheduling, process planning, material flow
-
- 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/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- 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/12—Plc mp multi processor system
- G05B2219/1215—Master slave system
-
- 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/15—Plc structure of the system
- G05B2219/15079—Multitasking, real time multitasking
-
- 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/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23275—Use of parser
-
- 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/30—Nc systems
- G05B2219/34—Director, elements to supervisory
- G05B2219/34287—Plc and motion controller combined
-
- 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/30—Nc systems
- G05B2219/37—Measurements
- G05B2219/37137—Encoder combined with barcode label, reader
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Automation & Control Theory (AREA)
- Manufacturing & Machinery (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Programmable Controllers (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种能够使执行形式不同的多种程序有效地在单个控制装置上动作的控制装置的结构。在调度程序中,至少设定有第1任务、第2任务及第3任务,所述第1任务包含程序执行部及指令运算部的处理执行且具有第1优先级,所述第2任务包含分析部的处理执行且具有比第1优先级低的第2优先级,所述第3任务包含与第1任务及第2任务不同的处理内容的执行且具有第3优先级。控制装置还包含优先级变更部,所述优先级变更部对分析部中的处理状况进行监控,并且当分析部中的处理状况满足预定的条件时,根据所述条件来变更对第2任务设定的第2优先级。
Description
技术领域
本发明涉及一种用于对控制对象进行控制的控制装置。
背景技术
在生产现场,各种工厂自动化(Factory Automation,FA)技术已广泛普及。此种FA系统不仅包含可编程逻辑控制器(Programmable Logic Controller,PLC)(可编程控制器)等控制装置,还包含计算机数字控制(Computer Numerical Control,CNC)及机器人(robot)等可进行高度动作的各种执行器(actuator)等。此种FA系统正处于逐渐大规模化的倾向。
例如,日本专利特开2001-027904号公报(专利文献1)揭示了一种数字控制系统,其通过使多个CNC装置连结,从而能够增大进行控制的轴数,且能够取得多个CNC装置间的同步。在所述数字控制系统中,主机单元(master unit)及一个或多个从机单元(slaveunit)经由电缆(cable)而连接。主机单元及从机单元各自具有执行梯形程序(ladderprogram)的生产及物料控制(Production Material Control,PMC)用处理器及CNC用处理器。
而且,日本专利特开2016-092544号公报(专利文献2)揭示了一种控制系统,其通过主机控制装置来控制第1控制对象物,并且通过经由网络而与所述主机控制装置连接的从机控制装置来控制与第1控制对象物不同的第2控制对象物。所述控制系统包含主机控制装置及从机控制装置。主机控制装置及从机控制装置各自在具有运算处理部的控制器以外,包含具有另一运算处理部的机器人控制器。
随着近年的信息和通信技术(Information and Communication Technology,ICT)的进步,控制装置的处理能力也飞跃性提高。也产生下述需求(needs),即,想要以更少数量的控制装置来实现以往技术中使用多个专用装置而实现的FA系统。
发明内容
[发明所要解决的问题]
在所述专利文献1及专利文献2所揭示的结构中,采用了分散配置有多个处理器或运算处理部的结构,为了在各个处理器或运算处理部之间实现同步处理,结构可能变得繁冗。
另一方面,若想要利用单个控制装置来实现执行形式不同的多种程序(例如梯形程序、CNC程序、机器人程序等),则必须有效率地利用有限的处理资源(resource)。本发明的一个目的在于提供一种能够应对此种需求的控制装置。
[解决问题的技术手段]
根据本发明的一例,提供一种具有一个或多个处理器的控制装置。控制装置包括:存储部,保存在每次执行时整体受到扫描的第1程序与逐次执行的第2程序;程序执行部,在每个第1周期执行第1程序而输出第1控制指令;分析部,在比第1周期长的每个第2周期,对第2程序的至少一部分进行语法分析而逐次生成内部命令;指令运算部,依据由分析部所生成的内部命令,在每个第1周期输出第2控制指令;以及调度程序(scheduler),基于预先设定的优先级来对一个或多个任务(task)分配处理器资源。在调度程序中,至少设定有第1任务、第2任务及第3任务,所述第1任务包含程序执行部及指令运算部的处理执行且具有第1优先级,所述第2任务包含分析部的处理执行且具有比第1优先级低的第2优先级,所述第3任务包含与第1任务及第2任务不同的处理内容的执行且具有第3优先级。控制装置还包括优先级变更部,所述优先级变更部对分析部中的处理状况进行监控,并且当分析部中的处理状况满足预定的条件时,根据所述条件来变更对第2任务设定的第2优先级。
根据本发明,当多个任务共享共用的处理器资源时,能够防止下述事态,即,来不及生成成为用于生成控制指令的来源(source)的内部命令,从而能够保障在每个第1周期输出依据第1程序及第2程序的控制指令。
所述发明中优先级变更部也可基于表示与分析部的内部命令生成处理相关的负载的信息,来判断分析部中的处理状况。
根据本发明,能够对实质上成为优先级变更对象的分析部的负载状况进行评价,因此能够提高优先级变更处理的稳定性。
所述发明中,表示负载的信息也可包含分析部对第2程序的语法分析所需的时间。
根据本发明,能够客观或定量地评价分析部对第2程序的语法分析的负载状况,能够在分析部的负载变得过大之前提高优先级,从而能够预防来不及生成内部命令的事态的发生。
所述发明中,表示负载的信息也可包含分析部对第2程序的语法分析所需的时间是否超过第2周期的长度的信息。
根据本发明,基于分析部对第2程序的语法分析超过了原本的周期这一事实来变更优先级,因此能够防止在原本未处于必要状况时变更优先级的事态。
所述发明中,分析部也可构成为,对第2程序进行语法分析而算出轨迹上的通过点,并基于算出的通过点来生成内部命令。表示负载的信息也可包含分析部为了生成内部命令而事先算出的通过点的数量。
根据本发明,能够对分析部对第2程序的语法分析自身的处理负载进行评价,从而能够防止来不及生成内部命令的事态。
所述发明中,表示负载的信息也可包含由分析部所生成的内部命令中的、未经指令运算部处理的内部命令的数量。
根据本发明,能够防止内部命令的生成跟不上而分析部对控制指令的输出中断的事态。
所述发明中,表示负载的信息也可包含第2程序中记述的特殊命令。
根据本发明,对于第2程序中记述的命令中的特定命令,能够直接命令提高优先级来进行处理,因此能够更切实地实现第2程序的语法分析及内部命令的生成。
所述发明中,优先级变更部也可在提高了对第2任务设定的第2优先级之后,当满足预定的其他条件时,使第2优先级复原。
根据本发明,当对第2程序进行语法分析时,仅在必要时对分析部分配更多的处理器资源,另一方面,在无必要时,分析部不占用处理器资源,而能够对其他任务分配处理器资源。
所述发明中,分析部也可构成为,对多个第2程序分别执行语法分析而逐次生成各个内部命令。优先级变更部也可在与多个第2程序各自的语法分析相关联的多个第2任务之间变更优先级。
根据本发明,当在控制装置中并列地执行依据多个第2程序的控制时,能够在第2程序间调停优先级。
[发明的效果]
根据本发明,能够使执行形式不同的多种程序有效率地在单个控制装置上动作。
附图说明
图1A及图1B是用于说明本实施方式的控制装置中的处理概要的时间图。
图2是表示本实施方式的控制系统的整体结构例的示意图。
图3是表示本实施方式的控制装置的硬件(hardware)结构例的框图。
图4是表示本实施方式的控制装置的功能结构例的框图。
图5A及图5B是用于说明本实施方式的控制装置中的内部命令生成处理的示意图。
图6是表示本实施方式的控制装置中的任务执行时机的一例的时间图。
图7是表示本实施方式的控制装置中的低优先任务的任务执行周期超过的一例的时间图。
图8是表示本实施方式的控制装置中的表示处理执行所需的时间的变量列表(list)的一例的图。
图9A及图9B是用于说明本实施方式的控制装置中的内部命令生成处理的一例的示意图。
图10是表示本实施方式的控制装置中的用于生成内部命令的通过点的处理例的示意图。
图11是表示本实施方式的控制装置中的由内部命令运算控制指令的处理例的示意图。
图12A及图12B是表示本实施方式的控制装置中的进行处理的应用程序(application program)的一例的示意图。
图13是表示本实施方式的控制装置中的优先级变更的处理流程的流程图。
图14是表示本实施方式的控制装置中的使多个应用程序并列执行时的执行时机的一例的时间图。
图15是用于说明本实施方式的控制装置所提供的交叠(overlap)动作的示意图。
图16是表示本实施方式的控制装置中的用于实现交叠动作的程序例的示意图。
图17是表示将时间作为交叠条件时的交叠动作的一例的示意图。
图18是表示将位置作为交叠条件时的交叠动作的一例的示意图。
图19是表示本实施方式的控制装置中用于实现交叠动作的功能结构的示意图。
[符号的说明]
1:控制系统
2:现场网络
6:上位网络
10:第1任务
12:序列命令执行处理
14、14-1、14-2、16:输出处理
18:第2任务
20:第3任务
22:第4任务
24:第5任务
30:用户程序
32、32A、32B:应用程序
32-1:应用程序(NC程序)
32-2:应用程序(机器人程序)
34:系统程序
38:配方信息
40:内部命令
44:移动路径
50:通过点缓冲器
60:内部命令缓冲器
100:控制装置
102:处理器
104:芯片组
106:主存储器
108:存贮器
110:上位网络控制器
112:USB控制器
114:存储卡接口
116:存储卡
120:内部总线控制器
122:I/O单元
130:现场网络控制器
150:PLC处理引擎
152:序列程序执行部
154:调度程序
156:优先级变更部
158:条件设定信息
160、160-1、160-2:应用分析部
162:应用调停部
164:控制指令运算部
170、170-1、170-2:共享存储器
172:共享存储器控制部
174:显示功能部
176:现场网络接口
178:上位网络接口
200:支持装置
300:服务器装置
302、304、306:功能块
320、322、342、344:特殊命令
400:显示装置
500:现场机器
510:远程I/O装置
520:机器人
522:机器人控制器
530:机床
540:伺服驱动器
542:伺服马达
544:输送器
546:工作台
600:系统变量群
601:任务执行次数变量
602:执行时间之前值变量
603:执行时间最大值
604:执行时间最小值
605:任务执行周期超过有无变量
606:任务执行周期超过次数变量
P0、P1、P2、P3、P4:通过点
S100、S102、S104:步骤
t0、t1、t2、t3、t4:时刻
T1:控制周期
T2、T21、T22:应用执行周期
W:工件
具体实施方式
参照附图来详细说明本发明的实施方式。另外,对于附图中的相同或相当的部分,标注相同的标号,并不再重复其说明。
<A.适用例>
首先,参照图1A及图1B来说明适用本发明的场景的一例。图1A及图1B是用于说明本实施方式的控制装置100中的处理概要的时间图。
参照图1A及图1B,在本实施方式的控制装置100中,至少在每次执行时整体受到扫描的第1程序与逐次执行的第2程序皆执行。
本实施方式中,作为第1程序的一例,设想“国际电气标准会议(InternationalElectro technical Commission,IEC)程序”。控制装置100在预定的每个控制周期T1(第1周期),执行IEC程序而输出控制指令。
本说明书中,IEC程序的概念包含下述程序,即,每次执行时整体受到扫描,且每次执行时能够输出控制指令。IEC程序包含下述程序,此程序包含依据由国际电气标准会议(International Electro technical Commission,IEC)所规定的国际规格IEC61131-3而记述的一个或多个命令。在IEC程序中,可包含序列命令和/或运动命令。另外,作为IEC程序,并不限于依据国际规格IEC61131-3而记述的命令,也可包含PLC(可编程逻辑控制器)的制造厂家(marker)或销售商(vender)等独自规定的命令。这样,IEC程序适合于要求即时性及高速性的控制。
IEC程序是根据控制对象或应用而由用户任意制作,因此在以下的说明中,为了方便,也将IEC程序称作“用户程序(user program)”。
本说明书中,“序列命令”这一术语,包含通过运算输入值、输出值、内部值等的一个或多个逻辑电路所记述的一个或多个命令。在一次控制周期T1中,“序列命令”是从先头执行至最终为止,且在下个控制周期T1中,“序列命令”再次从先头执行至最终为止。
本说明书中,“运动命令”这一术语,包含用于对伺服马达(servo motor)等执行器运算位置、速度、加速度、急动度、角度、角速度、角加速度、角急动度等数值来作为控制指令的一个或多个命令。“运动命令”也是在一次控制周期T1中,从通过功能块(functionblock)或数值运算式等所记述的运动命令的程序(运动程序)的先头执行至最终为止。
在每个控制周期T1通过执行用户程序而输出的控制指令典型的是包含:依据序列命令而确定的数字(digital)输出的开/关(ON/OFF)、以及依据运动命令而运算的模拟(analog)输出。
本实施方式中,作为第2程序的一例,设想“应用程序”。
本说明书中,“应用程序”包含逐次执行的任意程序。典型的是,“应用程序”包含用能够以逐行地执行的解释器(interpreter)方式执行的任意语言而记述的程序。以下的说明中,作为此种“应用程序”的一例,有对计算机数字控制(Computer Numerical Control,CNC)中的行为进行记述的程序(以下也称作“NC程序”)。而且,作为“应用程序”的另一例,有用于控制机器人的程序。
NC程序是依据预定的语言而记述。作为一例,NC程序多使用“G语言”来记述,而用于控制机器人的程序多使用专用的机器人语言来记述。
以下的说明中,例如也有时将使用计算机数字控制(Computer NumericalControl,CNC)和/或机器人的、进行特定加工或动作的装置或机械以及它们的控制包括在内,而称作“控制应用”。
控制装置100在比控制周期T1(第1周期)长的每个应用执行周期T2(第2周期),对应用程序的至少一部分进行语法分析而逐次生成内部命令,并依据所生成的内部命令,在每个控制周期T1输出控制指令。这样,控制装置100对应用程序进行语法分析而逐次生成内部命令,并基于所述内部命令,在每个控制周期T1输出控制指令。
逐次执行的应用程序原本就不适合于在每个固定周期输出控制指令的处理,因此生成适合于在每个控制周期T1输出控制指令的内部命令。此种内部命令只要能够在每个控制周期T1输出控制指令,则为任何代码皆可。典型的是,内部命令也可为将时间作为输入变量的一个或多个函数、或者将时间作为自变量的一个或多个命令。
在控制装置100中,执行依据用户程序中所含的序列命令来输出控制指令的处理、依据用户程序中所含的运动命令来输出控制指令的处理、对应用程序进行语法分析而生成内部命令的处理、依据内部命令来输出控制指令的处理。在控制装置100中,除了这些处理以外,还执行关联的处理。即,在控制装置100中,使用共同的处理资源来执行多个处理。
此种多个处理的执行是由被称作调度程序的功能予以管理。调度程序将控制装置100所具有的一个或多个处理器的处理时间(以下,也称作“处理器资源”)分配给对象处理。
本实施方式中,以包含一个或多个处理的“任务”为单位来管理处理器资源的分配。对于各任务,预先设定有优先级,调度程序基于预先设定的优先级来对一个或多个任务分配处理器资源。
也可对各任务设定执行周期。在设定有执行周期的情况下,调度程序根据预先设定的执行周期来触发(trigger)对任务设定的处理。
图1A表示为不同优先级设定的五个任务(第1任务~第5任务)的示例。
第1任务10包含与现场(field)之间更新输入值及控制指令的输入/输出刷新(refresh)处理(图1A及图1B中记载为“O/I”)。
第2任务18包含序列命令执行处理12、依据应用程序来输出控制指令的输出处理14、及依据用户程序中所含的运动命令来输出控制指令的输出处理16。在调度程序中,作为具有相对较高优先级的第2任务18,设定有应用程序执行及控制指令输出的处理执行。
第1任务10及第2任务18是在每个控制周期T1时被触发。因此,对于第1任务10及第2任务18,设定有相对较高的优先级。以下的说明中,也将第1任务10及第2任务18称作“高优先任务”。
第3任务20包含对应用程序进行语法分析而逐次生成内部命令的处理。即,在调度程序中,作为具有相对较低优先级的第3任务20,设定有应用程序的语法分析的处理执行。
第4任务22包含控制装置100所提供的任意处理。即,在调度程序中,作为具有相对较低优先级的第4任务22,设定有与第2任务18及第3任务20不同的处理内容的执行。
第5任务24包含控制装置100与外部装置之间的数据通信等处理(以下,也称作“系统服务(system service)”)。
第3任务20、第4任务22及第5任务24是在未执行高优先任务的期间内执行。以下的说明中,也将第3任务20、第4任务22及第5任务24称作“低优先任务”。
对于第1任务~第5任务,分别设定有优先级,根据各设定的优先级来分配处理器资源。
图1A中表示对第4任务22设定有比第3任务20高的优先级的示例。图1A所示的示例中,第1任务10及第2任务18是在每个控制周期T1反复执行。在各控制周期T1中,在未执行第1任务10及第2任务18的期间内,根据优先级来执行第3任务~第5任务。
图1A所示的示例中,对于第4任务22,在每个控制周期T1分配有处理器资源。另一方面,对于第3任务20,仅在第1任务10、第2任务18、第4任务22均未执行的期间,才分配处理器资源,因此,完成一次第3任务20的处理,需要相当于三次控制周期T1的时间。即,从第3任务20被触发直至指定的处理完成为止,需要控制周期T1的三倍的时间。
如上所述,被设定为第3任务20的处理是对应用程序进行语法分析而逐次生成内部命令,所述逐次生成的内部命令被用于控制指令的输出。
这样,在第3任务20中,对应用程序进行语法分析而生成内部命令,在第2任务18中,将在第3任务20中生成的内部命令逐次用于控制指令的运算(即,在每个控制周期T1中被“消耗”)。即,在第3任务20对内部命令的生成与第2任务18对内部命令的使用之间产生竞争。
若对第3任务20分配有足够的处理器资源,则能够在第2任务18对内部命令的使用之前,事先生成一定程度量的内部命令。另一方面,若无法对第3任务20分配足够的处理器资源,则也可能产生下述事态:第2任务18对内部命令的使用取胜,要等待第3任务20对内部命令的生成。
因此,本实施方式的控制装置100中,对第3任务20(对应用程序的语法分析处理)中的处理状况进行监控,并且当所述处理状况满足预定的条件时,根据所述条件来变更对第3任务20设定的优先级。
例如,可进行如下所述的处理:在内部命令的生成无余裕的情况等下,提高对第3任务20设定的优先级,相反,在内部命令的生成产生了充分余裕的情况等下,降低对第3任务20设定的优先级。
图1B中,表示将第3任务20的优先级设定为比图1A的情况的优先级高时的处理例。图1B中,第3任务20的优先级被设定为比第4任务22高。
图1B所示的示例中,在第1任务10及第2任务18均未执行的期间,对第3任务20优先分配处理器资源。其结果,与图1A的情况相比,能将更多的处理器资源分配给第3任务20,从第3任务20被触发开始,能够以控制周期T1的两倍的时间来完成指定的处理。即,能够根据应用程序的处理对象的代码而以更短的时间来生成内部命令。
图1B中,与图1A的情况相比,也能够分配更多的处理器资源,此时,能够通过一次处理执行来生成更多的内部命令的量。
如以上那样,对于包含对应用程序进行语法分析而生成内部命令的处理的第3任务20的优先级,根据所述处理状况来动态变更,由此,能够持续在每个控制周期T1输出控制指令而不会在中途中断。
根据本实施方式的控制装置100,例如在依据应用程序来控制CNC机床或机器人等的情况下,能够与依据用户程序的控制指令的更新周期同步地输出位置或速度等的控制指令。因此,能够实现使CNC机床和/或机器人与关联的搬送装置等同步的控制。此时,通过采用如上所述的结构,能够不间断地生成用于输出针对CNC机床和/或机器人的控制指令的内部命令,从而不会产生CNC机床和/或机器人在中途暂停的事态,而能够实现准确且高速的控制及生产。
在图1A及图1B中,为了简化说明,对将单个处理器资源分时地分配给多个任务的结构进行了说明,但本发明的应用并不限定于此种环境,能够适用于公知的程序执行环境。例如,也能够在多核心(multi core)或多处理器环境中,将多个处理器资源分别分时地分配给所需的任务。此种情况下,处理器资源的分配也是基于优先级来进行,因此通过适用如上所述的优先级的变更处理,能够起到与所述同样的作用效果。
以下,作为本发明的更具体的应用例,对本实施方式的控制装置100的更详细的结构及处理进行说明。
<B.控制系统的整体结构例>
首先,对包含本实施方式的控制装置100的控制系统1的整体结构例进行说明。图2是表示本实施方式的控制系统1的整体结构例的示意图。图2中表示以本实施方式的控制装置100为中心的控制系统1。
参照图2,控制装置100相当于对各种设备或装置等控制对象进行控制的工业用控制器。控制装置100是执行后述的控制运算的一种计算机(computer),典型的是,也可作为PLC(可编程控制器)而具现化。控制装置100也可经由现场网络(field network)2而与各种现场机器500连接。控制装置100经由现场网络2等而与一个或多个现场机器500之间交换数据。“现场网络”一般也称作“现场总线(field bus)”,但为了简化说明,在以下的说明中,总称为“现场网络”。即,本说明书的“现场网络”的概念除了狭义的“现场网络”以外,还可包含“现场总线”。
现场网络2优选采用进行保证数据到达时间的、固定周期通信的总线或网络。作为进行此种固定周期通信的总线或网络,已知有EtherCAT(注册商标)、EtherNet/IP(注册商标)、DeviceNet(注册商标)、CompoNet(注册商标)等。
在现场网络2上,能够连接任意的现场机器500。现场机器500包含对制造装置或生产线(line)等(以下也总称为“现场”)给予任何物理作用的执行器、及与现场之间交换信息的输入/输出装置等。
经由现场网络2而在控制装置100与现场机器500之间交换数据,这些交换的数据将以数百微秒级(order)~数十毫秒级的极短周期受到更新。此种数据交换包含:将在现场机器500中收集或生成的数据(以下也称作“输入数据”)发送至控制装置100的处理、及从控制装置100发送针对现场机器500的控制指令等数据(以下也称作“输出数据”)的处理。此种交换数据的更新处理相当于所述的“输入/输出刷新(refresh)处理”。
在图2所示的结构例中,现场机器500包含远程(remote)输入/输出(Input/Output,I/O)装置510、机器人520及机器人控制器522、CNC机床530、伺服驱动器(servodriver)540及伺服马达542。
伺服马达542驱动输送器(conveyer)544,以将工件W搬送至配置于CNC机床530之前的工作台(work table)546上。机器人520将工作台546上的处理前的工件W配置于CNC机床530内,并取出CNC机床530中的已处理工件W而配置于工作台546上。
作为现场机器500,并不限定于这些,能够采用收集输入数据的任意设备(例如视觉传感器等)、以及给予依据输出数据的某些作用的任意设备(例如逆变器(inverter)装置等)等。
远程I/O装置510典型的是包含经由现场网络2进行通信的通信耦合器(coupler)、及用于进行输入数据的获取及输出数据的输出的输入/输出部(以下也称作“I/O单元”)。
在远程I/O装置510上,连接输入中继器(relay)或各种传感器(例如模拟传感器、温度传感器、振动传感器等)等收集输入数据的装置、以及输出中继器、接触器(contactor)、伺服驱动器及其他任意执行器等对现场给予某些作用的装置。
机器人控制器522根据来自控制装置100的控制指令(位置指令或速度指令等),进行轨迹计算及各轴的角度计算等,并且根据计算结果来驱动构成机器人520的伺服马达等。
CNC机床530是通过指定位置或速度等的程序来控制加工中心(machiningcenter)等,由此来对任意对象物进行加工。CNC机床530典型的是包含车床加工、铣削加工、放电加工等加工装置。
伺服驱动器540根据来自控制装置100的控制指令(例如位置指令或速度指令等),来驱动伺服马达542。
控制装置100也可经由上位网络6而连接于其他装置。对于上位网络6,也可采用作为一般网络协议(network protocol)的以太网(Ethernet)(注册商标)或EtherNet/IP(注册商标)。更具体而言,在上位网络6上,也可连接一个或多个服务器装置300及一个或多个显示装置400。
作为服务器装置300,设想数据库系统(database system)、制造执行系统(Manufacturing Execution System,MES)等。制造执行系统是获取来自作为控制对象的制造装置或设备的信息,以对整个生产进行监控及管理,也能够对订单(order)信息、品质信息、出货信息等进行处理。但并不限于此,也可将提供信息系统服务(service)的装置连接于上位网络6。作为信息系统服务,设想下述处理:获取来自作为控制对象的制造装置或设备的信息,并进行宏观(macro)或微观(micro)分析等。例如设想:提取来自作为控制对象的制造装置或设备的信息中所含的某些特征性倾向的数据挖掘(mining);或者用于进行基于来自作为控制对象的设备或机械的信息的机械学习的机械学习工具(tool)等。
显示装置400接受来自用户的操作,对控制装置100输出与用户操作相应的命令等,并且以图形方式(graphical)显示控制装置100中的运算结果等。
进而,在控制装置100上,可连接支持(support)装置200。支持装置200是支持控制装置100对控制对象进行控制所需的准备的装置。具体而言,支持装置200提供在控制装置100上执行的程序的开发环境(程序制作编辑工具、分析程序(parser)、编译器(compiler)等)、用于对控制装置100及连接于控制装置100的各种设备的参数(配置(configuration))进行设定的设定环境、将所生成的用户程序输出至控制装置100的功能、在线(online)修正/变更在控制装置100上执行的用户程序等的功能等。
<C.控制装置的硬件结构例>
接下来,对本实施方式的控制装置100的硬件结构例进行说明。图3是表示本实施方式的控制装置100的硬件结构例的框图。
参照图3,控制装置100是被称作中央处理器(Central Processing Unit,CPU)单元的运算处理部,包含处理器(processor)102、芯片组(chip set)104、主存储器106、存贮器(storage)108、上位网络控制器110、通用串行总线(Universal Serial Bus,USB)控制器112、存储卡接口(memory card interface)114、内部总线控制器120以及现场网络控制器130。
处理器102包含中央处理器(Central Processing Unit,CPU)、微处理器(MicroProcessing Unit,MPU)、图形处理器(Graphics Processing Unit,GPU)等。作为处理器102,既可采用具有多个核心(core)的结构,也可配置多个处理器102。即,控制装置100包含一个或多个处理器102、和/或具有一个或多个核心的处理器102。芯片组104通过控制处理器102及周边组件(element),从而实现作为控制装置100整体的处理。主存储器106包含动态随机存取存储器(Dynamic Random Access Memory,DRAM)或静态随机存取存储器(Static Random Access Memory,SRAM)等易失性存储装置等。存贮器108例如包含硬盘驱动器(Hard Disk Drive,HDD)或固态硬盘(Solid State Drive,SSD)等非易失性存储装置等。
处理器102读出存贮器108中保存的各种程序,并在主存储器106中展开执行,从而实现与控制对象相应的控制、及如后所述的各种处理。在存贮器108中,除了用于实现基本功能的系统程序34以外,还保存根据作为控制对象的制造装置或设备而制作的用户程序30及应用程序32。
上位网络控制器110对经由上位网络6的、与服务器装置300或显示装置400(参照图3)等之间的数据交换进行控制。USB控制器112对经由USB连接的、与支持装置200之间的数据交换进行控制。
存储卡接口114是可装卸存储卡116地构成,能够对存储卡116写入数据,并从存储卡116读出各种数据(用户程序或跟踪数据(trace data)等)。
内部总线控制器120对与安装于控制装置100的I/O单元122之间的数据交换进行控制。现场网络控制器130对经由现场网络2的、与现场设备之间的数据交换进行控制。
图3中表示了通过处理器102执行程序来提供所需功能的结构例,也可使用专用的硬件电路(例如专用集成电路(Application Specific lntegrated Circuit,ASIC)或现场可编程门阵列(Field Programmable Gate Array,FPGA)等)来实现这些提供的功能的一部分或全部。或者,也可使用遵循通用架构(architecture)的硬件(例如以通用个人计算机(personal computer)为基础(base)的工业用个人计算机)来实现控制装置100的主要部分。此时,也可使用虚拟技术来并列执行用途不同的多个操作系统(Operating System,OS),并且在各OS上执行所需的应用。
在图2所示的控制系统1中,控制装置100、支持装置200及显示装置400是分别独立地构成,但也可采用将这些功能的全部或一部分集成到单个装置中的结构。
<D.控制装置的功能结构例>
接下来,对本实施方式的控制装置100的功能结构例进行说明。图4是表示本实施方式的控制装置100的功能结构例的框图。
图4中表示控制装置100对控制应用1及控制应用2进行控制的结构例。典型的是,控制应用1及控制应用2各自包含中继器或接触器等I/O设备及伺服马达等各种执行器。除了控制应用1及控制应用2以外,其他I/O设备及各种传感器也经由现场网络2而与控制装置100连接。
控制装置100从经由上位网络6而连接的服务器装置300等,接收生产的开始/结束等指示。服务器装置300也有时将配方(recipe)信息38(生产品种或适合于生产的参数等信息)发送至控制装置100。控制装置100也可与未图示的其他控制装置100进行网络连接。
参照图4,控制装置100包含PLC处理引擎(engine)150、应用分析部160、应用调停部162、控制指令运算部164、共享存储器170、共享存储器控制部172、显示功能部174、现场网络接口176及上位网络接口178。
PLC处理引擎150对用户程序30的执行及控制装置100整体的处理进行管理。更具体而言,PLC处理引擎150包含序列程序执行部152、调度程序154及优先级变更部156。
序列程序执行部152在每个控制周期T1执行(扫描)用户程序30而输出控制指令。
调度程序154是对控制装置100中执行的处理的顺序进行调停,具体而言,基于预先设定的优先级来对一个或多个任务分配处理器资源。
优先级变更部156监控应用分析部160中的处理状况,并且,当应用分析部160中的处理状况满足预定的条件时,根据所述条件来变更对包含应用分析部160的处理的任务设定的优先级。优先级变更部156调整对优先级变更部156的处理器资源的分配,以带有余裕地执行应用分析部160对内部命令的生成。
优先级变更部156具有用于变更优先级的条件设定信息158。条件设定信息158包含如后所述的条件及满足所述条件时的优先级变更处理的内容。
应用分析部160对应用程序32的至少一部分进行分析而生成内部命令40。对于应用分析部160,也有时会提供不同种类的应用程序32。应用分析部160既可执行预先保存的应用程序32,也可执行从服务器装置300适当发送的应用程序32。
控制指令运算部164根据用户程序30中所含的运动命令,在每个控制周期T1运算控制指令。而且,控制指令运算部164根据由应用分析部160逐次生成的内部命令40,在每个控制周期T1运算控制指令。
序列程序执行部152及控制指令运算部164在每个控制周期T1执行处理(高优先任务)。另一方面,应用分析部160对应用程序32的处理是在作为控制周期T1的整数倍的每个应用执行周期T2(第2周期)执行(低优先任务)。
应用调停部162在应用分析部160中处理多个应用程序32的情况下,对其处理顺序等进行调停。
共享存储器170保持在PLC处理引擎150、应用分析部160及控制指令运算部164之间共享的数据。共享数据也可作为结构体变量而保存。例如,由应用分析部160逐次生成的内部命令40被逐次写入至共享存储器170的结构体变量。
共享存储器控制部172进行对共享存储器170的数据读写的排他控制、及与来自外部的要求相应的对共享存储器170的存取等。例如,共享存储器控制部172将共享存储器170上的数据提供给现场网络接口176,由此,发送至经由现场网络2而连接的任意的现场机器500。
显示功能部174将保存在共享存储器170中的数据及应用分析部160的处理结果等输出给用户等。
现场网络接口176对与经由现场网络2而连接的现场机器500之间的数据交换进行中介。
上位网络接口178对与经由上位网络6而连接的装置之间的数据交换进行中介。
<E.内部命令的一例>
接下来说明控制装置100的应用分析部160对应用程序32进行分析而生成的内部命令40的一例。作为应用程序32,也可采用以能以解释器方式执行的任意语言而记述的任何程序,在以下的说明中,设想如NC程序或机器人程序那样,由一个或多个命令来预先规定轨迹的程序。
图5A及图5B是用于说明本实施方式的控制装置100中的内部命令40的生成处理的示意图。参照图5A,应用分析部160对应用程序32进行语法分析,从而对应用程序32中所含的各命令进行分析((1)应用程序分析)。通过对应用程序32进行语法分析,在内部生成规定的轨迹((2)轨迹生成)。应用程序32多在每个区间包含对轨迹进行规定的命令,因此在与各命令对应的每个区间生成轨迹。
在规定有包含多个轴的群组(group)的情况下,既可针对每个轴来生成轨迹,也可生成对属于所述群组的所有轴的行为进行规定的轨迹。
应用分析部160生成表示所生成的轨迹的内部命令40(典型的是一个或多个函数)((3)内部命令生成)。在每个区间规定轨迹的情况下,生成与各区间对应的内部命令40。
如上所述,应用分析部160对应用程序32进行语法分析而算出轨迹上的通过点,并基于算出的通过点来生成内部命令。
既可利用共同的内部命令40来规定多个区间,也可进一步分割一个区间而分别生成各别的内部命令40。即,无须使应用程序32的命令或由此命令所规定的轨迹的区间、与所生成的内部命令40的数量一致,只要任意生成即可。而且,对于内部命令40的输出形态,也可考虑所要求的控制周期T1的时间宽度等来适当设计。
如图5A所示,作为内部命令40的一例,也可为对时间与指令值的关系进行规定的函数。图5A所示的示例中,在内部生成的轨迹能够以直线的组合来规定。作为一例,关于X轴,对于每个直线区间(区间1~区间3)的轨迹,能够输出表示时间与速度的关系的Fx1(t)、Fx2(t)、Fx3(t)。对于属于同一群组的其他轴(例如Y轴及Z轴),也可分别同样地输出函数。
如图5B所示,控制指令运算部164在每个控制周期T1,依照所生成的内部命令40来运算控制指令,由此,在每个控制周期T1输出控制指令((4)指令值运算)。即,对与各区间对应的函数输入各控制周期的时刻,由此,能够唯一决定此时刻的指令值。在设定有某些群组的情况下,优选的是,对于属于所述群组的各轴,同步地输出指令值。
所述图5A及图5B中,作为一例,表示了通过CNC中使用的G语言所记述的命令的一例,但并不限于此,只要是以任意的解释器方式执行的程序,则使用任何语言皆可。而且,也可根据处理对象的语言格式来使所生成的内部命令40的格式不同。
<F.任务的执行时机>
接下来,对本实施方式的控制装置100中的各个任务的执行时机进行说明。图6是表示本实施方式的控制装置100中的任务执行时机的一例的时间图。
参照图6,作为高优先任务,设定有第1任务10(输入/输出刷新处理)及第2任务18(包含序列命令执行处理12、依据应用程序的控制指令的输出处理14、及依据用户程序中所含的运动命令的控制指令的输出处理16)。作为低优先任务,设定有第3任务20(对应用程序32进行语法分析而逐次生成内部命令40的处理)。
高优先任务是在每个控制周期T1执行。在依据应用程序的控制指令的输出处理14中,对于由应用分析部160所生成的内部命令40,从共享存储器170读出(离队(deque))内部命令40,算出所述控制周期T1中的控制指令。
低优先任务是在每个应用执行周期T2执行。应用执行周期T2是以控制周期T1的整数倍(图6所示的示例中为两倍)为单位而设定。即,应用分析部160在每个应用执行周期T2,对应用程序32的至少一部分进行语法分析而逐次生成内部命令40。所生成的内部命令40被逐次列队(queuing)(排队(enqueue))至共享存储器170内的缓冲器(buffer)中。
低优先任务只要能够在应用执行周期T2内完成处理即可。在高优先任务的执行期间内,低优先任务未被分配处理器资源,因此在中断(挂起(suspend))状态下待机。
图6所示的各个任务的执行时机,即处理器资源的分配是由调度程序154来执行。调度程序154基于对各任务设定的优先级,来进行针对各任务的处理器资源的分配。
<G.优先级变更>
接下来说明对低优先任务设定的优先级的变更处理。如所述图1A及图1B所示,并列地执行高优先任务以外的多个任务,在这些任务之间,根据优先级来分配处理器资源。
此类低优先任务是与其他低优先任务之间共享处理器资源。另一方面,应用程序32包含解释器方式的命令,因此语法分析所需的时间根据命令的种类及组合而变化。因此,对于所要求的语法分析的处理,也有时无法在应用执行周期T2内完成处理。此种无法在应用执行周期T2内完成处理的状态也称作“任务执行周期超过”。
图7是表示本实施方式的控制装置100中的低优先任务的任务执行周期超过的一例的时间图。参照图7,在从时刻t1开始的应用执行周期T2中开始的第3任务20直至原本的周期结束即时刻t3为止,无法完成处理,而在下个应用执行周期T2完成处理。
当产生此种任务执行周期超过时,必须采用延长应用执行周期T2、和/或变更为更高优先级的应对。
本实施方式的控制装置100监控第3任务20(对应用程序32的语法分析处理)中的处理状况,并且当所述处理状况满足预定的条件时,根据所述条件来变更对第3任务20设定的优先级。与此条件相应的变更包含提高优先级、及降低优先级中的任一个皆可。
典型的是,控制装置100的优先级变更部156也可在产生了如上所述的任务执行周期超过时,提高对第3任务20设定的优先级,且在提高了所述优先级之后,当满足预定的其他条件时,恢复所述优先级。
用于变更优先级的“任务的处理状况”,其概念包括可能对被设定为高优先任务的、使用内部命令的控制指令的计算处理造成影响的状况。“任务的处理状况”可包含避免下述事态所需的任意信息,所述事态是:无法保证依据应用程序32的控制指令在每个控制周期T1的输出。
控制装置100的优先级变更部156基于表示与应用分析部160对内部命令的生成处理相关的负载的信息,来判断应用分析部160中的处理状况。作为表示与内部命令的生成处理相关的负载的信息的一例,可列举如下所述的信息。
(1)低优先任务的处理执行所需的时间
(2)有无产生任务执行周期超过
(3)用于生成内部命令的通过点的缓冲数
(4)内部命令的缓冲数
(5)应用程序内的特殊命令
以下,对基于各信息的优先级变更处理进行说明。
(g1.低优先任务的处理执行所需的时间)
作为所述任务的处理状况,也可基于作为对象的低优先任务的处理执行所需的时间。这样,表示与内部命令的生成处理相关的负载的信息也可包含应用分析部160对应用程序32的语法分析所需的时间。
作为低优先任务的处理执行所需的时间,能够使用从低优先任务处理开始直至处理完成为止所需的时间的之前值、最大值、最小值、平均值、中间值等。
而且,也可使用在作为对象的低优先任务中是否产生任务执行周期超过、及产生任务执行周期超过的次数等。
图8是表示本实施方式的控制装置100中的表示处理执行所需的时间的变量列表的一例的图。参照图8,控制装置100保持有特定任务的处理执行所需的信息来作为系统变量。
图8所示的示例中,作为系统变量群600,表示有任务执行次数变量601(_CNC_ServiceExecCount)、执行时间之前值变量602(_CNC_ServiceLastExecTime)、执行时间最大值603(_CNC_ServiceMaxExecTime)及执行时间最小值604(_CNC_ServiceMinExecTime)。
任务执行次数变量601表示从控制装置100启动开始(或者从任意的重置(reset)时机开始)执行对象任务的总次数。执行时间之前值变量602表示对象任务在之前的执行中处理所需的时间。执行时间最大值603表示从控制装置100启动开始(或者从任意的重置时机开始)算起的、任务的执行所需的时间的最大值。执行时间最小值604表示从控制装置100启动开始(或者从任意的重置时机开始)算起的、任务的执行所需的时间的最小值。
能够基于此种低优先任务的处理执行所需的时间来评价对象任务的负载状况等,并基于此评价结果来变更所述对象任务的优先级。
作为使用图8所示的处理执行所需的时间的情况下的条件,例如能够采用下述情况等,即,对象任务处理执行的之前值到达预先设定的应用执行周期T2的规定比率(例如90%)为止。当满足此条件时,也可提高所述对象任务的优先级。
相反地,能够采用下述情况等,即,对象任务处理执行的之前值多次为预先设定的应用执行周期T2的规定比率(例如30%)以下。当满足此条件时,也可降低所述对象任务的优先级。
而且,对于将对象任务的优先级提高到何种程度为止,也可基于应用执行周期T2的长度、与对象任务处理执行所需的时间的差分或比率来决定。
通过像这样监控低优先任务的处理执行所需的时间,从而能够直接评价对象任务的负载状况。
(g2.有无产生任务执行周期超过)
作为所述任务的处理状况,也可基于作为对象的低优先任务中有无产生任务执行周期超过。即,表示与内部命令的生成处理相关的负载的信息,也可包含应用分析部160对应用程序32的语法分析所需的时间是否超过应用执行周期T2(第2周期)的长度的信息。
再次参照图8,系统变量群600还表示有任务执行周期超过有无变量605(_CNC_ServiceExceeded)与任务执行周期超过次数变量606(_CNC_ServiceExceedCount)。任务执行周期超过有无变量605表示在对象任务的之前的执行中,是否产生过任务执行周期超过。任务执行周期超过次数变量606表示从控制装置100启动开始(或者从任意的重置时机开始)算起的、产生了任务执行周期超过的总次数。
能够基于此种任务执行周期超过的产生有无,来评价对象任务的负载状况等,并基于此评价结果来变更所述对象任务的优先级。当使用任务执行周期超过的产生有无的信息时,也可以在对象任务的之前的执行中产生过任务执行周期超过为条件,来提高所述对象任务的优先级。
相反地,也可以经过预定的执行次数而未产生任务执行周期超过为条件,来降低所述对象任务的优先级。
通过像这样监控任务执行周期超过的产生有无,从而能够直接评价对象任务的负载状况。
(g3.用于生成内部命令的通过点的缓冲数)
作为所述任务的处理状况,也可基于对应用程序32进行语法分析而算出的目标轨迹上的通过点的缓冲数。即,表示与内部命令的生成处理相关的负载的信息,也可包含应用分析部160为了生成内部命令而事先算出的通过点的数量。
此处,说明对应用程序32进行语法分析而生成内部命令40的处理。图9A及图9B是用于说明本实施方式的控制装置100中的内部命令40的生成处理的一例的示意图。图9A中,表示从时刻t0直至时刻t1为止的期间内的生成内部命令40的处理流程,图9B中,表示从时刻t1直至时刻t2为止的期间内的生成内部命令40的处理流程。
参照图9A,应用分析部160对应用程序32进行语法分析而逐次决定目标轨迹。应用分析部160针对逐次决定的目标轨迹,逐次算出预定的每个期间的通过点。各个通过点是基于目标轨迹上的移动距离及目标轨迹上的移动速度而算出。
图9A所示的示例中,除了时刻t0的初始位置即通过点P0(t0)以外,还算出时刻t1的通过点P1(t1)、时刻t2的通过点P2(t2)、时刻t3的通过点P3(t3)。
应用分析部160至少基于通过点P0(t0)及通过点P1(t1)的信息,来算出从通过点P0(t0)直至通过点P1(t1)为止的移动路径44。应用分析部160根据算出的移动路径44而生成内部命令Fx1(t)。另外,图9A中仅表示了内部命令Fx1(t),但实际上,将生成与必须同时控制的马达数相应的内部命令40。
在移动路径44的计算中,除了通过点P0(t0)及通过点P1(t1)的信息以外,也可反映紧跟着通过点P1(t1)的一个或多个通过点的信息。通过参照更多通过点的信息,能够提高内部命令的生成精度。
参照图9B,对于时刻t1直至时刻t2为止的期间,应用分析部160进一步对应用程序32进行语法分析而决定更前的目标轨迹。应用分析部160针对所决定的更前的目标轨迹,算出新的通过点P4(t4)。
并且,应用分析部160基于通过点P1(t1)及通过点P2(t2)的信息,来算出通过点P1(t1)直至通过点P2(t2)为止的移动路径44。应用分析部160根据算出的移动路径44而生成内部命令Fx2(t)。另外,图9B中仅表示了内部命令Fx2(t),但实际上,将生成与彼此同时控制的马达数相应的内部命令40。
通过重复如上所述的处理流程,从而逐次生成用于实现目标轨迹的内部命令40。
图10是表示本实施方式的控制装置100中的用于生成内部命令40的通过点的处理例的示意图。参照图10,在应用分析部160中,准备有通过点缓冲器50。在通过点缓冲器50中,将逐次算出的通过点的信息(典型的是坐标值)依照其算出顺序而列队(排队)。从通过点缓冲器50依照算出顺序而读出(离队)通过点的信息,从而逐次生成对应的内部命令40。
图10所示的通过点缓冲器50中保存的通过点的信息数也称作“通过点缓冲数”。通过点缓冲数表示用于逐次生成内部命令40的似然性。即,通过点缓冲数越多,在应用分析部160对应用程序32的语法分析处理中,即使产生处理时间的不均,内部命令40的生成处理也不会中断而能够持续。
能够基于此种应用分析部160的通过点缓冲器50中保存的通过点的数量来评价对象任务的负载状况等,并基于此评价结果来变更所述对象任务的优先级。
当使用图10所示的通过点缓冲器50中保存的通过点的信息数(通过点缓冲数)时,例如能够采用通过点缓冲数是否低于预定阈值的条件。当满足此条件时,也可提高所述对象任务的优先级。
相反地,当通过点缓冲数经过规定期间而持续超过预定阈值的状态时,也可降低所述对象任务的优先级。
通过像这样对应用分析部160的通过点缓冲器50中保存的通过点的数量进行监控,从而能够评价对象任务的负载状况。
(g4.内部命令的缓冲数)
作为所述任务的处理状况,也可基于由应用程序32所生成的内部命令40的缓冲数。即,表示与内部命令的生成处理相关的负载的信息,也可包含由应用分析部160所生成的内部命令中的、未经控制指令运算部164处理的内部命令的数量。
控制装置100的控制指令运算部164根据由应用分析部160逐次生成的内部命令40,在每个控制周期T1运算控制指令。
图11是表示本实施方式的控制装置100中的由内部命令40来运算控制指令的处理例的示意图。参照图11,在共享存储器170中,准备有内部命令缓冲器60,所述内部命令缓冲器60用于保存由应用分析部160逐次生成的内部命令。在内部命令缓冲器60中,将逐次算出的内部命令依照其生成顺序而列队(排队)。从内部命令缓冲器60依照生成顺序而读出(离队)内部命令,用于控制指令运算部164对控制指令的运算。
图11所示的内部命令缓冲器60中保存的内部命令40的数量也称作“内部命令缓冲数”。内部命令缓冲数表示用于控制指令运算部164在每个控制周期T1运算控制指令的似然性。即,内部命令缓冲数越多,在应用分析部160对内部命令40的生成处理中,即使产生处理时间的不均,控制指令在每个控制周期T1的运算处理也不会中断而能够持续控制指令的输出。
能够基于此种内部命令缓冲器60中保存的内部命令40的数量来评价对象任务的负载状况等,并基于此评价结果来变更所述对象任务的优先级。
当使用图11所示的内部命令缓冲器60中保存的内部命令数(内部命令缓冲数)时,例如能够采用内部命令缓冲数是否低于预定阈值的条件。当满足此条件时,也可提高所述对象任务的优先级。
相反地,当内部命令缓冲数经过规定期间而持续超过预定阈值的状态时,也可降低所述对象任务的优先级。
通过像这样监控共享存储器170的内部命令缓冲器60中保存的内部命令的数量,从而能够评价对象任务的负载状况。
(g5.应用程序内的特殊命令)
作为所述任务的处理状况,当执行应用程序32内记述的特殊命令时,也可基于所述特殊命令来变更对象任务或关联任务的优先级。即,表示与内部命令的生成处理相关的负载的信息,也可包含在应用程序32中明示地记述的特殊命令。
图12A及图12B是表示本实施方式的控制装置100中进行处理的应用程序的一例的示意图。图12A中表示以G语言记述的应用程序32A的一例,图12B中表示以机器人语言记述的应用程序32B的一例。
参照图12A,应用程序32A在“050”块(block)中包含特殊命令320。特殊命令320是用于将内部命令40的生成精度设为两倍的命令。当应用分析部160执行特殊命令320时,对优先级变更部156通知消息(message)。优先级变更部156基于来自应用分析部160的消息内容,来变更关于对应用程序32A进行处理的任务的优先级。
同样,参照图12B,应用程序32B在一连串命令群的中途包含特殊命令322。特殊命令322是用于使应用程序32B与其他应用程序联动地动作的命令。即,通过执行特殊命令322,开始对其他应用程序的处理。
当应用分析部160执行特殊命令322时,对优先级变更部156通知消息。优先级变更部156基于来自应用分析部160的消息内容,来变更关于对从应用程序32B新启动的应用程序进行处理的任务的优先级。或者,也可也关于对应用程序32B进行处理的任务而变更优先级。
另外,图12A及图12B所示的应用程序32A、32B是一例,也可定义任何特殊命令。
通过像这样在由应用分析部160所处理的应用程序内明示地规定特殊命令,从而能够事先变更对所述应用程序进行处理的任务的优先级,能够实现对于对象任务的将来负载进行推测的、准确的优先级调整。
(g6.其他)
所述说明中,例示了可成为表示与内部命令的生成处理相关的负载的信息的多个因子(factor),但也可仅使用这些中的任一个因子,还可将任意的多个因子组合使用。进而,当将多个因子加以组合时,也可适用与因子相应的加权。作为这些因子的利用形态,能够适用与状况相应的方法。
<H.与优先级变更相关的处理流程>
接下来说明与对低优先任务设定的优先级的变更相关的处理流程。图13是表示本实施方式的控制装置100中的优先级变更的处理流程的流程图。图13所示的各步骤典型的是通过控制装置100的处理器102执行系统程序34而实现。
参照图13,PLC处理引擎150的优先级变更部156收集与在条件设定信息158中规定的条件关联的信息(步骤S100)。继而,优先级变更部156判断所收集的信息是否满足条件设定信息158中规定的任一条件(步骤S102)。
若所收集的信息不满足条件设定信息158中规定的任何条件(步骤S102中为否(NO)),则重复步骤S100以下的处理。
另一方面,若所收集的信息满足条件设定信息158中规定的任一条件(步骤S102中为是(YES)),则优先级变更部156根据与此满足的条件对应的内容,来变更关于对象任务的优先级(步骤S104)。继而,重复步骤S100以下的处理。
例如,图13所示的一连串处理也可在每个控制周期T1反复执行。
<I.多个应用程序间的优先级调停>
为了便于说明,所述说明中,例示了在控制装置100中执行一个应用程序32的情况,但也能够并列地执行多个应用程序32。此种情况下,也可不仅变更关于对各应用程序进行处理的任务的优先级,还相对地变更对各个应用程序进行处理的任务间的优先级(即,优先级的调停)。
图14是表示本实施方式的控制装置100中的使多个应用程序并列执行时的执行时机的一例的时间图。图14所示的时间图中,表示并列地执行在每个应用执行周期T21进行语法分析的应用程序1、与在每个应用执行周期T22进行语法分析的应用程序2的示例。
参照图14,作为高优先任务,除了第1任务10(输入/输出刷新处理)以外,还设定有序列命令执行处理12、依据用户程序中所含的运动命令的控制指令的输出处理16、依据应用程序1的控制指令的输出处理14-1、及依据应用程序2的控制指令的输出处理14-2。
应用程序1及应用程序2的语法分析被设定为低优先任务。
另外,图14所示的示例中,能够对高优先任务及低优先任务分别分配独立的处理器资源。
更具体而言,应用分析部160在每个应用执行周期T21(图14所示的示例中为控制周期的两倍),对应用程序1的至少一部分进行语法分析而逐次生成内部命令40。所生成的内部命令40被逐次列队(排队)至共享存储器170-1内的缓冲器中。
而且,应用分析部160在每个应用执行周期T22(图14所示的示例中为控制周期的两倍),对应用程序2的至少一部分进行语法分析而逐次生成内部命令40。所生成的内部命令40被逐次列队(排队)至共享存储器170-2内的缓冲器中。
另外,也可准备分别对应用程序1及应用程序2进行处理的彼此独立的两个应用分析部160。
此种结构中,在低优先任务之间共享共同的处理器资源。即,低优先任务用的处理器资源是基于对低优先任务分别设定的优先级的相对关系而配分。因此,所述优先级变更处理既可适用于被设定为低优先任务的各个任务,也可适合来调整任务间的优先级的相对关系。
所谓调整任务间的优先级的相对关系,例如是指:当满足提高其中一个任务的优先级的条件时,既可提高此任务的优先级,但也可降低另一个任务的优先级。即,当满足应对多个任务中的任一任务进行优先处理的条件时,只要较其他任务的优先级而相对地提高此对象任务的优先级即可,对于其实现方法,采用任何方法皆可。
这样,当有多个任务被设定为低优先任务时,也可对任务间的优先级进行调停。即,当应用分析部160对多个应用程序32各自执行语法分析而逐次生成各个内部命令时,优先级变更部156也可在与多个应用程序32各自的语法分析相关联的多个任务之间变更优先级。此种优先级的调停也可通过应用调停部162及优先级变更部156(均参照图4)联动而实现。
<J.交叠动作>
接下来,对使用本实施方式的控制装置100的多个控制应用间的交叠动作进行说明。
图15是用于说明本实施方式的控制装置100所提供的交叠动作的示意图。图15中,例如表示对图2所示的包含机器人520及CNC机床530的结构的适用例。作为具体的动作,机器人520拾取由输送器544所搬送的工件W并配置于CNC机床530的内部。CNC机床530对工件W实施加工处理。并且,机器人520从CNC机床530的内部取出工件W,并将所述工件W配置于下个工序的接纳位置。
在此种一连串动作中,为了提高生产性,例如优选的是:在CNC机床530对工件W的加工结束之前,便使机器人520预先移动到工件W的取出位置。即,必须使CNC机床530及机器人520在维持一定关系的状态下并列地动作。以下,也将此种使多个控制应用在维持一定关系的状态下动作的情况称作“交叠动作”。
更具体而言,“交叠动作”包含下述状态,即,在依据某应用程序的动作开始之后,紧跟着开始依据其他应用程序的动作。开始依据其他应用程序的动作的条件(以下也称作“交叠条件”)包含从动作开始经过预定的时间、及到达规定位置等。
图15中表示在CNC机床530中对工件W的加工即将结束之前的动作例。若设CNC机床530对工件W的加工处理在时刻t2结束,则优选机器人520在时刻t2取出加工处理已结束的工件W。因此,机器人520从时刻t1开始动作,以便能够在时刻t2到达CNC机床530的工件取出位置。并且,机器人520在时刻t2取出工件W,并从时刻t3开始向下个工序的移动。另一方面,机器人520一取出工件W,CNC机床530便立即开始直至用于接纳新的工件W的接纳位置为止的移动。
通过像这样使CNC机床530及机器人520彼此联动而并列地进行动作,从而能够提高生产性。
以下,对用于实现此种交叠动作的结构及处理进行说明。另外,本说明书中的“交叠动作”可包含下述情况,即,多个控制应用以任意时机为基准来同时开始动作。
图16是表示本实施方式的控制装置100中的用于实现交叠动作的程序例的示意图。图16所示的用户程序30涉及图2所示的输送器544、CNC机床530及机器人520的控制。
更具体而言,用户程序30包含:功能块(function block)302,规定用于对驱动输送器544的伺服马达542进行控制的运动命令;功能块304,指示用于控制CNC机床530的应用程序32-1(NC程序)的执行开始;以及功能块306,指示用于控制机器人520的应用程序32-2(机器人程序)的执行开始。
功能块302、304、306分别通过运转开始旗标成为真(TRUE)来执行指定的处理。
在应用程序32-1及应用程序32-2中,附加有用于进行交叠动作的特殊命令。图16中表示了下述示例,即,使应用程序32-2的第3行规定的“MOVE X200Y100”,交叠于依据应用程序32-1的第049块规定的“G01X-10Y-50”这一命令的动作而动作。
为了实现此种交叠动作,在规定先行动作的命令(第049块的“G01X-10Y-50”)之后,规定特殊命令342。特殊命令342除了“OverlapMove”这一命令以外,还附加有用于确定此命令的识别信息(图16所示的示例中为作为自变量的“1”)。
另一方面,在应用程序32-2中,在规定欲交叠的动作的命令(图16所示的示例中为“MOVE X200Y100”)之前,规定特殊命令344。特殊命令344除了“OverlapStart”这一命令以外,还附加有用于确定此命令的识别信息(图16所示的示例中为“1”)、及交叠条件(图16所示的示例中为“100ms”)。作为交叠条件,除了时间及位置以外,还能够使用任意信息。
图17是表示将时间作为交叠条件时的交叠动作的一例的示意图。参照图17,当依据应用程序32-1的第049块记载的命令的动作开始后,在经过交叠条件即“100ms”后,开始依据应用程序32-2的“MOVE X200Y100”这一命令的动作。即,依据应用程序32-2的动作将在从应用程序32-1所指定的动作开始经过了交叠条件中规定的时间后开始,能够使两者交叠地进行动作。
图18是表示将位置作为交叠条件时的交叠动作的一例的示意图。参照图18,当依据应用程序32-1的第049块记载的命令的动作开始后,以到达作为交叠条件的规定位置(或者进入规定范围内)为条件,而开始依据应用程序32-2的“MOVE X200Y100”这一命令的动作。即,依据应用程序32-2的动作将在从应用程序32-1中指定的动作开始而当交叠条件中规定的位置条件成立时开始,能够使两者交叠地进行动作。
图19是表示本实施方式的控制装置100中用于实现交叠动作的功能结构的示意图。参照图19,控制装置100具有两个应用分析部160-1、160-2。应用分析部160-1及160-2分别对NC程序及机器人程序进行处理。
应用分析部160-1、160-2对应用程序进行语法分析而生成的内部命令被逐次保存在共享存储器170中。控制指令运算部164将逐次保存在共享存储器170中的各个内部命令逐次读出,输出控制指令1及控制指令2。
控制指令运算部164能够判断所读出的内部命令的处理需要的时间。例如,各内部命令是对关于某时间范围的时间与控制指令的关系进行规定的函数,通过参照可输入至此种函数中的时间范围,便能够算出到达指定目标位置所需的时间。
控制指令运算部164能够逐次算出当前执行中的内部命令的处理所需的时间,即,从当前位置移动到指定目标位置为止所需的移动时间。控制指令运算部164将逐次算出的移动时间输出至逐次应用分析部160-1、160-2。
应用分析部160-1、160-2能够带有一定程度余量地对应用程序中所含的命令进行语法分析(即,预读(Look Ahead)),从而能够预知用于指示交叠动作的特殊命令的存在。
而且,在应用分析部160-1与应用分析部160-2之间,能够彼此交换与交叠动作相关的信息(典型的是交叠条件)。
应用分析部160-1、160-2在处理进行到用于指示交叠动作的特殊命令所处的行之前时,基于来自控制指令运算部164的移动时间,来判断能否使交叠条件成立。即,应用分析部160-1、160-2能够知晓必须在哪个时间点开始交叠动作。
应用分析部160-1、160-2在基于指定的交叠条件而事先判断为无法开始交叠动作时,向优先级变更部156发出请求(优先级变更要求),以使优先级变更部156提高包含应用分析部160-1、160-2的语法分析处理的低优先任务的优先级。其结果,对于优先级变更部156对应用程序的语法分析,将分配更多的处理器资源,由此便能够在指定的时机开始交叠动作。
即,能够在交叠动作的开始时刻前完成所需的应用程序的分析处理。
通过如上述那样动态地变更与应用程序的语法分析相关的任务的优先级,从而能够切实地执行交叠动作。
一般而言,用于控制CNC机床的应用程序及用于控制机器人的应用程序是以逐行地执行的解释器方式的语言而记述。此种解释器方式的程序中,由各命令所指定的移动距离等根据命令的种类及自变量等而变化,因此各行处理所需的时间根据每个命令而不同。
进而,在分别利用专用的控制器来控制CNC机床及机器人的情况下,受到各控制器的控制周期及控制器间的通信周期等的影响,难以实现细致的交叠动作。
与此相对,本实施方式的控制装置100中,能够对多个应用程序分别进行语法分析,并在每个控制周期输出控制指令,并且能够实现应用间的同步动作或者交叠动作。
通过此种同步动作或者交叠动作,能够使CNC机床与机器人联动的生产装置更有效率地运转,从而能够提高生产能力。
<K.附注>
如上所述的本实施方式包含以下所述的技术思想。
[结构1]
一种控制装置100,其具有一个或多个处理器,所述控制装置包括:
存储部108,保存在每次执行时整体受到扫描的第1程序30与逐次执行的第2程序32;
程序执行部152,在每个第1周期执行所述第1程序而输出第1控制指令;
分析部160,在比所述第1周期长的每个第2周期,对所述第2程序的至少一部分进行语法分析而逐次生成内部命令;
指令运算部164,依据由所述分析部所生成的内部命令,在每个所述第1周期输出第2控制指令;以及
调度程序154,基于预先设定的优先级来对一个或多个任务分配处理器资源,
在所述调度程序中,至少设定有第1任务、第2任务及第3任务,所述第1任务包含所述程序执行部及所述指令运算部的处理执行且具有第1优先级,所述第2任务包含所述分析部的处理执行且具有比所述第1优先级低的第2优先级,所述第3任务包含与所述第1任务及所述第2任务不同的处理内容的执行且具有第3优先级,
所述控制装置包括优先级变更部156,所述优先级变更部156对所述分析部中的处理状况进行监控,并且当所述分析部中的处理状况满足预定的条件时,根据所述条件来变更对所述第2任务设定的所述第2优先级。
[结构2]
根据结构1所述的控制装置,其中,所述优先级变更部基于表示与所述分析部的内部命令生成处理相关的负载的信息,来判断所述分析部中的处理状况。
[结构3]
根据结构2所述的控制装置,其中,所述表示负载的信息包含所述分析部对所述第2程序的语法分析所需的时间602、603、604。
[结构4]
根据结构2或结构3所述的控制装置,其中,所述表示负载的信息包含所述分析部对所述第2程序的语法分析所需的时间是否超过所述第2周期的长度的信息605。
[结构5]
根据结构2至结构4中任一项所述的控制装置,其中,所述分析部构成为,对所述第2程序进行语法分析而算出轨迹上的通过点,并基于算出的通过点来生成内部命令,
所述表示负载的信息包含所述分析部为了生成所述内部命令而事先算出的通过点的数量。
[结构6]
根据结构2至结构5中任一项所述的控制装置,其中,所述表示负载的信息包含由所述分析部所生成的内部命令中的、未经所述指令运算部处理的内部命令的数量。
[结构7]
根据结构2至结构6中任一项所述的控制装置,其中,所述表示负载的信息包含所述第2程序中记述的特殊命令。
[结构8]
根据结构1至结构7中任一项所述的控制装置,其中,所述优先级变更部在提高了对所述第2任务设定的所述第2优先级之后,当满足预定的其他条件时,使所述第2优先级复原。
[结构9]
根据结构1至结构8中任一项所述的控制装置,其中,所述分析部构成为,对多个所述第2程序分别执行语法分析而逐次生成各个内部命令,
所述优先级变更部在与所述多个第2程序各自的语法分析相关联的多个所述第2任务之间变更优先级。
<L.优点>
本实施方式的控制装置通过对处理器资源进行调度,从而除了包含序列命令及运动命令的用户程序以外,还能够并列地执行一个或多个应用程序。在此种并列执行中,能够在每个控制周期输出控制指令,因此在依据应用程序的控制中,也能够实现与依据用户程序的控制相同的控制精度。
本实施方式的控制装置中,对包含以解释器方式的语言记述的一个或多个命令的应用程序进行语法分析而生成内部命令,并且基于所生成的内部命令来运算控制指令。此种应用程序的语法分析处理及控制指令的运算处理必须彼此联动地执行。因此,本实施方式的控制装置根据与应用程序的语法分析相关的处理的负载状况等,来使对所述语法分析的任务设定的优先级动态地变化。由此,即使在对各命令的语法分析所需的时间不同的应用程序进行处理的情况下,也能够保障控制指令在每个控制周期的输出。
本实施方式的控制装置能够在多个应用程序间实现交叠动作,即,在依据其中一个应用程序的动作开始后,依据其他应用程序的动作稍后开始。为了实现此种交叠动作,控制装置根据需要来变更任务的优先级,以便能够事先完成所需的内部命令的生成。通过活用此种任务优先级的动态变更,且实现交叠动作,从而也能够使设备更有效率地动作,由此,也能够提高生产效率。
应认为,本次揭示的实施方式在所有方面仅为例示而非限制者。本发明的范围是由权利要求而非所述说明所示,且意图包含与权利要求均等的含义及范围内的所有变更。
Claims (6)
1.一种控制装置,其具有一个或多个处理器,所述控制装置的特征在于,包括:
存储部,保存在每次执行时整体受到扫描的第1程序与逐次执行的第2程序;
程序执行部,在每个第1周期执行所述第1程序而输出第1控制指令;
分析部,在比所述第1周期长的每个第2周期,对所述第2程序的至少一部分进行语法分析而逐次生成内部命令;
指令运算部,依据由所述分析部所生成的内部命令,在每个所述第1周期输出第2控制指令;以及
调度程序,基于预先设定的优先级来对一个或多个任务分配处理器资源,
在所述调度程序中,至少设定有第1任务、第2任务及第3任务,所述第1任务包含所述程序执行部及所述指令运算部的处理执行且具有第1优先级,所述第2任务包含所述分析部的处理执行且具有比所述第1优先级低的第2优先级,所述第3任务包含与所述第1任务及所述第2任务不同的处理内容的执行且具有第3优先级,
所述控制装置包括优先级变更部,所述优先级变更部对所述分析部中的处理状况进行监控,并且当所述分析部中的处理状况满足预定的条件时,根据所述条件来变更对所述第2任务设定的所述第2优先级,其中
所述优先级变更部基于表示与所述分析部的内部命令生成处理相关的负载的信息,来判断所述分析部中的处理状况,且所述表示负载的信息包含所述分析部对所述第2程序的语法分析所需的时间是否超过所述第2周期的长度的信息。
2.根据权利要求1所述的控制装置,其特征在于,
所述分析部构成为,对所述第2程序进行语法分析而算出轨迹上的通过点,并基于算出的所述通过点来生成所述内部命令,
所述表示负载的信息包含所述分析部为了生成所述内部命令而事先算出的所述通过点的数量。
3.根据权利要求1所述的控制装置,其特征在于,
所述表示负载的信息包含由所述分析部所生成的所述内部命令中的、未经所述指令运算部处理的内部命令的数量。
4.根据权利要求1所述的控制装置,其特征在于,
所述表示负载的信息包含所述第2程序中记述的特殊命令。
5.根据权利要求1所述的控制装置,其特征在于,
所述优先级变更部在提高了对所述第2任务设定的所述第2优先级之后,当满足预定的其他条件时,使所述第2优先级复原。
6.根据权利要求1所述的控制装置,其特征在于,
所述分析部构成为,对多个所述第2程序分别执行语法分析而逐次生成各个内部命令,
所述优先级变更部在与所述多个第2程序各自的语法分析相关联的多个所述第2任务之间变更优先级。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017-185146 | 2017-09-26 | ||
JP2017185146A JP6806019B2 (ja) | 2017-09-26 | 2017-09-26 | 制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109557890A CN109557890A (zh) | 2019-04-02 |
CN109557890B true CN109557890B (zh) | 2021-06-18 |
Family
ID=62684597
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810595167.5A Active CN109557890B (zh) | 2017-09-26 | 2018-06-11 | 控制装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10761884B2 (zh) |
EP (1) | EP3477405B1 (zh) |
JP (1) | JP6806019B2 (zh) |
CN (1) | CN109557890B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10756990B1 (en) | 2017-09-22 | 2020-08-25 | Equinix, Inc. | Monitoring and performance improvement of enterprise applications using correlated data associated with a plurality of service layers |
US10558541B1 (en) * | 2017-09-22 | 2020-02-11 | Equinix, Inc. | Agent-based monitoring of network resources |
JP6493506B1 (ja) * | 2017-12-15 | 2019-04-03 | オムロン株式会社 | 産業用制御システムとその支援装置、制御支援方法およびプログラム |
JP7087585B2 (ja) * | 2018-03-30 | 2022-06-21 | 日本電気株式会社 | 情報処理装置、制御方法、及びプログラム |
CN110729006B (zh) * | 2018-07-16 | 2022-07-05 | 超威半导体(上海)有限公司 | 存储器控制器中的刷新方案 |
JP6950665B2 (ja) * | 2018-11-02 | 2021-10-13 | 横河電機株式会社 | エンジニアリング装置、エンジニアリング装置の制御方法及びプログラム |
JP7236939B2 (ja) * | 2019-06-03 | 2023-03-10 | 日立Astemo株式会社 | 制御装置および制御方法 |
JP7230703B2 (ja) * | 2019-06-20 | 2023-03-01 | オムロン株式会社 | 制御装置 |
JP7277292B2 (ja) * | 2019-07-08 | 2023-05-18 | ファナック株式会社 | Plc装置 |
JP7364428B2 (ja) * | 2019-10-30 | 2023-10-18 | ファナック株式会社 | プログラマブルコントローラ |
JP6761158B1 (ja) * | 2019-12-16 | 2020-09-23 | 株式会社安川電機 | プログラム作成装置、プログラム作成方法、及びプログラム |
CN113126567A (zh) * | 2019-12-30 | 2021-07-16 | 苏州谷夫道自动化科技有限公司 | 一种数控系统及其印刷线路板 |
JP2021142625A (ja) * | 2020-03-13 | 2021-09-24 | オムロン株式会社 | ロボット制御システムおよび制御方法 |
EP4258645A4 (en) | 2020-12-04 | 2024-08-28 | Nippon Telegraph & Telephone | CONTROL DEVICE, CONTROL METHOD AND PROGRAM |
JP2023103908A (ja) | 2022-01-14 | 2023-07-27 | オムロン株式会社 | 制御システム及びプログラム |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001034320A (ja) * | 1999-07-26 | 2001-02-09 | Mitsubishi Electric Corp | 数値制御装置 |
JP2012048471A (ja) * | 2010-08-26 | 2012-03-08 | Toshiba Mach Co Ltd | 数値制御装置およびマクロプログラム実行方法 |
CN103403633A (zh) * | 2011-03-15 | 2013-11-20 | 欧姆龙株式会社 | 可编程控制器的中央处理器单元、可编程控制器用系统程序以及存储了可编程控制器用系统程序的记录介质 |
JP2017068525A (ja) * | 2015-09-30 | 2017-04-06 | ブラザー工業株式会社 | 数値制御装置と数値制御装置の制御方法 |
CN107132818A (zh) * | 2016-02-29 | 2017-09-05 | 发那科株式会社 | 机床的数值控制装置 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3727637B2 (ja) * | 1994-12-26 | 2005-12-14 | 三菱電機株式会社 | 制御ソフトウェア実行システムの制御方法 |
JP3386777B2 (ja) | 1999-05-11 | 2003-03-17 | ファナック株式会社 | 数値制御システム |
US6594541B1 (en) * | 2000-01-10 | 2003-07-15 | Siemens Aktiengesellschaft | Universal motion control |
WO2001082075A2 (en) * | 2000-04-25 | 2001-11-01 | Icplanet Acquisition Corporation | System and method for scheduling execution of cross-platform computer processes |
US6408277B1 (en) * | 2000-06-21 | 2002-06-18 | Banter Limited | System and method for automatic task prioritization |
KR20030000081A (ko) * | 2001-06-22 | 2003-01-06 | 주식회사 미라콤아이앤씨 | 엠이에스에서 로트의 우선 순위 제어 시스템 및 그 방법 |
US20030037091A1 (en) * | 2001-08-09 | 2003-02-20 | Kozo Nishimura | Task scheduling device |
US8117530B2 (en) * | 2007-02-19 | 2012-02-14 | International Business Machines Corporation | Extensible markup language parsing using multiple XML parsers |
US20080244592A1 (en) * | 2007-03-27 | 2008-10-02 | Kabushiki Kaisha Toshiba | Multitask processing device and method |
JP5210070B2 (ja) * | 2008-07-25 | 2013-06-12 | オークマ株式会社 | 数値制御工作機械 |
US8769543B2 (en) * | 2010-09-27 | 2014-07-01 | Throughputer, Inc. | System and method for maximizing data processing throughput via application load adaptive scheduling and context switching |
US8719415B1 (en) * | 2010-06-28 | 2014-05-06 | Amazon Technologies, Inc. | Use of temporarily available computing nodes for dynamic scaling of a cluster |
US8924981B1 (en) * | 2010-11-12 | 2014-12-30 | Teradat US, Inc. | Calculating priority indicators for requests in a queue |
JP5872561B2 (ja) * | 2011-08-26 | 2016-03-01 | 株式会社日立製作所 | 予測型逐次計算装置 |
JP6626240B2 (ja) * | 2014-03-13 | 2019-12-25 | オムロン株式会社 | コントローラ |
JP6151669B2 (ja) * | 2014-06-27 | 2017-06-21 | ファナック株式会社 | 加工プログラム指令内容に応じてcpu負荷を分散可能な数値制御装置 |
JP6465620B2 (ja) | 2014-10-31 | 2019-02-06 | ヤマハ発動機株式会社 | 制御システムおよび制御方法 |
DE102015105436A1 (de) * | 2015-04-09 | 2016-10-13 | Beckhoff Automation Gmbh | Übersetzungsmodul, Verarbeitungsmodul und Steuerungssystem |
US10157081B2 (en) * | 2015-11-13 | 2018-12-18 | Telefonaktiebolaget Lm Ericsson (Publ) | Trainer of many core systems for adaptive resource control |
JP6333796B2 (ja) * | 2015-11-25 | 2018-05-30 | ファナック株式会社 | 複数のcpuコアで最適な負荷配分を行う数値制御装置 |
US10671444B2 (en) * | 2016-12-07 | 2020-06-02 | Tata Consultancy Services Limited | Systems and methods for scheduling tasks and managing computing resource allocation for closed loop control systems |
WO2019061466A1 (zh) * | 2017-09-30 | 2019-04-04 | 深圳市大疆创新科技有限公司 | 一种飞行控制方法、遥控装置、遥控系统 |
-
2017
- 2017-09-26 JP JP2017185146A patent/JP6806019B2/ja active Active
-
2018
- 2018-06-08 EP EP18176808.6A patent/EP3477405B1/en active Active
- 2018-06-11 US US16/004,432 patent/US10761884B2/en active Active
- 2018-06-11 CN CN201810595167.5A patent/CN109557890B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001034320A (ja) * | 1999-07-26 | 2001-02-09 | Mitsubishi Electric Corp | 数値制御装置 |
JP2012048471A (ja) * | 2010-08-26 | 2012-03-08 | Toshiba Mach Co Ltd | 数値制御装置およびマクロプログラム実行方法 |
CN103403633A (zh) * | 2011-03-15 | 2013-11-20 | 欧姆龙株式会社 | 可编程控制器的中央处理器单元、可编程控制器用系统程序以及存储了可编程控制器用系统程序的记录介质 |
JP2017068525A (ja) * | 2015-09-30 | 2017-04-06 | ブラザー工業株式会社 | 数値制御装置と数値制御装置の制御方法 |
CN107132818A (zh) * | 2016-02-29 | 2017-09-05 | 发那科株式会社 | 机床的数值控制装置 |
Also Published As
Publication number | Publication date |
---|---|
EP3477405A3 (en) | 2019-05-15 |
EP3477405B1 (en) | 2023-10-18 |
CN109557890A (zh) | 2019-04-02 |
US10761884B2 (en) | 2020-09-01 |
JP6806019B2 (ja) | 2020-12-23 |
US20190095247A1 (en) | 2019-03-28 |
JP2019061466A (ja) | 2019-04-18 |
EP3477405A2 (en) | 2019-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109557890B (zh) | 控制装置 | |
CN109582397B (zh) | 控制系统以及控制装置 | |
CN109388107B (zh) | 控制装置 | |
CN109507980B (zh) | 控制装置及控制方法 | |
CN109581976B (zh) | 控制装置 | |
JP6950385B2 (ja) | 制御装置および制御方法 | |
CN109542046B (zh) | 控制装置、控制方法及控制系统 | |
US20190095246A1 (en) | Support device and non-transitory storage medium | |
JP7310465B2 (ja) | 同期制御装置、同期制御システム、同期制御方法、及びシミュレーション装置 | |
US11855907B2 (en) | Robot control system and control method | |
EP3457239B1 (en) | Control device and control method | |
JP7020198B2 (ja) | 制御装置および制御システム | |
JP2022048289A (ja) | 制御装置および制御システム | |
JP2021114015A (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 |