西门子 PLC(S7-1200 / S7-1500)
S7-1500 自带 OPC UA 服务器,但默认不开,且部分型号需要授权。
能取到哪些信号
| 信号 | 从哪里取 | 用途 |
|---|---|---|
| 设备状态位 | DB 块变量 / OPC UA 节点 | 运行、停机、报警 |
| 产量计数器 | DB 块变量 | 产量统计 |
| 工艺参数 | DB 块变量 | 参数追溯 |
| 报警字 | DB 块 / ProDiag | 停机原因自动分类 |
| 换型 / 配方号 | DB 块变量 | 换型识别 |
接入方式
| 方式 | 说明 | 适用 |
|---|---|---|
| OPC UA | S7-1500 在 TIA Portal 中启用 OPC UA 服务器并设置访问权限。语义清晰,推荐。 | S7-1500,部分需 OPC UA 授权 |
| S7 通讯(ISO-on-TCP) | 直接读 DB 块,无需 OPC UA 授权,需知道 DB 号与偏移量。 | S7-300/400/1200/1500 |
| 信号侧采集 | 绕开 PLC,从输出点或信号灯取。用于不允许接入 PLC 网络的场合。 | 任何情况 |
实务提醒
- S7-1500 的 OPC UA 服务器默认关闭,且中高端型号需要单独的运行授权。评估阶段就要确认,不要等实施时才发现要采购。
- S7-1200/1500 默认开启“优化块访问”,此时 DB 块没有固定偏移地址,S7 协议读不到。需要在 TIA Portal 中对目标 DB 取消优化,或改用 OPC UA。
- 首次 OPC UA 连接失败绝大多数是证书信任或主机名不匹配,不是网络不通。
- 读取 PLC 需占用连接资源,S7-1200 的最大连接数有限,接入前要确认现有连接占用情况。
最小可用数据集
无论走哪条路,先把这三样跑通:带时间戳的运行/停止状态、产量计数、停机原因。 只有前两样也能出一张有用的报表;第三样决定这张报表能不能推动改善。工艺参数留到第二阶段——点位一多,项目周期会被拖长。
西门子 PLC 接入前,要向设备方确认的清单
西门子 PLC 能不能顺利读到,多半取决于 TIA Portal 里的几个勾选项,而这些项只有拿着工程文件的人能改。所以清单的重点是:谁有工程、谁来改、什么时候能下载。
- CPU 型号与固件版本。决定有没有 OPC UA 服务器、要不要授权。在 CPU 面板或 TIA Portal 的在线诊断里能看到。
- 工程文件和密码在谁手里。没有工程文件,PLC 侧的任何设置都改不了,只能读已经开放的内容,或改走信号侧。
- 走 S7 通讯时:是否已允许来自远程对象的 PUT/GET 通信访问(CPU 属性的“防护与安全”里),目标 DB 是否为非优化块,CPU 是否设了访问保护等级。
- 走 OPC UA 时:服务器是否启用、授权是否到位、要读的变量是否勾选了“可从 HMI/OPC UA 访问”、采用哪种安全策略和用户认证。
- 网络。PLC 的 IP 和网段、用哪个网口、设备网与办公网之间如何隔离。S7 通讯走 TCP 102 端口,OPC UA 默认 4840 端口,防火墙要相应放行。
- 连接资源。触摸屏、上位机、其他 PLC 已经占了多少连接,还剩多少。
上面这些设置改完后要重新编译并下载到 PLC。涉及硬件配置的下载通常需要 CPU 停机,要排进计划停机窗口,由设备负责人或设备厂家操作。整套核对项可以配合《设备联网可行性自查清单》一起用。
西门子 PLC 点位表示例:DB 地址和数据类型怎么写
最省事的做法不是到处去找现有变量,而是请设备方新建一个专门给采集用的非优化 DB,把状态、产量、报警、配方号集中映射进去。这样采集只读这一个块,原程序的 DB 不用取消优化,将来程序升级也不会把地址打乱。下面是这样一个 DB 的示例(DB 号和偏移均为示例):
| 信号名 | 数据类型 | 地址(示例) | 采样周期 | 用途 |
|---|---|---|---|---|
| 自动运行中 | Bool | DB100.DBX0.0 | 1 秒 | 运行 / 停机判定 |
| 故障总标志 | Bool | DB100.DBX0.1 | 1 秒 | 故障停机 |
| 自动 / 手动模式 | Bool | DB100.DBX0.2 | 1 秒 | 调试时间不计入生产 |
| 配方号 | Int(2 字节) | DB100.DBW2 | 10 秒 | 换型识别 |
| 产量累计 | DInt(4 字节) | DB100.DBD4 | 5 秒 | 产量、实际节拍 |
| 线速度 | Real(4 字节) | DB100.DBD8 | 10 秒 | 性能开动率参考 |
| 报警字 | Word(2 字节) | DB100.DBW12 | 1 秒 | 停机原因自动归类 |
走 OPC UA 时不用关心偏移量,点位表里写节点标识即可,但数据类型和采样周期两列照样要填。OPC UA 建议用订阅方式,让服务器在数值变化时推送,比高频轮询对 PLC 的负担小。
示例:S7 的多字节数据是高字节在前。假设从 DB100.DBD4 读到的 4 个字节依次是 00 01 86 A0,按高字节在前解析为十六进制 186A0,即 1 × 65536 + 134 × 256 + 160 = 100000 件。如果采集软件按低字节在前解析,会得到一个大得离谱的数或者负数。产量“乱跳”先查字节序和数据类型,别先怀疑网络。
S7 通讯和 OPC UA 怎么选
| 比较项 | S7 通讯 | OPC UA |
|---|---|---|
| 适用机型 | S7-300/400/1200/1500 都行 | S7-1500,以及较新固件的 S7-1200 |
| 授权 | 不需要 | 部分型号需要运行授权 |
| PLC 侧要做的事 | 允许 PUT/GET;目标 DB 取消优化 | 启用服务器;勾选变量;配置证书与用户 |
| 寻址方式 | DB 号 + 偏移量,程序一改就可能失效 | 变量名,程序调整后仍然有效 |
| 安全性 | PUT/GET 打开后,同网段的设备既能读也能写 | 有证书、用户和权限控制,可以只开放读 |
| 适合谁 | 老机型多、点位少、设备网已隔离 | 新设备、点位多、对安全有要求 |
S7 通讯那一行的安全问题要认真对待:PUT/GET 没有细粒度的权限,开了就是读写全开。用这条路时,PLC 必须待在隔离的设备网里,由采集网关做唯一出口,采集软件配置成只读。网络分区的做法见数据放哪里、真正该担心什么;OPC UA 的基本概念见词典里的OPC UA条目。
新买设备时,把“开放 OPC UA 服务器并提供变量清单”或“提供采集专用 DB 及地址表”写进设备采购技术协议,比事后再谈便宜得多。
西门子 PLC 采集常见问题与排查
| 现象 | 常见原因 | 处理 |
|---|---|---|
| S7 连接建立失败 | 机架号 / 插槽号填错 | S7-300 常用机架 0、插槽 2;S7-1200/1500 用机架 0、插槽 1 |
| 能连上,读 DB 被拒绝 | 未允许 PUT/GET,或 DB 仍是优化块,或 CPU 设了访问保护 | 请设备方修改设置并重新下载 |
| 数值明显不对 | 字节序、数据类型或偏移量错位 | 逐项核对点表;确认偏移量来自非优化块 |
| 程序升级后数据全乱 | DB 结构变了,偏移量整体移位 | 改用采集专用 DB,或改走 OPC UA |
| OPC UA 连接被拒 | 客户端证书未被 PLC 信任,或主机名与证书不符 | 在 PLC 侧信任客户端证书;核对端点地址 |
| OPC UA 证书一直提示无效 | PLC 时钟不对,证书不在有效期内 | 校准 PLC 时间 |
| OPC UA 里找不到要读的变量 | 变量没有勾选可访问 | 在 TIA Portal 中勾选后重新下载 |
| 触摸屏偶尔掉线 | 连接资源被占满 | 减少采集连接数,多个点合并到一个连接里读 |
一台西门子 PLC 设备的实施步骤,哪一步需要停机
- 确认型号、工程文件和配合人。不需要停机。
- 选路线。按上面的对比表定 S7 通讯还是 OPC UA;两条都走不通就转信号侧,三种方式的取舍见三种数据采集方式怎么选。
- PLC 侧准备。建采集专用 DB 或勾选 OPC UA 变量,修改连接设置并下载。这是唯一可能需要停机的一步,通常是一次短暂停机,由设备方操作。
- 网络接入。采集网关接入设备网,只读。需要在电气柜内布线时,断电、由持证电工操作、不改动安全回路。
- 对数。连续跟一个班,产量对触摸屏计数和人工报工,停机次数对现场记录。
- 报警归类。把报警字的每一位对应到停机原因码,对应不上的留给操作工选。
PLC 已经开放好通讯的设备,第 3 步可以跳过,全程不需要停机。
常见问题
读 PLC 会不会影响设备运行?
设备厂商不给 DB 地址表怎么办?
需要修改 PLC 程序吗?
S7-200 SMART 能用同样的方法采集吗?
打开 PUT/GET 有安全风险吗?
不在 PLC 上操作,直接从触摸屏取数据行不行?
最近更新:2026-09-21 · 出版:工厂数字化编辑部(TEEPTRAK)
微信:Teeptrak-SZ