使用冗余控制系统
有关更多信息,请参阅: 调用命令时冗余系统的行为
通过在线更改加载和启动应用程序
要求:配置为 PLC PLC 1 和 PLC 2 正在运行,更新的应用程序已准备就绪,可供下载。
在设备树中选择您的应用程序。
点击
.对话框提示将打开,询问您要如何登录。
选择 使用在线更改登录.
应用程序更新于 可编程逻辑控制器 1.
PLC 2 切换到模拟模式并在大约 10 秒钟后同步。之后,两个 PLC 再次处于活动/待机模式
提示
这 启用, 切换, 同步, 和 模拟 命令在启用 冗余状态 标签。
仅在 PLC 1 运行时启动
要求: 可编程逻辑控制器 1 在跑。一个标准项目在 CODESYS Development System.通信参数设置为 可编程逻辑控制器 1.
在设备编辑器中,打开 通讯设置 标签并搜索网络。
准备好的设备列在 选择设备 对话。
选择设备 可编程逻辑控制器 1 并点击 好的 确认选择。
设备连接设置已配置。
点击
.应用程序下载到 可编程逻辑控制器 1.
可编程逻辑控制器 1 以独立模式运行。
在上启动运行时系统 PLC 2。
同步阶段开始:应用应用程序和冗余数据。之后, PLC 1 切换到活动状态并且 PLC 2 切换到待机状态。
在活动/待机模式运行时加载应用程序
要求:两个 PLC 都在运行。一个冗余项目在 CODESYS.
在设备编辑器中,打开 通讯设置 标签并搜索网络。
准备好的设备列在 选择设备 对话。
选择设备 可编程逻辑控制器 1 并点击 好的 确认选择。
设备连接设置已配置。
点击 在线的 → 登录.
在打开的对话框提示中,选择 登录下载 选项。
应用程序停止运行 PLC 1 在单个系统上加载时也是如此。该应用程序被删除,加载新应用程序的操作开始。在这段时间里 PLC 2 切换到冗余仿真模式。一段时间后, PLC 2 尝试再次同步。每 10 秒重复一次尝试。如果时间已经过去了 10 秒以上 PLC 1 开始, PLC 2 切换到错误模式,但仍尝试同步。
开始 可编程逻辑控制器 1.
同步开始,应用程序和冗余数据被传输到 可编程逻辑控制器 2.
提示
不支持下载到在待机模式下运行的 PLC。错误消息表明您需要登录到活动的 PLC。
实现冗余状态的编程查询
在 POU 中
PLC_PRG
,实现对冗余状态的查询。PROGRAM PRG_PLC VAR sReduState: RedundancyState; bResult: BOOL; END_VAR bResult := RDCY.GetRedundancyState(ADR(sReduState));
登录到 可编程逻辑控制器 1 并确认在线更改。
PLC 1 和 PLC 2 连续启动并切换到活动/待机模式。
state.eRedundancyState
变量获取当前状态,以便您可以对其进行监控。注意
提示:当前状态也显示在 冗余状态 标签。
测试应用程序是否相等
检查是否在两个 PLC 上执行相同的应用程序。
要求:冗余系统处于活动/待机模式,应用程序正在运行。
连接至 可编程逻辑控制器 2.
为此,设置与设备网关的连接。或者,更方便地使用 交换 PLC 路径 中的按钮 冗余配置。
如果没有显示下载消息,则两个应用程序相同。
模拟控制器故障
停止 可编程逻辑控制器 1 在运行时。
系统图形表示 未知 状态 (
) 为了 可编程逻辑控制器 1. 可编程逻辑控制器 2 立即切换到 独立 状态 (
)。
重新启动 可编程逻辑控制器 1 设备。
PLC 1 切换到 待机 (
)。 PLC 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。
端口 1205 设置为默认值。
要解锁的端口
UDP: Port 1205 TCP: Port 1206