EtherCAT状态机
| 状态 | 主要操作 | 关键校验与补充说明 | 状态码 |
| Init(初始化) | 初始状态,应用层无通信;主站通过 ESC 寄存器读取从站设备信息,清除旧配置 | 主站需检查从站硬件连接(如 PHY 芯片状态),仅能操作 ESC 基础寄存器(如 0x0120 控制寄存器) | 1 |
| Init > Pre-Op | 1. 配置从站地址寄存器及邮箱通信参数(如 SM0/SM1 通道起始地址、长度)2. 若支持分布时钟,配置传输延时与偏移时间3. 写 AL 控制寄存器(0x0120)请求状态切换 | 从站需校验邮箱通道配置合法性(无地址重叠、长度为偶数),DC 时钟需完成初步同步 | - |
| Pre-Op(预运行) | 基于邮箱通信(CoE 服务)完成配置:1. 初始化 PDO 映射表2. 配置过程数据用 SM 通道(如 SM2 输出、SM3 输入)3. 配置 FMMU 地址转换规则 | 支持固件更新(FoE 协议),但禁止过程数据传输;主站可通过邮箱修改从站对象字典参数 | 2 |
| Pre-Op > Safe-Op | 1. 主站通过邮箱下发最终 PDO 映射与 FMMU 配置2. 写 AL 控制寄存器请求切换 | 从站强制校验:1. SM 通道使能状态与参数完整性2. DC 时钟同步稳定性3. FMMU 地址转换有效性 | - |
| Safe-Op(安全运行) | 1. 支持邮箱通信与过程数据接收2. 从站将输入数据复制至 ESC 的 DPRAM 区域 | 仅允许读取输入数据,输出信号强制禁用;主站需确认 DC 同步误差<阈值(通常<1ns) | 4 |
| Safe-Op > Op | 1. 主站发送首帧有效输出数据(如控制指令)2. 写 AL 控制寄存器请求切换 | 从站校验输出数据格式合法性(符合 PDO 映射定义),主站需调用ecrt_master_activate()启动周期调度 | - |
| Op(运行) | 1. 输入输出数据全双工传输(周期≤1ms)2. 邮箱通信与过程数据并行运行 | 主站通过中断或轮询监控从站 AL 状态寄存器(0x0130),异常时触发状态回退 | 8 |
| Boot(引导) | 独立维护状态,通过 FoE 协议传输固件镜像文件 | 仅可切换至 Init 状态,需关闭过程数据通道;适用于从站固件升级场景 | - |
| 状态回退规则 | 主站写 AL 控制寄存器直接请求降级(如 Op→Init) | 回退可越级,需失能对应功能(如 Op→Safe-Op 时禁用输出);异常时从站通过 0x0134 寄存器上报错误码 | - |
| 常见异常处理 | - | 1. Pre-Op 卡滞:检查 PDO 映射缺失 / FMMU 未启用2. 切换 Op 失败:排查输出数据无效 / DC 同步超时 | - |
