西门子S7协议及报文格式详解
创作时间:
作者:
@小白创作中心
西门子S7协议及报文格式详解
引用
1
来源
1.
https://www.cnblogs.com/ybqjymy/p/18149961
西门子S7协议是西门子S7系列PLC的核心通信协议,广泛应用于工业自动化领域。本文将详细介绍S7协议的报文格式,包括两次握手过程和数据读取/写入的具体格式,帮助读者深入理解这一重要协议的工作原理。
一、简介
S7Comm(S7 Communication)是西门子专有的协议,属于西门子S7通讯协议簇的一种。S7通信协议是西门子S7系列PLC内部集成的一种通信协议,是S7系列PLC的核心技术之一。它是一种运行在传输层之上的(会话层/表示层/应用层)、经过特殊优化的通信协议,其信息传输可以基于MPI网络、PROFIBUS网络或者以太网。
S7在TCP连接上后还需要进行两次握手。S7协议的TCP/IP实现依赖于面向块的ISO传输服务。S7协议被封装在TPKT和ISO-COTP协议中,这使得PDU(协议数据单元)能够通过TCP传送。可以使用Wireshark抓包工具查看详细的发送报文格式。
二、第一次握手
当PDU类型为0x0E(CR Connect Request连接请求)时,报文格式如下:
TPKT协议结构
COTP连接包的结构
第一次握手发送返回字节格式包括支持的PUD类型和参数代码TPDU-Size。
三、第二次握手
当PDU类型为0xF0(DT Data,数据传输)时,报文格式如下:
COTP功能包的格式
S7Comm协议结构
第二次握手发送返回字节格式包括ROSCTR类型。
四、数据读取/写入报文格式
数据读取/写入报文发送返回字节格式包括S7协议的地址(偏移量)运算方式。S7协议的地址(偏移量)是按照位来运算的,因此需要地址值乘以8。地址的三个字节范围为0x000000~0x08FFFF。
例如:
- M30000,实际地址就是30000*8=240000,然后转化为3个字节。240000=0x03A980,对应三个字节【03 A9 80】
- DB21234.40000,其中DB号21234为0x52F2,DB编号对应两个字节【52 F2】
- 偏移量(地址)40000乘以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]值。
西门子不同区域地址类型及其范围
热门推荐
一百万日元是多少人民币?日元兑换人民币的计算方式
大学与企业合作推动产学研结合
各种眉毛适合的脸型
青砖尺寸规格及特点:传统建筑材料的现代应用
青砖尺寸规格及特点详解
实现数据中心的高效能冷却方案
50句超悠闲的诗词,松弛感拉满,专治精神内耗!
50句超悠闲的诗词,松弛感拉满,专治精神内耗!
中医八纲辨证理论:寒热虚实表里阴阳的辨证方法
管理心理学:用心理学解读企业管理的奥秘
从基片到基板:氮化铝陶瓷金属化有哪些技术路线?
2025年社保个人缴费标准最新消息 社保个人缴纳多少钱一个月?
身份证周六周日可以办吗?补办流程及所需材料详解
汽车油耗差异评估全攻略:从行驶速度到排量计算
KB0开关是什么?深入解析其类型特点与应用领域
干部如何管理团队
美拉德反应与焦糖化反应有何不同?
美拉德反应与焦糖化反应有何不同?
心率血氧传感器在运动健身领域的应用如何?
人形机器人、AI股熄火!能抄底吗?
别让情绪和偏见蒙蔽了你
三国志战略版:攻城时如何运用外交手段
大豆蛋白的特性、应用与加工
PHEV(插混)6种构型和技术原理解析
悉知和知悉有什么区别?悉知与知悉的含义与用法
主婚人证婚人区别有哪些
骨折愈合全过程是怎样的
骨折病人护理的方法
研发经理的职责与挑战:如何在技术与管理中找到平衡?
艾尔登法环新手慌选职业? 推荐几个超适合的!