CN115516870A - 机器控制系统、程序、机器、系统以及设备 - Google Patents
机器控制系统、程序、机器、系统以及设备 Download PDFInfo
- Publication number
- CN115516870A CN115516870A CN202080100688.4A CN202080100688A CN115516870A CN 115516870 A CN115516870 A CN 115516870A CN 202080100688 A CN202080100688 A CN 202080100688A CN 115516870 A CN115516870 A CN 115516870A
- Authority
- CN
- China
- Prior art keywords
- cycle
- information
- machine
- controller
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G08—SIGNALLING
- G08C—TRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
- G08C17/00—Arrangements for transmitting signals characterised by the use of a wireless electrical link
- G08C17/02—Arrangements for transmitting signals characterised by the use of a wireless electrical link using a radio link
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/006—Controls for manipulators by means of a wireless system for controlling one or several manipulators
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1661—Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1671—Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1679—Programme controls characterised by the tasks executed
- B25J9/1682—Dual arm manipulator; Coordination of several manipulators
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total 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/41815—Total 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 the cooperation between machine tools, manipulators and conveyor or other workpiece supply system, workcell
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total 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/4185—Total 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 the network communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q9/00—Arrangements in telecontrol or telemetry systems for selectively calling a substation from a main station, in which substation desired apparatus is selected for applying a control signal thereto or for obtaining measured values therefrom
- H04Q9/04—Arrangements for synchronous operation
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/31—From computer integrated manufacturing till monitoring
- G05B2219/31261—Coordination control
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/33—Director till display
- G05B2219/33097—Variable ticks, align clocks, to synchronise cycles with other machine, robot
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/34—Director, elements to supervisory
- G05B2219/34397—Synchronize manipulators and machine by using a reference clock for all
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Manufacturing & Machinery (AREA)
- Quality & Reliability (AREA)
- Automation & Control Theory (AREA)
- Manipulator (AREA)
Abstract
机器控制系统(1)具备:1个以上的机器(4),构成在现实空间上,分别根据机器指令来实现运动;以及1个以上的控制器(100),安装在与1个以上的机器(4)通信的1个以上的服务器具有的虚拟空间上,分别生成针对1个以上的机器(4)的机器指令,1个以上的控制器(100)分别具有:运动模块(113),在控制周期中执行运动程序,生成针对对应的机器(4)的机器指令;附加部(125),对机器指令附加第一周期信息;以及同步通信部(114),将机器指令发送到对应的机器(4),1个以上的机器(4)分别具有:终端通信部(314),从1个以上的服务器接收机器指令;以及机器侧定时调整部(315),在与附加到机器指令的第一周期信息对应的机器侧控制周期中调用该机器指令。
Description
技术领域
本公开涉及机器控制系统、程序、机器、系统以及设备。
背景技术
在专利文献1中公开了一种系统,其具备机器人、加工装置、控制机器人的机器人控制器、控制加工装置的加工装置控制器、以及生成针对机器人控制器以及加工装置控制器的指令的可编程逻辑控制器。
现有技术文献
专利文献
专利文献1:日本特开2019-209454号公报。
发明内容
发明所要解决的问题
本公开提供了一种对提高设备之间的同步通信的可靠性有效的系统。
用于解决问题的手段
本公开的一个方面涉及的机器控制系统具备:1个以上的机器,构成在现实空间上,分别根据机器指令来实现运动;以及1个以上的控制器,安装在与1个以上的机器通信的1个以上的服务器具有的虚拟空间上,分别控制1个以上的机器,1个以上的控制器分别具有:运动模块,在控制周期中执行运动程序,生成针对对应的机器的机器指令;附加部,对机器指令附加第一周期信息;以及同步通信部,将机器指令发送到对应的机器,1个以上的机器分别具有:终端通信部,从1个以上的服务器接收机器指令;以及机器侧定时调整部,存储终端通信部接收到的机器指令,并在与附加到该机器指令的第一周期信息对应的机器侧控制周期中调用该机器指令。
本公开的另一方面涉及的程序使控制器安装在与对应的机器通信的服务器的虚拟空间上,所述控制器执行:在控制周期中执行运动程序,生成针对对应的机器的机器指令;将在对应的机器中指定在哪个机器侧控制周期中调用机器指令的第一周期信息附加于机器指令;以及将附加了第一周期信息的机器指令发送至对应的机器。
本公开的其他方面涉及的机器包括:主体,实现运动;终端通信部,与构成安装有控制器的虚拟空间的服务器进行通信,控制器从服务器接收附加了周期信息的机器指令;机器侧定时调整部,存储终端通信部接收到的机器指令,并在与附加于该机器指令的周期信息对应的控制周期中调用该机器指令;以及机器控制部,基于机器侧定时调整部调用的机器指令,使主体实现运动。
本公开的其他方面涉及的系统包括:第一设备,反复进行第一处理;以及第二设备,与第一设备进行通信并反复进行第二处理,第一设备具有:第一处理模块,通过第一处理生成第一信息;第一附加部,对第一信息附加第一周期信息;以及第一通信部,向第二设备发送第一信息,第二设备具有:第二通信部,从第一设备接收第一信息;定时调整部,存储第二通信部接收到的第一信息,并在与附加于该第一信息中的第一周期信息对应的周期的第二处理中调用该第一信息;以及第二处理模块,基于由定时调整部调用的第一信息来执行第二处理。
本公开的其他方面涉及的设备包括:第一处理模块,反复通过第一处理生成第一信息;第一附加部,将在反复进行第二处理的第二设备中指定在哪个周期的第二处理中调用第一信息的第一周期信息附加于该第一信息;以及通信部,将由第一附加部附加了第一周期信息的第一信息发送到第二设备。
本公开的其他方面涉及的设备包括:通信部,从第一设备接收第一信息,该第一信息是反复进行第一处理的第一设备通过第一处理生成并附加了周期信息的信息;定时调整部,存储通信部接收到的第一信息,并在与附加于该第一信息中的周期信息对应的周期的第二处理中调用该第一信息;以及处理模块,基于由定时调整部调用的第一信息来执行第二处理。
发明效果
根据本公开,能够提供对提高设备之间的同步通信的可靠性有效的系统。
附图说明
图1是例示机器控制系统的概略构成的示意图。
图2是例示机器人的结构的示意图。
图3是例示控制器服务器的功能上的结构的框图。
图4是例示控制器的功能上的结构的框图。
图5是例示本地控制器的功能上的结构的框图。
图6是表示控制器的变形例的框图。
图7是例示通信控制器的功能上的结构的框图。
图8是例示控制器服务器、通信控制器以及本地控制器的硬件结构的框图。
图9是例示周期生成步骤的时序图。
图10是例示控制器中的周期生成步骤的流程图。
图11是例示本地控制器中的周期生成步骤的流程图。
图12是表示本地控制器中的周期生成步骤的变形例的流程图。
图13是例示机器控制步骤的时序图。
图14是例示控制器中的控制步骤的流程图。
图15是例示控制器中的控制步骤的流程图。
图16是例示控制器中的控制步骤的流程图。
图17是例示本地控制器中的控制步骤的流程图。
图18是例示本地控制器中的控制步骤的流程图。
图19是例示本地控制器中的控制步骤的流程图。
图20是表示机器控制系统的变形例的示意图。
图21是表示机器控制系统的另一变形例的示意图。
具体实施方式
以下,参照附图对实施方式进行详细说明。在说明中,对相同要素或具有相同功能的要素标注相同的标记,并省略重复的说明。
本实施方式涉及的系统包括在相互通信的同时分别进行重复处理的多个设备。设备之间的通信有时要求对各设备的处理周期的同步性。以下,将与各设备的处理周期同步的通信称为“同步通信”。
为了提高同步通信的可靠性,本实施方式涉及的系统包括:第一设备,重复进行第一处理;以及第二设备,与第一设备通信并重复进行第二处理,第一设备具有:第一处理模块,通过第一处理生成第一信息;第一附加部,对第一信息附加第一周期信息;以及第一通信部,将第一信息发送到第二设备,第二设备具有:第二通信部,从第一设备接收第一信息;定时调整部,存储第二通信部接收到的第一信息,在与附加于该第一信息的第一周期信息对应的周期的第二处理中调用该第一信息;以及第二处理模块,基于由定时调整部调用的第一信息执行第二处理。
如果第二设备中的第一接收定时的波动变大,则有可能难以维持同步通信。与此相对,根据上述系统,从第一设备发送的第一信息在第二设备中被缓存,在与第一周期信息对应的周期的第二处理中被调用。这样,通过将第一信息缓存到其使用定时为止的功能,使来自第一设备侧的第一信息的发送提前,能够使从第二设备中的第一信息的接收定时到该第一信息的使用定时为止的期间具有裕量。通过该裕量,能够吸收因通信状况等而引起的扩大的接收定时的波动,并在适当的使用定时调用缓存后的第一信息。因此,能够提高同步通信的可靠性。
第二处理模块通过第二处理生成第二信息,第二设备还具有对第二信息附加第二周期信息的第二附加部,第二通信部向第一设备发送第二信息,第一通信部从第二设备接收第二信息,第一设备还具有第一定时调整部,该第一定时调整部存储第一通信部接收到的第二信息,在与附加于该第二信息的第二周期信息对应的周期的第一处理中调用该第二信息,第一处理模块可以基于由第一定时调整部调用的第二信息来执行第一处理。在这种情况下,能够提高第一设备和第二设备之间的双向同步通信的可靠性。
第一设备和第二设备可以是安装在现实空间上的设备,也可以是安装在虚拟空间上的设备。现实空间是指现实物体存在的空间。虚拟空间是为了模拟现实空间而由数据表示的空间。将设备安装在虚拟空间上是指对构成虚拟空间的装置附加在虚拟空间中模拟设备的功能的程序。
作为第一设备和第二设备的具体示例,可列举安装在现实空间上的控制器、机器、传感器、马达、以及伺服驱动器等。第一设备和第二设备可以是安装在虚拟空间上的控制器、机器、传感器、马达、以及伺服驱动器等。
第一设备和第二设备之间的通信可以至少部分地包括无线通信。当第一设备和第二设备之间的通信包括无线通信时,吸收上述接收定时的波动的效果更有效。
以下,作为本实施方式的一例,具体例示第一设备是安装在虚拟空间上的控制器、第二设备是安装在现实空间上的机器、控制器与机器之间的通信部分包含无线通信的机器控制系统。
[机器控制系统]
图1所示的机器控制系统1是基于从至少1台控制器服务器2经由无线通信网络发送的运算结果来控制多个机器4的系统。作为机器控制系统1的一例,可举出通过多个机器4的协调运动来生产工件的生产系统。如图1所示,机器控制系统1具备至少1台控制器服务器2、通信服务器3以及多个机器4。
控制器服务器2在控制周期中执行规定的运算。控制器服务器2具有多个控制器100(参照图3)。多个控制器100在控制器服务器2中安装在虚拟空间上,分别控制多个机器4。一个控制器100对应于至少一台机器4。一个控制器100可以对应于多个机器4,多个控制器100可以对应于一台机器4。安装在虚拟空间上是指通过软件将作为控制器100的功能附加于控制器服务器2等运算装置。作为控制器100的功能包含:从机器4获取信息;基于所获取的信息生成机器指令;以及将所生成的机器指令输出至机器4。多个控制器100也可以分配给多个控制器服务器2。由此,能够减轻一台控制器服务器2的运算负担。
通信服务器3经由有线通信网络8与控制器服务器2进行通信,经由无线通信网络7与多个机器4进行通信,在控制器服务器2与多个机器4之间对信息进行中继。作为有线通信网络8的具体例子,可举出以太网(注册商标)等局域网。作为无线通信网络7的具体例子,可举出第五代移动通信系统(5G)等高速无线通信网络。通信服务器3可以设置在远离控制器服务器2的场所,也可以设置在接近控制器服务器2的场所,还可以设置在与控制器服务器2相同的壳体内。
通信服务器3具有通信控制器200和无线通信基站201。通信控制器200经由有线通信网络8与控制器服务器2进行通信,经由无线通信基站201与多个机器4进行通信。无线通信基站201经由无线通信网络7与多个机器4的无线通信终端301(后述)进行通信。
多个机器4在现实空间上构成,分别根据控制器服务器2的运算结果来实现运动。例如,多个机器4分别根据上述机器指令来实现运动。实现运动是指在现实空间中使至少一个物体位移。位移包括移动和姿势变更。另外,位移包括壳体内等无法从外部目视确认的空间内的位移。
多个机器4分别具有机器主体10、本地控制器300以及无线通信终端301。机器主体10是实现运动的设备。只要是基于控制器服务器2的运算结果来实现运动的设备,机器主体10可以是任何设备。在图1中,作为机器主体10的具体例子,示出了移动机器人20、固定机器人30、NC机床60、环境传感器70以及输送机80。移动机器人20是能够自主行驶的机器人,具有无人搬运车21和机器人22。无人搬运车21根据机器指令所包含的移动指令而自主行驶。作为无人搬运车21的具体例子,可举出电动式的所谓AGV(Automated Guided Vehicle,自动引导车辆)。机器人22根据机器指令所包含的作业指令来执行对工件的作业。
例如,机器人22是6轴的垂直多关节机器人,如图2所示,具有基部31、旋转部32、第一臂33、第二臂34、第三臂35、前端部36以及致动器41、42、43、44、45、46。基部31固定在无人搬运车21上。旋转部32以围绕铅垂的轴线51旋转的方式设置在基部31上。第一臂33以绕与轴线51交叉(例如正交)的轴线52摆动的方式与旋转部32连接。交叉也包括如所谓的立体交叉那样处于扭转的关系的情况。第二臂34以绕与轴线52实质上平行的轴线53摆动的方式与第一臂33的前端部连接。第三臂35以绕沿着第二臂34的轴线54旋转,并绕与轴线54交叉(例如正交)的轴线55摆动的方式与第二臂34的前端部连接。前端部36以绕与轴线55交叉(例如正交)的轴线56旋转的方式与第三臂35的前端部连接。在前端部36根据用途设置有吸嘴、机器人手或加工工具等各种工具。
致动器41、42、43、44、45、46例如包括电动马达以及减速器,驱动机器人22。例如,致动器41使旋转部32绕轴线51旋转,致动器42使第一臂33绕轴线52摆动,致动器43使第二臂34绕轴线53摆动,致动器44使第三臂35绕轴线54旋转,致动器45使第三臂35绕轴线55摆动,致动器46使前端部36绕轴线56旋转。
此外,机器人22的具体结构能够适当变更。例如,机器人22可以是在上述6轴的垂直多关节机器人上进一步追加了1轴的关节的7轴的冗余型机器人,也可以是所谓SCARA(选择顺应性装配机器手臂)型的多关节机器人。另外,机器人22也可以是所谓并联连杆型的机器人。
返回到图1,固定机器人30固定于作业区域的地面等。作为固定机器人30的具体例子,与机器人22同样地,可举出垂直多关节机器人、SCARA型多关节机器人、并联连杆型机器人等。NC机床60根据机器指令所包含的加工指令对工件实施切削加工等机械加工。环境传感器70根据机器指令所包含的感测指令来获取系统的环境信息。作为环境传感器70的具体例子,可举出获取系统的环境图像的相机、获取系统的环境温度的温度传感器等。输送机80根据机器指令所包含的搬运指令来搬运工件。作为输送机80的具体例子,可举出带式输送机、辊式输送机等。
本地控制器300经由无线通信终端301与通信服务器3进行通信,根据经由无线通信终端301从通信服务器3获取的机器指令使机器主体10实现运动。另外,本地控制器300将从机器主体10获取到的响应信息经由无线通信终端301反馈给通信服务器3。无线通信终端301按照来自本地控制器300的指令经由无线通信网络7与无线通信基站201进行通信。
由于第五代移动通信系统(5G)的实用化等,能够进行高速无线通信,因此经由无线通信实现机器控制的可能性也提高。在机器控制中,需要在规定的控制周期中重复进行基于运动程序的执行而生成机器指令和与机器指令相应的机器4的控制。如上所述,在经由无线通信网络7收发机器指令的情况下,由于无线通信,机器4侧的机器指令的接收定时的波动扩大,在机器4侧有可能难以在控制周期中接收机器指令。另外,在经由无线通信网络7发送接收响应信息的情况下,由于无线通信,控制器100侧的响应信息的接收定时的波动扩大,在控制器100侧有可能难以在控制周期中接收响应信息。
对此,机器控制系统1也可以构成为将从控制器侧(无线通信网络7的控制器100侧)经由无线通信网络7发送的机器指令在机器侧(无线通信网络7的机器4侧)进行缓存直到其使用定时为止。在该情况下,能够提前发送来自控制器侧的机器指令,使从机器侧的机器指令的接收定时到该机器指令的使用定时为止的期间具有裕量。通过该裕量,能够吸收因无线通信而扩大的接收定时的波动,能够在与控制周期同步的定时使用缓存的机器指令。
另外,机器控制系统1也可以构成为将从机器侧经由无线通信网络7发送的响应信息在控制器侧进行缓存直到其使用定时为止。在该情况下,能够提前发送来自机器侧的响应信息,使从控制器侧的响应信息的接收定时到该响应信息的使用定时为止的期间具有裕量。通过该裕量,能够吸收因无线通信而扩大的接收定时的波动,能够在与控制周期同步的定时使用缓存的响应信息。
如上所述,根据在机器侧对机器指令进行缓存直至其使用定时为止,并在控制器侧对响应信息进行缓存直至其使用定时为止的结构,能够在控制周期中重复进行响应信息的获取、由基于响应信息的运动程序的执行而生成机器指令、以及与机器指令相应的机器4的控制。
以下,更详细地例示控制器100、通信控制器200及本地控制器300的构成。
(控制器)
控制器100构成为执行以下步骤:经由有线通信网络8从通信服务器3接收对应的机器4(以下称为“管辖机器4”)所发送的响应信息;基于接收到的响应信息来执行运动程序,生成针对管辖机器4的机器指令;以及经由有线通信网络8将机器指令发送至通信服务器3。
例如,如图4所示,控制器100作为功能上的结构(以下称为“功能块”)具有程序存储部111、接收信息存储部112、运动模块113、同步通信部114、以及异步通信部115。
程序存储部111存储运动程序。运动程序包含时间序列的多个运动指令。运动指令例如是向目标位置、姿势的位移指令。动作指令可以包含向目标位置、姿势的到达时刻的指定,也可以包含向目标位置、姿势的位移速度的指定。运动指令也可以是目标速度下的位移指令。在该情况下,运动指令也可以包含目标速度下的位移期间的指定。
接收信息存储部112存储来自通信服务器3的通信控制器200的接收信息。接收信息包含上述响应信息。
运动模块113在控制周期中执行运动程序,生成针对管辖机器4的机器指令。例如,运动模块113执行运动程序,并在控制周期中重复执行生成针对管辖机器4的机器指令。执行运动程序包括以使管辖机器4的运动追随运动指令的方式计算机器指令。运动模块113也可以基于接收信息存储部112存储的响应信息来执行运动程序。例如,运动模块113计算基于接收信息存储部112所存储的响应信息的管辖机器4的运动实绩,并计算机器指令使得运动实绩追随运动指令。作为机器指令的具体例子,可举出速度指令或驱动力指令(包含转矩指令)等。
同步通信部114经由有线通信网络8将机器指令发送至通信控制器200。“同步通信”是指与控制周期同步的固定周期通信。同步通信包括按每个控制周期执行的通信、以及按每规定数量的控制周期执行的通信。如后所述,同步通信部114发送的机器指令在管辖机器4的本地控制器300(以下,称为“管辖本地控制器300”)中被缓存,在与控制周期同步的定时被调用。因此,由同步通信部114进行的机器指令的发送本身也可以不与控制周期同步。
异步通信部115将针对其他节点的异步通信数据不经由通信控制器200而经由有线通信网络8发送给其他节点。“异步通信”是指与控制周期的同步不是必须的通信,但也可以与控制周期同步。其他节点可以是其他控制器100,也可以是与多个控制器100不同的节点。作为其他节点的具体例子,可举出应用服务器6(参照图1)。应用服务器6是经由有线通信网络8与控制器服务器2连接的计算机。应用服务器6既可以组装于控制器服务器2,也可以组装于通信服务器3。
应用服务器6具有从多个控制器100收集机器指令、响应信息等控制信息并蓄积的数据收集应用。应用服务器6也可以还具有模拟器应用,该模拟器应用基于数据收集应用所蓄积的控制信息在虚拟空间上模拟多个机器4的运动。应用服务器6也可以还具有学习应用,该学习应用通过基于数据收集应用所蓄积的控制信息的机器学习来生成学习完毕模型。作为学习完毕模型的具体例子,可举出根据控制信息的输入来输出机器4的正常度的诊断模型等。应用服务器6也可以还具有分析应用,该分析应用基于控制信息和学习完毕模型生成上述正常度等输出信息,并将输出信息发送到控制器100。异步通信部115也可以不经由通信控制器200而经由有线通信网络8从应用服务器6获取模拟器应用、学习应用、分析应用等的执行结果。
控制器100也可构成为将响应信息缓存至其使用定时为止。例如,控制器100还具有控制器侧定时调整部116。控制器侧定时调整部116存储从管辖机器4接收到的响应信息,在与附加于该响应信息的第二周期信息对应的控制周期中调用该响应信息。第二周期信息是表示响应信息的使用定时(例如,使用该响应信息时的控制周期数,以下称为“使用时周期数”)的信息。第二周期信息既可以是使用时周期数本身,也可以是获取到响应信息的定时的管辖本地控制器300的控制周期数(以下,称为“获取时周期数”)。
在第二周期信息为上述使用时周期数的情况下,控制器侧定时调整部116在控制周期数成为该使用时周期数的控制周期中调用该响应信息。在控制周期数成为该使用时周期数的控制周期中调用该响应信息是指在该控制周期中能够使用的定时调用该响应信息。因此,为了在该控制周期中使用,在该控制周期之前调用该响应信息也包含在该控制周期中调用该响应信息。在第二周期信息是上述获取时周期数的情况下,控制器侧定时调整部116基于第二周期信息(例如加上规定数)计算使用时周期数,在控制周期数成为该使用时周期数的控制周期中调用该响应信息。
控制器侧定时调整部116将调用的响应信息输出到同步通信部114,同步通信部114将该响应信息保存到接收信息存储部112。由此,控制器100的运动模块113基于控制器侧定时调整部116调用的响应信息来执行运动程序。
控制器100也可以构成为还执行生成上述控制周期和将该控制周期的周期定时发送给管辖机器4。如后所述,周期定时用于在管辖机器4中生成与控制周期同步的控制周期。例如,控制器100可以还具有控制器侧时刻生成部121、控制器侧周期生成部122、定时发送部123以及周期计数器124。
控制器侧时刻生成部121与时刻服务器5生成的时刻(以下,称为“全局时刻”)同步地生成控制器侧时刻。时刻服务器5是经由有线通信网络8与控制器服务器2连接的计算机,输出全局时刻。时刻服务器5可以组装于控制器服务器2,也可以组装于通信服务器3。例如,控制器侧时刻生成部121获取同步通信部114通过经由有线通信网络8的TSN(TimeSensitive Networking,时效性网络)通信等保证时刻同步性的通信从时刻服务器5接收到的全局时刻,与所获取的全局时刻同步地生成控制器侧时刻。例如,控制器侧时刻生成部121使计时器195(后述)计数的时刻与全局时刻一致。
控制器侧周期生成部122基于控制器侧时刻来生成控制周期。例如,控制器侧周期生成部122基于控制器时刻来设置控制周期的开始定时,从控制器侧时刻达到该开始定时的时间点起,在控制周期中重复生成周期脉冲。
定时发送部123将控制周期的周期定时经由通信控制器200发送给管辖本地控制器300。周期定时是表示控制侧时刻的控制周期的相位的信息。例如,周期定时是控制器侧周期生成部122的周期脉冲的生成定时。定时发送部123可以在控制器侧周期生成部122开始控制周期的生成之前,将上述开始定时作为周期定时发送给管辖本地控制器300,也可以在控制器侧周期生成部122开始控制周期的生成之后,将第二个以后的周期脉冲的生成定时作为周期定时发送给管辖本地控制器300。定时发送部123也可以将周期定时作为主定时向其他控制器100发送。在该情况下,其他控制器100的控制器侧周期生成部122也可以经由有线通信网络8获取主定时,并基于获取到的主定时和控制器侧时刻来生成控制周期。例如,控制器侧周期生成部122也可以基于获取到的主定时来设置上述开始定时。
在管辖本地控制器300的机器侧定时调整部315(后述)生成控制周期失败的情况下,定时发送部123也可以将比之前发送的周期定时靠后的周期定时再次发送给管辖本地控制器300。例如,定时发送部123等待来自管辖本地控制器300的设置完成通知的接收,在未接收到设置完成通知的状态下控制器侧时刻达到周期定时的情况下,判定为机器侧定时调整部315在控制周期的生成上失败。设置完成通知是管辖本地控制器300中的开始定时的设置完成的通知。
周期计数器124对控制器侧周期生成部122生成的控制周期数(例如上述周期脉冲数)进行计数。运动模块113基于由周期计数器124计数的控制周期数来执行运动程序。例如,运动模块113在每次对控制周期数进行递增计数时,将执行对象从当前执行中的运动指令变更为下一个运动指令。
控制器100也可以构成为生成与控制周期同步的通信周期。例如,控制器100也可以还具有通信周期生成部131和周期计数器132。
通信周期生成部131生成与控制周期同步的通信周期。例如,通信周期生成部131基于控制器侧时刻和控制周期的周期定时来生成通信周期。例如,通信周期生成部131基于周期定时来设置与控制周期的开始定时同步的开始定时,从控制器侧时刻达到该开始定时的时间点起,在通信周期中重复生成周期脉冲。此外,与控制周期的开始定时同步的开始定时包括相对于控制周期的开始定时偏移了规定期间(例如控制周期的周期长度的一半)的开始定时。通信周期的周期长度是控制周期的周期长度的整数倍(包括1倍)。通信周期的周期长度也可以是控制周期的周期长度的整数分之一。
周期计数器132对通信周期生成部131生成的通信周期数(例如上述周期脉冲数)进行计数。由于通信周期与控制周期同步地生成,因此能够基于通信周期数来检测控制周期数。因此,控制器侧定时调整部116也可以基于通信周期数来进行在控制周期数成为使用时周期数的控制周期中调用响应信息。
控制器100也可以构成为对机器指令附加表示其使用定时的信息。例如,控制器100也可以还具有附加部125。附加部125对机器指令附加第一周期信息。第一周期信息是指定在管辖机器4中在哪个机器侧控制周期中调用机器指令的信息。接收到附加有第一周期信息的机器指令的管辖本地控制器300基于第一周期信息来检测上述使用定时(例如,使用该机器指令时的控制周期数。以下,称为“使用时周期数”。),并将该机器指令缓存至该使用定时。例如,附加部125基于当前的控制周期数计算使用时周期数,将使用时周期数自身作为第一周期信息附加到机器指令中。作为一例,附加部125对当前的周期数加上规定数来计算使用时周期数。附加部125也可以将当前的控制周期数作为第一周期信息附加到机器指令。在该情况下,管辖机器4基于第一周期信息(例如加上规定数)来计算使用时周期数。
控制器100也可以构成为基于机器指令所包含的第一周期信息来检测该机器指令的发送延迟。另外,控制器100也可以构成为基于响应信息所包含的第二周期信息来检测该响应信息的接收延迟。例如,控制器100也可以还具有周期检查部133。
周期检查部133基于机器指令所包含的第一周期信息来检测该机器指令的发送延迟。机器指令的发送延迟是指本地控制器300来不及调用机器指令的程度的延迟。例如,周期检查部133在同步通信部114发送机器指令时,在当前的控制周期数成为该机器指令的上述使用时周期数以上的情况下,检测机器指令的发送延迟。
周期检查部133也可以基于响应信息所包含的第二周期信息来检测该响应信息的接收延迟。响应信息的接收延迟是指控制器侧定时调整部116来不及调用响应信息的程度的延迟。例如,周期检查部133在从管辖机器4接收到响应信息之后,在当前的控制周期数成为该响应信息的上述使用时周期数以上的情况下,检测响应信息的接收延迟。
如上所述,通信周期与控制周期同步地生成,因此能够基于通信周期数来检测控制周期数。因此,周期检查部133也可以基于第一周期信息和通信周期数来检测机器指令的发送延迟,基于第二周期信息和通信周期数来检测响应信息的接收延迟。
周期检查部133也可以在检测到机器指令的发送延迟的情况下,取消该机器指令的发送。例如,在检测到机器指令的发送延迟的情况下,控制器侧定时调整部116在向通信控制器200发送该机器指令之前,废弃该机器指令。周期检查部133也可以在检测到响应信息的接收延迟的情况下废弃该响应信息。
同步通信部114也可以经由有线通信网络8向多个控制器100中的其他控制器100的控制器侧定时调整部116发送同步通信数据。作为同步通信数据的具体例子,可举出为了使管辖机器4的运动与其他控制器100所对应的机器4(以下,称为“其他机器4”)的运动协调而使用的管辖机器4的状态信息(例如对管辖机器4的机器指令或来自管辖机器4的响应信息)。
在同步通信部114向其他控制器100的控制器侧定时调整部116发送同步通信数据的情况下,附加部125也可以对同步通信数据附加第一周期信息。
接收到附加了第一周期信息的同步通信数据的其他控制器100的控制器侧定时调整部116基于第一周期信息来检测该同步通信数据的使用定时(例如,使用该同步通信数据时的控制周期数。以下,称为“使用时周期数”。),并将该同步通信数据缓存到该使用定时。例如,附加部125基于当前的控制周期数来计算使用时周期数,将使用时周期数自身作为第一周期信息附加到同步通信数据。作为一例,附加部125对当前的周期数加上规定数来计算使用时周期数。附加部125也可以将当前的控制周期数(以下,称为“附加时周期数”。)作为第一周期信息附加到同步通信数据。
其他控制器100的控制器侧定时调整部116存储同步通信数据,在与附加于该同步通信数据的第一周期信息对应的控制周期中调用该同步通信数据。在第一周期信息是上述使用时周期数的情况下,控制器侧定时调整部213在控制周期数成为该使用时周期数的控制周期中调用该同步通信数据。在第一周期信息是上述附加时周期数的情况下,控制器侧定时调整部213基于第一周期信息(例如加上规定数)计算使用时周期数,在控制周期数成为该使用时周期数的控制周期中调用该同步通信数据。
控制器侧定时调整部116将调用的同步通信数据输出到同步通信部114,同步通信部114将该同步通信数据保存到接收信息存储部112。由此,其他控制器100的运动模块113基于控制器侧定时调整部116调用的响应信息来执行运动程序。
这样,同步通信数据在其他控制器100的控制器侧定时调整部116中被缓存,在与控制周期同步的定时被调用。因此,由同步通信部114进行的同步通信数据的发送本身也可以不与控制周期同步。
在同步通信部114发送的数据包含发往其他控制器100的同步通信数据的情况下,周期检查部133也可以基于同步通信数据所包含的第一周期信息来检测该同步通信数据的发送延迟。同步通信数据的发送延迟是指其他控制器100的控制器侧定时调整部116来不及调用同步通信数据的程度的延迟。例如,周期检查部133在同步通信部114发送同步通信数据时,在与当前的通信周期数对应的控制周期数成为该同步通信数据的上述使用时周期数以上的情况下,检测同步通信数据的发送延迟。周期检查部133也可以在检测到同步通信数据的发送延迟的情况下,取消该同步通信数据的发送。
其他控制器100的周期检查部133也可以基于同步通信数据所包含的第一周期信息来检测该同步通信数据的接收延迟。同步通信数据的接收延迟是指控制器侧定时调整部116来不及调用同步通信数据的程度的延迟。例如,周期检查部133在接收到发往控制器侧定时调整部116的同步通信数据时,在当前的控制周期数成为该同步通信数据的上述使用时周期数以上的情况下,检测同步通信数据的接收延迟。周期检查部133也可以在检测到同步通信数据的接收延迟的情况下,废弃该同步通信数据。
控制器100也可以构成为基于同步通信部114发送的数据是发往管辖机器4还是发往其他控制器100来切换该数据的发送目的地。例如,控制器100具有开关134。
如果同步通信部114发送的数据是发往管辖机器4,则开关134经由通信服务器3向管辖本地控制器300发送该数据,如果该数据是发往其他控制器100,则开关134经由有线通信网络8向其他控制器100的控制器侧定时调整部116发送该数据。
(本地控制器)
本地控制器300构成为执行以下动作:经由通信服务器3接收机器指令、以及基于机器指令使机器主体10实现运动。例如,如图5所示,本地控制器300作为功能块具有终端通信部314、机器侧定时调整部315、指令存储部311、机器控制部313以及响应信息存储部312。
终端通信部314经由无线通信网络7从通信服务器3接收机器指令。指令存储部311存储终端通信部314接收到的机器指令。机器控制部313基于指令存储部311所存储的机器指令使机器主体10实现运动,获取基于机器主体10所实现的运动的响应信息并保存于响应信息存储部312。
例如,机器控制部313使机器主体10的动作追随机器指令。例如,机器控制部313在机器侧控制周期中重复执行:以缩小指令存储部311所存储的机器指令与响应信息存储部312所存储的过去的响应信息的偏差的方式驱动机器主体10,获取与此对应的机器主体10的响应信息并保存于响应信息存储部312。例如,机器侧控制周期是周期长度与上述控制周期相等的周期。作为一例,在机器指令为速度指令的情况下,机器控制部313驱动机器主体10,以使响应信息存储部312所存储的响应信息所表示的动作速度追随速度指令。在机器指令为驱动力指令的情况下,机器控制部313驱动机器主体10,以使响应信息存储部312所存储的响应信息所表示的驱动力追随驱动力指令。
机器控制部313也可以以比机器侧控制周期短的周期长度的机器周期来控制机器主体10。在各机器周期中,机器控制部313以缩小机器指令与响应信息存储部312所存储的过去的响应信息的偏差的方式驱动机器主体10,获取与此对应的机器主体10的响应信息并保存于响应信息存储部312。机器周期的周期长度例如是机器侧控制周期的周期长度的整数分之一。
例如,机器控制部313具有中间控制器331和伺服机构332。中间控制器331在机器周期中生成针对机器主体10的各致动器的驱动数据(例如位置指令、速度指令或驱动力指令),以缩小机器指令与响应信息存储部312所存储的过去的响应信息的偏差。伺服机构332基于驱动数据向机器主体10的各致动器输出驱动电力。伺服机构332也可以以比机器周期短的周期长度的伺服周期输出基于驱动数据的驱动电力。此外,机器控制部313只要具有中间控制器331和伺服机构332中的至少一个即可。在机器控制部313不具有伺服机构332的情况下,机器控制部313将上述驱动数据输出至机器主体10,机器主体10基于驱动数据而生成各致动器的驱动电力。另外,在机器控制部313不具有中间控制器331的情况下,控制器100生成上述驱动数据作为机器指令,并发送至管辖机器4。
例如,在机器主体10为所述移动机器人20或固定机器人30的情况下,中间控制器331也可获取包含前端部36的目标位置、目标姿势及目标速度等的机器指令,并通过逆运动学运算而生成包含致动器41、42、43、44、45、46的位置指令及速度指令的驱动数据。中间控制器331获取包含致动器41、42、43、44、45、46的目标位置和目标速度的机器指令,中间控制器生成包含致动器41、42、43、44、45、46的驱动力指令的驱动数据。另外,中间控制器331也可以基于按时间序列排列的多个机器指令来生成驱动数据。
终端通信部314按每个机器侧控制周期将响应信息存储部312存储的响应信息经由无线通信网络7发送到通信服务器3。
本地控制器300也可以构成为将机器指令缓存至其使用定时。例如,本地控制器300还具有机器侧定时调整部315。
机器侧定时调整部315存储终端通信部314接收到的机器指令,在与附加于该机器指令的第一周期信息对应的机器侧控制周期中调用该机器指令。在第一周期信息是上述使用时周期数的情况下,机器侧定时调整部315在控制周期数成为使用时周期数的机器侧控制周期中调用该机器指令。在控制周期数成为该使用时周期数的机器侧控制周期中调用该机器指令是指在该机器侧控制周期中能够使用的定时调用该机器指令。因此,为了在该机器侧控制周期中使用,在该机器侧控制周期之前调用该机器指令也包含到在该机器侧控制周期中调用该机器指令中。在第一周期信息为上述附加时周期数的情况下,机器侧定时调整部315基于第一周期信息(例如加上规定数)来计算使用时周期数,在控制周期数成为该使用时周期数的机器侧控制周期中调用该机器指令。
机器侧定时调整部315将所调用的机器指令保存在指令存储部311中。由此,机器控制部313对机器主体10的控制基于机器侧定时调整部315所调用的机器指令来进行。
本地控制器300也可以构成为生成与对应的控制器100中的控制周期同步的机器侧控制周期。例如,本地控制器300也可以还具有机器侧时刻生成部321、机器侧周期生成部322以及周期计数器323。
机器侧时刻生成部321与上述全局时刻同步地生成机器侧时刻。例如,机器侧时刻生成部321通过经由无线通信网络7的TSN通信等保证时刻同步性的通信来获取终端通信部314从通信服务器3接收到的全局时刻,并与获取到的全局时刻同步地生成机器侧时刻。机器侧时刻生成部321也可经由有线通信网络8而从时刻服务器5或对应的控制器100获取全局时刻。例如,机器侧时刻生成部321使计时器395(后述)计数的时刻与全局时刻一致。
机器侧周期生成部322获取终端通信部314经由无线通信网络7从通信服务器3接收到的周期定时,基于获取的周期定时来生成与对应的控制器100中的控制周期同步的机器侧控制周期。例如,机器侧周期生成部322基于机器侧时刻和周期定时来生成机器侧控制周期。例如,机器侧周期生成部322基于周期定时来设置与对应的控制器100中的控制周期的开始定时同步的开始定时,从机器侧时刻达到该开始定时的时间点起,在机器侧控制周期中重复生成周期脉冲。机器侧周期生成部322也可在开始定时的设置完成的时间点将设置完成通知发送至控制器100。机器侧周期生成部322生成的机器侧控制周期的周期长度与控制器100中的控制周期的周期长度相同。
周期计数器323对机器侧周期生成部322生成的控制周期数(例如上述周期脉冲数)进行计数。
本地控制器300也可以构成为对终端通信部314向通信服务器3发送的响应信息附加表示其使用定时的信息。例如,本地控制器300也可以还具有附加部324。附加部324对响应信息附加上述第二周期信息。如上所述,终端通信部314发送的响应信息在对应的控制器100的控制器侧定时调整部116中被缓存,在与控制周期同步的定时被调用。因此,由终端通信部314进行的响应信息的发送本身也可以不与控制周期同步。
本地控制器300也可以构成为生成与机器侧控制周期同步的机器周期。例如,本地控制器300还具有本地周期生成部325和周期计数器326。
本地周期生成部325基于机器侧时刻和周期定时来生成机器周期。例如,本地周期生成部325基于周期定时来设置与对应的控制器100中的控制周期的开始定时同步的开始定时,从机器侧时刻达到该开始定时的时间点起,在机器周期中重复生成周期脉冲。
周期计数器326对本地周期生成部325生成的机器周期数(例如,上述周期脉冲数)进行计数。
(通信控制器)
控制器侧定时调整部116、通信周期生成部131、周期计数器132、周期检查部133以及开关134只要至少设置于控制器100与通信控制器200之间(包括控制器100内以及通信控制器200内)即可,也可以不必设置于控制器100。以下,例示控制器侧定时调整部、通信周期生成部、周期计数器、周期检查部以及开关设置于通信控制器200的情况下的结构。在该情况下,如图6所示,控制器100也可以不具有控制器侧定时调整部116、通信周期生成部131、周期计数器132、周期检查部133以及开关134。如图7所示,通信控制器200作为功能块具有控制器侧通信部211、机器侧通信部212及控制器侧定时调整部213。
控制器侧通信部211从多个控制器100分别经由有线通信网络8接收机器指令或同步通信数据,并经由有线通信网络8向控制器100分别发送响应信息或同步通信数据。
机器侧通信部212经由无线通信网络7向多个本地控制器300分别发送机器指令,并经由无线通信网络7从多个本地控制器300分别获取响应信息。
控制器侧定时调整部213存储机器侧通信部212获取的响应信息,在与附加于该响应信息的第二周期信息对应的控制周期中调用该响应信息。在第二周期信息为上述使用时周期数的情况下,控制器侧定时调整部213在控制周期数成为该使用时周期数的控制周期中调用该响应信息。在控制周期数成为该使用时周期数的控制周期中调用该响应信息是指在该控制周期中能够使用的定时调用该响应信息。因此,为了在该控制周期中使用,在该控制周期之前调用该响应信息也包含到在该控制周期中调用该响应信息中。在第二周期信息是上述获取时周期数的情况下,控制器侧定时调整部213基于第二周期信息(例如加上规定数)计算使用时周期数,在控制周期数成为该使用时周期数的控制周期中调用该响应信息。
控制器侧通信部211将控制器侧定时调整部213调用的响应信息经由有线通信网络8发送到对应的控制器100。对应的控制器100的同步通信部114将接收到的响应信息保存于接收信息存储部112。由此,对应的控制器100的运动模块113基于控制器侧定时调整部213调用的响应信息来执行运动程序。
通信控制器200也可以构成为生成与多个控制器100中的至少任一个控制器的控制周期同步的通信周期。例如,通信控制器200也可以还具有时刻生成部221、通信周期生成部222以及周期计数器223。
时刻生成部221与上述全局时刻同步地生成通信服务器时刻。例如,时刻生成部221获取控制器侧通信部211通过经由有线通信网络8的TSN通信等保证时刻同步性的通信从时刻服务器5接收到的全局时刻,与所获取的全局时刻同步地生成通信服务器时刻。例如,控制器侧时刻生成部121使计时器296(后述)计数的时刻与全局时刻一致。在时刻服务器5被组装到通信服务器3的情况下,时刻生成部221将全局时刻自身作为通信服务器时刻。
通信周期生成部222生成与多个控制器100中的至少任一个控制器的控制周期同步的通信周期。例如,通信周期生成部222基于通信服务器时刻和多个控制器100中的至少任一个控制器发送到管辖本地控制器300的周期定时来生成通信周期。例如,通信周期生成部222基于周期定时来设置与控制周期的开始定时同步的开始定时,从通信服务器时刻达到该开始定时的时间点起,在通信周期中重复生成周期脉冲。此外,与控制周期的开始定时同步的开始定时包括相对于控制周期的开始定时偏移了规定期间(例如控制周期的周期长度的一半)的开始定时。
通信周期生成部222也可以在开始定时的设置完成的时间点将设置完成通知发送到控制器100。通信周期的周期长度是控制周期的周期长度的整数倍(包括1倍)。通信周期的周期长度也可以是控制周期的周期长度的整数分之一。
周期计数器223对通信周期生成部222生成的通信周期数(例如上述周期脉冲数)进行计数。由于通信周期与控制周期同步地生成,因此能够基于通信周期数来检测控制周期数。因此,控制器侧定时调整部213也可以基于通信周期数来进行在控制周期数成为使用时周期数的控制周期中调用响应信息。
通信控制器200也可构成为生成上述主定时。例如,通信控制器200也可具有定时主机224。定时主机224基于通信服务器时刻生成主定时。定时主机224将所生成的主定时经由有线通信网络8发送至多个控制器100中的至少一个。
在通信控制器200具有定时主机224,多个控制器100的至少一个基于主定时生成控制周期的情况下,通信周期生成部222基于通信服务器时刻和主定时生成通信周期。例如,通信周期生成部222也可以基于主定时来设置上述开始定时。多个控制器100的至少一个中的控制周期的生成和通信控制器200中的通信周期的生成基于相同的主定时来进行,由此通信周期与该控制周期同步。
通信控制器200也可以构成为基于机器指令所包含的第一周期信息来检测该机器指令的发送延迟。另外,通信控制器200也可以构成为基于响应信息所包含的第二周期信息来检测该响应信息的接收延迟。例如,通信控制器200也可以还具有周期检查部225。
周期检查部225基于机器指令所包含的第一周期信息来检测该机器指令的发送延迟。机器指令的发送延迟是指本地控制器300来不及调用机器指令的程度的延迟。例如,周期检查部225在机器侧通信部212向本地控制器300发送机器指令之前,在与当前的通信周期数对应的控制周期数成为该机器指令的上述使用时周期数以上的情况下,检测机器指令的发送延迟。
周期检查部225也可以基于响应信息所包含的第二周期信息来检测该响应信息的接收延迟。响应信息的接收延迟是指控制器侧定时调整部213来不及调用响应信息的程度的延迟。例如,周期检查部225在机器侧通信部212从机器4接收到响应信息之后,在与当前的通信周期数对应的控制周期数成为该响应信息的上述使用时周期数以上的情况下,检测响应信息的接收延迟。
如上所述,由于通信周期与控制周期同步地生成,因此能够基于通信周期数来检测控制周期数。因此,周期检查部225也可以基于第一周期信息和通信周期数来检测机器指令的发送延迟,基于第二周期信息和通信周期数来检测响应信息的接收延迟。
周期检查部225也可以在检测到机器指令的发送延迟的情况下,取消机器侧通信部212对该机器指令的发送。例如,周期检查部225在检测到机器指令的发送延迟的情况下,在机器侧通信部212发送该机器指令之前,废弃该机器指令。周期检查部225也可以在检测到响应信息的接收延迟的情况下,废弃该响应信息。
通信控制器200也可以构成为基于从控制器100接收到的数据是发往管辖机器4还是发往其他控制器100来切换该数据的发送目的地。在该情况下,控制器100也可以构成为对发送给通信控制器200的数据附加其目的地。例如,通信控制器200具有开关226。
如果控制器侧通信部211从一个控制器100接收到的数据是发往管辖机器4,则开关226通过机器侧通信部212经由无线通信网络7向管辖本地控制器300发送该数据,如果该数据是发往其他控制器100,则通过控制器侧通信部211经由有线通信网络8向该其他控制器100发送该数据。
在开关226通过控制器侧通信部211向其他控制器100发送同步通信数据的情况下,控制器侧定时调整部213存储同步通信数据,在与附加于该同步通信数据的第一周期信息对应的控制周期中调用该同步通信数据。在第一周期信息是上述使用时周期数的情况下,控制器侧定时调整部213在控制周期数成为该使用时周期数的控制周期中调用该同步通信数据。在第一周期信息是上述附加时周期数的情况下,控制器侧定时调整部213基于第一周期信息(例如加上规定数)计算使用时周期数,在控制周期数成为该使用时周期数的控制周期中调用该同步通信数据。
控制器侧通信部211将控制器侧定时调整部213调用的同步通信数据经由有线通信网络8发送到作为其目的地的其他控制器100。其他控制器100的同步通信部114将接收到的同步通信数据保存于接收信息存储部112。由此,其他控制器100的运动模块113基于控制器侧定时调整部213调用的同步通信数据来执行运动程序。
在控制器侧通信部211从控制器100接收的数据包含发往其他控制器100的同步通信数据的情况下,周期检查部225也可以基于同步通信数据所包含的第一周期信息来检测该同步通信数据的接收延迟。同步通信数据的接收延迟是指控制器侧定时调整部213来不及调用同步通信数据的程度的延迟。例如,周期检查部225在控制器侧通信部211从控制器100接收到同步通信数据之后,在与当前的通信周期数对应的控制周期数成为该同步通信数据的上述使用时周期数以上的情况下,检测同步通信数据的接收延迟。周期检查部225也可以在检测到同步通信数据的接收延迟的情况下,废弃该同步通信数据。
图8是例示控制器服务器2、通信控制器200以及本地控制器300的硬件结构的框图。如图8所示,控制器服务器2具有电路190。电路190具有处理器191、内存192、存储器193、有线通信端口194和计时器195。电路190所具有的各构成要素的数量不限于一个。
存储器193存储有使控制器服务器2执行如下步骤的程序:经由有线通信网络8从通信服务器3接收管辖机器4发送的响应信息;基于接收到的响应信息执行运动程序,生成针对管辖机器4的机器指令;以及经由有线通信网络8将机器指令发送到通信服务器3。该程序使控制器服务器2执行的控制方法可以还包括:存储接收到的响应信息,在与附加于该响应信息的第二周期信息对应的控制周期中调用该响应信息。在该情况下,基于接收到的响应信息来执行运动程序包括基于在与第二周期信息对应的控制周期中调用的响应信息来执行运动程序。例如,存储器193存储有用于使控制器服务器2构成上述控制器100的各功能块的程序。
内存192暂时存储从存储器193加载的程序等。处理器191一边将运算结果暂时存储于内存192,一边执行加载到内存192的程序。有线通信端口194根据来自处理器191的指令经由有线通信网络8与通信控制器200进行通信。计时器195通过时钟脉冲的计数来计测经过时间。
通信控制器200具有电路290。电路290具有处理器291、内存292、存储器293、有线通信端口294、无线通信端口295以及计时器296。
存储器293存储有使通信控制器200执行下述通信方法的程序,该通信方法包括:经由有线通信网络8从多个控制器100分别接收机器指令;经由无线通信网络7向多个机器4分别发送机器指令;经由无线通信网络7从多个机器4分别接收响应信息;以及经由有线通信网络8向多个控制器100分别发送响应信息。该程序使通信控制器200执行的通信方法也可以还包括:存储接收到的响应信息,在与附加于该响应信息的第二周期信息对应的控制周期中调用该响应信息。在该情况下,经由有线通信网络8发送响应信息包括发送在与第二周期信息对应的控制周期中调用的响应信息。例如,存储器293存储有用于使通信控制器200构成上述各功能块的程序。
内存292暂时存储从存储器293加载的程序等。处理器291一边将运算结果暂时存储于内存292,一边执行加载到内存292的程序。有线通信端口294根据来自处理器291的指令经由有线通信网络8与控制器服务器2进行通信。无线通信端口295根据来自处理器291的指令经由无线通信基站201以及无线通信终端301与本地控制器300进行通信。计时器296通过时钟脉冲的计数来计测经过时间。
本地控制器300具有电路390。电路390具有处理器391、内存392、存储器393、无线通信端口394、计时器395以及驱动电路396。
存储器393存储有使本地控制器300执行下述控制方法的程序,该控制方法包括经由通信服务器3接收机器指令以及基于机器指令使机器主体10实现运动。该程序使本地控制器300执行的控制方法可以还包括:存储接收到的机器指令,在与附加于该机器指令的第一周期信息对应的机器侧控制周期中调用该机器指令。在该情况下,基于机器指令使机器主体10实现运动包括:基于在与第一周期信息对应的机器侧控制周期中调用的机器指令,使机器主体10实现运动。例如,本地控制器300存储有用于使本地控制器300构成上述各功能块的程序。
内存392暂时存储从存储器393加载的程序等。处理器391一边将运算结果暂时存储于内存392,一边执行加载到内存392的程序。无线通信端口394根据来自处理器391的指令经由无线通信终端301以及无线通信基站201与通信控制器200进行通信。计时器395通过时钟脉冲的计数来计测经过时间。驱动电路396根据来自处理器391的指令向机器主体10供给驱动电力。
(机器控制步骤)
接着,作为机器控制方法的一例,例示机器控制系统1所执行的机器控制步骤。该步骤包括控制周期、通信周期等周期生成步骤和所生成的周期中的机器控制步骤。
(周期生成步骤的概要)
周期生成步骤包括:控制器100生成控制周期;以及本地控制器300生成与上述控制周期同步的机器侧控制周期。
图9是例示周期生成步骤的概要的时序图,各图的横轴表示经过时间。(i)表示时刻服务器5中的信息处理定时,(ii)表示控制器100中的控制周期生成的信息处理定时,(iii)表示控制器100中的通信周期生成的信息处理定时,(iv)表示无线通信终端301中的信息处理定时,(v)表示本地控制器300中的信息定时。
首先,在时刻pt1,时刻服务器5将全局时刻发送到控制器100。控制器100在时刻pt2接收全局时刻,生成与接收到的全局时刻同步的控制器侧时刻。无线通信终端301在时刻pt5接收全局时刻,本地控制器300在时刻pt6生成与无线通信终端301接收到的全局时刻同步的机器侧时刻。
控制器100基于控制器侧时刻在时刻pt11设置控制周期的开始定时,在时刻pt12设置通信周期的开始定时。无线通信终端301在时刻pt13经由无线通信基站201从通信控制器200接收周期定时,本地控制器300基于无线通信终端301接收到的周期定时在时刻pt14设置与上述开始定时一致的开始定时。
之后,控制器100在相当于上述开始定时的时刻pt21开始控制周期c1的生成,在相当于上述开始定时的时刻pt22开始通信周期c2的生成,本地控制器300在相当于上述开始定时的时刻pt23开始控制周期c3的生成。以上,周期生成步骤完成。
以下,分别详细地例示在周期生成步骤中控制器100执行的控制周期以及通信周期生成步骤、和本地控制器300执行的控制周期生成步骤。
(控制器中的周期生成步骤)
图10是例示控制器100中的周期生成步骤的流程图。如图10所示,控制器100首先执行步骤S01、S02、S03、S04、S05。在步骤S01中,控制器侧时刻生成部121等待同步通信部114对全局时刻的接收。在步骤S02中,控制器侧时刻生成部121与同步通信部114接收到的全局时刻同步地生成控制器侧时刻。在步骤S03中,控制器侧周期生成部122基于控制器侧时刻来设置控制周期的开始定时。另外,通信周期生成部131基于控制器侧时刻来设置通信周期的开始定时。在步骤S04中,控制器侧周期生成部122将控制周期的开始标志设为“不能开始”。在步骤S05中,定时发送部123将控制周期的周期定时(例如上述开始定时)经由通信服务器3发送给管辖本地控制器300。定时发送部123也可以将周期定时作为主定时向其他控制器100发送。
接着,控制器100执行步骤S06。在步骤S06中,定时发送部123确认是否接收到来自管辖本地控制器300的设置完成通知。在步骤S06中,在判定为从本地控制器300接收到设置完成通知的情况下,控制器100执行步骤S07。在步骤S07中,控制器侧周期生成部122将控制周期的开始标志设为“能开始”。
接着,控制器100执行步骤S08。在步骤S06中,在判定为未从管辖本地控制器300接收到设置完成通知的情况下,控制器100不执行步骤S07而执行步骤S08。在步骤S08中,控制器侧周期生成部122确认控制侧时刻是否达到了开始定时。
在步骤S08中,在判定为控制侧时刻未达到开始定时的情况下,控制器100使处理返回到步骤S06。之后,重复进行设置完成通知的接收确认,直到控制侧时刻到达开始定时为止。
在步骤S08中,在判定为控制侧时刻达到了开始定时的情况下,控制器100执行步骤S09。在步骤S09中,控制器侧周期生成部122确认开始标志是否为“能开始”。
在步骤S09中判定为开始标志不是“能开始”的情况下,控制器100使处理返回到步骤S03。由此,再次执行开始定时的设置以后的处理。在步骤S09中,在判定为开始标志为“能开始”的情况下,控制器100执行步骤S11。在步骤S11中,控制器侧周期生成部122开始控制周期的生成,定时发送部123开始控制周期数的计数。另外,通信周期生成部131开始通信周期的生成,周期计数器132开始通信周期的计数。以上,控制器100中的控制周期的生成步骤完成。此外,在步骤S11中,通信周期生成部131也可以在与控制器侧周期生成部122的控制周期的生成开始错开的定时开始通信周期的生成。
(本地控制器中的控制周期生成步骤)
图11是例示本地控制器300中的周期生成步骤的流程图。如图11所示,本地控制器300首先执行步骤S31、S32、S33。在步骤S31中,机器侧时刻生成部321等待终端通信部314对全局时刻的接收。在步骤S32中,机器侧时刻生成部321与终端通信部314接收到的全局时刻同步地生成机器侧时刻。在步骤S33中,机器侧周期生成部322等待终端通信部314接收对应的控制器100发送的周期定时(例如上述开始定时)。
接着,本地控制器300执行步骤S34、S35、S36、S37、S38。在步骤S34中,机器侧周期生成部322基于终端通信部314接收到的周期定时来设置与对应的控制器100中的控制周期的开始定时同步的开始定时。在步骤S35中,机器侧周期生成部322将设置完成通知发送到控制器100。在步骤S36中,机器侧周期生成部322等待机器侧时刻到达开始定时。在步骤S37中,机器侧周期生成部322开始机器侧控制周期的生成,周期计数器323开始控制周期数的计数。在步骤S38中,本地周期生成部325开始机器周期的生成,周期计数器326开始机器周期数的计数。以上,本地控制器300中的控制周期的生成步骤完成。
(周期生成步骤的变形例)
如上所述,控制器100也可以经由有线通信网络8获取主定时,并基于获取到的主定时和控制器侧时刻来生成控制周期。图12是表示基于主定时的周期生成步骤的流程图。如图12所示,控制器100首先执行步骤S51、S52、S53。在步骤S51中,控制器侧时刻生成部121等待同步通信部114对全局时刻的接收。在步骤S52中,控制器侧时刻生成部121与同步通信部114接收到的全局时刻同步地生成控制器侧时刻。在步骤S53中,控制器侧周期生成部122等待同步通信部114接收主定时。
接着,控制器100执行步骤S55、S56、S57、S58。在步骤S55中,控制器侧周期生成部122设置与主定时同步的开始定时。在步骤S56中,控制器侧周期生成部122将设置完成通知发送到通信控制器200。在步骤S57中,控制器侧周期生成部122等待控制器侧时刻到达开始定时。在步骤S58中,控制器侧周期生成部122开始控制器周期的生成,定时发送部123开始控制周期数的计数。以上,控制器100中的控制周期的生成步骤完成。
(机器控制步骤的概要)
机器控制步骤包括:控制器100在控制周期中执行运动程序,生成针对管辖机器4的机器指令;对机器指令附加第一周期信息;将机器指令发送至通信控制器200;通信控制器200接收机器指令;对管辖本地控制器300发送机器指令;管辖本地控制器300从通信控制器200接收机器指令;存储接收到的机器指令,在与附加于该机器指令的第一周期信息对应的机器侧控制周期中调用该机器指令;以及基于调用的机器指令使机器主体10实现运动。
另外,机器控制步骤也可以还包括:本地控制器300获取基于机器主体10所实现的运动的响应信息;对响应信息附加第二周期信息;向通信控制器200发送响应信息;通信控制器200或控制器100存储接收到的响应信息,在与附加于该响应信息的第二周期信息对应的控制周期中调用该响应信息;以及控制器100基于调用的该响应信息来执行运动程序。
图13是例示机器控制步骤的概要的时序图,各图的横轴表示经过时间。(i)表示运动模块113中的信息处理定时,(ii)表示同步通信部114中的信息处理定时,(iii)表示控制器侧定时调整部116中的信息处理定时,(iv)表示终端通信部314中的信息处理定时,(v)表示机器侧定时调整部315中的信息处理定时,(vi)表示机器控制部313中的信息处理定时。
在图13中,周期c11、c12、c13是控制器侧周期生成部122依次生成的控制周期,周期c21、c22、c23是通信周期生成部131与周期c11、c12、c13同步地依次生成的通信周期,周期c31、c32、c33是机器侧周期生成部322与周期c11、c12、c13同步地依次生成的机器侧控制周期。
例如,运动模块113在周期c11的时刻t10中执行运动程序,生成机器指令。该机器指令在时刻t11由同步通信部114发送,在时刻t12由终端通信部314接收。终端通信部314接收到的机器指令在时刻t13由机器侧定时调整部315存储,在与附加于机器指令的第一周期信息对应的机器侧控制周期(例如周期c33)中被调用。然后,基于调用的机器指令,在周期c33的时刻t14,机器控制部313使机器主体10实现运动。由于无线通信,在时刻t12产生波动,但由于从时刻t12到时刻t14的裕量,时刻t12的波动被吸收,在与控制周期同步的时刻t14使用机器指令。
机器控制部313在周期c31的时刻t110获取基于机器主体10所实现的运动的响应信息。该响应信息在时刻t111由终端通信部314发送,在时刻t112由控制器侧定时调整部116存储,在与附加于响应信息的第二周期信息对应的控制周期(例如周期c13)中被调用。被调用的响应信息在紧接在周期c13之前的时刻t113通过同步通信部114保存于接收信息存储部112,运动模块113基于保存于接收信息存储部112的响应信息在周期c13的时刻t114执行运动程序。由于无线通信,在时刻t112产生波动,但由于从时刻t112到时刻t114的裕量,时刻t112的波动被吸收,在与控制周期同步的时刻t114使用响应信息。
以下,将机器控制步骤分为控制器100中的控制步骤和本地控制器300中的控制步骤来详细地例示。
(控制器中的控制步骤)
控制器100中的控制步骤包括数据接收步骤和数据生成/发送步骤。并行地重复执行数据接收步骤和数据生成/发送步骤。数据接收步骤也可以不一定与控制周期同步地执行,但数据生成/发送步骤与控制周期同步地执行。
图14是例示数据接收步骤的流程图。如图14所示,控制器100首先执行步骤S91、S92。在步骤S91中,同步通信部114等待来自通信控制器200的数据的接收。在步骤S92中,周期检查部133确认是否没有数据的接收延迟。例如周期检查部133基于附加于响应信息的第二周期信息来确认是否没有响应信息的发送延迟。
在步骤S92中判定为存在数据的接收延迟的情况下,控制器100执行步骤S93。在步骤S93中,周期检查部133废弃该数据。
在步骤S92中,在判定为没有数据的接收延迟的情况下,控制器100执行步骤S94。在步骤S94中,周期检查部133使控制器侧定时调整部116存储该数据。在执行了步骤S93、S94之后,控制器100使处理返回到步骤S91。通信控制器200重复以上的步骤。
图15是例示数据生成/发送步骤的流程图。控制器100首先执行步骤S71、S72、S73、S74、S75。在步骤S71中,运动模块113等待由周期计数器124进行的控制周期数的递增计数。在步骤S72中,控制器侧定时调整部116调用使用时周期数与当前的控制周期数对应的接收数据(例如响应信息以及同步通信数据)。在步骤S73中,运动模块113执行运动程序,生成针对管辖机器4的机器指令。例如,运动模块113计算基于接收信息存储部112所存储的响应信息的管辖机器4的运动实绩,并计算机器指令以使运动实绩追随运动指令。在步骤S74中,附加部125对机器指令附加第一周期信息。在步骤S75中,同步通信部114经由有线通信网络8将机器指令发送到通信服务器3。关于步骤S75的具体的处理内容在后面叙述。
接着,控制器100执行步骤S76、S77、S78。在步骤S76中,同步通信部114生成同步通信数据。在步骤S77中,附加部125对同步通信数据附加第一周期信息。在步骤S78中,同步通信部114经由有线通信网络8将同步通信数据发送到通信服务器3。关于步骤S78的具体的处理内容在后面叙述。之后,控制器100使处理返回到步骤S71。控制器100重复以上的步骤。
图16是例示步骤S75、S78中的数据的发送步骤的流程图。如图16所示,控制器100首先执行步骤S82。在步骤S82中,周期检查部133确认是否没有数据的发送延迟。例如,周期检查部133基于附加于机器指令的第一周期信息来确认是否没有机器指令的发送延迟,基于附加于同步通信数据的第一周期信息来确认是否没有同步通信数据的发送延迟。
在步骤S82中判定为存在数据的发送延迟的情况下,控制器100执行步骤S83。在步骤S83中,周期检查部133废弃该数据。
在步骤S82中,在判定为没有数据的发送延迟的情况下,控制器100执行步骤S84。在步骤S84中,开关134确认数据是发往管辖机器4还是发往其他控制器100。
在步骤S84中,在判定为数据是发往管辖机器4的情况下,通信控制器200执行步骤S85。在步骤S85中,开关134经由通信服务器3向管辖机器4发送该数据。
在步骤S84中,在判定为数据是发往其他控制器100的情况下,通信控制器200执行步骤S86。在步骤S86中,开关134经由有线通信网络8向其他控制器100的控制器侧定时调整部116发送该数据。在执行了步骤S83、S85、S86之后,控制器100使处理返回到步骤S82。控制器100重复以上的步骤。
(本地控制器中的控制步骤)
本地控制器300中的控制步骤包括机器指令的接收步骤、定时调整步骤以及机器控制步骤。它们并行地重复执行。机器指令的控制步骤可以不一定与控制周期同步地执行,但定时调整步骤与控制周期同步地执行。机器控制步骤与机器周期同步地执行。
图17是例示机器指令的接收步骤的流程图。如图17所示,本地控制器300执行步骤S111、S112。在步骤S111中,终端通信部314等待机器指令的接收。在步骤S112中,机器侧定时调整部315存储机器指令。之后,本地控制器300使处理返回到步骤S111。本地控制器300重复以上的步骤。
图18是例示定时调整步骤的流程图。如图18所示,本地控制器300执行步骤S121、S122、S123、S124。在步骤S121中,机器侧定时调整部315等待由周期计数器323进行的控制周期数的递增计数。在步骤S122中,机器侧定时调整部315调用使用时周期数与当前的控制周期数对应的机器指令,并保存在指令存储部311中。由此,指令存储部311存储的机器指令被更新。在步骤S123中,附加部324对响应信息存储部312存储的响应信息附加第一周期信息。在步骤S124中,终端通信部314将响应信息经由有线通信网络8发送至通信控制器200。之后,本地控制器300使处理返回到步骤S121。本地控制器300重复以上的步骤。
图19是例示机器控制步骤的流程图。如图19所示,本地控制器300首先执行步骤S131、S132。在步骤S131中,机器控制部313等待由周期计数器326进行的机器周期数的递增计数。在步骤S132中,周期计数器326确认指令存储部311存储的机器指令是否被更新。
在步骤S132中,在判定为指令存储部311存储的机器指令被更新的情况下,本地控制器300执行步骤S133。在步骤S133中,周期计数器326将机器周期数重置为初始值(例如零)。
接着,本地控制器300执行步骤S134。在步骤S132中,在判定为指令存储部311存储的机器指令未被更新的情况下,本地控制器300不执行步骤S133而执行步骤S134。在步骤S134中,机器控制部313以缩小机器指令与响应信息存储部312存储的响应信息的偏差的方式生成驱动数据。
接着,本地控制器300执行步骤S135、S136。在步骤S135中,机器控制部313基于驱动数据来驱动机器主体10。在步骤S136中,机器控制部313获取基于机器主体10所实现的运动的响应信息,并保存在响应信息存储部312中。之后,本地控制器300使处理返回到步骤S131。本地控制器300重复以上的步骤。
[本实施方式的效果]
如以上说明的那样,机器控制系统1具备:1个以上的机器4,构成在现实空间上,分别根据机器指令来实现运动;1个以上的控制器100,安装在虚拟空间上,分别控制1个以上的机器4;以及通信服务器3,经由有线通信网络8与1个以上的控制器100进行通信,经由无线通信网络7与1个以上的机器4进行通信,1个以上的控制器100分别具有:运动模块113,在控制周期中执行运动程序,生成针对对应的机器4的机器指令;附加部125,对机器指令附加第一周期信息;以及同步通信部114,将机器指令发送到通信服务器3,1个以上的机器4分别具有:终端通信部314,从通信服务器3接收机器指令;以及机器侧定时调整部315,存储终端通信部314接收到的机器指令,在与附加于该机器指令的第一周期信息对应的机器侧控制周期中调用该机器指令。
由于第五代移动通信系统(5G)的实用化等,能够进行高速无线通信,因此经由无线通信的机器控制的实现可能性也提高。在机器控制中,需要以规定的控制周期重复进行基于运动程序的执行的机器指令的生成和与机器指令相应的机器的控制。在经由无线通信网络发送所生成的机器指令的情况下,由于无线通信,机器侧的机器指令的接收定时的波动扩大,在机器侧有可能难以在控制周期中接收机器指令。根据本机器控制系统1,从通信服务器3经由无线通信网络7发送的机器指令在机器4侧被缓存,在与第一周期信息对应的机器侧控制周期中被调用。这样,通过将机器指令缓存到其使用定时为止的功能,提前来自控制器100侧的机器指令的发送,能够使从机器4中的机器指令的接收定时到该机器指令的使用定时为止的期间具有裕量。通过该裕量,能够吸收因无线通信而扩大的接收定时的波动,在机器侧控制周期中调用缓存的机器指令。因此,在经由无线通信发送机器指令的系统中,能够在控制周期中重复进行基于运动程序的执行的机器指令的生成和与机器指令相应的机器的控制。因此,对于经由无线通信的机器控制的实现是有效的。
也可以是,1个以上的机器4分别还具有:机器主体10,实现运动;机器控制部313,基于机器侧定时调整部315所调用的机器指令使机器主体10实现运动,并获取基于机器主体10所实现的运动的响应信息;以及附加部324,对响应信息附加第二周期信息,终端通信部314将响应信息发送至通信服务器3,机器控制系统1在1个以上的控制器100与通信服务器3之间还具备控制器侧定时调整部116、213,所述控制器侧定时调整部116、213存储从1个以上的机器4接收到的响应信息,并在与附加于该响应信息的第二周期信息对应的控制周期中调用该响应信息,运动模块113基于控制器侧定时调整部116、213所调用的响应信息来执行运动程序。在该情况下,从机器4经由无线通信网络发送的响应信息在控制器100侧被缓存,在与第一周期信息对应的控制周期中被调用。这样,通过将响应信息缓存到其使用定时为止的功能,提前发送来自机器4侧的响应信息,能够使从控制器100侧的响应信息的接收定时到该响应信息的使用定时为止的期间具有裕量。通过该裕量,能够吸收因无线通信而扩大的接收定时的波动,在控制周期中调用缓存的响应信息。因此,在经由无线通信发送响应信息的系统中,能够在控制周期中重复进行响应信息的接收。因此,对于经由无线通信的机器控制的实现更有效。
也可以是,1个以上的控制器100分别还具有向对应的机器4发送控制周期的周期定时的定时发送部123,1个以上的机器4分别还具有机器侧周期生成部322,机器侧周期生成部322基于周期定时来生成与对应的控制器100中的控制周期同步的机器侧控制周期。在该情况下,在基于周期定时的同步处理之后,在机器4中生成与控制器100中的控制周期同步的机器侧控制周期。因此,能够抑制无线通信的负担,并且容易地使机器4中的机器侧控制周期与控制器中的控制周期同步。
也可以是,1个以上的控制器100分别还具有:控制器侧时刻生成部121,其与时刻服务器5生成的时刻同步地生成控制器侧时刻;以及控制器侧周期生成部122,其基于控制器侧时刻来生成控制周期,1个以上的机器4分别还具有机器侧时刻生成部321,其与时刻服务器生成的时刻同步地生成机器侧时刻,机器侧周期生成部322基于机器侧时刻生成部321生成的时刻和周期定时来生成机器侧控制周期。在该情况下,通过预先进行控制器100以及机器4中的时刻对准,即使在机器4中的周期定时的接收定时产生了波动的情况下,也能够基于机器侧时刻在适当的定时生成机器4中的机器侧控制周期。
定时发送部123也可以在对应的机器4的机器侧周期生成部322生成机器侧控制周期失败的情况下,将比之前发送的周期定时靠后的周期定时再次发送给该机器4。在该情况下,能够以更高的可靠性使机器4中的机器侧控制周期与控制器100中的控制周期同步。
机器控制部313也可以基于机器侧定时调整部315所调用的机器指令,以周期长度比控制周期短的机器周期来控制机器主体10。在该情况下,能够同时实现基于控制周期的机器指令的调用的固定周期性和基于更细分化的机器周期的机器的适当的控制。
机器控制系统1具备多个控制器100作为1个以上的控制器,多个控制器100可以分别具有控制器侧定时调整部116。在该情况下,多个控制器100分别能够在与管辖机器4之间进行同步通信,另一方面,在利用同一网络的控制器100与机器4的多对之间,使控制周期同步的必要性变低,能够容易地构成系统。
也可以还具备开关134,如果多个控制器100中的一个控制器100的同步通信部114发送的数据是发往对应的机器,则经由通信服务器3向对应的机器4发送该数据,如果数据是发往其他控制器100,则经由有线通信网络8向其他控制器100的控制器侧定时调整部116发送该数据。在该情况下,能够在控制器100与机器4之间的同步通信和控制器100之间的同步通信中适当地分开使用同步通信部114。
一个控制器100也可以还具有异步通信部115,该异步通信部115将针对包含其他控制器100的其他节点的异步通信数据经由有线通信网络8发送至其他节点。在该情况下,能够节约同步通信用的通信资源。
多个控制器100的至少一个也可以还具有控制器侧周期生成部122,该控制器侧周期生成部122基于经由有线通信网络8接收到的主定时来生成控制周期。在该情况下,能够在控制器100之间容易地使控制周期同步。
通信服务器3也可以具有生成主定时的定时主机224,控制器侧周期生成部122从定时主机224接收主定时。在该情况下,在应该使控制周期同步的多个控制器100的任一个中,都能够采用基于通信服务器3的定时主机224生成的定时主机来生成控制周期的相同的设定。因此,容易向系统追加、删除控制器100。
也可以在1个以上的控制器100与通信服务器3之间还具备周期检查部133、225,该周期检查部133、225基于机器指令所包含的第一周期信息来检测该机器指令的发送延迟。在该情况下,能够提高与控制周期同步的机器指令的发送的可靠性。
周期检查部133也可以在检测到机器指令的发送延迟的情况下取消该机器指令的发送。在该情况下,通过取消来不及在控制周期中的调用的机器指令的发送,能够节约通信服务器3中的无线通信资源。
也可以在1个以上的控制器100与通信服务器3之间还具备周期检查部133、225,该周期检查部133、225基于响应信息所包含的第二周期信息来检测该响应信息的接收延迟。在该情况下,能够预先检测来不及在控制周期中的调用的响应信息,例如,能够进行代替前一个调用的响应信息来防止响应信息的缺失等的应对。
也可以在1个以上的控制器100与通信服务器3之间还具备通信周期生成部131、222,该通信周期生成部131、222生成与1个以上的控制器100中的至少任一个控制器的控制周期同步的通信周期,周期检查部133、225基于附加于机器指令的第一周期信息和通信周期的周期信息来检测机器指令的发送延迟。在该情况下,能够容易地进行周期检查部133、225对发送延迟的检测。
(机器控制系统的变形例)
机器控制系统1只要至少包括1个以上的机器4和安装在与1个以上的机器4通信的1个以上的服务器所具有的虚拟空间上并分别控制1个以上的机器4的1个以上的控制器100,则机器控制系统1可以适当地改变。例如,如图20所示,也可以将无线通信网络7置换为有线通信网络7A。在这种情况下,在图5、图7和图8中,不需要介于通信控制器200和本地控制器300之间的无线通信基站201和无线通信终端301。另外,在图9中,也不需要在时刻pt5、pt13执行的无线通信终端301的处理。如图21所示,也可以将通信服务器3置换为例如交换式集线器等通信集线器3A。在这种情况下,通信服务器3所具有的定时主机224也可以设置在通信服务器3以外的1个以上的服务器(例如,控制器服务器2、时刻服务器5或应用服务器6)的任意一个中。
如图20和图21所示,即使在控制器100与机器4之间的通信不包含无线通信的情况下,存储器193也存储使控制器100安装在与对应的机器4通信的控制器服务器2的虚拟空间上的程序,所述控制器100执行:至少在控制周期中执行运动程序,生成针对对应的机器的机器指令;将在对应的机器4中指定在哪个机器侧控制周期中调用机器指令的第一周期信息附加于机器指令;以及将附加了第一周期信息的机器指令发送到对应的机器4。存储器193也可以存储程序,该程序使控制器安装在控制器服务器2的虚拟空间上,所述控制器还执行:从对应的机器4接收对应的机器4附加了第二周期信息的响应信息;和存储接收到的响应信息,在与附加于该响应信息中的第二周期信息对应的控制周期中调用该响应信息,所述控制器基于调用的响应信息来执行运动程序,生成机器指令。
以上,对实施方式进行了说明,但本公开不一定限定于上述的实施方式,在不脱离其主旨的范围内能够进行各种变更。
符号说明
1…机器控制系统、2…控制器服务器、4…机器、3…通信服务器、100…控制器、8…有线通信网络、7…无线通信网络、10…机器主体、113…运动模块、114…同步通信部、115…异步通信部、121…控制器侧时刻生成部、122…控制器侧周期生成部、123…定时发送部、5…时刻服务器、125…附加部、211…控制器侧通信部、212…机器侧通信部、116、213…控制器侧定时调整部、131、222…通信周期生成部、224…定时主机、133、225…周期检查部、134、226…开关、314…终端通信部、313…机器控制部、315…机器侧定时调整部、321…机器侧时刻生成部、322…机器侧周期生成部、324…附加部。
Claims (23)
1.一种机器控制系统,具备:
1个以上的机器,构成在现实空间上,分别根据机器指令来实现运动;以及
1个以上的控制器,安装在与所述1个以上的机器通信的1个以上的服务器具有的虚拟空间上,分别控制所述1个以上的机器,
所述1个以上的控制器分别具有:
运动模块,在控制周期中执行运动程序,生成针对对应的机器的机器指令;
附加部,对所述机器指令附加第一周期信息;以及
同步通信部,将所述机器指令发送到所述对应的机器,
所述1个以上的机器分别具有:
终端通信部,从所述1个以上的服务器接收所述机器指令;以及
机器侧定时调整部,存储所述终端通信部接收到的所述机器指令,并在与附加到该机器指令的第一周期信息对应的机器侧控制周期中调用该机器指令。
2.根据权利要求1所述的机器控制系统,其中,
所述1个以上的机器分别还具有:
主体,实现运动;
机器控制部,基于所述机器侧定时调整部所调用的机器指令使所述主体实现运动,并获取基于所述主体所实现的运动的响应信息;以及
附加部,对所述响应信息附加第二周期信息,
所述终端通信部将所述响应信息发送至所述1个以上的服务器,
所述1个以上的服务器具有控制器侧定时调整部,所述控制器侧定时调整部存储从所述1个以上的机器接收到的所述响应信息,并在与附加于该响应信息的第二周期信息对应的所述控制周期中调用该响应信息,
所述运动模块基于所述控制器侧定时调整部所调用的响应信息来执行所述运动程序。
3.根据权利要求1或2所述的机器控制系统,其中,
所述1个以上的控制器分别还具有定时发送部,所述定时发送部向所述对应的机器发送所述控制周期的周期定时,
所述1个以上的机器分别还具有机器侧周期生成部,所述机器侧周期生成部基于所述周期定时来生成与对应的控制器中的所述控制周期同步的所述机器侧控制周期。
4.根据权利要求3所述的机器控制系统,其中,
所述1个以上的控制器分别还具有:
控制器侧时刻生成部,与时刻服务器生成的时刻同步地生成控制器侧时刻;以及
控制器侧周期生成部,基于所述控制器侧时刻来生成所述控制周期,
所述1个以上的机器分别还具有机器侧时刻生成部,所述机器侧时刻生成部与所述时刻服务器生成的时刻同步地生成机器侧时刻,
所述机器侧周期生成部基于所述机器侧时刻生成部生成的时刻和所述周期定时来生成所述机器侧控制周期。
5.根据权利要求4所述的机器控制系统,其中,
所述定时发送部在所述对应的机器的所述机器侧周期生成部生成所述机器侧控制周期失败的情况下,将比之前发送的周期定时靠后的周期定时再次发送给所述对应的机器。
6.根据权利要求2所述的机器控制系统,其中,
所述机器控制部基于所述机器侧定时调整部所调用的机器指令以周期长度比所述机器侧控制周期短的机器周期来控制所述主体。
7.根据权利要求2所述的机器控制系统,其中,
所述机器控制系统具备多个控制器作为所述1个以上的控制器,
所述多个控制器分别具有所述控制器侧定时调整部。
8.根据权利要求7所述的机器控制系统,其中,
所述1个以上的服务器还具有:
开关,如果所述多个控制器中的一个控制器的所述同步通信部发送的数据是发往所述对应的机器,则向对应的机器发送该数据,如果所述数据是发往其他控制器,则向所述其他控制器的所述控制器侧定时调整部发送该数据。
9.根据权利要求8所述的机器控制系统,其中,
所述一个控制器还具有异步通信部,所述异步通信部将针对包含所述其他控制器的其他节点的异步通信数据发送至所述其他节点。
10.根据权利要求7至9中任一项所述的机器控制系统,其中,
所述多个控制器的至少一个还具有控制器侧周期生成部,所述控制器侧周期生成部基于主定时来生成所述控制周期。
11.根据权利要求10所述的机器控制系统,其中,
所述1个以上的服务器还具有生成所述主定时的定时主机。
12.根据权利要求1至11中任一项所述的机器控制系统,其中,
所述1个以上的服务器还具备周期检查部,所述周期检查部基于所述机器指令所包含的所述第一周期信息来检测该机器指令的发送延迟。
13.根据权利要求12所述的机器控制系统,其中,
所述周期检查部还在检测到所述机器指令的发送延迟时取消该机器指令的发送。
14.根据权利要求2所述的机器控制系统,其中,
所述1个以上的服务器还具备周期检查部,所述周期检查部基于所述响应信息所包含的所述第二周期信息来检测该响应信息的接收延迟。
15.根据权利要求12或13所述的机器控制系统,其中,
所述1个以上的服务器还具备通信周期生成部,所述通信周期生成部生成与所述1个以上的控制器中的至少一个控制器的控制周期同步的通信周期,
所述周期检查部基于附加到所述机器指令的所述第一周期信息和所述通信周期的周期信息来检测所述机器指令的发送延迟。
16.一种程序,使控制器安装在与对应的机器通信的服务器的虚拟空间上,所述控制器执行:
在控制周期中执行运动程序,生成针对对应的机器的机器指令;
将在所述对应的机器中指定在哪个机器侧控制周期中调用所述机器指令的第一周期信息附加于所述机器指令;以及
将附加了所述第一周期信息的所述机器指令发送至所述对应的机器。
17.根据权利要求16所述的程序,该程序使控制器安装在所述服务器的虚拟空间上,
所述控制器还执行:从所述对应的机器接收所述对应的机器附加了第二周期信息的响应信息;和
存储接收到的响应信息,在与附加于该响应信息中的第二周期信息对应的所述控制周期中调用该响应信息,
所述控制器基于调用的响应信息来执行运动程序,生成机器指令。
18.一种机器,包括:
主体,实现运动;
终端通信部,与构成安装有控制器的虚拟空间的服务器进行通信,所述控制器从所述服务器接收附加了周期信息的机器指令;
机器侧定时调整部,存储所述终端通信部接收到的机器指令,并在与附加于该机器指令的周期信息对应的控制周期中调用该机器指令;以及
机器控制部,基于所述机器侧定时调整部调用的机器指令,使所述主体实现运动。
19.一种系统,包括:
第一设备,反复进行第一处理;以及
第二设备,与第一设备进行通信并反复进行第二处理,
所述第一设备具有:
第一处理模块,通过所述第一处理生成第一信息;
第一附加部,对所述第一信息附加第一周期信息;以及
第一通信部,向第二设备发送所述第一信息,
所述第二设备具有:
第二通信部,从所述第一设备接收所述第一信息;
定时调整部,存储所述第二通信部接收到的所述第一信息,并在与附加于该第一信息中的第一周期信息对应的周期的所述第二处理中调用该第一信息;以及
第二处理模块,基于由所述定时调整部调用的所述第一信息来执行所述第二处理。
20.根据权利要求19所述的系统,其中,
所述第二处理模块通过所述第二处理生成第二信息,
所述第二设备还具有第二附加部,该第二附加部对所述第二信息附加第二周期信息,
所述第二通信部向所述第一设备发送所述第二信息,
所述第一通信部从所述第二设备接收所述第二信息,
所述第一设备还具有第一定时调整部,该第一定时调整部存储所述第一通信部接收到的所述第二信息,并在与附加于该第二信息中的第二周期信息对应的周期的所述第一处理中调用该第二信息,
所述第一处理模块基于由所述第一定时调节部调用的所述第二信息来执行所述第一处理。
21.一种设备,包括:
第一处理模块,反复通过第一处理生成第一信息;
第一附加部,将在反复进行第二处理的第二设备中指定在哪个周期的所述第二处理中调用所述第一信息的第一周期信息附加于该第一信息;以及
通信部,将由所述第一附加部附加了第一周期信息的所述第一信息发送到所述第二设备。
22.根据权利要求21所述的设备,其中,
所述通信部从所述第二设备接收第二信息,所述第二信息是所述第二设备通过所述第二处理生成并附加了第二周期信息的信息,
所述设备还包括:
第一定时调整部,该第一定时调整部存储所述通信部接收到的所述第二信息,并在与附加于该第二信息中的第二周期信息对应的周期的第一处理中调用该第二信息,
所述第一处理模块基于由所述第一定时调整部调用的所述第二信息来执行所述第一处理,并生成所述第一信息。
23.一种设备,包括:
通信部,从第一设备接收第一信息,该第一信息是反复进行第一处理的所述第一设备通过第一处理生成并附加了循环信息的信息;
定时调整部,存储所述通信部接收到的所述第一信息,并在与附加于该第一信息中的周期信息对应的周期的第二处理中调用该第一信息;以及
处理模块,基于由所述定时调整部调用的所述第一信息来执行所述第二处理。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2020/019141 WO2020230824A1 (ja) | 2019-05-13 | 2020-05-13 | マシン制御システム、プログラム、マシン、及び通信方法 |
JPPCT/JP2020/019141 | 2020-05-13 | ||
PCT/JP2020/042331 WO2021229842A1 (ja) | 2019-05-13 | 2020-11-12 | マシン制御システム、プログラム、マシン、システム及びデバイス |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115516870A true CN115516870A (zh) | 2022-12-23 |
Family
ID=84499098
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080100688.4A Pending CN115516870A (zh) | 2020-05-13 | 2020-11-12 | 机器控制系统、程序、机器、系统以及设备 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP4138402A4 (zh) |
KR (1) | KR20230006582A (zh) |
CN (1) | CN115516870A (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6946909B2 (ja) * | 2017-09-29 | 2021-10-13 | オムロン株式会社 | 制御システムおよび制御装置 |
JP7095262B2 (ja) * | 2017-11-10 | 2022-07-05 | 株式会社安川電機 | プログラミング支援装置、ロボットシステム及びプログラム生成方法 |
JP6673401B2 (ja) | 2018-06-08 | 2020-03-25 | 株式会社安川電機 | 加工システム及び制御方法 |
-
2020
- 2020-11-12 EP EP20935131.1A patent/EP4138402A4/en active Pending
- 2020-11-12 CN CN202080100688.4A patent/CN115516870A/zh active Pending
- 2020-11-12 KR KR1020227042649A patent/KR20230006582A/ko active Search and Examination
Also Published As
Publication number | Publication date |
---|---|
EP4138402A1 (en) | 2023-02-22 |
EP4138402A4 (en) | 2024-05-15 |
KR20230006582A (ko) | 2023-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021229842A1 (ja) | マシン制御システム、プログラム、マシン、システム及びデバイス | |
KR101494117B1 (ko) | 전동기 제어 시스템 및 통신 방법 | |
CN103025491A (zh) | 控制自动化工作单元的方法 | |
US11613015B2 (en) | Technique for providing reliable control in a cloud robotics system | |
CN102985233A (zh) | 控制自动化工作单元的方法 | |
US10860010B2 (en) | Information processing apparatus for estimating behaviour of driving device that drives control target, information processing method and computer readable recording medium | |
JP2013066962A (ja) | ロボット制御装置、及びロボットシステム | |
CN115516870A (zh) | 机器控制系统、程序、机器、系统以及设备 | |
JP6915759B1 (ja) | マシン制御システム、プログラム、マシン、システム及びデバイス | |
US20230099602A1 (en) | Device control based on execution command and updated environment information | |
JP2023063209A (ja) | 多軸サーボ制御システム | |
CN106101288A (zh) | 一种机器人远程控制系统 | |
US20240142954A1 (en) | Communication system with ordered command data sets | |
JP7400104B2 (ja) | シミュレーション装置、制御システム、シミュレーション方法及びプログラム | |
WO2023138536A1 (zh) | 电机控制系统、电机控制方法和电机驱动和转发装置 | |
JP2013066963A (ja) | ロボット制御装置、及びロボットシステム | |
US20220331951A1 (en) | Robot control system, lower-level control apparatus, and control method for robot | |
JP2023015770A (ja) | コントローラ及びその指令値の補外方法 | |
CN116633983A (zh) | 用于多机器人协同作业的通信方法、装置和通信中间件 | |
JP2002268751A (ja) | サーボ制御装置 | |
TW202318121A (zh) | 多軸伺服控制系統 | |
CN114114967A (zh) | 一种基于can总线的分布式六自由度平台同步控制系统 |
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 |