KR101810243B1 - 센서 제어 시스템 - Google Patents
센서 제어 시스템 Download PDFInfo
- Publication number
- KR101810243B1 KR101810243B1 KR1020110098833A KR20110098833A KR101810243B1 KR 101810243 B1 KR101810243 B1 KR 101810243B1 KR 1020110098833 A KR1020110098833 A KR 1020110098833A KR 20110098833 A KR20110098833 A KR 20110098833A KR 101810243 B1 KR101810243 B1 KR 101810243B1
- Authority
- KR
- South Korea
- Prior art keywords
- control
- control process
- server
- unit
- processing
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
-
- G—PHYSICS
- G08—SIGNALLING
- G08B—SIGNALLING OR CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
- G08B21/00—Alarms responsive to a single specified undesired or abnormal condition and not otherwise provided for
- G08B21/02—Alarms for ensuring the safety of persons
-
- G—PHYSICS
- G08—SIGNALLING
- G08B—SIGNALLING OR CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
- G08B25/00—Alarm systems in which the location of the alarm condition is signalled to a central station, e.g. fire or police telegraphic systems
- G08B25/007—Details of data content structure of message packets; data protocols
-
- G—PHYSICS
- G08—SIGNALLING
- G08C—TRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
- G08C19/00—Electric signal transmission systems
- G08C19/02—Electric signal transmission systems in which the signal transmitted is magnitude of current or voltage
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Emergency Management (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Telephonic Communication Services (AREA)
Abstract
센서 제어 시스템은 하나 이상의 명령어로 구성되는 제어 프로세스를 생성하는 서버, 그리고 서버로부터 제어 프로세스 정보를 포함하는 제어 메시지를 수신하고, 제어 메시지를 이용하여 제어 프로세스를 처리하며, 제어 프로세스에 대한 처리 결과를 서버로 전송하는 센서 노드를 포함한다. 여기서, 센서 노드는 하나 이상의 물리량을 감지하여 센싱값을 검출하는 센싱부, 그리고 제어 프로세스에 따라 센싱부를 제어하며, 센싱부로부터 수신되는 센싱값을 이용하여 제어 프로세스에 대한 처리 결과를 생성하는 제어부를 포함한다.
Description
본 발명은 센서 제어 시스템에 관한 것이다. 보다 상세하게, 본 발명은 센서 노드를 통해 제어 프로세스를 처리하기 위한 센서 제어 시스템에 관한 것이다.
에이엠아이(Advance Metering Infrastructure, AMI) 시스템은 유무선 통신을 이용하여 원격에서 에너지 사용량의 실시간 검침과 양방향 정보 교환을 통한 효율적인 에너지 사용량 관리를 지원한다. 그리고, 다양한 센서들을 활용한 부가 서비스 분야에서도 이 AMI 시스템이 기반 환경으로 활용 가능하다.
예를 들어, AMI 시스템의 각종 감지 센서를 이용해 댁내 침입과 화재를 감지하고, 경찰서와 연계하여 방범 및 방재 서비스를 수행할 수 있다.
이때, AMI 인프라를 기반으로 독거노인 안전 확인 서비스를 구축하기 위해서는 동작감지 또는 외출감지 센서 등과 같은 센서들을 댁내에 설치하여 독거노인의 안전에 관련된 데이터를 센싱해야 한다.
그러나, 관리 대상이 되는 독거노인의 수가 대규모이며, 지역적으로 넓은 지역에 분포되어 있기 때문에, 설치된 센서 노드들을 관리하는데 많은 인력 및 비용이 발생한다.
종래에는 도 1과 같이 디지털 장치를 중심으로 복수 개의 센서 노드들 즉, 동작 감지 센서, 화재 감지 센서, 가스 감지 센서, 무선 외출 버튼 등을 연결하고, 서버에서 디지털 장치를 통해 센서 노드 제어를 수행한다. 여기서, 디지털 장치는 연결된 센서 노드들의 각기 다른 제어 방식을 처리해야 하기 때문에 일부 국한된 목적으로만 사용된다.
또한, 디지털 장치가 각각 센서마다 각기 다른 다양한 제어 기능을 통합하기 어렵기 때문에, 센서 노드에 대한 온/오프 제어 또는 센싱 주기 변경 등과 같은 단순한 제어만을 제공한다.
또한, 센서 노드에 대한 기능 추가, 삭제, 인터페이스 변경 등과 같은 제어 기능을 변경하기 위해서는 디지털 장치 및 서버도 함께 변경되어야 하기 때문에, 센서 노드를 설치한 이후에 센서 제어 기능 변경이 어렵다는 문제가 있다.
또한, 특정 목적으로 센서의 종류와 수량을 결정한 후, 디지털 장치에 센서 노드들을 연결하는 방식이기 때문에, 다른 분야에 적용 시 센서 종류 변경으로 인해 제어 기능 개발이 새롭게 수행되어야 하므로 범용성이 낮은 문제가 있다. 이때, 낮은 범용성 문제는 다양한 센서 기능들 개발이 요구되어 비용 및 시간적 측면에서 손실이 발생하며, 개발된 센서 제어 기능들의 다양성에 의해서 관리 및 운영이 어려운 문제점이 있다.
본 발명에서 해결하고자 하는 과제는 사용자에 의해 정의되는 제어 프로세스를 센서 노드를 통해 처리할 수 있는 센서 제어 시스템을 제공하는 것이다.
본 발명의 특징에 따른 센서 제어 시스템은 서버 및 센서 노드를 포함한다. 서버는 하나 이상의 명령어로 구성되는 제어 프로세스를 생성한다. 센서 노드는 서버로부터 제어 프로세스 정보를 포함하는 제어 메시지를 수신하고, 제어 메시지를 이용하여 제어 프로세스를 처리하며, 제어 프로세스에 대한 처리 결과를 서버로 전송한다. 여기서, 센서 노드는 하나 이상의 물리량을 감지하여 센싱값을 검출하는 센싱부, 그리고 제어 프로세스에 따라 센싱부를 제어하며, 센싱부로부터 수신되는 센싱값을 이용하여 제어 프로세스에 대한 처리 결과를 생성하는 제어부를 포함한다.
여기서, 제어부는 제어 프로세스 정보를 이용하여 제어 프로세스를 처리하기 위한 프로세스 인스턴스를 생성하는 프로세스 생성부, 그리고 프로세스 인스턴스에 따라 제어 프로세스를 구성하는 각 명령어를 수행하여 제어 프로세스를 처리하는 프로세스 처리부를 포함한다.
이때, 프로세스 처리부는 제어 프로세스를 구성하는 각 명령어에 대응되는 핸들러를 이용하여 제어 프로세스를 처리한다.
또한, 제어부는 프로세스 인스턴스를 저장하는 프로세스 큐를 더 포함하고, 프로세스 처리부는 프로세스 큐에 저장된 복수 개의 프로세스 인스턴스들을 입력된 순서에 따라 순차적으로 처리한다.
또한, 프로세스 처리부는 핸들러로부터 수신되는 스케줄링 신호에 따라 제어 프로세스에 대한 상태를 판단하며, 제어 프로세스에 대한 상태에 따라 제어 프로세스를 제어한다.
이때, 프로세스 생성부는 제어 프로세스를 구성하는 각 명령어에 대한 명령어 처리 정보를 포함하는 프로세스 인스턴스를 생성한다.
또한, 명령어 처리 정보는 제어 프로세스를 구성하는 각 명령어에 대한 핸들러 정보, 속성값, 및 실행순서를 포함한다.
또한, 프로세스 처리부는 핸들러 정보에 대응되는 핸들러를 실행순서에 따라 호출하여 제어 프로세스를 구성하는 각 명령어를 수행한다.
이때, 제어부는 서버로부터 제어 메시지를 수신하고, 처리 결과를 서버로 전송하며, 제어 프로세스에 대한 처리 중에 발생하는 에러 메시지를 서버로 전송하는 메시지 처리부를 더 포함한다.
본 발명의 특징에 따르면, 각 센서 노드가 하나 이상의 명령어로 구성되는 제어 프로세스를 처리함으로써 명령어 조합에 의해 다양한 기능을 수행할 수 있는 효과가 있다.
도 1은 종래의 센서 네트워크를 도시한 도면이다.
도 2는 본 발명의 실시 예에 따른 센서 제어 시스템의 구성을 도시한 도면이다.
도 3은 본 발명의 실시 에에 따른 센서 노드의 구성을 도시한 도면이다.
도 4는 본 발명의 실시 예에 따른 제어부의 구성을 도시한 도면이다.
도 5는 본 발명의 실시 예에 따른 프로세스 인스턴스의 구조를 도시한 도면이다.
도 6은 본 발명의 실시 예에 따른 프로세스 처리 방법을 도시한 도면이다.
도 7은 본 발명의 실시 예에 따른 프로세스 상태 전이도를 도시한 도면이다.
도 8은 본 발명의 실시 예에 따른 프로세스 스케줄링 방법을 도시한 도면이다.
도 9는 본 발명의 실시 예에 따른 메시지 처리부의 구성을 도시한 도면이다.
도 10은 본 발명의 실시 예에 따른 센서 노드간 메시지 전송을 도시한 도면이다.
도 11은 본 발명의 실시 예에 따른 최상위 설정 파일 수정 방법을 도시한 도면이다.
도 12는 본 발명의 실시 예에 따른 독거노인 안전 확인 시스템의 구성을 도시한 도면이다.
도 13은 본 발명의 실시 예에 따른 독거노인 안전 확인 시스템의 모니터링 시스템 화면을 도시한 도면이다.
도 14는 본 발명의 실시 예에 따른 독거노인 안전 확인 시스템의 센서 설정 화면을 도시한 도면이다.
도 2는 본 발명의 실시 예에 따른 센서 제어 시스템의 구성을 도시한 도면이다.
도 3은 본 발명의 실시 에에 따른 센서 노드의 구성을 도시한 도면이다.
도 4는 본 발명의 실시 예에 따른 제어부의 구성을 도시한 도면이다.
도 5는 본 발명의 실시 예에 따른 프로세스 인스턴스의 구조를 도시한 도면이다.
도 6은 본 발명의 실시 예에 따른 프로세스 처리 방법을 도시한 도면이다.
도 7은 본 발명의 실시 예에 따른 프로세스 상태 전이도를 도시한 도면이다.
도 8은 본 발명의 실시 예에 따른 프로세스 스케줄링 방법을 도시한 도면이다.
도 9는 본 발명의 실시 예에 따른 메시지 처리부의 구성을 도시한 도면이다.
도 10은 본 발명의 실시 예에 따른 센서 노드간 메시지 전송을 도시한 도면이다.
도 11은 본 발명의 실시 예에 따른 최상위 설정 파일 수정 방법을 도시한 도면이다.
도 12는 본 발명의 실시 예에 따른 독거노인 안전 확인 시스템의 구성을 도시한 도면이다.
도 13은 본 발명의 실시 예에 따른 독거노인 안전 확인 시스템의 모니터링 시스템 화면을 도시한 도면이다.
도 14는 본 발명의 실시 예에 따른 독거노인 안전 확인 시스템의 센서 설정 화면을 도시한 도면이다.
본 발명을 첨부된 도면을 참고하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 고지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 해당 기술분야에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
이하에서는 도면을 참고하여 본 발명의 실시 예에 따른 센서 제어 시스템에 대해 설명한다.
먼저, 도 2를 참고하여 본 발명의 실시 에에 따른 센서 제어 시스템의 구성에 대해 설명한다.
도 2는 본 발명의 실시 예에 따른 센서 제어 시스템의 구성을 도시한 도면이다.
도 2에 도시된 바와 같이, 센서 제어 시스템(100)은 서버(110), 싱크 노드(120), 및 하나 이상의 센서 노드(130)를 포함하여 구성된다.
서버(110)는 센서 노드(130)의 수행 결과를 가공하여 사용자에게 전달하며, 센서 노드(130)를 제어할 수 있는 인터페이스를 사용자에게 제공한다.
여기서, 서버(110)는 사용자로부터 입력되는 다수의 명령어(Command)를 조합하여 텍스트 형식의 제어 프로세스를 생성하고, 생성된 제어 프로세스를 센서 노드(130)로 전송할 수 있다. 이때, 명령어는 최소 작업 단위에 해당하며, 서버(110)에서는 표 1에 기재된 명령어들을 지원할 수 있다.
표 1에서, "Sensing" 명령어는 센싱과 관련된 기능을 제공하고, "Send", "If", "Period", 및 "Delete Process" 명령어는 태스크(task)와 관련된 기능을 제공하고, "Info" 명령어는 센서 상태 모니터링과 관련된 기능을 제공하며, "Actuate", "Sleep", 및 "Reboot" 명령어는 센서 제어와 관련된 기능을 제공한다.
이때, 서버(110)는 "Info" 명령어를 통해 센서 노드(130)의 상태 정보를 획득할 수 있으며, 표 2에 기재된 "Info" 명령어의 속성값을 통해 센서 노드(130)의 상태 정보를 획득할 수 있다.
또한, 서버(110)는 "Sensing" 명령어를 통해 센서 노드(130)의 센서 종류를 변경할 수 있으며, 표 3에 기재된 "Sensing" 명령어의 속성값을 통해 센서 노드(130)의 기능을 변경할 수 있다.
또한, 서버(110)는 "Actuate" 명령어를 통해 센서 노드(130)의 동작을 제어할 수 있으며, 표 4에 기재된 "Actuate" 명령어의 속성값을 통해 센서 노드(130)의 동작을 제어할 수 있다.
서버(110)는 표 1 내지 표 4에 기재된 명령어 또는 속성값을 이용하여 제어 프로세스를 생성할 수 있다.
예를 들어, 서버(110)는 400 밀리세컨드(ms)마다 반복적으로 습도를 센싱하여 전송할 것을 지시하기 위해서 "Period", "Sensing", 및 "Send" 명령어를 이용하여 "Period(400, 1) -> Sensing(Humidity, 'A') -> Send()"와 같은 제어 프로세스를 생성하고, 생성된 제어 프로세스를 센서 노드(130)로 전송할 수 있다.
또한, 서버(110)는 원격지에 있는 머신의 기동 여부를 확인하기 위해서 "Info" 및 "Send" 명령어를 이용하여 "Info(LOCAL_ADDRESS, X) -> Send()"와 같은 제어 프로세스를 생성하고, 생성된 제어 프로세스를 센서 노드(130)로 전송할 수 있다.
또한, 서버(110)는 센서 노드(130)의 전압이 1.0 볼트(V) 이하이면 센서 노드(130)를 대기 상태로 진입시키기 위해서 "Sensing", "If", 및 "Sleep" 명령어를 이용하여 "Sensing(Voltage, Y) -> If(Y, <, 1.0) -> Sleep()"과 같은 제어 프로세스를 생성하고, 생성된 제어 프로세스를 센서 노드(130)로 전송할 수 있다.
이와 같이, 명령어를 조합하여 제어 프로세스를 구성하는 방식은 사용자가 다양한 작업을 수행할 수 있기 때문에 매우 유용한 형태이며, 작업에 대한 표현력이 우수하여 사용자의 다양한 작업 지시를 수용할 수 있다.
싱크 노드(120)는 서버(110)와 센서 노드(130)를 중계한다. 여기서, 싱크 노드(120)는 서버(110)로부터 수신되는 제어 프로세스를 센서 노드(130)로 전송하며, 센서 노드(130)로부터 수신되는 처리 결과를 서버(110)로 전송한다.
센서 노드(130)는 싱크 노드(120)를 통해 수신되는 제어 프로세스를 처리하며, 처리 결과를 싱크 노드(120)를 통해 서버(110)로 전송한다.
여기서, 센서 노드(130)는 센서 노드용 운영 체제를 기반으로 하며, 센서 노드용 운영 체제 상에서 제어 프로세스를 구현할 수 있다. 이때, 센서 노드(130)는 "TinyOS"를 기반으로 할 수 있다.
또한, 센서 노드(130)는 초기 설정 코드에 따라 동작할 수 있으며, 서버(110)로부터 수신되는 제어 프로세스를 처리할 수도 있다.
다음은, 도 3을 참고하여 본 발명의 실시 예에 따른 센서 노드에 대해 설명한다.
도 3은 본 발명의 실시 에에 따른 센서 노드의 구성을 도시한 도면이다.
도 3에 도시된 바와 같이, 센서 노드(130)는 제어부(131) 및 하나 이상의 센싱부(132)를 포함하여 구성된다.
제어부(131)는 센싱부(132)에 대한 동작을 제어하여 센싱부(132)로부터 센싱값을 수집하고, 수집된 센싱값을 이용하여 처리 결과를 생성하며, 생성된 처리 결과를 서버(110)로 전송한다.
여기서, 제어부(131)는 서버(110)로부터 제어 메시지가 수신되면 제어 메시지에 포함된 제어 프로세스 정보에 대응되는 프로세스를 생성하고, 생성된 프로세스를 수행하여 처리 결과를 서버(110)로 전송할 수 있다.
센싱부(132)는 하나 이상의 물리량을 감지하는 장치이며, 제어부(131)의 제어에 따라 특정 물리량에 대한 센싱값을 검출하고, 검출된 센싱값을 제어부(131)에게 제공한다. 이때, 센싱부(132)는 온도, 조도, 전압, 습도, 적외선 등의 물리량을 감지할 수 있다.
이때, 센서 노드(130)는 엘이디 조명, 스피커(미도시) 등을 더 포함할 수 있다.
다음은, 도 4를 참고하여 본 발명의 실시 예에 따른 센서 노드의 제어부에 대해 설명한다.
도 4는 본 발명의 실시 예에 따른 제어부의 구성을 도시한 도면이다.
도 4에 도시된 바와 같이, 제어부(131)는 메시지 처리부(131a), 프로세스 생성부(131b), 프로세스 큐(131c), 프로세스 처리부(131d), 핸들러 저장부(131e), 및 메시지 라우팅부(131f)를 포함하여 구성된다.
메시지 처리부(131a)는 송수신 메시지를 처리한다.
여기서, 메시지 처리부(131a)는 서버(110)로부터 수신되는 제어 메시지에 대한 디코딩을 수행하며, 제어 메시지에 대응되는 프로세스의 처리 결과에 대한 인코딩을 수행하고, 프로세스 수행 중 발생하는 에러 메시지에 대한 인코딩을 수행할 수 있다. 이때, 메시지 처리부(131a)는 텍스트 기반의 메시지 처리를 수행할 수 있다.
프로세스 생성부(131b)는 특정 동작이나 기능의 수행을 명령하는 제어 메시지에 대응되는 프로세스를 처리하기 위한 프로세스 인스턴스를 생성한다.
여기서, 프로세스 생성부(131b)는 제어 메시지에 포함된 각각의 명령어에 대응되는 명령어 처리 정보를 생성하여 복수 개의 명령어들 각각에 대한 명령어 처리 정보를 포함하는 명령어 리스트(Command List)를 생성할 수 있다. 이때, 특정 명령어에 대응되는 명령어 처리 정보는 해당 명령어에 대한 핸들러 정보, 속성값, 및 실행순서를 포함할 수 있으며, 해당 명령어에 대한 실행순서는 인덱스로 표시할 수 있다.
또한, 프로세스 생성부(131b)는 생성된 프로세스 인스턴스를 프로세스 큐(131c)에 삽입할 수 있다.
프로세스 큐(131c)는 프로세스 생성부(131b)를 통해 생성되는 프로세스 인스턴스를 저장하며, 저장된 프로세스 인스턴스를 프로세스 처리부(131d)로 전달한다.
여기서, 프로세스 큐(131c)는 선입 선출(First In First Out, 이하에서는 'FIFO'라고도 함) 방식에 따라 프로세스 인스턴스를 프로세스 처리부(131d)로 전달할 수 있다.
프로세스 처리부(131d)는 프로세스 큐(131c)로부터 전달된 프로세스 인스턴스에 따라 센싱부(132)를 제어하여 제어 메시지에 대응되는 프로세스를 수행하며, 센싱부(132)로부터 수집되는 센싱값을 이용하여 해당 프로세스에 대한 처리 결과를 생성한다.
여기서, 프로세스 처리부(131d)는 프로세스 인스턴스를 이용하여 제어 메시지에 포함된 각각의 명령어를 수행하는 핸들러를 호출할 수 있다. 즉, 프로세스 처리부(131d)는 특정 명령어를 수행하기 위해서 해당 명령어에 대응되는 명령어 처리 정보에 포함된 핸들러 정보를 이용하여 해당 명령어를 수행하는 핸들러를 호출한다.
또한, 프로세스 처리부(131d)는 프로세스 큐(131c)에 저장된 복수 개의 프로세스 인스턴스들에 대한 스케줄링을 수행한다. 이때, 프로세스 처리부(131d)는 처리 중인 프로세스 인스턴스에 대한 상태를 결정하고, 결정된 상태에 따라 해당 프로세스 인스턴스에 스케줄링을 수행할 수 있다.
핸들러 저장부(131e)는 센서 노드(130)에서 지원하는 명령어를 수행하는 핸들러를 저장한다. 여기서, 핸들러 저장부(131e)는 복수 개의 명령어들에 대응되는 복수 개의 핸들러들을 저장할 수 있다.
메시지 라우팅부(131f)는 센서 노드들간의 메시지 전달을 수행한다.
다음은, 도 5를 참고하여 본 발명의 실시 예에 따른 프로세스 인스턴스에 대해 설명한다.
도 5는 본 발명의 실시 예에 따른 프로세스 인스턴스의 구조를 도시한 도면이다.
도 5에 도시된 바와 같이, 프로세스 생성부(131b)는 사용자의 요청 메시지를 처리할 수 있도록 제어 프로세스 초기화 작업을 수행한다. 이 초기화 작업은 제어 프로세스를 구성하는 커맨더들의 커맨드 핸들러들을 초기화 하는 작업과 제어 프로세스 자체에 대한 초기화 작업으로 이루어진다. 프로세스 생성부(131b)에 의해서 초기화된 태스크는 프로세스 처리부(131d)에 전달되어 처리가 이루어지게 된다.
프로세스 생성부(131b)는 원격지의 사용자로부터 전달받은 제어 프로세스 처리를 위해서 제어 프로세스를 구성하는 각 커맨드들의 생성자(construct)들을 호출하여 각 커맨드들을 초기화 시킨다. 이 작업을 통해서 초기화된 커맨드들의 커맨드 핸들러들은 실행 순서에 따라서 리스트로 작성된다.
그리고 프로세스 생성부(131b)는 제어 프로세스에 관련된 속성들을 설정한다. 초기화된 제어 프로세스는 명령어 리스트(Command List)로 구성된다.
프로세스 생성부(131b)에 의해 초기화된 제어 프로세스의 프로세스 인스턴스(200)는 프로세스 구조체(210) 및 하나 이상의 커맨드 구조체(220)로 구성된다.
여기서, 프로세스 구조체(210)의 내부 속성값은 표 5와 같다.
커맨드 구조체(220)는 특정 기능을 수행하는 모듈로써 생성자, 핸들러, 그리고 소멸자를 기본 구성으로 한다. 제어 프로세스 초기화시 구성되는 커맨드들의 초기화 작업을 수행을 위하여 프로세스 생성부(131b)에 의해서 해당 커맨드 생성자가 호출되고, 커맨드 핸들러는 커맨드의 특정 기능을 수행한다. 그리고 커맨드 소멸자는 해당 커맨드의 종료 작업 수행을 위하여 프로세스 처리부(131d)에 의해서 호출된다.
이때, 각 커맨드는 서로 독립적으로 이루어져 있기 때문에 다른 커맨드의 수행에 영향을 줄 수 없다. 이것은 특정 커맨드에서 에러가 발생하여도 다른 제어 프로세스 수행에 영향을 끼치지 않는 장점을 갖는다.
다음은, 도 6을 참고하여 본 발명의 실시 예에 따른 프로세스 처리부가 프로세스 큐에 등록된 프로세스를 처리하는 방법에 대해 설명한다.
도 6은 본 발명의 실시 예에 따른 프로세스 처리 방법을 도시한 도면이다.
도 6에 도시된 바와 같이, 프로세스 처리부(131d)는 프로세스에 대한 수행과 관리에 관련된 작업을 수행한다. 즉, 프로세스 처리부(131d)는 프로세스 생성자(131b)에 의해 프로세스 큐(131c)에 등록된 프로세스들을 FIFO 방식에 따라 수행한다.
여기서, 프로세스 처리부(131d)는 선택된 프로세스의 상태 정보를 기반으로 프로세스를 구성하는 명령어들을 실행순서에 따라 명령어들을 처리하는 핸들러들을 순서대로 실행한다.
또한, 프로세스 처리부(131d)는 이전에 등록된 프로세스를 제거하는 작업도 수행할 수 있다. 이때, 프로세스 처리부(131d)는 반복적으로 수행되는 프로세스가 더 이상 필요 없어진 경우 프로세스를 제거할 수 있다.
이와 같이, 프로세스 처리부(131d)는 센서 노드용 운영체제의 스케줄러와 별개로 동작하는 응용 스케줄러로, 센서 노드용 운영체제의 스케줄러에 의해서 동작하는 초기 설정 코드의 수행에 영향을 주지 않고 독립적으로 수행될 수 있다.
프로세스 처리부(131d)는 프로세스 큐(131c)에서 FIFO 방식에 따라 프로세스를 선택하고, 선택된 프로세스를 수행하기 위해 일시적으로 프로세스 큐(131c)에서 프로세스를 삭제한다. 이때, 선택된 프로세스는 작업을 수행하는 명령어 리스트와 명령어 수행 순서를 나타내는 "Index" 변수를 갖는다.
여기서, 프로세스 처리부(131d)는 "Index" 변수에 의해 순차적으로 명령어를 수행시킨다. 만일, 특정 명령어에서 스케쥴링 정지를 요구하면, 프로세스 처리부(131d)는 활성 프로세스 리스트에서 새로운 프로세스를 삭제시켜 수행한다.
다음은, 도 7을 참고하여 본 발명의 실시 예에 따른 프로세스 처리부가 프로세스의 상태를 전이하는 방법에 대해 설명한다.
도 7은 본 발명의 실시 예에 따른 프로세스 상태 전이도를 도시한 도면이다.
도 7에 도시된 바와 같이, 프로세스는 프로세스 생성부(131b)에서 생성된 제어 프로세스가 프로세스 큐(131c)에 삽입되면 "준비" 상태에 진입하게 된다.
이후, 프로세스는 FIFO 방식으로 프로세스 처리부(131d)에 의해 선택되면 "실행" 상태로 진입한다.
만약, "실행" 상태에서 실행 중에 이벤트를 기다려야 하는 경우, 프로세스는 "대기" 상태로 진입한다. 이때, 프로세스 처리부(131d) 점유한 중앙처리장치(CPU)를 릴리즈 시킬 수 있다.
다음, 프로세스는 수행이 완료되면 "종료" 상태로 진입한다. 이때, 프로세스 처리부(131d) 중앙처리장치를 릴리즈 시킬 수 있다.
여기서, 특정 프로세스가 "대기" 상태로 진입하거나 다른 프로세스에게 센서 노드(130)의 자원을 양도하는 작업은 현재 명령어를 수행하는 커맨더에 의해 판단된다.
예를 들어, 습도를 샘플링 하는 "Read" 명령어를 수행한 후 "ReadDone" 이벤트를 기다려야 하는 경우, 해당 커맨더는 "STOP" 신호를 프로세스 처리부(131d)로 전달하고, 해당 프로세스는 "ReadDone" 이벤트를 수신할 때까지 "대기" 상태로 진입한다. 이때, 프로세스 처리부(131d)는 프로세스 큐(131c)에서 새로운 프로세스를 선택하여 "준비" 상태에서 "실행" 상태로 변경한다.
또한, 핸들러가 프로세스 처리부(131d)로 전송하는 스케줄러 신호는 표 5와 같다.
다음은, 도 8을 참고하여 본 발명의 실시 예에 따른 프로세스 처리부가 프로세스를 스케줄링하는 방법에 대해 설명한다.
도 8은 본 발명의 실시 예에 따른 프로세스 스케줄링 방법을 도시한 도면이다.
도 8에 도시된 바와 같이, 프로세스 처리부(131d)는 프로세스 큐(131c)에 프로세스가 존재하는지 판단한다(S100).
만약, 프로세스 큐(131c)에 프로세스가 존재하는 경우, 프로세스 처리부(131d)는 FIFO 방식에 따라 어느 하나의 프로세스를 선택한다(S105).
이후, 프로세스 처리부(131d)는 선택된 프로세스의 프로세스 처리 정보를 수집한다(S110). 여기서, 프로세스 처리 정보는 커맨드 인덱스 값과 커맨드 핸들러 리스트를 포함한다.
다음, 프로세스 처리부(131d)는 커맨드 인덱스 값에 대응되는 커맨드 핸들러를 수행한다(S115).
이후, 프로세스 처리부(131d)는 커맨드 핸들러의 결과값이 "STOP"인지 판단한다(S120).
만약, 커맨드 핸들러의 결과값이 "STOP"이 아닌 경우, 프로세스 처리부(131d)는 커맨드 핸들러의 결과값이 "NEXT"인지 판단한다(S125).
만약, 커맨드 핸들러의 결과값이 "NEXT"가 아닌 경우, 프로세스 처리부(131d)는 커맨드 핸들러의 결과값이 "TERMINATE"인지 판단한다(S130).
만약, 커맨드 핸들러의 결과값이 "TERMINATE"가 아닌 경우, 프로세스 처리부(131d)는 커맨드 핸들러의 결과값이 "KILL"인지 판단한다(S135).
만약, 커맨드 핸들러의 결과값이 "KILL"인 경우, 프로세스 처리부(131d)는 프로세스에 대한 에러를 처리한다(S140).
다음, 프로세스 처리부(131d)는 프로세스 큐(131c)에서 선택된 프로세스를 삭제한다(S145).
한편, 커맨드 핸들러의 결과값이 "STOP"인 경우, 프로세스 처리부(131d)는 선택된 프로세스를 프로세스 큐(131c)의 맨 뒤로 이동시킨다(S150).
한편, 커맨드 핸들러의 결과값이 "NEXT"인 경우, 프로세스 처리부(131d)는 커맨드 인덱스의 값을 증가시킨다(S155).
다음은, 도 9를 참고하여 본 발명의 실시 예에 따른 메시지 처리부가 송수신 메시지를 처리하는 방법에 대해 설명한다.
도 9는 본 발명의 실시 예에 따른 메시지 처리부의 구성을 도시한 도면이다.
도 9에 도시된 바와 같이, 메시지 처리부(131a)는 서버(110)에서 전송하는 제어 프로세스 정보의 디코딩, 수행 완료된 제어 프로세스의 처리 결과를 서버(110)에 전송하기 위해서 인코딩, 및 제어 프로세스 수행 중 발생된 에러를 인코딩하는 작업을 수행하며, 프로세스 수신부(310), 결과 송신부(320), 및 에러 송신부(330)를 포함하여 구성된다.
프로세스 수신부(310), 결과 송신부(320), 및 에러 송신부(330)는 외부와 송수신을 위해서 사용하는 메시지의 인코딩과 디코딩을 수행한다.
프로세스 수신부(310)는 서버(110)로부터 제어 프로세스를 수신하여 디코딩 한 후, 프로세스 생성부(131b)로 전달하는 역할을 한다.
결과 송신부(320)는 제어 프로세스의 결과를 인코딩하여 전송하는 역할을 수행한다. 이때, 사용되는 응답 메시지의 인코딩 포맷은 표 7과 같은 구조체를 사용한다. 또한, 제어 프로세스 수행 완료 후, 수행 결과는 결과 송신부(320)의 내부 큐(Queue)에 삽입(Push)되고, 결과 송신부(320)는 이를 순차적으로 서버(110)에 전송한다.
에러 송신부(330)는 제어 프로세스 수행 시 예기치 못한 에러가 발생하는 경우 이를 사용자에게 전송하는 역할을 수행한다. 이 에러 메시지는 큐에 삽입되지 않고, 바로 전송 작업을 수행한다. 따라서, 에러 송신부(330)는 결과 송신부(320)보다 더 처리 속도를 갖게 된다.
다음은, 도 10을 참고하여 본 발명의 실시 예에 따른 메시지 라우팅부가 메시지를 전송하는 방법에 대해 설명한다.
도 10은 본 발명의 실시 예에 따른 센서 노드간 메시지 전송을 도시한 도면이다.
도 10에 도시된 바와 같이, 각 센서 노드(130a, 130b, 130c)에서 발생하는 메시지를 서버(110)까지 전달하기 위해서는 라우팅 프로토콜이 필요하기 때문에 메시지 라우팅부(131f)는 라우팅 프로토콜을 지원한다. 메시지 라우팅부(131f)는 "Send"와 "Receive" 인터페이스를 제공하여 다양한 라우팅 프로토콜을 적용할 수 있도록 표준 인터페이스 역할을 수행한다. 따라서, 시스템 관리자는 주변 환경을 고려하여 다양한 라우팅 프로토콜을 적용할 수 있다.
여기서, 메시지 라우팅부(131f)는 "Flooding" 라우팅 프로토콜을 제공할 수 있다.
다음은, 도 11을 참고하여 본 발명의 실시 예에 따른 센서 노드에 원격 센서 제어 시스템을 적재하는 방법에 대해 설명한다.
도 11은 본 발명의 실시 예에 따른 최상위 설정 파일 수정 방법을 도시한 도면이다.
도 11에 도시된 바와 같이, 기존 센서 응용 코드의 변경없이 센서 노드에 적재 시키기 위해서 최상위 설정 파일(400)을 오픈하여 본 발명을 적재한다. 최상위 설정 파일(400)을 수정 후 컴파일하여 센서 노드(130)에 로딩하면 기존 센서 응용과 독립적으로 동작하는 센서 제어 기능을 추가할 수 있다.
이때, 센서 노드(130)에 적재되는 원격 제어 시스템은 기존 센서 응용과는 별개로 고유의 메시지 포맷과 라우팅 프로토콜을 갖는다. "ActiveMessage" 컴포넌트를 통해서 송수신되는 메시지는 변수 "AM_Type"에 의해서 기존 센서 응용으로 구분된다. 따라서, 기존의 서버측 응용의 변경 없이 원격 제어 시스템을 적재할 수 있다.
다음은, 도 12 내지 14를 참고하여 본 발명의 실시 예에 따른 센서 제어 시스템을 이용한 독거노인 안전 확인 시스템에 대해 설명한다.
도 12는 본 발명의 실시 예에 따른 독거노인 안전 확인 시스템의 구성을 도시한 도면이다.
도 12에 도시된 바와 같이, 독거노인 안전 확인 시스템(500)은 댁내에 하나 이상의 센서 노드(130)를 설치하고, 센서 노드(130)의 센싱 데이터를 데이터 수집 장치(510)에서 수집하며, 데이터 수집 장치(510)가 전력선 통신을 통해 수집된 센싱 데이터를 데이터 획득 서버(520)로 전송한다.
이를 통해, 독거노인 안전 확인 시스템(500)은 전력 사용량 등과 같은 센싱 데이터를 기반으로 독거노인 안전 확인 서비스를 제공할 수 있다.
도 13은 본 발명의 실시 예에 따른 독거노인 안전 확인 시스템의 모니터링 시스템 화면을 도시한 도면이다.
도 13에 도시된 바와 같이, 독거노인 안전 확인 시스템(500)의 관리자는 모니터링 시스템(600)에 접속하여 독거노인 안전 확인 서비스 및 댁내의 센서 노드(130)의 모니터링 및 제어를 수행할 수 있다.
도 14는 본 발명의 실시 예에 따른 독거노인 안전 확인 시스템의 센서 설정 화면을 도시한 도면이다.
도 14에 도시된 바와 같이, 독거노인 안전 확인 시스템(500)의 관리자는 센서들의 상세 모니터링 정보 및 센서 제어를 위하여 도 13의 "센서 설정" 버튼을 클릭하여 센서 상세 정보 창으로 이동할 수 있다.
센서 설정 화면(700)에서 "센서 정보"는 간단한 센서 정보를 나타내고, "센서 모니터링"은 운영중인 센서 노드의 동적 정보를 표현한다. 또한, "센서 제어"는 "Reboot", "Sleep", 그리고 "Ping"과 같이 간단한 센서 제어를 지원한다. 또한, "제어 프로세스"는 댁내 센서 노드를 제어하는 프로세스를 나타내는 창으로 사용자가 직접 수정할 수도 있다.
이상에서와 같이 도면과 명세서에서 최적의 실시 예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100: 센서 제어 시스템
110: 서버
120: 싱크 노드
130, 130a, 130b, 130c: 센서 노드
131: 제어부
131a: 메시지 처리부
131b: 프로세스 생성부
131c: 프로세스 큐
131d: 프로세스 처리부
131e: 핸들러 저장부
131f: 메시지 라우팅부
132: 센싱부
200: 프로세스 인스턴스
210: 프로세스 구조체
220: 커맨드 구조체
310: 프로세스 수신부
320: 결과 송신부
330: 에러 송신부
400: 최상위 설정 파일
500: 독거노인 안전 확인 시스템
510: 데이터 수집 장치
520: 데이터 획득 서버
600: 모니터링 시스템
700: 센서 설정 화면
110: 서버
120: 싱크 노드
130, 130a, 130b, 130c: 센서 노드
131: 제어부
131a: 메시지 처리부
131b: 프로세스 생성부
131c: 프로세스 큐
131d: 프로세스 처리부
131e: 핸들러 저장부
131f: 메시지 라우팅부
132: 센싱부
200: 프로세스 인스턴스
210: 프로세스 구조체
220: 커맨드 구조체
310: 프로세스 수신부
320: 결과 송신부
330: 에러 송신부
400: 최상위 설정 파일
500: 독거노인 안전 확인 시스템
510: 데이터 수집 장치
520: 데이터 획득 서버
600: 모니터링 시스템
700: 센서 설정 화면
Claims (9)
- 하나 이상의 명령어로 구성되는 제어 프로세스를 생성하는 서버; 및
상기 서버로부터 제어 프로세스 정보를 포함하는 제어 메시지를 수신하고, 상기 제어 메시지를 이용하여 상기 제어 프로세스를 처리하며, 상기 제어 프로세스에 대한 처리 결과를 상기 서버로 전송하는 센서 노드를 포함하며,
상기 센서 노드는
하나 이상의 물리량을 감지하여 센싱값을 검출하는 센싱부; 및
상기 제어 프로세스에 따라 상기 센싱부를 제어하며, 상기 센싱부로부터 수신되는 센싱값을 이용하여 상기 제어 프로세스에 대한 처리 결과를 생성하는 제어부를 포함하며,
상기 제어부는
상기 제어 프로세스 정보를 이용하여 상기 제어 프로세스를 처리하기 위한 프로세스 인스턴스를 생성하는 프로세스 생성부;
상기 프로세스 인스턴스에 따라 상기 제어 프로세스를 구성하는 각 명령어를 수행하여 상기 제어 프로세스를 처리하는 프로세스 처리부; 및
상기 프로세스 인스턴스를 저장하는 프로세스 큐를 포함하며,
상기 프로세스 처리부는 센서 노드용 운영체제의 스케줄러와 별개로 동작하는 응용 스케줄러로, 센서 노드용 운영체제의 스케줄러에 의해서 동작하는 초기 설정 코드의 수행에 영향을 주지 않고 독립적으로 수행하며, 반복적으로 수행되는 프로세스가 더 이상 필요 없어진 경우 프로세스를 제거하는 것을 특징으로 하는 센서 제어 시스템. - 삭제
- 청구항 1에 있어서,
상기 프로세스 처리부는
상기 제어 프로세스를 구성하는 각 명령어에 대응되는 핸들러를 이용하여 상기 제어 프로세스를 처리하는 센서 제어 시스템. - 청구항 1에 있어서,
상기 프로세스 처리부는
상기 프로세스 큐에 저장된 복수 개의 프로세스 인스턴스들을 입력된 순서에 따라 순차적으로 처리하는 센서 제어 시스템. - 청구항 3에 있어서,
상기 프로세스 처리부는
상기 핸들러로부터 수신되는 스케줄링 신호에 따라 상기 제어 프로세스에 대한 상태를 판단하며, 상기 제어 프로세스에 대한 상태에 따라 상기 제어 프로세스를 제어하는 센서 제어 시스템. - 청구항 1에 있어서,
상기 프로세스 생성부는
상기 제어 프로세스를 구성하는 각 명령어에 대한 명령어 처리 정보를 포함하는 상기 프로세스 인스턴스를 생성하는 센서 제어 시스템. - 청구항 6에 있어서,
상기 명령어 처리 정보는
상기 제어 프로세스를 구성하는 각 명령어에 대한 핸들러 정보, 속성값, 및 실행순서를 포함하는 센서 제어 시스템. - 청구항 7에 있어서,
상기 프로세스 처리부는
상기 핸들러 정보에 대응되는 핸들러를 상기 실행순서에 따라 호출하여 상기 제어 프로세스를 구성하는 각 명령어를 수행하는 센서 제어 시스템. - 청구항 1에 있어서,
상기 제어부는
상기 서버로부터 상기 제어 메시지를 수신하고, 상기 처리 결과를 상기 서버로 전송하며, 상기 제어 프로세스에 대한 처리 중에 발생하는 에러 메시지를 상기 서버로 전송하는 메시지 처리부를 더 포함하는 센서 제어 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110098833A KR101810243B1 (ko) | 2011-09-29 | 2011-09-29 | 센서 제어 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110098833A KR101810243B1 (ko) | 2011-09-29 | 2011-09-29 | 센서 제어 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130034775A KR20130034775A (ko) | 2013-04-08 |
KR101810243B1 true KR101810243B1 (ko) | 2017-12-21 |
Family
ID=48436782
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110098833A KR101810243B1 (ko) | 2011-09-29 | 2011-09-29 | 센서 제어 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101810243B1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102082858B1 (ko) * | 2019-11-28 | 2020-02-28 | (주)휴컨 | 밀폐공간 저전력 모니터링 장치 및 방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006344017A (ja) * | 2005-06-09 | 2006-12-21 | Hitachi Ltd | センサネットワークシステム及びセンサネットワークのデータ処理方法 |
-
2011
- 2011-09-29 KR KR1020110098833A patent/KR101810243B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006344017A (ja) * | 2005-06-09 | 2006-12-21 | Hitachi Ltd | センサネットワークシステム及びセンサネットワークのデータ処理方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20130034775A (ko) | 2013-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112637318B (zh) | 一种面向存储完整性的智能网关***、装置及其控制方法 | |
US9705962B2 (en) | Asynchronous reporting system | |
WO2022001674A1 (zh) | 用于微型智能传感器的通信***、方法和装置 | |
CN101197812B (zh) | 一种实现页面调用的***及方法 | |
CN105450654B (zh) | 基于中间件技术的智能家居开发平台及其业务开发方法 | |
CN102297493A (zh) | 监控空调机组的***和方法 | |
Zhou et al. | Toward the Internet of Things application and management: A practical approach | |
Silva et al. | PRISMA: A publish-subscribe and resource-oriented middleware for wireless sensor networks | |
CN102387521A (zh) | 对无线传感器网络节点的状态监测方法及*** | |
US20160352577A1 (en) | Multiple gateway virtualization | |
Liu et al. | Dynamic service model based on context resources in the internet of things | |
Wood et al. | SenQ: An embedded query system for streaming data in heterogeneous interactive wireless sensor networks | |
KR101810243B1 (ko) | 센서 제어 시스템 | |
Gao et al. | Structure of wireless sensors network based on TinyOS | |
CN104281078A (zh) | 一种红外设备集中控制*** | |
KR20140003324A (ko) | M2m 시스템에서 동적 보고 스케줄링을 구현하는 방법 및 장치 | |
CN105916184B (zh) | 一种符合ISA100.11a标准的工业无线传感网终端实现方法 | |
KR20090039904A (ko) | 무선 네트워크 시스템 및 그에 따른 디바이스 제어 방법 | |
KR101673755B1 (ko) | Dds 기반의 사물 인터넷의 네트워크와 지그비 네트워크와의 연동 시스템 및 그 방법 | |
CN106231694A (zh) | 一种嵌入式无线传感网络网关 | |
KR101110675B1 (ko) | 원격 검침 시스템의 비동기 명령 수행 방법 | |
CN110347396B (zh) | ***构建方法、控制方法、装置、控制***及计算设备 | |
CN105553788B (zh) | 家庭传感网络中的节点以及触发节点工作的控制方法 | |
KR20160130622A (ko) | 저전력 무선 센서네트워크에서의 명령어 처리 방법 | |
SHAMS et al. | Building automation (IoT) by WSN |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |