技术教程 · OPC UA · S7-1200 / S7-1500 · TIA Portal

西门子 S7-1200 / S7-1500 OPC UA 通讯实战

从服务器激活、证书信任到用户权限,一次配通上位机数据采集

现在 MES、SCADA、云平台上位机要数据,首选几乎都是 OPC UA —— 跨厂商、带加密、能建模。西门子 S7-1200 / S7-1500 原生支持,但配置里坑不少,尤其是证书双向信任权限模型。本文以 TIA Portal V21 为例,把整条链路一次讲通。

一、先记住三个概念

二、支持矩阵(先对号入座,别配错方向)

平台OPC UA 服务器OPC UA 客户端关键限制
S7-1500(FW≥V2.0)✓(FW≥V2.5)需 OPC UA 运行许可证(Small / Medium / Large,按 CPU 分档)
S7-1200(FW≥V4.4)✓(精简版)需单独 OPC UA 授权;并发仅 5 个连接
S7-300 / S7-400需网关(如 SCALANCE / IOT2050)转发
G120 / G120C 等传动无原生 OPC UA,常规走 PROFINET 到 PLC 后再统一对外
最容易被坑的两点① S7-1200 做服务器要买授权:SIMATIC OPC UA S7-1200 Basic(订货号 6ES7823-0BA00-2BA0),一个 PLC 一张;② S7-1200 只能当服务器、不能当客户端去读别的设备,方向别搞反。另外再提醒一句:S7-1500 的 OPC UA 服务器同样要许可证,别等设备到现场才发现起不来,见下方说明。

· 许可证:S7-1500 同样需要,按 CPU 分档

运行 S7-1500 CPU 的 OPC UA 服务器需要购买运行许可证,类型取决于 CPU 的性能,分三档(一张许可证同时覆盖 OPC UA 服务器与客户端):

档位适用 CPU订货号
Small(小型)CPU 1511 / 1512 / 1513、ET 200SP CPU、CPU 1504D、CPU 1505S(含 F/T 衍生)6ES7823-0BA00-1BA0
Medium(中型)CPU 1515 / 1516(F)、CPU 1507S6ES7823-0BA00-1CA0
Large(大型)CPU 1517 / 1518(F)6ES7823-0BA00-1DA0
经验提示许可证要在 TIA Portal 中下载进 CPU 才生效。买小了性能受限、买大了浪费钱——先确认 CPU 型号再下单。订货号另有下载版(如 -0BE00 系列),以西门子官方目录为准。

三、S7-1500 作为服务器:TIA 四步配置

Step 1 · 激活 OPC UA 服务器

出于安全考虑,S7-1500 的 OPC UA 服务器默认是禁用的

项目树 → CPU → 属性 → OPC UA → 服务器 → 勾选“激活 OPC UA 服务器” 端口:默认 4840(可改,改完记住放行防火墙) 会话数:默认 100(并发连接上限)

Step 2 · 配置安全策略

在 OPC UA → 安全策略 里勾选所需策略。生产环境强烈建议只保留:

安全策略加密 / 签名建议
None仅调试用,生产关闭
Basic128Rsa15AES-128 / RSA / SHA1老设备兼容,SHA1 已过时
Basic256AES-256可用
Basic256Sha256AES-256 / RSA-OAEP / SHA256官方推荐,首选
提示客户端选择的安全策略必须和服务器开启的匹配,否则报“安全策略不匹配 / BadSecurityModeRejected”。

Step 3 · 证书管理(核心步骤)

CPU 会自动生成一张自签名证书,但建议手动生成更规范:

OPC UA → 安全 → 证书 → 新增(证书创建向导) 公共名称:建议填 PLC 名称或 IP(便于识别) 签名算法:SHA256 有效期:默认只有 10 年,建议删掉重生成 20 ~ 30 年(见下方经验) 证书用途:勾选“服务器身份验证” URI / IP 地址:填 PLC 的实际 IP

生成后:

  1. 导出服务器证书 → 在客户端侧把这张证书导入“受信”列表;
  2. 导入客户端证书 → 客户端(如 UaExpert)首次连接会给出自己的证书,把客户端证书导入 PLC 的“受信证书”,并分配为可信客户端
经验提示很多“连得上服务器、但一加密就断”的现场问题,都是证书只信任了一边。两边都要导入才算信任闭环。

证书有效期(实战经验):CPU 默认生成的自签名证书只有 10 年,到期后客户端会因证书校验失败突然断连,而且现场往往没人记得去换。我的做法是删掉默认证书,手动重新生成一张 20~30 年的,一次到位、避免将来到期通讯不上。

Step 4 · 用户与角色(生产必做)

默认匿名访问在调试期省事,但生产环境请关闭:

OPC UA → 安全 → 取消勾选“允许匿名访问” 项目树 → 安全设置 → 用户和角色 → 创建用户并分配角色
角色权限典型用途
Viewer只读(Browse / Read)上位机只读采集、监控
Operator读写部分变量需要下发设定值/参数的场景
Administrator最高权限(含 Write / Call)调试、维护

OPC UA 的权限模型按节点授予:Browse(浏览)、Read(读)、Write(写)、Call(调用方法)。原则是权限最小化——上位机只采集数据就给它 Viewer,别给写权限。

经验提示TIA Portal V21 之后,S7-1500 的用户 / 权限配置明显变复杂:用户和角色统一在项目树“安全设置 → 用户和角色”里管理,登录用户必须有“OPC UA 服务器访问”功能权限才能连上;V21 还引入了“共享角色”(Shared Role)机制——OEM 在项目中定义角色,其中要开放给最终客户的角色必须标记为“共享角色”,配合两层用户体系,配置链路比老版本长不少。建议先在实验室把用户 / 角色 / 共享角色这套跑通,再上现场。

四、S7-1200 作为服务器:和 1500 的差异

S7-1200(固件 V4.4 起)也能做 OPC UA 服务器,但功能和 1500 有明显差距:

怎么选设备多、要双方向通讯、要调方法 → 选 S7-1500;只做简单数据上送、对并发要求低 → S7-1200 + 授权也能跑。

· 数据开放策略:1500 默认全开,1200 显式发布

还有一个常被忽略的安全差异:S7-1500 默认把所有已启用的 PLC 变量、DB 元素和服务器方法都开放给 OPC UA 客户端;而 S7-1200 只有放进服务器、显式发布的块才暴露。从安全角度,1200 的“最小暴露”方式更值得推荐。

根因在于 1500 在 CPU 属性 → OPC UA → 服务器 → 常规里默认勾选了 “启用 SIMATIC 服务器标准接口”(Enable standard SIMATIC server interface)——它会把该 CPU 中的所有 PLC 变量、数据块和方法自动放进 OPC UA 地址空间;而 S7-1200 根本没有这个选项,只能在项目树 CPU → “OPC UA communication”里显式添加服务器接口、把需要的标签放进去才会暴露。

想把 1500 改成 1200 那种“放进服务器的才开放”:

CPU 属性 → OPC UA → 服务器 → 常规 (左侧导航:OPC UA → 服务器 → 常规) 取消勾选 “启用 SIMATIC 服务器标准接口”(默认是勾上的) 下方同页还有 “激活类型字典”,保持默认即可 官方说明:该选项提供 CPU 中的所有 PLC 变量、数据块和方法; 禁用后,需在项目树 → CPU → OPC UA 通信 文件夹内添加 一个服务器接口,只显式发布你放进去的变量 更细粒度的补充控制: · 单个 DB:DB 属性 → 取消勾选 “DB 可从 OPC UA 访问” · 单个变量:取消勾选 “从 HMI / OPC UA 可访问” · 新建默认值:Options → Settings → PLC programming → General
经验我习惯按 1200 的思路来:关掉标准接口,需要哪个块 / 变量就显式放进服务器接口,只给上位机真正要读的数据——安全又清爽。

五、客户端接入:UaExpert 实操

UaExpert(Prosys 出品)是免费的 OPC UA 客户端,做测试最好用:

① 服务器列表 → 添加服务器 URL: opc.tcp://<PLC IP>:4840 ② 选择安全策略(与服务器一致)→ 连接 首次连接会提示“不受信任的证书” → 点 Trust Server Certificate ③ 把 UaExpert 的客户端证书导出,导入 PLC 受信证书(见上 Step 3) ④ 浏览命名空间 → 服务器接口 → 对象 → 找到 DB/变量 ⑤ 右键变量 → 订阅监视(Data Change)

S7-1500 的优化访问 DB默认可被 OPC UA 读取。若看到服务器但看不到数据:

六、常见坑排查表

症状原因处理
连接超时 / 连不上4840 端口被防火墙挡PLC 侧与 PC 侧防火墙都放行 TCP 4840
报安全策略不匹配客户端与服务器策略不一致两边统一到 Basic256Sha256
加密连接被拒证书只信任了一边服务器 / 客户端证书双向导入受信
能连上但看不到变量DB 未勾选“从 HMI / OPC UA 可访问”,或权限不足勾选属性 + 检查角色 Read 权限
客户端能看到全部数据(想最小暴露)1500 默认开了“启用 SIMATIC 服务器标准接口”CPU 属性 → OPC UA → 服务器 → 常规里取消勾选,再在项目树 OPC UA 通信下添加服务器接口显式发布
S7-1200 服务器起不来缺少 OPC UA 授权购买并下载授权(6ES7823-0BA00-2BA0)
S7-1500 服务器起不来 / 运行受限缺少对应档位许可证按 CPU 型号选 Small / Medium / Large 并下载
匿名访问连不上已关闭匿名改用配置的用户名 / 密码认证
改配置后不生效未重新下载 / 复位重新编译下载,必要时 STOP → RUN

七、生产环境安全清单

  1. 关闭 None 策略、关闭匿名访问;
  2. 统一使用 Basic256Sha256 + SignAndEncrypt;
  3. 证书有效期管理:默认证书仅 10 年,建议直接生成 20~30 年长有效期证书,避免现场到期断连;
  4. 权限最小化:采集只读用 Viewer,不轻易给 Write;
  5. OPC UA 通讯网段与办公网隔离,配合防火墙限制来源 IP。

八、写在最后

OPC UA 的配置逻辑其实就一句话:激活服务器 → 约定安全策略 → 证书双向信任 → 按角色授权。把这四步走顺,上位机、MES、云平台要数据就是几分钟的事。

这篇是产品通用配置,不含任何现场项目细节。如果你想深入某个环节(比如 S7-1200 / S7-1500 许可证选型下载、G120 通过 1500 转发 OPC UA、或对接具体云平台),或者需要现场服务 / 培训,欢迎联系我。

这篇教程对你有用吗?有想深入的选题,或需要现场服务 / 培训,欢迎联系
联系我