MODBUS规约报文解析

报文格式,报文全部为16进制,遥信状态需要转换为二进制:


主站发送报文

地址

功能码

寄存器起始地址

读取数据长度

CRC校验码

01

03

01

00

00

02

C5

F7

说明(读取01地址设备03功能码遥信状态)

设备地址

设备的规约或点表查看
(遥信、遥测、遥控)

从设备的:0x0100H 寄存器读取遥信状态,可以在规约或寄存器点表中查看。
0100说明:其中00为低位(1-8个遥信),01为高位(9-16个遥信)

读取:0x0100H、0x0101H 两个寄存器数据,一共读取32个遥信位置。

可通过串口软件自动计算出


主站接受报文

地址

功能码

数据长度

寄存器1状态0100H

寄存器2状态0101H

CRC校验码

01

03

04

03

43

00

00

0B

A3

说明(读取01地址设备03功能码遥信状态)

设备地址

设备的规约或点表查看
(遥信、遥测、遥控)

表示收到4个数据
(03、03、00、00)

高位状态
(9~16号遥信状态,需转换成二进制)
00000011
第9、10个遥信为合位

低位状态
(1~8号遥信状态,需转换成二进制)
01000011
第1、2、7个遥信为合位

高位
(17~24号遥信状态,需转换成二进制)

低位
(25~32号遥信状态,需转换成二进制)

设备自动计算出


MODBUS-RTU报文模型

设备地址

功能代码

数据格式

CRC校验L

CRC校验H

8bit

8bit

N*8bit

8bit

8bit

一个报文就是一帧数据,一个数据帧就一个报文: 指的是一串完整的指令数据,就像上面的一串数据。

主机对从机读数据操作

0x01

03

00 01

00 01

D5 CA

从机地址

功能号

数据地址

读取数据个数

CRC校验

从机对主机返回内容

0x01

03

02

00 17

F8 4A

从机地址

功能号

数据字节个数

两个字节数据

CRC校验

这样MODBUS主机就完成了一次对从机数据的读操作,实现了通讯。

MODBUS-RTU常用功能码

数据类型

读功能码

写功能码

对象类型

离散量输入

02

 

单个位

线圈状态

01

05,15

单个位

输入寄存器

04

 

16位字

保持寄存器

03

06,16

16位字

寄存器起始地址(起始数据地址)

数据类型

参数地址,寄存器编号

离散量输入

00001~0FFFF

线圈状态

10001~1FFFF

输入寄存器

30001~3FFFF

保持寄存器

40001~4FFFF

报文实例

遥控点号:开关操作=0300H  合操作

TX:  01 06 03 0000 02 08 4F     //06表示遥控功能码,02表示分操作;

RX:  01 06 03 0000 02 08 4F     //06表示遥控功能码,02表示分操作;

遥控点号:开关操作=0300H  分操作

TX:  01 06 03 0000 01 48 4E     //06表示遥控功能码,01表示分操作;

RX:  01 06 03 0000 01 48 4E     //06表示遥控功能码,01表示分操作;

遥测报文:每个遥测值占用2个字节,即1个寄存器,最大值为:0x0000H~0xFFFFH,即:0~65535。

发送数据:01 03 02 00 00 0D 85 B7       //16时27分02秒


接收数据:01 03 1A 00 00 00 00 00 00 1E AE 00 00 1EAD 1E AD 00 00 00 00 00 00 00 00 00 00 6A 96 77 67 


总召换的电度

共有4个电度:

正向有功积分电度=0301H    10000.000(0x00989680),

正向无功积分电度=0302H     0.000 (0x0),

反向有功积分电度=0303H     0.000(0x0),

反向无功积分电度=0304H     0.000(0x0)。

TX:01 03 81 02 00 08 CD F0 //8102为总召唤,00 08 为数据长度

RX:  01 03 10 0098 96 80 00 00 00 00 00 00 00 00 00 00 00 00 15 64   //10为报文数据长度。



电度:( 03命令码)

寄存器号

遥测报文值

转换

10进制值

正向有功积分电度 

0301H

00 98 96 80

10000000

正向无功积分电度

0302H

00 00 00 00

0

反向有功积分电度 

0303H

00 00 00 00

0

反向无功积分电度

0304H

00 00 00 00

0