GrabBag/App/WheelMeasure/Doc/ModbusTCP_Protocol.md

1.8 KiB
Raw Blame History

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