当前位置: 首页 > 网络知识

Siemens 西门子 S7协议及报文格式详解

时间:2026-01-29 09:27:10

一、简介
  S7Cm(S7 Cmunication)是西门子专有的协议,是西门子S7通讯协议簇里的一种。
  S7通信协议是西门子S7系列PLC内部集成的一种通信协议,是S7系列PLC的精髓所在。 它是一种运行在传输层之上的(会话层/表示层/应用层)、经过特殊优化的通信协议,其信息传输可以基于MPI网络、PROFIBUS网络或者以太网
  S7在TCP连接上后还需要进行两次握手

  S7协议的TCP/IP实现依赖于面向块的ISO传输服务。S7协议被封装在TPKT和ISOCOTP协议中,这使得PDU(协议数据单元)能够通过TCP传送。

  可以下载Wireshark抓包工具进行抓包看详细的发送报文格式

二、第一次握手

当PDU类型为0x0E(CR Connect Request连接请求)的时候报文格式为

TPKT协议结构

COTP连接包的结构

第一次握手发送返回字节格式

支持的PUD类型

参数代码TPDUSize

三、第二次握手

当PDU类型为0xF0(DT Data,数据传输)的时候报文格式为

COTP功能包的格式

S7Cm协议结构

第二次握手发送返回字节格式

ROSCTR类型

四、数据读取/写入报文格式

数据读取/写入报文发送返回字节格式

S7协议的地址(偏移量)是按照位来运算的,因此需要地址值乘以8。 地址的三个字节范围为0x000000~0x08FFFF
比如M30000,实际地址就是30000*8=200,然后转化为3个字节。 200=0x03A980,对应三个字节【03 A9
80】 比如DB21234.00 其中DB号21234为0x52F2,DB编号对应两个字节【52 F2】
偏移量(地址)00乘以8就是320000,也就是0x04E200,对应三个字节【04 E2 00】

功能码

区域类型

SyntaxID类型

PLC区域类型块

1 Merker: [M]任意标记变量或标志寄存器驻留在这里。 2 3 Data Block: [DB] DB区域是存储设备不同功能所需数据的最常见位置,这些数据块编号为地址的一部分。 4 5 Input: [I]数字和模拟输入模块值,映射到存储器。 6 7 Output: [Q]类似的存储器映射输出。 8 9 Counter: PLC程序使用的不同计数器的[C]值。 10 11 Timer: PLC程序使用的不同定时器的[T]值。

西门子不通区域地址类型以及范围



上一篇:Qt 之 QProgressIndicator(等待提示框)
下一篇:Qt Excel读写 QXlsx的安装配置以及测试
西门子(Siemens)
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器
  • 英特尔第五代 Xeon CPU 来了:详细信息和行业反应
  • 由于云计算放缓引发扩张担忧,甲骨文股价暴跌
  • Web开发状况报告详细介绍可组合架构的优点
  • 如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳
  • 美光在数据中心需求增长后给出了强有力的预测
  • 2027服务器市场价值将接近1960亿美元
  • 生成式人工智能的下一步是什么?
  • 分享在外部存储上安装Ubuntu的5种方法技巧
  • 全球数据中心发展的关键考虑因素
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器

    英特尔第五代 Xeon CPU 来了:详细信息和行业反应

    由于云计算放缓引发扩张担忧,甲骨文股价暴跌

    Web开发状况报告详细介绍可组合架构的优点

    如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳

    美光在数据中心需求增长后给出了强有力的预测

    2027服务器市场价值将接近1960亿美元

    生成式人工智能的下一步是什么?

    分享在外部存储上安装Ubuntu的5种方法技巧

    全球数据中心发展的关键考虑因素