当前位置:文档之家› MODBUS规约与报文解析详细说明

MODBUS规约与报文解析详细说明

MODBUS规约与报文解析详细说明
MODBUS规约与报文解析详细说明

MODBUS协议

一般说明

1.1.1交换特点

MODBUS是一种主/从规约,它允许读或写一个或多个字(16位)操作,但任何情况下都不支持字节的读/写。

信息交换是以主站采取主动实现的,即由主站启动交换。除广播命令外,所有的一个完整交换由下行和上行两个报文组成:

·下行报文:主站发出的一个请求

·上行报文:从站发回的一个回答

图1.1 一般信息交换图

图1.2 广播方式信息交换图

自主站发出的请求,一般情况下,只可发送到某一指定的从站(由请求帧第一个字节中规定的从站号码来辨认),如图1.1所示。在广播方式下(从站号码为0),此请求则发送到全部从站,当然,规约规定广播命令必须是写命令,并且从站也不发送回答,如图1.2所示。

1.1.2报文格式

所有交换的RTU类型报文(帧),无论上/下行,具有相同的结构:

从站号功能码数据区CRC16校验和

1字节1字节n字节2字节

每帧报文包含4种类型的信息:

1.1.

2.1 从站号

从站号为1字节,取值范围为0~FFH.例外的,如果此值为0,则作为主站的广播信文标识.因此,物理上使用的从站号只能在01H~FFH之间(即1~255之间)。

1.1.

2.2 功能码

功能码为1字节,它被用来选择一个命令(读、写或回答校验是否正确等),有效功能码范围为1~255之间,本手册支持的功能码将在第2章中加以详述。

1.1.

2.3 数据区

数据区为n字节,它包含与功能码相关的一串十六进制数据。

2.1 功能码概述

在本手册中,MODBUS使用如下的功能码:

功能码(十进制)含义

01 读线圈状态

02 读输入状态

03 读保持型寄存器

04 读输入型寄存器

05 强制单个线圈

06 写单个寄存器

15 强制多个线圈

16 写多个寄存器

20 读变量

21 写变量

2.2 功能码与数据分类

在本手册中,功能码与相应的数据的对应关系如下所示:

在MODBUS 规约中,地址的起始编号为0。如Q0005的规约地址为0004。

2.3 功能码详解

2.3.1 01读线圈状态

1.描述

实现对从站中测点Q 和M (分类前缀为0x )ON/OFF 状态的读请求。 2.主站请求

请求信文定义读取测点的起始地址和数量。起始规约地址为0:Q1~Q2048的地址为0~2047;M1~M4096的地址为3000~7095。 【示例】在从站17读Q20~Q56

字节

含义 示例(Hex ) 1 从站地址 11 2 功能码

01 3 起始地址高8位 00 4 起始地址低8位 13 5 数据个数高8位 00 6 数据个数低8位 25 CRC16

-

-

3.从站响应

从站返回状态数据遵循:起始地址的状态用数据首字节的最低位

分类前缀 测点类型

读操作功能码

写操作功能码

测点地址范围 规约地址范围 0x

Q 01 05 / 15 0001~2048 0000~2047 M

01 05 / 15 0001~4096 3000~7095 1x I 02 0001~2048 0000~2047 S

02 0001~1024 3000~4023 3x AI 04 0001~1024 0000~1023 SOE

04 0001~0256 2020~4067 4x AQ 03 06 / 16 0001~0256 0000~0255 R 03 06 / 16 0001~4096 1000~5095 Clock

03 16 10000~10004 6x V

20

21

(LSB)表示,并遵循“低位向高位,低字节向高字节”按位持续存

放。

返回的状态个数不是8的整数倍,则在最高字节的多余位补“0”。

状态表示:1=ON;0=OFF

【示例】上例的从站响应信文如下:

字节含义示例(Hex)

1 从站地址11

2 功能码01

3 字节数05

4 数据(Q27-20)CD

5 数据(Q35-28)6B

6 数据(Q43-36)B2

7 数据(Q51-44)0E

8 数据(Q56-52)1B

CRC16 - -

示例中,

Q27-Q20的状态返回为CDH(1100 1101 B),则CDH的最高位(MSB)为Q27的状态,最低位(LSB)为Q20的状态。Q27-Q20的实际状态为

ON-ON-OFF-OFF-ON-ON-OFF-ON。

最后1个字节1BH表示Q56-Q52的状态:ON-ON-OFF-ON-ON。该字节的最高3位补“0”。

2.3.2 02读输入状态

1.描述

实现对从站中测点I和S(分类前缀为1x)ON/OFF状态的读请求。

2.主站请求

请求信文定义读取测点的起始地址和数量。起始规约地址为0:I1~I2048的地址为0~2047;S1~S1024的地址为3000~4023。

【示例】在从站17读I20~I56

字节含义示例(Hex)

1 从站地址11

2 功能码02

3 起始地址高8位00

4 起始地址低8位13

5 数据个数高8位00

6 数据个数低8位25

CRC16 - -

3.从站响应

从站返回状态数据遵循:起始地址的状态用数据首字节的最低位(LSB)表示,并遵循“低位向高位,低字节向高字节”按位持续存

放。

返回的状态个数不是8的整数倍,则在最高字节的多余位补“0”。

状态表示:1=ON;0=OFF

【示例】上例的从站响应信文如下:

字节含义示例(Hex)

1 从站地址11

2 功能码02

3 字节数05

4 数据(I27-20)CD

5 数据(I35-28)6B

6 数据(I43-36)B2

7 数据(I51-44)0E

8 数据(I56-52)1B

CRC16 - -

示例中,

I27-I20的状态返回为CDH(1100 1101 B),则CDH的最高位(MSB)为I27的状态,最低位(LSB)为I20的状态。I27-I20的实际状态为

ON-ON-OFF-OFF-ON-ON-OFF-ON。

最后1个字节1BH表示I56-I52的状态:ON-ON-OFF-ON-ON。该字节的最高3位补“0”。

2.3.3 03读保持型寄存器

1.描述

实现对从站中测点AQ、R和从站系统时间(分类前缀为4x)测值的读请求。2.主站请求

请求信文定义读取测点的起始地址和数量。起始规约地址为0:AQ1~AQ256的地址为0~255;R1~R4096的地址为1000~5095;系统时间的地址为10000~10004。

【示例】在从站17读AQ108~AQ110

字节含义示例(Hex)

1 从站地址11

2 功能码03

3 起始地址高8位00

4 起始地址低8位6B

5 数据个数高8位00

6 数据个数低8位03

CRC16 - -

3.从站响应

从站返回状态数据遵循:“高字节在前,低字节在后”持续存放。

【示例】上例的从站响应信文如下:

字节含义示例(Hex)

1 从站地址11

2 功能码03

3 字节数06

4 数据Hi(Q108)02

5 数据Lo(Q108)2B

6 数据Hi(Q109)00

7 数据Lo(Q109)00

8 数据Hi(Q110)00

9 数据Lo(Q110)64

CRC16 - -

示例中,

Q108-Q110的测值返回为022BH、0000H、0064H。

4.读取系统时间

系统时间的地址为10000~10004。

【示例】在从站17读系统时间

字节含义示例(Hex)

1 从站地址11

2 功能码03

3 起始地址高8位27

4 起始地址低8位10

5 数据个数高8位00

6 数据个数低8位05

CRC16 - -

【示例】从站响应信文如下:

1 从站地址11

2 功能码03

3 字节数0A

4 Year Hi 07

5 Year Lo D2

6 Day 0A

7 Month 09

8 Hour Hi 00

9 Hour Lo 0C

10 Second 0E

11 Minute 0D

12 Ms Hi 01

13 Ms Lo 02

CRC16 - -

示例中,

返回时间为:2002(07D2H)年9(09H)月10(0AH)日12(0CH)时13(0DH)分14(0EH)秒258(0102H)毫秒。

2.3.4 04读输入型寄存器

1.描述

实现对从站中测点AI、和SOE事件缓冲区(分类前缀为3x)测值的读请求。2.主站请求

请求信文定义读取测点的起始地址和数量。起始规约地址为0:AI1~AI1024的地址为0~1023;SOE1~SOE256的地址为2020~4067。

【示例】在从站17读AI108~AI110

字节含义示例(Hex)

1 从站地址11

2 功能码04

3 起始地址高8位00

4 起始地址低8位6B

5 数据个数高8位00

6 数据个数低8位03

CRC16 - -

3.从站响应

从站返回状态数据遵循:“高字节在前,低字节在后”持续存放。

【示例】上例的从站响应信文如下:

1 从站地址11

2 功能码04

3 字节数06

4 数据Hi(Q108)02

5 数据Lo(Q108)2B

6 数据Hi(Q109)00

7 数据Lo(Q109)00

8 数据Hi(Q110)00

9 数据Lo(Q110)64

CRC16 - -

示例中,

Q108-Q110的测值返回为022BH、0000H、0064H。

4.读取SOE事件

SOE事件缓冲区最多可存放256个SOE事件,超过256个事件时,用新事件覆盖最老的事件(如第257事件覆盖第1个事件,依此类推)。

SOE当前事件缓冲区空指针SOE_PTR为1个字,存放在S区中:SOE_PTR bit0-bit15 = S897-S912。

SOE_PTR可能取值=2021 +N%256 ×8

其中:N为当前SOE事件个数;

2021为SOE事件缓冲区虚拟偏址首址,规约地址为2020;

8 为SOE事件缓冲区中,相邻事件的地址间隔。即为8个

字。

【示例】从站17中,上次SOE_PTR值为2029(1个SOE事件),本次取值为2037(2个SOE事件),表明新产生1个SOE事件。此时需读取第2个SOE 事件,地址为2028,读取长度为8,信文如下:

字节含义示例(Hex)

1 从站地址11

2 功能码04

3 起始地址高8位07

4 起始地址低8位EC

5 数据个数高8位00

6 数据个数低8位08

CRC16 - -

【示例】从站响应信文如下:

1 从站地址11

2 功能码04

3 字节数10

01

4 SOE性质

(1:OFF→ON;

0:ON→OFF)

5 SOE事件标识01

6 Month 09

7 Year(与2000的差)02

8 Hour 0B

9 Day 0C

10 Second 0E

11 Minute 0D

12 Ms Hi(单位:0.1ms)01

13 Ms Lo(单位:0.1ms)02

14 SOE测点号Hi 00

15 SOE测点号Lo 02

16 预留数据00

17 预留数据01

18 预留数据00

19 预留数据00

CRC16 - -

示例中,

SOE事件为:2002年9月12日11时13分14秒25.8毫秒SOE2动作(OFF→ON)。

2.3.5 05强制单个线圈

1.描述

实现对从站中单个测点Q或M(分类前缀为0x)强制为ON或OFF状态的写请求。

2.主站请求

请求信文定义强制测点的地址和状态。起始规约地址为0:Q1~Q2048的地址为0~2047;M1~M4096的地址为3000~7095。

强制数据:FF00H 强制为ON;0000H强制为OFF。

【示例】在从站17强制Q173为ON

字节含义示例(Hex)

1 从站地址11

2 功能码05

3 起始地址高8位00

4 起始地址低8位AC

5 强制数据高8位FF

6 强制数据低8位00

CRC16 - -

3.从站响应

正确时,从站将请求信文原信返回。

【示例】上例的从站响应信文如下:

字节含义示例(Hex)

1 从站地址11

2 功能码05

3 起始地址高8位00

4 起始地址低8位AC

5 强制数据高8位FF

6 强制数据低8位00

CRC16 - -

2.3.6 06写单个寄存器

1.描述

实现对从站中单个测点AQ或R(分类前缀为4x)测值的写请求。

2.主站请求

请求信文定义写测点的地址和值。起始规约地址为0:AQ1~AQ256的地址为0~255;R1~R4096的地址为1000~5095。

【示例】在从站17强制R2=0003 (R2地址为1001H)

字节含义示例(Hex)

1 从站地址11

2 功能码06

3 起始地址高8位03

4 起始地址低8位E9

5 写值高8位00

6 写值低8位03

CRC16 - -

3.从站响应

正确时,从站将请求信文原信返回。

【示例】上例的从站响应信文如下:

字节含义示例(Hex)

1 从站地址11

2 功能码06

3 起始地址高8位03

4 起始地址低8位E9

5 写值高8位00

6 写值低8位03

CRC16 - -

2.3.7 15强制多个线圈

1.描述

实现同时对从站中多个测点Q或M(分类前缀为0x)强制ON或OFF的写请求。

2.主站请求

请求信文定义强制测点的起始地址、数量、强制状态。起始规约地址为0:Q1~Q2048的地址为0~2047;M1~M4096的地址为3000~

7095。

强制状态按位表示,遵循:起始地址的状态用数据首字节的最低位(LSB)表示,并遵循“低位向高位,低字节向高字节”按位持续存

放。

返回的状态个数不是8的整数倍,则在最高字节的多余位补“0”。

强制状态表示:1=ON;0=OFF

【示例】在从站17强制Q29~Q20为

OFF-ON-ON-ON-OFF-OFF-ON-ON-OFF-ON ,则数据为CDH、01H Bit: 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 Q: 27 26 25 24 23 22 21 20 - - - - - - 29 28

字节含义示例(Hex)

1 从站地址11

2 功能码0F

3 起始地址高8位00

4 起始地址低8位13

5 强制个数高8位00

6 强制个数低8位0A

7 强制数据字节数02

8 强制数据字节1 CD

9 强制数据字节2 01

CRC16 - -

3.从站响应

正确,从站返回强制测点的起始地址、数量。

【示例】上例的从站响应信文如下:

字节含义示例(Hex)

1 从站地址11

2 功能码0F

3 起始地址高8位00

4 起始地址低8位13

5 强制个数高8位00

6 强制个数低8位0A

CRC16 - -

2.3.8 16写多个寄存器

1.描述

实现对从站中多个测点AQ或R(分类前缀为4x)的写请求,设置从站系统时间。

2.主站请求

请求信文定义请求写操作测点的起始地址、数量和值。起始规约地址为0:AQ1~AQ256的地址为0~255;R1~R4096的地址为1000~5095;系统时间的地址为10000~10004。

【示例】在从站17写R2~R3为000AH、0102H

字节含义示例(Hex)

1 从站地址11

2 功能码10

3 起始地址高8位03

4 起始地址低8位E9

5 写寄存器个数高8位00

6 写寄存器个数低8位02

7 写数据字节数04

8 寄存器1数据高8位00

9 寄存器1数据低8位0A

10 寄存器2数据高8位01

11 寄存器2数据低8位02

CRC16 - -

3.从站响应

正确,从站返回写测点的起始地址、数量。

【示例】上例的从站响应信文如下:

字节含义示例(Hex)

1 从站地址11

2 功能码10

3 起始地址高8位03

4 起始地址低8位E9

5 写寄存器个数高8位00

6 写寄存器个数低8位02

CRC16 - -

4.设置系统时间

系统时间的地址为10000~10004。

【示例】设置从站17系统时间为:2002(07D2H)年9(09H)月10(0AH)日12(0CH)时13(0DH)分14(0EH)秒0(0000H)毫秒。

字节含义示例(Hex)

1 从站地址11

2 功能码10

3 起始地址高8位27

4 起始地址低8位10

5 写寄存器个数高8位00

6 写寄存器个数低8位05

7 写数据字节数0A

8 Year Hi 07

9 Year Lo D2

10 Day 0A

11 Month 09

12 Hour Hi 00

13 Hour Lo 0C

14 Second 0E

15 Minute 0D

16 Ms Hi 00

17 Ms Lo 00

CRC16 - -

【示例】从站响应信文如下:

字节含义示例(Hex)

1 从站地址11

2 功能码10

3 起始地址高8位27

4 起始地址低8位10

5 写寄存器个数高8位00

6 写寄存器个数低8位05

CRC16 - -

14 03 0F A0 00 54 45 C6

14 01 00 00 00 B7 7E B9

14 01 00 00 00 B7 7E B9

14 03 0F A0 00 54 45 C6

14 01 00 00 00 B7 7E B9

14 01 00 00 00 B7 7E B9

14 03 0F A0 00 54 45 C6

14 01 00 00 00 B7 7E B9

ymxkll15

MODBUS报文解析(高字节在前低字节在后)

主站下发报文

14 03 40 00 00 20 53 17 代表从4000寄存器开始查询32个遥测(03)17是结束字符53是校验码0020是查询个数

14 01 00 00 00 20 3F 17 代表从0000寄存器开始查询32个遥信(01)从站地址是20(14H) 遥信返回报文14 01 05 CD 6B B2 0E 1B XX(校验)14是地址01 是遥信(线圈状态)05是回的YX报文组数(每组报文十六进制转换成2进制每位表示一个线圈状态)。第一个数据字节的LSB 为查询中的寻址地址,

其他的线圈按顺序在该字节中由低位向高位排列,直至8 个为止,

下一个字节也是从低位向高位排例

线圈27-20 的状态用CDH 表示,二进制值为11001101,该字

节的MCB 为线圈27,LSB 为20。线圈从左(27)向右(20)状态分

别为ON-ON-OFF-OFF-ON-ON-OFF-ON,因此第一个字节中的线

圈从左到右应是27-20。下一个字节的线圈应为35 至28。位数据

串行转输从低位到高位,即20…27,28…35。

最后一个数据字节中,56-52 线圈的状态为1BH(或二进制

00011011),线圈56 是左数第4 位,线圈52 是该字节的最低位,

所线圈56 至52 的状态分别为ON-ON-OFF-ON-ON 注意3 个剩余

位(至最高位的数)全部填0

5208报文实例

上行通道1 ☆↓↓14 03 40 00 00 20 53 17

上行通道1 ★↓↓14 03 40 00 00 20 53 17

上行通道1 ★↑↑14 03 40 00 31 00 2F 00 2E 00 2F 00 0F 07 09 07 09 07 0C 00 00 00 21 00 22 00 25 00 24 00 23 00 21 00 22 00 0A 07 03 07 03 06 FB 06 69 00 93 00 96 00 96 04 15 04 0C 04 13 00 99 00 25 00 3B 06 7C 07 08 3E 2C(3100是第一个YC的值。一共32个YC,最后一位是校验码。两个字节一个量,高在前低在后)

上行通道1 ☆↓↓14 03 40 00 00 20 53 17

上行通道1 ★↓↓14 03 40 00 00 20 53 17

上行通道1 ★↑↑14 03 40 00 31 00 2F 00 2E 00 2F 00 0F 07 06 07 05 07 08 00 00 00 2C 00 2C 00 2C 00 24 00 23 00 21 00 22 00 0A 07 03 07 03 06 FB 06 69 00 93 00 96 00 96 04 15 04 0C 04 13 00 99 00 25 00 3B 06 7C 07 08 E1 1C

上行通道1 ☆↓↓14 03 40 00 00 20 53 17

上行通道1 ★↓↓14 03 40 00 00 20 53 17

上行通道1 ★↑↑14 03 40 00 31 00 2F 00 2E 00 2F 00 0F 07 06 07 05 07 08 00 00 00 2C 00 2C 00 2C 00 24 00 23 00 21 00 22 00 0A 07 03 07 03 06 FB 06 69 00 93 00 96 00 96 04 15 04 0C 04 13 00 99 00 25 00 3B 06 7C 07 08 E1 1C

上行通道1 ☆↓↓14 03 40 00 00 20 53 17

上行通道1 ★↓↓14 03 40 00 00 20 53 17

上行通道1 ★↑↑14 03 40 00 31 00 2F 00 2E 00 2F 00 0F 07 06 07 05 07 08 00 00 00 2C 00 2C 00 2C 00 24 00 23 00 21 00 22 00 0A 07 03 07 03 06 FB 06 69 00 AF 00 B5 00 A2 04 13 04 09 04 0F 00 B0 00 29 00 45 06 7C 07 08 77 62

上行通道1 ☆↓↓14 03 40 00 00 20 53 17

上行通道1 ★↓↓14 03 40 00 00 20 53 17

上行通道1 ★↑↑14 03 40 00 31 00 2F 00 2E 00 2F 00 0F 07 06 07 05 07 08 00 00 00 2C 00 2C 00 2C 00 24 00 23 00 21 00 22 00 0A 07 03 07 03 06 FB 06 69 00 AF 00 B5 00 A2 04 13 04 09 04 0F 00 B0 00 29 00 45 06 7C 07 08 77 62

上行通道1 ☆↓↓14 03 40 00 00 20 53 17

上行通道1 ★↓↓14 03 40 00 00 20 53 17

上行通道1 ★↑↑14 03 40 00 2E 00 30 00 2B FF F1 00 4E 07 06 07 05 07 08 00 00 00 2C 00 2C 00 2C 00 27 00 2C 00 28 00 29 00 0B 07 03 07 03 06 FB 06 69 00 AF 00 B5 00 A2 04 13 04 09 04 0F 00 B0 00 29 00 45 06 7C 07 08 5D BD

上行通道1 ☆↓↓14 03 40 00 00 20 53 17

上行通道1 ★↓↓14 03 40 00 00 20 53 17

上行通道1 ★↑↑14 03 40 00 2E 00 30 00 2B FF F1 00 4E 07 06 07 05 07 08 00 00 00 2C 00 2C 00 2C 00 27 00 2C 00 28 00 29 00 0B 07 03 07 03 06 FB 06 69 00 AF 00 B5 00 A2 04

13 04 09 04 0F 00 B0 00 29 00 45 06 7C 07 08 5D BD

上行通道1 ☆↓↓14 03 40 00 00 20 53 17

上行通道1 ★↓↓14 03 40 00 00 20 53 17

上行通道1 ★↑↑14 03 40 00 2E 00 30 00 2B FF F1 00 4E 07 06 07 05 07 08 00 00 00 2C 00 2C 00 2C 00 27 00 2C 00 28 00 29 00 0B 07 03 07 03 06 FB 06 69 00 AF 00 B5 00 A2 04 13 04 09 04 0F 00 B0 00 29 00 45 06 7C 07 08 5D BD

上行通道1 ☆↓↓14 03 40 00 00 20 53 17

上行通道1 ★↓↓14 03 40 00 00 20 53 17

上行通道1 ★↑↑14 03 40 00 2E 00 30 00 2B FF F1 00 4E 07 09 07 0B 07 0C 00 00 00 24 00 23 00 26 00 27 00 2C 00 28 00 29 00 0B 07 03 07 03 06 FB 06 69 00 AF 00 B5 00 A2 04 13 04 09 04 0F 00 B0 00 29 00 45 06 7C 07 08 27 42

上行通道1 ☆↓↓14 03 40 00 00 20 53 17

上行通道1 ★↓↓14 03 40 00 00 20 53 17

上行通道1 ★↑↑14 03 40 00 2E 00 30 00 2B FF F1 00 4E 07 09 07 0B 07 0C 00 00 00 24 00 23 00 26 00 27 00 2C 00 28 00 29 00 0B 07 07 07 09 06 FF 06 66 00 AF 00 B5 00 A2 04 13 04 09 04 0F 00 B0 00 29 00 45 06 82 07 0B 52 33

上行通道1 ☆↓↓14 03 40 00 00 20 53 17

上行通道1 ★↓↓14 03 40 00 00 20 53 17

上行通道1 ★↑↑14 03 40 00 2E 00 30 00 2B FF F1 00 4E 07 09 07 0B 07 0C 00 00 00 24 00 23 00 26 00 27 00 2C 00 28 00 29 00 0B 07 07 07 09 06 FF 06 66 00 AF 00 B5 00 A2 04 13 04 09 04 0F 00 B0 00 29 00 45 06 82 07 0B 52 33

上行通道1 ☆↓↓14 03 40 00 00 20 53 17

上行通道1 ★↓↓14 03 40 00 00 20 53 17

上行通道1 ★↑↑14 03 40 00 2E 00 30 00 2B FF F1 00 4E 07 09 07 0B 07 0C 00 00 00 24 00 23 00 26 00 27 00 2C 00 28 00 29 00 0B 07 07 07 09 06 FF 06 66 00 AF 00 B5 00 A2 04 13 04 09 04 0F 00 B0 00 29 00 45 06 82 07 0B 52 33

上行通道1 ☆↓↓14 03 40 00 00 20 53 17

上行通道1 ★↓↓14 03 40 00 00 20 53 17

上行通道1 ★↑↑14 03 40 00 2B 00 29 00 28 00 2F 00 0F 07 09 07 0B 07 0C 00 00 00 24 00 23 00 26 00 27 00 2C 00 28 00 29 00 0B 07 07 07 09 06 FF 06 66 00 AF 00 B5 00 A2 04 13 04 09 04 0F 00 B0 00 29 00 45 06 82 07 0B AF 69

上行通道1 ☆↓↓14 03 40 00 00 20 53 17

上行通道1 ★↓↓14 03 40 00 00 20 53 17

上行通道1 ★↑↑14 03 40 00 2B 00 29 00 28 00 2F 00 0F 07 09 07 0B 07 0C 00 00 00 24 00 23 00 26 00 27 00 2C 00 28 00 29 00 0B 07 07 07 09 06 FF 06 66 00 AF 00 B5 00 A2 04 13 04 09 04 0F 00 B0 00 29 00 45 06 82 07 0B AF 69

上行通道1 ☆↓↓14 03 40 00 00 20 53 17

上行通道1 ★↓↓14 03 40 00 00 20 53 17

上行通道1 ★↑↑14 03 40 00 2B 00 29 00 28 00 2F 00 0F 07 0C 07 0F 07 10 00 00 00 21 00 20 00 23 00 27 00 2C 00 28 00 29 00 0B 07 07 07 09 06 FF 06 66 00 AF 00 B5 00 A2 04 13 04 09 04 0F 00 B0 00 29 00 45 06 82 07 0B A2 3B

上行通道1 ☆↓↓14 03 40 00 00 20 53 17

上行通道1 ★↓↓14 03 40 00 00 20 53 17

上行通道1 ★↑↑14 03 40 00 2B 00 29 00 28 00 2F 00 0F 07 0C 07 0F 07 10 00 00 00 21 00 20 00 23 00 27 00 2C 00 28 00 29 00 0B 07 07 07 09 06 FF 06 66 00 AF 00 B5 00 A2 04 13 04 09 04 0F 00 B0 00 29 00 45 06 82 07 0B A2 3B

上行通道1 ☆↓↓14 03 40 00 00 20 53 17

上行通道1 ★↓↓14 03 40 00 00 20 53 17

上行通道1 ★↑↑14 03 40 00 2B 00 29 00 28 00 2F 00 0F 07 0C 07 0F 07 10 00 00 00 21 00 20 00 23 00 27 00 2C 00 28 00 29 00 0B 07 07 07 09 06 FF 06 66 00 AF 00 B5 00 A2 04 13 04 09 04 0F 00 B0 00 29 00 45 06 82 07 0B A2 3B

上行通道1 ☆↓↓14 03 40 00 00 20 53 17

上行通道1 ★↓↓14 03 40 00 00 20 53 17

上行通道1 ★↑↑14 03 40 00 2B 00 29 00 28 00 2F 00 0F 07 0C 07 0F 07 10 00 00 00 21 00 20 00 23 00 27 00 2C 00 28 00 29 00 0B 07 07 07 09 06 FF 06 66 00 AF 00 B5 00 A2 04 13

04 09 04 0F 00 B0 00 29 00 45 06 82 07 0B A2 3B

上行通道1 ☆↓↓14 03 40 00 00 20 53 17

上行通道1 ★↓↓14 03 40 00 00 20 53 17

上行通道1 ★↑↑14 03 40 00 34 00 32 00 30 00 2F 00 2F 07 0C 07 0F 07 10 00 00 00 21 00 20 00 23 00 27 00 2C 00 28 00 29 00 0B 07 07 07 09 06 FF 06 66 00 AF 00 B5 00 A2 04 13 04 09 04 0F 00 B0 00 29 00 45 06 82 07 0B 8D 5F

上行通道1 ☆↓↓14 03 40 00 00 20 53 17

上行通道1 ★↓↓14 03 40 00 00 20 53 17

上行通道1 ★↑↑14 03 40 00 34 00 32 00 30 00 2F 00 2F 07 0C 07 0F 07 10 00 00 00 21 00 20 00 23 00 27 00 2C 00 28 00 29 00 0B 07 07 07 09 06 FF 06 66 00 94 00 8D 00 8F 04 14 04 0C 04 12 00 93 00 24 00 3C 06 82 07 0B CA BB

上行通道1 ☆↓↓14 03 40 00 00 20 53 17

上行通道1 ★↓↓14 03 40 00 00 20 53 17

上行通道1 ★↑↑14 03 40 00 34 00 32 00 30 00 2F 00 2F 07 0C 07 0F 07 10 00 00 00 21 00 20 00 23 00 27 00 2C 00 28 00 29 00 0B 07 07 07 09 06 FF 06 66 00 94 00 8D 00 8F 04 14 04 0C 04 12 00 93 00 24 00 3C 06 82 07 0B CA BB

上行通道1 ☆↓↓14 03 40 00 00 20 53 17

上行通道1 ★↓↓14 03 40 00 00 20 53 17

上行通道1 ★↑↑14 03 40 00 34 00 32 00 30 00 2F 00 2F 07 0B 07 0C 07 0F 00 00 00 25 00 24 00 28 00 2F 00 33 00 2E 00 30 00 0D 07 07 07 09 06 FF 06 66 00 94 00 8D 00 8F 04 14 04 0C 04 12 00 93 00 24 00 3C 06 82 07 0B 01 10

上行通道1 ☆↓↓14 03 40 00 00 20 53 17

上行通道1 ★↓↓14 03 40 00 00 20 53 17

上行通道1 ★↑↑14 03 40 00 34 00 32 00 30 00 2F 00 2F 07 0B 07 0C 07 0F 00 00 00 25 00 24 00 28 00 2F 00 33 00 2E 00 30 00 0D 07 07 07 09 06 FF 06 66 00 94 00 8D 00 8F 04 14 04 0C 04 12 00 93 00 24 00 3C 06 82 07 0B 01 10

上行通道1 ☆↓↓14 03 40 00 00 20 53 17

南网2002-101规约报文解释

101规约解读 一、101远动规约的基本对话过程 1)初始化过程(链路两端均已上电时):主站向子站询问链路状态,子站 以链路状态回答主站,主站复位远方链路,子站确认回答;子站向主 站询问链路状态,主站以链路状态回答子站,子站复位远方链路,主 站确认回答;主站发总召唤命令,子站以全数据回答,主站发送时钟 同步命令,子站以同步时钟事件回答。 2)基本问答过程:主站在初始化完毕,并召唤过全数据和时钟同步之后, 开始轮询二级数据;而子站如果存在二级数据或一级数据,直接以数 据回答,如不存在,则以否定报文回答(否定回答是单个字符“E5H”, 也可以“无所请求数据”确认帧回答)。 3)其他问答过程:遥控选择命令以遥控选择确认帧回答,遥控执行命令 以遥控执行确认帧回答,召唤电度命令以传送电度数据帧回答。 链路报文格式 1)固定帧长帧格式 固定长帧报文就是链路初始化报文 主站:10 49 06 4F 16 (召唤链路状态) 子站:10 0B 06 11 16 (状态正常) 主站:10 40 06 46 16 (复位远方链路) 子站:10 20 06 26 16 (确认) 主站:10 5A 06 60 16(召唤一级数据) 子站:ES(没有所召唤的数据) 二、总召 主站--子站 68 09 09 68 5 3 066401 060600 00 14 DE 16 68 09 09 68 73 01 64 01 06 01 00 00 14 F4 16 主 子:总召唤命令帧C_IC_NA_1

子站――主站 68 09 09 68 28 066401070600 00 14B4 16 遥测点号从16385开始

101规约报文解析

101规约(2002版)报文解析速查 1、初始化 ●主站发: 10 49 4F 98 16 目的:给地址为4F的子站发请求链路状态命令。 子站回答:10 0B 4F 5A 16 目的:子站向主站响应链路状态。 ●主站发: 10 40 4F 8F 16 目的:给地址为4F的子站发复位通信单元命令。 子站回答:10 20 4F 6F 16 目的:ACD位置1,表明子站向主站请求1级数据上送。 ●主站发: 10 7A 4F C9 16 目的:向地址为4F的子站发召唤1级数据命令。 子站回答:68 09 09 68 28 4F 46 01 04 4F 00 00 00 11 16 (ASDU70,CON=28,COT=4) 目的:子站以ASDU70(初始化结束)响应主站的召唤。并ACD位置1,表明子站继续 向主站请求1级数据上送。 后面跟随时间同步和总查询。 2、对时 ●主站发:68 0F 0F 68 73 00 67 01 06 00 00 00 CD 85 36 0D 1E 0C 04 A4 16 目的:给地址为0的子站发对时命令。 对时时间为:04年12月31日13时54分34秒253毫秒 报文解析:

子站发:68 0F 0F 68 80 00 67 01 07 00 00 00 F7 01 36 0D 1E 0C 04 58 16 目的:以ASDU67响应主站对时命令。 3、 总召唤 ● 主站发:68 09 09 68 53 4F 64 01 06 4F 00 00 14 70 16 目的:向地址为4F 的子站发总召唤命令。 子站回答:10 20 4F 6F 16 目的:ACD 位置1,表明子站向主站请求1级数据上送。 ● 主站发:10 5A 4F A9 16 目的:向地址为4F 的子站发召唤1级数据的命令。 子站回答:68 09 09 68 28 4F 64 01 07 4F 00 00 14 46 16 目的:子站响应总召唤,ACD 位置1。 ● 主站发: 10 7A 4F C9 16 目的:主站向子站召唤1级数据。 子站回答:68 87 87 68 28 4F 01 7F 14 4F 01 00 00 01 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 00 00 00 00 00 00 00 01 01 01 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 00 00 00 01 01 01 00 00 00 00 00 01 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 01 01 00 00 00 00 00 00 00 00 00 00 E7 16

101规约报文解释解析

IEC870-5-101规约报文解释 一、规约格式简介 1、祯格式 101规约的基本祯格式如下所示,具体的解释请参照规约手册,这里不再重复。固定祯长格式: 可变祯长格式: 规约中不同的命令,可能采用不同的祯格式。 2、控制域功能码说明 主站下发子站功能码 子站上送主站功能码 二、主站初始化RTU下发命令流程(以非平衡方式通信)

以下adrs 表示链路地址(一般为rtu 站址),comadr 表示公共地址(一般为rtu 站址),infadr_l 表示信息体地址低位,infadr_h 表示信息体地址高位,CS 表示祯校验和。对时祯为长时标方式。 1、 询问链路状态 10 49 adrs CS 16 子站回答 10 80 adrs CS 2、 复位远方链路 10 40 adrs CS 子站回答 10 89 adrs CS 3、 总召唤 68 10 10 68 16 子站确认 68 09 09 68 80 adrs 64 01 07 comadr 00 00 14 CS 16 子站发送遥测遥信祯(下面将详细解释) 子站发送总召唤结束祯 68 09 09 68 88 adrs 64 01 0a comadr 00 00 14 CS 16 4、 如果没有召唤全则进行分组召唤 下发命令码: 68 09 09 68 7b adrs 64 01 05 comadr 子站发送遥测遥信祯(和总召唤的一样,只是信息体地址会有所区别) 5、 发对时令 68 0f 0f 68 53 adrs 67 01 06 comadr 00 00 milliseconds_l milliseconds_h minutes hours day month year CS 16 子站确认祯 68 0f 0f 68 80 adrs 67 01 07 comadr 00 00 milliseconds_l milliseconds_h minutes hours day month year CS 16 6、 召唤全电度 68 09 09 68 73 adrs 65 01 06 comadr 00 00 45 CS 16 子站发送电度总召唤确认祯 68 09 09 68 80 adrs 65 01 07 comadr 00 00 45 CS 16 子站发送电度祯(下面将详细讲述) 子站发送电度结束祯 68 09 09 68 80 adrs 65 01 0a comadr 00 00 45 CS 16 7、 如果电度没有召唤全则进行分组召唤电度 68 09 09 68 7b adrs 65 01 05 comadr

101规约(1997版)报文解析汇总

101规约(1997版)报文解析速查 1、 初始化 ● 主站发: 10 69 01 6A 16 目的:给地址为1的子站发请求链路状态命令。 子站回答:10 8B 01 8C 16 目的:子站向主站响应链路状态。 ● 主站发: 10 40 01 41 16 目的:给地址为1的子站发复位通信单元命令。 子站回答:10 80 01 81 16 目的:确认,响应主站初始化结束。 后面跟随时间同步和总查询。 2、 对时 ● 主站发:68 0F 0F 68 53 00 67 01 06 00 00 00 CD 85 36 0D 1E 0C 04 A4 16 目的:给地址为0的子站发对时命令。 对时时间为:04年12月31日 13时54分34秒253毫秒 报文解析: 子站发:68 0F 0F 68 80 00 67 01 07 00 00 00 F7 01 36 0D 1E 0C 04 58 16 目的:以ASDU67响应主站对时命令。

3、 总召唤 主站发:68 09 09 68 53 4F 64 01 06 4F 00 00 14 70 16 目的:向地址为4F 的子站发总召唤命令。 子站回答:68 09 09 68 80 4F 64 01 07 4F 00 00 14 46 16 目的:子站响应总召唤。 子站回答:68 87 87 68 88 4F 01 FF 14 4F 01 00 00 01 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 00 00 00 00 00 00 00 01 01 01 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 00 00 00 01 01 01 00 00 00 00 00 01 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 01 01 00 00 00 00 00 00 00 00 00 00 E7 16 目的:子站向主站以ASDU1方式上送全遥信第一帧。 报文解析: 子站回答:68 87 87 68 88 4F 01 FF 14 4F 80 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 00 01 01 01 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 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 61 16

101报文解析

101规约报文分析 ①主站链路请求报文:10 49 01 4A 16 启动字符:10H 控制域: 49H --> 0100 1001 DIR(传输方向位)=0 PRM(启动报文位)=1 主站-->从站 FCB(帧计数位)=0 FCV(帧计数有效位)=0(无效) 功能码=9 召唤链路状态 链路地址域:01H 帧校验和:4AH (前面除启动字符外的所有字节的累加) 结束字符:16H ②从站链路请求响应报文:10 8B 01 8C 16 启动字符:10H 控制域: 8BH --> 1000 1011 DIR(传输方向位)=1 PRM(启动报文位)=0 从站-->主站 ACD(要求访问位)=0(无一级数据) DFC(数据位)=0(表示子站可以继续接收数据) 功能码=11 以链路状态或访问请求回答请求帧

链路地址域:01H 帧校验和:8CH (前面除启动字符外的所有字节的累加)结束字符:16H ③主站链路复位请求报文:10 40 01 41 16 启动字符:10H 控制域: 40H --> 0100 0000 DIR(传输方向位)=0 PRM(启动报文位)=1 主站-->从站FCB(帧计数位)=0 FCV(帧计数有效位)=0(无效) 功能码=0 复位远方链路 链路地址域:01H 帧校验和:41H (前面除启动字符外的所有字节的累加)结束字符:16H ④从站链路复位响应报文:10 80 01 81 16 启动字符:10H 控制域: 80H --> 1000 0000 DIR(传输方向位)=1 PRM(启动报文位)=0 从站-->主站

ACD(要求访问位)=0(无一级数据) DFC(数据位)=0(表示子站可以继续接收数据) 功能码=0 确认 链路地址域:01H 帧校验和:81H (前面除启动字符外的所有字节的累加) 结束字符:16H ⑤主站召唤2级数据报文:10 7B 01 7C 16 启动字符:10H 控制域: 7BH --> 0111 1011 DIR(传输方向位)=0 PRM(启动报文位)=1 主站-->从站 FCB(帧计数位)=1 FCV(帧计数有效位)=1(有效) 功能码=11 召唤用户2级数据 链路地址域:01H 帧校验和:7CH 结束字符:16H ⑥从站无所召唤数据响应报文:10 89 01 8A 16 启动字符:10H

101规约报文分析(适用初学者)

101规约报文分析 ①站链路请求报文:10 49 01 4A 16 启动字符:10H 控制域: 49H --> 0100 1001 DIR(传输方向位)=0 PRM(启动报文位)=1 主站-->从站 FCB(帧计数位)=0 FCV(帧计数有效位)=0(无效) 功能码=9 召唤链路状态 链路地址域:01H 帧校验和:4AH (前面除启动字符外的所有字节的累加) 结束字符:16H ②从站链路请求响应报文:10 8B 01 8C 16 启动字符:10H 控制域: 8BH --> 1000 1011 DIR(传输方向位)=1 PRM(启动报文位)=0 从站-->主站 ACD(要求访问位)=0(无一级数据) DFC(数据位)=0(表示子站可以继续接收数据) 功能码=11 以链路状态或访问请求回答请求帧链路地址域:01H 帧校验和:8CH (前面除启动字符外的所有字节的累加) 结束字符:16H ③主站链路复位请求报文:10 40 01 41 16 启动字符:10H 控制域: 40H --> 0100 0000 DIR(传输方向位)=0 PRM(启动报文位)=1 主站-->从站 FCB(帧计数位)=0 FCV(帧计数有效位)=0(无效) 功能码=0 复位远方链路 链路地址域:01H 帧校验和:41H (前面除启动字符外的所有字节的累加) 结束字符:16H ④从站链路复位响应报文:10 80 01 81 16 启动字符:10H 控制域: 80H --> 1000 0000 DIR(传输方向位)=1 PRM(启动报文位)=0 从站-->主站 ACD(要求访问位)=0(无一级数据) DFC(数据位)=0(表示子站可以继续接收数据)

101规约报文解析

<1 0 101规约(2002版)报文解析速查 1、 初始化 主站发:10 49 4F 98 16 目的:给地址为4F 的子站发请求链路状态命令。 子站回答:10 0B 4F 5A 16 目的:子站向主站响应链路状态。 主站发:10 40 4F 8F 16 目的:给地址为4F 的子站发复位通信单元命令。 子站回答:10 20 4F 6F 16 目的:ACD 位置1,表明子站向主站请求 1级数据上送。 主站发:10 7A 4F C9 16 目的:向地址为4F 的子站发召唤1级数据命令。 子站回答:68 09 09 68 28 4F 46 01 04 4F 00 00 00 11 16 (ASDU70,CON=28 ,COT=4) 目的:子站以 ASDU70(初始化结束)响应主站的召唤。并 ACD 位置1,表明子站继续 向主站请求1级数据上送。 后面跟随时间同步和总查询。 2、 对时 主站发:68 0F 0F 68 73 00 67 01 06 00 00 00 CD 85 36 0D 1E 0C 04 A4 16 目的:给地址为0的子站发对时命令。 对时时间为:04年12月31日13时54分34秒253毫秒 报文解析: 101规约(2002版)报文解析 四方

子站发:68 OF OF 68 80 00 67 01 07 00 00 00 F7 01 36 0D 1E 0C 04 58 16 目的:以ASDU6刀向应主站对时命令。 3、总召唤 主站发:68 09 09 68 53 4F 64 01 06 4F 00 00 14 70 16 目的:向地址为4F 的子站发总召唤命令。 子站回答:10 20 4F 6F 16 目的:ACD 位置1,表明子站向主站请求 1级数据上送。 主站发:10 5A 4F A9 16 目的:向地址为4F 的子站发召唤1级数据的命令。 子站回答:68 09 09 68 28 4F 64 01 07 4F 00 00 14 46 16 目的:子站响应总召唤, ACD 位置1。 主站发:10 7A 4F C9 16 目的:主站向子站召唤 1级数据。 子站回答:68 87 87 68 28 4F 01 7F 14 4F 01 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 0000 0000 0000 00 00 00 00 00 00 00 01 01 0100 00 00 00 00 00 00 00 00 00 0000 0000 0000 00 00 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 0000 0101 0100 00 00 00 00 01 01 00 00 00 0000 00 00 00 00 00 00 00 00 00 0000 0000 0001 四方 101规约(2002版)报文解析

101报文举例分析

101报文举例说明1.术语定义

2.报文举例并说明 (下行)对时命令 68 (启动字符)12 12 (长度)68(启动字符)73(控制域)01 00(链路地址01)67 (类型标识67对时)01(可变结构限定词sq=0,不连续,number=1个遥测值))06 00(激活)01 00(公共地址)00 00(空数据)f0 1c 0c 0a 3d 01 12(时间=2018年1月29日星期一,10时12分7秒408毫秒)55(校验和)16(结束字符) (上行)时钟上传 68(启动字符)12 12(长度)68 (启动字符)f3(控制域)01 00 (链路地址01)67(类型标识67对时)01(可变结构限定词sq=0,不连续,number=1个遥测值))07 00 (激活确认)01 00 (公共地址)00 00(空数据)ca dc 0c 0a 3d 01 12(时间=2018年1月29日星期一,10时12分56秒522毫秒)70 (校验和)16(结束字符) (下行)确认帧 10 00 01 00 01 16 (上行)请求链路状态 10 0b 01 00 0c 16 (下行)回复链路状态 10 80 68 80 68 80 (下行)请求链路状态 10 49 01 00 4a 16 (上行)回复链路状态 10 c9 01 00 ca 16 (下行)复位通道 10 40 01 00 41 16 (上行)确认帧 10 8b 01 00 8c 16 (下行)回复链路状态 10 0b 01 00 0c 16 (上行)请求链路状态

10 80 01 00 81 16 (下行)复位通道 10 00 01 00 01 16 (上行)复位通道 10 c9 01 00 ca 16 (上行)站端初始化成功 68 0c 0c 68 f3 01 00 46 01 04 00 01 00 00 00 02 42 16 (下行)确认帧 10 00 01 00 01 16 (下行)总召激活 68 0c 0c 68 73 01 00 64 01 06 00 01 00 00 00 14 f4 16 启动字符:68H ASDU长度:0CH(12个字节,即73 01 00 64 01 06 00 01 00 00 00 14) 重复长度:0CH 启动字符:68H 控制域:73H --> 0111 0011 DIR(传输方向位)=0 PRM(启动报文位)=1 主站-->从站 FCB(帧计数位)=1 FCV(帧计数有效位)=1(有效) 功能码=3 传送数据 链路地址域:01 00H 数据类型标识: 64H(CON<100>:=总召唤命令) 可变结构限定词:01H(SQ=0,number=1) 传送原因: 06 00H(Cause=6,激活) 应用服务数据单元地址:01 00H 信息元素00 00 信息体数据(元素):14H(召唤限定词QOI=20,站召唤全局) 帧校验和:F4H 结束字符:16H (上行)确认帧 10 a0 01 00 a1 16 (上行)确认总召唤 68 0c 0c 68 d3 01 00 64 01 07 00 01 00 00 00 14 55 16 (下行)确认帧 10 00 01 00 01 16 遥测数据-归一化值 68 47 47 68 f3 01 00 09 94 14 00 01 00 01 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 15 5f 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 88 13 00 ca 05 00 d0 02 00 97 16 正常

及104规约报文解析方法

101、104规约报文解析方法 一、电力系统数据通信协议体系 IEC60870-5系列:远动通信协议体系 IEC60870-6系列:计算机数据通信协议体系 IEC61850-7系列:变电站数据通信协议体系 IEC60870-5系列; IEC TC57 WG03(远动规约) 配套标准 IEC60870-5-101:基本远动任务 IEC60870-5-102:电能累计量 IEC60870-5-103:继电保护 IEC60870-5-104:IEC60870-5-101的网络访问 其他规约类型;CDT、、MODBUS等。 二、远动传输规约IEC60870-5-104的解析方法 1)程序启动后,首先发送链路连接请求帧,68 04 07 00 00 00 起始字符:68H

应用规约数据单元长度(APDU):04H (4个字节,即07 00 00 00) 控制域第一个八位组:07H --> 0000 0111 由前两位11可知是U格式帧; 由第三四位01可知是链路连接请求帧2)随后,接到模拟从站发送来的连接请求确认帧, 68 04 0B 00 00 00 起始字符:68H 应用规约数据单元长度(APDU):04H (4个字节,即0B 00 00 00) 控制域第一个八位组:0BH --> 0000 1011 由前两位11可知是U格式帧; 由第三四位10可知是链路连接确认帧3)主站发送测试链路询问帧, 68 04 43 00 00 00 控制域第一个八位组:43H --> 0100 0011 由前两位11可知是U格式帧;

由第七八位01可知是链路测试请求帧4)从站发送链路测试确认帧; 68 04 83 00 00 00 控制域第一个八位组:43H --> 0100 0011 由前两位11可知是U格式帧; 由第七八位11可知是链路测试确认帧5)主站发送总召唤激活请求命令;

IEC101规约报文解析举例

IEC-101规约报文举例 1. 子站上电第一次建立连接后,上送初始化结束帧 2. 主站复位命令

3. 完整的时钟同步过程3.1.延时采集和延时发送 3.2.时钟同步

4. 总召唤4.1.站总召唤

4.2.分组召唤 5. 遥控 5.1.主站下发单点遥控合选择并且执行的全过程

5.2.主站下发单点遥控分选择并且撤销的全过程

6. 子站突发上送数据 6.1.YXBW、SOE 主站:10 5b 01 5c 16 子站:10 29 01 2a 16 主站:10 7a 01 7b 16 子站:68 09 09 68 28 01 01 81 03 01 03 00 01 b3 16【突发单点遥信】 主站:10 5a 01 5b 16 子站:68 09 09 68 28 01 01 81 03 01 03 00 00 b2 16【突发单点遥信】 主站:10 7a 01 7b 16 子站:68 1a 1a 68 08 01 1e 02 03 01 03 00 01 fc 43 39 16 81 03 07 03 00 00 f1 4a 39 16 81 03 07 62 16【突发单点时标单点CP56Time2a时标事件】 主站:10 5b 01 5c 16 子站:10 09 01 0a 16 主站:10 5a 01 5b 16 子站:68 09 09 68 28 01 01 81 03 01 08 00 00 b7 16【突发单点遥信】 主站:10 7a 01 7b 16 子站:68 0c 0c 68 08 01 02 01 03 01 08 00 01 97 32 04 e6 16【突发带时标CP24单点遥信事件】主站:10 5b 01 5c 16 子站:10 09 01 0a 16 6.2.变化遥测 主站:10 7b 01 7c 16 子站:10 29 01 2a 16 主站:10 5a 01 5b 16 子站:68 0b 0b 68 28 01 09 81 03 01 08 40 00 01 00 00 16【突发规一化遥测】 主站:10 7a 01 7b 16 子站:68 0b 0b 68 08 01 09 81 03 01 08 40 00 00 00 00 df 16【突发规一化遥测】 主站:10 5b 01 5c 16 子站:10 09 01 0a 16

101规约解读解析

101规约解读 一、101帧格式 1 例:10 49 01 4a 16(请求远方链路) 2 例:68 09 09 68 73 01 64 01 06 01 00 00 14 f4 16(总召唤) 3.单字节(E5H )无数据应答 4FCB :主站命令计数位,每次翻转。正常流程FCB 位每次翻转,如果主站未收到子站的正确应答,则FCB 位不翻转,如连续多次(三次以上)未收到,则初始化链路。子站判断FCB 位,如果发现未变化,则重发上次的原码。 FCV :主站命令有效位 ACD :子站命令,ACD=1表示有一级数据,要求主站召唤 DFC :子站命令,DFC=1表示数据流满,要求暂停召唤 5.功能码表 主站->分站 分站->主站

子站命令 二、101原码分析 1.请求远方链路 手发报文:10 4901 4A 16 (1)控制域=49,(2)链路地址=01H RTU响应:10 0B01 8C 16 (10 AB 01 AC 16) 结果:响应正确 说明:这是规约中的第一步,请求远方链路。若RTU响应后一种报文,表示RTU有1级数据,那主站在复位远方链路之后立刻召唤1级数据。 2.复位远方链路 手发报文:10 4001 41 16 (1)控制域=40,(2)链路地址=01H RTU响应:10 0001 81 16 (10 A0 01 A1 16) 结果:响应正确 说明:这是规约中的第二步,复位远方链路。若RTU响应后一种报文,表示RTU有1级数据,那主站在本帧之后立刻召唤1级数据。然后才总召唤。 3.询问1级用户数据 手发报文:10 7A01 7B 16 (1)控制域=40,(2)链路地址=01H RTU响应:68 1B 1B 68 88 01 01 07 05 01 02 00 00 03 00 00 04 00 00 05 00 01 06 00 01 07 00 01 08 00 01 BE 16 10 8F 01 90 16 结果:正确 说明:1级用户数据包括变位遥信,子站初始化结束报文和由读命令所寻址的信息体的数据。其中常用的就是变位遥信。

IEC101报文流程(有常用类型标识解释)

2002版IEC101规约流程. 2002版IEC101与97版IEC101(ZD101)主要区别是主站发送的每个长帧RTU端都先上送短帧链路层确认帧(有的RTU厂家发E5帧确认),然后再上送所召唤的数据.且严格的一问一答,主站发送的总召唤命令后根据RTU上送报文的ACD位是否置一,召唤一级数据或二级数据,此时RTU才上送全数据.. 1)链路地址字节数为1,传送原因字节数为1,公共地址字节数为1,信息体地址字节数为2 2) 一.流程 报文中字符均为16进制表示 下面以链路地址字节=1/公共地址字节=1/传送原因字节=1/信息体地址字节=2,97版基地址为例.

第一步:握手请求链路状态 发送―>请求链路状态: 10(启动字符)49 (控制域)01(链路地址即RTU地址)4a(校验)16(结束字符)接收―>收到链路完好: 10(启动字符)0b(控制域)01(链路地址即RTU地址)0c(校验)16(结束字符)第二步:复位链路 发送―>复位链路状态: 10(启动字符)40(控制域)01(链路地址即RTU地址)41(校验)16(结束字符)接收―>收到链路层确认: 10 (启动字符)00/20(控制域)01(链路地址即RTU地址)01(校验)16(结束字符)当接收到的控制域为20时ACD位置1,此时需要召唤一级数据,然后RTU上送初始化结束帧. 第三步:召唤全数据(DF8900系统通过设置RTU参数表中的”全数据扫描间隔”单位是分钟默认8分钟.DF1800/DF8002系统在程序中写定,一般15分钟召唤一次) 发送―>总召唤: 68(启动字符)09(长度,从控制域到校验前一字节长度,不包括校验字节)09(长度)68(启动字符)53(控制域)01(链路地址即RTU地址)64(类型标识)01(可变结构限定词)06(传送原因,激活)01(公共地址,同链路地址)00 00(信息体地址,2个字节)14(QOI,区分是总召唤还是分组召唤)xx(校验)16 接收―>收到链路层确认:10 20 01 21 16 发送―>召唤一级数据:10 7A 01 7B 16 接收―>总召唤确认帧: 68(启动字符)09(长度)09(长度)68(启动字符)20(控制域)01(链路地址即RTU地址)64(类型标识)01(可变结构限定词)07(传送原因,激活确认)01(公共地址,同链路地址)00 00(信息体地址,2个字节)14(QOI)xx(校验)16 发送―>召唤一级数据:10 5A 01 5B 16 接收―>遥信帧:(以类型标识20为例) 68(启动字符)3E(长度)3E(长度)68(启动字符)28(控制域)01(链路地址即RTU地址)14(类型标识,具有状态变位检出的成组单点遥信)08(可变结构限定词,8个信息体)14(传送原因,响应总召唤)01(公共地址,同链路地址) 01 00 (信息体地址,2个字节,从1号遥信开始)80 04(16个遥信值)00 00(状态 变化检出,与每个遥信值按位对应)00(品质描述) 1100(信息体地址,2个字节,从17号遥信开始)00 00(16个遥信值)00 00 (状态变化检出,与每个遥信值按位对应)00(品质描述) 2100 (信息体地址,2个字节,从33号遥信开始)00 00 (16个遥信值)00 00 (状态变化检出,与每个遥信值按位对应)00(品质描述) 3100 (信息体地址,2个字节,从49号遥信开始)00 00 (16个遥信值)00 00 (状态变化检出,与每个遥信值按位对应)00(品质描述) 4100(信息体地址,2个字节,从65号遥信开始)00 00(16个遥信值)00 00 (状态变化检出,与每个遥信值按位对应)00(品质描述) 5100(信息体地址,2个字节,从81号遥信开始)00 00(16个遥信值)00 00 (状态变化检出,与每个遥信值按位对应)00(品质描述) 6100 (信息体地址,2个字节,从97号遥信开始)00 00(16个遥信值)00 00 (状态变化检出,与每个遥信值按位对应)00(品质描述) 71 00 (信息体地址,2个字节,从113号遥信开始)00 00(16个遥信值)00 00

101规约报文分析(对初学者不错)

101规约报文分析 一级数据应答报文解释: ①主站链路请求报文:10 49 01 4A 16 启动字符:10H 控制域: 49H --> 0100 1001 DIR(传输方向位)=0 PRM(启动报文位)=1 主站-->从站 FCB(帧计数位)=0 FCV(帧计数有效位)=0(无效) 功能码=9 召唤链路状态 链路地址域:01H 帧校验和:4AH (前面除启动字符外的所有字节的累加) 结束字符:16H ②从站链路请求响应报文:10 8B 01 8C 16 启动字符:10H

控制域: 8BH --> 1000 1011 DIR(传输方向位)=1 PRM(启动报文位)=0 从站-->主站 ACD(要求访问位)=0(无一级数据) DFC(数据位)=0(表示子站可以继续接收数据) 功能码=11 以链路状态或访问请求回答请求帧链路地址域:01H 帧校验和:8CH (前面除启动字符外的所有字节的累加) 结束字符:16H ③主站链路复位请求报文:10 40 01 41 16 启动字符:10H 控制域: 40H --> 0100 0000 DIR(传输方向位)=0 PRM(启动报文位)=1 主站-->从站 FCB(帧计数位)=0 FCV(帧计数有效位)=0(无效) 功能码=0 复位远方链路 链路地址域:01H 帧校验和:41H (前面除启动字符外的所有字节的累加) 结束字符:16H ④从站链路复位响应报文:10 80 01 81 16 启动字符:10H 控制域: 80H --> 1000 0000 DIR(传输方向位)=1 PRM(启动报文位)=0 从站-->主站 ACD(要求访问位)=0(无一级数据) DFC(数据位)=0(表示子站可以继续接收数据) 功能码=0 确认 链路地址域:01H 帧校验和:81H (前面除启动字符外的所有字节的累加) 结束字符:16H ⑤主站召唤2级数据报文:10 7B 01 7C 16 启动字符:10H 控制域: 7BH --> 0111 1011 DIR(传输方向位)=0 PRM(启动报文位)=1 主站-->从站 FCB(帧计数位)=1 FCV(帧计数有效位)=1(有效) 功能码=11 召唤用户2级数据 链路地址域:01H 帧校验和:7CH 结束字符:16H

101及104规约报文解析方法

101、104规约报文解析方法一、电力系统数据通信协议体系 IEC60870-5系列:远动通信协议体系 IEC60870-6系列:计算机数据通信协议体系 IEC61850-7系列:变电站数据通信协议体系 IEC60870-5系列; IEC TC57 WG03(远动规约) 配套标准 IEC60870-5-101:基本远动任务 IEC60870-5-102:电能累计量 IEC60870-5-103:继电保护 IEC60870-5-104:IEC60870-5-101的网络访问 其他规约类型;CDT、DNP3.0、MODBUS等。 二、远动传输规约IEC60870-5-104的解析方法 1)程序启动后,首先发送链路连接请求帧, 68 04 07 00 00 00 起始字符:68H 应用规约数据单元长度(APDU):04H(4个字节,即07 00 00 00)控制域第一个八位组:07H --> 0000 0111 由前两位11可知是U格式帧; 由第三四位01可知是链路连接请求帧 2)随后,接到模拟从站发送来的连接请求确认帧, 68 04 0B 00 00 00 起始字符:68H 应用规约数据单元长度(APDU):04H(4个字节,即0B 00 00 00)控制域第一个八位组:0BH --> 0000 1011 由前两位11可知是U格式帧; 由第三四位10可知是链路连接确认帧 3)主站发送测试链路询问帧, 68 04 43 00 00 00 控制域第一个八位组:43H --> 0100 0011 由前两位11可知是U格式帧; 由第七八位01可知是链路测试请求帧 4)从站发送链路测试确认帧; 68 04 83 00 00 00 控制域第一个八位组:43H --> 0100 0011 由前两位11可知是U格式帧;

IEC101规约报文解析举例

I E C-101规约报文举例 1. 子站上电第一次建立连接后,上送初始化结束帧 2. 主站复位命令

3. 完整的时钟同步过程3.1.延时采集和延时发送 3.2.时钟同步 4. 总召唤 4.1.站总召唤

4.2.分组召唤

5. 遥控 5.1.主站下发单点遥控合选择并且执行的全过程 5.2.主站下发单点遥控分选择并且撤销的全过程

6. 子站突发上送数据 6.1.YXBW、SOE 主站:10 5b 01 5c 16 子站:10 29 01 2a 16 主站:10 7a 01 7b 16 子站:68 09 09 68 28 01 01 81 03 01 03 00 01 b3 16【突发单点遥信】 主站:10 5a 01 5b 16 子站:68 09 09 68 28 01 01 81 03 01 03 00 00 b2 16【突发单点遥信】 主站:10 7a 01 7b 16 子站:68 1a 1a 68 08 01 1e 02 03 01 03 00 01 fc 43 39 16 81 03 07 03 00 00 f1 4a 39 16 81 03 07 62 16【突发单点时标单点CP56Time2a时标事件】 主站:10 5b 01 5c 16 子站:10 09 01 0a 16 主站:10 5a 01 5b 16 子站:68 09 09 68 28 01 01 81 03 01 08 00 00 b7 16【突发单点遥信】 主站:10 7a 01 7b 16 子站:68 0c 0c 68 08 01 02 01 03 01 08 00 01 97 32 04 e6 16【突发带时标CP24单点遥信事件】主站:10 5b 01 5c 16 子站:10 09 01 0a 16 6.2.变化遥测 主站:10 7b 01 7c 16 子站:10 29 01 2a 16 主站:10 5a 01 5b 16 子站:68 0b 0b 68 28 01 09 81 03 01 08 40 00 01 00 00 16【突发规一化遥测】

101规约 报文传输过程

?平衡式和非平衡式传输 ?非平衡传输(Unbalanced tranmission) 主站采用顺序地查询(召唤)子站来控制数据传输,在这种情况下主站是请求站,它触发所有报文的传输,子站是从动站,只有当它们被查询(召唤)时才可能传输。 ?平衡传输(Balanced tranmission) 采用平衡传输,每一个站可能启动报文传输。因为这些站可以同时既作为启动站又可以作为从动站,它们被称为综合站。 初始化过程 ?控制站初始化 ?被控站初始化 ?被控站被远方初始化 过程 ?召唤链路状态 ?复位RTU ?召唤链路状态 ?召唤一级数据。 初始化过程报文分析: 1)当通信中断后,主站发“请求链路状态”,等待与子站建立通信联系 M->R :10 49 01 4A 16 M->R :10 49 01 4A 16 报文解析:请求链路状态,固定帧。 启动字符(1个字节):10;

控制域(1个字节):49(4:主->子站。FCB位无效,9:请求链路状态) 链路地址(1个字节):1 校验码(1个字节):4A 结束字符(1个字节):16 2)通信建立,开始初始化过程,共四个报文。 初始化过程-1 请求链路状态 M->R :10 49 01 4A 16 R->M :10 0B 01 0C 16 报文解析: 控制域(1个字节):49(4:主->子站。FCB位无效,9:请求链路状态) 0B(0:子->主站。FCB位无效,B:响应链路状态)初始化过程-2 复位远方链路 M->R :10 40 01 41 16 R->M :10 20 01 21 16 报文解析: 控制域(1个字节):40(4:主->子站FCB位无效,0:复位远方链路) 20(2:子->主站FCB位无效,ACD=1, 0:确认)初始化过程-3 请求1级数据 M->R :10 7A 01 7B 16 R->M :68 09 09 68 08 01 46 01 04 01 00 00 02 CRC 16 报文解析: 控制域(1个字节):7A(7:主->子站FCB位有效,A:召唤一级数据) 回答报文:有单字节报文,有子站初始化结束的可变帧报文,有无所回答的固定帧报文。?总召唤命令 初始化报文报文结束后进行全数据召唤命令。 全数据召唤后,子站需回答确认命令,然后等待主站召唤一级数据, 将全数据上传。

[指南]电力系统104规约报文解析

[指南]电力系统104规约报文解析基本定义:端口号2404,站端为Server 控端为Client,平衡式传输,2Byte 站地址,2Byte传送原因,3Byte信息地址。 104不涉及链路层,也没有一、二级数据之说。 104规约可以简单理解成网络版的101规约。他是建立在TCP/IP层之上,可以把他认为是会话层的的规约(我是这么理解的)。 在串口通讯程序中我们要自己写程序,用校验机制来保证及判断报文的完整性(属于链路层的东西);用重发机制保证报文不丢失(网络层或传输层的东西)。而在网络通讯中,这些功能都由底层的TCP/IP协议完成了,所以,我们就不必关心再校验,丢包等问题了。 被控站需要在连接成功后,接到STARTDT才能主动上发数据。 关于什么时候发总召唤以及连接后做些什么,那就看具体应用需求了,这个没有特别限制 104规约通信流程: 0x68+长度+4bytes控制域 基本格式I,S ,U 1bit=0 I格式 发送序号(NS)LSB 0 控制域1 MSB 发送序号(NS) 控制域2 接收序号(NR)LSB 0 控制域3 MSB 接收序号(NR) 控制域4 S格式 0 1 控制域

CON ACT CON ACT CON ACT S格式 1 控制域0 2 控制域接收序号(NR)LSB 0 3 控制域MSB 接收序号(NR) 4 TESTFR STOPDT STARTDT 1 1 控制域CON ACT CON ACT CON ACT U格式 1 控制域0 2 控制域0 3 控制域0 4 [主战端监视] 启动 1 //----召唤链路状态 TX:U格式的STARTDT生效报文:68 04 07 00 00 00 M,R 04:数据单元长度(APDU)=4,07: U格式帧 STARTDT:ACT=1 CON=0 STOPDT:ACT=0 CON=0 TESTFR: ACT=0 CON=0 RX:U格式的STARTDT确认报文:68 04 0B 00 00 00 R—>M 数据单元长度(APDU)=4 U格式帧 STARTDT:ACT=0 CON=1 STOPDT:ACT=0 CON=0 TESTFR: ACT=0 CON=0 总召唤 //---I Form 发送和接收序列号如何确定 TX:总召唤:=68 0e 08 00 0e 00 64 01 06 01 02 00 00 00 00 14 RX:总召唤确认:=68 0e 0e 00 0a 00 64 01 07 00 01 00 00 00 00 0e RX:单点信息:=68 56 10 00 0a 00 01 c9 14 00 01 00 01 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 80 80 80

相关主题
相关文档 最新文档