電力102規約報文解析
IEC102 應用報文分6大類:通訊連線,讀時鐘,讀歷史資料,讀實時資料,讀事件資訊,對時。
傳輸過程的啟動僅限於某一固定點,在規約中主站端為啟動站,而電能計量資料終端裝置位於計數站,始終為從動站。本系統中的1 級使用者資料包括較早時段儲存起來的電量和讀—應用服務資料單元請求的全部資訊。本系統中的資料採用低位元組在前,高位元組在後的傳輸方式。
102報文的基本格式:
幀長可以變化102報文的基本格式:
102報文的基本說明:
a) 單字元用於子站向主站傳輸的確認(肯定或否定);
b) 控制域是用來區別不同的幀和資料傳輸方向的單位元組,詳見第二節;
c) 地址域是鏈路地址(一般是RTU
d) 幀校驗是使用者資料區的各位元組的算術和對256的模;
e) 變長幀中的L為使用者資料區的長度,2個L相等;
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級使用者資料了。
功能碼0x00,0x09,0x0A,0x0B用於定長幀;功能碼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 |
響應幀 |
響應請求鏈路狀態 |
功能碼0x00,0x01,0x09,0x0B用於定長幀;功能碼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位。SQ取0,表示後面的每個資訊體都有資訊體地址,VSQ取值0-127;SQ取1,表示只有第一個資訊體有資訊體地址,後續的資訊體是連續的,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) 資訊體
在不同的主站命令幀和子站上傳資料幀中,資訊體有不同的結構,具體解釋在第4、5兩節。
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 //起始時間0F(15分) 00(0時) 12(18日) 03(3月) 0F(15年)
15 00 12 03 0F //結束時間15(21分) 00(0時) 12(18日) 03(3月) 0F(15年)
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
//起始時間0F(15分)00(0時)92(1001 0010高3位星期4,低5位18日) 03(3月) 0F(15年)
14 00 92 03 0F
//結束時間14(20分)00(0時)92(1001 0010高3位星期4,低5位18日) 03(3月) 0F(15年)