当前位置: 首页 > news >正文

西门子 S7 协议解析

目录

1 建立连接

2 读数据

3 写数据


1 建立连接

03 00 00 16 11 E0 00 00 00 01 00 C1 02 10 00 C2 02 03 01 C0 01 0A (第一次握手报文)

03 00 报文头

00 16 数据总长度:22

11 E0 00 00 00

01

00 C1

02 10

00 C2

02 03

01 C0

01 0A 报文结束

03 00 00 16 11 D0 00 01 00 11 00 C0 01 0A C1 02 10 00 C2 02 03 01 (第一次握手返回)

03 00 报文头

00 16 数据总长度:22

11 D0 00 01 00

11

00 C0

01 0A

C1 02

10 00

C2 02

03 01 报文结束

03 00 00 19 02 F0 80 32 01 00 00 CC C1 00 08 00 00 F0 00 00 01 00 01 03 C0 (第二次握手报文)

03 00 报文头

00 19 数据总长度:25

02 F0 80 32

01

00 00

CC C1

00 08

00 00

F0 00

00 01

00 01

03 C0 报文结束

03 00 00 1B 02 F0 80 32 03 00 00 CC C1 00 08 00 00 00 00 F0 00 00 01 00 01 00 F0 (第二次握手返回)

03 00 报文头

00 1B 数据总长度:27

02 F0 80 32

03

00 00

CC C1

00 08

00 00

00 00

F0 00

00 01

00 01

00 F0 报文结束

2 读数据

S7协议的地址(偏移量)是按照位来运算的,因此需要地址值乘以8

03 00 00 43 02 F0 80 32 01 00 00 00 05 00 32 00 00 04 04 12 0A 10 02 00 01 00 00 81 00 00 00 12 0A 10 02 00 01 00

00 82 00 00 00 12 0A 10 02 00 01 00 00 83 00 00 00 12 0A 10 02 00 08 00 01 84 00 00 00(读取数据)

03 00 报文头

00 43 整条数据长度 67

02 F0 80 32 固定长度:4(大概是协议类型)

01 命令类型:发

00 00 00 05 标识序列号:6(与返回数据一致)

00 32 00 00 命令数据总长度:50

04 命令起始符:4

04 读取数据块个数:4

12 0A 10                              固定长度:3

02                                         02按照字节读,01按照位读

00 01 读取数据 byte 个数:18 个位)

00 00 读取数据块编号:0

81 读取数据块类型:I

00 00 00 读取数据地址偏移量:0,地址是实际地址乘以8O10,则是8*10O8.18*10+1

12 0A 10                              固定长度:3

02                                         02按照字节读,01按照位读

00 01 读取数据 byte 个数:18 个位)

00 00 读取数据块编号:0

82 读取数据块类型:Q

00 00 00 读取数据地址偏移量:0

12 0A 10                              固定长度:3

02                                         02按照字节读,01按照位读

00 01 读取数据 byte 个数:18 个位)

00 00 读取数据块编号:0

83 读取数据块类型:M

00 00 00 读取数据地址偏移量:0

12 0A 10                              固定长度:3

02                                         02按照字节读,01按照位读

00 08 读取数据 byte 个数:18 个位)

00 01 读取数据块编号:1

84 读取数据块类型:DB

00 00 00 读取数据地址偏移量:0bit 偏移量)

03 00 00 2F 02 F0 80 32 03 00 00 00 05 00 02 00 1A 00 00 04 04 FF 04 00 08 00 00 FF 04 00 08 01 00 FF 04 00 08 F2 00

FF 04 00 20 AB CD EF 01 (读取数据返回)

03 00 报文头

00 2F 数据总长度:47

02 F0 80 32 固定长度:4(大概是协议类型)

03 命令类型:收

00 00 00 05 标记序列号:5

00 02 固定长度:2(作用不详)

00 1A 00 00 有效数据长度:26(从第一个数据的前缀开始计算)

04 命令起始符:

04 读取数据块个数:4

FF 04 00 固定长度:3(返回数据前缀)

08 当前数据有效位数:8bit

00 00 读取数据 100000000

FF 04 00 固定长度:3(返回数据前缀)

08 当前数据有效位数:8bit

01 00 读取数据:00000001

FF 04 00 固定长度:3(返回数据前缀)

08 当前数据有效位数:8bit

F2 00 读取数据:11110010

FF 04 00 固定长度:3(返回数据前缀)

20 当前数据有效位数:32bit

AB CD EF 01 读取数据:101010111100110111101111000000012882400001

3 写数据

03 00 00 24 02 F0 80 32 01 00 00 00 09 00 0E 00 05 05 01 12 0A 10 01 00 01 00 00 83 00 00 29 00 03 00 01 01(写入数

据)

03 00 报文头

00 24 数据总长度:36

02 F0 80 32 固定长度:4

01 命令类型:发

00 00 00 09 标记序列号:9

00 0E 固定长度:2

00 05 有效数据长度:5(从偏移量后第一位开始计算)

05 命令起始符:

01 写入数据块个数:1

12 0A 10 固定长度:3(返回数据前缀)

01 写入方式:01 bit 写入;02 byte 写入

00 01 写入数据个数:1byte 方式可以多个写入,bit 只能单个写入)

00 00 写入数据块编号:0

83 写入数据类型:M

00 00 29 写入地址偏移量:41 =M5.1

00 03 写入方式:03 bit 写入;04 byte 写入

00 01 写入 bit 的个数:1

01 写入的值:1

03 00 00 16 02 F0 80 32 03 00 00 00 09 00 02 00 01 00 00 05 01 FF(写入数据返回)

03 00 报文头

00 16 数据总长度:22

02 F0 80 32 固定长度:4

03 命令类型:收

00 00 00 09 标记序列号:9

00 02

00 01

00 00

05 01

FF 表示写入正常

http://www.lryc.cn/news/172038.html

相关文章:

  • 一、python解题——求序列最长递增
  • 【Java 基础篇】Java线程:volatile关键字与原子操作详解
  • 992. K 个不同整数的子数组
  • Vue 使用vue-cli构建SPA项目(超详细)
  • SpringBoot工程模板
  • 学习SLAM:SLAM进阶(十)暴力更改ROS中的PCL库
  • js 事件流、事件冒泡、事件捕获、阻止事件的传播
  • 一家美国公司被黑,一个拉美国家政务服务瘫痪
  • c++ QT 十八位时间戳转换
  • 全国职业技能大赛云计算--高职组赛题卷④(容器云)
  • 【TCP】延时应答 与 捎带应答
  • URL与URI小结
  • QT--day5
  • 在windows和linux上玩转Tensorrt
  • 七天学会C语言-第五天(函数)
  • 340. 至多包含 K 个不同字符的最长子串
  • 【分布式计算】副本数据Replicated Data
  • erlang练习题(二)
  • CRM软件系统价格不同的原因
  • json数据解析
  • Verilog零基础入门(边看边练与测试仿真)-状态机-笔记(7-10讲)
  • 【Hadoop】HDFS API 操作大全
  • Webpack打包图片
  • DipC 构建基因组 3D 结构(学习笔记)
  • Qt中音频的使用
  • [centos]centos7源码编译cmake报错Could NOT find OpenSSL
  • vue若依前端项目搭建
  • 基于win32实现TB登陆滑动验证
  • vue学习-07todoList案例与浏览器本地存储
  • 探索智能应用的基石:多模态大模型赋能文档图像处理