1. EtherCAT故障诊断的现场视角
现场排查EtherCAT故障时,最忌讳的做法是“看到什么报警就改什么参数”。EtherCAT是一个由主站、从站、拓扑、线缆、电源、配置和实时性共同构成的耦合系统,任何一个环节异常,都可能以相似的报警形式表现出来。例如,主站报“Working Counter不匹配”,既可能是某个从站掉线,也可能是终端电阻缺失、网线屏蔽层破损、24V辅助电源跌落,甚至只是DC同步参数配置不当。因此,诊断的第一步不是修,而是划分故障域:把报警现象映射到最可能出问题的物理层、拓扑层、配置层或实时性层,再按优先级逐层收敛。
一、报警现象背后的四类故障域
从现场视角看,EtherCAT故障可以归入四个相互耦合的域:
- 物理层域:线缆、连接器、屏蔽、接地、供电。典型现象是CRC错误、丢帧、端口频繁Link Up/Down。
- 拓扑域:分支顺序、终端电阻、环网冗余、耦合器位置。典型现象是某个从站之后的全部从站同时失联。
- 配置域:ESI文件、PDO映射、站地址、DC模式、看门狗时间。典型现象是单个从站报“Invalid Configuration”或过程数据不更新。
- 实时性域:主站周期、抖动、DC同步偏差、CPU负载。典型现象是偶发WKC错误、从站同步丢失、运动轴抖动。
这四个域并非孤立。例如,物理层的CRC错误会直接导致实时性域出现丢帧;配置域的PDO长度错误会让主站误判为从站掉线。因此,现场排查必须建立“现象→域→优先级”的映射关系,而不是线性地从头查到尾。
二、从报警现象反推故障域
现场报警通常来自主站诊断接口或从站LED。以最常见的三类现象为例:
现象一:主站报“Working Counter不匹配”,且错误计数持续增长。WKC是EtherCAT帧被从站正确处理的计数器。如果WKC低于预期,说明至少有一个从站没有正确读写。此时优先看物理层:检查出错从站前后的网线是否松动、屏蔽层是否单端接地、24V电源是否在从站端跌落。若物理层正常,再检查拓扑:该从站是否处于分支末端、终端电阻是否接入。最后才怀疑配置:PDO映射是否与ESI一致。
现象二:某个从站之后的所有从站同时失联。这是典型的拓扑域故障。EtherCAT从站采用“直通”转发机制,一旦某个从站的IN端口没有收到有效帧,它后面的所有从站都会失联。此时应直接定位到最后一个正常从站和第一个失联从站之间的链路,检查该段网线、连接器以及该从站的供电。不要逐个从站去改配置,那会浪费大量时间。
现象三:从站LED显示“SafeOp”或“Error”,但主站仍能扫描到该从站。这通常属于配置域或实时性域。从站进入SafeOp说明它收到了有效帧,但过程数据未正确交换。检查PDO映射长度、DC同步模式是否与主站一致。如果从站偶尔跳到SafeOp又恢复,则要怀疑实时性域:主站周期抖动过大,导致从站看门狗超时。
三、建立可执行的排查优先级
基于上述耦合关系,现场排查应遵循“先物理、后拓扑、再配置、最后实时性”的优先级。原因很简单:物理层和拓扑层的问题会同时影响多个从站,且排查成本最低;配置层和实时性层的问题通常只影响局部,且需要软件工具介入。
具体操作时,可以按以下顺序执行:
- 看LED与Link状态:逐个从站观察RUN、ERR、Link/Activity指示灯。若某从站Link灯灭,直接查该段网线或供电。
- 读主站诊断计数器:关注CRC错误、丢帧、WKC错误计数。若CRC错误集中在某一段,优先换线或检查屏蔽接地。
- 确认拓扑顺序:用主站扫描到的从站列表与设计图纸对比,确认是否有从站顺序错乱或缺失。若缺失从站集中在某一分支之后,检查该分支的终端电阻和耦合器。
- 核对ESI与PDO:确认从站ESI文件版本与主站配置一致,PDO映射长度与从站实际支持一致。若从站进入SafeOp,优先检查DC模式是否匹配。
- 测量实时性指标:用主站工具查看周期抖动、DC偏差、CPU负载。若抖动超过周期10%,需优化主站任务优先级或减少非实时任务干扰。
四、一个典型的现场排查示例
假设一条包装线使用EtherCAT控制12个伺服从站和8个IO从站。运行中主站报“WKC错误”,且第7个从站之后的第8~12从站全部失联。现场排查过程如下:
第一步,观察第7从站LED:RUN灯灭,ERR灯红闪,Link/Activity灯不亮。判断该从站未收到有效帧。第二步,检查第6从站到第7从站的网线:发现连接器卡扣断裂,网线轻微松动。更换网线后,第7从站Link灯亮,但第8~12从站仍失联。第三步,检查第7从站IN端口:发现该从站IN端口指示灯不亮,怀疑从站端口损坏。更换第7从站后,全部从站恢复。第四步,复查主站WKC计数:错误计数停止增长,过程数据正常刷新。
这个案例说明:物理层的一个连接器故障,会以“多个从站失联”的形式表现出来。如果一开始就去改第8~12从站的配置,就会完全偏离方向。
五、故障域划分的现场检查表
为了便于现场快速执行,可以将上述优先级整理为一张检查表。每次故障时按顺序勾选,避免遗漏。
| 优先级 | 故障域 | 检查项 | 判断依据 |
|---|---|---|---|
| 1 | 物理层 | 网线、连接器、屏蔽、24V供电 | Link灯、CRC计数、电源电压 |
| 2 | 拓扑层 | 分支顺序、终端电阻、环网状态 | 从站扫描列表、末端电阻阻值 |
| 3 | 配置层 | ESI版本、PDO映射、站地址、DC模式 | 从站状态机、SafeOp/Op切换 |
| 4 | 实时性层 | 主站周期、抖动、CPU负载 | 周期抖动值、DC偏差、丢帧率 |
需要强调的是,这张表不是死板的流程,而是“默认优先级”。如果现场有明确证据指向某一域,可以直接跳到该域排查。例如,主站日志明确显示“DC sync lost”,就可以优先检查实时性域,而不必从物理层开始。故障域划分的价值在于:它让排查有方向、有顺序、有收敛路径,而不是在多个可能原因之间反复跳跃。