西门子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]值。
西门子不同区域地址类型及其范围
热门推荐
同母异父财产继承:遗嘱效力决定权属,法定继承有5种情形
投币、合作与欺骗:<找朋友>里的信任经济学
迷你世界羊墩墩最佳繁殖时机揭秘
种植室内植物的好处和入门技巧
宋朝十大旷世词人:一人一首代表作,哪一首是你心中的宋词绝唱?
10首春雪诗词,庭树飞花,东风新暖,浪漫了整个春天
春天里绝妙的迎春诗词,最爱诗意里的春暖花开,唯美了整个春天
十首梅花诗歌,花开迎春,冬去春来
徽州古建:千年文化在传承中绽放新颜
23.3万元,2.4%GDP:中国家庭教育支出全景调查
上古神兽白泽的起源之谜:从东海神兽到东亚文化符号
基因改良造就蓝色玫瑰,成情人节送礼新宠
基因工程蓝玫瑰“蓝色妖姬”:身价不菲的文化新宠
大理、香格里拉之外:云南5个摄影爱好者私藏古镇
浙江前童古镇:八百年历史沉淀,1300间古建遗存
洛邑古城:百亿打造的隋唐古建群,北京游客高铁可达
韶关8处隐秘古村落:保留原生态,成休闲度假新去处
清朝皇帝的一天:早朝、批奏折、娱乐活动,揭秘皇帝的生活点滴!
古代贵族日常生活如何?除了吃喝玩乐,竟然在艺术领域颇有建设
速食行业竞争分析
药物、激光、手术:眼底出血的治疗与预防
眼底出血治疗与预防:从药物到手术的全方位指南
从基因到影像:眼底出血精准医疗全解析
眼底出血四大类型:症状识别与治疗指南
及时治疗是关键:眼底出血的症状与三大疗法详解
灰指甲真的会“一个传染俩”吗?不注意这几件事你也可能中招!
80后中年男:被灰指甲折磨多年,妻子嫌弃,心态崩溃,还有救吗?
脑机轮椅、视力帮手、便携洗浴机……AI助残系列产品问世 深圳:科技点亮生活之光
残奥运动员比赛时,用的轮椅为什么是“八字形”的?
轮椅转运病人的心理护理