西门子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]值。
西门子不同区域地址类型及其范围
热门推荐
艺评|贺有德:我对故乡爱得深沉——品读谭谈最新散文集《故乡》
长沙跨年攻略:滨江文化园VS大王山,还有这些地方不容错过!
长沙必打卡地道美食:亦华家菜屋、老街鱼嘴巴、鲁哥饭店
蒋勤勤新片《莫莉的冒险》即将上映,从古装美人到实力影后
蒋勤勤凭《草木人间》封后,实现影视领域突破
蒋勤勤演绎真实故事:<小小的我>讲述脑瘫女孩圆梦路
探访庙屯:美丽乡村里的蒙汉文化交融
奈曼旗:草原上的历史文化与美食之旅
那达慕盛会:奈曼旗的传统狂欢
探访奈曼旗庙屯嘎查:历史与现代的交融
煎饼、扒鸡、油旋:十种美食里的山东味道
韩国司法制度:独立性与透明度并重的亚洲典范
梦见猫的多重解读:传统文化与现代心理视角
焦虑到吃不下睡不着?“寝食难安”成语释义
从自然到人文:多角度审视古代人的饮食困境
雾天行驶开什么灯?如何保证行车安全
奈曼旗村干部:乡村振兴的“领头雁”
奈曼旗“育苗培养”工程:为乡村振兴蓄好“源头活水”
家庭版米其林级菠萝咕咾肉:传统名菜的现代演绎
广东米其林推荐:菠萝咕咾肉家庭简易版
北京29路公交出行指南:从北京站东街到弘燕公交场站
家庭版菠萝咕咾肉:亲子厨房里的甜蜜时光
王楚钦孙颖莎:赛场内外的乒乓情缘
肠梗阻患者如何护理?五大要点助你科学应对
肠道“堵车”怎么办?肠阻塞的病因、症状与应对方法
全程超速的判定标准是什么?如何避免被误判为全程超速?
汽车的标准行驶速度是每小时多少千米?
郭沫若诞辰132周年:现代文学奠基者的传奇人生
王楚钦:从巴黎奥运看国乒新生代的崛起
新加坡要严查公共卫生啦!乱丢垃圾不仅要扫大街,还要拍照曝光全网社死