modbus tcp数据报文结构

请求:00 00 00 00 00 06 09 03 00 00 00 01

响应:00 00 00 00 00 05 09 03 02 12 34

  一次modbus tcp读取保持寄存器的通信分析(省略了ip/tcp头):从左向右分析该数据报文:

请求:

00 00为此次通信事务处理标识符,一般每次通信之后将被要求加1以区别不同的通信数据报文;

00 00表示协议标识符,00 00为modbus协议;

00 06为数据长度,用来指示接下来数据的长度,单位字节;

09为设备地址,用以标识连接在串行线或者网络上的远程服务端的地址。以上七个字节也被称为modbus报文头;

03为功能码,此时代码03为读取保持寄存器数据;

00 00为起始地址; (word数量)。

00 01为寄存器数量,(word数量)。

//modscan32 里面的 (address-1)*2=点位里面设置的地址
//modscan32 下面显示 的地址 是以字为单位,不是字节

响应:

00 00为此次通信事务处理标识符,应答报文要求与先前对应的请求保持一致;

00 00为协议标识符,与先前对应的请求保持一致;

00 05为数据长度,用来指示接下来数据的长度,单位字节;

09为设备地址,应答报文要求与先前对应的请求保持一致;

03为功能码,正常情况下应答报文要求与先前对应的请求保持一致,如果出错则返回80h+先前的功能码;

02指示接下来数据的字节长度;

12 34为被读取的保持寄存器中的数据值,即要求被读取的地址为00 00的保持寄存器中的数值为1234h。

>>4c 00 00 00 00 06 01 03 0000 0006

4c 请求回应 计数,
00 00 00 00 固定头
06 包长度 6个字节内容
01 03 00 00 00 0a
01 device id 01
03 功能码
0000 addreess:0001
0006 length 6

<<4c 00 00 00 00 0f 01 03 0c 3f 80 00 00 40 00 00 00 40 40 00 00

4c 请求回应 计数,
00 00 00 00 固定头
0f 包长度 15个字节内容
01 deviceid 01
03 功能码
0c 长度 3*4=12==0x0c

3d000000000608030015000a
>>3d 00000000 06 08 03 0015 000a

3d 自增加索引
00000000 固定
06 长度
08 deviceid
03 功能码
0015 addreess
000a 长度 10

7a0000000017080314405333334053333340533333
<<3d 00000000 17 08 03 14 3f 8c cc cd 40 0c cc cd 40 53 33 33 40 8c cc cd 40 b0 00 00

3d 自增加索引
00000000 固定
17 长度 5个点的数据*4=20==0x14 5个点的数据*4+3个字节标识=23==0x17
08 deviceid
03 功能码
14 后面的长度

全发float
40533333 -> 3.30
408ccccd -> 4.40

最新文章

  1. Python之路【第二篇】python基础 之基本数据类型
  2. 1、webservice的简单使用
  3. codevs 1163 访问艺术馆
  4. URAL 1932 The Secret of Identifier 题解
  5. I.MX6 KEY_ROW4 can&#39;t as GPIO pin
  6. c++学习-运算符重载
  7. AJAX三种返回值方式
  8. linux下shapely的安装
  9. Ruby 一些经常使用的细节
  10. Java向上转型的意义
  11. MySQL show status 参数详解
  12. 关于int *a[常量]与int (*a)[常量]的分析与区分(详解)
  13. BZOJ 3097: Hash Killer I【构造题,思维题】
  14. 洛谷P1171 售货员的难题【状压DP】
  15. (FZU 2150) Fire Game (bfs)
  16. [转载]哪个版本的gcc才支持c11
  17. CentOS 6.9上inotify-tools 安装及使用方法
  18. 如何用Photoshop画一个发光金币(unity游戏素材教程)
  19. meta name id class 标签的区别
  20. TCP的三次握手(建立连接)和四次挥手(关闭连接)(转)

热门文章

  1. luogu P3810 三维偏序(陌上花开)cdq分治
  2. Centos6.5使用yum安装mysql——快速上手必备(转载)
  3. 【6】学习C++之类的实例化及访问
  4. Linux配置环境变量
  5. 「JavaScript面向对象编程指南」基础
  6. Beta 冲刺(5/7)
  7. 【easy】101. Symmetric Tree
  8. cURL error 60: SSL certificate problem: unable to get local issuer
  9. 洛谷 P1414 又是毕业季II
  10. Django提交表单时遇到403错误:CSRF verification failed