1 <概述> <西门子全新 SIMATIC S7-1500R/H 系列冗余控制系统凭借其高可用性,能够有效 防止数据丢失,可以尽可能地降低工厂出现故障或意外停机的可能性,以提高工厂 效率。 SIMATIC S7-1500R/H 支持系统 IP。当其它设备需要和其通信时,可以把 S7- 1500R/H 看作一个 CPU,且通过系统 IP 自动连接到主 CPU。 HMI(包括 WinCC)可以通过系统 IP 和 S7-1500R/H 通信。但是这种通信方式无法 处理 HMI 和 S7-1500R/H 之间网络出现故障(例如,网线断开)的问题。针对这种 情况,WinCC 从 V7.5 SP1 版本开始支持通过 WinCC 系统变量进行 S7-1500R/H 连 接参数的切换。 本文以 WinCC V7.5 SP1 和 S7-1515R 为例,介绍 WinCC 和 S7-1500R 通信的组态 过程及注意事项。 > 1.1 <系统结构> <本例系统结构如图 1 所示:
1、CPU(X1 口)和 ET200SP 之间需要组成环网。CPU(X2 口)和 WinCC 之间 可以不做环网。 2、如果 CPU 和 ET200SP 的环网中存在交换机,那么交换机需要设置为 MRP 客户 端。(MRP:Media Redundancy Protocol,介质冗余协议)。本例中 CPU 和 ET200SP 的环网中不存在交换机,如图 1 所示。 3、组成环网的目的是网络冗余,否则 PLC 工作在单冗余模式,CPU 报警信息中会 有工作在单冗余模式的提示。 4、组成环网后,两个 S7-1515R 的 CPU 为 MRP 管理员,其它设备为 MRP 客户 端。两个 CPU 协商做为 MRP 管理员。 >
1.2 <测试环境> <本文档使用的软件版本及硬件列表。 软件版本: WinCC 版本: SIMATIC WinCC V7.5 SP1 Step7 版本:SIMATIC STEP7 Professional V16 硬件列表: CPU 1515R-2 PN 6ES7 515-2RM00-0AB0 V2.8 IM 155-6 PN ST 6ES7 155-6AU00-0BN0 V3.3 > 2 < PLC 组态> 2.1 <常规组态> <S7-1500R 的常规组态,请参考《S7-1500 冗余 PLC 1500R 使用入门》, 本文档以下内容主要介绍有关 WinCC 和 S7-1500R 的通信连接方面的知识。 > 2.2 <CPU 和 ET200SP 环网组态> <在 S7-1500R 冗余系统中,冗余 PLC 必须安装在 MRP 冗余环网中,这是冗余 PLC 主备之间实现组态和程序同步的必要条件。在环网中,冗余 CPU 作为 MRP 管 理员,其它设备作为 MRP 客户端。 2.2.1 CPU 做为 MRP 管理员 2.2 <CPU 和 ET200SP 环网组态> <在 S7-1500R 冗余系统中,冗余 PLC 必须安装在 MRP 冗余环网中,这是冗余 PLC 主备之间实现组态和程序同步的必要条件。在环网中,冗余 CPU 作为 MRP 管 理员,其它设备作为 MRP 客户端。 2.2.1 CPU 做为 MRP 管理员 CPU 作为环网的管理员,其介质冗余角色需要设为 “管理员(自动)” 。 在设备和网络组态下的网络视图中,选择 S7-1500R 任一 CPU 的 X1 网口,选择“高 级选项”下的“冗余介质”,设置“介质冗余角色”为“管理员(自动)”。如图 2 所示。
2.2.2 ET200SP 做为 MRP 客户端 ET200SP 作为 MRP 客户端,介质冗余角色设为 “客户端” 。 在网络视图中,选中 ET200SP,选择“高级选项”下的“冗余介质”,设置“介质冗余角 色”为“客户端”。如图 3 所示。
设置完成后,可以选择 PN/IE 网络(本例中 PN/IE 网络名称为“PN/IE_1”),查看环 网的组态结果。如图 4 所示。
2.2.3 交换机做为 MRP 客户端 如果 CPU 和 ET200SP 的环网中存在交换机,那么交换机需要被设置为 MRP 客户 端。以 Scalance X-400 为例,进入配置界面,在“Ring Config”中设置冗余模式为 “MRP Client”,如图 5 所示。
2.3 <系统 IP 组态> <本例中 WinCC 连接的是 S7-1515R CPU 的 X2 接口,因此需要启用 CPU 的 X2 接 口的系统 IP。 系统 IP 是两个冗余 PLC 的公共设置,当通信时通过系统 IP 始终访问的是主 CPU。 可以为 S7-1515R CPU 的 X2 接口同时设置固定 IP 和系统 IP。 分别选择两个 CPU 的 X2 接口,设置固定 IP 地址。然后选中任一个 CPU 的 X2 接 口,选择 “启用切换通信的系统 IP 地址”,并设置系统 IP 地址。如图 6 所示。
2.4 <PLC 运行结果> <S7-1500R 的两个 CPU 都为“RUN-Redundant”状态时,说明 CPU 冗余正常。如图 7 所示。
3 < WinCC 连接 S7-1500R 的方法> < WinCC 连接 S7-1500R 有两种方法,分别为连接系统 IP 或者通过 WinCC 的系统 变量进行连接参数的切换。其中,第二种连接方法只有 WIinCC V7.5 SP1 及以后的 版本才支持。> 3.1 <使用系统 IP> < WinCC 通过 S7-1500R 的系统 IP 和其进行通信时,可以把 S7-1500R 看作一个 CPU,IP 地址输入 S7-1500R 的系统 IP 即可。如图 8 所示。
这种连接方式下的变量同样也支持符号访问,可以从 AS 读取变量。
WinCC 通过系统 IP 连接 S7-1500R 存在的问题: 当网络正常,只是主备 CPU 切换或故障 CPU 恢复后(数据同步期间), WinCC 连接都会中断一段时间后再重新恢复。 这是由于 CPU 切换或数据同步需要一定的时间。 当 WinCC 与主 CPU 的网络物理连接出现故障(例如网线断开)时,连接不 会切换到备 CPU,连接中断。 这是由于系统 IP 指向的是主 CPU。 3.2 < WinCC 通过系统变量切换连接参数> <首先说明一点:WinCC 连接 S7-1500R 的任何一个 CPU 都可以进行读写操作。和 S7-300/400 软冗余不同,当 WinCC 连接到 S7-1500R 的备 CPU 时,也可以进行正 常的读写操作。 WinCC 通过系统变量切换与 S7-1500R 连接参数的组态步骤如下: 第一步:创建连接 在 WinCC 中创建和其中一个 CPU 的连接,连接此 CPU 的固定 IP 地址,本例为 192.168.1.1,如图 10 所示。本文档称此连接为 WinCC 组态的连接,所连接的 CPU 称为 CPU1。另一个 CPU 称为 CPU2,WinCC 与 CPU2 的连接称为备用的连 接。
第二步:创建系统变量 在 WinCC 连接下,手动创建系统变量,变量名格式为“@连接名称@变量名称”。变 量地址为空或者使用 PLC 中没有用到的地址。其变量名称和数据类型请参考图 11 的设置。
各系统变量的作用如下: 1、“@<connectionname>@ForceConnectionState” : 用来建立/终止冗余连接,设置为 1:建立连接,设置为 0:断开连接。对于 WinCC 连接 S7-1515R,此变量建议设置初始值为 1。 2、“@<connectionname>@ConnectionState” : 用来反馈冗余连接状态, 值为 1 时代表连接已经建立,值为 0 时代表连接已经断 开。 3、“@<connectionname>@ConfiguredAddress” : 用来反馈在变量管理中组态的连接的参数属性。 格式为“AccessPoint=访问点名称;IPAddress=PLC IP 地址;”。 4、“@<connectionname>@AlternativeAddress” : 设置与备用 CPU(CPU2) 的连接的参数属性,格式为“AccessPoint=访问点名 称;IPAddress=备用 PLC IP 地址;”,需要设置初始值,如图 12 所示
备用连接和组态的连接可以使用同一个访问名,也可以使用不同的访问名。使用不 的访问名时,WinCC 可以指定两块网卡分别连接 S7-1500R 的两个 CPU。 5、“@<connectionname>@CurrentAddress” :反馈当前连接的参数属性。 6、“@<connectionname>@UseAlternativeAddress” : 设置使用组态的连接还是备用连接,设置为 1:使用备用连接,设置为 0:使用组 态的连接。 7、“@<connectionname>@OpStateConfiguredAddress ” : 读取 S7-1500R 的 CPU1 当前的操作模式,0: not connected,4: STOP,6: STARTUP,8: RUN,22: SYNCUP。 8、“@<connectionname>@>@OpStateConfiguredAddress” : 读取 S7-1500R 的 CPU2 当前的操作模式,0: not connected,4: STOP,6: STARTUP,8: RUN,22: SYNCUP。 9、“@<connectionname>@RedundantCPUs” : 指示所连接的控制器是否冗余,设置为 1:代表所连接的 PLC 是 S7-1500R/H,设 置为 0 代表所连接的 PLC 是非冗余的 S7-1200/1500。建议设置初值为 1。 此变量只是设定所连接的 CPU 是否是冗余的。当所连接的 PLC 是 S7-1500R/H 时,变量 @OpStateConfiguredAddress 和@OpStateConfiguredAddress 都可以获 取对应 CPU 状态。注意: 实际是冗余 CPU,但设为 0,则变量 @OpStateConfiguredAddress 和 @OpStateConfiguredAddress 只有一个能读到状态。 实际不是冗余 CPU,但设为 1,则变量 @OpStateConfiguredAddress 和 @OpStateConfiguredAddress 都读不上状态。 第三步:变量赋初值 为变量“@AlternativeAddress”和 “@RedundantCPUs” 赋初值。本例中: “@AlternativeAddress”初值为 “AccessPoint=CP_H1_1:;IPAddress=192.168.1.2; ”。 “@RedundantCPUs”初值为 1。 第四步:创建全局动作 通过设置变量“@UseAlternativeAddress”的值,可以设定 WinCC 连接所使用的连接 参数,包括访问点和 PLC IP 地址。注意,修改变量“@UseAlternativeAddress”的值 之后,需要重新置位变量“@ForceConnectionState”。 1、创建全局 VBS 动作 创建全局 VBS 动作来自动切换 WinCC 连接参数,以下两种情况下进行连接参数的 切换: (1)当前连接中断,需要切换连接参数。 (2)S7-1500/1200 STOP 模式下,WinCC S7-1500/1200 连接不会中断。所以 PLC STOP 模式下,也需要切换连接参数。 判断方法: (1)@ConnectionState=0 代表当前连接中断。 (2)WinCC 连接正常时(@ConnectionState=1) 当@UseAlternativeAddress = 0 并且@OpStateConfiguredAddress = 4 时,代表当前 WinCC 连接到 CPU1,并且所连接的 CPU 为 STOP 模式。 当@UseAlternativeAddress = 1 并且@ OpStateAlternativeAddress = 4 时,代表当前 WinCC 连接到 CPU2,并且所连接的 CPU 为 STOP 模式。 VBS 动作脚本如图 13 所示:
以上脚本可以在 WinCC 帮助中搜索‘VBS381’来获取,如图 14 所示。
2、VBS 动作的触发器 当 WinCC 连接中断或所连 CPU 的操作模式变为 STOP 时,需要触发切换脚本。 设置 VBS 动作的触发器,如图 15、图 16 所示。
第五步:运行结果 在 WinCC 启动列表中选择“全局脚本运行系统”,如图 17 所示。然后激活 WinCC 运行系统。
可以看到由网线中断造成 WinCC 连接中断以及在当前连接的 PLC 变成 STOP 模式 的情况下,WinCC 连接都会切换连接参数,保证和 S7-1500R 的连接正常。 4 <其它说明> <1、WinCC 使用两块网卡和 S7-1500R 通信 WinCC 通过系统变量切换连接参数时,由于可以在参数中设置所使用的访问点名称 和 IP 地址,因此这种连接方法可以做到组态的连接和备用连接使用不同的网卡进行 通信。可以设置变量“@AlternativeAddress”使其使用和组态的连接不同的访问名, 本例中,组态的连接使用访问名“CP_H1_1:”,备用连接使用访问名“CP_H1_2:”,如 图 18 所示。这样 WinCC 就可以使用两块不同的网卡分别连接冗余的两个 CPU,当 所连接的 CPU 故障或网络故障时,可以自动切换。
2、如何确保 WinCC 连接到主 CPU 当 WinCC 连接 S7-1500R 的系统 IP 时,是主动连接到主 CPU 的。 对于 WinCC 通过系统变量切换连接参数的方法,并不一定是连接到主 CPU。S7- 1500R 的工作机制使 WinCC 连接到备 CPU 时也可以进行正常的读写操作。 如果需要确保 WinCC 连接到主 CPU,可以在 CPU 中使用“RH_GetPrimaryID”指令 读取当前连接的 CPU 的主备状态。指令“RH_GetPrimaryID”返回主 CPU 的编号(1 或 2),如图 19 所示。进而可以知道主 CPU 的 IP 地址。
S7-1500R 项目下处于上面的 CPU 的冗余 ID 始终为 1,下面的 CPU 的冗余 ID 始终
为 2,如图 20 所示。
指令“RH_GetPrimaryID”返回主 CPU 的编号(1 或 2),进而可以知道主 CPU 的 IP 地址。然后在全局动作脚本中加入根据“RH_GetPrimaryID”的返回值来切换连接参数 的脚本。 3、WinCC 连接 S7-1515R 的 X1 接口 本例中 WinCC 连接到 CPU 的 X2 接口,当 WinCC 连接到 CPU 的 X1 接口时(如 图 21 所示),组态步骤和连接 X2 接口一样,需要注意的是,这种情况下交换机需 要具有环网冗余功能,并被配置为 MRP 的客户端。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有