docs: 700BS 协议 Markdown + Modbus V1.2 700BS 兼容
- 新增 docs/rs485-700bs-protocol.md: 700BS V1.15 完整协议文档 - Modbus V1.2: DI +Freq Low/High Fault, +Init Flag; IR +DIP Virtual; HR +Device Reset(0x00FF), +Init Flag Clear(0x00FE) - +§7 700BS 兼容对照表 (FA/1B/2C/3D/AA → Modbus 寄存器映射)
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# DLD154Pro RS485 Modbus RTU 协议
|
||||
|
||||
> 版本: V1.1 | 日期: 2026-07-22 | 状态: 草案(待评审,未实现)
|
||||
> 版本: V1.2 | 日期: 2026-07-22 | 状态: 草案(待评审,未实现)
|
||||
>
|
||||
> 适用产品: DLD154Pro (CH591R, 单路线圈车检器)
|
||||
>
|
||||
@@ -62,6 +62,11 @@
|
||||
| 0x0003 | Opto Input | 光耦输入状态 (PB10) | 0=低, 1=高 |
|
||||
| 0x0004 | Power Up State | 上电初始化中 | 0=正常, 1=初始化 |
|
||||
| 0x0005 | Relay Output | 继电器当前输出状态 | 0=释放, 1=吸合 |
|
||||
| 0x0006 | Freq Low Fault | 频率下限异常 (Fre_Err bit0) | 0=正常, 1=频率过低 |
|
||||
| 0x0007 | Freq High Fault | 频率上限异常 (Fre_Err bit4) | 0=正常, 1=频率过高 |
|
||||
| 0x0008 | Init Flag | 复位后首次指示 (Init_B) | 0=正常, 1=复位后首次—上位机读后清零* |
|
||||
|
||||
> **Init Flag 清除机制**:上位机读到 1 后,应发送 **写 HR 0x00FE=0x0001** 清零。参见 §4.7。
|
||||
|
||||
### 3.2 输入寄存器 (Input Registers) — 功能码 0x04
|
||||
|
||||
@@ -79,6 +84,7 @@
|
||||
| 0x0009 | HW Version | uint16 | 1 寄存器 | 硬件版本。例 `0x0301` = v3.01 |
|
||||
| 0x000A | Freq Sens | uint16 | 1 寄存器 | 当前灵敏度等级 (0=低, 1=中, 2=高) |
|
||||
| 0x000B | Condition | uint16 | 1 寄存器 | 环境活跃度 (0=安静, 1–100=嘈杂) |
|
||||
| 0x000C | DIP Virtual | uint16 | 1 寄存器 | 虚拟拨码(700BS 兼容): bit[7:4]=function_mode, bit[3:0]=fusion_mode |
|
||||
|
||||
> **32-bit 值换算**:
|
||||
> - 频率:`freq_hz = (reg[0x0000] << 16) | reg[0x0001]`,单位 Hz。典型空线圈 50–120kHz。
|
||||
@@ -102,9 +108,11 @@
|
||||
| 0x0009 | BT Timeout | 0–255 | 0 | R/W | 蓝牙空闲关闭超时 (分钟), 0=不关闭 |
|
||||
| 0x000A | Safe Timeout | 0–255 | 0 | R/W | 安全模式超时 (×10s), 0=关闭 |
|
||||
| 0x000B | Opto Func | 0–1 | 0 | **R** | 光耦功能: 0=雷达输入, 1=复位 |
|
||||
| 0x00FE | Init Flag Clear | 0–1 | — | **W** | 写 1 清零 Init Flag (DI 0x0008) |
|
||||
| 0x00FF | Device Reset | — | — | **W** | 写入 `0x5A5A` 触发复位初始化线圈(等效 700BS 0x2C) |
|
||||
|
||||
> **只读寄存器 (0x0005–0x0008, 0x000B)**:写操作返回异常 0x02(Illegal Data Address)。
|
||||
> 这些参数只能通过 BLE 小程序修改。RS485 地址/波特率通过 Modbus 误改会立即失联。
|
||||
> **写入寄存器 (0x00FE, 0x00FF)**:只写不读。读返回 0x0000。写入非魔数值返回异常 0x03。
|
||||
|
||||
---
|
||||
|
||||
@@ -178,6 +186,22 @@
|
||||
<<< 01 86 03 02 63 (异常: 功能码 0x86, 异常码 0x03=Illegal Data Value)
|
||||
```
|
||||
|
||||
### 4.7 触发设备复位 — 写 HR 0x00FF
|
||||
|
||||
```
|
||||
>>> 01 06 00 FF 5A 5A xx xx (写 0x00FF=0x5A5A, 触发复位)
|
||||
<<< 01 06 00 FF 5A 5A xx xx (回显, 随后设备复位)
|
||||
```
|
||||
|
||||
> 复位后设备重新初始化线圈基线,Init Flag (DI 0x0008) 置 1。
|
||||
|
||||
### 4.8 清除 Init Flag — 写 HR 0x00FE
|
||||
|
||||
```
|
||||
>>> 01 06 00 FE 00 01 xx xx (写 0x00FE=1)
|
||||
<<< 01 06 00 FE 00 01 xx xx (Init Flag → 0)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. 功能码支持矩阵
|
||||
@@ -270,9 +294,33 @@ RS485 半双工时序:发送最后一字节后等待 **1 字节时间** 再切
|
||||
|
||||
---
|
||||
|
||||
## 7. 版本历史
|
||||
## 7. 700BS 协议兼容对照
|
||||
|
||||
DLD154Pro RS485 同时支持 700BS 协议(`g_fm_700bs_disable=0`)和 Modbus RTU(`g_fm_700bs_disable=1`)。
|
||||
协议选择通过 BLE 小程序切换。参见 `docs/rs485-700bs-protocol.md`。
|
||||
|
||||
| 700BS 命令 | 700BS 字段 | Modbus 等价 | 说明 |
|
||||
|-----------|-----------|------------|------|
|
||||
| 0xFA 查询状态 | bit7=有车 | DI 0x0000 Car Present | ✅ |
|
||||
| | bit5=线圈故障 | DI 0x0001 Loop Fault | ✅ |
|
||||
| 0x1B 查询频率 | 3 字节 Freq | IR 0x0000–01 Freq (32bit) | ✅ |
|
||||
| 0x2C 复位 | — | **HR 0x00FF** 写 0x5A5A | ✅ V1.2 新增 |
|
||||
| 0x3D 查拨码 | DIP1-5 | **IR 0x000C DIP Virtual** | ✅ V1.2 新增 (DLD154Pro 无物理拨码,虚拟映射) |
|
||||
| 0xAA 心跳 Init_B | A1=首次 | **DI 0x0008 Init Flag** | ✅ V1.2 新增 |
|
||||
| 0xAA 心跳 Fre_Err | bit0=下限异常 | **DI 0x0006 Freq Low Fault** | ✅ V1.2 新增 |
|
||||
| | bit4=上限异常 | **DI 0x0007 Freq High Fault** | ✅ V1.2 新增 |
|
||||
| 0xAA 心跳 主动上报 | 5s/1s/事件 | — | ⚠️ Modbus 主从架构不支持 push,上位机周期性轮询 DI+IR 等价 |
|
||||
|
||||
> **主动上报限制**:Modbus RTU 为严格主从协议,从机不能主动发送数据。
|
||||
> 700BS 的心跳/事件上报在 Modbus 模式下不可用。需上位机以 >=1s 周期轮询 DI 0x0000–01
|
||||
> 并通过边沿检测模拟事件触发。
|
||||
|
||||
---
|
||||
|
||||
## 8. 版本历史
|
||||
|
||||
| 版本 | 日期 | 作者 | 变更 |
|
||||
|------|------|------|------|
|
||||
| V1.2 | 2026-07-22 | wangfq | 700BS 兼容: +DI Freq Low/High Fault, +DI Init Flag, +IR DIP Virtual, +HR Device Reset(0x00FF), +HR Init Flag Clear(0x00FE); +§7 700BS 兼容对照表 |
|
||||
| V1.1 | 2026-07-22 | wangfq | 修正: CAPVD/Origin/Variation 扩展为 32-bit (×2 寄存器); Output Mode 删除脉冲模式(仅存在输出); 新增 Fusion Mode(输出组合模式 0-6); direction_mode 字段重构说明 |
|
||||
| V1.0 | 2026-07-22 | wangfq | 初版草案 |
|
||||
|
||||
Reference in New Issue
Block a user