eefocus_4229102 发表于 2026-7-9 15:22:01

西门子 S7-1200 OPC UA 服务器开通教程(TIA Portal V18,5分钟搞定)

Ultrabus 通用协议栈已内置OPC UA Client,配合本文配置 PLC 的 OPCUA Server,即可自动采集 S7-1200 数据。工程师从社区下载协议栈到网关——选设备→自动发现→一键连接。 http://ultrabus.shiott.cn/先说结论
**S7-1200 的 OPC UAServer 是免费的。** 不需要买任何 license。在 TIA Portal 里勾选一个选项、导出证书、下载到 PLC 就行。整个过程首次操作 5 分钟。
一、前提条件
在开始之前,确认这三点——少一个都不行:


条件怎么确认
S7-1200 是 G2 版本订货号以 6ES721x-xxx-xxxx 开头,固件 ≥V4.5。在 TIA Portal 里右键 CPU →"诊断" → 看固件版本
TIA Portal ≥ V17V17 才开始对 S7-1200 的 OPC UA 支持得比较好。V16 也能用但步骤不同
CPU 有以太网口所有 S7-1200 都有,但你得确认网线插上了


⚠️ 如果你的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地址:48403. 首次连接会弹出证书信任提示 → 点击"Trust"4. 连接成功后在 Address Space 里能看到 PLC 的数据结构
如果你看到类似下面的节点树,说明 OPC UA Server 正常运行:
Root └──Objects   └── [你的PLC名称]         ├── DataBlocks         ├── SystemDiagnostics         └── ...
三、常见踩坑 & 解决
坑1:"连接超时,ping 通但 4840 端口不通"
原因:Windows 防火墙 / 工厂网络防火墙拦截了 4840 端口 排查:   1. 在 PLC 同一网段的电脑上:telnet 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 → 自动发现所有数据点 → 开始采集。不需要写代码。→
相关资源
- [西门子官方文档:S7-1200 OPC UA 服务器](https://support.industry.siemens.com/cs/document/109758862)---

页: [1]
查看完整版本: 西门子 S7-1200 OPC UA 服务器开通教程(TIA Portal V18,5分钟搞定)