이전 시간까지는 상태 전이에 집중해서 설명했는데, 이번 시간에는 상태 전이 중 CiA402_TransitionAction 함수에 대해 알아보고자 한다.
활용 예시는 다음과 같다.
그림 1은 Fault Reaction Active 상태에서 Fault 상태로 전이되는 중간에 실행되는 코드로, Pending Option Code가 0x605E일 때의 처리 과정을 나타난다.
objFaultReactionCode 값에 따라 CiA402_TransitionAction 함수의 반환의 True 또는 False가 된다.
CiA402_TransitionAction의 예시를 살펴보자.
첫 번째 인자인 Characteristic의 값에 따라 각기 다른 함수를 실행하도록 설정할 수 있다.
함수의 실행 코드는 서보 드라이버 시스템에 따라 다르기 때문에, Characteristic에 어떤 값이 들어가며, 그 값은 어떤 의미를 갖는지 알아보자.
① Disable Drive
Characteristic 값에 0으로 입력된다고 가정하자.
Pending Option Code로 처리되는 CiA402_TransitionAction함수는 계속 False를 반환한다.
따라서, 무한루프에 빠지게 된다.
따라서, Characteristic 인자에 0이 아닌 값이 입력되도록 해야 한다.
② Slow Down Ramp
이름 그대로 천천히 감속하는 것을 의미한다.
안전하게 운동을 중지하거나 다른 작업을 수행하기 전에 모션을 서서히 감속시켜야 하는 상황에 사용한다.
③ Quick Stop Ramp
모터를 빠르게 정지하기 위해 사용된다.
④ Stop On Current Limit
모터에 흐르는 전류가 지정된 전류 한계를 초과할 때 동작을 정지하기 위해 사용된다.
드라이버 보드의 안전성을 보장하고 과전류 상황에서 장치를 보호하는 데 사용한다.
⑤ Stop On Voltage Limit
모터에 인가되는 전압이 특정 전압 한계를 초과할 때 동작을 정지하기 위해 사용된다.
전압이 너무 높아지는 것으로 인해 하드웨어 손상을 방지하기 위해 사용된다.
CiA402 StateMachine 톺아보기 (2) (0) | 2023.10.22 |
---|---|
CiA402 StateMachine 톺아보기 (1) (0) | 2023.10.21 |
EtherCAT 사용 가능한 MCU (0) | 2022.11.29 |