海水养殖COD水质传感器
附录 数据通信数据格式
Modbus通信默认的数据格式为: 9600、n、8、1(波特率9600bps,1个起始位,8个数据位,无校验,1个停止位)。
信息帧格式 (xx代表一个字节)读数据指令帧06 03 xx xx xx xx xx xx
地址 功能码 寄存器起始地址 寄存器数量 CRC校验码(低字节在前)
读数据应答帧06 03 xx xx……xx xx xx
地址 功能码 字节数 应答数据 CRC校验码(低字节在前)
写数据指令帧06 06 xx xx xx xx xx xx
地址 功能码 寄存器地址 写入数据 CRC校验码(低字节在前)
写数据应答帧06 06 xx xx xx xx xx xx
地址 功能码 寄存器地址 写入数据 CRC校验码(低字节在前)
寄存器地址
寄存器地址 | 名称 | 说明 | 寄存器个数(字节数) | 访问方式(功能码) |
0x0000 | COD测量值 | 2个双字节整数,分别为测量值值和测量值值小数位数(默认1位小数)。 | 2(4字节) | 读(0x03) |
0x0002 | 温度测量值 | 2个双字节整数,分别为温度值和温度值小数位数(默认1位小数)。 | 2(4字节) | 读(0x03) |
0x0004 | 浊度测量值 | 2个双字节整数,分别为测量值值和测量值值小数位数(默认1位小数)。 | 2(4字节) | 读(0x03) |
0x1000 | COD零点校准 | 在去离子水中进行校准。校准时写入的校准值数据0;读出的数据为零点偏移量。 | 1(2字节) | 写(0x06)/读(0x03) |
0x1004 | COD斜率校准 | 可以在40-400mg/L的溶液中进行校准。校准时写入的校准值数据为所用标准液浓度x10的数值;读出的数据为斜率值x1000。 | 1(2字节) | 写(0x06)/读(0x03) |
0x1010 | 温度校准 | 温度校准:写入数据为实际温度值x10;读出数据为温度校准偏移量x10。 | 1(2字节) | 写(0x06)/读(0x03) |
0x1020 | 浊度零点校准 | 在零浊度水中进行校准。校准时写入的校准值数据0;读出的数据为零点偏移量。 | 1(2字节) | 写(0x06)/读(0x03) |
0x1024 | 浊度斜率校准 | 可以在40-400NTU的溶液中进行校准。校准时写入的校准值数据为所用标准液浓度x10的数值;读出的数据为斜率值x1000。 | 1(2字节) | 写(0x06)/读(0x03) |
0x1100 | 传感器开关 (本机通电即开机工作,此指令仅用于调试。) | 打开或关闭传感器测量功能。写入数据为0时关闭测量;写入数据为1时打开测量。传感器上电默认为打开状态。 | 1(2字节) | 写(0x06) |
0x2002 | 传感器地址 | 默认为6,数据范围1-127。 | 1(2字节) | 写(0x06)/读(0x03) |
0x1300 | 自动清洗间隔时间设置 | 默认为10分钟,数据范围6~6000分钟。 | 1(2字节) | 写(0x06)/读(0x03) |
0x1301 | 自动清洗圈数设置 | 默认为3圈,数据范围1~6圈。 | 1(2字节) | 写(0x06)/读(0x03) |
0x2002 | 传感器地址 | 默认为6,数据范围1-127。 | 1(2字节) | 写(0x06)/读(0x03) |
0x2020 | 恢复出厂 | 校准值恢复出厂设置,写入数据为0。 | 1(2字节) | 写(0x06) |
命令示例
设置设备ID地址:作用:设置电极的MODBUS设备地址。
将设备地址06改为01,范例如下:
请求帧:06 06 20 02 00 01 E3 BD
应答帧:01 06 20 02 00 01 E2 0A
开机指令:(本机通电即开机工作,此指令仅用于调试。)作用:让探头连续发光,开始COD测量。
请求帧:06 06 11 00 00 01 4C 81
应答帧:06 06 11 00 00 01 4C 81
读数据指令:作用:获取测量探头的温度和COD值;温度的单位为摄氏度,COD值的单位为mg/L。
请求帧:06 03 00 00 00 04 45 BE
应答帧:06 03 08 01 02 00 02 00 B0 00 01 14 B4
读数示例:
COD值 | 温度值 |
01 02 00 01 | 00 B0 00 01 |
如:COD值 01 02 表示十六进制读数COD值,00 01表示COD带1位小数点,转换成十进制数值为25.8。
温度值00 B0 表示十六进制读数温度值,00 01表示温度数值带1位小数点,转换成十进制数值为17.6摄氏度。
校准指令:COD温度校准
作用:校准传感器温度25.8摄氏度;此值校准应在温度稳定一段时间后进行。
请求帧:06 06 10 10 01 02 0D 29
应答帧:06 06 10 10 01 02 0D 29
COD零点校准
作用:设定传感器的COD零点校准值;此值校准在去离子水中进行。
请求帧:06 06 10 00 00 00 8C BD
应答帧:06 06 10 00 00 00 8C BD
COD斜率校准
作用:设定传感器的COD斜率校准值;此处斜率值校准在200mg/L的COD溶液中进行。
请求帧:06 06 10 04 07 D0 CE D0
应答帧:06 06 10 04 07 D0 CE D0
浊度零点校准
作用:设定传感器的浊度零点校准值;此值校准在去离子水中进行。
请求帧:06 06 10 20 00 00 8D 77
应答帧:06 06 10 20 00 00 8D 77
浊度斜率校准
作用:设定传感器的浊度斜率校准值;此处斜率值校准在200NTU的浊度溶液中进行。
请求帧:06 06 10 24 07 D0 CF 1A
应答帧:06 06 10 24 07 D0 CF 1A
错误响应
如果传感器不能正确执行上位机命令,则会返回如下格式信息:
定义 | 地址 | 功能码 | CODE | CRC校验 |
数据 | ADDR | COM+80H | xx | CRC 16 |
字节数 | 1 | 1 | 1 | 2 |
03 – 数据错
COM:接收到的功能码海水养殖COD水质传感器