본문 바로가기
돈버는정보 돈버는정보

EtherCAT Distributed Clocks 원리|서보축 동기화가 가능한 이유

읽는 시간 약 18분

EtherCAT 서보드라이브나 고속 I/O 모듈의 설정화면을 보면 Distributed Clocks, DC, Sync0, Sync1이라는 항목을 볼 수 있습니다.

Distributed Clocks는 여러 EtherCAT 장치가 각각 가지고 있는 로컬 시계를 하나의 기준시간에 맞춰 매우 정밀하게 동기화하는 기능입니다.

이 기능 덕분에 네트워크상 서로 떨어져 있는 여러 서보축이나 I/O가 프레임을 받은 순간이 조금씩 달라도 같은 시점에 데이터를 취득하고 출력을 변경할 수 있습니다.

쉽게 말하면

통신 프레임 도착시간을 맞추는 것이 아니라 각 장치의 시계를 맞춘다

는 것이 EtherCAT Distributed Clocks의 핵심입니다.

왜 EtherCAT에 Distributed Clocks가 필요할까?

4개의 서보축이 동시에 움직이는 장비를 생각해보겠습니다.

Master에서 EtherCAT Frame을 보내면 데이터는 네트워크를 따라 각 Slave를 차례대로 통과합니다.

따라서 물리적으로 보면

Servo 1

Servo 2

Servo 3

Servo 4

가 데이터를 받는 순간에는 미세한 시간차가 발생합니다.

만약 각 Servo가

Frame을 받은 즉시 출력 변경

방식으로 움직인다면 축마다 동작시점이 조금씩 달라질 수 있습니다.

EtherCAT에서는 이런 문제를 해결하기 위해 각 Slave 내부에 Hardware Clock을 두고 동일한 시간기준에 맞춥니다.

그 결과 각 장치가 데이터를 받은 시간이 달라도

정해진 DC Time에서 동시에 동작

하도록 만들 수 있습니다.

기본 구조는 어떻게 되어 있을까?

Distributed Clocks를 단순화하면 다음과 같습니다.

EtherCAT MainDevice(Master)

↓

DC Reference Clock

↓

Slave 1 Local Clock

↓

Slave 2 Local Clock

↓

Slave 3 Local Clock

↓

Slave 4 Local Clock

DC 기능을 지원하는 Slave 중 하나가 Reference Clock 역할을 하고 다른 DC 장치들의 시계가 이 기준에 맞춰 동기화됩니다.

일반적으로 네트워크 토폴로지에서 처음 등장하는 DC 지원 Slave가 Reference Clock으로 선택되는 방식이 많이 사용됩니다.

Master Clock이 기준이 아닌가?

이 부분을 많이 혼동합니다.

일반적인 EtherCAT DC 시스템에서는 Master PC의 운영체제 시간이 모든 Slave의 직접적인 기준이 되는 구조가 아닙니다.

보통 DC 기능을 가진 EtherCAT Slave 내부의 Hardware Clock이 Reference Clock이 됩니다.

Master는 각 장치의 시간을 측정하고 조정하면서 Slave Clock들이 Reference Clock을 따라가도록 관리합니다.

즉

Master = 동기화 관리

Reference Slave Clock = 네트워크의 시간 기준

으로 이해하면 쉽습니다.

모든 Slave에 같은 시계를 넣으면 끝날까?

그렇지 않습니다.

케이블 길이와 Slave 위치가 서로 다르기 때문입니다.

예를 들어 Reference Clock에서

Slave A까지 2m

Slave B까지 20m

라면 EtherCAT Frame이 도착하는 데 미세한 차이가 발생합니다.

이를 Propagation Delay, 전파지연이라고 합니다.

Distributed Clocks에서는 각 장치까지의 전파지연을 측정하고 이를 보정합니다.

즉 단순히

현재 시간은 10시 00분 00초

라고 모든 장치에 똑같이 알려주는 것이 아니라 각 Slave까지 신호가 이동하는 데 걸리는 시간까지 고려해 Local Clock을 맞춥니다.

Propagation Delay는 어떻게 측정할까?

EtherCAT은 Frame이 각 Slave를 통과하고 다시 돌아오는 과정에서 각 Port의 시간정보를 이용할 수 있습니다.

Master는 이 Timestamp 정보를 바탕으로 Slave 사이의 전파지연을 계산합니다.

개념적으로

측정된 시간차 = Clock Offset + Network Propagation Delay

이므로 네트워크 토폴로지와 왕복시간 정보를 이용해 지연을 보정합니다.

이 과정은 주로 시스템 시작 시 이루어지고 필요에 따라 운전 중에도 지속적으로 보정할 수 있습니다.

Offset뿐 아니라 Drift도 문제가 된다

처음에 두 시계를 정확히 맞춰도 시간이 지나면 다시 차이가 생깁니다.

각 Slave에는 개별 Oscillator가 있기 때문입니다.

예를 들어 두 오실레이터가 아주 미세하게

10.000000MHz

9.999999MHz

처럼 다르다면 시간이 지나면서 Clock Difference가 점점 커집니다.

이를 Clock Drift라고 합니다.

따라서 Distributed Clocks에서는

Propagation Delay 측정

↓

Clock Offset 보정

↓

Clock Drift 지속 보정

과정을 사용해 장치들의 시간을 계속 맞춥니다.

EtherCAT DC의 동기정밀도는 어느 정도일까?

EtherCAT Technology Group은 Distributed Clocks를 사용하면 시스템의 Synchronization Jitter를 1µs보다 훨씬 작은 수준으로 만들 수 있다고 설명합니다.

실제 EtherCAT 구현에서는 DC 장치 사이를 100ns보다 작은 수준으로 동기화하도록 관리하는 시스템도 사용됩니다.

다만 이것을

EtherCAT 장비는 항상 정확히 100ns

라고 해석하면 안 됩니다.

실제 전체 시스템 정밀도는

Slave Hardware
Master 구현
Topology
Application Cycle
Servo Drive
I/O Hardware

등에 따라 달라집니다.

1µs 차이가 실제 기계에서는 얼마나 될까?

축이

1m/s

속도로 움직인다고 가정해보겠습니다.

시간차가 10µs라면 이동거리 차이는

거리 = 속도 × 시간

이므로

1m/s × 10µs

= 0.000010m

= 10µm

입니다.

시간차가 1µs라면

1m/s × 1µs

= 1µm

입니다.

100ns라면 이론적으로

0.1µm

에 해당합니다.

실제 서보 위치오차는 기계·제어계의 여러 요소에 의해 결정되므로 이 값이 곧 장비 위치정밀도라는 뜻은 아닙니다.

하지만 여러 축의 Sampling 시점을 정확히 맞추는 것이 왜 중요한지 이해하는 예제로 볼 수 있습니다.

서보축 동기화에서 왜 중요한가?

두 Servo Axis의 위치를 동시에 읽어야 하는 시스템을 생각해보겠습니다.

Axis A는 정확히

10.000000ms

에 위치를 읽고,

Axis B는

10.010000ms

에 읽었다면

10µs 차이가 발생합니다.

고속축에서는 이 차이만으로도 위치정보에 차이가 생길 수 있습니다.

특히 속도는 연속된 위치값의 차이로 계산하는 경우가 많기 때문에 Sampling Time이 일정하지 않으면 속도계산에도 영향을 줄 수 있습니다.

Distributed Clocks를 사용하면 각 Servo가 네트워크 Frame의 도착시간이 아니라 자신의 정확하게 동기화된 Local Clock을 기준으로 위치를 Sampling할 수 있습니다.

그래서 Multi-Axis Motion Control에서 큰 장점을 갖습니다.

Sync0은 무엇일까?

DC를 지원하는 EtherCAT Slave에서는 SYNC0 신호를 많이 사용합니다.

예를 들어 EtherCAT Cycle이

1ms

라고 가정하겠습니다.

Slave 내부 Clock을 기준으로

0ms
1ms
2ms
3ms
4ms

마다 정확하게 SYNC0 Event를 발생시킬 수 있습니다.

Servo나 I/O는 이 신호에 맞춰

ADC Sampling
Input Capture
Output Update
Control Loop

등을 실행할 수 있습니다.

즉 SYNC0는 각 Slave 내부의 동기화된 Clock에서 발생하는 주기적 하드웨어 이벤트라고 이해하면 쉽습니다.

Sync1은 무엇일까?

일부 EtherCAT Slave에서는 SYNC0 외에 SYNC1도 제공합니다.

SYNC1은 SYNC0와 일정한 관계를 가진 추가 동기 이벤트를 만들 때 사용할 수 있습니다.

예를 들어 한 Cycle 안에서

SYNC0 → 입력 Sampling

그리고 일정 시간이 지난 뒤

SYNC1 → 출력 Update

처럼 사용할 수 있습니다.

실제 지원 여부와 사용방법은 Slave Controller 및 장비의 EtherCAT 구현에 따라 다릅니다.

EtherCAT Cycle Time과 DC Accuracy는 같은 것일까?

아닙니다.

이것도 매우 중요한 부분입니다.

예를 들어 EtherCAT 통신 Cycle Time이

1ms

이고 DC Synchronization Accuracy가

100ns 수준

이라고 가정해보겠습니다.

1ms는

데이터를 주기적으로 교환하는 시간

이고,

100ns 수준의 동기화는

서로 다른 장치의 Clock이 얼마나 가깝게 맞아 있는지

를 의미합니다.

따라서

Cycle Time ≠ Synchronization Accuracy

입니다.

통신주기가 1ms라고 해서 Slave끼리 1ms씩 어긋난다는 의미는 아닙니다.

Frame은 정확한 시간에 도착하지 않아도 될까?

Distributed Clocks의 장점 중 하나입니다.

Master가 반드시 매 Cycle마다 나노초 수준으로 정확한 순간에 EtherCAT Frame을 전송할 필요는 없습니다.

Slave는 Local Clock을 기준으로 동작하기 때문입니다.

Master가 필요한 Process Data를 SYNC Event가 발생하기 전에 충분히 전달하면 Slave는 정해진 DC 시간에 해당 데이터를 사용할 수 있습니다.

따라서 Master Communication의 Jitter가 몇 µs 존재하더라도 Slave의 실제 Sampling과 Output Update 시점은 훨씬 더 정밀하게 유지할 수 있습니다.

Free Run·SM Sync·DC Sync 차이

EtherCAT 장비 설정에서는 다음과 같은 동기화 방식을 볼 수 있습니다.

Free Run

Slave가 자체적인 Local Cycle로 동작합니다.

Master와 정밀한 시간동기화가 필요하지 않은 단순 I/O 등에 사용할 수 있습니다.

SyncManager Synchronous

EtherCAT Process Data가 전달되는 SyncManager Event를 기준으로 Application이 동작합니다.

통신주기와 연동되지만 Distributed Clock을 이용한 정밀한 시간기준과는 차이가 있습니다.

DC Synchronous

Distributed Clock의 SYNC0·SYNC1 Event를 기준으로 동작합니다.

정밀한 Sampling과 Multi-Axis Synchronization이 필요한 경우 유용합니다.

모든 EtherCAT 장비가 DC를 지원할까?

아닙니다.

EtherCAT Slave라고 해서 모두 Distributed Clocks를 지원해야 하는 것은 아닙니다.

간단한 Digital I/O와 같이 정밀동기화가 필요하지 않은 장비는 DC 기능이 없을 수도 있습니다.

반면

Servo Drive
High-Speed Analog Input
Measurement Module
Timestamp I/O

처럼 Timing이 중요한 장비에서는 DC 지원이 중요한 사양이 될 수 있습니다.

따라서 데이터시트에서

EtherCAT 지원

만 확인하지 말고

Distributed Clocks 지원 여부

까지 확인하는 것이 좋습니다.

Timestamp와도 관련이 있다

Distributed Clocks는 여러 출력을 동시에 움직이는 것뿐 아니라 입력신호가 발생한 정확한 시간 기록에도 사용할 수 있습니다.

예를 들어 센서 신호가 들어왔을 때

15:32:21.123456789

와 같이 DC System Time을 기반으로 Timestamp를 저장할 수 있습니다.

여러 장치에서 이벤트가 발생했더라도 같은 시간기준을 사용하므로 어떤 이벤트가 먼저 일어났는지 분석하기 쉬워집니다.

고속 계측이나 Sequence 분석에서 중요한 기능입니다.

IEEE 1588 PTP와 같은 것일까?

개념적으로는 여러 장치의 Clock을 하나의 기준시간에 맞춘다는 점에서 비슷한 목적이 있습니다.

하지만 EtherCAT Distributed Clocks는 EtherCAT Slave Controller의 Hardware Clock과 EtherCAT Frame의 전파지연 측정을 이용하는 EtherCAT 자체의 동기화 메커니즘입니다.

따라서

EtherCAT DC = PTP

라고 동일한 프로토콜로 생각하면 안 됩니다.

필요한 경우 EtherCAT 시스템의 DC 시간을 외부 PTP·GPS 등 상위 시간기준과 연동하는 구성도 가능합니다.

실제 데이터시트는 이렇게 읽어보자

Servo Drive 데이터시트에 다음과 같이 적혀 있다고 가정하겠습니다.

Communication: EtherCAT

Distributed Clocks: Supported

Cycle Time: 250µs

Synchronization: DC Sync0

이를 해석하면

EtherCAT

EtherCAT 통신 지원

Distributed Clocks

DC Hardware Clock 동기화 지원

250µs

Process Data를 0.25ms 주기로 교환할 수 있는 설정 또는 성능조건

DC Sync0

동기화된 Local Clock의 SYNC0 Event에 맞춰 Application 동작 가능

이라는 의미입니다.

여기서 250µs를 장치 사이의 Clock 오차라고 해석하면 안 됩니다.

흔히 잘못 해석하는 부분

첫 번째는

“EtherCAT이 빠르기 때문에 서보가 자동으로 동기화된다.”

라는 생각입니다.

통신속도와 Clock Synchronization은 서로 다른 문제입니다. 정밀동기화에는 Distributed Clocks가 중요한 역할을 합니다.

두 번째는

“Master가 모든 Slave에게 동시에 명령을 보내기 때문에 동시에 움직인다.”

라는 생각입니다.

각 Slave에 Frame이 도달하는 시점에는 차이가 있습니다. DC는 각 장치의 Local Clock을 맞춰 동일한 시간에 동작하도록 합니다.

세 번째는

“Cycle Time이 1ms이면 동기오차도 1ms다.”

라는 생각입니다.

Cycle Time과 Synchronization Accuracy는 서로 다른 사양입니다.

정리

EtherCAT Distributed Clocks의 핵심은 통신프레임 자체를 완벽하게 동시에 도착시키는 것이 아니라 네트워크에 분산된 Hardware Clock을 하나의 시간기준으로 맞추는 것입니다.

동기화 과정은 크게

Reference Clock 선택

↓

Propagation Delay 측정

↓

Clock Offset 보정

↓

Clock Drift 지속 보정

↓

SYNC0·SYNC1 Event 발생

순서로 이해할 수 있습니다.

이렇게 동기화된 Local Clock을 이용해 여러 Servo Drive가 같은 순간에 위치를 Sampling하고 같은 시점에 출력값을 반영할 수 있기 때문에 Multi-Axis Motion Control에서 정밀한 축 동기화가 가능해집니다.

EtherCAT 장비를 선택할 때는 단순히 EtherCAT 지원만 보는 것이 아니라 Distributed Clocks 지원 여부, Cycle Time, SYNC0·SYNC1 지원과 실제 동기정밀도를 함께 확인하는 것이 중요합니다.

참고자료

  • EtherCAT Technology Group – EtherCAT Technology, Distributed Clocks for High-Precision Synchronization: Distributed Clocks가 전파지연을 측정·보상하고 각 장치의 Clock을 동기화하며 시스템 Jitter를 1µs보다 훨씬 작은 수준으로 구현하는 원리를 설명합니다. EtherCAT
  • EtherCAT Technology Group – EtherCAT Compendium: Distributed Clocks, Synchronization, MainDevice 및 Process Data Communication 등 EtherCAT 기술 전반을 정리한 공식 기술자료이며 2025년 5월 업데이트판이 제공되고 있습니다. EtherCAT
  • Beckhoff – EtherCAT Distributed Clocks: Reference Clock 선택, 전파지연 측정, Clock Offset 및 Drift 보정 과정을 설명하고 Local Clock을 이용한 동기식 입출력과 Timestamp 동작원리를 정리합니다. Beckhoff 정보 시스템
  • Beckhoff – Distributed Clocks Default Settings: EtherCAT DC 지원 장치의 Hardware Clock과 Reference Clock 구조를 설명하며 DC 장치 간 동기화가 일반적으로 100ns보다 작은 수준으로 유지될 수 있음을 설명합니다. Beckhoff 정보 시스템
moneytoday
함께 보면 좋은 글

댓글 0

첫 댓글을 남겨보세요.

광고 차단 알림

광고 클릭 제한을 초과하여 광고가 차단되었습니다.

단시간에 반복적인 광고 클릭은 시스템에 의해 감지되며, IP가 수집되어 사이트 관리자가 확인 가능합니다.