KR102517023B1 - 머신 제어 시스템, 머신 및 통신 방법 - Google Patents

머신 제어 시스템, 머신 및 통신 방법 Download PDF

Info

Publication number
KR102517023B1
KR102517023B1 KR1020217039869A KR20217039869A KR102517023B1 KR 102517023 B1 KR102517023 B1 KR 102517023B1 KR 1020217039869 A KR1020217039869 A KR 1020217039869A KR 20217039869 A KR20217039869 A KR 20217039869A KR 102517023 B1 KR102517023 B1 KR 102517023B1
Authority
KR
South Korea
Prior art keywords
machine
cycle
controller
timing
communication
Prior art date
Application number
KR1020217039869A
Other languages
English (en)
Other versions
KR20220006567A (ko
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
Application filed by 가부시키가이샤 야스카와덴키 filed Critical 가부시키가이샤 야스카와덴키
Publication of KR20220006567A publication Critical patent/KR20220006567A/ko
Application granted granted Critical
Publication of KR102517023B1 publication Critical patent/KR102517023B1/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
    • 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]
    • 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/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/33Director till display
    • G05B2219/33192Radio link, wireless

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)
  • Selective Calling Equipment (AREA)
  • Numerical Control (AREA)
  • Programmable Controllers (AREA)

Abstract

머신 제어 시스템(1)은, 현실 공간상에 구성되어, 각각 머신 지령에 따라 모션을 실현하는 1 이상의 머신(4)과, 가상 공간상에 실장되어, 1 이상의 머신(4)에 대한 머신 지령을 각각 생성하는 1 이상의 컨트롤러(100)와, 1 이상의 컨트롤러(100)와 유선 통신 네트워크(8)를 통해 통신하며, 1 이상의 머신(4)과 무선 통신 네트워크(7)를 통해 통신하는 통신 서버(3)를 구비한다.

Description

머신 제어 시스템, 머신 및 통신 방법
본 개시는 머신 제어 시스템, 통신 서버, 프로그램, 머신 및 통신 방법에 관한 것이다.
특허문헌 1에는 로봇과, 가공 장치와, 로봇을 제어하는 로봇 컨트롤러와, 가공 장치를 제어하는 가공 장치 컨트롤러와, 로봇 컨트롤러 및 가공 장치 컨트롤러에 대한 지령을 생성하는 프로그래머블 로직 컨트롤러를 구비하는 시스템이 개시되어 있다.
특허문헌 1: 일본 특허 공개 제2019-209454호 공보
본 개시는 무선 통신을 통한 머신 제어의 실현에 유효한 머신 제어 시스템을 제공한다.
본 개시의 일측면에 따른 머신 제어 시스템은, 현실 공간상에 구성되어, 각각 머신 지령에 따라 모션을 실현하는 1 이상의 머신과, 가상 공간상에 실장되어, 1 이상의 머신을 각각 제어하는 1 이상의 컨트롤러와, 1 이상의 컨트롤러와 유선 통신 네트워크를 통해 통신하며, 1 이상의 머신과 무선 통신 네트워크를 통해 통신하는 통신 서버를 구비하고, 1 이상의 컨트롤러의 각각은, 컨트롤 사이클로 모션 프로그램을 실행하여, 대응하는 머신에 대한 머신 지령을 생성하는 모션 모듈과, 머신 지령에 제1 사이클 정보를 부가하는 부가부와, 머신 지령을 통신 서버에 송신하는 동기 통신부를 갖고, 1 이상의 머신의 각각은, 통신 서버로부터 머신 지령을 수신하는 단말 통신부와, 단말 통신부가 수신한 머신 지령을 기억하여, 상기 머신 지령에 부가된 제1 사이클 정보에 대응하는 컨트롤 사이클에 있어서 상기 머신 지령을 호출하는 머신측 타이밍 조정부를 갖는다.
본 개시의 다른 측면에 관한 머신 제어 시스템은, 현실 공간상에 구성되어, 각각 머신 지령에 따라 모션을 실현하는 1 이상의 머신과, 가상 공간상에 실장되어, 1 이상의 머신을 각각 제어하는 1 이상의 컨트롤러와, 1 이상의 컨트롤러와 유선 통신 네트워크를 통해 통신하며, 1 이상의 머신과 무선 통신 네트워크를 통해 통신하는 통신 서버를 구비하고, 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는 로컬 컨트롤러에 있어서의 제어 순서를 예시하는 흐름도이다.
이하, 실시형태에 대해서, 도면을 참조하면서 상세하게 설명한다. 설명에 있어서, 동일 요소 또는 동일 기능을 갖는 요소에는 동일한 부호를 붙이고, 중복되는 설명을 생략한다.
〔머신 제어 시스템〕
도 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 Vehcle)를 들 수 있다. 로봇(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)와, 컨트롤러측 타이밍 조정부(116)를 갖는다.
프로그램 기억부(111)는, 모션 프로그램을 기억한다. 모션 프로그램은, 시계열의 복수의 모션 지령을 포함한다. 모션 지령은, 예컨대 목표 위치·자세에의 변위 명령이다. 모션 명령은, 목표 위치·자세에의 도달 시각의 지정을 포함하고 있어도 좋고, 목표 위치·자세에의 변위 속도의 지정을 포함하고 있어도 좋다. 모션 지령은, 목표 속도로의 변위 명령이어도 좋다. 이 경우, 모션 지령은, 목표 속도로의 변위 기간의 지정을 포함하여도 좋다.
수신 정보 기억부(112)는, 통신 서버(3)의 통신 컨트롤러(200)로부터의 수신 정보를 기억한다. 수신 정보는, 상기 응답 정보를 포함한다.
모션 모듈(113)은, 컨트롤 사이클로 모션 프로그램을 실행하여, 관할 머신(4)에 대한 머신 지령을 생성한다. 모션 프로그램을 실행하는 것은, 관할 머신(4)의 모션을 모션 지령에 추종시키도록 머신 지령을 산출하는 것을 포함한다. 모션 모듈(113)은, 수신 정보 기억부(112)가 기억하는 응답 정보에 기초하여 모션 프로그램을 실행하여도 좋다. 예컨대 모션 모듈(113)은, 수신 정보 기억부(112)가 기억하는 응답 정보에 기초한 관할 머신(4)의 모션 실적을 산출하여, 모션 실적을 모션 지령에 추종시키도록 머신 지령을 산출한다. 머신 지령의 구체예로서는, 속도 지령 또는 구동력 지령(토크 지령을 포함함) 등을 들 수 있다.
동기 통신부(114)는, 유선 통신 네트워크(8)를 통해, 머신 지령을 통신 컨트롤러(200)에 송신한다. 「동기 통신」은, 컨트롤 사이클에 동기한 정주기 통신을 의미한다. 동기 통신은, 1 컨트롤 사이클마다 실행하는 통신 및 소정수의 컨트롤마다 실행하는 통신을 포함한다. 후술하는 바와 같이, 동기 통신부(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 사이클 정보가 부가된 머신 지령을 수신한 관할 로컬 컨트롤러(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)는, 머신 지령의 송신 지연을 검출한 경우에, 상기 머신 지령의 송신을 캔슬하여도 좋다. 예컨대 사이클 체크부(133)는, 머신 지령의 송신 지연을 검출한 경우에, 통신 컨트롤러(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 사이클 정보가 상기 사용시 사이클수인 경우, 컨트롤러측 타이밍 조정부(116)는, 컨트롤 사이클수가 상기 사용시 사이클수가 되는 컨트롤 사이클에 있어서 상기 동기 통신 데이터를 호출한다. 제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)로부터 수신한 글로벌 시각을 취득하고, 취득한 글로벌 시각에 동기하여 통신 서버 시각을 생성한다. 예컨대 시각 생성부(221)는, 타이머(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에 나타내는 바와 같이, 컨트롤러(100)는, 회로(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은 단계 S76, 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)가 기억하는 응답 정보에 제2 사이클 정보를 부가한다. 단계 S124에서는, 단말 통신부(314)가, 응답 정보를, 무선 통신 네트워크(7)를 통해 통신 컨트롤러(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)에 있어서의 컨트롤 사이클에 동기한 상기 머신(4)에 있어서의 컨트롤 사이클을 생성하는 머신측 사이클 생성부(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…머신 제어 시스템, 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 (20)

  1. 머신 지령에 따라 모션을 실현하는 머신과,
    상기 머신을 제어하는 컨트롤러와,
    상기 컨트롤러와 유선 통신 네트워크를 통해 통신하며, 상기 머신과 무선 통신 네트워크를 통해 통신하는 통신 서버
    를 구비하고,
    상기 컨트롤러는,
    컨트롤 사이클에 따라 모션 프로그램을 반복 실행하여, 상기 머신 지령을 생성하는 모션 모듈과,
    상기 머신 지령에 제1 사용 타이밍을 지정하는 제1 사이클 정보를 부가하는 부가부와,
    상기 제1 사이클 정보를 포함하는 상기 머신 지령을 상기 통신 서버에 송신하는 동기 통신부
    를 갖고,
    상기 머신은 또한, 로컬 컨트롤 사이클에 따라 상기 머신을 제어하기 위한 로컬 동작을 반복하고, 상기 머신은,
    상기 통신 서버로부터 상기 머신 지령을 수신하는 단말 통신부와,
    상기 단말 통신부가 수신한 상기 머신 지령을 기억하여, 상기 기억하는 머신 지령에 부가된 제1 사이클 정보에 기초하여, 상기 기억하는 머신 지령을 호출하여, 상기 제1 사용 타이밍에 대응하는 컨트롤 사이클에서 상기 호출한 머신 지령을 사용하는 머신측 타이밍 조정부
    를 갖는, 머신 제어 시스템.
  2. 제1항에 있어서,
    상기 머신은,
    상기 모션을 실현하는 머신 본체와,
    상기 호출한 머신 지령에 기초하여, 상기 머신 본체에 상기 모션을 실현시키는 것과, 상기 머신 본체가 실현한 모션에 기초한 응답 정보를 취득하는 것을 포함하는 상기 로컬 동작을 반복하는 머신 제어부와,
    상기 응답 정보에 제2 사용 타이밍을 지정하는 제2 사이클 정보를 부가하는 로컬 부가부
    를 더 갖고,
    상기 단말 통신부는 또한, 상기 제2 사이클 정보를 포함하는 상기 응답 정보를 상기 통신 서버에 송신하고,
    상기 머신 제어 시스템은, 상기 머신으로부터 수신한 상기 응답 정보를 기억하여, 상기 기억하는 응답 정보에 부가된 제2 사이클 정보에 기초하여, 상기 기억하는 응답 정보를 호출하여, 상기 제2 사용 타이밍에 대응하는 컨트롤 사이클에서 상기 호출한 응답 정보를 사용하는 컨트롤러측 타이밍 조정부를 더 구비하고,
    상기 모션 모듈은, 상기 호출한 응답 정보에 기초하여, 상기 모션 프로그램을 실행하는, 머신 제어 시스템.
  3. 제1항에 있어서,
    상기 로컬 컨트롤 사이클은, 상기 컨트롤 사이클의 사이클 길이와 동일한 로컬 사이클 길이를 갖는, 머신 제어 시스템.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 컨트롤러는,
    상기 컨트롤 사이클의 사이클 타이밍을 식별하는 사이클 타이밍 정보를 상기 머신에 송신하는 타이밍 송신부를 더 갖고,
    상기 머신은,
    상기 사이클 타이밍 정보에 기초하여, 상기 컨트롤 사이클에 동기한 상기 로컬 컨트롤 사이클을 생성하는 머신측 사이클 생성부를 더 갖는, 머신 제어 시스템.
  5. 제4항에 있어서,
    상기 컨트롤러는,
    시각 서버가 생성한 글로벌 시각에 동기하여, 컨트롤러측 시각을 생성하는 컨트롤러측 시각 생성부와,
    상기 컨트롤러측 시각에 기초하여, 상기 컨트롤 사이클을 생성하는 컨트롤러측 사이클 생성부
    를 더 갖고,
    상기 머신은,
    상기 글로벌 시각에 동기하여, 머신측 시각을 생성하는 머신측 시각 생성부를 더 갖고,
    상기 머신측 사이클 생성부는 또한, 상기 머신측 시각과 상기 사이클 타이밍 정보에 기초하여, 상기 로컬 컨트롤 사이클을 생성하는, 머신 제어 시스템.
  6. 제5항에 있어서,
    상기 타이밍 송신부는 또한, 상기 머신측 사이클 생성부가 상기 로컬 컨트롤 사이클의 생성에 실패한 경우, 앞서 식별한 상기 사이클 타이밍보다 후의 사이클 타이밍을 식별하는 사이클 타이밍 정보를 상기 머신에 재차 송신하는, 머신 제어 시스템.
  7. 제2항에 있어서,
    상기 머신 제어부는 또한, 상기 호출한 머신 지령에 기초하여, 상기 로컬 컨트롤 사이클의 로컬 사이클 길이보다 짧은 머신 사이클 길이의 머신 사이클에 따라 상기 머신 본체를 반복 제어하는, 머신 제어 시스템.
  8. 제2항에 있어서,
    상기 머신 제어 시스템은, 상기 컨트롤러를 포함하는 복수의 컨트롤러를 구비하고,
    상기 복수의 컨트롤러의 각각이 상기 컨트롤러측 타이밍 조정부를 갖는, 머신 제어 시스템.
  9. 제8항에 있어서,
    상기 복수의 컨트롤러 중 하나의 컨트롤러는,
    상기 제1 사이클 정보를 동기 통신 데이터에 부가하는 상기 부가부와,
    상기 제1 사이클 정보를 포함하는 상기 동기 통신 데이터를, 상기 복수의 컨트롤러 중 다른 컨트롤러에 송신하는 상기 동기 통신부
    를 갖고,
    상기 다른 컨트롤러는,
    상기 하나의 컨트롤러로부터 수신한 상기 동기 통신 데이터를 기억하여, 상기 기억하는 동기 통신 데이터에 부가된 제1 사이클 정보에 기초하여, 상기 기억하는 동기 통신 데이터를 호출하여, 상기 제1 사용 타이밍에 대응하는 컨트롤 사이클에서 상기 호출한 통신 데이터를 사용하는 상기 컨트롤러측 타이밍 조정부를 갖는, 머신 제어 시스템.
  10. 제9항에 있어서,
    상기 하나의 컨트롤러는,
    상기 제1 사이클 정보 없이 비동기 통신 데이터를 상기 유선 통신 네트워크를 통해 다른 노드에 송신하는 비동기 통신부를 더 갖는, 머신 제어 시스템.
  11. 제8항 내지 제10항 중 어느 한 항에 있어서,
    상기 복수의 컨트롤러 중 적어도 하나는,
    상기 유선 통신 네트워크를 통해 수신한 마스터 타이밍을 지정하는 마스터 타이밍 정보에 기초하여, 상기 컨트롤 사이클을 생성하는 컨트롤러측 사이클 생성부를 더 갖는, 머신 제어 시스템.
  12. 제11항에 있어서,
    상기 통신 서버는, 상기 마스터 타이밍을 생성하는 타이밍 마스터를 갖고,
    상기 컨트롤러측 사이클 생성부는 또한, 상기 타이밍 마스터로부터 상기 마스터 타이밍을 수신하는, 머신 제어 시스템.
  13. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 머신 지령에 부가된 제1 사이클 정보에 기초하여, 상기 머신 지령의 송신 지연을 검출하는 사이클 체크부를 더 구비하는, 머신 제어 시스템.
  14. 제13항에 있어서,
    상기 사이클 체크부는 또한, 상기 머신 지령의 송신 지연을 검출한 경우에, 상기 머신 지령의 송신을 캔슬하는, 머신 제어 시스템.
  15. 제2항에 있어서,
    상기 응답 정보에 부가된 상기 제2 사이클 정보에 기초하여, 상기 응답 정보의 수신 지연을 검출하는 사이클 체크부를 더 구비하는, 머신 제어 시스템.
  16. 제13항에 있어서,
    상기 컨트롤 사이클에 동기한 통신 사이클을 생성하는 통신 사이클 생성부를 더 구비하고,
    상기 사이클 체크부는 또한, 상기 머신 지령에 부가된 상기 제1 사이클 정보와 상기 통신 사이클에 기초하여, 상기 머신 지령의 송신 지연을 검출하는, 머신 제어 시스템.
  17. 모션을 실현하는 머신 본체와,
    유선 통신 네트워크를 통해 컨트롤러와 통신하는 통신 서버와 무선 통신 네트워크를 통해 통신하여, 컨트롤러가 사용 타이밍을 지정하는 사이클 정보를 부가한 머신 지령을, 통신 서버를 통해 수신하는 단말 통신부와,
    컨트롤 사이클에 따라 상기 머신 본체를 제어하기 위한 로컬 동작을 반복하는 머신 제어부와,
    상기 단말 통신부가 수신한 머신 지령을 기억하여, 상기 기억하는 머신 지령에 부가된 사이클 정보에 기초하여, 상기 기억하는 머신 지령을 호출하여, 상기 사용 타이밍에 대응하는 컨트롤 사이클에서 상기 호출한 머신 지령을 사용하는 머신측 타이밍 조정부를 구비하며,
    상기 머신 제어부는 또한, 상기 사용 타이밍에 대응하는 컨트롤 사이클에서, 상기 호출한 머신 지령에 기초하여, 상기 머신 본체에 모션을 실현시키는, 머신.
  18. 컨트롤러가 컨트롤 사이클에 따라 모션 프로그램을 반복 실행하여 생성한 머신 지령을, 유선 통신 네트워크를 통해 수신하는 단계와,
    상기 머신에 무선 통신 네트워크를 통해 상기 머신 지령을 송신하는 단계와,
    상기 머신이 사용 타이밍을 지정한 사이클 정보를 부가한 응답 정보를, 무선 통신 네트워크를 통해 수신하는 단계와,
    수신한 상기 응답 정보를 기억하는 단계와,
    상기 기억하는 응답 정보에 부가된 사이클 정보에 기초하여, 상기 응답 정보를 호출하여, 상기 호출한 응답 정보를 상기 유선 통신 네트워크를 통해 상기 컨트롤러에 송신하여, 상기 호출한 응답 정보에 따른 모션 프로그램을 상기 사용 타이밍에 대응하는 컨트롤 사이클에서 실행하는 단계를 포함하는 통신 방법.
  19. 삭제
  20. 삭제
KR1020217039869A 2019-05-13 2020-05-13 머신 제어 시스템, 머신 및 통신 방법 KR102517023B1 (ko)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US201962846759P 2019-05-13 2019-05-13
US62/846,759 2019-05-13
US201962858341P 2019-06-07 2019-06-07
US62/858,341 2019-06-07
US201962866622P 2019-06-26 2019-06-26
US62/866,622 2019-06-26
US201962871742P 2019-07-09 2019-07-09
US62/871,742 2019-07-09
US201962879528P 2019-07-28 2019-07-28
US62/879,528 2019-07-28
PCT/JP2020/019141 WO2020230824A1 (ja) 2019-05-13 2020-05-13 マシン制御システム、プログラム、マシン、及び通信方法

Publications (2)

Publication Number Publication Date
KR20220006567A KR20220006567A (ko) 2022-01-17
KR102517023B1 true KR102517023B1 (ko) 2023-03-31

Family

ID=73288875

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217039869A KR102517023B1 (ko) 2019-05-13 2020-05-13 머신 제어 시스템, 머신 및 통신 방법

Country Status (5)

Country Link
EP (1) EP3968653A4 (ko)
JP (2) JP6916399B2 (ko)
KR (1) KR102517023B1 (ko)
CN (1) CN113812168A (ko)
WO (2) WO2020230824A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023148956A1 (ja) * 2022-02-07 2023-08-10 株式会社安川電機 通信システム、通信装置、及び通信方法
WO2023162291A1 (ja) * 2022-02-22 2023-08-31 株式会社安川電機 通信システム及び通信端末
WO2023167324A1 (ja) * 2022-03-03 2023-09-07 株式会社安川電機 生産システム及び再現方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006312237A (ja) 2005-05-06 2006-11-16 Fanuc Robotics America Inc 少なくとも2本のロボットアームの同期化システムおよびその制御方法
JP2007123952A (ja) 2005-10-24 2007-05-17 Mitsubishi Electric Corp 無線lanシステム
JP2011227902A (ja) 2010-04-21 2011-11-10 General Electric Co <Ge> 外部制御システムとフィールドバス装置を同期させるシステムおよび方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5497730B2 (ja) 2009-02-23 2014-05-21 三菱電機株式会社 無線通信システム、無線通信装置および無線通信方法
JP6950415B2 (ja) * 2017-09-29 2021-10-13 オムロン株式会社 制御装置
JP6673401B2 (ja) 2018-06-08 2020-03-25 株式会社安川電機 加工システム及び制御方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006312237A (ja) 2005-05-06 2006-11-16 Fanuc Robotics America Inc 少なくとも2本のロボットアームの同期化システムおよびその制御方法
JP2007123952A (ja) 2005-10-24 2007-05-17 Mitsubishi Electric Corp 無線lanシステム
JP2011227902A (ja) 2010-04-21 2011-11-10 General Electric Co <Ge> 外部制御システムとフィールドバス装置を同期させるシステムおよび方法

Also Published As

Publication number Publication date
JP6916399B2 (ja) 2021-08-11
JP7498684B2 (ja) 2024-06-12
EP3968653A1 (en) 2022-03-16
CN113812168A (zh) 2021-12-17
EP3968653A4 (en) 2023-05-24
KR20220006567A (ko) 2022-01-17
WO2021229842A1 (ja) 2021-11-18
JPWO2020230824A1 (ja) 2021-05-20
JP2021180507A (ja) 2021-11-18
US20220080601A1 (en) 2022-03-17
WO2020230824A1 (ja) 2020-11-19

Similar Documents

Publication Publication Date Title
KR102517023B1 (ko) 머신 제어 시스템, 머신 및 통신 방법
TWI466434B (zh) 電動機控制系統及通信方法
US10071480B2 (en) Real-time interference check system of machine tool and robot
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
US20220063097A1 (en) System for Emulating Remote Control of a Physical Robot
WO2022142078A1 (zh) 动作学习方法、装置、介质及电子设备
US20230099602A1 (en) Device control based on execution command and updated environment information
JP6915759B1 (ja) マシン制御システム、プログラム、マシン、システム及びデバイス
KR20230006582A (ko) 머신 제어 시스템, 프로그램, 머신, 시스템 및 디바이스
US20220247632A1 (en) Control system, control device, and non-transitory computer-readable recording medium recording program
US12030174B2 (en) Machine control via wireless communication
WO2023145410A1 (ja) 機器の制御装置、制御システム、及び制御方法
US11378936B2 (en) Control device, mechanical system, and time synchronization method
WO2024018900A1 (ja) 機器の制御装置、制御システム、及び制御方法
US11770235B2 (en) Time synchronization of controller
JP7400104B2 (ja) シミュレーション装置、制御システム、シミュレーション方法及びプログラム
US20240142954A1 (en) Communication system with ordered command data sets
CN116633983A (zh) 用于多机器人协同作业的通信方法、装置和通信中间件

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant