电力用户用电信息采集系统通信协议报文解析示例
電力用戶用電信息采集系統通信協議報文解析示例
本文解析實例和見附錄參考 均來自 《國家電網公司企業標準 Q / GDW 1376.1 — 2012 電力用戶用電信息采集系統通信協議 第1部分:主站與采集終端通信協議》
參考文獻鏈接 (Q / GDW 376.1—2009電力用戶用電信息采集系統通信協議報文解析示例)[https://blog.csdn.net/wuyu92877/article/details/78715876]
字節格式
幀的基本單元為 8 位字節。鏈路層 傳輸順序為 低位在前,高位在后;低字節在前,高字節在后
英文名詞含義:
- BIN 碼 : BIN 就是二進制編碼。比如 十進制 數的 11, 用 BIN碼 表示就是 1011;
- 二進制 1011 轉十進制后 數值就是 11
- BCD 碼(別稱 8421碼):BCD 碼就是用 四位二進制數 表示 一位十進制數 的編碼,比如 **十進制數 11 **用 BCD碼 表示就是 00010001;
- 二進制 00010001 轉十六進制后 數值就是 11
幀格式
幀格式定義結構
| 起始字符(68H) | ↑ 固定長度的報文頭 ↓ | |
| 長度 L | ||
| 長度 L | ||
| 起始字符(68H) | ||
| 控制域 C | 控制域 | 用戶數據區 |
| 地址域 A | 地址域 | |
| 鏈路用戶數據 | 鏈路用戶數據 (應用層) | |
| 校驗和 CS | 幀校驗和 | |
| 結束字符(16H) | ? | |
傳輸規則
- 線路空閑狀態為二進制 1
- 幀的字符之間無線路空閑間隔;兩幀之間的線路空閑間隔最少需 33 位
- 如按 e) 檢出了差錯,兩幀之間的線路空閑間隔最少需 33 位
- 幀校驗和(CS)是用戶數據區的八位位組的算術和,不考慮進位位
- 接收方校驗
- 對于每個字符:校驗起動位、停止位、偶校驗位
- ? 對于每幀
- 檢驗幀的固定報文頭中的開頭和結束所規定的字符以及協議.標識位
- 識別 2 個長度 L
- 每幀接收的字符數為用戶數據長度 L1+8
- 幀校驗和
- 結束字符
- 校驗出一個差錯時,校驗按 c)的線路空閑間隔
- 若這些校驗有一個失敗,舍棄此幀;若無差錯,則此幀數據有效
鏈路層
長度L
長度 L 包括 協議.標識 和 用戶數據長度 ,由2字節組成,如下表格所示:
| D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
| D15 | D14 | D13 | D12 | D11 | D10 | D9 | D8 |
協議標識由圖2中D0~D1兩位編碼表示,定義如下:
- D0=0、D1=0:為禁用;
- D0=1、D1=0:為《Q/GDW 130—2005電力負荷管理系統數據傳輸規約》使用;
- D0=0、D1=1:為本協議使用;
- D0=1、D1=1,為保留。
- 用戶數據長度L1:由D2~D15組成,采用BIN編碼,是控制域、地址域、鏈路用戶數據(應用層)的字節總數
- 采用專用無線數傳信道,長度L1不大于255;
- 采用網絡傳輸,長度L1不大于16383。
控制域C
控制域C表示報文傳輸方向和所提供的傳輸服務類型的信息,定義如下表格所示:
| ? | D7 | D6 | D5 | D4 | D3~D0 |
| 上行方向 | 傳輸方向位 DIR | 啟動標志位 PRM | 幀計數位 FCB | 幀計數有效位 FCV | 功能碼 |
| 下行方向 | 要求訪問位 ACD | 保留 |
應用層
應用層格式
應用層(鏈路用戶數據)格式定義 如下表所示
| 幀序列域SEQ |
| 數據單元標識1 |
| 數據單元1 |
| …… |
| 數據單元標識n |
| 數據單元n |
| 附加信息域AUX |
應用層功能碼
應用層功能碼AFN由 一字節 組成,采用二進制編碼表示,具體定義如下表所示
| 00H | 確認∕否認 |
| 01H | 復位 |
| 02H | 鏈路接口檢測 |
| 03H | 中繼站命令 |
| 04H | 設置參數 |
| 05H | 控制命令 |
| 06H | 身份認證及密鑰協商 |
| 07H | 備用 |
| 08H | 請求被級聯終端主動上報 |
| 09H | 請求終端配置 |
| 0AH | 查詢參數 |
| 0BH | 請求任務數據 |
| 0CH | 請求 1 類數據(實時數據) |
| 0DH | 請求 2 類數據(歷史數據) |
| 0EH | 請求 3 類數據(事件數據) |
| 0FH | 文件傳輸 |
| 10H | 數據轉發 |
| 11H~FFH | 備用 |
報文解析示例
登錄幀(終端 -> 主站)
該幀為集中器發送給主站的登錄注冊幀
幀報文格式
| 68H |
| L |
| L |
| 68H |
| C |
| A |
| AFN=03H |
| SEQ |
| 數據單元標識(DA=0) |
| 數據單元 |
| CS |
| 16H |
鏈路接口檢測報文格式
登錄幀解析
-
登錄幀:68 32 00 32 00 68 C9 03 44 04 00 00 02 71 00 00 01 00 88 16
68 起始字符(68H) 32 00 長度 L 數據長度 2 字節,數據類型排列順序為 低位在前 高位在后,正序數值為 0x0032 ,轉換為二進制為 0b0000000000110010
D1~D0 為協議類型。其 0b10 代表為 1376.1 協議使用標志
D15~D2 為長度,為報文的用戶數據區長度,對應的二進制值為 0b1100,轉換為十進制為12,即原始報文的紅色部分32 00 長度 L 內容解釋同上,使用 2 個長度表示長度確認比對 68 起始字符(68H) C9 控制域 C 控制域C,二進制數值為 0b11001001 ,對應 D7~D0位 ?
D7
D6
D5
D4
D3~D0
上行方向
傳輸方向位 DIR
啟動標志位 PRM
要求訪問位 ACD
保留
功能碼
?
1
1
0
0
1001
D7:傳輸方向位DIR,D7 位的數值為1,代表此幀報文是由終端發出的 上行報文
D6:啟動標志位PRM,D6 位的數值為1,代表此幀報文來自啟動站
D5:要求訪問位,D5 位的數值為0,ACD=1表示終端有重要事件等待訪問,則附加信息域中帶有事件計數器EC(EC見本部分4.3.4.6.3);ACD=0表示終端無事件數據等待訪問
D4:保留
D3~D0:功能碼,對應值為9,當 啟動標志位PRM=1 時,代表該幀報文的幀類型為請求/響應幀,服務功能為鏈路測試,及使用于 AFN=02 的應用層功能碼
功能碼定義(PRM=1)功能碼
幀 類 型
服務功能
0
—
備用
1
發送∕確認
復位命令
2~3
—
備用
4
發送∕無回答
用戶數據
5~8
—
備用
9
請求∕響應幀
鏈路測試
10
請求∕響應幀
請求1級數據
11
請求∕響應幀
請求2級數據
12~15
—
備用
03 44 04 00 00 地址域 地址域分為三部分,03 44 | 04 00 | 00
地址域由 行政區劃碼A1、終端地址A2、主站地址和組地址標志A3 組成,格式見如下表所示地址域
數據格式
字節數
對應數值
行政區劃碼A1
BCD
2
03 44
終端地址A2
BIN
2
04 00
主站地址和組地址標志A3
BIN
1
00
第一部分為 行政區劃碼A1 ,行政區劃碼按GB 2260—91的規定執行,數據格式為 兩字節BCD碼 : 03 44,字節順序為低位在前高位在后,實際數值應為 4403
第二部分為 終端地址A2 ,終端地址A2選址范圍為1~65535。A2=0000H 為無效地址,A2=FFFFH 且A3 的 D0 位為“1”時表示系統廣播地址,數據格式為 兩字節BIN碼 : 04 00,字節順序為低位在前高位在后,實際數值應為 0004
第三部分為 主站地址和組地址標志A3,A3 的 D0 位為終端組地址標志,D0=0 表示終端地址 A2 為單地址;D0=1 表示終端地址 A2 為組地址;A3 的 D1~D7 組成 0~127 個主站地址 MSA。主站啟動的發送幀的 MSA 應為非零值,其終端響應幀的 MSA 應與主站發送幀的 MSA 相同。終端啟動發送幀的 MSA 應為零,其主站響應幀的 MSA 也應為零。數據格式為 一字節BIN碼 : 00,A3 的 D0 位為終端組地址標志,D0=0 表示終端地址 A2 為單地址, D7~D1 為主站地址 MSA,另外該幀是由終端發起的上行報文,終端啟動發送幀的 MSA 應為 0,其主站的響應幀也應為 0,這是硬性規定,如果不是 0,則一定是錯誤的02 應用層功能碼 AFN 應用層功能碼由 一字節組成,采用二進制編碼表示,對應數值為 02H ,代表應用功能為鏈路接口檢測 71 幀序列域 SEQ 幀序列域長度為 1 字節,0x71 轉換為二進制為 0b01110001,對應相關標志如下表所示 D7
D6
D5
D4
D3~D0
TpV
FIR
FIN
CON
PSEQ ∕ RSEQ
0
1
1
1
0001
TpV: 幀時間標簽有效位,TpV=0,表示在附加信息域中無時間標簽Tp;TpV=1,表示在附加信息域中帶有時間標簽 Tp
首幀標志 FIR: 值為 “1”,報文的第一幀
末幀標志 FIN: 值為 “1”,報文的最后一幀
FIR、FIN 組合狀態所表示的含義見下表FIR
FIN
應用說明
0
0
多幀:中間幀
0
1
多幀:結束幀
1
0
多幀:第1幀,有后續幀。
1
1
單幀
請求確認標志位 CON: 在所收到的報文中,CON 為值 “1”,表示需要對該幀報文進行確認;值為“0”,表示不需要對該幀報文進行確認
啟動幀序號 PSEQ: 取自 1字節 的 啟動幀計數器 PFC 的低 4 位計數值 0~15。
啟動幀計數器 PFC:,每一對 啟動站 和 從動站之間均有 1 個獨立的、由 1 字節構成的計數范圍為 0~255 的 啟動幀幀序號計數器PFC,用于記錄當前啟動幀的序號。啟動站每發送 1 幀報文,該計數器加1,從 0~255 循環加1遞增;重發幀則不加 1。目前該值為 0b0001
響應幀序號 RSEQ:響應幀序號 RSEQ 以啟動報文中的 PSEQ 作為第一個響應幀序號,后續響應幀序號在 RSEQ 的基礎上循環加 1 遞增,數值范圍為 0~15
幀序號改變規則
??1. 啟動站發送報文后,當一個期待的響應在超時規定的時間內沒有被收到,如果允許啟動站 重發,則該重發的啟動幀序號 PSEQ 不變。重發次數可設置,最多 3 次;重發次數為 0, 則不允許重發
??2. 當 TpV=0 時,如果從動站連續收到兩個具有相同啟動幀序號 PSEQ 的啟動報文,通常意味 著報文的響應未被對方站收到。在這種情況下,則重發響應(不必重新處理該報文)
??3. 當 TpV=0 時,如果啟動站連續收到兩個具有相同響應幀序號 RSEQ 的響應幀,則不處理第 二個響應
??4. 終端能同時處理多個請求00 00 信息點DA 信息點DA 由 信息點單元DA1 和 信息點組DA2 兩個字節構成。DA2 采用二進制編碼方式表示信息點組,低位在前高位在后,DA1 對位表示某一信息點組的1~8個信息點,以此共同構成信息點標識pn(n=1~2040),當DA1和DA2全為“0”時,表示終端信息點,用 p0 表示;運算規則為 (DA2-1)*8+DA1 對應位的值就是信息點標識 pn ,格式如下表所示 信息點組DA2
信息點元DA1
D7~D0
D7
D6
D5
D4
D3
D2
D1
D0
1
p8
p7
p6
p5
p4
p3
p2
p1
2
p16
p15
p14
p13
p12
p11
p10
p9
3
p24
p23
p22
p21
p20
p19
p18
p17
…
…
…
…
…
…
…
…
…
255
P2040
P2039
P2038
P2037
P2036
P2035
P2034
P2033
01 00 信息類DT 信息類DT 由信息類元DT1 和 信息類組DT2 兩個字節 構成。DT2 采用二進制編碼方式表示信息類組,DT1對位表示某一信息類組的1~8種信息類型,以此共同構成信息類標識Fn(n=1~248),運算規則為 DT2*8+DT1 對應位的值(8421碼) 就是信息類標識Fn,格式如下表所示 信息類組DT2
信息類元DT1
D7~D0
D7
D6
D5
D4
D3
D2
D1
D0
0
F8
F7
F6
F5
F4
F3
F2
F1
1
F16
F15
F14
F13
F12
F11
F10
F9
2
F24
F23
F22
F21
F20
F19
F18
F17
…
…
…
…
…
…
…
…
…
30
F248
F247
F246
F245
F244
F243
F242
F241
…
未定義
88 幀校驗和(CS) 幀校驗和(CS)是用戶數據區的8位位組的算術和,不考慮進位位 16 結束字符(16H) 幀結束符
確認幀(主站 -> 終端)
幀報文格式
| 68H |
| L |
| L |
| 68H |
| C |
| A |
| AFN=00H |
| SEQ |
| 數據單元標識 |
| 數據單元 |
| EC(見《Q/GDW 1376.1—2012 電力用戶用電信息采集系統通信協議》 部分4.3.4.6.3) |
| Tp(見《Q/GDW 1376.1—2012 電力用戶用電信息采集系統通信協議》 部分4.3.4.6.4) |
| CS |
| 16H |
確認/否認報文格式
確認幀解析
-
確認幀:68 32 00 32 00 68 0B 03 44 04 00 00 00 61 00 00 01 00 B8 16
68 起始字符(68H) 32 00 長度 L 數據長度 2 字節,數據類型排列順序為 低位在前 高位在后,正序數值為 0x0032 ,轉換為二進制為 0b0000000000110010
D1~D0 為協議類型。其 0b10 代表為 1376.1 協議使用標志
D15~D2 為長度,為報文的用戶數據區長度,對應的二進制值為 0b1100,轉換為十進制為12,即原始報文的紅色部分32 00 長度 L 內容解釋同上,使用 2 個長度表示長度確認比對 68 起始字符(68H) 0B 控制域 C 控制域C,二進制數值為0b00001011,對應d7~d0位
D7:傳輸方向位 DIR,D7 位的數值為 0,代表此幀報文是由主站發出的下行報文?
D7
D6
D5
D4
D3~D0
下行方向
傳輸方向位 DIR
啟動標志位 PRM
幀計數位 FCB
幀計數有效位 FCV
功能碼
?
0
0
0
0
1011
D6:啟動標志位 PRM,D6 位的數值為 0,代表此幀報文來自從動站
D5:幀計數位 FCB,D5 位的數值為 0,由于幀計數有效位的值為 0,幀計數位無效
D4:幀計數有效位 FCV,D4 位的數值為 0,代表幀計數位 FCB 位無效
D3~D0:功能碼,對應值為 11,當啟動標志位 PRM=0 時,代表該幀報文的幀類型為請求/響應幀 。服務功能為鏈路測試,及使用于 AFN=02 的應用層功能碼
功能碼定義(PRM=0)功能碼
幀類型
服務功能
0
確認
認可
1~7
—
備用
8
響應幀
用戶數據
9
響應幀
否認:無所召喚的數據
10
—
備用
11
響應幀
鏈路狀態
12~15
—
備用
03 44 04 00 00 地址域 地址域分為三部分,03 44 | 04 00 | 00
地址域由 行政區劃碼A1、終端地址A2、主站地址和組地址標志A3 組成,格式見如下表所示地址域
數據格式
字節數
對應數值
行政區劃碼A1
BCD
2
03 44
終端地址A2
BIN
2
04 00
主站地址和組地址標志A3
BIN
1
00
第一部分為 行政區劃碼A1 ,行政區劃碼按GB 2260—91的規定執行,數據格式為 兩字節BCD碼 : 03 44,字節順序為低位在前高位在后,實際數值應為 4403
第二部分為 終端地址A2 ,終端地址A2選址范圍為1~65535。A2=0000H 為無效地址,A2=FFFFH 且A3 的 D0 位為“1”時表示系統廣播地址,數據格式為 兩字節BIN碼 : 04 00,字節順序為低位在前高位在后,實際數值應為 0004
第三部分為 主站地址和組地址標志A3,A3 的 D0 位為終端組地址標志,D0=0 表示終端地址 A2 為單地址;D0=1 表示終端地址 A2 為組地址;A3 的 D1~D7 組成 0~127 個主站地址 MSA。主站啟動的發送幀的 MSA 應為非零值,其終端響應幀的 MSA 應與主站發送幀的 MSA 相同。終端啟動發送幀的 MSA 應為零,其主站響應幀的 MSA 也應為零。數據格式為 一字節BIN碼 : 00,A3 的 D0 位為終端組地址標志,D0=0 表示終端地址 A2 為單地址, D7~D1 為主站地址 MSA,另外該幀是由終端發起的上行報文,終端啟動發送幀的 MSA 應為 0,其主站的響應幀也應為 0,這是硬性規定,如果不是 0,則一定是錯誤的00 應用層功能碼 AFN 應用層功能碼由一字節組成,采用二進制編碼表示,對應數值為 00H,確認∕否認報文 是對接收報文中需要被確認(CON=1)的回答,以及終端對所請求的數據不具備響應條件的否認回答。該報文為單幀報文,幀序列域的標志位 FIR=1,FIN=1,CON=0 61 幀序列域SEQ 幀序列域長度為 1字節,0x61轉換為二進制為 0b01100001,相關標志對應如下表所示
TpV:幀時間標簽有效位,TpV=0,表示在附加信息域中無時間標簽Tp;TpV=1,表示在附加信息域中帶有時間標簽TpD7
D6
D5
D4
D3~D0
TpV
FIR
FIN
CON
PSEQ/RSEQ
0
1
1
0
0001
首幀標志 FIR: 值為 “1”,報文的第一幀
末幀標志 FIN: 值為 “1”,報文的最后一幀
FIR、FIN 組合狀態所表示的含義見下表FIR
FIN
應用說明
0
0
多幀:中間幀
0
1
多幀:結束幀
1
0
多幀:第1幀,有后續幀。
1
1
單幀
請求確認標志位 CON: 在所收到的報文中,CON 值為 “1”,表示需要對該幀報文進行確認;值為 “0”,表示不需要對該幀報文進行確認
啟動幀序號 PSEQ: 取自 1字節 的 啟動幀計數器 PFC 的低 4 位計數值 0~15。
啟動幀計數器 PFC:,每一對 啟動站 和 從動站之間均有 1 個獨立的、由 1 字節構成的計數范圍為 0~255 的 啟動幀幀序號計數器PFC,用于記錄當前啟動幀的序號。啟動站每發送 1 幀報文,該計數器加1,從 0~255 循環加1遞增;重發幀則不加 1。目前該值為 0b0001
響應幀序號 RSEQ:響應幀序號 RSEQ 以啟動報文中的 PSEQ 作為第一個響應幀序號,后續響應幀序號在 RSEQ 的基礎上循環加 1 遞增,數值范圍為 0~15
幀序號改變規則
??1. 啟動站發送報文后,當一個期待的響應在超時規定的時間內沒有被收到,如果允許啟動站 重發,則該重發的啟動幀序號 PSEQ 不變。重發次數可設置,最多 3 次;重發次數為 0, 則不允許重發
??2. 當 TpV=0 時,如果從動站連續收到兩個具有相同啟動幀序號 PSEQ 的啟動報文,通常意味 著報文的響應未被對方站收到。在這種情況下,則重發響應(不必重新處理該報文)
??3. 當 TpV=0 時,如果啟動站連續收到兩個具有相同響應幀序號 RSEQ 的響應幀,則不處理第 二個響應
??4. 終端能同時處理多個請求00 00 數據單元標識中的 pn 信息點DA由信息點元DA1和信息點組DA2兩個字節構成。當DA1和DA2全為“0”時,表示終端信息點,用p0表示; 01 00 數據單元標識中的 Fn 信息類DT 由信息類元 DT1 和信息類組 DT2 兩個字節構成。轉換成正序之后為 0x0001,表示 F1 — 全部確認,該確認沒有數據體 B8 幀校驗和 幀校驗和,紅色醒目確認幀 十六進制數值 相加 取后兩位值 16 幀結束符
心跳幀(終端 -> 主站)
心跳數據格式
| 終端時鐘 | 見附錄A.1 | 6 |
幀報文格式
| 68H |
| L |
| L |
| 68H |
| C |
| A |
| AFN=03H |
| SEQ |
| 數據單元標識(DA=0) |
| 數據單元 |
| CS |
| 16H |
鏈路接口檢測報文格式
心跳幀解析
-
心跳幀: 68 32 00 32 00 68 C9 03 44 04 00 00 02 72 00 00 04 00 8C 16
68 幀起始符 32 00 長度L 32 00 長度L 68 幀起始符 C9 控制域C 03 44 04 00 00 地址域A 02 應用層功能碼 AFN=02 72 幀序列域SEQ 00 00 04 00 數據單元標識 pn=0,Fn=3 8C 幀校驗和CS是用戶數據區的8位位組的算術和,不考慮進位位 16 幀結束符 -
確認幀:68 32 00 32 00 68 0B 03 44 04 00 00 00 62 00 00 01 00 B9 16
68 幀起始符 32 00 長度L 32 00 長度L 68 幀起始符 0B 控制域C 03 44 04 00 00 地址域A 00 應用層功能碼 AFN=00 62 幀序列域SEQ 00 00 01 00 數據單元標識 pn=0,Fn=1 B9 幀校驗和CS是用戶數據區的8位位組的算術和,不考慮進位位 16 幀結束符
知識點
Fn 和 pn定義
| F1 | 登 錄 | p0 |
| F2 | 退出登錄 | p0 |
| F3 | 心 跳 | p0 |
| F4~F248 | 備 用 |
總結
以上是生活随笔為你收集整理的电力用户用电信息采集系统通信协议报文解析示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue 转为静态html,Vue CLI
- 下一篇: 为团委出书写:《打造社团品牌:请给我一个