体系与分层
S7 通信覆盖西门子 PLC 与其上位系统之间的数据交换,向上服务组态软件、上位机与第三方驱动,向下落在工业以太网或旧的现场总线上。它采用客户端/服务器模型:主动方发起作业请求,CPU 作为服务器应答。协议分层清晰:底层是以太网,其上是承载连接的传输层封装,再往上才是 S7 报文,由报文头、参数段与数据段组成。今天新项目更倾向 OPC UA,但在役系统与大量第三方驱动仍以这套体系为主。
基本信息
| 适用机型 | 西门子 S7 系列 PLC,含早期与新一代实现 |
|---|---|
| 常用传输 | 工业以太网上的 ISO-on-TCP,习惯使用 102 端口 |
| 旧式传输 | 多点接口与现场总线,速率低、接入受限 |
| 通信角色 | 上位机或 PLC 主动发起,CPU 应答 |
| 基本报文 | 作业、确认、确认数据、用户数据 |
| 常用功能 | 读变量、写变量,可一次携带多个数据条目 |
| 安全现状 | 无认证、无加密,必须靠网络分区保护 |
典型使用场景
- 上位机组态:采集数据块、位存储器与输入输出区,做画面与报警
- PLC 之间交换数据:配置连接后用读写功能交换状态与配方
- 第三方驱动接入:多数协议库通过这套接口访问西门子 PLC
- 调试与在线监视:工程软件在线查看变量、下载程序
- 存量系统维护:老设备无法升级到新协议时的唯一通道
- 迁移规划:评估哪些点位将改用 OPC UA,哪些继续留在原通道
数据区速查
| 数据区 | 含义 | 典型用途 |
|---|---|---|
| 输入区 | 来自现场信号的映像 | 只读,用于采集状态 |
| 输出区 | 送往执行器的映像 | 写入影响输出,风险最高 |
| 位存储器 | 中间标志位 | 程序内部状态,常被上位机借用 |
| 数据块 | 用户自定义数据容器 | 配方、参数、测量值的主要载体 |
| 定时器与计数器 | 系统资源 | 老机型可通过通信读取,新机型多已改为数据块 |
报文结构概念
报文结构概念
# 分层:传输层封装(长度与版本)→ 连接层(连接请求/确认)→ S7 报文
# S7 报文头:协议标识、报文类型、引用号、参数长度、数据长度
# 参数段:功能码 + 条目数,一次请求可包含多个读或写条目
# 数据段:传输尺寸、长度、数据区、地址与数据类型
# 效率要点:一次读多个变量远优于逐点请求,但受报文长度上限约束上位机采集慢往往不是网络问题,而是逐点请求太多:把相邻变量合并成一个请求,响应时间通常成倍下降。
这套协议没有认证与加密:把它暴露到不可信网络,等于让任何能到达端口的程序读写数据块与输出区。