1. EtherCAT从站设备扫描与拓扑识别
扫描前的网络准备与工具选择
EtherCAT 从站扫描的本质是主站通过广播寻址读取每个从站的 ESC(EtherCAT Slave Controller) 寄存器,再沿端口逐级发现下游设备。开始扫描前需要确认三件事:
- 物理连接:主站网卡(或专用 EtherCAT 主站口)接入第一个从站的
IN端口,从站之间按OUT → IN顺序级联,末端从站OUT端口悬空或接终端。 - 链路状态:网卡 Link 灯常亮,从站
RUN/ERR指示灯无红色常亮。 - 主站工具:常用
ethercat命令行工具(IgH EtherCAT Master)、TwinCAT XAE 扫描、或 SOEM 的slaveinfo示例。本例以 IgHethercat工具链为例,其扫描逻辑与 SOEM 一致。
扫描命令与拓扑识别原理
IgH 主站启动后,执行以下命令完成一次完整扫描:
# 1. 确认主站已加载并识别网卡
ethercat master
# 2. 扫描总线,列出所有从站及其位置
ethercat slaves
# 3. 查看拓扑结构(端口连接关系)
ethercat topology
# 4. 查看从站详细信息(含端口、状态、身份)
ethercat slaves -v
扫描过程中,主站依次执行:广播读 0x0130(DL 状态)确认链路 → 读 0x0000~0x0007(站地址与端口配置)→ 按端口 0x0001~0x0004 逐级发现下游从站。每个从站被分配一个自动增量地址(按发现顺序),同时记录其端口拓扑(哪个端口连接了下一个从站)。
扫描结果中的
Position 是自动增量地址,Port 字段描述该从站的端口连接状态(如 A=IN, B=OUT, C=返回)。拓扑识别依赖这些端口信息重建物理连接顺序。拓扑结构可视化
下图展示一个典型 4 从站线型拓扑的扫描结果与端口连接关系。主站从站 0 的 IN 端口进入,站 0 的 OUT 连接站 1 的 IN,依次级联,站 3 的 OUT 悬空(末端)。每个从站标注了扫描得到的自动增量地址、厂商 ID 和端口状态。
扫描结果判读与常见异常
执行 ethercat slaves 后,正常输出应列出所有从站,每行包含 Position、State、Flag 和 Name。若扫描结果与预期不符,按以下方向排查:
| 现象 | 可能原因 | 检查点 |
|---|---|---|
| 只扫描到部分从站 | 中间从站 OUT 端口未连接或线缆故障 | 检查每个从站 OUT→IN 链路,观察端口 Link 灯 |
| 从站 State 停留在 INIT | EEPROM 未加载或 SII 信息缺失 | 执行 ethercat slaves -v 查看 AL Status Code |
| Position 顺序与物理顺序不一致 | 拓扑中存在分支或环回 | 执行 ethercat topology 查看端口连接图 |
| 扫描不到任何从站 | 主站网卡未绑定或 Link 未建立 | ethercat master 确认主站状态,检查网卡 Link |
扫描完成后,建议保存拓扑快照:
ethercat slaves -v > topology_snapshot.txt,作为后续配置和排障的基线参考。拓扑识别是 EtherCAT 网络调试的第一步,后续的 PDO 映射、DC 同步和状态机初始化都依赖正确的从站顺序和端口关系。