모터 제어의 표준어: CiA402 프로필
모터 드라이버를 제어하려면 어떤 주소에 무슨 값을 써야 할까요? 제조사마다 다른 프로토콜을 사용한다면 모든 드라이버에 대해 각각 제어 코드를 작성해야 합니다. CiA402 프로필은 이 문제를 해결하는 산업 표준입니다. 모터가 CiA402를 지원하면 제조사와 관계없이 동일한 제어 시퀀스로 동작시킬 수 있습니다.
이 글에서는 CiA402의 핵심인 상태 머신(State Machine), Controlword/Statusword 비트 구조, 그리고 동작 모드(Modes of Operation)를 실제 코드 예시와 함께 설명합니다.
CiA402란?
CiA(CAN in Automation) 협회가 정의한 모터 드라이브 및 모션 제어용 표준 프로필입니다. EtherCAT과 CANopen 통신에서 널리 사용됩니다.
CiA402가 정의하는 것:
- 모터 ON/OFF를 위한 명령 값과 주소
- 현재 상태를 읽는 상태 값과 주소
- 위치/속도/토크 제어를 위한 동작 모드
Object Dictionary 주요 주소
CiA402는 Object Dictionary(OD) 주소 체계를 사용합니다:
| 주소 | 이름 | 용도 |
|---|---|---|
| 0x6040 | Controlword | 모터 상태 제어 명령 전송 |
| 0x6041 | Statusword | 현재 모터 상태 읽기 |
| 0x605A | Quick Stop Option Code | 급정지 동작 설정 |
| 0x605E | Fault Reaction Option Code | 에러 반응 동작 설정 |
| 0x6060 | Mode of Operation | 동작 모드 설정 |
| 0x6061 | Mode of Operation Display | 현재 활성 동작 모드 |
상태 머신 (State Machine)
CiA402의 핵심은 8개 상태로 구성된 상태 머신입니다. 모터를 켜려면 반드시 정해진 순서대로 상태를 전이해야 합니다.
상태 머신 다이어그램

CiA402 상태 머신 다이어그램 - Power disabled, Power enabled, Fault 영역으로 구분
주요 운영 상태 (5개)
| 상태 | 설명 |
|---|---|
| Not Ready to Switch On | 전원 인가 후 초기화 단계 |
| Switch On Disabled | 초기화 완료, 운전 불가 |
| Ready to Switch On | 운전 준비 완료 |
| Switched On | 앰프 전원 인가됨 |
| Operation Enabled | 실제 운전 상태 - 브레이크 해제, 전류 흐름, 토크 발생 |
에러 처리 상태 (3개)
| 상태 | 설명 |
|---|---|
| Quick Stop Active | 사용자 요청 소프트웨어 급정지 |
| Fault Reaction Active | 내부 알람 발생 후 안전 조치 수행 중 |
| Fault | 안전 조치 완료 후 최종 에러 상태 |
Controlword와 Statusword
Controlword (0x6040) - 16비트 명령어
모터에 명령을 보내는 레지스터입니다:
| 비트 | 이름 | 설명 |
|---|---|---|
| 7 | Fault Reset | 상승 에지(0→1)에서 에러 클리어 시도 |
| 3 | Enable Operation | 실제 ON/OFF 스위치 |
| 2 | Quick Stop | 1 = 운전 허용, 0 = 급정지 |
| 1 | Enable Voltage | 전력단 전압 허용 |
| 0 | Switch On | 전원 투입 준비 |
Statusword (0x6041) - 16비트 상태어
모터의 현재 상태를 읽는 레지스터입니다:
| 비트 | 이름 | 설명 |
|---|---|---|
| 6 | Switch On Disabled | 초기화 또는 운전 차단 상태 |
| 5 | Quick Stop | 0 = 급정지 중 |
| 4 | Voltage Enabled | 메인 전원 정상 전압 |
| 3 | Fault | 1 = 에러 발생 |
| 2 | Operation Enabled | 현재 운전 중 |
| 1 | Switched On | 전원 인가 상태 |
| 0 | Ready to Switch On | 운전 준비 완료 |
Statusword 비트 패턴으로 상태 판별
| 상태 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |
|---|---|---|---|---|---|---|---|
| Not Ready to Switch On | 0 | x | x | 0 | 0 | 0 | 0 |
| Switch On Disabled | 1 | x | x | 0 | 0 | 0 | 0 |
| Ready to Switch On | 0 | 1 | x | 0 | 0 | 0 | 1 |
| Switched On | 0 | 1 | x | 0 | 0 | 1 | 1 |
| Operation Enabled | 0 | 1 | x | 0 | 1 | 1 | 1 |
| Quick Stop Active | 0 | 0 | x | 0 | 1 | 1 | 1 |
| Fault Reaction Active | 0 | x | x | 1 | 1 | 1 | 1 |
| Fault | 0 | x | x | 1 | 0 | 0 | 0 |
Controlword 명령어 패턴
| 명령 | Bit7 | Bit3 | Bit2 | Bit1 | Bit0 | 전이 번호 |
|---|---|---|---|---|---|---|
| Shutdown | 0 | x | 1 | 1 | 0 | 2, 6, 8 |
| Switch On | 0 | 0 | 1 | 1 | 1 | 3 |
| Enable Operation | 0 | 1 | 1 | 1 | 1 | 4 |
| Disable Operation | 0 | 0 | 1 | 1 | 1 | 5 |
| Disable Voltage | 0 | x | x | 0 | x | 7, 9, 10, 12 |
| Quick Stop | 0 | x | 0 | 1 | x | 11 |
| Fault Reset | 1 | 0 | 0 | 0 | 0 | 15 |
실제 적용 예시: Neuromeka Indy7
Neuromeka Indy7 협동 로봇의 실제 상태 전이 시퀀스입니다:
| 상태 | Statusword | 명령 | Controlword |
|---|---|---|---|
| Switch On Disabled | 0x220 | - | - |
| Ready to Switch On | 0x221 | Shutdown | 0x0006 |
| Switched On | 0x233 | Switch On | 0x0007 |
| Operation Enabled | 0x237 | Enable Operation | 0x000F |
상태 전이 다이어그램 (Indy7)
동작 모드 (Modes of Operation)
CiA402는 두 가지 제어 패러다임을 제공합니다.
Profile Mode (Point-to-Point 제어)
모터 드라이버가 자체적으로 속도 프로파일을 생성합니다. 궤적 정밀도보다 목표 도달이 중요한 경우에 사용합니다.
| 모드 | 모드 번호 | 용도 |
|---|---|---|
| Profile Position Mode | 1 | 위치 프로파일 제어 |
| Profile Velocity Mode | 3 | 속도 프로파일 제어 |
| Profile Torque Mode | 4 | 토크 프로파일 제어 |
적용 사례: 컨베이어 벨트, 단순 Pick & Place
Cyclic Synchronous Mode (실시간 동기 제어)
상위 컨트롤러가 매 통신 주기마다 목표값을 전송합니다. 정밀한 궤적 추종이 필요한 경우에 사용합니다.
| 모드 | 모드 번호 | 용도 |
|---|---|---|
| Cyclic Synchronous Position (CSP) | 8 | 실시간 위치 제어 |
| Cyclic Synchronous Velocity (CSV) | 9 | 실시간 속도 제어 |
| Cyclic Synchronous Torque (CST) | 10 | 실시간 토크 제어 |
적용 사례: 협동 로봇의 임피던스 제어, 중력 보상, 고성능 산업용 로봇
언제 어떤 모드를 사용할까?
| 상황 | 권장 모드 | 이유 |
|---|---|---|
| 단순 위치 이동 | Profile Position | 드라이버가 프로파일 생성 |
| 정밀 궤적 추종 | CSP | 상위 제어기가 궤적 계산 |
| 힘 제어 | CST | 실시간 토크 명령 필요 |
| 협동 로봇 | CSP/CST | 임피던스 제어 구현 |
핵심 정리
-
CiA402는 EtherCAT/CANopen 기반 모터 제어의 산업 표준으로, 제조사와 무관하게 동일한 방식으로 모터를 제어할 수 있습니다.
-
상태 머신은 8개 상태로 구성되며, 안전을 위해 정해진 순서대로 전이해야 합니다. 전원 인가부터 운전까지 최소 3단계(Shutdown → Switch On → Enable Operation)가 필요합니다.
-
Controlword/Statusword는 16비트 레지스터로, 특정 비트 패턴을 통해 상태를 제어하고 읽습니다.
-
Profile Mode는 드라이버가 프로파일을 생성하고, Cyclic Synchronous Mode는 상위 제어기가 매 주기 목표값을 전송합니다. 정밀 로봇 제어에는 CSP/CSV/CST가 적합합니다.
-
에러 처리는 Quick Stop, Fault Reaction, Fault 세 단계로 구성되어 안전한 정지를 보장합니다.
CiA402를 이해하면 다양한 제조사의 모터 드라이버를 동일한 코드로 제어할 수 있어, 산업용 로봇 시스템 개발이 훨씬 효율적이 됩니다.