EtherCAT State Machine

EtherCAT State Machine

개요

EtherCAT은 고성능의 이더넷 기반 필드버스로, 마스터와 슬레이브 장치 간의 통신을 효율적으로 관리하기 위해 정교한 상태 머신을 사용합니다. 슬레이브 장치는 특정 상태State</.sup>를 가지며, 상태 전이를 통해 다양한 동작 모드를 실행합니다.

EtherCAT 슬레이브의 주요 상태

EtherCAT 슬레이브는 다음과 같은 주요 상태를 가집니다:

  1. InitializationInit
  2. Pre-Operational Pre-Op
  3. Safe-Operational Safe-Op
  4. Operational Op
  5. Bootstrap 각 상태는 슬레이브의 동작 모드와 통신 가능성을 결정하며, 상태 전이는 EtherCAT 마스터에 의해 제어됩니다.

1. Init 상태

Init 상태는 슬레이브가 전원을 인가받거나 리셋된 직후의 초기 상태입니다.

특징

  • 슬레이브는 내부 하드웨어와 ESCEtherCAT Slave Controller를 초기화합니다.
  • 통신 인터페이스와 메모리 매핑을 설정합니다.

제약

  • PDO 교환이 불가능합니다.
  • Mailbox 통신이 비활성화 되어 있습니다.

역할

  • 슬레이브의 기본 설정을 완료하고 마스터의 명령을 대기합니다.

2. Pre-Operational 상태

Pre-Op 상태는 슬레이브가 초기화를 완료하고 기본적인 통신이 가능한 상태입니다.

특징

  • Mailbox 통신이 활성화되어 CoECANopen over EtherCAT, FoEFile over EtherCAT 등의 상위 프로토콜 사용이 가능합니다.
  • PDO 교환은 여전히 불가능합니다.

역할

  • 슬레이브의 설정 파라미터를 읽거나 쓸 수 있습니다.
  • 슬레이브의 상태 모니터링과 구성에 사용됩니다.

3. Safe-Operational 상태

Safe-Op 상태는 슬레이브가 PDO 구성을 완료하고 입력 데이터 전송이 가능한 상태입니다.

특징

  • 입력 데이터는 유효하며 마스터로 전송됩니다.
  • 출력 데이터는 갱신되지 않으며, 슬레이브는 이전 출력 값을 유지합니다.

역할

  • 시스템의 안전한 시운전과 테스트에 사용됩니다.
  • PDO 매핑의 검증을 지원합니다.

4. Operational 상태

Op 상태는 슬레이브가 완전한 동작 모드로, 입력과 출력 데이터를 모두 교환할 수 있습니다.

특징

  • PDO의 주기적 교환이 이루어집니다.
  • 모든 통신 기능과 동기화 메커니즘이 활성화됩니다.

역할

  • 실시간 제어 및 데이터 교환을 통한 정상 운영 상태입니다.

5. Bootstrap 상태

Bootstrap 상태는 슬레이브의 펌웨어 업데이트를 위해 특별히 사용되는 상태입니다.

특징

  • FoE 프로토콜을 사용하여 펌웨어를 전송하고 업데이트합니다.
  • 일반적인 통신 기능은 제한됩니다.

주의사항:

  • 펌웨어 업데이트 중에는 슬레이브가 정상적인 동작을 수행하지 않습니다.

EtherCAT State Machine

EtherCAT 상태 머신은 슬레이브의 상태 전이와 동작 모드를 관리하는 메커니즘입니다. 마스터는 슬레이브의 상태를 제어하고, 슬레이브는 상태 전이 요청에 따라 동작을 변경합니다.

상태 전이 다이어그램

D2 Diagram

상태 전이 조건

Init → Pre-Op

  • 조건
    • 슬레이브의 초기화가 완료되어야 합니다.
  • 동작
    • 슬레이브는 Mailbox 통신을 활성화하고 상위 레이어 프로토콜을 사용할 준비를 합니다.

Pre-Op → Safe-Op

  • 조건
    • PDO 매핑이 완료되어야 합니다.
    • SyncManagerFMMUFieldbus Memory Management Unit가 설정되어야 합니다.
  • 동작
    • 슬레이브는 입력 데이터를 제공할 준비를 합니다.

Safe-Op → Op

  • 조건
    • 출력 데이터의 초기화가 완료되어야 합니다.
    • 분산 클럭Distributed Clock 동기화가 필요한 경우, 클럭 설정이 완료되어야 합니다.
  • 동작
    • 슬레이브는 출력 데이터를 수신하고 정상적인 PDO 교환을 시작합니다.

Op → Safe-Op

  • 동작:
    • 슬레이브는 출력 데이터 수신을 중지하고 이전 출력 값을 유지합니다.

Safe-Op → Pre-Op

  • 동작
    • 슬레이브는 PDO 교환을 중지하고 설정 변경을 준비합니다.

Pre-Op → Init

  • 동작:
    • 슬레이브는 초기화 상태로 돌아가며 통신 인터페이스를 리셋합니다.

Init ↔ Bootstrap

  • 동작
    • 슬레이브는 펌웨어 업데이트 모드로 전환합니다.

상태 전이 제어 레지스터

  • AL Control 레지스터 (0x0120):
    • 마스터가 슬레이브의 상태를 제어하기 위해 사용합니다.
    • 원하는 상태 코드를 기록하여 슬레이브에게 상태 전이를 요청합니다.
  • AL Status 레지스터 (0x0130):
    • 슬레이브의 현재 상태를 나타냅니다.
    • 마스터는 이 레지스터를 읽어 슬레이브의 상태를 모니터링합니다.

상태 코드 값

  • 0x01: Init
  • 0x02: Pre-Op
  • 0x04: Safe-Op
  • 0x08: Operational
  • 0x10: Bootstrap

상태 전이의 상세 절차

Init에서 Pre-Op로 전이

  • 마스터의 역할
    • 슬레이브의 AL Control 레지스터에 0x02를 기록하여 Pre-Op 상태로 전이를 요청합니다.
  • 슬레이브의 동작
    • 초기화 절차를 완료하고 Mailbox 통신을 활성화합니다.
  • 검증
    • 슬레이브의 AL Status 레지스터를 읽어 상태 전이가 성공적으로 이루어졌는지 확인합니다.

Pre-Op에서 Safe-Op로 전이

  • 마스터의 역할:
    • SDO를 통해 PDO 매핑을 구성합니다.
    • AL Control 레지스터에 0x04를 기록하여 Safe-Op 상태로 전이를 요청합니다.
  • 슬레이브의 동작
    • Sync Manager와 FMMU 설정을 완료하고 입력 데이터를 제공할 준비를 합니다.
  • 검증
    • 슬레이브의 AL Status 레지스터를 확인하고 입력 데이터의 유효성을 검사합니다.

Safe-Op에서 Op로 전이

  • 마스터의 역할:
    • 필요한 경우 출력 데이터를 초기화합니다.
    • AL Control 레지스터에 0x08을 기록하여 Op 상태로 전이를 요청합니다.
  • 슬레이브의 동작:
    • 출력 데이터를 수신하고 정상적인 PDO 교환을 시작합니다.
  • 검증:
    • 슬레이브의 AL Status 레지스터를 확인하고 입력 및 출력 데이터의 교환이 정상적으로 이루어지는지 확인합니다.

분산 클럭 동기화

  • 목적: 슬레이브 간의 시간 동기화를 통해 정밀한 제어를 가능하게 합니다.
  • 구성 절차
    1. 마스터는 슬레이브의 분산 클럭 기능을 활성화합니다.
      • SDO를 통해 슬레이브의 분산 클럭 설정을 구성합니다.
    2. 슬레이브는 자신의 클럭을 마스터 또는 다른 슬레이브와 동기화합니다.
      • 레퍼런스 클럭을 기준으로 클럭 오차를 보정합니다.
    3. 동기화 상태 확인:
      • 슬레이브의 DC 상태 레지스터를 읽어 동기화 상태를 모니터링합니다.
  • 주의사항
    • 클럭 동기화가 완료되지 않으면 OP 상태로의 전이가 거부될 수 있습니다.

에러 처리와 상태 전이 실패

  • AL Status Code 레지스터 (0x0134)
    • 상태 전이 실패 시 슬레이브는 해당 레지스터에 에러 코드를 기록합니다.
    • 마스터는 이 코드를 읽어 실패 원인을 파악합니다.
  • 일반적인 에러 코드
    • 0x0011: Invalid requested state change
    • 0x0012: Unknown requested state
    • 0x0013: Boot state not supported
    • 0x0016: Invalid mailbox configuration
  • 에러 처리 절차
    1. 에러 코드 분석:
      • 에러 코드를 참조하여 문제의 원인을 확인합니다.
    2. 조치 수행
      • 설정 오류인 경우 매핑이나 파라미터를 수정합니다.
      • 하드웨어 문제가 의심되면 슬레이브를 점검합니다.
    3. 상태 전이 재시도
      • 문제를 해결한 후 상태 전이를 다시 시도합니다.

상위 프로토콜과 상태 머신

CoE

  • 용도: 슬레이브의 객체 사전Object Dictionary에 접근하여 파라미터를 설정하거나 모니터링합니다.
  • 상태 요구사항:
    • Pre-Op 상태 이상에서 사용 가능합니다.
  • 프로세스:
    • SDO를 통해 읽기/쓰기가 이루어집니다.
    • PDO 매핑은 Safe-Op 또는 Op 상태에서 활성화됩니다.

FoE

  • 용도: 슬레이브의 펌웨어 업데이트나 파일 전송에 사용됩니다.
  • 상태 요구사항
    • Bootstrap 상태에서만 사용 가능합니다.
  • 프로세스
    • 마스터는 슬레이브와 FoE 채널을 통해 파일을 전송합니다.

EoE

  • 용도: EtherCAT 네트워크를 통해 일반 이더넷 프레임을 전송합니다.
  • 상태 요구사항:
    • Pre-Op 상태 이상에서 사용 가능합니다.
  • 프로세스
    • 슬레이브는 이더넷 인터페이스를 통해 데이터 패킷을 송수신합니다.