1.參數(shù)列表
名稱 |
屬性 |
操作位置 |
存儲和顯示 |
備注 |
裝置地址 |
R/W |
上位機(jī)軟件 |
存儲/液晶顯示 |
1個(gè)字節(jié),0~255 ?0為廣播地址 |
預(yù)置測試時(shí)間 |
|
|
液晶顯示 |
單位:0.01ms |
預(yù)置檢定時(shí)間脈沖數(shù) |
R/W |
上位機(jī)軟件 |
存儲 |
8字節(jié)符號整數(shù),單位:1/100000秒。 |
累計(jì)測試時(shí)間 |
|
|
液晶顯示 |
0.01ms |
累計(jì)時(shí)間脈沖數(shù) |
R/W |
上位機(jī)軟件 |
存儲 |
8字節(jié)符號整數(shù),單位:1/100000秒。 |
時(shí)鐘頻率 |
R |
上位機(jī)軟件 |
|
約100kHZ(實(shí)際頻率) |
累計(jì)齒數(shù) |
R |
上位機(jī)軟件 |
存儲、液晶顯示 |
4字節(jié)無符號整數(shù),單位:個(gè)。 |
預(yù)置檢定體積 |
R/W |
上位機(jī)軟件 |
存儲 |
4個(gè)字節(jié),單位為個(gè)。 |
初始化 |
W |
上位機(jī)軟件 |
液晶顯示 |
(預(yù)置測試時(shí)間,預(yù)置檢定時(shí)間脈沖數(shù)累計(jì)測試時(shí)間、累計(jì)時(shí)間脈沖數(shù)、預(yù)置檢定體積、累計(jì)齒數(shù))清零。 |
瞬時(shí)齒速 |
R |
上位機(jī)軟件 |
液晶顯示 |
|
齒輪數(shù) |
R/W |
上位機(jī)軟件/按鍵 |
存儲、液晶顯示 |
1字節(jié)無符號號整數(shù) 有效值范圍為:6~20 |
補(bǔ)光燈狀態(tài) |
R/W |
上位機(jī)軟件/按鍵 |
存儲、液晶顯示 |
1字節(jié)無符號號整數(shù) 0:關(guān),1:開 |
識別半徑 |
R/W |
上位機(jī)軟件/按鍵 |
存儲、液晶顯示 |
1字節(jié)無符號號整數(shù) 0:小半徑,1:大半徑。 |
2.數(shù)據(jù)幀
2.1幀格式定義
幀格式如下表所示:
字段 |
長度 |
說明 |
開始標(biāo)識 |
1個(gè)字節(jié) |
0x68 |
地址域 |
1個(gè)字節(jié) |
0~255,其中0為廣播地址 |
幀類別 |
1個(gè)字節(jié) |
0:請求幀;1:確認(rèn)幀;2:否認(rèn)幀 |
數(shù)據(jù)域長度 |
1個(gè)字節(jié) |
0~255 |
功能碼 |
1個(gè)字節(jié) |
|
數(shù)據(jù)域 |
0~255個(gè)字節(jié) |
數(shù)據(jù)域長度可變,由數(shù)據(jù)域長度決定(低字節(jié)在前高字節(jié)在后) |
校驗(yàn) |
1個(gè)字節(jié) |
開始標(biāo)識字段(包含開始標(biāo)識)到校驗(yàn)(不含)字段之前數(shù)據(jù)的累加和 |
結(jié)束標(biāo)識 |
1個(gè)字節(jié) |
0x16 |
2.2幀格式說明
2.2.1開始標(biāo)識
開始標(biāo)識為1個(gè)字節(jié),該值固定為0x68。
2.2.2地址域
要訪問的裝置地址。
2.2.3幀類別
臺體向裝置請求數(shù)據(jù)時(shí),必須為0.
裝置向臺體應(yīng)答時(shí),正常響應(yīng)必須為1
裝置向臺體應(yīng)答時(shí),異常響應(yīng)必須為2。異常響應(yīng)包括:非廣播地址的非法功能碼請求或設(shè)置參數(shù)不合法。
若請求幀中地址域?yàn)閺V播地址,則裝置不響應(yīng)。
2.2.4數(shù)據(jù)域長度
數(shù)據(jù)域長度固定為1個(gè)字節(jié),范圍為0~255。
2.2.5功能碼
0x00:讀取裝置地址
請求幀數(shù)據(jù)域?yàn)榭?br />
應(yīng)答幀。數(shù)據(jù)域內(nèi)容為1字節(jié)裝置地址
0x01:讀取預(yù)置測試時(shí)間
請求幀數(shù)據(jù)域?yàn)榭?br />
應(yīng)答幀。數(shù)據(jù)域內(nèi)容為8字節(jié)(低字節(jié)在前)預(yù)置測試時(shí)間。
0x02:讀取累計(jì)脈沖數(shù)
請求幀數(shù)據(jù)域?yàn)榭?br />
應(yīng)答幀。數(shù)據(jù)域內(nèi)容為4字節(jié)(低字節(jié)在前)累計(jì)脈沖數(shù)。
0x03:讀取累計(jì)測試時(shí)間
請求幀數(shù)據(jù)域?yàn)榭?br />
應(yīng)答幀。數(shù)據(jù)域內(nèi)容為8字節(jié)(低字節(jié)在前)累計(jì)測試時(shí)間。
0x04:讀取齒輪數(shù)
請求幀數(shù)據(jù)域?yàn)榭?br />
應(yīng)答幀。數(shù)據(jù)域內(nèi)容為1字節(jié)齒輪數(shù),有效值范圍:6~20。
0x05:讀取識別半徑
請求幀數(shù)據(jù)域?yàn)榭?br />
應(yīng)答幀。數(shù)據(jù)域內(nèi)容為1字節(jié)。0:小半徑;1:大半徑。
0x06:讀取補(bǔ)光燈狀態(tài)
請求幀數(shù)據(jù)域?yàn)榭?br />
應(yīng)答幀。數(shù)據(jù)域內(nèi)容為1字節(jié)。0:關(guān)閉;1:開啟。
0x07:讀取瞬時(shí)齒速
請求幀數(shù)據(jù)域?yàn)榭?br />
應(yīng)答幀。數(shù)據(jù)域內(nèi)容為4字節(jié)。
0x08讀取預(yù)置檢定體積
請求幀數(shù)據(jù)域?yàn)榭?br />
應(yīng)答幀。數(shù)據(jù)域內(nèi)容為4字節(jié)。
0x09讀取軟件版本號
請求幀數(shù)據(jù)域?yàn)榭?br />
應(yīng)答幀為不定長度的字符串,長度小于200。低字節(jié)在前
0x80:設(shè)置裝置地址。
請求幀數(shù)據(jù)域內(nèi)容為1字節(jié)。
無應(yīng)答幀。
0x81:設(shè)置預(yù)置測試時(shí)間
請求幀數(shù)據(jù)域內(nèi)容為8字節(jié)。
應(yīng)答幀數(shù)據(jù)域內(nèi)容為空。若請求幀中地址域?yàn)閺V播地址,則無應(yīng)答幀。
0x84:設(shè)置齒輪數(shù)
請求幀數(shù)據(jù)域內(nèi)容為1字節(jié)。(有效范圍:6~20)
應(yīng)答幀數(shù)據(jù)域內(nèi)容為空。若請求幀中地址域?yàn)閺V播地址,則無應(yīng)答幀。
異常幀數(shù)據(jù)域內(nèi)容為空。若請求幀中地址域?yàn)閺V播地址,則無異常幀。
0x85:設(shè)置識別半徑
請求幀數(shù)據(jù)域內(nèi)容為1字節(jié)。0:小半徑;1:大半徑。
應(yīng)答幀數(shù)據(jù)域內(nèi)容為空。若請求幀中地址域?yàn)閺V播地址,則無應(yīng)答幀。
異常幀數(shù)據(jù)域內(nèi)容為空。若請求幀中地址域?yàn)閺V播地址,則無異常幀。
0x86:設(shè)置補(bǔ)光燈狀態(tài)
請求幀數(shù)據(jù)域內(nèi)容為1字節(jié)。0:關(guān)閉;1:開啟。
應(yīng)答幀數(shù)據(jù)域內(nèi)容為空。若請求幀中地址域?yàn)閺V播地址,則無應(yīng)答幀。
異常幀數(shù)據(jù)域內(nèi)容為空。若請求幀中地址域?yàn)閺V播地址,則無異常幀。
0x87設(shè)置預(yù)置檢定體積
請求幀數(shù)據(jù)域內(nèi)容為4字節(jié)
應(yīng)答幀。數(shù)據(jù)域內(nèi)容為空
0x8a 初始化
請求幀數(shù)據(jù)域內(nèi)容為空
應(yīng)答幀數(shù)據(jù)域內(nèi)容為空
0xcd 設(shè)置升級文件頭
請求幀數(shù)據(jù)域內(nèi)容為8字節(jié):
typedef struct UpDataFileStartHeader_st
{
u32 Len; //升級文件總的長度
u32 LenBk; //升級文件總的長度備份,若是長度不相等則認(rèn)為是不合理的參數(shù)
}UpDataFileStartHeader;
應(yīng)答幀。數(shù)據(jù)域內(nèi)容為空
0xce 傳輸升級文件有效數(shù)據(jù)
請求幀數(shù)據(jù)域內(nèi)容,前3個(gè)字節(jié)內(nèi)容為升級文件內(nèi)的偏移,剩余數(shù)據(jù)為有效的數(shù)據(jù)長度。
應(yīng)答幀,數(shù)據(jù)域內(nèi)容為空
0xcf 傳輸升級文件結(jié)束標(biāo)志
請求幀數(shù)據(jù)域內(nèi)容為16字節(jié):
typedef struct UpDataFileEndHeader_st
{
u32 Len; //升級文件總的長度 與開始幀中的應(yīng)該相等。若是不相等,則以結(jié)束幀的為準(zhǔn)
u32 LenBk; //升級文件總的長度備份,若是長度不相等則認(rèn)為是不合理的參數(shù)
u32 CrcNum; //升級文件的CRC校驗(yàn)
u32 CrcNumBk;
}UpDataFileEndHeader;
應(yīng)答幀數(shù)據(jù)域內(nèi)容為空
0x0b 讀取傳感器增益
請求幀數(shù)據(jù)域?yàn)榭?br />
應(yīng)答幀,數(shù)據(jù)域?yàn)?個(gè)字節(jié) 范圍0~8
0x8b設(shè)置傳感器增益
請求幀數(shù)據(jù)域?yàn)?個(gè)字節(jié)。取值范圍0~8
應(yīng)答幀為確認(rèn)幀或否認(rèn)幀。廣播地址則無確認(rèn)幀
0x0c 讀取所有測試數(shù)據(jù)
請求幀數(shù)據(jù)域?yàn)榭?br />
應(yīng)答幀為當(dāng)前測試數(shù)據(jù)。其結(jié)構(gòu)體為:
struct HD710TestDataGetType
{
public UInt64 CalTestTime; //累計(jì)測試時(shí)間
public UInt32 CalTestVol; // 累計(jì)檢定體積
public UInt32 Speed; //讀取瞬時(shí)齒速
public UInt32 GainIndex; // 增益索引 默認(rèn)為5,取值范圍0~7 值越大則增益越大
public byte RecRadius; //識別半徑
public byte FlashLedOnState; //補(bǔ)光燈狀態(tài)
public byte GearNum; //齒輪數(shù)
public byte TerAddr; //終端地址
};
2.2.6校驗(yàn)
校驗(yàn)為開始標(biāo)識字段(包含開始標(biāo)識)到校驗(yàn)(不含)字段之前數(shù)據(jù)的累加和。
2.2.7結(jié)束標(biāo)識
長度為一個(gè)字節(jié),該字段固定為0x16。