西门子S7协议及报文格式详解
创作时间:
作者:
@小白创作中心
西门子S7协议及报文格式详解
引用
1
来源
1.
https://www.cnblogs.com/ybqjymy/p/18149961
西门子S7协议是西门子S7系列PLC内部集成的一种通信协议,运行在传输层之上,支持MPI网络、PROFIBUS网络和以太网等多种传输方式。本文将详细介绍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协议的地址(偏移量)是按照位来运算的,因此需要地址值乘以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区域类型块:
- Merker: [M]任意标记变量或标志寄存器驻留在这里。
- Data Block: [DB] DB区域是存储设备不同功能所需数据的最常见位置,这些数据块编号为地址的一部分。
- Input: [I]数字和模拟输入模块值,映射到存储器。
- Output: [Q]类似的存储器映射输出。
- Counter: PLC程序使用的不同计数器的[C]值。
- Timer: PLC程序使用的不同定时器的[T]值。
西门子不通区域地址类型以及范围
热门推荐
汉兰达国几排放 广汽丰田汉兰达排放标准国几
朗动如何正确添加防冻液?添加防冻液时需注意哪些问题?
更换防冻液的5个误区:避免可延长发动机寿命
15 项血常规指标最全解读
CDA认证:填补数据分析人才缺口的标准化解决方案
金融行业急需230万数据分析师,北上深年薪超30万
从数据分析师到数据科学家:必备技能与进阶指南
恩施七星寨攻略:天梯云海栈道,吃住行游全攻略
生肖狗猪成婚:互补性格助力幸福婚姻
属猪属牛婚配:五行相生还需性格相合
稳重遇豁达:牛猪组合的婚姻幸福密码
焖鱼烹饪技巧:如何做出美味焖鱼
秘制红焖带鱼这样做,外酥里嫩超入味
反流性食管炎患者可适量饮用黑芝麻糊,但需警惕过敏
从中药到针灸:中医全方位治疗急性胃炎方案
反流性食管炎患者可适量食用芝麻核桃(过敏者除外)
四种营养素调理胃食道逆流,木瓜是维生素C最佳来源
反流性食管炎患者可适量食用芝麻核桃,注意过敏问题
枸杞鸡肝汤领衔,五种食材助你春季养肝
鸡肉先煮一小时,再加配料:老火鸡汤制作要点
1-2小时炖出营养鸡汤:选材、焯水、慢炖全攻略
卤菜制作完全指南:原料处理、卤水配方到成品详解
中保研碰撞测试解析:别克昂科威安全性能表现如何?
心血管用药丹参滴丸:三大功效与安全使用指南
丹参:活血化瘀的中药,从心血管到皮肤的多重功效
咖啡因+烟酰胺:科学护肤新选择,双效击退黑眼圈
黑眼圈形成原因及科学改善方法
睡眠不足是黑眼圈的罪魁祸首?这些改善方法请收好
荞麦:降脂降糖又平喘,这四类人不宜食用
黑眼圈表情包爆红,揭露职场高压真相