启用冗余热备 (IDE 配置)
本文档说明如何在 Darra PLC IDE 中为一对控制器启用冗余热备 (主 / 备), 包括角色分配、对等机连接、心跳测试、授权校验、初始状态同步, 以及运行阶段的状态监控与强制切换操作。
适用范围: 同一工程, 两台独立部署的 Darra PLC 节点, 通过专用同步链路互联。
1. 前置条件
- 两台节点均已安装同版本 Darra PLC Service, 并保持时钟同步 (NTP/PTP)
- 两台节点之间存在独立同步链路 (推荐网卡直连或专用交换机, 不与业务流量共享)
- 两台节点均已激活 冗余功能授权 (参见本文 "授权校验" 一节)
- 工程已在 IDE 中编译通过, 且已经在主机侧部署成功
1.5 网口规划 (推荐 4 NIC 拓扑)
冗余双机的每台工控机推荐 4 个网口,按角色分配:
| 网口 | 用途 | 速率 | 连接方式 | 是否必需 |
|---|---|---|---|---|
| NIC-1 | EtherCAT 主网口 | 千兆 (Intel I210/I350) | 接 EtherCAT 从站链头 | 有伺服/机器人时必需 |
| NIC-2 | EtherCAT 备网口 | 千兆 (Intel I210/I350) | 接从站链尾反向 (电缆冗余) | 可选, 提升可靠性 |
| NIC-3 | 冗余同步 | 万兆 (Intel X710) | 直连对端机 NIC-3 (交叉网线) | 必需 |
| NIC-4 | 管理 / HMI / MES | 千兆 | 接企业交换机 | 可选, 少网口时可与同步共用 |
接线示意
┌──────── 工控机 A (主) ─────────┐ ┌──────── 工控机 B (备) ─────────┐
│ NIC-1 ──────────────┐ │ │ ┌──────────── NIC-1 │
│ NIC-2 ────────────┐ │ │ │ │ ┌────────── NIC-2 │
│ │ │ │ │ │ │ │
│ NIC-3 ══════════════════════════════════════ NIC-3 (万兆直连) │
│ │ │ │ │ │ │ │
│ NIC-4 ────→ 企业交换机 │ │ 企业交换机 ←──── NIC-4 │
└────────────────────────────────┘ └────────────────────────────────┘
│ │ │ │
┌─────┘ └──── 从站1 ─ ... ─ 从站N ─┘ └───┐
│ │
│ (主线: NIC-1 A → 从站1 → ... → 从站N) │
│ (备线: NIC-2 A ← 从站N ← ... ← 从站1) │
└─────────────────────────────────────────┘
场景选择
| 应用场景 | NIC-1 | NIC-2 | NIC-3 | NIC-4 |
|---|---|---|---|---|
| 纯 PLC 逻辑 (无伺服) | — | — | ✓ | ✓ |
| 有伺服 / IO 从站 | ✓ | 可选 | ✓ | ✓ |
| 关键产线 (电缆冗余) | ✓ | ✓ | ✓ | ✓ |
| 经济 2 NIC | ✓ (和管理共用) | — | ✓ | — |
硬件推荐
| 网口 | 型号 | 参考价 |
|---|---|---|
| EtherCAT 网卡 | Intel I210-T1 / I350-T2 | ¥300 ~ ¥600 |
| 同步网卡 | Intel X710-DA2 / X540-T2 (万兆) | ¥1,200 ~ ¥2,500 |
| 管理 | 工控机自带即可 | — |
| 同步线 | 六类屏蔽双绞线, ≤ 5m | ¥50 |
1.6 EtherCAT 支持判断
是否需要启用 EtherCAT 主站热切换(MAC 克隆 + AL 状态继承):
| 项目内容 | 需要 EtherCAT 热切换? |
|---|---|
| 仅逻辑控制 / 数据采集 / HMI | ❌ 不需要 |
| Modbus TCP / OPC UA / S7 从站 | ❌ 不需要 |
| 有伺服驱动 (EtherCAT CoE/CiA 402) | ✅ 必需 |
| 有 EtherCAT IO 模块 | ✅ 必需 |
| 有机器人本体 | ✅ 必需 |
| 需要 EtherCAT 电缆冗余 | ✅ 必需 + 启用 NIC-2 |
2. 打开冗余配置向导
在 IDE 主界面:
- 顶部 Ribbon -> 工程 -> 冗余热备 -> 配置冗余...
- 或在侧边 冗余状态面板 的工具栏点击 [打开配置向导]
界面说明: 向导采用 6 步向导式对话框, 顶部 Banner 显示当前步骤, 底部为 [上一步] / [下一步] / [启动冗余] / [取消] 导航按钮。
3. Step 1 - 角色选择
三选一:
| 选项 | 说明 |
|---|---|
| 主 (Primary) | 本机主动运行 PLC 逻辑并驱动 IO, 状态实时下推至备机 |
| 备 (Standby) | 本机热备, 同步主机状态, 主机失效时无扰接管 |
| 自动协商 (Auto-Negotiate) | 启动时两机按优先级/启动先后自动协商主备 |
界面说明: 三个大卡片单选, 选中卡片会染色 (主=蓝, 备=橙, 自动=绿)。
完成后点击 [下一步]。
4. Step 2 - 对等机配置
填入另一节点 (对等机) 的连接参数:
| 字段 | 默认 | 说明 |
|---|---|---|
| 对等机 IP | 192.168.100.2 | 同步链路上对方节点的 IP |
| 同步端口 | 7100 | 冗余同步端口 (TCP) |
| 同步网口 | (下拉选择) | 本机用于同步的网卡, 枚举自系统 |
| 链路加密 | 关闭 | 启用后使用 AES-256 加密, 推荐跨子网场景 |
界面说明: 使用 DevExpress 编辑器 (TextEdit/SpinEdit/ComboBoxEdit), 风格与通讯服务向导一致。
5. Step 3 - 心跳连通性测试
点击 [开始测试], 系统将向对等机发送 10 个心跳包, 实时统计 RTT 与丢包率:
- 平均 RTT / 最大 RTT: 以 ms 为单位
- 丢包率: 百分比
- 实时日志: 每一个心跳包的状态 (OK / FAIL / ERR)
界面说明: 三个统计卡片并列 (深色卡片 + 白色粗体数值), 下方为滚动日志列表, 底部为进度条。
建议阈值 (仅供参考):
- 平均 RTT < 5 ms, 最大 RTT < 20 ms, 丢包率 = 0%
- 超标时检查同步链路质量, 避免使用无线/拥堵网段
6. Step 4 - 授权校验
点击 [校验], 系统查询本机的冗余功能授权状态:
| 状态 | 徽章颜色 | 说明 |
|---|---|---|
| 已授权 | 绿 | 本机冗余功能已激活, 可直接进入下一步 |
| 未授权 | 橙 | 需点击 [激活...] 输入激活码联网激活 |
| 校验失败 | 橙 | 与许可服务器不通, 检查网络 |
界面说明: 左侧圆点徽章 + 状态文字 + 详情说明, 右侧为 [校验] 按钮。下方一个独立卡片内含 [激活...] 按钮。
注意: 两侧节点均需独立授权, 未授权侧无法作为备机接入冗余对。
7. Step 5 - 初始状态同步
点击 [启动同步], 系统将:
- 把本机当前项目文件 + 变量区域 (DB/Marker/Retain) 全量推送到备机
- 建立一致基线, 用于后续增量同步
进度指示:
- 顶部进度条 (0 ~ 100%)
- "x / 总项数" + 瞬时速率显示
- 实时日志列表
界面说明: 进度条下方显示速率, 最下方为日志滚动区。失败时状态行标红并给出原因。
完成条件: 进度达到 100% 且备机回执 ACK。
8. Step 6 - 确认并启动
汇总页列出所有关键参数:
- 本机角色
- 对等 IP / 端口
- 同步网口
- 链路加密
- 心跳 RTT (平均 + 丢包)
- 授权状态
- 初始同步状态
勾选 "我已确认对等机已完成对应配置, 同意启动冗余" 后, [启动冗余] 按钮由灰变绿 (Material Green #34A853), 点击后本机进入冗余运行模式。
9. 运行阶段 - 冗余状态面板
IDE 侧边 冗余状态面板 实时展示当前冗余运行情况:
9.1 布局说明
+-------------------------- 工具栏 --------------------------+
| [强制切换] [暂停同步] [打开配置向导] 最后刷新: HH:mm |
+-----------------------+------------------------------------+
| 本机角色: 主 | 对等机状态: 在线 |
| (48 号大字 + 蓝色) | (绿点 + 28 号粗体) |
+-----------------------+------------------------------------+
| 最近 10 秒 RTT 趋势 | 同步健康度 |
| (Polyline 线图) | - 丢包率 (带进度条) |
| | - 同步延迟 |
| | - 平均 RTT |
+-----------------------+------------------------------------+
| 最后切换: 2026-04-17 10:32:15 - 主机心跳超时触发 |
+------------------------------------------------------------+
9.2 工具栏按钮
| 按钮 | 说明 |
|---|---|
| 强制切换 | 弹确认框, 确认后主/备互换; 用于计划性运维 |
| 暂停同步 | 暂时挂起同步通道 (按钮文字切换为 [恢复同步]) |
| 打开配置向导 | 重新打开冗余配置向导, 便于调整参数 |
9.3 RTT 趋势图
- 横轴: 最近 10 秒 (@10 Hz = 100 个采样点)
- 纵轴: RTT (ms), 自动缩放到数据范围
- 浅色水平网格线 (4 档) 便于读值
10. 常见问题
Q1. 心跳测试丢包率 > 0%
- 检查同步网口是否为独占专用链路
- 检查交换机端口是否开启了流控/风暴抑制
- 尝试直连 (对等双机之间不经交换机)
Q2. 授权校验一直 "未授权"
- 确认已经联网 (许可服务器可达)
- 确认本机已输入过激活码 (参考 [许可管理] 文档)
- 确认购买的授权包含 冗余热备 特性
Q3. 初始同步长时间卡在某一百分比
- 查看同步日志最后一行的项目名称, 通常是大 DB 或文件资源
- 检查对等机磁盘空间 / 防病毒软件对 Service 目录的写入限制
Q4. 强制切换无响应
- 先检查对等机状态是否为 在线
- 若显示 切换中, 等待当前切换完成, 不要重复点击