一、產(chǎn)品介紹及參數(shù)
智能數(shù)字傳感器采用高精度土壤銨離子電極, RS-485接口輸出,支持標(biāo)準(zhǔn)Modbus RTU工業(yè)數(shù)據(jù)總線協(xié)議,能夠完成銨離子數(shù)據(jù)采集、校準(zhǔn)及自動(dòng)溫度補(bǔ)償?shù)裙δ?,用戶可自定義查詢子地址,設(shè)置傳輸波特率。S-CGNH4智能數(shù)字傳感器參數(shù):
型號 | S-CGNH4 |
探頭 | 復(fù)合電極(帶溫補(bǔ)) |
反應(yīng)時(shí)間 | 1 秒內(nèi)完成 90% 讀數(shù) |
溫度范圍 | 0 ~ 50°C |
量程范圍 | 0.1ppm ~ 0.1M |
分辨率 | ±2% |
輸出接口 | 全數(shù)字輸出(浮點(diǎn)),接口RS-485 |
傳輸協(xié)議 | Modbus RTU |
功能碼 | 支持 03 04 06 |
自定義定地址 | 支持 1 ~ 254地址范圍 |
自定義波特率 | 支持115200, 57600, 38400, 28800, 19200, 14400, 9600, 4800, 2400, 1200,8N1 |
校準(zhǔn) | 命令方式校準(zhǔn)/軟件校準(zhǔn) |
溫度補(bǔ)償 | 自動(dòng)補(bǔ)償 |
補(bǔ)償器件 | PT100/PT1000鉑熱電阻 |
自動(dòng)識別 | 特征碼查詢識別 |
工作電壓 | 5V±0.2V DC |
預(yù)熱時(shí)間 | ≤ 1s |
系統(tǒng)功耗 | ≤ 210 mW |
ESD人體靜電防護(hù) | 支持 |
防護(hù)等級 | IP54 |
傳感器保質(zhì) | 6個(gè)月 |
二、產(chǎn)品資源
《用戶手冊》 | 1份 |
《自動(dòng)校準(zhǔn)軟件》 | 1份 |
三、使用Modbus通訊協(xié)議與傳感器通訊
3.1 Modbus協(xié)議Modbus是由Modicon(現(xiàn)為施耐德電氣公司的一個(gè)品牌)在1979年發(fā)明的,是一個(gè)真正用于工業(yè)現(xiàn)場的總線協(xié)議。為更好地普及和推動(dòng)Modbus在基于以太網(wǎng)上的分布式應(yīng)用,目前施耐德公司已將Modbus協(xié)議的所有權(quán)移交給IDA(Interface for Distributed Automation,分布式自動(dòng)化接口)組織,并成立了Modbus-IDA組織,為Modbus今后的發(fā)展奠定了基礎(chǔ)。在中國,Modbus已經(jīng)成為國家標(biāo)準(zhǔn)GB/T19582-2008
3.2 傳感器通訊波特率
在次使用傳感器時(shí),傳感器使用的默認(rèn)波特率為9600 Baud,8 Data bits, None Parity, 1 Stop Bit,您可以通過Modbus RTU命令寫波特率寄存器進(jìn)行設(shè)置,命令寫入后將在下一次上電時(shí)生效。
表3.2.1 波特率寄存器
寄存器 名稱 | 類型 | 大小 | 起始 地址 | 讀功 能碼 | 寫功 能碼 | 數(shù)據(jù)-波特率 | 默認(rèn)值 | 存儲(chǔ)模式 |
波特率 | 4X | 16 Bit | 0x0001 | 0x03 | 0x06 | 見表 4.2.2 | 0x0000 | 大端模式 (Big-Endian) |
表3.2.2 寄存器數(shù)據(jù)與波特率關(guān)系
寄存器數(shù)據(jù) | 對應(yīng)波特率 |
0x0000 | 115200 Baud |
0x0001 | 57600 Baud |
0x0002 | 38400 Baud |
0x0003 | 28800 Baud |
0x0004 | 19200 Baud |
0x0005 | 14400 Baud |
0x0006 | 9600 Baud |
0x0007 | 4800 Baud |
0x0008 | 2400 Baud |
0x0009 | 1200 Baud |
其他 | 自動(dòng)恢復(fù)到出廠設(shè)置值 |
(1)將波特率修改為9600 Baud (0x0006),默認(rèn)傳感器子地址為0x01
主機(jī)發(fā)送請求:
地址 (8 Bit) | 功能碼 (8 Bit) | 起始寄存器地址高位 (8 Bit) | 起始寄存器地址低位 (8 Bit) | 數(shù)據(jù)高位 (8 Bit) | 數(shù)據(jù)低位 (8 Bit) | CRC高位 | CRC低位 |
0x01 | 0x06 | 0x00 | 0x01 | 0x00 | 0x06 | 0x58 | 0x08 |
地址 (8 Bit) | 功能碼 (8 Bit) | 起始寄存器地址高位 (8 Bit) | 起始寄存器地址低位 (8 Bit) | 數(shù)據(jù)高位 (8 Bit) | 數(shù)據(jù)低位 (8 Bit) | CRC高位 | CRC低位 |
0x01 | 0x06 | 0x00 | 0x01 | 0x00 | 0x06 | 0x58 | 0x08 |
傳感器進(jìn)行正常應(yīng)答后,將傳感器重新上電,使用9600 Baud連接傳感器即可。
3.3 傳感器子地址
在次使用傳感器時(shí),傳感器使用的默認(rèn)子地址為0x01,您可以通過Modbus RTU命令寫子地址寄存器進(jìn)行設(shè)置,命令寫入后將在下一次上電時(shí)生效。
表3.3.1 子地址寄存器
寄存器 名稱 | 類型 | 大小 | 起始 地址 | 讀功 能碼 | 寫功 能碼 | 數(shù)據(jù)范圍 | 默認(rèn)值 | 存儲(chǔ)模式 |
子地址 | 4X | 16 Bit | 0x0002 | 0x03 | 0x06 | 0x00~0xFE | 0x0001 | 大端模式 (Big-Endian) |
3.3.1 修改地址寄存器示例
(1)將地址修改為0x08 ,默認(rèn)傳感器地址為0x01
主機(jī)發(fā)送請求:
地址 (8 Bit) | 功能碼 (8 Bit) | 起始寄存器地址高位 (8 Bit) | 起始寄存器地址低位 (8 Bit) | 數(shù)據(jù)高位 (8 Bit) | 數(shù)據(jù)低位 (8 Bit) | CRC高位 | CRC低位 |
0x01 | 0x06 | 0x00 | 0x02 | 0x00 | 0x08 | 0x29 | 0xCC |
地址 (8 Bit) | 功能碼 (8 Bit) | 起始寄存器地址高位 (8 Bit) | 起始寄存器地址低位 (8 Bit) | 數(shù)據(jù)高位 (8 Bit) | 數(shù)據(jù)低位 (8 Bit) | CRC高位 | CRC低位 |
0x01 | 0x06 | 0x00 | 0x02 | 0x00 | 0x08 | 0x29 | 0xCC |
傳感器進(jìn)行正常應(yīng)答后,將傳感器重新上電,使用子地址 0x08連接傳感器即可。
3.4 獲取銨離子濃度
通過Modbus RTU 協(xié)議可以訪問銨離子(NH4)值寄存器來獲取當(dāng)前所測量的NH4值數(shù)據(jù),NH4數(shù)據(jù)由2個(gè)16 bit的輸入寄存器進(jìn)行存儲(chǔ),按照小端模式(Little-Endian,即x86體系模式)的單精度浮點(diǎn)數(shù)(即C/C++ 中的float類型, 32 Bit)進(jìn)行表示。
表3.4.1 NH4寄存器
寄存器 名稱 | 類型 | 大小 | 起始 地址 | 讀功 能碼 | 寫功 能碼 | 數(shù)據(jù)范圍 | 存儲(chǔ)模式 |
NH4值1 | 3X | 16 Bit | 0x0001 | 0x04 | - | -2^128 ~ +2^128 | 單精度浮點(diǎn)數(shù) |
NH4值2 | 3X | 16 Bit | 0x0002 | 0x04 | - |
(1)默認(rèn)傳感器地址為0x01,電極放置在銨離子為 14.078314 ppm 的溶液當(dāng)中進(jìn)行測量
主機(jī)發(fā)送請求:
地址 (8 Bit) | 功能碼 (8 Bit) | 起始寄存器地址高位 (8 Bit) | 起始寄存器地址低位 (8 Bit) | 寄存器數(shù)量高位 (8 Bit) | 寄存器數(shù)量低位 (8 Bit) | CRC高位 | CRC低位 |
0x01 | 0x04 | 0x00 | 0x01 | 0x00 | 0x02 | 0x20 | 0x0B |
地址 (8 Bit) | 功能碼 (8 Bit) | 字節(jié)數(shù) (8 Bit) | 數(shù)據(jù)位[0] (8 Bit) | 數(shù)據(jù)位[1] (8 Bit) | 數(shù)據(jù)位[2] (8 Bit) | 數(shù)據(jù)位[3] (8 Bit) | CRC高位 | CRC低位 |
0x01 | 0x04 | 0x04 | 0xC6 | 0x40 | 0x61 | 0x41 | 0x2F | 0x78 |
應(yīng)答數(shù)據(jù)說明:
在傳感器應(yīng)答中,數(shù)據(jù)位[0]至數(shù)據(jù)位[3]共4個(gè)字節(jié)構(gòu)成了32位小端模式下的Float類型的數(shù)據(jù)即為14.078314。
編程提示:
以上述數(shù)據(jù)為例,C語言當(dāng)中可進(jìn)行如下轉(zhuǎn)換操作
注意:樣例代碼為x86 PC 或 小端模式ARM處理器平臺(tái)
#Include typedef union { unsigned char Hex[4]; float Val; }THex2Float; int main() { THex2Float t; t.Hex[0] = 0xC6; /* 數(shù)據(jù)位[0] */ t.Hex[1] = 0x40; /* 數(shù)據(jù)位[1] */ t.Hex[2] = 0x61; /* 數(shù)據(jù)位[2] */ t.Hex[3] = 0x41; /* 數(shù)據(jù)位[3] */ printf("%f", t.Val); /* t.Val 值將被輸出為 14.078314 */ return 0; } |
表3.4.1 NH4溫度寄存器
寄存器 名稱 | 類型 | 大小 | 起始 地址 | 讀功 能碼 | 寫功 能碼 | 數(shù)據(jù)范圍 | 存儲(chǔ)模式 |
NH4溫度1 | 3X | 16 Bit | 0x0003 | 0x04 | - | -2^128 ~ +2^128 | 單精度浮點(diǎn)數(shù) |
NH4溫度2 | 3X | 16 Bit | 0x0004 | 0x04 | - |
主機(jī)發(fā)送請求:
地址 (8 Bit) | 功能碼 (8 Bit) | 起始寄存器地址高位 (8 Bit) | 起始寄存器地址低位 (8 Bit) | 寄存器數(shù)量高位 (8 Bit) | 寄存器數(shù)量低位 (8 Bit) | CRC高位 | CRC低位 |
0x01 | 0x04 | 0x00 | 0x03 | 0x00 | 0x02 | 0xB1 | 0xCB |
地址 (8 Bit) | 功能碼 (8 Bit) | 字節(jié)數(shù) (8 Bit) | 數(shù)據(jù)位[0] (8 Bit) | 數(shù)據(jù)位[1] (8 Bit) | 數(shù)據(jù)位[2] (8 Bit) | 數(shù)據(jù)位[3] (8 Bit) | CRC高位 | CRC低位 |
0x01 | 0x04 | 0x04 | 0xC6 | 0x40 | 0x61 | 0x41 | 0x2F | 0x78 |
應(yīng)答數(shù)據(jù)說明:
在傳感器應(yīng)答中,數(shù)據(jù)位[0]至數(shù)據(jù)位[3]共4個(gè)字節(jié)構(gòu)成了32位小端模式下的Float類型的數(shù)據(jù)即為14.078314。
四、接線說明
若您手中的傳感器的接口端使用引線的方式,則連線規(guī)則如表4.1所示線纜顏色 | 說明 |
紅 | 供電電源,VCC +5V |
黑/藍(lán) | 電源地線,GND |
綠 | RS-485 A+端子(T/A) |
黃 | RS-485 B-端子(T/B) |
注意:將電源與地連接錯(cuò)誤將有可能損毀傳感器設(shè)備。
所有評論僅代表網(wǎng)友意見,與本站立場無關(guān)。