当前位置:网站首页>modbus-tcp-rtu协议图表
modbus-tcp-rtu协议图表
2022-06-30 00:24:00 【WX_LW】
MODBUS TCP
读寄存器 请求 | 序号 | 意义 | 所占字节 | 字节存放格式 |
1 | 事务处理标识 | 2个字节 | 高字节在前 | |
2 | 协议标识 | 2个字节 | 高字节在前 | |
3 | 长度 | 2个字节 | 高字节在前 | |
4 | 单元标识 | 1个字节 | 0x00-0xff | |
5 | 功能码 | 1个字节 | 0x03 | |
6 | 起始寄存器地址 | 2个字节 | 高字节在前 | |
7 | 寄存器个数 | 2个字节 | 高字节在前 |
读寄存器 回应 | 序号 | 意义 | 所占字节 | 字节存放格式 |
1 | 事务处理标识 | 2个字节 | 高字节在前 | |
2 | 协议标识 | 2个字节 | 高字节在前 | |
3 | 长度 | 2个字节 | 高字节在前 | |
4 | 单元标识 | 1个字节 | 0x00-0xff | |
5 | 功能码 | 1个字节 | 0x03 | |
6 | 数据长度 | 1个字节 | 寄存器个数*2 | |
7 | 数据 | 寄存器个数 *2个字节 | 每个寄存器 高字节在前 |
写单个 寄存器 请求 | 序号 | 意义 | 所占字节 | 字节存放格式 |
1 | 事务处理标识 | 2个字节 | 高字节在前 | |
2 | 协议标识 | 2个字节 | 高字节在前 | |
3 | 长度 | 2个字节 | 高字节在前 | |
4 | 单元标识 | 1个字节 | 0x00-0xff | |
5 | 功能码 | 1个字节 | 0x10 | |
6 | 寄存器地址 | 2个字节 | 高字节在前 | |
7 | 寄存器数值 | 2个字节 | 高字节在前 |
写单个 寄存器 回应 | 序号 | 意义 | 所占字节 | 字节存放格式 |
1 | 事务处理标识 | 2个字节 | 高字节在前 | |
2 | 协议标识 | 2个字节 | 高字节在前 | |
3 | 长度 | 2个字节 | 高字节在前 | |
4 | 单元标识 | 1个字节 | 0x00-0xff | |
5 | 功能码 | 1个字节 | 0x10 | |
6 | 寄存器地址 | 2个字节 | 高字节在前 | |
7 | 寄存器数值 | 2个字节 | 高字节在前 |
写多个 寄存器 请求 | 序号 | 意义 | 所占字节 | 字节存放格式 |
1 | 事务处理标识 | 2个字节 | 高字节在前 | |
2 | 协议标识 | 2个字节 | 高字节在前 | |
3 | 长度 | 2个字节 | 高字节在前 | |
4 | 单元标识 | 1个字节 | 0x00-0xff | |
5 | 功能码 | 1个字节 | 0x10 | |
6 | 起始寄存器地址 | 2个字节 | 高字节在前 | |
7 | 寄存器个数 | 2个字节 | 高字节在前 | |
8 | 数据长度 | 1个字节 | 寄存器个数*2 | |
9 | 数据 | 寄存器个数 *2个字节 | 每个寄存器 高字节在前 |
写多个 寄存器 回应 | 序号 | 意义 | 所占字节 | 字节存放格式 |
1 | 事务处理标识 | 2个字节 | 高字节在前 | |
2 | 协议标识 | 2个字节 | 高字节在前 | |
3 | 长度 | 2个字节 | 高字节在前 | |
4 | 单元标识 | 1个字节 | 0x00-0xff | |
5 | 功能码 | 1个字节 | 0x10 | |
6 | 起始寄存器地址 | 2个字节 | 高字节在前 | |
7 | 寄存器个数 | 2个字节 | 高字节在前 |
错误返回 | 序号 | 意义 | 所占字节 | 字节存放格式 |
1 | 事务处理标识 | 2个字节 | 高字节在前 | |
2 | 协议标识 | 2个字节 | 高字节在前 | |
3 | 长度 | 2个字节 | 高字节在前 | |
4 | 单元标识 | 1个字节 | 0x00-0xff | |
5 | 功能码 | 1个字节 | 请求功能码+0x80 | |
6 | 错误码 | 1个字节 | 其代号见表格 |
错误代码 | 错误代号 | 意义 |
0x01 | 不支持该功能码 | |
0x02 | 越界 | |
0x03 | 寄存器数量超出范围 | |
0x04 | 读写错误 |
MODBUS RTU
读寄存器 请求 | 序号 | 意义 | 所占字节 | 字节存放格式 |
1 | 从设备地址 | 1个字节 | 0x00-0xff | |
2 | 功能码 | 1个字节 | 0x03 | |
3 | 起始寄存器地址 | 2个字节 | 高字节在前 | |
4 | 寄存器个数 | 2个字节 | 高字节在前 | |
5 | CRC校验码 | 2个字节 | 低字节在前 |
读寄存器 回应 | 序号 | 意义 | 所占字节 | 字节存放格式 |
1 | 从设备地址 | 1个字节 | 0x00-0xff | |
2 | 功能码 | 1个字节 | 0x03 | |
3 | 数据长度 | 1个字节 | 寄存器个数*2 | |
4 | 数据 | 寄存器个数 *2个字节 | 每个寄存器 高字节在前 | |
5 | CRC校验码 | 2个字节 | 低字节在前 |
写单个 寄存器 请求 | 序号 | 意义 | 所占字节 | 字节存放格式 |
1 | 从设备地址 | 1个字节 | 0x00-0xff | |
2 | 功能码 | 1个字节 | 0x10 | |
3 | 起始寄存器地址 | 2个字节 | 高字节在前 | |
4 | 寄存器数值 | 2个字节 | 高字节在前 | |
5 | CRC校验码 | 2个字节 | 低字节在前 |
写单个 寄存器 回应 | 序号 | 意义 | 所占字节 | 字节存放格式 |
1 | 从设备地址 | 1个字节 | 0x00-0xff | |
2 | 功能码 | 1个字节 | 0x10 | |
3 | 起始寄存器地址 | 2个字节 | 高字节在前 | |
4 | 寄存器数值 | 2个字节 | 高字节在前 | |
5 | CRC校验码 | 2个字节 | 低字节在前 |
写多个 寄存器 请求 | 序号 | 意义 | 所占字节 | 字节存放格式 |
1 | 从设备地址 | 1个字节 | 0x00-0xff | |
2 | 功能码 | 1个字节 | 0x10 | |
3 | 起始寄存器地址 | 2个字节 | 高字节在前 | |
4 | 寄存器个数 | 2个字节 | 高字节在前 | |
5 | 数据长度 | 1个字节 | 寄存器个数*2 | |
6 | 数据 | 寄存器个数 *2个字节 | 每个寄存器 高字节在前 | |
7 | CRC校验码 | 2个字节 | 低字节在前 |
写多个 寄存器 回应 | 序号 | 意义 | 所占字节 | 字节存放格式 |
1 | 从设备地址 | 1个字节 | 0x00-0xff | |
2 | 功能码 | 1个字节 | 0x10 | |
3 | 起始寄存器地址 | 2个字节 | 高字节在前 | |
4 | 寄存器个数 | 2个字节 | 高字节在前 | |
5 | CRC校验码 | 2个字节 | 低字节在前 |
错误返回 | 序号 | 意义 | 所占字节 | 字节存放格式 |
1 | 从设备地址 | 1个字节 | 0x00-0xff | |
2 | 功能码 | 1个字节 | 请求功能码+0x80 | |
3 | 错误码 | 1个字节 | 其代号见表格 | |
4 | CRC校验码 | 2个字节 | 低字节在前 |
错误代码 | 错误代号 | 意义 |
0x01 | 不支持该功能码 | |
0x02 | 越界 | |
0x03 | 寄存器数量超出范围 | |
0x04 | 读写错误 |
MODBUS RTU 功能码
下面“线圈”,“寄存器”其实分别为“位变量”,“16位变量”。
功能码 | 意义 |
0x01 | 读线圈 |
0x02 | 读离散量输入 |
0x03 | 读保持寄存器 |
0x04 | 读输入寄存器 |
0x05 | 写单个线圈 |
0x06 | 写单个寄存器 |
0x0F | 写多个线圈 |
0x10 | 写多个寄存器 |
Modbus RTU与Modbus TCP读指令对比
MBAP报头文 | 地址码 | 功能 码 | 寄存器 地址 | 寄存器 数量 | CRC校验 | |
RTU | 无 | 01 | 03 | 01 8E | 00 04 | 25 DE |
TCP | 00 00 00 00 00 06 00 | 无 | 03 | 01 8E | 00 04 | 无 |
指令的涵义:从地址码为01(TCP协议单元标志为00)的模块0x18E(01 8E)寄存器地址开始读(03)四个(00 04)寄存器。
Modbus RTU与Modbus TCP写指令对比
MBAP报头文 | 地址码 | 功能 码 | 寄存器 地址 | 寄存器 数量 | 数据 长度 | 正文 | CRC校验 | |
RTU | 无 | 01 | 10 | 01 8E | 00 01 | 02 | 00 00 | A8 7E |
TCP | 00 00 00 00 00 09 00 | 无 | 10 | 01 8E | 00 01 | 02 | 00 00 | 无 |
指令的涵义:从地址码为01(TCP协议单元标志为00)的模块0x18E(01 8E)寄存器地址开始写(10)一个(00 01)寄存器,具体数据长度为2个字节(02),数据正文内容为00 00(00 00)。
边栏推荐
猜你喜欢

云原生爱好者周刊:炫酷的 Grafana 监控面板集合

Sword finger offer II 037 Asteroid collision

简要的说一下:Fragment 间的通信方式?
![复制带随机指针的链表[空间换时间--hash记录]](/img/d9/d81e0e4f81174c61275e4affe0777a.png)
复制带随机指针的链表[空间换时间--hash记录]

Mysql:sql overview and database system introduction | dark horse programmer

学位论文的引用

Stack space of JVM

Quick Pow: 如何快速求幂
![[advanced C language] string and memory function (II)](/img/1a/14ff6a078419e407845d60485be60e.png)
[advanced C language] string and memory function (II)

Serpentine matrix (array simulates direction, D represents turning)
随机推荐
代码分析平台 SonarQube 实战
Solr基础操作15
Do mysqlcdc data not support windowing functions like row_ Number, lead
[advanced C language] address book implementation
Majority element ii[molar voting method for finding modes]
克隆无向图[bfs访问每条边而不止节点]
Solr基础操作16
Can't recognize the original appearance
[advanced C language] user defined type
Activity invitation | the Apache Doris community essay and speech solicitation activity has begun!
Clone undirected graph [bfs accesses each edge but not only nodes]
Sword finger offer II 035 Minimum time difference
Solr基础操作9
Preliminary syntax of JS
Copy linked list with random pointer [space for time --hash record]
Summary of DOM knowledge points
Getting started with qpainter: drawing the chess interface
Vulnhub target -moriartycorp
Three postures of anti CSRF blasting
【每日一题】二叉树的前后序遍历