IEC102 應用報文分6大類:通訊連接,讀時鐘,讀歷史數據,讀實時數據,讀事件信息,對時。
傳輸過程的啓動僅限於某一固定點,在規約中主站端爲啓動站,而電能計量數據終端設備位於計數站,始終爲從動站。本系統中的1 級用戶數據包括較早時段存儲起來的電量和讀—應用服務數據單元請求的全部信息。本系統中的數據採用低字節在前,高字節在後的傳輸方式。
102報文的基本格式:
幀長可以變化102報文的基本格式:
102報文的基本說明:
a) 單字符用於子站向主站傳輸的確認(肯定或否定);
b) 控制域是用來區別不同的幀和數據傳輸方向的單字節,詳見第二節;
c) 地址域是鏈路地址(一般是RTU編號),2字節,低字節在前,高字節在後;
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年)