EtherCAT主站与从站的同步机制
EtherCAT 总线之所以能实现微秒级的实时控制,核心在于其独特的分布时钟机制。要实现主站与上百个从站动作的高度一致,不能仅靠主站发号施令,必须让每个从站都拥有一套且精准对齐的“本地时间系统”。以下将拆解同步原理、测量计算方法及具体的配置步骤。
一、 核心原理:分布时钟 (DC)
在传统的运动控制总线中,主站发送同步帧,从站收到后立即动作。但这种“收到即动作”的方式受限于网络传输延迟,各从站收到指令的时间有先有后,无法做到绝对同步。EtherCAT 的解决方案是:通过计算传输延迟,让所有从站的本地时钟与第一个从站(参考时钟)完全对齐,并在同一时刻触发动作。
同步机制主要解决两个问题:一是时钟漂移(晶振误差导致时间走偏),二是传输延迟(物理距离导致信号滞后)。
二、 测量与计算传输延迟
要让从站“对表”,主站必须先知道信号在电缆里跑了多久。EtherCAT 使用一个精确的测量循环来计算这个延迟值。
1. 测量流程
该流程涉及发送和接收本地时间戳的过程,逻辑如下:
2. 延迟计算公式
主站获取时间戳 $t_1$ 至 $t_4$ 后,通过以下公式计算信号在整个回路中的传播延迟时间:
$$ t_{delay} = \frac{(t_4 - t_1) - (t_3 - t_2)}{2} $$
其中:
- $(t_4 - t_1)$ 是主站发送到接收的总耗时。
- $(t_3 - t_2)$ 是从站处理和回送的逻辑耗时(假设处理时间对称)。
- 结果除以 2 得到单程传播延迟。
计算出 $t_{delay}$ 后,系统将其分配到路径上的每一个从站,作为补偿值写入从站寄存器。
三、 配置同步机制的实操步骤
以下是配置 EtherCAT 分布时钟的标准流程。假设使用的是通用的主站配置工具(如 TwinCAT、SOEM 或 Codesys)。
1. 扫描并识别网络拓扑
连接硬件设备并打开配置软件。
点击“扫描”或“Search”按钮,主站将遍历网络,识别所有从站。在拓扑结构图中,确认第一个从站被自动标记为“Reference Clock”(参考时钟)。如果拓扑显示断裂,检查网线连接。
2. 启用分布时钟 (DC)
展开从站列表,选中首个从站(参考时钟)。
在从站属性窗口中,找到 DC (Distributed Clock) 选项卡。
勾选 Enable Distributed Clock。此时,主站会自动将后续所有从站的同步模式设置为跟随参考时钟。
3. 配置同步周期
定位到主站的 EtherCAT 或 Master 设置界面。
设置 Cycle Time(周期时间)。例如,若需要每 1ms 同步一次,则输入 1000 (单位通常为微秒 us)。
设置 Shift Time(偏移时间)。为了防止从站动作时刻与数据更新时刻冲突,通常需要设置 Shift Time。例如,输入 100000 (ns),表示从站将在数据更新后 100 微秒触发 Sync0 信号。
4. 分配同步管理器
对于需要过程数据交换的从站,必须正确配置 Sync Manager (SM)。
进入从站的 PDO Mapping(过程映像映射)配置页面。
确认 SM2 (Outputs, 主站->从站) 和 SM3 (Inputs, 从站->主站) 的类型设置为 Buffered (缓冲模式) 而非 Mailbox。只有缓冲模式下的数据才能通过 DC 机制在指定时刻更新。
5. 写入配置并激活
点击“Download”或“Write”按钮,将上述配置(包括延迟补偿值)写入从站寄存器。
重启主站。主站开始发送 ARMW (Address Read Write) 帧来持续校准从站时钟。
四、 验证同步状态与排查抖动
配置完成后,必须验证同步是否生效。关注两个核心指标:DC Active 状态和 Sync Error(同步误差)。
1. 读取诊断数据
打开在线诊断窗口或变量监控表。
添加以下变量进行监控:
| 变量名称 | 含义 | 正常范围 |
|---|---|---|
DC.Active |
同步激活状态 | 1 (True) |
DC.SyncError |
同步误差抖动 | < ±100 ns |
注意:不同软件变量名可能略有差异,如 DiffTime 或 Jitter。
2. 分析抖动原因
如果监控到的 DC.SyncError 长期大于 1us,说明同步质量差,请按以下步骤排查:
- 检查参考时钟的晶振质量。参考时钟决定了整个网络的时间基准,如果它是首个从站,确保该设备稳定且晶振精度高(ppm 值低)。
- 更换劣质网线。网线质量问题会导致信号传输速率不稳定,直接影响延迟计算的准确性。
- 降低主站 CPU 负载。如果主站无法在严格的周期内处理完 EtherCAT 帧并发送出去,会导致从站接收到的帧间隔不均匀。
3. 调整 Shift Time 优化波形
使用示波器或从站诊断工具观察 SYNC0 信号与 Latch 信号(输入数据锁存时间)的关系。
如果发现数据锁存时刻正处于信号跳变的边缘(极不稳定),微调 Shift Time 参数。
增大 Shift Time 值,使数据锁存点远离 SYNC0 信号的上升沿,直到波形稳定。
五、 高级配置:多周期同步
对于要求极高的应用(如电子凸轮、多轴协同),仅依靠 Sync0 周期可能不够,此时需要引入 Sync1 信号。
- 配置
Sync0周期为1ms(基础任务周期)。 - 配置
Sync1周期除数为4(即Sync1周期为250us)。
这样,从站可以在 Sync0 时刻处理基础逻辑,在 Sync1 时刻执行高精度的位置或电流环计算。需在从站配置文件 (XML) 中 启用 SupportMultipleSyncModes 选项。

暂无评论,快来抢沙发吧!