4. EtherCAT主站配置与拓扑优化
在TwinCAT XAE中配置EtherCAT主站,核心工作可以概括为三件事:让主站正确识别从站、让分布式时钟(DC)同步模式与从站能力匹配、让拓扑结构与通信周期目标相匹配。这三件事并非彼此独立——拓扑决定了信号经过的跳数和分支深度,跳数与分支又直接影响DC同步误差和周期抖动。因此,配置与优化必须放在一起考虑。
一、主站配置与从站扫描
在TwinCAT XAE中新建工程后,首先在I/O配置树中右键“Devices”,选择“Scan Devices”,系统会扫描本地网卡并列出可用的EtherCAT主站设备。选中目标网卡(例如Intel I210或I219)后,TwinCAT会将其作为EtherCAT主站实例。此时需要注意:主站网卡应独占使用,避免与Windows网络协议栈共享,否则会引入不可预测的延迟。
主站建立后,右键主站设备选择“Scan Boxes”,TwinCAT会依次读取从站的EEPROM信息,识别厂商ID、产品码、修订号和站别名。扫描完成后,从站会以树形结构出现在配置树中。若某个从站未被识别,常见原因是ESI(EtherCAT Slave Information)XML文件未安装,此时需要将从站厂商提供的XML复制到 TwinCAT\3.1\Config\Io\EtherCAT 目录并重启XAE。
扫描完成后,建议为每个从站设置站别名(Station Alias),而不是依赖上电顺序自动寻址。站别名的优势在于:当某个从站故障更换后,只要新从站写入相同别名,主站无需重新扫描即可恢复原有拓扑映射。站别名通过从站EEPROM写入,可在“EtherCAT”选项卡的“Station Alias”中设置。
二、DC同步模式设置
分布式时钟(Distributed Clocks,DC)是EtherCAT实现高精度同步的关键机制。其原理是:主站选择一个从站作为参考时钟(Reference Clock),通常选择拓扑中第一个支持DC的从站;其余从站作为从时钟,通过测量本地时钟与参考时钟的偏移和漂移,逐步调整本地时钟,使所有从站时钟与参考时钟对齐。
在TwinCAT中设置DC同步模式,需要进入主站的“EtherCAT”选项卡,在“Distributed Clocks”区域选择模式。常见选项包括:
- DC Off:不使用分布式时钟,各从站独立运行,适用于对同步无要求的场合。
- DC Sync0:从站以SYNC0信号作为周期中断,主站发送过程数据后,从站在SYNC0触发时刻锁存输出。这是最常用的同步模式。
- DC Sync1:在SYNC0基础上增加SYNC1,用于需要两个不同相位同步信号的场合,例如某些伺服驱动器的位置锁存与电流环分别同步。
选择DC Sync0后,需要设置同步周期(Sync0 Cycle Time),该值通常与主站任务周期一致。例如主站任务周期为1 ms,则Sync0周期设为1 ms。同时需要设置“Sync0 Shift”,即SYNC0信号相对于主站周期开始的偏移时间,用于补偿从站处理延迟。若从站手册给出“Output Delay”或“Input Delay”参数,可据此计算Shift值。
DC同步是否生效,可以通过观察从站的“DC Status”判断。在TwinCAT的从站“EtherCAT”选项卡中,若“DC Status”显示“Sync0”且“Sync0 Time”稳定,说明同步已建立。若显示“No Sync”或“Sync Error”,则需检查参考时钟选择、Sync0周期设置以及从站是否支持DC。
三、拓扑结构对通信周期的影响
EtherCAT采用“飞读飞写”机制:主站发送一个以太网帧,该帧依次经过所有从站,每个从站在帧经过时读取自己的输出数据并写入输入数据,帧遍历完所有从站后返回主站。因此,帧的往返时间与从站数量、拓扑跳数以及每个从站的转发延迟直接相关。
在线型级联拓扑中,帧依次经过每个从站,跳数等于从站数量。假设每个从站的转发延迟约为1 μs,4个从站的总延迟约为4 μs,加上线路传播延迟(约5 ns/m),对于100 m线缆,总延迟约0.5 μs。因此,线型拓扑的周期下限主要受从站数量和帧长限制。在1 ms周期下,线型拓扑通常可以稳定运行。
在分支拓扑中,帧需要经过耦合器进入分支,再返回耦合器继续向下。分支深度增加会引入额外的跳数和耦合器处理延迟。例如,一个带两个分支的耦合器,每个分支有2个从站,则帧需要经过:主站→耦合器→分支1从站1→分支1从站2→耦合器→分支2从站1→分支2从站2→耦合器→主站。总跳数约为7跳,延迟约7 μs。若分支深度继续增加,延迟会线性增长。因此,分支拓扑更适合2 ms或更长的周期。
实际调试中,可以通过TwinCAT的“EtherCAT Diagnostics”查看“Frame Time”和“Working Counter”来判断拓扑是否满足周期要求。若Frame Time接近或超过任务周期的80%,则应考虑减少从站数量、缩短线缆长度或改为线型拓扑。
四、多从站级联与分支拓扑调试任务
以下以一个教学示例说明调试过程。假设目标拓扑为:主站→耦合器→分支1(2个从站)→分支2(2个从站),任务周期设为2 ms,DC Sync0周期2 ms。
第一步,按实际物理连接搭建拓扑,确保每个从站的IN端口连接上一级的OUT端口,分支耦合器的分支端口正确连接。第二步,在TwinCAT中扫描从站,确认所有从站均被识别,并检查站别名是否与规划一致。第三步,设置DC Sync0,参考时钟选择耦合器后的第一个从站,Sync0周期设为2 ms,Shift值根据从站手册的Output Delay设置,例如设为200 μs。第四步,激活配置,观察“DC Status”是否显示“Sync0”。第五步,在“EtherCAT Diagnostics”中查看Frame Time,若Frame Time约为15 μs,远小于2 ms周期的80%(即1.6 ms),则拓扑满足要求。
若调试中发现某个从站“Working Counter”异常,通常说明该从站未正确进入OP状态。此时应检查:从站是否支持DC、Sync0周期是否与从站能力匹配、站别名是否冲突、线缆是否接触良好。若Frame Time偏大,可尝试减少分支深度或缩短线缆。
五、配置检查清单
| 检查项 | 预期值/状态 | 异常处理 |
|---|---|---|
| 主站网卡独占 | 已禁用Windows共享 | 在网卡属性中取消TCP/IP绑定 |
| 从站扫描 | 全部识别,无黄色问号 | 安装对应ESI XML文件 |
| 站别名 | 与规划一致,无冲突 | 重新写入别名并重启从站 |
| DC模式 | Sync0,周期与任务一致 | 检查从站DC支持能力 |
| DC Status | Sync0,Sync0 Time稳定 | 检查参考时钟和Shift值 |
| Frame Time | < 任务周期的80% | 减少从站或优化拓扑 |
| Working Counter | 所有从站正常 | 检查线缆和从站状态 |
完成上述配置与检查后,主站即可在设定的周期内稳定运行。若后续需要增加从站,应重新评估Frame Time和DC同步误差,必要时调整任务周期或拓扑结构。拓扑优化不是一次性的工作,而是随着设备增减持续进行的工程判断。