状态、切换与典型场景
冗余状态用于判断当前 PLC 的主备角色、链路状态、同步状态和切换原因。冗余功能启用后,PLC 启动或重启、APP 下载完成、冗余链路恢复、配置保存生效等时机,都会触发系统重新判断同步源和主备关系。完成这些操作后,应先确认状态正常,再进行生产运行或切换验证。
状态建立时机
以下操作都可能让系统重新进入冗余状态判断流程:
- PLC 启动或重启:系统加载冗余配置,发现对端并建立冗余链路。
- APP 下载完成:runtime 根据 APP 和配置情况判断同步源,并同步到对端。
- 冗余链路恢复:双方重新发现对 端,检查 APP、配置、硬件型号和 runtime 版本。
- 冗余配置保存生效:配置变更后重新进行链路发现和主备确认。
- 主备切换或故障恢复:根据当前主备状态、健康度、历史主备记录和仲裁结果更新状态。
状态判断的核心是确认当前哪一台 PLC 应作为同步源和主机。同步源可能来自正在运行的主机、唯一拥有 APP 的设备、最近一次主备记录,或用户后续的人工处理。
冗余状态项
| 状态项 | 说明 |
|---|---|
| 本机状态 | 当前 PLC 在冗余系统中的状态,例如主备仲裁进行中、配置模式、主机、备机、主(无冗余)等。 |
| 对方状态 | 对端 PLC 的状态,用于确认对方是否在线以及主备关系是否已建立。 |
| 仲裁器状态 / 对方仲裁器状态 | 启用冗余仲裁器时显示仲裁器连接状态;未启用时通常显示未设置。 |
| 连接模式 | 当前冗余通信方式,例如冗余链路直连。 |
| 同步源 | 当前 APP 和配置同步基准。 |
| 冗余连接状态 | 显示冗余链路是否已连接、是否工作中或是否无冗余。 |
| 状态原因 | 当状态异常、配置校验失败或主备冲突时,显示原因信息。 |
| 同步间隔时间最大值 / 最小值 | 显示主备同步周期统计值,用于观察同步稳定性。 |
| 重置冗余记录 | 清除当前冗余状态记录,便于重新观察状态变化。 |
| 主备切换 | 在主备同步正常时执行主动切换。 |
PLC 实例同步状态项
| 状态项 | 说明 |
|---|---|
| PLC 实例名称 | 当前参与冗余同步的 PLC 实例名称和运行状态。 |
| 工作冗余链路 | 当前实际承担同步工作的冗余链路编号。 |
| 最近一次同步 | 距离最近一次完成同步的时间。 |
| 上一次冗余同步间隔 | 上一次同步耗时。 |
| 同步间隔时间最大值 / 最小值 | PLC 实例同步周期的最大值和最小值。 |
主备切换
主动切换
在主备同步正常时,可在当前主机的冗余配置界面点击主备切换。切换完成后,原主机变为备机,原备机变为主机。
自动切换
以下情况可能触发自动切换:
- 主机掉电或异常停止。
- 主机 runtime 重启。
- 主机健康度低于备机,例如关键网口断开、总线模块异常或厂家插件判定需要切换。
切换过程中,备机接管为主机后会应用同步数据、打开必要 IO,并恢复 APP 周期执行。APP 运行应保持连续,仅冗余状态和主备角色发生变化。
典型场景
场景一:冗余启用后下载 APP
- 目的:验证常规 APP 下载不依赖冗余配置模式,并确认主备同步正常。
- 操作步骤:
- 确认两台 PLC 已启用冗余并完成冗余网口 IP 配置。
- 确认 IDE 连接到当前主机、链路断开前的主机,或未配对 PLC。
- 直接执行下载 APP操作。
- 等待系统自动完成 APP 与配置同步。
- 查看冗余状态区和 PLC 实例同步状态区。
- 预期结果:无需进入冗余配置模式即可完成下载;主备 APP 版本一致;备机数据与主机同步;若 APP 配置了网口 IP,主备对应网口地址符合冗余 IP 规则。
场景二:修改冗余配置
- 目的:验证只有冗余页面配置修改需要进入配置模式。
- 操作步骤:
- 进入冗余配置界面。
- 进入冗余配置模式。
- 修改冗余网络接口、IP 地址交换或无冗余时独立运行等配置。
- 点击保存。
- 按界面提示重启 PLC。
- 重新连接后查看冗余状态。
- 预期结果:配置保存并在重启后生效;系统重新建立冗余链路和主备关系。
场景三:主备手动切换
- 目的:验证主动切换功能是否有效。
- 操作步骤:
- 确认两台 PLC 已建立主备关系,冗余连接状态为冗余工作中。
- 在当前主机的冗余配置界面点击主备切换。
- 观察本机状态和对方状态变化。
- 检查 APP 运行状态、变量值和网络通信。
- 预期结果:原备机切换为新主机,原主机切换为备机;APP 运行不中断,数据无丢失,网络通信正常。
场景四:拔掉单根冗余网线
- 目的:验证双链路配置下单链路故障时的冗余可靠性。
- 操作步骤:
- 确认两台 PLC 已建立主备关系,并已配置两条冗余链路。
- 拔下主备机之间的一根冗余网线。
- 观察冗余状态、工作冗余链路和变量值。
- 等待约 30 秒后恢复该网线。
- 待状态稳定约 10 秒后,拔下另一根冗余网线并再次观察。
- 预期结果:两次单链路断开均不触发主备切换;APP 运行和变量值正常;工作冗余链路编号随实际可用链路变化。
场景五:拔掉全部冗余网线
- 目的:验证全部冗余链路断开时主备设备的状态表现。
- 操作步骤:
- 确认两台 PLC 已建立主备关系。
- 拔下主备机之间所有冗余网线。
- 分别查看主机和备机的冗余状态。
- 恢复网线后继续观察主备状态是否恢复。
- 预期结果:原主机继续运行并显示为主(无冗余);备机显示为 主(无冗余) 或对方不可达状态;恢复链路后重新进入冗余工作状态。
场景六:备机掉电
- 目的:验证备机掉电不会影响主机持续运行。
- 操作步骤:
- 确认两台 PLC 已建立主备关系。
- 断开备机电源。
- 观察主机状态、APP 运行状态和变量值。
- 约 30 秒后恢复备机电源。
- 预期结果:主机保持运行并显示为主(无冗余),不发生主备切换;备机重新上电并完成同步后,系统恢复冗余工作状态。
场景七:主机掉电
- 目的:验证主机故障时备机自动接管能力。
- 操作步骤:
- 确认两台 PLC 已建立主备关系。
- 断开主机电源。
- 观察备机状态、APP 运行状态和变量值。
- 约 30 秒后恢复原主机电源。
- 预期结果:原备机自动切换为主机,并进入**主(无冗余)**状态;APP 运行和变量值保持正常;原主机重新上电并同步完成后,系统恢复冗余工作状态。
场景八:健康度触发切换
- 目的:验证主机健康度下降时的自动切换能力。
- 操作步骤:
- 确认两台 PLC 已建立主备关系,且主备的南向、北向或 HMI 网口均处于正常连接状态。
- 拔掉主机的某个南向网口、北向网口或 HMI 网线。
- 观察主备状态变化和 APP 通信状态。
- 约 30 秒后恢复网线。
- 预期结果