GrabBag/App/WheelMeasure/Doc/ModbusTCP_Protocol.md

56 lines
1.8 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.

# 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) |
## 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获取检测结果
```