modbus-tcp-rtu协议图表

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)。

  • 25
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值