3. TwinCAT冗余架构与工作原理

TwinCAT 冗余控制系统的核心目标,是在主控制器发生故障时,由备用控制器在可接受的时间内接管过程控制,使被控对象不中断或仅出现极短扰动。要理解这一行为,需要同时看清四件事:主备角色如何定义、同步机制传递什么、状态机如何迁移、切换逻辑依据什么条件触发。它们共同决定了系统拓扑与可用性边界。

主备角色与系统拓扑

在 TwinCAT 冗余架构中,通常由两台工业 PC 或嵌入式控制器组成冗余对,分别称为 Primary(主)与 Secondary(备)。两者运行相同的 TwinCAT 工程与 PLC 程序,但同一时刻只有主站拥有对现场总线的输出控制权。典型拓扑如下:两台控制器通过独立的冗余同步链路互联,同时各自接入同一过程网络(如 EtherCAT 环网或双网冗余),I/O 层可共享同一组远程站,也可采用双端口冗余从站。

主站负责执行 PLC 任务、刷新 I/O 映像、向从站下发输出;备站持续接收主站同步数据,保持自身过程映像与主站一致,但不驱动输出。这种“热备”模式与冷备的区别在于:备站始终处于可立即接管的运行态,而非等待启动。

TwinCAT 冗余系统拓扑与同步链路 Primary 主控制器 PLC 任务执行 · 输出使能 过程映像 A 状态:RUN / PRIMARY Secondary 备控制器 PLC 任务执行 · 输出禁止 过程映像 B(同步跟随) 状态:RUN / STANDBY 冗余同步链路(心跳 + 过程数据 + 状态) 周期:1~10 ms 可配 过程网络 / EtherCAT 主站环网 远程 I/O 从站 输入采集 · 输出执行 主站输出使能 备站输出禁止 同步链路 过程网络

同步机制:同步什么、以什么节奏同步

TwinCAT 冗余同步并非简单复制整个内存,而是围绕“过程映像一致性”设计。主站每个 PLC 周期结束后,将输入映像、输出映像、关键变量、任务状态与时间戳打包,通过同步链路发送给备站。备站接收后更新本地过程映像,并继续运行自己的 PLC 任务,但输出被禁止。这样做的意义是:备站始终“知道”主站当前看到什么、准备输出什么,一旦接管,无需重新初始化过程数据。

同步周期通常与 PLC 任务周期一致或为其整数倍。例如 PLC 任务周期为 2 ms,同步周期可设为 2 ms 或 4 ms。同步周期越短,主备数据偏差越小,切换时过程扰动越小,但同步链路负载越高。工程上常取 2~10 ms,需结合 CPU 负载与网络带宽权衡。同步数据量取决于过程映像大小,若 I/O 点数为 2000 点、每点 2 字节,则单次同步约 4 KB,加上状态与校验字段,实际约 5~6 KB,对千兆同步链路而言压力很小。

同步链路建议独立于过程网络,使用专用网口或独立 VLAN,避免过程流量拥塞导致同步超时误判。

状态机:主备控制器的运行状态迁移

冗余控制器内部维护一个状态机,典型状态包括:INIT(初始化)、SYNC(同步建立中)、PRIMARY(主运行)、STANDBY(备运行)、TAKEOVER(接管中)、FAULT(故障)。上电后两台控制器先进入 INIT,完成工程加载与网络配置;随后尝试建立同步,进入 SYNC;同步成功后,先启动的一方或优先级高的一方进入 PRIMARY,另一方进入 STANDBY。当主站故障或同步中断超过阈值,备站从 STANDBY 迁移到 TAKEOVER,完成输出使能后进入 PRIMARY。原主站恢复后,通常进入 STANDBY 或 SYNC,等待下一次切换机会,而不是立即抢回主角色。

状态迁移的关键判断量包括:心跳超时、同步数据校验失败、PLC 任务看门狗超时、过程网络断线、硬件故障。不同故障对应不同迁移路径,例如仅同步链路断而过程网络正常时,主站继续运行,备站因失去同步而进入 FAULT 或保持 STANDBY 但标记“不同步”,此时若主站再故障,备站接管可能带来数据偏差,因此部分系统会禁止此类接管。

切换逻辑与切换时间

切换逻辑的核心是“故障检测 + 接管决策 + 输出使能”三步。故障检测依赖心跳与同步超时,典型超时阈值为 3~5 个同步周期。例如同步周期 4 ms,超时阈值设为 20 ms,即连续 5 个周期未收到有效同步帧即判定主站失效。接管决策由备站本地状态机完成,无需人工干预。输出使能是切换的最后一步,备站将本地过程映像中的输出值下发到 I/O,同时通知过程网络更新主站角色。

切换时间由三部分组成:故障检测时间、状态迁移时间、输出刷新时间。以 4 ms 同步周期、20 ms 超时为例,检测约 20 ms,状态迁移与输出使能约 5~15 ms,总切换时间约 25~35 ms。对于大多数过程控制,这一量级可接受;但对于高速运动控制,可能需要更短同步周期与更小超时阈值,代价是误切换风险上升。因此切换阈值需结合工艺允许中断时间设定,而非一味求快。

工程配置要点与验证方法

在 TwinCAT 中配置冗余,通常需要:为两台控制器分配固定 IP 与冗余角色;在工程中启用冗余功能并指定同步网口;设置同步周期、超时阈值、切换优先级;将需要同步的变量加入同步列表,避免全量同步带来不必要负载;配置过程网络的双网冗余或环网冗余,确保单点断线不导致过程网络失效。

验证时,可通过手动断开主站电源或拔掉同步线,观察备站是否在预期时间内接管,并记录切换前后关键过程变量的偏差。若偏差在工艺允许范围内且输出无中断,说明同步与切换逻辑有效。若切换后出现输出跳变,应检查同步变量是否完整、输出使能时序是否合理、过程网络是否在切换瞬间出现短暂断链。

备站接管后,原主站若恢复,不应自动抢回主角色,否则可能引起反复切换。应配置为“恢复后进入 STANDBY”,由人工或维护窗口决定是否回切。

理解主备角色、同步机制、状态机与切换逻辑,是后续设计冗余程序、规划网络与评估可用性的基础。冗余不是简单“两台机器”,而是一套以过程映像一致性为中心、以状态迁移为骨架、以切换阈值为边界的运行机制。