電表報文解析_第1頁
電表報文解析_第2頁
電表報文解析_第3頁
電表報文解析_第4頁
電表報文解析_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、該通信規(guī)約適用于本地系統(tǒng)中多功能表的費率裝置與手持單元(HHU)或其它數(shù)據(jù)終端設(shè)備進行點對點的或一主多從的數(shù)據(jù)交換方式,規(guī)定了它們之間的物理連接、通信鏈路及應(yīng)用技術(shù)規(guī)范。該協(xié)議在做“電力監(jiān)控”、“水監(jiān)控”等“工控領(lǐng)域”,具有廣泛的應(yīng)用。協(xié)議具體內(nèi)容可以從網(wǎng)上Google,下面主要介紹下協(xié)議的解析方法。 DL645協(xié)議需要先發(fā)送“前導(dǎo)字節(jié)”,用來喚醒從站,當然有些設(shè)備是不需要這樣喚醒的。在發(fā)送幀信息之前,先發(fā)送1-4個字節(jié)FEH,以喚醒接收方(FEH,H表示16進制,是一個字節(jié)), “前導(dǎo)字節(jié)” + “取數(shù)據(jù)報文”=“整體報文”。首先我們先整體了解一個發(fā)送報文“68 12 34 56 78 90

2、 12 68 01 02 43 C3 cs 16”在這之前呢,先看一下BCD碼。BCD碼:二進制編碼的十進制代碼。比如:0=00001=00012=00103=00114=01005=01016=01107=01118=10009=1001BCD碼:ASCII表示(都是字符)BCD碼都是由09,10個字符構(gòu)成。也就是說,BCD碼一個字節(jié)是兩位,一位是09,一個字節(jié)能夠表示0099。BCD碼1位是2進制的4位。按16進制表示,沒有ABCDEF。幀格式(DL/T645-1997通訊規(guī)約標準文檔中)幀是傳送信息的基本單元。幀格式如圖所示。說 明代碼幀起始符68H地址域A0A1A2A3A4A5幀起始符

3、68H控制碼C數(shù)據(jù)長度域L數(shù)據(jù)域DATA校驗碼CS結(jié)束符16H4.2.1幀起始符68H:標識一幀信息的開始,其值為68H=01101000B。4.2.2地址域A0A5:地址域由6個字節(jié)構(gòu)成,每字節(jié)2位BCD碼。地址長度為12位十進制數(shù),可以為表號、資產(chǎn)號、用戶號、設(shè)備號等。具體使用可由用戶自行決定。當使用的地址碼長度不足6字節(jié)時,用十六進制AAH補足6字節(jié)。低地址位在先,高地址位在后。當?shù)刂窞?99999999999H時,為廣播地址。4.2.3控制碼C:控制碼的格式如下所示。D7D6D5D4D3D2D1D0 功能碼 后續(xù)幀標志 從站異常標志 傳送方向 D7=0:由主站發(fā)出的命令幀 D7=1:由

4、從站發(fā)出的應(yīng)答幀 D6=0:從站正確應(yīng)答 D6=1:從站對異常信息的應(yīng)答 D5=0:無后續(xù)數(shù)據(jù)幀 D5=1:有后續(xù)數(shù)據(jù)幀 D4D0:請求及應(yīng)答功能碼 00000:保留 00001:讀數(shù)據(jù) 00010:讀后續(xù)數(shù)據(jù) 00011:重讀數(shù)據(jù) 00100:寫數(shù)據(jù) 01000:廣播校時 01010:寫設(shè)備地址 01100:更改通信速率 01111:修改密碼 10000:最大需量清零4.2.4數(shù)據(jù)長度L:L為數(shù)據(jù)域的字節(jié)數(shù)。讀數(shù)據(jù)時L200,寫數(shù)據(jù)時L50,L=0 表示無數(shù)據(jù)域。4.2.5數(shù)據(jù)域DATA:數(shù)據(jù)域包括數(shù)據(jù)標識和數(shù)據(jù)、密碼等,其結(jié)構(gòu)隨控制碼的功能而改變。傳輸時發(fā)送方按字節(jié)進行加33H處理,接收方

5、按字節(jié)進行減33H處理。4.2.6校驗碼CS:從幀起始符開始到校驗碼之前的所有各字節(jié)的模256的和, 即各字節(jié)二進制算術(shù)和,不計超過256的溢出值。4.2.7結(jié)束符號16H:標識一幀信息的結(jié)束,其值為16H=00010110B。發(fā)送報文:68 12 34 56 78 90 12 68 01 02 43 C3 cs 16說明如下:68(幀起始符)12 34 56 78 90 12 (6字節(jié),沒字節(jié)兩位,共12位地址,BCD碼表示。) 68(幀起始符)01(控制碼“包含功能碼”= 01 = 讀取數(shù)據(jù))02 (數(shù)據(jù)域長度,指 “43,C3”一共是兩字節(jié)。)“43 c3” (“43 C3”是數(shù)據(jù)域,表

6、示讀取數(shù)據(jù)類型 = “10 90”, 發(fā)送報文中 數(shù)據(jù)域需要做“+0x33處理”)cs(加校驗和,一個字節(jié),根據(jù)前面的計算)16(幀結(jié)束符)下面詳細的解釋下:幀起始符(645協(xié)議規(guī)定由68H開始,16進制。)0x12(BCD數(shù)值碼) - 12(string) 轉(zhuǎn)為字符串0x12.ToString(X2)0x45(BCD數(shù)值碼) - 45(string)如果表地址為:000021010203(電表上看到的地址串),里面就是12位(字符串來看)通訊時,使用 0x00, 0x00 , 0x21 ,0x01 , 0x02 , 0x03, 6個字節(jié)表示地址,但發(fā)送的時候要先發(fā)低字節(jié),再發(fā)高字節(jié)。發(fā)送時也

7、是“0x03,0x02,0x01,0x21,0x00,0x00”控制碼:從電腦到表具:0(主從站方向)+0(設(shè)備沒問題)+0(有無后續(xù)幀)+00001(讀)=1=0x1數(shù)據(jù)域長度:表示數(shù)據(jù)域有多長串口傳輸方式:所有數(shù)據(jù)項均先傳送低位字節(jié),后傳送高位字節(jié)數(shù)據(jù)域內(nèi)容,也就是“數(shù)據(jù)類型+數(shù)據(jù)項”(比如電表): 1001(電能量)+00(當前)+00(有功)+0001(正向電能)+0000(總點能)02(數(shù)據(jù)域長度)1090(數(shù)據(jù)域內(nèi)容,兩個字節(jié)) 拼接后的報文,要先發(fā)低字節(jié)(90) ,再發(fā)10. 發(fā)送報文要加上33,最后數(shù)據(jù)域就是10 + 33和90 + 33最終就是“ 43 c3”。02 10 9

8、0 = 02 (10 + 33) (90 + 33) = 02 43 c3返回報文:68 12 34 56 78 90 12 68 81 06 43 c3 33 44 55 66 cs 1668(幀起始符)12 34 56 78 90 12(地址域)68(幀起始符)81(控制碼,返回有功總電能“10000001”,讀取數(shù)據(jù))06(數(shù)據(jù)域長度)43 C3(數(shù)據(jù)域)33 44 55 66 (數(shù)據(jù)項,四字節(jié))數(shù)據(jù)項要減去“33H”,根據(jù)數(shù)據(jù)類型(附錄)點小數(shù)點。33 44 55 66 (數(shù)據(jù)域數(shù)據(jù)計算) = (33 - 33) (44 - 33) (55 - 33) (66 - 33) = 0011

9、2233 = 1122.33 kWh最后我們來看一個電表實例,取地址為“694561”的電表的“反相有功電能(發(fā)電量)”。實例如下:一、發(fā)送報文1、電表地址:694561(地址,6位BCD碼,BCD碼1位是2進制的4位。按16進制表示,沒有ABCDEF。不足12位,需要在高位“補0”。)。2、完善地址:000000694561(12位BCD碼)3、前導(dǎo)符字節(jié):0xFE4、幀起始符:0x685、地址域:0x614569000000(第字節(jié)在前,高字節(jié)在后。DL645協(xié)議,先發(fā)低字節(jié)再發(fā)高字節(jié)。)6、幀起始符:0x687、控制碼:0x01(讀數(shù)據(jù)1,讀后續(xù)數(shù)據(jù)2,其中還包含功能碼等。)8、數(shù)據(jù)域長

10、度:0x02(2字節(jié))9、待發(fā)送數(shù)據(jù)類型(數(shù)據(jù)類型放在數(shù)據(jù)域中):9(1001,電能量)+0(0000,00當前,00有功)+ 2(0010,反向電能)+0(0000,總電能)10、數(shù)據(jù)域+33H:0x90+0x33=0xC3 0x20+0x33=0x5311、發(fā)送數(shù)據(jù)域:0x53 0xC312、校驗碼:CS(1個字節(jié),比如計算出來的是“0x01”)13、結(jié)束符:0x1614、發(fā)送字符串:0xFE 0x68 0x61 45 69 00 00 00 0x68 0x01 0x02 0x53 0xC3 0x01 0x1615、Byte bufferlist=new Byte 0xFE,0x68,0x

11、61,0x45,0x69,0x00,0x00,0x00,0x68,0x01,0x02,0x53,0xC3,0x01,0x16 DL645編碼過程:增加“前導(dǎo)符字節(jié)”(可以沒有)增加幀起始符增加地址域增加幀起始符增加控制碼增加數(shù)據(jù)域長度增加數(shù)據(jù)域計算CS校驗碼,并增加增加結(jié)束符二、返回報文1、幀起始符:0x682、地址域:0x6145690000003、幀起始符:0x684、控制碼:傳送方向(0電腦到表具,1表具到電腦),從站異常標志(0表具無異常,1表具有異常),后續(xù)幀標識(0無后續(xù)數(shù)據(jù),1有后續(xù)數(shù)據(jù))功能碼(讀數(shù)據(jù)):00001最后是10000001(讀反相有功電能。從站向主站發(fā)送,第一位是“1”。主站向從站,第一位是“0”。),也就是“0x81”5、數(shù)據(jù)域長度:返回數(shù)據(jù)長度,根據(jù)請求的數(shù)據(jù)類型來定的。比如,電能量是“6個字節(jié)”,包含“2的數(shù)據(jù)類型”和“4字節(jié)的數(shù)據(jù)項”。0x066、數(shù)據(jù)域數(shù)據(jù)類型:0x53(低字節(jié)先返回) 0xC3(高字節(jié)后返回)數(shù)據(jù):0x33 0x78 0x34 0x66(先返回低字節(jié),再返回高字節(jié)。電表是發(fā)送方。)7、數(shù)據(jù)減去“33H”0x33-0x33=0x000x78-0x33=0x450x34-0x33-0x010x66-0x33=0x338、按BCD碼解析1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論