KR101543148B1 - 직접 디지털 제어기의 하위 모듈 자동 검색 방법 - Google Patents

직접 디지털 제어기의 하위 모듈 자동 검색 방법 Download PDF

Info

Publication number
KR101543148B1
KR101543148B1 KR1020140015627A KR20140015627A KR101543148B1 KR 101543148 B1 KR101543148 B1 KR 101543148B1 KR 1020140015627 A KR1020140015627 A KR 1020140015627A KR 20140015627 A KR20140015627 A KR 20140015627A KR 101543148 B1 KR101543148 B1 KR 101543148B1
Authority
KR
South Korea
Prior art keywords
device scan
serial number
direct digital
sub
digital controller
Prior art date
Application number
KR1020140015627A
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 KR1020140015627A priority Critical patent/KR101543148B1/ko
Application granted granted Critical
Publication of KR101543148B1 publication Critical patent/KR101543148B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer

Abstract

본 발명의 일 실시예는 직접 디지털 제어기의 하위 모듈 자동 검색 방법에 관한 것으로, 해결하고자 하는 기술적 과제는 직접 디지털 제어기(Direct Digital Control 혹은 Master)의 하위 모듈(Sub module 혹은 Slave)인 I/O(Input/Output) 모듈들을 효율적으로 검색하고 등록하는 방법을 제공하는데 있다.
이를 위해 본 발명은 직접 디지털 제어기에 멀티드롭 방식으로 연결된 다수의 하위 모듈을 검색하는 방법에 있어서, 상기 직접 디지털 제어기가 상기 다수의 하위 모듈에 디바이스 스캔 명령을 송신하는 단계; 상기 직접 디지털 제어기가 상기 다수의 하위 모듈로부터 디바이스 스캔 응답을 수신한 경우, 상기 수신된 디바이스 스캔 응답이 정상 상태인지 또는 손상 상태인지 판단하는 단계; 상기 수신된 디바이스 스캔 응답이 정상 상태일 경우, 상기 직접 디지털 제어기가 상기 정상 상태의 디바이스 스캔 응답에 실린 하위 모듈의 데이터를 저장하는 동시에 고유 어드레스를 할당하는 단계; 및, 상기 수신된 디바이스 스캔 응답이 손상 상태일 경우, 상기 직접 디지털 제어기가 데이터 패킷 에러 카운트를 증가시키고, 정상 상태의 디바이스 스캔 응답이 수신될 때까지 디바이스 스캔 쿼리 조건을 수정하며 디바이스 서치 쿼리를 수행하는 단계를 포함하는 직접 디지털 제어기의 하위 모듈 자동 검색 방법을 개시한다.

Description

직접 디지털 제어기의 하위 모듈 자동 검색 방법{Automatic searching method of sub-module for direct digital control device}
본 발명의 일 실시예는 직접 디지털 제어기의 하위 모듈 자동 검색 방법에 관한 것으로, 더욱 상세하게는 DDC(Direct Digital Control 혹은 Master)의 하위 모듈(Sub module 혹은 Slave)인 I/O(Input/Output) 모듈들을 효율적으로 찾고 등록하는 방법에 관한 것이다.
DDC와 I/O 모듈은 RS485 통신 방식을 이용하며 멀티드롭(Multi-Drop) 방식으로 통신한다. DDC는 마스터(Master)로 동작하고, I/O 모듈들은 슬레이브(Slave)로 동작한다. 통신은 1:N 통신 방식으로 이루어진다. RS485는 데이터의 송신과 수신을 담당하는 회선을 하나 보유하고 있다. 한번에 오직 한 디바이스만이 회선을 점유할수 있다. 만약 한 디바이스가 회선을 점유하고 데이터를 송신할 때, 다른 디바이스가 데이터를 송신하게 되면 한회선에 서로 다른 데이터가 동시에 송신되기 때문에 데이터가 부분적으로 손상되거나 손실된다. 이를 방지하기 위해 각 슬레이브는 고유의 주소를 가지고 있어야 한다. 마스터는 이 고유주소를 이용해 특정한 한 디바이스에게만 명령을 송신하고, 그 디바이스는 명령에 대해 작동을 수행하며 마스터에게 응답한다. 일반적으로 RS485 방식의 고유주소 할당은 기구적인 스위치 할당 방식으로 구현되며 해당 기기 설치시 설치자가 설정하게 된다. 본 발명은 마스터에 멀티드롭 방식으로 연결된 I/O 모듈을 효율적으로 설치자의 간섭없이 자동으로 검색하고 고유 주소를 할당하는 알고리즘에 관한 것이다.
주지된 바와 같이, 멀티드롭 방식으로 연결된 하위 모듈들을 제어하기 위해서는 각 하위 모듈들은 고유의 주소를 가지고 있어야 한다. 멀티드롭 통식 방식에서 데이터의 송신과 수신은 한 회선을 통해 이루어지기 때문에 한번에 1:1 통신만을 할 수 있다. 만약 1:1 통신 중에 다른 하위 모듈이 통신 회선에 데이터를 보내게 되면 해당 데이터는 손상되어 쓸 수 없게 된다. 즉, 통신을 할때에는 한 개의 디바이스만이 선로를 점유할 수 있다. 다시 말해 마스터가 명령을 보내게 되면 여러 슬레이브 중 한 개의 슬레이브만이 회선을 점유할 수있다. 다른 슬레이브들은 송신부를 오프시켜야 한다. 따라서, 각각의 하위 모듈들은 미리 고유의 주소를 할당받아 마스터와 1:1 통신을 하게 된다. 즉, 마스터가 특정 어드레스의 슬레이브에 명령을 내리고 그에 해당하는 슬레이브는 응답을 하는 구조이다.
종래의 기술은 이 주소 할당을 기구적인 스위치를 이용해 미리 I/O 모듈의 주소를 할당해 놓고 이를 DDC나 프로그램에 등록하는 방법을 사용했다. 즉, I/O 모듈을 등록하기 위해서는 사람이 각각 I/O 모듈의 주소를 미리 설정하고 이를 DDC나 외부 PC 관리 프로그램을 통해 등록을 해줘야 한다. 모든 과정은 사람의 개입이 있어야 하며 자동으로 이루어지지 않았다.
미국공개특허공보 US 2006/0277309(2006년12월7일)
본 발명의 일 실시예는 DDC(Direct Digital Control 혹은 Master)의 하위 모듈(Sub module 혹은 Slave)인 I/O(Input/Output) 모듈들을 효율적으로 찾고 등록하는 방법을 제공한다.
즉, 본 발명은 사람의 개입이 있어야만 주소를 할당하고 통신을 할 수 있는 방법을 사람의 개입 없이 효율적인 검색 알고리즘으로 각 디바이스들을 자동으로 검색하고 주소를 등록하는 방법으로 기존 주소 할당 방식을 개선한다.
본 발명의 일 실시예는 직접 디지털 제어기에 멀티드롭 방식으로 연결된 다수의 하위 모듈을 검색하는 방법에 있어서, 상기 직접 디지털 제어기가 상기 다수의 하위 모듈에 디바이스 스캔 명령을 송신하는 단계; 상기 직접 디지털 제어기가 상기 다수의 하위 모듈로부터 디바이스 스캔 응답을 수신한 경우, 상기 수신된 디바이스 스캔 응답이 정상 상태인지 또는 손상 상태인지 판단하는 단계; 상기 수신된 디바이스 스캔 응답이 정상 상태일 경우, 상기 직접 디지털 제어기가 상기 정상 상태의 디바이스 스캔 응답에 실린 하위 모듈의 데이터를 저장하는 동시에 고유 어드레스를 할당하는 단계; 및, 상기 수신된 디바이스 스캔 응답이 손상 상태일 경우, 상기 직접 디지털 제어기가 데이터 패킷 에러 카운트를 증가시키고, 정상 상태의 디바이스 스캔 응답이 수신될 때까지 디바이스 서치 쿼리 조건을 수정하며 디바이스 서치 쿼리를 수행하는 단계를 포함한다.
상기 하위 모듈은 디바이스 타입, 팩토리 타입 및 시리얼 넘버를 포함하는 고유 ID를 갖고, 상기 디바이스 서치 쿼리 수행 단계는 상기 디바이스 타입 필드, 팩토리 타입 필드 또는 시리얼 넘버 필드의 사용 유무를 체크한다.
상기 직접 디지털 제어기가 상기 다수의 하위 모듈이 소비하는 전류를 측정하여, 상기 측정된 전류가 미리 정해진 기준 전류보다 클 때 상기 디바이스 스캔 명령을 송신하는 단계를 수행한다.
상기 수신된 디바이스 스캔 응답의 정상 상태는 상기 디바이스 스캔 명령 이후 하나의 하위 모듈이 응답하는 것이고, 상기 수신된 디바이스 스캔 응답의 손상 상태는 상기 디바이스 스캔 명령 이후 적어도 두개의 하위 모듈이 동시에 응답하는 것이다.
상기 하위 모듈은 상기 디바이스 스캔 명령을 수신한 상태에서, 상기 고유 어드레스를 할당받지 못한 경우, 상기 디바이스 타입 필드, 팩토리 타입 필드 또는 시리얼 넘버 필드를 검색하여 상기 직접 디지털 제어기에 응답한다.
상기 시리얼 넘버 필드 검색은 상기 디바이스 스캔 명령에 미리 포함된 시리얼 넘버 비교 방법 비트를 확인하여, 시리얼 넘버를 이용한 범위 비교를 할 것인지, 시리얼 넘버를 이용한 비트 마스크 비교를 할 것인지 선택한다.
상기 범위 비교는 상기 디바이스 스캔 명령에 미리 포함된 시리얼 넘버의 범위와 상기 하위 모듈의 시리얼 넘버를 비교하고, 상기 범위 내에 상기 하위 모듈의 시리얼 넘버가 있을 경우, 상기 직접 디지털 제어기에 응답한다.
상기 비트 마스크 비교는 상기 디바이스 스캔 명령에 미리 포함된 시리얼 넘버와 비트 마스크를 비트와이즈 앤드(bitwise AND)시켜 결과값을 얻고, 상기 결과값이 상기 하위 모듈의 시리얼 넘버와 같을 경우, 상기 직접 디지털 제어기에 응답한다.
본 발명의 일 실시예는 DDC(Direct Digital Control 혹은 Master)의 하위 모듈(Sub module 혹은 Slave)인 I/O(Input/Output) 모듈들을 효율적으로 찾고 등록하는 방법을 제공한다.
또한, 본 발명은 사람의 개입없이 마스터가 하위 디바이스를 자동으로 찾고 등록하도록 한다. 또한, 본 발명은 사람의 개입이 없기 때문에 정확성을 높일 수 있고 설치 시간을 단축시킬 수 있다. 더불어, 본 발명에서 제안한 알고리즘은 기존의 알고리즘을 개선한 방법으로써 디바이스 검색에서 많은 시간을 단축시킨다.
도 1은 본 발명의 일 실시예에 따른 직접 디지털 제어기의 하위 모듈 자동 검색 방법을 설명하기 위한 DDC와 I/O 모듈 통신 구성도이다.
도 2는 본 발명의 일 실시예에 따른 직접 디지털 제어기의 하위 모듈 자동 검색 방법을 설명하기 위한 마스터에 의한 전류 확인 플로우 차트이다.
도 3은 본 발명의 일 실시예에 따른 직접 디지털 제어기의 하위 모듈 자동 검색 방법을 설명하기 위한 마스터에 의한 디바이스 스캔 명령 플로우 차트이다.
도 4는 본 발명의 일 실시예에 따른 직접 디지털 제어기의 하위 모듈 자동 검색 방법을 설명하기 위한 마스터에 의한 디바이스 서치 쿼리를 도시한 플로우 차트이다.
도 5는 본 발명의 일 실시예에 따른 직접 디지털 제어기의 하위 모듈 자동 검색 방법을 설명하기 위한 슬레이브의 디바이스 스캔 응답 플로우 차트이다.
도 6은 본 발명의 일 실시예에 따른 직접 디지털 제어기의 하위 모듈 자동 검색 방법을 설명하기 위한 슬레이브의 디바이스 스캔 응답 플로우 차트이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.
본 발명의 실시예들은 당해 기술 분야에서 통상의 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위하여 제공되는 것이며, 하기 실시예는 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 하기 실시예에 한정되는 것은 아니다. 오히려, 이들 실시예는 본 개시를 더욱 충실하고 완전하게 하고, 당업자에게 본 발명의 사상을 완전하게 전달하기 위하여 제공되는 것이다.
본 명세서에서 사용된 용어는 특정 실시예를 설명하기 위하여 사용되며, 본 발명을 제한하기 위한 것이 아니다. 본 명세서에서 사용된 바와 같이, 단수 형태는 문맥상 다른 경우를 분명히 지적하는 것이 아니라면, 복수의 형태를 포함할 수 있다. 또한, 본 명세서에서 사용되는 경우 "포함한다(comprise)" 및/또는 "포함하는(comprising)"은 언급한 형상들, 숫자, 단계, 동작, 부재, 요소 및/또는 이들 그룹의 존재를 특정하는 것이며, 하나 이상의 다른 형상, 숫자, 동작, 부재, 요소 및 /또는 그룹들의 존재 또는 부가를 배제하는 것이 아니다.
도 1은 멀티드롭 통신 방식으로 구성된 DDC와 I/O 모듈의 구성도이다.
각 I/O 모듈(11)은 RS485 라인을 통해 마스터인 DDC(12)와 병렬로 연결된다. DDC(12)는 마스터로 동작하고, I/O 모듈(11)은 슬레이브로 동작한다. RS485 통신 방식은 병렬 통신이고 반이중(Half duplex) 통신이기 때문에 마스터는 한번에 하나의 슬레이브와만 통신을 할 수 있다. 따라서, 마스터는 각 모듈의 주소를 알고 있거나 할당할 수 있어야 한다. 종래의 주소 할당 방식은 각 슬레이브에 스위치나 점퍼핀을 이용하여 주소를 할당하였다. 이러한 방법은 사람이 조작하기 때문에 정확성을 떨어뜨리고 설치 시간을 증가시키는 문제가 있었다. 이에 따라, 본 발명은 마스터가 슬레이브를 자동 검색하고 주소를 할당하는 알고리즘을 발명하여 정확성을 높이고 설치 시간을 줄였다.
아래의 표 1은 본 발명에 이용된 UUID(Universal Unique ID)의 고유 ID 패킷 구조를 도시한 것이며, 디바이스 타입(DEVICE TYPE) 및 팩토리 타입(FACTORY TYPE)은 1 Bytes, 시리얼 넘버(SERIAL NUMBERS)는 4 Bytes일 수 있다.
[표 1]
Figure 112014013414697-pat00001
아래의 표 2a 내지 2c는 UUID의 데이터 구조를 도시한 것이다.
[표 2a]
Figure 112014013414697-pat00002
[표 2b]
Figure 112014013414697-pat00003
[표 2c]
Figure 112014013414697-pat00004
표 1, 표 2a 내지 표 2c를 참조하여, UUID (Universal Unique ID)를 갖는 각 I/O 모듈의 고유 ID에 대하여 설명한다.
각 I/O 모듈은 제품 코드(Product code)와 시리얼 넘버의 조합을 통해 UUID를 할당받게 된다. 마스터 모듈(슬레이브에 주소를 할당)은 각 슬레이브 모듈의 고유 ID를 이용해 디바이스를 검색한다. 즉, UUID는 각 슬레이브의 고유 ID이다. 각 슬레이브의 UUID는 유일하다.
표 3은 UUID의 형태와 그에 대한 설명이다.
[표 3]
Figure 112014013414697-pat00005
UUID의 형태에 대해 구체적으로 설명하면 아래와 같다.
DT = Device Type (모듈의 종류를 의미한다. 모듈의 종류에 따라 0부터 255까지 할당할 수 있다.)(0-255)
0 = Main Module
1 = DI Module
2 = DO Module (low voltage relay)
3 = DOH Module (high voltage relay)
4 = AI (current/voltage)
5 = AIT (temperature)
6 = AO Module
FT = Factory Type (생산 공장을 의미한다. 생산 지역에 따라 0부터 255까지할당 할 수 있다.)(0-255)
0 = S-1 Korea
1 = S-1 Singapore
SN = 시리얼 넘버이다. YYWWNNNNN의 형태를 갖는다.
YY = Year
WW = Week
NNNNN = Serial Number
가능한 숫자 범위 : 0 - 999999999
다음으로, 시리얼 넘버 변환 RSN(Reversed Serial Number)에 대해 설명한다.
시리얼 넘버는 공장에서 모듈 생산 시 각 모듈에 할당되는 연속된 번호이다. 이 때문에 비슷한 시기에 생산된 모듈은 비슷한 시리얼 넘버를 같게 된다. 기본적으로 뒤에 설명할 슬레이브 모듈 서치 알고리즘은 이 시리얼 넘버를 활용하여 모듈을 서치하게 된다. 그런데 시리얼 넘버가 서로 이웃하게 되면 모듈 서치 시 시간이 현저히 오래 걸리게 된다. 다시 말해, 총 9개의 시리얼 넘버 중 8개의 자리가 같고 한 개의 자리만 다른 모듈이 존재하게 되면 알고리즘 특성상 시간이 오래 걸리게 된다. 시리얼 넘버를 이용한 서치 알고리즘은 바이너리 스캔 알고리즘을 이용하게 되는데 그 종류는 두가지이다. 하나는 범위를 통한 바이너리 스캔과 다른 하나는 비트 단위 바이너리 스캔이다. 따라서, RSN을 통해 서로 유사한 시리얼 넘버를 차이가 큰 숫자로 변환하게 된다. 예를 들어 시리얼 넘버가 DEF2(16진수)인 모듈과 DEF3(16진수) 있다고 가정하자. 두개의 모듈이 갖는 시리얼 넘버가 거의 같기 때문에 바이너리를 이용한 모듈 서치 시간이 오래 걸리게 된다. 이를 비트와이즈낫( Bitwise Not)을 취하게 되면 각각 4F7B와 CF7B가 된다. 이렇게 되면 두 시리얼 넘버에 차이가 커지게 되기 때문에 모듈 서치 시 시간이 대폭 줄어 들게 된다
도 2는 마스터에 의한 전류 확인 플로우 차트이고, 도 3은 마스터에 의한 디바이스 스캔 명령 플로우 차트이며, 도 4는 마스터에 의한 디바이스 서치 쿼리이고, 도 5 및 도 6은 슬레이브의 디바이스 스캔 응답 플로우 차트이다.
먼저 시스템이 시작되면 마스터 모듈은 도 2와 같이 하위에 연결된 슬레이브(I/O 모듈)들의 총 소비전류를 측정하여 하위에 몇 개의 슬레이브가 있는지 확인한다(S21). 만약 한 개 이상의 슬레이브가 소비하는 전류(기준 전류)보다 측정한 전류(센싱 전류)값이 높을 경우(S22), 디바이스 스캔 과정을 시작하게 된다(S23). 측정된 전류가 없으면 디바이스 스캔을 시작하지 않는다.
다음은 마스터에서 디바이스 스캔 명령 송신 후부터 어드레스 할당까지의 플로우 차트 설명이다. 먼저 디바이스 스캔 명령에 대해 설명하면, 디바이스 스캔에는 명령과 응답이 있다. 항상 디바이스 스캔 명령은 마스터가 슬레이브에 송신하며, 디바이스 스캔 응답은 슬레이브가 마스터에 응답한다. 디바이스 스캔 명령에는 응답에 대한 조건이 존재하며, 슬레이브들은 이 조건들을 확인한 후 자신의 조건과 맞으면 응답을 하게 되고 맞지 않으면 응답하지 않는다.
도 3은 마스터에서 디바이스 스캔 명령을 내린 이후 슬레이브들로부터 응답이 있을 경우와 없을 경우의 과정을 나타낸 순서도이다.
도 3에 도시된 바와 같이, 마스터측에서 모든 하위 슬레이브 디바이스에게 응답하라는 명령을 보낸다(S31). 이때 디바이스 스캔 명령의 조건은 모든 슬레이브 디바이스이다. 그러므로 본 디바이스 스캔 명령을 받은 슬레이브 디바이스는 모두 마스터에 응답을 해야한다. 모든 디바이스 스캔 명령 전송 후 만약 한 개 이상의 슬레이브 디바이스가 있으면 그 한 개 이상의 슬레이브 디바이스들은 응답을 하게된다(S32). 만약 슬레이브 디바이스가 없을 경우 당연히 응답이 없다(S32). 일정 시간동안 응답이 없으면 마스터는 내부의 디바이스 스캔 카운터(Device Scan counter)를 증가시키고(S33), 다시 모든 슬레이브 디바이스에 디바이스 스캔 명령을 내린다. 정해진 디바이스 스캔 카운터(Device Scan counter)의 임계치만큼 디바이스 스캔 명령을 하달하였음에도(S34), 슬레이브로부터 응답이 없으면 마스터는 슬레이브 디바이스가 없다고 판단하고 디바이스 스캔 명령을 중지한다.
다음은 디바이스 스캔 응답이 있을 경우를 설명한다(S35). 디바이스 스캔 응답이 있을 경우(S35)는 두가지가 존재하게 된다. 먼저 하나는 디바이스 스캔 응답이 손상되지 않았을 경우이다. 이때 마스터는 디바이스 스캔 응답에 실린 슬레이브 데이터들을 저장하고 응답한 슬레이브에 어드레스 할당 명령을 통해 고유 어드레스를 할당한다(S36). 다른 경우는 손상된 데이터가 들어 왔을 경우이다(S37). 디바이스 스캔 명령 이후 손상된 데이터가 수신됐다는 것은 두개 이상의 슬레이브가 응답을 했기 때문이다. 마스터와 슬레이브들은 RS485 방식의 멀티드롭 방식으로 병렬로 연결되어 있기 때문에 한 개 이상의 디바이스가 데이터를 송신하게 되면 랜덤하게 데이터가 손상되게 된다. 손상된 데이터가 들어 왔다는 것은 한 개 이상의 슬레이브 디바이스가 존재한다는 것을 의미한다. 손상된 데이터가 들어 오면 데이터 패킷 에러 카운터를 올리게 된다(S37). 이후 디바이스 서치 과정을 거치게 되고(S38), 이후에도(S39) 손상된 데이터가 들어오면 데이터 패킷 에러 카운터를 올리고 다시 디바이스 서치 과정을 거친다. 디바이스 서치 과정은 정상적인 데이터가 수신될때까지 디바이스 서치 쿼리 조건을 수정하며 연속해서 수행한다.
디바이스 서치 쿼리 과정은, 도 4와 같이, DT, FT, SN 필드에 사용 유무를 체크하고, 시리얼 넘버를 이용한 범위 검색을 할 것인지, 비트 마스크를 이용한 바이너리 트리 스캔을 할 것인지를 결정한다. 또한 각 DT, FT, SN 비교에 사용될 데이터 값을 결정한다(S41). 이후 디바이스 스캔 명령을 슬레이브로 전송한다(S42). 각 개별 조건은 하기할 표 4를 기준으로 작성되며 디바이스 스캔 응답 패킷 구조는 표 5와 같다. 연속된 디바이스 서치 과정을 거친 후 제대로 된 데이터가 들어오면 마스터는 슬레이브에 어드레스 할당 명령을 통해 고유 주소를 할당한다. 만약 제대로 들어온 데이터가 없으면 앞에 설명한 바와 같이 조건 및 데이터를 수정해가며 정상적인 데이터가 들어올 때까지 디바이스 서치 과정을 거치게 된다.
여기서, 아래의 표 4는 마스터의 디바이스 스캔 명령 패킷 구조를 도시한 것이다.
[표 4]
Figure 112014013414697-pat00006
아래의 표 5는 슬레이브의 디바이스 스캔 응답 패킷 구조를 도시한 것이다.
[표 5]
Figure 112014013414697-pat00007

다음은 도 5와 6의 디바이스 서치 플로우에 대한 설명이다. 디바이스 스캔 응답은 마스터의 디바이스 스캔 명령에 대한 응답이며 스캔 명령의 조건에 따라 각 디바이스는 응답을 할지 말지를 결정하게된다. 도 5와 도 6은 이에 대한 플로차트이다.
우선, 디바이스 스캔 명령의 서치 조건은 세가지 조건으로 구성된다. 첫번째는 디바이스 타입(Device Type)이다. 디바이스 타입(Device Type)은 각 모듈의 종류를 의미하며 그 정의는 표 2a에 정의 되어 있다. 두번째는 팩토리 타입(Factory Type)이다. 팩토리 타입(Factory type)은 실제 모듈이 생산된 공장을 의미하며, 이 정의는 표 2b에 정의되어 있다. 마지막은 시리얼 넘버(Serial Number)이다. 시리얼 넘버(Serial Number)는 생산된 해, 주차, 연속된 번호로 구성되며 개별제품 마다 할당되며, 이 정의는 표 2c에 정의되어 있다.
마스터는 표 4와 같이 구성된 디바이스 스캔 명령을 슬레이브에 하달하게 된다. 각 조건은 옵션(option) 바이트를 통해 활성화 및/또는 비활성화할 수 있다. 특별히 시리얼 넘버(Serial Number)의 비교는 범위 비교와 비트 마스크(Bitmask)를 이용한 바이너리 스캔 기능 추가로 존재한다.
응답에 대한 슬레이브의 응답 플로우는 도 5 및 도 6과 같다.
슬레이브는 디바이스 스캔 명령을 수신한다(S51). 자신이 고유의 어드레스로 할당되어 있는지 확인한다(S52). 할당되어 있다면 명령에 응답을 하지 않는다(S53). 할당 되어 있지 않다면 명령 패킷의 분석을 시작한다. 먼저 디바이스(Device Type) 필드의 비교 활성화 비트를 확인한다(S54). 활성화되어 있다면 디바이스(Device Type)의 범위를 확인한다(S55). 비활성화 되어 있으면 다음 단계로 진행한다. 디바이스 타입(Device Type)의 범위를 확인한다는 것은 시작 바이트와 끝 바이트 사이에 자신이 포함되는지 확인한다는 것이다. 포함되지 않는다면 분석을 중지하고 응답을 하지 않는다(S53). 만약 포함되어 있다면 다음으로 팩토리 타입(Factory Type) 필드를 확인한다(S56). 팩토리 타입(Factory type) 비교 비트 활성화를 체크 확인한다(S56). 만약 활성화되어 있다면 디바이스 타입(Device Type)과 마찬가지로 팩토리(Factory Type)의 범위에 자신이 포함되는지 확인한다(S57). 포함되지 않는다면 분석을 중지하고 응답을 하지 않는다(S53).
다음으로, 시리얼 넘버(Serial Number) 비교 단계를 설명한다. 먼저 시리얼 넘버(Serial Number) 비교 비트가 활성화되어 있는지 확인한다(S61). 활성화되어 있다면 시리얼 넘버(Serial Number) 비교 방법 비트를 확인한다(S62). 해당 비트가 "1"이면 시리얼 넘버(Serial Number)를 이용한 바이너리 트리 스캔 방법으로 슬레이브를 검색한다(S63). 해당 비트가 "0"이면 시리얼 넘버(Serial Number)의 범위를 이용한 비교를 수행한다(S64). 범위 비교 방법은 표 4의 디바이스 스캔 명령 패킷중에서 SN_P1과 SN_P2의 범위와 자신의 시리얼 넘버를 비교하는 방법이다. 만약 자신의 시리얼 넘버가 범위 내에 있으면 표 5의 형식으로 디바이스 스캔 응답을 마스터로 송신한다(S65 및 S66). 만약 범위 밖에 있으면 응답을 하지 않고 분석을 중지한다.
다음으로, 바이너리 트리 스캔 방법을 이용한 슬레이브 검색 방법을 설명한다. 시리얼 넘버(Serial Number) 비교 방법은 비트가 "1"이면 바이너리 트리 스캔을 시작한다. 표 4의 명령 패킷중 SN_P1이 비교할 시리얼 넘버(Serial Number)가 되며 SN_P2가 비트 마스크(Bitmask)가 된다. 바이너리 트리 스캔을 시작하게 되면 슬레이브는 수신된 비트 마스크(Bitmask)를 자신의 시리얼 넘버(Serial number)와 비트와이즈 앤드(Bitwise AND)를 시키게 된다. 그리고 그 결과값을 수신한 시리얼 넘버(Serial number)와 비교한다. 만약 결과값이 같게 되면 표 5의 형식으로 자신의 정보가 담긴 패킷을 마스터에 송신한다. 그 정보는 자신의 제품 정보와 시리얼 넘버이다.
다음은 바이너리 트리를 이용한 디바이스 스캔의 예를 설명한다.
아래에 표기된 모든 숫자는 이진수이다. 예를 들어 4개의 하위 디바이스가 한 개의 마스터와 연결되어 있을 경우, 디바이스를 서치하는 과정이다.
각 디바이스의 시리얼 넘버는 1)1011, 2)1010, 3)0011 및 4)0111 이다. 바이너리 트리 서치를 통해서 모든 디바이스들을 찾고 어드레스를 할당한다. 아래는 단계별로 디바이스를 찾아가는 과정을 세분화하여 기술하였고, 도 5는 바이너리 트리 스캔 과정을 도식화한 것이다.
1. 0000(Bit Mask)와 0000(시리얼 넘버) 송신
2. 각 디바이스들은 자신의 시리얼 넘버와 비트 마스크(Bit Mask)를 비트와이즈 앤드(Bitwise AND) 시킴
3. 결과값을 송신된 시리얼 넘버(SN_P1)와 비교
4. 이 경우 결과값은 항상 0000 이므로 모든 디바이스가 응답 함.
5. 그러나 모든 디바이스들은 한회선을 통해 통신하기 때문에 동시에 응답시 데이터가 손상됨(Data Collision)
6. 그러나 마스터는 손상된 데이터를 수신함으로써 하위에 한 개 이상의 디바이스가 있다는 것을 인지하고, 패킷 에러 카운터를 증가시킴
7. 바이너리 트리 중 하위 트리로 디바이스를 스캔함
8. 첫번째 트리 검색 : 0001(Bit Mask) 0001(시리얼 넘버) 송신
9. 각 디바이스들은 비트 마스크(Bit Mask)와 자신의 시리얼 넘버를 비트와이즈 앤드(Bitwise And)를 취한 후 결과값를 수신한 시리얼넘버 0001과 비교후 같으면 응답 다르면 무응답
a. 자신의 디바이스 시리얼 넘버(1011)
b. 비트마스크(Bit Mask)(0001)
c. 송신된 시리얼 넘버(0001)
d. 비트마스크(Bit Mask)(0001) AND 자신의 디바이스 시리얼 넘버 (1011) = 0001
e. 송신된 시리얼 넘버(0001)와 AND의 결과 값 비교 => 같음 => 응답
10. 예를 들어 오른쪽에 4개의 디바이스가 있을 경우 3개의 디바이스 응답
11. 그러나 3개의 디바이스가 동시에 응답하기 때문에 패킷이 손상됨 (Data collision)
12. LSB가 1인 디바이스가 한 개이상 있다는 것을 확인하고, 패킷 에러 카운터를 증가.
13. 0011(Bit Mask) 0011(시리얼 넘버) 송신
14. 1), 2), 3) 응답, 데이터 충돌(Data collision) 발생
15. 0111(Bit Mask) 0111(시리얼 넘버) 송신
16. 4)번만 응답
17. 4)에 1번 어드레스 할당
18. 0111(Bit Mask) 0011(시리얼 넘버) 송신
19. 1) 과 3)번 응답
20. 1111(Bit Mask) 1011(시리얼 넘버) 송신
21. 1)번 응답
22. 1)번에 2번 어드레스 할당
23. 1111(Bit Mask) 0011(시리얼 넘버) 송신
24. 3)번 응답
25. 3)번에 3번 어드레스 할당
이와 같이 하여 본 발명은 사람의 개입없이 마스터가 하위 디바이스를 자동으로 찾고 등록할 수 있다. 또한, 사람의 개입이 없기 때문에 정확성을 높일 수 있고 설치 시간을 단축시킬 수 있다. 더불어, 본 발명에서 제안한 알고리즘은 기존의 알고리즘을 개선한 방법으로써 디바이스 검색에서 많은 시간을 단축시킨다.
이상에서 설명한 것은 본 발명에 따른 직접 디지털 제어기의 하위 모듈 자동 검색 방법을 실시하기 위한 하나의 실시예에 불과한 것으로서, 본 발명은 상기한 실시예에 한정되지 않고, 이하의 특허청구범위에서 청구하는 바와 같이 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변경 실시가 가능한 범위까지 본 발명의 기술적 정신이 있다고 할 것이다.
11; I/O 모듈 12; DDC(Direct Digital Control)

Claims (8)

  1. 직접 디지털 제어기에 멀티드롭 방식으로 연결된 다수의 하위 모듈을 검색하는 방법에 있어서,
    상기 직접 디지털 제어기가 상기 다수의 하위 모듈에 디바이스 스캔 명령을 송신하는 단계;
    상기 직접 디지털 제어기가 상기 다수의 하위 모듈로부터 디바이스 스캔 응답을 수신한 경우, 상기 수신된 디바이스 스캔 응답이 정상 상태인지 또는 손상 상태인지 판단하는 단계;
    상기 수신된 디바이스 스캔 응답이 정상 상태일 경우, 상기 직접 디지털 제어기가 상기 정상 상태의 디바이스 스캔 응답에 실린 하위 모듈의 데이터를 저장하는 동시에 고유 어드레스를 할당하는 단계; 및,
    상기 수신된 디바이스 스캔 응답이 손상 상태일 경우, 상기 직접 디지털 제어기가 데이터 패킷 에러 카운트를 증가시키고, 정상 상태의 디바이스 스캔 응답이 수신될 때까지 디바이스 서치 쿼리 조건을 수정하며 디바이스 서치 쿼리를 수행하는 단계를 포함함을 특징으로 하는 직접 디지털 제어기의 하위 모듈 자동 검색 방법.
  2. 제 1 항에 있어서,
    상기 하위 모듈은 디바이스 타입, 팩토리 타입 및 시리얼 넘버를 포함하는 고유 ID를 갖고,
    상기 디바이스 서치 쿼리 수행 단계는 상기 디바이스 타입 필드, 팩토리 타입 필드 또는 시리얼 넘버 필드의 사용 유무를 체크함을 특징으로 하는 직접 디지털 제어기의 하위 모듈 자동 검색 방법.
  3. 제 1 항에 있어서,
    상기 직접 디지털 제어기가 상기 다수의 하위 모듈이 소비하는 전류를 측정하여, 상기 측정된 전류가 미리 정해진 기준 전류보다 클 때 상기 디바이스 스캔 명령을 송신하는 단계를 수행함을 특징으로 하는 직접 디지털 제어기의 하위 모듈 자동 검색 방법.
  4. 제 1 항에 있어서,
    상기 수신된 디바이스 스캔 응답의 정상 상태는 상기 디바이스 스캔 명령 이후 하나의 하위 모듈이 응답하는 것이고,
    상기 수신된 디바이스 스캔 응답의 손상 상태는 상기 디바이스 스캔 명령 이후 적어도 두개의 하위 모듈이 동시에 응답하는 것임을 특징으로 하는 직접 디지털 제어기의 하위 모듈 자동 검색 방법.
  5. 제 2 항에 있어서,
    상기 하위 모듈은 상기 디바이스 스캔 명령을 수신한 상태에서, 상기 고유 어드레스를 할당받지 못한 경우,
    상기 디바이스 타입 필드, 팩토리 타입 필드 또는 시리얼 넘버 필드를 검색하여 상기 직접 디지털 제어기에 응답함을 특징으로 하는 직접 디지털 제어기의 하위 모듈 자동 검색 방법.
  6. 제 5 항에 있어서,
    상기 시리얼 넘버 필드 검색은 상기 디바이스 스캔 명령에 미리 포함된 시리얼 넘버 비교 방법 비트를 확인하여, 시리얼 넘버를 이용한 범위 비교를 할 것인지, 시리얼 넘버를 이용한 비트 마스크 비교를 할 것인지 선택함을 특징으로 하는 직접 디지털 제어기의 하위 모듈 자동 검색 방법.
  7. 제 6 항에 있어서,
    상기 범위 비교는 상기 디바이스 스캔 명령에 미리 포함된 시리얼 넘버의 범위와 상기 하위 모듈의 시리얼 넘버를 비교하고, 상기 범위 내에 상기 하위 모듈의 시리얼 넘버가 있을 경우, 상기 직접 디지털 제어기에 응답함을 특징으로 하는 직접 디지털 제어기의 하위 모듈 자동 검색 방법.
  8. 제 6 항에 있어서,
    상기 비트 마스크 비교는 상기 디바이스 스캔 명령에 미리 포함된 시리얼 넘버와 비트 마스크를 비트와이즈 앤드(bitwise AND)시켜 결과값을 얻고, 상기 결과값이 상기 하위 모듈의 시리얼 넘버와 같을 경우, 상기 직접 디지털 제어기에 응답함을 특징으로 하는 직접 디지털 제어기의 하위 모듈 자동 검색 방법.
KR1020140015627A 2014-02-11 2014-02-11 직접 디지털 제어기의 하위 모듈 자동 검색 방법 KR101543148B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140015627A KR101543148B1 (ko) 2014-02-11 2014-02-11 직접 디지털 제어기의 하위 모듈 자동 검색 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140015627A KR101543148B1 (ko) 2014-02-11 2014-02-11 직접 디지털 제어기의 하위 모듈 자동 검색 방법

Publications (1)

Publication Number Publication Date
KR101543148B1 true KR101543148B1 (ko) 2015-08-07

Family

ID=53886710

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140015627A KR101543148B1 (ko) 2014-02-11 2014-02-11 직접 디지털 제어기의 하위 모듈 자동 검색 방법

Country Status (1)

Country Link
KR (1) KR101543148B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170060474A (ko) * 2015-11-24 2017-06-01 세메스 주식회사 모듈형 제어기 및 상기 모듈형 제어기의 제어 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170060474A (ko) * 2015-11-24 2017-06-01 세메스 주식회사 모듈형 제어기 및 상기 모듈형 제어기의 제어 방법
KR102264235B1 (ko) 2015-11-24 2021-06-14 주식회사 아이에스시 모듈형 제어기 및 상기 모듈형 제어기의 제어 방법

Similar Documents

Publication Publication Date Title
US11723836B2 (en) System and method for dynamic device discovery and address assignment
US11428430B2 (en) Air conditioning system having multiple outdoor units and multiple indoor units, method and device for operating air conditioning system
CN108737590B (zh) 一种地址自动分配的方法、系统、Modbus主站、Modbus从站
CN107133188B (zh) 菊花链连接的主从通信分配地址方法、系统和从机、主机
CN111147619B (zh) 本地实现rs485从机设备自动分配地址的方法和系统
US6850992B2 (en) Address assignment method for at least one bus device that has recently been connected to a bus system
CN107925618B (zh) 用于有向无环图网络配置的节点和方法
US20130290947A1 (en) Termimal and method for updating firmware of baseboard management controller
CN101447894B (zh) 识别分节点物理地址、网络配置及维护方法、网络系统
JP5233770B2 (ja) ゲートウェイ装置、その制御方法、システム、制御方法を実行させるためのプログラム及びそれを記録した記録媒体
US11711881B2 (en) Method of quickly setting DMX address of light fixture
US20180007611A1 (en) Relay device and air conditioning system
US20210167990A1 (en) Relay device and multi-split control system
KR101543148B1 (ko) 직접 디지털 제어기의 하위 모듈 자동 검색 방법
CN110995889A (zh) 地址分配系统和方法
KR100916665B1 (ko) 공기 조화기 및 그 제어방법
CN210518417U (zh) 地址分配系统
KR20050103828A (ko) 멀티 에어컨의 통신을 위한 자동 주소 설정 방법
CN107172140B (zh) 一种多路控制的zigbee设备数据处理方法
US10795848B2 (en) Dual way communication method, system, and master device thereof
KR101917616B1 (ko) 로라 네트워크를 활용한 사물 제어시스템
US9253858B2 (en) Lighting network control apparatus and method
CN112703823B (zh) 照明装置的快速调试
EP4203623A1 (en) Lighting control
CN115334041A (zh) 一种主从站通讯设备自动分配地址的方法、主站、从站和系统

Legal Events

Date Code Title Description
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190725

Year of fee payment: 5