买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】控制装置_欧姆龙株式会社_201810148962.X 

申请/专利权人:欧姆龙株式会社

申请日:2018-02-13

公开(公告)日:2021-09-21

公开(公告)号:CN109388107B

主分类号:G05B19/418(20060101)

分类号:G05B19/418(20060101)

优先权:["20170810 JP 2017-155781"]

专利状态码:有效-授权

法律状态:2021.09.21#授权;2019.03.22#实质审查的生效;2019.02.26#公开

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

主权项:1.一种控制装置,用于对控制对象进行控制,并且所述控制装置的特征在于,包括:存储部,存储每当执行时被整体扫描的第一程序及依次执行的第二程序;执行处理部,在每个预定的控制周期中执行所述第一程序而运算第一指令值;解释器,解释所述第二程序的至少一部分而生成中间代码;指令值运算部,按照所述解释器事先生成的中间代码在每个控制周期中运算第二指令值;以及输出部,在每个控制周期中输出由所述执行处理部运算出的所述第一指令值及由所述指令值运算部运算出的所述第二指令值,其中所述解释器在所述控制周期的整数倍的每个同步周期中,更新与所述执行处理部共享的数据。

全文数据:控制装置技术领域本发明涉及一种用于对控制对象进行控制的控制装置。背景技术在各种生产现场,使用可编程逻辑控制器programmablelogiccontroller,PLC可编程控制器等控制装置的工厂自动化FactoryAutomation,FA技术已广泛普及。此种控制装置不仅直接对控制对象进行控制,而且有时也通过向其他装置给予控制指令而间接对控制对象进行控制。例如日本专利特开2013-134786号公报专利文献1中公开了一种由工作机械及连接于工作机械的可编程逻辑控制装置构成的系统。另一方面,随着近年来的信息及通信技术InformationandCommunicationTechnology,ICT的进步,控制装置的处理能力也不断飞跃性地提高。也产生了将现有技术中使用多个专用装置实现的控制系统合并成数量更少的控制装置这一需求needs。例如日本专利特开2012-194662号公报专利文献2中公开了一种由PLC的中央处理器CentralProcessingUnit,CPU单元同步执行动作运算程序及用户程序的构成。根据日本专利特开2012-194662号公报专利文献2公开的构成,能够联合互相同步执行顺序程序sequenceprogram等用户程序与动作运算程序。发明内容设想欲利用单一控制装置来实现按照执行形式不同的多种程序的控制运算等需求高涨。本发明的一个目的在于提供一种能应对此种需求的控制装置。根据本发明的某一方面,提供一种用于对控制对象进行控制的控制装置。控制装置包括:存储部,存储每当执行时被整体扫描的第一程序及依次执行的第二程序;执行处理部,在每个预定的控制周期中执行第一程序而运算第一指令值;解释器,解释第二程序的至少一部分而生成中间代码;指令值运算部,按照解释器事先生成的中间代码在每个控制周期中运算第二指令值;以及输出部,在每个控制周期中输出由执行处理部运算出的第一指令值及由指令值运算部运算出的第二指令值。根据实施范例,解释器在控制周期的整数倍的每个同步周期中,更新与执行处理部共享的数据。根据实施范例,解释器在同步周期到来之前暂且停止第二程序的解释。根据实施范例,中间代码包含用于使指令值运算部在每个控制周期中运算第二指令值的函数。根据实施范例,解释器将所生成的中间代码在缓冲器中依次列队queueing,指令值运算部按缓冲器中的列队次序读取中间代码。根据实施范例,中间代码包含以控制周期的时间为输入且以指令值为输出的函数。根据实施范例,控制装置包含多组解释器及指令值运算部。根据实施范例,执行处理部、指令值运算部及输出部以高优先任务的形式执行处理,且解释器以低优先任务的形式执行处理。根据实施范例,在每个控制周期中分配高优先任务的执行时间,在高优先任务的执行时间以外的时间执行低优先任务。根据实施范例,控制装置为具有多核的处理器,由第一核执行高优先任务,由第二核执行低优先任务。根据本发明实施范例,能利用单一控制装置来实现按照执行形式不同的多种程序的控制运算。附图说明图1为表示本实施范例的控制系统的整体构成例的示意图。图2为表示本实施范例的控制装置的硬件构成例的方块图。图3为表示本发明的相关技术的计算机数值控制ComputerNumericalControl,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:PLC102:处理器104:芯片组106:主存储装置108:辅助存储装置110:上级网络控制器112:USB控制器114:存储卡接口116:存储卡120:内部总线控制器122:IO单元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:远程IO装置512、514:IO信号线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程序”典型而言包含由按国际电工委员会InternationalElectrotechnicalCommission,IEC规定的国际标准IEC61131-3记述的一个或多个命令组成的程序。“IEC程序”中也可包含顺序控制及动作控制的命令。“IEC程序”是在每个控制周期中执行扫描整个程序。“IEC程序”适于要求即时性及高速性的控制。此外,“IEC程序”不限于按国际标准IEC61131-3记述的命令,也可包含PLC可编程控制器的制造商或供应商vendor等独自规定的命令。本说明书中,“顺序控制”基本上为将由运算输入值、输出值、内部值等的一个或多个逻辑回路所记述的程序顺序程序从最初开始依次执行到最末的方式。在一次控制周期中,从程序的最初开始执行到最末,并在下一次控制周期中再次从程序的最初开始执行到最末。此外,顺序程序为表现电气回路的程序。本说明书中,“动作控制”为对伺服电机servomotor等致动器将位置、速度、加速度、急动度、角度、角速度、角加速度、角急动度等数值作为指令进行运算的方式。“动作控制”中,也在一次控制周期中将由功能块functionblock或数值运算式等记述的程序动作程序从最初开始执行到最末。即,在每个控制周期中运算更新指令值。本说明书中,“控制应用”例如包含使用计算机数值控制ComputerNumericalControl,CNC和或机器人的进行特定加工或动作的装置或机械以及所述装置或机械的控制。本说明书中,“应用程序”第二程序的一例包含由用于实现控制应用的一个或多个命令组成的程序,基本上包含不包括在“IEC程序”中的程序。“应用程序”为表现控制应用的顺序的程序,作为一例,CNC的情况下使用G语言进行记述,机器人控制的情况下使用机器人语言进行记述。所述应用程序大多情况下采用逐行依次执行的解释器interpreter方式。本说明书中,“用户程序UserProgram,也简称为“UPG””包含可由用户任意制作的程序。“用户程序”可包含用于实现顺序控制的顺序程序、用于实现动作控制的动作程序及应用程序。<B.控制系统的整体构成例>首先,对包含本实施范例的控制装置的控制系统1的整体构成例进行说明。图1为表示本实施范例的控制系统1的整体构成例的示意图。图1中示出以本实施范例的控制装置100为中心的控制系统1。控制装置100相当于控制各种设备或装置等控制对象的工业用控制器。控制装置100为执行下文将述般的控制运算的一种计算机,典型而言能以PLC可编程控制器的形式具体化。控制装置100可经由现场网络fieldnetwork2与各种现场机器500连接。控制装置100经由现场网络2等在与一个或多个现场机器500之间交换数据。通常“现场网络”也被称为“现场总线”,但为了简化说明,在以下的说明中统称为“现场网络”。即,本说明书的“现场网络”为除了狭义的“现场网络”以外还可包括“现场总线”的概念。控制装置100所执行的控制运算包括:收集现场机器500所收集或生成的数据以下也称为“输入数据”的处理输入处理、生成对现场机器500的指令等数据以下也称为“输出数据”的处理运算处理、将所生成的输出数据发送给作为对象的现场机器500的处理输出处理等。现场网络2优选采用保证数据到达时间的进行固定周期通信的总线或网络。此种进行固定周期通信的总线或网络已知以太网控制自动化技术EtherControlAutomationTechnology,EtherCAT注册商标、以太网工业协议EtherNetIndustryProtocol,EtherNetIP注册商标、设备网DeviceNet注册商标、混合网CompoNet注册商标等。现场网络2上能连接任意的现场机器500。现场机器500包含对制造装置或生产线等以下也统称为“现场”给予某些物理作用的致动器、及与现场之间交换信息的输入输出装置等。虽经由现场网络2在控制装置100与现场机器500之间进行数据交换,但这些交换数据是以几百微秒μsec级~几十毫秒msec级的极短周期更新。此外,此种交换数据的更新处理也称为输入输出刷新refresh处理。图1所示的构成例中,现场机器500包含远程输入输出InputOutput,IO装置510、伺服驱动器520及伺服电机522、机器人系统530以及CNC加工装置540。现场机器500不限于所述机器,能采用收集输入数据的任意设备例如视觉传感器等、依输出数据给予某些作用的任意设备例如逆变器装置等等。典型而言,远程IO装置510包含经由现场网络2进行通信的通信耦合器、及用于进行输入数据的取得及输出数据的输出的输入输出部以下也称为“IO单元”。远程IO装置510上,连接有输入继电器或各种传感器例如模拟传感器、温度传感器、振动传感器等等收集输入数据的装置、以及输出继电器、接触器contactor、伺服驱动器及其他任意致动器等对现场给予某些作用的装置。伺服驱动器520按照来自控制装置100的输出数据例如位置指令或速度指令等驱动伺服电机522。机器人系统530包含机器人控制器532及机器人机构534、机器人机构536、机器人机构538。机器人控制器532按照来自控制装置100的位置指令等进行轨道计算及各轴的角度计算等,并且按照计算结果驱动构成机器人机构534、机器人机构536、机器人机构538的伺服电机等。图1所示的构成例中,机器人机构534为并联机器人parallelrobot,机器人机构536为标量机器人scalarrobot,机器人机构538为多关节机器人。此外,机器人不限于图1所示的机构,可采用任意机构。另外,为了便于说明而例示机器人控制器532与机器人机构534、机器人机构536、机器人机构538分离的构成,但不限于此,也可将两者一体化。CNC加工装置540按照指定位置或速度等的程序来控制加工中心machiningcenter等,由此对任意对象物进行加工。CNC加工装置540典型而言包含车床加工、铣床、放电加工等的加工装置。控制装置100也经由上级网络6连接于其他装置。上级网络6也可采用作为普通网络协议的以太网Ethernet注册商标或EtherNetIP注册商标。更具体而言,上级网络6上也可连接着一个或多个伺服装置300及一个或多个显示装置400。关于伺服装置300,设想数据库系统databasesystem、制造执行系统ManufacturingExecutionSystem,MES等。制造执行系统取得来自控制对象的制造装置或设备的信息并监视及管理整个生产,也能操作订货order信息、品质信息、出货信息等。不限于此,也可将提供信息系统服务的装置连接于上级网络6。关于信息系统服务,设想取得来自控制对象的制造装置或设备的信息并进行宏观分析或微观分析等的处理。例如设想数据挖掘datamining或机械学习工具等,所述数据挖掘提取来自作为控制对象的制造装置或设备的信息中所含的某些特征性倾向,所述机械学习工具用于根据来自作为控制对象的设备或机械的信息进行机械学习。显示装置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是由被称为中央处理器CentralProcessingUnit,CPU单元的运算处理部及一个或多个IO单元122所构成,但图2中将所述部分汇总描绘。参照图2,控制装置100包含处理器102、芯片组chipset104、主存储装置106、辅助存储装置108存储部的一例、上级网络控制器110、通用串行总线UniversalSerialBus,USB控制器112、存储卡接口114、内部总线控制器120及现场网络控制器130。处理器102是由中央处理器CentralProcessingUnit,CPU、微处理器MicroProcessingUnit,MPU、图形处理器GraphicsProcessingUnit,GPU等构成。处理器102也可采用具有多核core的构成,也可配置多个处理器102。芯片组104通过控制处理器102及各设备而实现整个控制装置100的处理。主存储装置106是由动态随机存取存储器DynamicRandomAccessMemory,DRAM或静态随机存取存储器StaticRandomAccessMemory,SRAM等挥发性存储装置等构成。辅助存储装置108例如是由硬盘驱动器HardDiskDrive,HDD或固体驱动器SolidStateDrive,SSD等非挥发性存储装置等构成。处理器102读取辅助存储装置108中存储的各种程序并在主存储装置106中展开执行,由此实现与控制对象相应的控制及如下文将述的各种处理。辅助存储装置108中除了存储用于实现基本功能的系统程序36以外,还存储根据控制对象的制造装置或设备而制作的用户程序IEC程序30及应用程序32。上级网络控制器110经由上级网络6而控制与伺服装置300或显示装置400参照图1等之间的数据交换。USB控制器112经由USB连接而控制与支援装置200之间的数据交换。存储卡接口114构成为可装卸存储卡116,且能对存储卡116写入数据,从存储卡116读取各种数据用户程序或跟踪数据tracedata等。内部总线控制器120控制与控制装置100上搭载的IO单元122之间的数据交换。现场网络控制器130控制经由现场网络2的与其他设备之间的数据交换。图2中示出了通过处理器102执行程序而提供必要功能的构成例,但也可使用专用的硬件电路例如专用集成电路ApplicationSpecificIntegratedCircuit,ASIC或现场可编程门阵列Field-ProgrammableGateArray,FPGA等来安装所述提供的功能的一部分或全部。或者,也可使用按照通用体系结构architecture的硬件例如以通用个人计算机为基础的工业用个人计算机来实现控制装置100的主要部分。此情况下,也可使用虚拟化技术并列执行用途不同的多个操作系统OperatingSystem,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使用经由远程IO装置510所取得的输入数据及内部数据,按照顺序控制而运算输出数据,并将与运算出的输出数据相应的输出信号从远程IO装置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互联动作,经由IO信号IO信号线512交换各装置的信息。此种IO信号例如包含从PLC100A输出的运转开始指令等。此种构成中,从远程IO装置510对CNC控制器610给予表示加工开始的数字信号。在采用此种经由IO信号在装置间交换状态值的构成的情况下,例如在将加工前的工件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图中也记作“IO”。输入输出刷新处理20中,经由远程IO装置510等从现场取得输入数据,并且将前一控制周期中利用IEC程序101A运算出的输出数据经由远程IO装置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使用经由远程IO装置510所取得的输入数据及内部数据,按照顺序控制运算输出数据,并将与运算出的输出数据相应的输出信号从远程IO装置510输出。另外,PLC100B将动作控制中运算的指令值给予各伺服驱动器520,由此将配置在XY工作台750上的工件W定位在适当的位置。另一方面,对多关节机器人700的控制是由与PLC100B无关而另配置的机器人控制器710实现。机器人控制器710依次执行机器人程序720中记述的命令,由此使多关节机器人700进行预定的行为。PLC100B及机器人控制器710分别执行独立的控制处理,因此为了使XY工作台750与多关节机器人700互联动作,经由IO信号交换各装置的信息IO信号线514。此种IO信号例如包含从PLC100B输出的运转开始指令等。此种构成中,从远程IO装置510对机器人控制器710给予表示加工开始的数字信号。在采用此种经由IO信号在装置间交换状态值的构成的情况下,例如在将加工前的工件W配置在规定位置或取出组装后的工件W时,无法使多关节机器人700与XY工作台750完全同步。因此,多关节机器人700与XY工作台750或进而其他装置之间控制时机不同步,因此产生处理的等待。此种处理的等待成为妨碍处理时间缩短的原因。另外,XY工作台750的动作与多关节机器人700的动作不同步,因此在使XY工作台750动作并且使多关节机器人700动作时,动作时机不一致,导致组装精度降低。d3:机器人控制器成为主令控制器mastercontroller的系统如所述日本专利特开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分别包含继电器或接触器等IO设备及伺服电机等各种致动器。除了控制应用1及控制应用2以外,其他IO设备及各种传感器也经由现场网络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中存储数据时,也可采用结构变量structurevariable。如此,控制应用处理部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的资源分配方式能采用任意方式。例如可为分时共享共同的处理器或核的轮询roundrobin执行方式,也可为对每个应用程序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时,首先解释应用程序321程序解释,在内部生成所规定的轨道2轨道生成。决定这些轨道与每个控制周期的位置的关系后,生成表示内部所生成的轨道的一个或多个函数3每个区间的函数生成。如此,作为中间代码34的一例,也可使用以控制周期的时间为输入且以指令值为输出的函数。图11所示的示例中,内部生成的轨道为直线的组合,因此针对每个直线区间区间1~区间3的轨道输出表示时间与速度的关系的函数f1t、函数f2t、函数f3t。如此输出的函数f1t、函数f2t、函数f3t相当于本实施范例的中间代码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的IO设备及致动器电机等与一个或多个控制应用。通过采用本实施范例的控制装置100,能减少因多个装置间的等待而产生的延迟时间等,从而能提高生产性。通过采用本实施范例的控制装置100,能省略对每个控制应用配置的专用控制器,从而能降低系统构成所需要的成本。通过采用本实施范例的控制装置100,能利用软件实现控制器间的配线IO信号线,因此能削减设计及安装所需要的时间及成本。应认为本次公开的实施范例在所有方面为例示而非限制性。本发明的范围是由权利要求而非所述说明揭示,是指包括与权利要求均等的含意及范围内的所有变更。

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

百度查询: 欧姆龙株式会社 控制装置

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。