1. 程式人生 > >電力102規約報文解析

電力102規約報文解析

       IEC102 應用報文分6大類:通訊連線,讀時鐘,讀歷史資料,讀實時資料,讀事件資訊,對時。

      傳輸過程的啟動僅限於某一固定點,在規約中主站端為啟動站,而電能計量資料終端裝置位於計數站,始終為從動站。本系統中的1 級使用者資料包括較早時段儲存起來的電量和讀—應用服務資料單元請求的全部資訊。本系統中的資料採用低位元組在前,高位元組在後的傳輸方式。

102報文的基本格式:

幀長可以變化102報文的基本格式:

102報文的基本說明:

a) 單字元用於子站向主站傳輸的確認(肯定或否定);

b) 控制域是用來區別不同的幀和資料傳輸方向的單位元組,詳見第二節;

c) 地址域是鏈路地址(一般是RTU

編號),2位元組,低位元組在前,高位元組在後;

d) 幀校驗是使用者資料區的各位元組的算術和對256的模;

e) 變長幀中的L為使用者資料區的長度,2L相等;

f) 變長幀中的ASDU為應用服務資料單元,詳見第三節;

g) 資料傳輸方式:是非同步傳輸方式,11位,其中啟動位為二進位制0,資料位8位,一個偶校驗位,一個停止位。

1. 鏈路層解析—控制域

控制域包含了傳輸方向、傳輸狀態以及鏈路功能型別等資訊,1位元組,各個位定義如下:

1) 主站側

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

0

1

FCB

FCV

功能碼

FCB位:

主站確認子站已收到命令幀併發送下一幀命令幀的時候,要將FCB位取反,表示是一幀新的命令幀;否則,保持FCB位不變,表示要求子站重發上一幀資料。

FCV位:

FCV位取0,表示不需要考慮FCB為是否取反,此時FCB位應該取0;反之,FCV位取1,表示FCB位取反有效,子站通過FCB位的狀態判斷下一步做什麼,重發或者是繼續。

功能碼:

表示鏈路功能命令,即子站從鏈路層判斷需要執行什麼操作。

code

FT

FUCTION

FCV

0x00

傳送/確認幀

復位通訊單元CU

0

0x03

傳送/確認幀

下發資料命令

1

0x09

請求/響應

召喚鏈路狀態

0

0x0A

請求/響應

召喚I級使用者資料

1

0x0B

請求/響應

召喚II級使用者資料

1

I級使用者資料:

歷史資料;

II級使用者資料;

最近一次採集的電能資料;如果在下一次採集電能資料之前再次召喚II級使用者資料,子站應該返回“沒有所召喚的資料”,即,II級使用者資料上傳之後就不再是II級使用者資料了。

功能碼0x000x090x0A0x0B用於定長幀;功能碼0x03用於變長幀,下發召喚資料命令。

2) 子站側

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

0

0

ACD

DFC

功能碼

ACD位:

ACD位取1表示子站有I級使用者資料等待上傳,主站接收資料完成之後應該傳送召喚I級使用者資料命令;反之,ACD位取0表示子站待傳資料已全部上傳完成。

DFC位:

DFC位是資料流控制位,取0表示子站可接收資料,取1表示子站緩衝區已滿,無法接收資料。

功能碼:

code

FT

FUCTION

0x00

確認幀

響應鏈路復位

0x01

確認幀

鏈路忙,沒收到報文

0x08

響應幀

以資料響應請求幀

0x09

響應幀

沒有所召喚的資料

0x0B

響應幀

響應請求鏈路狀態

功能碼0x000x010x090x0B用於定長幀;功能碼0x08用於變長幀,上傳資料。

2. 應用層解析—ASDU

1) ASDU結構

資料單元識別符號(6 Bytes)

型別標識

可變結構限定詞(VSQ)

傳輸原因(COT)

ADDRL

虛擬裝置地址

ADDRH

記錄地址(RAD)

資料區

資訊體地址(IOA)

資訊體1

資訊元素集

時間

資訊體地址(IOA)

資訊體n

資訊體n

時間

2) ASDU型別標識

1位元組,在主站側表示的是主站召喚的資料型別,例如子站系統時間、子站單點資訊、子站電能資料,等等;在子站測表示的是子站上傳的資訊元素的型別。ASDU型別標識的詳細清單如下。

ASDU型別標識詳細定義

主站側:

標識

功能

註釋

100

讀製造廠和產品規範

101

讀帶時標的單點資訊的記錄

102

讀一個選定時間範圍的帶時標的單點資訊的記錄

常用

103

讀採集器的當前系統時間

常用

104

讀最早累計時段的積分電能量—表底值

常用

120

讀選定時間範圍、選定地址範圍的積分電能量—表底值

常用

121

讀選定時間範圍、選定地址範圍的積分電能量—增量值

128

時鐘同步

常用

170

讀指定地址範圍和時間範圍的復費率積分電能量—表底值

常用

171

讀指定地址範圍的遙測量當前值

常用

172

讀指定累計時段、選定地址範圍的遙測量

子站側:

標識

功能

註釋

1

帶時標的單點資訊

常用

2

積分電能量—表底值,4位元組

常用

5

積分電能量—增量值,4位元組

70

初始化結束

常用

71

採集器的製造廠和產品規範

72

採集器的當前系統時間

常用

128

時鐘同步

常用

160

復費率積分電能量—表底值,4位元組

常用

161

遙測量當前值

常用

162

遙測量歷史值

3) 可變結構限定詞(VSQ)

1位元組,低7位表示資訊體數目,最高位是定址方法位SQ位。SQ0,表示後面的每個資訊體都有資訊體地址,VSQ取值0-127SQ1,表示只有第一個資訊體有資訊體地址,後續的資訊體是連續的,VSQ取值128-255

4) 傳輸原因(COT)

1位元組,已使用的COT型別如下:

COT

解釋

方向(下面為發出方)

4

初始化

子站側

5

請求/被請求

主站側/子站側

6

啟用

主站側

7

啟用確認

子站側

8

停止啟用

主站側

9

停止啟用確認

子站側

10

啟用終止

子站側

13

無所請求資料

子站側

14

無所請求的ASDU型別

子站側

15

記錄地址錯誤

子站側

16

虛擬裝置地址錯誤

子站側

17

無所請求的資訊體

子站側

18

無所請求的累計時段

子站側

48

時鐘同步

主站側/子站側

在主站側,COT表示命令的請求方式,例如,是請求應答(COT=5)還是啟用上傳資料(COT=6);在子站測,COT表示應答方式,以及是否有資料待傳。

5) 虛擬裝置地址

2位元組,指虛擬RTU裝置地址,一般在終端的採集量超過255個才使用。可以將採集量分組,每組即是一個虛擬RTU裝置。採用虛擬RTU裝置,可以針對不同需求的主站上傳不同的資料,做到資料隔離,節省通道資源,並且起到資料保密功能。

在沒有設定虛擬RTU裝置的情況下,虛擬裝置地址一般取0

6) 記錄地址(RAD)

1位元組,用來表示同類資料的不同緩衝區型別,已使用的RAD型別如下:

RAD

解釋

0

預設

11

電能累計量累計時段1

12

電能累計量累計時段2

13

電能累計量累計時段3

51

全部單點資訊

52

單點資訊記錄區段1(一般指終端裝置的單點資訊)

53

單點資訊記錄區段2(一般指電能表的單點資訊)

7) 資訊體

在不同的主站命令幀和子站上傳資料幀中,資訊體有不同的結構,具體解釋在第45兩節。

8) 時間表示

a) 時間資訊a

5位元組,表示年、月、日、時、分,以及周,具體定義如下:

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

0

0

(0-59)

0

備用(0)

(0-23)

/

(1-7)

(1-31)

(未使用)

(未使用)

(1-12)

(0)

(0-99)

用於電能資料、分時電量和遙測量歷史資料的時標。

b) 時間資訊b

7位元組,表示年、月、日、時、分、秒、毫秒,以及周,具體定義如下:

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

毫秒

毫秒(包括秒位元組低兩位,共10位)(0-999)

(0-59)

毫秒

0

0

(0-59)

0

備用(0)

(0-23)

/

(1-7)

(1-31)

(未使用)

(未使用)

(1-12)

(0)

(0-99)

用於單點資訊的時標,以及子站系統時間。

3. 主站命令結構

只選取包含資訊體元素或者常用的ASDU型別。

ASDU型別

VSQ

COT

RAD

資訊體

102-單點資訊

1

6

0/51/52/53

起始和結束時間,時間資訊a

103-子站時鐘

0

5

0

120-電能量

1

6

0/11/12/13

起始和結束地址(取值1-255);

起始和結束時間,時間資訊a

128-時鐘同步

1

48

0

主站系統時間,時間資訊b

4. 子站資料結構

1) 單點資訊

每條單點資訊的資訊體包含9位元組,定義如下:

資訊體地址(SPA)1位元組

詳見單點資訊地址表

單點資訊限定詞(SPQ),高7

單點資訊狀態(SPI),低1

詳見單點資訊地址表

時間資訊b

單點資訊地址表

終端事件:

事件

SPA

SPQ

SPI

退出系統

180

3

0

啟動系統

1

3

0

時鐘同步

7

5

0

修改引數

15

1

0

電源故障

3

1

0

電池故障

4

1

0

硬體故障

8

1

0

印表機故障

8

33

0

通訊模組故障

8

49

0

電能表事件:

事件

SPA

SPQ

SPI

通訊失敗

128

電能表序號

1

通訊恢復

128

電能表序號

0

PT失壓(發生)

A: 135

電能表序號

未使用

B: 136

C: 137

斷相(發生)

A: 129

電能表序號

未使用

B: 130

C: 131

過壓(發生)

A: 132

電能表序號

未使用

B: 133

C: 134

2) 電能資料

資訊體1

……

資訊體n

公共時標

每個累計時段的電能資料分別組幀,公共時標用時間資訊a表示,位於全部資訊體的後面;每個電能資料資訊體包含7位元組,定義如下:

資訊體地址

1位元組

電能資料

4位元組

幀計數

1位元組

電能資料校驗

1位元組

資訊體地址對應在子站註冊的採集量的編號,取值1-255

幀計數字節定義如下:

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

資料狀態

0

0

幀計數

資料狀態位表示資訊體中的電能資料是否為有效資料,0為有效,1為無效。

幀計數在上傳電能資料、分時電量、遙測量時使用,每上傳完成一個累計時段的資料,幀計數加1;如果同一累計時段的資料需要分幀上傳,幀計數不變。

電能資料校驗是保護電能資料有效的另一個標誌,是計算ASDU型別標識、虛擬裝置地址、記錄地址、資訊體地址、電能累計量、幀計數、以及公共時標個位元組的算術和取256的模。

3) 分時電量

幀結構與電能資料基本相同,差別在於資訊體的結構不同;資訊體共包含27位元組,具體定義如下:

資訊體地址

1位元組

分時電量資料

24位元組

幀計數

1位元組

電能資料校驗

1位元組

除了分時電量資料之外,定義與電能資料資訊體中一致;分時電量資料定義如下:

總電量(4位元組)

費率1 (4位元組— 尖

費率2 (4位元組— 峰

費率3 (4位元組— 平

費率4 (4位元組— 谷

費率5 (4位元組— 暫未使用

4) 遙測量

資訊體1

……

資訊體n

公共時標

歷史資料幀包含公共時標,瞬時資料幀中沒有。

每個遙測量資訊體包含6位元組,定義如下:

資訊體地址

1位元組

遙測量資料

4位元組

資料狀態

1位元組

資訊體地址的定義請參考附錄C,取值1-255

資料狀態位元組定義如下:

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

資料狀態

保留(0)

資料狀態位表示資訊體中的遙測量資料是否為有效資料,0為有效,1為無效。

報文示例:

68 15 15 68 53 01 00 78 01 06 01 00 0B 01 0A 0F 00 12 03 0F 15 00 12 03 0F 56 16

15H:指的是從控制域開始到校驗碼之前的位元組個數,共計15H=21個位元組

報文分析

68 15 15 68      //幀頭

53             //控制域

01 00          //RTU地址

78 

01 

06             //啟用

01 00          //RTU地址

0B 

01             //起始點01,第1個點

0A             //結束點0A,第10個點

0F 00 12 03 0F   //起始時間0F15分) 000時) 1218日) 033月) 0F15年)

15 00 12 03 0F   //結束時間1521分) 000時) 1218日) 033月) 0F15年)

56             //校驗和

16             //幀尾

10 5A 01 00 5B 16 

10 

5A       //召喚I級資料

01 00     //RTU地址

5B       //校驗和

16       //幀尾

68 15 15 68 28 01 00 78 01 07 01 00 0B 01 08 0F 00 92 03 0F 14 00 92 03 0F 29 16

68 15 15 68          //幀頭

28                 //控制域

01 00              //RTU地址

78 

01 

07                //啟用確認

01 00             //RTU地址

0B 

01                //起始點01,第1個點

08                //結束點08,第8個點(此時採集器實際就只有前8個點)

0F 00 92 03 0F  

//起始時間0F15分)000時)921001  00103位星期4,低518日) 033月) 0F15年)

14 00 92 03 0F 

//結束時間1420分)000時)921001  00103位星期4,低518日) 033月) 0F15年)