海水養(yǎng)殖鹽度水質(zhì)傳感器
附錄 數(shù)據(jù)通訊
?
- 數(shù)據(jù)格式
Modbus通信默認(rèn)的數(shù)據(jù)格式為:9600、n、8、1(波特率9600bps、1個(gè)起始位、8個(gè)數(shù)據(jù)位、無(wú)校驗(yàn)、1個(gè)停止位)。
波特率等參數(shù)可以定制。
- 信息幀格式(xx代表一個(gè)字節(jié))
- 讀數(shù)據(jù)指令幀:
06 03 xx xx xx xx xx xx
地址 功能碼 寄存器地址 寄存器數(shù)量 CRC校驗(yàn)碼(低字節(jié)在前)
- 讀數(shù)據(jù)應(yīng)答幀:
06 03 xx xx……xx xx xx
地址 功能碼 字節(jié)數(shù) 應(yīng)答數(shù)據(jù) CRC校驗(yàn)碼(低字節(jié)在前)
- 寫(xiě)數(shù)據(jù)指令幀:
06 06 xx xx xx xx xx xx
地址 功能碼 寄存器地址 寫(xiě)入數(shù)據(jù) CRC校驗(yàn)碼(低字節(jié)在前)
- 寫(xiě)數(shù)據(jù)應(yīng)答幀(同寫(xiě)數(shù)據(jù)指令幀):
06 06 xx xx xx xx xx xx
地址 功能碼 寄存器地址 寫(xiě)入數(shù)據(jù) CRC校驗(yàn)碼(低字節(jié)在前)
- 寄存器地址
寄存器地址 | 名稱(chēng) | 說(shuō)明 | 寄存器個(gè)數(shù) | 訪問(wèn)方式 |
40001 (0x0000) | 測(cè)量值+溫度 | 4個(gè)雙字節(jié)整數(shù),分別為測(cè)量值、測(cè)量值小數(shù)位數(shù)、溫度值、溫度值小數(shù)位數(shù)。 | 4(8字節(jié)) | 讀 |
44097 (0x1000) | 零點(diǎn)校準(zhǔn) | 在空氣中校準(zhǔn),寫(xiě)入數(shù)據(jù)為0。 | 1(2字節(jié)) | 寫(xiě) |
44101 (0x1004) | 斜率校準(zhǔn)
| 在已知的標(biāo)準(zhǔn)溶液(20%滿(mǎn)量程—滿(mǎn)量程)中校準(zhǔn),寫(xiě)入數(shù)據(jù)為標(biāo)準(zhǔn)溶液實(shí)際值×10。 | 1(2字節(jié)) | 寫(xiě) |
44103 (0x1006) | 零點(diǎn)校準(zhǔn)值 | 讀出數(shù)據(jù)為零點(diǎn)偏移量。 | 1(2字節(jié)) | 讀 |
44105 (0x1008) | 斜率校準(zhǔn)值 | 讀出數(shù)據(jù)為斜率值×1000。 | 1(2字節(jié)) | 讀 |
44113 (0x1010) | 溫度校準(zhǔn) | 在溶液中校準(zhǔn),寫(xiě)入數(shù)據(jù)為實(shí)際溫度值×10;讀出數(shù)據(jù)為溫度校準(zhǔn)偏移量×10。 | 1(2字節(jié)) | 寫(xiě)/讀 |
48195 (0x2002) | 傳感器地址 | 默認(rèn)為6,寫(xiě)入數(shù)據(jù)范圍1-127。 | 1(2字節(jié)) | 寫(xiě)/讀 |
48225 (0x2020) | 恢復(fù)出廠 | 校準(zhǔn)值恢復(fù)出廠設(shè)置,寫(xiě)入數(shù)據(jù)為0。 | 1(2字節(jié)) | 寫(xiě) |
注意:
- 寄存器地址為根據(jù)Modbus協(xié)議定義的帶寄存器類(lèi)型的寄存器起始地址(括號(hào)中的16進(jìn)制表示的實(shí)際的寄存器起始地址)。
- 更改傳感器地址時(shí),返回指令中的傳感器地址為更改后的位置。
- 讀取數(shù)據(jù)時(shí)返回測(cè)量值的數(shù)據(jù)定義:
xx xx xx xx xx xx xx xx
2字節(jié)測(cè)量值 2字節(jié)測(cè)量值小數(shù)位數(shù) 2字節(jié)溫度值 2字節(jié)溫度小數(shù)位數(shù)
數(shù)據(jù)類(lèi)型默認(rèn)為:雙字節(jié)整型,高字節(jié)在前;其他如浮點(diǎn)數(shù)類(lèi)型可選。
- 命令示例
- 設(shè)置設(shè)備ID地址:
作用:設(shè)置電極的Modbus設(shè)備地址;
將設(shè)備地址06改為01,范例如下
請(qǐng)求幀:06 06 20 02 00 01 E3 BD
應(yīng)答幀:01 06 20 02 00 01 E2 0A
- 開(kāi)始測(cè)量指令
作用:獲取測(cè)量探頭的鹽度值和溫度;溫度的單位為攝氏度,鹽度的值為PSU;
請(qǐng)求幀:06 03 00 00 00 04 45 BE
應(yīng)答幀:06 03 08 01 02 00 01 00 B0 00 01 14 B4
讀數(shù)示例:
鹽度值 | 溫度值 |
01 02 00 01 | 00 B0 00 01 |
如:鹽度值 01 02 表示十六進(jìn)制讀數(shù)鹽度值,00 01 表示鹽度數(shù)值帶1位小數(shù)點(diǎn),轉(zhuǎn)換成十進(jìn)制為25.8。
溫度值00 B0 表示十六進(jìn)制讀數(shù)溫度值,00 01表示溫度數(shù)值帶1位小數(shù)點(diǎn),轉(zhuǎn)換成十進(jìn)制為17.6。
- 校準(zhǔn)指令
零點(diǎn)校準(zhǔn)
作用:設(shè)定電極的鹽度零點(diǎn)校準(zhǔn)值;此處零點(diǎn)校準(zhǔn)在空氣中進(jìn)行;
請(qǐng)求幀:06 06 10 00 00 00 8C BD
應(yīng)答幀:06 06 10 00 00 00 8C BD
斜率校準(zhǔn)
作用:設(shè)定電極的鹽度斜率校準(zhǔn)值;此處斜率值以實(shí)際標(biāo)準(zhǔn)溶液數(shù)值為準(zhǔn),以50PSU為示例參看校準(zhǔn);
請(qǐng)求幀:06 06 10 04 01 F4 CD 6B
應(yīng)答幀:06 06 10 04 01 F4 CD 6B
- 錯(cuò)誤響應(yīng)
如果傳感器不能正確執(zhí)行上位機(jī)命令,則會(huì)返回如下格式信息:
定義 | 地址 | 功能碼 | CODE | CRC校驗(yàn) |
數(shù)據(jù) | ADDR | COM+80H | xx | CRC 16 |
字節(jié)數(shù) | 1 | 1 | 1 | 2 |
- CODE:01 – 功能碼錯(cuò)
03 – 數(shù)據(jù)錯(cuò)
- COM:接收到的功能碼
海水養(yǎng)殖鹽度水質(zhì)傳感器