3. 冗余系统硬件与网络规划
冗余系统能否真正实现“故障不停机”,硬件与网络规划是根基。软件冗余机制再完善,如果服务器单电源、单网卡,或者两台交换机之间只有一条链路,故障切换依然会失败。本节围绕四个相互关联的规划对象展开:服务器选型、网络冗余拓扑、交换机配置,以及终端总线与系统总线的分离设计。
一、服务器选型:从“够用”到“可切换”
WinCC冗余系统通常采用两台服务器构成“主-备”或“主-主”结构。选型时不能只看单机性能,而要同时满足三个条件:单机可独立承载全部监控负荷、两台服务器硬件规格一致、关键部件全部冗余。
以某中型化工装置为例,I/O点数约8000点,归档变量约12000个,历史数据保存周期为1年。按经验估算,单台服务器需满足:CPU不少于8核、主频2.4GHz以上;内存32GB(归档量较大时建议64GB);系统盘采用两块SSD组成RAID1,数据盘采用4块SAS硬盘组成RAID10;配置双电源模块,分别接入两路独立UPS。两台服务器应选用同一型号、同一批次,避免因驱动或固件差异导致冗余同步异常。
需要特别注意的是,冗余服务器之间需要一条独立的“冗余同步链路”,通常使用交叉网线或专用交换机直连,不经过终端总线。这条链路用于状态同步、归档同步和故障检测,带宽建议不低于1Gbps。若该链路中断,备用服务器会误判主服务器故障,可能引发双主冲突。
二、网络冗余拓扑:双星型与环网的选择
WinCC冗余系统的网络冗余通常有两种典型拓扑:双星型和环网。双星型结构使用两台核心交换机,每台服务器和每个操作员站都分别连接到两台交换机,形成“双上行”。环网结构则使用支持冗余环协议的交换机组成闭合环,任一链路断开后可在毫秒级内重构。
对于终端总线(连接服务器与操作员站),推荐采用双星型拓扑,因为终端总线的节点数量相对固定,双星型布线清晰、故障定位容易。对于系统总线(连接服务器与PLC),若PLC分布范围较广,可采用环网拓扑,利用光纤组成冗余环,减少布线成本。
无论采用哪种拓扑,都必须遵循一个原则:任意单点故障(单台交换机、单条网线、单个网卡)不应导致通信中断。这意味着服务器和操作员站都需要配置双网卡,分别接入两台交换机;两台交换机之间需要两条互联链路,并启用链路聚合或生成树协议。
三、交换机配置:VLAN、冗余协议与端口安全
交换机是冗余网络的“关节”,配置不当会直接破坏冗余效果。核心配置包括四项:
- VLAN划分:终端总线使用VLAN 10,系统总线使用VLAN 20,冗余同步链路使用VLAN 30。三个VLAN之间默认不互通,避免广播风暴跨网段扩散。若服务器需要同时访问终端总线和系统总线,可在服务器网卡上配置VLAN子接口。
- 冗余协议:若采用环网,需启用RSTP/MSTP或厂商私有环协议(如西门子HRP)。以RSTP为例,需将两台核心交换机之一配置为根桥,另一台为备份根桥,并设置合理的Hello Time(默认2秒)和Max Age(默认20秒)。
- 链路聚合:两台交换机之间的互联链路建议配置LACP链路聚合,将两条物理链路捆绑为一条逻辑链路,既增加带宽又提供链路冗余。
- 端口安全:在接入端口上启用端口安全,限制每个端口学习的MAC地址数量,防止非法设备接入或MAC地址泛洪攻击。
以下是一个基于西门子SCALANCE交换机的配置片段示例,用于说明VLAN和RSTP的关键参数:
# 创建VLAN
vlan 10
name TerminalBus
vlan 20
name SystemBus
vlan 30
name SyncLink
# 配置上行端口为Trunk,允许VLAN 10/20/30通过
interface gigabitethernet 0/1
switchport mode trunk
switchport trunk allowed vlan 10,20,30
# 配置接入端口
interface gigabitethernet 0/2
switchport mode access
switchport access vlan 10
# 启用RSTP并设置优先级
spanning-tree mode rstp
spanning-tree priority 4096
# 配置链路聚合
interface range gigabitethernet 0/23-0/24
channel-group 1 mode active
配置完成后,应通过交换机命令行查看生成树状态,确认根桥选举正确、阻塞端口符合预期。例如执行 show spanning-tree,检查“Root ID”是否指向规划中的根桥,“Blocking”端口是否出现在备用链路上。
四、终端总线与系统总线设计:物理隔离与逻辑隔离
终端总线连接服务器与操作员站,承载画面刷新、报警确认、趋势查询等交互数据;系统总线连接服务器与PLC,承载过程值、归档变量、控制命令等实时数据。两者必须隔离,原因有三:
- 流量特征不同:终端总线突发流量大(如画面切换时批量读取归档),系统总线要求周期性、低抖动。混在一起会导致PLC通信延迟。
- 故障域不同:操作员站网卡故障或广播风暴不应影响PLC通信。
- 安全等级不同:系统总线直接关联控制层,需要更严格的访问控制。
物理隔离是最彻底的方式:使用独立的交换机、独立的网线、独立的网卡。若受限于机柜空间或成本,至少应使用VLAN进行逻辑隔离,并在交换机上配置ACL,只允许服务器的系统总线网卡访问PLC所在VLAN。
在服务器侧,双网卡应分别绑定到终端总线和系统总线,不要使用“网卡绑定”将两块网卡合并为一个逻辑网卡。因为冗余同步链路需要独立的IP地址,且终端总线与系统总线的故障切换策略不同。建议的IP规划示例如下:
| 设备 | 网卡 | VLAN | 示例IP | 用途 |
|---|---|---|---|---|
| 主服务器 | NIC1 | 10 | 192.168.10.11 | 终端总线 |
| 主服务器 | NIC2 | 20 | 192.168.20.11 | 系统总线 |
| 主服务器 | NIC3 | 30 | 192.168.30.11 | 冗余同步 |
| 备用服务器 | NIC1 | 10 | 192.168.10.12 | 终端总线 |
| 备用服务器 | NIC2 | 20 | 192.168.20.12 | 系统总线 |
| 备用服务器 | NIC3 | 30 | 192.168.30.12 | 冗余同步 |
最后,完成硬件与网络规划后,应形成一份《冗余系统网络规划表》,至少包含:设备名称、网卡编号、VLAN ID、IP地址、子网掩码、网关、交换机端口、冗余协议参数。这份表格是后续WinCC冗余组态和故障排查的基础依据。规划阶段多花一小时,调试阶段可能少花一整天。