KR101645260B1 - System and Method for synchronizing data including timestamp between plural controllers - Google Patents

System and Method for synchronizing data including timestamp between plural controllers Download PDF

Info

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

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)를 구하는 데이터 동기화 시스템 및 방법에 대한 것이다.The present invention relates to a control system of a robot, and more particularly, to a synchronization method comprising a plurality of servers and a client structure for transferring data in a plurality of control periods, and a data synchronization System and method.

Description

복수의 제어기간의 정밀한 시간 기록을 포함하는 데이터 동기화 시스템 및 방법{System and Method for synchronizing data including timestamp between plural controllers}BACKGROUND OF THE INVENTION 1. Field of the Invention [0001] The present invention relates to a system and method for synchronizing data including precise time recording of a plurality of control periods,

본 발명은 로봇의 제어 시스템에 관한 것으로서, 더 상세하게는 복수의 제어기간에 데이터 전달을 위한 복수의 서버와 클라이언트 구조로 구성된 동기화 방법을 제시하며, 동기화에서 중요한 시간 기록(timestamp)를 구하는 데이터 동기화 시스템 및 방법에 대한 것이다.The present invention relates to a control system of a robot, and more particularly, to a synchronization method comprising a plurality of servers and a client structure for transferring data in a plurality of control periods, and a data synchronization System and method.

일반적으로 로봇의 제어 시스템에서 데이터를 동기화하는 방식으로는 데이터의 변경 내용을 추적하여 변경된 데이터 항목에 대한 갱신 처리를 하는 방식이 있다. 이러한 방식은 소프트웨어 프로세스가 데이터 항목별로 변경의 유무 및 변경된 내용에 대한 로그를 저장하고 분석하는 절차가 필요하며 이는 일정한 처리 시간이 소요된다. Generally, there is a method of synchronizing data in a control system of a robot, in which a change of data is tracked to update the changed data item. This method requires a process of storing and analyzing the log of the change of the software process with respect to the data item and the change of the data item, which requires a certain processing time.

다른 기술로는, 다수의 노드 가운데 위치한 게이트웨이 서버에서 집중형 처리를 통해 데이터를 동기화하는 방식이 있다. 이러한 방식은 서버가 개별 노드로부터 데이터를 수신하여 서버 내에서 데이터의 갱신을 처리하고 개별 노드로 다시 데이터를 송신하는 순서로 처리된다. 따라서, 서버가 과부하가 발생되거나 오동작을 일으키면 전체의 데이터 동기화가 불가능해진다. Another technique is to synchronize data through a centralized processing in a gateway server located in a plurality of nodes. This approach is handled in the order that the server receives data from the individual nodes, processes the update of the data in the server, and sends the data back to the individual nodes. Therefore, if the server is overloaded or malfunctions, the entire data synchronization becomes impossible.

부연하면, 단일 중앙집중형 서버에서 모든 데이터를 받아 갱신을 하는 방법은 동일한 데이터 항목에 대해 신뢰성 있게 갱신할 수 있으나 서버가 과부하되거나 오동작 등 그 기능 실행이 중단되면 전체 데이터의 동기화가 불가능해지는 문제점이 있다. In other words, the method of receiving and updating all the data from a single centralized server can be reliably updated for the same data item, but if the server is overloaded or malfunctioned, the entire data can not be synchronized have.

시간 기록(Timestamp)과 관련한 선행 기술로는, 데이터 패킷을 네트워크를 통해 복수의 노드 간에 주고받으면서 패킷의 지연시간을 측정하여 시간 기록을 계산하여 사용하는 방식이 있다. 이러한 방식은 노드별로 상대적인 지연시간을 측정하게 되어 모든 노드가 동일하고 정확한 시간 기준을 가질 수 없다.  Prior art related to timestamp is a method of calculating a time record by measuring a delay time of a packet while exchanging data packets among a plurality of nodes through a network. This method measures the relative delay time for each node, so that all nodes can not have the same exact time reference.

1. 한국공개특허번호 제10-2006-0126839호1. Korean Patent Publication No. 10-2006-0126839 2. 한국공개특허번호 제10-2007-0052729호2. Korean Patent Publication No. 10-2007-0052729

본 발명은 위 배경기술에 따른 문제점을 해소하기 위해 제안된 것으로서, 복수의 제어기에서 개별 제어기별로 서버 프로세스와 클라이언트 프로세스가 실행되어, 고유한 식별자로 구분되는 데이터를 상호 동기화하는 데이터 동기화 시스템 및 방법을 제공하는데 그 목적이 있다.Disclosure of Invention Technical Problem [8] The present invention has been proposed in order to solve the above problems, and it is an object of the present invention to provide a data synchronization system and method for synchronizing data separated by a unique identifier by executing a server process and a client process for each controller in a plurality of controllers The purpose is to provide.

또한, 본 발명은 정밀한 시간 기록(Timestamp)을 획득하는 데이터 동기화 시스템 및 방법을 제공하는데 다른 목적이 있다.It is another object of the present invention to provide a data synchronization system and method for obtaining precise time stamps.

본 발명은 위에서 제시된 과제를 달성하기 위해, 복수의 제어기에서 개별 제어기별로 서버 프로세스와 클라이언트 프로세스가 실행되어, 고유한 식별자로 구분되는 데이터를 상호 동기화하는 데이터 동기화 시스템을 제공한다.In order to achieve the above object, the present invention provides a data synchronization system in which a server process and a client process are executed for individual controllers in a plurality of controllers, and data items separated by unique identifiers are synchronized with each other.

상기 데이터 동기화 시스템은,The data synchronization system comprising:

로봇에 배치되는 다수의 센서간 데이터를 동기화하기 위한 시간 기록을 포함하는 데이터 동기화 시스템에 있어서,A data synchronization system comprising a time record for synchronizing data between a plurality of sensors disposed in a robot,

동기 신호를 생성하는 외부 전자 회로; 및An external electronic circuit for generating a synchronizing signal; And

상기 동기 신호 또는 자체 운영체제의 시간 정보에 따른 시간 기록을 생성하고 상기 시간 기록 및 고유 식별자를 갖는 데이터를 서버 프로세스 및 클라이언트 프로세서간 통신을 통해 상호 동기화하고 상기 동기화에 따라 상기 데이터를 갱신하는 다수의 제어기;를 포함하는 것을 특징으로 한다.A plurality of controllers for generating time records in accordance with the time information of the synchronization signal or the own operating system and for synchronizing data with the time recording and unique identifier through communications between the server process and the client processor and updating the data according to the synchronization, ; And

이때, 상기 다수의 제어기는 상기 동기 신호를 동시에 수신하여 상기 시간 기록의 기준점을 동기화하는 것을 특징으로 할 수 있다.At this time, the plurality of controllers simultaneously receive the synchronization signal and synchronize the reference point of the time recording.

또한, 상기 서버 프로세스 및 클라이언트 프로세스간 통신은 하나의 클라이언트 프로세스 대 다수의 서버 프로세스간 통신인 것을 특징으로 할 수 있다.The communication between the server process and the client process may be a communication between one client process and a plurality of server processes.

또한, 상기 동기 신호는 삼각파의 아날로그 파형인 것을 특징으로 할 수 있다.The synchronization signal may be an analog waveform of a triangular wave.

또한, 상기 다수의 제어기는 개별적으로 초단위 이상의 시간의 경우 상기 자체 운영체제의 시간 정보에서 획득하고, 초단위 이하의 시간의 경우 상기 동기 신호를 이용하여 획득하는 것을 특징으로 할 수 있다.In addition, the plurality of controllers may acquire the time information of the self-operating system separately for a time longer than a second unit, and acquire the time information for a time shorter than a second unit using the synchronization signal.

또한, 상기 초단위는 1초인 것을 특징으로 할 수 있다.In addition, the second unit may be characterized by being 1 second.

또한, 상기 시간 기록의 보정은 상기 동기 신호의 주기의 시작점을 이용하여 이루어지는 것을 특징으로 할 수 있다.The correction of the time recording may be performed using the start point of the period of the synchronization signal.

또한, 상기 동기 신호의 주기의 시작점은 상기 동기 신호의 파형의 전압 크기, 상승 및 하강의 형태를 이용하여 산출되는 클럭값인 것을 특징으로 할 수 있다.The starting point of the period of the synchronizing signal may be a clock value calculated using a voltage magnitude, a rising and a falling of the waveform of the synchronizing signal.

또한, 상기 시간 기록의 보정은 상기 시작점의 클럭값과 상기 다수의 제어기 중 해당 제어기의 현재 클럭값의 차이를 시간으로 변환한 값인 것을 특징으로 할 수 있다.The correction of the time recording may be a value obtained by converting the difference between the clock value of the start point and the current clock value of the corresponding controller among the plurality of controllers into a time.

또한, 상기 다수의 제어기는 동일한 시간축에서 상기 시간 기록을 획득하는 것을 특징으로 할 수 있다.Further, the plurality of controllers may be configured to acquire the time record on the same time axis.

또한, 상기 서버 프로세스 및 클라이언트 프로세스간의 연결관계는 서버 목록, 상기 서버 목록에 따른 서버 주소 및 데이터 항목 정보를 담고 있는 연결 설정 파일로 정의되는 것을 특징으로 할 수 있다.The connection relationship between the server process and the client process may be defined as a connection configuration file including a server list, a server address according to the server list, and data item information.

또한, 상기 다수의 제어기는 각각 하나의 서버 프로세스 및 하나의 클라이언트 프로세스만을 실행하는 것을 특징으로 할 수 있다.In addition, the plurality of controllers may be configured to execute only one server process and one client process, respectively.

또한, 상기 고유 식별자는 상기 다수의 제어기 및 데이터 항목마다 부여되는 것을 특징으로 할 수 있다.The unique identifier may be assigned to each of the plurality of controllers and data items.

한편으로, 본 발명의 다른 일실예는, 로봇에 배치되는 다수의 센서간 데이터를 동기화하기 위한 시간 기록을 포함하는 데이터 동기화 시스템의 데이터 동기화 방법에 있어서, 외부 전자 회로가 동기 신호를 생성하는 단계; 다수의 제어기가 상기 동기 신호 또는 자체 운영체제의 시간 정보에 따른 시간 기록을 생성하는 단계; 상기 다수의 제어기가 상기 시간 기록 및 고유 식별자를 갖는 데이터를 생성하는 단계; 상기 다수의 제어기가 서버 프로세스 및 클라이언트 프로세서간 통신을 통해 상호 동기화하는 단계; 및 상기 다수의 제어기가 상기 동기화에 따라 상기 데이터를 갱신하는 단계;를 포함하는 것을 특징으로 하는 시간 기록을 포함하는 데이터 동기화 방법을 제공한다.According to another aspect of the present invention, there is provided a data synchronization method of a data synchronization system including a time record for synchronizing data between a plurality of sensors disposed in a robot, the method comprising: generating an external electronic circuit by generating a synchronization signal; A plurality of controllers generating a time record according to the time information of the synchronization signal or the operating system; The plurality of controllers generating data having the time stamp and unique identifier; Synchronizing the plurality of controllers with each other through communication between a server process and a client processor; And updating the data according to the synchronization by the plurality of controllers. The method of synchronizing data includes time recording.

본 발명에 따르면, 데이터를 동기화하여 갱신하는데 있어서, 고유의 식별자(Identifier)와 시간 기록(Timestamp)을 포함하는 데이터 블록 단위로 중복되지 않게 덮어쓰도록 함으로써 갱신 시간이 짧게 소요된다.According to the present invention, in synchronizing and updating the data, the update time is shortened by overwriting in units of data blocks including a unique identifier (Identifier) and a time stamp (Timestamp) without overlapping.

또한, 본 발명의 다른 효과로서는 개별 노드별로 서버와 클라이언트 프로세스를 실행하여 고유의 식별자로 구분되는 데이터를 상호 전송하여 동기화하도록 하며, 만약 노드 중 일부가 기능을 상실해도 다른 노드들 간에는 데이터 동기화가 지속 가능하다는 점을 들 수 있다. Another effect of the present invention is to execute a server and a client process for individual nodes to synchronize and transfer data separated by a unique identifier, and even if some of the nodes lose their functions, data synchronization between other nodes continues This is possible.

부연하면, 데이터의 유효성과 집중 처리를 위해 필요한 게이트웨이 서버가 없으며, 제어기 간에 상호 연결되어 안정적인 동작이 가능하게 하며, 데이터는 개별 제어기와 항목별로 고유한 식별자를 포함하도록 하여 유효성 검증이 필요하지 않아 빠른 동기화 처리가 가능하다.In other words, there is no gateway server required for data validation and centralized processing, and the controllers are interconnected to enable stable operation, and the data includes unique identifiers for individual controllers and items, Synchronization processing is possible.

또한, 본 발명의 다른 효과로서는 단일의 외부 전자회로에서 출력되는 구형파형 및 삼각파형 등의 동일 신호원을 복수의 제어기에서 받아 동일한 기준에서 계산된 시간 기록을 이용할 수 있다는 점을 들 수 있다. 부연하면, 로봇 시스템에서 여러 센서 정보의 혼합을 위해서는 가능한 동일한 시간축의 기준을 가져야 하며, 본 발명에서 제안하는 정밀한 시간 기록을 구하는 방식을 사용하면 약 10밀리세컨드 이하의 정밀도로 표현되는 시간 기록을 사용할 수 있다.Another effect of the present invention is that the same signal source such as a rectangular waveform and a triangular waveform output from a single external electronic circuit can be received from a plurality of controllers and time recording calculated on the same basis can be used. Further, in order to mix various sensor information in the robot system, it is necessary to have the same time base reference as possible, and using the method of obtaining precise time recording proposed in the present invention, time recording expressed in precision of about 10 milliseconds or less can be used .

도 1은 본 발명의 일실시예에 따른 복수의 제어기간의 정밀한 시간 기록(timestamp)을 포함하는 데이터를 처리하는 구조를 보여주는 데이터 동기화 시스템(100)의 개념도이다.
도 2는 도 1에 도시된 제어기간 데이터 처리 절차로서, 서버 프로세스 과정을 보여주는 흐름도이다.
도 3은 도 1에 도시되 제어기간 데이터 처리 절차로서, 클라이언트 프로세스 과정을 보여주는 흐름도이다.
도 4는 도 1에 도시된 제어기간 시간 기록(timestamp)을 획득하는 개념을 보여주는 파형도이다.
도 5 내지 도 7은 정밀 시간 기록(timestamp)을 구하는 절차를 보여주는 개념도이다.
1 is a conceptual diagram of a data synchronization system 100 showing a structure for processing data including precise timestamps of a plurality of control periods according to an embodiment of the present invention.
FIG. 2 is a flow chart showing a process of a server process, which is a control period data processing procedure shown in FIG. 1. FIG.
3 is a flow chart showing a client process process as a control period data processing procedure shown in FIG.
4 is a waveform diagram showing the concept of acquiring the control period time stamp shown in Fig.
5 to 7 are conceptual diagrams showing a procedure for obtaining a precise time stamp.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 상세한 설명에 구체적으로 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야한다.While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It is to be understood, however, that the invention is not to be limited to the specific embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.

각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다.Like reference numerals are used for similar elements in describing each drawing.

제 1, 제 2등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.The terms first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another.

예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. "및/또는" 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component. The term "and / or" includes any combination of a plurality of related listed items or any of a plurality of related listed items.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미가 있다. Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs.

일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미가 있는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않아야 한다.Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the meaning in the context of the relevant art and are to be construed as ideal or overly formal in meaning unless explicitly defined in the present application Should not.

이하 첨부된 도면을 참조하여 본 발명의 일실시예에 따른 복수의 제어기간의 정밀한 시간 기록을 포함하는 데이터 동기화 시스템 및 방법을 상세하게 설명하기로 한다.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Reference will now be made in detail to the preferred embodiments of the present invention, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to the like elements throughout.

도 1은 본 발명의 일실시예에 따른 복수의 제어기간의 정밀한 시간 기록(timestamp)을 포함하는 데이터를 처리하는 구조를 보여주는 데이터 동기화 시스템(100)의 개념도이다. 도 1을 참조하면, 상기 데이터 동기화 시스템(100)은, 로봇(미도시)에 배치되는 다수의 센서(미도시)간 데이터를 동기화하기 위한 것이다. 이를 위해, 데이터 동기화 시스템(100)은, 동기 신호를 생성하는 외부 전자 회로(미도시), 및 상기 동기 신호 또는 자체 운영체제의 시간 정보에 따른 시간 기록을 생성하고 상기 시간 기록 및 고유 식별자를 갖는 데이터를 서버 프로세스 및 클라이언트 프로세서간 통신을 통해 상호 동기화하고 상기 동기화에 따라 상기 데이터를 갱신하는 제 1 제어기 내지 제 N 제어기(110-1 내지 110-N) 등을 포함하여 구성된다.1 is a conceptual diagram of a data synchronization system 100 showing a structure for processing data including precise timestamps of a plurality of control periods according to an embodiment of the present invention. Referring to FIG. 1, the data synchronization system 100 is for synchronizing data between a plurality of sensors (not shown) disposed in a robot (not shown). To this end, the data synchronization system 100 comprises an external electronic circuit (not shown) for generating a synchronization signal and a time record in accordance with the time information of the synchronization signal or its operating system, First to Nth controllers 110-1 to 110-N for synchronizing the data with each other through communication between the server process and the client processor and updating the data according to the synchronization.

제 1 제어기 내지 제 N 제어기(110-1 내지 110-N)의 내에는 각각 서버 프로세스(111) 및 클라이언트 프로세스(112)가 구성된다. 이들 서버 프로세스(111) 및 클라이언트 프로세스(112)는 서버-클라이언트 통신 방식으로 연결된다.Within the first to Nth controllers 110-1 to 110-N, a server process 111 and a client process 112 are configured, respectively. These server processes 111 and client processes 112 are connected in a server-client communication manner.

물론, 이들 다수의 서버 프로세서(111) 및 클라이언트 프로세스(112)의 연결 관계는 미리 연결 설정 파일로 정의되어 있게 된다. 따라서, 서버 프로세서(111) 및 클라이언트 프로세스(112)가 실행되면 이 연결 설정 파일을 통해 서로 연결된다.Of course, the connection relationships between the plurality of server processors 111 and the client processes 112 are defined in advance as connection establishment files. Therefore, when the server processor 111 and the client process 112 are executed, they are connected to each other through this connection configuration file.

이러한 연결 설정 파일은, 상기 서버 프로세스 및 클라이언트 프로세스간의 연결관계를 정의하기 위해 서버 목록(ServerList), 상기 서버 목록에 따른 서버 주소(Address) 및 데이터 항목 정보(DataList)를 담고 있다.The connection setting file contains a server list (ServerList), a server address (Address), and data item information (DataList) according to the server list in order to define the connection relationship between the server process and the client processes.

연결 설정 파일은 XML(eXtensible Markup Language) 파일 형식이 사용될 수 있으나, 이에 한정되는 것은 아니며 HTML(hyper text markup language)HTML(hyper text markup language) 등과 같은 다른 파일형식도 가능하다. XML로 작성된 연결 설정 파일을 일례로 들면 다음과 같다.The connection configuration file may be an eXtensible Markup Language (XML) file format, but is not limited thereto, and other file formats such as hyper text markup language (HTML) and hyper text markup language (HTML) are also available. An example of a connection configuration file created in XML is as follows.

<?xml version="1.0" encoding="UTF-8"><? xml version = "1.0" encoding = "UTF-8">

<Configuration><Configuration>

<ServerList>        <ServerList>

<Server isConnect="true">                <Server isConnect = "true">

<ID>SBC3</ID>                        <ID> SBC3 </ ID>

<Address>10.0.0.3</Address>                        <Address> 10.0.0.3 </ Address>

<DataList>                        <DataList>

<Data name="DepthSensor" type="double" array="none" length="8"/>                                <Data name = "DepthSensor" type = "double" array = "none" length = "8" />

<Data name="Sonar" type="float" array="256" length="1024"/>                                <Data name = "Sonar" type = "float" array = "256" length = "1024" />

</DataList>                        </ DataList>

</Server>                </ Server>

</ServerList>        </ ServerList>

</Configuration>
</ Configuration>

도 1을 계속 참조하면, 상기 서버 프로세스(111) 및 클라이언트 프로세스(112)간 통신은 하나의 클라이언트 프로세스 대 다수의 서버 프로세스간 통신이 된다.1, the communication between the server process 111 and the client process 112 is a communication between one client process and a plurality of server processes.

제 1 제어기 내지 제 N 제어기(110-1 내지 110-N)는 로봇의 기능을 수행하는 제어기와 환경 정보를 수집하는 제어기, 연산 알고리즘을 실행하는 제어기 등 복수의 제어기로 구성된다.The first to Nth controllers 110-1 to 110-N include a controller for performing a function of a robot, a controller for collecting environmental information, and a controller for executing an operation algorithm.

이러한 복수의 제어기 간에는 협업을 위한 기능 입력과 기능 출력의 데이터의 동일 시간축을 갖는 상호 교환이 필요하다. 특히 이들 제어기는 수중 로봇 제어 시스템을 구성한다.Such a plurality of controllers requires mutual exchange of function inputs for the collaboration and data of the function outputs with the same time base. In particular, these controllers constitute an underwater robot control system.

특히, 제 1 제어기 내지 제 N 제어기(110-1 내지 110-N)는 개별적으로 초단위 이상의 시간의 경우 제어기의 자체 운영체제의 시간 정보에서 획득한다. 만일 초단위 이하의 시간의 경우 외부 전자 회로(미도시)로부터 발생한 동기 신호를 입력받아 획득한다.In particular, the first to Nth controllers 110-1 to 110-N individually acquire from the time information of the controller's own operating system in the case of a time in units of seconds or more. If the time is less than a second, a synchronous signal generated from an external electronic circuit (not shown) is received and acquired.

이 경우, 상기 제 1 제어기 내지 제 N 제어기(110-1 내지 110-N)는 상기 동기 신호를 동시에 수신하여 시간 기록의 기준점을 동기화한다.In this case, the first to Nth controllers 110-1 to 110-N simultaneously receive the synchronization signal to synchronize the reference points of time recording.

또한, 상기 다수의 제어기(110-1 내지 110-N)는 동일한 시간축에서 상기 시간 기록을 획득하는 것을 특징으로 할 수 있다. 이러한 시간 기록(timestamp)을 획득하는 개념을 보여주는 도면이 도 4 내지 도 7에 도시된다. 이에 대하여는 후술하기로 한다.In addition, the plurality of controllers 110-1 to 110-N may acquire the time record on the same time axis. A diagram showing the concept of acquiring such a timestamp is shown in Figs. 4-7. This will be described later.

도 1을 계속 참조하면, 제 1 제어기 내지 제 N 제어기(110-1 내지 110-N)에서 개별 제어기별로 서버 프로세스(111)와 클라이언트 프로세스(112)가 실행되며, 고유 식별자로 구분되는 데이터를 상호 동기화한다. 부연하면, 일반적으로 단일 중앙 집중형 서버에서 모든 데이터를 받아 갱신을 하는 방식은 동일한 데이터 항목에 대해 신뢰성 있게 갱신할 수 있으나 서버가 과부하되거나 오동작 등 그 기능 실행이 중단되면 전체 데이터의 동기화가 불가능해지는 문제점이 있다. 1, the server process 111 and the client process 112 are executed for the individual controllers in the first to Nth controllers 110-1 to 110-N, Synchronize. In other words, generally, a method of receiving and updating all data from a single centralized server can reliably update the same data item, but if the function of the server is overloaded or malfunctioning, the entire data can not be synchronized There is a problem.

본 발명의 일실시예에서는 이러한 문제를 해소하기 위해서, 다수의 제어기(110-1 내지 110-N)가 연결된 전체 시스템 내에서 개별 제어기와 데이터 항목마다 고유 식별자를 부여하여 중첩되지 않도록 한다.In order to solve this problem, in one embodiment of the present invention, unique identifiers are assigned to individual controllers and data items in the entire system to which a plurality of controllers 110-1 to 110-N are connected so that they are not overlapped.

또한, 개별 제어기(110-1 내지 110-N)에는 하나의 서버 프로세스와 하나의 클라이언트 프로세스가 실행되어 제어기 내의 데이터 항목을 다수의 제어기로 송신과 수신하는 구조로 이루어진다. 하나의 서버 프로세스는 다수의 다른 제어기의 클라이언트 프로세스와 연결되며, 하나의 클라이언트 프로세스는 다수의 다른 제어기의 서버 프로세스와 연결된다.Also, one server process and one client process are executed in the individual controllers 110-1 to 110-N, and the data items in the controller are transmitted to and received from a plurality of controllers. One server process is connected to a client process of a plurality of other controllers, and one client process is connected to a server process of a plurality of other controllers.

즉, 개별 제어기 내에는 하나의 서버 프로세스(111)와 클라이언트 프로세스(112)가 있으며, 서버 프로세스(111)는 해당 제어기가 가지고 있는 데이터 항목을 보관하고 다른 제어기의 클라이언트 프로세스 요청을 받아 데이터를 전송하는 역할을 한다. In other words, there is one server process 111 and one client process 112 in the individual controller, and the server process 111 holds the data item held by the corresponding controller, receives the client process request from the other controller, It plays a role.

클라이언트 프로세스(112)는 해당 제어기 외의 다른 제어기들에서 실행되는 서버 프로세스마다 연결하여 데이터 항목을 가져오는 역할을 한다. 이 서버 프로세스(111) 및 클라이언트 프로세스(112)는 주기적으로 실행되어 동기화 기능을 수행한다. 복수의 제어기간의 서버와 클라이언트 프로세스의 연결 관계는 앞서 기술한 연결 설정 파일(XML 등)로 정의하여 그 관계를 제어한다. The client process 112 connects to each server process executed by the controller other than the controller, and fetches a data item. The server process 111 and the client process 112 are periodically executed to perform a synchronization function. The connection relationship between the server and the client process in the plurality of control periods is defined by the above-described connection configuration file (XML, etc.), and the relationship is controlled.

따라서, 일부의 제어기가 기능 실행이 중단되어도 다른 복수의 제어기 간에는 데이터의 동기화가 지속적으로 가능하다.Therefore, even if some of the controllers stop functioning, synchronization of data is continuously possible between the other controllers.

도 2는 도 1에 도시된 제어기간 데이터 처리 절차로서, 서버 프로세스 과정을 보여주는 흐름도이다. 도 1을 참조하면, 제 1 제어기 내지 제 N 제어기(110-1 내지 110-N)에서 서버 프로세스가 실행되면, 데이터 갱신 스레드 실행 및 클라이언트 요청 처리 스레드 실행이 수행된다(단계 S210,S220,S230).FIG. 2 is a flow chart showing a process of a server process, which is a control period data processing procedure shown in FIG. 1. FIG. Referring to FIG. 1, when a server process is executed in the first to Nth controllers 110-1 to 110-N, a data update thread execution and a client request processing thread execution are performed (steps S210, S220, S230) .

데이터 갱신 스레드 실행이 이루어지면 동기화할 데이터를 저장하기 위한 메모리 영역 할당이 이루어지고, 이러한 작업이 주기적으로 반복되는 지를 확인한다(단계 S221,S223).When the data update thread is executed, a memory area allocation for storing data to be synchronized is performed, and it is confirmed whether this operation is repeated periodically (steps S221 and S223).

확인 결과, 주기적으로 반복되지 않으면 데이터 갱신 스레드 실행을 종료한다(단계 S229).As a result of checking, if it is not periodically repeated, execution of the data update thread is terminated (step S229).

이와 달리, 단계 S223에서 주기적으로 반복되면, 현재 시간 기록(timestamp)과 데이터값을 획득하고, 메모리 영역에 데이터를 갱신한다(단계 S225,S227). 이후 단계 S223으로 진행한다.Alternatively, if it is periodically repeated in step S223, a current timestamp and a data value are acquired, and data is updated in the memory area (steps S225 and S227). Thereafter, the process proceeds to step S223.

한편, 클라이언트 요청 처리 스레드 실행이 이루어지면, 다른 제어기의 클라이언트 프로세스가 접속하고, 이러한 작업이 주기적으로 반복되는지를 확인한다(단계 S231,S233).On the other hand, when the client request processing thread is executed, the client process of the other controller is connected, and it is confirmed whether the job is periodically repeated (steps S231 and S233).

확인 결과, 주기적으로 반복되지 않으면, 클라이언트 요청 처리 스레드 수행을 종료한다(단계 S239).As a result of checking, if it is not periodically repeated, the execution of the client request processing thread is terminated (step S239).

이와 달리, 단계 S233에서 주기적으로 반복되면, 데이터 항목을 요청받고, 현재 시간 기록을 포함하는 데이터를 전달한다(단계 S235,S237). 이후, 단계 S233으로 진행한다.Otherwise, if it is periodically repeated in step S233, the data item is requested and data including the current time record is transmitted (steps S235 and S237). Thereafter, the flow proceeds to step S233.

한편, 클라이언트 요청 처리 스레드 실행 중 서버 프로세스를 종료하는 지를 확인하는 과정이 있으며, 확인 결과에 따라 서버 프로세스를 종료하거나 서버 프로세스를 계속 실행한다(단계 S240,S241).Meanwhile, there is a process of confirming whether the server process is terminated during the execution of the client request processing thread, and the server process is terminated or the server process is continuously executed according to the confirmation result (steps S240 and S241).

도 3은 도 1에 도시되 제어기간 데이터 처리 절차로서, 클라이언트 프로세스 과정을 보여주는 흐름도이다. 도 3을 참조하면, 제 1 제어기 내지 제 N 제어기(110-1 내지 110-N)에서 클라이언트 프로세스 실행이 수행되면, 연결 설정 파일을 읽어 들인다(단계 S310,S320).3 is a flow chart showing a client process process as a control period data processing procedure shown in FIG. Referring to FIG. 3, when the client process is executed in the first to Nth controllers 110-1 to 110-N, the connection setting file is read (steps S310 and S320).

이러한 연결 설정 파일을 통해 서버 목록을 획득하고, 이를 통해 서버 주소 및 데이터 항목 정보를 파싱하여 각 서버 연결에 대한 스레드 실행을 수행한다(단계 S340,S350).The server list is obtained through the connection setting file, and the server address and the data item information are parsed to execute thread execution for each server connection (steps S340 and S350).

각 서버 연결에 대한 스레드 실행이 수행되면 데이터 항목에 대해 메모리 영역을 할당하고 초기화하며, 이러한 작업이 주기적으로 반복되는 지를 확인한다(단계 S330,S331).When a thread is executed for each server connection, a memory area is allocated and initialized for the data item, and it is confirmed whether this operation is repeated periodically (steps S330 and S331).

확인 결과, 주기적으로 반복되지 않으면 서버 연결에 대한 스레드를 종료한다(단계 S337).If it is determined that the connection is not periodically repeated, the thread for connection to the server is terminated (step S337).

이와 달리, 단계 S331에서 주기적으로 반복되면 다른 제어기의 서버 프로세스에 데이터 항목을 요청하고 서버 프로세스에서 데이터를 받아 메모리 영역에 갱신한다(단계 S333,S335). 이후, 단계 S331로 진행한다.Otherwise, if it is periodically repeated in step S331, a data item is requested to the server process of another controller, and the data is received in the server process and updated in the memory area (steps S333 and S335). Thereafter, the process proceeds to step S331.

한편, 각 서버 연결에 대한 스레드 실행중 서버 프로세스를 종료하는 지를 확인하는 과정이 있으며, 확인 결과에 따라 서버 프로세스를 종료하거나 서버 프로세스를 계속 실행한다(단계 S360,S370).Meanwhile, there is a process of confirming whether the server process is terminated during thread execution for each server connection. The server process is terminated or the server process is continuously executed according to a result of the check (steps S360 and S370).

도 4는 도 1에 도시된 제어기간 시간 기록(timestamp)을 획득하는 개념을 보여주는 파형도이다. 즉, 정밀한 시간 기록(Timestamp)을 획득하는 개념을 보여주는 파형도이다.4 is a waveform diagram showing the concept of acquiring the control period time stamp shown in Fig. That is, it is a waveform diagram showing a concept of obtaining a precise time stamp (Timestamp).

부연하면, 제 1 제어기 내지 제 N 제어기(110-1 내지 110-N)는 단일의 외부에 위치하는 외부 전자 회로(410)에서 주기적으로 출력되는 신호원(즉 동기 신호)을 동시에 받아 시간 기록의 기준점을 동기화한다. In other words, the first to Nth controllers 110-1 to 110-N simultaneously receive the signal source (i.e., the synchronization signal) periodically outputted from the external electronic circuit 410 located at the outside of the time, Synchronize reference points.

외부에 위치하는 외부 전자 회로(410)의 신호원은 1초 이하의 주기로 발생된다. 개별 제어기(110-1 내지 110-N)는 초 단위 이상의 시간은 제어기 자체의 운영체제의 시간 정보에서 획득하고, 초 단위 이하의 시간은 외부 전자회로(410)의 동기신호를 측정하고 계산하여 획득한다. The signal source of the external electronic circuit 410 located outside is generated in a cycle of 1 second or less. The individual controllers 110-1 to 110-N acquire the time in units of seconds or more from the time information of the operating system of the controller itself and the time in seconds or less to acquire and calculate the synchronization signal of the external electronic circuit 410 .

외부 전자 회로(410)의 동기 신호는 삼각파의 아날로그 파형을 가지며, 복수의 제어기(110-1 내지 110-N)에서 시간축 상의 서로 다른 지점에서 동기 신호의 입력을 받아도 아날로그 파형의 전압의 크기와 상승/하강의 형태를 측정하여, 주기적인 신호의 시작점을 계산한다. 이에 대하여는 도 5 내지 도 7을 참조하여 후술하기로 한다.The synchronous signal of the external electronic circuit 410 has an analog waveform of a triangular wave and even when a plurality of controllers 110-1 to 110-N receives a synchronous signal at different points on the time axis, / Desc / Clms Page number 16 &gt; shape of the periodic signal. This will be described later with reference to Figs. 5 to 7.

도 4를 계속 참조하면, 각 제어기(110-1 내지 110-N)의 내부 소프트웨어(ISR: In-System Reprogrammable)가 비주기적 간격으로 실행되며, 소프트웨어가 실행되는 동안 2회 이상의 외부 전자 회로(410)에서 출력하는 삼각파 신호의 전압을 측정하여 시간적 위치를 계산하고(전압크기, 상/하향), 각 제어기별로 계산된 값으로 영점 기준을 맞춘다.4, the In-System Reprogrammable (ISR) of each controller 110-1 through 110-N is executed at non-periodic intervals, and two or more external electronic circuits 410 (Voltage magnitude, up / down), and the zero point reference is adjusted to the value calculated for each controller.

도 5 내지 도 7은 정밀 시간 기록(timestamp)을 구하는 절차를 보여주는 개념도이다. 도 5 내지 도 7을 참조하면, 기본적인 시간 기록(timestamp)은 제어기의 시스템 시간(즉 운영체제의 시간 정보)을 사용하며, 이는 10밀리세컨드 이상의 정확도를 갖는다. 외부 전자 회로(도 4의 410)는 50Hz의 주기로 삼각파형의 아날로그 전압이 변화하는 동기 신호를 생성하여 제어기(110-1 내지 110-N)에 입력한다.5 to 7 are conceptual diagrams showing a procedure for obtaining a precise time stamp. 5-7, the basic timestamp uses the system time of the controller (i.e., the operating system's time information), which has an accuracy of 10 milliseconds or more. The external electronic circuit (410 in FIG. 4) generates a synchronizing signal in which the analog voltage of the triangular waveform changes at a cycle of 50 Hz and inputs it to the controllers 110-1 to 110-N.

이후, 제 1 제어기 내지 제 N 제어기(110-1 내지 110-N)는 동기 신호의 전압을 1차 아날로그-디지털 변환(ADC)하고, 현재의 제어기의 클럭값(Clock Count)을 얻는다. 부연하면, 디지털로 변환된 전압값은 ADC 비트에 따라 해상도가 결정되며, 만약 12비트 해상도라면 212 = 4096으로 0에서 4095 사이의 정수값을 갖는다.Then, the first to Nth controllers 110-1 to 110-N perform a first analog-to-digital conversion (ADC) of the voltage of the synchronization signal and obtain the clock value of the current controller. In other words, the digital converted voltage value is determined according to the ADC bit, and if 12 bit resolution, 2 12 = 4096 and an integer value between 0 and 4095.

시간 기록은 1밀리세컨드 전후의 지연시간을 갖는데, 이러한 지연 시간의 측정은 지연 전후의 제어기의 클럭값(Clock Count)의 차이로 구한다. 부연하면, 한 클럭(Clock)에 대한 실제 시간은 제어기의 CPU마다 결정된다. The time recording has a delay time of about 1 millisecond. The measurement of the delay time is obtained by the difference of the clock value (Clock Count) of the controller before and after the delay. In other words, the actual time for one clock is determined for each CPU of the controller.

이후, 제어기(110-1 내지 110-N)는 동기 신호의 전압을 2차 아날로그-디지털 변환하고, 현재의 시스템 클럭값을 얻는다.Thereafter, the controllers 110-1 to 110-N perform a second analog-to-digital conversion of the voltage of the synchronization signal and obtain the current system clock value.

이에 따라, 2차 측정 전압에서 1차 측정 전압의 차를 구하고, 이를 지연 시간으로 나누어 계산하면 외부 전자 회로의 동기 신호의 기울기가 된다. 외부 전자 회로로부터 입력되는 동기 신호의 주기와 파형을 미리 알고 있기 때문에 기울기 값을 비교하여 1차 측정의 시점을 추정한다.Accordingly, calculating the difference between the first measured voltage and the second measured voltage and dividing the difference by the delay time results in the slope of the synchronizing signal of the external electronic circuit. Since the period and the waveform of the synchronizing signal input from the external electronic circuit are known in advance, the time point of the primary measurement is estimated by comparing the slope values.

도 5를 참조하면, 계산된 기울기의 절대값이 동기 신호 파형의 기울기 절대값과 같고, 부호가 양수이면 1차/2차 측정 시점은 파형의 상승 상태에 있다.Referring to FIG. 5, if the absolute value of the calculated slope is equal to the absolute value of the slope of the synchronizing signal waveform, and the sign is positive, the primary / secondary measurement time point is in the rising state of the waveform.

도 6을 참조하면, 계산된 기울기의 절대값이 동기 신호 파형의 기울기 절대값과 같고, 부호가 음수이면 1차/2차 측정 시점은 파형의 상승 상태에 있다.Referring to FIG. 6, if the absolute value of the calculated slope is equal to the absolute value of the slope of the synchronous signal waveform and the sign is negative, the primary / secondary measurement time point is in the rising state of the waveform.

도 7을 참조하면, 계산된 기울기의 절대값이 동기 신호 파형의 기울기 절대값과 같지 않으면, 1차 측정 시점은 파형의 상승 상태에 있고, 2차 측정 시점은 파형의 하강 상태에 있다.Referring to FIG. 7, if the absolute value of the calculated slope is not equal to the absolute value of the slope of the synchronizing signal waveform, the first measuring point is in the rising state of the waveform and the second measuring point is in the falling state of the waveform.

이후, 외부의 동기 신호의 주기의 시작점에 해당하는 제어기(110-1 내지 110-N)의 클럭값(Clock Count)을 구한다. 이를 수식으로 나타내면 다음과 같다.Then, a clock value (Clock Count) of the controllers 110-1 to 110-N corresponding to the start point of the cycle of the external synchronization signal is obtained. The equation is expressed as follows.

Figure 112015004727785-pat00001
Figure 112015004727785-pat00001

여기서, (X,Y)는 1차 또는 2차 측정시의 클럭값과 전압 크기를 나타내며, α는 측정한 기울기값을 나타낸다. 또한,

Figure 112015004727785-pat00002
는 동기 신호의 주기의 시작점에 해당하는 클럭값이다.
Here, (X, Y) represents the clock value and the voltage magnitude in the primary or secondary measurement, and? Represents the measured slope value. Also,
Figure 112015004727785-pat00002
Is a clock value corresponding to the start point of the period of the synchronization signal.

따라서, (X,Y)에 1차 또는 2차 측정시의 클럭값과 전압 크기를 대입하여

Figure 112015004727785-pat00003
을 구한다.Therefore, by substituting (X, Y) the clock value and the voltage magnitude in the primary or secondary measurement
Figure 112015004727785-pat00003
.

이후, 현재의 제어기의 클럭값을 얻어

Figure 112015004727785-pat00004
와의 차이를 구한 후 이를 시간으로 변환한다. 이 시간이 동기 신호 주기의 시작점으로부터 현재까지 경과된 시간이다. 이를 가지고 시간 기록(timestamp)의 10밀리세컨드 이하의 시간을 보정한다.Then, the clock value of the current controller is obtained
Figure 112015004727785-pat00004
And converts it into time. This time is the elapsed time from the start point of the synchronizing signal period to the present. This is used to compensate for timestamps that are less than 10 milliseconds in duration.

따라서, 제 1 제어기 내지 제 N 제어기(110-1 내지 110-N)가 동일한 프로세스를 진행하여, 결과적으로 외부의 동기 신호의 주기의 시작점을 알고 제어기별로 경과된 시간을 각각 계산하여 시간 기록을 생성 및/또는 보정한다. 이로써 모든 제어기(110-1 내지 110-N)는 동일한 시간축에서 정밀한 시간 기록을 획득할 수 있다.Therefore, the first controller through the Nth controllers 110-1 through 110-N proceed in the same process, and as a result, they know the starting point of the cycle of the external synchronization signal and calculate the elapsed time for each controller, And / or corrected. Thereby, all of the controllers 110-1 to 110-N can acquire precise time records on the same time axis.

100: 데이터 동기화 시스템
110-1 내지 110-N: 제 1 제어기 내지 제 N 제어기
111: 서버 프로세스
112: 클라이언트 프로세스
410: 외부 전자 회로
100: Data synchronization system
110-1 to 110-N: First to Nth controllers
111: Server Process
112: Client process
410: external electronic circuit

Claims (14)

로봇에 배치되는 다수의 센서간 데이터를 동기화하기 위한 시간 기록을 포함하는 데이터 동기화 시스템에 있어서,
동기 신호를 생성하는 외부 전자 회로; 및
상기 동기 신호 또는 자체 운영체제의 시간 정보에 따른 시간 기록을 생성하고 상기 시간 기록 및 고유 식별자를 갖는 데이터를 서버 프로세스 및 클라이언트 프로세서간 통신을 통해 상호 동기화하고 상기 동기화에 따라 상기 데이터를 갱신하는 다수의 제어기;를 포함하고,
상기 다수의 제어기는 상기 시간기록을 개별적으로 초단위 이상의 시간의 경우 상기 자체 운영체제의 시간 정보에서 획득하고, 초단위 이하의 시간의 경우 상기 동기 신호를 이용하여 획득하는 것을 특징으로 하는 시간 기록을 포함하는 데이터 동기화 시스템.
A data synchronization system comprising a time record for synchronizing data between a plurality of sensors disposed in a robot,
An external electronic circuit for generating a synchronizing signal; And
A plurality of controllers for generating time records in accordance with the time information of the synchronization signal or the own operating system and for synchronizing data with the time recording and unique identifier through communications between the server process and the client processor and updating the data according to the synchronization, Lt; / RTI &gt;
Wherein the plurality of controllers acquire the time record individually from the time information of the operating system in the case of a time longer than a second unit and acquire the time information by using the synchronization signal in the case of a time shorter than a second unit time. Data synchronization system.
제 1 항에 있어서,
상기 다수의 제어기는 상기 동기 신호를 동시에 수신하여 상기 시간 기록의 기준점을 동기화하는 것을 특징으로 하는 시간 기록을 포함하는 데이터 동기화 시스템.
The method according to claim 1,
Wherein the plurality of controllers simultaneously receive the synchronization signal to synchronize the reference points of the time recording.
제 1 항에 있어서,
상기 서버 프로세스 및 클라이언트 프로세스간 통신은 하나의 클라이언트 프로세스 대 다수의 서버 프로세스간 통신인 것을 특징으로 하는 시간 기록을 포함하는 데이터 동기화 시스템.
The method according to claim 1,
Wherein the server process and the client process communication are communication between one client process and a plurality of server processes.
제 2 항에 있어서,
상기 동기 신호는 삼각파의 아날로그 파형인 것을 특징으로 하는 데이터 동기화 시스템.
3. The method of claim 2,
Wherein the synchronization signal is an analog waveform of a triangle wave.
삭제delete 제 1 항에 있어서,
상기 초단위는 1초인 것을 특징으로 하는 데이터 동기화 시스템.
The method according to claim 1,
Wherein the second unit is one second.
제 1 항에 있어서,
상기 시간 기록의 보정은 상기 동기 신호의 주기의 시작점을 이용하여 이루어지는 것을 특징으로 하는 데이터 동기화 시스템.
The method according to claim 1,
Wherein the correction of the time recording is performed using the start point of the period of the synchronization signal.
제 7 항에 있어서,
상기 동기 신호의 주기의 시작점은 상기 동기 신호의 파형의 전압 크기, 상승 및 하강의 형태를 이용하여 산출되는 클럭값인 것을 특징으로 하는 데이터 동기화 시스템.
8. The method of claim 7,
Wherein the start point of the period of the synchronization signal is a clock value calculated using a voltage magnitude, a rising and a falling of a waveform of the synchronization signal.
제 8 항에 있어서,
상기 시간 기록의 보정은 상기 시작점의 클럭값과 상기 다수의 제어기 중 해당 제어기의 현재 클럭값의 차이를 시간으로 변환한 값인 것을 특징으로 하는 데이터 동기화 시스템.
9. The method of claim 8,
Wherein the correction of the time recording is a value obtained by converting a difference between a clock value of the start point and a current clock value of the corresponding controller among the plurality of controllers into a time.
제 1 항에 있어서,
상기 다수의 제어기는 동일한 시간축에서 상기 시간 기록을 획득하는 것을 특징으로 하는 데이터 동기화 시스템.
The method according to claim 1,
Wherein the plurality of controllers obtain the time record on the same time axis.
제 1 항에 있어서,
상기 서버 프로세스 및 클라이언트 프로세스간의 연결관계는 서버 목록, 상기 서버 목록에 따른 서버 주소 및 데이터 항목 정보를 담고 있는 연결 설정 파일로 정의되는 것을 특징으로 하는 데이터 동기화 시스템.
The method according to claim 1,
Wherein the connection relationship between the server process and the client process is defined as a connection setting file including a server list, a server address according to the server list, and data item information.
제 1 항에 있어서,
상기 다수의 제어기는 각각 하나의 서버 프로세스 및 하나의 클라이언트 프로세스만을 실행하는 것을 특징으로 하는 데이터 동기화 시스템.
The method according to claim 1,
Wherein the plurality of controllers execute only one server process and one client process, respectively.
제 1 항에 있어서,
상기 고유 식별자는 상기 다수의 제어기 및 데이터 항목마다 부여되는 것을 특징으로 하는 데이터 동기화 시스템.
The method according to claim 1,
Wherein the unique identifier is assigned to each of the plurality of controllers and data items.
로봇에 배치되는 다수의 센서간 데이터를 동기화하기 위한 시간 기록을 포함하는 데이터 동기화 시스템의 데이터 동기화 방법에 있어서,
외부 전자 회로가 동기 신호를 생성하는 단계;
다수의 제어기가 상기 동기 신호 또는 자체 운영체제의 시간 정보에 따른 시간 기록을 생성하는 단계;
상기 다수의 제어기가 상기 시간 기록 및 고유 식별자를 갖는 데이터를 생성하는 단계;
상기 다수의 제어기가 서버 프로세스 및 클라이언트 프로세서간 통신을 통해 상호 동기화하는 단계; 및
상기 다수의 제어기가 상기 동기화에 따라 상기 데이터를 갱신하는 단계;를 포함하고,
상기 다수의 제어기는 상기 시간기록을 개별적으로 초단위 이상의 시간의 경우 상기 자체 운영체제의 시간 정보에서 획득하고, 초단위 이하의 시간의 경우 상기 동기 신호를 이용하여 획득하는 것을 특징으로 하는 시간 기록을 포함하는 데이터 동기화 방법.
A method of data synchronization in a data synchronization system, comprising a time record for synchronizing data between a plurality of sensors disposed in a robot,
The external electronic circuit generating a synchronization signal;
A plurality of controllers generating a time record according to the time information of the synchronization signal or the operating system;
The plurality of controllers generating data having the time stamp and unique identifier;
Synchronizing the plurality of controllers with each other through communication between a server process and a client processor; And
The plurality of controllers updating the data according to the synchronization,
Wherein the plurality of controllers acquire the time record individually from the time information of the operating system in the case of a time longer than a second unit and acquire the time information by using the synchronization signal in the case of a time shorter than a second unit time. Data synchronization method.
KR1020150007955A 2015-01-16 2015-01-16 System and Method for synchronizing data including timestamp between plural controllers KR101645260B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150007955A KR101645260B1 (en) 2015-01-16 2015-01-16 System and Method for synchronizing data including timestamp between plural controllers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150007955A KR101645260B1 (en) 2015-01-16 2015-01-16 System and Method for synchronizing data including timestamp between plural controllers

Publications (2)

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

Family

ID=56616931

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150007955A KR101645260B1 (en) 2015-01-16 2015-01-16 System and Method for synchronizing data including timestamp between plural controllers

Country Status (1)

Country Link
KR (1) KR101645260B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200061809A (en) * 2018-11-26 2020-06-03 현대오트론 주식회사 Communication system for vehicle and operating method thereof
WO2022164286A1 (en) * 2021-01-29 2022-08-04 삼성전자 주식회사 Electronic device for synchronizing time of received data records, and method therefor

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102474811B1 (en) * 2017-12-07 2022-12-06 현대자동차주식회사 Vehicle data logging apparatus and method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006526323A (en) 2003-05-09 2006-11-16 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Measurement report time stamping apparatus and method for guaranteeing accuracy of reference time
JP2013169063A (en) 2012-02-15 2013-08-29 Canon Inc Motor controller, robot device, and method for controlling motor

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100914568B1 (en) 2004-03-04 2009-08-31 닛본 덴끼 가부시끼가이샤 Data update system, data update method, recording medium having data update program recorded thereon, data supply device, robot apparatus and robot system
KR100745641B1 (en) 2007-05-02 2007-08-02 주식회사 아이오. 테크 Communication Method and Data Structure for Controlling Network Based Robot System
KR100977988B1 (en) * 2008-07-07 2010-08-26 한국과학기술원 Apparatus having communication frame structure for ethernet switch and real time multiprocessor communication method using thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006526323A (en) 2003-05-09 2006-11-16 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Measurement report time stamping apparatus and method for guaranteeing accuracy of reference time
JP2013169063A (en) 2012-02-15 2013-08-29 Canon Inc Motor controller, robot device, and method for controlling motor

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200061809A (en) * 2018-11-26 2020-06-03 현대오트론 주식회사 Communication system for vehicle and operating method thereof
KR102143080B1 (en) * 2018-11-26 2020-08-10 현대오트론 주식회사 Communication system for vehicle and operating method thereof
WO2022164286A1 (en) * 2021-01-29 2022-08-04 삼성전자 주식회사 Electronic device for synchronizing time of received data records, and method therefor

Also Published As

Publication number Publication date
KR20160088982A (en) 2016-07-27

Similar Documents

Publication Publication Date Title
JP6399136B1 (en) Control device, control program, and control system
JP4185926B2 (en) Robot cooperative control method and system
US10958367B2 (en) Network apparatus and clock synchronization method
JP6523497B1 (en) Master controller and synchronous communication system using the same
US20180109655A1 (en) Control device and communication device
US20110222561A1 (en) Systems and methods for providing time synchronization
KR101645260B1 (en) System and Method for synchronizing data including timestamp between plural controllers
WO2015128981A1 (en) Programmable controller system and controller therefor
KR101636496B1 (en) Signal synchronization system, node synchronization system, signal synchronization method, and node synchronization method
WO2014041592A1 (en) Correction parameter calculation device and system, correction parameter calculation method, and computer program
JP2007060400A (en) Method and system for controlling communication timing
WO2015087751A1 (en) Time correction device, measurement device, and time correction method
WO2021077289A1 (en) Synchronization method and device
JP6737018B2 (en) Optical measuring device
US20150318939A1 (en) Relay device, relay method, and relay program
CN111443685B (en) Method for providing universal time in control device and control device
US20170117980A1 (en) Time synchronization for network device
WO2016042588A1 (en) On-board control device and simulation device for on-board control device
JP2007163330A (en) Time information communication system
JP6431492B2 (en) Cooperation instruction device, cooperation instruction program, and cooperation instruction method
WO2015033532A1 (en) Time synchronization system
CN110366240A (en) Wireless sensor network high-precise synchronization triggering method
CN110098971A (en) A kind of network link asymmetry measurement method and network node
JP2020053737A (en) Information communication system
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