调试modbus  tcp 整理百度文库文档如下

《modbus-tcp-报文举例分析》

《MODBUSTCP通讯报文》

Client request:

19 B2 00 00 00 06 06 03 00 27 00 02

上面是modbus客户端发出的报文内容,为modbus tcp/ip协议格式,其前面的六个字节为头字节( header handle);

19 B2 00 00 00 06

19 B2 两个字节是Client发出的检验信息,Sever端只是需要将这两个字节的内容copy以后再放到response的报文的相应位子就可以了

00 00 两个字节是表示tcp/ip 的协议的modbus的协议;

00 06 两个字节表示的是header handle后面还有多长的字节,即表示的是该字节以后的字节长度(lengch),可以看到在00 06后面还有 “06 03 00 27 00 02”六个字节,所以这两个字节表示的就是6;

PDU:

“06 03 00 27 00 02”

06 一个字节表示slave address;

03 为Fuction code ;

00 27 表示Client request的寄存器地址;

00 02 表示request 寄存器的长度;(寄存器个数)

Server response:

19 B2 00 00 00 07 06 03 04 00 00 00 00

Header handle : “ 19 B2 00 00 00 07”

19 B2 为Server返回的检验码,copy from Client request;

其它的表示与客户端的表示相同

PDU:

“ 06 03 04 00 00 00 00”

06 是Slave address,从地址数;

03是Function code ;

04表示了回复给Client request的需要读的寄存器的值的个数,这里因为主地址向从地址读了2个寄存器即2个16位的寄存器(2个字)所以这里为4个字节,因为2个字为4个字节,而04这个字节表示的就是从地址要回复给主地址的寄存器字节长度,

00 00 00 00 表示了4个字节的值

ModBusTcp与串行链路Modbus的数据域是一致的,具体数据域可以参考串行modbus。这里给出几个ModbusTcp的链路解析说明,辅助新人分析报文。

1、数据请求

97 76 00 00 00 06 04 04 00 7D 00 7D

示例

长度

说明

备注

Map报文头

0x97

1

事务处理标识符Hi

客户机发起,服务器复制,用于事务处理配对

0x96

1

事务处理标识符Lo

0x0000

2

协议标识符号

客户机发起,服务器复制

Modbus协议 = 0.

0x0006

2

长度

从本字节下一个到最后

0x04

1

单元标识符

客户机发起,服务器复制

串口链路或其他总线上远程终端标识

功能码

0x04

1

功能码,读寄存器

参考标准modbus协议

数据

0x007D

2

起始地址

0x 007D

2

寄存器数量

校验

2、数据请求回复

97 76 00 00 00 FD 04 04 FA AB 9E 41 18 7A E1 3F 94 7A E1 3F 94 0A 3D 3F 97 51 EC 3F 98 CC CD C0 6C 33 33 C0 E3 CC CD C0 EC EB 85 41 F1 D7 0A 41 E9 47 AE 41 ED EB 85 41 F1 19 9A 43 D0 E6 66 43 C9 4C CD 43 CF EB 85 41 F3 66 66 42 0F CC CD 41 C2 E6 66 44 0A 1E B8 41 FB A3 D7 42 0C CC CD 41 BC C0 00 44 0A B8 52 41 F6 5C 29 42 0F 47 AE 41 D1 C6 66 44 0A 00 00 00 00 C9 9E FF 7F C9 9E FF 7F C9 9E FF 7F C9 9E FF 7F C9 9E FF 7F C9 9E FF 7F C9 9E FF 7F C9 9E FF 7F C9 9E FF 7F 05 16 00 00 04 11 00 00 05 16 00 00 04 11 00 00 05 16 00 00 04 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0A 00 0A 00 0A 00 0A 00 04 00 04 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0F

示例

长度

说明

备注

Map报文头

0x97

1

事务处理标识符Hi

客户机发起,服务器复制,用于事务处理配对

0x96

1

事务处理标识符Lo

0x0000

2

协议标识符号

客户机发起,服务器复制

Modbus协议 = 0.

0x00FD

2

长度

从本字节下一个到最后

0x04

1

单元标识符

客户机发起,服务器复制

串口链路或其他总线上远程终端标识

功能码

0x04

1

功能码,读寄存器

参考标准modbus协议

数据

0x FA

1

字节个数

0x----

数据

校验

3、写多个寄存器

97 79 00 00 00 09 04 10 00 00 00 01 02 00 01

示例

长度

说明

备注

Map报文头

0x97

1

事务处理标识符Hi

客户机发起,服务器复制,用于事务处理配对

0x79

1

事务处理标识符Lo

0x0000

2

协议标识符号

客户机发起,服务器复制

Modbus协议 = 0.

0x0009

2

长度

从本字节下一个到最后

0x04

1

单元标识符

客户机发起,服务器复制

串口链路或其他总线上远程终端标识

功能码

0x10

1

功能码,读寄存器

参考标准modbus协议

数据

0x0000

2

起始地址

0x 0001

2

写寄存器数量

0x 02

1

写字节的个数

00 01

2

目标值

校验

4、写多个寄存器响应

97 79 00 00 00 06 04 10 00 00 00 01

示例

长度

说明

备注

Map报文头

0x97

1

事务处理标识符Hi

客户机发起,服务器复制,用于事务处理配对

0x79

1

事务处理标识符Lo

0x0000

2

协议标识符号

客户机发起,服务器复制

Modbus协议 = 0.

0x0006

2

长度

从本字节下一个到最后

0x04

1

单元标识符

客户机发起,服务器复制

串口链路或其他总线上远程终端标识

功能码

0x10

1

功能码,读寄存器

参考标准modbus协议

数据

0x0000

2

起始地址

0x 0001

2

寄存器个数

校验

Modbus TCP 示例报文的更多相关文章

  1. modbus tcp数据报文结构

    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 ...

  2. DotNetty 实现 Modbus TCP 系列 (一) 报文类

    本文已收录至:开源 DotNetty 实现的 Modbus TCP/IP 协议 Modbus TCP/IP 报文 报文最大长度为 260 byte (ADU = 7 byte MBAP Header ...

  3. 初识Modbus TCP/IP-------------C#编写Modbus TCP客户端程序(一)

    转自:http://blog.csdn.net/thebestleo/article/details/52269999 首先我要说明一下,本人新手一枚,本文仅为同样热爱学习的同学提供参考,有不 对的地 ...

  4. C#ModBus Tcp 报文解析

    上一篇博客已经完成 C#ModBus Tcp Master的实现 本篇主要对不同的功能码所发出的报文进行解析(包括请求报文及响应报文) 读操作 功能码 0x01 读一组线圈 读取站号为1 从地址12开 ...

  5. 开放型Modbus/TCP 规范

    修订版 1.0,1999 年3 月29 日Andy SwalesSchneider 电气公司aswales@modicon.com目录目录............................... ...

  6. freemodbus modbus TCP 学习笔记

    1.前言     使用modbus有些时间了,期间使用过modbus RTU也使用过modbus TCP,通过博文和大家分享一些MODBUS TCP的东西.在嵌入式中实现TCP就需要借助一个以太网协议 ...

  7. MODBUS TCP/IP协议规范详细介绍

    1.该规范的发展概况                                    原始版本1997年9月3日作为公共评论的草案.     再版1999年3月29日,即修订版1.0.     ...

  8. DotNetty 实现 Modbus TCP 系列 (四) Client & Server

    本文已收录至:开源 DotNetty 实现的 Modbus TCP/IP 协议 Client public class ModbusClient { public string Ip { get; } ...

  9. DotNetty 实现 Modbus TCP 系列 (二) ModbusFunction 类图及继承举例

    本文已收录至:开源 DotNetty 实现的 Modbus TCP/IP 协议 ModbusFunction 类图如下: 如前文所述,所有请求/相应的 PDU 均继承自 ModbusFunction, ...

随机推荐

  1. js进阶 12-13 jquery中one方法和trigger方法如何使用

    js进阶 12-13 jquery中one方法和trigger方法如何使用 一.总结 一句话总结: 1.one()方法和on()方法的区别是什么? 除了one()只执行一次,其它和on()一模一样,包 ...

  2. numpy 高阶函数 —— np.histogram

    np.diff(a, n=1, axis=-1):n 表示差分的阶数: >> x = np.array([1, 2, 4, 7, 0]) >> np.diff(x) array ...

  3. 2、HZK和FreeType的使用

    HZK16汉字库的使用 定义如下: unsigned char str[]="我" 在运行时str被初始化为2个字节长度,内容为“我”的GBK码,为:0xCE(区码),0xD2(位 ...

  4. 【BZOJ 4556】字符串

    [链接]h在这里写链接 [题意]     给你一个长度为n(n<=10^5)的字符串以及一个整数m(m<=10^5),代表询问的次数.     每个询问由4个整数a,b,c,d给出    ...

  5. ios越狱开发

    theos/Logos常用命令 %hook 用的最多,意思是钩住一个类. %hook SpringBoard %end %new (v@:) 新建方法 v是返回值@代表参数名 %new(v@:@i) ...

  6. php 面试题一(看视频的学习量比网上瞎转悠要清晰和明了很多)(看视频做好笔记)(注重复习)

    php 面试题一(看视频的学习量比网上瞎转悠要清晰和明了很多)(看视频做好笔记)(注重复习) 一.总结 1.无线分类的本质是树(数据结构)(数的话有多种储存结构可以实现,所以对应的算法也有很多),想到 ...

  7. python中有关字符串的处理

    原文 Python 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) 去空格及特殊符号 s.strip().lstrip().rstrip(',') 复制字 ...

  8. 在vue中使用babel-polyfill

    在 Vue.js项目中使用Vuex,Vuex 依赖 Promise,所以如果你的浏览器没有实现 Promise (比如 IE),那么就需要使用一个 polyfill 的库 我们可以通过babel-pr ...

  9. android SQLite 使用实例

    Android作为眼下主流的移动操作系统,全然符合SQLite占用资源少的优势,故在Android平台上,集成了一个嵌入式关系型数据库-SQLite.假设想要开发 Android 应用程序,须要在 A ...

  10. 在Excel中粘贴时怎样跳过隐藏行

    http://www.excel123.cn/Article/exceljichu/201203/932.html 有时在筛选后需要将其他区域中的连续行数据复制粘贴到筛选区域,以替换筛选后的数据.由于 ...