当工艺不能停车 — 炼厂的原油装置、制药的批次反应器、电厂的汽轮机 — 控制它的 PLC 或 PAC 也不能停。在这些应用中,单个 CPU 失效意味着每小时数以百万计的生产损失,或者更糟,发生安全事故。热备 CPU 冗余就是防止这种情况的架构:两个完全相同的 CPU 同步运行,主 CPU 失效时备 CPU 在毫秒级接管。本文解释同步故障切换如何实现、切换时间由什么决定,以及热备何时优于其他替代方案。
什么是热备 CPU 冗余?
热备是工业控制器的三种冗余架构之一。主 CPU 执行控制程序并驱动输出,而副(备用)CPU 并行运行同一程序,并与主 CPU 的内部状态持续同步 — 包括程序扫描数据、定时器/计数器值和通信缓冲区。主 CPU 失效时,备用 CPU 在一到两个程序扫描周期内接管,通常为 10–50 ms,且无需重新初始化应用。这与温备有本质区别:温备的备用机加载了程序但不加载实时数据;冷备则是备用 CPU 平时断电,需要时才上电 — 这两者都会带来数秒的重启延迟,可能触发工艺联锁。
冗余 CPU 之间如何实现同步?
同步是核心工程难题。主 CPU 在每个程序扫描之后,通过专用高速链路把它的过程映像 — 输入、输出、内部标志、数据块和诊断状态 — 传送给备用 CPU。该链路通常是光纤连接(用于电气隔离和抗干扰),速率在 100 Mbps 到 1 Gbps 之间。在每个扫描周期开始时,两个 CPU 各自独立读取自己的输入模块 — 它们不共用输入卡。随后主 CPU 执行程序、刷新输出,并把更新后的内存映像发送给备用 CPU。备用 CPU 将这一映像与自己计算的结果比对。若一致,则确认同步。若主 CPU 失效 — 通过心跳超时判定,通常小于 20 ms — 备用 CPU 即接管输出总线,并从最后一个同步数据点继续执行。
切换时间由什么决定?
切换时间是三段延迟之和:故障检测加角色转换加输出刷新。故障检测采用 CPU 之间的看门狗心跳 — 若主 CPU 连续丢失 2–3 个心跳(间隔保守设定为 5–15 ms),即判定其失效。角色转换包括备用 CPU 使能其输出驱动并取得总线主控权,通常为 1–5 ms。输出刷新延迟取决于 I/O 是本地背板还是分布在现场总线上;分布式 PROFINET 或 EtherNet/IP I/O 会增加 1–2 个网络周期。要实现无扰切换的总时间 — 即工艺过程无法分辨切换与正常运行 — 总延迟须小于一个过程安全时间,对大多数连续过程而言是 100–500 ms。像 Emerson PACSystems RX3i CPL410 这样的现代热备系统可在 50 ms 以内完成切换,完全落在炼油、电力和化工应用的预算之内。
热备何时优于其他冗余方案?
热备并非实现控制器可用性的唯一途径,而且它很昂贵 — CPU 硬件成本翻倍,还要加上专用的同步模块。其他方案各有其适用场合:
- 单 CPU 上的软件冗余 — 单个处理器内的任务级冗余,适用于非关键故障(由 ECC 检测到的内存损坏、看门狗触发的任务重启),但无法承受 CPU 硬件故障。对包装机和离散装配而言足够。
- 三重模件冗余(TMR) — 三个 CPU,对每一路输出做三取二表决。常见于要求 SIL 3 的安全停车系统(SIS)。只有当应用需要持续的校验测试覆盖时,额外的 CPU 成本和表决复杂性才值得。
- 带维护旁路的温备 — 常见于允许 30 秒重启的供水/污水处理场合。主 CPU 单独运行,备用 CPU 定期接收程序更新。重启需要重新读取所有输入,并可能需要重新回零运动轴。
当工艺连一个扫描周期的中断都无法容忍时,热备才体现出价值 — 连续化学反应、汽轮发电机组、钢铁连铸,以及温度超限就会毁掉整批物料的制药冻干循环。对这些场合而言,增加的硬件成本与一次非计划停车的代价相比微不足道。
无扰切换在实践中究竟意味着什么?
无扰切换意味着在切换期间过程变量不偏离正常控制带。实现它需要三个条件:备用 CPU 必须已经持有当前的 PID 积分项(接管时不重置为零),输出模块在过渡期间必须保持其最后状态(不掉到零),通往 HMI 和 SCADA 的网络连接必须重新建立而不发生标签超时。备用 CPU 还必须继承主 CPU 的通信角色 — Modbus TCP 服务器 ID、OPC UA 会话令牌和 PROFINET 设备名 — 以便外部系统继续寻址同一个逻辑控制器。大多数现代冗余架构通过虚拟 MAC 地址或在两个物理 CPU 之间漂移的共享 IP 来实现这一点,对连接的设备完全透明。
支持冗余的 Emerson PACSystems RX3i CPL410 提供 50 ms 以内切换的热备功能,以及针对 Modbus TCP 和 OPC UA 的虚拟 IP 故障切换 — 这是无法容忍单扫描中断的连续工艺的参考架构。浏览我们的 PAC 产品目录 了解更多高可用控制器。


