KR20230006582A - 머신 제어 시스템, 프로그램, 머신, 시스템 및 디바이스 - Google Patents

머신 제어 시스템, 프로그램, 머신, 시스템 및 디바이스 Download PDF

Info

Publication number
KR20230006582A
KR20230006582A KR1020227042649A KR20227042649A KR20230006582A KR 20230006582 A KR20230006582 A KR 20230006582A KR 1020227042649 A KR1020227042649 A KR 1020227042649A KR 20227042649 A KR20227042649 A KR 20227042649A KR 20230006582 A KR20230006582 A KR 20230006582A
Authority
KR
South Korea
Prior art keywords
machine
cycle
information
controller
unit
Prior art date
Application number
KR1020227042649A
Other languages
English (en)
Inventor
가즈오 후지노
다다스케 유바
료 시모도메
료타 모리와카
가즈토시 고바야시
유키 미나미다
Original Assignee
가부시키가이샤 야스카와덴키
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
Priority claimed from PCT/JP2020/019141 external-priority patent/WO2020230824A1/ja
Application filed by 가부시키가이샤 야스카와덴키 filed Critical 가부시키가이샤 야스카와덴키
Publication of KR20230006582A publication Critical patent/KR20230006582A/ko

Links

Images

Classifications

    • GPHYSICS
    • G08SIGNALLING
    • G08CTRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
    • G08C17/00Arrangements for transmitting signals characterised by the use of a wireless electrical link
    • G08C17/02Arrangements for transmitting signals characterised by the use of a wireless electrical link using a radio link
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/006Controls for manipulators by means of a wireless system for controlling one or several 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
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • 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/1671Programme 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1682Dual arm manipulator; Coordination of several 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/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/41815Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by the cooperation between machine tools, manipulators and conveyor or other workpiece supply system, workcell
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/4185Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by the network communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q9/00Arrangements 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/04Arrangements for synchronous operation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31261Coordination control
    • 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/33Director till display
    • G05B2219/33097Variable ticks, align clocks, to synchronise cycles with other machine, robot
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34397Synchronize manipulators and machine by using a reference clock for all

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Computer Networks & Wireless Communication (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 이상의 머신(4)과 통신하는 1 이상의 서버가 갖는 가상 공간상에 실장되어, 1 이상의 머신(4)에 대한 머신 지령을 각각 생성하는 1 이상의 컨트롤러(100)를 구비하고, 1 이상의 컨트롤러(100)의 각각은, 컨트롤 사이클로 모션 프로그램을 실행하여, 대응하는 머신(4)에 대한 머신 지령을 생성하는 모션 모듈(113)과, 머신 지령에 제1 사이클 정보를 부가하는 부가부(125)와, 머신 지령을 대응하는 머신(4)에 송신하는 동기 통신부(114)를 갖고, 1 이상의 머신(4)의 각각은, 1 이상의 서버로부터 머신 지령을 수신하는 단말 통신부(314)와, 머신 지령에 부가된 제1 사이클 정보에 대응하는 머신측 컨트롤 사이클로 상기 머신 지령을 호출하는 머신측 타이밍 조정부(315)를 갖는다.

Description

머신 제어 시스템, 프로그램, 머신, 시스템 및 디바이스
본 개시는 머신 제어 시스템, 프로그램, 머신, 시스템 및 디바이스에 관한 것이다.
특허문헌 1에는 로봇과, 가공 장치와, 로봇을 제어하는 로봇 컨트롤러와, 가공 장치를 제어하는 가공 장치 컨트롤러와, 로봇 컨트롤러 및 가공 장치 컨트롤러에 대한 지령을 생성하는 프로그래머블 로직 컨트롤러를 구비하는 시스템이 개시되어 있다.
특허문헌 1: 일본 특허 공개 제2019-209454호 공보
본 개시는 디바이스 간의 동기 통신의 신뢰성 향상에 유효한 시스템을 제공한다.
본 개시의 일측면에 따른 머신 제어 시스템은, 현실 공간상에 구성되어, 각각 머신 지령에 따라 모션을 실현하는 1 이상의 머신과, 1 이상의 머신과 통신하는 1 이상의 서버가 갖는 가상 공간상에 실장되어, 1 이상의 머신을 각각 제어하는 1 이상의 컨트롤러를 구비하고, 1 이상의 컨트롤러의 각각은, 컨트롤 사이클로 모션 프로그램을 실행하여, 대응하는 머신에 대한 머신 지령을 생성하는 모션 모듈과, 머신 지령에 제1 사이클 정보를 부가하는 부가부와, 머신 지령을 대응하는 머신에 송신하는 동기 통신부를 갖고, 1 이상의 머신의 각각은, 1 이상의 서버로부터 머신 지령을 수신하는 단말 통신부와, 단말 통신부가 수신한 머신 지령을 기억하여, 상기 머신 지령에 부가된 제1 사이클 정보에 대응하는 머신측 컨트롤 사이클로 상기 머신 지령을 호출하는 머신측 타이밍 조정부를 갖는다.
본 개시의 다른 측면에 따른 프로그램은, 컨트롤 사이클로 모션 프로그램을 실행하여, 대응하는 머신에 대한 머신 지령을 생성하는 것과, 대응하는 머신에 있어서, 어느 머신측 컨트롤 사이클로 머신 지령을 호출할지를 지정하는 제1 사이클 정보를 머신 지령에 부가하는 것과, 제1 사이클 정보가 부가된 머신 지령을 대응하는 머신에 송신하는 것을 실행하는 컨트롤러를, 대응하는 머신과 통신하는 서버의 가상 공간상에 실장시킨다.
본 개시의 다른 측면에 따른 머신은, 모션을 실현하는 본체와, 컨트롤러가 실장된 가상 공간을 구성하는 서버와 통신하여, 컨트롤러가 사이클 정보를 부가한 머신 지령을 서버로부터 수신하는 단말 통신부와, 단말 통신부가 수신한 머신 지령을 기억하여, 상기 머신 지령에 부가된 사이클 정보에 대응하는 컨트롤 사이클에 있어서 상기 머신 지령을 호출하는 머신측 타이밍 조정부와, 머신측 타이밍 조정부가 호출한 머신 지령에 기초하여, 본체에 모션을 실현시키는 머신 제어부를 구비한다.
본 개시의 다른 측면에 따른 시스템은, 제1 처리를 반복하는 제1 디바이스와, 제1 디바이스와 통신하여, 제2 처리를 반복하는 제2 디바이스를 구비하고, 제1 디바이스는, 제1 처리에 의해 제1 정보를 생성하는 제1 처리 모듈과, 제1 정보에 제1 사이클 정보를 부가하는 제1 부가부와, 제1 정보를 제2 디바이스에 송신하는 제1 통신부를 갖고, 제2 디바이스는, 제1 디바이스로부터 제1 정보를 수신하는 제2 통신부와, 제2 통신부가 수신한 제1 정보를 기억하여, 상기 제1 정보에 부가된 제1 사이클 정보에 대응하는 사이클의 제2 처리에 있어서 상기 제1 정보를 호출하는 타이밍 조정부와, 타이밍 조정부에 의해 호출된 제1 정보에 기초하여 제2 처리를 실행하는 제2 처리 모듈을 갖는다.
본 개시의 다른 측면에 따른 디바이스는, 제1 처리에 의해 제1 정보를 생성하는 것을 반복하는 제1 처리 모듈과, 제2 처리를 반복하는 제2 디바이스에 있어서, 어느 사이클의 제2 처리에 있어서 제1 정보를 호출할지를 지정하는 제1 사이클 정보를 상기 제1 정보에 부가하는 제1 부가부와, 제1 부가부에 의해 제1 사이클 정보가 부가된 제1 정보를 제2 디바이스에 송신하는 통신부를 구비한다.
본 개시의 다른 측면에 따른 디바이스는, 제1 처리를 반복하는 제1 디바이스가, 제1 처리에 의해 생성하여, 사이클 정보를 부가한 제1 정보를, 제1 디바이스로부터 수신하는 통신부와, 통신부가 수신한 제1 정보를 기억하여, 상기 제1 정보에 부가된 사이클 정보에 대응하는 사이클의 제2 처리에 있어서 상기 제1 정보를 호출하는 타이밍 조정부와, 타이밍 조정부에 의해 호출된 제1 정보에 기초하여, 제2 처리를 실행하는 처리 모듈을 구비한다.
본 개시에 따르면, 디바이스 간의 동기 통신의 신뢰성 향상에 유효한 시스템을 제공할 수 있다.
도 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 처리를 반복하는 제2 디바이스를 구비하고, 제1 디바이스는, 제1 처리에 의해 제1 정보를 생성하는 제1 처리 모듈과, 제1 정보에 제1 사이클 정보를 부가하는 제1 부가부와, 제1 정보를 제2 디바이스에 송신하는 제1 통신부를 갖고, 제2 디바이스는, 제1 디바이스로부터 제1 정보를 수신하는 제2 통신부와, 제2 통신부가 수신한 제1 정보를 기억하여, 상기 제1 정보에 부가된 제1 사이클 정보에 대응하는 사이클의 제2 처리에 있어서 상기 제1 정보를 호출하는 타이밍 조정부와, 타이밍 조정부에 의해 호출된 제1 정보에 기초하여 제2 처리를 실행하는 제2 처리 모듈을 갖는다.
제2 디바이스에 있어서의 제1 수신 타이밍의 변동이 커지면, 동기 통신의 유지가 곤란해질 가능성이 있다. 이에 대하여, 상기 시스템에 따르면, 제1 디바이스로부터 송신된 제1 정보가 제2 디바이스로 버퍼링되어, 제1 사이클 정보에 대응하는 사이클의 제2 처리에 있어서 호출된다. 이와 같이, 제1 정보를 그 사용 타이밍까지 버퍼링하는 기능에 의해, 제1 디바이스측으로부터의 제1 정보의 송신을 앞당겨, 제2 디바이스에 있어서의 제1 정보의 수신 타이밍으로부터 상기 제1 정보의 사용 타이밍까지의 기간에 여유를 갖게 할 수 있다. 이 여유에 의해, 통신 상황 등에 기인하여 확대된 수신 타이밍의 변동을 흡수하여, 버퍼한 제1 정보를 적절한 사용 타이밍에 호출할 수 있다. 이 때문에, 동기 통신의 신뢰성을 향상시킬 수 있다.
제2 처리 모듈은, 제2 처리에 의해 제2 정보를 생성하고, 제2 디바이스는, 제2 정보에 제2 사이클 정보를 부가하는 제2 부가부를 더 갖고, 제2 통신부는, 제2 정보를 제1 디바이스에 송신하고, 제1 통신부는, 제2 정보를 제2 디바이스로부터 수신하고, 제1 디바이스는, 제1 통신부가 수신한 제2 정보를 기억하여, 상기 제2 정보에 부가된 제2 사이클 정보에 대응하는 사이클의 제1 처리에 있어서 상기 제2 정보를 호출하는 제1 타이밍 조정부를 더 갖고, 제1 처리 모듈은, 제1 타이밍 조정부에 의해 호출된 제2 정보에 기초하여 제1 처리를 실행하여도 좋다. 이 경우, 제1 디바이스와 제2 디바이스 간에서의 양 방향의 동기 통신의 신뢰성을 향상시킬 수 있다.
제1 디바이스 및 제2 디바이스는, 현실 공간상에 실장된 디바이스여도 좋고, 가상 공간상에 실장된 디바이스여도 좋다. 현실 공간이란, 현실의 물체가 존재하는 공간이다. 가상 공간은, 현실 공간을 모의하도록 데이터에 의해 표시된 공간이다. 디바이스를 가상 공간상에 실장한다는 것은, 가상 공간을 구성하는 장치에 대하여, 디바이스의 기능을 가상 공간에 있어서 모의하는 프로그램을 부가하는 것을 의미한다.
제1 디바이스 및 제2 디바이스의 구체예로서는, 현실 공간 상에 실장된 컨트롤러, 머신, 센서, 모터, 및 서보 드라이버 등을 들 수 있다. 제1 디바이스 및 제2 디바이스는, 가상 공간상에 실장된 컨트롤러, 머신, 센서, 모터, 및 서보 드라이버 등이어도 좋다.
제1 디바이스와 제2 디바이스 간의 통신은, 적어도 일부에 무선 통신을 포함하고 있어도 좋다. 제1 디바이스와 제2 디바이스 간의 통신이 무선 통신을 포함하는 경우, 전술한 수신 타이밍의 변동을 흡수하는 효과가 보다 유효하다.
이하, 본 실시형태의 일례로서, 제1 디바이스가, 가상 공간상에 실장된 컨트롤러이고, 제2 디바이스가 현실 공간상에 실장된 머신이고, 컨트롤러와 머신 간의 통신이, 일부에 무선 통신을 포함하는 머신 제어 시스템을 구체적으로 예시한다.
〔머신 제어 시스템〕
도 1에 나타내는 머신 제어 시스템(1)은, 적어도 1대의 컨트롤러 서버(2)로부터 무선 통신 네트워크를 통해 송신되는 연산 결과에 기초하여, 복수의 머신(4)을 제어하는 시스템이다. 머신 제어 시스템(1)의 일례로서는, 복수의 머신(4)의 협조 모션에 의해, 워크를 생산하는 생산 시스템을 들 수 있다. 도 1에 나타내는 바와 같이, 머신 제어 시스템(1)은, 적어도 1대의 컨트롤러 서버(2)와, 통신 서버(3)와, 복수의 머신(4)을 구비한다.
컨트롤러 서버(2)는, 컨트롤 사이클로 소정의 연산을 실행한다. 컨트롤러 서버(2)는, 복수의 컨트롤러(100)를 갖는다(도 3 참조). 복수의 컨트롤러(100)는, 컨트롤러 서버(2)에 있어서 가상 공간상에 실장되어, 복수의 머신(4)을 각각 제어한다. 하나의 컨트롤러(100)는, 적어도 1대의 머신(4)에 대응한다. 하나의 컨트롤러(100)가 복수의 머신(4)에 대응하고 있어도 좋고, 복수의 컨트롤러(100)가 1대의 머신(4)에 대응하고 있어도 좋다. 가상 공간상에 실장한다는 것은, 소프트웨어에 의해, 컨트롤러(100)로서의 기능을 컨트롤러 서버(2) 등의 연산 장치에 부가하는 것을 의미한다. 컨트롤러(100)로서의 기능은, 머신(4)으로부터의 정보의 취득과, 취득한 정보에 기초한 머신 지령의 생성과, 생성한 머신 지령의 머신(4)에의 출력을 포함한다. 복수의 컨트롤러(100)는, 복수의 컨트롤러 서버(2)에 분배되어 있어도 좋다. 이에 의해, 1대의 컨트롤러 서버(2)의 연산 부담이 경감된다.
통신 서버(3)는, 컨트롤러 서버(2)와 유선 통신 네트워크(8)를 통해 통신하며, 복수의 머신(4)과 무선 통신 네트워크(7)를 통해 통신하여, 컨트롤러 서버(2)와 복수의 머신(4) 사이에서 정보를 중계한다. 유선 통신 네트워크(8)의 구체예로서는, 이더넷(등록 상표) 등의 로컬 에어리어 네트워크를 들 수 있다. 무선 통신 네트워크(7)의 구체예로서는, 제5 세대 이동 통신 시스템(5G) 등의 고속 무선 통신 네트워크를 들 수 있다. 통신 서버(3)는, 컨트롤러 서버(2)로부터 떨어진 장소에 마련되어 있어도 좋고, 컨트롤러 서버(2)에 근접한 장소에 마련되어고 있어도 좋고, 컨트롤러 서버(2)와 동일한 케이스 내에 마련되어 있어도 좋다.
통신 서버(3)는, 통신 컨트롤러(200)와, 무선 통신 기지국(201)을 갖는다. 통신 컨트롤러(200)는, 컨트롤러 서버(2)와 유선 통신 네트워크(8)를 통해 통신하며, 복수의 머신(4)과 무선 통신 기지국(201)을 통해 통신한다. 무선 통신 기지국(201)은, 복수의 머신(4)의 무선 통신 단말(301)(후술)과 무선 통신 네트워크(7)를 통해 통신한다.
복수의 머신(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)와, 제1 아암(33)과, 제2 아암(34)과, 제3 아암(35)과, 선단부(36)와, 액츄에이터(41, 42, 43, 44, 45, 46)를 갖는다. 베이스부(31)는, 무인 반송차(21) 상에 고정되어 있다. 선회부(32)는, 연직인 축선(51) 둘레로 선회하도록 베이스부(31) 상에 마련되어 있다. 제1 아암(33)은, 축선(51)에 교차(예컨대 직교)하는 축선(52) 둘레로 요동하도록 선회부(32)에 접속되어 있다. 교차는, 소위 입체 교차와 같이 비틀림의 관계에 있는 경우도 포함한다. 제2 아암(34)은, 축선(52)에 실질적으로 평행인 축선(53) 둘레로 요동하도록 제1 아암(33)의 선단부에 접속되어 있다. 제3 아암(35)은, 제2 아암(34)을 따른 축선(54) 둘레로 선회하며, 축선(54)에 교차(예컨대 직교)하는 축선(55) 둘레로 요동하도록, 제2 아암(34)의 선단부에 접속되어 있다. 선단부(36)는, 축선(55)에 교차(예컨대 직교)하는 축선(56) 둘레로 선회하도록 제3 아암(35)의 선단부에 접속되어 있다. 선단부(36)에는, 흡착 노즐, 로봇 핸드, 또는 가공 툴 등, 용도에 따라 여러 가지 툴이 마련된다.
액츄에이터(41, 42, 43, 44, 45, 46)는, 예컨대 전동 모터 및 감속기를 포함하여, 로봇(22)을 구동한다. 예컨대 액츄에이터(41)는 축선(51) 둘레로 선회부(32)를 선회시키고, 액츄에이터(42)는 축선(52) 둘레로 제1 아암(33)을 요동시키고, 액츄에이터(43)는 축선(53) 둘레로 제2 아암(34)을 요동시키고, 액츄에이터(44)는 축선(54) 둘레로 제3 아암(35)을 선회시키고, 액츄에이터(45)는 축선(55) 둘레로 제3 아암(35)을 요동시키고, 액츄에이터(46)는 축선(56) 둘레로 선단부(36)를 선회시킨다.
또한, 로봇(22)의 구체적인 구성은 적절하게 변경 가능하다. 예컨대 로봇(22)은, 상기 6축의 수직 다관절 로봇에 1축의 관절을 더 추가한 7축의 용장형 로봇이어도 좋고, 소위 스칼라형의 다관절 로봇이어도 좋다. 또한, 로봇(22)은 소위 패러렐 링크형의 로봇이어도 좋다.
도 1로 되돌아가서, 정치 로봇(30)은, 작업 에어리어의 마루면 등에 정치된다. 정치 로봇(30)의 구체예로서는, 로봇(22)과 마찬가지로, 수직 다관절 로봇, 스칼라형의 다관절 로봇, 패러렐 링크형의 로봇 등을 들 수 있다. NC 공작 기계(60)는, 머신 지령이 포함하는 가공 지령에 따라, 절삭 가공 등의 기계 가공을 워크에 실시한다. 환경 센서(70)는, 머신 지령이 포함하는 센싱 지령에 따라, 시스템의 환경 정보를 취득한다. 환경 센서(70)의 구체예로서는, 시스템의 환경 화상을 취득하는 카메라, 시스템의 환경 온도를 취득하는 온도 센서 등을 들 수 있다. 컨베이어(80)는, 머신 지령이 포함하는 반송 지령에 따라, 워크를 반송한다. 컨베이어(80)의 구체예로서는, 벨트 컨베이어, 롤러 컨베이어 등을 들 수 있다.
로컬 컨트롤러(300)는, 통신 서버(3)와 무선 통신 단말(301)을 통해 통신하며, 무선 통신 단말(301)을 통해 통신 서버(3)로부터 취득한 머신 지령에 따라 머신 본체(10)에 모션을 실현시킨다. 또한, 로컬 컨트롤러(300)는, 머신 본체(10)로부터 취득한 응답 정보를, 무선 통신 단말(301)을 통해 통신 서버(3)에 피드백한다. 무선 통신 단말(301)은, 로컬 컨트롤러(300)로부터의 지령에 따라, 무선 통신 기지국(201)과 무선 통신 네트워크(7)를 통해 통신한다.
제5 세대 이동 통신 시스템(5G)의 실용화 등에 의해, 고속 무선 통신이 가능해졌기 때문, 무선 통신을 통한 머신 제어의 실현 가능성도 높아지고 있다. 머신 제어에 있어서는, 모션 프로그램의 실행에 의한 머신 지령의 생성과, 머신 지령에 따른 머신(4)의 제어를 소정의 컨트롤 사이클로 반복할 필요가 있다. 전술한 바와 같이 머신 지령이 무선 통신 네트워크(7)를 통해 송수신되는 경우, 무선 통신에 기인하여, 머신(4)측에서의 머신 지령의 수신 타이밍의 변동이 확대되어, 머신(4)측에서 머신 지령을 컨트롤 사이클로 수신하는 것이 곤란해질 가능성이 있다. 또한, 응답 정보가 무선 통신 네트워크(7)를 통해 송수신되는 경우, 무선 통신에 기인하여, 컨트롤러(100)측에서의 응답 정보의 수신 타이밍의 변동이 확대되어, 컨트롤러(100)측에서 응답 정보를 컨트롤 사이클로 수신하는 것이 곤란해질 가능성이 있다.
이에 대하여, 머신 제어 시스템(1)은, 컨트롤러측(무선 통신 네트워크(7)의 컨트롤러(100)측)으로부터 무선 통신 네트워크(7)를 통해 송신된 머신 지령을, 그 사용 타이밍까지 머신측(무선 통신 네트워크(7)의 머신(4)측)에서 버퍼링하도록 구성되어 있어도 좋다. 이 경우, 컨트롤러측으로부터의 머신 지령의 송신을 앞당겨, 머신측에서의 머신 지령의 수신 타이밍부터 상기 머신 지령의 사용 타이밍까지의 기간에 여유를 갖게 할 수 있다. 이 여유에 의해, 무선 통신에 기인하여 확대된 수신 타이밍의 변동을 흡수하여, 버퍼한 머신 지령을 컨트롤 사이클에 동기한 타이밍에 사용할 수 있다.
또한, 머신 제어 시스템(1)은, 머신측으로부터 무선 통신 네트워크(7)를 통해 송신된 응답 정보를, 그 사용 타이밍까지 컨트롤러측에서 버퍼링하도록 구성되어 있어도 좋다. 이 경우, 머신측으로부터의 응답 정보의 송신을 앞당겨, 컨트롤러측에서의 응답 정보의 수신 타이밍으로부터 상기 응답 정보의 사용 타이밍까지의 기간에 여유를 갖게 할 수 있다. 이 여유에 의해, 무선 통신에 기인하여 확대된 수신 타이밍의 변동을 흡수하여, 버퍼한 응답 정보를 컨트롤 사이클에 동기한 타이밍에 사용할 수 있다.
이상과 같이, 머신 지령을 그 사용 타이밍까지 머신측에서 버퍼링하고, 응답 정보를 그 사용 타이밍까지 컨트롤러측에서 버퍼링하는 구성에 따르면, 응답 정보의 취득과, 응답 정보에 기초한 모션 프로그램의 실행에 의한 머신 지령의 생성과, 머신 지령에 따른 머신(4)의 제어를 컨트롤 사이클로 반복하는 것이 가능해진다.
이하, 컨트롤러(100)와, 통신 컨트롤러(200)와, 로컬 컨트롤러(300)의 구성을 보다 상세하게 예시한다.
(컨트롤러)
컨트롤러(100)는, 대응하는 머신(4)(이하, 「관할 머신(4)」이라고 함)이 송신한 응답 정보를, 유선 통신 네트워크(8)를 통해 통신 서버(3)로부터 수신하는 것과, 수신한 응답 정보에 기초하여 모션 프로그램을 실행하여, 관할 머신(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)으로부터 수신한 응답 정보를 기억하여, 상기 응답 정보에 부가된 제2 사이클 정보에 대응하는 컨트롤 사이클에 있어서 상기 응답 정보를 호출한다. 제2 사이클 정보는, 응답 정보의 사용 타이밍(예컨대, 상기 응답 정보를 사용할 때의 컨트롤 사이클수. 이하, 「사용시 사이클수」라고 함)을 나타내는 정보이다. 제2 사이클 정보는, 사용시 사이클수 자체여도 좋고, 응답 정보가 취득된 타이밍에 있어서의 관할 로컬 컨트롤러(300)의 컨트롤 사이클수(이하, 「취득시 사이클수」라고 함)여도 좋다.
제2 사이클 정보가 상기 사용시 사이클수인 경우, 컨트롤러측 타이밍 조정부(116)는, 컨트롤 사이클수가 상기 사용시 사이클수가 되는 컨트롤 사이클에 있어서 상기 응답 정보를 호출한다. 컨트롤 사이클수가 상기 사용시 사이클수가 되는 컨트롤 사이클에 있어서 상기 응답 정보를 호출하는 것은, 상기 컨트롤 사이클에 있어서 사용 가능한 타이밍에 상기 응답 정보를 호출하는 것을 의미한다. 이 때문에, 상기 컨트롤 사이클에 있어서 사용되도록, 상기 컨트롤 사이클에 앞서 상기 응답 정보를 호출하는 것도, 상기 컨트롤 사이클에 있어서 상기 응답 정보를 호출하는 것에 포함된다. 제2 사이클 정보가 상기 취득시 사이클수인 경우, 컨트롤러측 타이밍 조정부(116)는, 제2 사이클 정보에 기초하여(예컨대 소정수를 가산하여) 사용시 사이클수를 산출하여, 컨트롤 사이클수가 상기 사용시 사이클수가 되는 컨트롤 사이클에 있어서 상기 응답 정보를 호출한다.
컨트롤러측 타이밍 조정부(116)는, 호출한 응답 정보를 동기 통신부(114)에 출력하고, 동기 통신부(114)는 상기 응답 정보를 수신 정보 기억부(112)에 저장한다. 이에 의해, 컨트롤러(100)의 모션 모듈(113)은, 컨트롤러측 타이밍 조정부(116)가 호출한 응답 정보에 기초하여, 모션 프로그램을 실행하게 된다.
컨트롤러(100)는, 상기 컨트롤 사이클을 생성하는 것과, 상기 컨트롤 사이클의 사이클 타이밍을 관할 머신(4)에 송신하는 것을 더 실행하도록 구성되어 있어도 좋다. 후술하는 바와 같이, 사이클 타이밍은, 컨트롤 사이클에 동기한 컨트롤 사이클을 관할 머신(4)에 있어서 생성하는 데 이용된다. 예컨대 컨트롤러(100)는, 컨트롤러측 시각 생성부(121)와, 컨트롤러측 사이클 생성부(122)와, 타이밍 송신부(123)와, 사이클 카운터(124)를 더 가져도 좋다.
컨트롤러측 시각 생성부(121)는, 시각 서버(5)가 생성한 시각(이하, 「글로벌 시각」이라고 함)에 동기하여, 컨트롤러측 시각을 생성한다. 시각 서버(5)는, 유선 통신 네트워크(8)를 통해 컨트롤러 서버(2)에 접속된 컴퓨터이며, 글로벌 시각을 출력한다. 시각 서버(5)는, 컨트롤러 서버(2)에 포함되어 있어도 좋고, 통신 서버(3)에 포함되어 있어도 좋다. 예컨대 컨트롤러측 시각 생성부(121)는, 유선 통신 네트워크(8)를 통한 TSN(Time Sensitive Networking) 통신 등, 시각 동기성을 보증하는 통신에 의해 동기 통신부(114)가 시각 서버(5)로부터 수신한 글로벌 시각을 취득하고, 취득한 글로벌 시각에 동기하여 컨트롤러측 시각을 생성한다. 예컨대 컨트롤러측 시각 생성부(121)는, 타이머(195)(후술)가 카운트하는 시각을, 글로벌 시각에 맞춘다.
컨트롤러측 사이클 생성부(122)는, 컨트롤러측 시각에 기초하여, 컨트롤 사이클을 생성한다. 예컨대 컨트롤러측 사이클 생성부(122)는, 컨트롤러 시각에 기초하여, 컨트롤 사이클의 개시 타이밍을 셋트하고, 컨트롤러측 시각이 상기 개시 타이밍에 달한 시점부터, 컨트롤 사이클로 사이클 펄스를 반복 생성한다.
타이밍 송신부(123)는, 컨트롤 사이클의 사이클 타이밍을, 통신 컨트롤러(200)를 통해 관할 로컬 컨트롤러(300)에 송신한다. 사이클 타이밍은, 컨트롤측 시각에서의 컨트롤 사이클의 위상을 나타내는 정보이다. 예컨대 사이클 타이밍은, 컨트롤러측 사이클 생성부(122)에 의한 사이클 펄스의 생성 타이밍이다. 타이밍 송신부(123)는, 컨트롤러측 사이클 생성부(122)가 컨트롤 사이클의 생성을 개시하는 데 앞서, 상기 개시 타이밍을 사이클 타이밍으로서 관할 로컬 컨트롤러(300)에 송신하여도 좋고, 컨트롤러측 사이클 생성부(122)가 컨트롤 사이클의 생성을 개시한 후에, 2번째 이후의 사이클 펄스의 생성 타이밍을 사이클 타이밍으로서 관할 로컬 컨트롤러(300)에 송신하여도 좋다. 타이밍 송신부(123)는, 사이클 타이밍을 마스터 타이밍으로서 다른 컨트롤러(100)에 송신하여도 좋다. 이 경우, 다른 컨트롤러(100)의 컨트롤러측 사이클 생성부(122)는, 유선 통신 네트워크(8)를 통해 마스터 타이밍을 취득하고, 취득한 마스터 타이밍과, 컨트롤러측 시각에 기초하여 컨트롤 사이클을 생성하여도 좋다. 예컨대 컨트롤러측 사이클 생성부(122)는, 취득한 마스터 타이밍에 기초하여 상기 개시 타이밍을 셋트하여도 좋다.
타이밍 송신부(123)는, 관할 로컬 컨트롤러(300)의 머신측 타이밍 조정부(315)(후술)가 컨트롤 사이클의 생성에 실패한 경우, 앞서 송신한 사이클 타이밍보다 후의 사이클 타이밍을 관할 로컬 컨트롤러(300)에 재차 송신하여도 좋다. 예컨대 타이밍 송신부(123)는, 관할 로컬 컨트롤러(300)로부터의 셋트 완료 통지의 수신을 대기하여, 셋트 완료 통지를 수신하지 못한 채로 컨트롤러측 시각이 사이클 타이밍에 달한 경우에, 머신측 타이밍 조정부(315)가 컨트롤 사이클의 생성에 실패하였다고 판정한다. 셋트 완료 통지는, 관할 로컬 컨트롤러(300)에 있어서의 개시 타이밍의 셋트가 완료된 것의 통지이다.
사이클 카운터(124)는, 컨트롤러측 사이클 생성부(122)가 생성한 컨트롤 사이클수(예컨대 상기 사이클 펄스의 수)를 카운트한다. 모션 모듈(113)은, 사이클 카운터(124)에 의해 카운트된 컨트롤 사이클수에 기초하여 모션 프로그램을 실행한다. 예컨대 모션 모듈(113)은, 컨트롤 사이클수가 카운트 업될 때마다, 실행 대상을 현재 실행 중인 모션 지령으로부터 다음 모션 지령으로 변경한다.
컨트롤러(100)는, 컨트롤 사이클에 동기한 통신 사이클을 생성하도록 구성되어 있어도 좋다. 예컨대 컨트롤러(100)는, 통신 사이클 생성부(131)와, 사이클 카운터(132)를 더 가져도 좋다.
통신 사이클 생성부(131)는, 컨트롤 사이클에 동기한 통신 사이클을 생성한다. 예컨대 통신 사이클 생성부(131)는, 컨트롤러측 시각과, 컨트롤 사이클의 사이클 타이밍에 기초하여 통신 사이클을 생성한다. 예컨대 통신 사이클 생성부(131)는, 사이클 타이밍에 기초하여, 컨트롤 사이클의 개시 타이밍에 동기한 개시 타이밍을 셋트하고, 컨트롤러측 시각이 상기 개시 타이밍에 달한 시점부터, 통신 사이클로 사이클 펄스를 반복 생성한다. 또한, 컨트롤 사이클의 개시 타이밍에 동기한 개시 타이밍은, 컨트롤 사이클의 개시 타이밍에 대하여 소정 기간(예컨대 컨트롤 사이클의 사이클 길이의 절반) 어긋난 개시 타이밍을 포함한다. 통신 사이클의 사이클 길이는, 컨트롤 사이클의 사이클 길이의 정수배(1배를 포함함)이다. 통신 사이클의 사이클 길이는, 컨트롤 사이클의 사이클 길이의 정수분의 1이어도 좋다.
사이클 카운터(132)는, 통신 사이클 생성부(131)가 생성한 통신 사이클수(예컨대 상 기사이클 펄스의 수)를 카운트한다. 통신 사이클은, 컨트롤 사이클에 동기하여 생성되기 때문에, 통신 사이클수에 기초하여 컨트롤 사이클수를 검지하는 것이 가능하다. 그래서 컨트롤러측 타이밍 조정부(116)는, 컨트롤 사이클수가 사용시 사이클수가 되는 컨트롤 사이클에 있어서 응답 정보를 호출하는 것을, 통신 사이클수에 기초하여 행하여도 좋다.
컨트롤러(100)는, 머신 지령에 대하여, 그 사용 타이밍을 나타내는 정보를 부가하도록 구성되어 있어도 좋다. 예컨대 컨트롤러(100)는, 부가부(125)를 더 가져도 좋다. 부가부(125)는, 머신 지령에 제1 사이클 정보를 부가한다. 제1 사이클 정보는, 관할 머신(4)에 있어서, 어느 머신측 컨트롤 사이클로 머신 지령을 호출할지를 지정하는 정보이다. 제1 사이클 정보가 부가된 머신 지령을 수신한 관할 로컬 컨트롤러(300)는, 제1 사이클 정보에 기초하여 상기 사용 타이밍(예컨대, 상기 머신 지령을 사용할 때의 컨트롤 사이클수. 이하, 「사용시 사이클수」라고 함)을 검지하고, 상기 사용 타이밍까지 상기 머신 지령을 버퍼링한다. 예컨대 부가부(125)는, 현재의 컨트롤 사이클수에 기초하여 사용시 사이클수를 산출하고, 사용시 사이클수 자체를 제1 사이클 정보로서 머신 지령에 부가한다. 일례로서, 부가부(125)는 현재의 사이클수에 소정수를 가산하여 사용시 사이클수를 산출한다. 부가부(125)는, 현재의 컨트롤 사이클수를 제1 사이클 정보로서 머신 지령에 부가하여도 좋다. 이 경우, 관할 머신(4)이 제1 사이클 정보에 기초하여(예컨대 소정수를 가산하여) 사용시 사이클수를 산출한다.
컨트롤러(100)는, 머신 지령에 포함되는 제1 사이클 정보에 기초하여 상기 머신 지령의 송신 지연을 검출하도록 구성되어 있어도 좋다. 또한, 컨트롤러(100)는, 응답 정보에 포함되는 제2 사이클 정보에 기초하여 상기 응답 정보의 수신 지연을 검출하도록 구성되어 있어도 좋다. 예컨대 컨트롤러(100)는, 사이클 체크부(133)를 더 가져도 좋다.
사이클 체크부(133)는, 머신 지령에 포함되는 제1 사이클 정보에 기초하여, 상기 머신 지령의 송신 지연을 검출한다. 머신 지령의 송신 지연은, 로컬 컨트롤러(300)에 의한 머신 지령의 호출에 맞추지 못한 레벨의 지연을 의미한다. 예컨대 사이클 체크부(133)는, 동기 통신부(114)가 머신 지령을 송신할 때에, 현재의 컨트롤 사이클수가, 상기 머신 지령의 상기 사용시 사이클수 이상으로 되어있는 경우에 머신 지령의 송신 지연을 검출한다.
사이클 체크부(133)는, 응답 정보에 포함되는 제2 사이클 정보에 기초하여, 상기 응답 정보의 수신 지연을 검출하여도 좋다. 응답 정보의 수신 지연은, 컨트롤러측 타이밍 조정부(116)에 의한 응답 정보의 호출에 맞추지 못한 레벨의 지연을 의미한다. 예컨대 사이클 체크부(133)는, 관할 머신(4)으로부터 응답 정보를 수신한 후에, 현재의 컨트롤 사이클수가, 상기 응답 정보의 상기 사용시 사이클수 이상으로 되어 있는 경우에 응답 정보의 수신 지연을 검출한다.
전술한 바와 같이, 통신 사이클은, 컨트롤 사이클에 동기하여 생성되기 때문에, 통신 사이클수에 기초하여 컨트롤 사이클수를 검지하는 것이 가능하다. 그래서 사이클 체크부(133)는, 머신 지령의 송신 지연을 제1 사이클 정보와 통신 사이클수에 기초하여 검출하고, 응답 정보의 수신 지연을 제2 사이클 정보와 통신 사이클수에 기초하여 검출하여도 좋다.
사이클 체크부(133)는, 머신 지령의 송신 지연을 검출한 경우에, 상기 머신 지령의 송신을 캔슬하여도 좋다. 예컨대 컨트롤러측 타이밍 조정부(116)는, 머신 지령의 송신 지연을 검출한 경우에, 통신 컨트롤러(200)에의 상기 머신 지령의 송신에 앞서, 상기 머신 지령을 파기한다. 사이클 체크부(133)는, 응답 정보의 수신 지연을 검출한 경우에, 상기 응답 정보를 파기하여도 좋다.
동기 통신부(114)는, 유선 통신 네트워크(8)를 통해, 복수의 컨트롤러(100)에 있어서의 다른 컨트롤러(100)의 컨트롤러측 타이밍 조정부(116)에 동기 통신 데이터를 송신하여도 좋다. 동기 통신 데이터의 구체예로서는, 관할 머신(4)의 모션과, 다른 컨트롤러(100)가 대응하는 머신(4)(이하, 「다른 머신(4)」이라고 함)의 모션을 협조시키기 위해 이용되는 관할 머신(4)의 스테이터스 정보(예컨대 관할 머신(4)에의 머신 지령 또는 관할 머신(4)으로부터의 응답 정보)를 들 수 있다.
동기 통신부(114)가, 다른 컨트롤러(100)의 컨트롤러측 타이밍 조정부(116)에 동기 통신 데이터를 송신하는 경우, 부가부(125)는, 동기 통신 데이터에 제1 사이클 정보를 부가하여도 좋다.
제1 사이클 정보가 부가된 동기 통신 데이터를 수신한 다른 컨트롤러(100)의 컨트롤러측 타이밍 조정부(116)는, 제1 사이클 정보에 기초하여 상기 동기 통신 데이터의 사용 타이밍(예컨대, 상기 동기 통신 데이터를 사용할 때의 컨트롤 사이클수. 이하, 「사용시 사이클수」라고 함)을 검지하고, 상기 사용 타이밍까지 상기 동기 통신 데이터를 버퍼링한다. 예컨대 부가부(125)는, 현재의 컨트롤 사이클수에 기초하여 사용시 사이클수를 산출하고, 사용시 사이클수 자체를 제1 사이클 정보로서 동기 통신 데이터에 부가한다. 일례로서, 부가부(125)는 현재의 사이클수에 소정수를 가산하여 사용시 사이클수를 산출한다. 부가부(125)는, 현재의 컨트롤 사이클수(이하, 「부가시 사이클수」라고 함)를 제1 사이클 정보로서 동기 통신 데이터에 부가하여도 좋다.
다른 컨트롤러(100)의 컨트롤러측 타이밍 조정부(116)는, 동기 통신 데이터를 기억하여, 상기 동기 통신 데이터에 부가된 제1 사이클 정보에 대응하는 컨트롤 사이클에 있어서 상기 동기 통신 데이터를 호출한다. 제1 사이클 정보가 상기 사용시 사이클수인 경우, 컨트롤러측 타이밍 조정부(213)는, 컨트롤 사이클수가 상기 사용시 사이클수가 되는 컨트롤 사이클에 있어서 상기 동기 통신 데이터를 호출한다. 제1 사이클 정보가 상기 부가시 사이클수인 경우, 컨트롤러측 타이밍 조정부(213)는, 제1 사이클 정보에 기초하여(예컨대 소정수를 가산하여) 사용시 사이클수를 산출하고, 컨트롤 사이클수가 상기 사용시 사이클수가 되는 컨트롤 사이클에 있어서 상기 동기 통신 데이터를 호출한다.
컨트롤러측 타이밍 조정부(116)는, 호출한 동기 통신 데이터를 동기 통신부(114)에 출력하고, 동기 통신부(114)는 상기 동기 통신 데이터를 수신 정보 기억부(112)에 저장한다. 이에 의해, 다른 컨트롤러(100)의 모션 모듈(113)은, 컨트롤러측 타이밍 조정부(116)가 호출한 응답 정보에 기초하여, 모션 프로그램을 실행하게 된다.
이와 같이, 동기 통신 데이터는, 다른 컨트롤러(100)의 컨트롤러측 타이밍 조정부(116)에 있어서 버퍼링되어, 컨트롤 사이클에 동기한 타이밍에 호출된다. 이 때문에, 동기 통신부(114)에 의한 동기 통신 데이터의 송신 자체는, 컨트롤 사이클에 동기하지 않아도 좋다.
동기 통신부(114)가 송신하는 데이터가, 다른 컨트롤러(100) 앞의 동기 통신 데이터를 포함하는 경우, 사이클 체크부(133)는, 동기 통신 데이터에 포함되는 제1 사이클 정보에 기초하여, 상기 동기 통신 데이터의 송신 지연을 검출하여도 좋다. 동기 통신 데이터의 송신 지연은, 다른 컨트롤러(100)의 컨트롤러측 타이밍 조정부(116)에 의한 동기 통신 데이터의 호출에 맞추지 못한 레벨의 지연을 의미한다. 예컨대 사이클 체크부(133)는, 동기 통신부(114)가 동기 통신 데이터를 송신할 때에, 현재의 통신 사이클수에 대응하는 컨트롤 사이클수가, 상기 동기 통신 데이터의 상기 사용시 사이클수 이상으로 되어 있는 경우에 동기 통신 데이터의 송신 지연을 검출한다. 사이클 체크부(133)는, 동기 통신 데이터의 송신 지연을 검출한 경우에, 상기 동기 통신 데이터의 송신을 캔슬하여도 좋다.
다른 컨트롤러(100)의 사이클 체크부(133)가, 동기 통신 데이터에 포함되는 제1 사이클 정보에 기초하여, 상기 동기 통신 데이터의 수신 지연을 검출하여도 좋다. 동기 통신 데이터의 수신 지연은, 컨트롤러측 타이밍 조정부(116)에 의한 동기 통신 데이터의 호출에 맞추지 못한 레벨의 지연을 의미한다. 예컨대 사이클 체크부(133)는, 컨트롤러측 타이밍 조정부(116) 앞의 동기 통신 데이터를 수신하였을 때에, 현재의 컨트롤 사이클수가, 상기 동기 통신 데이터의 상기 사용시 사이클수 이상으로 되어 있는 경우에 동기 통신 데이터의 수신 지연을 검출한다. 사이클 체크부(133)는, 동기 통신 데이터의 수신 지연을 검출한 경우에, 상기 동기 통신 데이터를 파기하여도 좋다.
컨트롤러(100)는, 동기 통신부(114)가 송신하는 데이터가 관할 머신(4) 앞인지 다른 컨트롤러(100) 앞인지에 기초하여, 상기 데이터의 송신처를 전환하도록 구성되어 있어도 좋다. 예컨대 컨트롤러(100)는, 스위치(134)를 갖는다.
스위치(134)는, 동기 통신부(114)가 송신하는 데이터가 관할 머신(4) 앞이면, 통신 서버(3)를 통해 관할 로컬 컨트롤러(300)에 상기 데이터를 송신하고, 상기 데이터가 다른 컨트롤러(100) 앞이면, 유선 통신 네트워크(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)는, 응답 정보 기억부(312)가 기억하는 응답 정보가 나타내는 동작 속도를 속도 지령에 추종시키도록 머신 본체(10)를 구동한다. 머신 지령이 구동력 지령인 경우, 머신 제어부(313)는, 응답 정보 기억부(312)가 기억하는 응답 정보가 나타내는 구동력을 구동력 지령에 추종시키도록 머신 본체(10)를 구동한다.
머신 제어부(313)는, 머신측 컨트롤 사이클보다 짧은 사이클 길이의 머신 사이클로 머신 본체(10)를 제어하여도 좋다. 각 머신 사이클에 있어서, 머신 제어부(313)는, 머신 지령과, 응답 정보 기억부(312)가 기억하는 과거의 응답 정보의 편차를 축소하도록 머신 본체(10)를 구동하고, 이에 따른 머신 본체(10)의 응답 정보를 취득하여 응답 정보 기억부(312)에 저장한다. 머신 사이클의 사이클 길이는, 예컨대 머신측 컨트롤 사이클의 사이클 길이의 정수분의 1이다.
예컨대 머신 제어부(313)는, 중간 컨트롤러(331)와, 서보(332)를 갖는다. 중간 컨트롤러(331)는, 머신 지령과, 응답 정보 기억부(312)가 기억하는 과거의 응답 정보의 편차를 축소하도록, 머신 본체(10)의 각 액츄에이터에 대한 구동 데이터(예컨대 위치 지령, 속도 지령, 또는 구동력 지령)를 머신 사이클로 생성한다. 서보(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)가 수신한 머신 지령을 기억하여, 상기 머신 지령에 부가된 제1 사이클 정보에 대응하는 머신측 컨트롤 사이클에 있어서 상기 머신 지령을 호출한다. 제1 사이클 정보가, 상기 사용시 사이클수인 경우, 머신측 타이밍 조정부(315)는, 컨트롤 사이클수가 사용시 사이클수가 되는 머신측 컨트롤 사이클에 있어서 상기 머신 지령을 호출한다. 컨트롤 사이클수가 상기 사용시 사이클수가 되는 머신측 컨트롤 사이클에 있어서 상기 머신 지령을 호출하는 것은, 상기 머신측 컨트롤 사이클에 있어서 사용 가능한 타이밍에 상기 머신 지령을 호출하는 것을 의미한다. 이 때문에, 상기 머신측 컨트롤 사이클에 있어서 사용되도록, 상기 머신측 컨트롤 사이클에 앞서 상기 머신 지령을 호출하는 것도, 상기 머신측 컨트롤 사이클에 있어서 상기 머신 지령을 호출하는 것에 포함된다. 제1 사이클 정보가 상기 부가시 사이클수인 경우, 머신측 타이밍 조정부(315)는, 제1 사이클 정보에 기초하여(예컨대 소정수를 가산하여) 사용시 사이클수를 산출하고, 컨트롤 사이클수가 상기 사용시 사이클수가 되는 머신측 컨트롤 사이클에 있어서 상기 머신 지령을 호출한다.
머신측 타이밍 조정부(315)는, 호출한 머신 지령을 지령 기억부(311)에 저장한다. 이에 의해, 머신 제어부(313)에 의한 머신 본체(10)의 제어는, 머신측 타이밍 조정부(315)가 호출한 머신 지령에 기초하여 행해지게 된다.
로컬 컨트롤러(300)는, 대응하는 컨트롤러(100)에 있어서의 컨트롤 사이클에 동기한 머신측 컨트롤 사이클을 생성하도록 구성되어 있어도 좋다. 예컨대 로컬 컨트롤러(300)는, 머신측 시각 생성부(321)와, 머신측 사이클 생성부(322)와, 사이클 카운터(323)를 더 가져도 좋다.
머신측 시각 생성부(321)는, 상기 글로벌 시각에 동기하여 머신측 시각을 생성한다. 예컨대 머신측 시각 생성부(321)는, 무선 통신 네트워크(7)를 통한 TSN 통신 등, 시각 동기성을 보증하는 통신에 의해 단말 통신부(314)가 통신 서버(3)로부터 수신한 글로벌 시각을 취득하고, 취득한 글로벌 시각에 동기하여 머신측 시각을 생성한다. 머신측 시각 생성부(321)는, 유선 통신 네트워크(8)를 통해 시각 서버(5) 또는 대응하는 컨트롤러(100)로부터 글로벌 시각을 취득하여도 좋다. 예컨대 머신측 시각 생성부(321)는, 타이머(395)(후술)가 카운트하는 시각을, 글로벌 시각에 맞춘다.
머신측 사이클 생성부(322)는, 무선 통신 네트워크(7)를 통해 단말 통신부(314)가 통신 서버(3)로부터 수신한 사이클 타이밍을 취득하고, 취득한 사이클 타이밍에 기초하여, 대응하는 컨트롤러(100)에 있어서의 컨트롤 사이클에 동기한 머신측 컨트롤 사이클을 생성한다. 예컨대 머신측 사이클 생성부(322)는, 머신측 시각과, 사이클 타이밍에 기초하여 머신측 컨트롤 사이클을 생성한다. 예컨대 머신측 사이클 생성부(322)는, 사이클 타이밍에 기초하여, 대응하는 컨트롤러(100)에 있어서의 컨트롤 사이클의 개시 타이밍에 동기한 개시 타이밍을 셋트하여, 머신측 시각이 상기 개시 타이밍에 달한 시점부터, 머신측 컨트롤 사이클로 사이클 펄스를 반복 생성한다. 머신측 사이클 생성부(322)는, 개시 타이밍의 셋트가 완료된 시점에, 셋트 완료 통지를 컨트롤러(100)에 송신하여도 좋다. 머신측 사이클 생성부(322)가 생성하는 머신측 컨트롤 사이클의 사이클 길이는, 컨트롤러(100)에 있어서의 컨트롤 사이클의 사이클 길이와 동일하다.
사이클 카운터(323)는, 머신측 사이클 생성부(322)가 생성한 컨트롤 사이클수(예컨대 상기 사이클 펄스의 수)를 카운트한다.
로컬 컨트롤러(300)는, 단말 통신부(314)가 통신 서버(3)에 송신하는 응답 정보에 대하여, 그 사용 타이밍을 나타내는 정보를 부가하도록 구성되어 있어도 좋다. 예컨대 로컬 컨트롤러(300)는, 부가부(324)를 더 가져도 좋다. 부가부(324)는, 응답 정보에 상기 제2 사이클 정보를 부가한다. 전술한 바와 같이, 단말 통신부(314)가 송신한 응답 정보는 대응하는 컨트롤러(100)의 컨트롤러측 타이밍 조정부(116)에 있어서 버퍼링되어, 컨트롤 사이클에 동기한 타이밍에 호출된다. 이 때문에, 단말 통신부(314)에 의한 응답 정보의 송신 자체는, 컨트롤 사이클에 동기하지 않아도 좋다.
로컬 컨트롤러(300)는, 머신측 컨트롤 사이클에 동기한 머신 사이클를 생성하도록 구성되어 있어도 좋다. 예컨대 로컬 컨트롤러(300)는, 로컬 사이클 생성부(325)와, 사이클 카운터(326)를 더 갖는다.
로컬 사이클 생성부(325)는, 머신측 시각과, 사이클 타이밍에 기초하여 머신 사이클을 생성한다. 예컨대 로컬 사이클 생성부(325)는, 사이클 타이밍에 기초하여, 대응하는 컨트롤러(100)에 있어서의 컨트롤 사이클의 개시 타이밍에 동기한 개시 타이밍을 셋트하고, 머신측 시각이 상기 개시 타이밍에 달한 시점부터, 머신 사이클로 사이클 펄스를 반복 생성한다.
사이클 카운터(326)는, 로컬 사이클 생성부(325)가 생성한 머신 사이클수(예컨대 상기 사이클 펄스의 수)를 카운트한다.
(통신 컨트롤러)
컨트롤러측 타이밍 조정부(116), 통신 사이클 생성부(131), 사이클 카운터(132), 사이클 체크부(133) 및 스위치(134)는, 적어도 컨트롤러(100)와 통신 컨트롤러(200) 사이(컨트롤러(100) 내 및 통신 컨트롤러(200) 내를 포함함)에 마련되어 있으면 좋고, 반드시 컨트롤러(100)에 마련되어 있지 않아도 좋다. 이하, 컨트롤러측 타이밍 조정부, 통신 사이클 생성부, 사이클 카운터, 사이클 체크부 및 스위치가 통신 컨트롤러(200)에 마련되는 경우의 구성을 예시한다. 이 경우, 컨트롤러(100)는, 도 6에 나타내는 바와 같이, 컨트롤러측 타이밍 조정부(116), 통신 사이클 생성부(131), 사이클 카운터(132), 사이클 체크부(133) 및 스위치(134)를 갖지 않아도 좋다. 도 7에 나타내는 바와 같이, 통신 컨트롤러(200)는, 기능 블록으로서, 컨트롤러측 통신부(211)와, 머신측 통신부(212)와, 컨트롤러측 타이밍 조정부(213)를 갖는다.
컨트롤러측 통신부(211)는, 복수의 컨트롤러(100)의 각각으로부터, 유선 통신 네트워크(8)를 통해 머신 지령 또는 동기 통신 데이터를 수신하여, 컨트롤러(100)의 각각에 대하여, 유선 통신 네트워크(8)를 통해 응답 정보 또는 동기 통신 데이터를 송신한다.
머신측 통신부(212)는, 복수의 로컬 컨트롤러(300)의 각각에 대하여, 무선 통신 네트워크(7)를 통해 머신 지령을 송신하고, 복수의 로컬 컨트롤러(300)의 각각으로부터, 무선 통신 네트워크(7)를 통해 응답 정보를 취득한다.
컨트롤러측 타이밍 조정부(213)는, 머신측 통신부(212)가 취득한 응답 정보를 기억하여, 상기 응답 정보에 부가된 제2 사이클 정보에 대응하는 컨트롤 사이클에 있어서 상기 응답 정보를 호출한다. 제2 사이클 정보가 상기 사용시 사이클수인 경우, 컨트롤러측 타이밍 조정부(213)는, 컨트롤 사이클수가 상기 사용시 사이클수가 되는 컨트롤 사이클에 있어서 상기 응답 정보를 호출한다. 컨트롤 사이클수가 상기 사용시 사이클수가 되는 컨트롤 사이클에 있어서 상기 응답 정보를 호출하는 것은, 상기 컨트롤 사이클에 있어서 사용 가능한 타이밍에 상기 응답 정보를 호출하는 것을 의미한다. 이 때문에, 상기 컨트롤 사이클에 있어서 사용되도록, 상기 컨트롤 사이클에 앞서 상기 응답 정보를 호출하는 것도, 상기 컨트롤 사이클에 있어서 상기 응답 정보를 호출하는 것에 포함된다. 제2 사이클 정보가 상기 취득시 사이클수인 경우, 컨트롤러측 타이밍 조정부(213)는, 제2 사이클 정보에 기초하여(예컨대 소정수를 가산하여) 사용시 사이클수를 산출하고, 컨트롤 사이클수가 상기 사용시 사이클수가 되는 컨트롤 사이클에 있어서 상기 응답 정보를 호출한다.
컨트롤러측 통신부(211)는, 컨트롤러측 타이밍 조정부(213)가 호출한 응답 정보를, 대응하는 컨트롤러(100)에 대하여, 유선 통신 네트워크(8)를 통해 송신한다. 대응하는 컨트롤러(100)의 동기 통신부(114)는, 수신한 응답 정보를 수신 정보 기억부(112)에 저장한다. 이에 의해, 대응하는 컨트롤러(100)의 모션 모듈(113)은, 컨트롤러측 타이밍 조정부(213)가 호출한 응답 정보에 기초하여, 모션 프로그램을 실행하게 된다.
통신 컨트롤러(200)는, 복수의 컨트롤러(100) 중 적어도 어느 하나의 컨트롤 사이클에 동기한 통신 사이클을 생성하도록 구성되어 있어도 좋다. 예컨대 통신 컨트롤러(200)는, 시각 생성부(221)와, 통신 사이클 생성부(222)와, 사이클 카운터(223)를 더 가져도 좋다.
시각 생성부(221)는, 상기 글로벌 시각에 동기하여 통신 서버 시각을 생성한다. 예컨대 시각 생성부(221)는, 유선 통신 네트워크(8)를 통한 TSN 통신 등, 시각 동기성을 보증하는 통신에 의해 컨트롤러측 통신부(211)가 시각 서버(5)로부터 수신한 글로벌 시각을 취득하고, 취득한 글로벌 시각에 동기하여 통신 서버 시각을 생성한다. 예컨대 컨트롤러측 시각 생성부(121)는, 타이머(296)(후술)가 카운트하는 시각을, 글로벌 시각에 맞춘다. 시각 서버(5)가 통신 서버(3)에 포함되는 경우, 시각 생성부(221)는, 글로벌 시각 자체를 통신 서버 시각으로 한다.
통신 사이클 생성부(222)는, 복수의 컨트롤러(100) 중 적어도 어느 하나의 컨트롤 사이클에 동기한 통신 사이클을 생성한다. 예컨대 통신 사이클 생성부(222)는, 통신 서버 시각과, 복수의 컨트롤러(100) 중 적어도 어느 하나가 관할 로컬 컨트롤러(300)에 송신한 사이클 타이밍에 기초하여 통신 사이클을 생성한다. 예컨대 통신 사이클 생성부(222)는, 사이클 타이밍에 기초하여, 컨트롤 사이클의 개시 타이밍에 동기한 개시 타이밍을 셋트하고, 통신 서버 시각이 사익 개시 타이밍에 달한 시점부터, 통신 사이클로 사이클 펄스를 반복 생성한다. 또한, 컨트롤 사이클의 개시 타이밍에 동기한 개시 타이밍은, 컨트롤 사이클의 개시 타이밍에 대하여 소정 기간(예컨대 컨트롤 사이클의 사이클 길이의 절반) 어긋난 개시 타이밍을 포함한다.
통신 사이클 생성부(222)는, 개시 타이밍의 셋트가 완료된 시점에, 셋트 완료 통지를 컨트롤러(100)에 송신하여도 좋다. 통신 사이클의 사이클 길이는, 컨트롤 사이클의 사이클 길이의 정수배(1배를 포함함)이다. 통신 사이클의 사이클 길이는, 컨트롤 사이클의 사이클 길이의 정수분의 1이어도 좋다.
사이클 카운터(223)는, 통신 사이클 생성부(222)가 생성한 통신 사이클수(예컨대 상기 사이클 펄스의 수)를 카운트한다. 통신 사이클은, 컨트롤 사이클에 동기하여 생성되기 때문에, 통신 사이클수에 기초하여 컨트롤 사이클수를 검지하는 것이 가능하다. 그래서 컨트롤러측 타이밍 조정부(213)는, 컨트롤 사이클수가 사용시 사이클수가 되는 컨트롤 사이클에 있어서 응답 정보를 호출하는 것을, 통신 사이클수에 기초하여 행하여도 좋다.
통신 컨트롤러(200)는, 상기 마스터 타이밍을 생성하도록 구성되어 있어도 좋다. 예컨대 통신 컨트롤러(200)는 타이밍 마스터(224)를 가져도 좋다. 타이밍 마스터(224)는, 통신 서버 시각에 기초하여 마스터 타이밍을 생성한다. 타이밍 마스터(224)는, 생성한 마스터 타이밍을, 유선 통신 네트워크(8)를 통해 복수의 컨트롤러(100) 중 적어도 하나에 송신한다.
통신 컨트롤러(200)가 타이밍 마스터(224)를 갖고, 복수의 컨트롤러(100) 중 적어도 하나가 마스터 타이밍에 기초하여 컨트롤 사이클을 생성하는 경우, 통신 사이클 생성부(222)는, 통신 서버 시각과, 마스터 타이밍에 기초하여 통신 사이클을 생성한다. 예컨대 통신 사이클 생성부(222)는, 마스터 타이밍에 기초하여 상기 개시 타이밍을 셋트하여도 좋다. 복수의 컨트롤러(100) 중 적어도 하나에 있어서의 컨트롤 사이클의 생성과, 통신 컨트롤러(200)에 있어서의 통신 사이클의 생성이, 동일한 마스터 타이밍에 기초하여 행해짐으로써, 통신 사이클이 상기 컨트롤 사이클에 동기한다.
통신 컨트롤러(200)는, 머신 지령에 포함되는 제1 사이클 정보에 기초하여 상기 머신 지령의 송신 지연을 검출하도록 구성되어 있어도 좋다. 또한, 통신 컨트롤러(200)는, 응답 정보에 포함되는 제2 사이클 정보에 기초하여 상기 응답 정보의 수신 지연을 검출하도록 구성되어 있어도 좋다. 예컨대 통신 컨트롤러(200)는, 사이클 체크부(225)를 더 가져도 좋다.
사이클 체크부(225)는, 머신 지령에 포함되는 제1 사이클 정보에 기초하여, 상기 머신 지령의 송신 지연을 검출한다. 머신 지령의 송신 지연은, 로컬 컨트롤러(300)에 의한 머신 지령의 호출에 맞추지 못한 레벨의 지연을 의미한다. 예컨대 사이클 체크부(225)는, 머신측 통신부(212)가 로컬 컨트롤러(300)에 머신 지령을 송신하기 전에, 현재의 통신 사이클수에 대응하는 컨트롤 사이클수가, 상기 머신 지령의 상기 사용시 사이클수 이상으로 되어 있는 경우에 머신 지령의 송신 지연을 검출한다.
사이클 체크부(225)는, 응답 정보에 포함되는 제2 사이클 정보에 기초하여, 상기 응답 정보의 수신 지연을 검출하여도 좋다. 응답 정보의 수신 지연은, 컨트롤러측 타이밍 조정부(213)에 의한 응답 정보의 호출에 맞추지 못한 레벨의 지연을 의미한다. 예컨대 사이클 체크부(225)는, 머신측 통신부(212)가 머신(4)으로부터 응답 정보를 수신한 후에, 현재의 통신 사이클수에 대응하는 컨트롤 사이클수가, 상기 응답 정보의 상기 사용시 사이클수 이상으로 되어 있는 경우에 응답 정보의 수신 지연을 검출한다.
전술한 바와 같이, 통신 사이클은, 컨트롤 사이클에 동기하여 생성되기 때문에, 통신 사이클수에 기초하여 컨트롤 사이클수를 검지하는 것이 가능하다. 그래서 사이클 체크부(225)는, 머신 지령의 송신 지연을 제1 사이클 정보와 통신 사이클수에 기초하여 검출하고, 응답 정보의 수신 지연을 제2 사이클 정보와 통신 사이클수에 기초하여 검출하여도 좋다.
사이클 체크부(225)는, 머신 지령의 송신 지연을 검출한 경우에, 머신측 통신부(212)에 의한 상기 머신 지령의 송신을 캔슬하여도 좋다. 예컨대 사이클 체크부(225)는, 머신 지령의 송신 지연을 검출한 경우에, 머신측 통신부(212)에 의한 상기 머신 지령의 송신에 앞서, 상기 머신 지령을 파기한다. 사이클 체크부(225)는, 응답 정보의 수신 지연을 검출한 경우에, 상기 응답 정보를 파기하여도 좋다.
통신 컨트롤러(200)는, 컨트롤러(100)로부터 수신한 데이터가 관할 머신(4) 앞인지 다른 컨트롤러(100) 앞인지에 기초하여, 상기 데이터의 송신처를 전환하도록 구성되어 있어도 좋다. 이 경우, 컨트롤러(100)는, 통신 컨트롤러(200)에 송신하는 데이터에 그 수신처를 부가하도록 구성되어 있어도 좋다. 예컨대 통신 컨트롤러(200)는, 스위치(226)를 갖는다.
스위치(226)는, 컨트롤러측 통신부(211)가 하나의 컨트롤러(100)로부터 수신한 데이터가 관할 머신(4) 앞이면, 머신측 통신부(212)에 의해 무선 통신 네트워크(7)를 통해 관할 로컬 컨트롤러(300)에 상기 데이터를 송신시키고, 상기 데이터가 다른 컨트롤러(100) 앞이면, 컨트롤러측 통신부(211)에 의해 유선 통신 네트워크(8)를 통해, 상기 다른 컨트롤러(100)에 상기 데이터를 송신시킨다.
스위치(226)가, 컨트롤러측 통신부(211)에 의해 다른 컨트롤러(100)에 동기 통신 데이터를 송신시키는 경우, 컨트롤러측 타이밍 조정부(213)는, 동기 통신 데이터를 기억하여, 상기 동기 통신 데이터에 부가된 제1 사이클 정보에 대응하는 컨트롤 사이클에 있어서 상기 동기 통신 데이터를 호출한다. 제1 사이클 정보가 상기 사용시 사이클수인 경우, 컨트롤러측 타이밍 조정부(213)는, 컨트롤 사이클수가 상기 사용시 사이클수가 되는 컨트롤 사이클에 있어서 상기 동기 통신 데이터를 호출한다. 제1 사이클 정보가 상기 부가시 사이클수인 경우, 컨트롤러측 타이밍 조정부(213)는, 제1 사이클 정보에 기초하여(예컨대 소정수를 가산하여) 사용시 사이클수를 산출하고, 컨트롤 사이클수가 상기 사용시 사이클수가 되는 컨트롤 사이클에 있어서 상기 동기 통신 데이터를 호출한다.
컨트롤러측 통신부(211)는, 컨트롤러측 타이밍 조정부(213)가 호출한 동기 통신 데이터를, 그 수신처인 다른 컨트롤러(100)에 대하여, 유선 통신 네트워크(8)를 통해 송신한다. 다른 컨트롤러(100)의 동기 통신부(114)는, 수신한 동기 통신 데이터를 수신 정보 기억부(112)에 저장한다. 이에 의해, 다른 컨트롤러(100)의 모션 모듈(113)은, 컨트롤러측 타이밍 조정부(213)가 호출한 동기 통신 데이터에 기초하여, 모션 프로그램을 실행하게 된다.
컨트롤러측 통신부(211)가 컨트롤러(100)로부터 수신하는 데이터가, 다른 컨트롤러(100) 앞의 동기 통신 데이터를 포함하는 경우, 사이클 체크부(225)는, 동기 통신 데이터에 포함되는 제1 사이클 정보에 기초하여, 상기 동기 통신 데이터의 수신 지연을 검출하여도 좋다. 동기 통신 데이터의 수신 지연은, 컨트롤러측 타이밍 조정부(213)에 의한 동기 통신 데이터의 호출에 맞추지 못한 레벨의 지연을 의미한다. 예컨대 사이클 체크부(225)는, 컨트롤러측 통신부(211)가 컨트롤러(100)로부터 동기 통신 데이터를 수신한 후에, 현재의 통신 사이클수에 대응하는 컨트롤 사이클수가, 상기 동기 통신 데이터의 상기 사용시 사이클수 이상으로 되어 있는 경우에 동기 통신 데이터의 수신 지연을 검출한다. 사이클 체크부(225)는, 동기 통신 데이터의 수신 지연을 검출한 경우에, 상기 동기 통신 데이터를 파기하여도 좋다.
도 8은 컨트롤러 서버(2), 통신 컨트롤러(200) 및 로컬 컨트롤러(300)의 하드웨어 구성을 예시하는 블록도이다. 도 8에 나타내는 바와 같이, 컨트롤러 서버(2)는, 회로(190)를 갖는다. 회로(190)는, 프로세서(191)와, 메모리(192)와, 스토리지(193)와, 유선 통신 포트(194)와, 타이머(195)를 갖는다. 회로(190)가 갖는 각 구성 요소의 수는 하나에 한정되지 않는다.
스토리지(193)는, 관할 머신(4)이 송신한 응답 정보를, 유선 통신 네트워크(8)를 통해 통신 서버(3)로부터 수신하는 것과, 수신한 응답 정보에 기초하여 모션 프로그램을 실행하여, 관할 머신(4)에 대한 머신 지령을 생성하는 것과, 머신 지령을, 유선 통신 네트워크(8)를 통해 통신 서버(3)에 송신하는 것을 컨트롤러 서버(2)에 실행시키는 프로그램을 기억하고 있다. 상기 프로그램이 컨트롤러 서버(2)에 실행시키는 제어 방법은, 수신한 응답 정보를 기억하여, 상기 응답 정보에 부가된 제2 사이클 정보에 대응하는 컨트롤 사이클에 있어서 상기 응답 정보를 호출하는 것을 더 포함하여도 좋다. 이 경우, 수신한 응답 정보에 기초하여 모션 프로그램을 실행하는 것은, 제2 사이클 정보에 대응하는 컨트롤 사이클에 있어서 호출한 응답 정보에 기초하여 모션 프로그램을 실행하는 것을 포함한다. 예컨대 스토리지(193)는, 전술한 컨트롤러(100)의 각 기능 블록을 컨트롤러 서버(2)에 구성시키기 위한 프로그램을 기억하고 있다.
메모리(192)는, 스토리지(193)로부터 로드한 프로그램 등을 일시적으로 기억한다. 프로세서(191)는, 연산 결과를 메모리(192)에 일시적으로 기억하면서, 메모리(192)에 로드된 프로그램을 실행한다. 유선 통신 포트(194)는, 프로세서(191)로부터의 지령에 따라, 유선 통신 네트워크(8)를 통해 통신 컨트롤러(200)와 통신한다. 타이머(195)는, 클록 펄스의 카운트에 의해 경과 시간을 계측한다.
통신 컨트롤러(200)는, 회로(290)를 갖는다. 회로(290)는, 프로세서(291)와, 메모리(292)와, 스토리지(293)와, 유선 통신 포트(294)와, 무선 통신 포트(295)와, 타이머(296)를 갖는다.
스토리지(293)는, 복수의 컨트롤러(100)의 각각으로부터, 유선 통신 네트워크(8)를 통해 머신 지령을 수신하는 것과, 복수의 머신(4)의 각각에 대하여, 무선 통신 네트워크(7)를 통해 머신 지령을 송신하는 것과, 복수의 머신(4)의 각각으로부터, 무선 통신 네트워크(7)를 통해 응답 정보를 수신하는 것과, 복수의 컨트롤러(100)의 각각에 대하여, 유선 통신 네트워크(8)를 통해 응답 정보를 송신하는 것을 포함하는 통신 방법을 통신 컨트롤러(200)에 실행시키는 프로그램을 기억하고 있다. 상기 프로그램이 통신 컨트롤러(200)에 실행시키는 통신 방법은, 수신한 응답 정보를 기억하여, 상기 응답 정보에 부가된 제2 사이클 정보에 대응하는 컨트롤 사이클에 있어서 상기 응답 정보를 호출하는 것을 더 포함하여도 좋다. 이 경우, 유선 통신 네트워크(8)를 통해 응답 정보를 송신하는 것은, 제2 사이클 정보에 대응하는 컨트롤 사이클에 있어서 호출한 응답 정보를 송신하는 것을 포함한다. 예컨대 스토리지(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)는, 통신 서버(3)를 통해 머신 지령을 수신하는 것과, 머신 지령에 기초하여, 머신 본체(10)에 모션을 실현시키는 것을 포함하는 제어 방법을 로컬 컨트롤러(300)에 실행시키는 프로그램을 기억하고 있다. 상기 프로그램이 로컬 컨트롤러(300)에 실행시키는 제어 방법은, 수신한 머신 지령을 기억하여, 상기 머신 지령에 부가된 제1 사이클 정보에 대응하는 머신측 컨트롤 사이클에 있어서 상기 머신 지령을 호출하는 것을 더 포함하고 있어도 좋다. 이 경우, 머신 지령에 기초하여, 머신 본체(10)에 모션을 실현시키는 것은, 제1 사이클 정보에 대응하는 머신측 컨트롤 사이클에 있어서 호출한 머신 지령에 기초하여, 머신 본체(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)는, 무선 통신 단말(301)이 수신한 글로벌 시각에 동기한 머신측 시각을 시각(pt6)에 있어서 생성한다.
컨트롤러(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)가, 대응하는 컨트롤러(100)가 송신한 사이클 타이밍(예컨대 상기 개시 타이밍)을 단말 통신부(314)가 수신하는 것을 대기한다.
다음에, 로컬 컨트롤러(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)에 대한 머신 지령을 생성하는 것과, 머신 지령에 제1 사이클 정보를 부가하는 것과, 머신 지령을 통신 컨트롤러(200)에 송신하는 것과, 통신 컨트롤러(200)가, 머신 지령을 수신하는 것과, 관할 로컬 컨트롤러(300)에 머신 지령을 송신하는 것과, 관할 로컬 컨트롤러(300)가, 통신 컨트롤러(200)로부터 머신 지령을 수신하는 것과, 수신한 머신 지령을 기억하여, 상기 머신 지령에 부가된 제1 사이클 정보에 대응하는 머신측 컨트롤 사이클에 있어서 상기 머신 지령을 호출하는 것과, 호출한 머신 지령에 기초하여, 머신 본체(10)에 모션을 실현시키는 것을 포함한다.
또한, 머신 제어 순서는, 로컬 컨트롤러(300)가, 머신 본체(10)가 실현한 모션에 기초한 응답 정보를 취득하는 것과, 응답 정보에 제2 사이클 정보를 부가하는 것과, 통신 컨트롤러(200)에 응답 정보를 송신하는 것과, 통신 컨트롤러(200) 또는 컨트롤러(100)가, 수신한 응답 정보를 기억하여, 상기 응답 정보에 부가된 제2 사이클 정보에 대응하는 컨트롤 사이클에 있어서 상기 응답 정보를 호출하는 것과, 호출한 상기 응답 정보에 기초하여 컨트롤러(100)가 모션 프로그램을 실행하는 것을 더 포함하여도 좋다.
도 13은 머신 제어 순서의 개요를 예시하는 타이밍 차트이며, 각 차트의 횡축은 경과 시간을 나타낸다. (i)은 모션 모듈(113)에 있어서의 정보 처리 타이밍을 나타내고, (ii)는 동기 통신부(114)에 있어서의 정보 처리 타이밍을 나타내고, (iii)은 컨트롤러측 타이밍 조정부(116)에 있어서의 정보 처리 타이밍을 나타내고, (iv)는 단말 통신부(314)에 있어서의 정보 처리 타이밍을 나타내고, (v)는 머신측 타이밍 조정부(315)에 있어서의 정보 처리 타이밍을 나타내고, (vi)은 머신 제어부(313)에 있어서의 정보 처리 타이밍을 나타내고 있다.
도 13에 있어서, 사이클(c11, c12, c13)은, 컨트롤러측 사이클 생성부(122)가 순차 생성하는 컨트롤 사이클이고, 사이클(c21, c22, c23)은, 사이클(c11, c12, c13)에 동기하여 통신 사이클 생성부(131)가 순차 생성하는 통신 사이클이고, 사이클(c31, c32, c33)은, 사이클(c11, c12, c13)에 동기하여 머신측 사이클 생성부(322)가 순차 생성하는 머신측 컨트롤 사이클이다.
예컨대 모션 모듈(113)은, 사이클(c11)의 시각(t10)에 있어서 모션 프로그램을 실행하여, 머신 지령을 생성한다. 이 머신 지령은, 시각(t11)에 있어서 동기 통신부(114)에 의해 송신되고, 시각(t12)에 있어서 단말 통신부(314)에 의해 수신된다. 단말 통신부(314)가 수신한 머신 지령은, 시각(t13)에 있어서 머신측 타이밍 조정부(315)에 의해 기억되어, 머신 지령에 부가된 제1 사이클 정보에 대응하는 머신측 컨트롤 사이클(예컨대 사이클(c33))에 있어서 호출된다. 그리고, 호출된 머신 지령에 기초하여, 사이클(c33)의 시각(t14)에 있어서, 머신 제어부(313)가 머신 본체(10)에 모션을 실현시킨다. 무선 통신에 기인하여, 시각(t12)에는 변동이 생기지만, 시각(t12)부터 시각(t14)까지의 여유에 의해, 시각(t12)의 변동이 흡수되어, 컨트롤 사이클에 동기한 시각(t14)에 머신 지령이 사용된다.
머신 제어부(313)는, 사이클(c31)의 시각(t110)에 있어서 머신 본체(10)가 실현한 모션에 기초한 응답 정보를 취득한다. 이 응답 정보는, 시각(t111)에 있어서 단말 통신부(314)에 의해 송신되고, 시각(t112)에 있어서 컨트롤러측 타이밍 조정부(116)에 의해 기억되어, 응답 정보에 부가된 제2 사이클 정보에 대응하는 컨트롤 사이클(예컨대 사이클(c13))에 있어서 호출된다. 호출된 응답 정보는, 사이클(c13) 직전의 시각(t113)에 있어서 동기 통신부(114)에 의해 수신 정보 기억부(112)에 저장되고, 수신 정보 기억부(112)에 저장된 응답 정보에 기초하여, 사이클(c13)의 시각(t114)에 있어서 모션 모듈(113)이 모션 프로그램을 실행한다. 무선 통신에 기인하여, 시각(t112)에는 변동이 생기지만, 시각(t112)부터 시각(t114)까지의 여유에 의해, 시각(t112)의 변동이 흡수되어, 컨트롤 사이클에 동기한 시각(t114)에 응답 정보가 사용된다.
이하, 머신 제어 순서를, 컨트롤러(100)에 있어서의 제어 순서와, 로컬 컨트롤러(300)에 있어서의 제어 순서로 나누어 상세하게 예시한다.
(컨트롤러에 있어서의 제어 순서)
컨트롤러(100)에 있어서의 제어 순서는, 데이터 수신 순서와, 데이터 생성·송신 순서를 포함한다. 데이터 수신 순서와 데이터 생성·송신 순서는 병행하여 반복 실행된다. 데이터 수신 순서는, 반드시 컨트롤 사이클에 동기하여 실행되지 않아도 좋지만, 데이터 생성·송신 순서는 컨트롤 사이클에 동기하여 실행된다.
도 14는 데이터 수신 순서를 예시하는 흐름도이다. 도 14에 나타내는 바와 같이, 컨트롤러(100)는, 먼저 단계 S91, S92를 실행한다. 단계 S91에서는, 동기 통신부(114)가 통신 컨트롤러(200)로부터의 데이터의 수신을 대기한다. 단계 S92에서는, 사이클 체크부(133)가, 데이터의 수신 지연이 없는지의 여부를 확인한다. 예컨대 사이클 체크부(133)는, 응답 정보에 부가된 제2 사이클 정보에 기초하여, 응답 정보의 송신 지연이 없는지의 여부를 확인한다.
단계 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)가, 머신 지령에 제1 사이클 정보를 부가한다. 단계 S75에서는, 동기 통신부(114)가, 유선 통신 네트워크(8)를 통해, 머신 지령을 통신 서버(3)에 송신한다. 단계 S75의 구체적 처리 내용에 대해서는 후술한다.
다음에, 컨트롤러(100)는 단계 S76, S77, S78을 실행한다. 단계 S76에서는, 동기 통신부(114)가, 동기 통신 데이터를 생성한다. 단계 S77에서는, 부가부(125)가, 동기 통신 데이터에 제1 사이클 정보를 부가한다. 단계 S78에서는, 동기 통신부(114)가, 유선 통신 네트워크(8)를 통해, 동기 통신 데이터를 통신 서버(3)에 송신한다. 단계 S78의 구체적 처리 내용에 대해서는 후술한다. 그 후, 컨트롤러(100)는 처리를 단계 S71로 되돌린다. 컨트롤러(100)는, 이상의 순서를 반복한다.
도 16은 단계 S75, S78에 있어서의 데이터의 송신 순서를 예시하는 흐름도이다. 도 16에 나타내는 바와 같이, 컨트롤러(100)는, 먼저 단계 S82를 실행한다. 단계 S82에서는, 사이클 체크부(133)가, 데이터의 송신 지연이 없는지의 여부를 확인한다. 예컨대 사이클 체크부(133)는, 머신 지령에 부가된 제1 사이클 정보에 기초하여, 머신 지령의 송신 지연이 없는지의 여부를 확인하고, 동기 통신 데이터에 부가된 제1 사이클 정보에 기초하여, 동기 통신 데이터의 송신 지연이 없는지의 여부를 확인한다.
단계 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)가 기억하는 응답 정보에 제1 사이클 정보를 부가한다. 단계 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 이상의 머신(4)을 각각 제어하는 1 이상의 컨트롤러(100)와, 1 이상의 컨트롤러(100)와 유선 통신 네트워크(8)를 통해 통신하며, 1 이상의 머신(4)과 무선 통신 네트워크(7)를 통해 통신하는 통신 서버(3)를 구비하고, 1 이상의 컨트롤러(100)의 각각은, 컨트롤 사이클로 모션 프로그램을 실행하여, 대응하는 머신(4)에 대한 머신 지령을 생성하는 모션 모듈(113)과, 머신 지령에 제1 사이클 정보를 부가하는 부가부(125)와, 머신 지령을 통신 서버(3)에 송신하는 동기 통신부(114)를 갖고, 1 이상의 머신(4)의 각각은, 통신 서버(3)로부터 머신 지령을 수신하는 단말 통신부(314)와, 단말 통신부(314)가 수신한 머신 지령을 기억하여, 상기 머신 지령에 부가된 제1 사이클 정보에 대응하는 머신측 컨트롤 사이클에 있어서 상기 머신 지령을 호출하는 머신측 타이밍 조정부(315)를 갖는다.
제5 세대 이동 통신 시스템(5G)의 실용화 등에 의해, 고속 무선 통신이 가능해졌기 때문에, 무선 통신을 통한 머신 제어의 실현 가능성도 높아지고 있다. 머신 제어에 있어서는, 모션 프로그램의 실행에 의한 머신 지령의 생성과, 머신 지령에 따른 머신의 제어를 소정의 컨트롤 사이클로 반복할 필요가 있다. 생성된 머신 지령이 무선 통신 네트워크를 통해 송신되는 경우, 무선 통신에 기인하여, 머신측에서의 머신 지령의 수신 타이밍의 변동이 확대되어, 머신측에서 머신 지령을 컨트롤 사이클로 수신하는 것이 곤란해질 가능성이 있다. 본 머신 제어 시스템(1)에 따르면, 통신 서버(3)로부터 무선 통신 네트워크(7)를 통해 송신된 머신 지령이 머신(4)측에서 버퍼링되어, 제1 사이클 정보에 대응하는 머신측 컨트롤 사이클에 있어서 호출된다. 이와 같이, 머신 지령을 그 사용 타이밍까지 버퍼링하는 기능에 의해, 컨트롤러(100)측으로부터의 머신 지령의 송신을 앞당겨, 머신(4)에 있어서의 머신 지령의 수신 타이밍부터 상기 머신 지령의 사용 타이밍까지의 기간에 여유를 갖게 할 수 있다. 이 여유에 의해, 무선 통신에 기인하여 확대된 수신 타이밍의 변동을 흡수하여, 버퍼한 머신 지령을 머신측 컨트롤 사이클로 호출할 수 있다. 이 때문에, 무선 통신을 통해 머신 지령이 송신되는 시스템에 있어서, 모션 프로그램의 실행에 의한 머신 지령의 생성과, 머신 지령에 따른 머신의 제어를 컨트롤 사이클로 반복하는 것이 가능해진다. 따라서, 무선 통신을 통한 머신 제어의 실현에 유효하다.
1 이상의 머신(4)의 각각은, 모션을 실현하는 머신 본체(10)와, 머신측 타이밍 조정부(315)가 호출한 머신 지령에 기초하여, 머신 본체(10)에 모션을 실현시키고, 머신 본체(10)가 실현한 모션에 기초한 응답 정보를 취득하는 머신 제어부(313)와, 응답 정보에 제2 사이클 정보를 부가하는 부가부(324)를 더 갖고, 단말 통신부(314)는, 응답 정보를 통신 서버(3)에 송신하고, 머신 제어 시스템(1)은, 1 이상의 컨트롤러(100)와 통신 서버(3) 사이에서, 1 이상의 머신(4)으로부터 수신한 응답 정보를 기억하여, 상기 응답 정보에 부가된 제2 사이클 정보에 대응하는 컨트롤 사이클에 있어서 상기 응답 정보를 호출하는 컨트롤러측 타이밍 조정부(116, 213)를 더 구비하고, 모션 모듈(113)은, 컨트롤러측 타이밍 조정부(116, 213)가 호출한 응답 정보에 기초하여, 모션 프로그램을 실행하여도 좋다. 이 경우, 머신(4)으로부터 무선 통신 네트워크를 통해 송신된 응답 정보가 컨트롤러(100)측에서 버퍼링되어, 제1 사이클 정보에 대응하는 컨트롤 사이클에 있어서 호출된다. 이와 같이, 응답 정보를 그 사용 타이밍까지 버퍼링하는 기능에 의해, 머신(4)측으로부터의 응답 정보의 송신을 앞당겨, 컨트롤러(100)측에서의 응답 정보의 수신 타이밍으로부터 상기 응답 정보의 사용 타이밍까지의 기간에 여유를 갖게 할 수 있다. 이 여유에 의해, 무선 통신에 기인하여 확대된 수신 타이밍의 변동을 흡수하여, 버퍼한 응답 정보를 컨트롤 사이클로 호출할 수 있다. 이 때문에, 무선 통신을 통해 응답 정보가 송신되는 시스템에 있어서, 응답 정보의 수신을 컨트롤 사이클로 반복하는 것이 가능해진다. 따라서, 무선 통신을 통한 머신 제어의 실현에 더욱 유효하다.
1 이상의 컨트롤러(100)의 각각은, 컨트롤 사이클의 사이클 타이밍을 대응하는 머신(4)에 송신하는 타이밍 송신부(123)를 더 갖고, 1 이상의 머신(4)의 각각은, 사이클 타이밍에 기초하여, 대응하는 컨트롤러(100)에 있어서의 컨트롤 사이클에 동기한 머신측 컨트롤 사이클을 생성하는 머신측 사이클 생성부(322)를 더 가져도 좋다. 이 경우, 사이클 타이밍에 기초한 동기 처리 후는, 컨트롤러(100)에 있어서의 컨트롤 사이클에 동기한 머신측 컨트롤 사이클이 머신(4)에 있어서 생성된다. 이 때문에, 무선 통신의 부담을 억제하면서, 머신(4)에 있어서의 머신측 컨트롤 사이클을 컨트롤러에 있어서의 컨트롤 사이클에 용이하게 동기시킬 수 있다.
1 이상의 컨트롤러(100)의 각각은, 시각 서버(5)가 생성한 시각에 동기하여, 컨트롤러측 시각을 생성하는 컨트롤러측 시각 생성부(121)와, 컨트롤러측 시각에 기초하여, 컨트롤 사이클을 생성하는 컨트롤러측 사이클 생성부(122)를 더 갖고, 1 이상의 머신(4)의 각각은, 시각 서버가 생성한 시각에 동기하여, 머신측 시각을 생성하는 머신측 시각 생성부(321)를 더 갖고, 머신측 사이클 생성부(322)는, 머신측 시각 생성부(321)가 생성한 시각과, 사이클 타이밍에 기초하여, 머신측 컨트롤 사이클을 생성하여도 좋다. 이 경우, 컨트롤러(100) 및 머신(4)에 있어서의 시각 맞춤을 미리 행하여 둠으로써, 머신(4)에 있어서의 사이클 타이밍의 수신 타이밍에 변동이 생긴 경우라도, 머신측 시각에 기초하여, 머신(4)에 있어서의 머신측 컨트롤 사이클을 적절한 타이밍에 생성할 수 있다.
타이밍 송신부(123)는, 대응하는 머신(4)의 머신측 사이클 생성부(322)가 머신측 컨트롤 사이클의 생성에 실패한 경우, 앞서 송신한 사이클 타이밍보다 후의 사이클 타이밍을 상기 머신(4)에 재차 송신하여도 좋다. 이 경우, 보다 높은 신뢰성으로, 머신(4)에 있어서의 머신측 컨트롤 사이클을 컨트롤러(100)에 있어서의 컨트롤 사이클에 동기시킬 수 있다.
머신 제어부(313)는, 머신측 타이밍 조정부(315)가 호출한 머신 지령에 기초하여, 컨트롤 사이클보다도 짧은 사이클 길이의 머신 사이클로 머신 본체(10)를 제어하여도 좋다. 이 경우, 컨트롤 사이클에 의한 머신 지령의 호출의 정주기성과, 보다 세분화된 머신 사이클에 의한 머신이 적절한 제어의 양립을 도모할 수 있다.
머신 제어 시스템(1)은, 1 이상의 컨트롤러로서 복수의 컨트롤러(100)를 구비하고, 복수의 컨트롤러(100)의 각각이 컨트롤러측 타이밍 조정부(116)를 가져도 좋다. 이 경우, 복수의 컨트롤러(100) 각각과 관할 머신(4) 사이에서 동기 통신이 가능해지는 한편, 동일한 네트워크를 이용하는 컨트롤러(100)와 머신(4)의 복수의 쌍 사이에서는, 컨트롤 사이클을 동기킬 필요성이 낮아져, 시스템을 용이하게 구성할 수 있다.
복수의 컨트롤러(100)에 있어서의 하나의 컨트롤러(100)의 동기 통신부(114)가 송신하는 데이터가 대응하는 머신 앞이면, 통신 서버(3)를 통해, 대응하는 머신(4)에 상기 데이터를 송신하고, 데이터가 다른 컨트롤러(100) 앞이면, 유선 통신 네트워크(8)를 통해, 다른 컨트롤러(100)의 컨트롤러측 타이밍 조정부(116)에 상기 데이터를 송신하는 스위치(134)를 더 구비하여도 좋다. 이 경우, 컨트롤러(100)와 머신(4) 사이의 동기 통신과, 컨트롤러(100) 사이의 동기 통신과 동기 통신부(114)를 적절하게 구별하여 사용할 수 있다.
하나의 컨트롤러(100)는, 다른 컨트롤러(100)를 포함하는 다른 노드에 대한 비동기 통신 데이터를, 유선 통신 네트워크(8)를 통해 다른 노드에 송신하는 비동기 통신부(115)를 더 가져도 좋다. 이 경우, 동기 통신용의 통신 리소스를 절약할 수 있다.
복수의 컨트롤러(100) 중 적어도 하나는, 유선 통신 네트워크(8)를 통해 수신한 마스터 타이밍에 기초하여, 컨트롤 사이클을 생성하는 컨트롤러측 사이클 생성부(122)를 더 가져도 좋다. 이 경우, 컨트롤러(100) 사이에서 컨트롤 사이클을 용이하게 동기시킬 수 있다.
통신 서버(3)는, 마스터 타이밍을 생성하는 타이밍 마스터(224)를 갖고, 컨트롤러측 사이클 생성부(122)는, 타이밍 마스터(224)로부터 마스터 타이밍을 수신하여도 좋다. 이 경우, 컨트롤 사이클을 동기시켜야 하는 복수의 컨트롤러(100) 중 어느 것에 있어서도, 통신 서버(3)의 타이밍 마스터(224)가 생성한 타이밍 마스터에 기초하여 컨트롤 사이클을 생성하는 동일한 설정을 채용할 수 있다. 이 때문에, 시스템에의 컨트롤러(100)의 추가·삭제가 용이하다.
1 이상의 컨트롤러(100)와 통신 서버(3) 사이에서, 머신 지령에 포함되는 제1 사이클 정보에 기초하여, 상기 머신 지령의 송신 지연을 검출하는 사이클 체크부(133, 225)를 더 구비하여도 좋다. 이 경우, 컨트롤 사이클에 동기한 머신 지령의 송신의 신뢰성을 향상시킬 수 있다.
사이클 체크부(133)는, 머신 지령의 송신 지연을 검출한 경우에, 상기 머신 지령의 송신을 캔슬하여도 좋다. 이 경우, 컨트롤 사이클에서의 호출에 맞추지 못한 머신 지령의 송신을 캔슬함으로써, 통신 서버(3)에 있어서의 무선 통신 재원을 절약할 수 있다.
1 이상의 컨트롤러(100)와 통신 서버(3) 사이에서, 응답 정보에 포함되는 제2 사이클 정보에 기초하여, 상기 응답 정보의 수신 지연을 검출하는 사이클 체크부(133, 225)를 더 구비하여도 좋다. 이 경우, 컨트롤 사이클에서의 호출에 맞추지 못한 응답 정보를 미연에 검지하여, 예컨대 바로 앞에 호출된 응답 정보를 대용하여 응답 정보의 누락을 막는 등의 대처가 가능해진다.
1 이상의 컨트롤러(100)와 통신 서버(3) 사이에서, 1 이상의 컨트롤러(100) 중 적어도 어느 하나의 컨트롤 사이클에 동기한 통신 사이클을 생성하는 통신 사이클 생성부(131, 222)를 더 구비하고, 사이클 체크부(133, 225)는, 머신 지령에 부가된 제1 사이클 정보와, 통신 사이클의 사이클 정보에 기초하여, 머신 지령의 송신 지연을 검출하여도 좋다. 이 경우, 사이클 체크부(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)는, 적어도 컨트롤 사이클로 모션 프로그램을 실행하여, 대응하는 머신에 대한 머신 지령을 생성하는 것과, 대응하는 머신(4)에 있어서, 어느 머신측 컨트롤 사이클로 머신 지령을 호출할지를 지정하는 제1 사이클 정보를 머신 지령에 부가하는 것과, 제1 사이클 정보가 부가된 머신 지령을 대응하는 머신(4)에 송신하는 것을 실행하는 컨트롤러(100)를, 대응하는 머신(4)과 통신하는 컨트롤러 서버(2)의 가상 공간상에 실장시키는 프로그램을 기억한다. 스토리지(193)는, 대응하는 머신(4)이 제2 사이클 정보를 부가한 응답 정보를, 대응하는 머신(4)으로부터 수신하는 것과, 수신한 응답 정보를 기억하여, 상기 응답 정보에 부가된 제2 사이클 정보에 대응하는 컨트롤 사이클에 있어서 상기 응답 정보를 호출하는 것을 더 실행하고, 호출한 응답 정보에 기초하여 모션 프로그램을 실행하여, 머신 지령을 생성하는 컨트롤러를 컨트롤러 서버(2)의 가상 공간상에 실장시키는 프로그램을 기억하고 있어도 좋다.
이상, 실시형태에 대해서 설명하였지만, 본 개시는 반드시 전술한 실시형태에 한정되는 것이 아니며, 그 요지를 일탈하지 않는 범위에서 여러 가지 변경이 가능하다.
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 이상의 머신의 각각은,
    상기 1 이상의 서버로부터 상기 머신 지령을 수신하는 단말 통신부와,
    상기 단말 통신부가 수신한 상기 머신 지령을 기억하여, 상기 머신 지령에 부가된 제1 사이클 정보에 대응하는 머신측 컨트롤 사이클로 상기 머신 지령을 호출하는 머신측 타이밍 조정부
    를 포함하는 것인, 머신 제어 시스템.
  2. 제1항에 있어서,
    상기 1 이상의 머신의 각각은,
    모션을 실현하는 본체와,
    상기 머신측 타이밍 조정부가 호출한 머신 지령에 기초하여, 상기 본체에 모션을 실현시켜, 상기 본체가 실현한 모션에 기초한 응답 정보를 취득하는 머신 제어부와,
    상기 응답 정보에 제2 사이클 정보를 부가하는 부가부
    를 더 포함하고,
    상기 단말 통신부는, 상기 응답 정보를 상기 1 이상의 서버에 송신하고,
    상기 1 이상의 서버는, 상기 1 이상의 머신으로부터 수신한 상기 응답 정보를 기억하여, 상기 응답 정보에 부가된 제2 사이클 정보에 대응하는 상기 컨트롤 사이클에 있어서 상기 응답 정보를 호출하는 컨트롤러측 타이밍 조정부를 포함하고,
    상기 모션 모듈은, 상기 컨트롤러측 타이밍 조정부가 호출한 응답 정보에 기초하여, 상기 모션 프로그램을 실행하는 것인, 머신 제어 시스템.
  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 이상의 서버는, 상기 머신 지령에 포함되는 상기 제1 사이클 정보에 기초하여, 상기 머신 지령의 송신 지연을 검출하는 사이클 체크부를 더 구비하는 것인, 머신 제어 시스템.
  13. 제12항에 있어서,
    상기 사이클 체크부는, 상기 머신 지령의 송신 지연을 검출한 경우에, 상기 머신 지령의 송신을 캔슬하는 것인, 머신 제어 시스템.
  14. 제2항에 있어서,
    상기 1 이상의 서버는, 상기 응답 정보에 포함되는 상기 제2 사이클 정보에 기초하여, 상기 응답 정보의 수신 지연을 검출하는 사이클 체크부를 더 구비하는 것인, 머신 제어 시스템.
  15. 제12항 또는 제13항에 있어서,
    상기 1 이상의 서버는, 상기 1 이상의 컨트롤러 중 적어도 어느 하나의 컨트롤 사이클에 동기한 통신 사이클을 생성하는 통신 사이클 생성부를 더 구비하고,
    상기 사이클 체크부는, 상기 머신 지령에 부가된 상기 제1 사이클 정보와, 상기 통신 사이클의 사이클 정보에 기초하여, 상기 머신 지령의 송신 지연을 검출하는 것인, 머신 제어 시스템.
  16. 프로그램으로서,
    컨트롤 사이클로 모션 프로그램을 실행하여, 대응하는 머신에 대한 머신 지령을 생성하는 것과,
    상기 대응하는 머신에 있어서, 어느 머신측 컨트롤 사이클로 상기 머신 지령을 호출할지를 지정하는 제1 사이클 정보를 상기 머신 지령에 부가하는 것과,
    상기 제1 사이클 정보가 부가된 상기 머신 지령을 상기 대응하는 머신에 송신하는 것
    을 실행하는 컨트롤러를, 상기 대응하는 머신과 통신하는 서버의 가상 공간상에 실장시키는, 프로그램.
  17. 제16항에 있어서,
    상기 대응하는 머신이 제2 사이클 정보를 부가한 응답 정보를, 상기 대응하는 머신으로부터 수신하는 것과,
    수신한 응답 정보를 기억하여, 상기 응답 정보에 부가된 제2 사이클 정보에 대응하는 상기 컨트롤 사이클에 있어서 상기 응답 정보를 호출하는 것
    을 더 실행하고,
    호출한 응답 정보에 기초하여 모션 프로그램을 실행하여, 머신 지령을 생성하는 컨트롤러를 상기 서버의 가상 공간상에 실장시키는 것인, 프로그램.
  18. 머신으로서,
    모션을 실현하는 본체와,
    컨트롤러가 실장된 가상 공간을 구성하는 서버와 통신하여, 상기 컨트롤러가 사이클 정보를 부가한 머신 지령을 상기 서버로부터 수신하는 단말 통신부와,
    상기 단말 통신부가 수신한 머신 지령을 기억하여, 상기 머신 지령에 부가된 사이클 정보에 대응하는 컨트롤 사이클에 있어서 상기 머신 지령을 호출하는 머신측 타이밍 조정부와,
    상기 머신측 타이밍 조정부가 호출한 머신 지령에 기초하여, 상기 본체에 모션을 실현시키는 머신 제어부
    를 구비하는, 머신.
  19. 시스템으로서,
    제1 처리를 반복하는 제1 디바이스와,
    제1 디바이스와 통신하여, 제2 처리를 반복하는 제2 디바이스
    를 구비하고,
    상기 제1 디바이스는,
    상기 제1 처리에 의해 제1 정보를 생성하는 제1 처리 모듈과,
    상기 제1 정보에 제1 사이클 정보를 부가하는 제1 부가부와,
    상기 제1 정보를 제2 디바이스에 송신하는 제1 통신부
    를 포함하고,
    상기 제2 디바이스는,
    상기 제1 디바이스로부터 상기 제1 정보를 수신하는 제2 통신부와,
    상기 제2 통신부가 수신한 상기 제1 정보를 기억하여, 상기 제1 정보에 부가된 제1 사이클 정보에 대응하는 사이클의 상기 제2 처리에 있어서 상기 제1 정보를 호출하는 타이밍 조정부와,
    상기 타이밍 조정부에 의해 호출된 상기 제1 정보에 기초하여 상기 제2 처리를 실행하는 제2 처리 모듈
    을 포함하는 것인, 시스템.
  20. 제19항에 있어서,
    상기 제2 처리 모듈은, 상기 제2 처리에 의해 제2 정보를 생성하고,
    상기 제2 디바이스는, 상기 제2 정보에 제2 사이클 정보를 부가하는 제2 부가부를 더 포함하고,
    상기 제2 통신부는, 상기 제2 정보를 상기 제1 디바이스에 송신하고,
    상기 제1 통신부는, 상기 제2 정보를 상기 제2 디바이스로부터 수신하고,
    상기 제1 디바이스는, 상기 제1 통신부가 수신한 상기 제2 정보를 기억하여, 상기 제2 정보에 부가된 제2 사이클 정보에 대응하는 사이클의 상기 제1 처리에 있어서 상기 제2 정보를 호출하는 제1 타이밍 조정부를 더 포함하고,
    상기 제1 처리 모듈은, 상기 제1 타이밍 조정부에 의해 호출된 상기 제2 정보에 기초하여 상기 제1 처리를 실행하는 것인, 시스템.
  21. 디바이스로서,
    제1 처리에 의해 제1 정보를 생성하는 것을 반복하는 제1 처리 모듈과,
    제2 처리를 반복하는 제2 디바이스에 있어서, 어느 사이클의 상기 제2 처리에 있어서 상기 제1 정보를 호출할지를 지정하는 제1 사이클 정보를 상기 제1 정보에 부가하는 제1 부가부와,
    상기 제1 부가부에 의해 제1 사이클 정보가 부가된 상기 제1 정보를 상기 제2 디바이스에 송신하는 통신부
    를 구비하는, 디바이스.
  22. 제21항에 있어서,
    상기 통신부는, 상기 제2 디바이스가 상기 제2 처리에 의해 생성하여, 제2 사이클 정보를 부가한 제2 정보를, 상기 제2 디바이스로부터 수신하고,
    상기 디바이스는,
    상기 통신부가 수신한 상기 제2 정보를 기억하여, 상기 제2 정보에 부가된 제2 사이클 정보에 대응하는 사이클의 제1 처리에 있어서 상기 제2 정보를 호출하는 제1 타이밍 조정부를 더 구비하고,
    상기 제1 처리 모듈은, 상기 제1 타이밍 조정부에 의해 호출된 상기 제2 정보에 기초하여 상기 제1 처리를 실행하여, 상기 제1 정보를 생성하는 것인, 디바이스.
  23. 디바이스로서,
    제1 처리를 반복하는 제1 디바이스가, 제1 처리에 의해 생성하여, 사이클 정보를 부가한 제1 정보를, 상기 제1 디바이스로부터 수신하는 통신부와,
    상기 통신부가 수신한 상기 제1 정보를 기억하여, 상기 제1 정보에 부가된 사이클 정보에 대응하는 사이클의 제2 처리에 있어서 상기 제1 정보를 호출하는 타이밍 조정부와,
    상기 타이밍 조정부에 의해 호출된 상기 제1 정보에 기초하여, 상기 제2 처리를 실행하는 처리 모듈
    을 구비하는, 디바이스.
KR1020227042649A 2020-05-13 2020-11-12 머신 제어 시스템, 프로그램, 머신, 시스템 및 디바이스 KR20230006582A (ko)

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
KR20230006582A true KR20230006582A (ko) 2023-01-10

Family

ID=84499098

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227042649A KR20230006582A (ko) 2020-05-13 2020-11-12 머신 제어 시스템, 프로그램, 머신, 시스템 및 디바이스

Country Status (3)

Country Link
EP (1) EP4138402A4 (ko)
KR (1) KR20230006582A (ko)
CN (1) CN115516870A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019209454A (ja) 2018-06-08 2019-12-12 株式会社安川電機 加工システム及び制御方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6946909B2 (ja) * 2017-09-29 2021-10-13 オムロン株式会社 制御システムおよび制御装置
JP7095262B2 (ja) * 2017-11-10 2022-07-05 株式会社安川電機 プログラミング支援装置、ロボットシステム及びプログラム生成方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019209454A (ja) 2018-06-08 2019-12-12 株式会社安川電機 加工システム及び制御方法

Also Published As

Publication number Publication date
CN115516870A (zh) 2022-12-23
EP4138402A4 (en) 2024-05-15
EP4138402A1 (en) 2023-02-22

Similar Documents

Publication Publication Date Title
KR102517023B1 (ko) 머신 제어 시스템, 머신 및 통신 방법
KR101494117B1 (ko) 전동기 제어 시스템 및 통신 방법
JP2018097661A (ja) 生産システム、制御装置、および制御方法
US10860010B2 (en) Information processing apparatus for estimating behaviour of driving device that drives control target, information processing method and computer readable recording medium
US11613015B2 (en) Technique for providing reliable control in a cloud robotics system
KR102525831B1 (ko) 제어 시스템, 컨트롤러 및 제어 방법
WO2022142078A1 (zh) 动作学习方法、装置、介质及电子设备
JP6915759B1 (ja) マシン制御システム、プログラム、マシン、システム及びデバイス
KR20230006582A (ko) 머신 제어 시스템, 프로그램, 머신, 시스템 및 디바이스
WO2021033358A1 (ja) 制御システム、制御装置およびプログラム
JP7494155B2 (ja) 生産システム、セルコントローラ、ロボットコントローラ及び制御方法
JP7400104B2 (ja) シミュレーション装置、制御システム、シミュレーション方法及びプログラム
US20240142954A1 (en) Communication system with ordered command data sets
WO2024018900A1 (ja) 機器の制御装置、制御システム、及び制御方法
US11378936B2 (en) Control device, mechanical system, and time synchronization method
JP2023108339A (ja) 機器の制御装置、制御システム、及び制御方法
US20220278818A1 (en) Time synchronization of controller
CN116633983A (zh) 用于多机器人协同作业的通信方法、装置和通信中间件
JP2023015770A (ja) コントローラ及びその指令値の補外方法
CN115194757A (zh) 机器人控制系统、下位控制装置以及机器人控制方法

Legal Events

Date Code Title Description
A201 Request for examination