CN115151874A - 机器人控制系统以及控制方法 - Google Patents

机器人控制系统以及控制方法 Download PDF

Info

Publication number
CN115151874A
CN115151874A CN202080097369.2A CN202080097369A CN115151874A CN 115151874 A CN115151874 A CN 115151874A CN 202080097369 A CN202080097369 A CN 202080097369A CN 115151874 A CN115151874 A CN 115151874A
Authority
CN
China
Prior art keywords
robot
control device
command
program
source
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.)
Pending
Application number
CN202080097369.2A
Other languages
English (en)
Inventor
F·卡拉斯
D·埃斯库德罗
R·维托
A·佩纳尔弗
D·福纳斯
田村嘉英
大谷拓
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 CN115151874A publication Critical patent/CN115151874A/zh
Pending legal-status Critical Current

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/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
    • G05B19/0423Input/output
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1658Programme controls characterised by programming, planning systems for manipulators characterised by programming language
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • 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
    • G05B19/0426Programming the control sequence
    • 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/36Nc in input of data, input key till input tape
    • G05B2219/36513Select out of a plurality of programs, patterns
    • 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/39Robotics, robotics to robotics hand
    • G05B2219/39448Same teach pendant connects to many robot controllers over network

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Software Systems (AREA)
  • Manipulator (AREA)
  • Programmable Controllers (AREA)
  • Numerical Control (AREA)

Abstract

机器人控制系统包含:第1控制装置;以及第2控制装置,其与第1控制装置进行了网络连接,用于控制机器人。第1控制装置包含:选择部,其使提供如下信息的多个源中的任意的源有效化,所述信息用于生成对机器人的行为进行指示的命令;以及第1通信部,其将按照来自多个源中被有效化的源的信息而生成的命令发送到第2控制装置。第2控制装置包含:第2通信部,其接收从第1控制装置发送的命令;以及指令值生成部,其以实现由来自第1控制装置的命令指示的行为的方式,依次生成用于驱动机器人的各轴的指令值。

Description

机器人控制系统以及控制方法
技术领域
本技术涉及机器人控制系统以及控制方法。
背景技术
以往,在FA(Factory Automation:工厂自动化)领域中,机器人被用于各种应用。
通常,在机器人的控制中使用以规定的编程语言描述的程序。基于使机器人的控制更简化的观点,例如,日本特开2018-196908号公报(专利文献1)公开了不学习机器人语言而以低成本构建使用了机器人的自动化设备的结构。
现有技术文献
专利文献
专利文献1:日本特开2018-196908号公报
发明内容
发明所要解决的课题
上述的现有技术文献所示的结构不是简单地创建通过机器人语言描述的程序,而是通过输入针对机器人控制器的参数来控制机器人的动作,由此降低构建成本。
然而,在实际的生产设备中,不仅需要按照预先创建的程序进行动作,还需要应对基于示教器等的用户操作。上述的现有技术文献所示的结构对于存在多个这样的动作的指示源的情况没有任何设想。
本技术的目的在于提供一种即使在存在多个指示机器人的行为的源的情况下也能够应对的机器人控制系统。
用于解决课题的手段
本技术的某个实施方式的机器人控制系统包含:第1控制装置;以及第2控制装置,其与第1控制装置进行了网络连接,用于控制机器人。第1控制装置包含:选择部,其使提供如下信息的多个源中的任意的源有效化,所述信息用于生成对机器人的行为进行指示的命令;以及第1通信部,其将按照来自多个源中被有效化的源的信息而生成的命令发送到第2控制装置。第2控制装置包含:第2通信部,其接收从第1控制装置发送的命令;以及指令值生成部,其以实现由来自第1控制装置的命令指示的行为的方式,依次生成用于驱动机器人的各轴的指令值。
根据该结构,第1控制装置能够使多个源中的任意选择的任意的源有效化,并按照来自有效化的源的信息生成命令。由此,能够灵活地运用机器人控制系统。
多个源可以包含以下源中的多个源:程序解释部,其逐次执行机器人程序;操作部,其与第1控制装置进行了网络连接,根据用户操作来生成操作指令;开发辅助装置,其与第1控制装置连接,根据用户操作或程序执行来提供信息;以及程序执行部,其执行IEC程序。
根据该结构,不仅能够按照本来的机器人程序控制机器人,还能够按照来自操作部的操作指令、来自开发辅助装置的指示、IEC程序的执行结果等来控制机器人。
选择部也可以按照从外部对第1控制装置提供的指令,使特定的源有效化。根据该结构,能够根据来自位于第1控制装置的外部的信息处理装置等的指示,变更有效化的操作,因此能够实现更灵活的运用。
选择部也可以按照预先确定的设定,决定有效化的源。根据该结构,能够进行使特定的源优先那样的运用。
预先确定的设定也可以包含关于源的优先顺序。选择部也可以在从多个源分别被提供信息的情况下,使具有更高的优先顺序的源有效化。根据该结构,能够根据优先顺序自动地决定作为命令的生成源的源。
第1通信部也可以向第2控制装置通知选择部使哪个源有效化。根据该结构,在第2控制装置中,也能够根据被有效化的源而使处理不同。由此,能够进行与被有效化的源对应的机器人的控制。
指令值生成部也可以根据选择部使哪个源有效化,使用于驱动机器人的各轴的指令值的生成特性不同。根据该结构,能够以与源对应的特性来控制机器人。
根据本技术的另一实施方式,提供一种机器人控制系统中的控制方法,该机器人控制系统具有:第1控制装置;以及第2控制装置,其与第1控制装置进行了网络连接,用于控制机器人。控制方法包含以下步骤:第1控制装置使提供用于生成命令的信息的多个源中的任意的源有效化,所述命令对机器人的行为进行指示;第1控制装置将按照来自多个源中被有效化的源的信息而生成的命令发送到第2控制装置;第2控制装置接收从第1控制装置发送的命令;以及第2控制装置以实现由来自第1控制装置的命令指示的行为的方式,依次生成用于驱动机器人的各轴的指令值。
发明的效果
根据本技术,也能够应对存在多个指示机器人的行为的源的情况。
附图说明
图1是表示本实施方式的机器人控制系统的概略的示意图。
图2是表示本实施方式的机器人控制系统的结构例的示意图。
图3是表示构成本实施方式的机器人控制系统的控制装置的硬件结构例的示意图。
图4是表示构成本实施方式的机器人控制系统的机器人的硬件结构例的示意图。
图5是表示构成本实施方式的机器人控制系统的机器人的另一硬件结构例的示意图。
图6是表示构成本实施方式的机器人控制系统的操作示教器的硬件结构例的示意图。
图7是表示构成本实施方式的机器人控制系统的支持装置的硬件结构例的示意图。
图8是表示本实施方式的机器人控制系统中的用于控制机器人的行为的功能结构的一例的示意图。
图9是表示由构成本实施方式的机器人控制系统的控制装置执行的IEC程序及机器人程序的一例的图。
图10是表示构成本实施方式的机器人控制系统的控制装置中的程序的执行例的时序图。
图11是概略地表示本实施方式的机器人控制系统中的包含源选择功能的数据处理的示意图。
图12是表示本实施方式的机器人控制系统中的源选择功能的安装例的示意图。
图13是表示本实施方式的机器人控制系统中的使指令值的生成特性不同的例子的图。
图14是表示在本实施方式的机器人控制系统的控制装置中使指令值的生成特性不同的结构例的示意图。
图15是表示在本实施方式的机器人控制系统的控制装置中使指令值的生成特性不同的另一结构例的示意图。
图16是表示构成本实施方式的机器人控制系统的控制装置的IEC程序执行引擎的处理步骤的流程图。
图17是表示构成本实施方式的机器人控制系统的控制装置的机器人程序执行引擎的处理步骤的流程图。
图18是表示构成本实施方式的机器人控制系统的机器人控制器中的处理步骤的流程图。
具体实施方式
参照附图对本技术的实施方式进行详细说明。另外,对图中的相同或相应的部分标注相同的标号并不重复其说明。
<A.应用例>
首先,对应用本技术的场景的一例进行说明。图1是表示本实施方式的机器人控制系统1的概略的示意图。
参照图1,机器人控制系统1包含控制装置100(第1控制装置)、和与控制装置100进行了网络连接并用于控制机器人200的机器人控制器250(第2控制装置)。此外,也可以在控制装置100上连接多个机器人控制器250。
在以下的说明中,主要示出控制机器人200的机器人控制系统1的结构例,但机器人控制系统1的控制对象不限于机器人200。例如,控制装置100除了控制机器人200以外,还能够控制构成包含机器人200的生产设备的各种装置、机械。进而,控制装置100也可与监视机器人200的动作的安全控制器协作。即,在本说明书中,“机器人控制系统”这一用语以具有控制机器人的功能的系统这一意思来使用,并不排除控制机器人以外的设备的情况。
控制装置100具有:命令生成模块156,其生成指示机器人200的行为的命令158;以及通信部50(由后述的现场网络控制器108、通信控制模块160、通信驱动器162等构成),其向机器人控制器250发送命令158。
命令生成模块156可以与提供信息的多个源连接,所述信息用于生成命令158。
在本说明书中,“源”是指用于生成命令的信息的提供源,所述命令对机器人200的行为进行指示。作为用于生成命令的信息,包含如后所述的内部命令和/或由用户指示的操作指令等。
命令生成模块156的源选择功能157(选择部)使多个源中的任意的源有效化。命令生成模块156按照来自被源选择功能157有效化的源的信息,生成命令158。
通信部50向机器人控制器250发送按照来自多个源中被有效化的源的信息而生成的命令158。
机器人控制器250具有:通信部60(由后述的现场网络控制器252、通信控制模块280、通信驱动器282等构成),其接收从控制装置100发送的命令158;以及指令值生成模块290(指令值生成部),其以实现由来自控制装置100的命令158指示的行为的方式,依次生成用于驱动机器人200的各轴的指令值。
此外,机器人200的轴有时也构成关节(joint),因此在以下的说明中,也称为机器人200的“轴或关节”。即,在本说明书中,机器人200的“轴”这一用语以包含轴以及关节的意思来使用。
在本实施方式的机器人控制系统1中,能够选择性地使多个源有效化,因此不仅能够通过本来的机器人程序1108进行控制,还能够根据来自其他源的信息来控制机器人200。其结果,能够灵活地运用机器人控制系统1。
<B.系统结构例>
接着,对本实施方式的机器人控制系统1的结构例进行说明。
图2是表示本实施方式的机器人控制系统1的结构例的示意图。参照图2,本实施方式的机器人控制系统1包含控制装置100和经由现场网络20与控制装置100连接的1个或多个机器人200。
各个机器人200的行为由机器人控制器250控制。机器人控制器250与控制装置100进行了网络连接,对机器人200进行控制。更具体而言,机器人控制器250按照来自控制装置100的命令158,输出用于控制机器人200的指令值。作为机器人200,也可以使用具有根据应用而任意创建的1个或多个轴或关节的定制机器人200A。进而,作为机器人200,也可以使用水平多关节(SCARA)机器人、垂直多关节机器人、并联机器人、正交机器人等任意的通用机器人200B。
现场网络20也可连接I/O单元、安全I/O单元、安全控制器等任意设备。在图2所示的结构例中,在现场网络20上连接有用于操作机器人200的操作示教器300。
现场网络20可使用作为工业用网络用的协议的EtherCAT(注册商标)或EtherNet/IP等。
控制装置100也可经由上位网络12而连接于支持装置400、显示装置500以及服务器装置600。上位网络12可使用工业用网络用的协议或EtherNet/IP等。
<C.硬件结构例>
接着,对构成图2所示的机器人控制系统1的主要装置的硬件结构例进行说明。
(c1:控制装置100)
图3是表示构成本实施方式的机器人控制系统1的控制装置100的硬件结构例的示意图。参照图3,控制装置100包含处理器102、主存储器104、储存器110、存储卡接口112、上位网络控制器106、现场网络控制器108、本地总线控制器116以及提供USB(UniversalSerial Bus:通用串行总线)接口的USB控制器120。这些组件经由处理器总线118连接。
处理器102相当于执行控制运算的运算处理部,由CPU(Central ProcessingUnit:中央处理单元)、GPU(Graphics Processing Unit:图形处理单元)等构成。具体而言,处理器102读出储存器110中保存的程序,在主存储器104中展开并执行,由此实现对控制对象的控制运算。
主存储器104由DRAM(Dynamic Random Access Memory:动态随机存取存储器)或SRAM(Static Random Access Memory:静态随机存取存储器)等易失性存储装置等构成。储存器110例如由SSD(Solid State Drive:固态驱动器)或HDD(Hard Disk Drive:硬盘驱动器)等非易失性存储装置等构成。
在储存器110中,保存有用于实现基本功能的系统程序1102、以及根据控制对象而创建的IEC程序1104等。IEC程序1104中可包含序列命令和/或运动命令。
在本说明书中,“IEC程序”是以规定由通常的PLC(可编程逻辑控制器)执行的处理的程序的意思来使用。典型地,IEC程序是指以国际电气标准会议(IEC:InternationalElectrotechnical Commission)确定的IEC61131-3所规定的任意语言描述的程序。但是,IEC程序可包含以IEC61131-3所规定的语言以外的制造商独特语言描述的程序。
储存器110还可以保存用于控制机器人200的行为的机器人程序1108和设定信息1109。如后所述,机器人程序1108也可以通过规定的编程语言(例如,V+语言等机器人控制用编程语言、G代码等NC控制所涉及的编程语言)来描述。设定信息1109包含针对机器人200的各种设定值(例如速度限制值、加速度限制值、加加速度限制值等)。
存储卡接口112接受作为可装卸的存储介质的一例的存储卡114。存储卡接口112能够对存储卡114读写任意的数据。
上位网络控制器106经由上位网络与任意的信息处理装置(图2所示的支持装置400、显示装置500、服务器装置600等)之间交换数据。
现场网络控制器108经由现场网络20与机器人200等任意设备之间交换数据。在图2所示的系统结构例中,现场网络控制器108也可以作为现场网络20的通信主设备发挥功能。
本地总线控制器116经由本地总线122与构成控制装置100的任意功能单元130之间交换数据。功能单元130例如由负责模拟信号的输入和/或输出的模拟I/O单元、负责数字信号的输入和/或输出的数字I/O单元、受理来自编码器等的脉冲的计数器单元等构成。
USB控制器120经由USB连接与任意的信息处理装置之间交换数据。
关于控制装置100所提供的与机器人200的控制相关的功能,将在后面叙述。
(c2:机器人200和机器人控制器250)
图4是表示构成本实施方式的机器人控制系统1的机器人200的硬件结构例的示意图。在图4中,示出了采用定制机器人200A作为机器人200的情况下的结构例。
参照图4,定制机器人200A与机器人控制器250连接。此外,定制机器人200A和机器人控制器250既可以一体地构成,也可以分体地构成。
定制机器人200A包含与轴或关节的数量对应的驱动电路220、以及由驱动电路220驱动的电机230。各个驱动电路220包含转换器电路及逆变器电路等,生成根据来自机器人控制器250的指令值而指定的电压、电流、相位的电力,并供给至电机230。
各个电机230是如下致动器:与构成定制机器人200A的臂部210的任意的轴或关节机械地结合,通过电机230的旋转来驱动对应的轴或关节。
作为电机230,能够采用与要驱动的臂部210相应的特性的电机。例如,作为电机230,可以采用感应型电机、同步型电机、永磁型电机、磁阻电机中的任意电机,不仅可以采用旋转型,也可以采用线性电机。采用与驱动对象电机230对应的驱动电路220。
机器人控制器250包含现场网络控制器252和控制处理电路260。
现场网络控制器252经由现场网络20,主要与控制装置100之间交换数据。
控制处理电路260执行为了驱动定制机器人200A所需的运算处理。作为一例,控制处理电路260包含处理器262、主存储器266、储存器270及接口电路268。
处理器262执行用于驱动定制机器人200A的控制运算。主存储器266例如由DRAM或SRAM等易失性存储装置等构成。储存器270例如由SSD或HDD等非易失性存储装置等构成。
在储存器270中保存有用于实现机器人200的驱动用的控制的机器人系统程序2702、以及包含机器人控制器250中的处理所需的设定参数组的设定信息2704。
接口电路268对各个驱动电路220分别提供指令值。接口电路268与驱动电路220之间可以通过硬连线电连接,也可以通过数据链路连接。
图5是表示构成本实施方式的机器人控制系统1的机器人200的另一硬件结构例的示意图。在图5中,示出了采用通用机器人200B作为机器人200的情况下的结构例。
参照图5,通用机器人200B组装有1个或多个电机及驱动电路(未图示),当指示通用机器人200B的目标轨道时,根据所指示的目标轨道来驱动1个或多个电机。
在驱动图4所示的定制机器人200A的情况下,需要对与轴或关节对应的驱动电路220分别提供指令值,与此相对,在驱动图5所示的通用机器人200B的情况下,只要指示通用机器人200B的目标轨道即可。
关于机器人控制器250所提供的与机器人200的控制相关的功能,将在后面叙述。
(c3:操作示教器300)
图6是表示构成本实施方式的机器人控制系统1的操作示教器300的硬件结构例的示意图。参照图6,操作示教器300包含现场网络控制器352、控制处理电路360及操作键组380。
现场网络控制器352经由现场网络20,主要与控制装置100之间交换数据。
控制处理电路360包含处理器362、主存储器366、固件370和接口电路368。
处理器362通过执行固件370来实现操作操作示教器300所需的处理。主存储器366例如由DRAM或SRAM等易失性存储装置等构成。
接口电路368与操作键组380之间交换信号。
操作键组380是受理用户操作的输入装置。操作键组380也可以包含表示输入状态的指示器等。
(c4:支持装置400)
图7是表示构成本实施方式的机器人控制系统1的支持装置400的硬件结构例的示意图。支持装置400是用于开发由控制装置100执行的程序等的开发辅助装置,作为一例,也可以使用通用个人计算机来实现。
参照图7,支持装置400包含处理器402、主存储器404、输入部406、显示部408、储存器410、光学驱动器412、USB控制器420以及通信控制器422。这些组件经由处理器总线418连接。
处理器402由CPU或GPU等构成,通过读出储存器410中保存的程序(作为一例,OS4102及开发程序4104),在主存储器404中展开并执行,由此实现支持装置400所需的各种功能。
主存储器404例如由DRAM或SRAM等易失性存储装置等构成。储存器410例如由HDD或SSD等非易失性存储装置等构成。
在储存器410中保存有用于实现基本功能的OS 4102、以及用于实现开发环境的开发程序4104等。在开发环境中,能够进行由控制装置100执行的程序的创建、程序的调试、与控制装置100的动作相关的设定、针对与控制装置100连接的设备的动作的设定、与现场网络20相关的设定等。
输入部406由键盘、鼠标等构成,受理用户操作。显示部408由显示器、各种指示器等构成,显示处理器402的处理结果等。
USB控制器420经由USB连接与控制装置100等之间交换数据。通信控制器422经由上位网络与任意的信息处理装置之间交换数据。
支持装置400具有光学驱动器412,从非易失性地保存计算机可读取的程序的存储介质414(例如DVD(Digital Versatile Disc:数字多功能盘)等光学存储介质)中读取保存于其中的程序,并安装于储存器410等。
由支持装置400执行的开发程序4104等可以经由计算机可读取的存储介质414进行安装,也可以以从网络上的服务器装置等下载的形式进行安装。另外,本实施方式的支持装置400提供的功能有时也以利用OS 4102提供的模块的一部分的形式实现。
此外,在机器人控制系统1的运转中,支持装置400也可以从控制装置100卸下。
(c5:显示装置500)
作为一例,构成本实施方式的机器人控制系统1的显示装置500也可以使用通用个人计算机来实现。显示装置500的基本的硬件结构例与图7所示的支持装置400的硬件结构例相同,因此在此不进行详细的说明。
(c6:服务器装置600)
作为一例,构成本实施方式的机器人控制系统1的服务器装置600也可以使用通用个人计算机来实现。服务器装置600的基本的硬件结构例与图7所示的支持装置400的硬件结构例相同,因此在此不进行详细的说明。
(c7:其他方式)
在图3~图7中,示出了通过1个或多个处理器执行程序而提供所需的功能的结构例,但也可以使用专用的硬件电路(例如,ASIC(Application Specific IntegratedCircuit:专用集成电路)或者FPGA(Field-Programmable Gate Array:现场可编程门阵列)等)来安装这些所提供的功能的一部分或者全部。
也可以使用遵循通用架构的硬件(例如以通用个人计算机为基础的工业用个人计算机)来实现控制装置100的主要部分。在该情况下,也可以使用虚拟化技术并行地执行用途不同的多个OS,并且在各OS上执行所需的应用。并且,也可以采用在控制装置100中集成有支持装置400、显示装置500等的功能的结构。
<D.功能结构例>
对用于控制机器人200的功能结构的一例进行说明。
图8是表示本实施方式的机器人控制系统1中的用于控制机器人200的行为的功能结构的一例的示意图。参照图8,在控制装置100与1个或多个机器人控制器250之间交换用于控制机器人200的命令158等。
控制装置100包含IEC程序执行引擎150、机器人程序执行引擎152、通信控制模块160、通信驱动器162及外部通信接口164。这些元件典型的是也可通过控制装置100的处理器102执行系统程序1102来实现。
IEC程序执行引擎150通过执行IEC程序1104,周期性地生成提供给机器人控制器250的输出值。更具体而言,IEC程序执行引擎150每隔规定的控制周期循环执行IEC程序1104。作为控制装置100的控制周期,典型地设想几百μsec~几百msec左右。IEC程序执行引擎150根据IEC程序1104的执行,将内部命令(例如命令158的发送开始及发送停止等)输出至机器人程序执行引擎152,和/或从机器人程序执行引擎152取得状态值(例如机器人程序执行引擎152所执行的机器人程序1108的状态等)。
机器人程序执行引擎152通过执行机器人程序1108,生成指示机器人200的行为的命令158。即,机器人程序执行引擎152逐次执行机器人程序1108,对1个或多个机器人控制器250发送用于控制机器人200的命令158等。更具体而言,机器人程序执行引擎152包含机器人程序解释模块154和命令生成模块156。
机器人程序解释模块154依次读入机器人程序1108并进行解析,将通过解析得到的内部命令输出到命令生成模块156。机器人程序解释模块154除了能够解释由机器人程序1108所包含的编程语言描述的与机器人200的行为相关的命令以外,还能够解释与信号的输入输出、文件访问以及通信相关的命令。
由机器人程序解释模块154进行的机器人程序1108的读入开始、停止等也可以由命令生成模块156控制。
命令生成模块156按照来自机器人程序解释模块154的内部命令,生成针对各个机器人控制器250的命令158。命令生成模块156除了根据来自机器人程序解释模块154的内部命令以外,还能够根据来自操作示教器300的操作指令(内部命令)及来自支持装置400的内部命令,生成针对各个机器人控制器250的命令158。
这样,命令生成模块156能够受理来自多个源的内部命令,生成命令158。命令生成模块156根据来自哪个源的内部命令来生成命令158是由命令生成模块156的源选择功能157来执行的。即,源选择功能157使多个源中的任意的源有效化。关于源选择功能157的详情将后述。
命令生成模块156作为所连接的1个或多个机器人控制器250的主机发挥功能。更具体而言,命令生成模块156根据与IEC程序执行引擎150之间交换的内部命令、和/或经由外部通信接口164与支持装置400之间交换的内部命令,控制机器人程序解释模块154中的机器人程序1108的执行的开始和停止,并且控制针对机器人控制器250的命令158的生成的开始和停止。
命令生成模块156可以从机器人控制器250收集状态值和错误等信息。
为了便于说明,示出了将机器人程序解释模块154和命令生成模块156分离的结构例,但也可以不将这些模块分离而一体地安装。
通信控制模块160及通信驱动器162相当于通信部,将根据来自多个源中被有效化的源的信息而生成的命令158发送至机器人控制器250。通信控制模块160及通信驱动器162除了命令158以外,还将来自IEC程序执行引擎150的输出值发送至机器人控制器250。
通信控制模块160管理与所连接的1个或多个机器人控制器250之间的数据交换。通信控制模块160也可以针对所连接的每个机器人控制器250,生成管理数据通信的通信实例,并使用所生成的通信实例来管理数据通信。
通信驱动器162是利用现场网络控制器108(参照图3),与所连接的1个或多个机器人控制器250之间进行数据通信的内部接口。
各个机器人控制器250包含通信控制模块280、通信驱动器282、机器人驱动引擎284以及信号输出驱动器292。这些元件典型地也可以通过机器人控制器250的处理器262(控制处理电路260)执行机器人系统程序2702来实现。
通信控制模块280对与所连接的控制装置100之间的数据交换进行管理。通信控制模块280也可以生成与所连接的控制装置100之间管理数据通信的通信实例,并使用所生成的通信实例来管理数据通信。
通信驱动器282是利用现场网络控制器252(参照图4),与所连接的控制装置100之间进行数据通信的内部接口。
通信控制模块280和通信驱动器282相当于接收从控制装置100发送的命令158的通信部。
机器人驱动引擎284按照来自控制装置100的命令158,参照从控制装置100预先发送的设定信息2704,执行用于驱动控制对象机器人200(包含:定制机器人200A和/或通用机器人200B)的处理。更具体而言,机器人驱动引擎284包含管理模块286、目标轨道生成模块288及指令值生成模块290。
管理模块286相当于根据来自控制装置100的输出值来执行处理的处理执行部。更具体而言,管理模块286按照来自控制装置100的输出值,对控制模式、根据命令158生成目标轨道的开始/结束等进行管理。
目标轨道生成模块288(目标轨道生成部)按照来自控制装置100的命令158,生成控制对象机器人200(包含:定制机器人200A和/或通用机器人200B)的目标轨道。典型地,所生成的目标轨道包含机器人200的末端部的每个时间的位置(相对于时间的位置变化)和/或机器人200的末端部的每个时间的速度(相对于时间的速度变化)等。
目标轨道生成模块288可以将生成的目标轨道向指令值生成模块290输出(典型地,在驱动图4所示的定制机器人200A的情况下),也可以经由信号输出驱动器292向机器人200直接输出(典型地,在驱动图5所示的通用机器人200B的情况下)。
指令值生成模块290以实现由来自控制装置100的命令158指示的行为的方式,依次生成用于驱动机器人200的各轴的指令值。更具体而言,指令值生成模块290按照由目标轨道生成模块288生成的目标轨道,依次生成针对构成控制对象机器人200的各个电机230的指令值。指令值生成模块290也可以每隔规定的控制周期或每隔规定的事件更新指令值。
作为机器人控制器250的目标轨道生成模块288的控制周期,典型地设想为与控制装置100的控制周期相同程度的几百μsec~几百msec左右。另一方面,设想机器人控制器250的指令值生成模块290的控制周期比目标轨道生成模块288的控制周期高速(例如,几~十几倍左右)。
更具体而言,指令值生成模块290基于控制对象机器人200的运动学,计算提供给用于沿着目标轨道驱动机器人200的电机230的各个指令值。指令值生成模块290计算目标位置(相对于时间的位置/角度的变化)、目标速度(相对于时间的速度/角速度的变化)、目标加速度(相对于时间的加速度/角加速度的变化)和/或目标加速度(相对于时间的加加速度/角加加速度的变化)等,作为提供给电机230的指令值。
机器人驱动引擎284也可以参照设定信息2704(参照图4),取得计算目标轨道和/或指令值所需的参数。
为了便于说明,示出了将目标轨道生成模块288和指令值生成模块290分离的结构例,但也可以不将这些模块分离而一体地安装。
信号输出驱动器292是用于利用接口电路268(参照图4)将指令值和/或目标轨道向所连接的1个或多个驱动电路220和/或机器人200输出的内部接口。
<E.由控制装置100执行的处理>
如上所述,机器人程序1108是用于控制机器人200的行为的程序。但是,为了控制机器人200的行为,例如还需要控制开始/停止机器人200的动作的定时、用于使机器人200动作的条件(例如,与处于前工序或者后工序的设备的协作)、机器人200的安全条件等。
因此,在控制装置100中,不仅能够执行机器人程序1108,还可以并行执行IEC程序1104。IEC程序1104也可包含收集与机器人200的动作相关的状态值,并决定开始/停止机器人200的动作的定时的逻辑等。
图9是表示由构成本实施方式的机器人控制系统1的控制装置100执行的IEC程序1104及机器人程序1108的一例的图。
图9的(A)中示出以梯形图(LD语言)描述的IEC程序1104的例子。图9的(A)所示的IEC程序1104的例子包含与接通控制对象机器人200的电源的处理、及执行控制对象机器人200的校准的处理相关的命令。
另外,如图9的(A)所示,IEC程序1104也可包含功能块作为要素。而且,IEC程序1104也可包含以结构化文本(ST语言)描述的代码。
图9的(B)示出了以V+语言描述的机器人程序1108的例子。如图9的(B)所示,V+语言是用于控制机器人200的行为的一种高级语言。
接着,对控制装置100中的IEC程序1104及机器人程序1108的并行执行进行说明。
图10是表示构成本实施方式的机器人控制系统1的控制装置100中的程序的执行例的时序图。如图10所示,在控制装置100中,IEC程序执行引擎150及机器人程序执行引擎152(机器人程序解释模块154及命令生成模块156)分别独立地执行处理。
IEC程序执行引擎150每隔预先确定的控制周期T1循环执行(反复执行)IEC程序1104。IEC程序1104的循环执行包含输出更新处理1502及输入更新处理1504。
输出更新处理1502包含将通过IEC程序1104的执行而决定的输出值反映至内部变量和/或对象设备的处理。特别是,针对经由现场网络20连接的设备的输出值保存在通信帧中而被送出到现场网络20上。
输入更新处理1504包含从内部变量和/或对象设备取得IEC程序1104的执行所需的输入值(状态值)的处理。特别是,来自经由现场网络20而连接的设备的输入值从在现场网络20上传播的通信帧中取得。
通信控制模块160与控制周期T1同步地在现场网络20上送出通信帧,并且接收在现场网络20上循环而返回的通信帧。通信控制模块160将IEC程序执行引擎150所生成的输出值和/或命令生成模块156所生成的命令158保存在通信帧中,并且以IEC程序执行引擎150及命令生成模块156可参照的方式保持返回的通信帧中所包含的输入值(状态值)。
命令生成模块156按照来自机器人程序解释模块154的内部命令,生成命令158。典型地,命令生成模块156生成命令158的定时由来自IEC程序执行引擎150的输出值决定。在图10所示的例子中,示出IEC程序执行引擎150响应于来自IEC程序执行引擎150的输出值而生成命令158的例子。IEC程序执行引擎150对命令158的生成也可与IEC程序执行引擎150的输出更新处理1502的定时同步。
机器人程序解释模块154典型地与控制周期T1独立地执行机器人程序1108。由机器人程序解释模块154进行的机器人程序1108的执行的开始/停止也可以由命令生成模块156控制。
如图10所示,机器人程序执行引擎152依次执行机器人程序1108。与机器人程序执行引擎152对机器人程序1108的执行独立地,IEC程序执行引擎150循环执行IEC程序1104。
<F.源选择功能>
接着,说明源选择功能157的具体例。
图11是概略地表示本实施方式的机器人控制系统1中的包含源选择功能157的数据处理的示意图。参照图11,对控制装置100的机器人程序执行引擎152输入以规定编程语言描述的机器人程序1108、来自操作示教器300的操作指令(内部命令)、来自支持装置400和IEC程序执行引擎150的内部命令。
命令生成模块156的源选择功能157选择从多个源中的哪个源生成命令158。
(1)选择机器人程序1108作为源的情况
在选择机器人程序1108作为源的情况下,首先,将机器人程序1108输入到机器人程序解释模块154。然后,机器人程序解释模块154解释机器人程序1108并生成内部命令。此外,命令生成模块156根据所生成的内部命令,生成命令158。
即,在按照机器人程序1108生成命令158的情况下,逐次执行机器人程序1108的机器人程序解释模块154(程序解释部)成为源。
例如,在同一生产线上配置有多个机器人200,在各个机器人200进行不同的作业的生产设备中,在机器人程序执行引擎152中输入针对每个机器人200而不同的机器人程序1108。另外,在多个相同的生产线并列配置,并且在各个生产线上配置有进行相同作业的机器人200那样的生产设备中,也可以向机器人程序执行引擎152输入公共的机器人程序1108。但是,生成的命令158也可以分别独立地向机器人控制器250发送。
另外,也可以向机器人程序执行引擎152输入以不同的编程语言(例如,V+语言以及G代码)描述的多个机器人程序1108。机器人程序执行引擎152即使在输入了以不同的编程语言描述的机器人程序1108的情况下,也能够生成按照公共的命令体系描述的命令158。这样,机器人程序执行引擎152可以构成为能够解释多个编程语言,也可以不依赖于编程语言而生成按照预先确定的命令体系的命令158。
(2)选择操作示教器300作为源的情况
在选择操作示教器300作为源的情况下,与针对操作示教器300的用户操作对应的操作指令经由现场网络20而被输入至控制装置100。然后,将从操作示教器300接收到的操作指令作为内部命令提供给命令生成模块156。命令生成模块156按照来自操作示教器300的操作指令,生成命令158。
即,在根据来自操作示教器300的操作指令生成命令158的情况下,与控制装置100进行了网络连接、且根据用户操作生成操作指令的操作示教器300(操作部)成为源。
典型地,操作示教器300用于进行决定机器人200的行为等的操作(示教操作)等。因此,从操作示教器300输出例如使机器人200的末端部向任意方向移动的操作指令。命令生成模块156根据来自操作示教器300的操作指令,生成用于使机器人200的末端部向指定的方向移动的命令158。
(3)选择支持装置400作为源的情况
在选择支持装置400作为源的情况下,支持装置400所生成的内部命令被输入至命令生成模块156。命令生成模块156根据来自支持装置400的内部命令,生成命令158。支持装置400的内部命令的生成可以通过支持装置400的处理器402执行开发程序4104来实现,也可以通过用户明确地沿着来产生内部命令。
即,在根据来自支持装置400的内部命令而生成命令158的情况下,与控制装置100连接且根据用户操作或程序执行而提供信息的支持装置400(开发辅助装置)成为源。
(4)选择IEC程序执行引擎150作为源的情况
在选择IEC程序执行引擎150作为源的情况下,通过IEC程序执行引擎150执行IEC程序1104而决定的输出值作为内部命令被输入到命令生成模块156。例如,在某个条件成立的情况下,可以向命令生成模块156输入用于使机器人200停止的输出值,向机器人控制器250输出与该输出值对应的命令158。
如上所述,通过源选择功能157,使多个源中的用于生成命令158的源有效化。另外,作为生成命令158的源,并不限定于上述3个,例如也可将直接输出被直接输出的内部命令的IEC程序1104(或者IEC程序执行引擎150)作为源。进而,在存在多个操作示教器300或多个支持装置400的情况下,能够分别设为独立的源。作为外部装置,并不限于支持装置400,也可以采用HMI(human machine interface:人机界面)那样的任意的信息处理装置。
命令158也可以对所连接的1个或多个机器人控制器250分别生成。
所生成的命令158经由现场网络20(参照图2)而发送至对应的机器人控制器250。在控制装置100与多个机器人控制器250网络连接的情况下,向多个机器人控制器250分别发送命令158。
机器人控制器250的目标轨道生成模块288按照来自控制装置100的命令158,生成目标轨道。所生成的目标轨道也可以直接向通用机器人200B输出。即,机器人控制器250也可以将目标轨道向外部输出。
另一方面,机器人控制器250的指令值生成模块290根据所生成的目标轨道,生成针对构成控制对象机器人200的各个电机230的指令值。
另外,作为规定命令158的命令体系,可以采用任意的体系。从减少与命令158的生成相关的处理的观点出发,优选采用能够根据在机器人程序1108中描述的命令容易地生成的命令组。
<G.源选择功能的安装例和应用例>
接着,说明源选择功能157的安装例和应用例。
图12是表示本实施方式的机器人控制系统1中的源选择功能157的安装例的示意图。参照图12,包含在命令生成模块156中的源选择功能157包含内部选择器1572和选择标志1574。
内部选择器1572从所输入的多个源中选择与选择标志1574的值对应的1个源并输出。
选择标志1574的值可根据来自IEC程序执行引擎150和/或支持装置400的指令而更新。由内部选择器1572选择的源与作为生成命令158的实际状态的命令生成引擎1562连接。命令生成引擎1562根据来自所选择的源的内部命令等生成命令158。
这样,能够根据来自IEC程序执行引擎150和/或支持装置400的指令,从多个源中选择或决定要有效化的源。特别是,在利用来自支持装置400的指令的情况下,命令生成模块156的源选择功能157按照从外部提供给控制装置100的指令,使特定的源有效化。
或者,命令生成模块156的源选择功能157可以按照预先确定的设定来确定要被有效化的源。在该情况下,例如也可以预先确定操作示教器300>支持装置400>IEC程序执行引擎150>机器人程序1108这样的优先顺序,在从多个源输入了内部命令等的情况下,使最高的优先顺序的源有效化。
例如,在操作示教器300的操作被设为最优先的情况下,即使在通过机器人程序1108的执行而生成了命令158的状态下,通过用户对操作示教器300进行操作,也能够使操作示教器300的操作优先。这样的与优先顺序对应的处理适合于需要用户频繁介入的机器人200等。
如上所述,可以根据命令生成模块156的源选择功能157使哪个源有效,使用于驱动机器人200的各轴的指令值的生成特性不同。
例如,在从多个源分别提供了内部命令等信息的情况下,也可以按照预先确定的优先顺序来决定要有效化的源。例如,在设定了上述那样的优先顺序的状态下,在来自操作示教器300的操作指令与来自机器人程序执行引擎152的内部命令冲突的情况下,使来自操作示教器300的操作指令优先。
这样,预先确定的设定也可以包含关于源的优先顺序。而且,源选择功能157也可以在从多个源分别提供信息的情况下,使具有更高的优先顺序的源有效化。根据该结构,能够根据优先顺序自动地决定作为命令的生成源的源。
图13是表示使本实施方式的机器人控制系统1中的指令值的生成特性不同的例子的图。参照图13,也可以使每个源的允许的上限速度不同。也可以根据被有效化的源,应用对应的上限速度。
图14是表示在本实施方式的机器人控制系统1的控制装置100中使指令值的生成特性不同的结构例的示意图。参照图14,在控制装置100的储存器110中,作为设定信息1109,包含与图13所示那样的指令值的生成特性对应的每个源的参数集。
命令生成模块156所包含的命令生成引擎1562参照选择标志1574的值,选择与选择标志1574对应的参数集。命令生成引擎1562参照所选择的参数,根据来自被有效化的源的内部命令,生成命令158。
所生成的命令158与所选择的参数对应。例如,所生成的命令158包含对应的参数所规定的上限速度等指示。
这样,在根据来自IEC程序执行引擎150和/或支持装置400的指令选择要有效化的源时,生成与该选择的源对应的命令158。通过生成使特性根据所选择的源而不同的命令158,能够使从机器人控制器250输出的指令值的生成特性根据源而不同。
图15是表示在本实施方式的机器人控制系统1的控制装置100中使指令值的生成特性不同的另一结构例的示意图。参照图15,控制装置100的管理模块286具有选择标志2864。
命令生成模块156(控制装置100)所具有的选择标志1574的值被通知给机器人控制器250,在该通知的值中反映到选择标志2864中。选择标志1574的值从控制装置100经由现场网络20通知给机器人控制器250。这样,控制装置100的选择标志1574的值反映到机器人控制器250的选择标志2864。即,控制装置100的通信部50向机器人控制器250通知源选择功能157使哪个源有效化。
另外,机器人控制器250的管理模块286包含与图13所示的指令值的生成特性对应的每个源的参数集作为设定信息2704。管理模块286在每个源的参数集中,选择与选择标志2864的值对应的参数集。目标轨道生成模块288和/或指令值生成模块290(参照图8)参照所选择的参数集来执行处理。
这样,若通过来自IEC程序执行引擎150和/或支持装置400的指令来更新控制装置100的选择标志1574的值,则该更新后的值反映于选择标志2864。而且,通过选择并参照与选择标志2864对应的参数集,能够使从机器人控制器250输出的指令值的生成特性根据源而不同。
<H.处理步骤>
接着,对本实施方式的机器人控制系统1中的处理步骤进行说明。
(h1:控制装置100)
在控制装置100中,并行执行IEC程序执行引擎150的处理与机器人程序执行引擎152(机器人程序解释模块154及命令生成模块156)的处理。
图16是表示构成本实施方式的机器人控制系统1的控制装置100的IEC程序执行引擎150的处理步骤的流程图。图16所示的各步骤典型地也可以通过控制装置100的处理器102执行系统程序1102来实现。
作为IEC程序执行引擎150的处理,控制装置100判断下一控制周期是否已到来(步骤S100)。如果下一控制周期未到来(在步骤S100中为“否”),则控制装置100等待处理直到下一控制周期到来为止。
若下一控制周期到来(在步骤S100中为“是”),则控制装置100输出通过前一控制周期中的IEC程序1104的执行而决定的输出值(步骤S102)。对输出值进行输出的处理包含更新机器人程序执行引擎152的选择标志1574(参照图12)的值的处理。
接着,控制装置100取得最新的输入值(步骤S104),并利用所取得的最新的输入值来执行IEC程序1104,由此决定输出值(步骤S106)。然后,反复步骤S100以下的处理。
图17是表示构成本实施方式的机器人控制系统1的控制装置100的机器人程序执行引擎152的处理步骤的流程图。图17所示的各步骤典型地也可以通过控制装置100的处理器102执行系统程序1102来实现。
作为与机器人程序执行引擎152相关的处理,控制装置100取得选择标志1574的值(步骤S150)。选择标志1574的值有时通过IEC程序执行引擎150来更新,也有时通过来自支持装置400等外部装置的指令来更新。
控制装置100判断选择标志1574的值对应于哪个源(步骤S152)。即,控制装置100使提供用于生成命令158的信息的多个源中的任意的源有效化。
在选择标志1574表示与机器人程序1108对应的值的情况下(在步骤S152中为“机器人程序”),控制装置100依次读入对象的机器人程序1108(步骤S154),对读入的机器人程序1108进行解析而生成内部命令(步骤S156)。然后,控制装置100按照所生成的内部命令来生成命令158(步骤S158)。
在选择标志1574表示与操作示教器300对应的值的情况下(在步骤S152中为“操作示教器”),控制装置100取得来自操作示教器300的操作指令(内部命令)(步骤S160),并按照所取得的操作指令来生成命令158(步骤S162)。
在选择标志1574表示与支持装置400对应的值的情况下(在步骤S152中为“支持装置”),控制装置100取得来自支持装置400的内部命令(步骤S164),并按照与所取得的操作指令对应的内部命令来生成命令158(步骤S166)。
控制装置100判断命令158的输出开始条件是否成立(步骤S168)。命令158的输出开始条件也可将来自IEC程序执行引擎150的输出值、来自机器人控制器250的输入值、来自支持装置400的指令、其他任意信息适当组合来规定。
若命令158的输出开始条件成立(在步骤S168中为“是”的情况),则控制装置100判断下一控制周期是否已到来(步骤S170)。如果下一控制周期未到来(在步骤S170中为“否”),则控制装置100等待处理直到下一控制周期到来为止。
如果下一控制周期到来(在步骤S170中为“是”),则控制装置100输出预先生成的命令158(步骤S172)。
若命令158的输出开始条件不成立(在步骤S168中为“否”的情况),则控制装置100跳过步骤S170及S172的处理。
然后,反复步骤S150以下的处理。
图18是表示构成本实施方式的机器人控制系统1的机器人控制器250中的处理步骤的流程图。图18所示的各步骤也可以通过机器人控制器250的处理器262(控制处理电路260)执行机器人系统程序2702来实现。
如图18所示,在机器人控制器250中,并列执行目标轨道生成模块288的处理和指令值生成模块290的处理。
作为与目标轨道生成模块288相关的处理,机器人控制器250判断是否从控制装置100接收到命令158(步骤S200)。即,机器人控制器250执行接收从控制装置100发送的命令158的处理。
如果未从控制装置100接收到命令158(在步骤S200中为“否”的情况),则机器人控制器250反复步骤S200的处理。
如果从控制装置100接收到命令158(在步骤S200中为“是”的情况),则机器人控制器250判断是否接收到所有命令158(步骤S202)。如果仅接收到命令158的一部分(在步骤S202中为“否”的情况),则机器人控制器250反复步骤S200以下的处理。
如果接收到所有命令158(在步骤S202中为“是”的情况),则机器人控制器250按照接收到的命令158生成目标轨道(步骤S204)。然后,反复步骤S200以下的处理。
另一方面,作为与指令值生成模块290相关的处理,机器人控制器250判断下一控制周期是否已到来(步骤S250)。如果下一控制周期未到来(在步骤S250中为“否”),则机器人控制器250等待处理直到下一控制周期到来为止。
如果下一控制周期到来(在步骤S250中为“是”),则机器人控制器250判断针对机器人200的指令值的输出条件是否成立(步骤S252)。针对机器人200的指令值的输出条件也可以适当组合从控制装置100发送的最新的输出值、管理模块286保持的状态值、由机器人控制器250取得的状态值、其他任意的信息来规定。
如果针对机器人200的指令值的输出条件不成立(在步骤S252中为“否”的情况),则机器人控制器250跳过步骤S254以及S256的处理。
如果针对机器人200的指令值的输出条件成立(在步骤S252中为“是”的情况),则机器人控制器250以实现由来自控制装置100的命令158指示的行为的方式,依次生成用于驱动机器人200的各轴的指令值(步骤S254~S256)。更具体而言,机器人控制器250按照预先生成的目标轨道,生成针对构成控制对象机器人200的各个电机230的指令值(步骤S254)。然后,机器人控制器250输出所生成的各个指令值(步骤S256)。
然后,反复步骤S250以下的处理。
<I.附记>
如上所述的本实施方式包含以下这样的技术思想。
[结构1]
一种机器人控制系统(1),其中,该机器人控制系统(1)具有:
第1控制装置(100);以及
第2控制装置(250),其与所述第1控制装置进行了网络连接,用于控制机器人(200),
所述第1控制装置具有:
选择部(157),其使提供如下信息的多个源中的任意的源有效化,所述信息用于生成对机器人的行为进行指示的命令(158);以及
第1通信部(50),其将按照来自所述多个源中被有效化的源的信息而生成的命令发送到所述第2控制装置,
所述第2控制装置具有:
第2通信部(60),其接收从所述第1控制装置发送的所述命令;以及
指令值生成部(290),其以实现由来自所述第1控制装置的所述命令指示的行为的方式,依次生成用于驱动所述机器人的各轴的指令值。
[结构2]
在结构1所记载的机器人控制系统中,
所述多个源包含以下源中的多个源:
程序解释部(154),其逐次执行机器人程序(1108);
操作部(300),其与所述第1控制装置进行了网络连接,根据用户操作来生成操作指令;
开发辅助装置(400),其与所述第1控制装置连接,根据用户操作或程序执行来提供信息;以及
程序执行部(150),其执行IEC程序(1104)。
[结构3]
在结构1或2所记载的机器人控制系统中,
所述选择部按照从外部对所述第1控制装置提供的指令,使特定的源有效化。
[结构4]
在结构1~3中的任意一项所记载的机器人控制系统中,
所述选择部按照预先确定的设定,决定有效化的源。
[结构5]
在结构4所记载的机器人控制系统中,
所述预先确定的设定包含关于源的优先顺序,
所述选择部在从多个源分别被提供信息的情况下,使具有更高的优先顺序的源有效化。
[结构6]
在结构1~5中的任意一项所记载的机器人控制系统中,
所述第1通信部向所述第2控制装置通知所述选择部使哪个源有效化。
[结构7]
在结构6所记载的机器人控制系统中,
所述指令值生成部根据所述选择部使哪个源有效化,使用于驱动所述机器人的各轴的指令值的生成特性不同。
[结构8]
一种控制方法,其是机器人控制系统(1)中的控制方法,所述机器人控制系统(1)具有:第1控制装置(100);以及第2控制装置(250),其与所述第1控制装置进行了网络连接,用于控制机器人(200),其中,该控制方法具有以下步骤:
步骤(S152),所述第1控制装置使提供如下信息的多个源中的任意的源有效化,所述信息用于生成对机器人的行为进行指示的命令;
步骤(S172),所述第1控制装置将按照来自所述多个源中被有效化的源的信息而生成的命令发送到所述第2控制装置;
步骤(S200),所述第2控制装置接收从所述第1控制装置发送的所述命令;以及
步骤(S254~S256),所述第2控制装置以实现由来自所述第1控制装置的所述命令指示的行为的方式,依次生成用于驱动所述机器人的各轴的指令值。
<J.优点>
在本实施方式的机器人控制系统1中,能够选择性地使多个源有效化,因此不仅能够按照本来的机器人程序1108进行控制,还能够按照来自其他源的信息来控制机器人200。其结果,能够灵活地运用机器人控制系统1。
另外,在本实施方式的机器人控制系统1中,控制装置100与机器人控制器250协作来控制机器人200的行为。通过采用这样的结构,能够使处理负荷分散。其结果,即使控制装置100的处理能力不高,也能够控制多个机器人200的行为。
应该认为本次公开的实施方式在所有方面都是例示而不是限制性的。本发明的范围由权利要求书、而不由上述的说明来表示,意在包含与权利要求书等同的意思以及范围内的所有变更。
标号说明
1:机器人控制系统;12:上位网络;20:现场网络;50、60:通信部;100:控制装置;102、262、362、402:处理器;104、266、366、404:主存储器;106:上位网络控制器;108、252、352:现场网络控制器;110、270、410:储存器;112:存储卡接口;114:存储卡;116:本地总线控制器;118、418:处理器总线;120、420:USB控制器;122:本地总线;130:功能单元;150:IEC程序执行引擎;152:机器人程序执行引擎;154:机器人程序解释模块;156:命令生成模块;157:源选择功能;158:命令;160、280:通信控制模块;162、282:通信驱动器;164:外部通信接口;200:机器人;200A:定制机器人;200B:通用机器人;210:臂部;220:驱动电路;230:电机;250:机器人控制器;260、360:控制处理电路;268、368:接口电路;284:机器人驱动引擎;286:管理模块;288:目标轨道生成模块;290:指令值生成模块;292:信号输出驱动器;300:操作示教器;370:固件;380:操作键组;400:支持装置;406:输入部;408:显示部;412:光学驱动器;414:存储介质;422:通信控制器;500:显示装置;600:服务器装置;1102:系统程序;1104:IEC程序;1108:机器人程序;1109、2704:设定信息;1502:输出更新处理;1504:输入更新处理;1562:命令生成引擎;1572:内部选择器;1574、2864:选择标志;2702:机器人系统程序;4104:开发程序;T1:控制周期。

Claims (8)

1.一种机器人控制系统,其中,该机器人控制系统具有:
第1控制装置;以及
第2控制装置,其与所述第1控制装置进行了网络连接,用于控制机器人,
所述第1控制装置具有:
选择部,其使提供如下信息的多个源中的任意的源有效化,所述信息用于生成对机器人的行为进行指示的命令;以及
第1通信部,其将按照来自所述多个源中被有效化的源的信息而生成的命令发送到所述第2控制装置,
所述第2控制装置具有:
第2通信部,其接收从所述第1控制装置发送的所述命令;以及
指令值生成部,其以实现由来自所述第1控制装置的所述命令指示的行为的方式,依次生成用于驱动所述机器人的各轴的指令值。
2.根据权利要求1所述的机器人控制系统,其中,
所述多个源包含以下源中的多个源:
程序解释部,其逐次执行机器人程序;
操作部,其与所述第1控制装置进行了网络连接,根据用户操作来生成操作指令;
开发辅助装置,其与所述第1控制装置连接,根据用户操作或程序执行来提供信息;以及
程序执行部,其执行IEC程序。
3.根据权利要求1或2所述的机器人控制系统,其中,
所述选择部按照从外部对所述第1控制装置提供的指令,使特定的源有效化。
4.根据权利要求1~3中的任意一项所述的机器人控制系统,其中,
所述选择部按照预先确定的设定,决定有效化的源。
5.根据权利要求4所述的机器人控制系统,其中,
所述预先确定的设定包含关于源的优先顺序,
所述选择部在从多个源分别被提供信息的情况下,使具有更高的优先顺序的源有效化。
6.根据权利要求1~5中的任意一项所述的机器人控制系统,其中,
所述第1通信部向所述第2控制装置通知所述选择部使哪个源有效化。
7.根据权利要求6所述的机器人控制系统,其中,
所述指令值生成部根据所述选择部使哪个源有效化,使用于驱动所述机器人的各轴的指令值的生成特性不同。
8.一种控制方法,其是机器人控制系统中的控制方法,所述机器人控制系统具有:第1控制装置;以及第2控制装置,其与所述第1控制装置进行了网络连接,用于控制机器人,其中,该控制方法具有以下步骤:
所述第1控制装置使提供如下信息的多个源中的任意的源有效化,所述信息用于生成对机器人的行为进行指示的命令;
所述第1控制装置将按照来自所述多个源中被有效化的源的信息而生成的命令发送到所述第2控制装置;
所述第2控制装置接收从所述第1控制装置发送的所述命令;以及
所述第2控制装置以实现由来自所述第1控制装置的所述命令指示的行为的方式,依次生成用于驱动所述机器人的各轴的指令值。
CN202080097369.2A 2020-03-13 2020-12-17 机器人控制系统以及控制方法 Pending CN115151874A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2020-044125 2020-03-13
JP2020044125A JP7452124B2 (ja) 2020-03-13 2020-03-13 ロボット制御システムおよび制御方法
PCT/JP2020/047242 WO2021181801A1 (ja) 2020-03-13 2020-12-17 ロボット制御システムおよび制御方法

Publications (1)

Publication Number Publication Date
CN115151874A true CN115151874A (zh) 2022-10-04

Family

ID=77671533

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080097369.2A Pending CN115151874A (zh) 2020-03-13 2020-12-17 机器人控制系统以及控制方法

Country Status (5)

Country Link
US (1) US20230101517A1 (zh)
EP (1) EP4119306A4 (zh)
JP (1) JP7452124B2 (zh)
CN (1) CN115151874A (zh)
WO (1) WO2021181801A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023087457A (ja) * 2021-12-13 2023-06-23 川崎重工業株式会社 ロボットプログラミング支援装置、ロボットプログラミング支援プログラム、及び、ロボットプログラミング支援方法
WO2023152835A1 (ja) * 2022-02-09 2023-08-17 ファナック株式会社 プログラマブルロジックコントローラと通信を行うロボットの制御装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05334096A (ja) * 1992-06-01 1993-12-17 Fuji Electric Co Ltd 言語翻訳プログラム及びその出力結果を用いるデバッグ装置
JP3269003B2 (ja) * 1997-05-12 2002-03-25 川崎重工業株式会社 ロボット制御装置
JP2005202663A (ja) 2004-01-15 2005-07-28 Denso Wave Inc 制御用プログラム,コンパイラおよび変換プログラム
WO2009123650A1 (en) * 2008-04-02 2009-10-08 Irobot Corporation Robotics systems
JP5334096B2 (ja) 2008-07-17 2013-11-06 株式会社大貴 衛生用紙及びその製造方法
WO2013052894A1 (en) 2011-10-05 2013-04-11 Opteon Corporation Methods, apparatus, and systems for monitoring and/or controlling dynamic environments
JP6894292B2 (ja) 2017-05-23 2021-06-30 Juki株式会社 制御システム及び実装装置
KR101923557B1 (ko) * 2017-07-10 2018-11-29 주식회사 바른앱 블럭완구를 이용한 로봇 제어 시스템

Also Published As

Publication number Publication date
EP4119306A1 (en) 2023-01-18
EP4119306A4 (en) 2024-05-01
US20230101517A1 (en) 2023-03-30
JP2021144588A (ja) 2021-09-24
JP7452124B2 (ja) 2024-03-19
WO2021181801A1 (ja) 2021-09-16

Similar Documents

Publication Publication Date Title
US10761515B2 (en) Control system for controlling control object and control device for linking control applications in control system
EP3441831B1 (en) Information processing device, information processing method, and information processing program
CN115151874A (zh) 机器人控制系统以及控制方法
US10606246B2 (en) Control device and control method with various command values in a shared memory providing access to various program execution and command value operation parts in each control cycle
EP3441830B1 (en) Information processing device, information processing method, and information processing program
CN109542046B (zh) 控制装置、控制方法及控制系统
WO2021106467A1 (ja) 制御システム、制御装置および制御方法
US11855907B2 (en) Robot control system and control method
US10754320B2 (en) Method and apparatus for integrating an external motion planner with an industrial controller
CN111176225A (zh) 利用工业控制器进行代理执行和计算的方法和装置
WO2021181800A1 (ja) ロボット制御システムおよび制御方法
WO2012124145A1 (ja) 演算ユニット、支援装置、支援プログラム、支援プログラムを格納した記憶媒体、および、支援装置における動作方法
WO2021181798A1 (ja) ロボット制御システムおよび制御方法
JP7375632B2 (ja) 制御システムおよびサポート装置
WO2022162959A1 (ja) 制御システム、ロボットコントローラおよび制御方法
EP3467603A1 (en) Information processing device, information processing method, and information processing program
WO2021145124A1 (ja) 制御装置
JP7167516B2 (ja) 制御装置、制御方法、および制御プログラム
JP2022139199A (ja) 複数の移動機構を制御するシステムおよび方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination