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

EtherCAT CoE·FoE·EoE 차이|EtherCAT 상위 프로토콜 해석

읽는 시간 약 17분

EtherCAT 장비의 데이터시트나 ESI 파일을 보면 CoE, FoE, EoE라는 표현을 자주 볼 수 있습니다.

세 가지 모두 EtherCAT 위에서 사용되지만 목적은 완전히 다릅니다.

가장 간단하게 정리하면

CoE = 파라미터 설정과 Object Dictionary 접근

FoE = 펌웨어·파일 전송

EoE = 일반 Ethernet 프레임 전달

입니다.

즉 EtherCAT을 지원한다고 해서 CoE·FoE·EoE를 모두 지원하는 것은 아니며, 장비가 어떤 기능을 제공하는지 별도로 확인해야 합니다.

CoE·FoE·EoE 기본 차이

구분전체 이름주요 목적
CoECANopen over EtherCAT파라미터 설정·Object Dictionary
FoEFile access over EtherCATFirmware·파일 전송
EoEEthernet over EtherCAT일반 Ethernet Frame 전달

이 세 기능은 일반적인 EtherCAT 실시간 Process Data와 별도로 Mailbox Communication을 이용하는 대표적인 프로토콜입니다.

EtherCAT Mailbox란?

EtherCAT에서는 Servo Position이나 Digital I/O처럼 빠르게 반복해서 교환해야 하는 데이터는 일반적으로 Cyclic Process Data로 처리합니다.

하지만

장비 파라미터 읽기
Firmware 다운로드
진단정보 확인
Ethernet Packet 전달

같은 데이터는 매 Cycle마다 전송할 필요가 없습니다.

이런 비주기적 통신에 사용하는 것이 Mailbox입니다.

개념적으로 나누면

Process Data

빠르고 반복적인 실시간 데이터

Mailbox Data

설정·진단·파일전송 등 비주기적 데이터

라고 이해하면 쉽습니다.

CoE·FoE·EoE는 바로 이 Mailbox를 활용하는 대표적인 기능입니다.

CoE란?

CoE는

CANopen over EtherCAT

의 약자입니다.

CANopen에서 사용되는 Object Dictionary 개념과 Application Profile을 EtherCAT에서도 활용할 수 있도록 만든 방식입니다.

EtherCAT Servo Drive에서는 매우 자주 사용됩니다.

예를 들어 Servo에

Motor Rated Current
Acceleration
Velocity Limit
Control Mode
Error Code

같은 파라미터가 있다고 가정하겠습니다.

각 파라미터는 Object Dictionary의

Index

SubIndex

로 구분될 수 있습니다.

예를 들어

0x6060 : Modes of Operation

처럼 특정 Index를 통해 Servo의 운전모드를 설정할 수 있습니다.

Index와 SubIndex는 무엇일까?

CoE Object Dictionary에서는 데이터를 주소처럼 관리합니다.

예를 들어

Index = 0x607A

SubIndex = 0x00

이라면 특정 Object의 특정 항목을 의미합니다.

서보 시스템에서 잘 알려진 CiA 402 계열 Object를 보면

0x6040 → Controlword

0x6041 → Statusword

0x6060 → Modes of Operation

0x6064 → Position Actual Value

0x607A → Target Position

등과 같은 형태로 구성될 수 있습니다.

실제 지원 Object는 Servo 제조사와 Device Profile을 확인해야 합니다.

CoE의 SDO는 무엇일까?

CoE에서 장비 파라미터를 비주기적으로 읽고 쓰는 대표적인 기능이 **SDO(Service Data Object)**입니다.

예를 들어 Master에서

Servo의 최대속도 파라미터를 읽어라

라고 요청하면 CoE Mailbox를 통해 해당 Object Dictionary 값을 읽을 수 있습니다.

개념적으로

Master

↓

SDO Upload Request

↓

Slave Object Dictionary

↓

Parameter Value

형태입니다.

여기서 Upload는 일반적인 파일 업로드 개념과 달리 Slave에서 Master로 값을 읽어오는 것을 의미합니다.

Download는 Master에서 Slave로 값을 쓰는 방향입니다.

PDO와 SDO의 차이

EtherCAT Servo를 설정할 때 PDO와 SDO를 자주 함께 보게 됩니다.

SDO

파라미터 설정·조회처럼 비주기적인 통신에 사용합니다.

예를 들어

Maximum Motor Current
Encoder Resolution
Operation Mode

같은 설정값을 읽고 쓰는 데 적합합니다.

PDO

운전 중 반복적으로 교환해야 하는 Process Data에 사용합니다.

예를 들어

Target Position
Actual Position
Controlword
Statusword

등을 매 Cycle마다 전송합니다.

쉽게 정리하면

SDO = 설정

PDO = 실시간 운전데이터

에 가깝습니다.

FoE란?

FoE는

File access over EtherCAT

의 약자입니다.

EtherCAT 네트워크를 통해 Slave에 파일을 전송하거나 파일을 읽기 위한 기능입니다.

대표적인 사용목적은

Firmware Update
Boot File Download
Configuration File
Device Data

전송입니다.

예를 들어 Servo Drive Firmware를 업데이트한다고 가정하면 별도의 USB 케이블을 연결하지 않고 EtherCAT Master에서 FoE를 이용해 파일을 Slave로 전송할 수 있습니다.

FoE는 FTP와 같은 것일까?

아닙니다.

FoE는 이름에 File이 들어가지만 일반 PC에서 사용하는 FTP와 동일한 프로토콜은 아닙니다.

EtherCAT에서는 비교적 단순한 파일전송 방식으로 설계되어 있으며 TFTP와 유사한 구조를 갖습니다.

대표적으로

Read Request
Write Request
Data
ACK
Error

등의 메시지를 이용합니다.

따라서

FoE = EtherCAT 전용 파일전송

이라고 이해하는 것이 좋습니다.

실제 Firmware Update 과정

FoE를 이용한 Firmware Update를 단순화하면 다음과 같습니다.

1. Master에서 Firmware File 선택

↓

2. Slave를 Firmware Download 가능한 상태로 변경

↓

3. FoE Write Request 전송

↓

4. Firmware Data를 여러 Packet으로 분할

↓

5. Slave가 ACK 응답

↓

6. 전송 완료

↓

7. Slave 재시작 및 Firmware 확인

실제 절차는 제조사에 따라 달라질 수 있으며 일부 제품은 Boot State에서만 FoE 다운로드를 허용할 수 있습니다.

FoE를 지원하면 모든 파일을 전송할 수 있을까?

그렇지는 않습니다.

FoE 기능을 지원하더라도 제조사가

특정 Firmware 파일만 허용하거나

파일명이나 Password를 요구하거나

특정 EtherCAT State에서만 전송을 허용할 수 있습니다.

따라서 데이터시트에서 단순히

FoE Supported

만 확인하지 말고 Firmware Update 절차까지 확인하는 것이 좋습니다.

EoE란?

EoE는

Ethernet over EtherCAT

의 약자입니다.

일반적인 Ethernet Frame을 EtherCAT Mailbox를 통해 전달하는 기능입니다.

쉽게 말하면 EtherCAT 네트워크 안에서 일반 Ethernet 데이터를 터널링한다고 생각할 수 있습니다.

이를 이용하면 EtherCAT Slave가

IP Address
TCP/IP
Web Server
HTTP
일반 Ethernet 기반 서비스

등을 지원하는 경우 Master 쪽에서 해당 기능에 접근할 수 있습니다.

Ethernet Frame은 어떻게 전달될까?

일반 Ethernet Frame이 있다고 가정하겠습니다.

EtherCAT에서는 이 Frame을 그대로 EtherCAT Wire에 독립적으로 흘리는 것이 아니라 EoE 프로토콜을 이용해 Mailbox Data 안에 넣어 전달합니다.

개념적으로

PC Ethernet Packet

↓

EoE Encapsulation

↓

EtherCAT Mailbox

↓

EtherCAT Slave

↓

Ethernet Packet

형태입니다.

Ethernet Frame이 Mailbox 크기보다 큰 경우 여러 조각으로 분할해서 전달하고 Slave에서 다시 조립할 수 있습니다.

EoE는 EtherCAT 실시간 통신만큼 빠를까?

일반적으로 그렇게 생각하면 안 됩니다.

EoE는 Mailbox Communication을 사용합니다.

따라서 Servo Position이나 Digital I/O처럼 실시간성이 중요한 데이터는 일반적으로 EtherCAT Process Data를 이용합니다.

EoE는

Device Configuration
Web Interface
TCP/IP 서비스
진단

등과 같이 실시간성이 덜 중요한 통신에 적합합니다.

즉

EtherCAT Process Data = Real-Time Control

EoE = 일반 Ethernet 통신 전달

로 구분하는 것이 좋습니다.

EtherCAT인데 IP 주소가 없어도 되는 이유

일반적인 Ethernet 장비에서는 통신할 때 IP 주소를 많이 사용합니다.

하지만 EtherCAT의 실시간 Process Data 통신 자체는 TCP/IP를 기반으로 하지 않습니다.

EtherCAT Frame 안에서 Slave의 논리적·물리적 주소를 이용해 데이터를 처리합니다.

따라서 Servo Drive가 EtherCAT으로 제어된다고 해서 반드시 각 Servo에 IP 주소가 필요한 것은 아닙니다.

반대로 해당 장비가 EoE를 이용한 TCP/IP 기능을 제공한다면 별도의 IP 설정이 필요할 수 있습니다.

세 가지를 실제 장비에서 비교해보자

Servo Drive 하나가 다음 기능을 지원한다고 가정하겠습니다.

EtherCAT

CoE

FoE

EoE

각 기능의 역할은 다음과 같이 나눌 수 있습니다.

CoE

Servo Parameter 설정

예:

Gain
Acceleration
Current Limit
Operation Mode

FoE

Servo Firmware Update

예:

servo_v2.30.bin

파일 다운로드

EoE

Servo의 Ethernet 기반 진단기능 접속

예:

Web Configuration
TCP/IP Diagnostic

즉 하나의 EtherCAT 케이블을 사용하면서도 전혀 다른 목적의 통신을 처리할 수 있는 것입니다.

CoE를 지원하면 CAN 통신을 하는 것일까?

아닙니다.

이름이 CANopen over EtherCAT이라서 실제 CAN Frame이 EtherCAT 케이블을 통해 그대로 전송된다고 오해하기 쉽습니다.

CoE의 핵심은 CANopen에서 사용하던

Object Dictionary
SDO
PDO Mapping 개념
Device Profile

등을 EtherCAT 환경에서 활용하는 것입니다.

실제 물리통신은 EtherCAT Ethernet Frame을 사용합니다.

따라서 별도의 CAN Bus가 필요한 것은 아닙니다.

CiA 402와 CoE는 어떤 관계일까?

Servo Drive에서 CoE를 사용하면 CiA 402 Drive Profile을 함께 많이 사용합니다.

CiA 402에서는

Controlword
Statusword
Operation Mode
Target Position
Target Velocity

등 Servo Drive의 공통적인 제어 Object를 정의합니다.

EtherCAT에서는 이를 CoE를 통해 구현할 수 있습니다.

그래서 서로 다른 제조사의 EtherCAT Servo에서도

0x6040 Controlword
0x6041 Statusword

같은 익숙한 Object를 볼 수 있습니다.

다만 제조사별 추가 Object는 서로 다를 수 있습니다.

EtherCAT State와 Mailbox도 관련이 있다

EtherCAT Slave는 대표적으로

INIT

PRE-OP

SAFE-OP

OP

상태를 가집니다.

Mailbox Communication은 일반적으로 Slave가 PRE-OP 이상으로 올라간 이후 사용할 수 있도록 구성되는 경우가 많습니다.

반면 정상적인 Cyclic Process Data를 모두 교환하려면 보통 OP 상태가 필요합니다.

따라서 장비가 OP 상태가 아니더라도 CoE SDO를 이용해 일부 파라미터를 설정할 수 있는 경우가 있습니다.

이 구조 덕분에 Master는 운전을 시작하기 전에 필요한 Parameter를 먼저 설정할 수 있습니다.

흔히 잘못 해석하는 부분

첫 번째는

“CoE는 CAN 통신이다.”

라는 생각입니다.

CANopen의 Application 개념을 활용하지만 실제 EtherCAT 물리통신은 CAN Bus가 아닙니다.

두 번째는

“FoE는 일반 FTP다.”

라는 생각입니다.

FoE는 EtherCAT Mailbox를 이용하는 전용 파일전송 프로토콜입니다.

세 번째는

“EoE를 쓰면 EtherCAT Servo 제어도 IP 기반이다.”

라는 생각입니다.

EtherCAT의 실시간 Process Data 통신 자체는 TCP/IP를 필요로 하지 않습니다.

네 번째는

“EtherCAT 장비는 CoE·FoE·EoE를 모두 지원한다.”

라는 생각입니다.

각 기능은 Optional이므로 실제 Slave 데이터시트나 ESI 파일을 확인해야 합니다.

정리

EtherCAT에서 CoE·FoE·EoE는 모두 Mailbox Communication을 이용하지만 목적이 완전히 다릅니다.

핵심은 다음과 같습니다.

CoE = Parameter·Object Dictionary

FoE = Firmware·File Transfer

EoE = Ethernet Frame·TCP/IP 전달

실제 EtherCAT 장비를 볼 때는

실시간 Process Data

와

Mailbox Communication

을 먼저 구분한 뒤

Mailbox에서

CoE → 설정

FoE → 파일

EoE → Ethernet

순서로 이해하면 어렵지 않습니다.

특히 EtherCAT Servo Drive를 선택하거나 설정할 때는 단순히 EtherCAT 지원이라는 문구만 보는 것이 아니라 CoE 지원, CiA 402 Profile, FoE Firmware Update, EoE 지원 여부까지 확인하면 장비의 실제 기능을 훨씬 정확하게 파악할 수 있습니다.

참고자료

  • EtherCAT Technology Group – EtherCAT Technology: EtherCAT의 Mailbox Communication과 CoE, FoE, EoE를 포함한 Application Layer 프로토콜 구조를 설명합니다.
  • EtherCAT Technology Group – EtherCAT Protocol Enhancements: CoE의 CANopen Object Dictionary 및 Device Profile 활용과 다양한 Mailbox Protocol의 역할을 설명합니다.
  • Beckhoff EtherCAT System Documentation – CANopen over EtherCAT(CoE): CoE Object Dictionary, SDO Communication, PDO Mapping과 EtherCAT Slave의 Parameter Access 구조를 설명합니다.
  • Beckhoff EtherCAT System Documentation – File access over EtherCAT(FoE): FoE를 이용한 Firmware 및 파일전송 구조와 EtherCAT Slave의 Boot·Download 사용방법을 설명합니다.
  • Beckhoff EtherCAT System Documentation – Ethernet over EtherCAT(EoE): 일반 Ethernet Frame을 EtherCAT Mailbox로 분할·전송해 IP 기반 통신을 사용할 수 있는 구조를 설명합니다.
moneytoday
함께 보면 좋은 글

댓글 0

첫 댓글을 남겨보세요.

광고 차단 알림

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

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