CN109582397A - 控制系统以及控制装置 - Google Patents
控制系统以及控制装置 Download PDFInfo
- Publication number
- CN109582397A CN109582397A CN201810595829.9A CN201810595829A CN109582397A CN 109582397 A CN109582397 A CN 109582397A CN 201810595829 A CN201810595829 A CN 201810595829A CN 109582397 A CN109582397 A CN 109582397A
- Authority
- CN
- China
- Prior art keywords
- control
- control device
- opportunity
- control instruction
- instruction
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
-
- 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/052—Linking several PLC's
-
- 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], computer integrated manufacturing [CIM]
- G05B19/41815—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], computer integrated manufacturing [CIM] characterised by the cooperation between machine tools, manipulators and conveyor or other workpiece supply system, workcell
- G05B19/41825—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], computer integrated manufacturing [CIM] characterised by the cooperation between machine tools, manipulators and conveyor or other workpiece supply system, workcell machine tools and manipulators only, machining centre
-
- 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
- G05B15/00—Systems controlled by a computer
- G05B15/02—Systems controlled by a computer electric
-
- 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
- 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/0426—Programming the control sequence
-
- 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/0428—Safety, monitoring
-
- 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/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], computer integrated manufacturing [CIM]
- G05B19/41835—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], computer integrated manufacturing [CIM] characterised by programme execution
-
- 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], 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], computer integrated manufacturing [CIM] characterised by job scheduling, process planning, material flow
- G05B19/4187—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], computer integrated manufacturing [CIM] characterised by job scheduling, process planning, material flow by tool management
-
- 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/1211—Exchange control, I-O data to other plc, using separate synchronizing
-
- 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/15014—Configure priorities of different tasks
-
- 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/25—Pc structure of the system
- G05B2219/25266—Microcontroller combined with plc
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- General Engineering & Computer Science (AREA)
- Manufacturing & Machinery (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Programmable Controllers (AREA)
- Numerical Control (AREA)
Abstract
本发明提供一种即使是将控制装置与其他控制装置组合而成的控制系统,也能够使控制应用彼此联动的控制装置的结构。第1控制装置包括:第1程序执行部,在每个第1周期输出第1控制指令;解释部,在每个第2周期对第1应用程序的至少一部分进行解释而逐次生成内部命令;指令运算部,根据由解释部所生成的内部命令,在每个第1周期输出第2控制指令;以及调停部,对解释部的解释处理进行管理。调停部响应来自所述第2控制装置的时机通知,对依据由所述解释部所生成的内部命令的第2控制指令的输出时机进行调整。
Description
技术领域
本发明涉及一种用于对控制对象进行控制的控制系统以及构成此控制系统的控制装置。
背景技术
在生产现场,各种工厂自动化(Factory Automation,FA)技术已广泛普及。此种FA系统不仅包含可编程逻辑控制器(Programmable Logic Controller,PLC)等控制装置,还包含计算机数字控制(Computer Numerical Control,CNC)及机器人(robot)等可进行高度动作的各种装置等。此种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程序、机器人程序等),也可能产生下述事态,即,将一部分专用装置中的处理导入控制装置,并且剩余的专用装置保持原样。本发明的一个目的在于提供一种结构,即使是此种将控制装置与其他控制装置组合而成的控制系统,也能够使CNC机床或机器人联动。
[解决问题的技术手段]
本发明的一例的控制系统包括:第1控制装置;第2控制装置,与第1控制装置进行网络连接;以及一个或多个执行器(actuator),依照来自第1控制装置的控制指令进行动作。第1控制装置及第2控制装置具有彼此经时刻同步的计时器。第1控制装置包括:第1程序执行部,在每个第1周期执行序列程序而输出第1控制指令;解释部,在与第1周期相同或比第1周期长的每个第2周期,对第1应用程序的至少一部分进行解释而逐次生成内部命令;指令运算部,根据由解释部生成的内部命令,在每个第1周期,输出针对一个或多个执行器中的至少一部分的第2控制指令;以及调停部,对解释部的解释处理进行管理。第2控制装置包括:第2程序执行部,对第2应用程序进行逐次解释而输出针对作为对象的可动机械的第3控制指令;以及时机管理部,将输出第3控制指令的时机事先通知给第1控制装置。调停部响应来自第2控制装置的时机通知,而对依据由解释部生成的内部命令的第2控制指令的输出时机进行调整。
根据本发明,第1控制装置基于从第2控制装置通知的时机,来调整第2控制指令的输出时机,因此能够使由第1控制装置所控制的控制应用、与由第2控制装置所控制的控制应用联动动作。
所述发明中,调停部基于从第2控制装置通知的时机、与第1控制装置的计时器所示的值,来决定第2控制指令的输出时机。
根据本发明,使用彼此经时刻同步的计时器所示的值,因此能够高精度地实现联动动作。
所述发明中,从第2控制装置通知的时机是基于由第2控制装置的计时器所管理的值。
根据本发明,通过使用计时器所示的值来规定时机,从而能够实现精度更高的时机调整。
所述发明中,调停部在第2控制指令的输出时机的到来前,指示解释部生成第2控制指令。
根据本发明,能够与从第2控制装置通知的时机同时输出第2控制指令,进而,根据情况,也能够在从第2控制装置通知的时机之前输出第2控制指令。
所述发明中,调停部在判断为第2控制指令的生成赶不上第2控制指令的输出时机时,提高与第2控制指令的生成相关的任务的优先级。
根据本发明,至少能够保证与从第2控制装置通知的时机同时输出第2控制指令。
所述发明中,调停部对输出时机进行调整,以与从第2控制装置通知的时机同时开始第2控制指令的输出。
根据本发明,能够使由第1控制装置所控制的控制应用、与由第2控制装置所控制的控制应用同步动作。
所述发明中,调停部对输出时机进行调整,以在从自第2控制装置通知的时机偏移预定时间的时机,开始第2控制指令的输出。
根据本发明,能够带有一定时间偏移地,使由第1控制装置所控制的控制应用与由第2控制装置所控制的控制应用联动动作。
依据本发明的另一例,提供一种与控制应用进行网络连接的控制装置。控制装置包括:第1程序执行部,在每个第1周期执行序列程序而输出第1控制指令;解释部,在与第1周期相同或比第1周期长的每个第2周期,对应用程序的至少一部分进行解释而逐次生成内部命令;指令运算部,根据由解释部生成的内部命令,在每个第1周期,输出针对一个或多个执行器中的至少一部分的第2控制指令;以及调停部,基于来自控制应用的输出控制指令的时机通知,来对解释部的解释处理进行管理。调停部响应来自控制应用的时机通知,对依据由解释部所生成的内部命令的第2控制指令的输出时机进行调整。
根据本发明,基于从外部装置通知的时机来调整第2控制指令的输出时机,因此能够使由控制装置所控制的控制应用与由所述外部装置所控制的控制应用联动动作。
[发明的效果]
根据本发明,能够提供一种即使是将控制装置与其他控制装置组合而成的控制系统,也能够使CNC机床或机器人联动的结构。
附图说明
图1是表示本实施方式的控制系统的整体结构例的示意图。
图2是用于说明本实施方式的控制系统中的处理概要的时间图。
图3是表示本实施方式的控制装置的硬件(hardware)结构例的框图。
图4是表示本实施方式的控制装置的功能结构例的框图。
图5A及图5B是用于说明本实施方式的控制装置中的内部命令的生成处理的示意图。
图6是表示本实施方式的控制装置中的任务执行调度(schedule)的一例的时间图。
图7是表示本实施方式的控制系统中所含的CNC机床的硬件结构例的框图。
图8是表示本实施方式的控制系统中所含的CNC机床的功能结构例的框图。
图9是与本实施方式的控制系统中的利用动作预定时刻的通知的联动动作相关的序列图。
图10是用于实现本实施方式的控制系统中的利用动作预定时刻的通知的联动动作的程序例。
图11A及图11B是用于说明本实施方式的控制装置中的优先级变更的效果的示意图。
图12是表示本实施方式的控制装置中的处理流程的一例的流程图。
图13是表示本实施方式的控制系统中的利用动作预定时刻的通知的联动动作的一例的时间图。
[符号的说明]
1:控制系统
2:现场网络
6:上位网络
10:第1任务
12:序列命令执行处理
14、16:输出处理
18:第2任务
20:第3任务
22:第4任务
24:第5任务
30:序列程序
32、532:应用程序
34:系统程序
38:配方信息
40:内部命令
100:控制装置
102、552:处理器
104:芯片组
106、554:主存储器
108、556:存贮器
110:上位网络控制器
112:USB控制器
114:存储卡接口
116:存储卡
120:内部总线控制器
122:I/O单元
130、562:现场网络控制器
150:处理引擎
152:序列程序执行部
154:调度程序
160:应用程序解释部
162:应用调停部
163:处理时机管理功能
164:控制指令运算部
170:共享存储器
172:共享存储器控制部
174:显示功能部
176:现场网络接口
178:主机处理部
180、582:内部计数器
182:上位网络接口
184、588:系统服务处理部
200:支持装置
300:服务器装置
302、304:功能块
400:显示装置
500:现场机器
510:远程I/O装置
520、524:机器人
522、526:机器人控制器
530:CNC机床
540:伺服驱动器
542:伺服马达
544:输送器
546:工作台
550:主控制器
560:ROM
564:总线控制器
566:输入部
568:输出部
570、570-1、570-2:执行器
580:从机处理部
584:应用程序执行部
586:输入/输出数据处理部
590:处理时机管理部
S100~S108:步骤
SQ2~SQ22:序列
T1:控制周期
T2:应用执行周期
TMR:计时器
W:工件
具体实施方式
参照附图来详细说明本发明的实施方式。另外,对于附图中的相同或相当的部分,标注相同的标号,并不再重复其说明。
<A.适用例>
首先,参照图1及图2来说明适用本发明的场景的一例。图1是用于说明本实施方式的控制装置100中的处理概要的时间图。
图1是表示本实施方式的控制系统1的整体结构例的示意图。图1中表示以本实施方式的控制装置100为中心的控制系统1。
参照图1,控制装置100相当于对各种设备或装置等控制对象进行控制的工业用控制器。控制装置100是执行后述的控制运算的一种计算机(computer),典型的是,也可作为PLC(可编程逻辑控制器)而具现化。控制装置100也可经由现场网络(field network)2而与各种现场机器500连接。控制装置100经由现场网络2等而与一个或多个现场机器500之间交换数据。“现场网络”一般也称作“现场总线(field bus)”,但为了简化说明,在以下的说明中,总称为“现场网络”。即,本说明书的“现场网络”的概念除了狭义的“现场网络”以外,还可包含“现场总线”。
现场网络2优选采用进行保证数据到达时间的、固定周期通信的总线或网络。作为进行此种固定周期通信的总线或网络,已知有EtherCAT(注册商标)、EtherNet/IP(注册商标)、DeviceNet(注册商标)、CompoNet(注册商标)等。
在现场网络2上,能够连接任意的现场机器500。现场机器500包含对制造装置或生产线(line)等(以下也总称为“现场”)给予任何物理作用的执行器、及与现场之间交换信息的输入/输出装置等。
当采用EtherCAT(注册商标)作为现场网络2时,连接于现场网络2的节点(node)中的至少一个作为“主机(master)”发挥功能,其他节点作为“从机(slave)”发挥功能。作为“主机”发挥功能的节点对现场网络2中的帧(frame)的转发时机等进行管理。
图1所示的示例中,控制装置100作为“主机”发挥功能,其他现场机器500作为“从机”发挥功能。在采用主机-从机型结构的现场网络2中,具有在节点间彼此经时刻同步的计时器TMR,基于各节点所具有的计时器TMR所示的时刻(在实施上为计数器(counter)值),来决定帧的转发时机等。
图1所示的结构中,连接于现场网络2的现场机器500包含远程(remote)输入/输出(Input/Output,I/O)装置510、机器人控制器522、机器人控制器526、CNC机床530及伺服驱动器(servo driver)540。
CNC机床530如后所述,自身具有生成控制指令的机构,基于经由现场网络2接收的数据进行动作。即,CNC机床530内置有一种控制装置,依照从所述控制装置输出的控制指令来执行处理。
另一方面,机器人控制器522、526及伺服驱动器540相当于依照来自控制装置100的控制指令进行动作的一个或多个执行器。针对伺服驱动器540的控制指令是依据在控制装置100中循环执行的序列程序中所含的运动命令而生成。另一方面,针对机器人控制器522、526的控制指令是通过在控制装置100中逐次执行的应用程序及循环执行的控制指令运算处理而实现。
本实施方式的控制装置100具有在每个控制周期(第1周期)执行序列程序而输出控制指令的程序执行部(作为一例,为序列程序执行部152(详细将后述))。
本说明书中,序列程序的概念包含下述程序,即,每次执行时整体受到扫描(scan),且每次执行时能够输出控制指令。序列程序包含下述程序,此程序包含依照由国际电气标准会议(International Electrotechnical Commission,IEC)所规定的国际规格IEC61131-3而记述的一个或多个命令。在序列程序中,可包含序列命令和/或运动命令。另外,作为序列程序,并不限于依照国际规格IEC61131-3而记述的命令,也可包含PLC(可编程逻辑控制器)的制造厂家(marker)或销售商(vender)等独自规定的命令。这样,序列程序适合于要求即时性及高速性的控制。
基本上,序列程序是由用户根据控制对象或应用而任意制作。
本说明书中,“序列命令”这一术语,包含通过运算输入值、输出值、内部值等的一个或多个逻辑电路所记述的一个或多个命令。在一次控制周期中,“序列命令”是从先头执行至最终为止,且在下个控制周期中,“序列命令”再次从先头执行至最终为止。
本说明书中,“运动命令”这一术语,包含用于对伺服马达(servo motor)等执行器运算位置、速度、加速度、急动度、角度、角速度、角加速度、角急动度等数值来作为控制指令的一个或多个命令。“运动命令”也是在一次控制周期中,从通过功能块(function block)或数值运算式等所记述的运动命令的程序(运动程序)的先头执行至最终为止。
在每个控制周期通过执行用户程序而输出的控制指令典型的是包含:依据序列命令而确定的数字(digital)输出的开/关(ON/OFF)、以及依据运动命令而运算的模拟(analog)输出。
而且,本实施方式的控制装置100具有解释部(作为一例,为应用程序解释部160(详细将后述)),所述解释部在与控制周期(第1周期)相同或比控制周期长的每个应用执行周期(第2周期),对一个或多个应用程序的至少一部分进行解释而逐次生成内部命令。
本说明书中,“应用程序”包含逐次执行的任意程序。典型的是,“应用程序”包含用能够以逐行地执行的解释器(interpreter)方式执行的任意语言而记述的程序。以下的说明中,作为此种“应用程序”的一例,有对计算机数字控制(Computer Numerical Control,CNC)中的行为进行记述的程序(以下也称作“NC程序”)。而且,作为“应用程序”的另一例,有用于控制机器人的程序。
NC程序是依据预定的语言而记述。作为一例,NC程序多使用“G语言”来记述,而用于控制机器人的程序多使用专用的机器人语言来记述。
以下的说明中,例如也有时将使用计算机数字控制(Computer NumericalControl,CNC)和/或机器人的、进行特定加工或动作的装置或机械以及它们的控制包括在内,而称作“控制应用”。
本说明书中,“内部命令”包含用于实现与应用程序中记述的命令相应的处理的、与应用程序为不同表达的命令。“内部命令”只要能够在每个控制周期算出控制指令,则为任何命令皆可。如上所述的应用程序由于是逐次执行,因此原本就不适合于在每个固定周期输出控制指令的处理。因此,生成适合于在每个控制周期输出控制指令的内部命令。典型的是,“内部命令”也可为将时间作为输入变量的一个或多个函数、或者将时间作为自变量的一个或多个命令。
进而,本实施方式的控制装置100具有指令运算部(作为一例,为控制指令运算部164(详细将后述)),所述指令运算部根据由解释部所生成的内部命令,在每个控制周期(第1周期),输出针对机器人控制器522、526及伺服驱动器540(一个或多个执行器)中的至少一部分的控制指令。通过采用此种指令运算部,能够以与通过序列程序的执行而算出的控制指令的输出周期相同的周期,来输出依据应用程序的控制指令。
控制装置100及所述现场机器500具有彼此经时刻同步的计时器TMR。因此,连接于现场网络2的节点能够彼此共享动作时机等。例如,通过配合CNC机床530的动作来调整从控制装置100输出控制指令的时机,从而能够容易地实现CNC机床530与机器人520、524的联动动作、和/或CNC机床530与输送器544的联动动作等。
本实施方式的控制系统1中,提供一种结构,能够容易地实现CNC机床530之类的通过由内置的控制装置执行的应用程序来控制的可动机械、与通过来自控制装置100的控制指令来控制的可动机械的联动。
图2是用于说明本实施方式的控制系统1中的处理概要的时间图。图2中表示使CNC机床530与机器人520联动地动作时的处理例。
用于使机器人520动作的控制指令是依据在控制装置100中执行的应用程序32而生成。即,图2中,作为应用程序32的一例,表示了机器人程序。
参照图2,设想以任意的执行开始时机为基准来开始CNC机床530及机器人520的动作的情况。当实现此种联动动作时,CNC机床530在执行开始时机的到来前,将开始动作的预定时刻(动作预定时刻)通知给控制装置100。所述动作预定时刻典型的是使用经时刻同步的计时器TMR所示的时刻(计数器值)来指定。
控制装置100在收到动作预定时刻的通知时,对应用程序中的作为对象的命令进行解释而生成内部命令。并且,当预先通知的执行开始时机到来时,CNC机床530开始预定的动作,控制装置100开始输出依据预先生成的内部命令的控制指令。通过将所述控制指令提供给机器人控制器522,从而机器人520能够以与CNC机床530的执行开始时机相同的时机开始动作。
这样,CNC机床530的控制装置具有:程序执行部(作为一例,为应用程序执行部584(详细将后述)),对应用程序进行逐次解释而输出针对作为对象的可动机械的控制指令;以及时机管理部(作为一例,为处理时机管理部590(详细将后述)),将输出控制指令的执行开始时机事先通知给控制装置100。控制装置100的调停部(作为一例,为应用调停部162(详细将后述))响应来自CNC机床530的控制装置的执行开始时机的通知,对依据由解释部所生成的内部命令的控制指令的输出时期进行调整。
通过采用图2所示的控制装置100与CNC机床530之间的交换,能够使由控制装置100所控制的机器人520、与由内置的控制装置所控制的CNC机床530联动动作。即,根据本实施方式的控制系统1,不仅能在根据来自控制装置100的控制指令进行动作的执行器之间,而且能在通过与控制装置100独立的控制装置进行动作的控制应用之间,实现联动动作。
为了便于说明,图2中表示了CNC机床530及机器人520以执行开始时机作为基准而同时开始动作的示例,但并不限于此,也可以执行开始时机作为基准而一者或两者具备一些偏移时间。例如,也可为,其中一个装置从执行开始时机开始动作,另一个装置从执行开始时机延迟某偏移时间而开始动作。通过设定此种偏移时间,能够实现对装置间给予一定的延迟时间的联动动作。
图1中,表示了依据来自控制装置100的控制指令进行动作的一个或多个执行器均连接于现场网络2的示例,但并不限于此,只要能够接收来自控制装置100的控制指令,则为任何连接形态皆可。例如,控制指令也可从连接于现场网络2的远程I/O装置510经由信号线来提供。本实施方式的控制系统1中,只要从控制装置100输出的控制指令被提供给作为控制对象的现场机器500的时机、与对成为联动动作对象的装置提供对应的控制指令的时机实质上相同即可,无须连各个控制指令的传输形态都相同。
为了便于说明,图2中例示了从CNC机床530对控制装置100通知执行开始时机的情况,但并不限于此,也可从控制装置100对CNC机床530通知执行开始时机。进而,也可从某些执行主体对控制装置100及CNC机床530通知共同的执行开始时机。在任一情况下,当执行开始时机到来时,均事先执行所需处理,以便能够输出控制指令。
以下,作为本发明的更具体的应用例,对本实施方式的控制系统1的更详细的结构及处理进行说明。
<B.控制系统的整体结构例>
首先,更详细地说明图1所示的控制系统1的整体结构例。
图1所示的结构例中,伺服驱动器540根据来自控制装置100的控制指令(例如位置指令或速度指令等)来驱动伺服马达542。伺服马达542驱动输送器544,将工件W搬送至配置于CNC机床530之前的工作台(work table)546上。
CNC机床530是通过指定位置或速度等的程序来控制加工中心(machiningcenter)等,由此来对任意对象物进行加工。CNC机床530典型的是包含车床加工、铣削加工、放电加工等加工装置。
机器人控制器522驱动机器人520,机器人控制器526驱动机器人524。机器人控制器522、526根据来自控制装置100的控制指令(位置指令或速度指令等),来进行轨迹计算及各轴的角度计算等,并且根据计算结果来驱动构成机器人520、524的伺服马达等。
机器人520、524将工作台546上的工件W配置于CNC机床530内,或者取出CNC机床530中的已处理工件W并配置于工作台546上。
远程I/O装置510典型的是包含经由现场网络2进行通信的通信耦合器(coupler)、及用于进行输入数据的获取及输出数据的输出的输入/输出部(以下也称作“I/O单元”)。在远程I/O装置510上,连接输入中继器(relay)或各种传感器(例如模拟传感器、温度传感器、振动传感器等)等收集输入数据的装置、以及输出中继器、接触器(contactor)、伺服驱动器及其他任意执行器等对现场给予某些作用的装置。
作为现场机器500,并不限定于这些,能够采用收集输入数据的任意设备(例如视觉传感器等)、以及给予依据输出数据的某些作用的任意设备(例如逆变器(inverter)装置等)等。
经由现场网络2而在控制装置100与现场机器500之间交换数据,这些交换的数据将以数百微秒级(order)~数十毫秒级的极短周期受到更新。此种数据交换包含:将在现场机器500中收集或生成的数据(以下也称作“输入数据”)发送至控制装置100的处理、及从控制装置100发送针对现场机器500的控制指令等数据(以下也称作“输出数据”)的处理。此种交换数据的更新处理相当于所述的“输入/输出刷新(refresh)处理”。
控制装置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(参照图1)等之间的数据交换进行控制。USB控制器112对经由USB连接的、与支持装置200之间的数据交换进行控制。
存储卡接口114是可装卸存储卡116地构成,能够对存储卡116写入数据,并从存储卡116读出各种数据(序列程序30、应用程序32或跟踪数据(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上执行所需的应用。
在图3所示的控制系统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(第1控制装置)包含PLC处理引擎(engine)150、应用程序解释部160、应用调停部162、控制指令运算部164、共享存储器170、共享存储器控制部172、显示功能部174、现场网络接口176、主机处理部178、内部计数器180、上位网络接口182及系统服务处理部184。
PLC处理引擎150对序列程序30的执行及控制装置100整体的处理进行管理。更具体而言,PLC处理引擎150包含序列程序执行部152及调度程序154。
序列程序执行部152在每个控制周期T1执行(扫描)序列程序30而输出控制指令。
调度程序154是对控制装置100中执行的处理的顺序进行调停,具体而言,基于预先设定的优先级来对一个或多个任务分配处理器资源。
应用程序解释部160在与控制周期T1相同或比控制周期T1长的每个应用执行周期T2,对应用程序32的至少一部分进行解释而逐次生成内部命令40。对于应用程序解释部160,也有时会提供不同种类的应用程序32。应用程序解释部160既可执行预先保存的应用程序32,也可执行从服务器装置300适当发送的应用程序32。
控制指令运算部164根据序列程序30中所含的运动命令,在每个控制周期T1运算控制指令。而且,控制指令运算部164根据由应用程序解释部160逐次生成的内部命令40,在每个控制周期T1运算控制指令。这些控制指令是面向机器人控制器522、526及伺服驱动器540的至少一部分。
序列程序执行部152及控制指令运算部164在每个控制周期T1执行处理(高优先任务)。另一方面,应用程序解释部160对应用程序32的处理是在作为控制周期T1的整数倍的每个应用执行周期T2(第2周期)执行(低优先任务)。
应用调停部162对应用程序解释部160的解释处理进行管理。应用调停部162响应来自外部的动作预定时刻(执行开始时机)的通知,对依据由应用程序解释部160中的应用程序32所生成的内部命令的、控制指令的输出时机进行调整。
更具体而言,应用调停部162具有处理时机管理功能163。处理时机管理功能163对输出时机进行调整,以与从外部通知的动作预定时刻(执行开始时机)同时开始依据应用程序32的控制指令的输出。处理时机管理功能163基于主机处理部178的内部计数器180所示的计数器值等,来决定输出时机。
此时,应用调停部162对应用程序解释部160中的解释处理的开始时机或优先级等进行管理变更。
共享存储器170保持在PLC处理引擎150、应用程序解释部160及控制指令运算部164之间共享的数据。共享数据也可作为结构体变量而保存。例如,由应用程序解释部160逐次生成的内部命令40被逐次写入至共享存储器170的结构体变量。
共享存储器控制部172进行对共享存储器170的数据读写的排他控制、及与来自外部的要求相应的对共享存储器170的存取等。例如,共享存储器控制部172将共享存储器170上的数据提供给现场网络接口176,由此,发送至经由现场网络2而连接的任意的现场机器500。
显示功能部174将保存在共享存储器170中的数据及应用程序解释部160的处理结果等输出给用户等。
现场网络接口176对与经由现场网络2而连接的现场机器500之间的数据交换进行中介。
主机处理部178进行现场网络2中的帧的转发时机的管理等。主机处理部178具有内部计数器180。内部计数器180也可被用作在连接于现场网络2的节点间共同参照的主时钟。即,基于内部计数器180的计数器值,使连接于现场网络2的各节点所具有的计数器的值一致。
上位网络接口182对与经由上位网络6而连接的装置之间的数据交换进行中介。
系统服务处理部184负责经由上位网络接口182的、向一个或多个服务器装置300等的数据传输。系统服务处理部184典型的是在PLC处理引擎150及应用程序解释部160均未执行任务处理的期间,与外部之间交换数据。
<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、及依据序列程序30中所含的运动命令的控制指令的输出处理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基于对各任务设定的优先级,来进行针对各任务的处理器资源的分配。
为了便于说明,例示了应用执行周期T2为控制周期T1的两倍的情况,但并不限于此,应用执行周期T2能够根据作为对象的应用程序的种类而设定为控制周期T1的整数倍,也能够设定为与控制周期T1相同的长度。
<G.CNC机床的硬件结构例>
接下来,对本实施方式的控制系统1中所含的CNC机床530的硬件结构例进行说明。图7是表示本实施方式的控制系统1中所含的CNC机床530的硬件结构例的框图。
参照图7,CNC机床530是控制应用的一例,包含被给予控制指令的可动机械。更具体而言,CNC机床530包含主控制器550、现场网络控制器562、总线控制器564、输入部566、输出部568以及多个执行器570-1、570-2、…。
主控制器550相当于与控制装置100进行网络连接的其他控制装置,对应用程序532进行逐次解释而逐次输出控制指令。更具体而言,主控制器550包含处理器552、主存储器554、存贮器556及只读存储器(Read Only Memory,ROM)560。
处理器552包含CPU、MPU、GPU等。作为处理器552,既可采用具有多个核心的结构,也可配置多个处理器552。主存储器554包含DRAM或SRAM等易失性存储装置等。存贮器556例如包含快闪存储器(flash memory)、HDD、SSD等非易失性存储装置等。在存贮器556中,保存一个或多个应用程序532。
ROM560保存用于实现处理器552中的基本处理(例如,对一个或多个应用程序532进行解释的处理)的系统程序等。
处理器552读出ROM560中保存的系统程序、及存贮器556中保存的一个或多个应用程序532,并在主存储器554中展开而逐次解释,由此来逐次输出控制指令。在CNC机床530的主控制器550中,由于是直接解释一个或多个应用程序532而输出控制指令,因此也可不生成如上所述的内部命令。
现场网络控制器562是经由现场网络2而与控制装置100等之间交换数据。
总线控制器564是在主控制器550与输入部566、输出部568、多个执行器570-1、570-2、…之间交换数据。
输入部566是操作按钮(button)或拨盘(dial)等受理用户操作的组件(component)。表示针对输入部566的用户操作的信号经由总线控制器564而提供给主控制器550。
输出部568是显示灯或蜂鸣器(buzzer)等用于进行对用户的通知的组件。根据来自主控制器550的指令,输出部568进行点灯或鸣响等。
执行器570-1、570-2、…是用于驱动CNC机床530的各可动部的组件,包含伺服驱动器及伺服马达等。来自主控制器550的控制指令经由总线控制器564而提供给作为对象的执行器570-1、570-2、…。
<H.CNC机床的功能结构例>
接下来,对本实施方式的控制系统1中所含的CNC机床530的功能结构例进行说明。图8是表示本实施方式的控制系统1中所含的CNC机床530的功能结构例的框图。
参照图8,CNC机床530包含从机处理部580、内部计数器582、应用程序执行部584、输入/输出数据处理部586、系统服务处理部588及处理时机管理部590。
从机处理部580对现场网络2中的帧的收发进行管理。从机处理部580具有内部计数器582。内部计数器582是与控制装置100的内部计数器180同步,基于内部计数器180所示的计数器值来控制帧转发。
应用程序执行部584对一个或多个应用程序532进行逐次解释,从而输出针对作为对象的执行器570-1、570-2、…(相当于可动机械)的控制指令。
输入/输出数据处理部586将来自应用程序执行部584的控制指令输出至作为对象的执行器等。而且,输入/输出数据处理部586将来自输入部的输入数据输出至应用程序执行部584,并将来自应用程序执行部584的输出数据输出至输出部。
系统服务处理部588对CNC机床530中的附带处理进行管理。
处理时机管理部590根据预定的条件等,负责图1所示的执行开始时机的通知处理等。即,处理时机管理部590将输出CNC机床530中的控制指令的时机事先通知给控制装置100。由处理时机管理部590所通知的时机也可基于应用程序532的执行状况等来决定。而且,处理时机管理部590在从外部收到执行开始时机的通知时,根据预定的条件等,对应用程序执行部584中的应用程序532的执行开始时机等进行控制。
<I.利用动作预定时刻的通知的联动动作>
接下来,对本实施方式的控制系统1中的利用动作预定时刻的通知的联动动作进行说明。
(i1:整体序列)
首先,对与利用动作预定时刻的通知的联动动作相关的整体序列的一例进行说明。图9是与本实施方式的控制系统1中的利用动作预定时刻的通知的联动动作相关的序列图。
图9中,作为典型例,表示了控制装置100的控制指令运算部164、应用程序解释部160及应用调停部162与CNC机床530的应用程序执行部584及处理时机管理部590所参与的处理。
参照图9,在CNC机床530的应用程序执行部584中,当任意的执行开始条件成立时(序列SQ2),从应用程序执行部584向处理时机管理部590通知执行开始条件的成立(序列SQ4)。执行开始条件是用于在CNC机床530中开始任意的应用程序532的执行的条件。
当收到执行开始条件的成立通知时,处理时机管理部590基于执行开始条件的内容、或预定的设定值等,决定开始动作的预定时刻(动作预定时刻)(序列SQ6)。所决定的动作预定时刻被通知给控制装置100的应用调停部162(序列SQ8)。
控制装置100的应用调停部162基于来自CNC机床530的动作预定时刻,来决定对应的应用程序32的执行开始时机(序列SQ10)。所述执行开始时机典型的是基于从CNC机床530通知的时机(动作预定时刻)、与控制装置100所管理的内部计数器180的计数器值所示的当前时刻(即,计时器TMR所示的值)的差分而决定。
应用调停部162在执行开始时机的到来前,指示应用程序解释部160生成控制指令。即,应用调停部162指示应用程序解释部160生成内部命令(序列SQ12)。响应所述指示,应用程序解释部160对作为对象的应用程序532进行解释而生成内部命令(序列SQ14)。此生成的内部命令被逐次列队(排队)至共享存储器170内的缓冲器中,可从控制指令运算部164进行存取(序列SQ16)。
而且,应用调停部162在序列SQ10中所决定的执行开始时机到来时,对应用程序解释部160指示依据所生成的内部命令的控制指令的输出开始(序列SQ18)。收到所述输出开始的指示后,控制指令运算部164开始依据内部命令的控制指令的输出(序列SQ20)。
另一方面,在CNC机床530的应用程序执行部584中,也开始依据应用程序532的控制指令的输出(序列SQ22)。
通过此种一连串的手续,能够实现以动作预定时刻为基准的联动动作。
(i2:程序例)
接下来,对用于实现利用动作预定时刻的通知的联动动作的程序例进行说明。图10是用于实现本实施方式的控制系统1中的利用动作预定时刻的通知的联动动作的程序例。
图10所示的序列程序30涉及输送器544及机器人520(参照图1)的控制。另外,CNC机床530是通过内置的主控制器550执行应用程序532而受到控制。
序列程序30包含:功能块302,规定用于对驱动输送器544的伺服马达542进行控制的运动命令;以及功能块304,指示用于控制CNC机床530的应用程序32(机器人程序)的执行开始。
功能块302是通过运转开始旗标成为真(TRUE),而执行指定的处理。
功能块304是以从CNC机床530收到动作预定时刻为条件而激活。对于功能块304,提供保存所接收的动作预定时刻的变量StartTime来作为ExecTime的值。功能块304通过将变量StartTime作为输入来执行,从而应用调停部162决定执行开始时机等。并且,根据所决定的执行开始时机,开始依据所指定的应用程序32的控制指令的输出。
如图10所示,用户无须意识来自CNC机床530的动作预定时刻的通知等,通过相对较简单的编码(coding),便能够实现与CNC机床530的联动动作。
(i3:优先级变更)
如参照所述图9等所说明的那样,必须在控制装置100中对应用程序32进行解释而事先生成内部命令,以便能够从预先通知的动作预定时刻开始控制指令的输出。
另一方面,根据作为对象的应用程序32中所含的命令数及种类,也存在解释需要更多时间的情况。此种情况下,内部命令的生成也有可能赶不上预先通知的动作预定时刻。
此种情况下,也可将与对应用程序32进行解释而生成内部命令的处理相关联的优先级变更向更高的方向。通过设定更高的优先级,能够增大对此处理分配的运算时间或处理器资源,因此与维持优先级的情况相比,能够在更短时间完成内部命令的生成。
图11A及图11B是用于说明本实施方式的控制装置100中的优先级变更的效果的示意图。图11A及图11B中表示根据不同的优先级来并列执行四种处理(任务)的示例。更具体而言,作为优先级高的任务,表示了第1任务10(输入/输出刷新处理)及第2任务18(包含序列命令执行处理12、依据应用程序的控制指令的输出处理14、以及依据序列程序30中所含的运动命令的控制指令的输出处理16)。除此以外,作为优先级低的任务,表示了第3任务20(对应用程序32进行解释而逐次生成内部命令40的处理)、第4任务22及第5任务24。
第4任务22包含控制装置100所提供的任意处理。第5任务24包含控制装置100与外部装置之间的数据通信等处理(系统服务)。
图11A及图11B所示的示例中,第1任务10及第2任务18是在每个控制周期T1反复执行。在各控制周期T1中,在未执行第1任务10及第2任务18的期间内,根据优先级来执行第3任务~第5任务。
图11A所示的示例中,对于第4任务22,在每个控制周期T1分配有处理器资源。另一方面,对于第3任务20,仅在第1任务10、第2任务18、第4任务22均未执行的期间内才执行,因此,完成一次第3任务20的执行,需要相当于三次控制周期T1的时间。即,从第3任务20被触发直至指定的处理完成为止,需要控制周期T1的三倍的时间。
另一方面,图11B所示的示例中,第3任务20的优先级被设定为高于第4任务22。图11B所示的示例中,在第1任务10及第2任务18均未执行的期间内,将优先执行第3任务20,其结果,一次第3任务20的执行能够以相当于两次控制周期T1的时间完成处理。即,能够以更短的时间由应用程序32生成内部命令。
如所述图11A及图11B所示,当判断为内部命令的生成赶不上事先通知的动作预定时刻时,也可变更对用于对应用程序32进行解释而生成内部命令的任务所设定的优先级。通过此种优先级的变更,能够使内部命令的生成赶上事先通知的动作预定时刻。
另外,应用程序解释部160带有一定余量地对应用程序32中所含的命令进行语法分析(预读(Look Ahead))。在预读动作中,当由应用程序32中记述的命令生成内部命令时,也参照在成为所述内部命令生成对象的命令以后记述的命令。因此,应用程序解释部160不仅能够知晓当前处理中的命令,而且能够事先知晓接下来要处理的命令,从而能够事先判断能否在动作预定时刻之前完成内部命令的生成。
更具体而言,控制装置100的应用调停部162在收到应用程序解释部160的处理状况或来自应用程序解释部160的通知,而知晓内部命令的生成赶不上事先通知的动作预定时刻的状况时,对调度程序154指示对与内部命令的生成相关的任务所设定的优先级的变更。响应所述优先级的变更指示,调度程序154变更对象任务的优先级,分配更多的处理器资源,由此,使内部命令的生成更早期地完成。
即,应用调停部162在判断为依据应用程序32的控制指令的生成赶不上动作预定时刻(执行开始时机)时,提高与依据应用程序32的控制指令的生成相关的任务的优先级。由此,使内部命令的生成赶上动作预定时刻。
如上所述,也可考虑事先通知的动作预定时刻与内部命令的生成状况,来变更对生成内部命令的任务设定的优先级。通过此种优先级的动态变更,能够避免在动作预定时刻无法开始联动动作这一事态的发生。
(i4:处理流程)
接下来,对用于实现本实施方式的控制系统1中的利用动作预定时刻的通知的联动动作的处理流程的一例进行说明。
图12是表示本实施方式的控制装置100中的处理流程的一例的流程图。图12所示的各步骤典型的是通过控制装置100的处理器102执行应用程序32及系统程序34而实现。
参照图12,控制装置100判断是否从任一控制应用(所述示例中为CNC机床530)收到动作预定时刻的通知(步骤S100)。当收到动作预定时刻的通知时(步骤S100中为是(YES)),控制装置100基于所通知的动作预定时刻与控制装置100所管理的当前时刻的差分,来决定对应的应用程序32的执行开始时机(步骤S102)。而且,控制装置100对成为对应的应用程序32的对象的命令进行解释而生成内部命令(步骤S104)。
继而,控制装置100判断步骤S102中所决定的执行开始时机是否到来(步骤S106)。当执行开始时机到来时(步骤S106中为是),控制装置100开始依据步骤S104中已生成的内部命令的控制指令的计算及输出(步骤S108)。
通过如上所述的处理流程,能够实现利用动作预定时刻的通知的联动动作。
<J.偏移时间>
所述说明中,表示了以事先通知的动作预定时刻为基准来同时开始动作的示例,但并不限于此,也可以共同的动作预定时刻为基准而使一者或两者的动作在经过各偏移时间后开始。
图13是表示本实施方式的控制系统1中的利用动作预定时刻的通知的联动动作的一例的时间图。参照图13,设想以任意的执行开始时机为基准而开始CNC机床530及机器人520的动作的情况。
控制装置100在收到动作预定时刻的通知时,对应用程序中的作为对象的命令进行解释而生成内部命令。在图13所示的示例中,当预先通知的执行开始时机到来时,待机预定的动作开始等待时间后,开始依据预先生成的内部命令的控制指令的输出。另一方面,CNC机床530在执行开始时机到来时,开始预定的动作。
这样,应用调停部162也可对输出时机进行调整,以在从自外部通知的动作预定时刻(执行开始时机)偏移预定时间的时机,开始依据应用程序32的控制指令的输出。
其结果,由控制装置100所控制的机器人520从CNC机床530的动作开始延迟预定的偏移时间后开始动作。通过设定此种动作延迟时间,例如能够避免机器人520与CNC机床530之间的干涉的产生。
此种偏移时间既可在启动应用程序32时在序列程序30上设定,也可事先作为任意参数而设定。
<K.附注>
如上所述的本实施方式包含以下所述的技术思想。
[结构1]
一种控制系统,其包括:
第1控制装置100;
第2控制装置550,与所述第1控制装置进行网络连接;以及
一个或多个执行器522、526、540,依照来自所述第1控制装置的控制指令进行动作,
所述第1控制装置及所述第2控制装置具有彼此经时刻同步的计时器TMR,
所述第1控制装置包括:
第1程序执行部152,在每个第1周期执行序列程序而输出第1控制指令;
解释部160,在与所述第1周期相同或比所述第1周期长的每个第2周期,对第1应用程序的至少一部分进行解释而逐次生成内部命令;
指令运算部164,根据由所述解释部生成的内部命令,在每个所述第1周期,输出针对所述一个或多个执行器中的至少一部分的第2控制指令;以及
调停部162,对所述解释部的解释处理进行管理,
所述第2控制装置包括:
第2程序执行部584,对第2应用程序进行逐次解释而输出针对作为对象的可动机械的第3控制指令;以及
时机管理部590,将输出所述第3控制指令的时机事先通知给所述第1控制装置,
所述调停部响应来自所述第2控制装置的时机通知,而对依据由所述解释部生成的内部命令的第2控制指令的输出时机进行调整。
[结构2]
根据结构1所述的控制系统,其中,所述调停部基于从所述第2控制装置通知的时机、与所述第1控制装置的计时器所示的值,来决定所述第2控制指令的输出时机。
[结构3]
根据结构2所述的控制系统,其中,从所述第2控制装置通知的时机是基于由所述第2控制装置的计时器582所管理的值。
[结构4]
根据结构2或结构3所述的控制系统,其中,所述调停部在所述第2控制指令的输出时机的到来前,指示所述解释部生成所述第2控制指令。
[结构5]
根据结构4所述的控制系统,其中,所述调停部在判断为所述第2控制指令的生成赶不上所述第2控制指令的输出时机时,提高与所述第2控制指令的生成相关的任务的优先级。
[结构6]
根据结构1至结构5中任一项所述的控制系统,其中,所述调停部对输出时机进行调整,以与从所述第2控制装置通知的时机同时开始所述第2控制指令的输出。
[结构7]
根据结构1至结构5中任一项所述的控制系统,其中,所述调停部对输出时机进行调整,以在从自所述第2控制装置通知的时机偏移预定时间的时机,开始所述第2控制指令的输出。
[结构8]
一种控制装置100,其与控制应用进行网络连接,所述控制装置包括:
第1程序执行部152,在每个第1周期执行序列程序而输出第1控制指令;
解释部160,在与所述第1周期相同或比所述第1周期长的每个第2周期,对应用程序的至少一部分进行解释而逐次生成内部命令;
指令运算部164,根据由所述解释部生成的内部命令,在每个所述第1周期,输出针对所述一个或多个执行器中的至少一部分的第2控制指令;以及
调停部162,基于来自所述控制应用的输出控制指令的时机通知,来对所述解释部的解释处理进行管理,
所述调停部响应来自所述控制应用的时机通知,对依据由所述解释部所生成的内部命令的第2控制指令的输出时机进行调整。
<L.优点>
本实施方式的控制装置除了包含序列命令及运动命令的序列程序以外,还能够并列地执行一个或多个应用程序。在此种并列执行中,能够在每个控制周期输出控制指令,因此在依据应用程序的控制中,也能够实现与依据序列程序的控制相同的控制精度。
本实施方式的控制装置在并列执行通过来自控制装置的控制指令而控制的控制应用、与通过自身输出的控制指令而控制的控制应用时,能够基于从任一控制应用通知的动作预定时刻,来开始多个控制应用间的联动动作。
既可使多个控制应用的执行开始时机彼此一致,也可使控制应用之间的动作偏移以控制周期为单位所规定的偏移时间而联动动作。通过提供此种细致的联动动作,也能够使设备更有效率地动作,由此,也能够提高生产效率。
应认为,本次揭示的实施方式在所有方面仅为例示而非限制者。本发明的范围是由权利要求而非所述说明所示,且意图包含与权利要求均等的含义及范围内的所有变更。
Claims (8)
1.一种控制系统,其特征在于,包括:
第1控制装置;
第2控制装置,与所述第1控制装置进行网络连接;以及
一个或多个执行器,依照来自所述第1控制装置的控制指令进行动作,
所述第1控制装置及所述第2控制装置具有彼此经时刻同步的计时器,
所述第1控制装置包括:
第1程序执行部,在每个第1周期执行序列程序而输出第1控制指令;
解释部,在与所述第1周期相同或比所述第1周期长的每个第2周期,对第1应用程序的至少一部分进行解释而逐次生成内部命令;
指令运算部,根据由所述解释部生成的内部命令,在每个所述第1周期,输出针对所述一个或多个执行器中的至少一部分的第2控制指令;以及
调停部,对所述解释部的解释处理进行管理,
所述第2控制装置包括:
第2程序执行部,对第2应用程序进行逐次解释而输出针对作为对象的可动机械的第3控制指令;以及
时机管理部,将输出所述第3控制指令的时机事先通知给所述第1控制装置,
所述调停部响应来自所述第2控制装置的时机通知,而对依据由所述解释部生成的内部命令的第2控制指令的输出时机进行调整。
2.根据权利要求1所述的控制系统,其特征在于,
所述调停部基于从所述第2控制装置通知的时机、与所述第1控制装置的计时器所示的值,来决定所述第2控制指令的输出时机。
3.根据权利要求2所述的控制系统,其特征在于,
从所述第2控制装置通知的时机是基于由所述第2控制装置的计时器所管理的值。
4.根据权利要求2或3所述的控制系统,其特征在于,
所述调停部在所述第2控制指令的输出时机的到来前,对所述解释部指示所述第2控制指令的生成。
5.根据权利要求4所述的控制系统,其特征在于,
所述调停部在判断为所述第2控制指令的生成赶不上所述第2控制指令的输出时机时,提高与所述第2控制指令的生成相关的任务的优先级。
6.根据权利要求1至3中任一项所述的控制系统,其特征在于,
所述调停部对输出时机进行调整,以与从所述第2控制装置通知的时机同时开始所述第2控制指令的输出。
7.根据权利要求1至3中任一项所述的控制系统,其特征在于,
所述调停部对输出时机进行调整,以在从自所述第2控制装置通知的时机偏移预定时间的时机,开始所述第2控制指令的输出。
8.一种控制装置,其与控制应用进行网络连接,所述控制装置的特征在于,包括:
第1程序执行部,在每个第1周期执行序列程序而输出第1控制指令;
解释部,在与所述第1周期相同或比所述第1周期长的每个第2周期,对应用程序的至少一部分进行解释而逐次生成内部命令;
指令运算部,根据由所述解释部生成的内部命令,在每个所述第1周期,输出针对一个或多个执行器中的至少一部分的第2控制指令;以及
调停部,基于来自所述控制应用的输出控制指令的时机通知,来对所述解释部的解释处理进行管理,
所述调停部响应来自所述控制应用的时机通知,对依据由所述解释部所生成的内部命令的第2控制指令的输出时机进行调整。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017-190345 | 2017-09-29 | ||
JP2017190345A JP6946909B2 (ja) | 2017-09-29 | 2017-09-29 | 制御システムおよび制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109582397A true CN109582397A (zh) | 2019-04-05 |
CN109582397B CN109582397B (zh) | 2021-10-29 |
Family
ID=62597368
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810595829.9A Active CN109582397B (zh) | 2017-09-29 | 2018-06-11 | 控制系统以及控制装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10761515B2 (zh) |
EP (1) | EP3462257B1 (zh) |
JP (1) | JP6946909B2 (zh) |
CN (1) | CN109582397B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112198839A (zh) * | 2019-07-08 | 2021-01-08 | 发那科株式会社 | Plc装置 |
CN113204187A (zh) * | 2020-06-30 | 2021-08-03 | 欧姆龙(上海)有限公司 | 控制系统及其控制方法 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3806422A4 (en) * | 2018-08-01 | 2022-01-26 | Siemens Aktiengesellschaft | INTERCONNECTING DEVICE, COMMUNICATION METHOD AND SYSTEM INCLUDING A ROBOT |
JP6845202B2 (ja) * | 2018-10-11 | 2021-03-17 | ファナック株式会社 | 数値制御方法及び処理装置 |
JP7141905B2 (ja) * | 2018-10-12 | 2022-09-26 | 株式会社日立産機システム | コントロール装置及びコントロール方法 |
JP7415345B2 (ja) * | 2019-07-03 | 2024-01-17 | オムロン株式会社 | 制御システム、サポート装置および設定プログラム |
JP7247808B2 (ja) * | 2019-07-31 | 2023-03-29 | オムロン株式会社 | 制御システム、解析方法およびプログラム |
JP7294085B2 (ja) * | 2019-11-25 | 2023-06-20 | オムロン株式会社 | 制御システム、制御装置および制御方法 |
US20230068058A1 (en) | 2020-02-05 | 2023-03-02 | Fanuc Corporation | Machine learning device, computer device, control system, and machine learning method |
DE112021001257T5 (de) | 2020-02-27 | 2022-12-08 | Fanuc Corporation | Informationsverarbeitungsvorrichtung |
EP4138402A4 (en) * | 2020-05-13 | 2024-05-15 | Yaskawa Electric Corp | MACHINE CONTROL SYSTEM, PROGRAM, MACHINE, SYSTEM AND DEVICE |
DE112021002979T5 (de) | 2020-05-28 | 2023-03-30 | Fanuc Corporation | Steuereinrichtung |
JP2022029899A (ja) * | 2020-08-06 | 2022-02-18 | オムロン株式会社 | 制御システム、制御装置およびプログラム |
JP2022114752A (ja) * | 2021-01-27 | 2022-08-08 | オムロン株式会社 | 制御装置、プログラム実行方法およびプログラム |
CN117480457A (zh) * | 2021-06-18 | 2024-01-30 | 发那科株式会社 | 控制装置以及控制方法 |
WO2024089881A1 (ja) * | 2022-10-28 | 2024-05-02 | ファナック株式会社 | ロボット制御装置、工作機械及び連携システム |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101893876A (zh) * | 2009-05-20 | 2010-11-24 | 北京四方继保自动化股份有限公司 | 一种用于大型分布式控制系统的控制网络设计 |
CN103403632A (zh) * | 2011-03-15 | 2013-11-20 | 欧姆龙株式会社 | 运算单元、辅助装置、输出控制方法、显示控制方法、以及程序 |
JP2016168169A (ja) * | 2015-03-12 | 2016-09-23 | オムロン株式会社 | 情報管理装置、制御指令発生装置、トレーニング装置、トレーニングシステム、情報管理プログラム、情報管理方法、制御指令発生プログラム、および制御指令発生方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5912814A (en) * | 1997-05-07 | 1999-06-15 | Allen-Bradley Company, Llc | Redundant multitasking industrial controllers synchronized data tables |
JP3386777B2 (ja) | 1999-05-11 | 2003-03-17 | ファナック株式会社 | 数値制御システム |
JP6465620B2 (ja) | 2014-10-31 | 2019-02-06 | ヤマハ発動機株式会社 | 制御システムおよび制御方法 |
-
2017
- 2017-09-29 JP JP2017190345A patent/JP6946909B2/ja active Active
-
2018
- 2018-06-08 EP EP18176806.0A patent/EP3462257B1/en active Active
- 2018-06-11 CN CN201810595829.9A patent/CN109582397B/zh active Active
- 2018-06-12 US US16/005,687 patent/US10761515B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101893876A (zh) * | 2009-05-20 | 2010-11-24 | 北京四方继保自动化股份有限公司 | 一种用于大型分布式控制系统的控制网络设计 |
CN103403632A (zh) * | 2011-03-15 | 2013-11-20 | 欧姆龙株式会社 | 运算单元、辅助装置、输出控制方法、显示控制方法、以及程序 |
JP2016168169A (ja) * | 2015-03-12 | 2016-09-23 | オムロン株式会社 | 情報管理装置、制御指令発生装置、トレーニング装置、トレーニングシステム、情報管理プログラム、情報管理方法、制御指令発生プログラム、および制御指令発生方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112198839A (zh) * | 2019-07-08 | 2021-01-08 | 发那科株式会社 | Plc装置 |
CN112198839B (zh) * | 2019-07-08 | 2024-03-08 | 发那科株式会社 | Plc装置 |
CN113204187A (zh) * | 2020-06-30 | 2021-08-03 | 欧姆龙(上海)有限公司 | 控制系统及其控制方法 |
CN113204187B (zh) * | 2020-06-30 | 2023-05-09 | 欧姆龙(上海)有限公司 | 控制系统及其控制方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3462257A1 (en) | 2019-04-03 |
JP6946909B2 (ja) | 2021-10-13 |
CN109582397B (zh) | 2021-10-29 |
JP2019067046A (ja) | 2019-04-25 |
US10761515B2 (en) | 2020-09-01 |
EP3462257B1 (en) | 2021-10-27 |
US20190101904A1 (en) | 2019-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109582397A (zh) | 控制系统以及控制装置 | |
CN109388107A (zh) | 控制装置 | |
CN111034128B (zh) | 控制系统以及控制装置 | |
JP6806019B2 (ja) | 制御装置 | |
CN109581976A (zh) | 控制装置 | |
CN109507980A (zh) | 控制装置及控制方法 | |
CN109491307A (zh) | 控制装置及控制方法 | |
CN109542046A (zh) | 控制装置、控制方法及支援装置 | |
CN109557889A (zh) | 支持装置及记录媒体 | |
EP2730988A2 (en) | Systems and methods for segment synchronization | |
US11269313B2 (en) | Controller and control system that stores data in current control cycle for output in next control cycle | |
EP3457239B1 (en) | Control device and control method | |
CN102540972B (zh) | 支持多点跨平台通讯的数控机床远程控制方法 | |
JP7231073B2 (ja) | 制御装置および制御システム | |
Serna et al. | Control software design for a cutting glass machine tool based on the COSME platform. Case study | |
Wang | Distributed Process Planning and Web-based Rapid Machining |
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 |