KR20160088982A - 복수의 제어기간의 정밀한 시간 기록을 포함하는 데이터 동기화 시스템 및 방법 - Google Patents

복수의 제어기간의 정밀한 시간 기록을 포함하는 데이터 동기화 시스템 및 방법 Download PDF

Info

Publication number
KR20160088982A
KR20160088982A KR1020150007955A KR20150007955A KR20160088982A KR 20160088982 A KR20160088982 A KR 20160088982A KR 1020150007955 A KR1020150007955 A KR 1020150007955A KR 20150007955 A KR20150007955 A KR 20150007955A KR 20160088982 A KR20160088982 A KR 20160088982A
Authority
KR
South Korea
Prior art keywords
time
data
controllers
synchronization
server
Prior art date
Application number
KR1020150007955A
Other languages
English (en)
Other versions
KR101645260B1 (ko
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 KR1020150007955A priority Critical patent/KR101645260B1/ko
Publication of KR20160088982A publication Critical patent/KR20160088982A/ko
Application granted granted Critical
Publication of KR101645260B1 publication Critical patent/KR101645260B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17325Synchronisation; Hardware support therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

본 발명은 로봇의 제어 시스템에 관한 것으로서, 더 상세하게는 복수의 제어기간에 데이터 전달을 위한 복수의 서버와 클라이언트 구조로 구성된 동기화 방법을 제시하며, 동기화에서 중요한 시간 기록(timestamp)를 구하는 데이터 동기화 시스템 및 방법에 대한 것이다.

Description

복수의 제어기간의 정밀한 시간 기록을 포함하는 데이터 동기화 시스템 및 방법{System and Method for synchronizing data including timestamp between plural controllers}
본 발명은 로봇의 제어 시스템에 관한 것으로서, 더 상세하게는 복수의 제어기간에 데이터 전달을 위한 복수의 서버와 클라이언트 구조로 구성된 동기화 방법을 제시하며, 동기화에서 중요한 시간 기록(timestamp)를 구하는 데이터 동기화 시스템 및 방법에 대한 것이다.
일반적으로 로봇의 제어 시스템에서 데이터를 동기화하는 방식으로는 데이터의 변경 내용을 추적하여 변경된 데이터 항목에 대한 갱신 처리를 하는 방식이 있다. 이러한 방식은 소프트웨어 프로세스가 데이터 항목별로 변경의 유무 및 변경된 내용에 대한 로그를 저장하고 분석하는 절차가 필요하며 이는 일정한 처리 시간이 소요된다.
다른 기술로는, 다수의 노드 가운데 위치한 게이트웨이 서버에서 집중형 처리를 통해 데이터를 동기화하는 방식이 있다. 이러한 방식은 서버가 개별 노드로부터 데이터를 수신하여 서버 내에서 데이터의 갱신을 처리하고 개별 노드로 다시 데이터를 송신하는 순서로 처리된다. 따라서, 서버가 과부하가 발생되거나 오동작을 일으키면 전체의 데이터 동기화가 불가능해진다.
부연하면, 단일 중앙집중형 서버에서 모든 데이터를 받아 갱신을 하는 방법은 동일한 데이터 항목에 대해 신뢰성 있게 갱신할 수 있으나 서버가 과부하되거나 오동작 등 그 기능 실행이 중단되면 전체 데이터의 동기화가 불가능해지는 문제점이 있다.
시간 기록(Timestamp)과 관련한 선행 기술로는, 데이터 패킷을 네트워크를 통해 복수의 노드 간에 주고받으면서 패킷의 지연시간을 측정하여 시간 기록을 계산하여 사용하는 방식이 있다. 이러한 방식은 노드별로 상대적인 지연시간을 측정하게 되어 모든 노드가 동일하고 정확한 시간 기준을 가질 수 없다.
1. 한국공개특허번호 제10-2006-0126839호 2. 한국공개특허번호 제10-2007-0052729호
본 발명은 위 배경기술에 따른 문제점을 해소하기 위해 제안된 것으로서, 복수의 제어기에서 개별 제어기별로 서버 프로세스와 클라이언트 프로세스가 실행되어, 고유한 식별자로 구분되는 데이터를 상호 동기화하는 데이터 동기화 시스템 및 방법을 제공하는데 그 목적이 있다.
또한, 본 발명은 정밀한 시간 기록(Timestamp)을 획득하는 데이터 동기화 시스템 및 방법을 제공하는데 다른 목적이 있다.
본 발명은 위에서 제시된 과제를 달성하기 위해, 복수의 제어기에서 개별 제어기별로 서버 프로세스와 클라이언트 프로세스가 실행되어, 고유한 식별자로 구분되는 데이터를 상호 동기화하는 데이터 동기화 시스템을 제공한다.
상기 데이터 동기화 시스템은,
로봇에 배치되는 다수의 센서간 데이터를 동기화하기 위한 시간 기록을 포함하는 데이터 동기화 시스템에 있어서,
동기 신호를 생성하는 외부 전자 회로; 및
상기 동기 신호 또는 자체 운영체제의 시간 정보에 따른 시간 기록을 생성하고 상기 시간 기록 및 고유 식별자를 갖는 데이터를 서버 프로세스 및 클라이언트 프로세서간 통신을 통해 상호 동기화하고 상기 동기화에 따라 상기 데이터를 갱신하는 다수의 제어기;를 포함하는 것을 특징으로 한다.
이때, 상기 다수의 제어기는 상기 동기 신호를 동시에 수신하여 상기 시간 기록의 기준점을 동기화하는 것을 특징으로 할 수 있다.
또한, 상기 서버 프로세스 및 클라이언트 프로세스간 통신은 하나의 클라이언트 프로세스 대 다수의 서버 프로세스간 통신인 것을 특징으로 할 수 있다.
또한, 상기 동기 신호는 삼각파의 아날로그 파형인 것을 특징으로 할 수 있다.
또한, 상기 다수의 제어기는 개별적으로 초단위 이상의 시간의 경우 상기 자체 운영체제의 시간 정보에서 획득하고, 초단위 이하의 시간의 경우 상기 동기 신호를 이용하여 획득하는 것을 특징으로 할 수 있다.
또한, 상기 초단위는 1초인 것을 특징으로 할 수 있다.
또한, 상기 시간 기록의 보정은 상기 동기 신호의 주기의 시작점을 이용하여 이루어지는 것을 특징으로 할 수 있다.
또한, 상기 동기 신호의 주기의 시작점은 상기 동기 신호의 파형의 전압 크기, 상승 및 하강의 형태를 이용하여 산출되는 클럭값인 것을 특징으로 할 수 있다.
또한, 상기 시간 기록의 보정은 상기 시작점의 클럭값과 상기 다수의 제어기 중 해당 제어기의 현재 클럭값의 차이를 시간으로 변환한 값인 것을 특징으로 할 수 있다.
또한, 상기 다수의 제어기는 동일한 시간축에서 상기 시간 기록을 획득하는 것을 특징으로 할 수 있다.
또한, 상기 서버 프로세스 및 클라이언트 프로세스간의 연결관계는 서버 목록, 상기 서버 목록에 따른 서버 주소 및 데이터 항목 정보를 담고 있는 연결 설정 파일로 정의되는 것을 특징으로 할 수 있다.
또한, 상기 다수의 제어기는 각각 하나의 서버 프로세스 및 하나의 클라이언트 프로세스만을 실행하는 것을 특징으로 할 수 있다.
또한, 상기 고유 식별자는 상기 다수의 제어기 및 데이터 항목마다 부여되는 것을 특징으로 할 수 있다.
한편으로, 본 발명의 다른 일실예는, 로봇에 배치되는 다수의 센서간 데이터를 동기화하기 위한 시간 기록을 포함하는 데이터 동기화 시스템의 데이터 동기화 방법에 있어서, 외부 전자 회로가 동기 신호를 생성하는 단계; 다수의 제어기가 상기 동기 신호 또는 자체 운영체제의 시간 정보에 따른 시간 기록을 생성하는 단계; 상기 다수의 제어기가 상기 시간 기록 및 고유 식별자를 갖는 데이터를 생성하는 단계; 상기 다수의 제어기가 서버 프로세스 및 클라이언트 프로세서간 통신을 통해 상호 동기화하는 단계; 및 상기 다수의 제어기가 상기 동기화에 따라 상기 데이터를 갱신하는 단계;를 포함하는 것을 특징으로 하는 시간 기록을 포함하는 데이터 동기화 방법을 제공한다.
본 발명에 따르면, 데이터를 동기화하여 갱신하는데 있어서, 고유의 식별자(Identifier)와 시간 기록(Timestamp)을 포함하는 데이터 블록 단위로 중복되지 않게 덮어쓰도록 함으로써 갱신 시간이 짧게 소요된다.
또한, 본 발명의 다른 효과로서는 개별 노드별로 서버와 클라이언트 프로세스를 실행하여 고유의 식별자로 구분되는 데이터를 상호 전송하여 동기화하도록 하며, 만약 노드 중 일부가 기능을 상실해도 다른 노드들 간에는 데이터 동기화가 지속 가능하다는 점을 들 수 있다.
부연하면, 데이터의 유효성과 집중 처리를 위해 필요한 게이트웨이 서버가 없으며, 제어기 간에 상호 연결되어 안정적인 동작이 가능하게 하며, 데이터는 개별 제어기와 항목별로 고유한 식별자를 포함하도록 하여 유효성 검증이 필요하지 않아 빠른 동기화 처리가 가능하다.
또한, 본 발명의 다른 효과로서는 단일의 외부 전자회로에서 출력되는 구형파형 및 삼각파형 등의 동일 신호원을 복수의 제어기에서 받아 동일한 기준에서 계산된 시간 기록을 이용할 수 있다는 점을 들 수 있다. 부연하면, 로봇 시스템에서 여러 센서 정보의 혼합을 위해서는 가능한 동일한 시간축의 기준을 가져야 하며, 본 발명에서 제안하는 정밀한 시간 기록을 구하는 방식을 사용하면 약 10밀리세컨드 이하의 정밀도로 표현되는 시간 기록을 사용할 수 있다.
도 1은 본 발명의 일실시예에 따른 복수의 제어기간의 정밀한 시간 기록(timestamp)을 포함하는 데이터를 처리하는 구조를 보여주는 데이터 동기화 시스템(100)의 개념도이다.
도 2는 도 1에 도시된 제어기간 데이터 처리 절차로서, 서버 프로세스 과정을 보여주는 흐름도이다.
도 3은 도 1에 도시되 제어기간 데이터 처리 절차로서, 클라이언트 프로세스 과정을 보여주는 흐름도이다.
도 4는 도 1에 도시된 제어기간 시간 기록(timestamp)을 획득하는 개념을 보여주는 파형도이다.
도 5 내지 도 7은 정밀 시간 기록(timestamp)을 구하는 절차를 보여주는 개념도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 상세한 설명에 구체적으로 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야한다.
각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다.
제 1, 제 2등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. "및/또는" 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미가 있다.
일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미가 있는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않아야 한다.
이하 첨부된 도면을 참조하여 본 발명의 일실시예에 따른 복수의 제어기간의 정밀한 시간 기록을 포함하는 데이터 동기화 시스템 및 방법을 상세하게 설명하기로 한다.
도 1은 본 발명의 일실시예에 따른 복수의 제어기간의 정밀한 시간 기록(timestamp)을 포함하는 데이터를 처리하는 구조를 보여주는 데이터 동기화 시스템(100)의 개념도이다. 도 1을 참조하면, 상기 데이터 동기화 시스템(100)은, 로봇(미도시)에 배치되는 다수의 센서(미도시)간 데이터를 동기화하기 위한 것이다. 이를 위해, 데이터 동기화 시스템(100)은, 동기 신호를 생성하는 외부 전자 회로(미도시), 및 상기 동기 신호 또는 자체 운영체제의 시간 정보에 따른 시간 기록을 생성하고 상기 시간 기록 및 고유 식별자를 갖는 데이터를 서버 프로세스 및 클라이언트 프로세서간 통신을 통해 상호 동기화하고 상기 동기화에 따라 상기 데이터를 갱신하는 제 1 제어기 내지 제 N 제어기(110-1 내지 110-N) 등을 포함하여 구성된다.
제 1 제어기 내지 제 N 제어기(110-1 내지 110-N)의 내에는 각각 서버 프로세스(111) 및 클라이언트 프로세스(112)가 구성된다. 이들 서버 프로세스(111) 및 클라이언트 프로세스(112)는 서버-클라이언트 통신 방식으로 연결된다.
물론, 이들 다수의 서버 프로세서(111) 및 클라이언트 프로세스(112)의 연결 관계는 미리 연결 설정 파일로 정의되어 있게 된다. 따라서, 서버 프로세서(111) 및 클라이언트 프로세스(112)가 실행되면 이 연결 설정 파일을 통해 서로 연결된다.
이러한 연결 설정 파일은, 상기 서버 프로세스 및 클라이언트 프로세스간의 연결관계를 정의하기 위해 서버 목록(ServerList), 상기 서버 목록에 따른 서버 주소(Address) 및 데이터 항목 정보(DataList)를 담고 있다.
연결 설정 파일은 XML(eXtensible Markup Language) 파일 형식이 사용될 수 있으나, 이에 한정되는 것은 아니며 HTML(hyper text markup language)HTML(hyper text markup language) 등과 같은 다른 파일형식도 가능하다. XML로 작성된 연결 설정 파일을 일례로 들면 다음과 같다.
<?xml version="1.0" encoding="UTF-8">
<Configuration>
<ServerList>
<Server isConnect="true">
<ID>SBC3</ID>
<Address>10.0.0.3</Address>
<DataList>
<Data name="DepthSensor" type="double" array="none" length="8"/>
<Data name="Sonar" type="float" array="256" length="1024"/>
</DataList>
</Server>
</ServerList>
</Configuration>
도 1을 계속 참조하면, 상기 서버 프로세스(111) 및 클라이언트 프로세스(112)간 통신은 하나의 클라이언트 프로세스 대 다수의 서버 프로세스간 통신이 된다.
제 1 제어기 내지 제 N 제어기(110-1 내지 110-N)는 로봇의 기능을 수행하는 제어기와 환경 정보를 수집하는 제어기, 연산 알고리즘을 실행하는 제어기 등 복수의 제어기로 구성된다.
이러한 복수의 제어기 간에는 협업을 위한 기능 입력과 기능 출력의 데이터의 동일 시간축을 갖는 상호 교환이 필요하다. 특히 이들 제어기는 수중 로봇 제어 시스템을 구성한다.
특히, 제 1 제어기 내지 제 N 제어기(110-1 내지 110-N)는 개별적으로 초단위 이상의 시간의 경우 제어기의 자체 운영체제의 시간 정보에서 획득한다. 만일 초단위 이하의 시간의 경우 외부 전자 회로(미도시)로부터 발생한 동기 신호를 입력받아 획득한다.
이 경우, 상기 제 1 제어기 내지 제 N 제어기(110-1 내지 110-N)는 상기 동기 신호를 동시에 수신하여 시간 기록의 기준점을 동기화한다.
또한, 상기 다수의 제어기(110-1 내지 110-N)는 동일한 시간축에서 상기 시간 기록을 획득하는 것을 특징으로 할 수 있다. 이러한 시간 기록(timestamp)을 획득하는 개념을 보여주는 도면이 도 4 내지 도 7에 도시된다. 이에 대하여는 후술하기로 한다.
도 1을 계속 참조하면, 제 1 제어기 내지 제 N 제어기(110-1 내지 110-N)에서 개별 제어기별로 서버 프로세스(111)와 클라이언트 프로세스(112)가 실행되며, 고유 식별자로 구분되는 데이터를 상호 동기화한다. 부연하면, 일반적으로 단일 중앙 집중형 서버에서 모든 데이터를 받아 갱신을 하는 방식은 동일한 데이터 항목에 대해 신뢰성 있게 갱신할 수 있으나 서버가 과부하되거나 오동작 등 그 기능 실행이 중단되면 전체 데이터의 동기화가 불가능해지는 문제점이 있다.
본 발명의 일실시예에서는 이러한 문제를 해소하기 위해서, 다수의 제어기(110-1 내지 110-N)가 연결된 전체 시스템 내에서 개별 제어기와 데이터 항목마다 고유 식별자를 부여하여 중첩되지 않도록 한다.
또한, 개별 제어기(110-1 내지 110-N)에는 하나의 서버 프로세스와 하나의 클라이언트 프로세스가 실행되어 제어기 내의 데이터 항목을 다수의 제어기로 송신과 수신하는 구조로 이루어진다. 하나의 서버 프로세스는 다수의 다른 제어기의 클라이언트 프로세스와 연결되며, 하나의 클라이언트 프로세스는 다수의 다른 제어기의 서버 프로세스와 연결된다.
즉, 개별 제어기 내에는 하나의 서버 프로세스(111)와 클라이언트 프로세스(112)가 있으며, 서버 프로세스(111)는 해당 제어기가 가지고 있는 데이터 항목을 보관하고 다른 제어기의 클라이언트 프로세스 요청을 받아 데이터를 전송하는 역할을 한다.
클라이언트 프로세스(112)는 해당 제어기 외의 다른 제어기들에서 실행되는 서버 프로세스마다 연결하여 데이터 항목을 가져오는 역할을 한다. 이 서버 프로세스(111) 및 클라이언트 프로세스(112)는 주기적으로 실행되어 동기화 기능을 수행한다. 복수의 제어기간의 서버와 클라이언트 프로세스의 연결 관계는 앞서 기술한 연결 설정 파일(XML 등)로 정의하여 그 관계를 제어한다.
따라서, 일부의 제어기가 기능 실행이 중단되어도 다른 복수의 제어기 간에는 데이터의 동기화가 지속적으로 가능하다.
도 2는 도 1에 도시된 제어기간 데이터 처리 절차로서, 서버 프로세스 과정을 보여주는 흐름도이다. 도 1을 참조하면, 제 1 제어기 내지 제 N 제어기(110-1 내지 110-N)에서 서버 프로세스가 실행되면, 데이터 갱신 스레드 실행 및 클라이언트 요청 처리 스레드 실행이 수행된다(단계 S210,S220,S230).
데이터 갱신 스레드 실행이 이루어지면 동기화할 데이터를 저장하기 위한 메모리 영역 할당이 이루어지고, 이러한 작업이 주기적으로 반복되는 지를 확인한다(단계 S221,S223).
확인 결과, 주기적으로 반복되지 않으면 데이터 갱신 스레드 실행을 종료한다(단계 S229).
이와 달리, 단계 S223에서 주기적으로 반복되면, 현재 시간 기록(timestamp)과 데이터값을 획득하고, 메모리 영역에 데이터를 갱신한다(단계 S225,S227). 이후 단계 S223으로 진행한다.
한편, 클라이언트 요청 처리 스레드 실행이 이루어지면, 다른 제어기의 클라이언트 프로세스가 접속하고, 이러한 작업이 주기적으로 반복되는지를 확인한다(단계 S231,S233).
확인 결과, 주기적으로 반복되지 않으면, 클라이언트 요청 처리 스레드 수행을 종료한다(단계 S239).
이와 달리, 단계 S233에서 주기적으로 반복되면, 데이터 항목을 요청받고, 현재 시간 기록을 포함하는 데이터를 전달한다(단계 S235,S237). 이후, 단계 S233으로 진행한다.
한편, 클라이언트 요청 처리 스레드 실행 중 서버 프로세스를 종료하는 지를 확인하는 과정이 있으며, 확인 결과에 따라 서버 프로세스를 종료하거나 서버 프로세스를 계속 실행한다(단계 S240,S241).
도 3은 도 1에 도시되 제어기간 데이터 처리 절차로서, 클라이언트 프로세스 과정을 보여주는 흐름도이다. 도 3을 참조하면, 제 1 제어기 내지 제 N 제어기(110-1 내지 110-N)에서 클라이언트 프로세스 실행이 수행되면, 연결 설정 파일을 읽어 들인다(단계 S310,S320).
이러한 연결 설정 파일을 통해 서버 목록을 획득하고, 이를 통해 서버 주소 및 데이터 항목 정보를 파싱하여 각 서버 연결에 대한 스레드 실행을 수행한다(단계 S340,S350).
각 서버 연결에 대한 스레드 실행이 수행되면 데이터 항목에 대해 메모리 영역을 할당하고 초기화하며, 이러한 작업이 주기적으로 반복되는 지를 확인한다(단계 S330,S331).
확인 결과, 주기적으로 반복되지 않으면 서버 연결에 대한 스레드를 종료한다(단계 S337).
이와 달리, 단계 S331에서 주기적으로 반복되면 다른 제어기의 서버 프로세스에 데이터 항목을 요청하고 서버 프로세스에서 데이터를 받아 메모리 영역에 갱신한다(단계 S333,S335). 이후, 단계 S331로 진행한다.
한편, 각 서버 연결에 대한 스레드 실행중 서버 프로세스를 종료하는 지를 확인하는 과정이 있으며, 확인 결과에 따라 서버 프로세스를 종료하거나 서버 프로세스를 계속 실행한다(단계 S360,S370).
도 4는 도 1에 도시된 제어기간 시간 기록(timestamp)을 획득하는 개념을 보여주는 파형도이다. 즉, 정밀한 시간 기록(Timestamp)을 획득하는 개념을 보여주는 파형도이다.
부연하면, 제 1 제어기 내지 제 N 제어기(110-1 내지 110-N)는 단일의 외부에 위치하는 외부 전자 회로(410)에서 주기적으로 출력되는 신호원(즉 동기 신호)을 동시에 받아 시간 기록의 기준점을 동기화한다.
외부에 위치하는 외부 전자 회로(410)의 신호원은 1초 이하의 주기로 발생된다. 개별 제어기(110-1 내지 110-N)는 초 단위 이상의 시간은 제어기 자체의 운영체제의 시간 정보에서 획득하고, 초 단위 이하의 시간은 외부 전자회로(410)의 동기신호를 측정하고 계산하여 획득한다.
외부 전자 회로(410)의 동기 신호는 삼각파의 아날로그 파형을 가지며, 복수의 제어기(110-1 내지 110-N)에서 시간축 상의 서로 다른 지점에서 동기 신호의 입력을 받아도 아날로그 파형의 전압의 크기와 상승/하강의 형태를 측정하여, 주기적인 신호의 시작점을 계산한다. 이에 대하여는 도 5 내지 도 7을 참조하여 후술하기로 한다.
도 4를 계속 참조하면, 각 제어기(110-1 내지 110-N)의 내부 소프트웨어(ISR: In-System Reprogrammable)가 비주기적 간격으로 실행되며, 소프트웨어가 실행되는 동안 2회 이상의 외부 전자 회로(410)에서 출력하는 삼각파 신호의 전압을 측정하여 시간적 위치를 계산하고(전압크기, 상/하향), 각 제어기별로 계산된 값으로 영점 기준을 맞춘다.
도 5 내지 도 7은 정밀 시간 기록(timestamp)을 구하는 절차를 보여주는 개념도이다. 도 5 내지 도 7을 참조하면, 기본적인 시간 기록(timestamp)은 제어기의 시스템 시간(즉 운영체제의 시간 정보)을 사용하며, 이는 10밀리세컨드 이상의 정확도를 갖는다. 외부 전자 회로(도 4의 410)는 50Hz의 주기로 삼각파형의 아날로그 전압이 변화하는 동기 신호를 생성하여 제어기(110-1 내지 110-N)에 입력한다.
이후, 제 1 제어기 내지 제 N 제어기(110-1 내지 110-N)는 동기 신호의 전압을 1차 아날로그-디지털 변환(ADC)하고, 현재의 제어기의 클럭값(Clock Count)을 얻는다. 부연하면, 디지털로 변환된 전압값은 ADC 비트에 따라 해상도가 결정되며, 만약 12비트 해상도라면 212 = 4096으로 0에서 4095 사이의 정수값을 갖는다.
시간 기록은 1밀리세컨드 전후의 지연시간을 갖는데, 이러한 지연 시간의 측정은 지연 전후의 제어기의 클럭값(Clock Count)의 차이로 구한다. 부연하면, 한 클럭(Clock)에 대한 실제 시간은 제어기의 CPU마다 결정된다.
이후, 제어기(110-1 내지 110-N)는 동기 신호의 전압을 2차 아날로그-디지털 변환하고, 현재의 시스템 클럭값을 얻는다.
이에 따라, 2차 측정 전압에서 1차 측정 전압의 차를 구하고, 이를 지연 시간으로 나누어 계산하면 외부 전자 회로의 동기 신호의 기울기가 된다. 외부 전자 회로로부터 입력되는 동기 신호의 주기와 파형을 미리 알고 있기 때문에 기울기 값을 비교하여 1차 측정의 시점을 추정한다.
도 5를 참조하면, 계산된 기울기의 절대값이 동기 신호 파형의 기울기 절대값과 같고, 부호가 양수이면 1차/2차 측정 시점은 파형의 상승 상태에 있다.
도 6을 참조하면, 계산된 기울기의 절대값이 동기 신호 파형의 기울기 절대값과 같고, 부호가 음수이면 1차/2차 측정 시점은 파형의 상승 상태에 있다.
도 7을 참조하면, 계산된 기울기의 절대값이 동기 신호 파형의 기울기 절대값과 같지 않으면, 1차 측정 시점은 파형의 상승 상태에 있고, 2차 측정 시점은 파형의 하강 상태에 있다.
이후, 외부의 동기 신호의 주기의 시작점에 해당하는 제어기(110-1 내지 110-N)의 클럭값(Clock Count)을 구한다. 이를 수식으로 나타내면 다음과 같다.
Figure pat00001
여기서, (X,Y)는 1차 또는 2차 측정시의 클럭값과 전압 크기를 나타내며, α는 측정한 기울기값을 나타낸다. 또한,
Figure pat00002
는 동기 신호의 주기의 시작점에 해당하는 클럭값이다.
따라서, (X,Y)에 1차 또는 2차 측정시의 클럭값과 전압 크기를 대입하여
Figure pat00003
을 구한다.
이후, 현재의 제어기의 클럭값을 얻어
Figure pat00004
와의 차이를 구한 후 이를 시간으로 변환한다. 이 시간이 동기 신호 주기의 시작점으로부터 현재까지 경과된 시간이다. 이를 가지고 시간 기록(timestamp)의 10밀리세컨드 이하의 시간을 보정한다.
따라서, 제 1 제어기 내지 제 N 제어기(110-1 내지 110-N)가 동일한 프로세스를 진행하여, 결과적으로 외부의 동기 신호의 주기의 시작점을 알고 제어기별로 경과된 시간을 각각 계산하여 시간 기록을 생성 및/또는 보정한다. 이로써 모든 제어기(110-1 내지 110-N)는 동일한 시간축에서 정밀한 시간 기록을 획득할 수 있다.
100: 데이터 동기화 시스템
110-1 내지 110-N: 제 1 제어기 내지 제 N 제어기
111: 서버 프로세스
112: 클라이언트 프로세스
410: 외부 전자 회로

Claims (14)

  1. 로봇에 배치되는 다수의 센서간 데이터를 동기화하기 위한 시간 기록을 포함하는 데이터 동기화 시스템에 있어서,
    동기 신호를 생성하는 외부 전자 회로; 및
    상기 동기 신호 또는 자체 운영체제의 시간 정보에 따른 시간 기록을 생성하고 상기 시간 기록 및 고유 식별자를 갖는 데이터를 서버 프로세스 및 클라이언트 프로세서간 통신을 통해 상호 동기화하고 상기 동기화에 따라 상기 데이터를 갱신하는 다수의 제어기;
    를 포함하는 것을 특징으로 하는 시간 기록을 포함하는 데이터 동기화 시스템.
  2. 제 1 항에 있어서,
    상기 다수의 제어기는 상기 동기 신호를 동시에 수신하여 상기 시간 기록의 기준점을 동기화하는 것을 특징으로 하는 시간 기록을 포함하는 데이터 동기화 시스템.
  3. 제 1 항에 있어서,
    상기 서버 프로세스 및 클라이언트 프로세스간 통신은 하나의 클라이언트 프로세스 대 다수의 서버 프로세스간 통신인 것을 특징으로 하는 시간 기록을 포함하는 데이터 동기화 시스템.
  4. 제 2 항에 있어서,
    상기 동기 신호는 삼각파의 아날로그 파형인 것을 특징으로 하는 데이터 동기화 시스템.
  5. 제 1 항에 있어서,
    상기 다수의 제어기는 개별적으로 초단위 이상의 시간의 경우 상기 자체 운영체제의 시간 정보에서 획득하고, 초단위 이하의 시간의 경우 상기 동기 신호를 이용하여 획득하는 것을 특징으로 하는 데이터 동기화 시스템.
  6. 제 5 항에 있어서,
    상기 초단위는 1초인 것을 특징으로 하는 데이터 동기화 시스템.
  7. 제 1 항에 있어서,
    상기 시간 기록의 보정은 상기 동기 신호의 주기의 시작점을 이용하여 이루어지는 것을 특징으로 하는 데이터 동기화 시스템.
  8. 제 7 항에 있어서,
    상기 동기 신호의 주기의 시작점은 상기 동기 신호의 파형의 전압 크기, 상승 및 하강의 형태를 이용하여 산출되는 클럭값인 것을 특징으로 하는 데이터 동기화 시스템.
  9. 제 8 항에 있어서,
    상기 시간 기록의 보정은 상기 시작점의 클럭값과 상기 다수의 제어기 중 해당 제어기의 현재 클럭값의 차이를 시간으로 변환한 값인 것을 특징으로 하는 데이터 동기화 시스템.
  10. 제 1 항에 있어서,
    상기 다수의 제어기는 동일한 시간축에서 상기 시간 기록을 획득하는 것을 특징으로 하는 데이터 동기화 시스템.
  11. 제 1 항에 있어서,
    상기 서버 프로세스 및 클라이언트 프로세스간의 연결관계는 서버 목록, 상기 서버 목록에 따른 서버 주소 및 데이터 항목 정보를 담고 있는 연결 설정 파일로 정의되는 것을 특징으로 하는 데이터 동기화 시스템.
  12. 제 1 항에 있어서,
    상기 다수의 제어기는 각각 하나의 서버 프로세스 및 하나의 클라이언트 프로세스만을 실행하는 것을 특징으로 하는 데이터 동기화 시스템.
  13. 제 1 항에 있어서,
    상기 고유 식별자는 상기 다수의 제어기 및 데이터 항목마다 부여되는 것을 특징으로 하는 데이터 동기화 시스템.
  14. 로봇에 배치되는 다수의 센서간 데이터를 동기화하기 위한 시간 기록을 포함하는 데이터 동기화 시스템의 데이터 동기화 방법에 있어서,
    외부 전자 회로가 동기 신호를 생성하는 단계;
    다수의 제어기가 상기 동기 신호 또는 자체 운영체제의 시간 정보에 따른 시간 기록을 생성하는 단계;
    상기 다수의 제어기가 상기 시간 기록 및 고유 식별자를 갖는 데이터를 생성하는 단계;
    상기 다수의 제어기가 서버 프로세스 및 클라이언트 프로세서간 통신을 통해 상호 동기화하는 단계; 및
    상기 다수의 제어기가 상기 동기화에 따라 상기 데이터를 갱신하는 단계;
    를 포함하는 것을 특징으로 하는 시간 기록을 포함하는 데이터 동기화 방법.
KR1020150007955A 2015-01-16 2015-01-16 복수의 제어기간의 정밀한 시간 기록을 포함하는 데이터 동기화 시스템 및 방법 KR101645260B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150007955A KR101645260B1 (ko) 2015-01-16 2015-01-16 복수의 제어기간의 정밀한 시간 기록을 포함하는 데이터 동기화 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150007955A KR101645260B1 (ko) 2015-01-16 2015-01-16 복수의 제어기간의 정밀한 시간 기록을 포함하는 데이터 동기화 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20160088982A true KR20160088982A (ko) 2016-07-27
KR101645260B1 KR101645260B1 (ko) 2016-08-04

Family

ID=56616931

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150007955A KR101645260B1 (ko) 2015-01-16 2015-01-16 복수의 제어기간의 정밀한 시간 기록을 포함하는 데이터 동기화 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101645260B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190067384A (ko) * 2017-12-07 2019-06-17 현대자동차주식회사 차량 데이터 기록 장치 및 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102143080B1 (ko) * 2018-11-26 2020-08-10 현대오트론 주식회사 차량용 통신 시스템 및 그것의 동작 방법
KR20220109944A (ko) * 2021-01-29 2022-08-05 삼성전자주식회사 수신한 데이터 기록의 시간을 동기화하는 전자 장치 및 그 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006526323A (ja) * 2003-05-09 2006-11-16 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 基準時間の正確さを保証する測定レポートタイムスタンピング装置及び方法
KR20060126839A (ko) 2004-03-04 2006-12-08 닛본 덴끼 가부시끼가이샤 데이터 갱신 시스템, 데이터 갱신 방법, 및 데이터 갱신 프로그램을 기록한 기록 매체, 데이터 제공 장치, 로봇 장치 및 로봇 시스템
KR20070052729A (ko) 2007-05-02 2007-05-22 주식회사 아이오. 테크 네트워크 기반의 로봇 단말기 시스템의 제어를 위한 통신방법 및 데이터 구조
KR20100005471A (ko) * 2008-07-07 2010-01-15 한국과학기술원 이더넷 스위치의 통신 프레임 구조 및 이를 이용한 실시간다중 프로세서 통신 방법
JP2013169063A (ja) * 2012-02-15 2013-08-29 Canon Inc モータ制御装置、ロボット装置及びモータ制御方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006526323A (ja) * 2003-05-09 2006-11-16 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 基準時間の正確さを保証する測定レポートタイムスタンピング装置及び方法
KR20060126839A (ko) 2004-03-04 2006-12-08 닛본 덴끼 가부시끼가이샤 데이터 갱신 시스템, 데이터 갱신 방법, 및 데이터 갱신 프로그램을 기록한 기록 매체, 데이터 제공 장치, 로봇 장치 및 로봇 시스템
KR20070052729A (ko) 2007-05-02 2007-05-22 주식회사 아이오. 테크 네트워크 기반의 로봇 단말기 시스템의 제어를 위한 통신방법 및 데이터 구조
KR20100005471A (ko) * 2008-07-07 2010-01-15 한국과학기술원 이더넷 스위치의 통신 프레임 구조 및 이를 이용한 실시간다중 프로세서 통신 방법
JP2013169063A (ja) * 2012-02-15 2013-08-29 Canon Inc モータ制御装置、ロボット装置及びモータ制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190067384A (ko) * 2017-12-07 2019-06-17 현대자동차주식회사 차량 데이터 기록 장치 및 방법

Also Published As

Publication number Publication date
KR101645260B1 (ko) 2016-08-04

Similar Documents

Publication Publication Date Title
JP4185926B2 (ja) ロボット協調制御方法及びシステム
JP6399136B1 (ja) 制御装置、制御プログラム、および制御システム
US10958367B2 (en) Network apparatus and clock synchronization method
US10284692B2 (en) Control device and communication device
US11316605B2 (en) Method, device, and computer program for improving synchronization of clocks in devices linked according to a daisy-chain topology
JP6523497B1 (ja) マスタ制御装置およびこれを用いた同期通信システム
JP5911584B2 (ja) 補正パラメータ算出装置及びシステム及び補正パラメータ算出方法及びコンピュータプログラム
WO2015128981A1 (ja) プログラマブルコントローラシステム、そのコントローラ
US20220413474A1 (en) Control system
JP2011193457A (ja) 時間同期を行うためのシステムおよび方法
KR101636496B1 (ko) 신호 동기 시스템, 노드 동기 시스템, 신호 동기 방법, 및 노드 동기 방법
KR101645260B1 (ko) 복수의 제어기간의 정밀한 시간 기록을 포함하는 데이터 동기화 시스템 및 방법
JP2007060400A (ja) 通信タイミング制御方法および通信タイミング制御システム
WO2015087751A1 (ja) 時刻補正装置、計測装置、時刻補正方法
WO2021077289A1 (zh) 一种同步方法及设备
US20150318939A1 (en) Relay device, relay method, and relay program
US11310026B2 (en) Communication system, communication device, and program
CN111443685B (zh) 用于在控制设备中提供通用时间的方法以及控制设备
US20170117980A1 (en) Time synchronization for network device
JP2007163330A (ja) 時刻情報通信システム
CN113204516A (zh) 处理器时间同步的方法和装置
JP6310758B2 (ja) 時刻同期装置および方法
WO2015033532A1 (ja) 時刻同期システム
JP2020053737A (ja) 情報通信システム
US20230085335A1 (en) Information collecting system and information collecting method

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant