2. EtherCAT协议核心机制与伺服通信映射

EtherCAT之所以能在伺服驱动领域成为主流实时以太网方案,关键在于它把“主站—从站”的通信模型、逻辑寻址、过程数据对象、分布式时钟以及周期/邮箱两类通信通道组合成了一套可预测、可同步、可诊断的机制。理解这些机制,是后续完成PDO映射、DC配置和通信调试的前提。

主站/从站模型:只有主站发帧,从站“边读边写”

EtherCAT采用主从结构,但与传统轮询不同:整个网络中通常只有一个主站(如基于IgH EtherCAT Master、TwinCAT或CODESYS的控制器),它发送一个以太网帧沿环形拓扑依次经过每个从站。每个从站(伺服驱动器、IO模块、编码器接口等)在帧经过时,用硬件ESC(EtherCAT Slave Controller)在极短时间内读取属于自己的数据,并把要上报的数据写回同一帧。帧绕行一圈后返回主站,主站一次收发即可完成对所有从站的读写。

这种“on-the-fly”处理方式使通信效率与从站数量关系不大,而与帧长度和拓扑延迟有关。对伺服驱动而言,这意味着位置指令、速度指令、状态字、实际位置等数据可以在同一个周期帧中完成交换,而不需要为每个轴单独建立连接。

逻辑寻址与过程数据对象:把物理位置映射成可用的过程数据

EtherCAT支持多种寻址方式,其中伺服通信最常用的是逻辑寻址。主站为每个从站分配一个或多个逻辑地址,从站根据逻辑地址判断帧中哪些字节属于自己。逻辑寻址与FMMU(Fieldbus Memory Management Unit)配合,把从站物理内存中的对象映射到主站过程映像区。主站看到的是连续的过程数据区,从站看到的是自己的对象字典条目,中间由FMMU完成地址翻译。

过程数据对象(PDO)就是这些被周期性交换的对象集合。以一台典型伺服驱动器为例,常用PDO包括:

  • RxPDO(主站→从站):控制字0x6040、目标位置0x607A、目标速度0x60FF、目标转矩0x6071、运行模式0x6060;
  • TxPDO(从站→主站):状态字0x6041、实际位置0x6064、实际速度0x606C、实际转矩0x6077、错误码0x603F。

PDO映射的本质,是把对象字典中的条目按顺序“拼”进过程数据帧。例如把控制字(2字节)、目标位置(4字节)、目标速度(4字节)依次映射到RxPDO,主站过程映像区中就会形成一段10字节的连续区域。映射顺序、字节长度和数据类型必须与从站ESI/XML描述一致,否则会出现数据错位或从站拒绝进入OP状态。

PDO映射不是“随便选几个对象”,而是要在从站支持的映射组合内选择。很多伺服驱动器提供固定PDO配置和可变PDO配置两种模式,调试时应先确认从站允许的映射条目和总长度。

分布式时钟:让多轴在同一时间基准下动作

分布式时钟(DC)解决的是“多个从站何时采样、何时输出”的问题。EtherCAT网络中第一个支持DC的从站通常作为参考时钟,其他从站通过测量帧到达时间与参考时钟的偏差,逐步调整本地时钟,使所有从站时钟与参考时钟对齐。对齐后,主站可以下发同步信号(SYNC0/SYNC1),从站在指定时刻同时锁存输入、更新输出。

对伺服驱动来说,DC直接影响多轴插补和同步精度。若没有DC,各轴按各自接收帧的时刻动作,轴间会存在随拓扑和帧传输波动的相位差;启用DC后,位置环和电流环的采样点被统一到同一时间网格上。典型配置中,SYNC0周期等于通信周期,例如1ms或500μs,从站在SYNC0触发后开始执行新的位置指令。

周期通信与邮箱通信:实时数据与非实时参数各走各的路

EtherCAT在同一物理链路上划分了两类逻辑通信:

  • 周期通信(过程数据):使用逻辑寻址和PDO,在每个通信周期内固定交换,要求低延迟、低抖动,承载控制字、状态字、位置、速度、转矩等实时数据;
  • 邮箱通信(Mailbox):使用CoE(CANopen over EtherCAT)等协议,承载对象字典读写、参数下载、故障诊断、固件升级等非周期数据,通常不占用周期帧的实时带宽,而是在周期帧中预留邮箱缓冲区。

在伺服驱动中,这两类通信分工明确:周期通信负责“让轴动起来”,邮箱通信负责“让轴按正确参数动起来”。例如,驱动器上电后先通过邮箱通信写入0x6060运行模式、0x6091齿轮比、0x6081轮廓速度等参数,确认无误后再切换到OP状态,由PDO周期交换控制字和目标位置。若把参数配置也塞进周期通信,会增大帧长、降低周期稳定性;若把实时控制交给邮箱通信,则无法满足伺服环路的确定性要求。

EtherCAT主从通信与伺服映射关系 EtherCAT主站 过程映像区 FMMU配置 DC参考时钟 EtherCAT帧 伺服从站1 ESC + FMMU RxPDO: 6040/607A/60FF TxPDO: 6041/6064/606C DC本地时钟 IO从站2 ESC + FMMU 数字量输入/输出 DC本地时钟 伺服从站3 ESC + FMMU RxPDO: 6040/607A TxPDO: 6041/6064 DC本地时钟 帧绕行一圈返回主站,完成一次读写 周期通信(PDO / 逻辑寻址) 每个通信周期固定交换,低延迟、低抖动 RxPDO 6040 / 607A / 60FF TxPDO 6041 / 6064 / 606C SYNC0触发 → 从站同时锁存/更新 DC对齐后多轴动作相位一致 邮箱通信(CoE / 非周期) 参数读写、诊断、固件升级,不占实时带宽 SDO上传/下载 6060 / 6091 / 6081 故障与诊断 603F / 对象字典 上电先配参数 → 确认后进入OP 周期通信负责实时控制 同一物理链路

从站状态机:通信建立的实际顺序

EtherCAT从站遵循ESM状态机:Init → Pre-Op → Safe-Op → Op。邮箱通信在Pre-Op阶段即可使用,用于读写对象字典、配置PDO映射和DC参数;进入Safe-Op后,从站开始接收PDO输入但输出保持安全状态;只有进入Op,周期输出才真正生效。伺服调试中常见的“轴不动”问题,往往不是PDO映射错误,而是从站没有从Safe-Op进入Op,或DC同步未建立导致从站拒绝切换。

实际配置时,可以按以下顺序检查:先用邮箱通信读取0x1018(厂商ID、产品码)确认从站识别正确;再写0x1C12/0x1C13配置RxPDO/TxPDO映射;然后设置0x6060运行模式、0x6091齿轮比等参数;最后使能从站DC并等待状态字0x6041的“Operation enabled”位。每一步都应有明确的返回值或状态位可观察,而不是一次性下发后盲目等待。

PDO映射长度和DC周期必须与主站配置一致。若主站按1ms周期发送SYNC0,而从站配置为2ms,从站可能报同步错误;若映射总长度超过从站邮箱或过程数据缓冲区限制,从站会拒绝进入Op。

小结:两类通信、一个时间基准、一张映射表