KR20190040531A - 테이블 기반 데이터 통신방법 - Google Patents

테이블 기반 데이터 통신방법 Download PDF

Info

Publication number
KR20190040531A
KR20190040531A KR1020170129313A KR20170129313A KR20190040531A KR 20190040531 A KR20190040531 A KR 20190040531A KR 1020170129313 A KR1020170129313 A KR 1020170129313A KR 20170129313 A KR20170129313 A KR 20170129313A KR 20190040531 A KR20190040531 A KR 20190040531A
Authority
KR
South Korea
Prior art keywords
data
communication
entry
specific
command packet
Prior art date
Application number
KR1020170129313A
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 KR1020170129313A priority Critical patent/KR20190040531A/ko
Publication of KR20190040531A publication Critical patent/KR20190040531A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

본 발명은 데이터 통신방법에 관한 것으로서, 제1기기의 장치소프트웨어의 응용프로그램이 테이블의 환경설정영역에 설정된 주기, 수치, 범위 등의 조건이 만족되면, 자동으로 센서에서 데이터를 검출해서, 테이블의 특정 엔트리에 저장하면, 테이블의 동기화옵션영역에 설정된 주기, 수치, 범위 등의 조건이 만족되면, 자동으로 통신을 통해 이 것을 제2기기로 전송한다.

Description

테이블 기반 데이터 통신방법{Table based data communication method}
본 발명은 테이블 기반 데이터 통신방법에 관한 것으로, 더 상세하게는 통신을 수행하는 통신장치 안에서 운용되는 장치소프트웨어를 응용프로그램과 통신프로그램으로 분리하여, 응용프로그램의 통신 부하량을 줄이고, 장치소프트웨어의 개발, 유지보수, 개선 작업이 쉽도록하는 테이블 기반 데이터 통신방법에 관한 것이다.
최근 산업의 고도화 및 대형화에 따라 산업 설비들의 상태나, 온도, 습도 등의 환경을 원격지에서 모니터링하고 제어하는 다양한 IoT 시스템들이 구현되고 있다.
이를 위해 최근 산업의 고도화와 대형화에 따라 산업 설비들의 상태나 온도/습도 같은 환경을 원격지에서 감시하고 제어하는 다양한 IoT 시스템들이 구현되고 있다.
이를 위해 통신 기능이 없거나 열악한 산업 현장의 설비나 센서에 센싱도 하고 통신도 하는 별도의 통신장치(이하 “센서노드”라 한다)를 연결해서, 검출한 데이터를 원격지의 서버, PC, 휴대폰, 장비, 설비 같은 다양한 통신장치에 전송하는 효과적인 기술들이 필요해지고 있다. 이때, 통신 경로 상에서는 데이터 통신을 위해 다양한 유무선 통신장치와 통신 규격을 사용할 수 있다.
즉, 센서노드가 검출한 데이터를 경로 상에서 유무선 통신장치를 통해 근거리 지역망 안에서만 아니라, 광역망인 인터넷을 통해서도 원격지 장치로 전송하는 방식을 취할 수 있다.
이를 위해 센서노드와 연동하는 통신장치들에는 적절한 장치소프트웨어가 설치되어야 한다.
종래의 장치소프트웨어들은 장치의 운영과 통신을 함께 수행하도록 구성되어 있으며, 응용과 통신을 동시에 수행하는 장치 안에서 돌아가는 장치소프트웨어의 개발 단계에서, 대부분의 노력이 전문성을 요하는 복잡하고 까다로운 통신 부분을 해결하느라 소모되는 문제점이 있다.
따라서 장치 본연의 목적인 응용 부분이 통신 부분의 복잡함 속에 섞여 들어가서 자유롭고 원활하게 개발하지 못하고, 개발하고 나서도 유지/보수/개선 작업이 어렵다는 문제점을 가지고 있다.
KR 10-1715740 B
본 발명이 해결하고자 하는 기술적 과제는, 통신장치 안에서 돌아가는 장치소프트웨어의 응용 부분과 통신 부분을 응용프로그램과 통신프로그램으로 명료하게 분리하여, 장치소프트웨어 안에서 응용프로그램의 통신 부하를 줄이고 장치 본연의 응용 처리에 전념할 수 있게 하는 테이블 기반 데이터 통신방법을 제공함에 있다.
본 발명 테이블 기반 데이터 통신방법은, 제1기기의 특정 포트 테이블의 동기화옵션영역에 설정된 주기, 수치 또는 범위 등의 조건에 따라, 자동으로 외부 센서 값을 검출하고, 검출된 센서 값을 즉시 전송하지 않고, 제1기기의 테이블의 특정 엔트리에 저장할 수 있다.
본 발명은 제1기기의 장치소프트웨어의 응용프로그램 개입 없이 통신프로그램이 특정 포트의 테이블의 동기화옵션영역에 설정된 주기, 수치, 범위 등의 조건에 따라, 자동으로 테이블의 특정 엔트리를 읽어서 통신을 통해, 제2기기의 특정 포트의 테이블의 특정 엔트리에 기록할 수 있다.
본 발명은 제1기기가 쓰기 커맨드패킷을 전송하면, 제2기기의 응용프로그램이 아니라 통신프로그램이 받아서 특정 포트의 테이블의 특정 엔트리에 데이터를 기록할 수 있다.
본 발명의 일실시예에 따르면 상기 커맨드패킷에 회신 요청 커맨드를 포함해서 보내면, 제2기기는 첫번째 커맨드가 지시하는 대로 테이블 엔트리에 데이터를 쓰고, 이어서 두번째 커맨드가 지시하는 바에 따라 테이블의 특정 엔트리를 읽어서 커맨드패킷을 만들어 회신하게 하여, 다시 이 것을 받은 제1기기가 테이블의 특정 엔트리에 저장하게 함으로써, 이 엔트리 값이 변한 것을 보고 통신 성공 여부나 새로운 프로토콜을 창발하게 할 수 있다.
본 발명은 제1기기가 쓰기 커맨드패킷을 전송해서, 제2기기의 특정 포트의 테이블의 특정 엔트리에 데이터를 쓰면, 제2기기의 응용프로그램은 수신된 데이터를 즉시 사용하지 아니하고, 필요한 시점에 읽어서 처리할 수 있다.
본 발명은 제1기기가 읽기 커맨드패킷를 전송하면, 제2기기는 응용프로그램이 아니라 통신프로그램이 받아서, 커맨드가 지정하는 특정 포트의 테이블의 특정 엔트리를 읽어서 데이터를 쓰기 커맨드패킷으로 조립해서 통신을 통해 회신하면, 제1기기는 응용프로그램 개입 없이 통신프로그램이 테이블의 특정 엔트리에 저장할 수 있다.
본 발명은 포트의 장치 소프트웨어를 분할하여 데이터 통신이 하위 계층에서 진행되도록 함으로써, 상위 계층인 응용 계층의 부하를 줄여 통신 중에도 다양한 처리를 수행할 수 있는 효과가 있다.
도 1은 본 발명의 바람직한 실시예에 따른 데이터 통신시스템의 구성도이다.
도 2는 본 발명에 적용되는 테이블의 구조도이다.
도 3은 본 발명에 적용되는 커맨드패킷의 실시 예이다.
도 4는 본 발명에 적용되는 장치소프트웨어의 계층도이다.
도 5는 본 발명 테이블 기반 데이터 통신방법의 흐름도이다.
이하, 본 발명 데이터 통신방법에 대하여 첨부한 도면을 참조하여 상세히 설명한다.
본 발명의 실시 예들은 당해 기술 분야에서 통상의 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위해 제공되는 것이며, 아래에 설명되는 실시 예들은 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 아래의 실시 예들로 한정되는 것은 아니다. 오히려, 이들 실시 예는 본 발명을 더욱 충실하고 완전하게 하며 당업자에게 본 발명의 사상을 완전하게 전달하기 위하여 제공되는 것이다.
본 명세서에서 사용된 용어는 특정 실시 예를 설명하기 위하여 사용되며, 본 발명을 제한하기 위한 것이 아니다. 본 명세서에서 사용된 바와 같이 단수 형태는 문맥상 다른 경우를 분명히 지적하는 것이 아니라면, 복수의 형태를 포함할 수 있다. 또한, 본 명세서에서 사용되는 경우 "포함한다(comprise)" 및/또는"포함하는(comprising)"은 언급한 형상들, 숫자, 단계, 동작, 부재, 요소 및/또는 이들 그룹의 존재를 특정하는 것이며, 하나 이상의 다른 형상, 숫자, 동작, 부재, 요소 및/또는 그룹들의 존재 또는 부가를 배제하는 것이 아니다. 본 명세서에서 사용된 바와 같이, 용어 "및/또는"은 해당 열거된 항목 중 어느 하나 및 하나 이상의 모든 조합을 포함한다. 
본 명세서에서 제1, 제2 등의 용어가 다양한 부재, 영역 및/또는 부위들을 설명하기 위하여 사용되지만, 이들 부재, 부품, 영역, 층들 및/또는 부위들은 이들 용어에 의해 한정되지 않음은 자명하다. 이들 용어는 특정 순서나 상하, 또는 우열을 의미하지 않으며, 하나의 부재, 영역 또는 부위를 다른 부재, 영역 또는 부위와 구별하기 위하여만 사용된다. 따라서, 이하 상술할 제1 부재, 영역 또는 부위는 본 발명의 가르침으로부터 벗어나지 않고서도 제2 부재, 영역 또는 부위를 지칭할 수 있다.
이하, 본 발명의 실시 예들은 본 발명의 실시 예들을 개략적으로 도시하는 도면들을 참조하여 설명한다. 도면들에 있어서, 예를 들면, 제조 기술 및/또는 공차에 따라, 도시된 형상의 변형들이 예상될 수 있다. 따라서, 본 발명의 실시 예는 본 명세서에 도시된 영역의 특정 형상에 제한된 것으로 해석되어서는 아니 되며, 예를 들면 제조상 초래되는 형상의 변화를 포함하여야 한다.
도 1은 본 발명이 적용되는 데이터 통신시스템의 구성도이다.
도 1을 참조하면 본 발명이 적용되는 데이터 통신시스템은, 감시, 제어대상인 제어대상장치(10), PC(30), 스마트폰(40) 등의 사물들에서 데이터를 검출하여 통신하는 센서노드(20)와, 상기 센서노드(20)가 검출한 데이터를 인터넷망(1)에 연결하는 게이트노드(70), 센서노드(20)와 게이트노드(70) 사이의 거리가 멀거나 장애물이 있는 경우 설치되는 통신노드(50)를 포함하는 지역망(2)들과, 지역망들(2)을 인터넷망(1)으로 연결하여 광역망을 형성한다.
감시 및 제어 응용프로그램이 운용되는 서버(80)는 인터넷망(1)을 통해 지역망들(2)의 센서노드(20)에 연결되지만, 소규모 시스템에서는 지역망(2)에 직접 연결될 수 있다.
서버(80)는 센서노드, 통신노드, 게이트노드의 기능 전부 또는 일부를 선택적으로 포함할 수 있다.
상기 센서노드(20)의 장치소프트웨어의 응용프로그램 부분은 감시 및 제어 대상을 센싱하고 구동하며, 통신프로그램 부분은 센싱한 데이터를 테이블을 통해 다른 장치의 테이블로 통신을 통해 전송하거나 수신한다.
상기 제어대상장치(10), PC(30), 스마트폰(40)도 센서노드(20)처럼 4개의 계층 모듈을 탑재하여, 센싱과 통신을 동시에 수행할 수 있는 센싱노드로 작용할 수 있다.
이와 같은 구성에서 제어대상장치(10)의 센서노드(20), PC(30), 스마트폰(40)은 동일 지역망(2) 내에서 상호간에 데이터통신이 가능하며, 게이트노드(70)를 통해 원거리에 위치하는 다른 지역망(2) 내의 사물들과도 데이터 통신이 가능하다.
도 2는 장치 안 또는 장치 간의 응용프로그램과 통신프로그램의 동작과 통신을 매개하고, 비동기통신을 가능하게 하는 테이블의 구조도이다.
도 2를 참조하면 테이블(200)은 장비의 운전 모드와 센싱 조건을 지정하는 환경설정영역(210, Config), 두 장치간의 자동 통신 조건을 지정하는 동기화옵션영역(220, Sync Option), 읽고 쓸 데이터가 저장되는 데이터영역(230, Data)으로 구성된다.
상기 환경설정영역(210)에 저장되는 정보인 환경설정 값은 플래시 메모리에서 읽어온다.
포트가 디지털 출력포트(DO)인 경우에는 환경설정영역(210)에 장비 최초 기동시 디폴트 출력의 온/오프를 지정하는 정보를 저장할 수 있다. 시리얼포트인 경우는 통신속도, 데이터 완성 조건에 대한 정보를 저장할 수 있다.
동기화옵션영역(220)에는 동기화 하는 디테일이 쓰여져 있다. DID는 동기화할 통신 상대편 장치의 번호, DTN은 상대편 장치의 테이블의 번호, Dent는 동기화할 상대편 테이블의 엔트리 주소, Time은 동기화할 주기, Stat은 변동, Min과 Max는 각각 최저값과 최고값으로 범위를 지정할 수 있다. 특정 값을 지정하려면 최저값과 최대값을 동일하게 지정하면 된다. Res는 예약 영역, Ack는 명령 수행이 성공하면 0이 아닌 다른 값을 기재할 엔트리를 뜻한다.
데이터영역(230)은 다수의 엔트리를 포함하는 데이터 저장 공간이며, 데이터영역의 최초 4바이트의 각 바이트는 엔트리 변경 시 응용계층(응용프로그램)이 인지할 수 있도록 엔트리 시작 주소를 저장하는 4개의 표식 필드로 사용된다.
도 3은 본 발명에 적용되는 커맨드패킷의 실시 예이다.
커맨드패킷은 데이터를 통신을 통해 보내기 위한 컨테이너 박스에 해당하는 구조체이다.
커맨드패킷은 하나의 헤더와 복수의 커맨드로 구성된다. 헤더 영역을 보면, 커맨드패킷을 보내는 출발지 장비의 ID를 나타내는 SID필드, 이 장비의 특정 포트에 해당하는 특정 테이블 번호 STN필드, 이 커맨드를 받을 목적지 장비의 ID를 나타내는 DID필드, 목적지 장비의 특정 포트의 특정 테이블 번호 DTN필드, 커맨드패킷의 길이를 나타내는 Size필드이다. 커맨드 영역을 보면, 커맨드의 첫 번째 바이트에는 상대편 테이블에 데이터를 쓸 것인지 읽어올 것인지를 지정하는 커맨드 코드이고, Dent는 목적지 장치의 테이블의 엔트리 주소, Size는 이 커맨드의 길이, Data 는 상기 커맨드 코드가 쓰기 명령인 경우에만 포함되는 데이터이다.
도 4를 참조하면 본 발명의 실시 예인 센서노드, 통신노드, 게이트노드 등의 통신창치에 설치하는 장치소프트웨어는 응용계층(100), 테이블계층(240), 루트계층(300), 링크계층(400)으로 분할하여 구축할 수 있다. 최상위 응용계층(100)은 응용프로그램으로 구현하고, 하위 3개 계층인 테이블계층(240), 루트계층(300), 링크계층(400)은 합쳐서 통신프로그램으로 구현한다.
상기 테이블계층(240)에는 앞서 설명한 테이블(200)이 포함되며, 상기 응용계층(100)은 테이블(200)의 환경설정영역(210)에 설정된 조건에 따라 자동으로, 또는 임의로 센서 데이터를 검출해서 테이블(200)의 특정 엔트리에 써서, 하위계층들이 수행하는 통신을 통해서, 결과적으로는 제1기기의 응용프로그램의 데이터를 제2기기의 응용프로그램으로 전송하고 수신한다.
상기 테이블계층(240)은 테이블(200)의 동기화옵션영역(220)에 설정된 조건에 따라 자동으로, 또는 응용계층(100)의 요청에 의해 수동으로 하위 계층이 수행하는 통신을 통해서, 결과적으로는 제1기기의 테이블의 엔트리를 제2기기의 테이블의 엔트리로 전송하고 수신한다.
상기 제1기기와 제2기기는 앞서 설명한 센서노드(20), 서버(80), 통신노드(50) 등이 될 수 있다.
상기 루트계층(300)은 상위 테이블계층(240)이 위탁하는 데이터를 받아서, 위탁 디테일에 따라 적절한 커맨드패킷으로 조립해서, 선입선출 패킷저장소인 “FIFO”에 일시 보관했다가, 통신 가능한 타이밍에 하위 계층인 링크계층(400)이 수행하는 통신을 통해서, 다수의 커맨드패킷이 들어있는 제1기기의 FIFO를 제2기기의 FIFO에 전송하고 수신한다.
상기 링크계층(400)은 상위 루트계층이 위탁하는 커맨드패킷을 받아서, 일시
통신을 위한 “버퍼”에 저장했다가, 길면 통신에 적합한 전송 단위로 잘게 나누어 실제 통신으로 순차 전송하고, 이런 조각을 받으면 재조립함으로써, 결과적으로는 하나의 커맨드패킷이 들어있는 제1기기의 버퍼를 제2기기의 버퍼에 전송하고 수신한다.
이와 같이 장치소프트웨어를 4단계로 계층화하여 최상위 응용계층은 통신프로그램으로, 하위 3개 계층은 통신프로그램으로 구현하여 응용을 통신으로부터 분리하고 비동기화 함으로써 응용프로그램의 부하를 줄이고, 응용프로그램의 복잡도를 낮출 수가 있다.
도 5는 두 기기 간의 통신 일실시 예를 흐름도로 도시한 것으로, 두 기기 모두 상기 4개 계층 모듈이 탑재된다. 두 기기는 각각 서버(80)와 센서노드(20)가 될 수 있다.
이하, 도 5를 참조하여 테이블 기반 통신방식이 어떻게 이루어지는지 자세히 설명한다.
서버(80)와 센서노드(20) 간의 테이블 통신으로 쉽게 설명하기 위해서 두 기기 중간에 들어갈 수 있는 통신노드(50)나 인터넷망(1)은 생략하였다.
상기 센서노드(20)는 테이블(200)의 환경설정영역(210)에 설정된 센싱옵션 조건에 따라, 주기, 변경, 범위 등의 조건이 만족되면 자동으로 대상기기나 센서(11)로부터 상태나 환경을 검출해서 데이터를 생성하여 테이블(200)의 데이터영역(230)의 특정 엔트리에 기록한다. 이 데이터는 테이블(200)의 동기화옵션영역(220)에서 지정하는 조건이 만족되면, 자동으로 상대편 기기의 테이블(200)의 특정 엔트리로 전송된다. 이때 통신은 테이블계층(240)의 요청에 의해 하위 루트계층(300) 및 링크계층(400)에 의해 수행된다.
테이블계층(240)의 요청을 받으면, 루트계층(300)은 이 데이터에 목적지 주소를 붙여서 커맨드로 변환하고, 통신에 적합한 커맨드패킷으로 조립해서, 목적지 경로상에 있는 포트의 링크계층(400)의 패킷저장소인 FIFO에 적재한다. 그리고 루트계층(300)은 하위 링크계층(400)이 통신 가능한 상태가 되면 FIFO 안에서 가장 오래된 커맨드패킷을 하나 꺼내서 링크계층(400)의 출력 “버퍼”에 넣어준다. 커맨드패킷을 받으면, 링크계층(400)은 패킷이 길면 잘게 나누어 순차적으로 실제 통신을 수행한다.
상기 서버(80)는 통신프로그램의 링크계층에서 이 통신을 받아 조립해서 자신의 입력 버퍼에 하나의 완성된 커맨드패킷을 받아 놓는다.
서버(80)의 루트계층(300)은 입력 버퍼에 커맨드패킷이 들어오면, 자신의 패킷저장소인 FIFO에 적재한다.
그 상위인 테이블계층은 FIFO를 계속 감시하고 있다가 FIFO에 커맨드패킷이 들어오면 데이터만 꺼내서, 쓰기 명령이면 테이블의 특정 엔트리에 데이터를 쓴다.
다른 예로 읽기 명령일 수도 있는데, 이때는 서버(80)의 테이블의 데이터영역에서 지정한 엔트리를 읽어서 데이터를 커맨드패킷에 넣어 회신한다. 이때도 역시 통신은 하위의 루트계층과 링크계층에 의해 수행된다.
이후 서버(80)의 응용프로그램은 필요한 시점에 통신에 의하지 않고 비동기적으로 자기 테이블 엔트리에 저장된 데이터를 가져다 사용한다.
테이블계층은 임의로 또는 동기화옵션영역에 설정한 조건에 만족하는 시점에 하위 루트계층(300)에 지시해서 특정 엔트리에 들어 있는 데이터를 전송하도록 명령한다.
상기 센서노드(20)에는 여러 개의 포트가 존재할 수 있다. 그 중에서 서버와 통신하는 센서노드의 포트는 통신포트인데, 이 포트에도 역시 상기 4개 계층이 존재한다. 그 중에서도 최하위 링크계층만이 실제 통신을 수행하므로 커맨드패킷을 이 레이어가 관할하는 커맨드패킷 버퍼에 저장했다가, 통신을 수행할 여건이 되면 실제 통신으로 상대편 기기의 커맨드 버퍼로 전송한다.
상기 서버(80)는 임의로 또는 동기화옵션영역이 지시하는 바에 따라 자동으로 센서노드에 커맨드패킷을 보내서 센서노드(20)의 환경설정영역이나 동기화옵션영역의 내용을 변경하여, 센서노드의 통신프로그램이 센서노드의 테이블의 특정 엔트리에 저장된 데이터를 읽어올 수 있다. 물론 이 동작도 커맨드패킷에 의해 수행된다.
이때의 커맨드패킷은 센서노드(20)의 목적지 포트의 루트계층의 저장소에 저장된 다음, 테이블 계층에 의해 읽혀져서 목적지인 센서(11) 포트의 테이블의 특정 엔트리에 기록된다.
그 다음, 센서노드(20)의 응용프로그램은 테이블의 엔트리들을 스캔하여 변화된 엔트리 값을 발견하면 사전에 지정된 처리를 수행한다.
센싱포트는 테이블의 환경설정영역이나 동기화옵션영역에 자동통신 조건이 설정되어 있으면, 서버의 지시가 없더라도 자동으로 통신을 수행한다. 설정한 조건이 되면 센싱한 데이터를 테이블의 지정한 엔트리에 넣거나, 엔트리를 읽어서 커맨드패킷으로 만들어서 서버로 보내는 자동통신이 그 것이다.
상기 서버(80)에서 전송한 커맨드패킷이 센서노드(20) 포트의 설정을 변경하는 것이면, 해당 포트 테이블의 환경설정영역에 저장하여 센서노드(20)의 설정을 변경할 수 있다.
즉, 센서노드(20)의 응용프로그램을 매번 작성하지 않고 설정만으로 포트의 설정을 변경하여 다양한 동작을 수행하게 할 수가 있다.
이처럼 센서노드(20)의 동기화옵션영역에서 지정하는 바에 따라 센서노드의 통신프로그램이 테이블의 특정 엔트리를 서버(80)로 자동 전송할 수 있기 때문에 장치의 응용프로그램은 직접 통신을 수행하지 않으면서, 통신 기능을 수행할 수가 있다.
서버의 응용프로그램이 통신프로그램을 통해서 센서노드에 조건을 설정하고, 조건이 되면 원격지 센서노드(20)의 응용프로그램이 자동으로 온도 등의 데이터를 검출해서 자기 테이블에 쓰면, 조건이 되면 자동으로 이 엔트리를 서버(80)로 전송하여 서버(80)의 테이블의 특정 엔트리에 쓰게 할 수도 있고, 서버(80)의 응용프로그램은 실시간에 원격지 센서노드(20)의 특정포트의 테이블의 특정 엔트리를 임의로 읽어 와서 실시간에 사용 할 수도 있다.
이처럼 두 기기의 장치소프트웨어의 테이블계층, 루트계층, 링크계층 3개 계층(통신프로그램)은 응용계층(=응용프로그램) 개입 없이 데이터를 보내고 받을 수 있으며, 응용프로그램의 동작과 관계없이 통신프로그램에 의해 데이터 통신이 수면 밑에서 비동기적으로 수행된다.
센싱포트와 데이터 통신을 위한 통신포트가 구분되어 하나의 센서노드 안에 복수의 테이블계층(240)이 존재하게 되며, 즉, 복수의 통신프로그램이 존재하게 된다.
위에서 각 과정을 수행하는 노드들의 하드웨어는 마이크로컴퓨터 등의 프로세서, 서버의 중앙처리장치, 컴퓨터의 중앙처리 장치일 수 있다.
좀 더 구체적인 예를 들어 본 발명의 특징적인 구성이 명확하게 나타날 수 있도록 설명한다.
<자동 센서 데이터 저장>
센서노드(20)는 센서(11)에서 측정된 데이터를 자동으로 테이블(200)의 데이터영역(230)에 저장할 수 있다.
즉, 테이블(200)의 환경설정영역(210)에 설정된 조건인 검출 주기, 검출 값(수치), 검출 범위 등에 따라 센서(11)의 데이터를 자동으로 읽어 저장할 수 있다.
예를 들어 환경설정영역(210)에 검출주기가 10분으로 설정된 경우, 응용프로그램은 통신프로그램과 무관하게 센서(11)의 검출 값을 10분 단위로 읽어 테이블(200)의 특정 엔트리에 저장한다.
<테이블 간 동기화>
본 발명이 적용되는 테이블 기반 데이터 통신시스템을 구성하는 각 노드에는 테이블(200)이 포함되어 있으며, 테이블(200)의 동기화옵션영역(220)에 설정한 조건에 따라 다른 노드의 테이블 특정 엔트리와 동기화할 수 있다.
예를 들어 제1기기의 테이블의 동기화옵션영역(220)에 설정된 특정 조건에 따라 제1기기의 테이블의 특정 엔트리를 제2기기의 테이블의 특정 엔트리와 동기화할 수 있다.
<간접 통신>
제1기기의 통신프로그램이 커맨드패킷을 전송하여 제2기기의 통신프로그램이 이를 수신하여 테이블의 특정 엔트리에 데이터를 쓰면, 제2기기의 응용프로그램은 이 데이터를 즉시 읽어 사용하지 않고, 필요한 시점에서 비동기적으로 읽어 사용할 수 있다.
<원격 쓰기 및 확인>
제1기기에서 커맨드패킷을 제2기기로 전송한다. 이때 커맨드는 쓰기 커맨드코드, 상대편 장비의 아이디, 테이블 번호, 테이블 엔트리 주소, 데이터 길이(엔트리 길이)를 포함할 수 있다.
제2기기의 통신프로그램은 수신된 커맨드패킷에서 데이터만 읽어 테이블의 특정 엔트리에 기재한다.
또한, 상기 커맨드패킷에는 '회신(Ack)'커맨드를 더 포함할 수 있다. 기존의 데이터 통신 방식은 통신 프로토콜에 해당하는 동작으로 사전에 통신프로그램이나 응용프로그램 안에서 프로토콜을 고정적으로 프로그래밍했으나, 본 발명에서는 전송 시 커맨드패킷 안에 간단하게 커맨드를 추가하는 방법으로 유연하고 가변적인 통신이 수행되게 한다.
상기 커맨드에 Ack 요청이 있으면, 수신한 데이터를 커맨드에 따라 처리했음을 알리는 데이터를 제1기기의 사전에 약속된 테이블의 특정 엔트리로 회신한다.
좀 더 구체적으로, 제1기기에서 커맨드의 Ack엔트리를 0x00으로 클리어한 다음, 쓰기 커맨드패킷을 보내면, 제2기기에서 데이터를 받아서 테이블의 지정한 엔트리에 쓰고 나서, 제1기기 테이블의 Ack 엔트리에 0이 아닌 다른 값을 기록하는 커맨드패킷을 회신하는 방법으로 통신이 성공했음을 표시하게 한다.
<원격 읽기>
제1기기에서 읽기 커맨드패킷을 제2기기로 송신하여 제2기기의 테이블의 특정 엔트리에 기록된 데이터를 읽어들여 제1기기 테이블의 특정 엔트리에 기록한다.
상기 읽기 커맨드에는 제2기기의 아이디, 테이블번호, 테이블의 엔트리 주소, 읽어올 데이터 길이, 읽어온 데이터를 기록할 자신의 엔트리 주소를 포함할 수 있다.
제1기기의 읽기 커맨드패킷을 수신한 제2기기는 읽기 커맨드가 지정하는 테이블의 특정 엔트리를 읽어 전송하고, 제1기기는 수신된 데이터를 테이블의 특정 엔트리에 기록한다.
이처럼 본 발명은 IoT 데이터통신 환경에서 필요로 하는 통신장치들의 장치소프트웨어를 4개 계층 구조로 분해해서 테이블을 매개로 응용프로그램과 통신프로그램을 이전의 어떤 구조보다도 확실하게 분리해냈다는 점이 특징이다.
날개 없는 선풍기, 바퀴 없는 자동차가 가능한 것처럼, 통신 안 하는 통신프로그램이 가능해진다는 것이다.
본 발명은 상기 실시 예에 한정되지 않고 본 발명의 기술적 요지를 벗어나지 아니하는 범위 내에서 다양하게 수정, 변형되어 실시될 수 있음은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 있어서 자명한 것이다.
10:제어대상장치 11:센서
12:구동부 20:센서노드
30:PC 40:스마트폰
50:통신노드 70:게이트노드
80:서버 100:어플리케이션 계층
200:테이블 240:테이블 계층
210:환경설정영역 220:동기화옵션영역
230:데이터영역 300:루트 계층
400:링크 계층

Claims (6)

  1. 제1기기의 특정 포트 테이블의 동기화옵션영역에 설정된 주기, 수치 또는 범위 등의 조건에 따라, 자동으로 외부 센서 값을 검출하고, 검출된 센서 값을 즉시 전송하지 않고, 제1기기의 테이블의 특정 엔트리에 저장하는 테이블 기반 데이터 통신방법.
  2. 제1기기의 장치소프트웨어의 응용프로그램 개입 없이 통신프로그램이 특정 포트의 테이블의 동기화옵션영역에 설정된 주기, 수치, 범위 등의 조건에 따라, 자동으로 테이블의 특정 엔트리를 읽어서 통신을 통해, 제2기기의 특정 포트의 테이블의 특정 엔트리에 기록하는 것을 특징으로 하는 테이블 기반 데이터 통신방법.
  3. 제1기기가 쓰기 커맨드패킷을 전송하면, 제2기기의 응용프로그램이 아니라 통신프로그램이 받아서 특정 포트의 테이블의 특정 엔트리에 데이터를 쓰는 것을 특징으로 하는 테이블 기반 데이터 통신방법.
  4. 제3항에 있어서,
    상기 커맨드패킷에 회신 요청 커맨드를 포함해서 보내면, 제2기기는 첫번째 커맨드가 지시하는 대로 테이블 엔트리에 데이터를 쓰고, 이어서 두번째 커맨드가 지시하는 바에 따라 테이블의 특정 엔트리를 읽어서 커맨드패킷을 만들어 회신하게 하여, 다시 이 것을 받은 제1기기가 테이블의 특정 엔트리에 저장하게 함으로써, 이 엔트리 값이 변한 것을 보고 통신 성공 여부나 새로운 프로토콜을 창발하게 하는 것을 특징으로 하는 테이블 기반 데이터 통신방법.
  5. 제1기기가 쓰기 커맨드패킷을 전송해서, 제2기기의 특정 포트의 테이블의 특정 엔트리에 데이터를 쓰면, 제2기기의 응용프로그램은 수신된 데이터를 즉시 사용하지 아니하고, 필요한 시점에 읽어서 처리하는 것을 특징으로 하는 테이블 기반 데이터 통신방법.
  6. 제1기기가 읽기 커맨드패킷를 전송하면, 제2기기는 응용프로그램이 아니라 통신프로그램이 받아서, 커맨드가 지정하는 특정 포트의 테이블의 특정 엔트리를 읽어서 데이터를 쓰기 커맨드패킷으로 조립해서 통신을 통해 회신하면, 제1기기는 응용프로그램 개입 없이 통신프로그램이 테이블의 특정 엔트리에 저장하는 것을 특징으로 하는 테이블 기반 데이터 통신방법.
KR1020170129313A 2017-10-11 2017-10-11 테이블 기반 데이터 통신방법 KR20190040531A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170129313A KR20190040531A (ko) 2017-10-11 2017-10-11 테이블 기반 데이터 통신방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170129313A KR20190040531A (ko) 2017-10-11 2017-10-11 테이블 기반 데이터 통신방법

Publications (1)

Publication Number Publication Date
KR20190040531A true KR20190040531A (ko) 2019-04-19

Family

ID=66283499

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170129313A KR20190040531A (ko) 2017-10-11 2017-10-11 테이블 기반 데이터 통신방법

Country Status (1)

Country Link
KR (1) KR20190040531A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101715740B1 (ko) 2016-09-13 2017-03-14 주식회사 유진에스앤씨 유무선 복합형 led 가로등 제어장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101715740B1 (ko) 2016-09-13 2017-03-14 주식회사 유진에스앤씨 유무선 복합형 led 가로등 제어장치

Similar Documents

Publication Publication Date Title
KR102181158B1 (ko) 통신 장치, 제어 장치 및 통신 방법
US8990444B2 (en) Fieldbus gateway using virtual serial fieldbus port and data transmission method thereof
US9141336B2 (en) Data transfer device
JP5233770B2 (ja) ゲートウェイ装置、その制御方法、システム、制御方法を実行させるためのプログラム及びそれを記録した記録媒体
JP4271160B2 (ja) 生産システムにおけるネットワーク開通方法
US10712731B2 (en) Control device, control method, and non-transitory computer-readable recording medium
US7161903B2 (en) Control station, apparatus and network system
KR20190040531A (ko) 테이블 기반 데이터 통신방법
WO2018186160A1 (ja) 伝送局
US20140334341A1 (en) Method and Apparatus for Full Duplex Serial Shifting Mode and Switch Mode Data Transmission
CN104717248A (zh) 文件网络共享方法、服务器及终端
KR100605203B1 (ko) 네트워크 디바이스
CN104717240A (zh) 文件网络共享方法及装置
JP3648996B2 (ja) Faシステム
JP6878705B1 (ja) 通信装置、通信システム、通信方法、およびプログラム
JP4529085B2 (ja) データ取得装置およびデータ取得方法
JP4902621B2 (ja) ログ通信システム
KR20190075629A (ko) 대기 환경 데이터를 전송하는 장치
JP2010026948A (ja) 通信装置
US20230362283A1 (en) Communication processing device, communication processing method and program, and data structure of header part of network layer
JP6064107B1 (ja) 医療機器システム及びそのメモリ共有方法
KR101082553B1 (ko) 감시 및 제어시스템용 입출력 장치의 캔 통신방법
CN117312444A (zh) 一种基于数字双胞胎的上下位机数据同步的方法和系统
CN104717246A (zh) 文件网络共享方法、终端及服务器
JP5490267B2 (ja) データ転送装置

Legal Events

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