KR101359541B1 - 규모가변적 모션 제어 시스템 - Google Patents

규모가변적 모션 제어 시스템 Download PDF

Info

Publication number
KR101359541B1
KR101359541B1 KR1020087000438A KR20087000438A KR101359541B1 KR 101359541 B1 KR101359541 B1 KR 101359541B1 KR 1020087000438 A KR1020087000438 A KR 1020087000438A KR 20087000438 A KR20087000438 A KR 20087000438A KR 101359541 B1 KR101359541 B1 KR 101359541B1
Authority
KR
South Korea
Prior art keywords
delete delete
remote controllers
master controller
controller
time
Prior art date
Application number
KR1020087000438A
Other languages
English (en)
Other versions
KR20080016942A (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 KR20080016942A publication Critical patent/KR20080016942A/ko
Application granted granted Critical
Publication of KR101359541B1 publication Critical patent/KR101359541B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • 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
    • 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/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/414Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
    • G05B19/4148Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller characterised by using several processors for different functions, distributed (real-time) systems
    • 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/31207Master sends global files to autonomous controllers, feedback of process status
    • 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/33277Distributed system with host as leader, host with multiple of agents
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Numerical Control (AREA)
  • Selective Calling Equipment (AREA)
  • Feedback Control In General (AREA)

Abstract

제어 시스템은 마스터 제어기, 마스터 제어기의 직접적인 제어하에 있는 한 개 이상의 제1리모트 제어기들을 포함하는 중앙 제어 섹션, 및 마스터 제어기에 의해 제어되는 클러스터 제어기를 포함하는 분산형 제어 섹션을 포함한다. 클러스터 제어기는 한 개 이상의 제2리모트 제어기들의 동작들을 제어한다. 제1 및 제2리모트 제어기들 각각은 하나 이상의 축들을 구동하는데 사용된다.

Description

규모가변적 모션 제어 시스템 {Scalable motion control system}
관련 출원(들)에 대한 상호 참조
이 출원은 이 명세서에 참조의 형태로 그 전체가 포함되는 미국 가출원 번호 60/688,636을 우선권 주장한다.
개시된 실시예들은 복합 멀티-축 (multi-axis) 비선형 머신들에 대한 제어 시스템에 관한 것으로, 더 상세히 말하면, 성능, 융통성, 및 규모가변성이 바람직하게 조합된 정밀 로봇들의 정확하고 동기화된 제어를 위한 시스템에 관한 것이다.
전자 및 통신 분야의 기술적 발전의 결과로서, 복합 모션 시스템들에 대한 제어 기술은 네트워크화된 아키텍처를 지향하는 명백한 방향을 택하여 왔다. 네트워크화된 솔루션은, 모터들과 기타 액추에이터들 같은 제어 대상인 구성요소들 가까이에 위치하고 통신 네트워크를 통해 마스터 제어기에 의해 조정되는, 리모트 제어기들이라 불리는 여러 개의 간단한 제어기들을 이용한다.
네트워크화된 아키텍처는 마스터와 리모트 제어기들 간 제어 지능의 나눔, 고급 제어 알고리즘들의 구현, 통신 네트워크 활용, 서로 다른 리모트 제어기들로 구동되는 구성요소들의 동기화, 모션의 여러 축들의 위치 캡처와 같은 여러 리모트 제어기들 상의 입력들과 관련된 이벤트 처리, 작업 공간의 인간의 참가 수용 및 파워 손실 상황의 처리 분야들에서 수많은 난제를 열어 놓는다.
마스터 및 리모트 제어기들 간 제어 지능의 나눔은, 전부 아니면 대다수의 제어 알고리즘들이 마스터 제어기 상에서 실행되는 완전 중앙집중화된 아키텍처로부터, 제어 알고리즘들이 실질적으로 자율적 리모트 제어기들 상에서 구현되는 분산형 솔루션으로 바뀔 수 있다.
고도로 중앙집중화된 아키텍처의 이점은, 멀티-입력-멀티-출력 (MIMO) 제어 같이 주로 여러 축들로부터 실시간 정보를 요청하고, 마스터 제어기 상에서 편리하게 구현될 수 있는 고급형 제어 알고리즘들을 제공하는 능력을 포함한다. 그러한 아키텍처 안에서 리모트 제어기들은 상대적으로 낮은 계산 능력과 소량의 온-보드 메모리를 필요로 하므로, 상대적으로 간단하고 값싼 디자인이 가능하게 된다.
그러한 이점들은, 마스터 제어기가 제어 루프들을 폐쇄하고 있기 때문에 마스터 제어기와 리모트 제어기들 간 집중적이고도 시간에 민감한 데이터 교환으로 인한 상대적으로 높은 통신 네트워크의 활용을 대가로 얻을 수 있다. 축들의 최대 개수는 마스터 제어기의 계산 능력뿐 아니라 통신 네트워크의 대역폭에 의해서도 제한되기 때문에 그러한 시스템들은 보통 제한된 규모가변성을 가진다. 또, 리모트 제어기들이 통신 네트워크의 고장 상황에서 각자의 모션 축들의 제어 정지 (controlled stop)를 수행하는 것과 같이 고장 관련 동작들을 자율적으로 지원할 정도로는 지능이 충분치 못할 수 있으므로, 고장 상황에서 만족스러운 제어에 도달하는 데 문제가 있을 수 있다.
반대로, 마스터 제어기로부터 수신된 궤적 (trajectory) 정보 상에서 실행되고 리모트 제어기들 상에서 제어 루프들을 폐쇄하는 분산형 제어 알고리즘들을 가진 제어 시스템들은, 리모트 제어기들에서 편리하게 버퍼링 될 수 있는 실질적으로 시간에 덜 민감한 데이터와 상대적으로 낮은 네트워크 트래픽을 이용함으로써 통신 네트워크의 전반적인 용량 마진(capacity margin)을 개선할 수 있다. 이러한 접근법은, 부가 축들에 대한 리모트 제어기들의 개수를 늘리는 것이 제어 루프들의 실행에 이용될 수 있는 전반적인 파워를 자동으로 증가시키기 때문에 제어 시스템의 바람직한 규모가변성을 제공할 수 있다. 또, 간단한 궤적들을 생성하고 제어 알고리즘들을 실행할 수 있는 리모트 제어기들이 통신 네트워크의 고장 상황에서 제어 정지 같은 고장 관련 동작들을 지원할 정도로 충분한 지능을 가진다.
그러나, 분산형 아키텍처 하의 리모트 제어기들의 부가적 지능은 더 많은 계산 능력과 메모리를 요하는데, 이러한 것이 일반적으로 리모트 제어기들의 비용을 더 높게 만든다. 또, 한 리모트 제어기 상에서 실행되는 제어 알고리즘들이 일반적으로 다른 리모트 제어기들로 구동되는 축들의 상태에 실시간으로 액세스하지 못하기 때문에, 완전 MIMO 제어 알고리즘들의 구현에 문제가 있다.
네트워크화된 제어 시스템의 구현은 일반적으로 적절한 능력을 가진 통신 네트워크를 이용해 도모된다. FireWire로도 알려진 IEEE 1394 통신 네트워크는 최신 병렬 버스들과 같은 서비스들을 상당히 낮은 비용으로 제공하도록 개발된 고속 시리얼 버스에 기반하고 있다. IEEE 1394b-2002 수정안에서는 하위 호환 (backwards compatible) 방식의 기가 비트 속도 확장 및, 버스 토폴로지 (bus topology) 의 물리 루프들의 검출 및 물리 계층 (PHY) 포트들의 선택적 불능화 (selective disabling)에 의한 이들의 후속 해결을 제공하는 특징들 및 메커니즘들을 정의한다. 1394 트레이드 협회에 의해, 전자 계측 및 산업 제어 장치들에 대한 효율적 비동기 통신용으로 경량의 IEEE 1394 프로토콜이 개발되었다. 계측 및 산업 제어 프로토콜 (IICP, Instrument and Industrial Control Protocol)이라고도 불리는 그것은 플로우-제어 (flow-controlled) 방식으로 데이터 및 명령/제어 시퀀스들의 전송을 위해 듀얼-듀플렉스 (dual-duplex) 플러그 (plug) 구조를 이용한다.
정밀 로봇들에 대한 정확하고 동기화된 제어를 위한 제어 시스템들은 일반적으로 소정 수준의 시스템 무결성 (system integrity)을 필요로 한다, 즉, 제어 시스템들은 인터록 (interlocks, 연동(기)), 비상 안전 메커니즘 (fail safe mechanisms), 최소 100 %의 가동시간을 유지하기 위한 메커니즘, 생성되고 있는 제품에 대한 손상을 방지하는 메커니즘과 기술, 및 제어 시스템의 작업 공간에 인간의 참가를 수용하는 메커니즘과 기술을 요한다.
특정 수준의 무결성을 가진 프로그램 가능한 시스템을 구현하는 최신 전자기기들 및 컴퓨터들은 고급형 (high-end) 공업 기계류 및 프로세스들로 출시되고 있는 추세이다. 이런 타입의 시스템들은 일반적으로 EN954 Category 4 또는 IEC61508 SIL 3 등의 보다 엄격한 카테고리들에 적용될 수 있고, 고급형 프로세서들이나 내장 CPU들을 이용한다. 이런 타입의 시스템들은 일반적으로 가격이 비싸고 Category 2나 3 같은 하위 수준의 무결성을 요하는 저급형 (low-end) 기계류나 시스템들에 필요한 기능을 갖춘 것보다 더 많은 기능을 가진다.
전문가용의 고급형 전자 기기에 대한 부가 비용을 피하기 위해 프로그램 가능한 무결성에 대한 대안적 솔루션을 구현하고자 하는 기계 설계자는 제어 시스템의 전자기기들, 네트워크 및 소프트웨어를 무결성 요건에 충족하도록 제작하고 규제 기관이나 감사인의 승인을 얻기 위한 매우 복합적인 태스크에 직면하게 된다. 특정 수준의 무결성을 구현하는 기존 기술의 또 다른 문제는, 엄격한 공간 제약을 가진 무결성 어플리케이션들에 대해 적절치 않은 사이즈 및 폼 팩터들 (form-factors)이다.
중앙집중방식 및 분산방식 아키텍처 모두의 이점을 가지고, 융통성과 규모가변성이 있으며, 구성요소 동작들을 동기화시키고, 제어 대상인 구성요소들의 작업 공간에서 인간의 참가 및 파워 손실을 수용하고, 요구되는 시스템 무결성 수준들을 제공하는 제어 시스템이 필요하다.
개시된 실시예들은 마스터 제어기; 마스터 제어기의 직접 제어하에 있는 한 개 이상의 제1리모트 제어기들을 포함하는 중앙 제어 섹션; 및 마스터 제어기에 의해 제어되는 클러스터 (cluster) 제어기를 포함하는 분산형 제어 섹션으로서, 상기 클러스터 제어기는 하나 이상의 제2리모트 제어기들의 동작들을 제어하는 분산형 제어 섹션;을 구비하는 클러스터형 아키텍처를 포함하는 제어 시스템에 관한 것이다. 제1 및 제2리모트 제어기들 각각은 하나 이상의 축들 (axes)을 구동하는데 사용된다.
개시된 실시예들은 또한 제어 시스템의 축에 대한 궤적(trajectory)으로서 상기 궤적 상의 복수의 포인트들 중 각각의 포인트에 대한 위치, 속도 및 가속도와 관련된 상기 축에 대한 궤적을 생성하는 단계, 및 각 포인트에 대한 이득(게인) 값 및 피드포워드 항(피드포워드 텀)(feedforward term)을 정하기 위해 축의 인버스 다이내믹 모델 (inverse dynamic model; 역 동적 모델)을 산출하는 단계를 포함하는 제어 시스템의 축 운용 방법에 관한 것이다.
개시된 실시예들은 또, 메시지가 보내졌던 시간을 나타내는 타임 스탬프를 포함하는 시작 메시지를 발하는 단계, 타임 스탬프를 사용해 고정밀도(high resolution) 클록을 업데이트하는 단계, 및 타임 스탬프에 의해 지시된 시간과 고정밀도 클록이 업데이트된 시간 사이의 차를 보상하는 단계를 포함한다.
개시된 실시예들은 또한, 제어 시스템의 노드들 사이에서 통신할 메시지 집합에 관한 것으로, 그 메시지 집합은 명령들과 명령 응답들의 교환을 위한 액션 메시지, 마스터 제어기로의 소정 이벤트 관련 데이터 보고를 위한 이벤트 메시지, 한 리모트 제어기와 마스터 제어기 간 시리얼 메시지 채널 제공을 위한 스트링 메시지, 및 네트워크 노드로의 데이터 전송을 위한 데이터 포트 메시지를 포함한다.
개시된 실시예들은 또한 이벤트 시간에 축 데이터를 얻는 방법을 포함하며, 그 방법은 하나 이상의 축 노드들에서 데이터를 버퍼링하는 단계, 상기 한 개 이상의 축 노드들 중 유발 (triggering) 이벤트 노드에서 일어난 유발 이벤트의 시간 정보를 기록(쓰기)하는 단계, 및 기록된 시간 정보가 지시하는 시기의 일련의 값들을 결정하도록 상기 버퍼링된 데이터를 처리하는 단계를 포함한다.
개시된 실시예들은 또한 클러스터형 아키텍처에서 편성된 복수의 노드들을 포함하는 제어 시스템, 및 둘 이상의 노드들이 통신하는 무선 통신 네트워크에 관한 것이다.
개시된 실시예들은 또한 제어 시스템의 축을 제어하는 방법을 포함하며, 이 방법은, 상기 축의 엔드-이펙터 (end-effector, 말단 장치)에 대한 동작 파라미터 값을 산출하는 단계, 및 상기 엔드-이펙터의 모션 프로파일이 상기 동작 파라미터 값을 초과하지 않도록 상기 축의 개별 조인트 (individual joint)의 모션 프로파일을 생성하는 단계를 포함한다.
축을 제어하는 방법이 또한 개시되며, 이 방법은 축의 위치에 대한 속도 및 토크를 산출하는 단계, 축 속도가 상기 산출된 속도를 초과할 수 있는 제1최대 시간의 기간을 미리 정하는 단계, 축 토크가 상기 산출된 토크를 초과할 수 있는 제2최대 시간의 기간을 미리 정하는 단계, 및 제1 또는 제2 최대 시간의 기간이 지나면 축을 불능화시키는 단계를 포함한다.
여기 개시된 또 다른 실시예는 제어 시스템 네트워크를 통해 전송된 데이터의 무결성을 검증하는 방법을 포함한다. 이 방법은 네트워크상의 한 노드에 동작 파라미터들을 저장하는 단계, 및 네트워크를 통해 수신된 명령들이 상기 동작 파라미터들의 한도를 넘는 노드 동작들을 야기하지 않음을 검증하는 단계를 포함한다.
상기 개시된 실시예들의 일부로서 제어 시스템 네트워크의 무결성을 검증하는 방법은 주기적 메시지를 발하는 단계 및 상기 메시지가 소정 시간의 기간 안에 수신되지 않으면 제어 시스템 네트워크의 한 개 이상의 노드들을 불능화시키는 단계를 포함한다.
개시된 실시예들은 또한 제어 시스템 네트워크의 무결성을 관리하는 방법을 포함하며, 이 방법은 네트워크의 노드들을 영역(zone)들로 할당하여 제1영역에서의 모션이 제1영역 외의 영역들에서의 모션과 분리되도록 하는 단계, 및 제1영역의 이벤트들이 제1영역 외의 영역들의 동작에 영향을 미치지 않도록 영역들을 제어하는 단계를 포함한다.
본 발명의 실시예들은 또한 축을 제어 정지 (controlled stop)되게 하는 방법에 관한 것으로, 이 방법은 상기 축을 포함하는 시스템에 대한 파워가 끊어졌는지를 판단하는 단계, 소정 시간의 기간 안에서 상기 축을 제로 속도가 되게 하는, 축에 대한 궤적을 적용하는 단계, 및 상기 소정 시간의 기간의 종료시 상기 축으로부터 파워를 제거하는 단계를 포함한다.
여기 개시된 실시예들은 또한 제어 시스템에서 동기화 지연을 보상하는 방법을 포함하며, 이 방법은 메시지를 발하는 네트워크 노드와 그 메시지를 수신하는 네트워크 노드 사이에서의 지연을 판단하는 단계, 및 상기 판단된 지연을 이용해 수신하는 노드에 대한 궤적 데이터를 조정하는 단계를 포함한다.
로봇 운용 방법이 개시되며, 이 방법은 로봇의 아이들 타임 (idle time; 유휴 시간)을 기록하는 단계, 아이들 타임 문턱치를 초과할 때 로봇의 성능 특징을 판단하는 단계, 및 상기 판단된 성능 특징이 소정 사양을 충족시키지 못하면 로봇으로 하여금 워밍업 동작 (warm up exercise)을 수행하도록 하는 단계를 포함한다.
모션 제어 시스템에 대한 어플리케이션 프로그램 인터페이스 또한 개시된 실시예들에 포함되며, 그 어플리케이션 프로그램 인터페이스는 모션 제어 시스템의 구성요소들 사이에 정보를 교환하기 위한 표준화된 인터페이스 컨벤션 집합, 및 동작 수행의 일반 명령들 및 동작 수행을 위한 특정 구성요소들 및 액션들을 식별하도록 하는 특정 변수들을 제공하는 일반화된 명령 집합을 포함한다.
개시된 실시예들에 대한 상술한 양태들 및 기타 특징들이 이하의 설명을 통해 기술됨에 있어, 함께 고려되는 첨부 도면들은 다음과 같다:
도 1은 개시된 실시예들을 실시하는데 적합한 클러스터형 아키텍처 제어 시스템의 블록도를 보인 것이다;
도 2는 클러스터형 아키텍처 제어 시스템의 동작을 제어하는 마스터 제어기의 블록도를 보인 것이다;
도 3은 마스터 제어기의 제어에 따라 동작될 수 있는 클러스터 제어기의 블록도를 도시한 것이다;
도 4는 마스터 제어기나 클러스터 제어기의 제어하에 동작될 수 있는 리모트 제어기의 블록도를 보인 것이다;
도 5a는 클러스터형 아키텍처 제어 시스템의 전형적 어플리케이션을 보인 것이다;
도 5b는 자율 리모트 제어기들을 이용하는 제어 시스템의 전형적 어플리케이션을 보인 것이다;
도 6은 위치, 속도 및 시간 정보를 전달하는데 사용되는 전형적 PVT 프레임을 보인 것인다;
도 7은 피드포워드 및 이득 항(텀; term)을 가지고 위치, 속도 및 시간 정보를 전달하는데 사용되는 전형적 PVT-FG 프레임을 보인 것이다;
도 8은 상이한 타입의 제어 알고리즘들을 이용하여 경험적으로 도출된 트래킹 에러들의 비교를 보인 것이다;
도 9a는 개시된 실시예들의 통신 네트워크의 전형적 버스 사이클을 보인 것이다;
도 9b는 개시된 실시예들의 통신 네트워크의 전형적 사이클 시작 메시지를 보인 것이다;
도 9c는 통신 네트워크 노드들 사이의 동기화를 위한 전형적 고정밀도 레지스터를 보인 것이다;
도 10은 통신 프로토콜 구조를 보인 것이다;
도 11은 통신 프로토콜 구조의 일부로서 플러그 구현예를 보인 것이다;
도 12는 작업 셀의 다이어그램을 보인 것이다;
도 13은 순간적 데이터 캡처 시퀀스의 흐름도들을 보인 것인다;
도 14는 순간적 데이터 캡처 시퀀스의 다른 실시예에 대한 흐름도들을 보인 것이다;
도 15는 순간적 데이터 캡처 시퀀스의 또 다른 실시예에 대한 흐름도들을 보인 것이다;
도 16은 신호 전이 지연들을 교정하는 절차의 흐름도를 보인 것이다;
도 17은 전형적 제어 메시지 구조를 보인 것이다;
도 18은 전형적 ACTION (액션) 메시지를 보인 것이다;
도 19는 전형적 EVENT (이벤트) 메시지 구조를 보인 것이다;
도 20은 벤더 고유 이벤트 메시지의 예를 보인 것이다;
도 21은 STRING 메시지 구조의 예를 보인 것이다;
도 22는 벤더 고유 STRING 메시지의 예를 보인 것이다;
도 23은 PVT 또는 PVT-FG 메시지 구조의 예를 보인 것이다;
도 24는 STATUS 메시지의 예를 보인 것이다;
도 25는 통신 네트워크가 무선 세그먼트를 포함할 때 도 1의 시스템의 일부를 보인 것이다;
도 26은 옵션인 토크 제한 항을 갖는 전형적 PVT 프레임을 보인 것이다;
도 27은 옵션인 토크 제한 항을 갖는 전형적 PVT-FG 프레임을 보인 것이다;
도 28은 공통 병합 체크 및 셧다운 회로 유닛을 갖는 리모트 제어기의 블록도를 보인 것이다;
도 29는 로봇 워밍업 동작을 구현하기에 적합한 작업 셀의 다이어그램을 보인 것이다;
도 30은 로봇 워밍업 동작 절차 구현의 흐름도를 보인 것이다;
도 31은 대안적 로봇 워밍업 동작 절차의 흐름도를 보인 것이다;
도 32는 TRACE 메시지의 예를 보인 것이다;
도 33은 용량성 저장 모듈의 예를 보인 것이다;
도 34a는 여분의 접속을 제공하는 전형적 네트워크 토폴로지를 보인 것이다;
도 34b-34e는 네트워크 오류 보상 방식의 다양한 양태들을 보인 것이다;
도 35는 리피터 지연들을 판단 및 적용하는 방법을 보인 것이다;
도 36은 추가적 TIME_OFFSET 필드를 갖는 전형적 PVT 프레임을 보인 것이다;
도 37은 추가적 TIME_OFFSET 필드를 갖는 전형적 PVT-FG 프레임을 보인 것이다;
도 38은 일반적인 네트워크 자체 식별 방식을 보인 것이다;
도 39는 여러 영역들을 갖는 제어 시스템의 전형적 어플리케이션을 보인 것이다;
도 40은 파워 제어 회로의 블록도를 보인 것이다;
도 41은 용량성 저장 모듈에 연결된 파워 제어 회로의 다른 예를 보인 것이다;
도 42는 어플리케이션 프로그램 인터페이스의 블록도를 보인 것이다.
도 1은 여기 개시된 실시예들을 실시하기에 적합한 시스템(100)의 블록도를 보인 것이다. 개시된 실시예들이 첨부도면들에 도시된 구성을 참조할 것이나, 이 실시예들이 여러 다른 형태의 실시예들로 구현될 수 있다는 것을 알아야 한다. 또, 어떠한 적절한 크기, 형상 혹은 타입의 요소들이나 재료들도 사용될 수 있을 것이다.
개시된 실시예들의 제어 시스템(100)은 네트워크화된 제어 시스템의 제어 지능에 대한 중앙집중형 및 분산형 할당의 장점들을 결합한 것이다. 이러한 결합 아키텍처를 여기에서는 클러스터형 (clustered) 아키텍처라 부를 것이다.
클러스터형 아키텍처의 제어 시스템(100)은 통신 네트워크(120)를 통해 서로 연결되는, 마스터 제어기(105), 한 개 이상의 클러스터 제어기들(110), 한 개 이상의 리모트 제어기들(115), 및 한 개 이상의 자율형 (autonomous) 리모트 제어기들(150)을 포함한다. 마스터 제어기(105), 클러스터 제어기들(110), 리모트 제어기들(115) 및 자율형 리모트 제어기들(150)을 네트워크 노드들이라 칭할 수 있다.
도 1에 다이어그램 형식으로 도시된 것과 같이, 마스터 제어기(105)는 제어 시스템(100)의 전반적인 동작을 감독하고, 클러스터 제어기들(110) 각자는 한 개 이상의 리모트 제어기들(115)의 동작들을 감독하며, 리모트 제어기들 각자는 한 개 이상의 축들 (axes)(125)을 구동시키는데 사용된다. 축들은 정밀 로봇들의 시스템과 같은 한 개 이상의 복합 멀티-축 비선형 머신들의 일부일 수 있다. 리모트 제어기들(115)은 클러스터 제어기(110)에 의해 제어될 수 있고, 자율형 리모트 제어기들(150)은 마스터 제어기(105)에 의해 직접 동작될 수 있다. 리모트 제어기들(115)은 일반적으로 클러스터들(130) 안에서 그룹화될 수 있다.
클러스터형 아키텍처의 제어 시스템(100)은 또한 마스터 제어기로 하여금 제어기 영역 네트워크 (CAN, controller area network) 와 같은 다른 통신 네트워크 상의 노드들과 통신할 수 있게 하는 적어도 한 브리지 (bridge) 노드(135)를 포함할 수도 있다. 그에 따라 제어 시스템은, 가령 CAN 축 제어기들, 그리퍼들 (grippers), 도어(door)들, 액추에이터들, 센서들 등등의 CAN 기반 모듈들 및 구성요소들을 제어할 수 있게 될 것이다.
클러스터형 아키텍처는 네트워크 토폴로지 (network topology) 안에 필요한 경우 중앙집중형 제어 네트워크의 특징들과 분산형 제어 네트워크의 특징들을 제공한다. 여기에 개시된 아키텍처는, 클러스터들(130)이 네트워크 안에 필요한 경우 분산될 수 있기 때문에, 그리고 각각의 클러스터 제어기(110)가 자신이 관리하는 클러스터 안에서 고도의 중앙집중형 제어를 제공할 수 있기 때문에 바람직하다. 고도의 중앙집중형 제어와 결부된 네트워크 트래픽은 일반적으로 각각의 클러스터(130) 안에 한정되며, 리모트 제어기들(115) 및 자율형 리모트 제어기들(150)은 이들이 제어하는 축들과 가까이에 위치할 수 있어 파워 및 신호 배선(signal cabling)과 관련된 문제를 저감시킬 수 있다. 이 외에, 상기 아키텍처는 필요한 경우 마스터 제어기(105)에 의한 자율형 리모트 제어기들(150)의 직접 제어를 가능하게 한다. 또, 집중된 네트워크 트래픽이 일반적으로 클러스터들(130) 안에 한정되어 있고, 클러스터들(130)이 높은 수준의 제어를 할 수 있으므로, 상기 아키텍처는 다수의 클러스터들을 수용할 수 있을 것이다. 따라서, 상기 아키텍처는 높은 수준의 규모가변성 (scalability)을 제공하고, 제어기들의 효율적 분산을 가능하게 한다.
중앙집중형 제어의 예로서, 마스터 제어기(105)가 자율형 리모트 제어기(150)를 직접 제어할 수 있고, 이때 마스터 제어기는 궤적들 (trajectories)을 생성하고, 제어 알고리즘들을 실행하며 자율형 리모트 제어기(150)에 의한 구현을 위해 토크 명령들을 제공할 수 있다. 자율형 리모트 제어기들(150)은 축 액추에이터(14), 예를 들면 모터에 전압을 인가하는 등의 제어 액션들을 생성하는데 토크 명령들을 사용할 수 있다. 자율형 리모트 제어기들(150)은 엔코더 등의 피드백 장치(145)로부터의 위치 정보 및 축(125)으로부터 인출된 전류와 같은 피드백 신호들을 판독하고 이들을 마스터 제어기(105)로 전달할 수도 있다. 이 예에서는 고성능을 달성하면서 네트워크 활용도 역시 높일 수 있는데, 이는 제어 및 피드백 루프들이 통신 네트워크(120)에 대해 폐쇄되어 있기 때문이다.
분산형 제어의 예로서, 마스터 제어기(105)가 한 개 이상의 자율형 리모트 제어기들(150) 간의 동작들을 조정하고, 한 개 이상의 자율형 리모트 제어기들(150)에 의한 구현에 대한 궤적 데이터를 생성할 수 있다. 자율형 리모트 제어기들(150)은 그 궤적 데이터를 실시간 제어 알고리즘들에 사용하여, 축 액추에이터들(140)로 파워를 인가하는 등의 제어 액션들을 생성할 수 있고, 또한 상태 정보를 마스터 제어기(105)로 전달할 수도 있다. 이 예에서, 네트워크 활용은 낮은 상태에 있을 수 있는데, 이는 피드백 제어 루프들이 리모트 제어기들 상에서 폐쇄되어 있기 때문이다. 그러나, 동적으로 연결된 축들의 제어 성능은 제한될 수 있는데, 이는 피드백 루프들이 일반적으로 다른 리모트 제어기들에 상주하는 정보에 실시간으로 액세스하지 못하기 때문이다.
결합 클러스터형 제어의 예로서, 마스터 제어기(105)가 높은 수준의 감독 제어 기능들을 수행하고 한 개 이상의 클러스터 제어기들(110) 간의 동작들을 조정할 수 있다. 클러스터 제어기(110)는 자신의 제어 하에서 축들의 로컬 다이내믹 모델링을 포함하는 실시간 제어 알고리즘들을 실행하고 각개의 리모트 제어기들(115)로 토크 명령들을 제공할 수 있다. 클러스터 제어기(110)에 의해 관리되는 리모트 제어기들은, 예를 들어, 토크 명령들에 응답하여 축 액추에이터들(140)로 파워를 인가할 수 있고, 또한 클러스터 제어기(110)로 실제 위치들과 같은 축 정보를 전달할 수도 있다. 따라서, 대부분의 제어 및 피드백 통신이 일반적으로 클러스터 제어기(110)와 그 각자의 리모트 제어기들(115) 사이에서 국부적으로 일어날 수 있어, 클러스터 외부의 노드들 간의 네트워크 활용을 보존할 수 있다.
클러스터형 아키텍처는 일반적으로, 시간에 민감한 집중된 트래픽으로 전체 통신 네트워크(120)에 부담을 주지 않으면서, 필요한 경우에 구성요소들의 부분 집합들에 대한 고성능 제어를 제공한다.
이제 도 2를 참조하여, 마스터 제어기(105)가 보다 상세히 설명될 것이다. 상술한 바와 같이, 마스터 제어기(105)는 클러스터형 아키텍처 제어 시스템(100)의 동작을 제어한다. 마스터 제어기(105)는 일반적으로 프로세서(205), 롬 (read only memory)(210), 램 (random access memory)(215), 프로그램 저장부(220), 사용자 인터페이스(225), 및 네트워크 인터페이스(230)를 포함할 수 있다.
프로세서(205)는 온 보드 캐시 (on board cache)(235)를 포함할 수 있고, 일반적으로 온 보드 캐시(235), 롬(210), 램(215), 및 프로그램 저장부(220)와 같은 컴퓨터 사용가능 매체 등의 컴퓨터 프로그램 생성물로부터 정보 및 프로그램을 판독하도록 동작하는 것이 가능하다.
파워 업 되면, 프로세서(205)는 롬(210)에서 찾은 운영 프로그램들을 시동하고, 초기화 후 프로그램 저장부(220)의 명령어들을 램(215)으로 로드하여 이들 프로그램들의 제어에 따라 동작하는 것이 가능하다. 흔히 사용되는 명령어들은 임시로 온 보드 캐시(235)에 저장될 수 있다. 롬(210)과 램(215) 모두는 반도체 기술이나 기타 적절한 재료 및 기법을 이용할 수 있다. 프로그램 저장부(220)는 디스켓, 컴퓨터 하드 드라이브, 컴팩트 디스크 (CD), 디지털 다기능 디스크 (DVD), 광 디스크, 칩, 반도체, 또는 컴퓨터 판독가능 코드 형식으로 프로그램들을 저장할 수 있는 기타 장치를 포함할 수 있다.
온 보드 캐시(235), 롬(210), 램(215), 및 프로그램 저장부(220)는 개별적으로나 임의 결합으로 운영 체제 프로그램들을 포함할 수 있다. 운영 체제 프로그램들은 마스터 제어기(105)에 의해 제공되는 데이터 품질을 개선하도록 옵션인 실시간 운영 체제로 보완될 수 있다. 옵션인 실시간 운영 체제 역시 마스터 제어기(105)로 하여금 클러스터 제어기들(110)과 자율형 리모트 제어기들(150)로부터 수신된 데이터 및 메시지들에 보장된 응답 시간을 제공하게 할 수 있다.
특히, 온 보드 캐시(235), 롬(210), 램(215), 및 프로그램 저장부(220)는 개별적으로나 임의 결합으로 축 궤적 생성, 다이내믹 모델링, 에러 처리, 데이터 수집, 및 메시징 기능을 위한 프로그램들을 포함할 수 있다. 메시징 기능에는, 네트워크 노드들 간에 메시지를 구성 및 교환하기 위한 프로그램들, 프레임들을 구성 및 교환하는 프로그램들이 포함될 수 있고, 이하에서 논의되는 바와 같이 어플리케이션 프로그램 인터페이스를 제공하기 위한 프로그램들이 포함될 수도 있다. 또, 온 보드 캐시(235), 롬(210), 램(215) 및 프로그램 저장부(220)에는 네트워크 인터페이스(230)를 통해 프로세서(205) 등에 의해, 새롭거나 혹은 업그레이드된 프로그램들이 로드될 수 있다.
네트워크 인터페이스(230)는 일반적으로 마스터 제어기(105) 및 통신 네트워크(120) 간의 인터페이스를 제공하도록 구성될 수 있다. 통신 네트워크(120)에는 PSTN (Public Switched Telephone Network), 인터넷, 무선 네트워크, 유선 네트워크, LAN (Local Area Network), WAN (Wide Area Network), VPN (Virtual Private Network) 등등이 포함될 수 있고, 그 외에 X.25, TCP/IP, ATM 등등을 포함하는 다른 타입의 네트워크들이 포함될 수 있다. 일실시예에서, 통신 네트워크(120)는 "Firewire" 네트워크라고도 불리는 IEEE 1349 네트워크일 수 있다.
마스터 제어기(105)는 디스플레이(240) 및 키보드(255)나 마우스(245)와 같은 입력 장치를 가진 사용자 인터페이스(225)를 포함할 수 있다. 사용자 인터페이스는 프로세서(205)의 제어 하에서 사용자 인터페이스 제어기(250)에 의해 동작될 수 있다. 사용자 인터페이스 제어기는 외부 네트워크나 다른 제어 시스템이나 호스트 컴퓨터에 대한 접속이나 인터페이스(255)를 제공할 수도 있다.
마스터 제어기(105)는 클러스터형 아키텍처 제어 시스템(100)에 대해 일반적으로 높은 수준의 감독 및 제어 기능들을 수행할 수 있다. 이러한 기능들은 오퍼레이터 및/또는 더 높은 수준의 호스트 컴퓨터와의 통신 인터페이스, 구성 데이터 관리, 클러스터 및 리모트 제어기들의 조정, 모션 시퀀싱 및 궤적 생성, 다이내믹 모델링 (필요한 경우), 에러 처리 및 데이터 로깅 (data logging)에 대한 지원을 포함할 수 있다.
이제 도 3을 참조하여, 클러스터 제어기(110)의 구조 및 동작이 설명될 것이다. 한 개의 클러스터 제어기(110)가 개시되겠지만, 클러스터형 아키텍처의 제어 시스템(100)은 임의 개수의 클러스터 제어기들도 포함할 수 있다는 것을 알아야 한다.
앞에서 설명한 바와 같이, 클러스터 제어기(110)는 마스터 제어기(105)로부터 정보를 수신하고 그 정보를 활용하여 하나 이상의 축들(125)을 제어할 수 있다. 클러스터 제어기(110)는 일반적으로 프로세서(305), 롬 (read only memory)(310), 램 (random access memory)(315), 프로그램 저장부(320), 및 통신 네트워크(120)로의 네트워크 인터페이스(330)를 포함할 수 있다. 프로세서(305)는 온 보드 프로그램가능 메모리(335)를 포함할 수도 있다.
프로세서(305)는 일반적으로 온 보드 프로그램가능 메모리(335), 롬(310), 램(315), 및 프로그램 저장부(320)와 같은 컴퓨터 사용가능 매체 등의 컴퓨터 프로그램 생성물로부터 정보 및 프로그램을 판독하도록 동작하는 것이 가능하다.
온 보드 프로그램가능 메모리(335), 롬(310), 램(315), 및 프로그램 저장부(320)에는 네트워크 노드들 간에 메시지를 구성 및 교환하기 위한 프로그램들이 포함되어있을 수 있고, 또 네트워크 노드들 간의 어플리케이션 프로그램 인터페이스를 지원하는 프로그램들이 포함되어 있을 수 있다. 온 보드 프로그램가능 메모리(335), 롬(310), 램(315), 및 프로그램 저장부(320)에는, 클러스터 제어기(110)가 마스터 제어기(105)로부터 일반적으로 적어도 위치, 속도 및 타임 스탬프를 가진 프레임들 (PVT 프레임들)의 형식으로 된 모션 명령들을 수신하게 할 수 있는 프로그램들이 또한 포함되어 있을 수 있다. 프레임들은 이하에서 설명하는 것과 같이, 가령 피드포워드 항 (feed-forward term), 이득 항 (gain term) 또는 이들 둘 다와 같은 다른 데이터를 포함할 수 있다. 램(315) 및 프로그램 저장부(320)는 개별적으로 아니면 함께, 프레임들이 수신될 때 그 프레임들을 버퍼링하도록 동작하는 것이 가능하다.
프로그램 제어하에서, 클러스터 제어기(110)는 자신의 특정 클러스터의 일부인 리모트 제이기들(115)에 대한 토크 명령들을 산출하도록 자신이 제어하는 축들의 다이내믹 모델들을 포함해서, 실시간 제어 알고리즘들을 이용하여 프레임들에 포함된 데이터 상에서 동작하는 것이 가능하다. 클러스터 제어기(110)는 리모트 제어기들(115)로부터 실제 축 위치들, 에러 표시들 등과 같은 데이터를 얻을 수 있고, 그 데이터를 마스터 제어기(105)에 보고할 수 있다.
리모트 제어기(115) 및 자율형 리모트 제어기(150)의 구조와 동작이 도 4를 참조해 설명될 것이다. 한 개의 리모트 제어기(115, 150)가 개시되겠지만, 클러스터형 아키텍처의 제어 시스템(100)이 복수의 리모트 제어기들(115) 및 자율형 리모트 제어기들(150)을 포함할 수 있다는 것을 알아야 할 것이다. 이러한 논의의 목적으로, 리모트 제어기들(115) 및 자율형 리모트 제어기들(150)을 리모트 제어기들 (115, 150)이라고 부를 것이다. 일부 실시예들에서 리모트 제어기(150)는 자율형 리모트 제어기(150)로서 동작하는 기능을 포함할 수도 있고, 자율형 리모트 제어기(150)는 리모트 제어기(115)로서 동작하는 기능을 포함할 수 있다.
리모트 제어기(115, 150)는 일반적으로 하나 이상의 축들을 구동시키도록, 그리고 하나 이상의 축들로부터 위치 정보를 수신하도록 동작한다. 특히, 리모트 제어기는 단일 혹은 멀티-축 제어를 할 수 있고, 한 개 이상의 전류 루프들을 구동하여, 가령 모터 권선에 파워를 공급하고 일반적으로 모션 제어 루프를 구현하며 실시간으로 데이터를 수집하는 것이 가능하다. 리모트 제어기(115, 150)는 마스터 제어기(105)나 클러스터 제어기(110)로부터 명령들을 수신하고, 마스터 제어기(105)나 클러스터 제어기(110)에 정보를 제공할 수 있다.
리모트 제어기(115, 150)는 프로세서(405), 반도체 메모리 장치(410), 비반도체 메모리(415), 및 네트워크 인터페이스(420)를 포함할 수 있다. 리모트 제어기(115, 150)는 또한 한 개 이상의 축들(125) (도 1 참조)로 파워를 인가하기 위한 회로(425) 및 구동기들(430)을 포함할 수도 있다. 리모트 제어기(115, 150)는 한 개 이상의 축들(125) 각각으로부터 축 위치 정보(440)를 수신하기 위한 회로(435)를 더 포함할 수 있다. 위치 정보는 축들(125)의 일부일 수 있는 한 개 이상의 엔코더들(145)로부터의 출력들일 수 있다.
프로세서(405)는 일반적으로, 반도체 메모리(410) 및 비반도체 메모리(415)와 같은 컴퓨터 이용가능 매체 등의 컴퓨터 프로그램 생성물 상에 저장되는 프로그램들의 제어하에서 동작한다. 비반도체 메모리(415)는 디스켓, 컴퓨터 하드 드라이브, 컴팩트 디스크 (CD), 디지털 다기능 디스크 (DVD), 광 디스크, 혹은 컴퓨터 판독가능 코드의 형태로 프로그램들을 저장할 수 있는 기타 장치를 포함할 수 있다.
반도체 메모리(410) 및 비반도체 메모리(415)는 개별적으로나 임의 결합으로 리모트 제어기 운영 체제 프로그램들을 포함할 수 있다. 반도체 메모리(410) 및 비반도체 메모리(415)는 개별적으로나 결합으로 네트워크 노드들 간에 메시지들을 구성 및 교환하기 위한 프로그램들을 포함할 수도 있고, 네트워크 노드들 간의 어플리케이션 프로그램 인터페이스를 지원하는 프로그램들을 포함할 수도 있다. 특히, 반도체 메모리(410) 및 비반도체 메모리(415)는 개별적으로나 결합으로, 리모트 제어기(115, 150)의 토크 모드 동작, 셋 포인트 (set point) 모드 동작, 포인트 투 포인트 (point to point) 모드 동작 가운데 적어도 하나에 대한 프로그램들을 포함할 수 있다. 그 외에, 반도체 메모리(410) 및 비반도체 메모리(415)는 개별적으로나 결합으로, 아래에서 논의되는 바와 같이, 프레임들이 수신될 때 그 프레임들을 버퍼링하도록 동작하는 것이 가능하다.
리모트 제어기(115)는 클러스터 제어기(110)에 의해 제어될 때 토크 모드에서 동작될 수 있다. 상술한 것과 같이, 클러스터 제어기(110)는 일반적으로 마스터 제어기로부터 데이터 프레임들을 수신하고 이들을 활용하여 자신의 클러스터 안의 리모트 제어기들을 위한 토크 명령들을 산출한다. 각각의 리모트 제어기(115)는 자신의 개별 토크 명령들을 실행하는데 필요한 제어 기능들을 수행할 수 있다.
예를 들어, 리모트 제어기(115)에는, 자신이 제어하는 축이나 축들의 특징들, 가령 모터 수, 모터 당 위상 (phases), 위상 저항, 역(back) EMF 상수 등등과 같은 특징들이 미리 프로그램되어 있을 수 있다. 클러스터 제어기(110)는 리모트 제어기(115)에 명령을 발하여 모터 등의 액추에이터(140)가 발휘해야 할 토크를 지시할 수 있다. 리모트 제어기(115)는 액추에이터(140)가 원하는 토크를 발휘하게 하는, 특정 시간의 기간 동안 액추에이터(140)로 인가될 전압, 전류 또는 파워를, 미리 프로그램된 특징들을 이용해, 계산할 수 있다.
리모트 제어기(115)는 또한 리모트 제어기(115)에 의해 제어되는 축들의 실제 위치들과 같은 토크 명령들을 결정하기 위해 클러스터 제어기(110)로 다시 정보를 제공할 수도 있다. 엔코더(145)는, 리모트 제어기(115)에 다수의 엔코더 카운트들이나 스텝들의 개수, 각도 (angle) 측정치 등등과 같은 미처리 (raw) 위치 정보를 제공할 수 있고, 그 정보로부터 리모트 제어기(115)는 실제 위치 정보를 산출할 수 있다. 따라서, 클러스터 제어기(110) 및 리모트 제어기(115)의 결합은 마스터 제어기(105)로부터 프레임들의 형태로 보다 적은 수의 상대적으로 높은 수준의 명령들을 수신할 수 있고, 그 후에 상기 프레임들에 의해 지시된 모션을 실행하도록 그들 간에 상대적으로 많은 개수의 명령들 및 피드백을 교환할 수 있다.
마스터 제어기(105)의 제어하에서 동작할 때, 리모트 제어기는 상술한 바와 같은 자율형 리모트 제어기(150)라고 부를 수 있다. 자율형 리모트 제어기(150)는 셋-포인트 모드에서 동작될 수 있다. 셋 포인트 모드에서는, 마스터 제어기(105)가 궤적 데이터를 자율형 리모트 제어기(150)로 송신할 수 있다. 가령, 궤적 데이터는, 일반적으로 특정 축의 위치, 속도 및 타임 스탬프에 대한 디지털 표현을 포함할 수 있는 PVT 프레임의 형태로 되어 있을 수 있다.
자율형 리모트 제어기(150)는 축(125)이 원하는 궤적들에 따라 이동하게 하는 상기 축에 대한 관련 토크 명령들의 집합을 결정하기 위한 실시간 알고리즘들을 실행할 수 있다. 그런 다음 자율형 리모트 제어기(150)는 토크 명령들을 이용해 그에 따라 액추에이터(140)로 인가될 파워를 산출할 수 있다. 셋 포인트 모드에서, 자율형 리코트 제어기(150)는 일반적으로 클러스터 제어기의 기능들 중 일부를 수행할 수 있고, 자신과 자신이 제어하는 축 간의 제어 루프들을 폐쇄하도록 동작함으로써, 통신 네트워크(120)의 대역폭을 보존할 수 있다.
다른 대안으로서, 자율형 리모트 제어기(150)가 마스터 제어기(105)의 제어 하에서 포인트 투 포인트 모드로 동작될 수도 있다. 이 모드에서, 자율형 리모트 제어기(150)는 마스터 제어기(105)로부터 모션 명령을 수신할 수 있고, 그 모션 명령을 실행하는데 필요한 동작들을 수행할 수 있다. 전형적 모션 명령은 축 작업공간 (axis workspace) 내 3차원 포인트를 포함할 수 있다. 모션 명령을 실행하는데 필요한 동작들은, 궤적들을 산출하는 동작, 토크 명령들을 산출하는 동작, 및 축들이 3차원 포인트에 도달하도록 자율형 리모트 제어기(150)에 의해 제어되는 축들의 모터들로 인가될 필요한 파워를 산출하는 동작 중 하나 이상을 포함할 수 있다.
포인트 투 포인트 모션 명령에 응답하여, 자율형 리모트 제어기(150)는 그 명령의 결과들을 보고하는 응답을 송신할 수 있다. 그 후에 마스터 제어기(105)가 다음 3차원 포인트를 가지고 다른 포인트 투 포인트 명령을 송신할 수 있다. 이러한 교환은 자율형 리모트 제어기(150)가 원하는 원하는 모션 명령들의 시퀀스를 실행할 때까지 진행될 수 있다. 포인트 투 포인트 동작 모드는 마스터 제어기(105)로 하여금 자율형 리모트 제어기(150)로 전송되는 데이터를, 다수의 데이터 프레임들과는 반대로, 모션 명령 당 한 엔드 포인트로 제한할 수 있게 함으로서, 네트워크 대역폭을 보존할 수 있게 한다. 그러나, 포인트 투 포인트 동작 모드에서, 마스터 제어기(105)는 여러 자율형 리모트 제어기들(150)에 의해 실행되는 궤적들의 정밀한 동기화 능력을 보장하지 못한다.
클러스터형 아키텍처의 제어 시스템에 대한 전형적 어플리케이션이 도 5a에 도시되어 있다. 제어 시스템을 합체하고 있는 작업 셀(505)은 두 개의 로봇들(510, 520) 및 두 개의 기판 정렬기(기판 배열기)들 (substrate aligners) (515, 525)을 포함한다. 클러스터 제어기(540) 및 세 개의 리모트 제어기들(550, 555, 560)이 로봇(510)을 제어하는데 사용된다. 마찬가지로, 다른 클러스터 제어기(545)와 세 개의 리모트 제어기들(565, 570, 575)이 로봇(520)을 제어하는 데 사용된다. 마스터 제어기(580)는 두 개의 클러스터 제어기들(540, 545) 뿐 아니라 기판 정렬기들(515, 525)을 위한 자율형 리모트 제어기들(585, 590)을 제어한다. 마스터 제어기(580), 클러스터 제어기들(540, 545), 리모트 제어기들(550, 555, 560, 565, 570, 575) 및 자율형 리모트 제어기들(585, 590)은 통신 네트워크(595)에 의해 연결된다.
로봇들(510, 520)은 복합 비-선형 역학들을 가진 다섯 개의 축 머신들일 수 있고, 정렬기(배열기)들(515, 525)은 두 개의 축 머신들일 수 있다. 이 예에서, 로봇들(510, 520)이 지정된 위치들로부터 기판들(530, 535)을 집어서 이들을 정렬기들(525, 515)에 각각 놓는다. 정렬기들(525, 515)은 편심 (eccentricity) 및 정렬 특징들에 대해 기판들(530, 535)을 스캐닝할 수 있다. 스캐닝 후, 로봇들(510, 520)이 기판들(530, 535)을 집어 이들을 다른 곳에 놓을 수 있다. 한 실시예에서, 작업 셀(505)은 클러스터형 아키텍처 제어 시스템(100) (도 1 참조)의 일부일 수 있다.
작업 셀의 처리량을 최대화하고 충돌없는 동작을 보장하기 위해, 머신들, 즉 로봇들(510, 520) 및 기판 정렬기들(515, 525)의 모션이 정확히 동기화되어야 한다. 어떠한 로봇들(510, 520) 및 기판 정렬기들(515, 525) 간에는 어떠한 다이내믹 연결도 존재하지 않을 수 있다. 각각은 실시간 데이터 공유 없이 독자적 제어 알고리즘들을 사용할 수 있다. 그러나, 로봇들(510, 520)의 기계적 구성이 각각의 로봇 조작기 안에서 개개의 축들 간에 강한 다이내믹 연결을 도입시킨다. 로봇(510)의 개별 축들 간의 조정이 리모트 제어기들(550, 555, 560)과의 결합이 이루어진 클러스터 제어기(540)에 의해 관리될 수 있다. 로봇(520)의 개별 축들 간의 조정은 리모트 제어기들(565, 570, 575)과의 결합이 이루어진 클러스터 제어기(545)에 의해 관리될 수 있다. 따라서, 클러스터 제어기(540) 및 리모트 제어기들(550, 555, 560)이 한 클러스터를 형성하고, 클러스터 제어기(545) 및 리모트 제어기들(565, 570, 575)이 다른 한 클러스터를 형성한다.
도 5a에 도시된 작업 셀(505)에서, 마스터 제어기(580)가 일반적으로 모션 시퀀싱, 데이터 수집, 이벤트 로깅 (event logging) 및 에러 처리와 같은 감독 기능들을 제공할 수 있다. 또, 그것은 작업 셀(505)의 모든 모션 축들에 대한 궤적들을 산출할 수 있다. 이 예에서, 마스터 제어기(580)는 산출 결과들을 각각의 개별 모션 축에 고유한 프레임들 안에 모아 놓고, 네트워크(595)를 통해 이들을 주기적으로 송신한다. 클러스터 제어기들(540, 545) 및 자율형 리모트 제어기들(585, 590)은 이들이 제어하고 그에 따라 동작하는 축들에 대한 프레임들 및 명령들을 인식한다.
예를 들어, 클러스터 제어기들(540, 545)은 고급 멀티-입력-멀티-출력 제어를 위해 다이내믹 모델들의 로봇들(510, 520)을 이용할 수 있고, 토크 명령들을 산출하고, 이 토크 명령들을 주기적으로 그들 각자의 클러스터들 내 리모트 제어기들로 송신할 수 있다.
자율형 리모트 제어기들(585, 590)은 셋 포인트 모드에서 동작하게 될 수 있고 정렬기들(515, 525) 각자의 관련 토크 명령들을 결정하기 위한 실시간 알고리즘들을 실행할 수 있다. 자율형 리모트 제어기들(585, 590)은 그런 다음 그 토크 명령들을 이용해, 그에 따라 각각의 정렬기들(515, 525) 안에 있는 모터들에 인가될 파워를 산출할 수 있다.
네트워크(595)를 통한 제어 루프들을 폐쇄하는 것과 관련된 시간에 민감한 트래픽이 두 개의 각 클러스터들 안에 포함되어, 네트워크(595)의 나머지, 특히, 그와는 달리 중앙집중형 제어 알고리즘들과 결부되는 집중된 실시간 트래픽에 직면하게 되는 마스터 제어기(580)와의 접속에 부담을 주지 않는다는 점을 주지하는 것이 중요하다.
이 아키텍처는 마스터 제어기(580)로 하여금 필요한 경우 자율형 리모트 제어기들(585, 590)을 직접 제어할 수 있게 한다는 것을 알아야 한다. 한 전형적 어플리케이션이 도 5b에 도시되어 있다. 여러 어플리케이션들에서, 이하에 설명될 분산형 모델 기반 제어 방법으로 그 성능이 향상될 수 있다.
여기 개시된 클러스터형 아키텍처 제어 시스템은, 각각의 클러스터 제어기가 자신이 관리하는 클러스터 안에서 고도로 중앙집중화된 제어를 제공할 수 있다는 점에서 바람직하다. 고도로 중앙집중화된 제어에 일반적으로 필요한 대량의 네트워크 트래픽이 일반적으로 각각의 클러스터로 한정된다. 클러스터들은 필요한 경우에 통신 네트워크(120) 안에서 분산될 수 있고, 리모트 제어기들은 자신들이 제어하는 축들과 근접하게 자리하여, 임의의 예상가능한 길이에 걸쳐 제어 신호들을 운영하는 것과 관련된 배선 요건들 및 문제들을 저감시켜 준다.
또, 실시간 데이터 통신이 클러스터들 안에 존재하고, 집중적 네트워크 트래픽이 클러스터들 안에 일반적으로 한정되기 때문에, 클러스터들은 고성능 제어를 수행할 수 있고, 상기 아키텍처는 마스터 제어기로 하여금 다수의 클러스터를 감독할 수 있게 해준다. 결과적으로 상기 아키텍처는 필요한 경우에 고성능 제어, 고 수준의 규모가변성, 그리고 효율적인 제어기들의 분산을 제공한다.
로봇(510)이나 정렬기(585)와 같은 머신을 제어하기 위해 위에서 언급한 한 방법이 각 축에 대해 궤적을 산출하는 것이다. 앞에서 설명했다시피, 그러한 궤적은, PVT 프레임들이라 칭하는 프레임들 안에 그룹화된 일련의 위치, 속도 및 시간값들에 의해 편리하게 정의될 수 있다.
도 6은 전형적인 PVT 프레임(605)을 보인 것이다. PVT 프레임(605)은 위치 데이터(610), 속도 데이터(615), 및 타임 데이터(620)를 포함한다. 한 실시예에서, 데이터는 하나 이상의 바이트들로 함께 그룹화된 바이너리 포맷을 이루고 있다. 다른 한 실시예에서, 위치 데이터(610), 속도 데이터(615), 및 타임 데이터(620) 각각은 네 개의 바이트들을 점유한다. PVT 프레임(605)은 옵션으로서 헤더 정보(625) 및 후미 (trailing) 정보(630)를 포함할 수 있고, 그 둘은 모두 동기화, 식별, 패리티, 에러 정정, 또는 다른 타입의 데이터를 포함할 수 있다. PVT 프레임(605)은 헤더, 위치, 속도, 시간, 및 후미 데이터 간에 가변 길이나 가변량의 부가 데이터를 포함할 수 있다. 도 6은 프레임의 특정 위치들이나 영역들에서의 다양한 정보나 데이터를 도시하고 있으나, 다른 타입의 정보 및 데이터가 PVT 프레임(605) 내의 어디에나 위치될 수 있다는 것을 알아야 한다. 또한 PVT 프레임(605)이 어떤 특정한 길이로 제한되는 것이 아니라는 것도 알아야 한다.
개시된 실시예들의 한 특징은, 이러한 일련의 값들을 다이내믹 모델의 제어할 머신의 입력들로서 이용하여 각각의 축이 원하는 궤적을 따라 가도록 각 축에 인가될 이론상의 토크를 산출하는 것이다. 또한 개시된 실시예들의 특징은, 다이내믹 모델의 요소들을 이용하여 각 축에 대한 리모트 제어기들에 의해 사용되는 피드백 제어 신호들을 스케일링하는 것이다.
토크 및 스케일링 항들은 개별적인 머신 축들 간의 다이내믹 상호 연결 및 비-선형성을 바람직하게 고려할 수 있다. 토크 항은 여기서 피드포워드 항이라고 칭하는데, 그것이 위치나 속도와 같은 축의 실제 상태에 종속되지 않을 수 있기 때문이다. 스케일링 항은 이득 항 (gain term)이라도 부른다.
도 5a의 작업 셀을 예로서 이용할 때, 마스터 제어기(580)가 명령된(지시된) 위치, 속도 및 가속도와 관련해 로봇(510)의 각 축에 대한 궤적을 생성할 수 있다. 로봇(510)의 인버스 (inverse) 다이내믹 모델을 이용할 때, 마스터 제어기는 궤적 정보를 활용해 해당하는 피드포워드 및 게인 항들을 생성할 수 있다. 이러한 항들은 궤적 정보와 함께 각 축에 고유한, PVT-FG 프레임들이라 칭하는 프레임들 안에 그룹화될 수 있다. 도 7은 전형적인 PVT-FG 프레임(705)을 보인 것이다. PVT-FG 프레임(705)은 PVT 프레임(605)과 유사하게, 옵션인 헤더(710), 위치(715), 속도(720), 타임(725), 및 옵션인 후미 정보(730)를 포함한다. 이외에, PVT-FG 프레임(705)은 적어도 한 피드포워드 항(735)과 적어도 한 이득 항(740)을 포함한다. 데이터는 한 개 이상의 바이트들로 함께 그룹화된 바이너리 포맷을 이루고 있을 수 있다. PVT-FG 프레임(705)의 한 실시예에서, 위치(715), 속도(720), 타임(725), 피드포워드(735), 그리고 이득(740) 항들 각각이 네 개의 바이트들을 점유한다. PVT 프레임(605)과 마찬가지로, PVT-FG 프레임(705)은 여러 항들 간에 분산된 가변 길이나 가변량의 다른 데이터를 포함할 수 있다.
PVT-FG 프레임들이 이리하여 네트워크(595)를 통해 분산될 수 있다. 그 데이터를 수신하는 클러스터 제어기(540)가 두 개의 연속적인 프레임들 사이를 보간하여 순간적 위치, 속도, 피드포워드 항 및 이득 값을 얻고, 이 정보를 로봇(510) 제어에 이용할 수 있다. 마찬가지로, 클러스터 제어기(545) 및 자율형 리모트 제어기들(585, 590)이 마스터 제어기(580)로부터 해당 데이터를 수신하여 이들을 이용해 로봇(520) 및 정렬기들(515, 525)을 각각 제어할 수 있다.
피드포워드 및 이득 항들을 전개하는 전형적인 기술을 지금부터 상세히 설명할 것이다. 이하의 다이내믹 모델이 사용될 것이다:
Figure 112008001252800-pct00001
여기서,
Figure 112011042637738-pct00002
은 축 i에 인가되는 토크를 나타내고,
Figure 112011042637738-pct00003
Figure 112011042637738-pct00004
는 축의 실제 위치 및 명령된 위치를 각각 나타내며,
Figure 112011042637738-pct00005
Figure 112011042637738-pct00006
Figure 112011042637738-pct00007
Figure 112011042637738-pct00008
Figure 112011042637738-pct00009
으로 정의된 위치 벡터들을 대표하고, Mij는 축 i 및 j 간의 관성적 상호-연결 (cross-coupling)을 지시하는 관성 (inertia) 매트릭스 성분이고, hi는 원심력, 코리올리의 힘 (Coriolis) 및 중력 항들과 같이 i 축에 대한 다른 위치- 및 속도-종속 다이내믹 효과들을 포함하는 함수이고, ui는 축 i에 해당하는 단위-관성 (unit-inertia) 시스템에 대한 제어 법칙 (control law) 출력을 대표하고, i는 1에서 n까지 변화하며, n은 축의 총 수 또는 자유도이고, 도트 (dot)와 더블 도트 (double-dot)는 각각 일차 및 이차 도함수들을 각각 나타낸다.
위치 및 속도 트래킹 에러들이 작다고 가정할 때, 실제 위치들과 속도들은 명령된 수치들에 근접하게 될 수 있다. 또, i와 j가 다른 Mijuj 항을 무시할 때, 역학 식 (1)이 재작성되어 다음과 같은 인버스 다이내믹 모델로 근사화할 수 있다:
Figure 112008001252800-pct00010
여기서,
Figure 112008001252800-pct00011
Gi와 Fi에 대한 상기 식들은 각각 이득 및 피드포워드 항들을 정의한다. 인덱스 i는 그 피드포워드 및 이득 항들이 적용되는 것이 어느 축인가를 나타낸다. 제어 성능을 더 개선하도록 하기 위해, 각 축에 대해 외란 관측기(disturbance observer)룰 이용해, 이루어진 간소화를 보상할 수 있다.
제어되는 머신, 가령 이 예에서 로봇(510)에 대한 궤적 및 인버스 다이내믹 모델 산정이 마스터 제어기(580)에 의해 수행될 수 있다.
Gi 및 Fi에 대한 값들이 정해졌을 때, 마스터 제어기(580)는 각 축에 대해 PVT-FG 프레임들을 만들고 (assemble), 이들을 네트워크(595)를 통해 로봇(510)의 클러스터 제어기(540)로 분산시킬 수 있다.
로봇(510)의 클러스터 제어기(540)는 자신의 메모리에 저장된 명령어들 및 알고리즘들을 포함하여, 가령, 자신과 리모트 제어기들(550, 555, 560) 간에 토크 명령들을 송신하고 피드백 신호들을 수신함으로써 로봇(510)을 제어할 수 있다. 마스터 제어기(580)로부터의 PVT-FG 프레임들을 이용하여, 클러스터 제어기(540)는 리모트 제어기들(550, 555, 560)에 의해 제어되는 각 축에 대한 강화된(향상된) 토크 명령들을 산출한다. 토크 명령들은 식 2의 인버스 다이내믹 모델과 그에 따른 식 3 및 4 각각의 Gi와 Fi 항들이 적어도 축들 (가령, Mij) 간의 관성적 상호 연결 및 위치 및 속도 종속 효과들 (가령, hi)을 나타내는 요소들과 함수들을 포함하기 때문에 강화(향상)되었다고 말해지게 된다. 따라서, 클러스터 제어기(540)는 Gi와 Fi 항들을 이용해 토크 명령들을 산출함으로써, 이들과 관련된 축들의 모션을 더 정밀하게 제어하는 토크 명령들이 나오게 할 수 있다.
일단 강화된 토크 명령들이 산출되었으면, 클러스터 제어기(540)는 그 후에 이들을 적절한 리모트 제어기(550, 555, 560)로 분산시킬 수 있다. 리모트 제어기들(550, 555, 560)은 일반적으로, 모터 수, 모터 당 위상 (phases per motor), 위상 저항 (phase resistance), 역 (back) EMF 상수 등등과 같이, 이들이 제어하는 축들의 특징들로 미리 프로그램되어 있을 수 있다. 강화된 토크 명령들에 응답하여, 리모트 제어기들(550, 555, 560)은, 해 자신들이 제어하는 모터들에 인가될 적절한 전압, 전류, 또는 파워를 산출할 수 있다.
식 2, 식 1, 그리고 일반적인 단일-입력-단일-출력 (SISO, single-input-single-output) 피드백 알고리즘을 이용하는 것들이 포함된 다양한 알고리즘들을 로봇(510)과 유사한 5-축 로봇에 적용하여, 트래킹 에러들을 비교하고 이득 및 피드포워드 항들 Gi와 Fi을 전개하기 위한 전형적 기법의 효과를 검증하였다. 5-축 로봇은 일반적으로 반도체 제조 어플리케이션들에서 자동화된 집고-놓기(pick-place) 동작들에 활용되는 타입이었다. 이 5-축 로봇에는, 수직 리프트 구동에 의해 보완되는 평행 수평 면들에서 동작하는 두 개의 말단 장치들 (end-effectors)을 가진 분절 아암 (articulated arm)이 포함되었다. 이러한 특정 어플리케이션은, 그 역학(dynamics)이 축들 간에 강력한 상호-연결을 가지면서 상당히 비-선형적이기 때문에 시범 테스트 베드(challenging test bed)를 제공했다. 다른 동작들 중에서, 5-축 로봇은 반경 방향(radial direction)으로 제1말단 장치의 직선 연장 (straight-line extension) 이동을 수행하도록 하는 명령을 받았다.
도 8은 제1말단 장치, 특히, 각각 적용된 알고리즘에 대해, 원하는 직선 경로로부터의 제1말단 장치의 이탈을 가리키는 정규 성분 (normal component)의 측정 트래킹 에러를 보인 것이다. 식 2를 사용하는 알고리즘의 트래킹 성능(810)은 식 1을 이용한 알고리즘의 성능(820)에 매우 근접하고, 종래의 단일 입력 단일 출력 피드백 알고리즘(830)의 성능을 단연코 능가한다는 것을 관찰할 수 있다.
앞에서 클러스터형 아키텍처의 제어 시스템(100)과 관련해 언급한 바와 같이, 처리량을 최대화하고 충돌없는 동작을 보장하기 위해 시스템의 축들을 정밀하게 동기화시키는 것이 중요하다.
개시된 실시예들의 특징은 네트워크 노드들 각각에서 공통의 정밀 시간 기준을 유지하고, 모든 시간에 종속적인 네트워크 트래픽을 타임 스탬프화 함으로써, 클러스터형 아키텍처의 제어 시스템(100)에 의해 제어되는 동작들을 동기화시키는 것이다. 특히, PVT 및 PVT-FG 프레임들은 프레임에 의해 기술된 동작이 일어나야 할 시간으로 스탬프 됨으로써, 통신 네트워크(120)에 걸친 축 모션들의 동기화를 보장할 수 있다.
도 2를 참조하면, 마스터 제어기(105)는 고정밀도 레지스터(265) 및 저정밀도 레지스터(270)를 포함할 수 있는 시간 기록 (time keeping) 회로(260)를 포함한다. 마스터 제어기는 또한 네트워크 노드들 간에 공통의 시간 기준을 유지하는 것과 관련된 다른 동작들을 수행하기 위한 타이밍 제어 회로를 또한 포함할 수 있다. 도 3을 참조하면, 각각의 클러스터 제어기(110) 역시 고정밀도 레지스터(345) 및 저정밀도 레지스터(350)를 갖는 시간 기록 회로(340)를 포함할 수 있다. 또한, 도 4를 참조하면, 각각의 리모트 제어기(115) 및 자율형 리모트 제어기(150) 역시 고정밀도 레지스터(455) 및 저정밀도 레지스터(460)를 포함하는 시간 기록 회로(450)을 가질 수 있다.
공통 시간 기준을 유지하기 위해, 마스터 제어기는 통신 네트워크(120) 상에서 각각의 버스 사이클 시작 시 "cycle start (사이클 시작)" 메시지들을 발할 수 있다. 도 9a에 도시된 바와 같이, 전형적 버스 사이클은 대략 125 usec을 점유할 수 있고, "cycle start" 메시지로 시작해 그 뒤에 등시성 트래픽 (isochronous traffic) 및 비등시성 트래픽에 대한 간격(interval)들이 따라온다. 도 9b는 전형적 사이클 시작 메시지를 보인 것이고, 도 9c는 전형적인 고정밀도 레지스터(265, 345, 455)를 보인 것이다.
다시 도 2를 참조하면, 네트워크 인터페이스(230)가 일반적으로, 각각의 사이클 시작 메시지에 기초해 자동으로 고정밀도 레지스터들(265, 345, 455)을 업데이트하기 위한 메커니즘을 제공할 수 있다.
각각의 네트워크 노드 역시, 새 등시성 사이클이 시작되었을 때, 즉 고정밀도 레지스터의 하위 비트가 토글 (toggle, 반전)될 때, 그리고 64 초가 만기 되어, 고정밀도 레지스터의 7 번째 비트가 바뀌었을 때, 인터럽트 (interrupts)를 제공하는 메커니즘을 포함할 수 있다, 통신 네트워크(120)가 IEEE 1394 네트워크일 때, 상술한 특징들 가운데 일부나 전부는 IEEE 1394 규격에 따라 제공될 수 있다. IEEE 1394 네트워크에서 고정밀도 레지스터들은 CYCLE_TIME 레지스터들이라고 언급될 수 있고, 저정밀도 레지스터들은 BUS_TIME 레지스터들이라고 언급될 수 있다.
네트워크 동기화는 다음과 같이 수행될 수 있다. 통신 네트워크(120)가 초기화되거나 리셋된 후, 마스터 제어기(105)가 통신 네트워크(120)에 대한 제어를 전제하고 시간 기록 회로(260) 및 타이밍 제어 회로(275)를 이용해 저정밀도 레지스터(270)를 유지할 수 있다. 각각의 클러스터 제어기(110), 리모트 제어기(115), 및 자율형 리모트 제어기(150)는 각자의 저정밀도 레지스터(350, 460)를 초기화나 리셋시의 마스터 제어기(105)의 저정밀도 레지스터(270)와 동기화시킬 수 있다. 각각의 클러스터 제어기(110), 리모트 제어기(115), 및 자율형 리모트 제어기(150)는 그런 다음 각자의 저정밀도 레지스터(350, 460)를 자신의 고정밀도 레지스터(345, 455)에 기초해 유지 및 업데이트한다. 통신 네트워크(120) 자체는 일반적으로 통신 네트워크(120)에 걸친 고정밀도 레지스터들(265, 345, 455)의 자동 동기화에 대한 기능을 제공할 수 있다. 마스터 제어기(105)가 PVT나 PVT-FG 프레임들을 클러스터 제어기들(130)이나 자율형 리모트 제어기들(150)로 송신한다.
여기에 개시되어있는 동기화된 시스템에서, PVT나 PVT-FG 프레임들은 장차 PVT나 PVT-FG 프레임이 실행되어야 할 때를 가리키는 타임 스탬프를 포함한다. 지시된 시간에 도달할 때, 클러스터 제어기들(130) 및 자율형 리모트 제어기들(150)은 프레임들에서 수신된 정보에 따라 각자의 축들을 동작시킨다.
요약하면, 공통 시간 기준이 마스터 제어기(105), 클러스터 제어기들(110), 리모트 제어기들(115), 및 자율형 리모트 제어기들(150) 간에 유지된다. 공통 시간 기준을 유지하고 PVT 및 PVT-FG 프레임들을, 프레임에 의해 기술된 액션이 일어나야 하는 시간으로 타임 스탬프화 함으로써, 통신 네트워크(120)를 통한 축 모션들의 동기화가 정밀하게 유지될 수 있다.
상술한 바와 같이, 계측 및 산업 제어 프로토콜 (Instrument and Industrial Control Protocol; "IICP"라고 부르는 1394TA IICP)라고 언급되는, 경량의 IEEE 1394 프로토콜이 산업 제어 장치들을 위해 개발되었다.
IICP 및 기타 유사한 프로토콜들은, 흐름 제어, 시스템 구성요소들 간의 통신 접속을 생성 및 폐쇄하기 위한 프레임워크 (framework), 버스 리셋 후 접속을 재활성화하기 위한 메커니즘, 및 통신 접속에 대한 PHY 어드레스들을 해석하는 메커니즘을, 마스터 제어기로부터 제공할 수 있어, 리모트 제어기들로부터 네트워크를 하나하나 열거하는 부담을 없앨 수 있다. 그 외에, 이러한 타입의 프로토콜들을 사용할 때 버스 리셋 이벤트 동안 통신 접속들이 존속될 수 있다.
개시된 실시예들의 특징은, 마스터 제어기(105), 클러스터 제어기들(110), 및 자율형 리모트 제어기들(115) 간에 정보를 교환하기 위해 사용 스킴(usage scheme) 및 메시지 포맷을 포함하는, 사용중인 프로토콜에 대한 확장들을 제공하는 것이다.. 사용 스킴 및 메시지 포맷을 통합해서 프로토콜 확장들이라고 부른다.
여기에 기술된 네트워크 프로토콜 확장들은, 이들이 네트워크 통신 메시지들에 대한 고유 메시지 프레임워크 (specific message framework)를 제공한다는 데 있어 바람직하다. 메시지들의 콘텐츠는 사용된 전송 프로토콜에 대하여 투명한(transparent) 것일 수 있다.
도 10에는 제어 시스템(100)에서 사용 중인 프로토콜의 타입의 전형적 구조가 도시되어 있다. 그 프로토콜은 어플리케이션 계층(1105), 접속 계층(1110), 및 트랜잭션 계층(1115)을 포함할 수 있다. 어플리케이션 계층(1105)은 접속 계층(1110)의 기능을 이용하고 플러그들이라 칭하는 포인트 투 포인트 접속들이 마스터 제어기(105) (도 1 참조)와 같은 마스터 장치와 리모트 제어기(150) (도 1 참조)와 같은 리모트 장치 간에 설정된다고 가정한 것이다.
도 11은 이러한 플러그들이 어떻게 구현될 수 있는가 하는 예를 보인 것이다. 마스터 장치는 한 개 이상의 플러그들(1020)을 리모트 장치들 각각에 대해 개방할 수 있다. 플러그(1020)는 한 개 이상의 포트들(1025, 1030)을 제공한다. 각각의 포트(1025, 1030)는 PVT나 PVT-FG 프레임들과 같은 프레임들을 송신하는 수단을 제공하고, 이때 프레임들은 포트의 관점에서 불투명한 데이터 부분들이다. 포트(1025, 1030)는 일반적으로 듀플렉스 모드로 동작한다, 즉, 데이터가 양 방향들로 동시 발생적으로 송신될 수 있다. 어플리케이션 계층(1105)은 제어 포트(1030)나 데이터 포트(1025)로서 그 포트들을 이용할 수 있다. 제어 포트(1030) 상의 메시지들은 일반적으로 메시지 헤더에 포함된 메타(meta) 데이터를 포함하여, 메시지의 콘텐츠를 기술한다. 데이터 포트 메시지에는 일반적으로 그러한 메타 데이터가 결여되어 있다. 리모트 제어기(150) 및 마스터 제어기(105)는 일반적으로 프로그래밍, 소정 테이블들, 정의들, 혹은 다른 수단을 통해 데이터 포트 메시지 구조를 인식하게 된다. 제어 포트(1030) 상의 메시지들은 하나 이상의 데이터 포트들(1025) 상의 메시지들의 콘텐츠를 정의하거나, 아니면 그 메시지들을 식별할 수 있다. 어떤 실시예들에서, 이러한 것이 데이터 포트 메시지들을 헤더 정보나 어떤 메시지 정의 없이 송신될 수 있게 함으로써, 그러한 메시지들의 송신과 관련된 오버헤드(overhead)를 줄일 수 있다. 제어 및 데이터 포트들 간의 상호동작은 특정 플러그에 대해 분리될 수 있거나, 특정 제어 포트 상의 메시지는 같거나 다른 리모트 장치들에 대해 개방된 다른 플러그들의 데이터 포트들에 대한 제어 기능을 제공할 수 있다.
개시된 실시예들에서 설명한 프로토콜 확장들은 특정한 프로토콜의 용도에만 국한되는 것이 아니고 플러그들을 지원하는 어떠한 프로토콜과도 같이 이용될 수 있다는 것을 알아야 한다.
여기서 설명한 어플리케이션 계층 확장들은 상대적으로 간단한 제어 포트 메시지 타입들을 포함할 수 있는 계층화된 접근법을 이용한다. 또한 그러한 확장들은 벤더 고유 확장들, 즉 특정 장치 제조자의 구성요소에 대해 고유하게 맞춰질 수 있는 메시지들에 대한 프레임워크를 제공할 수도 있다. 이것이 다수의 제어 포트 메시지 타입들로 래핑(wrapping)된 벤더 고유 어플리케이션 계층 명령 집합들의 사용을 용이하게 해준다. 데이터 포트 메시지 포맷 역시 벤더 고유의 것일 수 있다.
제어 포트(1030)는 일반적으로 시스템 구성요소들 간에 명령들 및 응답들을 교환할 수 있다. 데이터 포트(1025)는 리모트 제어기나 마스터 제어기 상의 특정 오브젝트들에 대해 어드레싱(addressing)된 데이터 프레임들을 전송할 수 있다. 어드레싱은 일반적으로 포트 지정으로부터 내포될 수 있고, 메시지의 일부는 될 수 없다. 데이터 포트 메시지 구조는 일반적으로 벤더 고유의 것일 수 있다.
도 17에는 전형적 제어 메시지 구조(1700)가 제시되어 있다. 쿼드렛(Quadlet)(1705)은 32-비트의 데이터 조각 (data piece)을 나타낼 수 있다. D 필드(1710)는 방향을 지정하는 것으로서, 메시지가 가령 마스터 제어기(105)로부터 리모트 제어기(150)로 송신될지, 아니면 그 반대로 송신될지 여부를 가리킬 수 있다. 메시지 타입(1715)은 이하에서 설명되는 정의된 메시지 타입을 지정할 수 있다. 2^15 개까지의 메시지 타입들이 정의될 수 있다. 메시지 ID 필드(1720) 가령 ACTION 타입 메시지들과 같은 트랜잭션 유형 메시지들에 부합하는 명령들 및 응답에 대해 사용될 수 있다. STRING 타입 메시지들과 같은 스트림 유형 메시지들에 있어서, Message ID 필드(1720)는 부가적 순서화 정보를 제공하는데 사용될 수 있다. ACTION 및 STRING 타입 메시지들에 대하여는 이하에서 설명할 것이다. 어떤 실시예들에서, Message ID 필드(1720)는 옵션사항일 수 있다. 예약(예비) 필드(1725)는 메시지 헤더 안에서 벤더 고유 확장들에 대한 플레이스홀더 (placeholder)를 제공할 수 있다. 어떤 특정 제어 포트 메시지들은 ACTION (액션), EVENT (이벤트), 및 STRING (스트링) 타입 메시지들을 포함할 수 있다. 플러그의 제어 포트 상으로 송신된 메시지들은 모두 유사한 구조를 가질 수 있다. 그러한 메시지 타입들이 상대적으로 적어 특정 명령들의 구현시 리모트 제어기 수준에서 상당한 융통성을 허용한다는데 개시된 실시예들의 특징이 있다. 예를 들어, 파라미터들을 설정 및 획득하기 위한 모든 명령들이 ACTION 명령들일 수 있는데, 이때 설정/획득을 이루는 실제 파라미터뿐 아니라 데이터 포맷까지 리모트 제어기 제조자에 의해 더 정의될 수 있다. 따라서, 리모트 제어기 제조자들은 제어 시스템에 부합하기 위해 다만 매우 한정된 명령 집합만을 구현할 필요가 있다.
도 18에는 전형적인 ACTION 메시지(1800)가 도시되어 있다. ACTION 메시지(1800)는 리모트 제어기들로 명령들을 송신하고 리모트 제어기들이 앞서 마스터 제어기로부터 송신된 명령들에 대한 응답들을 송신하는데 사용될 수 있다. 앞서 송신된 ACTION 명령에 대한 응답은 일반적으로 D 필드(1810)를 제외한 명령의 헤더를 카피할 수 있다. ACTION 명령들에 있어서, Message ID 필드(1820)가 필요할 수 있다. 메시지의 본문 (body)의 포맷은 특정 리모트 장치 벤더에 대해 고유한 것일 수 있다.
ACTION 메시지들은 리모트 제어기와 같은 리모트 장치상에 파라미터들을 설정하고(setting), 획득하고 (getting), 또는 저장하고, 트레이싱(tracing; 추적), 이벤트, 상태, PVT 또는 기타 어플리케이션 고유의 동작들을 위한 하나 이상의 데이터 포트들을 구성하고, 리모트 장치상에서 I/O를 운영하고, 리모트 장치상에서 궤적이 생성될 때 개별 이동들에 대한 모션 명령들을 송신하며, 가령 장치를 다른 동작 상태로 전이하는 것이거나 구성, 진단 등을 하기 위해 리모트 장치가 지원하는 기타 개별 명령을 송신하는데 사용될 수 있다. ACTION 메시지들은 벤더 고유의 것일 수 있다.
리모트 장치로부터 마스터 제어기로의 ACTION 응답 메시지들에서, 예약 필드(1825)는 8-비트의 벤더 고유 결과 코드를 포함할 수 있다. 이것을 갖춘 경우에, 단지 한 결과 코드만을 포함하는 ACTION 명령들에 대한 응답들은 응답시 단지 헤더만을 송신함으로써 구현될 수 있다. 리모트 장치에서 파라미터 값들을 설정하기 위한 명령들은 그러한 동작 모드의 일례이다.
벤더 고유 헤더(1830)는 특정 장치 파라미터의 설정, 획득, 또는 저장 가운데 하나를 가리킬 수 있다. Axis ID 필드(1835)는 특정 장치의 특정 장치 파라미터에 대한 256 개까지의 축들 (또는 인스턴스(instance)들)에 대한 부가적인 디스패칭 (dispatching)을 지원한다. Vendor command ID(1840)는 벤더 고유 장치 파라미터나 명령을 가리킬 수 있다. Vendor command ID(1840)는 2^16 개까지의 개별 명령들 또는 파라미터들을 지원할 수 있다. 벤더 고유 명령 파라미터들 1 ... n (1845)은 한 명령이나 응답으로 한 개 이상의 옵션 파라미터들을 제공할 수 있다.
도 19에는 전형적인 EVENT 메시지 구조(1900)가 도시되어 있다. EVENT 메시지(1900)는 리모트 제어기로부터 마스터 제어기로 이벤트 데이터를 송신하는데 사용된다. EVENT 메시지는 또한 소정 어플리케이션 고유 데이터 전송을 위해 별도의 플러그를 개방하는 대신에 제어 포트 메시지를 이용하는 메커니즘을 제공할 수도 있다. 이벤트 데이터는 이벤트 고유 플러그를 개방하는 대신에 EVENT 메시지들을 통해 송신될 수 있다.
메시지 헤더 내의 Message ID 필드(1920)는 버추얼 이벤트 접속 넘버를 가리키는데 사용된다. 이 필드의 값이 벤더-고유 "add parameter to event (이벤트에의 파라미터 추가)" 제어 메시지 내의 파라미터일 수 있다.
도 20에는 벤더 고유 EVENT 메시지(2000)의 예가 도시되어 있다. 이 예에서, 6 개까지의 버추얼 이벤트 접속들이 설정될 수 있다. 이벤트 파라미터 필드들, 이 예에서는, "이벤트 파라미터 필드 1 ... 6" (2045)의 개수는 이벤트 캡처를 위해 설정된 특정 구동 파라미터에 의존한다. 이 필드들은 이벤트 발생시의 파라미터 값들을 나타낸다. 이벤트 파라미터 필드들은 소정 파라미터가 이벤트 캡처에 대해 설정되어 있지 않으면 0을 포함한다. 이러한 특정 장치 제조자에게 있어, 6 개까지의 파라미터들이 이벤트 파라미터들로서 구성될 수 있다.
STRING 메시지 타입은 포맷되지 않은 텍스트 데이터를 송신함으로써 마스터 제어기로부터 리모트 제어기로 또는 그 반대로 버추얼 시리얼 채널을 생성하는데 사용된다. 도 21에는 STRING 메시지 구조(2100)의 예가 도시되어 있다.
메시지 ID(2120)는 리모트 장치나 마스터 제어기로부터 송신된 모든 메시지에 대해 순번대로 증가될 수 있고 (이러한 카운터들은 독립적으로 증가한다), 메시지가 순번대로가 아닌 순서로 수신되는 경우에는 트래픽을 시퀀싱하는 부가적 수단이 제공된다.
도 22에는 전형적인 벤더 고유 STRING 명령(2200)이 제시되어 있다. 이 예에서, 일련의 메시지 본문들(2245)은 각각 네 개의 문자들을 포함할 수 있다. 이 예의 리모트 장치는 6 개까지의 쿼드렛 (32 비트)으로 된 메시지 본문 정보를 지원할 수 있고 플레인 텍스트 ASCII 엔코딩을 이용해 문자들을 엔코딩할 수 있다.
데이터 포트 메시지 구조들은 일반적으로 순수 데이터를 나타낼 수 있고, 어떤 헤더도 포함하지 않을 수 있다. 이들은 또한 리모트 장치 벤더 고유의 것일 수도 있고, 그러한 맥락으로 해석되어야 한다. 이 예에서 리모트 장치 제조자는 PVT 상태 및 TRACE 메시지 타입들을 이용한다. 다른 메시지 타입들 역시 사용될 수 있다.
도 23에는 전형적 PVT 또는 PVT-FG 메시지 구조(2300)가 도시되어 있다. PVT 메시지는 일반적으로 모션 경로를 따른 한 궤적 셋 포인트를 나타낼 수 있다. 앞에서 언급했다시피, PVT나 PVT-FG 메시지는 일반적으로 마스터 제어기(105)로부터 한 개 이상의 클러스터 제어기들(110) 또는 자율형 리모트 제어기들(150)로 송신된다. PVT나 PVT-FG 메시지들은 타임 스탬프화된 궤적 셋 포인트 데이터를 송신하는데 사용된다. 옵션으로서, PVT나 PVT-FG 메시지들이 토크 한도 항을 포함할 수도 있다. PVT나 PVT-FG 메시지들은 또한 수신하는 클러스터 제어기(110)나 자율형 리모트 제어기(150)가 전치-동작 (pre-operational) 상태에 있을 때 주기적인 타임스탬프를 송신하는데 사용될 수도 있다. PVT나 PVT-FG 메시지는 가령 100 Hz와 같은 주기적인 레이트로 전송될 수 있다. 일 실시예에서, PVT 메시지는 명령된 위치(2305), 명령된(지시된) 속도(2310), 그리고 네트워크 타임(2315)을 포함한다. PVT나 PVT-FG 메시지는 옵션으로 피드포워드 항(2320), 이득 항(2325), 및 토크 한도 항(2330) 중 한 개 이상을 포함할 수 있다.
STATUS 메시지는 일반적으로 STATUS 메시지가 생성되었을 때의 리모트 장치 상태를 나타낼 수 있다. 도 24에는 STATUS 메시지(2400)의 예가 도시되어 있다.
STATUS 메시지는 일반적으로 한 개 이상의 클러스터 제어기들(110)이나 자율형 리모트 제어기들(150)로부터 마스터 제어기(105)로 송신된다. STATUS 메시지는 하나 이상의 클러스터 제어기들(110)이나 자율형 리모트 제어기들(150)로부터 마스터 제어기(105)로 타임 스탬프화된 상태, 실제 위치 및 속도 데이터를 송신하는데 사용될 수 있다.
옵션으로, STATUS 메시지가 타임 스탬프화된 I/O 데이터를 송신하는데 사용될 수도 있다. STATUS 메시지는 100 Hz와 같은 주기적인 레이트로 송신될 수도 있고, 낮은 대기시간 (low-latency) I/O 이벤트 캡처를 위한 비주기적인 레이트(acyclic rate)로 송신될 수도 있다. 일 실시예에서, STATUS 메시지는 실제 위치(2405), 여러 디지털 I/O 장치들의 상태들(2410), 타임스탬프(2415), 명령된 위치(2420), 실제 속도(2425)를 포함한다.
상태 워드(2430)는 구동 에러/오류/경고 상태에 대한 정보를 포함한다. 그것은 또한 리모트 장치 PVT 버퍼의 상태에 관한 정보 (흐름 제어 정보)도 포함한다.
도 32에는 전형적인 TRACE 메시지(3200)가 도시되어 있다. TRACE 메시지는 n 개까지의 샘플링 레코드들을 포함할 수 있고, 각각의 레코드는 m 개까지의 샘플들을 가질 수 있다. 프레임 역시 다음과 같은 장치 고유의 제약사항을 따라야 한다.:
n*m<=128
m<=6
TRACE_메시지(3200)는 일반적으로 하나 이상의 클러스터 제어기들(110)이나 리모트 제어기들(115, 150)로부터 마스터 제어기로 송신된다. TRACE_메시지(3200)는, 타임-샘플링되고 주기적으로 샘플링된, 진단 데이터를 마스터 제어기(105)로 송신하는데 사용된다. TRACE_메시지(3200)는 가령 16 kHz까지의 주기적이거나 가변적인 레이트로 송신될 수 있고, ACTION 명령을 통해 설정가능하게 될 수 있다. 이 데이터 및 트레이스 (추적)의 다른 파라미터들의 구조 (트리거 (trigger; 유발), 지연, 샘플링 레이트 등등) 역시 ACTION 메시지들을 통해 설정가능하게 될 수 있다. 이외에, 다른 메시지들 몇몇과 같이, TRACE_message(3200)는 고정밀도 데이터 전송을 지원하도록 특별히 오픈된 플러그를 통해 송신될 수 있다. 일 실시예에서, TRACE_message는 다수의 추적 변수들(3205)을 포함한다.
개시된 실시예들의 프로토콜 확장들은 PVTFG, HIRES_POS, 및 HIRES_VEL 메시지들과 같은 그런 메시지 타입들을 포함할 수 있는 TRACE 메시지의 특정 구현예들을 포함할 수 있다. 상술한 STATUS 메시지는 TRACE 메시지의 특정 구현예로서 구성될 수도 있다.
앞에서 언급하였다시피, PVT나 PVT-FG 메시지는 일반적으로 마스터 제어기(105)로부터 한 개 이상의 클러스터 제어기들(110) 또는 자율형 리모트 제어기들(150)로 송신된다. PVT나 PVT-FG 메시지들은 타임 스탬프화된 궤적 셋 포인트 데이터를 송신하는데 사용된다. 옵션으로, PVT나 PVT_FG 메시지들은 또한 아래에서 논의되는 것과 같이 티치 (전수; teach) 모드를 지원하기 위한 토크 한도 항을 포함할 수도 있다. PVT나 PVT-FG 메시지들은 또, 수신하는 클러스터 제어기(110)나 자율형 리모트 제어기(150)가 전치 동작 상태에 있을 때 주기적인 타임스탬프를 송신하는데 사용될 수도 있다. PVT나 PVT-FG 메시지는 100 Hz와 같은 주기적인 레이트로 송신될 수 있다. 일 실시예에서, PVT 메시지는 4 바이트의 타임스탬프, 4 바이트의 명령된 위치, 4 바이트의 명령된 속도를 포함한다. PVT-FG 메시지는 옵션으로 4 바이트의 피드포워드 항, 4 바이트의 이득 항, 및 4 바이트의 토크 한도 항 중 하나 이상을 포함할 수도 있다.
HIRES_POS 메시지는 일반적으로 하나 이상의 클러스터 제어기(110)나 자율형 리모트 제어기들(150)로부터 마스터 제어기(105)로 송신된다. HIRES_POS 메시지는 하나 이상의 노드들로부터 마스터 제어기로 타임 스탬프화되고 주기적으로 샘플링된 실제 위치를 송신하는데 사용된다. HIRES_POS 메시지는 가령 16 kHz까지의 주기적이거나 가변적인 레이트로 송신될 수 있고, 이하에서 논의되는 ACTION 명령을 통해 설정가능하게 될 수 있다. 이 외에도, HIRES_POS 메시지는 고정밀도 데이터 전송을 위해 특정하게 개방된 플러그를 통해 송신될 수 있다. 일 실시예에서, 이 메시지는 4 바이트의 타임스탬프 및 4 바이트의 실제 위치를 포함하는 블록을 구비한다. 이 블록은 16 회까지 반복되어 62.5 샘플링 레이트의 1ms 짜리 데이터를 128 바이트까지의 총 길이로 나타낼 수 있다.
다른 포맷에서, HIRES_POS 메시지는, 16 회까지 반복되어 1 ms 짜리 16 kHz 샘플링 데이터를 나타낼 수 있는, 4 바이트의 타임 스탬프 및 4 바이트의 반복되는 실제 위치 필드를 포함할 수 있다. 이 메시지는 샘플들이 샘플링 레이트에 따라 동등하게 이격되어 있고, 제1위치 필드가 스탬프에서 지정된 시간으로 샘플링된다고 가정하면 프레임당 하나의 타임 스탬프로 구성될 수 있다.
HIRES_VEL 메시지는 일반적으로 하나 이상의 클러스터 제어기들(110)이나 자율형 리모트 제어기들(150)로부터 마스터 제어기(105)로 송신된다. HIRES_VEL 메시지는 타임 스탬프화된 상태, 및 주기적으로 샘플링된 실제 속도 데이터를 마스터 제어기(105)로 송신하는데 사용된다. HIRES_VEL 메시지는 가령 16 kH까지의 주기적이거나 가변적인 레이트로 송신될 수 있고, 이하에서 논의되는 ACTION 명령을 통해 설정가능하게 될 수 있다. 이 외에도, HIRES_VEL 메시지는 고정밀도 데이터 전송을 지원하도록 특정하게 개방된 플러그를 통해 송신될 수 있다. 일 실시예에서, HIRES_VEL 메시지는 4 바이트의 타임 스탬프 및 4 바이트의 실제 속도를 포함할 수 있다.
클러스터 제어기들(110) 및 자율형 리모트 제어기들(150)로부터 마스터 제어기(105)로 정보를 전달하는 것 외에, 상기 설명에 따른 STATUS, HIRES_POS 및 HIRES_VEL 메시지들이 하나 이상의 리모트 제어기들(115)로부터 클러스터 제어기들(110)이나 마스터 제어기(105)로 송신될 수 있다.
따라서, 개시된 실시예들은 마스터 제어기(105), 클러스터 제어기들(110), 리모트 제어기들(115), 및 자율형 리모트 제어기들(150) 간에 정보를 교환하기 위한 프로토콜 확장들, 즉, 고유한 메시지 집합을 포함한다. 고유한 메시지 집합은, 이 고유한 메시지 집합이 가령 1349TA IICP와 같은 표준 네트워크 프로토콜에 의해 지원되는 서비스들을 통해 그리고 상기 서비스들 상에 클러스터형 아키텍처의 제어 시스템(100)의 부가 기능을 지원하기 때문에 바람직하다.
클러스터형 아키텍처의 제어 시스템(100)과 같은 제어 시스템에서는, 특정 이벤트 발생시 하나 이상의 클러스터 제어기들(110)이나 리모트 제어기들(115, 150)로부터 순간적 축 또는 다른 특징들을 캡처하는 것이 바람직할 수 있다. 도 12는 그러한 특징의 혜택을 받을 수 있는 작업 셀(1200)을 보인 것이다. 작업 셀(1200)은 클러스터 제어기(1215) 및 세 개의 리모트 제어기들(1230, 1235, 1240)과 함께 하는 로봇(1210)을 포함한다. 클러스터 제어기(1215)는 통신 네트워크(1250)를 통해 마스터 제어기(1245)와 통신한다. 일 실시예에서, 작업 셀(1200)은 클러스터형 아키텍처 제어 시스템(100)의 일부가 될 수 있다 (도 1 참조).
예로서, 반도체 기판(1205)과 같이 로봇(1210)에 의해 운반되는 순환형 패이로드(circular payload)의 편심이나 오정렬에 대한 "온 더 플라이(on the fly)" 인식 및 정정은 순간적 데이터 캡처를 요구할 것이다. 이 경우에, 로봇(1210)은 패이로드(1205)의 선두 (leading) 및 후미 (trailing) 에지들을 검출하는 고정 센서들(1216)의 집합을 통해 움직일 수 있다. 리모트 제어기들(1230, 1235, 1240)이 로봇(1210)의 각 축의 위치들과 속도들과 같은 소정 특성들을 캡처하여 그 데이터를 마스터 제어기(1245)로 제공할 수 있다. 그러면 마스터 제어기(1245)는 패이로드 에지들이 검출될 때 로봇의 말단 장치(1220) 위치를 판단할 수 있고, 그런 다음 패이로드(1205)의 실제 센터 위치를 판단할 수 있다. 패이로드 센터가 정해지면, 마스터 제어기(1245)는 로봇(1210)의 궤적을 변경하여, 패이로드(1205)가 초기 편심의 크기 및 방향과 무관하게 중앙 집중된 (centered) 방식으로 전달되도록 할 수 있다.
다른 예에서, 로봇(1210)은 클러스터 제어기(1215)와 연결된 한 개 이상의 인터록들 (interlocks)(1225)을 포함할 수 있다. 인터록(1225)이 어떤 이유로 트리핑(tripping)되면, 로봇의 축들의 위치들 및, 인터록(1225)가 트리핑될 때 로봇(1210)이 상호작용하고 있을 수 있는 다른 장치의 위치들을 판단하는 것이 중요할 수 있다.
개시된 실시예들의 한 특징은, 트리거링 (유발) 이벤트 발생시, 혹은 그 이벤트와 결부된 클러스터형 아키텍처의 제어 시스템(100)의 축들의 집합으로부터 순간적 데이터를 캡처하는 것이다. 이하에서 논의되는 절차들은 일반적으로 마스터 제어기(1245)를 포함하고 있지만, 적절한 프로세싱 파워 및 메모리를 갖춘 클러스터 제어기나 리모트 제어기 역시 마스터 제어기(1245)에 의해 제공되는 기능들을 수행할 수가 있다는 것을 알아야 한다.
도 12 및 도 13의 흐름도를 참조할 때, 순간적 데이터 캡처 시퀀스가 다음과 같이 진행될 수 있다. 리모트 제어기들(1230, 1235, 1240)이 한 개 이상의 센서들(1216)의 가변 출력 상태와 같은 소정 이벤트들을 트리거 이벤트들로 인식하도록 지시될 수 있다(1305 및 1306 블록들). 리모트 제어기들(1230, 1235, 1240)은 또한 특정 이벤트 발생시 특정된 노드들의 집합과 통신하도록 지시될 수 있다(1310 블록). 리모트 제어기들(1230, 1235, 1240)은, 일반적으로 특정 축을 제어하는데 사용되는 서보 (servo) 루프의 샘플링 레이트 보다 낮은 어떤 특정 샘플링 레이트에서의 축 위치나 속도와 같은 하나 이상의 관련된 특정 수량들을 버퍼링하도록 더 지시될 수 있다(1315 및 1316 블록들). 따라서, 적어도 일 실시예에서, 관련된 수량의 모든 데이터 포인트가 샘플링될 수는 없다. 상기 지시들은 각각의 리모트 제어기들의 운영 체제의 일부일 수도 있고, 클러스터 제어기(1215)나 마스터 제어기(1245)로부터 지시들이 제공될 수도 있다. 관련 수량, 트리거 이벤트들, 및 특정 노드들의 집합은 각각의 리모트 제어기마다 다를 수 있다.
일단 지시를 받으면, 리모트 제어기들(1230, 1235, 1240)이 데이터를 버퍼링하고 (1320 블록) 트리거 이벤트들을 관찰하기 (1325 블록) 시작한다. 트리거 이벤트 발생시, 그 이벤트를 인식한 리모트 제어기는 이벤트 시간을 기록하고(1330 블록), 그 특정 이벤트에 대해 특정된 노드들의 집합으로 그 이벤트 시간 정보를 갖는 메시지를 송신한다(1335 블록). 특정된 노드들은 자신들의 버퍼링된 관련 수량들을 보간하여 그 이벤트 시간에서의 수량들의 값을 결정한다(1340 블록). 특정된 노드들은 관련 수량들의 보간 값들을 마스터 제어기로 송신한다(1345 블록). 그러면 마스터 제어기가 그 데이터를 사용해 시스템 내의 궤적들이나 동작들을 변경할 수 있다(1350 블록).
몇몇 경우들에서는, 리모트 제어기들 간의 직접 통신은 바람직하지 못할 수 있는데, 이는, 가령, 필요한 플러그들이 너무 많기 때문이다. 이 경우, 마스터 제어기가 특정된 노드들로 이벤트 타임을 분산시킬 수 있다.
마스터 제어기에 의한 이벤트 시간 분산 수용을 위해 수정된 순간적 데이터 캡처 데이터 절차가 다음과 같이 진행될 수 있다. 이제, 도 12 및 14를 참조하면, 리모트 제어기들(1230, 1235, 1240)이 하나 이상의 센서들(1216)의 가변 출력 상태와 같은 소정 이벤트들을 트리거 이벤트들로서 인식하도록 지시받을 수 있다(1405 및 1410 블록들). 리모트 제어기들(1230, 1235, 1240)은, 일반적으로 특정 축을 제어하는데 사용되는 서보 (servo) 루프의 샘플링 레이트보다 낮은 어떤 특정 샘플링 레이트에서의 축 위치나 속도와 같은 하나 이상의 관련된 특정 수량들을 버퍼링하도록 지시될 수 있다(1411 및 1415 블록들). 일단 지시를 받으면, 리모트 제어기들(1230, 1235, 1240)이 데이터를 버퍼링하고 (1420 블록) 트리거 이벤트들을 관찰하기 (1425 블록) 시작한다.
트리거 이벤트 발생시, 그 이벤트를 인식한 리모트 제어기는 이벤트 시간을 기록하고(1430 블록), 마스터 제어기(1245)로 그 이벤트 시간 정보를 갖는 메시지를 송신한다(1435 블록). 그러면 마스터 제어기(1245)가 특정 이벤트에 대해 특정된 노드들의 집합으로 그 이벤트 시간을 송신한다(1440 블록). 특정된 노드들은 자신들의 버퍼링된 관련 수량들을 보간하여 그 이벤트 시간에서의 수량들의 값을 결정한다(1445 블록). 특정된 노드들은 관련 수량들의 보간 값들을 마스터 제어기(1245)로 송신한다(1450 블록). 그러면 마스터 제어기(1245)가 그 데이터를 사용해 시스템(1200) 내의 궤적들이나 동작들을 변경할 수 있다(1445 블록).
다른 대안으로서, 하나 이상의 리모트 제어기들이, 가령 한정된 메모리나 계산 능력으로 인해 데이터 버퍼링 및 보간을 위한 충분한 자원을 취하고 있지 못한 경우에, 그 동작들이 마스터 제어기에 의해 수행될 수도 있다. 그러나, 이러한 접근법은 통신 네트워크 트래픽이 증가하는 결과를 초래시킬 수 있다.
도 12 및 15를 참조하면, 마스터 제어기(1245)에 의한 데이터 버퍼링과 보간을 수용하도록 수정된 순간적 데이터 캡처 절차가 다음과 같이 진행될 수 있다. 리모트 제어기들(1230, 1235, 1240)이 한 개 이상의 센서들(1216)의 가변 출력 상태와 같은 소정 이벤트들을 트리거 이벤트들로 인식하도록 지시될 수 있다(1505 및 1506 블록들). 리모트 제어기들(1230, 1235, 1240)은, 일반적으로 특정 축을 제어하는데 사용되는 서보 (servo) 루프의 샘플링 레이트보다 낮은 어떤 특정 샘플링 레이트에서의 축 위치나 속도와 같은 하나 이상의 관련된 특정 수량들을 버퍼링하도록 또 지시될 수 있다(1510 및 1511 블록들). 일단 지시를 받으면, 리모트 제어기들(1230, 1235, 1240)이 모니터된 관련 수량들을 마스터 제어기(1245)로 주기적으로 송신하기 시작하고(1515 블록), 마스터 제어기는 그것들을 가령 순환형 버퍼를 이용해 특정 시간 동안 저장한다(1520 블록). 동시에, 리모트 제어기들(1230, 1235, 1240)은 트리거 이벤트들에 대한 모니터링을 또한 시작한다(1525 블록). 트리거 이벤트의 발생시, 이벤트를 인식한 리모트 제어가는 이벤트 시간을 기록하고(1530 블록), 이벤트 시간 정보를 갖는 메시지를 마스터 제어기(1245)로 송신한다(1535 블록). 마스터 제어기(1245)는 그러면 버퍼링된 관련 수량을 보간하여 그 이벤트 시간에서의 수량들의 값을 결정한다(1540 블록). 마스터 제어기(1245)는 그런 다음 그 데이터를 이용하여 시스템(1200) 내의 궤적들이나 동작들을 변경할 수 있다(1545 블록).
상술한 절차들에서, 리모트 제어기들이 트리거 이벤트들을 인식하고, 그 이벤트들에 대해 관찰하고 그 이벤트들이 발생된 시간을 기록하는 것으로 전제되었지만, 자율형 리모트 제어기, 클러스터 제어기 또는 마스터 제어기 역시 리모트 제어기들과 관련해 위에서 기술한 그러한 기능들을 수행할 수도 있음을 알아야 한다.
여러 이벤트 캡처 어플리케이션들에서, 특히 순간적 위치 캡처 목적에 있어, 그 궁극적 데이터는 이벤트를 유발(trigger)하는 센서들의 전이 지연으로 인한 에러들을 포함한다. 그러한 에러들은 제어되는 머신의 축들이 이벤트가 물리적으로 발생된 시간에서부터 이벤트가 제어 시스템으로 시그널링할 때에 이르기까지, 바람직하지 않게 긴 거리를 이동할 수 있는 고속/고정밀도 어플리케이션들에서 특히 중요하게 된다.
순환형 패이로드(1205)의 편심이나 오정렬에 대한 "온 더 플라이" 인식 및 정정의 위의 예에서, 로봇(1210)의 말단 장치(1220)가, 패이로드의 에지가 센서들(1216)을 통과하는 위치에서부터 트리거 이벤트가 인식되고 시간이 기록되는 위치에 이르기까지 바람직하지 않게 긴 거리를 이동할 수 있다. 신호 전이 지연이 결정적인 것이라고 가정할 때, 그러한 에러들은 이하에서 설명되는 간단한 지연-보상 메커니즘에 의해 최소화될 수 있다.
이벤트가 발생된 위치 및 이벤트가 제어 시스템에 의해 실제로 인식된 위치 간의 이동 거리를 추정하기 위해, 위치 데이터 외에 속도 정보가 캡처되어야 한다. 관련 축들의 속도들이 두 위치들 간에 실질적으로 일정하다고 가정하고, 경과한 시간이 어떤 알려진 시간 지연과 같다고 할 때, 두 위치들 간의 관련 축들의 모션은, 이벤트가 물리적으로 발생했던 순간적 시간에 각각의 축의 실제 위치에 대한 추정치를 얻도록 다음과 같은 식을 이용해 재구성될 수 있다:
Figure 112008001252800-pct00012
Figure 112011042637738-pct00013
은 위치 캡처 이벤트가 발생했을 때의 축 i의 실제 위치를 나타내고,
Figure 112011042637738-pct00014
Figure 112011042637738-pct00015
은 각각 제어 시스템에 의해 캡처되었을 때의 축 i의 위치 및 속도를 나타내고,
Figure 112011042637738-pct00016
는 센서 전이 지연이며, m은 관련 축들의 개수를 가리킨다.
센서의 전이 지연이 일반적으로 사양들에 포함되어 있다고는 하나, 실제 대기시간 (latency)은 보통 센서가 사용되는 특정 조건에 의존한다. 결과적으로, 보다 정확한 전이 지연 값은 교정 프로세스를 통해 얻어져야 할 필요가 있을 수 있다. 도 12 및 16을 참조하면, 모션의 한 축에 관련된 한 예가 설명될 것이다. 도 12의 작업 셀(1200)은 자율형 리모트 제어기(1255)에 의해 제어되는 축(1270)을 가진 적어도 하나의 정렬기(1250)를 포함할 수도 있다. 자율형 리모트 제어기(1255)는 다시 마스터 제어기(1245)에 의해 제어된다. 노치형(notched, 톱니형) 기판(1260)이 정렬기(1250) 위에 놓여져 있고, 정렬기는 기판(1260)의 노치 위치를 검출하는 센서들을 포함하는 회로(1265)를 포함할 수도 있다. 자율형 리모트 제어기(1255)가, 가령 이 예에서 회로(1265)가 기판(1260)의 노치를 검출하는 것과 같은 위치 캡처 이벤트를 유발시키도록 축(1270)을 움직일 수 있다(1605 블록). 자율형 리모트 제어기(1255)는 정상 동작 속도로 축(127)을 움직이고, 회로(1265)가 그 이벤트를 검출한 경우 축(1270)의 순간적 위치 및 속도를 기록한다(1610 블록). 그런 다음 자율형 리모트 제어기(1255)는 같은 방향으로 축(1270)을 이동시켜, 회로(1265)의 전이 지연에 상응하는 시간 간격으로 축(1270)이 이동한 거리가 요구된 위치 캡처 정확도보다 작도록 선택된 실질적으로 낮은 속도로 그 이벤트를 반복한다(1615 블록). 결과적으로, 임의의 전이 지연들로 인한 위치 에러는 무시될 수 있다. 다시, 회로(1265)가 이벤트를 검출할 때 축(1270)의 순간적 위치가 캡처된다(1620 블록). 그 결과에 따른 데이터가
Figure 112011042637738-pct00017
에 대해 식 (5)의 해를 구함으로써 회로 전이 지연을 추정하는데 사용될 수 있으며 (1625 블록), 여기서
Figure 112011042637738-pct00018
은 저속에서의 위치 캡처 결과로 근사하게 되고,
Figure 112011042637738-pct00019
Figure 112011042637738-pct00020
은 정상적인 동작 속도에서의 이벤트 캡처 결과들이다.
여러 축들의 결합 모션이 위치 캡처 이벤트에 관련되면, 교정 절차는 시스템의 센서(들) 및 움직이는 구성요소(들)의 기하학적 구성을 고려해야 한다. 그러한 경우에 대한 전형적 교정 절차는, 참조병합되는 일반 양도된 미국 특허출원 제10/739,375호에서 찾아 볼 수 있으며, 상기 미국 특허출원에서는 위치 캡처 메커니즘이 페이로드 편심의 온-더-플라이 인식을 위해 사용되고 있다.
가령 정렬기(1250)와 같은, 제어되는 머신의 모션에 의해 위치 캡처 이벤트가 유발될 때, 교정 프로세스는 제어 시스템에 의해 완전 자동화될 수 있다.
따라서, 개시된 실시예들은 클러스터형 아키텍처의 제어 시스템에서 관련된 특정 수량들에 대한 데이터를 캡처하는 여러 방법을 제공한다. 이 방법들은, 이들이 네트워크 노드들 간에 트리거 이벤트들을 전파하는데 필요할 수 있는 극히 적은 대기시간을 갖는 통신 네트워크를 요하지 않는다는 점에서 바람직하다. 트리거링 이벤트가 발생될 때, 그 이벤트를 인식한 제어기가 이벤트 시간을 기록한다. 그 이벤트 시간의 주변에 있는, 한 개 이상의 축들로부터의 데이터가 보간되어 그 이벤트 시간에 대해 계산된 데이터 값들이 산출된다. 계산된 데이터 값들은 시스템(1200) 내의 궤적들이나 동작들을 변경하는데 사용될 수 있다. 교정 절차는 또한 이벤트가 발생된 시간과 이벤트가 제어 시스템에 의해 인식된 시간 간의 불일치를 책임지도록 제공된다.
제한받지 않는 회전을 필요로 하는 로봇들은 슬립 링들 (slip rings)이나 유도성/용량성 피드 스루들 (feed throughs)을 사용하여, 회전가능한 연결을 통해 신호나 파워를 연결할 수 있다. 주파수와 대역폭이 증가하면, 이러한 타입의 연결들은 점차로 구현 및 유지하기가 어렵게 된다. 청소기 로봇들의 경우, 슬립 링들이 오염원을 제공할 수 있다. 차량들이나 트래버서 (traverser)들에 탑재된 로봇들에 있어서, 통신 및 파워를 제공하는 것은 일반적으로 서비스 루프들과 함께 케이블들을 필요로 한다. 그 외에, 시스템 구성요소들에의 서비스 접속들은 일반적으로 커넥터들 및 관련 케이블들을 필요로 한다.
개시된 실시예들의 한 특징은, 시스템 구성요소들 간의 통신을 제공하는데 무선 접속을 활용하여, 케이블 연결, 슬립 링들, 피드 스루들 및 여러 기계적 연결들의 물리적 속성들로 인한 문제들을 없애고, 유선 연결에 비하여 유지보수 요건을 낮추며, 그리고 신뢰성을 높여 주도록 하는 것이다.
도 1을 참조하면, 통신 네트워크(120)는 마스터 제어기(105), 클러스터 제어기들(110), 리모트 제어기들(115), 및 자율형 리모트 제어기들(150) 중 하나 이상의 것들 간에 통신 경로를 제공하는 한 개 이상의 무선 섹션들을 포함할 수 있다.
도 25는 무선 연결이 구현되어 있는 클러스터형 아키텍처의 제어 시스템(100)의 일부를 보인 것이다. 로봇(2505)이 여러 개의 축들을 포함할 수 있고 클러스터 제어기(2510) 및 세 개의 리모트 제어기들(2515, 2520, 2525)에 의해 제어될 수 있다. 마스터 제어기(105)(또한 본 도면에 도시된 도 1 참조)는 통신 네트워크(120)를 통해 클러스터 제어기(2510)를 제어한다. 이 실시예에서, 클러스터 제어기(2510) 및 통신 네트워크(120)는 그들 간에 무선 연결을 제공하는 상응하는 무선 인터페이스들(2530, 2535)을 포함한다. 무선 인터페이스들(2530, 2535)은 가령 TDMA, CDMA, IEEE 802.xx, CIP 프로토콜, 블루투스, 근접 범위 RF, 광 등등과 같은 어떤 적합한 무선 통신 프로토콜이나 시그널링 기법 혹은 규격을 지원할 수 있다. 선택된 무선 프로토콜은 탬퍼링 (tampering)을 막기 위해 암호화된 전송문들과 같은 보안 특징들을 포함할 수 있다.
그 외에, 가령 제어기들, 축들, 말단 장치들, 및 서비스 연결들 간의 다른 통신 경로들 또한 무선일 수 있다. 또, 로봇에 의한 자동화 시스템에서, 로드 포트(loadports), 팬(fan) 시스템, 필터 유닛 등등 또한 무선 연결을 활용할 수 있다. 무선 연결은 케이블을 가지고 구성요소들의 주변들을 파고들지 않아도 통신을 가능하게 한다는 점에서 바람직하다. 예를 들어, 필드 서비스 기술자가 구성요소의 작업 공간으로 들어갈 필요 없이 그 구성요소에 연결할 수 있다. 무선 연결 및 프로토콜들의 활용이 일반적으로 구성요소 연결을 간소화시켜, 어떤 경우들에서는, 파워 연결들만이 케이블 배선을 요할 수 있다.
개시된 제어 시스템(100)은 구성요소들 각각의 작업 공간에서 사람의 참가를 수용하도록 요구될 수 있고, 시스템 무결성을 보장하는 기능들을 포함할 수 있다.
도어 스위치들과 같은 하드웨어 인터록들은, 오퍼레이터가 로봇과 같은, 제어되는 기계의 작업 공간 안에 있을 때, 보통 모터들에 파워가 공급되지 않게 한다. 그러나, 시스템 구성요소를 교습시킬 때, 즉, 그 구성요소가 티치 (teach) 모드에 있을 때, 일반적인 하드웨어 인터록들은 오퍼레이터로 하여금 로봇의 작업 공간으로 들어가는 것을 허용하도록 바이패스 (bypass) 된다. 여러 경우들에 있어서, 로봇을 감독하는데 사용되는 티치 펜던트 (teach pendant)는, 압력이 스위치에 가해지지 않는 경우 로봇의 파워를 제거하는 "라이브-맨 (live-man)" 스위치를 포함한다. 개시된 실시예들에 따르면, 마스터 제어기(105) 또는 클러스터 제어기(110) 역시, 로봇의 속도와 힘이 그 작업 공간에서의 사람의 참가를 수용하기 위해 특정된 허용가능 한도 안에서 반드시 유지되도록 하는 명령들을 제공할 수도 있다.
제어 시스템(100)은 사람의 참가를 수용하기 위해 여러 기능들을 포함할 수 있다. 도 1을 참조하면, 일반적인 시스템 동작들 중에, 마스터 제어기(105)가 개별 축들(125)에 대한 모션 프로파일들을 생성할 수 있다. 도 12의 예에서, 여러 축들이 로봇(1210)의 일부로서 함께 그룹화될 수 있고, 마스터 제어기(1245)는 말단 장치(1220)가 특정 궤적을 실행하도록 리모트 제어기들(1230, 1235, 1240)에 의해 제어되는 각각의 축에 대한 일련의 PVT 프레임들을 생성할 수 있다. 말단 장치가 일정 속도로 이동할 수 있다고 해도, 로봇(1210)을 이루는 상이한 축들의 속도는 위치 및 시간에 따라 달라질 수 있다는 것을 알아야 한다. 따라서, PVT 프레임들의 속도 파라미터는 로봇 운동역학으로 인한 위치 및 시간에 대하여 달라질 수 있다. 오퍼레이터가 작업 셀(1200) 안에 있을 때, 시스템은 그 오퍼레이터를 보호하기 위해 속도 제한 기법들을 이용할 수 있다. 사실상, 시스템은 궁극적인 말단 장치 모션 프로파일이 어떤 요구되는 속도 한도 안에 있도록 궤적들을 생성할 수 있다. 이러한 것은 로봇에 대해 상술한 것과 같은 궤적을 산출하고, 리모트 제어기들(1230, 1235, 1240)에 의해 제어되는 축들의 PVT 프레임들의 속도 파라미터들을 위치-종속 및 시간-종속 비초과 한도로 설정함으로써 달성될 수 있다.
마찬가지로, 말단 장치가 특정 방향으로 일정한 힘을 나타내 보일 수 있지만, 로봇(1210)을 이루는 다른 축들의 토크는 위치와 시간에 따라 달라질 수 있다. 오퍼레이터가 작업 셀(1200) 안에 있을 때 궁극적 말단 장치의 힘이 특정 한도 미만을 유지하도록, 리모트 제어기들(1230, 1235, 1240)을 관리하는 항(term)을 클러스터 제어기(1215)로 송신되는 프레임들에 부가함으로써, 위치-종속 및 시간-종속 토크 한도가 역시 부과될 수 있다. 로봇(1210)의 특정 위치에서, 축 레벨에서 모터들에 의해 가해진 토크와, 말단 장치에 의해 생성된 힘 간에는 어떤 고유한 관계가 존재한다. 따라서, 말단 장치(1220)에 의해 생성된 상응하는 힘이 최대 허용 값을 초과할 수 없도록 하기 위해 최대 모터 토크들을 산출하도록 로봇의 모델을 사용하는 것이 가능하다. 이러한 최대 토크들은 리모트 제어기들(1230, 1235, 1240)에 의해 제어되는 축들에 대한 새로운 PVT 또는 PVT-FG 집합이 생성되어 클러스터 제어기(1215)로 송신될 때마다 산출될 수 있다.
본 실시예들의 한 특징이, 티치 (teach) 동작 모드에서, PVT LIMIT 프레임들이라고 불리는 고유 메시지 프레임들을 활용하는 데 있다. PVT LIMIT 프레임들은 상기 도 6 및 도 7에 도시된 것들과 유사할 수 있으나, 이들의 속도 항은 특정 한도를 넘지 않도록 산출되고, 옵션사항인 토크 한도 항을 포함한다.
도 26은 토그 한도 항을 갖는 전형적인 PVT LIMIT 프레임(2600)을 도시한 것이다. PVT LIMIT 프레임(2600)은 위치 데이터(2610), 속도 데이터(2615), 및 시간 데이터(2620)를 포함한다. 일 실시예에서, 그러한 데이터는 한 개 이상의 바이트들로 함께 그룹화된 바이너리 포맷을 이루고 있다. 다른 실시예에서, 위치 데이터(2610), 속도 데이터(2615), 및 시간 데이터(2620) 각각은 4 바이트를 점유한다. PVT LIMIT 프레임(2600)은 옵션으로 헤더 정보(2625)와 후미 (trailing) 정보(2630)를 포함할 수 있으며, 그 둘 모두는 동기화 데이터, 식별 데이터, 패리티 데이터, 에러 정정 데이터, 또는 다른 타입의 데이터를 포함할 수 있다.
개시된 실시예들의 한 특징으로서, PVT LIMIT 프레임(2600)은 토크 한도를 초과하지 않는 특정한 토크 한도 항(2635)을 포함한다. PVT LIMIT 프레임(2600)은 헤더, 위치, 속도, 시간, 및 후미 데이터 간에 가변 길이 또는 수량의 부가 데이터를 포함할 수도 있다. PVT LIMIT 프레임(2600)은 옵션으로 기타 적절한 데이터를 위한 다른 데이터 필드(2640)를 포함할 수 있다. 도 26은 프레임의 특정 위치들이나 영역들 안의 다양한 정보나 데이터를 보이고 있지만, 다른 타입의 정보와 데이터가 PVT LIMIT 프레임(2600) 안의 어디에나 위치해 있을 수 있다는 것을 알아야 한다. 또한, PVT LIMIT 프레임(2600)이 어떤 특정한 길이로 제한되는 것은 아니라는 것 역시 알아야 한다.
도 27은 옵션인 토크 한도 항을 가진 전형적 PVT-FG LIMIT 프레임(2700)을 보인 것이다. PVT-FG LIMIT 프레임(2700)은 옵션인 헤더 정보(2710), 위치 정보(2715), 속도 정보(2720), 시간 정보(2725), 및 옵션인 후미 정보(2730)를 포함한다.
그 외에, PVT-FG LIMIT 프레임(705)은 적어도 한 피드포워드 항(2735) 및 적어도 한 이득 항(2740)을 포함한다. 데이터는 하나 이상의 바이트들로 함께 그룹화된 바이너리 포맷을 이루고 있을 수 있다. PVT-FG LIMIT 프레임(705)의 일 실시예에서, 위치(2715), 속도(2720), 시간(2725), 피드포워드(2735), 및 이득(2740) 항들 각각은 4 바이트를 점유한다. PVT LIMIT 프레임(2600)과 유사하게, PVT (FG) LIMIT 프레임(2700)은 여러 항들 간에 분산되어 있는 가변 길이 또는 수량의 다른 데이터를 포함할 수 있다.
PVT 프레임(2600)과 마찬가지로, 개시된 실시예들은 PVT-FG LIMIT 프레임(2700)의 일부로서 토크 한도를 초과하지 않는다는 것을 특정하는 토크 한도 항(2745)을 포함한다. PVT LIMIT 프레임(2700)은 또한 헤더, 위치, 속도, 시간 및 후미 데이터 간에 가변 길이 혹은 수량의 부가적 데이터를 포함할 수도 있다. 또 다른 데이터 필드(2750)가 기타 적절한 데이터에 대해 포함될 수도 있다. 도 27은 프레임의 특정 위치들이나 영역들 내의 다양한 정보나 데이터를 보이고 있지만, PVT-FG LIMIT 프레임(2700) 내의 어디에나 다른 타입의 정보 및 데이터가 위치해 있을 수 있다는 것을 알아야 한다. 또한 PVT-FG LIMT 프레임(2700)이 어떤 특정 길이에 한정되는 것이 아니라는 것 역시 알아야 한다.
위에서 언급한 것과 같이, 속도 및 토크 한도 항들이 산출되어, 말단 장치(1220)(도 12)의 속도와 힘에 대한 전반적인 한도를 부과할 수 있다. 말단 장치의 속도가 특정 한도를 초과하지 않도록 말단 장치에 대한 궤적이 산출된다. 그에 따른 위치, 속도 및 가속도 프로파일들은 이제 상술한 로봇의 역 운동역학 공식들을 이용해 개별 축들의 위치들, 속도들 및 가속도들로 변환된다. 궤적 정보는 PVT LIMIT나 PVT-FG LIMT 프레임들로 변환되고 리모트 제어기들(1230, 1235, 1240)을 관리하는 클러스터 제어기(1215)로 송신된다.
예를 들어, 로봇 축들의 일부나 전부가 클러스터 제어기에 부속되는 리모트 제어기들에 의해서가 아닌 자율형 리모트 제어기들에 의해 제어되는 경우에, 마스터 제어기는 PVT LIMIT나 PVT-FG LIMIT 프레임들을 또한 자율형 리모트 제어기들에도 송신할 수 있다는 것을 알아야 한다.
개시된 실시예들의 한 양태로서, 티치 동작 모드 동안, 리모트 제어기들(1230, 1235, 1240)을 관리하는 클러스터 제어기(1215)나, 일반적으로 로봇 축들의 일부나 전부를 제어하는 자율형 리모트 제어기는 마스터 제어기(1245)에 의해 송신된 궤적 데이터를 크로스체크(crosscheck)하도록 동작될 수 있다. 따라서, 제어기가 PVT LIMIT 프레임을 수신할 때, 제어기는 최대 속도, 속도 추적 윈도우, 속도 디바운스(debounce) 시간, 최대 토크, 및 최대 토크 디바운스 시간을 체크하는 것을 포함해 여러 크로스체크를 수행함으로써 메시지 및 그의 데이터의 적용성을 확인하도록 동작하는 것이 가능하다.
최대 속도를 체크하기 위해, 제어기는 축이 티치 모드에 있다는 것을 인식하고 축에 대한 최대 속도 제도 역시 식별할 수 있다. 프레임을 수신할 때, 제어기는 속도 항이 티치 모드에서 축에 특정된 최대 속도 미만임을 확인한다. 최대 속도가 초과되는 경우, 리모트 제어기는 마스터 제어기로 경고를 송신할 수 있다.
제어기는, 속도 추적 윈도우, 즉, 엔코더에 의해 축에 대해 측정된 것과 같은 실제 측정 속도, 및 프레임 메시지로부터 명령된 속도 간의 차이에 대한 최대 값을 결정할 수도 있다. 속도 추적 윈도우가 초과되는 경우, 리모트 제어기는 위에서와 같은 경고를 송신할 수 있다. 어떤 과도기적 조건들에서, 속도 추적 윈도우는 경고를 발하지 않고 짧은 기간 동안 초과될 수 있다. 그러나, 이 기간 역시 특정되고 모니터링될 수 있고, 이러한 특정 기간에 대해 속도 추적 윈도우가 초과되는 경우에도 제어기가 역시 경고를 발할 수 있다.
상술한 바와 같이, 축에 대해 허용된 최대 토크는 궤적 실행 동안, 특히 티치 모드에서 결정될 수 있다. 제어기는 수신된 PVT LIMIT나 PVT-FG LIMIT 프레임들의 한도 항들에 의해 특정된 최대 토크에 대하여 제어 루프에 의해 명령된 토크를 체크할 수 있고, 그 프레임들에 의해 특정된 최대 토크가 초과된 경우에 경고를 발할 수 있다. 최대 속도의 경우처럼, 최대 토크는 경고를 발하지 않고 짧은 기간 동안 초과될 수 있다. 그러나, 이 기간 역시 특정되고 모니터링될 수 있고, 이러한 특정 기간에 대해 최대 토크가 초과되면, 제어가가 역시 경고를 발할 수 있다. 제어기는 축이 티치 모드에 있다는 것을 인식하고, 프레임들 안에서 수신할 것으로 예상되는 초과하면 안되는 토크 한도에 대한 관련 글로벌 최대치를 식별할 수도 있다. 이 글로벌 최대치가 초과되면, 제어기가 역시 경고를 발할 수 있다.
경고 외에, 이러한 파라미터들 가운데 하나의 오류가 또한 제어기로 하여금 어떤 모션도 중지시키도록 모터 구동기 출력 스테이지를 불능화시키게 할 수도 있다. 마스터 제어기는 경고를 받아 다른 모든 관련 축들의 모든 모션을 중시시킬 수도 있다.
도 12를 다시 참조하면, 작업 공간 내에 사람의 참가를 허용하는데 사용된 개시된 실시예들의 다른 양태가, 통신 네트워크, 클러스터 제어기 및 마스터 제어기가 동작하고 있다는 주기적인 확인을 포함할 수 있다. 리모트 제어기들(1230, 1235, 1240)은 통신을 모니터링하여, 메시지가 주기적으로 수신되지 않으면 리모트 제어기가 그의 축에 대한 모션을 중지시키도록 프로그램될 수 있다.
예를 들어, 리모트 제어기들(1230, 1235, 1240)이 토크 명령들을 수신하는 것과 같은 메시지 전송들 간의 시간을 모니터링하도록 프로그램될 수 있다. 다른 예로서, 자율형 리모트 제어기가 PVT 프레임들 간의 시간을 모니터링할 수 있다. 토크 명령이나 PVT 프레임이 예상 시간 안에 도달되지 않으면, 리모트 제어기나 자율형 리모트 제어기는 통신 네트워크(1250), 클러스터 제어기(1215) 또는 마스터 제어기(1245)가 동작하고 있지 않은 것으로 간주하여, 자신의 제어하에 있는 축 또는 축들에 대한 모션을 멈추도록 진행하는 것이 가능하다. 리모트 제어기나 자율형 리모트 제어기에 의해 모니터링된 주기적인 메시지는 이러한 제어기들의 클록들을 동기화시키는데 사용되는 사이클 시작 메시지일 수도 있다.
마스터 제어기(1245)는 주기적인 상태 메시지들의 수신을 모니터링함으로써 네트워크 통신을 모니터링할 수도 있다. 클러스터 제어기(1215)나 리모트 제어기들(1230, 1235, 1240) 중 어느 것으로부터 상태 메시지를 수신하지 못할 경우에, 마스터 제어기(1245)는 클러스터 제어기(1215)와 관련되고 리모트 제어기들(1230, 1235, 1240)에 의해 제어되는 축들 중 어느 하나에 대한 모든 모션을 중지시키도록 시도할 수 있다.
궤적 데이터의 크로스체크, 및 통신 네트워크, 마스터 제어기, 및 리모트 제어기들의 확인 양태들은 특히 각각의 네트워크 노드에서의 그러한 목적으로 하드웨어에 의해 달성될 수 있다. 예를 들어, 클러스터 제어기(1215), 리모트 제어기들(1230, 1235, 1240), 또는 자율형 리모트 제어기는 마스터 제어기(1245)에 의해 송신된 궤적 데이터에 대해 상술한 크로스체크 기능들 중 어느 하나를 수행하도록 독립적으로 동작하는 전용 회로를 포함할 수 있다. 다른 예로서, 마스터 제어기(1245), 클러스터 제어기(1215), 리모트 제어기들(1230, 1235, 1240), 또는 자율형 리모트 제어기 중 한 개 이상은 각각 주기적인 메시지들의 수신이나 메시지들간 시간을 모니터링하는 전용 회로를 포함할 수 있다.
도 28은 특히 시스템 무결성을 모니터링하기 위한 전용 회로를 포함하는 전형적인 무결성 모니터(2800)의 블록도를 보인 것이다. 무결성 모니터(2800)는 프로세서(2810), 반도체 메모리 장치(2815), 비-반도체 메모리(2820), 및 통신 네트워크(120)에 대한 인터페이스(2825)를 포함할 수 있다. 무결성 모니터(2800)는 또 축 위치 정보 신호들(2835)를 수신하기 위한 축 엔코더 센싱 회로(2830)와, 축 모터 전류 인출부 (axis motor current draw)(2845)를 나타내는 신호들을 수신하기 위한 축 모터 전류 센싱 회로(2840)를 포함할 수도 있다. 이 외에도, 무결성 모니터는 또한 타이머(2850), 티치 모드가 이용되고 있음 (Teach, 2855) 및 어떤 순간적인(순시) 정지 요건들 (I-Stop, 2860)을 감지하기 위한 입력들, 및 축에 대한 파워를 제어하기 위한 스위치 인터페이스(2865)를 포함할 수도 있다.
일반적으로, 프로세서(2810)는 메모리(2815)에 저장된 프로그램들의 제어하에서, 궤적 데이터 및 토크 데이터를 크로스체크하고, 통신 네트워크(120)의 동작을 확인하고, 특정 축이 그의 동작 파라미터들을 초과했을 때를 식별하며, 그리고 필요할 경우에 그 축에서 파워를 제거하도록 동작한다.
프로세서(2810)는 축이 티치 모드에 있다는 것을 감지하고, 수신된 PVT 프레임들 내의 속도 항을 이용해 축에 대한 최대 속도 한도를 식별할 수 있다. 프로세서(2810)는 이제 수신된 프레임들 내의 축 항의 실제 속도가 티치 모드 한도에서 축에 대해 특정된 최대 속도를 초과하지 않음을 확인하도록 동작하는 것이 가능하다. 프로세서(2810)는 또한 속도 추적 윈도우가 초과되었는지 그리고 얼마나 오랫동안 초과되었는지를 결정하는 것도 가능하다. 프로세서(2810)는 또, 허용된 최대 토크가 초과되었는지, 그리고 얼마나 오랫동안 초과되었는지를 결정하는 것도 가능하다. 임의의 파라미터들의 오류의 경우, 프로세서(2880)는 축의 셧다운(shutdown)을 제어하고 다른 제어기들의 축들을 제어된 정지로 야기하게 할 수도 있도록 다른 제어기들과 협동하는 것이 가능하다.
프로세서(2810)는 또한 PVT 프레임들의 수신과 같은 메시지 전송들 간의 시간을 모니터링할 수도 있고, PVT 프레임이 예상 시간 안에 도달되지 않는 경우에 경고를 발하거나 제어된 셧다운을 시작할 수 있다. 옵션으로, 무결성 모니터(2800)가 전용 네트워크(2870)를 통해 다른 무결성 모니터들과 통신할 수 있다.
유럽 기계류 지침 (EN 60204-1)에서는 즉각적 정지에 대한 두 개의 카테고리들을 정의한다. 첫째, 카테고리 0는 파워가 단순히 제거되는 "비-제어된 셧다운 (uncontrolled shutdown)"으로서 정의된다. 두 번째 카테고리인, 카테고리 1은, 파워가 제거되기 전 모션을 정지로 야기하게 하는데 충분히 길게 유지되는 "제어된 셧다운 (controlled shutdown)"으로서 정의된다. 사람의 참가를 허용하고 제품 손상을 방지하기 위해 제어 시스템의 구성요소들은 카테고리 1을 따르는 것이 매우 바람직하다.
파워 손실이 있는 경우에, 장비 및 재료에 손상을 일으키게 하거나 오퍼레이터를 위험에 빠뜨리게 하지 않고 축들이 정지되도록 시스템의 축들의 모션을 제어하는 것이 중요할 수 있다. 일반적으로 사용되는 한 방법이 파워 손실이 생길 때 저항기를 통해 축 모터의 권선 (windings)을 단락 (short)시키는 것이다. 그러나, 이러한 것은 원하는 감속 (decelerations)을 얻기 위해 모터 권선 파라미터들에 부합하도록 하는 저항값들의 신중한 튜닝을 요하고, 개별 축들의 셧다운이 조화되지 않으면 상당한 추적 에러들 및 그에 이은 장비나 재료에 대한 손상이 생길 수 있기 때문에 조화된 모션을 로봇들이 실행하지 못하게 할 수 있다.
또 다른 일반적인 방식이 무정전 파워 공급장치 (UPS, uninterruptible power supply)를 포함하는 것이다. 이 해법은 축들을 조화된 방식으로 정지로 야기하게 하는데 필요한 파워를 제공하는 반면에, 상당한 비용, 사이즈 및 무게를 추가시킬 수 있고, 주기적인 서비스를 필요로 할 수 있다.
다른 방법에는, 리모트 제어기들이나 자율형 리모트 제어기들로 하여금 그들과 결부된 축들을 제어된 정지로 야기하게 할 수 있을 정도로 충분한 파워를 제공하도록 파워 공급장치들의 출력들에 커패시턴스나 배터리 백업을 제공하는 것이 포함된다. 그러나, 파워가 전체 감속 이벤트 중에 비교적 안정된 상태에 있어야 하기 때문에 상당한 커패시턴스나 배터리 잔량을 요할 수 있다.
본 발명의 제어 시스템에 사용되는 한가지 방법은 PFC (Power Factor Correction) 회로의 DC 출력에서 제공된 커패시턴스를 가지고 상기 PFC 회로를 통해 입력하는 AC 전압 (이 실시예의 경우에 220V임)을 정류하는 것에 기초하여 수행될 수 있다. 그 결과로서 DC 전압이 광범위한 입력의 DC 파워 공급장치 (이 예에서 48V)로 공급될 수 있다. 파워가 손실될 때, 입력 전압이 상당히 감쇠됨에도 불구하고 커패시터는 DC 파워 공급장치를 계속 구동시켜 준다.
커패시턴스에 의해 저장된 에너지는, 모션 제어기로 하여금 로봇의 말단장치를 현재의 속도에서부터 제로 속도에 이르기까지, 장비 및 재료를 보호하도록 특정된 소정의 감속 비율로 야기하게 하는 궤적을 계획 및 실행하고 그에 따라 로봇을 제어된 정지로 야기하게 하면서, 한편 손상도 없고 축 위치 정보를 소실하지도 않으면서 특정 궤적을 따라 조화된 모션을 유지할 수 있게 할 정도로 충분한 것이어야 한다.
다른 실시예는 도 33에 도시된 것과 같은 용량성 저장 모듈(3300)을 포함할 수 있다. 전형적 용량성 저장 모듈은 정전 및 전압저하 (brownout) 동안에라도 카테고리 1 동작에 필요한 파워를 제공할 수 있다. 특이한 설계로 인해, 이 모듈은 가령 유럽 연합이나 세미 F-47 순간전압저하 (voltage sag) 테스트들과 같은 소정의 전압저하 요건에 부합하지 못할 수 있는 상용 기성품 (COTS, commercial off the shelf) PFC 전력 공급장치들의 사용을 도모할 수도 있다.
용량성 저장 모듈(3300)의 구성요소들이 단일의 인쇄 회로 보드 상에 탑재될 수 있다. AC 전압(3335)이 브리지(3305)에 의해 정류될 수 있고 정류된 전압 출력(3307)은 바로 파워-인자-정정 (Power-Factor-Corrected) 파워 공급장치로 보내질 수 있다. 정류된 전압 출력(3307)과의 병렬관계를 이루는 충전 회로(3310)가 용량성 저장 뱅크(3315)에 고전압을 충전 및 유지할 수 있다. 파워 공급장치 감독 회로(3320)가 용량성 저장 뱅크(3315)와 병렬로 연결될 수 있다.
파워 공급장치 감독 회로(3320)는 프로세서, 메모리, 프로그램 저장부, 및 여러 센서들 및 모니터링 회로를 포함할 수 있다. 프로그램 저장부는 프로세서에 의해 액세스되는 프로그램들을 포함할 수 있으며, 이 프로그램들은 출력 전압(3307)을 모니터링하는 동작, 스위치(3325)를 조작하는 동작, 저장 용량 및 용량성 저장 뱅크(3315)의 전압을 모니터링하는 동작, 및 입력 전압(3335)을 모니터링하는 동작을 포함하는 파워 공급장치 감독자의 동작들을 지시한다.
파워 공급장치 감독자(3320)는 직접 연결을 통해서나 다른 메커니즘들에 의해, 정류된 전압 출력(3307)을 모니터링할 수 있다. 파워 공급장치 감독자 회로(3320)가 정류된 전압 출력(3307)이, 가령, 파워 손실의 결과로서 소정 기준을 충족시키지 못한다고 판단할 때, 파워 공급장치 감독자 회로(3320)는 스위치(3325)를 통해 용량성 저장 뱅크(3315)를 정류된 전압 출력(3307)에 연결시켜 준다.
이러한 설계에 의해 여러 이점이 얻어질 수 있다. 먼저, 용량성 저장 뱅크 내의 커패시터들은 감속 이벤트에 요구되는 총체적인 파워보다 단지 작은 퍼센티지 많은 것만을 제공하기 위한 크기로 되어 있을 수 있다. 둘째, COTS PFC 파워 공급장치들이 일반적으로 광범위한 입력 전압에 걸쳐 동작하는 것이 가능하기 때문에 커패시터들이 자신들의 저장 에너지의 약 85%를 방전하는 동안 출력 전압이 정확하게 유지될 수 있다. 셋째, 커패시터에 저장된 에너지가 커패시턴스 및 전압의 제곱의 곱에 비례하고 커패시터의 물리적 크기가 커패시턴스와 전압의 곱에 거의 비례하기 때문에, 더 높은 전압의 에너지 저장이 이러한 해법을 더 콤팩트하면서 저렴하게 해 준다.
다른 구현예에 있어서, 파워 공급장치 감독자(3320)는 시스템 무결성, 파워 제어 기능, 또는 마스터 제어기(105)를 모니터링하는 회로와 같은 외부 회로로 경고 신호(3330)를 보낼 수 있다. 경고 신호는 다른 네트워크 구성요소들에게 가능한 파워 문제들을 경고하고, 다른 목적에 있어서, 가령, EN 60204-1에서 규정된 것과 같은 카테고리 1 정지를 가능하게 해주는데 사용될 수 있다. 제어 시스템은 또 이러한 경고 신호(3330)를 이용해, 용량성 저장 뱅크(3315)가 모션을 초기화하기 전에 완전히 충전되는 것을 승인하는데에도 사용하는 것이 가능하다. 경고 신호(3330) 및 용량성 저장 뱅크(3315)는 통상적으로 동시발생적으로 인에이블 (enable)되어, 제어 시스템(100)으로 하여금 커패시터 저장 뱅크(3315)에 저장된 에너지를 이용해 어떤 이동중인 축들을 휴지상태(rest)로 야기하게 하는 것이 가능하게 된다. 저장된 에너지는 일반적으로 시스템 상태와 무관하게 시스템을 휴지상태로 야기하게 하는데 필요한 에너지와 같거나 그보다 클 수 있다. 예를 들어, 저장된 에너지는 모든 축들이 최대 속도로 이동중일 때 시스템을 정지상태로 야기하게 하는데 충분한 에너지를 포함할 수 있다.
대안으로서, 경고 신호(3330)의 타이밍이, 일시적인 입력 파워 비정상성들이 불필요한 서비스 붕괴를 야기하지 못하도록 용량성 저장 뱅크(3315)와의 맞물림과 관련하여 시프트될 수 있다. 이것은 특히, 전압저하 요건을 충족시킬 수 없는 파워 공급장치들의 사용을 가능하게 하기 때문에 매우 매력적인 구현 방법이다.
경고 신호는 또한 예측 및 자동 오류 검출에 사용될 수 있는 에너지 저장 용량, 입력 전압, 커패시터 뱅크 전압, 및 입력 파워 품질에 관한 정보를 제공할 수도 있다.
본 실시예들의 또 다른 특징은 축 파워의 제거를 요하는 입력들을 검출하고 그에 대해 반응하도록, 모니터링된 리던던트 고체 상태 로직 (monitored redundant solid state logic)을 활용하는 데 있다. 이것은 즉각적인 정지 정보가 이하에서 논의되는 바와 같이 여러 영역들에 걸쳐 공유될 수 있는 아키텍처를 지원하는 융통성을 제공한다.
도 40에는 이러한 특징을 구현하기 위한 파워 제어 기능부(4000)가 도시되어 있다. 파워 제어 기능부는 즉각적인 정지 입력들(4005), 한 개 이상의 타이머들(4010), 및 여러 프로세서, 메모리들, 및 파워 제어 기능부를 구현하는 지원 회로를 검출하기 위한 회로를 포함한다. 파워 제어 기능부는, 파워 제거 기능부가 파워 제거를 시작했음을 가리키는 신호들 (Stop, 4035), 하나 이상의 로봇의 로직 파워 공급장치들(4055)을 위한 제어 신호들(4040), 및 로봇의 모터 파워 공급장치들(4065)을 제어하는 한 개 이상의 릴레이들(4060)에 대한 제어 신호들(4045)을 제공한다. 즉각적인 정지 검출 회로(4005)는 여러 인터록들(interlocks, 4015)로부터의 입력들을 수신하며, 여러 제어 시스템 구성요소들로부터 순간적인 정지 신호들(4020), 라이브 맨 (liveman) 신호들(4025), 및 티치 모드 신호들(4030)을 수신하고, 또한 마스터 제어기(105)로부터 모터 파워 인에이블 신호들(4070)을 수신하고 릴레이들(4060)로부터의 모니터 신호들(4050)을 수신한다. 라이브 맨 신호들(4025)은 제어 시스템(100)의 적어도 한 로봇 작업 공간에 사람이 있다는 것을 가리킨다. 티치 모드 신호들(4030)은 시스템의 적어도 한 구성요소가 어떤 동작에 대해 교습을 받고 있음을 가리킨다.
파워 제어 기능부는 여러 하드웨어 구성요소들을 포함하는 것으로 설명되었지만, 이러한 파워 제어 기능부가 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 임의의 조합으로 구현될 수 있다는 것을 알아야 한다.
마스터 제어기(105)가 모터 파워가 인에이블되어야 할 것을 요청할 때, 파워 제어 기능부(4000)는 우선 모든 즉각적인 정지(4020), 라이브 맨(4025), 인터록(4015), 및 티치 모드(4030) 신호들의 상태를 확인한다. 파워 제어 기능부(4000)는 또한 릴레이(4060)의 접촉자들이 적절한 상태에 있고 용접되어 있지 않다는 것을 승인하고, 릴레이와 결부된 어떤 고체 상태 스위치들이 도전 (통전) 상태에 있지 않다는 것을 또한 확인할 수 있다. 즉각적인 정지, 라이브 맨, 인터록, 티치 모드 신호들, 접촉자들, 및 스위치들 각각의 상태가 모든 필요한 요건들을 충족시키면, 릴레이(4060)가 인에이블된다. 릴레이(4060)는 한 개 이상의 고체 상태 스위칭 장치로서 구현될 수 있다는 것도 알아야 한다.
즉각적인 정지, 라이브 맨, 인터록, 또는 티치 모드 신호들 중 어느 하나가 모터 파워의 제거를 요하는 상태에 도달할 때, 파워 제어 기능부가 마스터 제어기(105)에 경고를 보내고 타이머(4010)를 시동시킨다. 타이머(4010)는 시스템 구성요소에 대해 제어된 정지에 이르게 하는 파워 제거를 요하는 신호를 생성하는데 충분한 시간을 허용하도록 프로그램된다. 타이머(4010)의 지속시간(duration)은 시스템 구성요소의 동작 모드에 따라 정해질 수 있다. 예를 들어, 타이머는 서로 다른 속도로 이동하는 로봇에 대해 서로 다른 시간간격으로나 티치 모드로 설정될 수 있다.
타이머(4010)의 만료시, 파워 제어 기능부(4000)가 릴레이 제어 신호(4045)를 통해 모터 파워 공급장치를 디세이블 (disable, 불능화) 시킨다. 모터 파워는, 즉각적인 정지, 라이브 맨, 인터록, 혹은 티치 모드 신호들 전부가 모터 파워 재개를 허용하는 상태로 복귀되고, 모터 파워 인에이블 신호(4070)가 재인가될 때에만 재공급될 수 있다.
파워 제어 기능부(4000)는 보통 파워 분산 유닛 안에 상주할 수 있다. 이것은, 가령, 이하에서 설명되는 제어 시스템의 개별 영역(individual zone)들의 파워 분산 유닛들 안에 포함될 때, 리모트 제어기들 및 자율형 리모트 제어기들의 그룹들에 서비스를 제공할 수 있다. 파워 제어 기능부(4000)는 또한 특정 어플리케이션들을 위해 설계된 서로 다른 파워 분산 유닛들에서 재사용될 수 있는 플러그 가능 도터 카드 (pluggable daughter card)나 모듈로서 구현될 수 있다.
도 41은 즉각적인 정지 검출 회로가 위에서 논의한 용량성 저장 모듈(3300)의 파워 공급장치 감독자(3320)로부터 경고 신호(3330)를 감지하는 회로를 포함하는, 파워 제어 기능부(4100)의 다른 실시예를 보인 것이다. 경고 신호(3330)는, 한 개 이상의 네트워크 구성요소들로부터의 파워 제거를 유발시키도록 즉각적인 정지, 라이브 맨, 인터록, 또는 티치 모드 신호들과 비슷한 방식으로 사용될 수 있다.
어떤 고장 및 그에 이은 휴지시간 (downtime)이 수만 달러 상당의 재료 손상 및 생산성의 손실을 의미할 수 있는 제품 환경하에서, 모션 제어 시스템의 신뢰성은 매우 중요한 요건이다. 개시된 실시예들에 따른 제어 시스템(100)의 아키텍처 (도 1 참조)는 리모트 제어기들을 제어되는 구성요소들에 가까이 위치시켜 피드백과 액션 신호들을 운반하는 배선들 및 하니스들 (harnesses)의 길이 및 복잡도를 줄임으로써, 일반적으로 보다 양호한 신뢰성을 얻을 수 있다. 그러나, 일부 예들에서, 통신 네트워크(120)가 비교적 긴 거리까지 운영하고, 많은 경우에 모든 노드들과 그들 간의 접속이 기능하는 경우에만 온전히 동작하게 될 수 있기 때문에, 통신 네트워크(120) 자체는 오류들에 매우 취약할 수 있다. 달리 말하자면, 여러 토폴로지 (topology)들에서, 단일 접속이나 단일 노드의 고장이 한 세그먼트 혹은 전체 통신 네트워크(120)의 고장을 야기할 수 있다. 따라서, 케이블 단선이나, 하나 이상의 네트워크 노드들의 고장과 같은, 오류가 있는 통신 네트워크 접속의 경우에서도 가능한 한 최대로 제어 시스템(100)의 동작을 유지하게 하는 통신 네트워크 해법을 제공하는 것이 바람직하다.
IEEE 1394b 규격 및 기타 네트워크 규격들과 구현들은 다른 경우 트리 타입 네트워크 토폴로지에서 물리적 루프를 형성하는 상호작용 (interactive) 세그먼트들을 가능하게 할 수 있다. 상호작용 세그먼트들은 통신 네트워크(120)의 노드들 간의 리던던트 연결 (redundant connection)들을 제공하는데 사용될 수 있다. 네트워크는 가령 PHY 포트들을 선택적으로 디세이블함으로써, 리던던트 연결들을 자동으로 디세이블하도록 인에이블될 수 있다. 오류시, 네트워크는 그 오류에 의해 고립된 노드들에 대한 경로를 형성하도록 선택적으로 리던던트 연결들을 인에이블하는 기능을 포함할 수 있다. 이것은, 가령, IEEE 1394b 규격 안에서 고유한 설비들을 사용해 달성될 수 있다. 다른 네트워크 구현들 또한, 오류 발생시 리던던트 연결들을 검출 및 디세이블하고 그런 다음에 이들을 선택적으로 인에이블하는 기능을 가질 수 있다.
이러한 특징들이, 통신 네트워크(120) 상에서 케이블 단선이나 완전한 노드 고장이 있는 경우조차도 제어 시스템(100)이 작동할 것을 보장하는 고유한 자체-치유 (self-healing) 오류 허용을 제공하는데 영향을 미칠 수 있다. 특히, 네트워크 노드나 액티브 네트워크 접속이 실패한 경우, 통신 네트워크(120)가 오류 전에 활성 상태에 있지 않았던 리던던트 연결을 통해 통신을 라우팅하도록 스스로 재구성할 수 있다. 두 네트워크 노드들 간의 연결을 세그먼트 (sement)라 부를 것이다.
개시된 실시예들을 설명하면서 IEEE 1349 규격을 예로 들었지만, 개시된 실시예들이 IEEE 1394 기반 네트워크들에 한정되는 것이 아니라는 것을 주지하는 것이 중요하다. 다른 네트워크 구현들 역시, 이들이 개시된 실시예들을 실시하는데 적합한 특징들을 포함하기만 한다면 채용될 수 있다.
네트워크(120) 상의 한 노드가 고장나면, 네트워크는 대체 세그먼트 (alternate segment)들을 통해 통신을 라우팅하도록 스스로 재구성하고, 새 통신 라우트들을 이용해 모션에 대한 모든, 혹은 선택된 축들의 즉각적인 정지를 수행할 수 있다. 따라서, 버스 토폴로지 내의 물리적 루프들은 전체 네트워크를 통해 리던던트 통신 경로들을 제공할 수 있고, 그것은 오류 발생시 보조 데이터 채널들로서 사용될 수 있다.
도 34a는 리던던트 연결들을 제공하는 전형적 네트워크 토폴로지(3400)를 보인 것이다. 토폴로지(3400)는 메인 루프(3405)와 다수의 주변 루프들(3410, 3415, 3420)을 포함한다. 메인 루프(3405)는 마스터 제어기(3425)를 포함하며, 메인 루프(3405) 및 주변 루프들(3410, 3415, 3420) 각각은 리모트 제어기들(3430)을 포함한다. 토폴로지(3400)의 액티브 세그먼트들(3470)이 트리 타입 토폴로지를 형성하는 한편 활성 상태에 있지 않은 세그먼트들(3475)은 노드들 간에 리던던트 루프 연결을 제공한다는 것을 알아야 한다.
도 34b는 메인 루프(3405)의 한 세그먼트(3440)에서 오류(3435)가 생긴 토폴로지(3400)를 보인 것이다. 상술한 바와 같이, 네트워크(120)는 오류가 있는 노드(3435)에서 현재의 미사용 세그먼트(3440)를 디세이블하였고, 이전의 미사용 세그먼트(3445)를 통해 통신을 라우팅하도록 스스로 재구성하였다. 도 34c는 메인 루프(3405)에서 오류가 있는 리모트 제어기와 같은 오류가 있는 노드(3450)가 있는 토폴로지(3400)를 보인 것이다. 이 예에서, 네트워크(120)는 세그먼트들(3455, 3460)을 디세이블시켰고, 이전의 미사용 세그먼트(3465)를 통해 통신을 현재 라우팅하고 있다. 도 34d 및 도 34e는 주변 루프(3420)에서의 비슷한 오류들 및 재구성 기법들의 예를 보인 것이다.
간단한 링 토폴로지에서, 오류를 식별하고 리던던트 연결로 스위치하는 것은 비교적 손쉬울 수 있다. 그러나, 여러 개의 물리적 루프들을 가진 일반 시스템에서 그러한 자체-편성 및 자체-치유 기능을 가능하게 하는 것은 실질적으로 더 어려울 수 있다. 본 실시예들은, 통신 네트워크(120) 내의 여러 물리적 루프들을 가진 제어 시스템이, 자신의 구성이 세그먼트들이나 노드들의 오류들로 인해 시간에 따라 변화할 때에도, 계속 기능하게 할 수 있기 위해, 오류들을 보상하도록 러던던트 연결들을 이용할 수 있는 임의 네트워크 구현의 기반구조(framework)를 채용하는 메커니즘을 제공한다.
본 발명의 실시예들에 따른 메커니즘은 궤적 프레임들의 효율적인 버퍼링 방법, 및 통신 네트워크에서의 동기화 지연에 대한 보상 방법을 포함할 수도 있다.
마스터 제어기(105), 클러스터 제어기들(110), 및 리모트 및 자율형 리모트 제어기들(115)을 포함하는 모든 네트워크 노드들 상의 클록들을 동기화시킴으로써 클러스터형 아키텍처의 제어 시스템(100)에서 모션 동기화가 유지될 수 있다. 한 구현예에 있어서, 사이클 시작 메시지라고도 불리는 동기화 메시지가, 일반적으로 마스터 제어기(105)인 사이클 마스터로서 지정된 노드에 의해 송신될 수 있다.
네트워크 노드에 의해 마스터 제어기(105)로부터 동기화 메시지를 수신할 때의 지연이 네트워크 노드들의 클록들 간의 차이들을 야기한다. 지연의 가장 큰 성분은 동기화 메시지의 전송 동안 리피터 지연들과 관련이 있다. 리피터 지연들은 메시지를 수신하고 메시지가 그의 목적지에 도달할 때까지 계속해서 다음 노드로 그 메시지를 전송하는 프로세스 동안 각각의 노드에 의해 도입된 지연들을 말한다. 소정 노드에 대한 총체적인 전파 지연은 마스터 제어기에서부터 목적지 노드에 이르기까지의 경로를 따른 모든 리피터 지연들의 누적 합이라고 가정할 수 있다.
사이클 시작 메시지의 경로가 네트워크 토폴로지로부터 각 노드에 대해 정해질 수 있다. 전파 지연은 메시지 경로에 기초해 추정될 수 있다. 각각의 노드에 대해 추정된 전파 지연은 그 노드에 대한 PVT 프레임들의 궤적 데이터를 조정함으로써 오프셋될 수 있다.
전파 지연들을 추정하는 한가지 접근법에 있어서, 마스터 제어기(105)는 단순히, 네트워크 토폴로지가 최대 전파 지연이 144 ns를 초과하지 않도록 설계된다는 전제에 기반하여, 144 ns 공칭값을 사용할 수 있다. 다른 한가지 접근법에서, 각각의 노드에 대한 리피터 지연이 사전에 정해져서 가령 노드 안의 메모리 위치에 저장될 수 있다. 마스터 제어기는 그 메모리 위치로부터 특정 노드의 리피터 지연을 판독할 수 있다. 일례에서, 리피터 지연은 가령 베이스 PHY 레지스터와 같은 노드 레지스터 내의 지연 필드에 저장되어 그로부터 판독될 수 있다.
마스터 제어기(105)는 그런 다음 그 리피터 지연들을 활용해 각 노드에 대한 지연 보상을 산출할 수 있다. 일 실시예에서, 마스터 제어기(105)는 EUI-64 (Extended Unique Identifier)를 보고한 노드들에 대해서는 EUI-64로 리피터 지연들을 색인할 수 있고, 그렇게 하지 않은 노드들에 대해서는 추정된 값들을 사용할 수 있다.
마스터 제어기(105)에서부터 통신 네트워크(120) 상의 노드들 중 어느 하나에 이르기까지의 총체적인 전파 지연을 추정하는 또 다른 방법이, 마스터 제어기(105)가 각각의 노드에 핑(ping)을 하여 핑에 대한 응답 시간을 기록하는 것이다. 다른 대안으로서, 마스터 제어기가 PHY 레지스터 요청 패킷에 대한 응답을 기록할 수도 있다. 그러한 핑이나 요청 및 응답에 대한 왕복 시간들의 차이가, 마스터 제어기에서부터 통신 네트워크(120) 상의 서로 다른 노드들에 이르기까지의 누적 전파 지연으로서 이용될 수 있다.
통신 네트워크가 스스로 재구성할 때마다 각 노드에 대한 지연 보상이 재산출될 수 있다.
도 38은 통상의 IEEE 1394b 자체 식별 프로세스의 결과를 보인 것이다. 다른 네트워크 구현들 역시 그러한 자체 식별을 할 수 있으며, 개시된 실시예들이 IEEE 1394b 타입 네트워크들에 한정되는 것이 아니라는 것을 알아야 한다.
노드 Mo에서부터 마스터 (루트)에 이르기까지의 경로가 노드 M0, M1,M2...,Mn으로 정의되고, 이때 Mi는 PHY id들이고 Mn은 루트 (M0<M1<M2 < ...< Mn)이라고 추정하고, p(Mi)는 Mi의 부모이고 Mi에 대한 리피터 지연은 t(Mi)라고 할 때, 노드 M0에 대한 총체적인 전파 지연은
Figure 112011042637738-pct00021
이고, 이때 i=0, 1, 2,...,n-2이다.
마스터 제어기(105)는 통신 네트워크(120) 상에서 일어나는 버스 리셋과 selfid-complete (자체 id-완료) 메시지들을 관찰함으로써 재구성 이벤트들을 인식하게 될 수 있다. selfid-complete 패킷들은, 마스터 제어기(105)가 새로운 네트워크 토폴로지와 마스터 제어기에서부터 각각의 노드에 이르기까지의 경로들을 판단하는데 충분한 정보를 제공할 수 있다. 각각의 노드에서부터 마스터 제어기(105)에 이르기까지의 경로는 루트에 닿을 때까지 어떤 노드에서부터 그의 부모 노드까지의 경로들의 연결에 의해 고유하게 규정될 수 있다. 각각의 노드로부터의 총체적인 전파 지연은 그 경로를 따른 리피터 지연들의 합으로부터 정해질 수 있다. 한 노드에 대한 총체적인 전파 지연이 정해졌으면, 그 노드는 그 전파 지연 정보를 사용해 궤적 데이터 (PVT 프레임들)를 오프셋할 수 있다.
도 35를 참조하면, 이하의 절차는 통신 네트워크(120)가 세그먼트나 노드 오류의 결과로서 재구성할 때 전파 지연들을 재산출함에 있어 바람직할 것이다.
블록 3505에 도시된 바와 같이, 마스터 제어기(105)는 일반적으로 통신 네트워크(120)에서 사이클 마스터 역할을 수행할 수 있고, 블록 3510에 도시된 것과 같이 상술한 대로 통신 네트워크(120) 상에서의 각각의 노드에 대한 리피터 지연들을 추정할 수 있다. 블록 3515에 도시된 것과 같이, 마스터 제어기는 통신 네트워크(120)의 각각의 노드로 상응하는 지연 추정치를 송신한다. 통신 네트워크(120) 상에서의 각각의 리모트 노드는 블록 3520에 도시된 바와 같이 PVT 프레임들을 실행할 때 마스터 제어기(105)로부터 수신된 상기 추정치를 시간 오프셋으로서 적용한다. 예를 들어, 소정 PVT 프레임의 실행을 위한 시간이, 전파 지연의 추정치를 마이너스한 PVT 프레임의 시간 필드로서 산출될 수 있다.
다른 실시예에서, 마스터 제어기(105)에 의해 송신된 PVT 또는 PVT-FG 프레임들은 전파 지연 정보를 운반하는, TIME_OFFSET으로 불리는 부가 필드를 포함할 수 있다.
그러면 각각의 네트워크 노드는 PVT 프레임들의 실행시 TIME_OFFSET 필드로부터의 전파 지연 정보를 적용할 수 있다. 예를 들어, 소정 PVT 프레임의 실행을 위한 시간이, TIME_OFFSET을 마이너스한 PVT 프레임의 시간 필드로서 산출될 수 있다.
버스 리셋 이벤트에 의해 수반되는 토폴로지 변경의 경우에, 리모트 노드는 버스 리셋 전에 버퍼링되었고 버스 리셋 후에 재동기된 클록을 사용해 실행될 수 있는 PVT 프레임들 내의 TIME_OFFSET을 버리고, 버스 리셋 후에 수신된 최초의 PVT 프레임으로부터의 TIME_OFFSET 정보로 그 필드를 대체시킬 수 있다.
도 36은 추가 TIME_OFFSET 필드를 가진 전형적인 PVT 프레임(3605)을 보인 것이다. PVT 프레임(3605)은 위치 데이터(3610), 속도 데이터(3615), 및 시간 데이터(3620)를 포함한다. PVT 프레임(3605)은 옵션으로 헤더 정보(3625) 및 후미 정보(3630)를 포함할 수 있고, 그 둘 모두는 동기화, 식별, 패리티, 에러 정정, 또는 다른 타입의 데이터를 포함할 수 있다. 이 외에, PVT 프레임(3605)은 이 프레임이 어드레싱된 노드에 대한 전파 지연 정보를 포함하는 TIME_OFFSET 필드(3635)를 포함할 수 있다.
도 36이 프레임의 특정 위치들 또는 영역들에서 여러 정보 또는 데이터를 보이고 있지만, 다른 타입의 정보 또는 데이터가 PVT 프레임(3605) 내의 어디에서나 위치해 있다는 것을 알아야 한다. 또한, PVT 프레임(3605)이 어떤 특정한 길이로 제한되지 않는다는 것 역시 알아야 한다.
도 37은 추가 TIME_OFFSET 필드를 갖는 전형적인 PVT_FG 프레임(3705)을 보인 것이다. PVT_FG 프레임(3705)은 PVT 프레임(3605)과 마찬가지로, 옵션인 헤더(3710), 위치(3715), 속도(3720), 시간(3725), 및 옵션인 후미 정보(3730)를 포함한다. 또, PVT-FG 프레임(3705)은 이 프레임이 어드레싱된 노드에 대한 전파 지연 정보를 포함하는 TIME_OFFSET 필드(1735)를 포함할 수 있다.
PVT 프레임(3605)과 마찬가지로, PVT-FG 프레임(3705)은 여러 항들 간에 분산된 가변 길이 또는 수량의 다른 데이터를 포함할 수 있다.
또 다른 접근법으로서, 전파 지연들이 네트워크 노드 상에서 바로 추정될 수가 있다. 각각의 네트워크 노드는 버스 리셋에 뒤따르는 self-id 패킷들 내의 정보에 기초해 마스터 제어기(105)로부터의 경로를 판단할 수 있다. 각각의 노드는 이제, 전파 지연과 실질적으로 동일한 추정된 지연을 산출하고, PVT 프레임들의 실행시 상응하는 오프셋을 적용하는 것이 가능하다.
제어 시스템(100)에서, 한 개 이상의 구성요소들이 즉시 정지할 것을 요하거나, 상술한 속도 제한 또는 힘 제한 특징들 가운데 일부를 야기하게 하는 이벤트들이 일어날 수 있다. 이러한 상황들은 영향을 받는 구성요소들과 상호동작하는 다른 구성요소들에 역효과를 줄 수도 있고, 어떤 경우에서는 전체 제어 시스템에 불리한 영향을 줄 수 있다.
개시된 실시예들의 한 특징이, 제어 시스템(100)을 영역들 (zones)로 분할하여 한 영역에서 일어나는 구성요소 정지, 속도 제한, 또는 힘 제한을 요하는 이벤트들이 다른 영역들에서의 동작에 영향을 주지 않게 하는 데 있다. 시스템을 영역들로 분리하는 것의 또 다른 이점은, 제어 시스템(100)의 구성요소들이나 노드들이 가령 티치 모드로 서비스되거나, 파워가 제거되어 셧 다운되면서도 다른 구성요소들이나 노드들이 계속 기능하게 될 수 있다는 것이다.
여러 작업 영역들을 가진 제어 시스템은 모든 영역들에 걸쳐 글로벌한 즉각적인 정지 기능을 제공하고, 국지적으로 각각의 영역 안의 인터록들을 조종하여 선택된 영역들을 액세스하도록 하면서 다른 영역들 내의 동작들을 유지하게 할 수 있다. 티치 펜던트 (teach pendant) 및 라이브 맨 기능 역시 각 영역에 기반하여 지원될 수 있다. 각각의 영역은 통합된 안전 지원이 가능한 자체 파워 배산 유닛을 포함할 수도 있다.
개시된 실시예들에 따른, 여러 영역들을 가진 제어 시스템의 어플리케이션 예가 도 39에 도시되어 있다.
도 39는 대기 영역(3905)과 진공 영역(3910)을 가진 제어 시스템(100)의 일부를 보인 것이다. 대기 영역(3905)은 두 대의 로봇들(3906, 3907) 및 두 대의 정렬기들(3909, 3908)을 포함한다. 진공 영역(3910)은 한 로봇(3911)을 포함한다. 각각의 영역은 관련된 지능 파워 분산 유닛(3915, 3920)을 포함할 수 있고, 지능 파워 분산 유닛은 상술한 것과 같은 파워 제어 기능부(4000)를 포함할 수 있다. 로컬 시스템 무결성 신호들(3930)이 I-stop, 인터록 또는 라이브 맨 이벤트들을 마스터 제어기(105)로 전송하는데 사용되어, 글로벌하게, 아니면 단일 영역 안에서 제어된 정지가 개시되게 한다. 이 특정 예에서, 로컬 시스템 무결성 신호들(3030)은 각각의 영역 안의 리모트 제어기(3940, 3945) 중 하나로 공급되고 마스터 제어기(105)로 전송된다. 마스터 제어기는 통신 네트워크(120)를 통해 각각의 영역 내의 구성요소들과 통신한다.
이 외에, 이더넷 네트워크와 같은 일반적인 통신 네트워크(3950)가 일반적으로, 하나나 여러 티치 펜던트들(3955, 3960)과의 통신을 포함하는 반도체 기판-조종 어플리케이션들에서의 로드 포트들과 같은 다른 종속 또는 독립적인 자동화 구성요소들과 제어 시스템의 통신을 수용하는 역할을 할 수 있다. 티치 펜던트 인터페이스는 일반 통신 네트워크(3950)에 대한 통신을 지원하고, I-stop, 라이브 맨, 및 펜던트 참여 신호들 역시 포함할 수 있다.
각각의 영역(3905, 3910)은 인터록들, 즉각적인 정지 지시들, 및 시스템 AC 파워 상태에 대한 신호들을 포함하는 '영역간(zone to zone)' 무결성 신호들(3925)을 공유한다. 인접 영역들의 존재를 가리키는 이전 영역 및 다음 영역 신호가 포함될 수도 있다.
마스터 제어기는 대기 영역(3905)에서 일어나는 이벤트들이 진공 영역(3910)에서의 액션들의 동작에 영향을 주지 않게 하기 위해, 영역들(3905, 3910)의 모션을 분리시키도록 동작한다. 예를 들어, 대기 영역(3905)에서의 고장 발생시, 대기 영역이 디세이블되어 제어된 정지 상태로 야기될 수 있다. 이 실시예들은 또한, 한 영역과 다른 영역에서의 액션들을 분리시키는 기능을 하지만, 영역들 간에, 그리고 두 영역 이상의 조화있게 제어된 셧다운을 보장할 수 있는 마스터 제어기로 이벤트들을 전송할 수 있는 능력을 제공한다.
예를 들어, 마스터 제어기가 영역간의 즉각적인 정지 신호를 대기 영역(3905)의 셧다운을 요하는 것으로 식별할 수 있다. 마스터 제어기(105)는 또한, 자신이 대기 영역(3905)으로부터 자료를 수신하기 때문에 진공 영역(3910)을 셧다운할 수 있다. 대안으로서, 마스터 제어기는 대기 영역(3905)에 대해 최초에 스케줄링한 작업을 제어 시스템(100) 내의 다른 영역으로 라우팅할 수 있다.
따라서, 개시된 실시예들은 네트워크의 노드들을 영역들에 할당하여 제1영역에서의 모션이 제1영역과 다른 영역들에서의 모션과 분리되도록 함으로써 제어 시스템 네트워크의 무결성을 유지하는 방법을 제공한다.
어떤 로봇들이 소정 기간 동안 정지되어 있으면, 이들이 재시작시 위치 에러를 가질 수 있다는 것이 관찰되었다. 예를 들어, 유휴 (idle) 상태 후의 시동시, 로봇은 허용가능한 동작 공차 안에서, 적절한 위치로 진행하지 않거나 적절한 위치에 기판을 놓지 못할 수 있다. 이러한 에러들은 온도들 및 여러 구성요소들의 상대적인 위치들, 윤활 점도, 임의 수의 다른 팩터들에 기인한 것일 수 있다. 이러한 에러들은 일반적으로 여러 번의 움직임 뒤에 없어진다.
개시된 실시예들의 한 특징이, 로봇이 유휴 상태인 시간을 기록하는 데 있다. 소정의 유휴 시간이 지났으면, 로봇의 성능 특징이 정해질 수 있다. 성능 특징이 사양들을 충족시키지 못하면, 로봇은 워밍업 동작을 수행하도록 지시될 수 있다. 워밍업 동작은, 로봇이 유휴 상태인 결과로서 표면화되는 위치 정확도 에러들을 제거하기에 충분한 움직임을 지원하는 하나 이상의 모션들을 포함할 수 있다.
개시된 실시예들의 다른 양태에 있어서, 유휴 시간이 초과된 경우, 로봇이 성능 특징을 판단하지 않고 워밍업 동작을 수행하도록 지시될 수 있다.
도 29는 이러한 실시예가 구현될 수 있는 작업 셀(2900)을 도시한 것이다. 작업 셀(2900)은 클러스터 제어기(2915)와 세 개의 리모트 제어기들(2930, 2935, 2940)과 함께 로봇(2910)을 포함한다. 클러스터 제어기(2915)는 통신 네트워크(2950)를 통해 마스터 제어기(2945)와 통신한다. 작업 셀(2900)은 또한 리모트 제어기(2960)에 의해 제어될 수 있는 정렬기(2955)를 포함할 수 있다. 리모트 제어기(2960)는 마스터 제어기(2945)에 의해 제어될 수 있다. 작업 셀(2900)은 옵션으로 로봇의 위치를 감지하는 한 개 이상의 센서들(2960, 2965, 2970)을 포함할 수 있다. 일 실시예에서, 센서들(2960, 2965, 2970)은 로봇(2910) 위에 탑재되거나, 그렇지 않은 경우 로봇 안에 병합될 수 있다. 한 전형적인 실시예에서, 작업 셀(2900)은 클러스터형 아키텍처의 제어 시스템(100)(도 1 참조)의 일부일 수 있다.
도 3을 다시 참조하면, 클러스터 제어기(2915)는 일반적으로 프로세서(305), 롬(310), 램(315), 프로그램 저장부(320), 및 네트워크(120)에 대한 네트워크 인터페이스(330)를 포함한다. 프로세서(305)는 일반적으로, 온 보드 프로그램가능 메모리(335), 롬(310), 램(315), 및 프로그램 저장부(320)와 같은 컴퓨터 이용가능 매체 등의 컴퓨터 프로그램 생성물로부터 정보 및 프로그램들을 판독하도록 동작가능하다.
온 보드 프로그램가능 메모리(335), 롬(310), 램(315), 및 프로그램 저장부(320)는 로봇(2910)의 성능 특징을 결정하고 워밍업 동작의 모션들을 통해 로봇(2910)을 지시하기 위한 프로그램들을 포함할 수 있다.
개시된 실시예들의 전형적 동작들을 도 29 및 30을 참조해 이제부터 설명할 것이다.
로봇 유휴 시간, 로봇 성능 특징을 결정하고, 로봇 워밍업 동작을 구현하는 것과 결부된 기능들이 클러스터 제어기(2915)에 의해 주로 수행되는 것으로 기술하였지만, 그러한 기능들은 마스터 제어기(2945), 리모트 제어기(2930, 2935, 2940), 작업 셀(2900)의 어떤 적절한 구성요소, 또는 클러스터형 아키텍처의 제어 시스템(100)(도 1 참조)의 어떤 적합한 구성요소에 의해 (작업 셀(2900)이 그러한 시스템의 일부일 때) 수행될 수 있다는 것을 알아야 한다.
게다가, 유휴 시간, 성능 특징, 및 워밍업 동작이 일반적으로 로봇(2910)과 결부되어 있지만, 이러한 기능들 및 특징들을 결정하는 것과 관련된 기능들 역시 로봇의 개별 축들이나 조인트들, 작업 셀(2900)의 다른 컴포넌트들, 아니면 다른 클러스터형 아키텍처의 제어 시스템 구성요소들에 대해 구현될 수 있다.
클러스터 제어기(2915)는 로봇(2910)이 유휴 상태에 있을 때를 인식하는 회로나 프로그램들을 구비할 수 있다. 예를 들어, 로봇(2910)은 대기 (stand by) 모드로 진입하거나, 셧다운하라는 명시된 명령 (express command)을 수신할 수도 있고, 아니면 간단히 소정 시간 동안 어떤 모션 명령들을 수신하지 못할 수도 있다. 블록 3010에 도시된 바와 같이, 클러스터 제어기(2915)는 로봇(2910)이 유휴 상태임을 판단하고, 블록 3015에 도시된 것과 같이 유휴 상태가 판단된 시간의 표시로 타임 스탬프를 저장한다.
클러스터 제어기(2915)는 블록 3020에 도시된 것 같이 로봇(2910)으로 송신된 명령들을 모니터링한다. 한 모션 명령이 수신되면, 클러스터 제어기(2915)는 그 타임 스탬프를 검색하여 얼마나 오랫동안 로봇이 유휴 상태이었는지를 판단한다 (블록 3025). 블록 3030에 도시된 것과 같이, 유휴 시간 문턱치가 초과되었으면, 클러스터 제어기는, 일반적으로 로봇이 유휴 상태에 있으므로 인한 위치 정확도 오류들을 제거하기에 충분한 움직임을 제공하는, 예를 들면 하나 이상의 모션 명령들의 형태로 로봇(2910)에 워밍업 동작을 발할 수 있다(블록 3035). 워밍업 동작을 수행한 후, 로봇은 모션 명령을 수행할 수 있게 된다(블록 3045).
도 31은 도 30의 블록 3035의 대안적인 절차를 보인 것이다. 블록 3110에 도시된 바와 같이, 유휴 시간 문턱치가 초과된 경우, 클러스터 제어기(2915)가 로봇(2910)의 성능 특징을 체크할 수 있다. 예를 들어, 클러스터 제어기(2915)는 로봇에 테스트 모션 명령을 발하고, 그런 다음 로봇이 사양들 안에서 그 명령을 수행함을 보장하기 위해 센서들(2960, 2965, 2970)을 체크할 수 있다. 다른 예로서, 클러스터 제어기가 로봇(2910)에, 기판(2975)을 정렬기(2955) 위에 놓으라고 명령하고 그런 다음 위치된 기판의 정렬상태를 체크함으로써 성능 특징을 검사할 수 있다.
성능 특징이 사양 안에 들어 있으면, 클러스터 제어기(2915)는 로봇이 모션 명령을 실행하게 할 수 있다(도 3의 블록 3045). 사양들을 충족하지 못하면, 클러스터 제어기(2915)는 오퍼레이터에게 경고를 발하거나, 예를 들면 사용자 인터페이스(225) (도 2 참조)를 통해 오버라이드 (override)를 요청하는, 도움 요청을 발할 수 있다(블록 3115). 다른 대안으로서, 클러스터 제어기(2915)가 사용자가 개입하기까지 로봇(2910)의 동작을 중지할 수도 있다. 오버라이드가 지원된 경우, 로봇은 이제 모션 명령을 실행할 수 있게 된다(도 31의 블록 3045).
개시된 실시예들은 워밍업 동작을 실행함으로써 로봇 위치 에러들을 보상하는 메커니즘을 제공한다는 것을 알 수 있다. 이 실시예들의 한 양태로서, 로봇이 소정 기간 동안 유휴 상태이었을 때 워밍업 절차가 수행될 수 있다. 좀더 세밀하게 구별하여 설명하면, 로봇의 성능 특징이 판단되고, 소정 사양들에 충족되지 못할 때 워밍업 동작이 수행될 수 있다. 워밍업 동작은 로봇이 유휴 상태인 결과로서 표면화된 위치 정확도 에러들을 제거하기에 충분한 움직임을 지원하는 하나 이상의 모션들을 포함할 수 있다.
복합 제어 시스템에서, 시스템 구성요소들에 액세스하기 위한 표준화된 인터페이스 컨벤션 집합을 이용하는 것이 바람직할 수 있다. 이들은 명령, 파라미터, 변수 등등의 집합을 포함할 수 있고 사용자에게 여러 시스템 구성요소들과의 통신을 위한 공통된 형식을 지원하는 어플리케이션 프로그램 인터페이스 (API, application program interface)에 의해 제공될 수 있다.
개시된 실시예들의 한 특징이, 동작을 수행하라는 일반 명령 및, 동작을 수행하기 위한 특정 구성요소들, 위치들 및 기타 파라미터들을 식별하기 위한 특정 변수들을 이용하는 것을 허용하는 일반화된 명령 집합을 포함하는 API를 제공한다는데 있다.
개시된 실시예들의 또 다른 특징이, API를 통해, 동작을 이행하기 위한 실제 모션들이 변수들에 따라 가변될 수 있다는 데 있다. 예를 들면, 로봇과 정렬기를 위치로서 특정하는 "PickFrom" 명령을 이용하는 것은 로봇과 로드 포트 (loadport)를 위치로 특정하는 것과는 전혀 다른 일련의 움직임들을 초래시킬 수 있다.
도 42를 참조할 때, API는 자원 조정자(4305), 시퀀스 레시피(sequence recipe; 4310), 및 시퀀스 관리자(4315)를 포함하는 여러 오브젝트(object)들을 구비할 수 있다. 자원 조정자(4305)로부터의 명령들이 시퀀스 레시피(4310) 안에 밀집(population) 된다. 시퀀스 레시피(4310)는 시퀀스 관리자(4315)에게 명령들의 시퀀스를 제시하고, 시퀀스 관리자(4315)는 자원들을 할당하여 그 명령 시퀀스가 수행되게 한다. API는 아래에서 기술하는 것과 같은 명령들의 집합을 포함할 수 있다. 각각의 명령은 일반적으로 명령 네임(name) 및 그 뒤에 오는 명령 변수들을 포함한다. 개시된 실시예들의 명령들에서, 액터(actor), 자원, 및 로봇이라는 용어들은 어떤 동작을 행할 수 있는 임의의 장치를 의미한다.
특정된 로봇 위치를 이용해 특정 재료 소스 위치로부터 재료를 집으라는 명령을 PickFrom 명령이라 부를 수 있고, 이것은 다음과 같은 포맷을 가질 수 있다.
PickFrom(IRobot robot, int robotLocation, IMaterialHolder materialSource, int sourceLocation)
여기서, robot은 집기 동작에 대한 주요 액터를 특정한다;
robotLocation은 보통 집기 동작에 이용될 도움말 (tip)인 액터 인덱스를 특정한다;
materialSource는 현재 재료를 붙잡고 있는 장치를 특정한다;
sourceLocation은 재료가 상주해 있는 장치에 대한 인덱스를 특정한다.
특정 로봇 위치를 이용해, 재료를 특정 재료 목적지 위치에 놓으라는 명령을 PlaceTo 명령이라 부르고, 이것은 다음과 같은 포맷을 가질 수 있다.
PlaceTo(IRobot, int robotLocation, IMaterialHolder materialDestination, int destinationLocation)
여기서, robot은 놓기 동작의 주요 액터(로봇)를 특정한다;
robotLocation은 보통 재료가 상주해 있는 도움말인, 액터 인덱스를 특정한다;
materialDestination은 목적지 오브젝트를 특정한다;
destinationLocation은 목적지 오브젝트에 대한 인덱스를 특정한다.
설정된 포인트에 대해 PickFrom 동작의 일부를 수행하라는 명령을 PickPrep 명령이라 칭할 수 있다. PickPrep 명령은 일반적으로 도구 처리량을 높이기 위해 특정 재료 소스에 인접하게 로봇을 이동하는데 사용될 수 있다. 이 동작은 로봇 감속 전에 PickForm 명령이 송신되지 않는 한 설정된 포인트에서 정지할 수 있다.
PickPrep 명령은 다음과 같은 형식을 가질 수 있다.
PickPrep(IRobot robot, int robotLocation, IMaterialHolder materialSource, int sourceLocation)
여기서, robot은 집기 동작을 위한 주요 액터를 특정한다;
robotLocation은 보통 집기 동작에 사용될 도움말 (tip)인, 액터 인덱스를 특정한다;
materialSource는 현재 재료를 붙잡고 있는 장치를 특정한다;
sourceLocation은 재료가 상주해 있는 장치에 대한 인덱스를 특정한다.
설정된 포인트에 대해 PlaceTo 동작의 일부를 실행하라는 명령을 PlacePrep 명령이라 칭할 수 있다. PlacePrep 명령은 일반적으로 도구 처리량을 높이기 위해 특정 재료 소스에 인접하게 로봇을 움직이는데 사용될 수 있다. 이 동작은 로봇 감속 전에 PlaceTo 명령이 송신되지 않는 한 설정된 포인트에서 정지할 수 있다.
PlacePrep 명령은 다음과 같은 형식을 포함할 수 있다.
PlacePrep(IRobot robot, int robotLocation, IMaterialHolder materialDestination, int destinationLocation)
여기서, robot은 놓기 동작을 위한 주요 액터(로봇)를 특정한다;
robotLocation은 보통 재료가 상주해 있는 도움말 (tip)인 액터 인덱스를 특정한다;
materialDestination은 목적지 오브젝트를 특정한다;
destinationLocation은 목적지 오브젝트에 대한 인덱스를 특정한다.
특정된 로봇 위치를 이용해 기판을 재료 소스 위치로부터 목적지 위치로 이동하라는 명령을 MoveFromTo 명령이라 칭할 수 있고 이것은 다음과 같은 형식을 구비할 수 있다.
MoveFromTo(IRobot robot, int robotLocation, IMaterialHolder materialSource, in sourceLocation, IMaterialHolder materialDestination, int destinationLocation)
여기서 robot은 동작에 사용될 주요 액터를 특정한다;
robotLocation은 보통 동작에 사용될 도움말인 액터 인덱스를 특정한다;
materialSource는 현재 재료를 붙잡고 있는 오브젝트를 특정한다;
sourceLocation은 재료가 상주해 있는 오브젝트에 대한 인덱스를 특정한다;
materialDestination은 목적지 오브젝트를 특정한다;
destinationLocation은 목적지 오브젝트에 대한 인덱스를 특정한다.
특정 매핑 장치를 사용해 특정 지원을 매핑하라는 명령을 MapResource 명령이라 칭할 수 있다. 자원을 매핑하는 것은, 자원이 어떤 항목들을 붇잡고 있거나 지지하고 있는지를 판단하는 것을 포함하며, 붙잡고 있거나 지지되는 항목들의 위치를 판단하는 것 역시 포함할 수 있다. MapResource 명령은 또한, 가령 점유, 비점유 등과 같은 적절한 값으로 특정 자원 내의 위치들의 상태 레코드를 업데이트할 수 있다.
MapResource 명령은 다음과 같은 형식을 포함할 수 있다.
MapResource(IMapper mapper, IMaterialHolder resource)
여기서 mapper는 특정 자원을 매핑할 수 있는 장치를 식별한다;
resource는 매핑을 요하는 장치를 식별한다.
특정 자원을 준비(ready) 상태로 초기화하는 명령을 InitializeResource 명령이라 칭할 수 있다. 예를 들어, 자원이 로봇이면 InitializeResource 명령은 이 로봇을 어떤 알려진 위치나 홈으로 이동하게 하고, 그런 다음 안전한 위치로 이동하게 한다. 이 명령은 또한, 자원의 로킹 (locking) 메커니즘이 인에이블될 경우에 그 메커니즘을 리셋할 수 있다.
InitializeResource 명령은 다음과 같은 형식을 가질 수 있다.
InitializeResource(IWorkcellObject resource)
여기서 resource는 초기화할 자원을 특정한다.
어떤 전략이나 레시피에 기초해 자원들을 초기화하라는 명령을 InitializeResources 명령이라고도 칭할 수 있다. 어떤 전략이나 레시피가 특정되어 있지 않을 경우, 표준 혹은 디폴트 레시피가 우선 로봇을 초기화하고 그 다음 부속 모듈들을 초기화하는 것일 수 있다.
어떤 전략을 활용하는 InitializeResources 명령의 형식은 다음과 같을 것이다:
InitializeResources(recipe)
여기서 recipe는 초기화 전략을 특정한다.
개시된 실시예들이, 동작을 수행하기 위한 특정 구성요소들, 위치들, 및 기타 파라미터들을 식별하기 위한 특정 변수들과 그 동작을 수행하기 위해 일반적인 명령을 이용할 수 있게 하는 API를 제공한다는 것을 알 수 있다. 따라서, 개시된 실시예들은 중앙집중방식과 분산방식 제어 모두에 대한 이점을 지니고, 융통성과 규모가변성을 가지며, 모델 기반 제어를 제공하고, 구성요소 동작들을 동기화시키며, 특히 이러한 아키텍처의 시스템에 대해 프로토콜 확장들을 지원하는 네트워킹된 제어 시스템을 개시한다. 제어 시스템은 또한 분산된 이벤트 캡처 및 어플리케이션 프로그램 인터페이스를 제공한다. 이 외에, 상기 시스템은 무선 통신 기능을 포함하고, 어떤 구성요소의 작업 공간 안에서의 사람의 참가를 수용하고, 높은 수준의 시스템 무결성을 지원하고, 즉각적인 정지를 요하는 환경 및 파워 손실을 지원하고, 로봇의 유휴 상태로 인한 위치 에러들을 제거하는 워밍업 기능을 제공한다.

Claims (79)

  1. 제어 시스템에 있어서,
    마스터 제어기를 포함하는 클러스터형 아키텍처 (clustered architecture);
    상기 마스터 제어기의 직접적인 제어하에서 하나 이상의 제1축들 (axes)을 구동하는데 사용되는 하나 이상의 제1리모트 제어기들을 포함하는 중앙 제어 섹션; 및
    상기 마스터 제어기에 의해 제어되는 클러스터 제어기를 포함하는 분산형 제어 섹션을 포함하고,
    상기 클러스터 제어기는 하나 이상의 제2리모트 제어기들에 의해 구동되는 하나 이상의 제2축들 간의 움직임을 조정하도록 하나 이상의 제2리모트 제어기들에 의해 구동되는 하나 이상의 제2축들을 동적으로 모델링함으로써 하나 이상의 제2리모트 제어기들의 동작들을 제어함을 특징으로 하는, 제어 시스템.
  2. 제1항에 있어서,
    하나 이상의 상기 제1 및 제2축들에 대한 궤적 (trajectory)으로서 상기 궤적 상의 복수의 포인트들 중 각각의 포인트에 대한 위치, 속도 및 가속도와 관련된 상기 하나 이상의 제1 및 제2축들에 대한 궤적을 생성하고, 각각의 축에 대한 궤적 상의 각각의 포인트에 대해 이득 값 및 피드포워드 (feedforward) 항을 결정하도록 상기 축들의 인버스 (inverse) 다이내믹 모델들을 산출하는 회로;를 더 포함함을 특징으로 하는, 제어 시스템.
  3. 제1항에 있어서,
    시작 메시지가 상기 제어 시스템의 노드들의 각각의 노드에 송신된 시간을 가리키는 타임 스탬프를 포함하는 시작 메시지를 발행함으로써 상기 제어 시스템의 노드들을 동기화시키는 회로; 및
    상기 타임 스탬프에 의해 지시된 시간과, 상기 각각의 노드에서 고정밀도 클록이 업데이트된 시간 간의 차를 보상하는 회로;를 더 포함하며,
    상기 제어 시스템의 노드들은 상기 마스터 제어기, 상기 클러스터 제어기, 및 상기 제1 및 제2리모트 제어기들을 포함함을 특징으로 하는, 제어 시스템.
  4. 제1항에 있어서,
    상기 마스터 제어기, 상기 제1리모트 제어기들, 상기 클러스터 제어기 및 상기 제2리모트 제어기들 간의 통신을 위한 통신 프로토콜에 대한 확장부 (extensions);를 더 포함하고, 상기 확장부는 사용 스킴(usage scheme) 및 메시지 포맷을 제공함을 특징으로 하는, 제어 시스템.
  5. 제4항에 있어서, 상기 제1 또는 제2리모트 제어기들 중 적어도 하나는 제어 포트 및 데이터 포트를 포함하고, 상기 제어 포트에 의해 수신된 메시지들이 상기 데이터 포트에 의해 수신되는 메시지의 타입을 식별함을 특징으로 하는, 제어 시스템.
  6. 제1항에 있어서,
    분산된 이벤트 캡처 기능부;를 더 포함하고, 상기 제1 또는 제2리모트 제어기들 중 적어도 하나는 유발 (trigger) 이벤트 시점을 기록하도록 동작하고 상기 적어도 하나의 제1 또는 제2리모트 제어기들과는 다른 하나 이상의 제1 또는 제2리모트 제어기들에게 유발 이벤트 시점을 통지하도록 동작함을 특징으로 하는, 제어 시스템.
  7. 제6항에 있어서, 상기 적어도 하나의 제1 또는 제2리모트 제어기들과는 다른 하나 이상의 제1 또는 제2리모트 제어기들은 소정 데이터 포인트들을 버퍼링하고, 버퍼링된 데이터 포인트들 사이를 보간하여 상기 유발 이벤트 시점에서의 값을 결정함을 특징으로 하는, 제어 시스템.
  8. 제1항에 있어서,
    둘 이상의 네트워크 노드들이 통신하게 되는 무선 통신 네트워크;를 더 포함하며, 상기 네트워크 노드들은 상기 마스터 제어기, 상기 클러스터 제어기, 및 상기 제1 및 제2리모트 제어기들 중 하나 이상을 포함함을 특징으로 하는, 제어 시스템.
  9. 제1항에 있어서, 상기 제어 시스템의 네트워크 노드는,
    상기 제1 및 제2축들 중 적어도 한 축의 말단 장치 (end effector)에 대한 동작 파라미터 값을 산출하도록 동작하고, 그리고
    상기 말단 장치에 대한 모션 프로파일이 상기 동작 파라미터 값을 초과하지 않도록 상기 적어도 한 축의 개별 조인트에 대한 모션 프로파일을 생성하도록 동작하며,
    상기 네트워크 노드는 상기 마스터 제어기, 상기 클러스터 제어기, 및 상기 제1 및 제2리모트 제어기들 중 하나 이상을 포함함을 특징으로 하는, 제어 시스템.
  10. 제1항에 있어서, 상기 마스터 제어기는 주기적인 메시지를 발행하도록 동작하고, 상기 클러스터 제어기 및 상기 제1 및 제2리모트 제어기들 중 적어도 하나는 소정 기간 내에 상기 메시지가 수신되지 않으면 디세이블 (disabled, 불능화)됨을 특징으로 하는, 제어 시스템.
  11. 제1항에 있어서, 상기 마스터 제어기, 상기 클러스터 제어기, 및 상기 제1 및 제2리모트 제어기들 중 하나는,
    시스템 축에 대한 파워가 손실되었는지를 판단하도록 동작하고;
    소정 기간 안에 상기 축을 제로 속도로 야기하게 하는 궤적을 상기 축에 적용하도록 동작하며; 그리고
    상기 소정 기간의 종료시에 상기 축으로부터 파워를 제거하도록 동작함을 특징으로 하는, 제어 시스템.
  12. 제1항에 있어서, 상기 마스터 제어기는 시작 메시지가 송신된 시간을 가리키는 타임 스탬프를 포함하는 시작 메시지를 발행하도록 동작하고, 상기 클러스터 제어기 및 상기 제1 및 제2리모트 제어기들 중 적어도 하나는 상기 타임 스탬프를 이용해 클록을 업데이트하도록 동작하고, 타임 스탬프에 의해 지시된 시간과 클록이 업데이트된 시간 간의 차를 보상하도록 동작함을 특징으로 하는, 제어 시스템.
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
  52. 삭제
  53. 삭제
  54. 삭제
  55. 삭제
  56. 삭제
  57. 삭제
  58. 삭제
  59. 삭제
  60. 삭제
  61. 삭제
  62. 삭제
  63. 삭제
  64. 삭제
  65. 삭제
  66. 삭제
  67. 삭제
  68. 삭제
  69. 삭제
  70. 삭제
  71. 삭제
  72. 삭제
  73. 삭제
  74. 삭제
  75. 삭제
  76. 삭제
  77. 삭제
  78. 삭제
  79. 삭제
KR1020087000438A 2005-06-08 2006-06-05 규모가변적 모션 제어 시스템 KR101359541B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US68863605P 2005-06-08 2005-06-08
US60/688,636 2005-06-08
US11/178,615 US7904182B2 (en) 2005-06-08 2005-07-11 Scalable motion control system
US11/178,615 2005-07-11
PCT/US2006/021749 WO2006133096A2 (en) 2005-06-08 2006-06-05 Scalable motion control system

Publications (2)

Publication Number Publication Date
KR20080016942A KR20080016942A (ko) 2008-02-22
KR101359541B1 true KR101359541B1 (ko) 2014-02-07

Family

ID=37499003

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087000438A KR101359541B1 (ko) 2005-06-08 2006-06-05 규모가변적 모션 제어 시스템

Country Status (7)

Country Link
US (4) US7904182B2 (ko)
EP (3) EP1913450A4 (ko)
JP (1) JP5026413B2 (ko)
KR (1) KR101359541B1 (ko)
CN (1) CN101297249B (ko)
TW (1) TWI447542B (ko)
WO (1) WO2006133096A2 (ko)

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7593345B2 (en) * 2004-12-30 2009-09-22 Finisar Corporation Altering latency for network testing
US7904182B2 (en) * 2005-06-08 2011-03-08 Brooks Automation, Inc. Scalable motion control system
US8462796B2 (en) * 2005-07-28 2013-06-11 Ima Industria Macchine Automatiche S.P.A. Method for exchanging information among digital units in a distributed system
US20070205910A1 (en) * 2006-02-22 2007-09-06 Parker-Hannifin Corporation Wireless motion control system
DE102006049956A1 (de) * 2006-10-19 2008-04-24 Abb Ag System und Verfahren zur automatisierten Ver- und/oder Bearbeitung von Werkstücken
US9136711B2 (en) * 2007-08-21 2015-09-15 Electro Industries/Gauge Tech System and method for synchronizing multiple generators with an electrical power distribution system
FR2929873B1 (fr) * 2008-04-09 2010-09-03 Aldebaran Robotics Architecture de controle-commande d'un robot mobile utilisant des membres articules
US9046890B2 (en) * 2008-09-05 2015-06-02 Fanuc Robotics America, Inc. Line tracking data over Ethernet
CN102256755B (zh) * 2008-12-17 2014-09-17 Abb研究有限公司 用于操纵器的预防损坏的系统
US8332737B2 (en) * 2009-06-26 2012-12-11 Agilent Technologies, Inc. Instrument control system and methods
KR101099207B1 (ko) 2009-06-29 2011-12-27 대덕대학산학협력단 블루투스 기반의 멀티로봇 제어 방법
US9120224B2 (en) * 2009-09-22 2015-09-01 GM Global Technology Operations LLC Framework and method for controlling a robotic system using a distributed computer network
JP5353624B2 (ja) * 2009-10-13 2013-11-27 セイコーエプソン株式会社 ロボット制御装置およびロボット制御方法
KR100964599B1 (ko) * 2009-11-30 2010-06-21 주하(주) 무정전 전원 공급 시스템 및 무정전 전원 장치
WO2012029227A1 (ja) * 2010-08-31 2012-03-08 パナソニック株式会社 マスタースレーブロボットの制御装置及び制御方法、マスタースレーブロボット、制御プログラム、並びに、集積電子回路
KR101257793B1 (ko) 2010-12-23 2013-04-24 한국기계연구원 복수 축의 동기화 방식에 기반한 고속 병렬형 로봇의 제어 방법
TWI691388B (zh) * 2011-03-11 2020-04-21 美商布魯克斯自動機械公司 基板處理裝置
WO2012156775A1 (en) * 2011-05-16 2012-11-22 Abb Research Ltd A method and a system for online and dynamic distribution and configuration of applications in a distributed control system
US9456034B2 (en) * 2011-06-09 2016-09-27 Panasonic Intellectual Property Management Co., Ltd. Communication terminal, communication control method, and program
US9298176B2 (en) 2012-01-17 2016-03-29 Fisher-Rosemount Systems, Inc. Compensating for setpoint changes in a non-periodically updated controller
US11199824B2 (en) 2012-01-17 2021-12-14 Fisher-Rosemount Systems, Inc. Reducing controller updates in a control loop
US10423127B2 (en) 2012-01-17 2019-09-24 Fisher-Rosemount Systems, Inc. Velocity based control in a non-periodically updated controller
JP6104519B2 (ja) * 2012-05-07 2017-03-29 シャープ株式会社 自走式電子機器
CN102929171B (zh) * 2012-08-16 2016-05-11 常州市翔云测控软件有限公司 网络型经编机控制系统及方法
CN104603803B (zh) * 2012-09-20 2019-09-13 Abb瑞士股份有限公司 机器人单元的整体设备效率
US9046414B2 (en) 2012-09-21 2015-06-02 Google Inc. Selectable lens button for a hazard detector and method therefor
US20160164976A1 (en) * 2012-09-24 2016-06-09 Suitable Technologies, Inc. Systems and methods for remote presence
CN103853043B (zh) * 2012-11-30 2017-02-22 北京配天技术有限公司 机器人中实现同步ptp运动的方法及装置
US9733638B2 (en) 2013-04-05 2017-08-15 Symbotic, LLC Automated storage and retrieval system and control system thereof
TWI623994B (zh) 2013-07-08 2018-05-11 布魯克斯自動機械公司 具有即時基板定心的處理裝置
TWI709185B (zh) 2013-08-26 2020-11-01 美商布魯克斯自動機械公司 基板搬運裝置
EP2845696B1 (de) * 2013-09-10 2017-05-17 Siemens Aktiengesellschaft Bearbeitungsmaschine mit redundanten Achsen und Auflösung der Redundanz in Echtzeit
TWI742414B (zh) * 2013-11-13 2021-10-11 美商布魯克斯自動機械公司 密封切換的磁阻馬達
JP6679482B2 (ja) 2013-11-13 2020-04-15 ブルックス オートメーション インコーポレイテッド ブラシレス電気機械の制御方法および装置
TWI695447B (zh) 2013-11-13 2020-06-01 布魯克斯自動機械公司 運送設備
KR20230048164A (ko) 2013-11-13 2023-04-10 브룩스 오토메이션 인코퍼레이티드 밀봉된 스위치드 릴럭턴스 모터
TWI793401B (zh) 2013-11-13 2023-02-21 美商布魯克斯自動機械美國公司 運送設備
KR20230034417A (ko) 2013-11-13 2023-03-09 브룩스 오토메이션 인코퍼레이티드 씰링된 로봇 드라이브
CN106133624B (zh) * 2014-03-20 2020-06-16 费希尔-罗斯蒙特系统公司 减少控制回路中的控制器更新
CA2949565C (en) * 2014-06-02 2023-04-04 Ats Automation Tooling Systems Inc. System and method for controlling a moving element in a linear motor conveyor
GB2526810B (en) * 2014-06-03 2017-07-05 Canon Kk Method and apparatus for transmitting sensor data in a wireless network
EP3018544B1 (de) * 2014-11-07 2018-02-21 Siemens Aktiengesellschaft Produktions- oder Werkzeugmaschine und Verfahren zum Betrieb einer Produktions- oder Werkzeugmaschine
US9505132B1 (en) * 2015-03-30 2016-11-29 X Development Llc Methods and systems for calibrating a sensor of a robotic device
WO2016159872A1 (en) * 2015-04-02 2016-10-06 Agito Motion Systems Ltd Centralized networked topology for motion related control system
US9790028B2 (en) 2015-05-04 2017-10-17 Bby Solutions, Inc. Random-access robotic inventory dispensary: variable bin height
US9821464B2 (en) * 2015-05-04 2017-11-21 Bby Solutions, Inc. Random-access robotic inventory dispensary: operation prioritization
US9563197B2 (en) 2015-05-04 2017-02-07 Bby Solutions, Inc. Random-access robotic inventory dispensary: multi-pick fulfillment
US10142353B2 (en) 2015-06-05 2018-11-27 Cisco Technology, Inc. System for monitoring and managing datacenters
US10536357B2 (en) 2015-06-05 2020-01-14 Cisco Technology, Inc. Late data detection in data center
KR102557355B1 (ko) 2015-07-13 2023-07-20 브룩스 오토메이션 인코퍼레이티드 기판 운송 장치
KR20230145534A (ko) 2015-07-13 2023-10-17 브룩스 오토메이션 인코퍼레이티드 온 더 플라이 자동 웨이퍼 센터링 방법 및 장치
US10350766B2 (en) * 2015-09-21 2019-07-16 GM Global Technology Operations LLC Extended-reach assist device for performing assembly tasks
CN105320135B (zh) * 2015-11-05 2018-10-02 北京特种机械研究所 一种气垫悬浮运输车多车协同无线遥控装置
CN105388874A (zh) * 2015-12-16 2016-03-09 四川迅吉科技有限责任公司 一种基于互联网的车间远程控制系统
CN105507735A (zh) * 2016-01-13 2016-04-20 徐州大亚智能科技有限公司 一种基于lan网络控制技术型窗控器系统
DE102016201077A1 (de) * 2016-01-26 2017-07-27 Wago Verwaltungsgesellschaft Mbh Modul für eine technische Anlage und Verfahren zur Steuerung einer technischen Anlage
US10580681B2 (en) * 2016-07-10 2020-03-03 Yaskawa America Inc. Robotic apparatus and method for transport of a workpiece
CN106227097B (zh) * 2016-08-25 2018-11-30 常州市翔云智能控制系统有限公司 多总线多轴运动控制器
JP6925794B2 (ja) * 2016-09-02 2021-08-25 株式会社安川電機 コントローラ、作業制御装置、多軸動作制御装置、及び駆動制御装置
US10607879B2 (en) 2016-09-08 2020-03-31 Brooks Automation, Inc. Substrate processing apparatus
SI3418834T1 (sl) * 2017-06-21 2021-12-31 EWAB Engineering AB Postopek sistema transportnega traku za obratovanje sistema transportnega traku in pretočne naprave za porabo v takem sistemu transportnega traku
US10903107B2 (en) 2017-07-11 2021-01-26 Brooks Automation, Inc. Semiconductor process transport apparatus comprising an adapter pendant
US10754320B2 (en) * 2017-11-14 2020-08-25 Rockwell Automation Technologies, Inc. Method and apparatus for integrating an external motion planner with an industrial controller
US10721170B2 (en) 2018-01-29 2020-07-21 Walmart Apollo, Llc Multi-dimensional event engine for use in cloud environment with highly available network topology
US11088004B2 (en) 2018-01-30 2021-08-10 Brooks Automation, Inc. Automatic wafer centering method and apparatus
CN111971526B (zh) * 2018-02-28 2022-07-29 德弗里茨自动化股份有限公司 计量系统
US11574830B2 (en) 2018-03-16 2023-02-07 Brooks Automation Us, Llc Substrate transport apparatus
TWI671630B (zh) * 2018-05-16 2019-09-11 台灣積體電路製造股份有限公司 半導體製造機台的狀況監控方法及半導體製造系統
EP3802011A1 (en) * 2018-06-04 2021-04-14 Telefonaktiebolaget Lm Ericsson (Publ) Technique for wirelessly controlling a robotic device
JP7133424B2 (ja) * 2018-10-05 2022-09-08 東京エレクトロン株式会社 基板処理装置、及び基板処理方法、及び記憶媒体
US11433534B2 (en) 2019-03-07 2022-09-06 Abb Schweiz Ag Robotic arm including edge computer and cabling arrangement facilitating flexible function advanced distal arm end tooling
US11958183B2 (en) 2019-09-19 2024-04-16 The Research Foundation For The State University Of New York Negotiation-based human-robot collaboration via augmented reality
CN113021330B (zh) * 2019-12-24 2022-04-05 沈阳智能机器人创新中心有限公司 一种分布式网络下的多机器人同步随动控制方法
CN110937563B (zh) * 2019-12-25 2022-02-22 湛江港石化码头有限责任公司 一种输油臂遥控装置的改造方法
WO2021158876A1 (en) * 2020-02-05 2021-08-12 Plus One Robotics, Inc. Intervention systems and methods for robotic picking systems
CN115427197A (zh) * 2020-04-24 2022-12-02 Abb瑞士股份有限公司 工业机器人系统
US11691283B2 (en) * 2020-05-27 2023-07-04 Intrinsic Innovation Llc Robot control parameter interpolation
JP2022012905A (ja) 2020-07-02 2022-01-17 キオクシア株式会社 メモリシステム及び半導体装置の特性情報の管理方法
EP4185441A1 (en) * 2020-07-22 2023-05-31 Flexxbotics Mesh network of reconfigurable robots
DE102020007794B3 (de) * 2020-12-19 2022-04-07 Günther Zimmer Handhabungssystem mit externer Steuerbaugruppe
EP4184265A1 (en) * 2021-11-22 2023-05-24 ATS Automation Tooling Systems Inc. System and method for managing automation systems with synchronous elements
CN114563953B (zh) * 2022-01-31 2023-05-09 四川大学 兼顾多因素影响的轮式机器人自适应容错可靠控制系统及方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040074877A1 (en) * 2002-10-18 2004-04-22 Keith Hochhalter Adaptable servo-control system for force/position actuation

Family Cites Families (155)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3699317A (en) * 1970-05-22 1972-10-17 Westinghouse Electric Corp Sampled data numerical contouring machine controller apparatus and method providable with on line capability for contour cornering deceleration and acceleration
US3843875A (en) * 1973-03-07 1974-10-22 Remington Arms Co Inc Numerical control checkering system
US4047003A (en) * 1975-04-22 1977-09-06 Continental Can Company, Inc. Communication control system
GB1583545A (en) * 1976-08-04 1981-01-28 Martin Sanchez J Control systems
US4484287A (en) * 1980-09-30 1984-11-20 Fujitsu Fanuc Limited System for restoring numerically controlled machine tool to former condition
JPS57113111A (en) * 1980-12-30 1982-07-14 Fanuc Ltd Robot control system
US4398720A (en) * 1981-01-05 1983-08-16 California R & D Center Robot computer chess game
FR2520523A1 (fr) * 1982-01-27 1983-07-29 Commissariat Energie Atomique Structure de commande analogique pour boucles d'asservissement de la position en rotation d'un moteur a charge inertielle variable
JPS58151885A (ja) * 1982-03-03 1983-09-09 Hitachi Ltd モ−タの位置制御方法
US4456961A (en) * 1982-03-05 1984-06-26 Texas Instruments Incorporated Apparatus for teaching and transforming noncoincident coordinate systems
US4514814A (en) * 1982-09-07 1985-04-30 General Electric Company Multi-processor axis control
US4734866A (en) * 1984-07-05 1988-03-29 Siemens Aktiengesellschaft Computer controller for an industrial multiaxis robot
US4691694A (en) * 1984-11-29 1987-09-08 Biodex Corporation Muscle exercise and rehabilitation apparatus
JPS62126883A (ja) * 1985-11-27 1987-06-09 Fanuc Ltd 速度制御方式
US4975856A (en) * 1986-02-18 1990-12-04 Robotics Research Corporation Motion controller for redundant or nonredundant linkages
US4745857A (en) * 1986-02-28 1988-05-24 Markem Corporation Programmable pad printing apparatus and method
US4727303A (en) * 1986-05-22 1988-02-23 Gmf Robotics Corporation Positional control method and system utilizing same
US4837704A (en) * 1986-09-10 1989-06-06 International Business Machines Corporation Computer controlled material handling
US4864492A (en) * 1986-09-17 1989-09-05 International Business Machines Corporation System and method for network configuration
US4962338A (en) * 1986-11-20 1990-10-09 Staubli International Ag. Universal robot control board configuration
US4773025A (en) * 1986-11-20 1988-09-20 Unimation, Inc. Multiaxis robot control having curve fitted path control
US4864204A (en) * 1986-11-20 1989-09-05 Westinghouse Electric Corp. Multiprocessor torque servo control for multiaxis digital robot control system
US4756204A (en) * 1987-02-11 1988-07-12 Cincinnati Milacron Inc. Counterbalance assembly for rotatable robotic arm and the like
US4804170A (en) * 1987-02-11 1989-02-14 Cincinnati Milacron Inc. Counterbalance assembly for rotatable robotic arm and the like
US4887014A (en) * 1987-02-16 1989-12-12 Mitsubishi Denki Kabushiki Kaisha Industrial robot control device
JPH01116704A (ja) * 1987-10-30 1989-05-09 Fanuc Ltd 産業ロボットの動作制御方式
US4879644A (en) * 1987-12-30 1989-11-07 The Boeing Company Object positioning apparatus and method
EP0331265B1 (en) * 1988-03-01 1995-08-23 Hitachi Construction Machinery Co., Ltd. Position/force controlling apparatus for working machine with multiple of degrees of freedom
US4925312A (en) * 1988-03-21 1990-05-15 Staubli International Ag Robot control system having adaptive feedforward torque control for improved accuracy
US5038089A (en) * 1988-03-23 1991-08-06 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Synchronized computational architecture for generalized bilateral control of robot arms
US5019968A (en) * 1988-03-29 1991-05-28 Yulan Wang Three-dimensional vector processor
US5025385A (en) * 1988-04-15 1991-06-18 Froyd Stanley G Multiple axis motion control system
US5229931A (en) * 1988-09-21 1993-07-20 Honda Giken Kogyo Kabushiki Kaisha Nut runner control system and method of monitoring nut runners
US5001646A (en) * 1988-12-19 1991-03-19 Mcdonnell Douglas Corporation Automated helicopter flight control system
JPH02256483A (ja) * 1989-03-29 1990-10-17 Kobe Steel Ltd 産業用ロボットの速度制御装置
US5150288A (en) * 1989-12-18 1992-09-22 Honda Giken Kogyo Kabushiki Kaisha Production management system and method of transmitting data
US4999553A (en) * 1989-12-28 1991-03-12 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Method and apparatus for configuration control of redundant robots
US4967126A (en) * 1990-01-30 1990-10-30 Ford Aerospace Corporation Method of controlling a seven degree of freedom manipulator arm
US5086401A (en) * 1990-05-11 1992-02-04 International Business Machines Corporation Image-directed robotic system for precise robotic surgery including redundant consistency checking
DE69123636T2 (de) * 1990-05-17 1997-04-17 Fujitsu Ltd Such-Positionierungssystem für Scheibengerät
US5144549A (en) * 1990-06-29 1992-09-01 Massachusetts Institute Of Technology Time delay controlled processes
US5179514A (en) * 1990-08-08 1993-01-12 The Research Foundation Of State University Of New York Method and apparatus for trajectory control of robot manipulators or the like
DE4111023C2 (de) * 1991-04-05 2003-11-20 Bosch Gmbh Robert Elektronisches System für ein Fahrzeug
GB2256290B (en) * 1991-05-27 1994-07-20 Honda Motor Co Ltd Servomotor control system for multi-axes
US5214749A (en) * 1991-06-12 1993-05-25 Massachusetts Institute Of Technology Dynamic control of a robot with its center of mass decoupled from an end effector by a redundant linkage
EP0531103B1 (en) * 1991-09-03 1996-08-14 Shibuya Kogyo Co., Ltd Apparatus for automatic remodelling of an article processing system
US5245263A (en) * 1991-09-13 1993-09-14 University Of Maryland Anti-backlash drive systems for multi-degree freedom devices
JP3168682B2 (ja) * 1992-04-27 2001-05-21 ソニー株式会社 数値制御装置
US5263662A (en) * 1992-05-19 1993-11-23 United Technologies Corporation Helicopter integrated fire and flight control system having turn coordination control
US5331881A (en) * 1992-05-19 1994-07-26 United Technologies Corporation Helicopter integrated fire and flight control having azimuth and pitch control
JPH0635527A (ja) * 1992-07-17 1994-02-10 Nitto Seiko Co Ltd 軌道追従停止制御装置
US5414633A (en) * 1992-12-21 1995-05-09 Industrial Technology Research Institute Path control method of tool withdrawal and resumption in CNC
JP2576762B2 (ja) * 1993-06-30 1997-01-29 日本電気株式会社 リング網のノード間情報収集方式
US5420485A (en) * 1993-08-20 1995-05-30 Forcam Inc. Uncoordinated machine initialization system and method
US5456256A (en) * 1993-11-04 1995-10-10 Ultra-Scan Corporation High resolution ultrasonic imaging apparatus and method
US5465212A (en) * 1993-12-23 1995-11-07 United Technologies Corporation Helicopter integrated fire and flight control having a pre-launch and post-launch maneuver director
US5438746A (en) * 1994-01-13 1995-08-08 Ethicon, Inc. Needle threading and swaging system
JP3528934B2 (ja) * 1994-03-29 2004-05-24 マツダ株式会社 生産設備制御装置
DE19511452A1 (de) * 1994-03-29 1995-10-05 Mazda Motor Steuerungssystem für Fertigungsanlagen
US7106843B1 (en) * 1994-04-19 2006-09-12 T-Netix, Inc. Computer-based method and apparatus for controlling, monitoring, recording and reporting telephone access
JPH08137524A (ja) * 1994-11-09 1996-05-31 Fanuc Ltd ロボットの軌道計画時における時定数の設定方法
JP3681431B2 (ja) 1995-02-21 2005-08-10 ファナック株式会社 直交座標系上で柔らかさが調節可能なサーボ系
GB2337837B (en) * 1995-02-23 2000-01-19 Sony Uk Ltd Data processing systems
US5684375A (en) * 1995-06-20 1997-11-04 Allen-Bradley Company, Inc. Method and apparatus for tuning a motion control system
US5784542A (en) * 1995-09-07 1998-07-21 California Institute Of Technology Decoupled six degree-of-freedom teleoperated robot system
US6076124A (en) * 1995-10-10 2000-06-13 The Foxboro Company Distributed control system including a compact easily-extensible and serviceable field controller
US5789890A (en) * 1996-03-22 1998-08-04 Genmark Automation Robot having multiple degrees of freedom
US5956465A (en) * 1996-04-04 1999-09-21 Nissan Motor Co., Ltd. Production facility with automatic movable body for man-machine cooperation
JPH1039906A (ja) * 1996-05-10 1998-02-13 Canon Inc ラインの制御方法とその装置及びラインシステム
JPH1020922A (ja) 1996-07-05 1998-01-23 Seiko Epson Corp ロボットコントローラおよびそのプログラム更新方法
JP3317156B2 (ja) * 1996-09-18 2002-08-26 三菱電機株式会社 リモートplc装置を備えた数値制御装置
CA2267525C (en) * 1996-10-04 2006-03-21 Fisher Controls International, Inc. Method and apparatus for debugging and tuning a process control network having distributed control functions
JPH10198408A (ja) 1997-01-08 1998-07-31 Kokusai Electric Co Ltd 処理命令実行装置
JPH10235580A (ja) * 1997-02-26 1998-09-08 Seiko Seiki Co Ltd 位置・力目標軌道生成器
US6266721B1 (en) * 1997-05-13 2001-07-24 Micron Electronics, Inc. System architecture for remote access and control of environmental management
US6016385A (en) * 1997-08-11 2000-01-18 Fanu America Corp Real time remotely controlled robot
DE19735319A1 (de) * 1997-08-14 1999-02-18 Bayerische Motoren Werke Ag Elektronisches Steuergerät
US6002184A (en) * 1997-09-17 1999-12-14 Coactive Drive Corporation Actuator with opposing repulsive magnetic forces
US6119052A (en) * 1998-03-02 2000-09-12 Xerox Corporation Market-based control system for controlling object motion with smart matter
US6027112A (en) * 1998-03-02 2000-02-22 Xerox Corporation Adaptive multiagent control system for controlling object motion with smart matter
US6039316A (en) * 1998-03-02 2000-03-21 Xerox Corporation Multi-hierarchical control system for controlling object motion with smart matter
US7269475B1 (en) * 1998-03-02 2007-09-11 Xerox Corporation Distributed control system with global contraints for controlling object motion with smart matter
CA2273729A1 (en) * 1998-07-14 2000-01-14 Bayer Corporation Robotics for transporting containers and objects within an automated analytical instrument and service tool for servicing robotics
JP2000073238A (ja) 1998-08-27 2000-03-07 Toyota Autom Loom Works Ltd 紡機における通信方法及び通信制御装置
US6734581B1 (en) * 1998-10-28 2004-05-11 Eigenpoint Company Programmable emergency-stop circuit with testing
US6240335B1 (en) * 1998-12-14 2001-05-29 Palo Alto Technologies, Inc. Distributed control system architecture and method for a material transport system
US6028410A (en) * 1999-01-11 2000-02-22 Stratasys, Inc. Resonance detection and resolution
WO2000045229A1 (en) * 1999-01-29 2000-08-03 Georgia Tech Research Corporation Uncalibrated dynamic mechanical system controller
US6662076B1 (en) * 1999-02-10 2003-12-09 Advanced Micro Devices, Inc. Management of move requests from a factory system to an automated material handling system
US6317651B1 (en) * 1999-03-26 2001-11-13 Kuka Development Laboratories, Inc. Trajectory generation system
JP3212571B2 (ja) * 1999-03-26 2001-09-25 ファナック株式会社 産業用ロボット
US6095741A (en) * 1999-03-29 2000-08-01 Lam Research Corporation Dual sided slot valve and method for implementing the same
US6662673B1 (en) * 1999-04-08 2003-12-16 Applied Materials, Inc. Linear motion apparatus and associated method
US6470225B1 (en) * 1999-04-16 2002-10-22 Siemens Energy & Automation, Inc. Method and apparatus for automatically tuning feedforward parameters
US6330483B1 (en) * 1999-05-07 2001-12-11 The Boeing Company Optimal control system
US6246929B1 (en) * 1999-06-16 2001-06-12 Lockheed Martin Corporation Enhanced stall and recovery control system
US6278907B1 (en) * 1999-11-24 2001-08-21 Xerox Corporation Apparatus and method of distributing object handling
US6308110B1 (en) * 1999-11-24 2001-10-23 Xerox Corporation Apparatus and method of distributed object handling
US6577925B1 (en) * 1999-11-24 2003-06-10 Xerox Corporation Apparatus and method of distributed object handling
JP3791663B2 (ja) * 2000-01-17 2006-06-28 富士電機ホールディングス株式会社 全方向移動車両とその制御方法
US6654648B2 (en) * 2000-04-03 2003-11-25 Toyota Jidosha Kabushiki Kaisha Technique of monitoring abnormality in plurality of CPUs or controllers
JP3421689B2 (ja) * 2000-04-06 2003-06-30 伊東電機株式会社 ローラコンベアのゾーン制御方法並びにゾーンコントローラ
JP3504222B2 (ja) * 2000-09-04 2004-03-08 ファナック株式会社 ロボット制御装置
DE10047924B4 (de) * 2000-09-27 2004-08-05 Siemens Ag Antriebsregelung sowie Verfahren zur Vernetzung einer Regelungseinheit mit einem oder mehreren Gebersystemen
US6708239B1 (en) * 2000-12-08 2004-03-16 The Boeing Company Network device interface for digitally interfacing data channels to a controller via a network
US20020164242A1 (en) * 2001-01-26 2002-11-07 Brian Wehrung Control system for transfer and buffering
US7024257B2 (en) * 2001-02-09 2006-04-04 Motion Engineering, Inc. System for motion control, method of using the system for motion control, and computer-readable instructions for use with the system for motion control
SE0100974D0 (sv) * 2001-03-20 2001-03-20 Abb Ab Termisk optimeringsmetod
US7043309B2 (en) * 2001-04-06 2006-05-09 Xerox Corporation Distributed actuation allocation for large assemblies of implementation units
JP3726032B2 (ja) * 2001-04-27 2005-12-14 本田技研工業株式会社 脚式移動ロボットの目標運動生成装置
US20030028275A1 (en) * 2001-05-01 2003-02-06 Xerox Corporation Incremental distributed actuation for large assemblies of implementation units
JP4694715B2 (ja) * 2001-05-09 2011-06-08 富士機械製造株式会社 電気部品装着ライン
US7148635B1 (en) * 2005-09-21 2006-12-12 Rockwell Automation Technologies, Inc. Motor drive with synchronized timing
US6598859B1 (en) * 2001-05-31 2003-07-29 Magnetek, Inc. Multiple hoist synchronization apparatus and method
US6951274B2 (en) * 2001-06-07 2005-10-04 Rapistan Systems Advertising Corp. Tiered control architecture for material handling
US6873882B2 (en) * 2001-06-20 2005-03-29 Itoh Electric Company Limited Zone controller
US7406029B1 (en) * 2001-06-28 2008-07-29 Netapp, Inc. Fault tolerant optical data communication network having auto discovery
US6548977B2 (en) * 2001-07-12 2003-04-15 Seiberco Incorporated Motor tracking control system
JP4364634B2 (ja) * 2001-07-13 2009-11-18 ブルックス オートメーション インコーポレイテッド 二次元3自由度ロボットアームの軌道プラニング及び移動制御戦略
JP3616759B2 (ja) * 2001-10-19 2005-02-02 ファナック株式会社 重力軸の落下を防止するサーボモータ制御装置
US6702255B2 (en) * 2001-11-08 2004-03-09 Edwards Lifesciences Corporation H-shape duckbill hemostasis valve assembly including guide wire seal
US7028183B2 (en) * 2001-11-13 2006-04-11 Symantec Corporation Enabling secure communication in a clustered or distributed architecture
JP3679105B2 (ja) * 2001-12-28 2005-08-03 本田技研工業株式会社 脚式移動ロボットの歩容生成装置
EP1469944B2 (en) * 2002-01-25 2015-04-15 Thermo CRS Ltd. Modular robotic system for sample processing
US6757583B2 (en) * 2002-06-27 2004-06-29 Joe Giamona Interpolated motion control over a serial network
KR100462612B1 (ko) * 2002-07-06 2004-12-20 삼성전자주식회사 직류 모터 제어 방법 및 장치
US6845282B2 (en) * 2002-09-04 2005-01-18 The Procter & Gamble Company Method of controlling tension in a web
US6871115B2 (en) * 2002-10-11 2005-03-22 Taiwan Semiconductor Manufacturing Co., Ltd Method and apparatus for monitoring the operation of a wafer handling robot
JP4754828B2 (ja) * 2002-11-18 2011-08-24 イリス インターナショナル インコーポレイテッド マルチレベルコントローラシステム
DE10255033A1 (de) * 2002-11-19 2004-06-09 Stama Maschinenfabrik Gmbh Werkzeugmaschine und Verfahren zum Betreiben einer solchen
US6990430B2 (en) * 2002-12-20 2006-01-24 Brooks Automation, Inc. System and method for on-the-fly eccentricity recognition
US7245989B2 (en) * 2002-12-20 2007-07-17 Brooks Automation, Inc. Three-degree-of-freedom parallel robot arm
US7163179B1 (en) 2003-02-14 2007-01-16 Taylor Thomas C Commercial service platform in space
JP2004280195A (ja) 2003-03-12 2004-10-07 Yaskawa Electric Corp ロボット制御装置
US6804580B1 (en) * 2003-04-03 2004-10-12 Kuka Roboter Gmbh Method and control system for controlling a plurality of robots
US7191061B2 (en) * 2003-04-17 2007-03-13 Battelle Energy Alliance, Llc Auto-steering apparatus and method
JP2004238783A (ja) 2003-04-30 2004-08-26 Misao Kikuchi スポーツ紙の紙面がプリントされた衣服の製造方法
JP4080405B2 (ja) * 2003-09-22 2008-04-23 大日本スクリーン製造株式会社 基板処理装置
US7180253B2 (en) * 2003-09-30 2007-02-20 Rockwell Automation Technologies, Inc. Method and system for generating multi-dimensional motion profiles
US7146242B2 (en) * 2003-09-30 2006-12-05 Rockwell Automation Technologies, Inc. Method and system for generating multi-dimensional motion profiles
JP2005246543A (ja) 2004-03-04 2005-09-15 Yaskawa Electric Corp ロボットシステム
JP4498061B2 (ja) * 2004-08-18 2010-07-07 株式会社ダイヘン 溶接ロボット制御装置
US7983769B2 (en) * 2004-11-23 2011-07-19 Rockwell Automation Technologies, Inc. Time stamped motion control network protocol that enables balanced single cycle timing and utilization of dynamic data structures
US7112939B2 (en) * 2004-12-07 2006-09-26 Electronics And Telecommunications Research Institute Mobile system and driving method thereof
US7149606B2 (en) * 2005-03-01 2006-12-12 Fanul Robotics America, Inc. Synchronizing controllers linked by a communications network
US20060241813A1 (en) * 2005-04-22 2006-10-26 Applied Materials, Inc. Optimized cluster tool transfer process and collision avoidance design
US7860609B2 (en) * 2005-05-06 2010-12-28 Fanuc Robotics America, Inc. Robot multi-arm control system
US7289867B1 (en) * 2005-06-08 2007-10-30 Advanced Micro Devices, Inc. Automated integrated circuit device manufacturing facility using distributed control
US7904182B2 (en) * 2005-06-08 2011-03-08 Brooks Automation, Inc. Scalable motion control system
JP2006088330A (ja) 2005-12-02 2006-04-06 Toshiba Corp ロボットコントローラ
KR20070075957A (ko) * 2006-01-17 2007-07-24 주식회사 로보스타 멀티 타스킹을 위한 타스크 기반 로봇 제어시스템
GB2435939A (en) 2006-01-23 2007-09-12 John Phillip Chevalier Electronic control system for safety or security critical devices or systems in a vehicle
US8433448B2 (en) * 2006-05-30 2013-04-30 Rain Bird Corporation Same code base in irrigation control devices and related methods
US20070293989A1 (en) * 2006-06-14 2007-12-20 Deere & Company, A Delaware Corporation Multiple mode system with multiple controllers
US20080046121A1 (en) * 2006-08-17 2008-02-21 Innovati, Inc. Developing system of re-configurable modularized robot

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040074877A1 (en) * 2002-10-18 2004-04-22 Keith Hochhalter Adaptable servo-control system for force/position actuation

Also Published As

Publication number Publication date
EP2980665A2 (en) 2016-02-03
EP2610694A2 (en) 2013-07-03
US7904182B2 (en) 2011-03-08
US20160018816A1 (en) 2016-01-21
EP1913450A2 (en) 2008-04-23
WO2006133096A8 (en) 2008-04-24
EP2980665A3 (en) 2016-04-20
US9020617B2 (en) 2015-04-28
US10488851B2 (en) 2019-11-26
JP2008543578A (ja) 2008-12-04
CN101297249A (zh) 2008-10-29
TW200710618A (en) 2007-03-16
WO2006133096A2 (en) 2006-12-14
US20110118855A1 (en) 2011-05-19
WO2006133096A3 (en) 2007-05-03
EP2610694A3 (en) 2013-09-04
US20200166913A1 (en) 2020-05-28
TWI447542B (zh) 2014-08-01
JP5026413B2 (ja) 2012-09-12
US20070010898A1 (en) 2007-01-11
KR20080016942A (ko) 2008-02-22
CN101297249B (zh) 2012-06-20
EP1913450A4 (en) 2010-03-31

Similar Documents

Publication Publication Date Title
KR101359541B1 (ko) 규모가변적 모션 제어 시스템
KR101818570B1 (ko) 자동화 워크셀 제어 방법
US8751044B2 (en) Control system for controlling an industrial robot
CA2306901C (en) Robot control apparatus and control method
KR101839772B1 (ko) 자동화 워크셀 제어 방법
JP6299640B2 (ja) 通信装置
JP2019079344A (ja) 制御システム
WO2019052665A1 (en) METHOD OF OBTAINING RELIABLE SETTING IN A ROBOTIC CLOUD SYSTEM
US10938967B2 (en) Method and apparatus for communication in a motor drive application
Stefano et al. IIoT based efficiency optimization in logistics applications
Farné et al. IIoT based efficiency monitoring of a Gantry robot
US11269313B2 (en) Controller and control system that stores data in current control cycle for output in next control cycle
KR20090038709A (ko) 나노제어를 위한 고속디지털네트워크 인터페이스장치
Gu et al. Control system design of 6-DOFs serial manipulator based on real-time ethernet
Hosek Clustered-architecture motion control system utilizing IEEE 1394b communication network
US20230166403A1 (en) An industrial robot system
Dahalan et al. Analysis of CAN-based 2-DOF SCARA robot performance under work control
KR20240005413A (ko) 이더캣 네트워크 시스템 및 이의 운용 방법
Lianzhong et al. Notice of Violation of IEEE Publication Principles: The Robot Arm Distributed Digital Control Calculation

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170102

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180110

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190102

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20200102

Year of fee payment: 7