老王手把手教您多功能電表設置通訊的具體步驟。
1.要設置的電表地址處pBuf[10]~pBuf[15],按規約加33H,不知道是否這么寫
2.規約中提到校驗和pBuf[16]的算法是否正確,另外這個校驗和,在規約中說從幀起始符開始,可這里有兩個幀起始符pBuf[0]和pBuf[7],zhezh這個校驗和到底從哪里開始計算呢?從哪個位置到哪個位置呢?
DWORD dwToWrite=18;
char *pBuf=new char[19];
memset(pBuf,0,19);
pBuf[0]=0x68; //
pBuf[1]=0x99; //
pBuf[2]=0x99;
pBuf[3]=0x99;
pBuf[4]=0x99;
pBuf[5]=0x99;
pBuf[6]=0x99;
pBuf[7]=0x68; //
pBuf[8]=0x0A; //
pBuf[9]=0x06; //
pBuf[10]=0x04+0x33; //
pBuf[11]=0x01+0x33;
pBuf[12]=0x01+0x33;
pBuf[13]=0x01+0x33;
pBuf[14]=0x01+0x33;
pBuf[15]=0x01+0x33;
int Sum=0;
for(int i=0;i<16;i++)
{
Sum+=pBuf[i];
}
pBuf[16]=Sum%256;
pBuf[17]=0x16; //
m_Port.WriteBlock(pBuf,dwToWrite);
delete [] pBuf;
3、幀格式
幀是傳送信息的基本單元。幀格式如圖8 所示。
1 .幀起始符68H:標識一幀信息的開始,其值為68H=01101000B。
2 .地址域A0~A5:地址域由6 個字節構成,每字節2 位BCD 碼。地址長度可達12 位
十進制數,可以為表號、資產號、用戶號、設備號等。具體使用可由用戶自行決定。當使用
的地址碼長度不足6 字節時,用十六進制AAH 補足6 字節。低地址位在先,高地址位在后。
當地址為999999999999H 時,為廣播地址。
3 .控制碼C:控制碼的格式如下所示。
D7=0:由主站發出的命令幀
D7=1:由從站發出的應答幀
D6=0:從站正確應答
D6=1:從站對異常信息的應答
D5=0:無后續數據幀
D5=1:有后續數據幀
D4~D0:請求及應答功能碼
00000:保留
00001:讀數據
00010:讀后續數據
00011:重讀數據
00100:寫數據
01000:廣播校時
01010:寫設備地址
01100:更改通信速率
01111:修改密碼
10000:最大需量清零
4 .數據長度L:L 為數據域的字節數。讀數據時L≤200,寫數據時L≤50,L=0 表示無
數據域。
5 .數據域DATA:數據域包括數據標識和數據、密碼等,其結構隨控制碼的功能而改變。
傳輸時發送方按字節進行加33H 處理,接收方按字節進行減33H 處理。
6 .校驗碼CS:從幀起始符開始到校驗碼之前的所有各字節的模256 的和,即各字節二
進制算術和,不計超過256 的溢出值。
7.結束符16H:標識一幀信息的結束,其值為16H=00010110B。
8、 寫設備地址
1. 寫設備地址請求命令幀
功能:設置某從站的地址碼
控制碼:C=0AH
地址域:99...99H
數據長度:L=06H
數據域:A0-A5(設備地址碼)
幀格式:
68H 99H ... 99H 68H 0AH 06H A0 ... A5 CS 16H
注:本請求命令采用廣播地址發布,要求被設置的從站有相應的按鍵(開關)與該命令配
合,在命令發布的全部時間內按下按鍵者響應,其它不響應。
2. 從站正常應答幀
功能:正確執行命令的設備應答
控制碼:C=8AH
地址域:A0?A5(新設置的設備地址碼)
數據長度:L=00H
幀格式:
68H A0 ... A5 68H 8AH 00H CS 16H
十幾年的商海遨游,我們始終堅持“一切為了客戶”這一初心,讓我們擁有了智能電表10萬+的用戶,多次被集團評為“十佳供應商”“售后服務標兵”等榮譽。成績屬于昨天,明天,我們將砥礪前行。
冰冷的系統是數字化工具,暖人的抄表,萬里挑一。