KR20180061885A - 폴링 시간을 줄이는 모드 버스의 통신을 제공하는 장치, 시스템 및 방법 - Google Patents
폴링 시간을 줄이는 모드 버스의 통신을 제공하는 장치, 시스템 및 방법 Download PDFInfo
- Publication number
- KR20180061885A KR20180061885A KR1020160161559A KR20160161559A KR20180061885A KR 20180061885 A KR20180061885 A KR 20180061885A KR 1020160161559 A KR1020160161559 A KR 1020160161559A KR 20160161559 A KR20160161559 A KR 20160161559A KR 20180061885 A KR20180061885 A KR 20180061885A
- Authority
- KR
- South Korea
- Prior art keywords
- polling
- master
- sub
- response
- slave
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/403—Bus networks with centralised control, e.g. polling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40228—Modbus
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
Abstract
마스터 장치와 슬레이브 장비들의 modbus 통신에서 서브 마스터 장치를 추가하여 마스터 장치의 폴링 시간을 줄이는 장치, 시스템 및 방법이 개시된다. 일 측면에 따른, modbus 통신 기반의 폴링을 이용하여 슬레이브 장비들의 데이터를 관리하는 장치는, modbus 통신에 의해 연결된 슬레이브 장비들로 서브 폴링을 요청하는 서브 폴링 요청부; 각각의 슬레이브 장비들로부터 서브 폴링의 요청에 대한 처리 결과의 응답을 수신하는 서브 폴링 응답부; 서브 폴링과 독립된 마스터 폴링 요청을 수신하는 마스터 폴링 요청 수신부; 및 수신된 마스터 폴링 요청에 대해 기 저장된 최근의 서브 폴링의 응답을 마스터 폴링의 응답으로 전송하는 마스터 폴링 응답부를 포함한다.
Description
본 발명은 모드 버스의 통신 기술로서, 보다 구체적으로, 서브 마스터가 모드 버스의 통신을 이용하여 슬레이브의 정보를 폴링하여 수집하고, 마스터의 폴링 요청에 대해 슬레이브로부터 수집된 슬레이브의 정보를 즉시 응답하는 장치, 시스템 및 방법에 관한 것이다.
modbus는 시리얼 통신의 프로토콜로서, 마스터 및 슬레이브의 구조에서, 마스터가 슬레이브에 대해 폴링을 통해 질의를 전송하고 응답을 받는 것이다.
도 1을 참조하면, 종래 modbus 시스템(100)은 제어 장치에 해당되는 마스터 장치(110) 및 마스터 장치(110)가 modbus를 통해 제어하는 대상인 n(1<=n<=256)개의 슬레이브 장비(130)들을 포함하여 구성된다. 여기서, 슬레이브 장비(130)의 개수는 8bit로 정의되어 최대 256개인 것으로 가정한다.
예를 들어, 마스터 장치(110)는 제어 장치로서 센서 장비에 해당되는 슬레이브 장비(130)들을 대상으로 폴링을 요청하여 슬레이브 장비(130) #1부터 #n까지 차례대로 n개의 센싱 값을 수집하고 센싱 동작을 제어하는 것이 가능하다.
마스터 장치(110)는 슬레이브 장비(130)들을 최대 256개까지 관리할 수 있다. 즉, 마스터 장치(110)는 최대 256개의 슬레이브 장비(130)를 대상으로 폴링 처리하여 슬레이브 장비(130)의 데이터를 수집하고, 슬레이브(130)의 데이터를 관리할 수 있다.
슬레이브 장비(130)의 총 개수가 Slave_N이고, 1개의 슬레이브 장비(130)에 대한 폴링 시간이 Slave_T라 가정하면, 마스터 장치(110)의 폴링 타임 MT = Slave_N X Slave_T로 정의된다. 정의된 MT는 마스터 장치(110)가 전체 N개의 슬레이브 장비(130)에 대한 폴링을 요청하여 폴링 처리의 응답 결과를 받는 폴링 처리의 응답 시간으로 해석될 수 있다.
여기서, 마스터 장치(110)는 modbus를 이용하여 최대 256개까지만 슬레이브 장비(130)를 제어하는 개수의 제약이 있다. 즉, 256개를 초과하는 슬레이브 장비(130)에 대해서는 새로운 마스터 장치(110)가 추가되는 확장이 요구되고, 확장된 복수개의 마스터 장치(110)에 대한 데이터 통합이 요구되는 단점이 있다. 또한, 마스터 장치(110)와 슬레이브 장비(130)의 modbus 통신에서 디바이스의 개수가 1부터 256까지 증가할수록 증가된 슬레이브의 개수에 비례하여 응답 시간 MT가 늦어지는 단점이 있다.
본 발명은 상기와 같은 종래 기술의 인식하에 창출된 것으로서, 마스터 및 서브 마스터가 각각의 독립된 폴링을 수행하고, 서브 마스터는 독립된 폴링을 통해 슬레이브의 데이터를 관리하고, 마스터는 서브 마스터로 독립된 폴링을 요청하여 서브 마스터가 관리한 슬레이브의 데이터를 즉시 응답받는 장치, 시스템 및 방법을 제공하는 것을 목적으로 한다.
일 측면에 따른, modbus 통신 기반의 폴링을 이용하여 슬레이브 장비들의 데이터를 관리하는 장치는, modbus 통신에 의해 연결된 슬레이브 장비들로 서브 폴링을 요청하는 서브 폴링 요청부; 각각의 슬레이브 장비들로부터 서브 폴링의 요청에 대한 처리 결과의 응답을 수신하는 서브 폴링 응답부; 상기 서브 폴링과 독립된 마스터 폴링 요청을 수신하는 마스터 폴링 요청 수신부; 및 수신된 마스터 폴링 요청에 대해 기 저장된 최근의 서브 폴링의 응답을 마스터 폴링의 응답으로 전송하는 마스터 폴링 응답부를 포함한다.
각각의 서브 폴링 및 마스터 폴링은 고유한 폴링 주기 및 폴링 처리 시간을 가진다.
상기 장치는, 수신된 서브 폴링의 응답을 데이터 셋에 오버쓰기(overwriting) 방식으로 기록하는 서브 폴링 응답 기록부를 더 포함하고, 상기 마스터 폴링 응답부는, 상기 데이터 셋에 기록된 데이터를 상기 마스터 폴링의 응답으로 즉시 전송하여 슬레이브로부터 응답을 대기하는 시간을 제거하고 마스터 폴링의 응답 시간을 줄인다.
상기 서브 폴링 응답 기록부는, 연결된 슬레이브 장비로부터 서브 폴링의 응답을 받을 때마다 또는 전체 슬레이브 장비들의 동일 주기에서 받은 서브 폴링의 응답들을 모은 후, 상기 데이터 셋에 오버쓰기한다.
상기 마스터 폴링 응답부는, T주기 및 T-1 주기의 데이터로 구성된 데이터 셋을 즉시 전송한 경우, 상기 마스터 폴링 요청 수신부가 상기 T-1 주기에 대응되는 서브 마스터 아이디 및 매핑된 슬레이브 아이디를 포함하는 마스터 폴링 요청을 수신하고, 요청된 T주기의 슬레이브의 데이터를 응답한다.
상기 장치는, 최대 개가 서브 마스터 장치로서, 상기 마스터 폴링을 요청하는 마스터 장치에 연결되고, 1개의 서브 마스터 장치에 대해개의 슬레이브 장비가 연결되고, m*n개의 전체 슬레이브 장비에 대해 m의 개수를 증가시키고 n의 개수를 감소시켜서, 마스터 장치의 마스터 폴링 시간의 증가에 비교하여 서브 마스터 장치의 서브 폴링 시간이 더 절감되고, 절감된 서브 폴링 시간에 따라 서브 폴링 회수를 더 늘린다.
상기 마스터 폴링의 요청 프로토콜은, 시작, 서브 마스터부의 아이디, 기능 코드(function code), 시작 주소, 워드 카운트(word count), CRC(cyclical redundancy check), 종료의 필드로 구성된다.
상기 마스터 폴링의 응답 프로토콜은, 시작, 서브 마스터부의 아이디, 슬레이브 수(N) * 슬레이브별 응답 개수(P)(N, P>=1), N*P개의 응답 값, CRC, 종료의 필드로 구성된다.
상기 마스터 폴링의 쓰기 요청에 대한 응답 프로토콜은, 시작, 서브 마스터부의 아이디, 슬레이브의 아이디, 기능 코드, 레지스터 주소, 콘트롤, DT(Duration Time), CRC 및 종료의 필드로 구성된다.
다른 측면에 따른, modbus 통신 기반의 폴링을 이용하여 슬레이브 장비들의 데이터를 관리하는 시스템은, 연결된 상기 슬레이브 장비들로 서브 폴링을 요청하고 처리 결과를 응답받는 서브 마스터부; 및 연결된 서브 마스터부들로 상기 서브 마스터부의 서브 폴링과 독립되는 마스터 폴링을 요청하고, 상기 서브 마스터부가 최근에 응답받은 서브 폴링의 응답을 마스터 폴링의 응답으로 수신하는 마스터부를 포함한다.
상기 마스터부는, 각각의 서브 마스터부의 아이디 및 상기 서브 마스터부마다 연결된 각각의 슬레이브 아이디를 매핑하여 저장하고, 적어도 하나 이상의 서브 마스터부 아이디 및 상기 서브 마스터부 아이디에 매핑된 적어도 하나 이상의 슬레이브 아이디를 포함하는 마스터 폴링 요청의 데이터를 상기 서브 마스터부로 전송하고, 슬레이브 아이디에 대해 최근 서브 폴링 처리된 데이터 셋을 즉시 응답받는다.
또 다른 측면에 따른, modbus 통신 기반의 폴링을 이용하여 슬레이브 장비들의 데이터를 관리하는 방법은, 각각의 서브 마스터 장치가 modbus 통신에 의해 연결된 상기 슬레이브 장비들로 서브 폴링을 요청하고 서브 폴링의 처리 결과를 응답받는 단계; 상기 서브 마스터 장치가 상기 서브 폴링과 독립된 마스터 폴링 요청을 마스터 장치로부터 수신하는 단계; 및 수신된 마스터 폴링 요청에 대해 기 저장된 최근의 서브 폴링의 응답을 마스터 폴링의 응답으로써 상기 마스터 장치로 전송하는 단계를 포함한다.
본 발명의 일 측면에 따르면, 서브 마스터 장치의 추가로 인해, 각 서브 마스터 장치에 연결되는 슬레이브 장비의 확장이 가능하다.
또한, 본 발명의 다른 측면에 따르면, 마스터 장치는 폴링을 통해 서브 마스터 장치로부터 즉시 응답을 받기 때문에 슬레이브 장비에 대한 응답 대기 시간이 제거되어 폴링 주기가 단축된다.
또한, 본 발명의 또 다른 측면에 따르면, 서브 마스터 장치의 개수를 늘리고 각 서브 마스터 장치에 할당된 슬레이브 장비의 개수를 줄임으로써 마스터 장치의 폴링 응답 시간과 대비하여 서브 마스터 장치의 폴링 응답 시간을 줄일 수 있다.
본 명세서에 첨부되는 다음의 도면들은 본 발명의 바람직한 실시예를 예시하는 것이며, 후술한 발명의 상세한 설명과 함께 본 발명의 기술사상을 더욱 이해시키는 역할을 하는 것이므로, 본 발명은 그러한 도면에 기재된 사항에만 한정되어 해석되지 않아야 한다.
본 명세서에 첨부되는 다음의 도면들은 본 발명의 바람직한 실시예를 예시하는 것이며, 후술한 발명의 상세한 설명과 함께 본 발명의 기술사상을 더욱 이해시키는 역할을 하는 것이므로, 본 발명은 그러한 도면에 기재된 사항에만 한정되어 해석되지 않아야 한다.
도 1은 종래 시스템의 개략적인 구성도이다.
도 2는 본 발명의 일 실시예에 따른 모드 버스의 통신을 제공하는 시스템의 개략적 구성도이다.
도 3은 도 2의 서브 마스터 장치의 개략적 구성도이다 .
도 4는 도 3의 서브 마스터 장치가 생성하는 데이터 셋의 예시도이다.
도 5는 도 2의 마스터 장치가 서브 마스터 장치를 폴링하여 슬레이브 장비에 대해 쓰기 동작하는 개략적 예시도이다.
도 6은 도 2의 마스터 장치가 서브 마스터 장치를 폴링하여 슬레이브 장비에 대해 읽기 동작하는 프로토콜의 예시도이다.
도 7은 도 2의 마스터 장치 및 서브 마스터 장치가 폴링을 통해 쓰기 동작하는 프로토콜의 예시도이다.
도 8은 본 발명의 일 실시예에 따른 모드 버스의 통신을 제공하는 방법의 개략적 순서도이다.
본 명세서에 첨부되는 다음의 도면들은 본 발명의 바람직한 실시예를 예시하는 것이며, 후술한 발명의 상세한 설명과 함께 본 발명의 기술사상을 더욱 이해시키는 역할을 하는 것이므로, 본 발명은 그러한 도면에 기재된 사항에만 한정되어 해석되지 않아야 한다.
도 1은 종래 시스템의 개략적인 구성도이다.
도 2는 본 발명의 일 실시예에 따른 모드 버스의 통신을 제공하는 시스템의 개략적 구성도이다.
도 3은 도 2의 서브 마스터 장치의 개략적 구성도이다 .
도 4는 도 3의 서브 마스터 장치가 생성하는 데이터 셋의 예시도이다.
도 5는 도 2의 마스터 장치가 서브 마스터 장치를 폴링하여 슬레이브 장비에 대해 쓰기 동작하는 개략적 예시도이다.
도 6은 도 2의 마스터 장치가 서브 마스터 장치를 폴링하여 슬레이브 장비에 대해 읽기 동작하는 프로토콜의 예시도이다.
도 7은 도 2의 마스터 장치 및 서브 마스터 장치가 폴링을 통해 쓰기 동작하는 프로토콜의 예시도이다.
도 8은 본 발명의 일 실시예에 따른 모드 버스의 통신을 제공하는 방법의 개략적 순서도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 이에 앞서, 본 명세서 및 청구 범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상에 모두 대변하는 것은 아니므로, 본 출원 시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
도 2는 본 발명의 일 실시예에 따른 모드 버스의 통신을 제공하는 시스템(200)의 개략적 구성도이다.
본 발명의 일 실시예에 따른 시스템(200)은 서브 마스터 장치(220)에 대해 폴링을 처리하는 마스터 장치(210), 슬레이브 장비(230)에 대해 폴링을 처리하는 서브 마스터 장치(220) 및 마스터 장치(210)의 제어 및 서브 마스터 장치(220)의 서브 제어의 대상이 되는 슬레이브 장비(230)를 포함하여 구성된다.
상기 마스터 장치(220)는 modbus 통신으로 8비트의 서브 마스터 주소를 이용할 경우, (1<= m <=256)개의 서브 마스터 장치(220)와 연결된다. 마스터 장치(220)는 modbus 통신을 수행하는 컴퓨터 단말일 수 있다. 또한, 마스터 장치(220)는 보드 장치로 구현되어도 무방하다.
여기서, 시스템(200)은 종래 시스템(100)에 비해, 마스터 장치(210) 및 슬레이브 장비(230)에 서브 마스터 장치(220)가 더 추가된다. 마스터 장치(210)는 추가된 서브 마스터 장치(220)를 상대로 폴링을 요청하고, 폴링의 처리 결과를 서브 마스터 장치(200)로부터 응답받는다. 폴링은 읽기 기능 또는 쓰기 기능으로 구분될 수 있다.
상기 서브 마스터 장치(220)는 modbus 통신으로 8비트의 슬레이브 주소를 이용할 경우 n(1<= n <=256)개의 슬레이브 장비(230)와 연결된다. 서브 마스터 장치(220)는 modbus 통신을 수행하는 컴퓨터 단말일 수 있다. 또한, 서브 마스터 장치(220)는 보드 장치로 구현되어도 무방하다.
마스터 장치(210)와 슬레이브 장비(230) 사이에서 모드 버스 통신을 중계하는 서브 마스터 장치(220)의 추가로 인해, 슬레이브 장비(230)는 m X n 개로 확장되어 최대 65,536 개가 존재할 수 있다. 슬레이브 장비(230)의 총 개수가 Slave_N이고, 1개의 슬레이브 장비(230)에 대한 폴링 시간이 Slave_T라 가정하면, 서브 마스터 장치(220)의 폴링 타임 Sub_MT = Slave_N X Slave_T로 정의된다. 또한, 서브 마스터 장치(220)의 개수가 M개일 경우, 마스터 폴링 타임(MT)은 MT = SubM_M X IR_T로 정의된다.
상기 IR_T는 마스터 장치(210)가 서브 마스터 장치(220)로 폴링을 요청하여 즉시 응답(Instant Response)을 제공받는 고정 시간이다. 서브 마스터 장치(220)가 마스터 장치(210)로부터 폴링 요청을 받으면, 슬레이브 장비(230)들을 상대로 폴링 처리한 최신의 응답을 마스터 장치(210)로 IR_T의 고정 시간에 따라 즉시 응답한다. 마스터 장치(210)는 슬레이브 장비(230)들의 응답을 대기할 필요없이 슬레이브 장비(230)들의 최신의 응답 결과를 서브 마스터 장치(220)로부터 즉시 응답받는다.
여기서, 마스터 장치(210)의 폴링과 각각의 서브 마스터 장치(220)의 폴링은 독립되기 때문에 각각의 서브 마스터 장치(220)의 폴링은 마스터 장치(210)의 폴링과 무관하게 슬레이브 장비(230)들을 상대로 수행된다. 각각의 서브 마스터 장치(220)는 독립된 폴링을 수행하여 대응되는 슬레이브 장비(230)들을 상대로 최신의 응답 결과를 수집한다.
따라서, 마스터 장치(210)의 폴링 시간 MT는 슬레이브 장비(230)들의 응답 대기 시간이 제거되므로, 도 1의 마스터 장치(110)의 MT보다 줄어들고, Sub_MT보다 줄어든다. 참고로, 도 1의 마스터 장치(110)의 MT 및 서브 마스터 장치(220)의 Sub_MT는 폴링을 요청한 이후로, 슬레이브 장비(230)들의 폴링 순서 및 응답 대기 시간에 종속된다.
상기 슬레이브 장비(230)는 modbus 통신을 통해 제어 대상이 되는 장비로서, 센서 장비, 구동 장비 등일 될 수 있으며 특별한 제한을 두지 않는다.
여기서, 서브 마스터 장치(220) 및 슬레이브 장비(230)에 대한 아이디와 데이터를 예시하면 다음의 표 1과 같다.
Submaster id = { 강남, 강북, 강서, 강동, 화양, 양평, 강원…} 강남의 Slave id = { 1동 내부센서모듈, 1동 외부 센서모듈, 2동 내부센서모듈…}, Slave id = 1동 내부센서모듈 = {온도, 습도, co2, 지온, 지습} |
표 1에서 마스터 장치(210)는 "강남"의 서브 마스터 장치(220)를 통해 슬레이브 장비(230)의 "1동 내부 센서 모듈"의 센싱 값 "온도, 습도, co2, 지온, 지습"을 폴링을 통해 응답받는다. 물론, 마스터 장치(310)는 서브 마스터 장치(220)를 통해 슬레이브 장치(230)에 제어 명령을 내리거나 데이터 값의 쓰기가 가능하다.
한편, 각 서브 마스터 장치(220)는 마스터 장치(210)에 대해 개수 증감될 수 있으므로, 마스터 장치(210)에 대해 연결되는 서브 마스터 장치(220)의 개수를 늘리고, 서브 마스터 장치(220)에 연결된 슬레이브 장비(230)의 개수를 줄일 수 있다. 늘어난 서브 마스터 장치(220)에 개수에 의해 늘어나는 마스터 장치(210)의 주기 시간 MT는 IR_T가 고정 시간이라서 크지 않다. 하지만, 각 서브 마스터 장치(22)에 줄어는 슬레이브 장비(230)의 개수는 응답 대기 시간을 줄이기 때문에 Sub_MT가 크게 줄어든다. Sub_MT가 줄어드는 것은 서브 마스터 장치(220)가 최신의 데이터를 슬레이브 장비(230)로부터 수집하는 주기 횟수를 늘리게 한다. 즉, 서브 마스터 장치(220)의 개수를 늘리고 각 서브 마스터 장치(220)에 할당된 슬레이브 장비(230)를 줄이는 것은 마스터 장치(210)의 MT의 지연에 큰 영향을 주지 않으면서 서브 마스터 장치(220)의 Sub_MT를 줄이고, 더 최근의 데이터 값을 수집할 수 있게 한다.
도 3은 도 2의 서브 마스터 장치(220)의 개략적 구성도이다.
modbus 통신은 마스터 장치(210)와 서브 마스터 장치(220) 사이에서 연결되고, 서브 마스터 장치(220)와 슬레이브 장비(230) 사이에서 연결된다. 또한, 마스터 장치(210) 및 서브 마스터 장치(220) 사이에서는 TCP/IP 통신에 기반되는 modbus 프로토콜의 패킷이 사용될 수 있다.
본 발명의 일 실시예에 따른 서브 마스터 장치(220)는 슬레이브 장비(230)들을 대상으로 서브 폴링을 처리하는 서브 폴링 요청부(221), 서브 폴링의 응답을 수신하는 서브 폴링 응답부(223), 수신된 응답을 기록하는 서브 폴링 응답 기록부(225), 마스터 장치(210)로부터 마스터 폴링을 요청받는 마스터 폴링 요청 수신부(227) 및 마스터 폴링의 응답을 전송하는 마스터 폴링 응답부(229)를 포함하여 구성된다.
상기 서브 폴링 요청부(221)는 n개 연결된 슬레이브 장비(230)들을 상대로 폴링을 요청하고, 상기 서브 폴링 응답부(221)는 슬레이브 장비(230)로부터 폴링 처리의 결과를 응답받는다. 폴링의 요청 및 응답은 슬레이브 장비(230)에 부여된 #1, #2 ~ #N의 순서로 진행된다.
상기 서브 폴링 응답 기록부(225)는 각각의 슬레이브 장비(230)로부터 처리 결과를 응답받을 때마다 데이터 셋에 처리 결과의 응답을 오버 쓰기(overwriting) 한다. 그러면, 1회의 주기 동안 N회의 오버 쓰기가 발생된다.
상기 마스터 폴링 요청 수신부(227)는 마스터 장치(210)로부터 서브 폴링 요청부(221)의 폴링과 독립되는 폴링 요청을 수신한다.
상기 마스터 폴링 응답부(229)는 마스터 장치(210)의 폴링 요청에 대해, 최근 생성된 데이터 셋을 폴링 처리의 결과로서 즉시 응답한다. 마스터 장치(210)는 폴링을 요청한 후, 마스터 폴링 응답부(229)로부터 폴링 요청에 대해 응답을 즉시 리턴받는다. 그러면, 슬레이브 장비(230)들에 대한 폴링 응답의 대기가 제거되어 마스터 폴링 시간이 줄어든다.
이후, 마스터 장치(210)는 m개 연결된 서브 마스터 장치(220)를 상대로 #1, #2 ~ #m의 순서로 폴링을 요청하고, 처리 결과의 응답을 수신한다.
도 4는 도 3의 서브 마스터 장치(220)가 생성하는 데이터 셋(410)의 예시도이다.
서브 폴링 응답 기록부(225)는 슬레이브 장비(230)를 대상으로 폴링을 처리하는 과정에서 수신된 슬레이브(230)의 응답을 데이터 셋(410)에 오버 쓰기한다. 그리고 마스터 폴링 응답부(229)는 마스터 장치(210)의 폴링 요청에 대해 현재의 데이터 셋(410)에 기록된 최근 데이터를 즉시 응답한다.
여기서, 데이터 셋(410)에 T 주기와 T-1 주기의 데이터가 공존할 수 있고, 2개 주기의 데이터가 공존하는 데이터 셋(410)이 마스터 장치(210)로 응답될 수 있다. 필요에 따라, 데이터의 일치성을 위해 동일 주기의 데이터가 필요할 경우, 마스터 장치(210)는 수신된 데이터 셋(410)의 T-1 주기의 데이터에 대해 T 주기의 데이터로 요청하는 폴링을 마스터 폴링 요청 수신부(227)로 요청할 수 있다.
대안적으로, 2개의 주기가 공존하는 데이터 셋(410)이 응답될 경우, 마스터 장치(210)는 마스터 폴링 요청 수신부(227)로 1개 주기의 데이터 셋을 요청할 수 있다. 완전한 1개 주기의 데이터가 요청된 경우, 마스터 폴링 응답부(229)는 각 슬레이브 장비(230)의 응답을 버퍼링하고, 버퍼링을 통해 총 n개의 슬레이브 장치(230)의 응답이 완성되면, 완성된 응답을 데이터 셋(410)에 오버 쓰기(1회)하고, 데이터 셋(410)에 기록된 응답 데이터를 마스터 장치(210)로 전송할 수 있다.
그러면, 마스터 장치(210)는 폴링을 통해 슬레이브 장비(230)로부터 수집된 최신의 데이터 셋(410)의 데이터를 마스터 폴링 응답부(229)로부터 실시간으로 응답받는다. 즉, 마스터 장치(210)는 2개의 주기가 공존하는 데이터 셋(310)을 응답받은 경우, 필요에 따라 완전한 1개 주기의 데이터 셋(410)에 대한 응답을 제공받는 것이 가능하다.
도 5는 도 2의 마스터 장치(210)가 서브 마스터 장치(220)를 폴링하여 슬레이브 장비(230)에 대해 쓰기 동작하는 개략적 예시도이다.
마스터 장치(210)는 서브 마스터 장치(220)의 modbus 중계를 통해 슬레이브 장비(230)의 개별 제어를 위해, 각 서브 마스터 장치(220)별로 할당된 슬레이브 장비(230)의 매핑 정보를 저장한다.
매핑 정보를 참조하여, 마스터 장치(210)가 서브 마스터 장치(220)로 폴링을 통해 서브 마스터 장치(220)의 아이디, 매핑되는 슬레이브 장비(230)의 아이디 및 쓰기 값을 포함하는 쓰기 요청의 정보를 전송한다.
서브 마스터 장치(220)의 마스터 폴링 요청 수신부(227)는 마스터 장치(210)로부터 쓰기 요청의 정보를 수신한 후, 슬레이브 장비(230)를 상대로 슬레이브 장비(230)로 슬레이브 장비(230)의 아이디, 쓰기 값을 포함하는 쓰기 요청의 정보를 전송한다.
이후, 슬레이브 장비(230)는 쓰기 요청의 정보를 수신하여 쓰기 값을 쓰기 처리하여 마스터 장치(210)가 내린 제어를 실행한다. 슬레이브 장비(230)가 서브 마스터 장치(220)로 응답을 전송하면, 서브 마스터 장치(220)의 마스터 폴링 응답부(229)는 modbus 중계를 통해 전송된 응답을 마스터 장치(210)로 전송한다.
도 6은 도 2의 마스터 장치(210)가 서브 마스터 장치(220)를 폴링하여 슬레이브 장비(230)에 대해 읽기 동작하는 프로토콜의 예시도이다.
마스터 장치(210)는 서브 마스터 장치(220)로 읽기 기능의 프로토콜에 기반된 요청을 전송한다.
읽기 기능의 프로토콜은 시작, 서브 마스터 장치(220)의 아이디, 기능 코드, 시작 주소, 워드 카운트, CRC(cyclical redundancy check), 종료의 필드로 구성된다.
상기 기능 코드에는 읽기 기능이 지정될 수 있다. 시작 주소는 각 슬레이브 장비(230)에서 데이터가 읽혀지는 시작 위치를 말한다. 워드 카운트는 시작 위치로부터 읽혀지는 워드 개수를 말한다.
서브 마스터 장치(220)가 마스터 장치(210)로부터 읽기 요청을 수신하면, 서브 마스터 장치(220)는 각 슬레이브 장비(230)로부터 수신된 응답이 기록된 데이터 셋(410)을 참조하여 응답 데이터를 마스터 장치(210)로 전송한다.
응답의 프로토콜은 시작, 서브 마스터 장치(220)의 아이디, 응답된 슬레이브 장비(230)의 수(N) * 슬레이브 장비(230)별 응답 개수(P), N*P개의 응답 값, CRC, 종료의 필드로 구성된다. 바이트 카운트(601)는 읽은 값이 N*P개 존재하는 것을 의미한다. 레지스터 값(603)은 N*P개의 읽은 값이 나열되는 가변 길이의 데이터 스트림이다. CRC는 응답 값의 비트 합, CRC 테이블 값을 이용하여 데이터의 유효성을 체크하는 값이다. 읽기 결과의 값은 기능 코드에 에러 코드로서 포함될 수 있다.
도 7은 도 2의 마스터 장치(210) 및 서브 마스터 장치(220)가 폴링을 통해 쓰기 동작하는 프로토콜의 예시도이다.
마스터 장치(210)는 서브 마스터 장치(220)로 쓰기 기능의 프로토콜에 기반된 요청을 전송한다.
쓰기 기능의 프로토콜은 시작, 서브 마스터 장치(220)의 아이디, 슬레이브 장비(230)의 아이디, 기능 코드, 레지스터 주소, 콘트롤, DT(Duration Time), CRC 및 종료의 필드로 구성된다.
상기 쓰기 기능은 마스터 장치(210)가 각각의 서브 마스터 장치(220)에 대응되는 슬레이브 장비(230)의 매핑 정보를 참조하여, 서브 마스터 장치(220)의 아이디 및 쓰기 대상의 슬레이브 장비(230)의 아이디를 지정한다. 상기 기능 코드에는 쓰기 기능이 지정될 수 있다. 상기 레지스터 주소는 슬레이브 장비(230)에 대해 쓰기 대상이 되는 레지스터의 주소가 지정될 수 있다. 상기 콘트롤은 제어 명령어(예 : on/off 명령)일수 있다. 상기 DT는 제어 명령어의 지속 시간이다.
서브 마스터 장치(220)가 마스터 장치(210)로 전송하는 응답 프로토콜은 상기 요청 프로토콜과 동일하다. 쓰기 결과의 값은 기능 코드에 에러 코드로서 포함될 수 있다.
도 8은 본 발명의 일 실시예에 따른 모드 버스의 통신을 제공하는 방법의 개략적 순서도이다.
마스터 장치(210)는 각 서브 마스터 장치(220)마다 연결된 슬레이브 장비(230)들의 매핑 정보를 저장한다(S801). 저장된 매핑 정보에 의해, 마스터 장치(210)는 전체 슬레이브 장비(230) 또는 개별 슬레이브 장비(230)를 상대로 읽기 또는 쓰기의 폴링을 처리할 수 있다.
각 서브 마스터 장치(220)는 연결된 슬레이브 장비(230)들을 대상으로 읽기 기능의 폴링을 수행한다(S811). 읽기 기능의 폴링은 설정된 주기마다 실행되는 것이 가능하다. 읽기 기능의 폴링이 수행되면, 서브 마스터 장치(220)는 응답이 전송될 때마다 데이터 셋(410)에 최신의 응답 값을 기록한다.
마스터 장치(210)의 폴링이 개시되면, 마스터 장치(210)는 연결된 서브 마스터 장치(220)들로 읽기 또는 쓰기의 폴링을 요청한다(S821). 읽기 폴링의 경우, 서브 마스터 장치(220)는 데이터 셋으로부터 참조되는 최신 값을 즉시 응답한다(S823). 여기서, 서브 마스터 장치(220)는 슬레이브 장비(230)의 응답을 대기하는 것이 아니라 데이터 셋의 값을 즉시 응답함으로써 마스터 장치(210)의 주기 시간을 줄인다. 쓰기 폴링의 경우, 서브 마스터 장치(220)는 슬레이브 장비(230)로 쓰기 폴링을 요청하여 응답을 수신한다.
이후, 마스터 장치(210)는 서브 마스터 장치(220)로부터 폴링 요청에 대한 응답을 수신한다(S825).
본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 이것에 의해 한정되지 않으며 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 본 발명의 기술사상과 아래에 기재될 특허청구범위의 균등범위 내에서 다양한 수정 및 변형이 가능함은 물론이다.
200 : 시스템 210 : 마스터 장치
220 : 서브 마스터 장치 230 : 슬레이브 장비
220 : 서브 마스터 장치 230 : 슬레이브 장비
Claims (18)
- modbus 통신 기반의 폴링을 이용하여 슬레이브 장비들의 데이터를 관리하는 장치에 있어서,
modbus 통신에 의해 연결된 슬레이브 장비들로 서브 폴링을 요청하는 서브 폴링 요청부;
각각의 슬레이브 장비들로부터 서브 폴링의 요청에 대한 처리 결과의 응답을 수신하는 서브 폴링 응답부;
상기 서브 폴링과 독립된 마스터 폴링 요청을 수신하는 마스터 폴링 요청 수신부; 및
수신된 마스터 폴링 요청에 대해 기 저장된 최근의 서브 폴링의 응답을 마스터 폴링의 응답으로 전송하는 마스터 폴링 응답부
를 포함하는 것을 특징으로 하는 장치. - 제 1항에 있어서,
각각의 서브 폴링 및 마스터 폴링은 고유한 폴링 주기 및 폴링 처리 시간을 가지는 것을 특징으로 하는 장치. - 제 1항에 있어서,
수신된 서브 폴링의 응답을 데이터 셋에 오버쓰기(overwriting) 방식으로 기록하는 서브 폴링 응답 기록부를 더 포함하고,
상기 마스터 폴링 응답부는, 상기 데이터 셋에 기록된 데이터를 상기 마스터 폴링의 응답으로 즉시 전송하여 슬레이브로부터 응답을 대기하는 시간을 제거하고 마스터 폴링의 응답 시간을 줄이는 것을 특징으로 하는 장치. - 제 3항에 있어서,
상기 서브 폴링 응답 기록부는,
연결된 슬레이브 장비로부터 서브 폴링의 응답을 받을 때마다 또는 전체 슬레이브 장비들의 동일 주기에서 받은 서브 폴링의 응답들을 모은 후, 상기 데이터 셋에 오버쓰기하는 것을 특징으로 하는 장치. - 제 3항에 있어서,
상기 마스터 폴링 응답부는,
T주기 및 T-1 주기의 데이터로 구성된 데이터 셋을 즉시 전송한 경우,
상기 마스터 폴링 요청 수신부가 상기 T-1 주기에 대응되는 서브 마스터 아이디 및 매핑된 슬레이브 아이디를 포함하는 마스터 폴링 요청을 수신하고,
요청된 T 주기의 슬레이브의 데이터를 응답하는 것을 특징으로 하는 장치. - 제 1항에 있어서,
상기 마스터 폴링의 요청 프로토콜은,
시작, 서브 마스터부의 아이디, 기능 코드, 시작 주소, 워드 카운트, CRC(cyclical redundancy check), 종료의 필드로 구성되는 것을 특징으로 하는 장치. - 제 7항에 있어서,
상기 마스터 폴링의 응답 프로토콜은,
시작, 서브 마스터부의 아이디, 슬레이브 수(N) * 슬레이브별 응답 개수(P)(N, P≥1), N*P개의 응답 값, CRC, 종료의 필드로 구성되는 것을 특징으로 하는 장치. - 제 1항에 있어서,
상기 마스터 폴링의 쓰기 요청에 대한 응답 프로토콜은,
시작, 서브 마스터부의 아이디, 슬레이브의 아이디, 기능 코드, 레지스터 주소, 콘트롤, DT(Duration Time), CRC 및 종료의 필드로 구성되는 것을 특징으로 하는 장치. - modbus 통신 기반의 폴링을 이용하여 슬레이브 장비들의 데이터를 관리하는 시스템에 있어서,
연결된 상기 슬레이브 장비들로 서브 폴링을 요청하고 처리 결과를 응답받는 서브 마스터부; 및
연결된 서브 마스터부들로 상기 서브 마스터부의 서브 폴링과 독립되는 마스터 폴링을 요청하고, 상기 서브 마스터부가 최근에 응답받은 서브 폴링의 응답을 마스터 폴링의 응답으로 수신하는 마스터부
를 포함하는 것을 특징으로 하는 시스템. - 제 10항에 있어서,
상기 마스터부는,
각각의 서브 마스터부의 아이디 및 상기 서브 마스터부마다 연결된 각각의 슬레이브 아이디를 매핑하여 저장하고,
적어도 하나 이상의 서브 마스터부 아이디 및 상기 서브 마스터부 아이디에 매핑된 적어도 하나 이상의 슬레이브 아이디를 포함하는 마스터 폴링 요청의 데이터를 상기 서브 마스터부로 전송하고, 슬레이브 아이디에 대해 최근 서브 폴링 처리된 데이터 셋을 즉시 응답받는 것을 특징으로 하는 시스템. - 장치가 modbus 통신 기반의 폴링을 이용하여 슬레이브 장비들의 데이터를 관리하는 방법에 있어서,
각각의 서브 마스터 장치가 modbus 통신에 의해 연결된 상기 슬레이브 장비들로 서브 폴링을 요청하고 서브 폴링의 처리 결과를 응답받는 단계;
상기 서브 마스터 장치가 상기 서브 폴링과 독립된 마스터 폴링 요청을 마스터 장치로부터 수신하는 단계; 및
수신된 마스터 폴링 요청에 대해 기 저장된 최근의 서브 폴링의 응답을 마스터 폴링의 응답으로써 상기 마스터 장치로 전송하는 단계
를 포함하는 것을 특징으로 하는 방법. - 제 12항에 있어서,
각각의 서브 폴링 및 마스터 폴링은 고유한 폴링 주기 및 폴링 처리 시간을 가지는 것을 특징으로 하는 방법. - 제 12항에 있어서,
상기 응답받는 단계는,
수신된 서브 폴링의 응답을 데이터 셋에 오버쓰기(overwriting) 방식으로 기록하는 단계를 더 포함하고,
상기 마스터 장치로 전송하는 단계는, 상기 데이터 셋에 기록된 데이터를 상기 마스터 폴링의 응답으로 즉시 전송하여 슬레이브로부터 응답을 대기하는 시간을 제거하고 마스터 폴링의 응답 시간을 줄이는 것을 특징으로 하는 방법. - 제 14항에 있어서,
상기 기록하는 단계는,
연결된 슬레이브 장비로부터 폴링의 응답을 받을 때마다 또는 전체 슬레이브 장비들의 동일 주기에서 받은 응답들을 모은 후, 데이터 셋에 오버쓰기하는 단계인 것을 특징으로 하는 방법. - 제 14항에 있어서,
상기 마스터 장치로 전송하는 단계는,
T주기 및 T-1 주기의 데이터로 구성된 데이터 셋을 즉시 전송한 경우,
상기 마스터 장치로부터 수신하는 단계에서 상기 T-1 주기에 대응되는 서브 마스터 아이디 및 매핑된 슬레이브 아이디를 포함하는 마스터 폴링 요청을 수신하고,
요청된 T 주기의 슬레이브의 데이터를 응답하는 단계인 것을 특징으로 하는 방법. - 제 12항에 있어서,
상기 응답받는 단계 이전에,
상기 마스터 장치가 각각의 서브 마스터부의 아이디 및 상기 서브 마스터부마다 연결된 각각의 슬레이브 아이디를 매핑하여 저장하는 단계를 더 포함하고,
상기 수신하는 단계는,
상기 마스터 장치가 적어도 하나 이상의 서브 마스터부 아이디 및 상기 서브 마스터부 아이디에 매핑된 적어도 하나 이상의 슬레이브 아이디를 포함하는 마스터 폴링 요청의 데이터를 상기 서브 마스터 장치로 전송하는 단계이고,
상기 전송하는 단계는,
슬레이브 아이디에 대해 최근 서브 폴링 처리된 데이터 셋을 즉시 응답받는 단계인 것을 특징으로 하는 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160161559A KR20180061885A (ko) | 2016-11-30 | 2016-11-30 | 폴링 시간을 줄이는 모드 버스의 통신을 제공하는 장치, 시스템 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160161559A KR20180061885A (ko) | 2016-11-30 | 2016-11-30 | 폴링 시간을 줄이는 모드 버스의 통신을 제공하는 장치, 시스템 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20180061885A true KR20180061885A (ko) | 2018-06-08 |
Family
ID=62600016
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160161559A KR20180061885A (ko) | 2016-11-30 | 2016-11-30 | 폴링 시간을 줄이는 모드 버스의 통신을 제공하는 장치, 시스템 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20180061885A (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111669308A (zh) * | 2020-06-15 | 2020-09-15 | 上海豫源电力科技有限公司 | 基于轮询优化策略的Modbus通讯方法方法、装置、终端及介质 |
CN114391234A (zh) * | 2020-08-06 | 2022-04-22 | 华为数字能源技术有限公司 | 数据采集方法、装置、Modbus***及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101339666B1 (ko) | 2012-04-30 | 2013-12-10 | 주식회사 엘시스 | Modbus 통신 암호화 방법 및 장치 |
-
2016
- 2016-11-30 KR KR1020160161559A patent/KR20180061885A/ko unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101339666B1 (ko) | 2012-04-30 | 2013-12-10 | 주식회사 엘시스 | Modbus 통신 암호화 방법 및 장치 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111669308A (zh) * | 2020-06-15 | 2020-09-15 | 上海豫源电力科技有限公司 | 基于轮询优化策略的Modbus通讯方法方法、装置、终端及介质 |
CN114391234A (zh) * | 2020-08-06 | 2022-04-22 | 华为数字能源技术有限公司 | 数据采集方法、装置、Modbus***及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5395824B2 (ja) | メモリシステム | |
CN107229415B (zh) | 一种数据写方法、数据读方法及相关设备、*** | |
CN103297306B (zh) | 一种农业物联网*** | |
CN109257336B (zh) | 一种基于区块链的密码信息处理方法、终端设备 | |
CN110704265A (zh) | 一种基于Modbus协议的预警信息主动上报方法及*** | |
KR101911755B1 (ko) | 근거리 무선 통신 환경에서 개인 건강 데이터를 통신하는 방법 및 시스템 | |
JP2021502624A5 (ko) | ||
WO2018188084A1 (zh) | 一种数据访问方法及装置 | |
CN107947906B (zh) | 从属设备 | |
CN111464419A (zh) | 一种基于总线网络通信的数据传输控制方法 | |
CN113014510B (zh) | 惯导***分布式测试中数据缓存方法及装置 | |
CN105808492B (zh) | 一种信息处理方法及串行***设备接口主控制器 | |
CN101455035A (zh) | 用于无线通信模块的多模式主机接口以及其远程寄存器的存储器访问 | |
CN111510363A (zh) | 基于modbus协议的从站转换装置及其控制方法 | |
KR20180061885A (ko) | 폴링 시간을 줄이는 모드 버스의 통신을 제공하는 장치, 시스템 및 방법 | |
KR101705580B1 (ko) | Http를 이용한 네트워크 장치 검색 및 등록 방법 및 네트워크 등록 서비스 장치 | |
CN113852533A (zh) | 一种多通道数据通信***、方法及电子设备 | |
US10420058B2 (en) | Data-driven sensor configuration and information processing | |
CN105491082A (zh) | 远程资源访问方法和交换设备 | |
CN109889568B (zh) | 一种数据导出方法、服务器及*** | |
CN107102729A (zh) | 一种基于csi手势识别的ppt演示控制*** | |
JP6044359B2 (ja) | 車両装置と携帯端末との動作適合化方法、車両装置と携帯端末とを備える車両システム、携帯端末、及び情報センタ | |
CN112637370B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
US20140159876A1 (en) | Method and apparatus for setting up configuration of machine to machine communication | |
WO2018165900A1 (zh) | 通信控制方法与控制装置 |