海水养殖ORP水质传感器
附录 数据通讯
- 数据格式
Modbus通信默认的数据格式为: 9600、n、8、1(波特率9600bps,1个起始位,8个数据位,无校验,1个停止位)。
波特率等参数可以定制。
- 信息帧格式
- 读数据指令帧
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校验码(低字节在前)
- 寄存器地址
寄存器地址 | 名称 | 说明 | 寄存器个数 | 访问方式 |
40001 (0x0000) | 测量值 | 2个双字节整数,分别为测量值、测量值小数位数。 | 2(4字节) | 读 |
44097 (0x1000) | 零点校准 | 在标准溶液中校准,写入数据为标准溶液实际值。 | 1(2字节) | 写 |
44103 (0x1006) | 零点校准值 | 读出数据为零点偏移量。 | 1(2字节) | 读 |
48195 (0x2002) | 传感器地址 | 默认为6,写入数据范围1-127。 | 1(2字节) | 写/读 |
48225 (0x2020) | 恢复出厂 | 校准值恢复出厂设置,写入数据为0。 | 1(2字节) | 写 |
注意:
- 寄存器地址为根据Modbus协议定义的带寄存器类型的寄存器起始地址(括号中的16进制表示的实际的寄存器起始地址)。
- 更改传感器地址时,返回指令中的传感器地址为更改后地点。
- 读取数据时返回测量值的数据定义:
xx xx xx xx
2字节测量值 2字节测量值小数位数
数据类型默认为:双字节整型,高字节在前;其他如浮点数类型可选。
- 命令示例
- 设置设备ID地址
作用:设置电极的Modbus设备地址;
将设备地址06改为01,范例如下
请求帧:06 06 20 02 00 01 E3 BD
应答帧:01 06 20 02 00 01 E2 0A
- 开始测量指令
作用:获取测量探头的ORP值,ORP的值为mV。
请求帧:06 03 00 00 00 02 C5 BC
应答帧:06 03 04 00 78 00 00 B6 64
读数示例:
ORP值 |
00 78 00 00 |
如,ORP值: 00 78 表示十六进制读数ORP值,00 00 表示ORP数值不带小数点,无温度值,转换成十进制数值为120。
- 校准指令
ORP变送器只需一点校准,在使用另一种校准液校准前,必须使用后一种校准液清洗探头,否则将引起较大的测试误差。
在配制好的86mV或256mV标准溶液中,输入相应校准指令。
标准液为86mV:
请求帧:06 06 10 00 00 56 0C 83;
应答帧:06 06 10 00 00 56 0C 83;
标准液为256mV:
请求帧:06 06 10 00 01 00 8D 2D;
应答帧:06 06 10 00 01 00 8D 2D。
注意:ORP值有负值,如-40mV其计算方法为:
-{FFFF-FFD7软件测试值)}=-28;十进制即为-40mV。
- 错误响应
如果传感器不能正确执行上位机命令,则会返回如下格式信息:
定义 | 地址 | 功能码 | CODE | CRC校验 |
数据 | ADDR | COM+80H | xx | CRC 16 |
字节数 | 1 | 1 | 1 | 2 |
- CODE:01 – 功能码错
03 – 数据错
- COM:接收到的功能码
海水养殖ORP水质传感器