DC — 分布式时钟
DC (Distributed Clock) 用于从站间的高精度时钟同步, 多轴联动场景必不可少。
功能概览
| 能力 | 说明 |
|---|---|
| DcSyncMode 下拉 | FreeRun / SmSynchron / DcSynchron / DcSynchron01 四档同步模式选择 |
| ESI 自动判断 | 工具自动从 ESI 描述识别 DC 能力, 支持的从站默认启用 DC |
| SYNC0/SYNC1 配置 | 分别设置两个同步信号的周期 |
| 相位偏移 | 手动设置或自动计算最优偏移 |
| 主时钟漂移补偿 | 启用后由主站持续补偿主从时钟漂移 |
| 主时钟时间显示 | 64-bit 纳秒数实时刷新 |
| 参考时钟从站索引 | 当前被选为参考时钟的从站编号实时显示 |
| 同步窗口监测 | 实时查看同步偏差统计 |
| 传播延迟 | 查看各端口接收时间 |
DC 是 标配 — 启用了 DC 的从站会自动在导出代码中包含同步配置, 无需手动勾选。
快速开始
- 进入 配置工具的 DC Tab
- 通过 DcSyncMode 下拉选择模式 (常用: DcSynchron, SYNC0 单脉冲)
- 设置 SYNC0 周期 (如 1 ms = 1000000 ns), 留空相位偏移让工具自动计算
- 在右侧面板启用 DriftCompensation (主时钟漂移补偿)
- 顶部状态栏观察 参考时钟从站索引 与 主时钟时间, 确认参考时钟已选定
- 切换到 SYNC 监测面板, 观察 同步偏差 在容许窗口内
同步模式说明
| 模式 | 含义 |
|---|---|
| FreeRun | 自由运行, 不使用 DC |
| SmSynchron | SyncManager 触发, 不使用 DC |
| DcSynchron | DC SYNC0 同步 |
| DcSynchron01 | DC SYNC0 + SYNC1 双信号同步 |
自动偏移公式
工具按以下公式自动计算每个从站的相位偏移:
Shift = MaxPropagationDelay - Slave.PropagationDelay
让所有从站的 SYNC 信号在同一物理时刻触发, 抵消传播延迟。
同步窗口监测
DC Tab 右侧面板实时显示每个从站的同步状态:
- InSync — 是否在同步窗口内 (true/false)
- DiffNs — 当前偏差 (纳秒)
- MinDiffNs / MaxDiffNs — 历史最小/最大偏差
- OutOfSyncCount — 不同步累计次数
如启用了 DC, 切换到 诊断 Tab → DC 子页可查看跨从站的同步窗口汇总。