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

[复制链接]
97|13
小小航 发表于 2026-7-9 15:07 | 显示全部楼层 |阅读模式
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 都有,但你得确认网线插上了
⚠️ 如果你的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篇)]

公羊子丹 发表于 2026-8-17 20:59 | 显示全部楼层
教程写得很清晰,提醒下大家,老项目升级别直接硬上OPC UA,先确认固件版本,固件V4.4以下就算开启功能,读取结构体变量会各种报错。
周半梅 发表于 2026-8-17 21:02 | 显示全部楼层
我踩过一个坑,DB块勾选OPC UA访问之后,必须完整全量下载硬件+程序,只下载程序块是不生效的,折腾半天才发现这个细节。
帛灿灿 发表于 2026-8-17 21:04 | 显示全部楼层
调侃一下,S7-1200这个免费OPC UA很香,就是证书两年有效期太坑,很多项目上线就忘了,两年后通讯直接断,现场抢修特别尴尬。
童雨竹 发表于 2026-8-17 21:06 | 显示全部楼层
想问下,同时多客户端连接的时候,最大会话数只设置2个,如果MES、调试工具同时连,会不会直接把新连接挤掉,实际项目你们一般设多少?
万图 发表于 2026-8-17 21:09 | 显示全部楼层
给新手小技巧,现场调试优先同时开启None和加密模式,先用无加密模式把通讯调通,再切换加密,排除证书问题,能节省大把调试时间。
Wordsworth 发表于 2026-8-17 21:10 | 显示全部楼层
我遇到过UaExpert能连上,但是第三方网关读不到STRING字符串,怀疑是S7-1200对长字符串支持有限,你们碰到过这种情况吗?
Bblythe 发表于 2026-8-17 21:11 | 显示全部楼层
工厂内网调试,别光关电脑防火墙,很多工业交换机有ACL访问控制,你检查过交换机有没有拦截4840端口,我之前栽在这个点上。
Pulitzer 发表于 2026-8-17 21:12 | 显示全部楼层
很好的实操教程,不过要注意,优化访问的DB块没问题,非优化DB块部分老固件版本,OPC UA读取会出现数据错位,这点要提前留意。
Uriah 发表于 2026-8-17 21:13 | 显示全部楼层
有个疑问,如果OPC UA客户端异常断开,S7-1200这边会话会不会自动释放?会不会占满会话数,导致后面再也连不上PLC?
Clyde011 发表于 2026-8-17 21:14 | 显示全部楼层
建议调试完之后,做个长时间稳定性测试,连续跑一两天,观察PLC CPU负载,OPC UA订阅点太多,会拉高CPU占用,影响设备正常逻辑运行。
狄克爱老虎油 发表于 2026-8-18 16:48 | 显示全部楼层
注意检查证书配置,确保PLC与客户端证书一致,否则可能导致连接失败。
EmmaTT 发表于 2026-8-19 14:56 | 显示全部楼层
OPC UA 服务器配置成功后,记得测试连接稳定性,确保多客户端同时连接时不会挤掉新连接。
光影捕手 发表于 2026-8-20 16:11 | 显示全部楼层
注意证书有效期,建议定期检查并更新。同时,测试多客户端连接时的会话数限制,确保满足项目需求。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

48

主题

66

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部
0