2. EtherCAT协议原理与机器人运动控制映射

EtherCAT 之所以能支撑机器人多轴高同步运动,核心在于它把“以太网帧”改造成了可在线处理的“列车”:主站发出一帧,从站不接收整帧再转发,而是在帧经过自身硬件时即时读写属于自己的数据区,帧继续向下游传播。理解这一机制,需要同时看清四件事:帧结构、寻址方式、分布式时钟,以及过程数据对象与伺服周期的映射关系。

一、EtherCAT 帧结构:一帧承载整条轴链

EtherCAT 使用标准以太网帧类型 0x88A4。帧内不再为每个从站单独封装一个报文,而是把多个 EtherCAT 子报文(Datagram)串联在同一帧中。每个子报文包含命令、索引、地址区、长度、数据区和工作计数器 WKC(Working Counter)。WKC 是判断通信是否成功的关键:从站正确读写后会使 WKC 递增,主站通过比对期望值与实际值,即可知道该子报文是否被目标从站处理。

以 4 轴机器人关节伺服为例,一个典型过程数据帧可能包含:广播子报文用于输出全部从站的周期数据,逻辑寻址子报文用于读取各轴状态字与位置反馈,最后再跟一个用于诊断的子报文。整帧长度受以太网 MTU 限制,通常控制在 1500 字节以内,因此轴数越多,越需要合理规划 PDO 映射,避免单帧溢出。

EtherCAT 帧结构与子报文串联示意 以太网帧头 目的MAC / 源MAC / 类型 0x88A4 子报文 1(广播) Cmd=BWR · Addr=0 输出各轴目标位置 WKC 期望=4 子报文 2(逻辑寻址) Cmd=LRW · Addr=0x1000 读取状态字/实际位置 WKC 期望=4 子报文 3(诊断) Cmd=BRD · Addr=0 读取从站错误寄存器 WKC 期望=4 帧沿从站链单向传播,每个从站即时读写自己的数据区 从站1 轴1 ESC 读写 从站2 轴2 ESC 读写 从站3 轴3 ESC 读写 从站4 轴4 ESC 读写 WKC 实际值 = 各从站成功处理次数之和;与期望值一致表示该子报文通信正常

二、寻址方式:自动增量、固定位置与逻辑寻址

EtherCAT 有三种寻址方式,分别服务于不同阶段。自动增量寻址利用从站顺序位置,主站发送一个子报文,每经过一个从站地址减 1,减到 0 的从站处理该报文。它主要用于启动阶段扫描拓扑、分配站地址。固定位置寻址则直接使用已分配的站地址,适合对单个从站进行参数读写。逻辑寻址是周期通信的主力:主站把多个从站的输入/输出数据映射到同一段 4GB 逻辑地址空间,用 LRW 命令一次读写多个从站,极大减少帧数量。

在机器人系统中,通常启动时用自动增量寻址完成拓扑识别和地址分配,随后切换到逻辑寻址进行周期 PDO 交换。若某轴在运行中掉站,WKC 会低于期望值,主站可据此触发安全停机或降级策略。

三、分布式时钟:让所有轴共享同一时间轴

多轴插补要求各关节在同一时刻采样、同一时刻输出。EtherCAT 分布式时钟(DC)机制让第一个支持 DC 的从站作为参考时钟,其余从站时钟与之对齐。主站周期性发送 ARMW 子报文,各从站测量本地时钟与参考时钟的偏差,通过漂移补偿和偏移补偿逐步收敛。最终各从站时钟偏差可控制在亚微秒级。

配置时需关注两个参数:同步周期(如 1 ms)和同步窗口(如 ±100 μs)。若某从站偏差超出窗口,会置位同步错误位,伺服可能报 F 类故障。实际调试中,可用主站诊断工具观察各从站时钟偏差曲线,确认收敛后再使能轴。

四、过程数据对象与伺服周期映射

PDO 是周期通信的数据容器。每个伺服从站通常包含 RxPDO(主站→从站,如控制字、目标位置、目标速度)和 TxPDO(从站→主站,如状态字、实际位置、实际速度、扭矩)。PDO 映射决定了哪些对象被放入周期帧,以及它们在帧中的字节偏移。

以 1 ms 周期、4 轴机器人为例,一个合理的映射方案如下表所示。每个轴 RxPDO 占 12 字节,TxPDO 占 16 字节,4 轴合计 112 字节,加上帧头与 WKC,单帧约 150 字节,远低于 MTU,留有充足余量。

轴 RxPDO 内容 字节 TxPDO 内容 字节
轴1控制字+目标位置+目标速度2+4+4=10状态字+实际位置+实际速度+扭矩2+4+4+2=12
轴2控制字+目标位置+目标速度10状态字+实际位置+实际速度+扭矩12
轴3控制字+目标位置+目标速度10状态字+实际位置+实际速度+扭矩12
轴4控制字+目标位置+目标速度10状态字+实际位置+实际速度+扭矩12

映射完成后,主站按周期发送过程数据帧,从站 ESC 在帧经过时完成数据交换,伺服驱动器在下一个 SYNC0 信号到来时锁存目标值并执行。整个链路从主站应用层到伺服电流环,延迟通常可控制在几十微秒量级。若周期设置过短而 PDO 数据量过大,会导致帧无法在周期内完成,WKC 异常或 DC 失步,因此需要根据轴数和数据量核算总线负载。

实践提示:调试时先确认 WKC 全部匹配,再检查 DC 同步窗口是否收敛,最后使能伺服。若 WKC 正常但轴不动,优先检查 PDO 映射中的控制字与状态字是否对应,以及伺服使能位是否置位。

把帧结构、寻址、DC 和 PDO 映射串起来看,EtherCAT 的实时性并非来自某个单点技术,而是“一帧多站、逻辑寻址、时钟对齐、周期映射”四者协同的结果。理解这四层关系,才能在机器人集成中正确规划轴数、周期与数据量,并在出现通信异常时快速定位到具体环节。