CN109581976B - 控制装置 - Google Patents
控制装置 Download PDFInfo
- Publication number
- CN109581976B CN109581976B CN201810600587.8A CN201810600587A CN109581976B CN 109581976 B CN109581976 B CN 109581976B CN 201810600587 A CN201810600587 A CN 201810600587A CN 109581976 B CN109581976 B CN 109581976B
- Authority
- CN
- China
- Prior art keywords
- command
- application
- control
- program
- execution
- 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
- 238000004364 calculation method Methods 0.000 claims abstract description 23
- 238000004458 analytical method Methods 0.000 claims description 94
- 238000003860 storage Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 description 90
- 238000000034 method Methods 0.000 description 38
- 230000006870 function Effects 0.000 description 34
- 230000008569 process Effects 0.000 description 31
- 238000010586 diagram Methods 0.000 description 21
- 230000033001 locomotion Effects 0.000 description 17
- 238000004519 manufacturing process Methods 0.000 description 16
- 238000003754 machining Methods 0.000 description 9
- 239000000872 buffer Substances 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 2
- 230000001143 conditioned effect Effects 0.000 description 2
- 230000036461 convulsion Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000005764 inhibitory process Effects 0.000 description 2
- 238000012905 input function Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 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
- 238000005259 measurement Methods 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
- 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/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
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/163—Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
-
- 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/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/4155—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
-
- 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/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] or computer integrated manufacturing [CIM] characterised by the cooperation between machine tools, manipulators and conveyor or other workpiece supply system, workcell
-
- 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
-
- 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/25482—Synchronize several sequential processes, adjust
-
- 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/31—From computer integrated manufacturing till monitoring
- G05B2219/31261—Coordination control
-
- 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/32—Operator till task planning
- G05B2219/32252—Scheduling production, machining, job shop
-
- 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/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared memory
-
- 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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Manufacturing & Machinery (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Programmable Controllers (AREA)
- Numerical Control (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
Abstract
本发明提供一种控制装置的结构,在单个控制装置中,除了序列程序以外,使多个应用程序并列执行时,能够容易地控制多个应用程序的执行时机等。控制装置在第1应用程序包含第1特殊命令,第2应用程序包含与第1特殊命令对应的第2特殊命令时,指令运算部以共同时机为基准,而输出依据在第1应用程序中于第1特殊命令以后记述的命令的控制指令、及依据在第2应用程序中于第2特殊命令以后记述的命令的控制指令。
Description
技术领域
本发明涉及一种用于对控制对象进行控制的控制装置。
背景技术
在生产现场,各种工厂自动化(Factory Automation,FA)技术已广泛普及。此种FA系统不仅包含可编程逻辑控制器(Programmable Logic Controller,PLC)等控制装置,还包含计算机数字控制(Computer Numerical Control,CNC)及机器人(robot)等可进行高度动作的各种执行器(actuator)等。此种FA系统正处于逐渐大规模化的倾向。
例如,日本专利特开2016-194831号公报(专利文献1)揭示了一种控制装置,当通过由多个控制程序(program)并列执行来实现多个马达的控制时,能够容易地实现控制程序间的同步。专利文献1揭示了下述结构:在控制程序1与控制程序2的执行开始的时机(timing),将此时机之前一个控制程序1的轴变量交接给控制程序2。即,在控制程序2的执行开始后,即使控制程序1的轴变量受到更新,也不进行此变量向控制程序2的交接。
在对机器人等进行控制的系统中,也有时会采用在多个处理器(processor)间共享存储器(memory)的方式。
例如,日本专利特开2011-062798号公报(专利文献2)揭示了一种机器人系统,其包含具有中央处理器(Central Processing Unit,CPU)的PLC和机器人CPU。在所述机器人系统中,机器人CPU在从以规定的程序语言进行动作的指示发送装置,收到由输入/输出数据的输入/输出(Input/Output,I/O)区域(area)内的位置和写入此位置的数据所定义的指示信息时,基于定义来使机器人进行与指示信息相应的动作。在专利文献2所揭示的机器人系统中,在PLC及机器人CPU之间共享I/O区域的数据。
日本专利特开平01-280804号公报(专利文献3)揭示了一种结构:在具有数字控制装置(NC)、和连接于此NC的可编程逻辑控制器(PLC)的控制装置中,在NC中具有与PLC的共享存储器。
日本专利特开2003-228418号公报(专利文献4)揭示了一种工业用机器人的控制装置,其具有能够从工业用机器人的控制装置(RC)与PLC这两者进行存取(access)的双端口随机存取存储器(dual port random access memory)。
日本专利特开平06-149329号公报(专利文献5)揭示了一种附加于NC机床来使用的机器人的控制装置。在所述控制装置中,当从操作面板输入机器人程序的转发操作时,机器人程序从程序保存用RAM写入共用RAM,CPU识别此程序而将机器人程序登记到机器人程序保存用RAM内。随后,当从操作面板进行机器人程序运转操作时,向共用RAM写入机器人程序运转指令,CPU识别此指令,读出登记在机器人程序保存用RAM内的机器人程序并指令给机器人,由此来执行机器人程序运转。
而且,存在一种技术,其在应用程序(application program)中插入用于对程序的执行自身进行控制的代码(code)。
日本专利特开平08-234820号公报(专利文献6)揭示了一种使多个执行器进行同时动作的NC程序的同时动作指令方式。在同时动作指令方式中,将表示多个通用M代码的同时动作开始的指令和表示同时动作解除的指令预先设定为特殊M代码,在使其同时动作的多个通用M代码的队列之前排列表示同时动作开始的特殊M代码,在队列之后排列表示同时动作解除的特殊M代码,从而制作NC程序,当执行所述NC程序时,在同时动作开始指令后,并不等待来自执行器的动作确认,而是陆续地存储通用M代码并立即执行,直至发出同时动作解除指令为止。
日本专利特开昭60-245002号公报(专利文献7)揭示了一种装置,其根据来自中央处理装置的控制,按照规定的程序来对机床进行数字控制。此装置具备:计时器(timer),从中央处理装置收到时延(dwell)执行的指令时,进行由此指令所指定的时间动作;以及指令从外部指令时延结束的部件,通过在所述计时器的动作中将机床的动作设为停止状态而执行时延,并且在所述计时器的动作结束时或者收到时延结束指令时解除机床的动作停止而结束时延,由此来进行相对于时延的跳越(skip)。
而且,日本专利特开2014-241018号公报(专利文献8)揭示了一种通过一个加工程序来控制机床与机器人这两者的控制装置。
发明内容
[发明所要解决的问题]
随着近年的信息和通信技术(Information and Communication Technology,ICT)的进步,控制装置的处理能力也飞跃性提高。以往技术中,NC机床或机器人一般采用使用与PLC独立的专用控制装置来控制的结构,但存在想要将这些控制也包含到PLC中的需求(needs)。而且,存在下述需求,即:想要通过使序列控制、运动(motion)控制、对NC机床的控制、对机器人的控制彼此更准确地同步,从而提高生产效率。以往技术未能充分应对这些需求。
所述专利文献1揭示了:在由多个控制程序并列执行多个马达的控制时,将其中一个控制程序的轴变量交接给另一个控制程序,由此来实现控制程序间的同步,但对于NC机床或机器人并未言及,而且,仅揭示了从其中一个控制程序向另一个控制程序的轴变量,而对于使两控制程序以代码为单位来同步的方法并未揭示。
所述专利文献2~专利文献5的前提是在多个控制装置或者多个处理器间共享数据,而对于由单个控制装置来执行多个处理并未作任何设想。
专利文献6的前提是使用控制装置来控制NC装置中的同时动作,而对于使单个控制装置来执行多个处理未作任何设想。
专利文献7揭示的不过是一个程序中的时延动作,而对于多个程序间的同步执行未作任何揭示。
专利文献8仅揭示了将一个加工程序分离为机床及机器人用的程序,而对于机床与机器人之间的同步执行等未作任何揭示。
本发明的一个目的在于提供一种结构,在单个控制装置中,除了序列程序以外,使多个应用程序并列执行时,能够容易地控制多个应用程序的执行时机等。
[解决问题的技术手段]
根据本发明的一例,控制装置包含存储部,所述存储部保存序列程序与逐次执行的第1应用程序及第2应用程序。第1应用程序及第2应用程序各自包含一个或多个命令。控制装置包含:程序执行部,在每个控制周期执行序列程序而输出控制指令;分析部,在与控制周期相同或者比控制周期长的每个第1周期,对第1应用程序的至少一部分进行语法分析而逐次生成第1内部命令,并且,在与控制周期相同或者比控制周期长的每个第2周期,对第2应用程序的至少一部分进行语法分析而逐次生成第2内部命令;共享存储器,保存由分析部所生成的第1内部命令及第2内部命令;以及指令运算部,依照第1内部命令及第2内部命令,在每个控制周期输出各个控制指令。当第1应用程序包含第1特殊命令,第2应用程序包含与第1特殊命令对应的第2特殊命令时,指令运算部以共同时机为基准,而输出依据在第1应用程序中于第1特殊命令以后记述的命令的控制指令、及依据在第2应用程序中于第2特殊命令以后记述的命令的控制指令。
根据本发明,当在单个控制装置中并列执行多个应用程序时,用户只要在各应用程序中分别追加彼此对应的特殊代码,便能够以共同时机为基准而输出依据在各特殊代码以后记述的命令的各个控制指令。通过以此种共同时机为基准来使用输出,能够使多个控制应用彼此联动地动作。通过此种联动动作,能够提高生产设备的作业效率,从而提高生产性。
所述发明中,控制装置也可还包括:调停部,对直至第1特殊命令之前记述的命令为止的执行完成、及直至第2特殊命令之前记述的命令为止的执行完成进行探测,对分析部通知共同时机。
根据本发明,分析部自身无须进行基于特殊命令的时机管理,能够使控制装置的功能结构进一步简化及独立化。
所述发明中,第1特殊命令及第2特殊命令也可包含一命令,所述命令用于从共同时机开始同时输出依据在第1特殊命令以后记述的命令的控制指令、及依据在第2特殊命令以后记述的命令的控制指令。
根据本发明,在使多个控制应用同时动作的用途中,能够以控制周期的精度来实现同步。
所述发明中,第1特殊命令也可包含一命令,所述命令用于在从共同时机经过指定时间后,输出依据在第1特殊命令以后记述的命令的控制指令。
根据本发明,在使多个控制应用保持任意的时间差来并列动作的用途中,能够以控制周期的精度来管理时间差。
所述发明中,第1应用程序及第2应用程序也能够将经序列程序更新的变量指定为执行开始条件。
根据本发明,能够更灵活地实现由序列程序所控制的设备、与由应用程序所控制的控制应用之间的同步或联动。
所述发明中,第1特殊命令及第2特殊命令也可除了命令本体以外,指定用于使彼此对应的自变量。
根据本发明,即使必须在各应用程序中记述多个特殊命令的情况下,也只要仅指定自变量即可,因此能够降低编程(programming)的工时。
所述发明中,分析部也可在由第1应用程序及第2应用程序中记述的命令来生成内部命令时,也参照成为所述内部命令生成对象的命令以后记述的命令。
根据本发明,在由应用程序来生成内部命令时,能够提高所述生成的内部命令的精度。而且,在内部命令表示轨迹的情况等下,能够实现更平滑的轨迹。
所述发明中,分析部也可在预定的每个执行周期执行应用程序的语法分析,在从每个执行周期的语法分析的开始直至执行完成为止的期间内,禁止向共享存储器的写入。
根据本发明,能够防止在应用程序与序列程序之间,在处理中途变更所共享的变量的事态。
[发明的效果]
根据本发明,在单个控制装置中,除了序列程序以外,使多个应用程序并列执行时,能够容易地控制多个应用程序的执行时机等。
附图说明
图1是用于说明本实施方式的控制装置中的应用程序的执行例的示意图。
图2是表示本实施方式的控制系统的整体结构例的示意图。
图3是表示本实施方式的控制装置的硬件(hardware)结构例的框图。
图4是表示本实施方式的控制装置的功能结构例的框图。
图5A及图5B是用于说明本实施方式的控制装置中的内部命令生成处理的示意图。
图6是表示本实施方式的控制装置中的处理执行时机的一例的时间图。
图7是表示本实施方式的控制装置的对共享存储器的存取处理的一例的时间图。
图8是表示本实施方式的控制装置中以共同时机为基准的程序执行的实现例的序列图。
图9是表示本实施方式的控制装置中用于实现以共同时机为基准的程序执行的程序例的示意图。
图10是表示本实施方式的控制装置的机器人及NC机床的控制的一例的时间图。
图11是表示本实施方式的控制装置中用于实现以共同时机为基准的程序执行的另一程序例的示意图。
图12是表示与图11所示的程序例对应的程序执行的时间图。
图13是表示本实施方式的控制装置中用于实现以序列程序中的处理结果为条件的、应用程序的同步执行的程序例的示意图。
图14是表示与图13所示的程序例对应的程序执行的时间图。
图15A及图15B是表示本实施方式的具有显示功能部的控制装置的外观的示意图。
图16是表示本实施方式的控制装置的对共享存储器的存取处理的另一例的时间图。
符号的说明
1:控制系统
2:现场网络
6:上位网络
10:输入/输出刷新处理
12、14、14-1、14-2、16:输出处理
20、20-1、20-2:语法分析处理
30:序列程序
32、32-1、32-2、32-3、32-4:应用程序
34:系统程序
38:配方信息
40:内部命令
100、100A、100B:控制装置
102:处理器
104:芯片组
106:主存储器
108:存贮器
110:上位网络控制器
112:USB控制器
114:存储卡接口
116:存储卡
120:内部总线控制器
122:I/O单元
130:现场网络控制器
140:电源单元
142:CPU单元
144:显示单元
146:触控面板
148:本体部
150:处理引擎
152:序列程序执行部
154:调度程序
160:应用分析部
162:应用调停部
164:控制指令运算部
170:共享存储器
170-1、170-2:缓冲器
172:共享存储器控制部
174:显示功能部
176:现场网络接口
178:上位网络接口
200:支持装置
300:服务器装置
302、304、306:功能块
303:圈、变量
320:特殊命令
320-1、322:第1特殊命令
320-2:第2特殊命令
400:显示装置
500:现场机器
510:远程I/O装置
520:机器人
522:机器人控制器
530:NC机床
540:伺服驱动器
542:伺服马达
544:输送器
546:工作台
W:工件
SQ2~SQ30:序列
t1、t2、t3:时刻
T1:控制周期
T2:应用执行周期
具体实施方式
参照附图来详细说明本发明的实施方式。另外,对于附图中的相同或相当的部分,标注相同的标号,并不再重复其说明。
<A.适用例>
首先,对适用本发明的场景的一例进行说明。本实施方式的控制装置100执行序列程序与多个应用程序。这些程序是由用户根据控制对象来任意制作,因此,在以下的说明中,为了方便,也有时将序列程序以及一个或多个应用程序总称为“用户程序(userprogram)”。
本说明书中,“序列程序”的概念包含下述程序,即,每次执行时整体受到扫描(scan),且每次执行时算出一个或多个指令值。“序列程序”包含下述程序,此程序包含依照由国际电气标准会议(International Electrotechnical Commission,IEC)所规定的国际规格IEC61131-3而记述的一个或多个命令。在“序列程序”中,可包含序列命令和/或运动命令。另外,作为“序列程序”,并不限于依照国际规格IEC61131-3而记述的命令,也可包含PLC(可编程控制器)的制造厂家(marker)或销售商(vender)等独自规定的命令。这样,“序列程序”适合于要求即时性及高速性的控制。
本说明书中,“序列命令”这一术语,基本上包含通过算出输入值、输出值、内部值等的一个或多个逻辑电路所记述的一个或多个命令。基本上,在一次控制周期中,“序列命令”是从先头执行至最终为止,且在下个控制周期中,“序列命令”再次从先头执行至最终为止。
本说明书中,“运动命令”这一术语,包含用于对伺服马达(servo motor)等执行器算出位置、速度、加速度、急动度、角度、角速度、角加速度、角急动度等数值来作为指令的一个或多个命令。“运动命令”也是在一次控制周期中,从通过功能块(function block)或数值算式等所记述的运动命令的程序(运动程序)的先头执行至最终为止。即,在每个控制周期中,指令值被算出(更新)。
在每个控制周期通过执行序列程序而输出的控制指令典型的是包含:依据序列命令而确定的数字(digital)输出的开/关(ON/OFF)、以及依据运动命令而算出的模拟(analog)输出。
本说明书中,“应用程序”包含逐次执行的任意程序。典型的是,“应用程序”包含用能够以逐行地执行的解释器(interpreter)方式执行的任意语言而记述的程序。“应用程序”是由一个或多个命令来记述。
作为此种“应用程序”的一例,有用于控制NC机床的程序(以下,也称作“NC程序”)。NC机床典型的是包含车床加工、铣削加工、放电加工等加工装置。
而且,作为“应用程序”的另一例,有用于控制机器人的程序。机器人典型的是包含多关节型机器人及水平多关节(SCARA)型机器人。
NC程序是依照预定的语言而记述。作为一例,NC程序多使用“G语言”来记述,而用于控制机器人的程序多使用专用的机器人语言(例如,被称作“M语言”的命令群)来记述。
以下的说明中,例如也有时将使用NC机床和/或机器人的、进行特定加工或动作的装置或机械以及它们的控制包括在内,而称作“控制应用”。
控制装置100对于各应用程序,在与控制周期相同或比控制周期长的每个应用执行周期内,对所述应用程序的至少一部分进行语法分析而逐次生成内部命令,并依照所生成的内部命令,在每个控制周期输出控制指令。
逐次执行的应用程序原本就不适合于在每个固定周期输出控制指令的处理,因此生成适合于在每个控制周期输出控制指令的内部命令。此种内部命令只要能够在每个控制周期输出控制指令,则为任何代码皆可。典型的是,内部命令也可为将时间作为输入变量的一个或多个函数、或者将时间作为自变量的一个或多个命令。
当在控制装置100中执行多个应用程序时,控制装置100在与控制周期相同或比控制周期长的每个第1周期(应用执行周期T21),对第1应用程序的至少一部分进行语法分析而逐次生成第1内部命令,并且,在与控制周期相同或比控制周期长的每个第2周期(应用执行周期T22),对第2应用程序的至少一部分进行语法分析而生成第2内部命令。并且,控制装置100依照第1内部命令及第2内部命令而在每个控制周期输出各个控制指令。
例如,设想下述控制应用:使用机器人将工件(work)配置在NC机床内,并由机器人取出在NC机床中经处理后的工件。在此种控制应用中,优选使机器人的动作时机与NC机床的动作时机彼此联动。例如,机器人对工件的配置一完成,便使NC机床开始动作,由此,能够削减开始等待时间,或者,NC机床中的加工一完成,便由机器人取出已处理工件,由此,能够削减直至下个工件的处理开始为止的等待时间。
本实施方式的控制装置100能够更细致地控制此类分别通过不同的应用程序来控制的装置的动作时机。
图1是用于说明本实施方式的控制装置100中的应用程序的执行例的示意图。图1中,作为多个应用程序32-1、32-2的一例,设想NC程序及机器人程序。
参照图1,在NC程序中,依照G语言而记述有用于规定必要动作的命令。在NC程序的执行时,逐次执行各命令。同样,在机器人程序中,也记述有用于规定必要动作的命令。在机器人程序的执行时,也逐次执行各命令。
图1所示的应用程序32-1除了规定常规动作的命令以外,还在第50行包含“SyncStart(1)”这一特殊命令320-1。而且,应用程序32-2也是除了规定常规动作的命令以外,还包含“SyncStart(1)”这一特殊命令320-2。
特殊命令320-1与特殊命令320-2彼此对应。当控制装置100在某应用程序中发现此类特殊命令时,以其他应用程序中对应的特殊命令为基准,输出依据两个应用程序的控制指令。
即,在多个应用程序中记述的各个特殊命令是对下述操作进行命令者,即,以共同时机为基准,来输出依据在各特殊命令以后记述的命令的控制指令。图1所示的示例中,应用程序32-1的特殊命令320-1以后的命令与应用程序32-2的特殊命令320-2以后的命令是以共同时机为基准而开始执行。这样,控制装置100执行使应用程序间以共同时机为基准来执行各个命令的、应用程序的调停处理。
如图1所示,例如,在应用程序32-1的第50行记述有特殊命令320-1的情况下,当执行其之前(即,第49行)的命令时,确认应用程序32-2中的对应的特殊命令的执行状态。图1中表示下述示例:应用程序32-2中所含的特殊命令320-2之前记述的命令的执行,比应用程序32-1的第49行命令的执行完成晚。因此,特殊命令320-1是与等待在应用程序32-2中记述的特殊命令320-2之前记述的命令的执行完成的命令同义。
当在应用程序32-2中所含的特殊命令320-2之前记述的命令的执行完成时,以共同时机为基准,而开始应用程序32-1的特殊命令320-1以后的命令、及应用程序32-2的特殊命令320-2以后的命令的执行。
图1所示的示例中,在应用程序32-1的特殊命令320-1以后记述的命令“G01 X20Y10”、及在应用程序32-2的特殊命令320-2以后记述的命令“MOVE X200 Y100”是以共同时机为基准而同时开始执行。
另外,图1中,例示了应用程序32-1中记述的特殊命令320-1为止的命令的执行,比应用程序32-2中记述的特殊命令320-2为止的命令的执行早的情况,但在与此相反的情况下,也进行同样的动作。
即,在应用程序32-2中记述的特殊命令320-2为止的命令的执行,比应用程序32-1中记述的特殊命令320-1为止的命令的执行早的情况下,特殊命令320-2是与等待在应用程序32-1中记述的特殊命令320-1之前记述的命令的执行完成的命令同义。
本说明书中,“以共同时机为基准而输出控制指令”除了以共同时机为基准来同时开始输出依据对象的各个命令的控制指令的情况以外,还包括下述情况:以共同时机为基准而在经过各个偏移(offset)时间后,开始输出依据对象的各个命令的控制指令。例如也可为:对于成为应用程序32-1的对象的命令,当共同时机到来时开始执行,对于成为应用程序32-2的对象的命令,当从共同时机开始经过预定的偏移时间时开始执行。通过使用此种偏移时间,能够使多个控制应用偏移规定时间而并列地动作。通过设定此种偏移时间,例如能够容易地实现将机器人移动到NC机床为止所需的时间等考虑在内的并列动作。
为了便于说明,图1中,使用同一代码来规定特殊命令320-1及特殊命令320-2,但并不限于此,只要是能够彼此对应的代码,则使用任何代码皆可。例如,也可使用遵循各语言格式的代码来作为特殊命令。通过采用遵循各应用程序的语言格式的特殊命令,对于各程序的开发者而言,能够使特殊命令的使用更加容易化。
而且,图1中,对两个应用程序进行了说明,但能够在三个以上的应用程序中分别记述特殊命令,由此,在成为对象的三个以上的应用程序之间,以共同时机为基准来输出依据在各特殊命令以后记述的各个命令的控制指令。
而且,也可在同一应用程序内记述多个不同的应用程序及其对应的特殊命令。
如上所述,在单个控制装置100执行多个应用程序的情况下,通过记述与各个应用程序对应的特殊命令,从而能够以共同时机为基准而输出依据在各应用程序中于特殊命令以后记述的命令的控制指令。通过以共同时机为基准来输出依据各个应用程序中记述的命令的控制指令,从而当使多个执行器或装置联动地动作时,能够更细致地控制联动动作。即,能够以控制装置100的控制周期为单位来控制联动动作,因此与以往相比,能够削减等待时间等,由此能够提高生产效率。
以下,作为本发明的更具体的应用例,对本实施方式的控制装置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、NC机床530、伺服驱动器(servodriver)540及伺服马达542。
伺服马达542驱动输送器(conveyer)544,以将工件W搬送至配置于NC机床530之前的工作台(work table)546上。机器人520将工作台546上的处理前的工件W配置于NC机床530内,并取出NC机床530中的已处理工件W而配置于工作台546上。
作为现场机器500,并不限定于这些,能够采用收集输入数据的任意设备(例如视觉传感器等)、以及给予依据输出数据的某些作用的任意设备(例如逆变器(inverter)装置等)等。
远程I/O装置510典型的是包含经由现场网络2进行通信的通信耦合器(coupler)、及用于进行输入数据的获取及输出数据的输出的输入/输出部(以下也称作“I/O单元”)。
在远程I/O装置510上,连接输入中继器(relay)或各种传感器(例如模拟传感器、温度传感器、振动传感器等)等收集输入数据的装置、以及输出中继器、接触器(contactor)、伺服驱动器及其他任意执行器等对现场给予某些作用的装置。
机器人控制器522根据来自控制装置100的控制指令(位置指令或速度指令等),进行轨迹计算及各轴的角度计算等,并且根据计算结果来驱动构成机器人520的伺服马达等。
伺服驱动器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(总称为“用户程序”)。即,存贮器108相当于对序列程序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 Integrated 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及调度程序(scheduler)154。
序列程序执行部152在每个控制周期执行(扫描)序列程序30而输出控制指令。
调度程序154是对控制装置100中执行的处理的顺序进行调停。在控制装置100中,将一个或多个处理登记为“任务(task)”,调度程序154基于预先设定的优先级,对一个或多个任务分配处理器资源(resource)。
应用分析部160对应用程序32的至少一部分进行语法分析而生成内部命令40。对于应用分析部160,也有时会提供不同种类的应用程序32。应用分析部160既可执行预先保存的应用程序32,也可执行从服务器装置300适当发送的应用程序32。
例如,在应用分析部160对两个应用程序(第1应用程序及第2应用程序)进行处理的情况下,在与控制周期相同或比控制周期长的每个第1应用执行周期,对第1应用程序的至少一部分进行语法分析而逐次生成第1内部命令,并且,在与控制周期相同或比控制周期长的每个第2应用执行周期,对第2应用程序的至少一部分进行语法分析而逐次生成第2内部命令。
控制指令运算部164根据序列程序30中所含的运动命令,在每个控制周期算出控制指令。而且,控制指令运算部164根据由应用分析部160对每个应用程序逐次生成的内部命令40,在每个控制周期算出控制指令。
序列程序执行部152及控制指令运算部164在每个控制周期执行处理(高优先任务)。另一方面,应用分析部160对应用程序32的处理是在作为控制周期整数倍的每个应用执行周期T2(第2周期)执行(低优先任务)。
应用调停部162在应用分析部160中处理多个应用程序32的情况下,对其执行时机等进行调停。关于应用调停部162的处理详细将后述。
共享存储器170保持在PLC处理引擎150、应用分析部160及控制指令运算部164之间共享的数据。共享数据也可作为结构体变量而保存。例如,由应用分析部160逐次生成的内部命令40被逐次写入至共享存储器170的结构体变量。即,共享存储器170保存由应用分析部160所生成的每个应用的内部命令。
共享存储器控制部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的输出形态,也可考虑所要求的控制周期的时间宽度等来适当设计。
如图5A所示,作为内部命令40的一例,也可为对时间与指令值的关系进行规定的函数。图5A所示的示例中,在内部生成的轨迹能够以直线的组合来规定。作为一例,关于X轴,对于每个直线区间(区间1~区间3)的轨迹,能够输出表示时间与速度的关系的Fx1(t)、Fx2(t)、Fx3(t)。对于属于同一群组的其他轴(例如Y轴及Z轴),也可分别同样地输出函数。
如图5B所示,控制指令运算部164在每个控制周期,依照所生成的内部命令40来算出控制指令,由此,在每个控制周期输出控制指令((4)指令值运算)。即,对与各区间对应的函数输入各控制周期的时刻,由此,能够唯一决定此时刻的指令值。在设定有任何群组的情况下,优选的是,对于属于所述群组的各轴,同步地输出指令值。
所述图5A及图5B中,作为一例,表示了通过CNC中使用的G语言所记述的命令的一例,但并不限于此,只要是以任意的解释器方式执行的程序,则使用任何语言皆可。而且,也可根据处理对象的语言格式来使所生成的内部命令40的格式不同。
<F.控制装置中的处理执行的时机>
接下来,对本实施方式的控制装置100中的处理执行的时机进行说明。图6是表示本实施方式的控制装置100中的处理执行的时机的一例的时间图。在图6所示的时间图表示了下述示例:控制装置100在每个应用执行周期T21对应用程序1进行语法分析,且在每个应用执行周期T22对应用程序2进行语法分析。
参照图6,作为高优先任务,设定有输入/输出刷新处理10、依据序列程序中所含的序列命令的控制指令的输出处理12、依据序列程序中所含的运动命令的控制指令的输出处理16、依据应用程序1的控制指令的输出处理14-1、及依据应用程序2的控制指令的输出处理14-2。
应用程序1的语法分析处理20-1及应用程序2的语法分析处理20-2被分别设定为低优先任务1、低优先任务2。
应用分析部160(图4)在每个应用执行周期T21(图6所示的示例中,为控制周期T1的两倍),对应用程序1的至少一部分进行语法分析而逐次生成内部命令40。所生成的内部命令40被逐次列队(queue)(排队(enqueue))至共享存储器170内的缓冲器(buffer)170-1中。
而且,应用分析部160(图4)在每个应用执行周期T22(图6所示的示例中,为控制周期T1的三倍),对应用程序2的至少一部分进行语法分析而逐次生成内部命令40。所生成的内部命令40被逐次列队(排队)至共享存储器170内的缓冲器170-2中。
另外,也可准备对应用程序1及应用程序2分别进行处理的彼此独立的两个应用分析部160。
低优先任务只要各自能够在应用执行周期T21或T22内完成处理即可。在图6所示的示例中,由于无法同时执行多个低优先任务,因此其中一个低优先任务在中断(挂起(suspend))状态下待机。
高优先任务是在每个控制周期T1执行。在依据应用程序的控制指令的输出处理14-1、14-2中,由应用分析部160所生成的内部命令40是从共享存储器170的缓冲器170-1、170-2分别读出(离队(dequeue)),算出所述控制周期T1中的控制指令。
为了便于说明,例示了应用执行周期T21为控制周期T1的两倍,应用执行周期T22为控制周期T1的三倍的情况,但并不限于此,应用执行周期T21、T22可根据作为对象的应用程序的种类而设定为控制周期T1的整数倍,也可设定为与控制周期T1相同的长度。
<G.共享存储器的存取处理>
接下来,对本实施方式的控制装置100中的对共享存储器的存取处理进行说明。如上所述,在控制装置100中,以不同的执行周期来执行多个程序。这些程序的执行所需的数据与通过这些程序的执行而算出的数据的全部或一部分也可保存在共享存储器170中。保存在共享存储器170中的数据可在程序间相互参照。
以下,对将执行周期并不相同的情况考虑在内的、对共享存储器170的存取处理的一例进行说明。
图7是表示本实施方式的控制装置100的对共享存储器170的存取处理的一例的时间图。图7所示的时间图中,表示PLC处理引擎150及应用分析部160对共享存储器170进行存取的处理例。
PLC处理引擎150在预定的每个控制周期T1,循环(cyclic)地执行序列程序30。在各控制周期T1内,PLC处理引擎150在与现场网络接口176之间执行输入/输出刷新处理。
具体而言,PLC处理引擎150将针对经由现场网络2而连接的现场机器500的控制指令(输出数据)输出至现场网络接口176,并且经由现场网络接口176而获取来自现场机器500的测量值及状态值(输入数据)。PLC处理引擎150与现场网络接口176之间的数据交换(输入/输出刷新处理)是在每个控制周期T1反复执行。现场网络接口176在规定的每个帧传输周期,与现场机器500之间交换输出数据及输入数据。
因此,通过PLC处理引擎150与现场网络接口176之间的每个控制周期T1的数据交换,在PLC处理引擎150与现场机器500之间,能够在每个规定周期更新输出数据及输入数据。
PLC处理引擎150经由现场网络接口176而获取的输入数据的一部分或全部也可被写入共享存储器170。通过所述写入处理,应用分析部160能够对PLC处理引擎150所处理的数据进行存取。
PLC处理引擎150在每个控制周期T1,对共享存储器170进行存取而读取所需的数据。PLC处理引擎150从共享存储器170读取的数据的一部分或全部也可在下个控制周期T1输出至现场网络接口176。通过所述输出处理,也能够将应用分析部160所处理的数据作为控制指令而输出至现场机器500。
在本实施方式的控制装置100中,应用分析部160对应用程序32的语法分析是在与控制周期相同或比控制周期长的每个应用执行周期T2执行。即,应用分析部160在预定的每个应用执行周期,执行应用程序32的语法分析。
在所述应用分析部160对应用程序32的语法分析中,优选的是执行如下所述的针对共享存储器的排他处理,以免处理对象的变量值受到变更。
具体而言,如图7所示,在各应用执行周期,当应用分析部160开始执行对于对象应用程序32的处理时,应用分析部160设定对共享存储器170的写入禁止。即,应用分析部160在每个应用执行周期的从语法分析开始直至执行完成为止的期间,禁止对共享存储器170的写入。另外,在对多个应用程序32分别分配有共享存储器170的区域时,也可仅将分配给各应用程序32的一部分区域设为写入禁止对象。
在由应用分析部160禁止写入的期间(写入禁止期间),禁止从PLC处理引擎150对所述区域的数据写入。因此,PLC处理引擎150尽管在各控制周期T1中的序列程序30的执行前从共享存储器170读取所需的数据,但并不将通过序列程序30的执行而算出的控制指令等输出数据写入至共享存储器170。
在应用执行周期T2中,当对应用程序32的语法分析处理的执行完成时,应用分析部160将通过所述语法分析处理的执行而生成的数据(典型的是记述内部命令40的数据)写入共享存储器170,继而,解除对共享存储器170的写入禁止。
当对共享存储器170的写入禁止被解除时,PLC处理引擎150将通过序列程序30的执行而算出的控制指令等数据写入共享存储器170。通过PLC处理引擎150而写入共享存储器170的数据在下个应用执行周期将被应用分析部160读取。即,应用分析部160在各应用执行周期T2的开始时,能够参照PLC处理引擎150在同一控制周期T1写入共享存储器170的数据。即,PLC处理引擎150与应用分析部160之间的数据交换将在同一控制周期T1内完成。
这样,在本实施方式的控制装置100中,应用分析部160对应用程序32的一次语法分析所需的处理时间(应用执行周期T2)是与序列程序30(序列命令和/或运动命令)的执行周期(控制周期T1)相同或者比执行周期(控制周期T1)长。此种执行形态中,在对应用程序32的一次语法分析处理的中途,为了防止来自序列程序30的控制指令等数据发生变更,应用分析部160在直至自身的处理完成为止的期间,禁止从他者向共享存储器170写入数据。但是,尽管是此数据的写入禁止期间,但仍能从他者读取数据(数据参照)。
应用分析部160在应用执行周期T2中的语法分析处理完成的时间点,解除对共享存储器170的数据写入。所述解除以后,便能够从PLC处理引擎150向共享存储器170写入数据。
应用分析部160在对应用程序32的分析处理的执行中,为了防止与应用程序32相关的信息在中途发生变化,将在各应用执行周期T2中生成的数据在处理完成后写入共享存储器170。
从应用分析部160写入共享存储器170的数据在下个控制周期T1中,从共享存储器170被读出,并与在所述控制周期T1中算出的基于序列程序30的控制指令一同被提供给现场机器500。因此,能够将基于序列程序30的控制指令及基于应用程序32的控制指令同步地提供给现场机器500。
<H.以共同时机为基准的程序执行:其一>
接下来,关于所述图1所示的多个应用程序,对用于实现以共同时机为基准的程序执行的一例进行说明。
序列程序30在每个控制周期对整体执行扫描。与此相对,应用程序32是以解释器方式来逐行地解释及执行程序。本实施方式的控制装置100中,应用分析部160在一定程度上对应用程序32中所含的命令进行语法分析(预读(Look Ahead)),从而能够预知特殊命令的存在。
即,在应用分析部160进行预读动作的情况下,当由应用程序32中记述的命令来生成内部命令时,也参照在成为所述内部命令生成对象的命令以后记述的命令。因此,应用分析部160能够事先确定与多个应用程序32之间应以共同时机为基准而执行的命令(行)。
如图1所示,在多个应用程序32中,分别在记述有应以共同时机为基准来执行的命令的行之前,记述包含预定的关键字(keyword)的特殊命令。在各个特殊命令以后记述的命令是在所有应用程序变得能够开始执行之后,开始执行。
这样,以共同时机为基准来开始执行多个应用程序的命令,根据各个命令而生成的控制指令被同时提供给经由共同的现场网络2而连接的各个控制应用。由此,能够在NC机床与机器人之间实现联动动作。
对于各个应用程序32是否已变得能够开始执行,典型的是由应用调停部162进行管理。
图8是表示在本实施方式的控制装置100中以共同时机为基准的程序执行的实现例的序列图。图8中,作为一例,表示控制装置100分别对应用程序1及应用程序2进行处理的情况。
参照图8,控制指令运算部164读出逐次保存在共享存储器170中的各个内部命令(序列SQ2),算出各个控制指令(序列SQ4)。序列SQ4的处理是在每个控制周期T1反复进行。序列SQ2的处理是根据基于内部命令的控制指令的计算而适当执行。
应用分析部160在通过对应用程序1的语法分析的预读动作而发现特殊命令时(序列SQ10),基于在所述特殊命令以后记述的命令来生成内部命令(序列SQ12)。继而,应用分析部160对基于在应用程序1的所述特殊命令以前记述的命令而生成的先行的内部命令的处理状况进行确认(序列SQ14)。先行的内部命令的处理状况的确认既可通过参照共享存储器170而实现,也可通过参照表示控制指令运算部164中对控制指令的计算处理的状况的旗标(flag)等而实现。
应用分析部160在探测到基于先行的内部命令的控制指令的计算已完成时,将应用程序1的处理已到达特殊命令的情况(即,已变得能够开始执行的情况)通知给应用调停部162(序列SQ16)。
同样,应用分析部160在通过对应用程序2的语法分析的预读动作而发现特殊命令时(序列SQ20),基于在所述特殊命令以后记述的命令来生成内部命令(序列SQ22)。继而,应用分析部160对基于在应用程序2的所述特殊命令以前记述的命令而生成的先行的内部命令的处理状况进行确认(序列SQ24)。
应用分析部160在探测到基于先行的内部命令的控制指令的计算已完成时,将应用程序2的处理已到达特殊命令的情况(即,已变得能够开始执行的情况)通知给应用调停部162(序列SQ26)。
应用调停部162在从应用程序1及应用程序2均收到已变得能够开始执行的通知时,对应用分析部160送出关于应用程序1及应用程序2的执行开始通知(序列SQ30)。
收到执行开始通知后,应用分析部160将在序列SQ12中已生成的内部命令、及在序列SQ22中已生成的内部命令列队(排队)至共享存储器170内的各个缓冲器中(序列SQ28)。
控制指令运算部164从共享存储器170的各个缓冲器中读出(离队)内部命令,并算出各个控制指令。
这样,应用调停部162对直至应用程序1的特殊命令之前记述的命令为止的执行完成、及直至应用程序2的特殊命令之前记述的命令为止的执行完成进行探测,并对应用分析部160通知共同时机。
通过如上所述的内部处理,能够实现以共同时机为基准的程序执行。
图9是表示本实施方式的控制装置100中用于实现以共同时机为基准的程序执行的程序例的示意图。图9所示的序列程序30是面向图2所示的输送器544、NC机床530及机器人520的控制。
图9所示的序列程序30包含:功能块302,规定用于对驱动输送器544的伺服马达542进行控制的运动命令;功能块304,指示用于控制NC机床530的应用程序32-1(NC程序)的执行开始;以及功能块306,指示用于控制机器人520的应用程序32-2(机器人程序)的执行开始。
功能块302、304、306分别通过运转开始旗标成为真(TRUE)来执行指定的处理。
在应用程序32-1及应用程序32-2中,包含用于以共同时机为基准来执行的特殊命令(SyncStart)。在图9所示的应用程序32-1中,在“G01X-10Y-50”这一命令与“G01X20Y10”这一命令之间,配置有特殊命令320-1。而且,在应用程序32-2中,在“MOVE X30 Y10”这一命令与“MOVE X200 Y100”这一命令之间,配置有特殊命令320-2。
在特殊命令320-1及特殊命令320-2中,作为使彼此关联的关键字,附加有作为自变量的“1”。在特殊命令320-1与特殊命令320-2之间,执行使基准时机一致的处理。即,特殊命令320-1及特殊命令320-2除了命令本体(SyncStart)以外,还指定用于使彼此对应的自变量。并且,在特殊命令320-1以后记述的命令及在特殊命令320-2以后记述的命令是以共同时机为基准来执行。
如图9所示,在以共同时机为基准来执行的对象命令之前,配置用于指示使基准时机一致的特殊命令320-1、320-2。将这些特殊命令中的、自变量的值(图9所示的示例中为“1”)为一致者,判断为彼此对应的特殊命令。并且,在记载有这些特殊命令的下一行所记载的命令是以共同时机为基准而执行。图9所示的示例中,在各个特殊命令以后记述的命令彼此是以共同时机为基准而同时开始执行。
在图9所示的示例中,特殊命令320-1及特殊命令320-2相当于如下所述的命令,即,用于从共同时机开始同时输出依据在特殊命令320-1以后记述的命令的控制指令、及依据在特殊命令320-2以后记述的命令的控制指令。
通过准备此种序列程序30及应用程序32,从而能够如所述图1所示,使机器人520及NC机床530以共同时机为基准而进行动作。
<I.以共同时机为基准的程序执行:其二>
接下来,关于所述图1所示的多个应用程序,对用于实现以共同时机为基准的程序执行的另一例进行说明。所述说明中,表示了以共同时机为基准来同时开始执行在特殊命令以后记述的命令的示例,但并不限于此,也可以共同时机为基准而在经过各偏移时间后,开始输出依据其中一个或两个命令的控制指令。
图10是表示本实施方式的控制装置100对机器人520及NC机床530的控制的一例的时间图。参照图10,作为典型的动作例,机器人520拾取由输送器544所搬送的工件W并配置于NC机床530的内部。NC机床530对工件W实施加工处理。并且,机器人520从NC机床530的内部取出工件W,并将所述工件W配置于下个工序的接纳位置。
图10中表示在NC机床530中对工件W的加工即将结束之前的动作例。若设NC机床530对工件W的加工处理在时刻t2结束,则优选机器人520在时刻t2取出加工处理已结束的工件W。因此,机器人520从时刻t1开始动作,以便能够在时刻t2到达NC机床530的工件取出位置。并且,机器人520在时刻t2取出工件W,并从时刻t3开始向下个工序的移动。另一方面,机器人520一取出工件W,NC机床530便立即开始直至用于接纳新的工件W的接纳位置为止的移动。
但是,时刻t2至时刻t3的期间,为了进行机器人520取出工件W的动作,NC机床530停止动作,以免与机器人520发生干涉。即,机器人520以时刻t2为基准来开始动作,另一方面,NC机床530在以时刻t2为基准而使动作停止规定时间后,开始动作。
图10所示的时刻t2直至时刻t3为止的时间相当于所述“偏移时间”的一例。通过使用如上所述的特殊命令,能够实现反映出此种偏移时间的动作。
图11是表示本实施方式的控制装置100中用于实现以共同时机为基准的程序执行的另一程序例的示意图。图11所示的序列程序30是与图9所示的序列程序30同样,但从序列程序30调用的应用程序32-1(NC程序)中记述的特殊命令不同。
更具体而言,在图11所示的应用程序32-1中,取代图9所示的应用程序32-1的特殊命令320-1而记述有特殊命令322。
在特殊命令322中,附加有“1”来作为用于与对应的特殊命令320-2关联的第1自变量。进而,在特殊命令322中,附加有表示偏移时间的长度的“100”来作为第2自变量。
如图11所示,将各个应用程序32中记述的特殊命令中的、自变量的值(图9所示的示例中为“1”)为一致者,判断为彼此对应的特殊命令。并且,记载有这些特殊命令的下一行所记载的命令是以共同时机为基准而执行。但是,在特殊命令322以后记述的命令在待机相当于被指定为第2自变量的“100”的偏移时间后,开始执行。
图12是表示与图11所示的程序例对应的程序执行的时间图。参照图12,当应用程序32-2中所含的特殊命令320-2之前记述的命令的执行完成时,将共同时机设定为基准。
对于应用程序32-2的特殊命令320-2,未设定偏移时间,因此特殊命令320-2以后的命令是在基准时机之后开始执行。
与此相对,对于应用程序32-1的特殊命令322,设定有偏移时间,因此特殊命令322以后的命令是在从基准时机经过指定的偏移时间之后开始执行。
在图12所示的示例中,特殊命令322相当于如下所述的命令,即,用于从共同时机开始经过指定的时间后,输出依据在特殊命令322以后记述的命令的控制指令。
如上所述,通过使用包含偏移时间的特殊命令,能够在维持规定的相对时间关系的状态下执行多个应用程序。
所述图11及图12所示的示例中,表示仅对其中一个应用程序设定偏移时间的示例,但也可对各个应用程序中记述的特殊命令设定偏移时间。通过对各个应用程序设定偏移时间,能够带有固定的时间差来执行多个应用程序,不仅能以共同时机为基准来同时开始执行,而且能够支持多种多样的控制应用。
<J.基于任意条件的多个应用程序的同步执行>
接下来,对基于任意条件的多个应用程序32的同步执行进行说明。所述说明中,表示了下述示例,即,通过在多个应用程序32中记述特殊命令,从而以共同时机为基准来开始执行,但并不限于此,也能够将任意条件的成立作为基准时机。
图13是表示本实施方式的控制装置100中用于实现以序列程序中的处理结果为条件的、应用程序的同步执行的程序例的示意图。图13所示的序列程序30包含:功能块302,规定用于对驱动输送器544的伺服马达542进行控制的运动命令;功能块304,指示用于控制NC机床530的应用程序32-1(NC程序)的执行开始;以及功能块306,指示用于控制机器人520的应用程序32-2(机器人程序)的执行开始。
当由功能块302给予对伺服马达542的控制指令,且工件W的搬送完成时,表示输送器搬送完成的圈303成为真。通过此种序列命令和/或运动命令而更新的数据(旗标值等)在对应用程序32的语法分析中也能够参照。
图13所示的示例中,在应用程序32-3(NC程序)的第1行,记述有“输送器搬送完成=真”这一条件。即,应用程序32-3是以表示输送器搬送完成的圈303成为真为条件而执行。
同样,在应用程序32-4(机器人程序)中,也记述有“输送器搬送完成=真”这一条件。即,应用程序32-4是以表示输送器搬送完成的圈303成为真为条件而执行。
如图13所示,在各个应用程序中,记述有“输送器搬送完成=真”这一条件,可通过此共同条件来设定成为处理执行基准的共同时机。
这样,在本实施方式的控制装置100中,在应用程序中,由序列程序30所更新的变量变得可参照。即,应用程序32-3及应用程序32-4可将由序列程序30所更新的变量指定为执行开始条件。
图13所示的示例中,当“输送器搬送完成”这一变量成为“真”时,对NC程序及机器人程序这两者开始处理。
图14是表示与图13所示的程序例对应的程序执行的时间图。参照图14,“输送器搬送完成”这一变量成为“真”的时机被实质上设定为共同的基准时机。并且,应用程序32-1及应用程序32-2的各命令是从所述共同的基准时机开始执行。这样,通过利用序列程序中的变量,从而能够以共同时机为基准来同时开始执行多个应用程序。
为了便于说明,在图13及图14中,表示了同时开始执行两个应用程序的示例,但并不限于此,也能够同时开始执行三个以上的应用程序。
而且,表示了同时开始执行多个应用程序的示例,但也可设定如上所述的偏移时间。此时,能够通过在各应用程序中,在规定基准时机的条件之后明示地记述应待机的偏移时间而实现。
本实施方式的控制装置100中,并不仅限于在应用程序32中记述特殊命令来设定共同时机的方法,也能采用利用由序列程序所更新的变量来设定共同时机的方法,因此从程序开发者来看,能够提高编程的自由度。
<K.显示功能部>
接下来,对本实施方式的控制装置100的显示功能部174进行说明。控制装置100也可具有以视觉方式对用户提示任意信息的显示部。所述显示部也可具有受理来自用户的操作的输入功能。图15A及图15B是表示本实施方式的具有显示功能部的控制装置的外观的示意图。
参照图15A,控制装置100A包含电源单元140、CPU单元142及显示单元144。CPU单元142提供与所述控制装置100同样的功能。显示单元144包含显示器(display),输出CPU单元142的运算结果等。显示单元144也可具有触控面板(touch panel)等用户输入功能。
图15A所示的控制装置100A在本体中具有包含相对较小型的显示器的显示单元144,在显示单元144上,进行基于共享存储器170上的数据的显示。用户能够通过显示单元144来确认共享存储器170上的数据内容。
参照图15B,控制装置100B包含触控面板146与本体部148,构成为一体型。触控面板146显示本体部148的运算结果等,并且受理用户操作,并将表示此操作内容的信号输出至本体部148。本体部148提供与所述控制装置100同样的功能。
根据图15B所示的控制装置100B的结构,能够在本体中配置相对较大型的显示器,因此不仅能显示基于共享存储器170上的数据的显示,而且能显示应用程序的内容及执行状况等。而且,用户也能通过操作触控面板146来编辑应用程序。
图16是表示本实施方式的控制装置100的对共享存储器170的存取处理的另一例的时间图。图16所示的时间图中,表示显示功能部174及应用分析部160对共享存储器170进行存取的处理例。
参照图16,如上所述,在各应用执行周期中,当应用分析部160开始执行对于对象应用程序32的处理时,应用分析部160设定对共享存储器170的写入禁止。当所述写入禁止期间结束时,执行从共享存储器170向显示功能部174的数据写入。
而且,当经由触控面板等受理了来自用户的操作时,在写入禁止期间以外的时机,将表示来自用户的操作内容的数据写入共享存储器170。另外,关于对共享存储器170的数据写入,也可将指定的处理尚未执行等作为进一步的条件而许可。
如上所述,在本实施方式的控制装置100、100A、100B中,通过显示功能部174对共享存储器170进行存取,从而能够将对应用程序32的处理结果或处理状况等提示给用户,而且,也能够使用户对应用程序32的编辑等成为可能。由此,能够提高执行应用程序32时的可用性(usability)。
<L.附注>
如上所述的本实施方式包含以下所述的技术思想。
[结构1]
一种控制装置,其包括:
存储部108,保存序列程序30与逐次执行的第1应用程序及第2应用程序32,所述第1应用程序及第2应用程序各自包含一个或多个命令;
程序执行部152,在每个控制周期执行所述序列程序而输出控制指令;
分析部160,在与所述控制周期相同或者比所述控制周期长的每个第1周期,对所述第1应用程序的至少一部分进行语法分析而逐次生成第1内部命令,并且,在与所述控制周期相同或者比所述控制周期长的每个第2周期,对所述第2应用程序的至少一部分进行语法分析而逐次生成第2内部命令;
共享存储器170,保存由所述分析部所生成的所述第1内部命令及第2内部命令;以及
指令运算部164,依照所述第1内部命令及第2内部命令,在每个所述控制周期输出各个控制指令,
当所述第1应用程序包含第1特殊命令320-1、322,所述第2应用程序包含与所述第1特殊命令对应的第2特殊命令320-2时,所述指令运算部以共同时机为基准,而输出依据在所述第1应用程序中于所述第1特殊命令以后记述的命令的控制指令、及依据在所述第2应用程序中于所述第2特殊命令以后记述的命令的控制指令。
[结构2]
根据结构1所述的控制装置,其还包括:调停部162,对直至所述第1特殊命令之前记述的命令为止的执行完成、及直至所述第2特殊命令之前记述的命令为止的执行完成进行探测,对所述分析部通知所述共同时机。
[结构3]
根据结构1或结构2所述的控制装置,其中,所述第1特殊命令320-1及所述第2特殊命令320-2包含一命令,所述命令用于从所述共同时机开始同时输出依据在所述第1特殊命令以后记述的命令的控制指令、及依据在所述第2特殊命令以后记述的命令的控制指令。
[结构4]
根据结构1或结构2所述的控制装置,其中,所述第1特殊命令322包含一命令,所述命令用于在从所述共同时机经过指定时间后,输出依据在所述第1特殊命令以后记述的命令的控制指令。
[结构5]
根据结构1至结构4中任一项所述的控制装置,其中,所述第1应用程序及所述第2应用程序能够将经所述序列程序更新的变量303指定为执行开始条件。
[结构6]
根据结构1至结构5中任一项所述的控制装置,其中,所述第1特殊命令及第2特殊命令除了命令本体以外,指定用于使彼此对应的自变量。
[结构7]
根据结构1至结构6中任一项所述的控制装置,其中,所述分析部在由所述第1应用程序及第2应用程序中记述的命令来生成内部命令时,也参照成为所述内部命令生成对象的命令以后记述的命令。
[结构8]
根据结构1至结构7中任一项所述的控制装置,其中,所述分析部在预定的每个执行周期执行应用程序的语法分析,在从所述每个执行周期的语法分析的开始直至执行完成为止的期间内,禁止向所述共享存储器的写入。
<M.优点>
本实施方式的控制装置除了包含序列命令及运动命令的序列程序以外,还能够并列地执行一个或多个应用程序。在此种并列执行中,也能够在每个控制周期输出依据各个命令的控制指令,因此不论是序列程序还是应用程序,均能够实现相同的控制精度。
本实施方式的控制装置在并列执行多个应用程序时,能够使各个应用程序所控制的控制应用之间的联动动作以控制周期来同步。或者,也能够使控制应用之间的动作错开以控制周期为单位规定的偏移时间而联动动作。通过提供此种细致的联动动作,也能够使设备更有效率地动作,由此,也能够提高生产效率。
应认为,本次揭示的实施方式在所有方面仅为例示而非限制者。本发明的范围是由权利要求而非所述说明所示,且意图包含与权利要求均等的含义及范围内的所有变更。
Claims (6)
1.一种控制装置,其特征在于,包括:
存储部,保存序列程序与逐次执行的第1应用程序及第2应用程序,所述第1应用程序及第2应用程序各自包含多个命令;
程序执行部,在每个控制周期执行所述序列程序而输出第1控制指令;
分析部,在与所述控制周期相同或者比所述控制周期长的每个第1周期,对所述第1应用程序的至少一部分进行语法分析而逐次生成第1内部命令,并且,在与所述控制周期相同或者比所述控制周期长的每个第2周期,对所述第2应用程序的至少一部分进行语法分析而逐次生成第2内部命令;
共享存储器,保存由所述分析部所生成的所述第1内部命令及第2内部命令;以及
指令运算部,依照所述第1内部命令及第2内部命令,在每个所述控制周期输出第2控制指令,
当所述第1应用程序包含第1特殊命令,所述第2应用程序包含与所述第1特殊命令对应的第2特殊命令时,所述指令运算部以共同时机为基准,而输出依据在所述第1应用程序的所述多个命令中于所述第1特殊命令以后记述的命令的所述第2控制指令的第1部分、及依据在所述第2应用程序的所述多个命令中于所述第2特殊命令以后记述的命令的所述第2控制指令的第2部分,其中,所述控制装置还包括:
调停部,对直至在所述第1应用程序的所述多个命令中于所述第1特殊命令之前记述的命令为止的执行完成、及直至在所述第2应用程序的所述多个命令中于所述第2特殊命令之前记述的命令为止的执行完成进行探测,对所述分析部通知所述共同时机,其中
所述分析部在由所述第1应用程序中记述的命令来生成第1内部命令时,也参照成为所述第1内部命令的生成对象的命令以后记述的命令,以及
所述分析部在由所述第2应用程序中记述的命令来生成第2内部命令时,也参照成为所述第2内部命令的生成对象的命令以后记述的命令。
2.根据权利要求1所述的控制装置,其特征在于,
所述第1特殊命令及所述第2特殊命令包含一命令,所述命令用于从所述共同时机开始同时输出依据在所述第1特殊命令以后记述的命令的所述第2控制指令的所述第1部分、及依据在所述第2特殊命令以后记述的命令的所述第2控制指令的所述第2部分。
3.根据权利要求1所述的控制装置,其特征在于,
所述第1特殊命令包含一命令,所述命令用于在从所述共同时机经过指定时间后,输出依据在所述第1特殊命令以后记述的命令的所述第2控制指令的所述第1部分。
4.根据权利要求1所述的控制装置,其特征在于,
所述第1应用程序及所述第2应用程序将经所述序列程序更新的变量指定为执行开始条件。
5.根据权利要求1所述的控制装置,其特征在于,
所述第1特殊命令及第2特殊命令除了命令本体以外,指定用于使彼此对应的自变量。
6.根据权利要求1所述的控制装置,其特征在于,
所述分析部在预定的每个执行周期执行应用程序的语法分析,
在从所述每个执行周期的语法分析的开始直至执行完成为止的期间内,禁止向所述共享存储器的写入。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017-190344 | 2017-09-29 | ||
JP2017190344A JP6950415B2 (ja) | 2017-09-29 | 2017-09-29 | 制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109581976A CN109581976A (zh) | 2019-04-05 |
CN109581976B true CN109581976B (zh) | 2021-08-20 |
Family
ID=62684593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810600587.8A Active CN109581976B (zh) | 2017-09-29 | 2018-06-12 | 控制装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10908577B2 (zh) |
EP (1) | EP3462255B1 (zh) |
JP (1) | JP6950415B2 (zh) |
CN (1) | CN109581976B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10902577B2 (en) | 2017-06-19 | 2021-01-26 | Apeel Technology, Inc. | System and method for hyperspectral image processing to identify object |
DE102018214417B3 (de) * | 2018-08-27 | 2019-07-25 | Volkswagen Aktiengesellschaft | Verfahren zur Programmierung eines Roboters sowie Recheneinrichtung und Computerprogramm |
CN113812168B (zh) | 2019-05-13 | 2024-10-01 | 株式会社安川电机 | 机器控制系统、机器以及通信方法 |
JP6915759B1 (ja) * | 2019-05-13 | 2021-08-04 | 株式会社安川電機 | マシン制御システム、プログラム、マシン、システム及びデバイス |
JP7277292B2 (ja) * | 2019-07-08 | 2023-05-18 | ファナック株式会社 | Plc装置 |
JP7318406B2 (ja) * | 2019-08-07 | 2023-08-01 | オムロン株式会社 | 制御装置 |
JP7332443B2 (ja) | 2019-11-20 | 2023-08-23 | ファナック株式会社 | ロボット制御装置及びロボット制御方法 |
JP7294085B2 (ja) * | 2019-11-25 | 2023-06-20 | オムロン株式会社 | 制御システム、制御装置および制御方法 |
CN115515759A (zh) * | 2020-05-28 | 2022-12-23 | 发那科株式会社 | 控制装置 |
WO2022004649A1 (ja) | 2020-06-30 | 2022-01-06 | ファナック株式会社 | 数値制御システム |
US20240342900A1 (en) | 2021-08-24 | 2024-10-17 | Fanuc Corporation | Numerical control system |
WO2024257172A1 (ja) * | 2023-06-12 | 2024-12-19 | ファナック株式会社 | Plcプログラミング装置およびプログラム |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5815399A (en) * | 1994-12-07 | 1998-09-29 | Fanuc Ltd | Multi-path synchronization system for CNC controller |
CN101526805A (zh) * | 2009-04-02 | 2009-09-09 | 陈丽黄 | Plc模拟控制系统及其模拟控制方法 |
CN201716564U (zh) * | 2010-06-25 | 2011-01-19 | 中国科学院沈阳自动化研究所 | 高性能可编程控制器专用处理器体系结构 |
CN103562807A (zh) * | 2011-07-15 | 2014-02-05 | 欧姆龙株式会社 | Plc的cpu单元、plc用的系统程序、保存有plc用的系统程序的记录介质、plc系统、plc辅助装置、plc辅助程序以及保存有plc辅助程序的记录介质 |
EP2685377B1 (de) * | 2012-07-10 | 2018-01-31 | Siemens Aktiengesellschaft | Verfahren und Anordnung zur Synchronisierung von zwei auf einer Hardware-Plattform ablaufenden Prozessen |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60245002A (ja) | 1984-05-18 | 1985-12-04 | Fanuc Ltd | ドウエルに対するスキツプ装置 |
JPH01280804A (ja) | 1988-05-06 | 1989-11-13 | Mitsubishi Electric Corp | 制御装置 |
JP3211422B2 (ja) | 1992-11-11 | 2001-09-25 | ブラザー工業株式会社 | ロボット制御装置 |
JP3332061B2 (ja) | 1995-02-28 | 2002-10-07 | 豊和工業株式会社 | 制御装置 |
JP2003228418A (ja) | 2002-02-06 | 2003-08-15 | Toshiba Mach Co Ltd | 産業用ロボットの制御装置およびその装置における表示方法 |
JP2011062798A (ja) | 2009-09-18 | 2011-03-31 | Mitsubishi Electric Corp | ロボット制御装置およびロボット制御方法 |
US8706262B2 (en) * | 2011-03-15 | 2014-04-22 | Omron Corporation | CPU unit of PLC, system program for PLC, and recording medium storing system program for PLC |
US8639364B2 (en) * | 2011-07-13 | 2014-01-28 | KUKA Robotics Corporation | Uniform synchronizing robot control and deadlock detection in uniform synchronization |
JP5752179B2 (ja) | 2013-06-11 | 2015-07-22 | ファナック株式会社 | 工作機械とロボットを制御する制御装置 |
JP2016194831A (ja) * | 2015-03-31 | 2016-11-17 | オムロン株式会社 | 制御装置 |
-
2017
- 2017-09-29 JP JP2017190344A patent/JP6950415B2/ja active Active
-
2018
- 2018-06-08 EP EP18176693.2A patent/EP3462255B1/en active Active
- 2018-06-12 US US16/005,683 patent/US10908577B2/en active Active
- 2018-06-12 CN CN201810600587.8A patent/CN109581976B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5815399A (en) * | 1994-12-07 | 1998-09-29 | Fanuc Ltd | Multi-path synchronization system for CNC controller |
CN101526805A (zh) * | 2009-04-02 | 2009-09-09 | 陈丽黄 | Plc模拟控制系统及其模拟控制方法 |
CN201716564U (zh) * | 2010-06-25 | 2011-01-19 | 中国科学院沈阳自动化研究所 | 高性能可编程控制器专用处理器体系结构 |
CN103562807A (zh) * | 2011-07-15 | 2014-02-05 | 欧姆龙株式会社 | Plc的cpu单元、plc用的系统程序、保存有plc用的系统程序的记录介质、plc系统、plc辅助装置、plc辅助程序以及保存有plc辅助程序的记录介质 |
EP2685377B1 (de) * | 2012-07-10 | 2018-01-31 | Siemens Aktiengesellschaft | Verfahren und Anordnung zur Synchronisierung von zwei auf einer Hardware-Plattform ablaufenden Prozessen |
Also Published As
Publication number | Publication date |
---|---|
CN109581976A (zh) | 2019-04-05 |
US10908577B2 (en) | 2021-02-02 |
US20190101881A1 (en) | 2019-04-04 |
EP3462255B1 (en) | 2021-07-28 |
JP2019067045A (ja) | 2019-04-25 |
JP6950415B2 (ja) | 2021-10-13 |
EP3462255A1 (en) | 2019-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109581976B (zh) | 控制装置 | |
CN109582397B (zh) | 控制系统以及控制装置 | |
CN109557890B (zh) | 控制装置 | |
CN109388107B (zh) | 控制装置 | |
US10496079B2 (en) | Control device and control method | |
JP7020198B2 (ja) | 制御装置および制御システム | |
EP3457239B1 (en) | Control device and control method | |
JP7231073B2 (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 |