EtherCAT 实时性揭秘:DC 同步与抖动
EtherCAT 的实时性优势来自两个机制:处理帧"飞速穿越"(on-the-fly)从站,以及分布式时钟(DC)把各从站的采样时刻对齐到同一时基。但必须分清两件事:DC 解决的是各轴之间的时刻一致性,它无法缩短传感器自身的测量耗时。磁致伸缩位移传感器的更新率由波导丝上扭转波的传播时间决定,量程越长越慢——这是系统实时性的物理下限,任何总线都突破不了。本文拆解 DC 的工作原理与抖动来源,产品对应 197 EtherCAT 系列。
处理帧穿越:EtherCAT 快在哪里
传统以太网从站需要接收整帧、解析、再构造应答帧发出,每一跳都产生完整的协议栈延迟。EtherCAT 从站芯片则在帧穿过自己的同时读走属于自己的输出数据、写入自己的输入数据,帧继续向下游传递,链路末端返回主站。整条链路一个周期只跑一帧(或少数几帧),单站增加的延迟是硬件级的、纳秒到亚微秒量级。
这解释了为什么 EtherCAT 的周期可以做得很短,而且周期随节点数增加的膨胀很小——与 Profibus 那种"站数越多轮询周期越长"的主从机制形成鲜明对比,对比见 总线型全系对比。
DC 分布式时钟:对齐的是"时刻",不是"速度"
DC 的工作分三步:
- 选定参考时钟:网络中第一个支持 DC 的从站的本地时钟被指定为系统时基。
- 测量传播延迟:主站在初始化阶段测量报文到达各从站的时间差,为每个从站计算并写入固定的延迟补偿值。链路越长的从站补偿值越大,从而抵消物理传播差异。
- 周期漂移补偿:各从站晶振频率存在微小差异,运行中会缓慢分离。主站周期性广播参考时钟值,从站据此微调本地时钟,把漂移持续拉回。
结果是:所有从站可以在同一个系统时刻触发采样中断,而不是"收到报文时才采样"。这一点对多轴同步至关重要——若各轴按报文到达顺序采样,链路靠前与靠后的从站采样时刻天然存在偏差,运动中就转化为位置误差。多轴系统的整体配置见 多轴同步选型:一根总线带多少轴才稳。
抖动来源与对策
| 抖动/延迟来源 | 性质 | DC 能否消除 | 对策 |
|---|---|---|---|
| 链路传播延迟差异 | 固定偏差 | 能,初始化时补偿 | 确保 DC 已启用且初始化成功 |
| 从站晶振漂移 | 缓慢漂移 | 能,周期补偿 | 保持 DC 周期补偿运行,勿设为 FreeRun |
| 主站任务周期抖动 | 随机抖动 | 不能 | 主站用实时内核/实时任务,避免非实时系统跑控制周期 |
| 传感器测量耗时(更新率) | 物理耗时,随量程变化 | 不能 | 周期 ≥ 更新率;多轴尽量选同量程 |
| 各轴量程不同导致的延迟差 | 系统性偏差 | 不能 | 同步轴统一量程,或在控制侧做延迟补偿 |
| 网线质量/接插件不良 | 随机丢帧重传 | 不能 | 查 CRC 错误计数器,更换问题网段 |
控制周期怎么设:三条硬约束
第一,周期不得短于传感器更新率。磁致伸缩的一次测量必须等扭转波走完全程,更新率随量程变化(较短量程约 0.5 ms 量级,超长量程可达数毫秒)。若把 EtherCAT 周期设为远小于更新率的值,主站会连续多个周期读到同一个位置值,控制器的微分环节会算出"速度为零",随后在数值突变时算出一个虚假的速度尖峰——表现为闭环抖动。这类问题常被误判为传感器精度不足,实则是周期配置错误。响应时间的匹配方法见 响应时间/刷新率怎么和控制周期匹配。
第二,多轴同步应统一量程。不同量程的传感器测量耗时不同,同一时刻触发采样,得到的却是"不同新鲜度"的数据。DC 对齐的是触发时刻,补不回测量耗时差。若机械上必须使用不同量程,应在控制侧按各轴更新率做延迟补偿。
第三,别把分辨率档位当成实时性指标。分辨率档位(1 / 2 / 5 / 10 / 20 / 50 / 100 μm)决定的是最小可分辨增量,与更新率是两回事。过高的分辨率反而会把噪声一并放大显示,在高刷新率下呈现"读数抖动"。分辨率与精度的关系见 分辨率、重复精度、非线性度的区别。
验证同步是否真的生效
组态里勾了 DC 不等于 DC 在工作。可执行的验证手段有:查看主站的 DC 同步偏差监视量(多数主站提供参考时钟与各从站的偏差统计),确认其收敛且稳定;确认所有从站均进入 OP 状态而非停在 SAFE-OP;观察 CRC 错误计数器(先清零再看增量)确认链路无重传。配置步骤与状态机细节见 EtherCAT 从站配置:XML 与分布式时钟。
断电与上电场景下的位置恢复行为见 总线型断电保持与同步刷新机制;产品参数见 197 EtherCAT 系列详解;总线接入通用规范见 总线实操指南。
常见问题
Q:EtherCAT 为什么比传统以太网快?
传统从站需接收整帧、解析后再构造应答帧,每跳都有完整协议栈延迟。EtherCAT 从站芯片在帧穿过自身的同时读走输出、写入输入数据,单站增加的延迟是硬件级的,且周期随节点数增加的膨胀很小。
Q:DC 同步能提高传感器的响应速度吗?
不能。DC 对齐的是各从站的采样时刻,解决的是轴与轴之间的时间一致性,无法缩短传感器自身的测量耗时。磁致伸缩的更新率由扭转波传播时间决定,是系统实时性的物理下限。
Q:多轴同步为什么建议选相同量程?
量程不同则单次测量耗时不同,即使同一时刻触发采样,各轴数据的新鲜度也不一致。DC 只能对齐触发时刻,补不回测量耗时差。机械上必须用不同量程时,应在控制侧按各轴更新率做延迟补偿。
Q:闭环出现抖动是传感器精度不够吗?
不一定。若 EtherCAT 周期短于传感器更新率,主站会连续多个周期读到同一位置值,微分环节算出速度为零,随后在数值突变时算出虚假速度尖峰,表现为闭环抖动。应先核对周期与更新率的关系。
Q:怎么确认 DC 真的在工作?
组态里勾选不等于生效。应查看主站提供的 DC 同步偏差监视量是否收敛稳定,确认所有从站均进入 OP 而非停在 SAFE-OP,并把 CRC 错误计数器清零后观察增量以确认链路无重传。




