상세 컨텐츠

본문 제목

CiA402 StateMachine 톺아보기 (1)

EtherCAT

by Zin9 2023. 10. 21. 17:08

본문

728x90

 

 

CiA402 StateMachine 톺아보기 (2)

CiA402 StateMachine 톺아보기 (1) 이번 시간에는 서보드라이버에 많이 사용되는 EtherCAT의 CiA402 상태머신에 대해 알아보고자 한다. 서보 모터의 제어엔 EtherCAT 통신이 많이 사용된다. 이론적인 내용은

zin9.tistory.com

이번 시간에는 서보드라이버에 많이 사용되는 EtherCAT의 CiA402 상태머신에 대해 알아보고자 한다.

 

서보 모터의 제어엔 EtherCAT 통신이 많이 사용된다.

이론적인 내용은 나중에 보도록 하고, 우선 상태 머신에 대해 알아보자.

 

EtherCAT으로 모터를 제어할 때는 PDO(Process  Data Object)를 주기적으로 주고 받는데,

PDO의 ControlWord를 통해 서보온, 서보오프, 긴급정지 등 여러 명령을 수행한다.

(PDO나 CANopen에 대한 설명은 생략한다.)

 

그림 1은 beckhoff 홈페이지에서 가져 온 상태머신 블록도이다.

간단하게 설명하면 다음과 같다.

 

1. 아래에서 위로 흐르는 과정이 서보온이 되는 과정이라고 보면 된다.

2. ControlWord를 전달받고, 각 비트의 변화에 따라 상태가 변한다.

 

<그림 1. CiA402 상태머신>

자, 이제 하나하나 톺아보도록 하자.

 

Power Enabled와 Power Disabled

그림 1을 보면 배경이 하얀색인 영역과 회색인 영역으로 구분되어 있다.

그리고 두 영역은 각각 Power Enabled와 Power Disabled라고 적혀 있다.

이를 구분짓는 기준은 쉽게 말해 DC 링크 전압의 인가 유무이다.

쉽게 생각해서 Power Enabled은 '서보-온' 상태라 보면 되고, Power Disabled은 '서보-오프'상태라 보면 된다.

 

숫자 1~16

그림 1에서 화살표 옆에 숫자가 적혀 있는데, 이 숫자는 상태 전이 번호를 의미한다.

그림 2의 cia402appl.c 코드를 살펴보자.

Switch On Disabled 상태에서 ControlWord의 조건이 충족되면 Ready to Switch On 상태로 이동하는 것을 알 수 있다.

그림 3의 블록도를 보면, 녹색 음영 부분이 ControlWord를 의미한다.

Shutdown 명령에 해당하는 값이 입력되면 상태전이 2번이 실행됨을 의미한다.

(일반적으로 0x0006을 입력한다.)

<그림 2. cia402appl.c 코드 일부분>
<그림 3. 상태 전이 2번>

 

서보온, 서보오프 과정

 

< 그림 4. 서보 온/오프 흐름>

오른쪽의 그림 4를 보자.

서보 온/오프에 사용되는 주요 상태는 Switch On Disabled, Ready to Switch On, Switched On, Operation Enabled 총 4개이다.

 

서보 온 과정은 아래에서 위로 올라가며, 서보 오프 과정은 위에서 아래로 내려가는 흐름이다.

 

각각의 상태 전이에 필요한 ControlWord는 녹색으로 표시했다.

상위 제어기(EtherCAT Master)에서는 서보 드라이버로부터 전달되는 StatusWord를 받아서 ControlWord를 전송하게 된다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ControlWord & StatusWord

서보 온 과정에서의 ControlWord와 StatusWord의 변화는 다음과 같이 간단히 표현할 수 있다.

간단하게 하위 4개 비트만 비교하면 그림 5처럼 표현할 수 있다.

현업에서 활용한다면 하위 4개 비트의 값이 원하는 대로 바뀌는지 확인하면 될 것이다.

<그림 5. 서보 온 과정에서의 비트 변화>

 

대략적인 상태 머신의 설명이 끝났다.

필자가 처음 공부할 때, EtherCAT 상태 머신을 보면서 어려움을 겪었기 때문에 보다 쉽게 설명하고자 한다.

 

cia402appl.c 코드를 파이썬으로 바꿔서 시뮬레이션을 돌려봤다.

이렇게 보면 좀 더 가시적일 것 같기 때문이다.

cia402appl.c 코드는 ti 사이트에서 다운받을 수 있다.

구글에 'cia402appl.c'를 검색하면 'https://e2e.ti.com/~~'로 시작되는 링크가 제일 위에 뜨니 궁금하면 다운받도록 하자.

 

CiA402 State Machine을 시뮬레이션 돌려보면 그림 6처럼 나온다.

각각의 상태에서의 ControlWord와 StatusWord를 그림에 적어놓았다.

자세한 설명은 다음 글에서 이어 하도록 한다.

 

<그림 6. 서보 온 과정>

 

 

 

 

728x90

'EtherCAT' 카테고리의 다른 글

CiA402 StateMachine 톺아보기 (3)  (0) 2023.10.22
CiA402 StateMachine 톺아보기 (2)  (0) 2023.10.22
EtherCAT 사용 가능한 MCU  (0) 2022.11.29

관련글 더보기