KR20180059182A - 슬레이브 기기의 동기 방법 - Google Patents

슬레이브 기기의 동기 방법 Download PDF

Info

Publication number
KR20180059182A
KR20180059182A KR1020160158436A KR20160158436A KR20180059182A KR 20180059182 A KR20180059182 A KR 20180059182A KR 1020160158436 A KR1020160158436 A KR 1020160158436A KR 20160158436 A KR20160158436 A KR 20160158436A KR 20180059182 A KR20180059182 A KR 20180059182A
Authority
KR
South Korea
Prior art keywords
command packet
slave device
packet
virtual
command
Prior art date
Application number
KR1020160158436A
Other languages
English (en)
Inventor
김병수
최대성
Original Assignee
(주)로보티즈
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)로보티즈 filed Critical (주)로보티즈
Priority to KR1020160158436A priority Critical patent/KR20180059182A/ko
Priority to PCT/KR2017/003197 priority patent/WO2018097418A2/ko
Publication of KR20180059182A publication Critical patent/KR20180059182A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/02Speed or phase control by the received code signals, the signals containing no special synchronisation information

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

본 발명은 슬레이브 기기의 동기 방법에 관한 것으로, 더욱 상세하게는 고유 ID 이외에도 마스터 기기로부터 수신한 가상 ID를 갖는 슬레이브 기기의 동기 방법에 관한 것이다. 마스터 기기와, 멀티 드롭 방식으로 연결되며 각각 같거나 다른 가상 ID 및 서로 다른 고유 ID를 갖는 복수의 슬레이브 기기의 동기 방법은 상기 마스터 기기로부터 명령패킷을 수신하는 단계와, 상기 명령패킷을 분석하여 상기 명령패킷에 포함된 ID가 상기 가상 ID 또는 상기 고유 ID와 일치하는지 판단하는 단계와, 상기 명령패킷에 포함된 ID가 상기 가상 ID 또는 상기 고유 ID와 일치하는 경우, 상기 명령패킷을 실행하는 단계를 포함하는 것을 특징으로 한다.

Description

슬레이브 기기의 동기 방법 {METHOD FOR SYNCHRONIZATION OF SLAVE DEVICE}
본 발명은 슬레이브 기기의 동기 방법에 관한 것으로, 더욱 상세하게는 고유 ID 이외에도 마스터 기기로부터 수신한 가상 ID를 갖는 슬레이브 기기의 동기 방법에 관한 것이다.
멀티 드롭(Multi drop) 방식의 통신 시스템은 마스터 기기와 마스터 기기의 요청에 의해 응답하는 슬레이브 기기가 하나의 회선으로 연결된다. 각 슬레이브 기기는 구분을 위해 고유 ID를 가지고, 마스터 기기는 고유 ID를 기반으로 슬레이브 기기에 명령패킷을 전송하고, 명령패킷을 전송받은 슬레이브 기기는 명령패킷을 실행한다.
종래의 멀티 드롭 방식의 통신 시스템은 마스터 기기가 복수의 슬레이브 기기에 동시에 명령패킷을 송신하여도, 마스터 기기에 가까이 있는 슬레이브 기기부터 순차적으로 명령패킷이 실행되었다.
복수의 슬레이브 기기가 동시에 명령패킷을 실행할 수 있도록, 먼저 명령패킷을 각 슬레이브 기기에 전송하여 보관시킨 다음, Action 명령패킷을 수신하면 명령패킷을 동시에 실행시키는 방법이 개발되었다.
그런데, 이와 같은 방법은 슬레이브 기기의 개수만큼 보관용 명령패킷과 실행을 위한 Action 명령패킷이 요구되기 때문에, 1회 구동을 위해서는 상당량의 명령패킷과, 명령패킷 실행 시까지 긴 시간이 요구되는 문제점이 발생하였다.
따라서, 다수의 슬레이브 기기가 동시에 빠른 속도로 명령패킷을 실행할 수 있는 방법에 대한 요구가 생기게 되었다.
본 발명이 이루고자 하는 기술적 과제는 다수의 슬레이브 기기가 동시에 빠른 속도로 명령패킷을 실행할 수 있는 방법을 제공하는 것이다.
본 발명이 이루고자 하는 기술적 과제는 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위하여, 본 발명의 일실시예는 다수의 슬레이브 기기의 동기 방법을 제공한다.
본 발명의 실시예에 있어서 마스터 기기와 멀티 드롭 방식으로 연결되며 각각 같거나 다른 가상ID 및 서로 다른 고유 ID를 갖는 복수의 슬레이브 기기의 동기 방법은 마스터 기기로부터 명령패킷을 수신하는 단계와, 명령패킷을 분석하여 명령패킷에 포함된 ID가 가상 ID 또는 고유 ID와 일치하는지 판단하는 단계와, 명령패킷에 포함된 ID가 가상 ID 또는 고유 ID와 일치하는 경우, 명령패킷을 실행하는 단계를 포함한다.
본 발명은 명령패킷에 포함된 ID가 가상 ID 및 고유 ID중 어느 하나 와도 일치하지 않는 경우, 명령패킷을 폐기하는 단계를 더 포함할 수 있다.
본 발명은 명령패킷에 포함된 ID가 고유 ID와 일치하는 경우, 명령패킷에 대응하는 상태패킷을 마스터 기기로 송신하는 단계를 더 포함할 수 있다.
본 발명에서 명령패킷에 포함된 ID가 가상 ID와 일치하는 경우, 명령패킷이 고유 ID를 변경하는 명령패킷인지 판단하는 단계와, 명령패킷이 고유 ID를 변경하는 명령패킷인 경우, 명령패킷을 폐기하는 단계를 더 포함할 수 있다.
본 발명에서 명령패킷에 포함된 ID와 일치하는 고유 ID 또는 가상 ID를 갖는 복수의 슬레이브 기기는, 하나의 그룹이 되어, 동시에 상기 명령패킷을 실행할 수 있다.
본 발명에서 가상 ID 또는 고유 ID와 일치하는지 판단하는 단계는, 명령패킷에 포함된 ID가 고유 ID와 일치하는지 판단하는 단계와, 명령패킷에 포함된 ID가 고유 ID와 일치하지 않는 경우, 명령패킷에 포함된 ID가 가상 ID와 일치하는지 판단하는 단계를 포함할 수 있다.
본 발명에서 가상 ID가 기설정된 값을 가진 경우, 가상 ID를 무시할 수 있다.
본 발명에서 명령패킷은, WRITE 명령패킷일 수 있다.
본 발명에서 명령패킷은, 슬레이브 기기의 컨트롤 테이블을 통해 제어할 값의 어드레스를 체크한 후, 슬레이브 기기의 고유 ID또는 가상 ID와 어드레스를 참조하여 생성될 수 있다.
본 발명에서 슬레이브 기기는, 마스터 기기에 의해 구동되는 엑츄에이터일 수 있다.
본 발명은 명령패킷을 수신하는 단계 이전에, 마스터 기기로부터 가상 ID를 수신하여 저장하는 단계를 더 포함할 수 있다.
본 발명의 실시예에 따르면, 복수의 슬레이브 기기는 고유 ID 이외에도 가상 ID를 가질 수 있으며, 동일한 가상 ID를 갖는 슬레이브 기기끼리 그룹을 형성할 수 있기 때문에, 동일한 가상 ID를 갖는 슬레이브 기기는 동시에 빠른 속도로 명령패킷을 실행할 수 있다.
본 발명의 효과는 상기한 효과로 한정되는 것은 아니며, 본 발명의 상세한 설명 또는 특허청구범위에 기재된 발명의 구성으로부터 추론 가능한 모든 효과를 포함하는 것으로 이해되어야 한다.
도 1은 본 발명이 적용되는 슬레이브 기기와 통신하는 마스터 기기를 도시하는 도면이다.
도 2는 본 발명이 적용되는 슬레이브 기기가 포함된 통신 시스템의 구성을 도시하는 도면이다.
도 3은 본 발명의 실시예에 따른 슬레이브 기기의 동기 방법을 도시하는 순서도이다.
도 4는 본 발명의 명령패킷 생성 시 참조되는 컨트롤 테이블을 도시하고 있다.
도 5는 본 발명이 적용되는 슬레이브 기기의 위치 에러에 따른 출력 곡선을 도시하고 있다.
도 6은 본 발명이 적용되는 슬레이브 기기가 이동하고자 하는 목표위치를 도시하고 있다.
도 7은 본 발명에서 사용자가 기록할 수 있는 데이터 유효영역을 도시하고 있다.
이하에서는 첨부한 도면을 참조하여 본 발명을 설명하기로 한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 따라서 여기에서 설명하는 실시예로 한정되는 것은 아니다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결(접속, 접촉, 결합)"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 부재를 사이에 두고 "간접적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 구비할 수 있다는 것을 의미한다.
본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하 첨부된 도면을 참고하여 본 발명의 실시예를 상세히 설명하기로 한다.
도 1은 본 발명이 적용되는 슬레이브 기기(20)와 통신하는 마스터 기기(10)를 도시하는 도면이다.
도 1을 참조하면, 마스터 기기(10)는 N개의 슬레이브 기기(20)와 연결되어 있으며, 마스터 기기(10)와 슬레이브 기기(20)는 패킷을 송수신하는 통신버스(30)에 의해 멀티 드롭 방식으로 연결된다. 마스터 기기(10)는 슬레이브 기기(20)와 통신버스(30)를 통해 패킷을 주고 받으면서 통신한다.
패킷의 종류로는, 마스터 기기(10)에서 슬레이브 기기(20)로 전송되어 슬레이브 기기(20)를 제어하는 명령패킷과, 슬레이브 기기(20)에서 마스터 기기(10)로 송신되는 상태패킷이 있다. 이때, 상태패킷은 명령패킷에 대응하여 생성되는 패킷으로, 슬레이브 기기(20)가 마스터 기기(10)로부터 수신한 명령패킷을 실행하는 경우에만, 생성될 수 있다.
또한, 명령패킷은 WRITE 명령패킷일 수 있다. WRITE 명령패킷은 가장 짧고 단순한 명령패킷으로 슬레이브 기기(20)의 해석시간이 짧으며, 인터럽트에 의한 지연을 최소화 할 수 이다. 또한, 패킷의 길이가 짧기 때문에, 데이터와 데이터 사이에 다른 데이터가 침입하여 발생하는 왜곡 현상도 최소화 할 수 있다.
복수의 슬레이브 기기(20)는 구분을 위해 각각 고유 ID가 저장되어 있으며, 마스터 기기(10)로부터 가상 ID를 전송받는 경우, 가상 ID도 저장될 수 있다. 즉, 슬레이브 기기(20)는 한 개 이상의 ID를 가질 수 있다. 슬레이브 기기(20)는 이미 가상 ID가 저장되어 있는 상태에서 마스터 기기(10)로부터 다른 가상 ID를 전송받는 경우, 복수개의 가상 ID를 저장하거나, 가상 ID를 기존의 가상 ID에서 로 전송 받은 가상 ID로 대체할 수 있다
슬레이브 기기(20)는 ID에 의해 구분되기 때문에, 마스터 기기(10)는 명령패킷을 통해 슬레이브 기기(20) 제어 시, 반드시 제어하고자 하는 슬레이브 기기(20)의 ID를 포함하여 명령패킷을 생성해 전송해야 한다. 슬레이브 기기의 ID가 포함된 명령패킷은, 명령패킷에 포함된 ID를 갖는 슬레이브 기기(20)만이 실행할 수 있으며, 명령패킷에 포함된 ID를 갖지 않는 슬레이브 기기(20)는 해당 명령패킷을 수신하더라도 폐기하거나, 아예 수신하지 않는다.
마스터 기기(10)는 제어하고자 하는 슬레이브 기기(20)의 ID를 포함하여 명령패킷을 생성하여 전송하다. 이때, 슬레이브 기기(20)의 ID는 고유 ID 또는 가상 ID일 수 있다. 명령패킷에 포함된 ID를 가상 ID 또는 고유 ID로서 갖는 슬레이브 기기(20)는 명령패킷을 실행할 수 있다. 이때, 슬레이브 기기(20)는 가상 ID와 고유 ID가 동일한 경우, 고유 ID가 우선 적용할 수 있다.
명령패킷에 포함된 ID가 슬레이브 기기(20)의 고유 ID와 일치하는 경우, 슬레이브 기기(20)는 명령패킷을 실행 한 후, 명령패킷에 대응하는 상태패킷을 마스터 기기(10)로 송신할 수 있다.
본 발명의 일 실시예에 따라, 명령패킷에 포함된 ID가 슬레이브 기기(20)의 가상 ID와 일치하는 경우, 슬레이브 기기(20)는 명령패킷이 고유 ID를 변경하려는 명령패킷인지 판단하여, 고유 ID를 변경하려는 명령패킷으로 판단 경우, 명령패킷을 폐기할 수 있다.
본 발명의 일 실시예에 따라, 슬레이브 기기(20)는 마스터 기기(10)로부터 전송받은 가상 ID가 기설정된 값인 경우, 가상 ID를 무시할 수 있다.
도 2는 본 발명이 적용되는 슬레이브 기기(20)가 포함된 통신 시스템의 구성을 도시하는 도면이다.
슬레이브 기기(20)는 마스터 기기(10)의 명령패킷에 의해 제어되고, 마스터 기기(10)는 다시 PC, 유무선 리모컨과 같은 사용자 단말기에 연결된다.
이때, 사용자는 각 슬레이브 기기(20)를 제어하기 위한 신호(이하, 제어신호)를 사용자 단말을 통해 입력하게 되면 사용자 단말로부터의 제어신호는 예컨데 RS232 방식의 통신버스를 통해 마스터 기기(10)로 전송되고, 마스터 기기(10)는 제어신호를 슬레이브 기기(20)의 제어에 적합한 RS485 방식의 명령패킷으로 변환하여 멀티 드롭 방식으로 각각 또는 전체 슬레이브 기기(20)에 전송한다.
도3은 본 발명의 일 실시예에 따른 슬레이브 기기(20)의 동기 방법을 도시하는 순서도이다.
S101단계에서 슬레이브 기기(20)는 통신버스(30)를 통해 마스터 기기(10)로부터 가상 ID를 수신하고, 수신한 가상 ID를 저장한다. 슬레이브 기기(20)가 마스터 기기(10)로부터 가상 ID를 수신하는 동작은 마스터 기기(10)로부터 가상 ID가 포함된 명령패킷을 수신하고 가상 ID가 포함된 패킷을 분석하여 명령패킷에 저장된 가상 ID를 추출하여 저장하는 동작 또는 마스터 기기(10)로부터 가까이 있는 슬레이브 기기(20)부터 순차적으로 번호 또는 기호를 부여받아 저장하는 동작일 수 있다. 이때, S101단계는 필요에 따라 이루어지는 선택적인 단계로, 복수의 슬레이브 기기(20)가 이미 각각 같거나 다른 가상ID 및 서로 다른 고유 ID를 가지고 있는 경우, S101단계는 생략될 수 있다.
슬레이브 기기(20)는 S102단계에서 마스터 기기(10)로부터 명령패킷이 수신되는지를 판단한다. 명령패킷이 수신된 것으로 판단하면, 슬레이브 기기(20)는 S103 단계에서 명령패킷에 포함된 ID를 확인하기 위해 명령패킷을 분석한다.
명령패킷을 분석하여 명령패킷에 포함된 ID를 확인한 후, 슬레이브 기기(20)는 S104단계에서 명령패킷에 포함된 ID가 고유 ID와 일치하는지 판단한다. 고유 ID와 일치하는 것으로 판단하면, 슬레이브 기기(20)는 S105단계에서 명령패킷을 실행하고, S106단계에서 명령패킷에 대응되는 상태패킷을 생성하여 송신한다.
슬레이브 기기(20)는 S104단계에서 명령패킷에 포함된 ID가 고유 ID와 일치하지 않는 것으로 판단하면, S107단계에서 명령패킷에 포함된 ID가 가상 ID와 일치하는지 판단한다. 슬레이브 기기(20)는 명령패킷에 포함된 ID가 가상 ID와 고유 ID중 고유 ID와 일치하는지 먼저 판단함으로써, 가상 ID와 고유 ID가 동일한 경우, 고유 ID를 우선 적용할 수 있다.
가상 ID와 일치하는 것으로 판단하면, S108단계에서 슬레이브 기기(20)는 수신한 명령패킷이 고유 ID를 변경하는 명령패킷인지 판단하고, 고유 ID를 변경하는 명령패킷인 경우, S109 단계에서 수신한 명령패킷을 폐기한다. 명령패킷이 고유 ID를 변경하는 명령패킷이 아닌 경우, S110단계에서 명령패킷을 실행한다.
즉, 슬레이브 기기(20)는 수신한 명령패킷에 포함된 ID가 가상 ID 또는 고유 ID와 일치하는 경우, 수신한 명령패킷이 고유 ID를 변경하는 명령패킷인 경우를 제외하고는 명령패킷을 실행한다. 또한, 상태패킷은 수신한 명령패킷에 포함된 ID가 고유 ID와 일치하는 경우에만 송신될 수 있다.
본 발명의 실시예에 따른 복수의 슬레이브 기기(20)의 동기 방법을 이용하면, 마스터 기기(10)가 동시에 동작해야 하는 슬레이브 기기(20)에 동일한 가상 ID를 부여함으로써, 동일한 가상 ID를 갖는 슬레이브 기기(20)는 소그룹을 형성하며, 마스터 기기(10)로부터 명령패킷 수신 시, 동시에 명령패킷을 해석하고 실행할 수 있다.
도 4는 본 발명의 명령패킷 생성 시 참조되는 컨트롤 테이블을 도시하고 있다.
컨트롤 테이블은 마스터 기기(10)가 슬레이브 기기(20)를 제어하기 위한 명령패킷 생성 시 명령패킷에 포함되는 데이터를 참조하기 위한 것으로, 슬레이브 기기(20)의 상태와 구동에 관한 데이터로 구성되어 있다. 도 5내지 도 8은 슬레이브 기기(20)가 마스터 기기(10)에 의해 구동되는 슬레이브 기기(엑츄에이터)인 경우를 예로 설명한다.
컨트롤 테이블에 값들을 기록(Writing)함으로써 슬레이브 기기를 구동시킬 수 있으며, 컨트롤 테이블의 값을 판독(Reading)함으로써 슬레이브 기기의 상태를 파악할 수 있다.
컨트롤 테이블은 RAM영역과 EEPROM영역으로 구성되는데, RAM영역의 데이터는 전원이 인가될 때마다 초기값으로 설정되지만, EEPROM영역의 데이터는 설정된 값이 전원의 오프시에도 보존된다.
컨트롤 테이블은 번지(Address), 아이템(Item), 액세스방식(Access), 초기값(Initial Value)과 같은 항목들을 포함하고 있다.
여기에서, 번지는 값을 기록, 판독하게될 메모리의 번지를 의미한다. 그리고, 아이템은 각 번지에 지정된 데이터의 종류를 의미한다. 또한, 액세스방식은 해당 아이템에 대한 기록, 판독 가능여부를 표시한다. 아울러, 초기값은 EEPROM영역의 데이터인 경우 공장 디폴트값이고 RAM영역의 데이터인 경우에는 전원 인가 시 갖는 초기값을 의미한다.
이하에서는 각 번지에 지정된 데이터의 의미를 설명한다.
먼저, EEPROM영역이다.
0X00, 0X01 : 모델 번호
0X02 : 펌웨어 버전
0X03 : 슬레이브 기기 식별을 위한 고유번호(ID)이다. 링크된 각 슬레이브 기기에는 서로 다른 ID가 할당되어야 한다.
0X04 : 통신속도를 결정하는 보드율로서, 산출공식은 "Speed[BPS] = 2000000/[[0049] Address4 + 1]"이다.
예시적으로, 주요 보드율별 데이터 값은 다음 표 1과 같다. UART(Universal Asynchronous Receiver/Transmitter, 범용 비동기화 송수신기)의 경우 보드율 오차가 3% 이내 이면 통신에 지장이 없다.
Address4 설정 BPS 목표 BPS 오차
1 1000000.0 1000000.0 0.000%
3 500000.0 500000.0 0.000%
4 400000.0 400000.0 0.000%
7 250000.0 250000.0 0.000%
9 200000.0 200000.0 0.000%
16 117647.1 115200.0 -2.124%
34 57142.9 57600.0 0.794%
103 19230.8 19200.0 -0.0160%
207 9615.4 9600.0 -0.0160%
0X05 : 리턴 지연 시간 즉, 명령패킷 전송 후 상태패킷이 리턴되기까지 걸리는 지연 시간을 의미한다.
0X06, 0X07, 0X08, 0X09 : 동작 각도 제한. 슬레이브 기기의 동작이 허용되는 각도 구간을 설정한다.
0X0B : 최대 제한 온도. 슬레이브 기기의 동작 제한 온도를 의미한다.
0X0C, 0X0D : 최저/최고 제한 전압. 슬레이브 기기의 동작 전압 범위의 상한선과 하한선을 의미한다.
0X0E, 0X0F : 최대 토크. 슬레이브 기기의 최대 토크 출력값이다.
이 값을 '0'으로 설정할 경우 토크가 없는 프리런(Free Run) 상태가 된다.
최대 토크(Max Torque/Torque Limit)는 EEPROM영역(0X0E, 0X0F)과 RAM영역(0X22, 0X23)의 두 곳에 할당되어 있는데, 전원이 온될 때 EEPROM영역의 값이 RAM으로 복사된다.
슬레이브 기기의 토크는 RAM에 위치한 값(0X22, 0X23)에 의해 제한된다.
0X10 : 상태 리턴 레벨. 명령패킷이 전송된 후 슬레이브 기기가 상태패킷을 리턴해 줄지 여부를 결정하는 것으로, 아래 표 2와 같은 값을 갖는다. 한편, 브로드캐스트 ID(0XFE)의 명령패킷의 경우에는 상태 리턴 레벨값에 상관없이 상태패킷이 리턴되지 않는다.
Address16 Status Packet의 Return
0 모든 Instruction에 대해 Return하지 않음
1 READ_DATA 명령에 대해서만 Return함
2 모든 instruction에 대해 Return함
0X11 : 알람 LED. 에러가 발생했을 때 각 명령에 대한 해당 에러 비트가 1로 설정되어 있으면 LED가 깜박인다. 각 명령에 대한 해당 에러 대응표는 다음 표 3과 같다.
Bit 기능
Bit 7 0
Bit 6 1로 설정해 놓으면 Instruction Error 발생시 LED가 깜빡임
Bit 5 1로 설정해 놓으면 Overload Error 발생시 LED가 깜빡임
Bit 4 1로 설정해 놓으면 Check sum Error 발생시 LED가 깜빡임
Bit 3 1로 설정해 놓으면 Range Error 발생시 LED가 깜빡임
Bit 2 1로 설정해 놓으면 Overheating Error 발생시 LED가 깜빡임
Bit 1 1로 설정해 놓으면 Angle Limit Error 발생시 LED가 깜빡임
Bit 0 1로 설정해 놓으면 Input voltage Error 발생시 LED가 깜빡임
각 비트의 기능은 'OR'논리로 작동된다.
즉, 0X05로 설정되었을 경우 입력 전압 에러가 발생해도 LED는 깜박이며, 오버히팅 에러가 발생해도 LED는 깜박이게 된다.
에러가 발생한 후 정상상황으로 복귀하면 2초 후에 LED는 깜박임을 멈추게 된다.
0X12 : 알람 셧다운. 에러가 발생했을 때 각 명령에 대한 해당 에러 비트가 1로 설정되어 있을 경우 슬레이브 기기가 토크오프 즉, 동작중지된다.
각 명령에 대한 해당 에러 대응표는 다음 표 4와 같다.
Bit 기능
Bit 7 0
Bit 6 1로 설정해 놓으면 Instruction Error 발생시 Torque Off
Bit 5 1로 설정해 놓으면 Overload Error 발생시 Torque Off
Bit 4 1로 설정해 놓으면 Check sum Error 발생시 Torque Off
Bit 3 1로 설정해 놓으면 Range Error 발생시 Torque Off
Bit 2 1로 설정해 놓으면 Overheating Error 발생시 Torque Off
Bit 1 1로 설정해 놓으면 Angle Limit Error 발생시 Torque Off
Bit 0 1로 설정해 놓으면 Input voltage Error 발생시 Torque Off
각 비트의 기능은 'OR'논리로 작동된다.
그러나 알람 LED와는 달리 에러가 발생한 후 정상 상황으로 복귀해도 토크오프 상태는 계속된다.
따라서 셧다운 상태에서 벗어나려면 토크 인에이블[0X18]을 1로 재설정해야 한다.
0X14, 0X15, 0X16, 0X17 : 교정(Callibraion). 포텐셔미터 제품간의 편차를 보상하기 위한 데이터로서 사용자가 변경할 수 없다.
이하의 번지는 RAM영역이다.
0X18 : 토크 인에이블. 디지털 모드에서 슬레이브 기기에 전원을 인가하면 토크가 발생하지 않는 프리런 상태가 된다.
이때, 0X18번지에 1을 설정하면 토크 인에이블 상태로 된다.
0X19 : LED. 1로 설정되어 있으면 LED가 켜지고 0으로 설정되어 있으면 LED가 꺼진다.
0X1A, 0X1B, 0X1C, 0X1D : 컴플라이언스 마진(compliance margin) 및 슬로프. 마진과 슬로프를 설정하여 슬레이브 기기의 컴플라이언스를 조절한다. 컴플라이언스를 잘 활용하면 충격 흡수를 하는 효과를 낼 수 있다.
도 7의 위치 에러에 따른 출력 곡선에서 A, B, C, D의 길이가 컴플라이언스 값이다.
0X1E, 0X1F : 목표 위치. 슬레이브 기기가 이동하고자 하는 위치를 의미한다.
도 8에서 값을 최대값인 0X3ff로 설정하면 300°로 이동한다.
0X20, 0X21 : 이동 속도. 목표 위치로 이동하는 속도를 의미한다. 최대값인 0X3ff로 설정하면 70rpm의 속도로 움직인다.
참고로, 속도가 1로 설정될 경우가 최저속이며 0으로 설정된 경우는 현재 인가 전압상에서 낼 수 있는 최대속도로 움직이게 된다. 즉, 속도제어를 하지 않는 것이다.
0X22, 0X23 : 최대 토크. 슬레이브 기기의 최대 토크 출력값이다. 이 값을 '0'으로 설정할 경우 토크가 없는 프리런(Free Run) 상태가 된다. 최대 토크(Max Torque/Torque Limit)는 EEPROM영역(0X0E, 0X0F)과 RAM영역(0X22, 0X23)의 두 곳에 할당되어 있는데, 전원이 온될 때 EEPROM영역의 값이 RAM으로 복사된다. 슬레이브 기기의 토크는 RAM에 위치한 값(0X22, 0X23)에 의해 제한된다.
0X24, 0X25 : 현재 위치. 슬레이브 기기의 현재 위치
0X26, 0X27 : 현재 속도. 슬레이브 기기의 현재 속도
0X28, 0X29 : 현재 부하. 슬레이브 기기의 현재 구동하는 부하의 크기. 아래 표에서 비트 10은 부하가 걸려있는 방향이다.
Figure pat00001
0X2A : 현재 전압. 슬레이브 기기에 현재 인가되고 있는 전압. 이 값은 실제 전압의 10배이다. 즉, 10V 일 경우 100[0X64]이 읽혀진다.
0X2B : 현재 온도. 슬레이브 기기 내부의 섭씨 온도.
0X2C : 등록 명령. REG_WRITE명령에 의해 명령이 등록되어 있을 때 1로 설정되고, ACTION명령에 의해 등록된 명령이 수행 완료된 후에는 0으로 된다.
0X2E : 이동. 슬레이브 기기가 자체 동력에 의한 이동 상태일 때 1로 설정된다.
0X2F : 로크(Lock). 1로 설정되면 0X18~0X23번지의 값만 기록할 수 있고 나머지 영역은 기록이 금지된다. 한번 로크되면 전원오프로만 해제할 수 있다.
0X30, 0X31 : 펀치(Punch). 구동시에 모터에 공급되는 최소전류량. 초기값은 0X20이며 최고 0X3FF까지 설정할 수 있다.
이때, 각 데이터들은 유효한 범위가 정해져 있다. 이를 벗어난 기록(WRITE)명령이 전송될 경우 에러가 리턴된다. 도 9의 표에 사용자가 기록할 수 있는 데이터의 길이와 범위가 정리되어 있다. 16비트 데이터는 [L]과 [H], 두 바이트로 표시된다. 이 두 바이트는 하나의 명령패킷으로 동시에 기록되어야 한다.
본 발명에서 이용되는 명령패킷(INSTRUCTION PACKET)은 마스터 기기가 슬레이브 기기에게 동작을 지시하는 패킷으로서, 그 구조는 다음과 같다.
Figure pat00002
명령패킷을 이루는 각 바이트들의 의미는 다음과 같다.
0XFF 0XFF : 가장 선두에 위치한 두 개의 0XFF는 패킷의 시작을 알리는 신호이다.
ID : 명령패킷에 의해 제어될 슬레이브 기기의 ID이다. 슬레이브 기기의 ID는 0X00 ~ 0XFD 까지 254개가 가능하다.
브로드캐스팅(Broadcasting)ID : 연결되어 있는 슬레이브 기기 전체를 지정하는 ID이다. ID를 0XFE로 설정한 브로드캐스팅 ID 패킷은 연결된 모든 슬레이브 기기에 유효하다. 그러므로 브로드캐스팅 ID로 전달된 패킷의 경우는 상태패킷이 리턴되지 않는다.
LENGTH(길이) : 명령패킷의 길이로서 그 값은 "파라미터 개수[N] +2"이다.
INSTRUCTION(명령) : 슬레이브 기기에게 수행하라고 지시하는 명령이다.
PARAMETER 0...N : INSTRUCTION 외에 추가 정보가 더 필요할 경우 사용된다.
CHECK SUM(체크섬) : 체크섬의 계산 방법은 다음과 같다.
CHECK SUM = ~{ID + LENGTH + INSTRUCTION + PRAMETER 1 + ... + PRAMETER N}, 체크섬으로 계산된 값이 255보다 클 경우 결과값의 하위 바이트가 CHECKSUM이다. "~"는 Not Bit 연산자이다.
본 발명에서 이용되는 상태패킷(STATUS PACKET)은 슬레이브 기기(20)가 명령패킷을 전송받은 후 그 응답으로 마스터 기기(10)로 리턴하는 패킷이며, 그 구조는 다음과 같다.
Figure pat00003
상태패킷을 이루는 각 바이트의 의미는 다음과 같다.
0XFF 0XFF : 가장 선두에 위치한 두 개의 0XFF는 패킷의 시작을 알리는 신호이다.
ID : 상태패킷을 리턴하는 슬레이브 기기의 ID이다. 슬레이브 기기의 ID는 0X00 ~ 0XFD 까지 254개가 가능하다.
LENGTH(길이) : 상태패킷의 길이로서 그 값은 "파라미터 개수[N] +2"이다.
ERROR(에러) : 슬레이브 기기의 동작 중에 발생된 에러 상태를 나타내는 것으로 각 비트별 의미는 다음 표 5와 같다.
Bit 명칭 내용
Bit 7 0 -
Bit 6 Instruction
Error
정의되지 않은 Instruction이 전송된 경우, REG_WRITE 명령없이 ACTION 명령이 전달된 경우 1로 설정됨
Bit 5 Overload Error 지정된 최대 Torque로 현재의 하중을 제어할 수 없을 때 1로 설정됨
Bit 4 Checksum Error 전송된 Instruction packet의 Check Sum이 맞지 않을 때 1로 설정됨
Bit 3 Range Error 사용범위를 벗어난 명령일 경우 q로 설정됨
Bit 2 Overheating Error Dynamixel 내부 온도가 Control Table에 설정된 동작 온도 범위를 벗어났을 때 1로 설정됨
Bit 1 Angle Limit Error Goal Position이 CW Angle Limit ~ CCW Angle Limit 범의 값으로 Writing 되었을때 1로 설정됨
Bit 0 Input Voltage Error 인가된 전압이 Control Table에 설정된 동작 전압 범위를 벗어났을 경우 1로 설정됨
PARAMETER 0...N : ERROR 외에 추가 정보가 더 필요할 경우 사용된다.
CHECK SUM(체크섬) : 체크섬의 계산 방법은 다음과 같다.
CHECK SUM = ~{ID + LENGTH + ERROR + PRAMETER 1 + ... + PRAMETER N}, 체크섬으로 계산된 값이 255 보다 클 경우 결과값의 하위 바이트가 CHECKSUM이다. "~"는 Not Bit 연산자이다.
본 발명의 슬레이브 기기에서 사용되는 명령 세트에는 다음 표 6과 같은 종류가 있다. 뿐만 아니라, 이러한 명령어의 확장은 BULK_READ와 BULK_WRITE를 예시적으로 설명하고 있는 것뿐이고, 달리 정의하여 새로운 명령어를 더 추가할 수 있음은 물론이며, 그에 따른 파라미터도 새롭게 규정하여야 한다.
Instruction Fuction Value Number of Parameter
PING 수행 내용 없음. Dynamixel이 Status Packet을 Return받고자 할 경우 사용 0X01 0
READ_DATA Control Table의 값을 읽는 명령 0X02 2
WRITE_DATA Control Table에 값을 쓰는 명령 0X03 2 ~
REG_WRITE WRITE DATA와 내용은 유사하나, 대기상태로 있다가 ACTION명령이 도착하면 WRITE됨 0X04 2 ~
ACTION REG WRITE로 등록된 동작을 시작하라는 명령 0X05 0
RESET Dynamixel내의 Control Table값을 Factory Default Value로 바꿈 0X06 0
SYNC_WRITE 한 번에 여러 개의 모듈을 동시에 제어하고자 할 때 사용되는 명령 0X83 4 ~
BULK_READ 한 번에 여러 개의 모듈에 각기 다른 Address와 Length의 데이터를 READ하는 명령 0X92
BULK_WRITE 한 번에 여러 개의 모듈에 각기 다른 Address와 Length의 데이터를 WRITE하는 명령 0X93
1. WRITE_DATA
기능 : 슬레이브 기기 내부의 컨트롤 테이블에 데이터를 기록하는 명령이다.
길이 : 기록하고자 하는 데이터가 N개일 경우, 길이는 N + 3 이다.
명령 : 0X03
파라미터1 : 데이터를 기록하는 곳의 시작 번지
파라미터2 : 기록하고자 하는 첫번째 데이터
파라미터3 : 기록하고자 하는 두번째 데이터
파라미터N+1 : 기록하고자 하는 N번째 데이터
예컨대, 연결된 슬레이브 기기의 ID를 1로 설정하고 하는 경우, 컨트롤 테이블의 번지 3에 1을 기록하는 명령을 전송하면 된다.
이를 브로드캐스팅ID(0XFE)로 전송하는 경우의 명령패킷은 다음과 같다.
Figure pat00004
위와 같은 경우, 브로드캐스팅ID로 전송되었으므로 상태패킷은 리턴되지 않는다.
2. READ_DATA
기능 : 슬레이브 기기 내부의 컨트롤 테이블의 데이터를 판독하는 명령
길이 : 0X04
명령 : 0X02
파라미터1 : 판독하고자 하는 데이터의 시작 번지
파라미터2 : 판독하고자 하는 데이터의 길이
예컨대. ID가 1인 슬레이브 기기의 현재 내부 온도를 판독하고자 하는 경우, 컨트롤 테이블의 번지 0X2B 값에서 1바이트를 판독하면 된다. 이 경우의 명령패킷은 다음과 같다.
Figure pat00005
이에 대해 리턴되는 상태패킷은 다음과 같다
Figure pat00006
판독된 데이터 값은 0X20이며, 현재 슬레이브 기기의 내부 온도가 약 32℃[0X20]임을 알 수 있다.
3. REG_WRITE
기능 : REG_WRITE명령은 WRITE_DATA명령과 유사하나 명령이 수행되는 시점이 다르다. REG_WRITE 명령패킷이 도착하면 그 값은 버퍼에 저장되고 WRITE 동작은 대기 상태로 남아 있게 된다. 이 때, Registered Instruction[0X2C]이 1로 설정된다. 이후에 ACTION 명령패킷이 도착하면 비로소 등록되어 있던 REG_WRITE 명령이 실행된다.
길이 : N + 3
명령 : 0X04
파라미터1 : 데이터를 기록하고자 하는 곳의 시작 번지
파라미터2 : 기록하고자 하는 첫번째 데이터
파라미터3 : 기록하고자 하는 두번째 데이터
파라미터N+1 : 기록하고자 하는 N번째 데이터
4. ACTION
기능 : REG_WRITE명령으로 등록된 WRITE 동작을 수행하라는 명령
길이 : 0X02
명령 : 0X05
파라미터 : 없음
여기서, ACTION 명령은 다수의 슬레이브 기기를 동시에 정확하게 동작시켜야 하는 경우에 유용하다. 여러 개의 슬레이브 기기를 명령패킷으로 제어할 때, 맨 처음에 명령을 받는 슬레이브 기기와 맨 마지막에 명령을 전달받는 슬레이브 기기는 동작 시점에 약간의 시간차가 발생하게 된다. 그러나, REG_WRITE와 ACTION 명령을 사용하게 되면 이와 같은 문제가 해결된다. 한편, 두개 이상의 슬레이브 기기에 ACTION 명령을 전송할 경우 브로드캐스팅ID(0XFE)를 사용해야 하는데, 이 때 상태패킷은 리턴되지 않는다.
5. PING
기능 : PING 명령은 아무 것도 지시하지 않는다. 단지, 상태패킷을 받고자 할 때나 특정 ID를 갖는 슬레이브 기기의 존재를 확인하기 위해 사용된다.
길이 : 0X02
명령 : 0X01
파라미터 : 없음
예컨대, ID가 1인 슬레이브 기기의 상태패킷을 얻고 싶을 때 다음과 같이 PING 명령을 이용할 수 있다.
Figure pat00007
이에 대응하여 리턴되는 상태패킷은 다음과 같다.
Figure pat00008
브로드캐스팅ID가 지정되거나 상태 리턴 레벨[0X10]이 0이더라도, PING 명령에 대해서는 상태패킷이 리턴된다.
6. RESET
기능 : 슬레이브 기기의 컨트롤 테이블을 공장 디폴트 상태로 되돌려 놓는다.
길이 : 0X02
명령 : 0X06
파라미터 : 없음
예컨대, ID가 0인 슬레이브 기기를 리셋하고자 할 경우의 명령패킷은 다음과 같다.
Figure pat00009
위와 같은 RESET 명령에 대해 리턴되는 상태패킷은 다음과 같다.
Figure pat00010
여기서, RESET 명령 수행 이후에는 ID가 1로 바뀌게 된다.
7. SYNC_WRITE
기능 : 한 번의 명령패킷 전송으로 다수의 슬레이브 기기를 동시에 제어하고자 할 때 사용되는 명령이다. Sync Write 명령을 사용하면 여러 개의 명령을 한번에 전달하므로 다수의 슬레이브 기기를 제어할 때 통신 시간이 줄어든다. 단, 각각의 슬레이브 기기에 기록하고자 하는 컨트롤 테이블의 번지와 길이가 모두 동일해야 하며, ID는 브로드캐스팅ID로 전송되어야 한다.
ID : 0XFE
길이 : [L + 1] * N + 4, 여기서 L은 슬레이브 기기의 데이터 길이이며, N은 슬레이브 기기의 개수이다.
명령 : 0X83
파라미터1 : 데이터를 기록하고 하는 곳의 시작 번지
파라미터2 : 기록하고자 하는 데이터의 길이 [L]
파라미터3 : 첫번째 슬레이브 기기의 ID
파라미터4 : 첫번째 슬레이브 기기의 첫번째 데이터
파라미터5 : 첫번째 슬레이브 기기의 두번째 데이터
.....
파라미터L+3 : 첫번째 슬레이브 기기의 L번째 데이터
파라미터L+4 : 두번째 슬레이브 기기의 ID
파라미터L+5 : 두번째 슬레이브 기기의 첫번째 데이터
파라미터L+6 : 두번째 슬레이브 기기의 두번째 데이터
......
파라미터2L+4 : 두번째 슬레이브 기기의 L번째 데이터
......
예컨대, 4개의 슬레이브 기기에 대하여 각각 아래와 같이 위치와 속도를 정한다고 하자.
ID 0 인 슬레이브 기기 : 0X010위치로 속도 0X150 으로 이동
ID 1 인 슬레이브 기기 : 0X220위치로 속도 0X360 으로 이동
ID 2 인 슬레이브 기기 : 0X030위치로 속도 0X170 으로 이동
ID 3 인 슬레이브 기기 : 0X220위치로 속도 0X380 으로 이동
이러한 동작을 지시하기 위한 명령패킷은 다음과 같이 이루어진다.
0XFF 0XFF 0XFE 0X18 0X83 0X1E 0X04 0X00 0X10 0X00 0X50 0X01 0X01 0X20 0X02 0X60 0X03 0X02 0X30 0X00 0X70 0X01 0X03 0X20 0X02 0X80 0X03 0X12
이 때, 브로드캐스팅ID로 전송되기 때문에 상태패킷은 리턴되지 않는다.
8. BULK_READ
기능 : 한 번의 명령패킷 전송으로 다수의 슬레이브 기기에서 동시에 값을 읽어오고자 할 때 사용되는 명령이다.
여러 번의 READ 명령을 내리는 것에 비해 패킷의 길이가 줄어들고, 리턴 되는 상태패킷들 사이에 유휴 시간이 줄어들어 통신 시간을 절약할 수 있다.
ID : 0XFE
길이 : 3N+3
명령 : 0X92
파라미터1 : 0X00
파라미터2 : 첫번째 모듈에서 읽어오려는 데이터의 길이 [L]
파라미터3 : 첫번째 모듈의 ID
파라미터4 : 첫번째 모듈에서 읽어오고자 하는 데이터의 시작 번지
....
파라미터3N+2 : N번째 모듈에서 읽어오려는 데이터의 길이 [L]
파라미터3N+3 : N번째 모듈의 ID
파라미터3N+4 : N번째 모듈에서 읽어오고자 하는 데이터의 시작 번지
....
예컨대, 2개의 슬레이브 기기에 대하여 각각 아래와 같이 값을 읽어 온다고 치자.
ID 1 인 슬레이브 기기 : 목표 위치 값(0X1E 에서 2바이트)을 가져 옴.
ID 2 인 슬레이브 기기 : 현재 위치 값(0X24 에서 2바이트)을 가져 옴.
이러한 동작을 지시하기 위한 명령패킷은 다음과 같이 이루어진다.
0XFF 0XFF 0XFE 0X09 0X92 0X00 0X02 0X01 0X1E 0X02 0X02 0X24 0X1D
이 때 ID 2 인 모듈은 데이터 버스 상에 ID 1(바로 전 파라미터의 ID) 인 모듈의 상태패킷이 전송되는 것을 감시하다가 ID 1 인 모듈의 상태패킷이 전송 완료되는 즉시 자신의 상태패킷을 전송하게 된다.
리턴되는 상태패킷은 아래와 같이 된다.
0XFF 0XFF 0X01 0X04 0X00 0X00 0X80 0X7A 0XFF 0XFF 0X02 0X04 0X00 0X00 0X80 0X79
각각 모듈 ID 1 과 ID 2 에서 보낸 상태패킷이 연달아 들어오는 형식이 된다.
9. BULK_WRITE
기능 : 한 번의 명령패킷 전송으로 다수의 슬레이브 기기에서 동시에 값을 쓰고자 할 때 사용되는 명령이다.
여러 번의 WRITE 명령을 내리는 것에 비해 패킷의 길이가 줄어들고, 각 패킷들 사이에 유휴 시간이 줄어들어 통신 시간을 절약할 수 있다.
또한 하나의 모듈에 연속되지 않은 번지의 control table 에 값을 적기 위해 같은 ID 를 여러 번 지정할 수도 있다.
ID : 0XFE
길이 : 가변적
명령 : 0X93
파라미터1 : 0X00
파라미터2 : 첫번째 모듈에 기록하고자 하는 데이터의 길이 [L1]
파라미터3 : 첫번째 모듈의 ID
파라미터4 : 첫번째 모듈의 첫번째 데이터
파라미터5 : 첫번째 모듈의 두번째 데이터
...
파라미터L1+2*1+1 : 첫번째 슬레이브 기기의 L번째 데이터
파라미터L1+2*2+0 : 두번째 모듈에 기록하고자 하는 데이터의 길이 [L2]
파라미터L1+2*2+1 : 두번째 모듈의 ID
파라미터L1+2*2+2 : 두번째 모듈의 첫번째 데이터
...
파라미터L1+L2+…+LN+2*N+1 : N번째 슬레이브 기기의 L번째 데이터
...
예컨대, 2개의 슬레이브 기기에 대하여 각각 아래와 같이 값을 정한다고 하자.
ID 1 인 슬레이브 기기 : 0X220위치로 속도 0X360 으로 이동
ID 2 인 슬레이브 기기 : CW/CCW Compliance Slope 을 0X16 으로 변경
이러한 동작을 지시하기 위한 명령패킷은 다음과 같이 이루어진다.
0XFF 0XFF 0XFE 0X0D 0X93 0X00 0X04 0X01 0X20 0X02 0X60 0X03 0X02 0X02 0X10 0X10 0XB4
이때, 브로드캐스팅ID로 전송되기 때문에 상태패킷은 리턴되지 않는다.
이와 같이, 명령 세트는 계속해서 추가될 수 있으며, 각 명령 세트에 따라 파라미터 내용이 구분되어진다.
따라서, 명령 세트와 파라미터 정의에 따라 각 필드의 길이 제한에 따른 제약사항을 유연하게 확장하는 것이 가능하다.
예를 들어, BULK_READ_2 라는 명령 세트를 0XA0 로 만들고, 파라미터를 아래와 같이 지정한다고 가정해 본다.
ID : 0XFE
명령 : 0XA0
파라미터1 : 첫번째 슬레이브 기기의 ID 하위 바이트
파라미터2 : 첫번째 슬레이브 기기의 ID 상위 바이트
파라미터3 : 첫번째 슬레이브 기기에서 읽어오고자 하는 데이터의 시작 번지 하위 바이트
파라미터4 : 첫번째 슬레이브 기기에서 읽어오고자 하는 데이터의 시작 번지 상위 바이트
파라미터5 : 첫번째 슬레이브 기기에서 읽어오려는 데이터의 길이 하위 바이트
파라미터6 : 첫번째 슬레이브 기기에서 읽어오려는 데이터의 길이 상위 바이트
이러한 형태로 지정한다면, 슬레이브 기기의 ID 및 컨트롤 테이블의 번지, 데이터의 길이 등이 1바이트로 되어 있어 자연적으로 발생하는 제약인 최소 0 에서 최대 255까지밖에 지정 못하는 제약사항을 확장 시킬 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
10 : 마스터 기기
20 : 슬레이브 기기
30 : 통신버스

Claims (11)

  1. 마스터 기기와 멀티 드롭 방식으로 연결되며 각각 같거나 다른 가상 ID 및 서로 다른 고유 ID를 갖는 복수의 슬레이브 기기의 동기 방법에 있어서,
    상기 마스터 기기로부터 명령패킷을 수신하는 단계와,
    상기 명령패킷을 분석하여 상기 명령패킷에 포함된 ID가 상기 가상 ID 또는 상기 고유 ID와 일치하는지 판단하는 단계와,
    상기 명령패킷에 포함된 ID가 상기 가상 ID 또는 상기 고유 ID와 일치하는 경우, 상기 명령패킷을 실행하는 단계를 포함하는 것을 특징으로 하는, 복수의 슬레이브 기기의 동기 방법.
  2. 제1항에 있어서,
    상기 명령패킷에 포함된 ID가 상기 가상 ID 및 상기 고유 ID중 어느 하나 와도 일치하지 않는 경우, 상기 명령패킷을 폐기하는 단계를 더 포함하는 것을 특징으로 하는, 복수의 슬레이브 기기의 동기 방법.
  3. 제1항에 있어서,
    상기 명령패킷에 포함된 ID가 상기 고유 ID와 일치하는 경우, 상기 명령패킷에 대응하는 상태패킷을 상기 마스터 기기로 송신하는 단계를 더 포함하는 것을 특징으로 하는, 복수의 슬레이브 기기의 동기 방법.
  4. 제1항에 있어서,
    상기 명령패킷에 포함된 ID가 상기 가상 ID와 일치하는 경우, 상기 명령패킷이 고유 ID를 변경하는 명령패킷인지 판단하는 단계와,
    상기 명령패킷이 고유 ID를 변경하는 명령패킷인 경우, 상기 명령패킷을 폐기하는 단계를 더 포함하는 것을 특징으로 하는, 복수의 슬레이브 기기의 동기 방법.
  5. 제1항에 있어서,
    상기 명령패킷에 포함된 ID와 일치하는 고유 ID 또는 가상 ID를 갖는 복수의 슬레이브 기기는, 하나의 그룹이 되어, 동시에 상기 명령패킷을 실행하는 것을 특징으로 하는, 복수의 슬레이브 기기의 동기 방법.
  6. 제1항에 있어서,
    상기 가상 ID 또는 상기 고유 ID와 일치하는지 판단하는 단계는,
    상기 명령패킷에 포함된 ID가 상기 고유 ID와 일치하는지 판단하는 단계와,
    상기 명령패킷에 포함된 ID가 상기 고유 ID와 일치하지 않는 경우, 상기 명령패킷에 포함된 ID가 상기 가상 ID와 일치하는지 판단하는 단계를 포함하는 것을 특징으로 하는, 복수의 슬레이브 기기의 동기 방법.
  7. 제1항에 있어서,
    가상 ID가 기설정된 값을 가진 경우, 가상 ID를 무시하는 것을 특징으로 하는, 복수의 슬레이브 기기의 동기 방법.
  8. 제1항에 있어서,
    상기 명령패킷은, WRITE 명령패킷인 것을 특징으로 하는, 복수의 슬레이브 기기의 동기 방법.
  9. 제1항에 있어서,
    상기 명령패킷은, 상기 슬레이브 기기의 컨트롤 테이블을 통해 제어할 값의 어드레스를 체크한 후, 상기 슬레이브 기기의 고유 ID또는 가상 ID와 어드레스를 참조하여 생성되는 것을 특징으로 하는, 복수의 슬레이브 기기의 동기 방법.
  10. 제1항에 있어서,
    상기 슬레이브 기기는, 상기 마스터 기기에 의해 구동되는 엑츄에이터인 것을 특징으로 하는, 복수의 슬레이브 기기의 동기 방법.
  11. 제1항에 있어서,
    상기 명령패킷을 수신하는 단계 이전에,
    상기 마스터 기기로부터 가상 ID를 수신하여 저장하는 단계를 더 포함하는 것을 특징으로 하는, 복수의 슬레이브 기기의 동기 방법.
KR1020160158436A 2016-11-25 2016-11-25 슬레이브 기기의 동기 방법 KR20180059182A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160158436A KR20180059182A (ko) 2016-11-25 2016-11-25 슬레이브 기기의 동기 방법
PCT/KR2017/003197 WO2018097418A2 (ko) 2016-11-25 2017-03-24 슬레이브 기기의 동기 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160158436A KR20180059182A (ko) 2016-11-25 2016-11-25 슬레이브 기기의 동기 방법

Publications (1)

Publication Number Publication Date
KR20180059182A true KR20180059182A (ko) 2018-06-04

Family

ID=62195101

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160158436A KR20180059182A (ko) 2016-11-25 2016-11-25 슬레이브 기기의 동기 방법

Country Status (2)

Country Link
KR (1) KR20180059182A (ko)
WO (1) WO2018097418A2 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101107886B1 (ko) * 2009-10-30 2012-01-25 삼성엘이디 주식회사 항만 조명등 제어 장치
EP2681632B1 (de) * 2011-03-01 2017-11-08 AS-International Association e.V. Bussystem mit einem master und einer gruppe von slaves sowie kommunikationsverfahren zum austausch von daten in einem derartigen bussystem
EP2560348A3 (en) * 2011-08-19 2015-07-22 Schneider Electric Industries SAS Automatic addressing method of a plurality of slaves in a master slave network
US9836123B2 (en) * 2014-02-13 2017-12-05 Mide Technology Corporation Bussed haptic actuator system and method
KR101856452B1 (ko) * 2014-03-19 2018-05-10 (주)로보티즈 스마트 기기를 제어하는 로봇 및 로봇을 통한 스마트 기기 제어 시스템

Also Published As

Publication number Publication date
WO2018097418A2 (ko) 2018-05-31
WO2018097418A3 (ko) 2018-08-09

Similar Documents

Publication Publication Date Title
US7757105B2 (en) Electronic device system and controller
US20220078351A1 (en) Data transmission systems and data transmission methods
US20170246741A1 (en) Motor control system, robot system, and communication method for motor control system
CN104144094B (zh) 数字总线系统从属节点及其操作方法
US9106475B2 (en) Protocol conversion device and protocol conversion method
KR101300174B1 (ko) 네트워크형 엑츄에이터 모듈 제어방법
KR20180059182A (ko) 슬레이브 기기의 동기 방법
KR101877332B1 (ko) 다중 프로토콜을 지원하는 통신시스템에서의 패킷 충돌 방지 방법
JP2008167644A (ja) ネットワーク型アクチュエータモジュール
US6791294B1 (en) Servo control system
US9344375B2 (en) Method for transmitting data packets between two communication modules and communication module for transmitting data packets, as well as communication module for receiving data packets
CN112995505B (zh) 一种图像处理方法、装置及存储介质
US20120200719A1 (en) Camera apparatus
US10929333B2 (en) Serial peripheral interface master
Wijetunge et al. Design and implementation of a bluetooth based general purpose controlling module
US9671773B2 (en) Numerical control system
US20140159876A1 (en) Method and apparatus for setting up configuration of machine to machine communication
JP6956542B2 (ja) 駆動装置および駆動システム
US10530984B2 (en) Imaging apparatus, accessory device, storage medium, and imaging system
US20230292001A1 (en) Lens device, lens device embedded system, lens device embedded inspection device, and operation program
CN114390742A (zh) 照明控制方法、系统、设备及计算机可读取介质
CN106685310B (zh) 马达控制装置
EP1202464A1 (en) Method and device for managing a communication network
US10931981B2 (en) Video server, video server system, and command processing method
US20190258914A1 (en) Memory card

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application