CN109388107A - 控制装置 - Google Patents

控制装置 Download PDF

Info

Publication number
CN109388107A
CN109388107A CN201810148962.XA CN201810148962A CN109388107A CN 109388107 A CN109388107 A CN 109388107A CN 201810148962 A CN201810148962 A CN 201810148962A CN 109388107 A CN109388107 A CN 109388107A
Authority
CN
China
Prior art keywords
control
program
processing unit
control device
instruction value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810148962.XA
Other languages
English (en)
Other versions
CN109388107B (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 CN109388107A publication Critical patent/CN109388107A/zh
Application granted granted Critical
Publication of CN109388107B publication Critical patent/CN109388107B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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] or computer integrated manufacturing [CIM]
    • G05B19/41865Total 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
    • 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/18Numerical 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/414Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
    • G05B19/4145Structure 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]
    • 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/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • 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
    • 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/15Plc structure of the system
    • G05B2219/15014Configure priorities of different tasks
    • 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/20Pc systems
    • G05B2219/22Pc multi processor system
    • G05B2219/2205Multicore
    • 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/31From computer integrated manufacturing till monitoring
    • G05B2219/31418NC program management, support, storage, distribution, version, update
    • 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/32Operator till task planning
    • G05B2219/32252Scheduling production, machining, job shop
    • 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/34287Plc and motion controller combined
    • 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)
  • Manufacturing & Machinery (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Programmable Controllers (AREA)
  • Numerical Control (AREA)

Abstract

本发明能应对欲利用单一控制装置来实现按照执行形式不同的多种程序的控制运算这一需求。控制装置包含:存储部,存储每当执行时被整体扫描的第一程序及依次执行的第二程序;执行处理部,在每个预定的控制周期中执行第一程序而运算第一指令值;解释器,解释第二程序的至少一部分而生成中间代码;指令值运算部,按照解释器事先生成的中间代码在每个控制周期中运算第二指令值;以及输出部,在每个控制周期中输出由执行处理部运算出的第一指令值及由指令值运算部运算出的第二指令值。

Description

控制装置
技术领域
本发明涉及一种用于对控制对象进行控制的控制装置。
背景技术
在各种生产现场,使用可编程逻辑控制器(programmable logic controller,PLC)(可编程控制器)等控制装置的工厂自动化(Factory Automation,FA)技术已广泛普及。此种控制装置不仅直接对控制对象进行控制,而且有时也通过向其他装置给予控制指令而间接对控制对象进行控制。例如日本专利特开2013-134786号公报(专利文献1)中公开了一种由工作机械及连接于工作机械的可编程逻辑控制装置构成的系统。
另一方面,随着近年来的信息及通信技术(Information and CommunicationTechnology,ICT)的进步,控制装置的处理能力也不断飞跃性地提高。也产生了将现有技术中使用多个专用装置实现的控制系统合并成数量更少的控制装置这一需求(needs)。例如日本专利特开2012-194662号公报(专利文献2)中公开了一种由PLC的中央处理器(CentralProcessing Unit,CPU)单元同步执行动作运算程序及用户程序的构成。根据日本专利特开2012-194662号公报(专利文献2)公开的构成,能够联合/互相同步执行顺序程序(sequenceprogram)等用户程序与动作运算程序。
发明内容
设想欲利用单一控制装置来实现按照执行形式不同的多种程序的控制运算等需求高涨。本发明的一个目的在于提供一种能应对此种需求的控制装置。
根据本发明的某一方面,提供一种用于对控制对象进行控制的控制装置。控制装置包括:存储部,存储每当执行时被整体扫描的第一程序及依次执行的第二程序;执行处理部,在每个预定的控制周期中执行第一程序而运算第一指令值;解释器,解释第二程序的至少一部分而生成中间代码;指令值运算部,按照解释器事先生成的中间代码在每个控制周期中运算第二指令值;以及输出部,在每个控制周期中输出由执行处理部运算出的第一指令值及由指令值运算部运算出的第二指令值。
根据实施范例,解释器在控制周期的整数倍的每个同步周期中,更新与执行处理部共享的数据。
根据实施范例,解释器在同步周期到来之前暂且停止第二程序的解释。
根据实施范例,中间代码包含用于使指令值运算部在每个控制周期中运算第二指令值的函数。
根据实施范例,解释器将所生成的中间代码在缓冲器中依次列队(queueing),指令值运算部按缓冲器中的列队次序读取中间代码。
根据实施范例,中间代码包含以控制周期的时间为输入且以指令值为输出的函数。
根据实施范例,控制装置包含多组解释器及指令值运算部。
根据实施范例,执行处理部、指令值运算部及输出部以高优先任务的形式执行处理,且解释器以低优先任务的形式执行处理。
根据实施范例,在每个控制周期中分配高优先任务的执行时间,在高优先任务的执行时间以外的时间执行低优先任务。
根据实施范例,控制装置为具有多核的处理器,由第一核执行高优先任务,由第二核执行低优先任务。
根据本发明实施范例,能利用单一控制装置来实现按照执行形式不同的多种程序的控制运算。
附图说明
图1为表示本实施范例的控制系统的整体构成例的示意图。
图2为表示本实施范例的控制装置的硬件构成例的方块图。
图3为表示本发明的相关技术的计算机数值控制(Computer Numerical Control,CNC)加工系统的整体构成例的示意图。
图4为表示图3所示的本发明的相关技术的CNC加工系统中的程序执行时机的一例的示意图。
图5为表示本发明的相关技术的机器人组装系统的整体构成例的示意图。
图6为表示本实施范例的控制装置的功能构成的一例的示意图。
图7为表示本实施范例的控制装置的各功能构成的执行周期的一例的示意图。
图8为表示本实施范例的控制装置的程序执行时机的一例的示意图。
图9为表示本实施范例的控制装置的程序执行时机的另一例的示意图。
图10为概念性地表示本实施范例的控制装置中生成的中间代码的示意图。
图11为用于对本实施范例的控制装置的中间代码的生成例进行说明的示意图。
图12为表示本实施范例的控制装置的处理顺序的流程图。
[符号的说明]
1:控制系统
1A:加工系统
1B:机器人组装系统
2:现场网络
6:上级网络
10A、10B:上级控制器
20:输入输出刷新处理
22:通信处理
30、101A、101B:IEC程序
32、32-1、32-2:应用程序
34、34-1、34-2:中间代码
36:系统程序
100:控制装置
100A、100B:PLC
102:处理器
104:芯片组
106:主存储装置
108:辅助存储装置
110:上级网络控制器
112:USB控制器
114:存储卡接口
116:存储卡
120:内部总线控制器
122:I/O单元
130:现场网络控制器
150:IEC程序处理部
152、166、166-1、166-2:动作处理部
160-1、160-2:控制应用处理部
162-1、162-2:共享存储器
164、164-1、164-2:缓冲器
168、168-1、168-2:解释器
180:现场网络接口
182:上级网络接口
200:支援装置
300:伺服装置
400:显示装置
500:现场机器
510:远程I/O装置
512、514:I/O信号线
520:伺服驱动器
522、752、754:伺服电机
530:机器人系统
532、710:机器人控制器
534、536、538:机器人机构
540、600:CNC加工装置
610:CNC控制器
620:CNC程序
650:搬送装置
652:驱动电机
700:多关节机器人
720:机器人程序
750:XY工作台
f1、f2、f3:函数
S100~S116、S200~S212:步骤
T1:控制周期
t1、t2、t3:时间
W:工件
具体实施方式
一方面参照附图一方面对本发明的实施范例进行详细说明。此外,对附图中的相同或相应部分标注相同符号,不重复进行说明。
<A.术语>
首先,对本说明书中使用的术语进行说明。
本说明书中,“IEC程序”(第一程序的一例)为包含每当执行时被整体扫描且每当执行时运算一个或多个指令值的程序的术语。“IEC程序”典型而言包含由按国际电工委员会(International Electrotechnical Commission,IEC)规定的国际标准IEC61131-3记述的一个或多个命令组成的程序。“IEC程序”中也可包含顺序控制及动作控制的命令。“IEC程序”是在每个控制周期中执行(扫描)整个程序。“IEC程序”适于要求即时性及高速性的控制。此外,“IEC程序”不限于按国际标准IEC61131-3记述的命令,也可包含PLC(可编程控制器)的制造商或供应商(vendor)等独自规定的命令。
本说明书中,“顺序控制”基本上为将由运算输入值、输出值、内部值等的一个或多个逻辑回路所记述的程序(顺序程序)从最初开始依次执行到最末的方式。在一次控制周期中,从程序的最初开始执行到最末,并在下一次控制周期中再次从程序的最初开始执行到最末。此外,顺序程序为表现电气回路的程序。
本说明书中,“动作控制”为对伺服电机(servo motor)等致动器将位置、速度、加速度、急动度、角度、角速度、角加速度、角急动度等数值作为指令进行运算的方式。“动作控制”中,也在一次控制周期中将由功能块(function block)或数值运算式等记述的程序(动作程序)从最初开始执行到最末。即,在每个控制周期中运算(更新)指令值。
本说明书中,“控制应用”例如包含使用计算机数值控制(Computer NumericalControl,CNC)和/或机器人的进行特定加工或动作的装置或机械以及所述装置或机械的控制。
本说明书中,“应用程序”(第二程序的一例)包含由用于实现控制应用的一个或多个命令组成的程序,基本上包含不包括在“IEC程序”中的程序。“应用程序”为表现控制应用的顺序的程序,作为一例,CNC的情况下使用G语言进行记述,机器人控制的情况下使用机器人语言进行记述。所述应用程序大多情况下采用逐行依次执行的解释器(interpreter)方式。
本说明书中,“用户程序(User Program,也简称为“UPG”)”包含可由用户任意制作的程序。“用户程序”可包含用于实现顺序控制的顺序程序、用于实现动作控制的动作程序及应用程序。
<B.控制系统的整体构成例>
首先,对包含本实施范例的控制装置的控制系统1的整体构成例进行说明。
图1为表示本实施范例的控制系统1的整体构成例的示意图。图1中示出以本实施范例的控制装置100为中心的控制系统1。
控制装置100相当于控制各种设备或装置等控制对象的工业用控制器。控制装置100为执行下文将述般的控制运算的一种计算机,典型而言能以PLC(可编程控制器)的形式具体化。控制装置100可经由现场网络(field network)2与各种现场机器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)级的极短周期更新。此外,此种交换数据的更新处理也称为输入输出刷新(refresh)处理。
图1所示的构成例中,现场机器500包含远程输入/输出(Input/Output,I/O)装置510、伺服驱动器520及伺服电机522、机器人系统530以及CNC加工装置540。现场机器500不限于所述机器,能采用收集输入数据的任意设备(例如视觉传感器等)、依输出数据给予某些作用的任意设备(例如逆变器装置等)等。
典型而言,远程I/O装置510包含经由现场网络2进行通信的通信耦合器、及用于进行输入数据的取得及输出数据的输出的输入输出部(以下也称为“I/O单元”)。
远程I/O装置510上,连接有输入继电器或各种传感器(例如模拟传感器、温度传感器、振动传感器等)等收集输入数据的装置、以及输出继电器、接触器(contactor)、伺服驱动器及其他任意致动器等对现场给予某些作用的装置。
伺服驱动器520按照来自控制装置100的输出数据(例如位置指令或速度指令等)驱动伺服电机522。
机器人系统530包含机器人控制器532及机器人机构534、机器人机构536、机器人机构538。机器人控制器532按照来自控制装置100的位置指令等进行轨道计算及各轴的角度计算等,并且按照计算结果驱动构成机器人机构534、机器人机构536、机器人机构538的伺服电机等。图1所示的构成例中,机器人机构534为并联机器人(parallel robot),机器人机构536为标量机器人(scalar robot),机器人机构538为多关节机器人。此外,机器人不限于图1所示的机构,可采用任意机构。另外,为了便于说明而例示机器人控制器532与机器人机构534、机器人机构536、机器人机构538分离的构成,但不限于此,也可将两者一体化。
CNC加工装置540按照指定位置或速度等的程序来控制加工中心(machiningcenter)等,由此对任意对象物进行加工。CNC加工装置540典型而言包含车床加工、铣床、放电加工等的加工装置。
控制装置100也经由上级网络6连接于其他装置。上级网络6也可采用作为普通网络协议的以太网(Ethernet)(注册商标)或EtherNet/IP(注册商标)。更具体而言,上级网络6上也可连接着一个或多个伺服装置300及一个或多个显示装置400。
关于伺服装置300,设想数据库系统(database system)、制造执行系统(Manufacturing Execution System,MES)等。制造执行系统取得来自控制对象的制造装置或设备的信息并监视及管理整个生产,也能操作订货(order)信息、品质信息、出货信息等。不限于此,也可将提供信息系统服务的装置连接于上级网络6。关于信息系统服务,设想取得来自控制对象的制造装置或设备的信息并进行宏观分析或微观分析等的处理。例如设想数据挖掘(data mining)或机械学习工具等,所述数据挖掘提取来自作为控制对象的制造装置或设备的信息中所含的某些特征性倾向,所述机械学习工具用于根据来自作为控制对象的设备或机械的信息进行机械学习。
显示装置400接受来自用户的操作,对控制装置100输出与用户操作相应的命令(command)等,并且以图形(graphical)的形式显示控制装置100中的运算结果等。
进而,控制装置100上能连接支援装置200。支援装置200为对控制装置100对控制对象进行控制所需要的准备给予支援的装置。具体而言,支援装置200提供:控制装置100所执行的程序的开发环境(程序制作编辑工具、剖析器(parser)、编译器(compiler)等)、用于设定控制装置100及连接于控制装置100的各种设备的参数(配置(configuration))的设定环境、将所生成的用户程序输出给控制装置100的功能、在线(on-line)修正/变更在控制装置100上执行的用户程序等的功能等。
<C.控制装置的硬件构成例>
其次,对本实施范例的控制装置100的硬件构成例进行说明。
图2为表示本实施范例的控制装置100的硬件构成例的方块图。普通PLC是由被称为中央处理器(Central Processing Unit,CPU)单元的运算处理部及一个或多个I/O单元122所构成,但图2中将所述部分汇总描绘。
参照图2,控制装置100包含处理器102、芯片组(chip set)104、主存储装置106、辅助存储装置108(存储部的一例)、上级网络控制器110、通用串行总线(Universal SerialBus,USB)控制器112、存储卡接口114、内部总线控制器120及现场网络控制器130。
处理器102是由中央处理器(Central Processing Unit,CPU)、微处理器(MicroProcessing Unit,MPU)、图形处理器(Graphics Processing Unit,GPU)等构成。处理器102也可采用具有多核(core)的构成,也可配置多个处理器102。芯片组104通过控制处理器102及各设备而实现整个控制装置100的处理。主存储装置106是由动态随机存取存储器(Dynamic Random Access Memory,DRAM)或静态随机存取存储器(Static Random AccessMemory,SRAM)等挥发性存储装置等构成。辅助存储装置108例如是由硬盘驱动器(HardDisk Drive,HDD)或固体驱动器(Solid State Drive,SSD)等非挥发性存储装置等构成。
处理器102读取辅助存储装置108中存储的各种程序并在主存储装置106中展开执行,由此实现与控制对象相应的控制及如下文将述的各种处理。辅助存储装置108中除了存储用于实现基本功能的系统程序36以外,还存储根据控制对象的制造装置或设备而制作的用户程序(IEC程序30及应用程序32)。
上级网络控制器110经由上级网络6而控制与伺服装置300或显示装置400(参照图1)等之间的数据交换。USB控制器112经由USB连接而控制与支援装置200之间的数据交换。
存储卡接口114构成为可装卸存储卡116,且能对存储卡116写入数据,从存储卡116读取各种数据(用户程序或跟踪数据(trace data)等)。
内部总线控制器120控制与控制装置100上搭载的I/O单元122之间的数据交换。现场网络控制器130控制经由现场网络2的与其他设备之间的数据交换。
图2中示出了通过处理器102执行程序而提供必要功能的构成例,但也可使用专用的硬件电路(例如专用集成电路(Application Specific Integrated Circuit,ASIC)或现场可编程门阵列(Field-Programmable Gate Array,FPGA)等)来安装所述提供的功能的一部分或全部。或者,也可使用按照通用体系结构(architecture)的硬件(例如以通用个人计算机为基础的工业用个人计算机)来实现控制装置100的主要部分。此情况下,也可使用虚拟化技术并列执行用途不同的多个操作系统(Operating System,OS),并且在各OS上执行必要的应用。
所述图1所示的控制系统1中,控制装置100、支援装置200及显示装置400是分别以个体的形式构成,但也可采用将所述装置的全部或一部分功能归集到单一装置中般的构成。
<D.相关技术>
然后,在对本实施范例的控制装置100的构成及功能进行详细说明之前,对相关技术进行说明。
(d1:CNC加工系统)
图3为表示本发明的相关技术的CNC加工系统1A的整体构成例的示意图。参照图3,CNC加工系统1A包含CNC加工装置600及对CNC加工装置600供给工件W的搬送装置650。
CNC加工装置600是由CNC控制器610驱动,搬送装置650是由PLC100A驱动。由于必须使CNC加工装置600及搬送装置650互联,因此CNC控制器610及PLC100A均与上级控制器10A连接。上级控制器10A对CNC控制器610及PLC100A给予指令。
CNC控制器610按照来自上级控制器10A的指令,生成用于驱动CNC加工装置600的指令,控制CNC加工装置600的动作。
PLC100A周期性执行IEC程序101A,由此进行搬送装置650的驱动电机652的控制等。典型而言,IEC程序101A中记述着用于实现顺序控制及动作控制的命令,通过以共同的控制周期反复执行所述命令,而同步执行顺序控制及动作控制。更具体而言,PLC100A使用经由远程I/O装置510所取得的输入数据及内部数据,按照顺序控制而运算输出数据,并将与运算出的输出数据相应的输出信号从远程I/O装置510输出。另外,PLC100A将动作控制中运算的指令值给予伺服驱动器520,由此利用搬送装置650适当搬送工件W。
此外,由同一PLC100A执行顺序控制及动作控制的构成已在所述日本专利特开2012-194662号公报(专利文献2)中公开。
另一方面,对CNC加工装置600的控制是由与PLC100A无关而另配置的CNC控制器610实现。CNC控制器610依次执行CNC程序620中记述的命令,由此对工件W实现预定的加工等。
PLC100A及CNC控制器610分别执行独立的控制处理,因此为了使搬送装置650与CNC加工装置600互联动作,经由I/O信号(I/O信号线512)交换各装置的信息。此种I/O信号例如包含从PLC100A输出的运转开始指令等。此种构成中,从远程I/O装置510对CNC控制器610给予表示加工开始的数字信号。
在采用此种经由I/O信号在装置间交换状态值的构成的情况下,例如在将加工前的工件W配置在CNC加工装置600内或将加工后的工件W从CNC加工装置600中取出时,无法使CNC加工装置600与搬送装置650完全同步。因此,在CNC加工装置600与搬送装置650(或进而其他装置)之间控制时机不同步,因此产生处理的等待。此种处理的等待成为妨碍处理时间缩短的原因。
对所述本发明的相关技术的系统中的各程序的执行时机进行说明。
图4为表示图3所示的本发明的相关技术的CNC加工系统1A中的程序执行时机的一例的示意图。此外,为了便于说明,图4中各程序的执行时间是缩放(scaling)至任意尺寸而描绘,不反应现实的执行时间。在以下的类似附图中也相同。
图4的A部份中示出由PLC100A周期性执行IEC程序101A的状态,图4的B部份中示出由CNC控制器610依次执行CNC程序620的状态。
如图4的A部份所示,PLC100A周期性地在预定长度的每个控制周期中执行IEC程序101A。IEC程序101A可包含顺序处理和/或动作处理的命令。所述命令有时也记述在同一程序中。
在执行IEC程序101A之前,执行更新输入数据及输出数据的输入输出刷新处理20(图中也记作“I/O”)。输入输出刷新处理20中,经由远程I/O装置510等从现场取得输入数据,并且将前一控制周期中利用IEC程序101A运算出的输出数据经由远程I/O装置510等给予现场。
如此,IEC程序101A在每个控制周期中被扫描所有内容(代码)。此外,在各控制周期中,在不执行IEC程序101A的间隙期间中执行通信等处理。
如图4的B部份所示,依次执行CNC程序620中记述的命令。即,以解释器方式执行CNC程序620。更具体而言,首先执行CNC程序620的第1行代码,执行结束后接着执行第2行代码。如此而依次执行CNC程序620中记述的代码。
此外,通过在执行CNC程序620时中断而执行通信处理22。
将图4的A部份与图4的B部份相比较得知,由PLC100A执行的IEC程序101A与由CNC控制器610执行的CNC程序620性质不同,在相关技术中准备执行各程序的不同控制装置。
(d2:机器人组装系统)
图5为表示本发明的相关技术的机器人组装系统1B的整体构成例的示意图。参照图5,机器人组装系统1B包含多关节机器人700及保持工件W的XY工作台750。图5中示出将多关节机器人700的顶端所握持的零件插入到工件W中设置的孔中般的应用例。
多关节机器人700是由机器人控制器710驱动,XY工作台750是由PLC100B驱动。由于必须使多关节机器人700及XY工作台750互联,因此机器人控制器710及PLC100B均与上级控制器10B连接。上级控制器10B对机器人控制器710及PLC100B给予指令。
PLC100B周期性执行IEC程序101B,由此控制驱动XY工作台750的X轴的伺服电机752及驱动Y轴的伺服电机754等。典型而言,IEC程序101B中记述着用于实现顺序控制及动作控制的命令,通过以共同的控制周期反复执行所述命令,而同步执行顺序控制及动作控制。更具体而言,PLC100B使用经由远程I/O装置510所取得的输入数据及内部数据,按照顺序控制运算输出数据,并将与运算出的输出数据相应的输出信号从远程I/O装置510输出。另外,PLC100B将动作控制中运算的指令值给予各伺服驱动器520,由此将配置在XY工作台750上的工件W定位在适当的位置。
另一方面,对多关节机器人700的控制是由与PLC100B无关而另配置的机器人控制器710实现。机器人控制器710依次执行机器人程序720中记述的命令,由此使多关节机器人700进行预定的行为。
PLC100B及机器人控制器710分别执行独立的控制处理,因此为了使XY工作台750与多关节机器人700互联动作,经由I/O信号交换各装置的信息(I/O信号线514)。此种I/O信号例如包含从PLC100B输出的运转开始指令等。此种构成中,从远程I/O装置510对机器人控制器710给予表示加工开始的数字信号。
在采用此种经由I/O信号在装置间交换状态值的构成的情况下,例如在将加工前的工件W配置在规定位置或取出组装后的工件W时,无法使多关节机器人700与XY工作台750完全同步。因此,多关节机器人700与XY工作台750(或进而其他装置)之间控制时机不同步,因此产生处理的等待。此种处理的等待成为妨碍处理时间缩短的原因。另外,XY工作台750的动作与多关节机器人700的动作不同步,因此在使XY工作台750动作并且使多关节机器人700动作时,动作时机不一致,导致组装精度降低。
(d3:机器人控制器成为主令控制器(master controller)的系统)
如所述日本专利特开2013-134786号公报(专利文献1)所公开,也设想将机器人控制器配置作主令控制器,此机器人控制器主要控制机器人及电机的系统。此系统中,机器人控制器对一个机器人或多个机器人各自给予运转开始/运转结束的指示。此系统中,能实现多个机器人与电机的同步,但对机器人控制器的运转开始指令必须从其他控制器给予。因此,无法利用一个机器人控制器来控制系统的所有要素。
<E.本实施范例的控制装置>
本实施范例的控制装置100具有能解决所述般的相关技术中产生的问题的功能。具体而言,控制装置100提供能同步执行IEC程序30(包含顺序命令和/或动作命令)及应用程序32的环境。
图6为表示本实施范例的控制装置100的功能构成的一例的示意图。参照图6,控制装置100包含IEC程序处理部150(执行处理部的一例)、动作处理部152、现场网络接口180(输出部的一例)、上级网络接口182以及一个或多个控制应用处理部160-1、160-2、···(指令值运算部的一例,以下也统称为“控制应用处理部160”)。
图6中示出控制装置100对控制应用1及控制应用2进行控制的构成例。典型而言,控制应用1及控制应用2分别包含继电器或接触器等I/O设备及伺服电机等各种致动器。除了控制应用1及控制应用2以外,其他I/O设备及各种传感器也经由现场网络2与控制装置100连接。
控制装置100的现场网络接口180为IEC程序处理部150及控制应用处理部160与经由现场网络2而连接的设备之间的数据交换中介。
控制装置100从经由上级网络6而连接的伺服装置300等接受生产的开始/结束等指示。伺服装置300有时也将用于使控制应用动作的应用程序32及配方信息(适于生产的参数等信息)等发送至控制装置100。
控制装置100的上级网络接口182为IEC程序处理部150及控制应用处理部160与经由上级网络6而连接的装置之间的数据交换中介。
IEC程序处理部150在每个预定的控制周期中执行(扫描)IEC程序30(第一程序的一例)而运算一个或多个指令值(第一指令值的一例)。即,IEC程序处理部150按照IEC程序30在每个控制周期中运算指令值。
动作处理部152提供以下功能:按照IEC程序30所含的动作命令,在每个控制周期中运算指令值。即,IEC程序30所含的动作命令包含指示横跨多个控制周期的行为的命令(例如用于描画某种轨道的命令)。当执行此种动作命令时,动作处理部152按照所执行的动作命令的指示内容,在每个控制周期中运算指令值。即,动作处理部152在每个控制周期中输出指令值,由此实现由动作命令所指示的行为。
控制应用处理部160根据从伺服装置300等接收的应用程序32及配方信息等,运算用于对控制应用进行控制的指令值。控制应用处理部160与IEC程序处理部150的指令值的运算及输出同步,运算及输出控制应用用指令值。即,控制应用处理部160与IEC程序处理部150的运算处理同步,执行指令值的运算处理。
为了实现与IEC程序处理部150的指令值运算处理同步的指令值运算,包含缓冲器164-1、缓冲器164-2、···(以下也统称为“缓冲器164”)、动作处理部166-1、动作处理部166-2、···(以下也统称为“动作处理部166”)以及解释器168-1、解释器168-2、···(以下也统称为“解释器168”)。
解释器168解释应用程序32(应用程序32-1、应用程序32-2、···)的至少一部分,生成中间代码34(中间代码34-1、中间代码34-2、···)。即,解释器168依次执行应用程序32(第二程序的一例)并生成中间代码34,并且将所生成的中间代码34存储在对应的缓冲器164中。
动作处理部166(指令值运算部的一例)按照解释器168事先生成的中间代码34,在每个控制周期中运算指令值(第二指令值的一例)。即,动作处理部166提供以下功能:按照缓冲器164中预先存储的中间代码34,在每个控制周期中运算指令值。通常应用程序32中记述的命令(代码)由于是依次执行,因此无法保证指令值的运算周期,但通过利用中间代码34,动作处理部166能够在每个控制周期中运算指令值。中间代码34中记述的命令中,也可使用与各控制应用相应的坐标系。
如此,解释器168将所生成的中间代码34在缓冲器164中依次列队,动作处理部166按缓冲器164中的列队次序读取中间代码34。
本说明书中,“中间代码”为包含用于在每个控制周期中运算指令值的命令的概念。“中间代码”包含一个或多个命令、或者一个或多个函数。本实施范例中,中间代码34只要能使动作处理部166在每个控制周期中运算指令值,则可为任何代码。下文中将对中间代码34的一例进行说明。
现场网络接口180在每个控制周期中向现场侧输出由IEC程序处理部150运算出的一个或多个指令值(基本上为逻辑值)、由动作处理部152运算出的一个或多个指令值(基本上为数值)、以及由动作处理部166运算出的一个或多个指令值(基本上为数值)。
为了在IEC程序处理部150与控制应用处理部160之间共享数据,设有共享存储器162-1、共享存储器162-2、···(以下也统称为“共享存储器162”)。图6所示的构成例中,将控制应用处理部160的一部分或全部处理结果存储在共享存储器162中,且IEC程序处理部150能够参照控制应用处理部160的共享存储器162中存储的数据。也可从IEC程序处理部150向控制应用处理部160的共享存储器162写入数据,如此般从IEC程序处理部150写入的数据可由解释器168及动作处理部166参照。在共享存储器162中存储数据时,也可采用结构变量(structure variable)。
如此,控制应用处理部160包含用于对控制应用进行控制的用户程序即应用程序32、解释器168、用于运算指令值的动作处理部166。关于应用程序32,设想与控制应用相应的例如用于控制工作机械的程序或用于控制组装机械(机器人)的程序等。
如图6所示,在控制多个控制应用的情况下,通过在控制装置100内配置多组解释器168及动作处理部166,可灵活地扩充。
<F.程序的同步执行>
其次,对本实施范例的控制装置100的程序的同步执行进行说明。
图7为表示本实施范例的控制装置100的各功能构成的执行周期的一例的示意图。参照图7,控制应用处理部160的解释器168在较控制周期长的每个周期中依次执行应用程序32。图7所示的示例中,控制应用处理部160-1的解释器168-1在控制周期2倍长的每个周期中依次执行应用程序32,控制应用处理部160-2的解释器168-2在控制周期4倍长的每个周期中依次执行应用程序32。
然而,IEC程序处理部150的动作处理部152及控制应用处理部160的动作处理部166均在相同的每个控制周期中运算指令值。即,来自控制装置100的指令值输出均是以预定的控制周期同步进行。如此,IEC程序处理部150及控制应用处理部160分别具有用于连续控制致动器的动作的动作处理部,所述动作处理部同步运算指令值,由此能使按照IEC程序30的控制及按照应用程序32的控制这两者与控制周期同步执行,由此能实现控制周期单位的精密控制。
然后,对本实施范例的控制装置100的IEC程序30及应用程序32的执行时机进行说明。图8为表示本实施范例的控制装置100的程序执行时机的一例的示意图。
图8中作为一例,示出以不同优先度设定多个任务(task)且各任务按照各自的优先度共享处理器102的资源(resource)的示例。
图8所示的示例中,将现场网络接口180、IEC程序处理部150及控制应用处理部160的动作处理部166的执行设定为高优先任务,将控制应用处理部160的解释器168的执行设定为低优先任务。即,输入输出刷新处理20、IEC程序30的执行处理、按照IEC程序30的指令值的运算处理及按照应用程序32的指令值的运算处理是作为高优先任务而执行。另一方面,依次解释应用程序32的处理是作为低优先任务而执行。
高优先任务是在每个预定的控制周期T1中重复执行。图8所示t1、t2与t3表示时间。低优先任务是每次在不执行高优先任务的期间中执行。即,在每个控制周期中分配高优先任务的执行时间,在高优先任务的执行时间以外的时间执行低优先任务。
首先对高优先任务进行说明,当各控制周期到来时,首先执行输入输出刷新处理20后,由IEC程序处理部150执行(扫描)整个IEC程序30,运算与顺序控制有关的一个或多个指令值。而且,由动作处理部152执行与IEC程序30所含的动作命令相关的动作处理,运算与动作命令有关的一个或多个指令值。进而,由控制应用处理部160的动作处理部166从缓冲器164中读取中间代码(使其出队(dequeue)),运算此控制周期的指令值。以后,在每个控制周期中重复同样的处理。
此外,动作处理部166从缓冲器164中读取中间代码的时机(出队时机)也可不为各控制周期。其原因在于:所读取的中间代码大多情况下包含能在多个控制周期中运算指令值的命令。
如此,某个控制周期的高优先任务的执行完成时,准备好与顺序控制有关的指令值、与动作控制有关的指令值及与控制应用有关的指令值的组合(set)。所述指令值基本上是在下一控制周期到来时反映给现场侧。即,IEC程序处理部150及控制应用处理部160在同一控制周期内运算与输入数据相应的指令值,因此能实现与输入同步的输出。
另一方面,对低优先任务进行说明,控制应用处理部160的解释器168依次执行应用程序32。即,控制应用处理部160的解释器168以低优先来执行应用程序32的读入及分析。解释器168对应用程序32进行分析处理而生成的中间代码依次在缓冲器164中列队(入队(enqueue))。在缓冲器164中列队的中间代码是由控制应用处理部160的动作处理部166每次参照以用于生成指令值。
此时,控制应用处理部160的解释器168将高优先任务的运算周期即控制周期的整数倍的中间代码预先列队,由此能在不影响控制应用处理部160的动作处理部166的处理的情况下,在每个控制周期中运算对控制应用的指令值。此外,解释器168也可事先对应用程序32进行分析处理,由此预先足够多余地生成控制应用处理部160的动作处理部166运算指令值所参照的中间代码。
以低优先执行的控制应用处理部160的解释器168在预定的控制应用同步周期(控制周期的整数倍)到来之前,暂且停止应用程序32的解释。通过以此暂且停止的时机在IEC程序处理部150与控制应用处理部160之间进行数据同步,而使两者共享具有整合性的数据。如此,解释器168在控制周期的整数倍的每个同步周期(即,控制应用同步周期)中,与IEC程序处理部150之间更新共享的数据。也可在更新共享数据的同时,对从现场侧取得的输入数据及输出数据也进行更新(数据同步)。
即,控制应用同步周期是指针对解释器168依次执行应用程序32而设定的数据更新/数据同步的周期。控制应用同步周期只要设定为控制周期的整数倍,则可为任意长度。根据控制应用所要求的控制的精度等而适当设定。
图9为表示本实施范例的控制装置100的程序执行时机的另一例的示意图。图9中示出控制多个控制应用的情况下的执行时机的一例。此外,图9中示出分别利用不同的核执行高优先任务与低优先任务的示例。图9所示的示例中,并列执行高优先任务与低优先任务。
关于高优先任务,与所述图8同样地,在每个预定的控制周期T1中反复执行。更具体而言,各控制周期到来时,首先执行输入输出刷新处理20后,由IEC程序处理部150执行(扫描)整个IEC程序30,运算与顺序控制有关的一个或多个指令值。而且,由动作处理部152执行与IEC程序30所含的动作命令有关的动作处理,运算与动作命令有关的一个或多个指令值。进而,由控制应用处理部160-1的动作处理部166-1从缓冲器164-1中读取中间代码(使其出队),运算此控制周期的指令值。然后,由控制应用处理部160-2的动作处理部166-2从缓冲器164-2中读取中间代码(使其出队),运算此控制周期的指令值。
另一方面,应用程序32-1及应用程序32-2均同样是作为低优先任务而执行。图9所示的示例中,将应用程序32-1的控制应用同步周期1设定为控制周期的2倍,将应用程序32-2的控制应用同步周期2设定为控制周期的3倍。
控制应用处理部160-1的解释器168-1及控制应用处理部160-2的解释器168-2按照来自未图示的调度器(scheduler)等的调停,依次执行应用程序32。
更具体而言,控制应用处理部160-1的解释器168-1将对应用程序32-1进行分析处理而生成的中间代码依次在缓冲器164-1中列队(入队)。控制应用处理部160-1的解释器168-1在每个预定的控制应用同步周期(控制周期的整数倍)中暂且停止处理。通过以此暂且停止的时机在IEC程序处理部150与控制应用处理部160-1之间进行数据同步,而使两者共享具有整合性的数据。
另外,控制应用处理部160-2的解释器168-2将对应用程序32-2进行分析处理而生成的中间代码依次在缓冲器164-2中列队(入队)。控制应用处理部160-2的解释器168-2在每个预定的控制应用同步周期(控制周期的整数倍)中暂且停止处理。通过以此暂且停止的时机在IEC程序处理部150与控制应用处理部160-2之间进行数据同步,而使两者共享具有整合性的数据。
此外,应用程序32-1的控制应用同步周期1与应用程序32-2的控制应用同步周期2虽然不同,但均为控制周期的整数倍,因此能以控制周期为基准而分别使处理与IEC程序处理部150同步。
如此,在采用含有具有多核的处理器102的控制装置100的情况下,也可利用某个核执行高优先任务,利用其它核执行低优先任务。
如上所述,在为了控制多个控制应用而执行多个应用程序32的情况下,也能以相同的优先度并列执行。本实施范例中,采用在每个控制应用同步周期中暂且停止应用程序32的执行,并且以控制周期单位将中间代码34列队的方式,因此即便在执行多个应用程序32的情况下,安装方面的限制也少。
即,执行多个应用程序32所需要的处理器102的资源分配方式能采用任意方式。例如可为分时共享共同的处理器(或核)的轮询(round robin)执行方式,也可为对每个应用程序32分配固有的核的各核分配方式。进而,也可为与高优先任务之间分时共享共同的处理器(或核)的方式。
此外,图8及图9中示出以IEC程序处理部150、动作处理部152、动作处理部166的顺序执行处理的示例,但不限定于此,只要各构件能在同一控制周期内完成处理的执行,则能以任何顺序执行处理。
<G.中间代码>
然后,对控制应用处理部160的解释器168解释应用程序32而生成的中间代码的一例进行说明。
图10为概念性地表示本实施范例的控制装置100中生成的中间代码的示意图。参照图10,应用程序32包含以解释器方式依次执行的代码,依次执行各代码的情况下所需要的时间根据各代码记述的内容而变化。因此,难以在每个控制周期中运算指令值。此外,图10中示出以CNC所用的G语言记述的代码作为应用程序32的一例。
因此,本实施范例中,解释应用程序32中记述的一个或多个代码,并根据此解释的内容生成用于在每个控制周期中运算指令值的中间代码34。中间代码34是依应用程序32所记述的一个或多个代码分别生成,因此大多情况下由一个应用程序32生成多个中间代码34。
各中间代码34中,也可规定以控制周期的时刻(或时间)为输入且能运算指令值的函数。即,中间代码34也可为用于使控制应用处理部160的动作处理部166在每个控制周期中运算指令值的函数。通过使用此种函数,动作处理部166能依次参照所生成的中间代码34运算各控制周期的指令值。
例如若设定为第1个中间代码1在控制周期10倍的期间中规定指令值,则控制应用处理部160的动作处理部166将中间代码1列队,在10个控制周期的期间中周期性运算指令值。同样地,其他中间代码2及中间代码3也基本上能在多个控制周期中运算指令值。
因此,若控制应用处理部160的解释器168根据应用程序32生成中间代码的处理与控制应用处理部160的动作处理部166的指令值运算处理相比充分地提前执行,则能与IEC程序30的执行同步地对控制应用进行控制。
图11为用于对本实施范例的控制装置100的中间代码的生成例进行说明的示意图。参照图11,例如当依次执行规定应动作轨道的应用程序32时,首先解释应用程序32((1)程序解释),在内部生成所规定的轨道((2)轨道生成)。决定这些轨道与每个控制周期的位置的关系后,生成表示内部所生成的轨道的一个或多个函数((3)每个区间的函数生成)。
如此,作为中间代码34的一例,也可使用以控制周期的时间为输入且以指令值为输出的函数。
图11所示的示例中,内部生成的轨道为直线的组合,因此针对每个直线区间(区间1~区间3)的轨道输出表示时间与速度的关系的函数f1(t)、函数f2(t)、函数f3(t)。
如此输出的函数f1(t)、函数f2(t)、函数f3(t)相当于本实施范例的中间代码34的一例。此外,也可输出规定图11所示的轨道的单一函数作为中间代码。关于输出何种中间代码34,也可考虑所要求的控制周期的时间宽等而适当设计。
此外,所述图10及图11中,作为一例,对使用G语言的应用程序进行了说明,但不限于此,只要为任意的机器人语言等以解释器方式执行的程序,则也可使用任何语言。另外,也可根据语言输出任意函数作为中间代码34。
<H.处理顺序>
然后,对本实施范例的控制装置100的处理顺序进行说明。
图12为表示本实施范例的控制装置100的处理顺序的流程图。图12中分别示出高优先任务及低优先任务的执行。
参照图12,关于高优先任务,控制周期到来时(步骤S100中为是),现场网络接口180执行输入输出刷新处理(步骤S102)。由此,将前一控制周期中运算出的指令值输出给致动器等,并且从现场取得输入数据。
然后,判断本次控制周期与控制应用同步周期是否一致(步骤S104)。若本次控制周期与控制应用同步周期一致(步骤S104中为是),则在IEC程序处理部150与控制应用处理部160之间执行数据同步(步骤S106)。若本次控制周期与控制应用同步周期不一致(步骤S104中为否),则跳过步骤S106的处理。
然后,IEC程序处理部150执行(扫描)整个IEC程序30(步骤S108)。随后,动作处理部152按照IEC程序30所含的动作命令,运算本次控制周期的指令值(步骤S110)。通过步骤S108及步骤S110而运算到来控制周期中与按照IEC程序30的顺序处理及动作处理有关的指令值。
进而,控制应用处理部160的动作处理部166判断是否有效地读入运算指令值所需要的中间代码(步骤S112)。若未有效地读入中间代码(步骤S112中为否),则动作处理部166从缓冲器164中读入中间代码(步骤S114)。若有效地读入中间代码(步骤S112中为是),则跳过步骤S114的处理。
控制应用处理部160的动作处理部166按照中间代码运算本次控制周期的指令值(步骤S116)。
通过以上的处理而运算本次控制周期的指令值。然后,重复进行步骤S100以后的处理。即,当下一控制周期到来时,将运算出的指令值输出给现场。此外,步骤S116之后,下一控制周期到来之前的期间中,执行低优先任务。
另一方面,关于低优先任务,当控制周期到来时(步骤S200中为是),则判断本次控制周期与控制应用同步周期是否一致(步骤S202)。若本次控制周期与控制应用同步周期一致(步骤S202中为是),则在IEC程序处理部150与控制应用处理部160之间执行数据同步(步骤S204)。然后,控制应用处理部160的解释器168读入应用程序32中在本次控制应用同步周期内可执行的范围的代码(步骤S206)。作为一例,在解释器168中预先安装有用于根据各命令及指定的引数等算出执行所需要的控制周期的对应关系,通过参照此对应关系,能决定应将代码读入至何种范围。
若本次控制周期与控制应用同步周期不一致(步骤S202中为否),则跳过步骤S204及S206的处理。
在对低优先任务分配了程序执行时间的期间中,控制应用处理部160的解释器168解释步骤S206中读入的代码(步骤S208),当生成某种中间代码时(步骤S210中为是),将所生成的中间代码存储在缓冲器164中(步骤S212)。然后,重复步骤S200以后的处理。
即,在控制应用同步周期内,在分配了对低优先任务的程序执行时间的期间中,重复步骤S208~步骤S212的处理。
此外,图12中示出对一个控制应用进行控制的示例,但对多个控制应用进行控制的情况下也当然能同样地扩充。
<I.优点>
本实施范例的控制装置100具有执行不同执行形式的多种程序时的调度(scheduling)功能。IEC程序处理部150按照IEC程序30,在每个控制周期中更新对现场的指令值及来自现场的反馈值(输出数据及输入数据)。除了此种IEC程序30的固定周期执行以外,控制装置100具有控制应用处理部160,此控制应用处理部160按照用于控制由工作机或机器人实现的加工/组装/检查等具有特定目标的控制应用的应用程序,以控制周期运算指令值。
为了利用共同的处理器来执行执行形式及控制周期与IEC程序30不同的应用程序32,控制应用处理部160以控制周期来同步执行对控制应用运算指令值的处理,且对应用程序32的解释等的依次执行是与指令值的运算处理分开而执行。
进而,为了维持IEC程序30与应用程序32之间的数据同步,控制应用处理部160在每个控制应用同步周期(控制周期的整数倍)中执行共享数据的同步处理。即,能以IEC程序处理部150的控制周期与控制应用的时钟(clock)同步的时机,在两者之间更新维持整合性的数据。
通过采用本实施范例的控制装置100,能利用共同的控制装置100实现按照IEC程序的控制运算、与对由工作机或机器人等实现的加工/组装/检查等一个或多个控制应用的控制运算。由此,能同步控制连接于控制装置100的I/O设备及致动器(电机等)与一个或多个控制应用。
通过采用本实施范例的控制装置100,能减少因多个装置间的等待而产生的延迟时间等,从而能提高生产性。
通过采用本实施范例的控制装置100,能省略对每个控制应用配置的专用控制器,从而能降低系统构成所需要的成本。
通过采用本实施范例的控制装置100,能利用软件实现控制器间的配线(I/O信号线),因此能削减设计及安装所需要的时间及成本。
应认为本次公开的实施范例在所有方面为例示而非限制性。本发明的范围是由权利要求而非所述说明揭示,是指包括与权利要求均等的含意及范围内的所有变更。

Claims (10)

1.一种控制装置,用于对控制对象进行控制,并且所述控制装置的特征在于,包括:
存储部,存储每当执行时被整体扫描的第一程序及依次执行的第二程序;
执行处理部,在每个预定的控制周期中执行所述第一程序而运算第一指令值;
解释器,解释所述第二程序的至少一部分而生成中间代码;
指令值运算部,按照所述解释器事先生成的中间代码在每个控制周期中运算第二指令值;以及
输出部,在每个控制周期中输出由所述执行处理部运算出的所述第一指令值及由所述指令值运算部运算出的所述第二指令值。
2.根据权利要求1所述的控制装置,其特征在于:所述解释器在所述控制周期的整数倍的每个同步周期中,更新与所述执行处理部共享的数据。
3.根据权利要求2所述的控制装置,其特征在于:所述解释器在所述同步周期到来之前暂且停止所述第二程序的解释。
4.根据权利要求1至3中任一项所述的控制装置,其特征在于:所述中间代码包含用于使所述指令值运算部在每个控制周期中运算所述第二指令值的函数。
5.根据权利要求1至3中任一项所述的控制装置,其特征在于:所述解释器将所生成的中间代码在缓冲器中依次列队,以及所述指令值运算部按所述缓冲器中的列队次序读取中间代码。
6.根据权利要求1至3中任一项所述的控制装置,其特征在于:所述中间代码包含以控制周期的时间为输入且以指令值为输出的函数。
7.根据权利要求1所述的控制装置,其特征在于包括多组所述解释器及所述指令值运算部。
8.根据权利要求1至3中任一项所述的控制装置,其特征在于:所述执行处理部、所述指令值运算部及所述输出部以高优先任务的形式执行处理,以及所述解释器以低优先任务的形式执行处理。
9.根据权利要求8所述的控制装置,其特征在于:在每个控制周期中分配所述高优先任务的执行时间,在所述高优先任务的执行时间以外的时间执行所述低优先任务。
10.根据权利要求8所述的控制装置,其特征在于:所述控制装置含有具有多核的处理器,利用第一核执行所述高优先任务,以及利用第二核执行所述低优先任务。
CN201810148962.XA 2017-08-10 2018-02-13 控制装置 Active CN109388107B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017-155781 2017-08-10
JP2017155781A JP6919404B2 (ja) 2017-08-10 2017-08-10 制御装置

Publications (2)

Publication Number Publication Date
CN109388107A true CN109388107A (zh) 2019-02-26
CN109388107B CN109388107B (zh) 2021-09-21

Family

ID=61226416

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810148962.XA Active CN109388107B (zh) 2017-08-10 2018-02-13 控制装置

Country Status (4)

Country Link
US (1) US10678218B2 (zh)
EP (1) EP3441835B1 (zh)
JP (1) JP6919404B2 (zh)
CN (1) CN109388107B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113544600A (zh) * 2019-03-15 2021-10-22 欧姆龙株式会社 控制系统、中继装置以及中继程序
CN114402568A (zh) * 2019-08-02 2022-04-26 欧姆龙株式会社 网络系统、信息处理装置以及信息处理方法
CN114585979A (zh) * 2019-11-12 2022-06-03 欧姆龙株式会社 控制装置

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7111038B2 (ja) * 2019-03-15 2022-08-02 オムロン株式会社 制御システム、中継装置、および中継プログラム
JP7230703B2 (ja) 2019-06-20 2023-03-01 オムロン株式会社 制御装置
JP7318406B2 (ja) 2019-08-07 2023-08-01 オムロン株式会社 制御装置
JP7396063B2 (ja) * 2020-01-16 2023-12-12 オムロン株式会社 データ処理方法
JP7456165B2 (ja) * 2020-01-16 2024-03-27 オムロン株式会社 制御装置
WO2021166398A1 (ja) * 2020-02-17 2021-08-26 オムロン株式会社 処理装置、及び処理方法
JP2021144586A (ja) * 2020-03-13 2021-09-24 オムロン株式会社 ロボット制御システムおよび制御方法
JP7380390B2 (ja) 2020-03-31 2023-11-15 オムロン株式会社 制御装置、プログラムおよび制御方法
JP2022114752A (ja) * 2021-01-27 2022-08-08 オムロン株式会社 制御装置、プログラム実行方法およびプログラム
JP7446537B1 (ja) 2023-03-14 2024-03-08 三菱電機株式会社 プログラマブルロジックコントローラ、制御方法及びプログラム

Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07200012A (ja) * 1993-12-29 1995-08-04 Yaskawa Electric Corp プログラマブルコントローラ
CN1150671A (zh) * 1995-06-05 1997-05-28 佳能株式会社 生产设备自动化系统
US5940617A (en) * 1996-09-17 1999-08-17 Kabushiki Kaisha Toshiba Debugger for controlling execution of software installed in object to be controlled on the basis of state transition model, debugging method thereof, record medium thereof, and method for correlating function specifications and code addresses
JP2002055848A (ja) * 2000-08-11 2002-02-20 Omron Corp プログラム実行方式及び当該プログラム実行方式を格納した記憶媒体
US20020184479A1 (en) * 2001-03-09 2002-12-05 Koninklijke Philips Electronics N.V. Bytecode instruction processor with switch instruction handling logic
JP2008040542A (ja) * 2006-08-01 2008-02-21 Fanuc Ltd 数値制御装置
CN101271392A (zh) * 2007-02-05 2008-09-24 京瓷美达株式会社 电子设备及电子设备的控制方法
CN101369233A (zh) * 2007-08-14 2009-02-18 国际商业机器公司 程序编译方法和编译器
US20110184535A1 (en) * 2009-10-01 2011-07-28 Siemens Ag Apparatus and Method for Simulating a Control Program
JP2011215821A (ja) * 2010-03-31 2011-10-27 Keyence Corp プログラマブルコントローラ、データ通信方法及びコンピュータプログラム
CN102736551A (zh) * 2012-06-20 2012-10-17 深圳市矩形科技有限公司 一种plc梯形图代码软解题方法
EP2515189A1 (en) * 2011-03-15 2012-10-24 Omron Corporation Plc cpu unit, system program for plc, and storage medium having system program for plc stored therein
CN103282846A (zh) * 2011-01-06 2013-09-04 欧姆龙株式会社 操作信息记录装置、以及其控制方法和控制程序
CN103403633A (zh) * 2011-03-15 2013-11-20 欧姆龙株式会社 可编程控制器的中央处理器单元、可编程控制器用系统程序以及存储了可编程控制器用系统程序的记录介质
CN103403630A (zh) * 2011-03-15 2013-11-20 欧姆龙株式会社 运算单元、输出控制方法和程序
EP2887165A1 (en) * 2013-12-20 2015-06-24 Omron Corporation Computation unit, output control method, and program
JP2015176191A (ja) * 2014-03-13 2015-10-05 オムロン株式会社 コントローラ
CN105431789A (zh) * 2014-07-14 2016-03-23 三菱电机株式会社 Plc系统及运算式数据创建辅助装置
CN106020009A (zh) * 2015-03-31 2016-10-12 欧姆龙株式会社 控制装置
CN106125664A (zh) * 2016-08-12 2016-11-16 绵阳市维博电子有限责任公司 一种嵌入式plc控制系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6297003A (ja) * 1985-10-23 1987-05-06 Toshiba Mach Co Ltd プログラマブルコントロ−ラにおける高級言語の処理方式
JPH05216684A (ja) * 1992-02-06 1993-08-27 Fujitsu Ltd プログラム実行装置および実行方法
JPH0822312A (ja) * 1994-07-06 1996-01-23 Fuji Facom Corp プログラマブルコントローラのプログラミング装置
JP4877423B1 (ja) 2011-03-15 2012-02-15 オムロン株式会社 Plcのcpuユニット、plc用システムプログラムおよびplc用システムプログラムを格納した記録媒体
DE102012112900A1 (de) 2011-12-22 2013-06-27 Fanuc Robotics America Corp. Numerische Steuerungsprogrammausrichtung durch Roboter
JP2016184315A (ja) * 2015-03-26 2016-10-20 株式会社デンソー 電子制御装置

Patent Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07200012A (ja) * 1993-12-29 1995-08-04 Yaskawa Electric Corp プログラマブルコントローラ
CN1150671A (zh) * 1995-06-05 1997-05-28 佳能株式会社 生产设备自动化系统
US5940617A (en) * 1996-09-17 1999-08-17 Kabushiki Kaisha Toshiba Debugger for controlling execution of software installed in object to be controlled on the basis of state transition model, debugging method thereof, record medium thereof, and method for correlating function specifications and code addresses
JP2002055848A (ja) * 2000-08-11 2002-02-20 Omron Corp プログラム実行方式及び当該プログラム実行方式を格納した記憶媒体
US20020184479A1 (en) * 2001-03-09 2002-12-05 Koninklijke Philips Electronics N.V. Bytecode instruction processor with switch instruction handling logic
JP2008040542A (ja) * 2006-08-01 2008-02-21 Fanuc Ltd 数値制御装置
CN101271392A (zh) * 2007-02-05 2008-09-24 京瓷美达株式会社 电子设备及电子设备的控制方法
CN101369233A (zh) * 2007-08-14 2009-02-18 国际商业机器公司 程序编译方法和编译器
US20110184535A1 (en) * 2009-10-01 2011-07-28 Siemens Ag Apparatus and Method for Simulating a Control Program
JP2011215821A (ja) * 2010-03-31 2011-10-27 Keyence Corp プログラマブルコントローラ、データ通信方法及びコンピュータプログラム
CN103282846A (zh) * 2011-01-06 2013-09-04 欧姆龙株式会社 操作信息记录装置、以及其控制方法和控制程序
CN103403630A (zh) * 2011-03-15 2013-11-20 欧姆龙株式会社 运算单元、输出控制方法和程序
EP2515189A1 (en) * 2011-03-15 2012-10-24 Omron Corporation Plc cpu unit, system program for plc, and storage medium having system program for plc stored therein
CN103403633A (zh) * 2011-03-15 2013-11-20 欧姆龙株式会社 可编程控制器的中央处理器单元、可编程控制器用系统程序以及存储了可编程控制器用系统程序的记录介质
CN102736551A (zh) * 2012-06-20 2012-10-17 深圳市矩形科技有限公司 一种plc梯形图代码软解题方法
EP2887165A1 (en) * 2013-12-20 2015-06-24 Omron Corporation Computation unit, output control method, and program
JP2015176191A (ja) * 2014-03-13 2015-10-05 オムロン株式会社 コントローラ
CN105431789A (zh) * 2014-07-14 2016-03-23 三菱电机株式会社 Plc系统及运算式数据创建辅助装置
CN106020009A (zh) * 2015-03-31 2016-10-12 欧姆龙株式会社 控制装置
CN106125664A (zh) * 2016-08-12 2016-11-16 绵阳市维博电子有限责任公司 一种嵌入式plc控制系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113544600A (zh) * 2019-03-15 2021-10-22 欧姆龙株式会社 控制系统、中继装置以及中继程序
CN113544600B (zh) * 2019-03-15 2024-04-05 欧姆龙株式会社 控制系统、中继装置以及记录介质
CN114402568A (zh) * 2019-08-02 2022-04-26 欧姆龙株式会社 网络系统、信息处理装置以及信息处理方法
CN114585979A (zh) * 2019-11-12 2022-06-03 欧姆龙株式会社 控制装置

Also Published As

Publication number Publication date
EP3441835A1 (en) 2019-02-13
US10678218B2 (en) 2020-06-09
JP6919404B2 (ja) 2021-08-18
CN109388107B (zh) 2021-09-21
US20190049925A1 (en) 2019-02-14
JP2019036043A (ja) 2019-03-07
EP3441835B1 (en) 2021-05-19

Similar Documents

Publication Publication Date Title
CN109388107A (zh) 控制装置
CN109582397A (zh) 控制系统以及控制装置
EP3477405B1 (en) Control device
CN109581976B (zh) 控制装置
JP6903275B2 (ja) 制御装置および制御方法
Grigoriev et al. Scalable open cross-platform kernel of PCNC system for multi-axis machine tool
EP3460602B1 (en) Control apparatus and control method
CN109491307A (zh) 控制装置及控制方法
CN109557889A (zh) 支持装置及记录媒体
US11269313B2 (en) Controller and control system that stores data in current control cycle for output in next control cycle
CN109491324A (zh) 控制装置及控制方法
EP4036670A1 (en) Control device
Živanović et al. Programming of machine tools and robots for machining using STEP-NC in the era of Industry 4.0
Hoffman et al. Towards alternatives for agent based control in reconfigurable manufacturing systems
Živanović et al. DEMI 2021

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