CN109491307B - 控制装置及控制方法 - Google Patents

控制装置及控制方法 Download PDF

Info

Publication number
CN109491307B
CN109491307B CN201810151258.XA CN201810151258A CN109491307B CN 109491307 B CN109491307 B CN 109491307B CN 201810151258 A CN201810151258 A CN 201810151258A CN 109491307 B CN109491307 B CN 109491307B
Authority
CN
China
Prior art keywords
program
control
command value
control cycle
unit
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
Application number
CN201810151258.XA
Other languages
English (en)
Other versions
CN109491307A (zh
Inventor
山本英词
仲野征彦
岛村纯児
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Omron Corp filed Critical Omron Corp
Publication of CN109491307A publication Critical patent/CN109491307A/zh
Application granted granted Critical
Publication of CN109491307B publication Critical patent/CN109491307B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total 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/41835Total 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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/054Input/output
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/11Plc I-O input output
    • G05B2219/1103Special, intelligent I-O processor, also plc can only access via processor
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/11Plc I-O input output
    • G05B2219/1105I-O
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/11Plc I-O input output
    • G05B2219/1134Fieldbus
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13152Modification of program
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34288Plc as main controller for cnc

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)
  • Programmable Controllers (AREA)
  • Numerical Control (AREA)

Abstract

本发明提供一种控制装置及控制方法。使控制装置实现更高的控制性能的环境,所述控制装置能执行在每个控制周期中被整体扫描而更新指令值的第一程序及依次解释的第二程序。本发明的控制装置包含在每个控制周期中扫描第一程序整体而更新指令值的第一程序执行部、及按照依次解释的第二程序在每个控制周期中更新指令值的第二程序执行部。第二程序执行部包含生成中间代码的解释器、及按照中间代码在每个控制周期中算出指令值的指令值运算部。指令值运算部以能够用于其他处理的形态在每个控制周期中输出指令值。

Description

控制装置及控制方法
技术领域
本公开涉及一种用于对控制对象进行控制的控制装置及控制方法。
背景技术
在各种生产现场,使用可编程逻辑控制器(programmable logic controller,PLC)(可编程控制器)等控制装置的工厂自动化(Factory Automation,FA)技术已广泛普及。此种控制装置也有时不仅直接对控制对象进行控制,而且还通过对其他装置给予控制指令而间接对控制对象进行控制。例如日本专利特开2012-160180号公报(专利文献1)中公开了一种对工件进行机械加工的数控工作机械。所述构成中,数控(Numerical Control,NC)控制装置与PLC控制装置之间是经由信号线而连接,经由信号线将NC控制装置的信息传给PLC控制装置。
[现有技术文献]
[专利文献]
[专利文献1]日本专利特开2012-160180号公报
发明内容
[发明所要解决的问题]
所述日本专利特开2012-160180号公报(专利文献1)中公开的构成中,依次执行NC程序的NC控制装置与以固定周期执行程序的PLC控制装置彼此非同步地执行程序。因此,PLC控制装置中,装置自身在每个控制周期中收集的输入数据与来自NC控制装置的信息(例如通过执行NC程序算出的指令值等)的收集时机不同。由于收集时机不一致,因此虽能用于防碰撞等的监视,但例如无法实现实时(real time)校正指令值等处理。
本公开的一个目的在于提供一种用于使如下控制装置实现更高的控制性能的环境,所述控制装置能执行在每个控制周期中被整体扫描而更新指令值的第一程序及依次解释的第二程序。
[解决问题的技术手段]
本公开的一例中提供一种用于对控制对象进行控制的控制装置。控制装置包含:数据更新部,在每个控制周期中更新输入数据及输出数据;第一程序执行部,在每个控制周期中扫描第一程序整体而更新指令值;以及第二程序执行部,按照依次解释的第二程序在每个控制周期中更新指令值。第二程序执行部包含:解释器,解释第二程序的至少一部分而生成中间代码;以及指令值运算部,按照由解释器生成的中间代码在每个控制周期中算出指令值。指令值运算部以能够用于其他处理的形态在每个控制周期中输出指令值。
根据本公开,能在每个控制周期中算出依第一程序的指令值及依第二程序的指令值,进而能容易地二次利用所述指令值。通过利用或加工在每个控制周期中算出的源自各程序的指令值,能实现更高的控制性能。
所述公开中,控制装置也可还包含共享存储器,此共享存储器用于从第一程序执行部参照指令值运算部在每个控制周期中算出的指令值。
根据本公开,执行各程序的主体及执行其他处理的主体能通过在共享存储器中进行存取而参照必要的指令值,从而能简化安装。
所述公开中,控制装置也可还包含执行部,此执行部根据指令值运算部在每个控制周期中算出的指令值及由数据更新部更新的数据执行运算处理。
根据本公开,例如能取得装置的状况作为输入数据并且根据此取得的输入数据校正指令值。通过此种指令值的校正处理,能实现与状况相应的更高精度的控制。
所述公开中,也可包含对指令值运算部在每个控制周期中算出的指令值的数值处理。
根据本公开,例如能将利用某些方法取得的偏移量等容易地反映给指令值。
所述公开中,控制装置也可还包含生成部,此生成部生成由数据更新部更新的数据及由第一程序执行部更新的指令值中的至少一者、与指令值运算部在每个控制周期中算出的指令值作为数据组。
根据本公开,能彼此相关联地取得同时取得的由数据更新部更新的数据及由第一程序执行部更新的指令值中的至少一者、与指令值运算部算出的指令值,因此能有效率地进行事后的数据分析等。
所述公开中,控制装置也可还包含输出部,此输出部将每个控制周期中生成的数据组输出至外部。
根据本公开,能在外部装置中有效率地分析在控制装置内同步收集的数据组。
所述公开中,中间代码也可包含用于使指令值运算部在每个控制周期中更新指令值的函数。
根据本公开,指令值运算部能通过进行依函数的运算而算出指令值,因此能简化每个控制周期的指令值的算出处理。
所述公开中,中间代码也可包含规定时间与指令值的关系的函数。
根据本公开,指令值运算部若将表示运算指令值的时机的时间输入函数中,便能算出此时机的指令值,因此能进一步简化指令值的算出处理。
所述公开中也可为:解释器将生成的中间代码在缓冲器中依次列队,指令值运算部按缓冲器中的列队次序读取中间代码。
根据所述公开,通过根据第二程序的复杂性或处理速度等事先依次解释第二程序,能防止在第二程序执行部中无法运算指令值等事态的发生。
所述公开中也可为:数据更新部、第一程序执行部及指令值运算部以高优先任务的形式执行处理,解释器以低优先任务的形式执行处理。
根据本公开,将解释器设定为优先度较执行其他处理的主体低,因此能防止运算指令值的处理本身受到依次解释第二程序的处理影响的情况。
本公开的另一例提供一种利用控制装置进行的控制方法。控制方法包括以下步骤:在每个控制周期中更新输入数据及输出数据;在每个控制周期中扫描第一程序整体而更新指令值;解释依次解释的第二程序的至少一部分而生成中间代码;以及按照生成的中间代码在每个控制周期中算出指令值。按照中间代码算出指令值的步骤以能够用于其他处理的形态在每个控制周期中输出指令值。
根据所述公开,能在每个控制周期中算出依第一程序的指令值及依第二程序的指令值,进而能容易地二次利用所述指令值。通过利用或加工在每个控制周期中算出的源自各程序的指令值,更实现更高的控制性能。
[发明的效果]
根据本公开的一例,能提供一种用于使如下控制装置实现更高的控制性能的环境,所述控制装置能执行在每个控制周期中被整体扫描而更新指令值的第一程序及依次解释的第二程序。
附图说明
图1为表示本实施方式的控制装置的应用场景的一例的示意图。
图2为表示本实施方式的控制系统的整体构成例的示意图。
图3为表示本实施方式的控制装置的硬件构成例的方块图。
图4为表示本实施方式的控制装置的功能构成例的示意图。
图5为概念性地表示本实施方式的控制装置中的NC程序的执行处理的示意图。
图6A、图6B为用于对本实施方式的控制装置中的中间代码的生成例进行说明的示意图。
图7为表示本实施方式的控制装置中的程序的执行动作例的时间图。
图8为表示包含本实施方式的控制装置的控制系统的整体构成例的示意图。
图9为表示图8所示的控制系统中的控制结构的主要部分的示意图。
图10为表示用于实现图9所示的控制结构的IEC程序的代码例的图。
图11为表示图8所示的控制系统的控制装置中执行的处理顺序的流程图。
图12为表示包含本实施方式的控制装置的控制系统的整体构成例的示意图。
图13为表示图12所示的控制系统中的控制结构的主要部分的示意图。
图14为表示用于实现图13所示的控制结构的IEC程序的代码例的图。
图15为表示图12所示的控制系统的控制装置中执行的处理顺序的流程图。
符号的说明
1、1A、1B:控制系统;
2:现场网络;
6:上级网络;
20:输入输出刷新处理;
30:IEC程序/第一程序;
32:NC程序/第二程序;
34:系统程序;
50:数据更新部;
52、160:共享存储器;
54:第一程序执行部;
56:第二程序执行部;
58、152:解释器;
60:指令值运算部;
62:第一程序;
64:第二程序;
72、74、632(Our_Val01):指令值;
100:控制装置;
102:处理器;
104:芯片组;
106:主存储装置;
108:辅助存储装置;
110:上级网络控制器;
112:USB控制器;
114:存储卡接口;
116:存储卡;
120:内部总线控制器;
122:I/O单元;
130:现场网络控制器;
140:IEC程序执行部/执行部/第一程序执行部;
142:动作指令值运算部;
150:NC程序执行部/执行部/第二程序执行部;
154:缓冲器;
156:中间代码;
158、186:NC指令值运算部;
162:输入输出接口处理部/数据更新部;
164:上级网络接口处理部;
170:相加部;
180:数据收集部;
182:顺序运算部;
184:动作运算部;
200:支援装置;
300:伺服装置;
400:显示装置;
500:现场设备;
510:远程I/O装置;
520:伺服驱动器;
522:伺服电机;
530、540:CNC加工装置;
550:视觉传感器;
600、650:IEC程序代码;
610、620、630、660、670、680:功能块;
612(IN01)、622(IN02)、652(IN01)、654(IN02)、656(IN03)、662(IN04)、672(IN05)、682(IN06):接点;
614(C1)、624(C2)、658(C1)、664(C2)、674(C3):线圈;
616(Res1)、628(Res2)、666(AXIS1)、668(AXIS2)、676(Num)、678(Res1):变量;
684:输入变量群;
F1(t)、F2(t)、F3(t):函数;
T1:控制周期;
T2:解释器控制周期;
S100、S102、S104、S106、S108、S110、S112、S114、S120、S200、S202、S204、S206、S208、S210、S212:步骤。
具体实施方式
一方面参照附图一方面对本发明的实施方式进行详细说明。此外,对图中的相同或相应部分标注相同符号,不重复进行说明。
<A.应用例>
首先,参照图1对应用本发明的场景的一例进行说明。图1为表示本实施方式的控制装置100的应用场景的一例的示意图。本实施方式的控制装置100控制任意的控制对象(例如制造装置或设备)。
如图1所示,控制装置100包含:数据更新部50,在每个控制周期中更新输入数据及输出数据;第一程序执行部54,在每个控制周期中扫描至少包含顺序命令的第一程序62整体而更新指令值72;以及第二程序执行部56,按照依次解释的第二程序在每个控制周期中更新指令值74。第二程序执行部56包含:解释器58,解释第二程序的至少一部分而生成中间代码;以及指令值运算部60,按照由解释器58生成的中间代码在每个控制周期中算出指令值74。指令值运算部60以能够用于其他处理的形态在每个控制周期中输出指令值74。将指令值72及指令值74一起保持在暂且存储输入数据及输出数据的共享存储器52中。
本发明的“第一程序”包含每当执行时被整体扫描且每当执行时算出一个或多个指令值的程序。以下的说明中,作为此种“第一程序”的一例,设想“IEC程序”。典型而言,“IEC程序”包含由按国际电工委员会(International Electrotechnical Commission,IEC)规定的国际标准IEC61131-3记述的一个或多个命令组成的程序。“IEC程序”中也可包含顺序命令和/或动作命令。“IEC程序”是在每个控制周期中整个程序被执行(扫描)。“IEC程序”适于要求实时性及高速性的控制。此外,“IEC程序”不限于按国际标准IEC61131-3记述的命令,也可包含PLC(可编程控制器)的制造商或供应商(vendor)等独自规定的命令。
本说明书中,“顺序命令”基本上为包含由算出输入值、输出值、内部值等的一个或多个逻辑电路所记述的一个或多个命令的术语。基本上在一次控制周期中将“顺序命令”从最初开始执行到最末,并在下一控制周期中再次将“顺序命令”从最初开始执行到最末。
本说明书中,“动作命令”为包含用于对伺服电机等致动器算出位置、速度、加速度、急动度、角度、角速度、角加速度、角急动度等数值作为指令的一个或多个命令的术语。“动作命令”也是在一次控制周期中,将由功能块或数值算出式等记述的动作命令的程序(动作程序)从最初开始执行到最末。即,在每个控制周期中算出(更新)指令值。
本发明的“第二程序”包含依次解释的任意程序。即,“第二程序”包含能以逐行依次解释并执行的解释器方式执行的以任意语言记述的程序。以下的说明中,作为此种“第二程序”的一例,设想记述计算机数控(ComputerNumerical Control,CNC)的行为的程序(以下也称为“NC程序”)。但是不限定于此种NC程序,例如也能应用于用于控制机器人的程序等。作为一例,NC程序是使用“G语言”记述,用于控制机器人的程序大多是使用专用的机器人语言记述。
本发明的“中间代码”为包含用于按照依次解释的程序(原本不适于在每个固定周期中更新指令值等处理)在每个控制周期中算出指令值的任意命令的概念。即,只要指令值运算部60能在每个控制周期中算出指令值,则中间代码可为任何代码。典型而言,“中间代码”包含一个或多个命令或者一个或多个函数。
本发明所谓“能够用于其他处理的形态”,是指将更新的指令值为排外性或不可参照等无法二次利用的形态除外。即,对于指令值运算部60在某个控制周期中算出的指令值,能从控制装置100中执行的任意处理、进程(process)、任务等进行存取,参照或更新所述值。关于“能够用于其他处理的形态”的安装方法,也能采用周知技术。
本实施方式的控制装置100中,执行第一程序62(即每当执行时被整体扫描且每当执行时算出一个或多个指令值的程序)及第二程序64(即依次解释的任意程序),在每个控制周期中算出依各程序的指令值。第二程序64是以解释器方式执行,因此原本并不保证在每个固定周期更新指令值,但本实施方式中利用解释器58事先生成中间代码,并利用此中间代码算出每个控制周期的指令值。
因此,在每个控制周期中算出依第一程序62的指令值及依第二程序64的指令值,且均能进行存取,因此能容易地实现下文将述那样的对指令值的校正处理、或将根据不同程序算出的多个指令值同步采样(sampling)的处理等。
通过提供此种数据存取的容易性,能实现精度更高的控制动作。另外,通过同步收集依不同程序的指令值,能提高事后的数据分析的精度。
另外,本实施方式的控制装置100能并行执行性质不同的多种程序,无需如以前那样分别个别地配置用于执行第一程序62的装置与用于执行第二程序64的装置。即,能利用单一的控制装置100来实现以前利用个别的多个装置实现的系统,因此能享有空间及成本上的优点。
以下,作为本发明的更具体的应用例,对本实施方式的控制装置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 AutomationTechnology,EtherCAT)(注册商标)、以太网工业协议(EtherNet Industry Protocol,EtherNet/IP)(注册商标)、设备网(DeviceNet)(注册商标)、混合网(CompoNet)(注册商标)等。
现场网络2上能连接任意的现场设备500。现场设备500包含对制造装置或生产线等(以下也统称为“现场”)给予某些物理作用的致动器、及在与现场之间交换信息的输入输出装置等。
虽经由现场网络2在控制装置100与现场设备500之间进行数据交换,但这些交换数据是以几百微秒(μsec)级~几十毫秒(msec)级的极短周期更新。此外,此种交换数据的更新处理也称为输入输出刷新处理。
图2所示的构成例中,现场设备500包含远程输入/输出(Input/Output,I/O)装置510、伺服驱动器520及伺服电机522以及CNC加工装置530。现场设备500不限于所述设备,能采用收集输入数据的任意设备(例如视觉传感器等)、给予依输出数据的某些作用的任意设备(例如逆变器装置等)、各种机器人等。
典型而言,远程I/O装置510包含经由现场网络2进行通信的通信耦合器、及用于进行输入数据的取得及输出数据的输出的输入输出部(以下也称为“I/O单元”)。
远程I/O装置510上,连接有输入继电器或各种传感器(例如模拟传感器、温度传感器、振动传感器等)等收集输入数据的装置,以及输出继电器、接触器、伺服驱动器及其他任意致动器等对现场给予某些作用的装置。
伺服驱动器520按照来自控制装置100的输出数据(例如位置指令或速度指令等)驱动伺服电机522。
CNC加工装置530按照指定位置或速度等的程序来控制加工中心(machiningcenter)等,由此对任意对象物进行加工。典型而言,CNC加工装置530包含车床加工、铣床、放电加工等的加工装置。
控制装置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、芯片组104、主存储装置106、辅助存储装置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)等挥发性存储装置等构成。辅助存储装置108例如是由硬盘驱动器(HardDiskDrive,HDD)或固态驱动器(Solid State Drive,SSD)等非挥发性存储装置等构成。
处理器102读取辅助存储装置108中存储的各种程序并在主存储装置106中展开执行,由此实现与控制对象相应的控制及下文将述那样的各种处理。辅助存储装置108中除了存储用于实现基本功能的系统程序34以外,还存储根据控制对象的制造装置或设备而制作的用户程序(IEC程序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 Integrated Circuit,ASIC)或现场可编程门阵列(Field-Programmable Gate Array,FPGA)等)来安装所述提供的功能的一部分或全部。或者,也可使用按照通用体系结构(architecture)的硬件(例如以通用个人计算机为基础的工业个人计算机)来实现控制装置100的主要部分。此情况下,也可使用虚拟化技术并行执行用途不同的多个操作系统(Operating System,OS),并且在各OS上执行必要的应用。
图3所示的控制系统1中,控制装置100、支援装置200及显示装置400是分别以个体的形式构成,但也可采用将所述装置的全部或一部分功能归集到单一装置中那样的构成。
<D.控制装置的功能构成例>
然后,对本实施方式的控制装置100的功能构成例进行说明。
图4为表示本实施方式的控制装置100的功能构成例的示意图。参照图4,控制装置100包含IEC程序执行部140、NC程序执行部150、共享存储器160、输入输出接口处理部162及上级网络接口处理部164作为程序执行的功能构成。
IEC程序执行部140相当于在每个控制周期中扫描IEC程序30(第一程序)整体而更新指令值的第一程序执行部。即,IEC程序执行部140在每个预定的控制周期中执行(扫描)IEC程序30,更新一个或多个指令值。IEC程序30可包含顺序命令及动作命令。顺序命令规定包含输入值、输出值、内部值等的一个或多个逻辑运算。动作命令对伺服电机等致动器规定作为位置、速度、加速度、急动度、角度、角速度、角加速度、角急动度等数值的指令值的运算顺序。
IEC程序执行部140在每个控制周期中执行IEC程序30整体。即,在一次控制周期中,IEC程序执行部140从IEC程序30的最初开始执行到最末,更新各控制周期的指令值。其中,动作命令有时也能利用一个命令在多个控制周期中算出指令值。IEC程序执行部140为了执行此种动作命令而具有动作指令值运算部142。
动作指令值运算部142在每个控制周期中按照动作命令算出指令值。
如此,IEC程序执行部140在每个控制周期中使用此控制周期的输入数据执行IEC程序30,算出此控制周期的指令值。
NC程序执行部150相当于按照依次解释的NC程序32(第二程序)在每个控制周期中更新指令值的第二程序执行部。更具体而言,NC程序执行部150以解释器方式执行NC程序32。但是,NC程序执行部150进行的指令值算出(更新)是在每个控制周期中重复执行。如此,与IEC程序执行部140进行的指令值算出同步地,NC程序执行部150按照NC程序32算出指令值。为了实现此种每个控制周期的指令值算出,NC程序执行部150包含解释器152、中间代码缓冲器154及NC指令值运算部158。
解释器152解释NC程序32的至少一部分并生成中间代码156。即,解释器152依次解释NC程序32并生成中间代码156,并且将生成的中间代码156依次存储在中间代码缓冲器154中。解释器152以某种程度事先根据NC程序32进行中间代码156的生成。因此,中间代码缓冲器154中有时也存储着多个中间代码156。本实施方式中,解释器152生成用于算出指令值的轨道,因此有时也被称为“规划器(planner)”。
NC指令值运算部158按照解释器152事先生成的中间代码156,在每个控制周期中算出指令值。通常NC程序中记述的命令(代码)是依次解释,因此并不保证能在每个运算周期中算出指令值,但通过利用与中间代码156,能实现每个控制周期的指令值算出。
解释器152将生成的中间代码156在中间代码缓冲器154中依次列队(queueing),NC指令值运算部158按中间代码缓冲器154中的列队次序读取中间代码156。
共享存储器160提供存储用于控制运算的内部变量等的存储区域,能从IEC程序执行部140及NC程序执行部150均进行存取。即,共享存储器160中存储由IEC程序执行部140在每个控制周期中更新的一个或多个指令值、及由NC程序执行部150在每个控制周期中更新的一个或多个指令值。共享存储器160可用于从IEC程序执行部140参照NC程序执行部150(NC指令值运算部158)在每个控制周期中算出的指令值,或也可用于其反参照。
更具体而言,能将NC程序执行部150进行处理所得的一部分或全部结果存储在共享存储器160,且IEC程序执行部140参照共享存储器160中存储的数据。另一方面,可将IEC程序执行部140进行处理所得的一部分或全部结果存储在共享存储器160中,且NC程序执行部150参照共享存储器160中存储的数据。如此,IEC程序执行部140及NC程序执行部150(NC指令值运算部158)以能够用于其他处理的形态在每个控制周期中输出指令值。此外,在共享存储器160中存储数据时,也可采用结构体变量。
输入输出接口处理部162相当于在每个控制周期中更新输入数据及输出数据的数据更新部。即,输入输出接口处理部162为用于实现输入输出刷新处理的功能构成,在与经由内部总线控制器120连接的I/O单元122和/或经由现场网络控制器130连接的现场设备500之间交换输入数据及输出数据。此种交换数据是以几百微秒(μsec)级~几十毫秒(msec)级的极短周期(固定周期)更新。
更具体而言,输入输出接口处理部162将由IEC程序执行部140算出的一个或多个指令值(基本上为逻辑值)、由IEC程序执行部140的动作指令值运算部142算出的一个或多个指令值(基本上为数值)、以及由NC程序执行部150的NC指令值运算部158算出的一个或多个指令值(基本上为数值)在每个控制周期中输出给现场侧。另外,输入输出接口处理部162在每个控制周期中取得由I/O单元122收集的输入数据及由现场设备500收集的输入数据。
控制装置100从经由上级网络6连接的伺服装置300等接受生产的开始/结束等指示。伺服装置300也可将配方(recipe)信息(适于生产的参数等信息)等发送至控制装置100,或也可将NC程序本身下载(download)在控制装置100中。
上级网络接口处理部164作为IEC程序执行部140及NC程序执行部150与经由上级网络控制器110连接的装置(伺服装置300及显示装置400)之间进行数据交换的中介。
图4所示的构成中,为了便于说明而示出仅配置一个NC程序执行部150的构成例,但不限于此,也可配置多个NC程序执行部150。此情况下,NC程序执行部150各自互相独立地解释及执行NC程序。
所述说明中,提及IEC程序执行部140及NC程序执行部150在每个控制周期中算出指令值,但除此以外,也可存在以较控制周期长的周期执行的程序。此种程序例如被称为系统服务(system service)等。此种系统服务是在不执行任何任务的空时间中执行。然而,输入数据及输出数据的更新是以在每个控制周期中重复执行的输入输出刷新处理的时机执行。典型而言,与系统服务有关的输入数据及输出数据的更新也能每隔控制周期的整数倍执行。
<E.中间代码>
然后,对NC程序执行部150的解释器152解释NC程序32而生成的中间代码的一例进行说明。
图5为概念性地表示本实施方式的控制装置100中的NC程序32的执行处理的示意图。参照图5,NC程序32在NC程序执行部150中被依次解释后,算出每个控制周期的指令值。
通常NC程序32包含以解释器方式依次解释的代码,依次解释各代码的情况下需要的时间根据各代码记述的内容而变化。即,由于以解释器方式依次解释,因此在每个控制周期中算出指令值并不容易。
因此,本实施方式的控制装置100中,NC程序执行部150的解释器152解释NC程序32中记述的一个或多个代码,并根据其解释的内容生成用于在每个控制周期中算出指令值的中间代码156。中间代码156是依NC程序32中记述的一个或多个代码而分别生成,因此通常根据一个NC程序32生成多个中间代码156。
将生成的中间代码156在NC程序执行部150的中间代码缓冲器154中依次列队。
对于各中间代码156,也可规定以与时间有关的变量为输入且能算出指令值的函数。即,中间代码156也可为用于使NC程序执行部150的NC指令值运算部158在每个控制周期中更新指令值的函数。通过使用此种函数,NC指令值运算部158能依次参照生成的中间代码156算出各控制周期中的指令值。
更具体而言,中间代码156也可为规定时间与指令值的关系的函数。用于规定中间代码156的与时间有关的变量能使用时刻、从某个基准时机开始的经过时间、控制周期的累计循环数等。
例如若设定为第1个中间代码1在控制周期10倍的期间中规定指令值,NC程序执行部150的NC指令值运算部158将中间代码1列队,在10个控制周期的期间中周期性算出指令值。同样地,其他中间代码2及中间代码3也基本上能在多个控制周期中算出指令值。
因此,若NC程序执行部150的解释器152根据NC程序32生成中间代码的处理与NC程序执行部150的NC指令值运算部158运算指令值的处理相比足够提前地执行,则能与依IEC程序30的处理同步而同步执行依NC程序32的处理。
图6A、图6B为用于对本实施方式的控制装置100中的中间代码的生成例进行说明的示意图。参照图6A,当NC程序执行部150的解释器152依次执行NC程序32时,NC程序32所含的各命令被解释((1)程序解释)。通过此命令解释而在内部生成规定的轨道((2)轨道生成)。最终,解释器152将生成的轨道分割成既定的区间后,生成规定各区间的轨道的一个或多个函数(中间代码)((3)中间代码生成)。
此外,也可利用共同的中间代码规定多个区间,或也可将一个区间进一步分割而生成各自的共同代码。即,无需使NC程序32的命令或根据所述命令规定的轨道的区间与生成的中间代码的个数一致,只要任意生成即可。另外,关于中间代码156的输出形态也可考虑所要求的控制周期的时间宽等而适当设计。
如图6A所示,中间代码156的一例也可为规定时间与指令值的关系的函数。图6A所示的示例中,在内部生成的轨道能以直线的组合来规定,因此作为一例,输出针对每个直线区间(区间1~区间3)的轨道表示时间与速度的关系的函数F1(t)、函数F2(t)、函数F3(t)。
如图6B所示,NC程序执行部150的NC指令值运算部158在每个控制周期中按照生成的中间代码156算出指令值,由此在每个控制周期中算出指令值。即,通过在与各区间对应的函数中输入各控制周期的时刻,能唯一地决定此时刻的指令值。
所述图5及图6A、图6B中,作为一例,示出利用CNC所用的G语言进行记述的代码的一例,但不限于此,只要为任意的以解释器方式执行的程序,则也可使用任何语言。另外,也可根据处理对象的语言形式使生成的中间代码的形式不同。
<F.程序的执行动作例>
然后,对本实施方式的控制装置100中的程序的执行动作例进行说明。
图7为表示本实施方式的控制装置100中的程序的执行动作例的时间图。图7中作为一例,示出以不同优先度设定多个任务,且各任务根据各自的优先度共享处理器102的资源的示例。
图7所示的示例中,设定以下4个处理作为高优先任务:(1)由输入输出接口处理部162执行的输入输出刷新处理20、(2)IEC程序执行部140的IEC程序30执行、(3)NC程序执行部150的NC指令值运算部158算出指令值的处理、(4)IEC程序执行部140的动作指令值运算部142算出指令值的处理。
另外,作为低优先任务,设定NC程序执行部150的解释器152进行的NC程序32的依次解释。
高优先任务是在每个预定的控制周期T1中重复执行。低优先任务是在不执行高优先任务的期间中适当执行。即,在每个控制周期中,分配高优先任务的执行时间,在高优先任务的执行时间以外的时间执行低优先任务。
首先对高优先任务进行说明,当各控制周期到来时,首先执行输入输出刷新处理20后,IEC程序执行部140执行(扫描)IEC程序30整体,算出依顺序命令的一个或多个指令值。而且,NC程序执行部150的NC指令值运算部158从中间代码缓冲器154读取中间代码156(使其出队(dequeue)),算出此控制周期的指令值。另外,IEC程序执行部140的动作指令值运算部142按照IEC程序30所含的动作命令,算出与动作命令有关的一个或多个指令值。以后,在每个控制周期中重复同样的处理。
此外,NC指令值运算部158从中间代码缓冲器154读取中间代码156的时机(出队时机)也可不为各控制周期。其原因在于:读取的中间代码大多包含能在多个控制周期中算出指令值的命令。
如此,当某个控制周期的高优先任务的执行完成时,准备好依顺序命令的指令值、依动作命令的指令值、及与控制应用有关的指令值的组(set)。所述指令值基本上是在下一控制周期到来时反映给现场侧。即,IEC程序执行部140及NC程序执行部150能以同一控制周期算出与输入数据相应的指令值,因此能实现与输入同步的输出。
图7为了便于说明,示出依序执行IEC程序30的执行、NC指令值运算部158算出指令值的处理及动作指令值运算部142算出指令值的处理的示例,但执行顺序也可适当变更,也可将各处理进一步细分化而交替执行。即,只要能在前一次输入输出刷新处理20的执行完成后到下一次输入输出刷新处理20的执行开始前的期间中,算出应作为包含指令值的外部数据而输出的数据即可。
另一方面,对低优先任务进行说明,NC程序执行部150的解释器152依次解释NC程序32。即,NC程序执行部150的解释器152以低优先来执行NC程序32的读入及分析。将解释器152对NC程序32进行分析处理而生成的中间代码依次在中间代码缓冲器154中列队(入队(enqueue))。在中间代码缓冲器154中列队的中间代码被NC程序执行部150的NC指令值运算部158逐一参照以用于生成指令值。
NC程序执行部150的解释器152通过将高优先任务的运算周期即控制周期的整数倍的中间代码预先列队,能实现NC程序执行部150的NC指令值运算部158在每个控制周期中的指令值算出。
NC程序执行部150的解释器152也可通过对NC程序32事先进行分析处理,而预先足够多余地生成NC程序执行部150的NC指令值运算部158运算指令值所参照的中间代码。
NC程序执行部150的解释器152在每个预定的解释器控制周期T2(基本上为控制周期T1的整数倍)中,在与IEC程序执行部140之间进行数据同步处理。因此,解释器152在各程序执行动作中,读入仅NC程序32所含的代码中在解释器控制周期T2内可处理的代码并解释。
如图7所示,作为高优先任务的IEC程序执行部140的IEC程序30执行、NC程序执行部150的NC指令值运算部158算出指令值的处理、及IEC程序执行部140的动作指令值运算部142算出指令值的处理均是在每个控制周期中执行,因此也能以各控制周期互相反映运算结果。
例如能将在某个控制周期中通过执行IEC程序30而算出的指令值反映给NC指令值运算部158在同一控制周期中算出的指令值。另外,也可将在某个控制周期中通过执行IEC程序30而算出的指令值、与NC指令值运算部158在同一控制周期中算出的指令值设为同一数据组,并发送给外部的伺服装置300等。
如此,本实施方式的控制装置100中,对于被重复执行(扫描)的IEC程序30及依次解释的NC程序32,均执行在每个控制周期中算出指令值的处理,因此能容易地进行在此种性质不同的两个程序间彼此互相参照运算结果等处理、或将各程序输出的运算结果汇总等处理。
以下,对利用图7所示那样的本实施方式的控制装置100中的程序执行动作的若干应用例进行说明。
<G.应用例一>
然后,作为本实施方式的控制装置100的一个应用例,对针对按照NC程序32算出的指令值进行动态校正的处理例进行说明。
(g1:控制系统的整体构成例)
图8为表示包含本实施方式的控制装置100的控制系统1A的整体构成例的示意图。参照图8,控制装置100经由现场网络2与远程I/O装置510、CNC加工装置540及视觉传感器550连接。这些装置为现场设备500的一例。
CNC加工装置540为对由传送带等搬送的工件进行任意加工的装置,按照控制装置100中在每个控制周期中算出的指令值动作。
视觉传感器550是以视野范围内包含CNC加工装置540的加工构件(例如车刀(bite))的方式配置,例如能通过图像识别处理来检测加工构件的位置或移位。由视觉传感器550检测的表示位置或移位的信息可由控制装置100存取。
例如即便是在加工过程中产生了CNC加工装置540的加工构件的位置偏移的情况等,也有欲将加工构件配置在适当位置等需求。通常CNC加工装置540是通过NC程序32以沿着预先规定的轨道动作的方式控制。因此,对动作过程中可能产生的扰乱进行校正并不容易。
相对于此,包含本实施方式的控制装置100的控制系统1A能对CNC加工装置540中可能产生的扰乱等进行每个控制周期中的动态校正。即,能适当校正CNC加工装置540的加工构件的位置偏移等。
(g2:控制结构)
图9为表示图8所示的控制系统1A的控制结构的主要部分的示意图。参照图9,NC指令值运算部158在每个控制周期中输出指令值,并且视觉传感器550在每个控制周期中输出校正量。此外,也可通过控制装置100中执行的运算处理算出校正量,而非视觉传感器550本身算出校正量。
相加部170中,将来自NC指令值运算部158的指令值加上来自视觉传感器550的校正量,算出校正后的指令值。将此校正后的指令值给予CNC加工装置540。
如此,控制装置100中能根据NC指令值运算部158在每个控制周期中算出的指令值、及由输入输出刷新处理更新的数据(输入数据/输出数据)执行运算处理。如图9所示,校正处理中,采用对NC指令值运算部158在每个控制周期中算出的指令值的数值处理,但不限于此,也能应用逻辑处理或条件判断处理等。
如上所述,NC程序执行部150的NC指令值运算部158进行的指令值算出是在每个控制周期中重复,因此图9所示的指令值的校正处理能在每个控制周期中执行。即,能在每个控制周期中动态校正给予CNC加工装置540的指令值。
通过此种每个控制周期的动态校正,能实现更准确的加工处理等。
此外,所述说明中,例示了加上视觉传感器550输出的校正量的处理,但不限于此,能使用任意的校正量应用任意的校正处理。
(g3:程序代码例)
关于图9所示的控制结构,可通过IEC程序执行部140中执行的IEC程序30、与NC程序执行部150的NC指令值运算部158中执行的附加处理的组合来实现,也可汇总记述在IEC程序30中。作为一例,对汇总记述在IEC程序30中的情况进行说明。
图10为表示用于实现图9所示的控制结构的IEC程序的代码例的图。参照图10,IEC程序代码600包含用于从视觉传感器550取得校正量的功能块610、用于使NC程序执行部150执行NC程序32的功能块620、及将两个输入相加的功能块630。
功能块610规定某个接点612(IN01)作为执行条件,通过将接点612驱动为“开”,而将从视觉传感器550取得的校正量存储在变量616(Resl)中。在与功能块610相关联的线圈614(C1)中,存储表示功能块610中的处理执行状态的值。
功能块620规定某个接点622(IN02)作为执行条件,通过将接点622驱动为“开”,而指示NC程序执行部150中的NC程序32的执行。将由NC程序执行部150的NC指令值运算部158在每个控制周期中算出的指令值存储在与功能块620的输出节点(node)相关联的变量628(Res2)中。
在与功能块620相关联的线圈624(C2)中,存储表示功能块620中的处理执行状态的值。与功能块620相关联的变量626(Num)确定应执行的NC程序32。即,按照变量626中存储的数值或文字,确定NC指令值运算部158应执行的NC程序32。通过按照适当的条件更新或切换变量626中存储的数值或文字,能实现与状况相应的加工处理等。
功能块630将与第一输入节点相关联的变量616(Res1)和与第2输入节点相关联的变量628(Res2)相加,作为最终校正后的指令值632(Out_Va101)而输出。
所述图10所示的IEC程序代码600是在每个控制周期中被整体执行(扫描),因此能实现图9所示那样的位置指令的每个控制周期的校正。此外,当执行IEC程序代码600的功能块620时,也可等待NC程序执行部150的NC指令值运算部158算出指令值后,执行后续命令。
(g4:处理顺序)
图11为表示图8所示的控制系统1A的控制装置100中执行的处理顺序的流程图。图11中分别示出高优先任务及低优先任务的执行。
参照图11,关于高优先任务,当控制周期到来时(步骤S100中为是(Yes)),输入输出接口处理部162执行输入输出刷新处理(步骤S102)。由此,将前一控制周期中算出的指令值输出给致动器等,并且从现场取得输入数据。
IEC程序执行部140通过扫描IEC程序30整体而算出本次控制周期的一个或多个指令值(步骤S104)。即,在内部算出依IEC程序30的顺序命令的指令值。
NC程序执行部150的NC指令值运算部158判断是否有效读入了用于算出指令值所需要的中间代码(步骤S106)。若未有效读入中间代码(步骤S106中为否(No)),则NC指令值运算部158从中间代码缓冲器154读入中间代码(步骤S108)。若有效读入了中间代码(步骤S106中为是),则跳过步骤S108的处理。
NC程序执行部150的NC指令值运算部158按照中间代码算出本次控制周期的指令值(步骤S110)。进而,IEC程序执行部140对算出的指令值加上本次控制周期中取得的校正量,算出校正后的指令值(步骤S112)。此外,步骤S112的处理也可由NC指令值运算部158执行。如此而在内部算出依NC程序32的指令值。
IEC程序执行部140的动作指令值运算部142按照IEC程序30所含的动作命令,算出本次控制周期的指令值(步骤S114)。
此外,有时也在步骤S104的IEC程序30的执行中途中断而执行步骤S106~步骤S112的处理。
通过以上的处理算出本次控制周期的指令值。然后,重复步骤S100以后的处理。即,当下一控制周期到来时,将步骤S104、步骤S112、步骤S114中算出的指令值输出给现场。此外,在步骤S112之后、下一控制周期到来之前的期间中,执行低优先任务。
另一方面,关于低优先任务,当控制周期到来时(步骤S200中为是),判断本次控制周期是否与解释器控制周期T2一致(步骤S202)。若本次控制周期与解释器控制周期T2一致(步骤S202中为是),则NC程序执行部150的解释器152在与IEC程序执行部140之间执行数据同步(步骤S204)。然后,NC程序执行部150的解释器152读入NC程序32中在本次解释器控制周期T2内可执行的范围的代码(步骤S206)。
若本次控制周期与解释器控制周期T2不一致(步骤S202中为否),则跳过步骤S204及步骤S206的处理。
在对低优先任务分配了程序执行时间的期间中,NC程序执行部150的解释器152解释步骤S206中读入的代码(步骤S208),当生成某些中间代码时(步骤S210中为是),将生成的中间代码存储在中间代码缓冲器154中(步骤S212)。然后,重复步骤S200以后的处理。
即,在解释器控制周期T2内,在对低优先任务分配了程序执行时间的期间中,重复步骤S208~步骤S212的处理。
(g5:优点)
根据本实施方式,能在按照依次解释的NC程序32生成指令值的处理中,使用控制装置100在每个控制周期中取得的校正量,对按照NC程序32算出的指令值进行校正。
在将依次解释并执行NC程序的工作机械与固定周期执行顺序程序的PLC组合的系统中,若工作机械算出指令值的周期及时机与PLC执行输入输出刷新处理的周期及时机不一致,则无法进行对工作机械算出的指令值实时反映校正值那样的处理。
相对于此,本实施方式的控制装置100中,在每个控制周期中执行包含顺序命令及动作命令的IEC程序,并且对于NC程序也利用中间代码在每个控制周期中算出指令值。如此,能在每个控制周期中不仅按照顺序命令及动作命令算出指令值而且还按照NC程序算出指令值,因此也能进一步对在每个控制周期中算出的指令值进行校正。
如上所述,能一面利用相机等观测当前的指令轨迹,一面使用控制装置100在每个控制周期中收集的输入数据实时校正指令值,因此能提高工作机械的加工精度。
<H.应用例二>
然后,作为本实施方式的控制装置100的另一应用例,对收集按照IEC程序30及NC程序32算出的指令值及各种输入输出数据的处理例进行说明。
(h1:控制系统的整体构成例)
图12为表示包含本实施方式的控制装置100的控制系统1B的整体构成例的示意图。参照图12,控制装置100经由现场网络2与远程I/O装置510、伺服驱动器520及伺服电机522以及CNC加工装置540连接。这些装置为现场设备500的一例。
远程I/O装置510从现场取得输入数据,并且将控制装置100中算出的指令值输出给现场。
伺服驱动器520按照控制装置100中算出的指令值(例如位置指令或速度指令等)驱动伺服电机522。
CNC加工装置540为对由传送带等搬送的工件进行任意加工的装置,按照控制装置100中在每个控制周期中算出的指令值动作。
此种控制系统1B存在以下需求:在生产管理、追溯(traceability)管理、异常侦测、异常原因分析、利用机械学习等的各种分析等各种用途中,欲收集控制装置100管理的数据等。此种情况下,能采用以下形态:将控制装置100中周期性收集的数据或对各既定事件(event)分别收集的数据发送给上级的伺服装置300;存储在控制装置100中内置或安装的任意存储介质中;利用支援装置等取得内部数据等。
任一情况下,均需要周期性收集数据或对各既定事件分别收集数据,另外,重要的是使对象数据的收集时机一致。
包含本实施方式的控制装置100的控制系统1B中,依顺序命令及动作命令的指令值以及依NC程序的指令值均是在每个控制周期中同步算出,另外在每个控制周期中也更新输入数据。因此,输入数据及输出数据(指令值)均能在每个控制周期中收集,通过使用如此收集的数据群,能容易地进行事后分析。
(h2:控制结构)
图13为表示图12所示的控制系统1B的控制结构的主要部分的示意图。参照图13,顺序运算部182及动作运算部184各自在每个控制周期中输出输入数据及输出数据(指令值)的至少一者。另外,NC指令值运算部186在每个控制周期中输出算出的指令值。
数据收集部180在每个控制周期中收集从顺序运算部182、动作运算部184及NC指令值运算部186分别输出的数据,并将汇总的数据发送给上级的伺服装置300等。
如此,控制装置100中,能生成通过输入输出刷新处理更新的数据(输入数据/输出数据)及由IEC程序执行部140更新的指令值中的至少一者、与NC指令值运算部158在每个控制周期中算出的指令值作为数据组。另外,数据收集部180作为将在每个控制周期中生成的数据组输出至外部的输出部发挥功能。
此外,向上级的伺服装置300的数据发送无需在每个控制周期中执行,也可将多个控制周期中分别收集的数据汇总,并以较控制周期长的每个周期发送。此情况下,也可对发送数据的任务设定较每个控制周期中执行的任务低的优先度。通过此种优先度的区分,能在不对每个控制周期中执行的处理造成影响的情况下,收集及发送能实现高精度管理的数据。
通过同步收集此种不同控制运算中所用的数据,能容易地进行事后分析。
(h3:程序代码例)
关于图13所示的控制结构,可通过IEC程序执行部140中执行的IEC程序30与NC程序执行部150的NC指令值运算部158中执行的附加处理的组合来实现,也可汇总记述在IEC程序30中。作为一例,对汇总记述在IEC程序30中的情况进行说明。
图14为表示用于实现图13所示的控制结构的IEC程序的代码例的图。参照图14,IEC程序代码650包含顺序命令、动作命令及依NC程序的指令值的算出命令。
更具体而言,IEC程序代码650包含用于使线圈658(C1)“开”或“关”的顺序逻辑。线圈658是由接点652(IN01)与接点654(IN02)的逻辑积和接点656(IN03)的逻辑和驱动。
规定动作命令的功能块660规定某个接点662(IN04)作为执行条件,通过将接点662驱动为“开”而执行预先规定的动作命令,并将通过所述执行而算出的指令值存储在两个变量666、变量668(AXIS1、AXIS2)中。在与功能块660相关联的线圈664(C2)中存储表示功能块660中的处理执行状态的值。
功能块670规定某个接点672(IN05)作为执行条件,通过将接点672驱动为“开”而指示NC程序执行部150中的NC程序32的执行。将由NC程序执行部150的NC指令值运算部158在每个控制周期中算出的指令值存储在与功能块670的输出节点相关联的变量678(Res1)中。
在与功能块670相关联的线圈674(C3)中,存储表示功能块670中的处理执行状态的值。与功能块670相关联的变量676(Num)确定应执行的NC程序32。即,根据变量676中存储的数值或文字,确定NC指令值运算部158应执行的NC程序32。通过按照适当条件更新或切换变量676中存储的数值或文字,能实现与状况相应的加工处理等。
功能块680规定某个接点682(IN06)作为执行条件,通过将接点682驱动为“开”而收集作为输入变量群684而规定的各变量值,并向作为数据库发挥功能的伺服装置300等发送所收集的数据。
所述图14所示的IEC程序代码650是在每个控制周期中被整体执行(扫描),由此能实现图13所示那样的位置指令的每个控制周期的校正。此外,当执行IEC程序代码650的功能块670时,也可等待NC程序执行部150的NC指令值运算部158算出指令值后,执行后续命令。
(h4:处理顺序)
图15为表示图12所示的控制系统1B的控制装置100中执行的处理顺序的流程图。图15中分别示出高优先任务及低优先任务的执行。图15所示的处理中,对实质上与图11所示的处理相同的处理标注与图11相同的步骤编号。
参照图15,关于高优先任务,当控制周期到来时(步骤S100中为是),输入输出接口处理部162执行输入输出刷新处理(步骤S102)。由此,将前一控制周期中算出的指令值输出给致动器等,并且从现场取得输入数据。
IEC程序执行部140通过扫描IEC程序30整体而算出本次控制周期的一个或多个指令值(步骤S104)。即,在内部算出依IEC程序30的顺序命令的指令值。
NC程序执行部150的NC指令值运算部158判断是否有效读入了用于算出指令值所需要的中间代码(步骤S106)。若未有效读入中间代码(步骤S106中为否),则NC指令值运算部158从中间代码缓冲器154读入中间代码(步骤S108)。若有效读入了中间代码(步骤S106中为是),则跳过步骤S108的处理。
IEC程序执行部140的动作指令值运算部142按照IEC程序30所含的动作命令,算出本次控制周期的指令值(步骤S114)。
NC程序执行部150的NC指令值运算部158按照中间代码算出本次控制周期的指令值(步骤S110)。
此外,有时也在步骤S104的IEC程序30的执行中途中断而执行步骤S106~步骤S114的处理。
进而,IEC程序执行部140收集与指定的变量值对应的数据(步骤S120)。此外,步骤S120中收集的数据可在同一控制周期中发送,也可暂且列队后,在其他任务(设定了更低优先度的任务)中向外部发送。
通过以上的处理运算本次控制周期的指令值。然后,重复步骤S100以后的处理。此外,在步骤S120之后、下一控制周期到来之前的期间中,执行低优先任务。
另一方面,关于低优先任务,由于与图11所示的对应步骤的处理相同,因此不重复进行详细说明。
(h5:优点)
根据本实施方式,能在每个控制周期中同步收集包含每个控制周期中更新的输入数据及每个控制周期中算出的指令值的输出数据中的一个或多个。另外,也可将如此收集的数据发送给上级的伺服装置等。此外,数据的发送是通过经设定了更低优先度的任务来执行。
如此,根据本实施方式,能同步收集按照NC程序32控制的工作机械的相关数据、与由控制装置100直接控制的现场设备的相关数据。
在将依次解释并执行NC程序的工作机械与固定周期执行顺序程序的PLC组合的系统中,不得不分别取得各装置中收集的数据,另外数据的收集时机也不一致,因此数据的成形及加工需要超出需要的工时。另外,数据的收集间隔也大多情况下视装置而不同,难以取得完全同步的数据。结果,所取得的数据的活用范围或其分析效果有限,难以用于预见性维护(predictive maintenance)等。
相对于此,本实施方式的控制装置100中,不仅是与顺序处理及动作处理有关的数据,按照NC程序32算出的指令值等也能在每个控制周期中同步收集。而且,能将所述收集的数据输出给上级的伺服装置及其他外部装置。
如此,通过使用本实施方式的控制装置100,能利用一个装置来收集包含工作机械的制造线整体的数据。另外,通过利用此种经同步的数据,能实现工作机械的工具寿命、预见性维护、加工物的品质分析等严密的数据分析。
另外,控制装置100具有所有必要数据,因此例如能容易地将向上级的伺服装置发送的数据格式(data format)设定为每条生产线固有的数据格式。结果,能容易地进行上级侧的伺服装置中的数据管理。
<I.变形例>
所述说明中,对执行IEC程序30和NC程序32的控制装置100进行了说明,但只要为以解释器方式记述的程序,则无论是何种程序均可同样地应用。
<J.备注>
所述那样的本实施方式包含以下那样的技术思想。
[构成1]
一种控制装置100,用于对控制对象进行控制,且所述控制装置具备:
数据更新部50、162,在每个控制周期中更新输入数据及输出数据;
第一程序执行部54、140,在每个控制周期中扫描第一程序62、30整体而更新指令值72;以及
第二程序执行部56、150,按照依次解释的第二程序64、32在每个控制周期中更新指令值74;并且
所述第二程序执行部包含:
解释器58、152,解释所述第二程序的至少一部分而生成中间代码;以及
指令值运算部60、158,按照由所述解释器生成的中间代码在每个控制周期中算出指令值74;
所述指令值运算部60、158)以能够用于其他处理的形态在每个控制周期中输出指令值。
[构成2]
根据构成1所记载的控制装置,还具备共享存储器52、160,此共享存储器用于从所述第一程序执行部参照所述指令值运算部在每个控制周期中算出的指令值。
[构成3]
根据构成1或2所记载的控制装置,还具备执行部140、150、600,此执行部根据所述指令值运算部在每个控制周期中算出的指令值及由所述数据更新部更新的数据执行运算处理。
[构成4]
根据构成3所记载的控制装置,其中所述运算处理包含对所述指令值运算部在每个控制周期中算出的指令值的数值处理。
[构成5]
根据构成1至4中任一项所记载的控制装置,还具备生成部140、150、650,此生成部生成由所述数据更新部更新的数据及由所述第一程序执行部更新的指令值中的至少一者、与所述指令值运算部在每个控制周期中算出的指令值作为数据组。
[构成6]
根据构成5所记载的控制装置,还具备输出部164,此输出部将在每个控制周期中生成的数据组输出至外部。
[构成7]
根据构成1至6中任一项所记载的控制装置,其中所述中间代码包含用于使所述指令值运算部在每个控制周期中更新指令值的函数。
[构成8]
根据构成7所记载的控制装置,其中所述中间代码包含规定时间与指令值的关系的函数。
[构成9]
根据构成1至8中任一项所记载的控制装置,其中所述解释器将生成的中间代码在缓冲器中依次列队,
所述指令值运算部构成为按所述缓冲器中的列队次序读取中间代码。
[构成10]
根据构成1至9中任一项所记载的控制装置,其中所述数据更新部、所述第一程序执行部及所述指令值运算部以高优先任务的形式执行处理,
所述解释器以低优先任务的形式执行处理。
[构成11]
一种控制方法,其为利用控制装置进行的控制方法,且包括:
在每个控制周期中更新输入数据及输出数据的步骤(S102);
在每个控制周期中扫描第一程序整体而更新指令值的步骤(S104);
解释依次解释的第二程序的至少一部分而生成中间代码的步骤(S208、S210);以及
按照所述生成的中间代码在每个控制周期中算出指令值的步骤(S110);并且
按照所述中间代码算出指令值的步骤以能够用于其他处理的形态在每个控制周期中输出指令值。
应认为本次公开的实施方式在所有方面为例示而非限制性。本发明的范围是由权利要求而非所述说明揭示,是指包括与权利要求的范围均等的含意及范围内的所有变更。

Claims (10)

1.一种控制装置,用于对控制对象进行控制,且所述控制装置的特征在于包括:
数据更新部,在每个控制周期中更新输入数据及输出数据;
第一程序执行部,在每个控制周期中扫描第一程序整体而更新第一指令值;
第二程序执行部,按照依次解释的第二程序在每个控制周期中更新第二指令值;以及
共享存储器,存储由所述第一程序执行部和所述第二程序执行部所更新的所述第一指令值与第二指令值,并且
所述第二程序执行部包含:
解释器,解释所述第二程序的至少一部分而生成中间代码;
指令值运算部,按照由所述解释器生成的中间代码在每个控制周期中算出所述第二指令值;
所述指令值运算部以能够用于其他处理的形态在每个控制周期中输出所述第二指令值,
通过所述共享存储器,从所述第一程序执行部参照所述指令值运算部在每个控制周期中算出的第二指令值,所述第二程序执行部参照所述第一程序执行部在每个控制周期中所更新的第一指令值,
其中所述第一程序执行部的处理结果的部分或全部被存储在所述共享存储器,且所述第二程序执行部参照存储在所述共享存储器的数据,
所述第二程序执行部的处理结果的部分或全部被存储在所述共享存储器,且所述第一程序执行部参照存储在所述共享存储器的数据。
2.根据权利要求1所述的控制装置,其特征在于还包括执行部,所述执行部根据所述指令值运算部在每个控制周期中算出的所述第二指令值及由所述数据更新部更新的数据执行运算处理。
3.根据权利要求2所述的控制装置,其特征在于:所述运算处理包含对所述指令值运算部在每个控制周期中算出的所述第二指令值的数值处理。
4.根据权利要求1所述的控制装置,其特征在于还包括生成部,所述生成部生成由所述数据更新部更新的数据及由所述第一程序执行部更新的指令值中的至少一者、与所述指令值运算部在每个控制周期中算出的所述第二指令值作为数据组。
5.根据权利要求4所述的控制装置,其特征在于还包括输出部,所述输出部将在每个控制周期中生成的数据组输出至外部。
6.根据权利要求1所述的控制装置,其特征在于:所述中间代码包含用于使所述指令值运算部在每个控制周期中更新所述第二指令值的函数。
7.根据权利要求6所述的控制装置,其特征在于:所述中间代码包含规定时间与所述第二指令值的关系的函数。
8.根据权利要求1所述的控制装置,其特征在于:所述解释器将生成的中间代码在缓冲器中依次列队,
所述指令值运算部构成为按所述缓冲器中的列队次序读取中间代码。
9.根据权利要求1所述的控制装置,其特征在于:所述数据更新部、所述第一程序执行部及所述指令值运算部以高优先任务的形式执行处理,
所述解释器以低优先任务的形式执行处理。
10.一种控制方法,其使用权利要求1所述的控制装置,
其中所述第一程序执行部参照所述第二程序执行部在每个所述控制周期中算出的所述第二指令值,以及所述第二程序执行部参照所述第一程序执行部在每个所述控制周期中算出的所述第一指令值。
CN201810151258.XA 2017-09-12 2018-02-13 控制装置及控制方法 Active CN109491307B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017-174922 2017-09-12
JP2017174922A JP6950385B2 (ja) 2017-09-12 2017-09-12 制御装置および制御方法

Publications (2)

Publication Number Publication Date
CN109491307A CN109491307A (zh) 2019-03-19
CN109491307B true CN109491307B (zh) 2022-02-15

Family

ID=61226388

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810151258.XA Active CN109491307B (zh) 2017-09-12 2018-02-13 控制装置及控制方法

Country Status (4)

Country Link
US (1) US10606246B2 (zh)
EP (1) EP3454144B1 (zh)
JP (1) JP6950385B2 (zh)
CN (1) CN109491307B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7230703B2 (ja) * 2019-06-20 2023-03-01 オムロン株式会社 制御装置
JP7277292B2 (ja) * 2019-07-08 2023-05-18 ファナック株式会社 Plc装置
JP7247808B2 (ja) * 2019-07-31 2023-03-29 オムロン株式会社 制御システム、解析方法およびプログラム
JP7294078B2 (ja) * 2019-11-12 2023-06-20 オムロン株式会社 制御装置
JP2022114753A (ja) * 2021-01-27 2022-08-08 オムロン株式会社 制御システム、ロボットコントローラおよび制御方法
JP2022114752A (ja) * 2021-01-27 2022-08-08 オムロン株式会社 制御装置、プログラム実行方法およびプログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101196825A (zh) * 2002-08-02 2008-06-11 松下电器产业株式会社 编译程序、编译程序装置和编译方法
CN102707926A (zh) * 2011-04-07 2012-10-03 威盛电子股份有限公司 可执行x86指令集及ARM指令集指令的微处理器及其运作方法
CN103403631A (zh) * 2011-03-15 2013-11-20 欧姆龙株式会社 可编程逻辑控制器的cpu单元、可编程逻辑控制器用系统程序以及存储可编程逻辑控制器用系统程序的记录介质
EP2902862A1 (en) * 2014-01-30 2015-08-05 Omron Corporation Control device and method for controlling motion of a machine, motion program and recording medium storing the same
CN107077114A (zh) * 2014-10-30 2017-08-18 西门子公司 在可编程逻辑控制器中使用软传感器

Family Cites Families (8)

* Cited by examiner, † Cited by third party
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
JP4257553B2 (ja) * 1998-07-07 2009-04-22 株式会社安川電機 モーションコントローラのプログラム作成および実行方法
DE102011003374A1 (de) 2011-01-31 2012-08-02 Deckel Maho Pfronten Gmbh Werkzeugmaschine mit einer Vorrichtung zur Kollisionsüberwachung
US8504176B2 (en) 2011-03-15 2013-08-06 Omron Corporation CPU unit of PLC, system program for PLC, and recording medium storing system program for PLC
JP4752984B1 (ja) * 2011-03-15 2011-08-17 オムロン株式会社 Plcのcpuユニット、plc用のシステムプログラムおよびplc用のシステムプログラムを格納した記録媒体
JP5099251B1 (ja) * 2011-07-15 2012-12-19 オムロン株式会社 Plcのcpuユニット、plc用のシステムプログラム、plc用のシステムプログラムを格納した記録媒体、plcシステム、plcサポート装置、plcサポートプログラム、および、plcサポートプログラムを格納した記録媒体
JP6626240B2 (ja) * 2014-03-13 2019-12-25 オムロン株式会社 コントローラ
JP6519458B2 (ja) * 2015-12-01 2019-05-29 オムロン株式会社 制御装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101196825A (zh) * 2002-08-02 2008-06-11 松下电器产业株式会社 编译程序、编译程序装置和编译方法
CN103403631A (zh) * 2011-03-15 2013-11-20 欧姆龙株式会社 可编程逻辑控制器的cpu单元、可编程逻辑控制器用系统程序以及存储可编程逻辑控制器用系统程序的记录介质
CN102707926A (zh) * 2011-04-07 2012-10-03 威盛电子股份有限公司 可执行x86指令集及ARM指令集指令的微处理器及其运作方法
EP2902862A1 (en) * 2014-01-30 2015-08-05 Omron Corporation Control device and method for controlling motion of a machine, motion program and recording medium storing the same
CN107077114A (zh) * 2014-10-30 2017-08-18 西门子公司 在可编程逻辑控制器中使用软传感器

Also Published As

Publication number Publication date
JP6950385B2 (ja) 2021-10-13
EP3454144A1 (en) 2019-03-13
US10606246B2 (en) 2020-03-31
JP2019049947A (ja) 2019-03-28
CN109491307A (zh) 2019-03-19
US20190079499A1 (en) 2019-03-14
EP3454144B1 (en) 2022-02-09

Similar Documents

Publication Publication Date Title
CN109491307B (zh) 控制装置及控制方法
CN109507980B (zh) 控制装置及控制方法
CN109388107B (zh) 控制装置
CN109557890B (zh) 控制装置
CN109581976B (zh) 控制装置
CN109542046B (zh) 控制装置、控制方法及控制系统
EP3460596A1 (en) Support device and support program
CN113168135A (zh) 同步控制装置、同步控制系统、同步控制方法和模拟装置
US11269313B2 (en) Controller and control system that stores data in current control cycle for output in next control cycle
CN109491324B (zh) 控制装置及控制方法
EP4036670A1 (en) Control device
CN114868091A (zh) 控制装置
CN114207534A (zh) 控制装置

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