============================ 路面传感器ModBus RTU通讯协议 ============================ --------------------- 1、物理端口定义 --------------------- - 起始位——1bit - 停止位——1bit - 数据位——8bits - 校验位——none - 波特率——9600bps --------------------- 2、内存地址映射 --------------------- =============== ================= ==== 寄存器地址 含义 操作 =============== ================= ==== 0 设备地址(1~246) 读写 1 无意义 只读 2 路面温度x100 只读 3 积水深度x100 只读 4 冰厚度x100 只读 5 雪厚度x100 只读 6 湿滑系数x100 只读 7 路面状态码 只读 8 硬件状态码 只读 =============== ================= ==== --------------------- 3、寄存器说明 --------------------- 可以通过读保持寄存器命令(0x03),获取以下寄存器数值; 写单个保持寄存器命令(0x06),修改设备地址。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 地址0 modbus设备地址 无符号整型 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 地址范围 1~246。修改地址后,重新上电生效。 ===== ======== =========== 地址 内容 含义 ===== ======== =========== 0 0x0001 地址为1 ===== ======== =========== ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 地址2 路面温度 有符号整型 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 数值为实际温度乘以100。 ===== ======== =========== 地址 内容 含义 ===== ======== =========== 2 0x07EE 20.3摄氏度 ===== ======== =========== ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 地址3 积水深度 无符号整型 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 数值为实际深度乘以100。 ===== ======== =========== 地址 内容 含义 ===== ======== =========== 3 0x00FA 2.5mm ===== ======== =========== ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 地址4 冰厚度 无符号整型 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 数值为实际厚度乘以100。 ===== ======== =========== 地址 内容 含义 ===== ======== =========== 4 0x0140 3.2mm ===== ======== =========== ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 地址5 雪厚度 无符号整型 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 数值为实际厚度乘以100。 ===== ======== =========== 地址 内容 含义 ===== ======== =========== 5 0x01AE 4.3mm ===== ======== =========== ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 地址6 湿滑系数 无符号整型 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 数值为实际数值乘以100。 ===== ======== =========== 地址 内容 含义 ===== ======== =========== 6 0x0052 0.82 ===== ======== =========== ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 地址7 路面状态 无符号整型 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ===== ======== =========== 地址 内容 含义 ===== ======== =========== 7 0x0106 雪 报警 ===== ======== =========== **数值含义** ======================== =================== W(警告) 高字节 S(路面状态) 低字节 ======================== =================== 0 NO WARNING (无警告) 0 ERROR(出错) 1 WARNING (警告) 1 DRY(干) 2 ALARM (报警) 2 MOIST(潮) 3 FROST WARNING (霜警告) 3 WET(湿) 4 OBSTRUCT(阻挡警告) 4 预留 \ 5 FROST(霜) \ 6 SNOW(雪) \ 7 ICE(冰) \ 8 预留 \ 9 SLUSHY(冰水混合) ======================== =================== ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 地址8 硬件状态 无符号整型 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ===== ======== ================================ 地址 内容 含义 ===== ======== ================================ 8 0x0040 测距模块异常 ===== ======== ================================ **数值含义 高字节(十六进制)** ========================== =================== 镜头及模块状态 高四位 硬件状态 低四位 ========================== =================== 0 接收器窗清洁 0 硬件OK 1 警告-接收器窗污染 1 CPU硬件警告 2 报警-接收器窗污染严重 2 激光器警告 4 测距模块异常 x ========================== =================== -------------------------- 4、通信示例 -------------------------- **读取路面状态** :: TX:01 03 00 00 00 09 85 CC - 01:设备地址 - 03:读保持寄存器功能码 - 00 00:寄存器地址 - 00 09:读取寄存器个数 - 85 CC:CRC校验码 RX:01 03 12 00 01 00 00 08 FB 00 06 00 00 00 00 00 51 00 02 00 00 B2 24 - 01:设备地址 - 03:03功能码 - 12:数据字节,18 - 00 01:地址寄存器数据,1 - 00 00:寄存器2数据,暂时无用 - 08 FB:温度寄存器数据,22.99度 - 00 06:水深寄存器数据,0.06mm - 00 00:冰厚寄存器数据,0.00mm - 00 00:雪厚寄存器数据,0.00mm - 00 51:湿滑系数寄存器数据,0.81 - 00 02:路面状态码寄存器数据,02代表湿 - 00 00:硬件状态码寄存器数据,00代表硬件无异常 - B2 24:CRC校验码