西门子 S7-1200 PLC 与 组态王 (KingView) 进行 OPC UA 通信,是实现国产上位机软件与西门子高端 PLC 安全、稳定数据交互的常用方案。相比于传统的 OPC DA (依赖 DCOM 配置,极易出错且仅限 Windows) 或 S7 协议驱动 (明文传输,安全性低),OPC UA 提供了更好的跨平台能力、防火墙穿透性和数据加密功能。以下是详细的配置指南、原理说明及常见问题排查。
---
一、前置条件与版本要求
在开始之前,请确保您的软硬件环境满足以下最低要求:
组件 | 最低版本要求 | 说明 |
| S7-1200 CPU | 固件 V4.4 或更高 | 必须支持原生 OPC UA Server 功能。 |
| TIA Portal | V16 或更高 | 用于组态 PLC 的 OPC UA 接口。 |
| 组态王 (KingView) | 6.55 SP2 或 6.60 及以上 | • 6.55 SP2:需安装专门的 "OPC UA 客户端驱动" 补丁或选件。• 6.60+:通常原生集成或内置了更完善的 OPC UA 驱动支持。注:老版本 (如 6.53, 6.55 原版) 可能不支持 OPC UA,仅支持 OPC DA。 |
| 操作系统 | Windows 7/10/11 (64位) | 推荐 64 位系统以获得更好的稳定性。 |
二、核心原理:变量映射机制
与直接读取 DB 块地址不同,OPC UA 通信基于 “服务器接口 (Server Interface)”:
PLC 端:必须在 TIA Portal 中显式创建一个“OPC UA 服务器接口”,并将需要暴露的变量(Tag)映射到该接口中。组态王端:只能看到并访问这个“接口”中的变量,无法直接访问 PLC 内部未映射的变量。安全性:这种机制天然隔离了内部逻辑,提高了系统安全性。三、详细配置步骤
第一步:在 TIA Portal 中组态 S7-1200 (Server 端)
启用 OPC UA 服务:
打开项目,选中 CPU。
进入 属性 (Properties) -> 常规 (General) -> OPC UA。
勾选 启用 OPC UA 服务器 (Enable OPC UA server)。
确认许可证状态(通常显示为“已激活”)。
安全策略:建议生产环境选择 Basic256Sha256 (签名+加密),调试阶段可选 None (无安全) 以排除证书问题。创建服务器接口 (关键步骤):
在项目树左侧,展开 OPC UA -> 服务器接口 (Server interfaces)。
右键 -> 添加新对象,命名为例如 Interface_KingView。
在右侧表格中,从 PLC 变量表拖拽需要通信的变量(如 Motor_Run, Tank_Level)到此接口表中。
注意:可以重命名接口中的变量别名,组态王将看到这个别名作为节点 ID 的一部分。编译与下载:
执行“编译硬件和软件”。
下载项目到 PLC。
记录 IP 地址:记下 PLC 的 IP 地址(例如 192.168.1.10),OPC UA 默认端口为 4840。处理证书 (首次连接必备):
下载后,PLC 会生成自签名证书。
当组态王首次尝试连接时,PLC 会拒绝连接(因为不信任组态王的证书)。
解决方法:在 TIA Portal 中 在线 (Go Online) 连接 PLC;进入 在线与诊断 -> 功能 -> OPC UA -> 管理证书;在 客户端证书 列表中,找到组态王所在电脑的证书(通常显示为 Unknown 或计算机名);选中它,点击 信任 (Trust) 按钮。第二步:在组态王 (KingView) 中组态 (Client 端)
假设使用组态王 6.60 或已安装 OPC UA 驱动的 6.55 SP2
定义设备:
打开组态王工程,进入 设备 (Devices) -> 新建...。
在驱动列表中寻找 OPC UA 类别。路径通常为:OPC UA -> OPC UA Client (或者具体厂商名称如 Siemens OPC UA,视驱动版本而定,通用 OPC UA 驱动最常用)。
如果找不到 OPC UA 驱动,说明版本过低或未安装补丁,需联系亚控科技获取 "KingView OPC UA Client Driver"。
配置连接参数:
逻辑名称:自定义,如 PLC_S71200。URL / 端点地址:输入PLC的地址。格式:opc.tcp://192.168.1.10:4840;注意:必须是 opc.tcp:// 开头,端口默认为 4840,若在 PLC 修改过则相应调整。安全策略 (Security Policy):必须与 PLC 端设置完全一致(如 Basic256Sha256 或 None)。消息安全模式 (Message Security Mode):通常对应为 Sign & Encrypt (若策略非 None) 或 None。用户身份验证:通常选择 Anonymous (匿名),除非在 PLC 端配置了特定用户名密码。证书信任 (组态王侧):
首次连接时,组态王可能会弹出对话框提示“服务器证书不受信任”。
点击 信任 或 接受,将 PLC 的证书添加到组态王的受信任存储区。
注:组态王的证书存储位置通常在安装目录下的 Opccerts 或系统证书管理器中。添加变量 (Tag):
在设备定义完成后,进入 数据库 (Database) -> 数据词典。
新建变量,连接设备选择刚才定义的 PLC_S71200。
关键点:变量名 (Item Name) 的填写。(1)OPC UA 的变量名是层级结构的节点路径 (NodeID)。
(2)格式通常为:ns=<索引>;s=<接口名>.<变量名> 或直接浏览选择。
(3)推荐方法:在变量定义界面,点击 浏览 (Browse) 按钮(如果有)。点击浏览后,软件会连接 PLC 并列出所有可用的节点;展开 Objects -> Server -> (自定义接口) -> 找到你在 TIA Portal 中创建的 Interface_KingView;勾选需要的变量,系统会自动填入正确的 NodeID 字符串。手动填写示例:如果无法浏览,需手动输入。通常格式类似:ns=3;s=Interface_KingView.Motor_Run(注:ns=3 中的索引 3 取决于 PLC 的命名空间索引,不同固件可能不同,强烈建议使用“浏览”功能自动获取)。测试连接:
在组态王主界面或设备窗口查看连接状态。
如果状态显示“就绪”或“运行”,且变量值能随 PLC 变化,则通信成功。
---
四、常见问题与排查 (Troubleshooting)
问题现象 | 可能原因 | 解决方案 |
| 找不到 OPC UA 驱动 | 组态王版本过低或未安装补丁。 | 升级至 6.60+ 或联系亚控科技获取 OPC UA 驱动补丁包。 |
| 连接失败 / 超时 | 1. IP/端口错误。2. 防火墙拦截。3. 安全策略不匹配。 | 1. Ping PLC IP。2. 关闭 Windows 防火墙或放行 4840 端口。3. 确保组态王与 PLC 的安全策略 (Policy) 完全一致 (大小写敏感)。 |
| 认证失败 / 拒绝连接 | 证书未互信。 | 1. 在 TIA Portal 在线状态下,信任组态王电脑的证书。2. 在组态王侧信任 PLC 的证书。 |
| 浏览不到变量 / 变量为空 | 1. PLC 未创建“服务器接口”。2. 接口中未添加变量。3. 命名空间索引 (Namespace Index) 错误。 | 1. 检查 TIA Portal 中是否已建立 Server Interface 并映射变量。2. 重新编译下载 PLC。3. 务必使用“浏览”功能获取准确的 NodeID,不要盲目手动输入。 |
| 数据质量 Bad | 变量路径错误或类型不匹配。 | 检查变量 NodeID 是否精确匹配 PLC 接口中的名称(包括大小写)。 |
五、OPC UA vs 传统方式 (在组态王应用中)
特性 | OPC DA (传统) | S7 协议驱动 | OPC UA (推荐) |
| 配置难度 | 极高 (需配置 DCOM,易受系统更新影响) | 低 (直接填 IP 和 DB 号) | 中 (需配置接口和证书,但一次配置长期稳定) |
| 稳定性 | 差 (经常无故断开,需重启服务) | 高 | 极高 (基于 TCP,抗干扰强) |
| 安全性 | 低 (明文,依赖 Windows 账户) | 低 (明文,无加密) | 高 (支持 AES 加密,证书认证) |
| 防火墙 | 困难 (动态端口) | 容易 (固定端口) | 容易 (单端口 4840) |
| 跨平台 | 仅限 Windows | 仅限支持 S7 协议的设备 | 支持 (Linux, Android, Cloud 等) |
| 数据结构 | 扁平化 | 扁平化 | 支持层级结构/UDT |
六、最佳实践建议
统一命名:在 TIA Portal 的 Server Interface 中,使用英文命名变量,避免中文乱码问题(虽然 OPC UA 支持 Unicode,但老旧系统或特定驱动可能对中文支持不佳)。分组管理:如果变量很多,可以在 TIA Portal 中创建多个 Server Interface(例如按功能分:Interface_Monitor, Interface_Control),便于组态王中分类管理。证书备份:配置成功后,备份 PLC 和组态王电脑上的证书文件。如果重装系统,需重新导入证书,否则通信会中断。性能优化:OPC UA 支持订阅 (Subscription) 机制,只有数据变化时才上报。在组态王中尽量开启“按变化上报”或设置合理的扫描周期,不要设置为 0ms,以免占用过多 PLC 资源。驱动选择:如果组态王自带的通用 OPC UA 驱动兼容性不好,可以咨询亚控科技是否有针对 Siemens S7-1200 OPC UA 的专用驱动包,专用驱动通常在 NodeID 解析上更智能。通过以上步骤,您可以实现组态王与 S7-1200 之间现代化、高安全性的 OPC UA 通信,摆脱 DCOM 配置的噩梦。