背景
WinCC 经典版不能直连 S7-1200/1500 PLC,标准方案是通过 OPC Server(如 KepServer)桥接:
S7-1200/1500 → KepServer (S7 驱动) → WinCC (OPC Client)
这意味着需要做两件事:
- 在 KepServer 中逐个添加 PLC 变量
- 在 WinCC 中逐个连接 OPC 变量
对于一个 2000+ 变量的中大型项目,手工配置可能需要一整天。
SMART Exporter 的 TIA Portal 支持
SMART Exporter 现已支持 TIA Portal 导出的 SCL 数据块文件(.scl / .db / .txt),可以直接生成 KepServer 可导入的 17 列 OPC 变量 CSV。
支持的变量类型
| SCL 类型 | KepServer 数据类型 | KepServer 地址格式 | 示例 |
|---|---|---|---|
| Bool | Boolean | DBx.DBXy.z | DB100.DBX394.4 |
| Int / UInt | Short | DBx.INTy | DB3.INT2 |
| Real | Float | DBx.DBDy | DB3.DBD500 |
| DWord / UDInt | DWord | DBx.DBDy | DB100.DBD100 |
| Byte / Word | Short | DBx.INTy | DB2.INT10 |
| 自定义 STRUCT | 递归展开 | 按成员类型 | — |
| 数组 | 展开为独立变量 | 按元素类型 | — |
导出的 CSV 列结构(17 列)
| 列号 | 列名 | 示例 |
|---|---|---|
| 1 | Tag Name | "MAU1_RunState" |
| 2 | Address | DB100.DBX0.0 |
| 3 | Data Type | Boolean / Short / Float / DWord |
| 4 | Respect Data Type | 1 |
| 5 | Client Access | R/W |
| 6 | Scan Rate | 100 |
| 7-16 | Scaling 相关字段 | 空(可自行填入量程) |
| 17 | Negate Value | 空 |
操作步骤
步骤一:从 TIA Portal 导出 SCL 源码
- 打开 TIA Portal 项目
- 在项目树中选中 "程序块"
- 菜单 → 工具 → 生成源 → 从块生成源
- 选择需要导出的数据块(DB),确认生成
- 在项目树 "外部源文件" 中找到生成的
.scl文件,导出到本地
提示:.db 文件可以重命名为 .scl,工具会自动识别。扩展名 .scl、.db、.txt 均支持。
步骤二:上传到 SMART Exporter
打开 SMART Exporter 网页,将 SCL 文件拖拽到上传区。
工具会自动识别为 TIA Portal 格式,并显示 KepServer OPC 导出选项:
- KepServer OPC — 17 列 OPC 变量 CSV
- MCGS PRO (S7-1200) — 昆仑通态触摸屏导入格式
选择 KepServer OPC,点击"开始导出"。
步骤三:导入 KepServer
- 打开 KepServerEX 管理控制台
- 点击项目 → 属性 → CSV 导入导出
- 选择"导入" → 浏览到导出的 CSV 文件
- 点击"导入"按钮
KepServer 会自动创建所有变量标签,包括正确的地址和数据类型。
步骤四:在 WinCC 中连接
- 打开 WinCC 项目管理器
- 右键 "变量管理" → 添加新的驱动程序 → "OPC.chn"
- 右键 OPC 通道 → 系统参数 → 浏览本地计算机 → 选择 KepServer
- 在 OPC 通道中创建新的连接
- 右键连接 → 新建变量组 → 浏览 OPC Server 变量
- 选中需要导入的变量,确认添加
验证案例
使用 MAU-1-1 空调机房项目的 TIA Portal V20 工程:
- 输入:6 个数据块(RunData、Alarm、Parameter、Comm、Sampling、Energy)
- 输出:2152 个 KepServer 变量
- 结果:CSV 可直接导入 KepServer,变量地址、类型均正确
常见问题
为什么部分 DB 块没有被导出?
SMART Exporter 采用白名单模式:只导出已知用途的数据块。如果你有些自定义 DB 没有被导出,这说明 DB 编号不在白名单中。后续版本将开放自定义白名单配置。
Bool 变量的位地址是如何计算的?
非优化访问的 DB 块中,Bool 变量按字节对齐,位地址从 0 开始递增。工具自动处理了偏移计算,与 TIA Portal 中的偏移完全一致。
支持优化访问的数据块吗?
当前版本仅支持非优化访问(绝对寻址)的数据块。优化访问的 DB 块中变量没有固定偏移地址,需要不同的导出策略。
WinCC RT Professional 需要什么额外步骤?
WinCC RT Professional 内置了 S7 通信驱动,可以直接连接 S7-1200/1500 而无需 OPC Server。但本文描述的是 WinCC 经典版(WinCC Classic / WinCC V7.x)的方案。
总结
SMART Exporter 的 TIA Portal → KepServer → WinCC 链路,把原来需要一整天的手工变量录入工作,压缩到了几分钟:
- TIA Portal 导出 SCL(30 秒)
- 网页上传导出 CSV(10 秒)
- KepServer 导入(10 秒)
- WinCC OPC 浏览导入(1 分钟)
对于 2000+ 变量的项目,效率提升是数量级的。如果你还有其他 SCADA 系统(如 IFix、InTouch),KepServer CSV 格式同样适用。