Skip to main content

使用冗余控制系统

有关更多信息,请参阅: 调用命令时冗余系统的行为

通过在线更改加载和启动应用程序

要求:配置为 PLC PLC 1PLC 2 正在运行,更新的应用程序已准备就绪,可供下载。

  1. 在设备树中选择您的应用程序。

  2. 点击 在线 → 登录.

    对话框提示将打开,询问您要如何登录。

  3. 选择 使用在线更改登录.

    应用程序更新于 可编程逻辑控制器 1.

    PLC 2 切换到模拟模式并在大约 10 秒钟后同步。之后,两个 PLC 再次处于活动/待机模式

提示

启用, 切换, 同步, 和 模拟 命令在启用 冗余状态 标签。

仅在 PLC 1 运行时启动

要求: 可编程逻辑控制器 1 在跑。一个标准项目在 CODESYS Development System.通信参数设置为 可编程逻辑控制器 1.

  1. 在设备编辑器中,打开 通讯设置 标签并搜索网络。

    准备好的设备列在 选择设备 对话。

  2. 选择设备 可编程逻辑控制器 1 并点击 好的 确认选择。

    设备连接设置已配置。

  3. 点击 在线 → 登录.

    应用程序下载到 可编程逻辑控制器 1.

  4. 调试 → 开始

    可编程逻辑控制器 1 以独立模式运行。

  5. 在上启动运行时系统 PLC 2

    同步阶段开始:应用应用程序和冗余数据。之后, PLC 1 切换到活动状态并且 PLC 2 切换到待机状态。

在活动/待机模式运行时加载应用程序

过程. 下载到激活的 PLC

要求:两个 PLC 都在运行。一个冗余项目在 CODESYS.

  1. 在设备编辑器中,打开 通讯设置 标签并搜索网络。

    准备好的设备列在 选择设备 对话。

  2. 选择设备 可编程逻辑控制器 1 并点击 好的 确认选择。

    设备连接设置已配置。

  3. 点击 在线的登录.

  4. 在打开的对话框提示中,选择 登录下载 选项。

    应用程序停止运行 PLC 1 在单个系统上加载时也是如此。该应用程序被删除,加载新应用程序的操作开始。在这段时间里 PLC 2 切换到冗余仿真模式。一段时间后, PLC 2 尝试再次同步。每 10 秒重复一次尝试。如果时间已经过去了 10 秒以上 PLC 1 开始, PLC 2 切换到错误模式,但仍尝试同步。

  5. 开始 可编程逻辑控制器 1.

    同步开始,应用程序和冗余数据被传输到 可编程逻辑控制器 2.

提示

不支持下载到在待机模式下运行的 PLC。错误消息表明您需要登录到活动的 PLC。

实现冗余状态的编程查询

  1. 在 POU 中 PLC_PRG,实现对冗余状态的查询。

    PROGRAM PRG_PLC
    VAR
     sReduState: RedundancyState;
     bResult: BOOL;
    END_VAR
    
    bResult := RDCY.GetRedundancyState(ADR(sReduState));
  2. 登录到 可编程逻辑控制器 1 并确认在线更改。

    PLC 1PLC 2 连续启动并切换到活动/待机模式。 state.eRedundancyState 变量获取当前状态,以便您可以对其进行监控。

    注意

    提示:当前状态也显示在 冗余状态 标签。

测试应用程序是否相等

检查是否在两个 PLC 上执行相同的应用程序。

要求:冗余系统处于活动/待机模式,应用程序正在运行。

  1. 连接至 可编程逻辑控制器 2.

    为此,设置与设备网关的连接。或者,更方便地使用 交换 PLC 路径 中的按钮 冗余配置

  2. 在线 → 登录

    如果没有显示下载消息,则两个应用程序相同。

模拟控制器故障

  1. 停止 可编程逻辑控制器 1 在运行时。

    系统图形表示 未知 状态 (rdncy_icon_state_unknown.png) 为了 可编程逻辑控制器 1. 可编程逻辑控制器 2 立即切换到 独立 状态 (rdncy_icon_state_standalone.png)。

  2. 重新启动 可编程逻辑控制器 1 设备。

    PLC 1 切换到 待机rdncy_icon_state_passive.png)。 PLC 2 切换到 活跃rdncy_icon_state_active.png)。

重新连接控制器

没有自动 重新连接 (链路的断开和重新连接)包含在冗余组件的功能范围内。这是因为具体条件是相关的,具体取决于应用程序和设备。但是,您可以使用以下实现对重新连接的触发进行编程

2. 例子
PROGRAM PLC_PRG
VAR
        sReduState: RedundancyState;
        sSyncInfo: SYNC_INFO;
        sPlcIdent: PLC_IDENT;
        xConnectionState: BOOL;
        xResult: BOOL;
END_VAR

(* Collect information *)
GetRedundancyState(ADR(sReduState));
xConnectionState := GetConnectionState();
sPlcIdent := GetPlcIdent();

(* If in standalone mode, and connection is possible, re-synchronize from PLC2 *)
IF sReduState.eRedundancyState = RDCY.STATE.RS_CYCLE_STANDALONE AND xConnectionState AND xResult = FALSE AND sPlcIdent = RDCY.PLC_IDENT.PLC_ID_2 THEN
        xResult := RDCY.Synchronize();
END_IF


配置防火墙设置

TCP 和 UDP 都用于冗余同步。为冗余链路设置了一个 IP 端口。这用于UDP。端口+1 用于 TCP。

3. 例子

端口 1205 设置为默认值。

要解锁的端口

UDP: Port 1205
TCP: Port 1206