您的位置首页百科知识

Modbus TCP报文解析之遥信、遥控

Modbus TCP报文解析之遥信、遥控

的有关信息介绍如下:

Modbus TCP报文解析之遥信、遥控

针对Modbus TCP协议报文的部分功能码做详细解析说明。

主要介绍电力设备通讯涉及较多的、常用的功能码。

注意:举例的报文全为16进制。

功能码01

主站下发:00 0A 00 00 00 06 0201 00 1300 14

解析: 00 0A 00 00 00 06 表示MBAP报文头;

其中 00 0A为Transation ID;

00 00 为协议标识符,固定的;

00 06 为报文后面的长度;

02表示装置地址为2;01表示功能码为1;

00 13表示起始寄存器地址为0x0013;

00 14表示召唤遥信个数为20个;

从站回答:00 0B00 00 00 06 02 0103CD 6B 05

解析: 00 0B00 00 00 06表示MBAP报文头;

02表示装置地址为2;

01表示功能码为1;03表示后面数据量字节个数为3;

CD 6B 05表示召唤20个遥信的具体状态,

CD(1100 1101)代表第1个遥信合,第2个遥信分,第3个遥信合,第4个遥信合, 第5个遥信分, 第6个遥信分, 第7个遥信合,第8个遥信合。6B(0110 1011)代表第9个遥信合,第10个遥信合,第11个遥信分,第12个遥信合, 第13个遥信分, 第14个遥信合, 第15个遥信合,第16个遥信分。

05 (0000 0101)代表第17个遥信合,第18个遥信分,第19个遥信合,第20个遥信分。前面4个0没意义,只是为了补全8位;

功能码02

主站下发: 00 0A 00 00 00 060202 00 C400 16

解析:00 0A 00 00 00 06 表示MBAP报文头;

02表示装置地址为2;

02表示功能码为2;

00 C4表示起始寄存器地址为0x00C4;

00 16表示召唤遥信个数为22个;

从站回答:00 0B00 00 00 060202 03AC DB 35

解析:00 0B00 00 00 06表示MBAP报文头;

02表示装置地址为2;

02表示功能码为2;

03表示后面数据量字节个数为3;

AC DB 35表示召唤22个遥信的具体状态,

其中:AC(1010 1100)代表第1个遥信分,第2个遥信分,第3个遥信合,第4个遥信合, 第5个遥信分, 第6个遥信合, 第7个遥信分,第8个遥信合。

DB(1101 1011)代表第9个遥信合,第10个遥信合,第11个遥信分,第12个遥信合, 第13个遥信合, 第14个遥信分, 第15个遥信合,第16个遥信合。

35 (0011 0101)代表第17个遥信合,第18个遥信分,第19个遥信合,第20个遥信分,第21个遥信点合,第22个遥信点合。前面2个0没意义,只是为了补全8位;

功能码03

主站下发: 00 0A00 00 00 0602 03 00 6B00 01

解析:00 0A00 00 00 06表示MBAP报文头;

02表示装置地址为2;

03表示功能码为3;

00 6B表示起始寄存器地址为0x006B;

00 01表示召唤寄存器个数为1个;

子站回答:00 0B00 00 00 05 02 03 0202 20

解析:00 0B00 00 00 05表示MBAP报文头;

02表示装置地址为2;

03表示功能码为3;

02表示后面数据量字节个数为2;

02 20表示召唤遥信的具体状态,

其中:02(0000 0010)代表第9个遥信分,第10个遥信合,第11个遥信分,第12个遥信分, 第13个遥信分, 第14个遥信分, 第15个遥信分,第16个遥信分。

20 (0010 0000)代表第1个遥信分,第2个遥信分,第3个遥信分,第4个遥信分, 第5个遥信分, 第6个遥信合, 第7个遥信分,第8个遥信分;

功能码04

主站下发: 00 0A00 00 00 0602 0400 2800 01

解析:00 0A00 00 00 06表示MBAP报文头;

02表示装置地址为2;

04表示功能码为4;

00 28表示起始寄存器地址为0x0028;

00 01表示召唤寄存器个数为1个;

从站回答:00 0B00 00 00 05 02 04022420

解析:00 0B00 00 00 05表示MBAP报文头;

02表示装置地址为2;

04表示功能码为4;

02表示后面数据量字节个数为2;

2420表示召唤遥信的具体状态,

其中:24 (0010 0100)代表第9个遥信分,第10个遥信分,第11个遥信合,第12个遥信分, 第13个遥信分, 第14个遥信合, 第15个遥信分,第16个遥信分。

20 (0010 0000)代表第1个遥信分,第2个遥信分,第3个遥信分,第4个遥信分, 第5个遥信分, 第6个遥信合, 第7个遥信分,第8个遥信分;

注意:

标准modbus规约功能码为03或者04的时候都是先送高字节后送低字节,但是有的厂家是先送低字节后送高字节,这个时候返回报文数据部分就需要跟上面解释的相反.

功能码05

主站下发: 00 0A00 00 00 0602 0500 AC FF 00

解析:00 0A00 00 00 06表示MBAP报文头;

02表示装置地址为2;05表示功能码为5;

00 AC表示遥控位地址为0x00AC;FF 00表示控合;

从站回答:00 0B00 00 00 0602 0500 AC FF 00

解析: 00 0B00 00 00 06表示MBAP报文头;

02表示装置地址为2;

05表示功能码为5;

00 AC表示遥控位地址为0x00AC;

FF 00表示控合;

注意:数据FF 00表示控合;00 00表示控分其它都为非法数据。

功能码为06

主站下发: 00 0A00 00 00 0602 0600 01 00 04

解析:00 0A00 00 00 06表示MBAP报文头;

02表示装置地址为2;

06表示功能码为6;

00 01表示遥控寄存器地址为0x0001;

00 04表示把0x0001这个寄存器的第2位控合;

从站回答:00 0B00 00 00 0602 0600 01 00 04

解析: 00 0B00 00 00 06表示MBAP报文头;

02表示装置地址为2;06表示功能码为6;

00 01表示遥控寄存器地址为0x0001;

00 04表示把0x0001这个寄存器的第2位控合;

注意:04(0100) 遥控位从0开始到15总共16个位,功能码6控制谁,他那个位是1。