
S7 通讯 = 西门子私有、专门给 S7 系列 PLC 用的 “PLC 专用通信协议”,用来:
PLC ↔ PLC(1200/1500/300/400)
PLC ↔ HMI/SCADA/ 上位机
PLC ↔ 第三方网关 / OPC UA 服务器
本质:直接读写对方 PLC 的内存(I/Q/M/DB),端口默认 TCP 102。
旧款:S7comm(300/400)
新款:S7comm‑Plus(1200/1500,支持加密)
二、S7 通讯核心含义(能干啥)
1)读数据(GET)
从对方 PLC 读:
输入区 I、输出区 Q
位存储区 M
数据块 DB(最常用)
2)写数据(PUT)
把本地数据写到对方 PLC:
控制 Q 点、M 标志
写 DB 里的设定值、配方
3)直接访问内存(最关键)
不需要对方写程序,只要知道地址 / 符号,就能读写,像访问自己的变量一样。
1500 优化 DB:只能用符号名
非优化 DB:可用绝对地址(DB1.DBB4 这种)
三、S7 通讯模型(客户端 / 服务器)
服务器 Server:被读写的 PLC(被动)
客户端 Client:发起读写的 PLC/PC(主动)
单边通信:只在客户端写程序(PUT/GET),服务器不用编程,只需开放访问权限。
四、S7 通讯常用指令(1500 TIA)
1)PUT(写)
本地 → 远程 PLC
plaintext
PUT_E / PUT_S
PUT_E:PROFINET 以太网专用,最多 4 块数据,合计 ≤160 字节
PUT_S:集成口或 CP 都能用
2)GET(读)
远程 PLC → 本地
plaintext
GET_E / GET_S
3)符号 vs 绝对
优化 DB:只能符号(Motor.Speed)
非优化 DB:可用绝对(DB1.DBD4)
五、S7 通讯和普通 TCP 的区别(重点)
S7 通讯
✅ 直接读写 PLC 内存(I/Q/M/DB)
✅ 不用自己拆包 / 组包
✅ 西门子专用,稳定、可靠、工业级
❌ 只能和 西门子 S7 系列 或兼容设备通信
普通 TCP(Socket)
❌ 要自己定义协议、拆包、校验
✅ 通用性强,可和任何设备通信
结论:同品牌 PLC 互连 → 首选 S7 通讯,简单、稳定、不用自己做协议。
六、S7 通讯典型应用场景(1500 项目)
1500 ↔ 1500 数据交互(主从控制、状态互传)
1500 ↔ 1200(大型 PLC 带小型分站)
1500 ↔ 上位机 / SCADA(采集报警、设定参数)
HMI 连 PLC(底层就是 S7 通讯)
第三方网关采集 1500 数据(用 S7 协议)
七、S7 通讯 vs GET/PUT(别搞混)
S7 通讯 = 大协议总称
GET/PUT = S7 通讯里最常用的 “读写指令”
GET/PUT 是 S7 通讯的子集。
上一篇:西门子PLC复合数据类型详解
下一篇:西门子OB组织块