海水养殖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 |
- CODE:01 – 功能码错
03 – 数据错
- COM:接收到的功能码
海水养殖COD水质传感器