|
Ultrabus 通用协议栈已内置OPC UA Client,配合本文配置 PLC 的 OPCUA Server,即可自动采集 S7-1200 数据。工程师从社区下载协议栈到网关——选设备→自动发现→一键连接。 先说结论 **S7-1200 的 OPC UAServer 是免费的。** 不需要买任何 license。在 TIA Portal 里勾选一个选项、导出证书、下载到 PLC 就行。整个过程首次操作 5 分钟。 一、前提条件 在开始之前,确认这三点——少一个都不行: | 条件 | 怎么确认 | | S7-1200 是 G2 版本 | 订货号以 6ES721x-xxx-xxxx 开头,固件 ≥ V4.5。在 TIA Portal 里右键 CPU → "诊断" → 看固件版本 | | TIA Portal ≥ V17 | V17 才开始对 S7-1200 的 OPC UA 支持得比较好。V16 也能用但步骤不同 | | CPU 有以太网口 | |
⚠️ 如果你的S7-1200 是 **2018年之前出厂的老款**(固件 V4.4 以下),OPC UA 功能不完整,建议升级固件或换用 Modbus TCP 方式接入。 二、操作步骤 第1步:激活 OPC UA 服务器 打开你的 TIA Portal 项目 → 双击CPU → 找到 "OPC UA" 选项卡 → 勾选 "激活 OPC UA 服务器": ![截图占位:TIA Portal中CPU属性→OPC UA→激活服务器复选框] 然后设置端口号(默认 4840,不用改)和最大会话数: 推荐配置: - 端口:4840(默认) - 最大会话数:2(采集平台占1个,留1个给你自己调试用) - 最短采样间隔:100ms - 最大订阅数:2 第2步:配置安全策略 切到 "安全" 选项卡: 生产环境推荐: ✓ 激活安全策略:Basic256Sha256 - Sign & Encrypt(加密+签名) ✓ 不要选 "无安全策略"(明文传输,不安全) 调试/内网环境: ✓ 可以选择 None + Basic256Sha256 同时启用(兼容性最好) 🔒 安全策略一旦选定,Client端必须用相同策略才能连接。如果你不确定 Client 支持什么,**同时勾选 None + Basic256Sha256** 是最稳妥的做法。 第3步:导出 CPU 证书 切换到 "证书管理"→ 点击 "导出" → 保存为 s7-1200-opcua.der 文件。 ![截图占位:导出证书对话框] 📌 这个证书文件要给你的OPC UA Client 程序。Client 端需要"信任"这个证书才能建立加密连接。如果不做这一步,连接时会报`Bad_SecurityChecksFailed`。 第4步:编译、下载到 PLC 按常规流程:编译硬件配置 → 下载到 PLC → PLC 会自动重启。 下载完成后,用 TIA Portal 的"在线"模式确认 CPU 运行正常。 第5步:验证 OPC UA 是否正常工作 可以用免费工具 UaExpert(Unified Automation 提供)测试: 1. 下载 UaExpert:[https://www.unified-automation.com/downloads/opc-ua-clients.html](https://www.unified-automation.com/downloads/opc-ua-clients.html) 2. 添加 Server:opc.tcp://你的PLC的IP地址:4840 3. 首次连接会弹出证书信任提示 → 点击"Trust" 4. 连接成功后在 Address Space 里能看到 PLC 的数据结构 如果你看到类似下面的节点树,说明 OPC UA Server 正常运行: Root └──Objects └── [你的PLC名称] ├── DataBlocks ├── SystemDiagnostics └── ... 三、常见踩坑 & 解决 坑1:"连接超时,ping 通但 4840 端口不通" 原因:Windows 防火墙 / 工厂网络防火墙拦截了 4840 端口 排查: 1. 在 PLC 同一网段的电脑上:telnet [PLC_IP] 4840 2. 如果超时 → 防火墙问题 3. 如果连接成功但立即断开 → OPC UA Server 正常运行(这是正常的协议行为) 解决: → Windows:控制面板 → 防火墙 → 入站规则 → 新建规则 → 端口 4840 → 允许 → 工厂网络:找 IT 开通 PLC 到采集服务器的 4840 端口白名单 坑2:"Bad_SecurityChecksFailed" 原因:Client 端没有信任 PLC 的证书,或证书已过期 解决: 1. 确认你从 TIA Portal 导出了证书(步骤3) 2. 在 Client 端的信任列表里导入该证书 3. 确认 Client 端选的加密方式,和 TIA Portal 里勾选的一致 如果你两个都勾了 None +Basic256Sha256: → Client 先用 None 试(不加密,最快) → None 通了再切到 Basic256Sha256 坑3:"能连上但只看到很少几个数据点" 原因:S7-1200 的 OPC UA Server 默认只暴露系统信息。 你自己定义的 DB 块数据需要手动配置为"OPC UA 可见" 解决: 1. 打开你的 DB 块 → 右键 → 属性 2. 勾选:"可通过 OPC UA 访问" 3. 重新编译+下载 或者更简单的方式: 直接勾选"启用标准的 SIMATIC 服务器接口"→ S7-1200 会自动暴露所有全局 DB 块的数据。 坑4:"证书过期了" TIA Portal 自动生成的证书有效期通常为 2 年。 预防: → TIA Portal → CPU 属性 → OPC UA → 证书管理 → 查看有效期 → 快过期前重新生成证书 → 下载 → 通知 Client 端更新信任列表 四、配完之后怎么把数据用起来? OPC UA Server 只是数据出口。真正把数据利用起来——接到你们的管理系统、做出大屏看板、设置自动告警——需要 OPC UA Client。 如果你只是想自己写代码对接: → 推荐 open62541(开源免费,C语言,30行代码搞定) 如果你想让 PLC 数据 2 分钟进入管理平台: → 使用 Ultrabus 通用协议栈:从社区下载到网关 → 选择"S7-1200 OPC UA"采集方案 → 输入 PLC IP → 自动发现所有数据点 → 开始采集。不需要写代码。 →[Ultrabus 社区:下载通用协议栈 & 浏览 S7-1200 模板] 相关资源 - [西门子官方文档:S7-1200 OPC UA 服务器](https://support.industry.siemens.com/cs/document/109758862) -[Ultrabus 社区:S7-1500 OPC UA 开通教程(含 License 选择)] -[Ultrabus 社区:三菱 iQ-R OPC UA 配置指南] -[Ultrabus 社区:OPC UA Client 开发入门(open62541篇)]
|