Files
DLD154Pro/docs/rs485-700bs-protocol.md
T
wangfq 08df2ea6d7 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 寄存器映射)
2026-07-22 18:58:01 +08:00

211 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 车检器 RS485 通信协议 — DLD-700BS
> 版本: V1.15 | 日期: 2022-08-19 | 来源: `reference/docs/A5 20220819 车检器RS485通信协议 DLD-700BS V1.15.pdf`
>
> 兼容产品: DLD-700BS 系列车检器
---
## 1. 物理层
| 参数 | 值 |
|------|-----|
| 接口 | RS485 半双工 |
| 波特率 | 9600 bps |
| 数据位 | 8 |
| 校验 | 无 (N) |
| 停止位 | 1 |
| 从机地址 | 0x010x1016 个地址,DIP 拨码设置) |
---
## 2. 地址码设置(DIP 拨码)
| DIP7 | DIP8 | DIP9 | DIP10 | 地址 |
|------|------|------|-------|------|
| OFF | OFF | OFF | OFF | 0x01 |
| ON | OFF | OFF | OFF | 0x02 |
| OFF | ON | OFF | OFF | 0x03 |
| ON | ON | OFF | OFF | 0x04 |
| OFF | OFF | ON | OFF | 0x05 |
| ON | OFF | ON | OFF | 0x06 |
| OFF | ON | ON | OFF | 0x07 |
| ON | ON | ON | OFF | 0x08 |
| OFF | OFF | OFF | ON | 0x09 |
| ON | OFF | OFF | ON | 0x0A |
| OFF | ON | OFF | ON | 0x0B |
| ON | ON | OFF | ON | 0x0C |
| OFF | OFF | ON | ON | 0x0D |
| ON | OFF | ON | ON | 0x0E |
| OFF | ON | ON | ON | 0x0F |
| ON | ON | ON | ON | 0x10 |
---
## 3. 通信数据包格式
主机发送固定 **3 字节**
```
| STX | ADDR/CMD | XOR |
| 1 byte | 1 byte | 1 byte |
```
| 字段 | 类型 | 说明 |
|------|------|------|
| STX | uint8 | 起始字节 / 命令码 |
| ADDR | uint8 | 目标地址 (0x010x10),或命令码的组成部分 |
| XOR | uint8 | 异或校验:`XOR = STX ^ ADDR/CMD` |
---
## 4. 命令集
### 4.1 查询有车状态及线圈好坏
**主机发送:**
```
| 0xFA | ADDR | XOR |
```
> 例:查询 1# 车检器 → `FA 01 FB`
**从机回复:**
```
| 0xF5 | DATA | XOR |
```
| DATA 位 | 说明 |
|---------|------|
| bit7 | 车辆状态:0=无车,1=有车 |
| bit5 | 线圈状态:0=正常,1=线圈断开 |
| bit40 | 地址 (0x010x10) |
| XOR | `0xF5 ^ DATA` |
> 例:
> - 1# 无车 → `F5 01 F4`
> - 2# 有车 → `F5 82 77`
> - 3# 无车+线圈断 → `F5 23 D6`
---
### 4.2 查询线圈振荡频率
**主机发送:**
```
| 0x1B | ADDR | XOR |
```
> 例:查询 1# → `1B 01 1A`
**从机回复:**
```
| 0x14 | Fre_1 | Fre_2 | Fre_3 | ADDR | XOR |
```
| 字段 | 说明 |
|------|------|
| Fre_13 | 3 字节频率 (big-endian): `Freq = (Fre_1 << 16) \| (Fre_2 << 8) \| Fre_3`,单位 Hz |
| XOR | `0x14 ^ Fre_1 ^ Fre_2 ^ Fre_3 ^ ADDR` |
> 例:
> - 1# → `14 00 ED E8 01 10`Freq = 0x00EDE8 = 60.904 kHz
> - 2# → `14 01 63 06 02 72`Freq = 0x016306 = 90.886 kHz
---
### 4.3 车检器复位重新初始化线圈
**主机发送:**
```
| 0x2C | ADDR | XOR |
```
> 例:复位 1# → `2C 01 2D`
**从机无回复。**
---
### 4.4 查询拨码开关 DIP15 设置
**主机发送:**
```
| 0x3D | ADDR | XOR |
```
> 例:查询 1# → `3D 01 3C`
**从机回复:**
```
| 0x32 | DATA | ADDR | XOR |
```
| DATA 位 | 说明 |
|---------|------|
| bit40 | DIP15 状态:0=OFF1=ON |
> 例:
> - 1# → `32 0D 01 3E`DIP1、DIP3、DIP4=ONDIP2、DIP5=OFF
> - 2# → `32 0A 02 3A`DIP2、DIP4=ONDIP1、DIP3、DIP5=OFF
---
### 4.5 主动上报心跳 (0xAA)
空闲每隔 **5 秒**上报一次。线圈异常每隔 **1 秒**上报直到恢复。有车/无车事件**立即上报**
**从机主动发送:**
```
| 0xAA | Init_B | State | Fre_Err | Fre_1 | Fre_2 | Fre_3 | ADDR | XOR |
```
| 字段 | 字节 | 说明 |
|------|------|------|
| Init_B | 1 | `A1`=设备复位后首次上报,`A0`=正常 |
| State | 1 | bit7=有车,bit5=线圈断开,bit40=地址 |
| Fre_Err | 1 | `0x00`=频率正常。bit0=1→下限异常;bit4=1→上限异常 |
| Fre_13 | 3 | 线圈振荡频率 (big-endian, Hz) |
| ADDR | 1 | 设备地址 |
| XOR | 1 | `0xAA ^ Init_B ^ State ^ Fre_Err ^ Fre_1 ^ Fre_2 ^ Fre_3 ^ ADDR` |
> 复位触发条件:上电、协议控制复位(0x2C)、有限存在模式超时复位、重新连接线圈。
>
> 例:
> - 1# 启动后首次上报 → `AA A1 01 00 00 BF 50 01 E4`
> - 1# 车进入 → `AA A0 81 00 00 BF 84 01 B1`
> - 1# 车离开 → `AA A0 01 00 00 BF 50 01 E5`
> - 1# 线圈断开 → `AA A0 21 00 00 BF 4E 01 DB`(持续每秒发送,直到恢复)
---
## 5. 命令速查表
| STX | 方向 | 功能 | 回复 |
|-----|------|------|------|
| 0xFA | 主→从 | 查询有车 + 线圈状态 | F5 DATA XOR |
| 0x1B | 主→从 | 查询线圈频率 | 14 Fre1-3 ADDR XOR |
| 0x2C | 主→从 | 复位初始化线圈 | 无回复 |
| 0x3D | 主→从 | 查询 DIP1-5 | 32 DATA ADDR XOR |
| 0xAA | 从→主 | 主动心跳上报 | 不回复 |
---
## 6. DLD154Pro 兼容说明
| 700BS 命令 | DLD154Pro 兼容 | 备注 |
|-----------|---------------|------|
| 0xFA 查询状态 | Modbus → DI 0x000001 | 等价覆盖 |
| 0x1B 查询频率 | Modbus → IR 0x000001 | 等价覆盖(32-bit |
| 0x2C 复位 | Modbus → HR 0x00FF | 新增命令寄存器 |
| 0x3D 查拨码 | Modbus → IR 0x000C (DIP Virtual) | DLD154Pro 无物理拨码,虚拟映射 |
| 0xAA 心跳 | Modbus 无等价 | 主从架构限制,靠轮询 DI+IR 补偿 |