1. EtherCAT通信模型与联调诊断总览

EtherCAT(Ethernet for Control Automation Technology)是一种实时工业以太网协议,其核心思想是"飞读飞写"(processing on the fly):主站发出一帧以太网报文,该报文依次穿过所有从站,每个从站都在报文经过时读取属于自己的输出数据、写入自己的输入数据,无需逐站存储转发。理解这一通信模型,是后续联调与报文诊断的基础。

一、主站、从站与逻辑环网

EtherCAT网络在物理上通常是线形、树形或星形拓扑,但在逻辑上构成一个逻辑环网。主站(Master)是唯一主动发起通信的节点,通常由PC、工控机或嵌入式控制器上的EtherCAT主站协议栈实现,如TwinCAT、SOEM、IgH EtherCAT Master等。从站(Slave)是分布在设备侧的节点,包括伺服驱动器、IO模块、编码器、阀岛等,每个从站内部都有一块ESC(EtherCAT Slave Controller)芯片负责报文处理。

报文从主站发出后,依次经过从站1、从站2……直到最后一个从站。最后一个从站的ESC具有"环回"功能,将报文原路返回主站。因此,虽然物理上是一条线,数据流却形成了一个闭合的环。主站通过这一帧报文同时完成对所有从站的读写,这就是EtherCAT高效率的来源。

每个从站在网络中的位置由自动增量寻址确定:主站发送一个地址为0的报文,第一个从站将其端口0收到的报文地址加1后转发,第二个从站再加1,依此类推。这样每个从站就获得了唯一的"自增地址",主站据此建立拓扑映射。之后主站会为每个从站分配配置地址,用于后续的寄存器访问和邮箱通信。

二、过程数据与邮箱通信

EtherCAT的通信分为两类:过程数据通信(PDO)和邮箱通信(Mailbox)。

过程数据是周期性实时数据,包括主站下发的控制字、目标位置、目标速度等输出数据,以及从站上传的状态字、实际位置、实际速度、IO状态等输入数据。这些数据被映射到EtherCAT报文的过程数据映像中,每个从站占用一段固定的逻辑地址空间。主站每个周期发送一帧过程数据报文,所有从站在报文经过时完成读写,周期时间通常在100μs到几毫秒之间。

邮箱通信是非周期性数据,用于参数配置、固件升级、诊断信息读取等。它基于CoE(CANopen over EtherCAT)、SoE(Servo over EtherCAT)、FoE(File over EtherCAT)等协议,通过邮箱通道传输。邮箱通信不占用过程数据带宽,但需要握手确认,实时性较低。

两者的关系可以这样理解:过程数据是"每周期都在跑的实时通道",邮箱通信是"需要时才用的配置与诊断通道"。联调时,先通过邮箱通信完成从站配置和参数下载,再启动过程数据通信进行实时控制。

三、联调目标与诊断手段全景

EtherCAT主从站联调的目标可以归纳为三个层次:通信建立、数据正确、实时稳定。

通信建立阶段,需要确认主站能扫描到所有从站、从站拓扑与预期一致、从站进入PREOP状态并完成邮箱通信初始化。这一阶段常用的诊断手段包括:查看主站扫描到的从站列表、检查从站数量与顺序、读取从站AL状态寄存器(0x0130)、观察邮箱通信是否超时。

数据正确阶段,需要确认PDO映射与从站实际对象字典一致、输入输出数据方向正确、数据值符合预期。诊断手段包括:使用Wireshark抓取EtherCAT报文并解析、对比主站发送与从站接收的数据、检查PDO映射配置、通过从站对象字典读取实际值。

实时稳定阶段,需要确认通信周期稳定、无丢帧、无看门狗超时、从站同步模式正确。诊断手段包括:查看主站统计的帧错误计数、工作计数器(WKC)是否等于预期值、从站DC同步偏差、通信周期抖动等。

工作计数器WKC是EtherCAT诊断中最重要的指标之一。每个从站在处理报文时会对WKC进行加1操作,主站收到返回报文后检查WKC是否等于预期值。如果WKC小于预期,说明有从站未正确处理报文,可据此定位故障从站。

四、联调诊断的整体视图

下面这张图展示了EtherCAT主从站联调中,从物理拓扑到逻辑环网、从过程数据到邮箱通信、从联调目标到诊断手段的整体关系。图中左侧为主站侧,右侧为从站侧,中间为逻辑环网的数据流,下方为诊断手段与联调目标的对应关系。

EtherCAT 主从站联调与诊断全景 主站 Master TwinCAT / SOEM / IgH 过程数据帧发送 邮箱通信管理 拓扑扫描与配置 WKC 校验 DC 同步时钟 从站 Slave 伺服 / IO / 编码器 ESC 芯片处理 PDO 读写 邮箱协议 CoE/SoE AL 状态机 对象字典 OD 逻辑环网 · 数据流 从站1 从站2 从站n 环回返回主站 过程数据 PDO:控制字 / 目标位置 / 状态字 / 实际位置 邮箱通信:参数配置 / 诊断读取 / 固件升级 发送 接收 联调目标 ① 通信建立 ② 数据正确 ③ 实时稳定 诊断手段全景 从站扫描与拓扑 从站列表 / 顺序 / 数量 AL 状态寄存器 0x0130 / PREOP→OP WKC 工作计数器 预期值比对 / 故障定位 Wireshark 抓包 报文解析 / 数据比对 PDO 映射检查 对象字典一致性 DC 同步偏差 时钟抖动 / 同步窗口 帧错误统计 丢帧 / CRC / 超时 周期抖动监测 周期时间 / 抖动范围

从图中可以看出,联调诊断不是单一动作,而是一个从物理层到应用层、从通信建立到实时稳定的完整链条。主站侧负责发起通信、管理拓扑、校验WKC;从站侧负责ESC处理、PDO读写、邮箱协议响应;逻辑环网是数据流动的通道;诊断手段则分布在各个层次,分别对应不同的联调目标。

实际联调时,建议按照"先扫描、再配置、后运行"的顺序推进。先用主站工具扫描从站,确认拓扑与预期一致;再通过邮箱通信下载参数、配置PDO映射;最后启动过程数据通信,观察WKC、周期抖动和从站状态。如果某一环节异常,再根据现象选择对应的诊断手段深入排查。例如,从站扫描不到,优先检查物理连接和ESC供电;WKC不等于预期,优先检查从站AL状态和PDO映射;周期抖动大,优先检查DC同步配置和网络负载。

联调诊断的核心逻辑是:先确认"通不通",再确认"对不对",最后确认"稳不稳"。这三个层次对应不同的诊断工具和判断依据,不要跳步,也不要混用。