CN109491324B - 控制装置及控制方法 - Google Patents
控制装置及控制方法 Download PDFInfo
- Publication number
- CN109491324B CN109491324B CN201810151496.0A CN201810151496A CN109491324B CN 109491324 B CN109491324 B CN 109491324B CN 201810151496 A CN201810151496 A CN 201810151496A CN 109491324 B CN109491324 B CN 109491324B
- Authority
- CN
- China
- Prior art keywords
- program
- control
- state
- command
- motors
- 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
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/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/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
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/32—Operator till task planning
- G05B2219/32059—Send code, data for workpiece to each workstation to be used, update 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
- 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/34—Director, elements to supervisory
- G05B2219/34288—Plc as main controller for cnc
-
- 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/34302—Plc controls movement via nc, no direct interface to servo
-
- 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/43—Speed, acceleration, deceleration control ADC
- G05B2219/43196—Using two motors
Landscapes
- Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Manufacturing & Machinery (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Numerical Control (AREA)
- Programmable Controllers (AREA)
Abstract
本发明提供一种能以更少的工作量实现依顺序程序的控制及依数控程序的控制的控制装置及控制方法。能控制多个电机的控制装置包含:第一程序执行部,在每个控制周期中执行顺序程序;第二程序执行部,按照数控程序算出对各电机的指令值;以及状态管理部,管理与由多个电机中被预先指定的多个电机组成的群相关联的控制状态。状态管理部根据来自第一程序执行部的指示及第二程序执行部中的数控程序的执行状态的至少一者,更新控制状态。
Description
技术领域
本公开涉及一种能控制多个电机的控制装置及此控制装置的控制方法。
背景技术
一直以来,按照计算机数控(Computer Numerical Control,CNC)的工作机械(以下也统称为“CNC工作机械”)被用于各种生产现场。对于CNC工作机械而言,经常通过组合被称为“轴”的多个机械构成以进行处理。此种情况下,存在要统一控制多个轴等需求(needs)。
例如国际公开第2016/157395号(专利文献1)中公开了一种数控装置,此数控装置能以单系统或组合两个以上的多系统使机械构成形成群,并利用成群的机械构成对工件(work)进行加工。
[现有技术文献]
[专利文献]
[专利文献1]国际公开第2016/157395号
发明内容
[发明所要解决的问题]
所述国际公开第2016/157395号(专利文献1)中公开的数控装置构成为分别配置有对各加工程序进行分析的程序分析部、及处理梯形图程序(1adder program)的可编程逻辑控制器(programmable logic controller,PLC)。此构成中,在利用CNC工作机械对工件进行加工时,例如对喷射切削油的喷射器的驱动进行控制,并对搬送经CNC工作机械进行了加工的工件的传送带(belt conveyor)的驱动进行控制,但无法直接掌握CNC工作机械各轴的状态。因此,例如存在以下问题:在PLC执行与CNC工作机械各轴的状态相应的处理的情况下,必须安装用于取得CNC工作机械各轴的状态的程序及其机构,需要大量成本及工作量等。
本公开用于解决此种问题,其一个目的在于提供一种能以更少的工作量实现依顺序程序的控制及依数控程序的控制的控制装置。
[解决问题的技术手段]
本发明的一例中,提供一种能控制多个电机的控制装置。控制装置包含:第一程序执行部,在每个控制周期中执行顺序程序;第二程序执行部,按照数控程序算出对各电机的指令值;以及状态管理部,管理与由多个电机中被预先指定的多个电机组成的群相关联的控制状态。顺序程序包含用于控制第二程序执行部中的数控程序的执行处理的控制命令。第一程序执行部按照顺序程序所含的控制命令,给出与第二程序执行部中的数控程序的执行有关的指示。状态管理部根据来自第一程序执行部的指示及第二程序执行部中的数控程序的执行状态的至少一者,更新控制状态。
根据本公开,无需制作特别的程序便可管理由多个电机中被预先指定的多个电机组成的群的控制状态,因此能减少制作对群进行控制的程序时的工作量。
所述公开中,第一程序执行部也可按照顺序程序所含的参照控制状态的命令,反映状态管理部管理的控制状态的值且依顺序程序算出运算结果。
根据本公开,能在顺序程序中更容易地实现对属于群的各电机的控制逻辑。
所述公开中,状态管理部也能以可参照的方式保存控制状态的值以作为结构体变量的成员。
根据本公开,能提高程序的再利用性等。
所述公开中,结构体变量也可具有将对应群设定为其他成员的信息。
根据本公开,能更简单地制作程序。
所述公开中,状态管理部也可使控制状态在第二程序执行部执行数控程序的过程中可取的多个状态、与第二程序执行部不执行数控程序的过程中可取的多个状态之间过渡。
根据本公开,能提供反映出第二程序执行部在数控程序中需要管理的内容等的控制状态的值。
所述公开中,控制装置也可还包含共享存储器,此共享存储器保存状态管理部管理的控制状态的值。
根据本公开,能容易地从第一程序执行部及第二程序执行部存取控制状态的值。
所述公开中,顺序程序所含的控制命令也能以功能块的形式规定。
根据本公开,能提高顺序程序的再利用性,并且也能提高顺序程序的品质。
所述公开中,控制装置上也能连接支持装置,此支持装置提供接受属于群的多个电机的指定的用户接口。
根据本公开,能容易地设定多个电机所属的群。
所述公开中,控制状态也可表示将群所含的多个电机汇总的单一状态。
根据本公开,能提供适于一起控制多个电机的控制状态的值。
本公开的另一例中,提供一种能控制多个电机的控制装置的控制方法。控制方法包括以下步骤:在每个控制周期中执行顺序程序;按照数控程序算出对各电机的指令值;以及管理与由多个电机中被预先指定的多个电机组成的群相关联的控制状态。顺序程序包含用于控制数控程序的执行处理的控制命令。数控程序的执行是由按照顺序程序所含的控制命令的指示所控制。管理控制状态的步骤包括:根据按照顺序程序所含的控制命令的指示及数控程序的执行状态的至少一者,更新控制状态的步骤。
根据本公开,无需制作特别的程序便可管理由多个电机中被预先指定的多个电机组成的群的控制状态,因此能减少制作对群进行控制的程序的工作量。
[发明的效果]
根据本公开的一例,能提供一种能以更少的工作量实现依顺序程序的控制及依数控程序的控制的控制装置。
附图说明
图1为表示本实施例的控制装置的应用场景的一例的示意图。
图2为表示本实施例的控制系统的整体构成例的示意图。
图3为表示本实施例的控制装置的硬件构成例的方块图。
图4(A)、图4(B)为对本实施例的控制装置中的中间代码的生成例进行说明的示意图。
图5为表示本实施例的控制装置对构成轴群的各电机的指令值的时间波形的一例的图。
图6为表示连接于本实施例的控制装置的支持装置上提供的用户接口画面的一例的示意图。
图7为表示本实施例的控制装置中的轴群的状态过渡的一例的图。
图8为表示本实施例的控制装置中的与CNC_CoordControl(CNC坐标控制)命令对应的功能块的示意图。
图9为表示本实施例的控制装置中的与轴群相关联的结构体变量的一例的图。
图10为表示本实施例的控制装置中执行的顺序程序的代码例的图。
图11为表示本实施例的控制装置中的程序的执行动作例的时间图。
[符号的说明]
1:控制系统;
2:现场网络;
6:上级网络;
30:顺序程序;
32:数控程序(NC程序);
34:系统程序;
36:设定信息;
100:控制装置;
102:处理器;
104:芯片组;
106:主存储器;
108:存储部;
110:上级网络控制器;
112:USB控制器;
114:存储卡接口;
116:存储卡;
120:内部总线控制器;
122:I/O单元;
130:现场网络控制器;
150:顺序程序执行部;
152:顺序命令解释部/第一程序执行部;
154:库;
156:动作指令值运算部;
160:数控程序执行部(NC程序执行部)/第二程序执行部;
162:解释器;
164:中间代码缓冲器;
166:中间代码;
168:指令值运算部;
170:状态管理部;
172:控制状态;
180:输入输出刷新处理部;
182、184:指令值;
190:共享存储器;
200:支持装置;
300:伺服装置;
400:显示装置;
500:现场设备;
510:远程I/O装置;
520_1、520_2、520_3、530:伺服驱动器;
522_1、522_2、522_3、532:伺服电机;
540:工作机械;
550:搬送装置;
554:作业台;
600、650:功能块;
601:CNC坐标系确定信息;
602:数控输入;
603:数控输出;
604:起效指示输入;
605:有效状态输入;
606:忙碌状态输入;
607:错误状态输入;
608:错误代码;
620:结构体变量;
622、624:阶层;
630:代码;
640:功能块/控制命令;
642、652:接点/命令;
644:接点;
700:轴设定画面/用户接口;
702:坐标系编号输入栏;
706:电机构成数输入栏;
708:逻辑电机编号输入栏;
710:构成电机编号输入栏;
712:分配轴输入栏;
714:成员设定栏;
720:制作按钮;
S10、S12、S14、S16、S18、S20、S22、S24、S26:步骤;
ST1~ST7:状态;
t1、t2:时刻;
W:工件。
具体实施方式
一方面参照附图一方面对本发明的实施例进行详细说明。此外,对图中的相同或相应部分标注相同符号,不重复进行说明。
<A.应用例>
首先,参照图1对应用本发明的场景的一例进行说明。图1为表示本实施例的控制装置100的应用场景的一例的示意图。
参照图1,控制装置100构成为能控制多个电机。图1所示的应用例中,作为电机的一例,对伺服电机522_1、伺服电机522_2、伺服电机522_3(以下也统称为“伺服电机522”)进行控制。伺服电机522_1、伺服电机522_2、伺服电机522_3是由经由现场网络2与控制装置100连接的伺服驱动器520_1、伺服驱动器520_2、伺服驱动器520_3(以下统称为“伺服驱动器520”)驱动。即,从控制装置100对伺服驱动器520给予通过下文所述的处理算出的各指令值。
本发明的“电机”为以下概念:不限于伺服电机,包含包括同步电机及感应电机的任意驱动装置。另外,本发明的“电机”例如也可包含直线电机(linear motor)那样的进行直线运动而非旋转运动的装置。在驱动伺服电机522的情况下,利用伺服驱动器520驱动电机的装置也是根据电机的种类而适当选择。
例如在工业用机器人或CNC工作机械对工件进行某些动作(action)的情况下,需要将多个电机互联驱动。即,需要对多个电机同步给予各自的指令值。本说明书中,将需要同步给予各自的指令值的多个电机称为“群”。
属于任意群的各电机使物体移动的方向(轴向)通常彼此不同,也将由所述轴定义的空间称为“坐标系”。例如在属于某个群的三个电机分别驱动CNC工作机械的X轴、Y轴、Z轴的情况下,属于此群的电机与“X-Y-Z坐标系”相关联。以下的说明中,有时也着眼于所述各电机使物体移动的轴向而将各群称为“轴群”,另外,有时也将“轴群”记载为“CNC坐标系”,此“CNC坐标系”是由属于所述群的电机被分配的轴来定义。换言之,“CNC坐标系”相当于将属于群的多个电机构成的CNC工作机械直接抽象化的概念。
通常一个轴群中电机数与轴数一致,但有时也利用多个电机旋转驱动一个轴,此情况下电机数多于轴数。
图1所示的应用例中,从控制装置100经由现场网络2对各伺服驱动器520发送(通信)对应的指令值,但不限于此,也可用配线将控制装置100与伺服驱动器520连接而直接传送表示指令值的信号。
控制装置100包含存储部108、顺序程序执行部150、数控程序执行部160(以下也简称为“NC程序执行部”)及状态管理部170,此状态管理部170管理与由多个电机中被预先指定的多个电机组成的群(轴群)相关联的控制状态172。控制状态172表示将轴群所含的多个电机汇总的单一状态。即,控制状态172表示作为整个轴群的状态值。
存储部108中存储顺序程序30及数控程序32(以下也简称为“NC程序”)。
顺序程序执行部150为在每个控制周期中执行顺序程序30的第一程序执行部的一例,NC程序执行部160为按照NC程序32算出对各电机的指令值184的第二程序执行部的一例。
顺序程序执行部150循环执行顺序程序30,由此算出一个或多个指令值182。
本发明的“顺序程序”为包含每当执行时被整体扫描且每当执行时算出一个或多个指令值的程序的概念。“顺序程序”包含由按国际电工委员会(InternationalElectrotechnical Commission,IEC)规定的国际标准IEC61131-3记述的一个或多个命令组成的程序。“顺序程序”中可包含顺序命令和/或动作命令。此外,“顺序程序”不限于按国际标准IEC61131-3记述的命令,也可包含可编程控制器(PLC)的制造商或供应商(vendor)等独自规定的命令。如此,“顺序程序”适于要求即时性及高速性的控制。
本说明书中,“顺序命令”基本上为包含由算出输入值、输出值、内部值等的一个或多个逻辑电路所记述的一个或多个命令的术语。基本上在一次控制周期中将“顺序命令”从最初开始执行到最末,并在下一控制周期中再次将“顺序命令”从最初开始执行到最末。本说明书中,“动作命令”为包含用于对伺服电机等致动器算出位置、速度、加速度、急动度、角度、角速度、角加速度、角急动度等数值作为指令的一个或多个命令的术语。“动作命令”也是在一次控制周期中,将由功能块或数值算出式等记述的动作命令的程序(动作程序)从最初开始执行到最末。即,在每个控制周期中算出(更新)指令值。
典型而言,由顺序程序执行部150算出的一个或多个指令值182包含按照顺序命令决定的数字输出的开/关、及按照动作命令算出的模拟输出。
NC程序执行部160依次解释NC程序32,由此以能实现NC程序32中记述的轨迹的方式依次更新指令值184。如上所述,在设定了轴群的情况下,NC程序执行部160同步输出对属于同一轴群的多个电机的各指令值184。
本发明的“数控程序”包含记述CNC的行为的程序。典型而言,“数控程序”是以逐行依次解释并执行的解释器(interpreter)方式记述,被依次解释及执行。作为一例,NC程序大多情况下是使用“G代码”记述,但不限于此,可采用任意语言。
顺序程序30包含用于控制NC程序执行部160中的NC程序32的执行处理的控制命令。而且,通过顺序程序执行部150执行顺序程序30,而给出与NC程序执行部160的执行有关的指示。例如通过顺序程序执行部150执行顺序程序30所含的控制命令,能使NC程序执行部160中的NC程序32的执行处理开始或停止。
轴群是根据对象装置的机构而任意设定。存储部108中存储的设定信息36包括轴群的设定。
典型而言,将从顺序程序执行部150输出的一个或多个指令值182、从NC程序执行部160输出的指令值184、及状态管理部170管理的控制状态172保存在共享存储器190中。其中,也可设置用于保存各数据的专用区域。
通过设置用于保存状态管理部170管理的控制状态的值的共享存储器190,能从顺序程序执行部150及NC程序执行部160容易地进行存取。
输入输出刷新处理部180在每个既定周期中将包含指令值182及指令值184的输出数据发送给现场侧,并且从现场侧取得测量值等输入数据。本说明书中,将控制装置100与现场侧之间的输入数据及输出数据的交换也称为“输入输出刷新处理”。
状态管理部170根据顺序程序执行部150对NC程序执行部160的指示及NC程序执行部160中的NC程序32的执行状态的至少一者,更新控制状态172。控制状态172含有表示各轴群的状态的信息,例如对于特定轴群,包含“动作中”、“停止中”、“减速中”等状态信息等。
本实施例的控制装置100中,分别执行在每个控制周期中被扫描的顺序程序30及依次解释的NC程序32,算出各指令值。通过使顺序程序30中包含既定的控制命令,能控制NC程序执行部160中的NC程序32的执行时机等。
另外,本实施例的控制装置100适当更新与任意轴群相关联的控制状态172。顺序程序执行部150能参照控制状态172的值,动态控制NC程序执行部160中的NC程序32的执行等。
另外,本实施例的控制装置100中,顺序程序执行部150能通过参照控制状态172的值而掌握NC程序执行部160的状态,因此无需用于在顺序程序执行部150与NC程序执行部160之间交换状态信息的程序等。因此,能减少制作顺序程序30的工作量。结果能降低程序制作的成本,并且也能减小程序体积本身。
以下,作为本发明的更具体的应用例,对本实施例的控制装置100的更详细的构成及处理进行说明。
<B.控制系统的整体构成例>
其次,对包含本实施例的控制装置的控制系统1的整体构成例进行说明。图2为表示本实施例的控制系统1的整体构成例的示意图。图2中示出以本实施例的控制装置100为中心的控制系统1。
控制装置100相当于控制各种设备或装置等控制对象的工业用控制器。控制装置100为执行下文将述那样的控制运算的一种计算机,典型而言能以可编程控制器(PLC)的形式具体化。控制装置100也可经由现场网络2与各种现场设备(field device)500连接。控制装置100经由现场网络2等在与一个或多个现场设备500之间交换数据。通常“现场网络”也被称为“现场总线”,但为了简化说明,在以下的说明中统称为“现场网络”。即,本说明书的“现场网络”为除了狭义的“现场网络”以外还可包括“现场总线”的概念。
控制装置100所执行的控制运算包括:收集现场设备500所收集或生成的数据(输入数据)的处理(输入处理)、生成对现场设备500的指令值等数据(输出数据)的处理(运算处理)、将所生成的输出数据发送给对象的现场设备500的处理(输出处理)等。
现场网络2优选采用进行固定周期通信的总线或网络。此种进行固定周期通信的总线或网络已知以太网控制自动化技术(Ether Control Automation Technology,EtherCAT)(注册商标)、以太网工业协议(EtherNet Industry Protocol,EtherNet/IP)(注册商标)、设备网(DeviceNet)(注册商标)、混合网(CompoNet)(注册商标)等。在保证数据到达时间的方面,优选EtherCAT(注册商标)。
现场网络2上能连接任意的现场设备500。现场设备500包含对处于现场侧的制造装置或生产线等给予某些物理作用的致动器、及在与现场之间交换信息的输入输出装置等。
虽经由现场网络2在控制装置100与现场设备500之间进行数据交换,但这些交换数据是以几百微秒(μsec)级~几十毫秒(msec)级的极短周期更新。
图2所示的构成例中,控制装置100控制CNC工作机械540及对CNC工作机械540供给工件W的搬送装置550。
CNC工作机械540按照指定位置或速度等的NC程序32来控制加工中心(machiningcenter)等,由此对任意对象物进行加工。CNC工作机械540不限于图示,能应用于车床加工、铣床、放电加工等的任意加工装置。
CNC工作机械540及搬送装置550是按照来自控制装置100的指令值而被驱动。将由搬送装置550搬送的工件W配置在作业台554上,并由CNC工作机械540进行指定的加工。
图2所示的构成例中,现场设备500包含远程输入/输出(Input/Output,I/O)装置510、伺服驱动器520_1、伺服驱动器520_2、伺服驱动器520_3及伺服电机522_1、伺服电机522_2、伺服电机522_3、以及伺服驱动器530。
典型而言,远程I/O装置510包含经由现场网络2进行通信的通信耦合器、及用于进行输入数据的取得及输出数据的输出的输入输出部(以下也称为“I/O单元”)。远程I/O装置510上,连接有输入继电器或各种传感器(例如模拟传感器、温度传感器、振动传感器等)等收集输入数据的装置,以及输出继电器、接触器、伺服驱动器及其他任意致动器等对现场给予某些作用的装置。
现场设备500不限于所述设备,能采用收集输入数据的任意设备(例如视觉传感器等)、给出依输出数据的某些作用的任意设备(例如逆变器装置等)、各种机器人等。
伺服电机522_1、伺服电机522_2、伺服电机522_3是作为CNC工作机械540的一部分而组入,伺服驱动器530对连结于搬送装置550的传送带的伺服电机532进行驱动。伺服驱动器520_1~伺服驱动器520_3、伺服驱动器530按照来自控制装置100的指令值(例如位置指令值或速度指令值等)驱动对应的伺服电机。
作为一例,图2所示的构成例中,伺服电机522_1、伺服电机522_2、伺服电机522_3为CNC工作机械540的X轴、Y轴、Z轴的驱动源,所述三轴优选一体控制。以下的说明中,将伺服电机522_1、伺服电机522_2、伺服电机522_3设定为一个轴群。
本实施例的控制装置100不仅能通过执行顺序程序30而生成按照顺序命令及动作命令决定的指令值,而且能通过执行NC程序32而生成用于控制CNC工作机械540的行为的指令值。其中,利用顺序程序30所含的控制命令来控制NC程序32的执行开始及执行结束等。
控制装置100也经由上级网络6连接于其他装置。上级网络6也可采用作为普通网络协议的以太网(Ethernet)(注册商标)或EtherNet/IP(注册商标)。更具体而言,上级网络6上也可连接着一个或多个伺服装置300及一个或多个显示装置400。
关于伺服装置300,设想数据库系统(database system)、制造执行系统(Manufacturing Execution System,MES)等。制造执行系统取得来自控制对象的制造装置或设备的信息并监视及管理整个生产,也能操作订货(order)信息、品质信息、出货信息等。不限于此,也可将提供信息系统服务的装置连接于上级网络6。关于信息系统服务,设想取得来自控制对象的制造装置或设备的信息并进行宏观分析或微观分析等的处理。例如设想数据挖掘(data mining)或机械学习工具等,所述数据挖掘提取来自控制对象的制造装置或设备的信息中所含的某些特征性倾向,所述机械学习工具用于根据来自控制对象的设备或机械的信息进行机械学习。
显示装置400接受来自用户的操作,对控制装置100输出与用户操作相应的命令等,并且以图形(graphical)的形式显示控制装置100中的运算结果等。
控制装置100上能连接支持装置200。支持装置200为对控制装置100对控制对象进行控制所需要的准备给予支持的装置。具体而言,支持装置200提供:控制装置100所执行的程序的开发环境(程序制作编辑工具、剖析器(parser)、编译器(compiler)等)、用于设定控制装置100及连接于控制装置100的各种设备的构成信息(配置(configuration))的设定环境、将所生成的用户程序输出给控制装置100的功能、在线(on-line)修正/变更控制装置100上执行的用户程序等的功能等。
<C.控制装置的硬件构成例>
其次,对本实施例的控制装置100的硬件构成例进行说明。
图3为表示本实施例的控制装置100的硬件构成例的方块图。参照图3,控制装置100为被称为中央处理器(Central Processing Unit,CPU)单元的运算处理部,包含处理器102、芯片组(chipset)104、主存储器106、存储部(storage)108、上级网络控制器110、通用串行总线(Universal Serial Bus,USB)控制器112、存储卡接口114、内部总线控制器120及现场网络控制器130。
处理器102是由CPU(Central Processing Unit)、微处理器(Micro ProcessingUnit,MPU)、图形处理器(Graphics Processing Unit,GPU)等构成。处理器102也可采用具有多核(core)的构成,也可配置多个处理器102。芯片组104通过控制处理器102及周边元件(element)而实现整个控制装置100的处理。主存储器106是由动态随机存取存储器(Dynamic Random Access Memory,DRAM)或静态随机存取存储器(Static Random AccessMemory,SRAM)等挥发性存储装置等构成。图1所示的共享存储器190典型而言是由主存储器106实现。存储部108例如是由硬盘驱动器(Hard Disk Drive,HDD)或固态驱动器(SolidState Drive,SSD)等非挥发性存储装置等构成。
处理器102读取存储部108中存储的各种程序并在主存储器106中展开执行,由此实现与控制对象相应的控制及下文将述那样的各种处理。存储部108中除了存储用于实现基本功能的系统程序34以外,还存储根据控制对象的制造装置或设备而制作的用户程序(顺序程序30及NC程序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 IntegratedCircuit,ASIC)或现场可编程门阵列(Field-Programmable Gate Array,FPGA)等)来安装所述提供的功能的一部分或全部。或者,也可使用按照通用体系结构(architecture)的硬件(例如以通用个人计算机为基础的工业个人计算机)来实现控制装置100的主要部分。此情况下,也可使用虚拟化技术并行执行用途不同的多个操作系统(Operating System,OS),并且在各OS上执行必要的应用。
图2所示的控制系统1中,控制装置100、支持装置200及显示装置400是分别以个体的形式构成,但也可采用将所述装置的全部或一部分功能归集到单一装置中那样的构成。
<D.程序执行机构>
然后,对本实施例的控制装置100的程序执行机构例进行说明。再次参照图1,控制装置100具有执行顺序程序30的顺序程序执行部150、及执行NC程序32的数控程序执行部160。
更具体而言,顺序程序执行部150包含顺序命令解释部152、库(library)154及动作指令值运算部156。
顺序命令解释部152解释顺序程序30所含的顺序命令,执行指定的顺序运算(逻辑运算)。库154提供与顺序程序30所含的单纯顺序以外的控制命令对应的代码。例如在顺序程序30能使用可进行复合处理的功能块记述那样的情况下,通过参照顺序程序30而取得解释并执行所述功能块所需要的代码。
动作指令值输出部156按照顺序程序30所含的动作命令算出指令值。动作命令利用一个命令在多个控制周期内定义指令值的算出,动作指令值运算部156解释此种动作命令,在每个控制周期中更新动作指令值。
将由顺序程序执行部150的顺序命令解释部152及动作指令值运算部156在每个控制周期中算出的一个或多个指令值182输出给共享存储器190。
另一方面,NC程序执行部160以解释器方式执行NC程序32,算出对各电机的指令值。NC程序执行部160的指令值算出(更新)是在每个控制周期中重复执行。如此,与顺序程序执行部150的指令值算出同步,NC程序执行部160按照NC程序32算出指令值。为了实现此种每个控制周期的指令值算出,NC程序执行部160中使用中间代码,此中间代码用于算出指令值。
更具体而言,NC程序执行部160包含解释器162、中间代码缓冲器164及CNC指令值运算部168。
解释器162解释NC程序32的至少一部分并生成中间代码166。更具体而言,解释器162依次解释NC程序32并生成中间代码166,并且将生成的中间代码166依次存储在中间代码缓冲器164中。解释器162以某种程度事先根据NC程序32进行中间代码166的生成。因此,中间代码缓冲器164中有时也存储着多个中间代码166。本实施例中,解释器162生成用于算出指令值184的轨道,因此有时也被称为“规划器(planner)”。
CNC指令值运算部168按照解释器162事先生成的中间代码166在每个控制周期中算出指令值184。通常NC程序中记述的命令(代码)是依次解释,因此并不保证能在每个运算周期中算出指令值184,但通过利用中间代码166,能实现每个控制周期的指令值184的算出。
解释器162将所生成的中间代码166在中间代码缓冲器164中依次列队(queueing),CNC指令值运算部168按中间代码缓冲器164中的列队次序读取中间代码166。
本发明的“中间代码”为包含用于按照依次解释的程序(原本不适于在每个固定周期中更新指令值等处理)在每个控制周期中算出指令值的任意命令的概念。即,只要CNC指令值运算部168能在每个控制周期中算出指令值184,则中间代码可为任何代码。典型而言,“中间代码”包含一个或多个命令或者一个或多个函数。
将由NC程序执行部160的CNC指令值运算部168在每个控制周期中算出的指令值184输出给共享存储器190。
<E.中间代码>
然后,对NC程序执行部160的解释器162解释NC程序32而生成的中间代码的一例进行说明。
通常NC程序32包含以解释器方式依次解释的代码,依次解释各代码的情况下需要的时间根据各代码记述的内容而变化。即,由于以解释器方式依次解释,因此在每个控制周期中算出指令值并不容易。
因此,本实施例的控制装置100中,NC程序执行部160的解释器162解释NC程序32中记述的一个或多个代码,并根据其解释的内容生成用于在每个控制周期中算出指令值的中间代码166。中间代码166是依NC程序32中记述的一个或多个代码而分别生成,因此通常从一个NC程序32生成多个中间代码166。将生成的中间代码166在NC程序执行部160的中间代码缓冲器164中依次列队。
对于各中间代码166,也可规定以与时间有关的变量为输入且能算出指令值的函数。即,中间代码166也可为用于使NC程序执行部160的CNC指令值运算部168在每个控制周期中更新指令值的函数。通过使用此种函数,CNC指令值运算部168能依次参照所生成的中间代码166算出各控制周期中的指令值。
更具体而言,中间代码166也可为规定时间与指令值的关系的函数。用于规定中间代码166的与时间有关的变量能使用的时刻、从某个基准时机开始的经过时间、控制周期的累计循环数等。
例如若设定为第1个中间代码1在控制周期10倍的期间中规定指令值,则NC程序执行部160的CNC指令值运算部168将中间代码1列队,在10个控制周期的期间中周期性算出指令值。同样地,其他中间代码2及中间代码3也基本上能在多个控制周期中算出指令值。
因此,若NC程序执行部160的解释器162根据NC程序32生成中间代码的处理与NC程序执行部160的CNC指令值运算部168运算指令值的处理相比足够提前地执行,则能与依顺序程序30的处理同步而同步执行依NC程序32的处理。
图4(A)、图4(B)为用于对本实施例的控制装置100中的中间代码的生成例进行说明的示意图。参照图4(A),当NC程序执行部160的解释器162依次执行NC程序32时,NC程序32所含的各命令被解释((1)NC程序解释)。通过此命令解释而在内部生成规定的轨道((2)轨道生成(轴个数))。可对属于轴群的各轴分别生成轨道,或也可生成规定属于轴群的轴的整体行为的轨道。
最终,解释器162将生成的轨道分割成既定的区间后,生成规定各区间的轨道的一个或多个函数(中间代码)((3)中间代码生成(轴个数))。一个或多个函数也是可对属于轴群的各轴分别生成,或也可生成规定属于轴群的轴的整体行为的函数。
也可利用共同的中间代码规定多个区间,或也可将一个区间进一步分割而生成各自的共同代码。即,无需使NC程序32的命令或根据所述命令规定的轨道的区间与生成的中间代码的个数一致,只要任意生成即可。另外,关于中间代码166的输出形态也可考虑所要求的控制周期的时间宽等而适当设计。
如图4(A)所示,中间代码166的一例也可为规定时间与指令值的关系的函数。图4(A)所示的示例中,在内部生成的轨道能以直线的组合来规定。作为一例,关于X轴,能输出针对每个直线区间(区间1~区间3)的轨道表示时间与速度的关系的函数Fx1(t)、函数Fx2(t)、函数Fx3(t)。关于属于同一轴群的其他轴(例如Y轴及Z轴),也可分别同样地输出函数。
如图4(B)所示,NC程序执行部160的CNC指令值运算部168在每个控制周期中按照生成的中间代码166算出指令值,由此在每个控制周期中算出指令值((4)指令值算出(轴个数))。即,通过在与各区间对应的函数中输入各控制周期的时刻,能唯一地决定此时刻的指令值。在设定了某个轴群的情况下,优选对属于此轴群的各轴同步输出指令值。
所述图4(A)、图4(B)中,作为一例,示出利用CNC所用的G代码进行记述的一例,但不限于此,只要为任意的以解释器方式执行的程序,则也可使用任何语言。另外,也可根据处理对象的语言形式使生成的中间代码的形式不同。
<F.对轴群的指令值>
然后,对针对被设定为轴群的一个或多个轴(电机)在每个控制周期中算出的指令值的一例进行说明。
图5为表示本实施例的控制装置100对构成轴群的各电机的指令值的时间波形的一例的图。如图5所示,例如考虑CNC工作机械540在时刻t1到时刻t2的期间中动作的情况。为了实现此种动作,对轴1~轴3各自的指令值(图5所示的示例中设定为速度指令值)在时刻t1以前均成为零,另外在时刻t2以后也均成为零。
在时刻t1,各指令值同步变化,由此各轴开始进行指定的动作。另外,各轴的指令值随着接近时刻t2而逐渐向零减小。
如图5所示,对设定为同一轴群的各轴(即各电机)互相同步地分别给予指令值。通过互相同步地给予各指令值,能使CNC工作机械540准确进行目标动作。
<G.轴群的设定顺序例>
然后,对用于设定轴群的顺序的一例进行说明。典型而言,能使用连接于控制装置100的支持装置200来设定轴群。即,控制装置100上也能连接支持装置,此支持装置提供接受属于轴群的多个电机的指定的用户接口(user interface)。
图6为表示连接于本实施例的控制装置100的支持装置200上提供的用户接口画面的一例的示意图。参照图6,能在轴设定画面700中设定轴群的识别信息及属于轴群的轴。
轴设定画面700包含坐标系编号输入栏702。在坐标系编号输入栏702中输入用于唯一地确定轴群的识别编号。
轴设定画面700还包含成员设定栏714,此成员设定栏714接受属于对象轴群的电机(轴)的选择。成员设定栏714包含电机构成数输入栏706、逻辑电机编号输入栏708、构成电机编号输入栏710及分配轴输入栏712。
在电机构成数输入栏706中输入属于对象轴群的轴的个数。
在逻辑电机编号输入栏708中输入用于在顺序程序30或NC程序32中确定各轴(电机)的识别符(identifier)(或变量)。用户能在逻辑电机编号输入栏708中输入能在程序上容易地参照各轴的任意名称。图6所示的示例中,赋予“CNC电机P0”、“CNC电机P1”、“CNC电机P2”等名称。
在构成电机编号输入栏710中输入用于确定属于对象轴群的轴的控制装置100管理的构成信息(配置(configuration))中的识别信息。图6所示的示例中,设定“CNC_Motor000(0)”、“CNC_Motor001(1)”、“CNC_Motor002(2)”作为构成信息上的识别符。
在分配轴输入栏712中输入属于对象轴群的各电机在CNC坐标系中对应于哪个轴等信息。例如在设想X-Y-Z坐标系的情况下,X轴、Y轴、Z轴各自与对应的电机相关联。
最终按下制作按钮720,由此决定轴群及属于此轴群的电机以及对各电机分配的轴。即,通过对属于轴群的各电机分配对应的轴,而决定由所述轴群规定的CNC坐标系。
关于此种轴群的设定,也可作为设定信息36(图1)的至少一部分存储在存储部108等中。
所述说明中例示了支持装置200提供用户接口画面的构成,但不限于此,也可对控制装置100本身安装提供用户接口画面的功能。例如也可在控制装置100内安装网络伺服功能,并且使用此网络伺服功能提供用户接口画面。
<H.控制状态的状态过渡>
如上文所述,本实施例的控制装置100管理与包含多个电机的轴群有关的控制状态172。以下,对由状态管理部170管理的控制状态172的一例进行说明。
图7为表示本实施例的控制装置100中的轴群的状态过渡的一例的图。参照图7,各轴群可取七个状态ST1~状态ST7。通过给出表示CNC坐标系的动作的命令(以下也称为“CNC坐标系的动作命令”)而状态变化,所述CNC坐标系是由属于任意轴群的多个电机规定。CNC坐标系的动作命令有时是通过NC程序执行部160执行NC程序32而生成,也有时是按照顺序程序30中规定的特殊命令生成。
所述状态中,状态ST1~状态ST4为按照顺序程序执行部150中执行的顺序程序30等所规定的命令而任意输出CNC坐标系的动作命令等的情况下可取的状态值,状态ST5~状态ST7为NC程序执行部160正在执行NC程序32的过程中可取的状态值。
如此,控制装置100的状态管理部170使控制状态在NC程序执行部160执行NC程序32的过程中可取的多个状态(状态ST5~状态ST7)、与NC程序执行部160不执行NC程序32的过程中可取的多个状态(状态ST1~状态ST4)之间过渡。以下,对状态ST1~状态ST7分别进行说明。
状态ST1对应于“停止中(Standby)”,表示不执行CNC坐标系的动作命令的状态。状态ST1也包含执行NC程序32到特定的块(block)并以程序点(program point)停止的状态。
状态ST2对应于“动作中(Moving)”,表示正在执行CNC_MoveJog(CNC坐标系动作)命令的状态。若正在执行的命令完成或中断则过渡到状态ST1。
状态ST3对应于“减速停止中(Stopping)”,表示正在执行CNC_CoordStop(CNC坐标系强制停止)命令的状态。若依CNC_CoordStop命令停止之后Execute(启动)处于“真(TRUE)”的状态,则维持状态ST3。
状态ST4对应于“错误减速停止中(ErrorStop)”,表示CNC坐标系发生了某种异常的状态。状态ST4可包含正执行CNC_CoordImmediateStop(CNC坐标系立即停止)命令的状态、及因CNC坐标系发生异常而CNC坐标系正停止动作的状态。状态ST4下,即便发出CNC坐标系的动作命令也禁止动作。
状态ST5对应于“执行中(Executing)”,表示根据CNC_CoordControl(CNC坐标控制)命令正在执行NC程序32的状态。
状态ST6对应于“待机中(Hold)”,表示NC程序32待机(保留)所致的停止中状态。状态ST6也包含选择停机(optional stop)命令及由单块(single block)执行所致的NC程序32的挂起(suspend)状态。
状态ST7对应于“手动操作(待机中)(MovingOnHold)”,表示在NC程序32待机所致的停止中正在执行CNC_MoveJog命令的状态。当正在执行的命令完成或中断时,过渡到状态ST7。
图7中也示出状态间的过渡条件。图7中的实线为对执行某个命令作出响应的过渡,图7中的虚线表示某个命令的执行完成或发生其他事件(event)所致的过渡。
例如,状态ST2到状态ST1的过渡、及状态ST7到状态ST6的过渡是因CNC_MoveJog命令的执行完成而发生。另外,状态ST5、状态ST6、状态ST7到状态ST1的过渡是因NC程序32的执行完成而发生。图7所示的各过渡对应于图中以*开头的数字,如下文所述。
*1:无论在哪个状态下,当存在CNC坐标系的异常发生时过渡到状态ST4。
*2:通过CNC_CoordReset(CNC坐标系重置)命令或ResetCNCError(重置CNC错误)命令解除异常,从状态ST4过渡到状态ST1。
*3:CNC_CoordStop命令的“完成(Done)”输出为“真(TRUE)”且CNC_CoordStop命令的“启动(Execute)”输入为“假(FALSE)”的情况下,从状态ST3过渡到状态ST1。
*4:因执行CNC_CoordControl而从状态ST1过渡到状态ST5。
*5:因执行特殊命令而从状态ST6过渡到状态ST7。
*6:无论在哪个状态下,当执行CNC_CoordStop命令时过渡到状态ST3。
<I.顺序程序>
然后,对顺序程序中所用的命令及变量的一例进行说明。
(i1:命令)
所述状态过渡的说明中,对状态依若干命令而过渡的情况进行了说明。作为发生所述状态过渡的条件,示出了执行若干命令的情况。对用于发生此种状态过渡的命令进行说明。
CNC_MoveJog(CNC坐标系动作)命令指示构成CNC坐标系的各电机向任意位置移动。CNC_MoveJog命令基本上是在不执行NC程序32的状态下执行。
CNC_CoordStop(CNC坐标系强制停止)命令指示属于对象CNC坐标系(轴群)的各电机强制停止动作。典型而言,CNC_CoordStop是与某些异常条件等组合使用。
CNC_CoordImmediateStop(CNC坐标系立即停止)命令指示属于对象CNC坐标系(轴群)的各电机强制停止动作。CNC_CoordStop命令考虑到机械保护等而指令值以某速率减小,相对于此,CNC_CoordImmediateStop命令将指令值立即变更为零。典型而言,CNC_CoordStop是与某些异常条件等组合使用。
CNC_CoordControl(CNC坐标控制)命令为使NC程序执行部160中的NC程序32的执行开始的命令。关于与CNC_CoordControl命令对应的功能块,将于下文中说明。
CNC_CoordReset(CNC坐标系重置)命令为将对属于对象CNC坐标系(轴群)的各电机的指令值等初始化(重置)的命令。
ResetCNCError(重置CNC错误)命令为将对象CNC坐标系(轴群)产生的错误恢复(重置)的命令。
此种顺序程序30所含的命令也能以功能块的形式规定。
图8为表示本实施例的控制装置100中的与CNC_CoordControl(CNC坐标控制)命令对应的功能块的示意图。参照图8,CNC_CoordControl命令的功能块600包含CNC坐标系确定信息601、数控输入602、数控输出603作为输入输出(属性值)。功能块600具有起效指示输入604(Enable)作为输入。功能块600具有有效状态输入605(Enabled)、忙碌状态输入606(Busy)、错误状态输入607(Error)及错误代码608(ErrorID)作为输出。
在CNC坐标系确定信息601中指定用于确定对象CNC坐标系的识别信息(图6的坐标系编号输入栏702中设定的数值等)。
在数控输入602及数控输出603中指定对象(obiect)名,此对象名表示在顺序程序执行部150与NC程序执行部160之间交换的数据群。在数控输入602中指定表示如下对象的变量名,所述对象存储从顺序程序执行部150送到NC程序执行部160的数据群,在数控输出603中指定表示如下对象的变量名,所述对象存储从NC程序执行部160送到顺序程序执行部150的数据群。所述对象为一种结构体变量,具有多个属性值。顺序程序30中也能参照所述对象的属性值。
在起效指示输入604中指定NC程序执行部160开始执行NC程序32的条件的结果。
从有效状态输入605输出表示指定的CNC坐标系的NC程序32的执行状态的值(布尔值(Boolean value))。从忙碌状态输入606输出表示指定的CNC坐标系是否为忙碌状态的值(布尔值)。从错误状态输入607输出表示是否产生了某些错误的值(布尔值)。当产生某些错误时,从错误代码608输出表示所述错误内容的代码。
(i2:结构体变量)
图7所示那样的轴群的状态过渡也可作为表示轴群的结构体变量的成员而存储及参照。即,状态管理部170以可参照的方式保存控制状态的值作为结构体变量的成员。
图9为表示本实施例的控制装置100中的与轴群相关联的结构体变量的一例的图。图9中示出与CNC_Coord[0]相关联的结构体变量620的一例。结构体变量620能以阶层结构的形式表现。作为一例,结构体变量620具有表示轴群状态的阶层622。
阶层622包含与图7所示的各状态对应的成员,根据轴群的状态更新成员显示的值。例如对象轴群为停止中(Standby)的情况下,“CNC_Coord[0].Status.Standby”中显示“真(TRUE)”,同阶层的其他成员均显示“假(FALSE)”。
结构体变量620中也可具有将对应轴群设定为其他成员的信息。作为一例,结构体变量620还具有表示轴群基本设定的阶层624。阶层624包含与对象轴群相关的各设定值作为成员。通过参照各成员显示的值,能在顺序程序30上容易地参照对象轴群的设定值等。
此外,图9中为了便于说明而以阶层结构来表现,但保存实际的各成员的值的形态不限于此,能采用任意的安装。
(i3:顺序程序的代码例)
接着,对使用所述那样的功能块及结构体变量的顺序程序的代码例进行说明。
控制装置100的顺序程序执行部150按照顺序程序30所含的参照控制状态的命令,反映状态管理部170管理的控制状态的值且依顺序程序30算出运算结果。即,顺序程序30的执行过程中能参照任意的轴群控制状态,并能根据所述参照的控制状态的值选择性地执行预先规定的处理。
图10为表示本实施例的控制装置100中执行的顺序程序30的代码例的图。图10所示的顺序程序30的代码630设想执行以下控制的情况:按照NC程序32对CNC工作机械进行的控制、及对与CNC工作机械协调动作的机器人等的动作驱动装置的控制。
更具体而言,代码630包含CNC_CoordControl命令的功能块640、及输入至功能块640的起效指示输入(Enable)的逻辑描述。功能块640例如为用于对与CNC_Coord[0]对应的CNC坐标系(轴群)开始进行依既定NC程序32的控制的命令。
输入至功能块640的起效指示输入的逻辑描述为接点642与接点644的并联电路,所述接点642表示对象轴群的状态为“停止中(Standby)”,所述接点644表示功能块640为有效状态(Enabled)。此逻辑描述成为所谓自保电路(self holding circuit)。即,功能块640将对象轴群的状态为停止中(Standby)作为启动条件,且功能块640将有效状态(Enabled)作为继续运转条件。
接点642能通过参照表示对象轴群的结构体变量的表示状态的成员(属性)而容易地定义。接点644能通过参照来自功能块640的输出标记(flag)的值而容易地定义。
代码630进而包含MC_GroupStop命令的功能块650、及输入至功能块650的启动指令输入(Execute)的逻辑描述。功能块650为用于对机器人等对象的动作驱动装置停止动作的命令。输入至功能块650的起效指示输入的逻辑描述包含表示对象轴群的状态为“错误减速停止中(ErrorStop)”的接点652。
在与CNC_Coord[0]对应的CNC坐标系(轴群)为“错误减速停止中(ErrorStop)”的情况下,将“真(TRUE)”输入至功能块650的启动指令输入。即,在对象CNC坐标系(轴群)产生了某些错误的情况下,能向对象的动作驱动装置也同时发出用于停止动作的指令。
如此,能容易地制作以下程序:用于在使CNC工作机械与机器人协调动作的情况等时,响应其中一个装置因产生异常的停止,使另一装置也停止。
如以上那样,本实施例的控制装置100通过定义变量,能容易地参照对象CNC坐标系(轴群)的状态,因此能减少控制CNC工作机械及与其关联的装置的程序的开发工作量等。
<J.程序的执行动作例>
然后,对本实施例的控制装置100中的程序的执行动作例进行说明。
图11为表示本实施例的控制装置100中的程序的执行动作例的时间图(timechart)。图11中示出顺序程序执行部150、NC程序执行部160的解释器162及CNC指令值运算部168、状态管理部170及共享存储器190中的处理作为各控制周期中的主要构成元件。
参照图11,当某个控制周期的开始时机到来时,首先执行输入输出刷新处理(图1所示的输入输出刷新处理部180)(步骤S10)。然后,顺序程序执行部150执行在每个控制周期中执行顺序程序30的处理。本示例中,顺序程序执行部150执行顺序程序30(的一部分)(步骤S12)。将通过执行顺序程序30所算出的指令值写入共享存储器190中。
此处,设定为在顺序程序30的中途包含指示NC程序32的执行开始的命令。顺序程序执行部150响应所述命令而指示NC程序32的执行开始(步骤S14)。于是,CNC指令值运算部168读取对象中间代码166(步骤S16),算出CNC指令值(步骤S20)。将由CNC指令值运算部168算出的CNC指令值写入共享存储器190中。如此,NC程序执行部160执行按照NC程序32算出对各电机的指令值的处理。
另一方面,状态管理部170根据CNC指令值运算部168中的NC程序32的执行状态而更新控制状态(步骤S18)。即,状态管理部170执行管理与轴群相关联的控制状态的处理。此管理控制状态的处理包含以下处理:根据按照顺序程序30所含的控制命令的指示及NC程序32的执行状态的至少一者,更新控制状态的处理。
当CNC指令值运算部168完成CNC指令值的算出时,处理回到顺序程序执行部150。然后,顺序程序执行部150中再次开始执行顺序程序30的未执行部分。
即,顺序程序执行部150从共享存储器190读取处理所需的变量表示的值(指令值和/或控制状态)(步骤S22),执行顺序程序30(步骤S24)。将通过执行顺序程序30所算出的指令值写入共享存储器190中。
所述步骤S10~步骤S24的处理为必须在每个控制周期中执行的处理,并在下一控制周期的开始时机到来之前,适当执行优先度低的处理。图11所示的示例中,解释器162执行根据NC程序32生成中间代码166的处理(步骤S26)。步骤S26中生成的中间代码166在下一控制周期以后被用于算出CNC指令值。
然后,当下一控制周期的开始时机到来时,再次执行输入输出刷新处理(步骤S10)。以后重复执行步骤S12~步骤S26的类似处理。
通过以上那样的处理顺序,无需制作追加程序便可在顺序程序执行部150中参照CNC坐标系(轴群)的控制状态,在并行执行依顺序程序30的控制与依NC程序32的控制的情况下,能容易地实现彼此的互锁(interlock)等的编程(programming)。
<K.变形例>
所述说明中,对执行顺序程序30和NC程序32的控制装置100进行了说明,但只要是以解释器方式记述的程序,则无论是哪种程序均能同样地应用。
<L.总结>
根据本实施例,例如能将构成CNC工作机械的多个电机定义为各轴,并且将CNC工作机械本身以由多个轴构成的抽象化概念设成可变的(CNC变量)。通过参照此种变量,能在顺序程序上进行控制编程。
更具体而言,通过参照CNC变量来启动功能块命令等,能在顺序程序上实现NC程序32的执行、停止、再次开始、异常停止、状态监视等处理。
参照CNC变量表示的控制状态的程序中,能与对其他CNC工作机械的程序通用的部分多(例如初始化处理或异常处理等)。因此能提高再利用性。
现有构成中,控制CNC工作机械的专用装置与配置在CNC工作机械周边用于控制搬送/组装等处理的PLC互相独立。关于由专用装置控制的CNC工作机械的状态,必须在PLC中记述专用程序,并且也准备使用硬件的接口。
相对于此,根据本实施例,能使用与现有的专用装置相同的NC程序来定义对CNC工作机械的控制,并且使用顺序程序来定义对配置在CNC工作机械周边的装置的控制。进而,关于CNC工作机械与周边机器之间的协调动作,也能通过参照所述那样的控制状态容易地编程。结果能减少整个系统的开发工作量。进而,即便是存在多个CNC工作机械的情况,也由于程序的灵活性高,因此能通过共享处理而减少程序的开发工作量及程序体积。
<M.备注>
上述的本实施例包含如下技术思想。
[构成1]
一种控制装置100,能控制多个电机522,并且所述控制装置包含:
第一程序执行部150,在每个控制周期中执行顺序程序30;
第二程序执行部160,按照数控程序32算出对各电机的指令值;以及
状态管理部170,管理与由所述多个电机中被预先指定的多个电机组成的群相关联的控制状态172;
所述顺序程序包含用于控制所述第二程序执行部中的所述数控程序的执行处理的控制命令640,
所述第一程序执行部按照所述顺序程序所含的控制命令,给出与所述第二程序执行部中的所述数控程序的执行有关的指示,
所述状态管理部根据来自所述第一程序执行部的指示及所述第二程序执行部中的所述数控程序的执行状态的至少一者,更新所述控制状态。
[构成2]
根据构成1所记载的控制装置,其中所述第一程序执行部按照所述顺序程序所含的参照所述控制状态的命令642、652,反映所述状态管理部管理的所述控制状态的值且依所述顺序程序算出运算结果。
[构成3]
根据构成1或2所记载的控制装置,其中所述状态管理部以可参照的方式保存所述控制状态的值以作为结构体变量620的成员。
[构成4]
根据构成3所记载的控制装置,其中所述结构体变量具有将对应群设定为其他成员的信息。
[构成5]
根据构成1至4中任一项所记载的控制装置,其中所述状态管理部使所述控制状态在所述第二程序执行部执行所述数控程序的过程中可取的多个状态(ST5~ST7)、与所述第二程序执行部不执行所述数控程序的过程中可取的多个状态(ST1~ST4)之间过渡。
[构成6]
根据构成1至5中任一项所记载的控制装置,还具备共享存储器190,此共享存储器保存所述状态管理部管理的所述控制状态的值。
[构成7]
根据构成1至6中任一项所记载的控制装置,其中所述顺序程序所含的控制命令是以功能块的形式规定。
[构成8]
根据构成1至7中任一项所记载的控制装置,其中所述控制装置上能连接支持装置200,此支持装置200提供接受属于所述群的多个电机的指定的用户接口700。
[构成9]
根据构成1至8中任一项所记载的控制装置,其中所述控制状态表示将所述群所含的多个电机汇总的单一状态。
[构成10]
一种控制方法,其为能控制多个电机的控制装置的控制方法,且包括:
在每个控制周期中执行顺序程序的步骤(S12、S14、S22、S24);
按照数控程序算出对各电机的指令值的步骤(S16、S20);以及
管理与由所述多个电机中被预先指定的多个电机组成的群相关联的控制状态的步骤(S18);且
所述顺序程序包含用于控制所述数控程序的执行处理的控制命令,
所述数控程序的执行是由所述顺序程序所含的控制命令的指示所控制,
所述管理控制状态的步骤包括以下步骤:根据按照所述顺序程序所含的控制命令的指示及所述数控程序的执行状态的至少一者,更新所述控制状态。
应认为本次公开的实施例在所有方面为例示而非限制性。本发明的范围是由权利要求而非所述说明揭示,是指包括与权利要求的范围均等的含意及范围内的所有变更。
Claims (10)
1.一种控制装置,用于控制多个电机,并且所述控制装置的特征在于包括:
第一程序执行部,在每个控制周期中执行顺序程序;
第二程序执行部,按照数控程序算出对各所述电机的指令值;以及
状态管理部,管理与由所述多个电机中被预先指定的多个电机组成的群相关联的控制状态,所述控制状态是多个状态之间的状态过渡;
所述顺序程序包含用于控制所述第二程序执行部中的所述数控程序的执行处理的控制命令,
所述第一程序执行部按照所述顺序程序所含的控制命令,给出与所述第二程序执行部中的所述数控程序的执行有关的指示,
所述状态管理部根据来自所述第一程序执行部的指示及所述第二程序执行部中的所述数控程序的执行状态的至少一者,过渡包括在所述控制状态中的状态。
2.根据权利要求1所述的控制装置,其特征在于:所述第一程序执行部按照参照所述顺序程序所含的所述控制状态的命令,反映所述状态管理部管理的所述控制状态的值且依所述顺序程序算出运算结果。
3.根据权利要求1或2所述的控制装置,其特征在于:所述状态管理部以能够参照的方式保存所述控制状态的值以作为结构体变量的成员。
4.根据权利要求3所述的控制装置,其特征在于:所述结构体变量具有将对应群设定为其他成员的信息。
5.根据权利要求1或2所述的控制装置,其特征在于:所述控制状态包括使所述控制状态在所述第二程序执行部执行所述数控程序的过程中能取的多个状态、与所述第二程序执行部不执行所述数控程序的过程中能取的多个状态之间过渡。
6.根据权利要求1或2所述的控制装置,其特征在于还具备共享存储器,所述共享存储器保存所述状态管理部管理的所述控制状态的值。
7.根据权利要求1或2所述的控制装置,其特征在于:所述顺序程序所含的控制命令是以功能块的形式规定。
8.根据权利要求1或2所述的控制装置,其特征在于:所述控制装置上连接支持装置,所述支持装置提供接受属于所述群的多个电机的指定的用户接口。
9.根据权利要求1或2所述的控制装置,其特征在于:所述控制状态表示将所述群所含的多个电机汇总的单一状态。
10.一种控制方法,其为控制多个电机的控制装置的控制方法,且其特征在于包括以下步骤:
在每个控制周期中执行顺序程序;
按照数控程序算出对各所述电机的指令值;以及
管理与由所述多个电机中被预先指定的多个电机组成的群相关联的控制状态,所述控制状态是多个状态之间的状态过渡;
所述顺序程序包含用于控制所述数控程序的执行处理的控制命令,
所述数控程序的执行是由按照所述顺序程序所含的控制命令的指示所控制,
所述管理控制状态的步骤包括根据按照所述顺序程序所含的控制命令的指示及所述数控程序的执行状态的至少一者,过渡包括在所述控制状态中的状态的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017175719A JP6881174B2 (ja) | 2017-09-13 | 2017-09-13 | 制御装置および制御方法 |
JP2017-175719 | 2017-09-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109491324A CN109491324A (zh) | 2019-03-19 |
CN109491324B true CN109491324B (zh) | 2021-08-03 |
Family
ID=61226386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810151496.0A Active CN109491324B (zh) | 2017-09-13 | 2018-02-13 | 控制装置及控制方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10509393B2 (zh) |
EP (1) | EP3457239B1 (zh) |
JP (1) | JP6881174B2 (zh) |
CN (1) | CN109491324B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7255369B2 (ja) * | 2019-06-06 | 2023-04-11 | オムロン株式会社 | 制御システム |
JP7230703B2 (ja) * | 2019-06-20 | 2023-03-01 | オムロン株式会社 | 制御装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07210232A (ja) * | 1994-01-17 | 1995-08-11 | Fanuc Ltd | 数値制御装置 |
JP3369470B2 (ja) | 1998-05-28 | 2003-01-20 | 三菱電機株式会社 | サーボシステムコントローラ |
KR20010107998A (ko) * | 1998-12-03 | 2001-12-07 | 다니구찌 이찌로오, 기타오카 다카시 | 서보시스템 컨트롤러 |
JP2001138136A (ja) * | 1999-11-10 | 2001-05-22 | Toyoda Mach Works Ltd | ネジ切り加工制御装置 |
JP3896076B2 (ja) * | 2002-12-26 | 2007-03-22 | ファナック株式会社 | 数値制御装置 |
JP2006287675A (ja) * | 2005-04-01 | 2006-10-19 | Renesas Technology Corp | 半導体集積回路 |
IL203642A (en) * | 2010-02-01 | 2014-01-30 | Yesaiahu Redler | A system and method for optimizing electric current utilization in the control of multiplex motors, and a projectile device containing it |
JP5146512B2 (ja) * | 2010-10-13 | 2013-02-20 | オムロン株式会社 | 制御装置、制御システムおよび制御方法 |
JP4877423B1 (ja) | 2011-03-15 | 2012-02-15 | オムロン株式会社 | Plcのcpuユニット、plc用システムプログラムおよびplc用システムプログラムを格納した記録媒体 |
JP6116858B2 (ja) * | 2012-10-26 | 2017-04-19 | 株式会社東芝 | 制約充足解生成装置 |
JP6246915B2 (ja) * | 2015-03-30 | 2017-12-13 | 三菱電機株式会社 | 数値制御装置 |
US10474128B2 (en) * | 2015-11-16 | 2019-11-12 | Jtekt Corporation | Abnormality analysis system and analysis apparatus |
-
2017
- 2017-09-13 JP JP2017175719A patent/JP6881174B2/ja active Active
-
2018
- 2018-02-12 US US15/894,881 patent/US10509393B2/en active Active
- 2018-02-13 EP EP18156410.5A patent/EP3457239B1/en active Active
- 2018-02-13 CN CN201810151496.0A patent/CN109491324B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
EP3457239B1 (en) | 2021-06-09 |
JP2019053397A (ja) | 2019-04-04 |
US20190079497A1 (en) | 2019-03-14 |
CN109491324A (zh) | 2019-03-19 |
US10509393B2 (en) | 2019-12-17 |
JP6881174B2 (ja) | 2021-06-02 |
EP3457239A1 (en) | 2019-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109507980B (zh) | 控制装置及控制方法 | |
CN109388107B (zh) | 控制装置 | |
CN109557890B (zh) | 控制装置 | |
CN109582397B (zh) | 控制系统以及控制装置 | |
CN109581976B (zh) | 控制装置 | |
US10606246B2 (en) | Control device and control method with various command values in a shared memory providing access to various program execution and command value operation parts in each control cycle | |
JP2019061467A (ja) | サポート装置およびサポートプログラム | |
CN109542046B (zh) | 控制装置、控制方法及控制系统 | |
CN109491324B (zh) | 控制装置及控制方法 | |
JP2021026309A (ja) | 制御システム、解析方法およびプログラム | |
JP7167516B2 (ja) | 制御装置、制御方法、および制御プログラム | |
JP2023151876A (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 |