3. EtherCAT协议核心机制

EtherCAT之所以能在一根标准以太网线上实现微秒级的多轴同步,靠的不是单一技术,而是四套机制协同工作:过程数据对象(PDO)负责周期性实时数据的高速搬运,邮箱通信(Mailbox)负责非周期参数与诊断信息的可靠传递,分布式时钟(DC)负责把各从站的时间基准对齐到同一根时间轴上,从站状态机(ESM)负责设备从初始化到运行的状态迁移与安全管控。而MINAS伺服作为松下EtherCAT从站,还在此之上叠加了设备行规(CiA 402驱动子协议),把"位置/速度/转矩"这些运动语义映射到具体的对象字典条目上。理解这五者的分工与配合,是后续配置PDO映射、调DC同步、排查从站不进入OP状态等问题的前提。

过程数据对象:周期性实时数据的"传送带"

PDO是EtherCAT实时通信的载体。主站与从站之间每个通信周期交换一次过程数据,数据内容由PDO映射决定——即"这个PDO里装哪些对象字典条目、各占多少位"。以MINAS A6B为例,典型的伺服RxPDO(主站→从站)包含控制字0x6040、目标位置0x607A、目标速度0x60FF、运行模式0x6060;TxPDO(从站→主站)包含状态字0x6041、实际位置0x6064、实际速度0x606C、运行模式显示0x6061、错误码0x603F。映射关系写在0x1C12(RxPDO分配)和0x1C13(TxPDO分配)中。

PDO的传输方式有同步管理和非同步管理之分。MINAS通常使用SM2(输出)和SM3(输入)两个同步管理器通道,配合DC同步模式,主站按固定周期发送过程数据帧,从站硬件在帧经过时"顺手"读写数据,无需CPU逐帧中断处理,这正是EtherCAT高效率的来源。配置时要注意:PDO映射的总位宽必须与SM通道长度一致,否则从站会报SM长度不匹配而无法进入OP。

邮箱通信:非周期参数与诊断的可靠通道

邮箱通信走的是SM0(主站→从站)和SM1(从站→主站)两个通道,采用请求/应答机制,用于传输SDO(服务数据对象)。与PDO"周期、实时、无确认"不同,SDO是"非周期、可靠、有确认"的:主站发一条SDO读/写请求,从站处理后在下一个周期回一条应答,主站据此判断成功或失败。典型用途包括:上电时写0x6060设定运行模式、读0x603F获取错误码、写0x6098回零方式、读写厂商特定参数等。

邮箱通信的带宽有限,不能用来传实时位置指令。工程上常见的错误是把本该走PDO的周期数据塞进SDO轮询,结果通信周期被拉长、同步精度下降。正确做法是:周期数据一律走PDO,参数配置和诊断走SDO。SDO传输还有分段(segmented)和加速(expedited)两种方式,小于4字节的对象用加速传输,大对象(如长字符串)用分段传输。

分布式时钟:把各从站对齐到同一时间轴

分布式时钟是EtherCAT实现多轴同步的关键。原理是:主站选定第一个支持DC的从站作为参考时钟,其余从站作为从时钟。主站周期性发送带有参考时钟时间戳的ARMW(Auto Increment Read Multiple Write)帧,各从站读取该时间戳并测量帧到达本地的时间差,据此计算并补偿本地时钟的偏移和漂移,最终使所有从站的时钟与参考时钟的偏差控制在纳秒级。

对MINAS伺服而言,DC同步意味着:主站发出的位置指令在"同一时刻"被所有轴锁存执行,多轴插补的轨迹才不会因各轴时钟不同步而扭曲。配置DC时需要设置两个关键参数:同步周期(通常等于通信周期,如1ms或500μs)和同步偏移(Shift,决定从站在周期内哪个时刻采样/输出)。偏移设置不当会导致从站报"同步错误"或"DC未同步"。判断DC是否正常的依据是:从站状态字中的同步标志位、主站诊断中的时钟偏差值(一般要求小于1μs)。

从站状态机:设备上电到运行的状态迁移

每个EtherCAT从站都维护一个状态机,状态包括:INIT(初始化)、PRE-OP(预运行)、SAFE-OP(安全运行)、OP(运行)。状态迁移由主站通过写AL控制寄存器触发,从站完成相应动作后回写状态码。迁移路径是单向的:INIT→PRE-OP→SAFE-OP→OP,回退则反向进行。

各状态的含义与MINAS的实际行为对应如下:INIT时邮箱通信可用但PDO不可用,主站可读写对象字典;PRE-OP时邮箱仍可用,主站完成PDO映射和DC配置;SAFE-OP时PDO输入(TxPDO)可用,但输出(RxPDO)被禁止,伺服不会响应运动指令,这是安全的"只读"状态;OP时输入输出都可用,伺服开始响应位置/速度指令。如果从站卡在PRE-OP无法进入SAFE-OP,通常是PDO映射或SM配置有误;卡在SAFE-OP无法进入OP,通常是DC未同步或看门狗超时。

EtherCAT从站状态机与MINAS设备行规协同关系 INIT 邮箱可用 / PDO禁用 PRE-OP PDO映射 / DC配置 SAFE-OP TxPDO可用 / RxPDO禁止 OP PDO双向 / 伺服响应 异常回退(看门狗 / 同步丢失 / 映射错误) 邮箱通信(SM0 / SM1) • SDO 请求 / 应答,非周期、有确认 • 写 0x6060 运行模式、0x6098 回零方式 • 读 0x603F 错误码、0x6041 状态字 过程数据对象(SM2 / SM3) • RxPDO:0x6040 控制字 / 0x607A 目标位置 • TxPDO:0x6041 状态字 / 0x6064 实际位置 • 周期交换,映射由 0x1C12 / 0x1C13 定义 分布式时钟(DC)同步链 参考时钟从站 → ARMW帧携带时间戳 → 从时钟测量偏移/漂移 → 补偿本地时钟 同步周期 = 通信周期(示例 1ms) 同步偏移 Shift 决定采样/输出时刻 偏差 < 1μs 为正常

MINAS设备行规:把运动语义映射到对象字典

MINAS伺服遵循CiA 402驱动子协议,这是EtherCAT伺服最通用的设备行规。它规定了伺服必须实现哪些对象字典条目、状态字和控制字的位定义、以及运行模式(0x6060)的取值。常用运行模式包括:PP(轮廓位置,模式号1)、PV(轮廓速度,模式号3)、PT(轮廓转矩,模式号4)、CSP(周期同步位置,模式号8)、CSV(周期同步速度,模式号9)、CST(周期同步转矩,模式号10)。多轴插补通常用CSP模式,主站每个周期下发目标位置,伺服内部完成位置环闭合。

控制字0x6040的位定义是调试时最常打交道的:bit0=Switch on、bit1=Enable voltage、bit2=Quick stop、bit3=Enable operation、bit7=Fault reset。状态字0x6041则反映伺服当前处于"准备就绪""已使能""故障"等哪个阶段。上电使能的标准序列是:写控制字0x0006→0x0007→0x000F,每一步都要读状态字确认伺服已进入对应状态,再发下一步。跳过确认直接发0x000F,伺服可能因状态不满足而拒绝使能。

调试建议:先用SDO读0x6041确认伺服处于"Switch on disabled"(状态字低4位为0x40),再按0x0006→0x0007→0x000F顺序使能,每步读状态字验证。若卡在SAFE-OP,优先检查DC同步标志和PDO映射长度。

五套机制的协同关系

把上述机制串起来看:上电后从站从INIT出发,主站通过邮箱(SDO)完成PDO映射和DC配置,从站进入PRE-OP;DC同步建立后进入SAFE-OP,此时TxPDO可读、RxPDO被禁;主站确认同步正常后发指令进入OP,PDO双向工作,MINAS按CiA 402行规响应CSP位置指令。运行中若DC丢失或看门狗超时,从站自动回退到SAFE-OP甚至PRE-OP,伺服停止输出——这是保护机制,不是故障。排查时按"状态机卡在哪一级→对应检查邮箱/PDO/DC哪一项"的思路,能快速定位问题。

机制通道/对象周期特性典型用途
PDOSM2/SM3,0x1C12/0x1C13周期、实时位置/速度/状态字交换
邮箱SM0/SM1,SDO非周期、有确认参数配置、诊断读取
DCARMW帧、参考时钟周期同步多轴时间对齐
ESMAL控制/状态寄存器状态迁移上电初始化与安全管控
CiA 4020x6040/0x6041/0x6060随PDO周期运动模式与使能控制

掌握这五套机制的分工,就掌握了EtherCAT运动控制的"骨架"。后续配置PDO映射、调DC偏移、写使能序列时,遇到问题都能回到这张关系图上找到对应的检查点。