3. 分布式时钟核心概念

EtherCAT 的分布式时钟(Distributed Clocks,DC)机制,是它能够实现高精度同步运动控制的关键。要真正理解 DC 调试,必须先厘清四个基础概念:系统时间、参考时钟、从站时钟,以及它们之间如何通过同步原理与漂移补偿保持一致。本节将围绕这四个概念展开,帮助你在后续调试中快速定位“时间不同步”的根因。

一、四个核心时间对象

EtherCAT 网络中每个支持 DC 的从站都拥有一个本地时钟(Local Clock),通常是一个 64 位、纳秒级递增的计数器。它并不是各自为政,而是被统一到一个共同的时间基准上。

  • 系统时间(System Time):整个 EtherCAT 网络统一的时间基准,所有从站和主站都向它对齐。它由参考时钟定义并广播,是运动控制中“同一时刻”的物理含义。
  • 参考时钟(Reference Clock):被选为时间源的那个从站时钟。通常选择网络中第一个支持 DC 的从站,也可由主站指定。参考时钟的本地计数器就是系统时间的“母本”。
  • 从站时钟(Slave Clock / Local Clock):每个从站自己的本地计数器。它存在制造误差和温漂,因此需要被持续校正,使其逼近系统时间。
  • 主站时钟:主站侧也有一个时钟,用于发起同步和计算偏移,但它不直接决定系统时间,而是作为同步过程的发起者与观察者。
核心关系一句话:参考时钟定义系统时间,从站时钟向系统时间对齐,主站负责发起并监控对齐过程。

二、时钟同步原理:偏移测量与传播延迟

同步的本质是让每个从站知道“我和系统时间差多少”。这个差值由两部分组成:初始偏移(Offset)和传播延迟(Propagation Delay)。

EtherCAT 使用一种巧妙的机制:主站发送一个带有时间戳的广播帧,该帧依次经过每个从站。每个从站记录帧到达和离开的时刻,参考时钟记录帧绕行一圈的完整时间。通过比较,可以计算出每个从站相对于参考时钟的传播延迟。随后主站把计算出的偏移量写入各从站的 DC 寄存器,从站据此调整本地时钟。

同步过程通常分为两个阶段:

  1. 测量阶段:测量各从站与参考时钟之间的传播延迟和初始偏移。
  2. 补偿阶段:从站根据偏移量修正本地时钟,并在每个同步周期内持续微调。

同步周期由主站通过 SYNC0/SYNC1 信号或分布式时钟同步脉冲触发,典型周期为 1 ms、500 μs 甚至更短。周期越短,对时钟稳定性和补偿算法要求越高。

三、漂移补偿机制:为什么时钟会“跑偏”

即使初始对齐完成,从站时钟仍会因晶振频率差异、温度变化、供电波动而逐渐偏离系统时间,这种现象称为时钟漂移(Clock Drift)。漂移是持续存在的,因此补偿也必须是持续的。

漂移补偿的核心思路是:不直接“跳变”本地时间,而是通过调整时钟步进速率来缓慢逼近系统时间。如果直接跳变,会导致控制周期抖动甚至位置突变;而速率微调可以让时间平滑收敛。

具体来说,从站会根据当前偏移量计算一个修正系数,写入 DC 的时钟控制寄存器,使本地时钟的计数速率略微加快或减慢。偏移大时修正幅度大,偏移小时修正幅度小,最终稳定在允许误差范围内。

调试经验:如果发现同步误差长期无法收敛,优先检查晶振质量、同步周期设置和网络负载,而不是反复调整补偿参数。

四、同步过程可视化

下图展示了参考时钟、系统时间与多个从站时钟之间的同步与漂移补偿关系。参考时钟作为时间源,从站时钟通过偏移测量和速率补偿逐步对齐系统时间。

EtherCAT 分布式时钟同步与漂移补偿关系 参考时钟 Reference Clock 定义系统时间基准 系统时间 System Time 全网统一时间基准 主站 Master 发起同步与监控 定义 同步 从站时钟(Slave Clock) 从站 1 本地时钟 + 偏移 速率补偿 从站 2 本地时钟 + 偏移 速率补偿 从站 n 本地时钟 + 偏移 速率补偿 偏移测量 + 速率补偿 偏移测量 + 速率补偿 漂移补偿机制 晶振频差 / 温漂 → 计算修正系数 → 调整时钟步进速率 → 平滑逼近系统时间 同步周期由 SYNC0/SYNC1 触发,典型值 1 ms / 500 μs / 250 μs

五、关键参数与调试清单

在 TwinCAT、SOEM 或 IgH EtherCAT Master 中调试 DC 时,以下参数和检查项最常用:

参数 / 检查项 含义 典型值 / 建议
DC Sync Cycle 同步周期 1 ms / 500 μs,需与主站任务周期匹配
DC Start Time DC 启动时刻 通常设为 0 或主站指定偏移
System Time Offset 系统时间偏移 由主站计算并写入从站
Propagation Delay 传播延迟 由测量阶段自动计算
Sync Window 同步窗口 建议小于同步周期的 10%
Clock Drift 时钟漂移 长期应收敛,不持续增大

六、常见误区与复盘

误区一:认为同步一次就永久有效。 时钟漂移是持续过程,必须周期性补偿。停止补偿后,误差会随时间累积。
误区二:把参考时钟选在通信路径末端。 参考时钟应尽量靠近主站或选在拓扑稳定位置,否则传播延迟测量误差会放大。
误区三:同步周期设置过短。 周期越短,对晶振和网络抖动越敏感。若从站晶振精度不足,过短周期反而导致同步窗口频繁超限。

复盘时建议按以下顺序排查:先确认参考时钟是否正常、系统时间是否稳定;再检查传播延迟测量是否合理;最后观察漂移补偿是否收敛。多数“同步失败”并非算法问题,而是参考时钟选择不当、同步周期与任务周期不匹配,或网络中存在不支持 DC 的从站导致测量链路断裂。

# 以 IgH EtherCAT Master 为例,查看 DC 状态
ethercat dc
# 输出示例:
# Slave 0: 参考时钟, 系统时间偏移 0 ns
# Slave 1: 偏移 120 ns, 传播延迟 340 ns, 漂移补偿 正常
# Slave 2: 偏移 980 ns, 传播延迟 510 ns, 漂移补偿 收敛中

理解系统时间、参考时钟、从站时钟三者的关系,以及偏移测量与漂移补偿的分工,是后续进行 DC 调试、同步窗口分析和运动控制时序优化的基础。只有把“时间从哪来、差多少、怎么补”这三件事弄清楚,才能在出现同步异常时快速定位到具体环节。