为什么需要 OPC Server?

在工业自动化中,SCADA 系统(如 WinCC)需要读取 PLC 中的实时数据。不同品牌的 PLC 有不同的通信协议,WinCC 经典版无法直接连接所有 PLC。

OPC(OLE for Process Control)是一种工业标准通信协议。通过 OPC Server 作为中间层,可以实现 任意 PLC ↔ 任意 SCADA 的互通:

PLC (任意品牌)
    │
    └──→ OPC Server (KepServer / SIMATIC NET)
              │
              ├──→ WinCC
              ├──→ IFix
              ├──→ InTouch
              └──→ 其他 SCADA / MES / ERP

KepServer — 最常用的 OPC Server

KepServerEX 是工业自动化领域使用最广泛的 OPC Server 软件,主要特点:

  • 内置 150+ 种通信协议驱动,覆盖几乎所有主流 PLC 品牌
  • 支持 OPC DA / OPC UA 两种标准接口
  • 支持 CSV 批量导入导出变量,大幅提升组态效率
  • 可同时连接多台不同品牌的 PLC

KepServer 的变量管理方式

KepServer 提供了两种添加变量的方式:

方式 操作 适合场景
手工添加 逐个右键 → 新建标签 → 填写地址和类型 10 个以内的变量
CSV 批量导入 导出模板 → 填入 → 导入 50+ 变量的项目

用 SMART Exporter 批量生成 KepServer CSV

SMART Exporter 已支持生成标准 KepServer 17 列 OPC 变量 CSV,覆盖两条主要路径:

路径一:S7-1200/1500(TIA Portal)

  1. 从 TIA Portal 导出 SCL 数据块源文件(.scl / .db / .txt)
  2. 上传到 SMART Exporter,选择 "KepServer OPC" 格式
  3. 下载生成的 CSV

KepServer 地址格式:DB100.DBX394.4(Bool)、DB3.DBD500(Real)

详见:S7-1200/1500 通过 KepServer 导入 WinCC 配置教程

路径二:S7-200 SMART

即将上线 — SMART → KepServer 导出功能开发中

S7-200 SMART PLC 不支持 WinCC 直连,同样需要 OPC Server 桥接。SMART Exporter 即将支持将 .smart / .smartV3 工程文件直接导出为 KepServer OPC CSV。

操作步骤

步骤一:获取 KepServer CSV 变量表

无论是哪种 PLC 来源,SMART Exporter 生成的 CSV 格式完全一致:

列 字段 说明
1 Tag Name 变量名
2 Address OPC 地址
3 Data Type Boolean / Short / Float / DWord
4 Respect Data Type 固定 1
5 Client Access R/W(读写)
6 Scan Rate 扫描周期(毫秒)
7-16 Scaling 量程字段(可选)
17 Negate Value 取反标志

步骤二:导入 KepServer

  1. 打开 KepServerEX 管理控制台
  2. 先添加对应的 PLC 通信通道和设备:
    • 新建 Channel → 选择驱动(如 Siemens TCP/IP Ethernet)
    • 新建 Device → 填入 PLC IP 地址和型号
  3. 点击设备节点 → 右键 → "Import CSV"
  4. 浏览选择导出的 CSV 文件
  5. 确认导入

导入完成后,所有变量将出现在设备标签列表中。

步骤三:在 WinCC 中添加 OPC 驱动

  1. 打开 WinCC 项目管理器
  2. 在左侧导航树中找到 "变量管理"
  3. 右键 → "添加新的驱动程序"
  4. 从列表中选择 "OPC.chn"(OPC 通道驱动程序)

步骤四:连接 OPC Server

  1. 展开 OPC 通道
  2. 右键 OPC 通道 → "系统参数"
  3. 在弹出的对话框中,选择 "OPC 条目管理器"
  4. 浏览 → 选择本地计算机 → 找到 "Kepware.KEPServerEX.V6"(或对应版本)
  5. 在 OPC Server 的标签树中,浏览到对应设备的变量组
  6. 选中需要的变量 → 添加到 WinCC 变量管理

步骤五:验证连接

  1. 在 WinCC 中创建测试画面
  2. 添加一个 IO 域控件
  3. 绑定一个 OPC 变量
  4. 激活 WinCC Runtime,检查变量值是否与 PLC 一致

多 PLC 混合管理

KepServer 的一个重要优势是可以同时管理多台不同品牌的 PLC。SMART Exporter 导出的 CSV 中,Tag Name 自带前缀区分:

项目 A(S7-200 SMART)→ KepServer 通道 1
项目 B(S7-1200)     → KepServer 通道 2
项目 C(S7-1500)     → KepServer 通道 3
                    ↓
              WinCC OPC Client

在 WinCC 中为每个 PLC 创建独立的 OPC 连接即可,所有变量通过同一 OPC Server 读取。

进阶:量程与报警

KepServer 支持在标签上直接配置量程缩放和报警限值。导出的 CSV 中有对应的列(Raw Low/Raw High/Scaled Low/Scaled High),可在导入前批量填入:

  • 原始量程:PLC 中的原始数据范围(如 0-27648 for 4-20mA)
  • 缩放量程:工程单位范围(如 0-100 %RH)
  • 报警限:Clamp Low/Clamp High 用于异常值钳位

量程信息可在 Excel 中批量编辑后重新导入 KepServer。

常见问题

WinCC 看不到 KepServer?

  • 确认 KepServer 和 WinCC 安装在同一台计算机上
  • 确认 WinCC 项目处于同一个 Windows 用户会话中
  • 尝试在 WinCC OPC 条目管理器中手动输入 Kepware.KEPServerEX.V6

变量导入后数值不更新?

  • 检查 KepServer 中设备连接状态是否为 "Running"
  • 检查 WinCC OPC 变量的"更新周期"设置
  • 在 KepServer Quick Client 中手动测试变量读写

多台 WinCC 客户端能否共享一个 KepServer?

可以。KepServer 支持通过网络 OPC 提供变量给多台 WinCC 客户端。只需在客户端 WinCC 的 OPC 条目管理器中选择 "远程 OPC Server" 并输入 KepServer 所在计算机的网络地址。

总结

OPC Server 是 SCADA 系统的"万能翻译层",而 SMART Exporter 解决了"变量表怎么进入到 OPC Server"这个最耗时的环节。核心链路:

PLC 工程文件 (.smart / .scl)
    → 拖拽上传
    → 一键导出 KepServer 17 列 CSV
    → 导入 KepServer
    → WinCC OPC Client 浏览使用

从此告别手工逐个录入变量的痛苦。