GrabBag/App/WheelMeasure/Doc/ModbusTCP_Protocol.md

56 lines
1.8 KiB
Markdown
Raw Normal View History

2025-12-27 09:34:02 +08:00
# WheelMeasure ModbusTCP 通信协议
## 概述
- **协议类型**: ModbusTCP
- **默认端口**: 502
- **数据类型**: 保持寄存器 (Holding Registers, 功能码 03/06/16)
- **字节序**: 大端模式 (Big-Endian)
## 寄存器地址映射
| 地址 | 名称 | 读/写 | 数据类型 | 说明 |
|------|------|-------|----------|------|
| 0 | 检测控制 | W | UINT16 | 写1-4直接开始检测对应设备 |
| 1 | 检测状态 | R | UINT16 | 0=空闲, 1=初始化中, 2=就绪, 3=检测中, 4=完成, 5=错误 |
| 2 | 设备序号 | R | UINT16 | 当前结果的设备序号 (1-4) |
| 3 | 结果有效 | R | UINT16 | 0=无效, 1=有效 |
| 4,5 | 轮眉高度 | R | FLOAT32 | 轮眉到中心高度 (mm) |
| 6,7 | 轮眉X | R | FLOAT32 | 轮眉位置X坐标 (mm) |
| 8,9 | 轮眉Y | R | FLOAT32 | 轮眉位置Y坐标 (mm) |
| 10,11 | 轮眉Z | R | FLOAT32 | 轮眉位置Z坐标 (mm) |
| 12,13 | 上点X | R | FLOAT32 | 轮毂上点X坐标 (mm) |
| 14,15 | 上点Y | R | FLOAT32 | 轮毂上点Y坐标 (mm) |
| 16,17 | 上点Z | R | FLOAT32 | 轮毂上点Z坐标 (mm) |
| 18,19 | 下点X | R | FLOAT32 | 轮毂下点X坐标 (mm) |
| 20,21 | 下点Y | R | FLOAT32 | 轮毂下点Y坐标 (mm) |
| 22,23 | 下点Z | R | FLOAT32 | 轮毂下点Z坐标 (mm) |
| 24,25 | 到地面高度 | R | FLOAT32 | 轮眉到地面高度 (mm) |
2025-12-27 09:34:02 +08:00
## FLOAT32 格式
浮点数使用两个16位寄存器存储大端模式
```
寄存器N = (float32 >> 16) & 0xFFFF // 高16位
寄存器N+1 = float32 & 0xFFFF // 低16位
```
## 检测状态枚举
| 值 | 状态 |
|----|------|
| 0 | 空闲 |
| 1 | 初始化中 |
| 2 | 就绪 |
| 3 | 检测中 |
| 4 | 完成 |
| 5 | 错误 |
## 通信流程
```
1. 写寄存器0 = 设备序号 (1-4)
2. 读寄存器1 等待状态变为 4 (完成)
3. 读地址2-25获取检测结果
2025-12-27 09:34:02 +08:00
```