55 lines
1.8 KiB
Markdown
55 lines
1.8 KiB
Markdown
# 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) |
|
||
|
||
## 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-23获取检测结果
|
||
```
|