3. EtherCAT设备状态机
EtherCAT 从站设备上电后并不是立刻进入数据交换阶段,而是必须沿着一条严格定义的状态机路径逐级推进。主站通过写状态控制寄存器(ESC 寄存器 0x0120)请求目标状态,从站则在状态寄存器(0x0130)中回读当前实际状态与错误标志。量产验证中,状态机能否按预期迁移,是判断设备固件、EEPROM、PHY、拓扑与过程数据配置是否正确的最直接证据。
一、四个基本状态与迁移路径
EtherCAT 从站状态机定义了四个基本状态,按顺序为 Init(初始化)、Pre-Operational(预运行)、Safe-Operational(安全运行)、Operational(运行)。正常上电迁移路径是 I → P → S → O,反向迁移也允许,例如主站主动请求从 O 退回 S 或 P,用于参数重配或故障隔离。
- Init(I):上电默认状态。此阶段从站不参与过程数据交换,邮箱通信尚未建立,主站可访问 ESC 寄存器、DL 信息与 EEPROM。量产验证重点检查上电后能否稳定停留在 I 并正确响应寄存器读。
- Pre-Operational(P):邮箱通信可用,支持 CoE、FoE、EoE 等协议,可读写对象字典、下载固件、配置 PDO 映射。此阶段不进行过程数据交换,是参数配置的黄金窗口。
- Safe-Operational(S):过程数据输入(TxPDO)已可上传,但输出(RxPDO)保持安全值不驱动执行器。此状态用于验证输入通道与同步,是量产中排查“输入正常但输出不动”的关键分界点。
- Operational(O):输入输出均有效,设备进入正常生产运行。只有在此状态,RxPDO 才会真正作用于执行器。
二、状态迁移条件与验证要点
每一次迁移都有明确的先决条件。主站在请求目标状态后,会轮询 0x0130,直到当前状态等于目标状态或错误位置位。量产验证应把每个迁移条件拆成可测项。
| 迁移 | 关键条件 | 量产验证要点 |
|---|---|---|
| I → P | ESC 寄存器可访问,EEPROM 校验通过,邮箱配置有效 | 读 0x0130 确认无 EEPROM 错误;检查 SM0/SM1 邮箱配置 |
| P → S | SM2/SM3 过程数据通道配置完成,PDO 映射合法,DC 同步可建立 | 核对 PDO 映射长度与 SM 长度一致;检查 DC 模式与周期 |
| S → O | 输入数据已有效刷新,输出看门狗正常,无同步错误 | 确认 TxPDO 数据变化;检查看门狗超时与同步窗口 |
| O → S / S → P | 主站主动请求或错误触发降级 | 验证降级后输出是否回到安全值,错误码是否可读 |
三、状态寄存器与错误码解析
状态寄存器 0x0130 是 16 位寄存器,低 4 位表示当前状态,高 12 位为错误标志与错误码。常见编码:0x01=Init,0x02=Pre-Op,0x04=Safe-Op,0x08=Op。错误位包括 EEPROM 错误、SM 看门狗、无效 SM 配置、无效邮箱配置、无效 PDO 配置、同步错误等。主站应同时读取 0x0130 与 0x0134(错误码)进行定位。
# 典型状态读取(伪代码)
state = read_register(0x0130)
current = state & 0x0F
error = state & 0xF0
if error != 0:
code = read_register(0x0134)
log("state=0x%02X error=0x%02X code=0x%04X" % (current, error, code))
# 常见错误码含义
0x0001 EEPROM 未加载或校验失败
0x0002 SM 看门狗超时
0x0004 SM 配置无效
0x0008 邮箱配置无效
0x0010 PDO 配置无效
0x0020 同步错误 / DC 失锁
四、量产场景与排障复盘
场景一:设备始终停在 Init。优先检查 EEPROM 是否烧录、PHY 链路是否建立、ESC 供电与晶振是否正常。若 0x0130 返回 0x11,说明 EEPROM 错误位置位,需重新烧录并校验。
场景二:能到 Pre-Op 但无法进入 Safe-Op。多数是 SM2/SM3 长度与 PDO 映射不匹配,或 DC 同步参数错误。此时应读取 0x0134,若为 0x0010,重点核对 PDO 映射对象与 SM 长度。
场景三:进入 Op 后偶发掉回 Safe-Op。通常是看门狗超时或同步失锁,需检查主站周期抖动、DC 偏移与线缆质量。量产中应把状态迁移成功率、错误码分布纳入测试报告。
把状态机验证做扎实,量产阶段就能快速区分“设备根本没起来”“配置没配对”“同步不稳定”三类问题。状态寄存器与错误码不是附属信息,而是定位根因的第一手证据。