EtherCAT Reference
EtherCAT 프레임/CoE/FoE 프로토콜 레퍼런스
EtherCAT Reference 소개
EtherCAT 레퍼런스는 산업용 필드버스 프로토콜 EtherCAT의 26가지 핵심 주제를 체계적으로 정리한 검색 가능한 가이드입니다. EtherType 0x88A4 프레임 구조, 데이터그램 명령(APRD, APWR, LRD, LWR, LRW), FMMU 논리/물리 주소 매핑, SyncManager 버퍼 구성(SM0~SM3)을 다룹니다.
실시간 동기화 영역에서는 100ns 이하 정밀도의 분산 클럭(DC), SYNC0/SYNC1 주기적 인터럽트, SM/DC 동기화 모드를 설명합니다. 프로토콜 스택 항목에서는 CoE(CANopen over EtherCAT) 오브젝트 딕셔너리, SDO 비주기 파라미터 접근, PDO 주기적 프로세스 데이터 교환(RxPDO/TxPDO 매핑), FoE 펌웨어 전송, EoE TCP/IP 터널링을 다룹니다.
응용 수준에서는 CiA 402 서보 드라이브 프로파일의 ControlWord/StatusWord 상태머신 전이, CSP(주기적 위치 동기 모드 8)와 CSV(주기적 속도 동기 모드 9), 라인/트리/스타 토폴로지, EtherCAT P 단일 케이블 전원 통신, 핫 커넥트 그룹, 무중단 절체 케이블 이중화, 100대 슬레이브 250us 사이클 타임 계산까지 포함합니다.
주요 기능
- EtherCAT 프레임 구조: EtherType 0x88A4 이더넷 헤더, 다중 데이터그램(10바이트 헤더), WKC 카운터, FCS
- FMMU와 SyncManager 구성: 물리/논리 주소 매핑 예제와 SM0~SM3 메일박스 및 프로세스 데이터 버퍼 레이아웃
- 분산 클럭 100ns 이하 동기화, SYNC0/SYNC1 타이밍 다이어그램, DC 레지스터 주소(0x0910, 0x0920, 0x0981)
- CoE 오브젝트 딕셔너리: 디바이스 식별(0x1018), PDO 매핑(0x1600/0x1A00), 응용 오브젝트(0x6000/0x7000)
- CiA 402 서보 드라이브 상태머신: Ready to Switch On(0x06), Switched On(0x07), Operation Enabled(0x0F) 전이값
- CSP 모드 8과 CSV 모드 9의 PDO 매핑: TargetPosition, ActualPosition, TargetVelocity, ActualTorque 오브젝트
- 라인/트리/스타 토폴로지, 핫 커넥트 그룹 구성, 링 토폴로지 케이블 이중화로 무중단 절체
- 사이클 타임 계산: 프레임 오버헤드 30us + 슬레이브당 1us + 바이트당 0.08us, 100대 슬레이브 250us 달성 예제
자주 묻는 질문
이 레퍼런스에서 어떤 EtherCAT 프로토콜 계층을 다루나요?
데이터 링크 계층(프레임 구조, 데이터그램, FMMU, SyncManager), 동기화 계층(분산 클럭, SYNC0/SYNC1), 프로토콜 스택(CoE, SDO, PDO, FoE, EoE), 상태머신(ESM: INIT/PRE-OP/SAFE-OP/OP), 진단(AL Status Code, WKC, ESI), 응용(CiA 402, CSP, CSV), 하드웨어(토폴로지, EtherCAT P, 핫 커넥트, 이중화)를 다룹니다.
EtherCAT 상태머신은 어떻게 동작하나요?
슬레이브는 INIT(메일박스 미설정), PRE-OP(메일박스 활성, SDO 파라미터 설정), SAFE-OP(입력 PDO만 활성, 출력은 안전값), OP(모든 PDO 활성, 정상 운전) 순서로 전이합니다. 마스터가 전이를 제어하며, 각 단계에서 AL Status Code로 에러를 보고합니다.
SDO와 PDO 통신의 차이는 무엇인가요?
SDO(서비스 데이터 오브젝트)는 메일박스를 통한 비주기적/비실시간 파라미터 읽기/쓰기에 사용됩니다(예: 인덱스 0x6060으로 드라이브 동작 모드 변경). PDO(프로세스 데이터 오브젝트)는 매 EtherCAT 프레임에서 주기적 프로세스 데이터를 교환하며, RxPDO(0x1600)로 출력, TxPDO(0x1A00)로 입력을 매핑합니다.
EtherCAT 분산 클럭의 동기화 정밀도는 어느 정도인가요?
분산 클럭은 네트워크 내 모든 슬레이브 간 100ns 이하의 동기화를 달성합니다. 기준 클럭은 첫 번째 DC 지원 슬레이브입니다. SYNC0은 일반적으로 1ms 주기로 설정 가능한 시프트 타임과 함께 주기적 인터럽트를 생성하며, DC 레지스터 0x0910(시스템 시간), 0x0920(사이클 타임), 0x0981(DC 활성화)로 동기화를 제어합니다.
CiA 402 CSP 모드를 서보 드라이브에 어떻게 설정하나요?
SDO 인덱스 0x6060에 8을 써서 CSP 모드를 설정합니다. RxPDO에 ControlWord(0x6040)와 TargetPosition(0x607A), TxPDO에 StatusWord(0x6041)와 ActualPosition(0x6064)을 매핑합니다. 마스터가 매 주기 위치 지령을 생성하고 보간을 수행하며, DC SYNC0 동기화가 필수입니다.
WKC(Working Counter) 불일치가 발생하면 어떻게 되나요?
WKC 불일치는 통신 오류를 의미합니다. 읽기 성공 시 WKC +1, 쓰기 성공 시 +1, 읽기+쓰기 성공 시 +3이 됩니다. LRW 명령으로 5대 슬레이브가 입출력 모두 수행하면 예상 WKC는 15입니다. 마스터가 매 주기 WKC를 확인하고 불일치 시 에러 처리를 해야 합니다.
EtherCAT 핫 커넥트는 어떻게 동작하나요?
슬레이브를 고정 그룹과 핫 커넥트 그룹으로 구분하며, EK1100 같은 버스 커플러로 분리합니다. 각 핫 커넥트 그룹은 운전 중 독립적으로 연결/분리할 수 있으며 나머지 네트워크에 영향을 주지 않습니다. 공구 교환이나 모듈식 기계 구성에 유용합니다.
EtherCAT 사이클 타임은 얼마나 빠를 수 있나요?
사이클 타임은 프레임 오버헤드(약 30us), 전파 지연(슬레이브당 약 1us), 데이터 전송(바이트당 0.08us)으로 결정됩니다. 100대 슬레이브가 각 10바이트 프로세스 데이터를 교환하면 30 + 100*1 + 1000*0.08 = 210us로 250us 주기가 가능합니다. 이론적으로 최대 65,535대 슬레이브를 지원합니다.