KR20150058943A - EtherCAT을 위한 노드간 최적 시간 위상 검색 시스템 - Google Patents
EtherCAT을 위한 노드간 최적 시간 위상 검색 시스템 Download PDFInfo
- Publication number
- KR20150058943A KR20150058943A KR1020130142312A KR20130142312A KR20150058943A KR 20150058943 A KR20150058943 A KR 20150058943A KR 1020130142312 A KR1020130142312 A KR 1020130142312A KR 20130142312 A KR20130142312 A KR 20130142312A KR 20150058943 A KR20150058943 A KR 20150058943A
- Authority
- KR
- South Korea
- Prior art keywords
- task
- node
- nodes
- simulation
- time
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/12—Synchronisation of different clock signals provided by a plurality of clock generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4825—Interrupt from clock, e.g. time of day
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 발명은 EtherCAT을 위한 노드간 최적 시간 위상 검색 시스템에 관한 것으로, 환경설정 파일을 읽어들여 시뮬레이터 커널(200)로 인가하는 인풋 파일 파서(100); 복수개의 node에 대한 위상을 변경해 가면서 시뮬레이션을 수행하는 시뮬레이터 커널(200); 시뮬레이션 수행을 위한 각 node 정보들을 저장하는 노드 오브젝트(300); 및 시뮬레이션 수행중에 생성되는 모든 이벤트들을 아웃풋 파일로 저장하고, 각 node간 최적의 위상 정보를 도출하는 로그 매니저(400);를 포함한다.
상기 본 발명에 따르면, 고정 우선순위 스케줄링기법으로 스케줄링 되는 주기적 태스크들의 집합이 각 node에 존재하는 상황을 모델링하고, node사이의 내부동작(polling 과 interrupt 두 모드에서 발생하는 네트워크 이벤트 핸들링, 네트워크 디바이스에서의 메시지 큐잉 및 DMA)를 고려하며, 실시간 네트워크에서 발생하는 통신 지연시간을 계산함으로써, 노드간 최적의 위상차를 도출하는 효과가 있다.
상기 본 발명에 따르면, 고정 우선순위 스케줄링기법으로 스케줄링 되는 주기적 태스크들의 집합이 각 node에 존재하는 상황을 모델링하고, node사이의 내부동작(polling 과 interrupt 두 모드에서 발생하는 네트워크 이벤트 핸들링, 네트워크 디바이스에서의 메시지 큐잉 및 DMA)를 고려하며, 실시간 네트워크에서 발생하는 통신 지연시간을 계산함으로써, 노드간 최적의 위상차를 도출하는 효과가 있다.
Description
본 발명은 EtherCAT을 위한 노드간 최적 시간 위상 검색 시스템에 관한 것으로 더욱 상세하게는, 하나의 마스터와 다수의 슬레이브 노드들로 구성된 EtherCAT을 구성하여 분산 노드들간의 종단 지연시간 및 기계 작동 지터에 대한 최적의 위상을 도출하는 기술에 관한 것이다.
EtherCAT이나 PROFINET 같은 최근의 산업용 네트워크는 높은 정확도의 클럭 동기화를 지원한다. 따라서 이런 특징은 분산node에 존재하는 태스크들의 적절한 위상차를 조정할 수 있는 가능성을 제공한다.
예를 들어 EtherCAT distributed clock은 나노초 단위의 에러율을 가지는 동기화를 제공하고, PROFINET는 Precision Transparent Clock Protocol (PTCP)를 클럭 동기화를 위해 제공한다.
이러한 정확한 클럭 동기화 기법들은 분산 node들에서 의존적으로 동작하는 태스크들에게 정확한 위상차를 제공할 수 있는 기회를 제공한다(예를 들어, multi-axis motion controls).
대한민국 공개특허 2011-0072009호(로봇 통신용 통합 네트워크 시스템 및 그의 운용 방법)에는, 이더캣 네트워크 시스템에서 생성된 이더캣 네트워크 메시지를 캔 프레임으로 변환하여 캔 네트워크 시스템에 전달하거나, 캔 네트워크 시스템이 전달한 캔 프레임을 이더캣 네트워크 메시지로 변환하여 이더캣 네트워크 시스템에 전달하는 데이터 변환 장치를 포함하는 구성이 개시된바 있다.
그러나, 전술한 선행특허와 지금껏 많은 연구들은 글로벌 클럭을 가정하지 않고, 각 node에서 최악 태스크 위상차만을 고려하였기 때문에, 분산node에서 최적의 node 위상차를 도출하지 못하는 문제점이 있다.
따라서, 본 발명은 분산 node들 간의 작은 종단 node 지연시간과 작은 기계 작동 지터를 가지는 최적 node 간 위상을 찾는 시뮬레이션 툴을 통해, 전체적으로 각 node의 태스크 스케줄링, 메시지 전송, DMA, I/O 이벤트 핸들링을 위한 시뮬레이터를 제공한다.
또한, 불필요한 위상은 시뮬레이션을 수행하지 않고 건너뛰어 시뮬레이션 시간을 줄임으로써, 케이스 스터디를 통해 제안된 시뮬레이션 툴이 효과적으로 분산node에서 최적 node 위상차를 도출한다.
본 발명의 목적은, 고정 우선순위 스케줄링기법으로 스케줄링 되는 주기적 태스크들의 집합이 각 node에 존재하는 상황을 모델링하고, node사이의 내부동작(polling 과 interrupt 두 모드에서 발생하는 네트워크 이벤트 핸들링, 네트워크 디바이스에서의 메시지 큐잉 및 DMA)를 고려하며, 실시간 네트워크에서 발생하는 통신 지연시간을 계산함으로써, 노드간 최적의 위상차를 도출하는데 그 목적이 있다.
이러한 기술적 과제를 달성하기 위한 본 발명에 따른 EtherCAT을 위한 노드간 최적 시간 위상 검색 시스템은, 환경설정 파일을 읽어들여 시뮬레이터 커널(200)로 인가하는 인풋 파일 파서(100); 복수개의 node에 대한 위상을 변경해 가면서 시뮬레이션을 수행하는 시뮬레이터 커널(200); 시뮬레이션 수행을 위한 각 node 정보들을 저장하는 노드 오브젝트(300); 및 시뮬레이션 수행중에 생성되는 모든 이벤트들을 아웃풋 파일로 저장하고, 각 node간 최적의 위상 정보를 도출하는 로그 매니저(400);를 포함한다.
상기 본 발명에 따르면, 고정 우선순위 스케줄링기법으로 스케줄링 되는 주기적 태스크들의 집합이 각 node에 존재하는 상황을 모델링하고, node사이의 내부동작(polling 과 interrupt 두 모드에서 발생하는 네트워크 이벤트 핸들링, 네트워크 디바이스에서의 메시지 큐잉 및 DMA)를 고려하며, 실시간 네트워크에서 발생하는 통신 지연시간을 계산함으로써, 노드간 최적의 위상차를 도출하는 효과가 있다.
도 1은 본 발명에 따른 위상들의 최적 조합을 위한 시스템 모델을 도시한 도면.
도 2는 본 발명에 따른 EtherCAT을 위한 노드간 최적 시간 위상 검색 시스템을 도시한 구성도.
도 3은 본 발명에 따른 EtherCAT을 위한 노드간 최적 시간 위상 검색 시스템(S)의 시뮬레이션 횟수 저감을 위한 조건을 도시한 도면.
도 4는 본 발명에 따른 종단 지연시간이 마스터와 슬레이브의 위상증가에 따라 변화에 따라 변화하는 것을 도시한 예시도.
도 5는 본 발명에 따른 최소 종단 지연시간을 갖는 node 위상 조합을 도시한 도면.
도 6은 본 발명에 따른 최소 엑추에이터 지터의 node 위상 조합을 도시한 도면.
도 7은 본 발명에 따라 35번째 슬레이브 node에서 상관관계 상태가 변화하는 대상 지점들만 측정한 결과를 도시한 도면.
도 8은 본 발명에 따른 도 7의 측정결과를 점으로 연결하여 얻은 나머지 값들을 도시한 도면.
도 2는 본 발명에 따른 EtherCAT을 위한 노드간 최적 시간 위상 검색 시스템을 도시한 구성도.
도 3은 본 발명에 따른 EtherCAT을 위한 노드간 최적 시간 위상 검색 시스템(S)의 시뮬레이션 횟수 저감을 위한 조건을 도시한 도면.
도 4는 본 발명에 따른 종단 지연시간이 마스터와 슬레이브의 위상증가에 따라 변화에 따라 변화하는 것을 도시한 예시도.
도 5는 본 발명에 따른 최소 종단 지연시간을 갖는 node 위상 조합을 도시한 도면.
도 6은 본 발명에 따른 최소 엑추에이터 지터의 node 위상 조합을 도시한 도면.
도 7은 본 발명에 따라 35번째 슬레이브 node에서 상관관계 상태가 변화하는 대상 지점들만 측정한 결과를 도시한 도면.
도 8은 본 발명에 따른 도 7의 측정결과를 점으로 연결하여 얻은 나머지 값들을 도시한 도면.
본 발명의 구체적인 특징 및 이점들은 첨부도면에 의거한 다음의 상세한 설명으로 더욱 명백해질 것이다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 발명자가 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야 할 것이다. 또한, 본 발명에 관련된 공지 기능 및 그 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는, 그 구체적인 설명을 생략하였음에 유의해야 할 것이다.
먼저, 본 발명에 따른 EtherCAT을 위한 노드간 최적 시간 위상 검색 시스템의 이해를 돕기 위한 시스템 모델에 대해 살피면 아래와 같다.
A. Node Model
본 발명에 따른 모든 슬레이브 node들은 같은 태스크 집합을 가지는 것으로 상정하겠으나, 본 발명이 이에 국한되는 것은 아니며, 마스터 node는 슬레이브 node들과 달리 다른 태스크 집합을 가질 수 있다.
또한, 본 발명에 따른 node m의 태스크들은 로 정의되며, 여기서 n은 마스터(m = 0)와 슬레이브들(1≤m≤N)이 서로 다를 수 있다(즉, 다른 태스크 셋을 가질 수 있다).
또한, 각 태스크를 무한한 job들을 순서대로 발생시키는데, 은 태스크의 j번째 job이다. 의 시작시간은 로 정의하고 첫 번째 job의 시작시간, 즉 을 의 위상이라 부르며 이것을 로 정의한다.
또한, 본 발명에 따른 시뮬레이션 프레임워크는 크리티컬 인스턴스(모든 태스크가 0에 시작한다)를 가정하고, 모든 node들은 싱글 프로세서를 구비한 것으로 상정한다.
또한, 위상들의 최적 조합은 도 1에 도시된 바와 같이 로 표현된다. node 위상 은 0과 사이에 존재할 수 있다. 여기서, 은 node m에 존재하는 모든 태스크들의 주기의 최소공배수 이다.
또한, 태스크 스케줄링 알고리즘을 위해 RM과 같은 고정 우선순위 스케줄링을 가정하는데, 각 태스크가 고정된 우선순위를 가지고 있기 때문에, 낮은 우선순위의 태스크 실행이 더 높은 우선순위의 태스크에 의해 선점 될 수 있다. 따라서 로 표현되는 의 응답시간(실행시간의 끝)은 선점시간을 반영한다.
또한, 본 발명에 따른 태스크 모델은 보편적으로 많은 산업용 네트워크에서 사용되는 실제시나리오를 반영하기 위해 node 안에 존재하는 태스크들 중 오직 하나의 태스크만 네트워크 디바이스를 접근 할 수 있다고 가정한다.
많은 산업용 네트워크 프로토콜들이 태스크들 간의 multiplexing과 de-multiplexing 을 지원하지 않기 때문에 이것의 근거가 된다. 게다가, 이름에서 의미하듯이 오직 마스터 node만 메시지 전송을 수행한다.
각 슬레이브 node는 오직 전송 받은 메시지를 다른 node로 전달 할 때만 메시지에 어떤 정보를 끼워 넣을 수 있다. 하지만, 슬레이브 node가 메시지를 전송할 수는 없다. 일단 마스터 node의 전송 태스크가 메시지를 생성하고 이것을 네트워크 디바이스로 전달하면, 메시지는 네트워크 디바이스의 큐잉 딜레이()를 겪은 후 네트워크로 전송된다. 비슷하게, 메시지가 슬래이브 node에 도착하면, 메시지가 수신 태스크에 전달되기 전에 메시지 핸들 타임()이 요구된다.
B. Network Model
본 발명은 node간 통신을 위해 EtherCAT과 같은 실시간 필드 버스를 가정하였고, EtherCAT은 다음과 같은 2가지 디자인선택을 통해 결정적인 통신 지연을 제공한다.
첫 번째는 인접한 두 node가 daisy-chain manner형태의 직접 연결되어 있는 것이다. 즉, m과 m+1 node 사이에 어떤 간섭도 없으며 따라서 링크에 패킷 충돌이 없다는 것을 의미한다.
두 번째는 각 슬레이브 node가 store-and-forward switching(패킷을 node에 일단 저장한 후 다시 패킷을 네트워크 카드를 이용해 전송하는 것)이 아닌 웜 홀 스위칭 역할을 수행하여 패킷을 슬레이브 m-1에서 슬래이브 m+1로 전달하는 것이다.
이 하드웨어 레벨에서 구현된 스위칭 구현 기법은 내부적인 소프트웨어 작업으로 인해 발생되는 종단 node 간 지연시간을 줄일 수 있는 기회를 제공한다. 결과로써, EtherCAT은 마스터와 슬레이브node m까지의 예측 가능한 통신지연시간을 제공할 수 있고, 이것은 아래의 [수학식 1]에 의해 분석된다.
[수학식 1]
본 발명에 따른 시뮬레이션 프레임워크는 상기 [수학식 1]을 적용함에 따라 마스터 node의 초기태스크의 시작시간부터 슬레이브 node의 기계작동태스크가 작업을 완료하는 시간은 [수학식 2]와 같이 표현할 수 있다.
[수학식 2]
여기서, 는 마스터 node의 초기태스크의 시작시간부터 전송태스크의 종료시간과 큐잉타임 을 합한 시간까지 이며, 은 메시지가 슬레이브 node m에 도착한 시간부터 기계작동태스크가 작업을 종료한 시점까지의 지연시간이다.
정리하면, 본 발명에 따른 시뮬레이터 프레임워크에서 분석하기 위한 성능지표는, 종단지연시간, 기계 작동 지터 및 시뮬레이션 시간 동안 패킷 드롭을 일으키지 않을 가능한 한 최소한의 네트워크 큐 사이즈 q이다. 즉, 이다.
이하, 도 2를 참조하여 본 발명에 따른 EtherCAT을 위한 노드간 최적 시간 위상 검색 시스템이 node 위상들 에서 최적 node 위상조합을 도출하면서 대상 성능지표를 살피면 아래와 같다.
도 2에 도시된 바와 같이, 본 발명에 따른 EtherCAT을 위한 노드간 최적 시간 위상 검색 시스템(S)은, 인풋 파일 파서(100), 시뮬레이터 커널(200), node objects(300) 및 로그 매니저(400)를 포함하여 구성된다.
이하에서는 그 구체적인 언급을 생략하겠으나, node의 수, 태스크 셋, 네트워크 대역폭, 메시지 사이즈, 이벤트 핸들링 모드 등과 같은 환경변수들은 XML포멧으로 구성된 환경설정 파일로 미리 설정되어 있다.
먼저, 인풋 파일 파서(100)는 초기화시 환경설정 파일을 읽어들여 시뮬레이터 커널(200)로 인가한다.
또한, 시뮬레이터 커널(200)은 복수개의 node에 대한 위상을 변경해 가면서 시뮬레이션을 수행한다.
또한, 노드 오브젝트(300)는 시뮬레이션 수행을 위한 각 node 정보들을 저장한다.
그리고, 로그 매니저(400)는 시뮬레이션 수행중에 생성되는 모든 이벤트들을 아웃풋 파일로 저장하여 각 node간 최적의 위상 정보를 도출한다.
구체적으로, 본 발명의 시뮬레이터 커널(200)은 클럭 에뮬레이터(210), CPU 에뮬레이터(220), 및 network 에뮬레이터(230)로 구성된다.
먼저, 클럭 에뮬레이터(210)는 동기화된 글로벌 클럭을 시뮬레이트 하고(예를 들어, EtherCAT 의 distributed clock), 그리고 매 시뮬레이션 마다 카운터를 증가시킨다.
또한, CPU 에뮬레이터(220)는 실시간을 각 node의 모든 태스크 수행을 제어하되, scheduler에 의해 기 설정된 태스크가 선택되면, 작업 실행기(task executer)가 선택된 태스크의 작업정보를 기초하여 선택된 태스크의 행동을 에뮬레이트 한다.
이때, 작업이 전송중인 경우, task executer가 작업의 실행시간 마지막에 네트워크 디바이스로 메시지를 전송하라는 명령을 보낸다.
반면에, 작업이 수신중인 경우는, task executer가 자신의 작업의 시작시간에 메시지 큐에 존재하는 자신의 메시지를 수신한다.
또한, 작업 부여가 기계 작동인 경우, task executer가 태스크의 완료시간에 기계 작동이 발생했다고 알린다.
그리고, 부여된 작업이 기타인 경우, task executer가 태스크 컨트롤 블록인 etime을 증가시키는 기능을 수행한다.
한편, network 에뮬레이터(230)는 네트워크 디바이스 동작(메시지 전송, DMA 또는 인터럽트 발생)을 시뮬레이션 하되, 인터럽트 모드 또는 폴링모드로 이벤트 핸들링을 수행한다.
이때, network 에뮬레이터(230)가 폴링모드로 구동하는 경우, 수신태스크가 시작될 때 이벤트 핸들링이 수행되며, 이에 따라 network 에뮬레이터(230)가 수신 메시지를 수신 큐에 아무런 통지 없이 전송한다.
반면에, network 에뮬레이터(230)가 인터럽트 모드로 구동하는 경우, 인터럽트 발생 신호를 CPU 에뮬레이터(220)에게 전달함에 따라 인터럽트 핸들러 발생하여 현재 동작하고 있는 태스크를 즉시 선점하도록 구동된다.
한편, 노드 오브젝트(300)는 시뮬레이션 수행을 위한 node의 런큐, 메시지큐 및 네트워크 컨트롤러 상태정보를 포함하는 각 node 정보들을 저장한다.
구체적으로, 런큐는 태스크 컨트롤 블록들을 저장하며, 저장되는 태스크 컨트롤 블록은 , , , 작업임무 및 해당하는 태스크가 실행하는 시간의 양을 포함하며, 본 발명에서는 이를 'etime'이라고 명명한다.
여기서, 작업임무는 송신, 수신, 기계작동 및 기타의 4개 카테고리로 구성되며 각 정보는 태스크의 행동을 결정한다.
또한, etime 변수는 현재주기에서 태스크가 소모하는 시간을 나타내고, message queue는 아직 네트워크로 송신되지 않은 메시지나 수신태스크에 의해 소모되지 않은 네트워크 메시지들을 저장한다.
그리고, 네트워크 컨트롤러는 대역폭 정보를 기반으로 자신과 전송할 메시지가 남아있는 바이트들에 대한 메시지 전송 속도를 결정한다.
이하, 도 3을 참조하여 본 발명에 따른 EtherCAT을 위한 노드간 최적 시간 위상 검색 시스템(S)의 시뮬레이션 횟수 저감을 위한 조건을 도시한 도면이다.
시뮬레이터가 가능한 모든 위상조합들에 대한 모든 단계의 동작들을 시뮬레이션 한다면, 최적 위상조합을 찾기 위서 많은 검색 시간이 소요되게 된다.
최적의 위상조합을 찾기 위한 검색시간은 node의 개수와 위상 범위에 따라 증가하고, 이는 디스크 IO 성능에 영향을 받는 log manager로 인해 시뮬레이터의 오버헤드에 중대한 영향을 미치게 된다.
이에 따라, 위상조합 개수를 줄이기 위해 모든 가능한 위상조합들의 정보를 수집한 결과, 단일 node의 위상이 다른 node의 종단지연시간에 영향을 미치지 않는다는 것을 도출하였다.
즉, 시뮬레이션을 위해 모든 node들의 위상들을 함께 고려하지 않아도 되며, 각 node의 위상을 독립적으로 집중할 수 있어 시뮬레이션 loop을 줄이는 것이 가능하다.
또한, 시뮬레이션 동안 종단 지연시간이 위상이 증가 할수록 증가한다는 점을 확인하였고, 더욱이 위상이 증가할수록 어떤 점에서 종단 지연시간이 어느 기간 동안 일정한 값이 나오거나, 급격히 값이 떨어지는 현상을 확인하였다.
이러한 분석결과, 도 3과 같은 상태를 도출하였고, 한 위상에서 다음 위상으로 옮겨질 때 도 3의 상태가 변경되면 종단 지연시간의 트렌드는 변경될 수 있다는 것을 확인하였다. 따라서, 도 3의 상태가 변하는 적은 개수의 위상조합만 시뮬레이션 하여 시뮬레이션 loop을 현저히 줄일 수 있었다.
한편, 도 4는 종단 지연시간이 마스터와 슬레이브의 위상증가에 따라 변화에 따라 변화하는 것을 도시한 예시도이다.
도 4에 도시된 바와 같이, 종단 지연시간은 대체로 증가하나, 상태가 S1에서 S4로 변화는 지점부터 S2에서 S1으로 변하는 지점에서는 값이 일정하고, 상태가 S4에서 S3로 변하는 지점은 선이 끊기면서 값이 급격히 감소하는 것을 알 수 있다.
그리고, [표 1]은 본 발명에 따라 슬레이브 node들에서 수행시킨 태스크 셋을 도시한 것이고, [표 2]는 환경설정 인자 값들을 도시한 것이다.
[표 1] 및 [표 2]와 같은 환경으로 시뮬레이션을 수행한 결과, 도 5 및 도 6과 같은 최고의 종단 지연시간과 기계 작동 지터를 갖는 각각의 node 위상조합을 도출하였다.
[표 1]
[표 2]
또한, 태스크 셋에 대한 최적 위상 조합의 의미를 더하기 위해, 기본 태스크 셋(케이스1) 외에 3개의 태스크 셋을 더 실험 하였다.
케이스2는 RtMsg 태스크가 가장 높은 우선순위를 가지고 MotorAct 태스크가 2번째 우선순위를 가지고, 케이스 3 RtMsg 의 실행시간을 21~30us 로 늘렸고 케이스4는 MotorAct 의 실행시간을 49~70us 로 증가시켰다.
한편, [표 3]과 [표 4]는 도 5와 도 6에 도시된 node 위상조합에서 측정된 종단 지연시간과 기계 작동 지터를 보여준다.
[표 3]
[표 4]
즉, 본 발명은 태스크의 실행시간을 최대값과 최소값을 고려했기 때문에, 종단 지연시간과 기계 작동 지터 또한 최대값과 최소값을 도출할 수 있었다.
또한, 도 5 및 도 6에 도시된 바와 같이, 최소 종단 지연시간이 최소 엑추에이션 지터를 보장하지 않는다는 것을 확인할 수 있다. 엑추에이션 지터는 오직 모든 node에서 MotorAct 태스크가 종료되는 시점만을 고려하기 때문에, 최소 엑추에이터 지터는 마스터 node로부터 전송되는 메시지가 거의 같은 위상차를 가지는 node들에서 동작하는 엑추에이션 태스크가 시작되기 전에 도착해야 얻을 수 있다. 하지만 이것은 종단 지연시간의 증가를 불러온다.
전술한 바와 같이, 최적 위상을 도출하는 시간을 줄이기 위해 예측이 가능하거나 불필요한 위상들을 건너뛰어 시뮬레이션을 수행하였다.
도 7은 35번째 슬레이브 node에서 상관관계 상태가 변화하는 대상 지점들만 측정한 결과를 도시한 도면이고, 도 8은 도 7의 점들을 연결하여 얻은 나머지 값들을 도시한 도면이다.
전술한 바와 같이, 본 발명에 따른 EtherCAT을 위한 노드간 최적 시간 위상 검색 시스템(S)을 통해 시뮬레이션 loop을 현저히 줄여 검색시간을 단축할 수 있다.
이상으로 본 발명의 기술적 사상을 예시하기 위한 바람직한 실시예와 관련하여 설명하고 도시하였지만, 본 발명은 이와 같이 도시되고 설명된 그대로의 구성 및 작용에만 국한되는 것이 아니며, 기술적 사상의 범주를 일탈함이 없이 본 발명에 대해 다수의 변경 및 수정이 가능함을 당업자들은 잘 이해할 수 있을 것이다. 따라서 그러한 모든 적절한 변경 및 수정과 균등 물들도 본 발명의 범위에 속하는 것으로 간주되어야 할 것이다.
S: EtherCAT을 위한 노드간 최적 시간 위상 검색 시스템
100: 인풋 파일 파서 200: 시뮬레이션 커널
210: 클럭 에뮬레이터 220: CPU 에뮬레이터
230: network 에뮬레이터 300: 노드 오브젝트
400: 로그 매니저
100: 인풋 파일 파서 200: 시뮬레이션 커널
210: 클럭 에뮬레이터 220: CPU 에뮬레이터
230: network 에뮬레이터 300: 노드 오브젝트
400: 로그 매니저
Claims (4)
- 환경설정 파일을 읽어들여 시뮬레이터 커널(200)로 인가하는 인풋 파일 파서(100);
복수개의 node에 대한 위상을 변경해 가면서 시뮬레이션을 수행하는 시뮬레이터 커널(200);
상기 시뮬레이션 수행을 위한 각 node 정보들을 저장하는 노드 오브젝트(300); 및
상기 시뮬레이션 수행중에 생성되는 모든 이벤트들을 아웃풋 파일로 저장하고, 각 node간 최적의 위상 정보를 도출하는 로그 매니저(400);를 포함하는 것을 특징으로 하는 EtherCAT을 위한 노드간 최적 시간 위상 검색 시스템. - 제1항에 있어서,
상기 시뮬레이터 커널(200)은,
동기화된 글로벌 클럭을 시뮬레이트 하고, 매 시뮬레이션 마다 카운터를 증가시키는 클럭 에뮬레이터(210);
실시간을 각 node의 모든 태스크 수행을 제어하되, scheduler에 의해 기 설정된 태스크가 선택되면, 작업 실행기(task executer)가 선택된 태스크의 작업정보를 기초하여 선택된 태스크의 작업을 에뮬레이트하는 CPU 에뮬레이터(220); 및
네트워크 디바이스 동작(메시지 전송, DMA 또는 인터럽트 발생)을 시뮬레이션 하되, 인터럽트 모드 또는 폴링모드로 이벤트 핸들링을 수행하는 network 에뮬레이터(230);를 포함하는 것을 특징으로 하는 EtherCAT을 위한 노드간 최적 시간 위상 검색 시스템. - 제2항에 있어서,
상기 CPU 에뮬레이터(220)는,
작업이 전송중인 경우, task executer가 작업의 실행시간 마지막에 네트워크 디바이스로 메시지를 전송하라는 명령을 전송하고,
작업이 수신중인 경우, task executer가 자신의 작업의 시작시간에 메시지 큐에 존재하는 자신의 메시지를 수신하며,
작업 부여가 기계 작동인 경우, task executer가 태스크의 완료시간에 기계 작동이 발생하였음을 알리고,
부여된 작업이 기타인 경우, task executer가 태스크 컨트롤 블록인 etime을 증가시키는 기능을 수행하되,
상기 etime은 작업임무 및 해당하는 태스크가 실행하는 시간의 양을 포함하는 것을 특징으로 하는 EtherCAT을 위한 노드간 최적 시간 위상 검색 시스템. - 제2항에 있어서,
상기 network 에뮬레이터(230)는,
폴링모드로 구동하는 경우, 수신태스크가 시작될 때 이벤트 핸들링을 수행하여 수신 메시지를 수신 큐로 전송하고,
인터럽트 모드로 구동하는 경우, 인터럽트 발생 신호를 상기 CPU 에뮬레이터(220)로 전달하여 인터럽트 핸들러 발생에 따라 현재 동작하고 있는 태스크를 즉시 선점하도록 제어하는 것을 특징으로 하는 EtherCAT을 위한 노드간 최적 시간 위상 검색 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130142312A KR101552119B1 (ko) | 2013-11-21 | 2013-11-21 | EtherCAT을 위한 노드간 최적 시간 위상 검색 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130142312A KR101552119B1 (ko) | 2013-11-21 | 2013-11-21 | EtherCAT을 위한 노드간 최적 시간 위상 검색 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150058943A true KR20150058943A (ko) | 2015-05-29 |
KR101552119B1 KR101552119B1 (ko) | 2015-09-11 |
Family
ID=53393039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130142312A KR101552119B1 (ko) | 2013-11-21 | 2013-11-21 | EtherCAT을 위한 노드간 최적 시간 위상 검색 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101552119B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101644751B1 (ko) * | 2015-06-10 | 2016-08-01 | 경북대학교 산학협력단 | 분산 임베디드 시스템의 통합 시뮬레이션을 위한 메시지 브로커 장치 및 이의 동작 방법 |
KR102011215B1 (ko) * | 2018-05-02 | 2019-08-14 | 세종대학교산학협력단 | 유비쿼터스 센서 네트워크의 시뮬레이션 및 에뮬레이션 환경 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4627491B2 (ja) * | 2005-01-19 | 2011-02-09 | 株式会社イマジオム | クラスタコンピュータミドルウェアプログラム、クラスタコンピュータシミュレータプログラム、クラスタコンピュータ用アプリケーションプログラム、およびアプリケーションプログラム開発支援方法 |
KR101179431B1 (ko) * | 2011-06-17 | 2012-09-05 | 전자부품연구원 | 이더캣 네트워크 시스템 및 이의 운용 방법 |
EP2664933B1 (de) * | 2012-05-15 | 2014-06-25 | Omicron electronics GmbH | Testgerät, Testsystem und Verfahren zum Testen eines energietechnischen Prüflings |
-
2013
- 2013-11-21 KR KR1020130142312A patent/KR101552119B1/ko active IP Right Grant
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101644751B1 (ko) * | 2015-06-10 | 2016-08-01 | 경북대학교 산학협력단 | 분산 임베디드 시스템의 통합 시뮬레이션을 위한 메시지 브로커 장치 및 이의 동작 방법 |
KR102011215B1 (ko) * | 2018-05-02 | 2019-08-14 | 세종대학교산학협력단 | 유비쿼터스 센서 네트워크의 시뮬레이션 및 에뮬레이션 환경 |
Also Published As
Publication number | Publication date |
---|---|
KR101552119B1 (ko) | 2015-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhang et al. | Task-and network-level schedule co-synthesis of Ethernet-based time-triggered systems | |
Henriksson et al. | Cyber-physical systems modeling and simulation with Modelica | |
US8543263B2 (en) | Distributed avionics | |
EP2816425B1 (en) | Control device, image processing device, control method, computer-readable recording medium, and program | |
US20170329632A1 (en) | Device scheduling method, task manager and storage medium | |
JP6359098B2 (ja) | 分散リアルタイムシステムにおいて周期的なタスクの間で適時にデータを引き渡す方法 | |
JP2016194830A (ja) | 制御装置 | |
Puck et al. | Distributed and synchronized setup towards real-time robotic control using ROS2 on Linux | |
Carvajal et al. | Evaluation of communication architectures for switched real-time ethernet | |
KR101552119B1 (ko) | EtherCAT을 위한 노드간 최적 시간 위상 검색 시스템 | |
Kyriakakis et al. | A time-predictable open-source TTEthernet end-system | |
KR101704751B1 (ko) | 모듈 간의 타이밍 정보를 이용하는 멀티코어 시스템의 시뮬레이터, 및 그 시뮬레이션 방법 | |
WO2016189709A1 (ja) | コントローラ | |
Le et al. | Timed-automata based schedulability analysis for distributed firm real-time systems: a case study | |
US20110188520A1 (en) | Method for operating a time-controlled bus system | |
JP4961589B2 (ja) | ネットワークシステムおよびスレーブ同期方法 | |
US20220286267A1 (en) | Control system, information processing device, and non-transitory computer readable medium | |
Frühwirth et al. | TTEthernet SW-based end system for AUTOSAR | |
Boehm et al. | Real-time-shift: Pseudo-real-time event scheduling for the split-protocol-stack radio-in-the-loop emulation | |
Gabel et al. | QoS-adaptive control in NCS with variable delays and packet losses-a heuristic approach | |
Carvajal et al. | A TDMA Ethernet switch for dynamic real-time communication | |
CN112737815B (zh) | 一种动态配置网络模拟器事件队列的方法及系统 | |
Oujezsky et al. | Case study and comparison of SimPy 3 and OMNeT++ Simulation | |
Lee et al. | Phasing of periodic tasks distributed over real-time fieldbus | |
Lee et al. | A simulation tool for optimal phasing of nodes distributed over industrial real-time networks |
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 | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20180903 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20190903 Year of fee payment: 5 |