跳到主要内容

DC — 分布式时钟

DC(Distributed Clock)用于从站间的高精度时钟同步,多轴联动场景必不可少。

核心功能

  • SYNC0/SYNC1 配置 — 分别设置两个同步信号的周期
  • 相位偏移 — 手动设置或自动计算最优偏移
  • 同步窗口监测 — 实时查看同步偏差统计
  • 传播延迟 — 查看各端口接收时间

配置工具:在 DC Tab 中配置同步参数,实时监测同步窗口。右侧面板的 DC 自动偏移 开关启用自动偏移计算。

导出方式:DC 是标配 — 启用了 DC 的从站会自动在导出代码中包含同步配置,无需手动勾选。


SDK 用法

// ── 配置 SYNC0 周期 1ms,自动计算偏移 ──
slave.ConfigureDC(
sync0CycleNs: 1000000,
sync1CycleNs: 0,
shiftNs: null // null = 自动计算最优偏移
);

// ── 手动设置偏移 ──
// slave.ConfigureDC(1000000, 0, shiftNs: 500000);

// ── 查看同步状态 ──
var sync = slave.GetSyncWindowStatus();
if (sync != null)
{
Console.WriteLine($"同步: {(sync.InSync ? "正常" : "异常")}");
Console.WriteLine($"偏差: {sync.DiffNs}ns (min: {sync.MinDiffNs}, max: {sync.MaxDiffNs})");
Console.WriteLine($"不同步次数: {sync.OutOfSyncCount}");
}

// ── 传播延迟 ──
Console.WriteLine($"传播延迟: {slave.PropagationDelay}ns");
Console.WriteLine($"DC 周期: SYNC0={slave.DCCycle0}ns, SYNC1={slave.DCCycle1}ns");

// ── 禁用 DC ──
// slave.DisableDC();

自动偏移计算公式:

Shift = MaxPropagationDelay - Slave.PropagationDelay

导出的代码

DC 配置作为标配自动生成在导出代码中,无需额外勾选:

// ── DC 同步(标配 — 启用了 DC 的从站自动生成)──
slave.ConfigureDC(sync0CycleNs: 1000000, sync1CycleNs: 0, shiftNs: null);

更多

完整 DC API 请参考 C# SDK — Slave DC