返回首页

工作组中的 WinCC 冗余:DCOM 设置

旧设备工作组中 Siemens WinCC 7.5 Hot Standby 实施案例。详细 DCOM 设置、SIMATIC Shell、主干网络和客户端故障转移。适用于无域基础设施的生产环境解决方案。

无需域的 Hot Standby WinCC:真实案例
Advertisement 728x90

# WinCC 7.5 热备用冗余在工作组模式下的配置:详细步骤指南

一家陶瓷厂自 2013 年起运行基于 Siemens WinCC 7.0 的 SCADA 系统。硬件采用 HP ProLiant DL380p Gen8 服务器,搭载 Windows Server 2008R2 和 S7-300/400 控制器。目标:在不更换硬件的情况下,升级到 WinCC 7.5 SP2 Update 15(运行于 Windows Server 2012R2),实现两台服务器在工作组模式下的热备用冗余,并在客户端站实现无缝切换。

我们先进行过渡升级,然后将系统克隆到两台相同服务器上。专用骨干网络(10.10.10.x)用于服务器间心跳检测,主网络(192.168.0.x)负责数据同步和 PLC 通信。客户端运行 WinCC Runtime Advanced,支持自动服务器切换。

服务器和网络配置

| 组件 | 服务器 1 | 服务器 2 | 客户端 |

Google AdInline article slot

|------|----------|----------|--------|

| 名称 | SCADASERVER1 | SCADASERVER2 | SCADACLIENT0 |

| 操作系统 | Windows Server 2012R2 | Windows Server 2012R2 | Windows Server 2012R2 |

Google AdInline article slot

| WinCC | 7.5 SP2 Upd15 | 7.5 SP2 Upd15 | 7.5 SP2 Upd15 (客户端) |

| SQL | 2016 SP3 | 2016 SP3 | 2016 SP3 |

| 主网络 | 192.168.0.1 | 192.168.0.2 | 192.168.0.3 |

Google AdInline article slot

| 骨干网络 | 10.10.10.1 | 10.10.10.2 | — |

骨干网络采用直连方式监控伙伴状态,标签和归档同步则通过主网络进行。

步骤 1:SIMATIC Shell 配置服务器通信

WinCC 7.5 默认禁用远程通信。在 SIMATIC Shell 中启用:

  • 终端总线(主网络 192.168.0.x)——用于客户端和 PLC。
  • 冗余设置(骨干网络 10.10.10.x)——用于心跳检测。

在 Redundancy Editor 和 Shell 中分配 IP。服务器间相互识别,状态显示正常。

步骤 2:工作组模式下的 DCOM 配置

启动 Runtime 时出现错误 RedundancyAgent: 初始化远程通信失败。问题在于工作组模式下 DCOM 需要手动配置身份验证,无需域环境。

2.1. 管理员账户下的服务

修改 CCRedundancyAgent-Service 的账户:

  • 打开 services.msc
  • 登录 → 此账户 → .\\Administrator(两台服务器密码相同)。

LocalSystem 缺少 DCOM 所需的网络身份。

2.2. DCOM 权限

dcomcnfg → 组件服务 → 我的电脑 → 属性:

COM 安全 → 访问权限(限制 & 默认):

  • Everyone: 允许本地/远程访问。
  • ANONYMOUS LOGON: 允许本地/远程访问。

启动和激活权限(限制):

  • Administrators: 全部允许。
  • Everyone: 全部允许。
  • ANONYMOUS LOGON: 全部允许。

启动和激活(默认):

  • SYSTEM、Administrators、Administrator: 全部允许。

ANONYMOUS LOGON 用于发起连接,随后进行账户验证。

2.3. 默认属性

  • 启用分布式 COM: ✓
  • 默认身份验证级别: Connect。
  • 默认模拟级别: Identify。

2.4. LocalAccountTokenFilterPolicy

UAC 会过滤本地 Administrator 令牌。禁用它:

New-ItemProperty -Path "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System" `
    -Name "LocalAccountTokenFilterPolicy" -Value 1 -PropertyType DWORD -Force

重启 WinCC Runtime。

2.5. Hosts 文件用于名称解析

DCOM 依赖 NetBIOS 名称。在两台服务器的 C:\Windows\System32\drivers\etc\hosts 中添加:

10.10.10.1 SCADASERVER1
10.10.10.2 SCADASERVER2
192.168.0.1 SCADASERVER1
192.168.0.2 SCADASERVER2

在主网络适配器上禁用 TCP/IP 上的 NetBIOS(骨干网络保持启用)。

步骤 3:WinCC 冗余编辑器

创建冗余项目:

  • 在 Server1 上新建项目。
  • 冗余编辑器 → 添加服务器 → 指定 SCADASERVER2。
  • 连接参数:心跳超时 5 秒,切换延迟 10 秒。
  • 在 Server2 上同步 Runtime(Server1 为主)。

标签、归档和脚本自动复制。验证状态:主/备。

步骤 4:客户端配置

在 SCADACLIENT0 上:

  • 安装 WinCC Runtime Advanced。
  • 将两台服务器添加到项目。
  • Runtime → 自动服务器选择:优先 Server1,回退 Server2。

我们测试了切换:关闭 Server1 后,客户端 15 秒内切换到 Server2,无数据丢失。

步骤 5:生产环境部署

实验室测试后,在工厂部署。每次更改前备份。与实时 PLC 同步顺利。密切监控 WinCC_Sys_XX.log 日志。

关键要点:

  • 工作组模式下,DCOM 是瓶颈:80% 时间花在权限和令牌上。
  • 骨干网络专用于心跳,非数据传输。
  • Hosts 文件 + NetBIOS 调整解决 90% 名称解析问题。
  • 在实验室用真实 PLC 测试切换。
  • 两台服务器同步应用所有更改。

总耗时:实验室 2 周,生产 3 天。迁移成本低于域搭建。

— Editorial Team

Advertisement 728x90

继续阅读