通訊協(xié)議
設備所有操作或回復命令都為16進制數(shù)據。默認通訊波特率:9600,8,n,1。
基本命令格式:
[設備地址][功能碼][起始地址:2字節(jié)][數(shù)據長度:2字節(jié)][CRC16校驗]
意義如下:
A、設備地址:設備地址范圍為1-35,其中250即0xFA為通用查詢地址,當不知道設備地址時,可用此通用查詢地址進行查詢。
B、功能碼:不同的應用需求功能碼不同,比如3為查詢輸入寄存器數(shù)據。
C、起始地址:查詢或操作寄存器起始地址。
D、數(shù)據長度:讀取的長度。
E、CRC校驗:CRC16校驗,高位在前,低位在后。
1)讀取數(shù)據(功能碼為0x03 )
[設備地址][03][ 00 2A][00 01][CRC16 校驗]
注:數(shù)據長度為2字節(jié),狀態(tài)值查詢數(shù)據長度固定為0x00 01
設備響應:
[設備地址][命令號][返回的字節(jié)個數(shù)][數(shù)據1][CRC16校驗]
響應數(shù)據意義如下:
A、返回的字節(jié)個數(shù):表示數(shù)據的字節(jié)個數(shù),也就是數(shù)據1,2...n中的n的值。
B、數(shù)據1…N:各個傳感器的測量值,方向值數(shù)據占用2個字節(jié)。為整型數(shù)據。
例如:查詢2號設備上數(shù)據:
發(fā)送:02 03 00 2A 00 01 [CRC16 校驗]
回應:02 03 02 00 61 [CRC16 校驗]
上例回復數(shù)據中:02表地址1,02表數(shù)據長度為2個字節(jié),00 61為風速值,換算成 十進制為97,再除以一百為當時的風速,也就是0.97米/秒風速
命令中所有寄存器地址字節(jié)、寄存器個數(shù)字節(jié)、數(shù)據字節(jié)高位在前,低位在后;
CRC校驗碼低位字節(jié)在前,高位字節(jié)在后;
讀取風速值:
(從設備地址02號,波特率為9600,N,8,1)
從設備地址 |
功能碼 |
起始寄存器地 址 |
寄存器個數(shù) |
CRC-L |
CRC-H |
0x02 |
0x03 |
0x00 |
0x2A |
0x00 |
0x01 |
0xA5 |
0xF1 |
從設備回應
從設備地址 |
功能碼 |
數(shù)據區(qū)字節(jié)數(shù) |
寄存器數(shù)據 |
CRC-L |
CRC-H |
0x02 |
0x03 |
0x02 |
0x00 |
0x00 |
0xFC |
0x44 |
2)更改設備地址(功能號:0x06 )
發(fā)送命令格式:
[設備地址][命令號:0x06][0x40 00] [00][目標地址:占1個字節(jié)][CRC16]
修改設備地址:
(從設備地址02號,修改為03號)
從設備地址 |
功能碼 |
起始寄存器地址 |
修改后數(shù)據 |
CRC-L |
CRC-H |
0x02 |
0x06 |
0x20 |
0x00 |
0x00 |
0x03 |
0x02 |