用两个WinCC服务器控制客户端,核心做法就是配置WinCC冗余服务器对(Server Pair),让两台服务器一主一备协同工作,客户端通过统一项目路径访问,主站故障时备站自动接管,整个过程对操作员几乎无感知。
WinCC冗余服务器配置步骤:两台服务器怎么分工才对
先说清楚架构,两个服务器不是各管一半客户端,而是同时运行同一套项目,一个作为主站(Primary),一个作为备站(Partner),它们之间通过专用以太网链路实时同步变量、报警和归档数据,当主站宕机或网络中断,备站自动升为主站,继续为客户端提供服务。
配置前的准备条件
- 两台服务器安装相同版本的WinCC,建议都是V7.x或V8.x,且补丁级别一致,否则数据库同步容易出问题。
- 操作系统建议一致,Windows Server版本不同会导致SQL Server通信异常。
- 两台机器之间需要一条独立的冗余同步网线,千兆网卡是基本要求。
- 需要购买单独的WinCC冗余授权,装在服务器上,没这个授权,冗余配置界面都是灰色的,项目也无法运行。
创建服务器对的具体操作路径
在SIMATIC Manager里按照下面的路径操作,这是多数工程现场都在用的标准流程:
- 在项目树中创建两台服务器站点,分别命名为SERVER_A和SERVER_B。
- 右键单击其中一台服务器,选择“属性”,在“冗余”选项卡中勾选“启用冗余”。
- 指定伙伴服务器为另一台机器的主机名或IP地址。
- 设置同步参数,重点是归档数据同步周期默认1秒就够用,不要设置得太短,否则网络带宽会被冗余数据占满。
- 编译全部数据,下载到两台服务器。
- 启动两台服务器,此时系统会自动建立同步连接。
冗余同步的底层逻辑
行业共识认为,WinCC冗余的核心机制是基于TCP连接的心跳检测,主站每隔几百毫秒向备站发送心跳包,一旦备站在规定时间内没有收到主站回包,就会判定主站故障,立即接管客户端连接。
这里有个容易踩的坑:两台服务器的机器名不能带下划线,否则SQL Server的命名实例通信会失败,这在现场遇到过不止一次,看似冗余配好了,但一重启主站就报错。
两个WinCC服务器怎么实现自动切换
配置完服务器对之后,最关心的问题就是:故障切换到底怎么发生?客户端会断线吗?历史数据会不会丢?
三种典型故障场景
- 主站断电:备站检测到心跳中断,大约几秒后接管服务,客户端画面会短暂卡顿,随后恢复操作。
- 主站WinCC进程崩溃:Windows操作系统还在,但WinCC服务已经停止,备站通过SQL Server的数据库锁机制感知到异常,触发切换。
- 同步网线断开:这个场景比较特殊,如果两台服务器之间同步链路断了,但各自与客户端的网络都正常,系统不会立即切换,而是会进入“隔离模式”备站变为只读状态,防止双主同时写数据造成混乱。
客户端视角的切换体验
客户端在切换过程中的表现取决于你用的是哪种连接方式:
- 使用SIMATIC Shell加载项目:客户端会自动重新建立连接,一般10秒左右恢复画面刷新。
- 使用网络映射硬盘直接打开项目:需要手动点击“重新连接”按钮,否则画面一直显示灰色。
切换后的数据一致性保障
很多工程师担心切换后归档数据丢了一截,这点WinCC处理得比较成熟,备站在正常情况下通过同步通道实时接收主站的变量归档缓存,主站故障时,备站会把断网期间的新数据写入本地SQL Server,恢复连接后,两台服务器会做
数据一致性比对,自动补齐对方缺少的归档记录。
WinCC客户端连接冗余服务器的两种方式
服务器端搞定后,客户端这边的配置有讲究,两种方式对应不同使用场景,看你的控制室网络条件选。
项目复制推荐用于长时间运行的操作员站
在客户端计算机的“开始”菜单找到SIMATIC Shell,浏览到服务器项目,右键选择“复制项目到本地”,复制完成后,客户端以独立运行模式工作,即使与服务器的网络断开,画面仍可查看。
但是注意:这种方式下,客户端写入的操作数据要通过网络回传给服务器,如果网络质量不好,操作响应会有半秒到一秒的延迟。
网络共享访问适合临时调试或小型系统
在客户端上映射网络驱动器到SERVER_A的WinCC项目目录,比如\SERVER_AWinCC_projects项目名称,直接打开项目文件。
| 对比维度 | 项目复制模式 | 网络共享模式 |
|---|---|---|
| 启动速度 | 较慢,需加载本地缓存 | 较快,直接读服务器 |
| 断网后可用性 | 画面仍可见 | 直接黑屏 |
| 服务器负载 | 较低 | 较高,所有画面文件靠网络传输 |
| 推荐场景 | 控制室长期运行 | 调试期或临时代理点 |
无论用哪种方式,客户端必须安装WinCC RC客户端授权,且客户端与服务器版本一致,这个一致性要求很严格,V7.5的客户端连接V8.0的服务器,大概率报“版本不兼容”。
WinCC服务器故障切换测试的完整流程
配置完别急着交付,一定要做至少三次故障切换测试,这个测试流程业内常用,模拟的是真实生产环境里最可能出问题的环节。
- 关闭主站电源(或通过iLO/IPMI远程关机),观察备站是否在预期时间内接管。
- 在备站运行状态下,用客户端打开画面对某个阀门发出操作指令,验证写操作正常。
- 恢复主站供电,等待自动同步完成,观察主站重新上线后,两台服务器的归档数据是否一致。
- 模拟同步链路中断拔掉两台服务器之间的冗余网线,确认备站变为只读状态,不会有误写操作。
- 最后检查Windows事件查看器中与WinCC冗余相关的错误日志,排查报警信息。
给一个比较实用的建议:如果你的控制网络里承载了视频流或大批量文件传输,把冗余同步通道单独划分到一个VLAN中,避免广播风暴影响心跳检测。
Q&A:两个WinCC服务器控制客户的常见疑问
问:两个服务器的硬件配置必须完全一样吗?
不必完全一样,主流做法是新备站配置略高于主站,为将来的主备互换留出余量,但两台机器的CPU架构必须一致(都是x64),内存容量不能相差过大,否则SQL Server查询计划可能执行异常。
问:冗余切换过程中客户端会掉登录状态吗?
不会掉登录状态,客户端与服务器之间建立的用户会话保持有效,切换的是后端的服务器实例,可能出现短时间的“正在重新连接”提示,但操作员不需要重新输入账号密码。
问:客户端数量太多会拖慢服务器之间的同步吗?
影响可以忽略,同步流量仅限于变量值、报警和归档数据,客户端与服务器之间的通信走的是独立的应用层连接,建议让交换机优先转发冗余同步链路的数据包,QoS配置为高优先级即可。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/634128.html





