MT10土壤水分/电导率/温度传感器性能稳定灵敏度高,是观测和研究盐渍土的发生、演变、改良以及水盐动态的重要工具。通过测量土壤的介电常数,能直接稳定地反映各种土壤的真实水分含量。MT10土壤水分传感器可测量土壤水分的体积百分比,是符合目前的土壤水分测量方法。适用于土壤墒情监测、科学试验、节水灌溉、温室大棚、花卉蔬菜、草地牧场、土壤速测、植物培养、污水处理、精细农业等场合。传感器具有以下特点:
(1) 土壤含水率、电导率以及温度三参数合一。
(2) 也可用于水肥一体溶液、以及其他营养液与基质的电导率。
(3)电极采用特殊处理的合金材料,可承受较强的外力冲击,不易损坏。
(4)完全密封,耐酸碱腐蚀,可埋入土壤或直接投入水中进行长期动态检测。
(5)精度高,响应快,互换性好,探针插入式设计保证测量,性能可靠。
(6)完善的保护电路与多种信号输出接口可选。
技术参数
信号输出类型
电压输出0-2V
(输出阻抗约0欧)
RS485接口
Modbus协议
供电电压
3.9-30V/DC直流
3.9-30V/DC直流
静态功耗
6mA@24V DC直流
6mA@24V DC直流
土壤水分量程
可选量程:0-50%,0-
分辨率:0-50%内0.03%,50-内1%
精度:0-50%内2%,50-内3%
电导率量程
可选量程:0-5000us/cm,10000us/cm,20000us/cm
分辨率:0-10000us/cm内10us/cm, 100000-20000us/cm内50us/cm
精度0-10000us/cm范围内为±3%; 10000-20000us/cm范围内为±5%
电导率温度补偿
内置温度补偿传感器,补偿范围0-50℃
温度测量量程
量程:-40~80℃,分辨率:0.1℃,精度:±0.5℃
测量原理与测量方式
土壤水分FDR方法,土壤电导率交流电桥法
土壤原位插入或浸没入培养液、水肥一体营养液中直接测试
防护等级
IP68浸没水中可长期使用
运行环境
-40~85℃
探针材料
防腐特制电极
密封材料
黑色阻燃环氧树脂
安装方式
全部埋入或探针全部插入被测介质
默认线缆长度
2米,线缆长度可按要求定制
连接方式
预装冷压端子
外形尺寸
35*11*111mm
电极长度
51mm
型号
接线图
电压输出型
红色(V+): 电源正
黑色(G): 电源地
蓝色(O1): 输出信号(选型可为土壤水分,电导率,温度输出)
棕色(O2): 输出信号(选型可为土壤水分,电导率,温度输出)
RS485接口型
Modbus协议
黄色(T+): RS485+/A/T+
白色(T-): RS485-/B/T-
绿色(SET): 接V+(电源正)时上电启动模块进入“设置模式”。不连接或者接G(电源地)时上电启动进入“运行模式”。
模块的配置参数如Modbus地址,波特率,校验位,通讯协议等是由模块内部的EEPROM(掉电存储设备)内存储的。有时会忘记这些参数的具体配置而导致不能与模块进行通讯。为了防止这个问题,模块有一特殊的模式称作“设置模式”。当模块以“设置模式”上电启动时,模块会以以下参数进行通讯:
1. Modbus地址固定为0
2. 通信配置为9600,N,8,1(9600bps,无校验位,8个数据位,一个停止位)
3. 通信协议为Modbus-RTU
EEPROM中的配置参数不会因为模块进入“设置模式”时而改变,当模块处于“运行模式”时仍会按照EEPROM中的这些配置参数进行通讯。
4 外型尺寸、选型订购4.1 外型尺寸
4.2 选型订购
代码编号
代码
代码说明
代码1:产品系列
MT10
MT10传感器
代码2:测量参数
A
B
土壤水分,土壤电导率(EC)与温度,三参数测量
土壤水分,与温度,二参数测量
代码3:
土壤水分量程
0-50%
0-
代码4:
电导率量程
C
D
X
0-5000us/cm
0-10000us/cm
0-20000us/cm
客户定制
不需要此配置
代码5:供电电压
D
3.9-30V直流
3.6-16V直流(SDI-12接口)
2.7-16V直流
客户定制
代码6:输出信号
E
F
G
电压输出0-2V
电流输出4-20mA
RS485接口,Modbus协议
RS485接口,Modbus协议 & 电压0-2V输出
RS485接口,Modbus协议 & 电流4-20mA输出
SDI-12接口
客户订制
代码7:线长
002
XXX
2米线长
客户定制,XXX为任意线长(单位:米)
型号举例:
MT10传感器,土壤水分量程0-,土壤电导率测量范围0-20000us/cm,3.9-30V供电,RS485接口,Modbus协议,5米线长。选型代码为:MT10 - A B C A C 005
5 安装与测量由于电极直接测定土壤中的可溶盐离子的电导率,因此土壤体积含水率需高于约20%时土壤中的可溶离子才能正确反映土壤的电导率。在长期观测时,灌溉或者降雨后的测量值更接近真实水平。如果进行速测,可先在被测土壤处浇水,待水分充分渗透后进行测量。
(1)快速测量法:选定合适的测量地点,避开石块,确保电极不会碰到石块之类坚硬物体,按照所需测量深度刨开表层土,保持下面土壤原有的松紧程度,握紧传感器体垂直插入土壤,插入时不可前后左右晃动,确保与土壤紧密接触。一个测点的小范围内建议测多次求平均。
(2)埋地测量法:根据需要的深度,垂直挖直径大于20厘米的坑,深度按照测量需要,然后在既定深度将传感器钢针水平插入坑壁,将坑填埋压实,确保电极与土壤紧密接触。稳定一段时间后,即可进行连续数天、数月乃至更长时间按的测量和记录。
如果在较坚硬的地表测量时,应先钻孔(孔径应小于探针直径),再插入土壤中并将土压实然后测量;传感器应防止剧烈振动和冲击,更不能用硬物敲击。由于传感器为黑色封装,在强烈阳光的照射下会使传感器使急剧升温(可达50℃以上),为了防止过高温度对传感器的温度测量产生影响,请在田间或野外使用时注意遮阳与防护。
型号
参数范围
换算关系
电压输出0-2V
对应温度-40-80℃
温度=60.0*电压-40。如测量到电压为1.0V,则温度=60.0*1.0-40=20.00℃。
对应含水率0-50%
含水率=25*电压。如测量到电压为0.3V,则含水率=25*0.3=7.5%。
对应含水率0-
含水率=50*电压。如测量到电压为0.3V,则含水率=50*0.3=15%。
对应电导率0-5000us/cm
电导率=2500*电压。如测量到电压为0.3V,则电导率=2500*0.3=750us/cm。
对应电导率0-10000us/cm
电导率=5000*电压。如测量到电压为0.3V,则电导率=5000*0.3=1500us/cm。
对应电导率0-20000us/cm
电导率=10000*电压。如测量到电压为0.3V,则电导率=10000*0.3=3000us/cm。
RS485接口
Modbus协议
对应含水率0-
含水率=含水率存器值/100。如读取到的数据为2013,则温度= 2013/100=20.13%。
对应温度-40-80℃
温度=温度寄存器值/100。如读取到的数据为2013,则温度= 2013/100=20.13℃。
对应电导率
电导率=电导率寄存器值。如读取到的数据为1568,则电导率= 1568us/cm。
客户订制
订制型号的输出请联系技术支持。
注:公式中电压单位为伏(V), 电流单位为毫安(mA)
Modbus是一种串行通信协议,是多种仪器仪表以及智能传感器在通信接口方面的标准,在智能传感器中有着广泛的应用。Modbus协议是一个主从架构的协议。有一个主节点,其他使用Modbus协议参与通信的节点是从节点。每一个从设备都有一个唯一的设备地址。
传感器具有RS485接口,支持Modbus协议。通讯参数出厂默认值为:波特率9600bps,一个起始位,8个数据位,无校验,一个停止位。通讯协议为Modbus RTU协议。通讯参数可由设置程序或者Modbus命令改变,通信参数改变后需要重新对传感器进行上电方可生效。
7.2 Modbus寄存器参数名称
寄存器地址
(16进制/10进制)
参数
类型
Modbus
功能号
参数范围及说明
默认值
温度值
TEMPRATURE
0x0000 /0
INT16
只读
3/4
-4000-8000对应-40.00~80.00℃。
N/A
体积含水率
VWC
0x0001 /1
UINT16
0-10000对应0-
电导率
EC
0x0002 /2
0-20000对应0-20000us/cm
盐度
SALINITY
0x0003 /3
0-20000对应0-20000mg/L
总溶解固体
TDS
0x0004 /4
介电常数
EPSILON
0x0005 /5
0-8200对应
0.00~82.00
土壤类型
SOILTYPE
0x0020 /32
读写
3/6/16
0-3
0:矿物土
1:沙土
2:粘土
3:有机质土
0:矿物土
温度单位
TEMPUNIT
0x0021 /33
0: 摄氏度℃
1: 华氏度℉
0
电导温度系数
ECTEMPCOFF
0x0022 /34
0-100对应0.0%-10.0%
20(2%)
盐度系数
SALINITYCOFF
0x0023 /35
0-100对应0.00-1.00
55(0.55)
TDS系数
TDSCOFF
0x0024 /36
50(0.5)
测量方式
MEASUREMETHOD
0x0025 /37
0: 连续测量
1: 请求数据时测量
1
Modbus从机地址(ADDRESS)
0x0200 /512
0-255
串行通信波特率(BAUDRATE)
0x0201 /513
0-5
0:1200bps
1:2400bps
2:4800bps
3:9600bps
4:19200bps
5:38400bps
3:9600bps
串行通信协议(PROTOCOL)
0x0202 /514
0~1
0:Modbus RTU
1:Modbus ASCii
0:Modbus RTU
串行通信校验位(PARITY)
0x0203 /515
0-2
0:无校验
1:偶校验
2:奇校验
0:无校验
串行通信数据位(DATABITS)
0x0204 /516
1
1:8个数据位
1:8个数据位
串行通信停止位(STOPBITS)
0x0205 /517
0-1
0:1个停止位
1:2个停止位
0:1个停止位
串行通信延时响应(RESPONSEDELAY)
0x0206 /518
0-250对应0-2500毫秒
传感器接受到主机请求命令后延时一段时间然后响应。延时时间为设置值*10毫秒。设置为0时不延时。
串行通信主动输出时间间隔(ACTIVEOUTPUTINTERVAL)
0x0207 /519
0-250对应0-250秒
不需要主机进行请求,传感器以固定的时间间隔自动发送数据。时间间隔为设置值*1秒。设置为0时禁止主动输出功能。
UINT16:16位无符号整数寄存器
INT16:16位有符号整数寄存器
7.3 Modbus寄存器参数说明
TEMPERATURE --- 温度值
参数范围
-4000-8000 对应 -40.00~80.00℃
默认值:无
参数存储
无
意义:温度测量值,负数用补码表示。
举例:如果返回的值是0702H (16进制,原码),则第一字节高字节为07H,第二字节低字节为02H,那么温度测量值为(07H*256+02H)/100=17.94摄氏度。
如果返回的值是FF05H (16进制,补码),则第一字节高字节为FFH,第二字节低字节为05H,那么温度测量值为((FFH*256+05H)-FFFFH-1H)/100 =(FF05H-FFFFH-1H)/100=-2.51摄氏度。
VWC ---体积含水率
0-10000对应0-
默认值: 无
意义:体积含水率测量值。
举例:如果返回的值是071DH (16进制),则第一字节高字节为07H,第二字节低字节为1DH,那么测量值为(07H*256+1DH)/10000=(7*256+29) =1821。代表体积含水率为18.21%
EC ---电导率
0-20000 对应 0-20000us/cm
意义:电导率测量值。
举例:如果返回的值是071DH (16进制),则第一字节高字节为07H,第二字节低字节为1DH,那么电导率测量值为(07H*256+1DH)/10000=(7*256+29) =1821。代表土壤电导率为1821us/cm
SALINITY---盐度
0-20000 对应 0-20000mg/L
意义:盐度测量值。
举例:如果返回的值是071DH (16进制),则第一字节高字节为07H,第二字节低字节为1DH,那么盐度测量值为(07H*256+1DH)/10000=(7*256+29) =1821。代表土壤盐度为1821mg/L
TDS---总溶解固体
意义:TDS测量值。
举例:如果返回的值是071DH (16进制),则第一字节高字节为07H,第二字节低字节为1DH,那么TDS测量值为(07H*256+1DH)/10000=(7*256+29) =1821。代表TDS为1821mg/L
EPSILON---介电常数
0-8200对应0.00-82.00
意义:介电常数。
举例:如果返回的值是071DH (16进制),则第一字节高字节为07H,第二字节低字节为1DH,那么测量值为(07H*256+1DH)/10000=(7*256+29) =1821。代表介电常数为18.21
TEMPUNIT---温度单位
0:摄氏度℃
1:华氏度℉
默认值: 0
立即存储
意义:温度单位。
ECTEMPCOFF---电导温度系数
0-100对应0.0%-10.0%
默认值: 20(2%)
意义:电导温度补偿系数
SALINITYCOFF---盐度系数
0-100对应0.00-1.00
默认值: 55(0.55)
意义:盐度/电导率补偿系数
TDSCOFF---TDS系数
默认值: 50(0.50)
意义:TDS/电导率补偿系数
MEASMUREMETHOD---测量方式
0: 连续测量
1: 请求数据时测量
默认值: 1
意义:连续测量时,上电后会连续进行数据测量;请求数据时测量,上电后不会进行数据测量,只有在请求相关寄存器数值时才进行测量,可最大限度的降低功耗节省电力。传感器处于请求数据时测量的情况下,通信响应时间将增加约80毫秒。
SLAVEADDR --- Modbus从机地址
0-255
默认值:1
Modbus地址,可设置为0-255。当模块外部的地址拨码开关设置为地址0时,使用此寄存器的内容作为从机地址。设置后需要重新上电或者使用RST命令重新启动模块,使此地址生效。使用此命令修改模块地址不需要打开机壳即可设置。
BAUDRATE --- 串行通信波特率
0-5
0:1200bps
1:2400bps
2:4800bps
3:9600bps
4:19200bps
5:38400bps
默认值:3
立即存储
PROTOCOL --- 串行通信协议
0~1
0:Modbus RTU
1:Modbus ASCii
默认值:0
PARITY --- 串行通信校验位
0-2
0:无校验
1:偶校验
2:奇校验
DATABITS --- 串行通信数据位
1
1:8个数据位
默认值:1,只支持8个数据位,其他无效
STOPBITS --- 串行通信停止位
0-1
0:1个停止位
1:2个停止位
RESPONSEDELAY --- 串行通信延时响应
0-250
串行通信延时响应在以下情况下使用:当主机发送请求命令后,模块延时(RESPONSEDELAY*10)毫秒,然后将响应数据返回给主机。比如设置RESPONSEDELAY=5,那么模块延时5*10=50毫秒后响应主机请求。设置为0时为无延时立即响应。此命令主要应用于主机从RS485发送状态切换为接收状态时速度比较慢的场合。
ACTIVEOUTPUTINTERVAL --- 串行通信主动输出时间间隔
0-250
串行通信主动输出时间间隔在以下情况下使用:主机不需要发送请求命令,模块主动输出响应数据,输出间隔为ACTIVEOUTPUTINTERVAL秒,比如设置ACTIVEOUTPUTINTERVAL=5,那么模块每5秒按照设置的通信协议输出数据。设置为0时主动输出无效,需主机请求后方可响应。此命令主要应用于GPRS等无线传输时,需要终端节点主动发送数据的场合。
注意:当设置为主动输出数据时,RS485总线上只能连接一个模块,以避免总线数据冲突。
7.4 Modbus协议通信样例以下说明中,0x开头或者H结尾的数据为16进制数据。Modbus协议有两种常用寄存器类型:
(1) 保持寄存器,存储数据掉电不丢失,是可读可写的。通常用功能号3(0x03)读取,用功能号6(0x06)或者16(0x10)写入。
(2) 输入寄存器,用来存储一些只读的物理量,比如温度值,是只读的。通常用功能号4(0x04)读取。
7.4.1 功能号3通信样例通用请求格式:AA 03 RRRR NNNN CCCC
AA
1字节
设备地址,范围0-255
03
1字节
功能号为3
RRRR
2字节
起始寄存器地址,高字节在前
NNNN
要读取的寄存器数量N,高字节在前
CCCC
CRC校验
通用响应格式:AA 03 MM VV0 VV1 VV2 VV3… CCCC
MM
返回寄存器值的数据字节数量
VV0,VV1
返回的第一个寄存器值
VV2,VV3
返回的第二个寄存器值
…
…
返回的第N个寄存器值(N=MM/2)
CCCC
举例:以读寄存器0x0200-0x0201,即从机地址以及波特率为例
请求:01 03 0200 0002 C5B3
设备地址
0x01
功能号
0x03
起始寄存器地址
0x0200
寄存器数量
0x0002
校验
0xC5B3
响应:01 03 04 00 01 00 03 EB F2
有效字节数
0x04
从机地址寄存器值
0x00(从机地址高字节)
0x01(从机地址低字节)
波特率寄存器值
0x00(波特率高字节)
0x03(波特率低字节)
0xEBF2
7.4.2 功能号4通信样例
通用请求格式:AA 04 RRRR NNNN CCCC
04
功能号为4
通用响应格式:AA 04 MM VV0 VV1 VV2 VV3… CCCC
举例:以读寄存器0x0000-0x0003,即读取温度,含水率,电导率值
请求:01 04 0000 0003 B00B
0x0000
0x0003
0xB00B
响应:01 04 06 08 90 0E 93 02 4E D2 57
0x06
温度寄存器值
0x08
0x90
体积含水率寄存器值
0x0E
0x93
电导率寄存器值
0x02
0x4E
0xD257
7.4.3 功能号6通信样例通用请求格式:AA 06 RRRR VVVV CCCC
06
功能号为6
寄存器地址,高字节在前
VVVV
要写入寄存器的数值,高字节在前
通用响应格式:AA 06 RRRR VVVV CCCC
VVVV
CCCC
举例:以写寄存器0x0021,即温度单位为华氏度℉例
请求:01 06 0021 0001 1800
0x0021
寄存器值
0x0001
0x1800
响应:01 06 0021 0001 1800
7.4.4 功能号16通信样例通用请求格式:AA 10 RRRR NNNN MM VVVV1 VVVV2 …CCCC
10(16进制)
功能号为16(十进制)
要写入寄存器的数值的字节个数
VVVV1
要写入第一个寄存器的数值,高字节在前
VVVV2
要写入第二个寄存器的数值,高字节在前
…
要写入第N个寄存器的数值,高字节在前
N=MM/2
通用响应格式:AA 10 RRRR NNNN CCCC
NNNN
举例:以写寄存器0x0200-0x0201,即设置从机地址为1,波特率为19200bps为例
请求:01 10 0200 0002 04 0001 0004 BACC
0x01
设备地址
0x10(16进制)
0x0200
0x0002
0x04
0x0001
要写如的从站地址寄存器值为1
0x0004
要写如的波特率寄存器值为4
0xBACC
响应:01 10 0200 0002 4070
0x0002
0x4070
7.4.5 CRC16校验算法及例程例程:
//-----------------------------------------------------------------------------
//CRC计算C51语言函数如下
//输入参数1:snd,待校验的字节数组名
//输入参数2:num,待校验的字节总数
//函数返回值:校验和
unsigned int calc_crc16 (unsigned char *snd, unsigned char num)
{
unsigned char i, j;
unsigned int c,crc=0xFFFF;
for(i = 0; i < num; i ++)
{
c = snd[i] & 0x00FF;
crc ^= c;
for(j = 0;j < 8; j ++)
{
if (crc & 0x0001)
{
crc>>=1;
crc^=0xA001;
}
else
crc>>=1;
}
}
}
return(crc);
}
举例:以读寄存器0x0000-0x0002,即读取温度,含水率,电导率值
主机请求:01 04 0000 0003 B00B (8个字节)
当主机需要发送数据给传感器以前,将需要进行发送校验的数据存储到snd数组中(01 04 00 00 00 03共6个字节),其中num=6
伪代码如下:
unsigned char request[8]={01,04,00,00,00,03,00,00};//最后两个00,00是CRC校验
unsigned char num=6;//计算数组前6个字节的CRC校验
unsigned int crc16=0;
crc16= calc_crc16 (request, num);
request[6]= crc16%256;//把crc校验存储到要发送的数组中
request[7]= crc16/256;
CommPort.Send(request, 8);//通过串口发送数据
传感器响应:01 04 06 08 90 0E 93 02 4E D2 57 (11个字节)
当主机接收到传感器返回的11个字节数据后,进行以下crc计算操作,其中num=11
unsigned char response[11]={ 01 04 06 08 90 0E 93 02 4E D2 57};//最后两个字节是传感器返回的CRC校验
unsigned char num=11;//计算整个返回的11个字节的CRC校验
crc16= calc_crc16 (response, num);
if(crc16==0)
{
//crc校验正确,可以使用返回的数据
}
else
//crc校验错误,不能使用返回的数据
}
得到返回结果为0时那么校验成功,如果校验失败返回为非零值。如果校验不成功,说明传输过程发生错误,应放弃此次采集到的数据,重新采集。
校验成功后,使用以下公式计算温度(负数以补码表示)和电导率,H结尾的为16进制数据:
温度=(08H*256+90H)/100=2192/100=21.92 ℃
体积含水率=(0EH*256+93H)/100=3731/100=37.31%
电导率=02H*256+4EH=2*256+78 =590 us/cm
7.5 使用串口调试软件通信用户可使用任意一款串口调试软件与传感器进行通信,通信时需注意,选择正确的串口,波特率,以及其他串口通信参数,需要发送和接收的数据均要以16进制进行传输以及显示。
8 用户设置软件8.1 软件安装与启动
(1)SensorOneSet设置软件基于Dotnet Framework开发,安装前需先安装Dotnet Framework 3.5以上版本。方可运行。如果电脑没有安装微软DotNetFramework3.5SP1的,请先下载完整安装包:http://www.microsoft.com/zh-cn/download/details.aspx?id=25150
(2)安装Dotnet Framework完成后,可点击“Install.SensorOneSet.msi”进行程序安装。
(3)从开始菜单中启动“SensorOneSet用户设置程序”,启动如下画面。
8.2 运行设置软件
(1)点击工具栏中的“搜索设备”按钮,弹出“搜索在线设备-选择搜索参数”对话框。
(2)在“通信参数选择”对话框中选择合适的通讯参数。并点击“搜索”按钮。搜索到的设备会列在相应的串口下。如下图。
(3)双击窗口左侧串口下列出的设备“MT10(三参数)-设备地址……”,其通讯参数会自动列到右侧的“电脑通讯设置”中。点击右侧的“开始”按钮,软件开始于模块进行通讯。
(4)如需再次搜索模块,请先点击“停止”按钮,然后再次进行搜索。
(5)如知道传感器的具体通信参数,也可以在MT10(三参数)页面直接点击“开始通信”,弹出“通信参数选择”对话框,设置通信参数等信息后,点“确定”关闭对话框后软件将与传感器进行通信。
(6)通信成功后,用户可修改各参数的值。