启动日志显示状态卡在 Pre-Operational 或 Safe-Operational,无法进入 Operational。
EtherCAT 状态机转换:
Init → Pre-Op → Safe-Op → Operational
排查方法:
1. 读取 AL Status Code 诊断
ECM_SlaveInfoGet(slave, ECM_SLV_INFO_ALstatuscode, &status);
printf(“ALStatusCode: 0x%04Xrn”, status);
常见状态码:
– 0x0011: Invalid SM Configuration
– 0x0012: Invalid SM Configuration of Outputs
– 0x001C: Invalid DC SYNC Configuration
– 0x001D: Invalid DC Latch Configuration
2. Pre-Op → Safe-Op 失败
– 检查 RxPDO/TxPDO 映射配置
– 确认 PDO 数据大小匹配
– 检查 SyncManager 配置
3. Safe-Op → Operational 失败
– 从站处于 Error 状态 → 检查电机驱动器报警
– DC 同步未稳定 → 增加等待时间
– PDO 数据未正确交换 → 检查 FIFO 配置
4. CIA402 状态机问题
电机状态字:
– 0x40: SwitchOnDisabled → 需要发送 0x06 使能
– 0x21: ReadyToSwitchOn → 发送 0x07
– 0x23: SwitchedOn → 发送 0x0F
– 0x0F: Fault → 需要先发送 0x80 复位故障


