EtherCAT CoE·FoE·EoE 차이|EtherCAT 상위 프로토콜 해석
EtherCAT 장비의 데이터시트나 ESI 파일을 보면 CoE, FoE, EoE라는 표현을 자주 볼 수 있습니다.
세 가지 모두 EtherCAT 위에서 사용되지만 목적은 완전히 다릅니다.
가장 간단하게 정리하면
CoE = 파라미터 설정과 Object Dictionary 접근
FoE = 펌웨어·파일 전송
EoE = 일반 Ethernet 프레임 전달
입니다.
즉 EtherCAT을 지원한다고 해서 CoE·FoE·EoE를 모두 지원하는 것은 아니며, 장비가 어떤 기능을 제공하는지 별도로 확인해야 합니다.
CoE·FoE·EoE 기본 차이
| 구분 | 전체 이름 | 주요 목적 |
|---|---|---|
| CoE | CANopen over EtherCAT | 파라미터 설정·Object Dictionary |
| FoE | File access over EtherCAT | Firmware·파일 전송 |
| EoE | Ethernet 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 기반 통신을 사용할 수 있는 구조를 설명합니다.




댓글 0
첫 댓글을 남겨보세요.