Modbus API
Limelight OS 内置了一个运行在 (IP地址):502 的 Modbus TCP 服务器
-
整数:整数为有符号数,使用二进制补码编码。这种方法被广泛认可,确保正确的符号解释。
-
浮点数:浮点数使用 IEEE 754 标准编码。为了符合 Modbus 协议的 16 位寄存器限制,浮点数被分为两部分:
- 高 16 位存储在第二个寄存器中,低 16 位存储在第一个寄存器中。
- 小端格式确保与 Modbus 规范兼容。
USB 和以太网连接的 Limelight 可以使用 ModbusTool 进行测试
Modbus 支持零件检测和工业自动化应用场景。要开始使用 Modbus,您需要执行以下操作:
-
通过以太网或 USB-C 连接到您的 Limelight 并配置管道。
- 虽然所有管道都会通过 modbus 输出结果,但我们的 python snapscript 管道对于工业应用场景非常灵活,因为它们支持自定义输入输出数据。
-
为您的 Limelight 分配一个静态 IP 地址
-
将您的 Limelight 连接到 modbus 网络。
Modbus 寄存器规范
输入/只读寄存器
| 寄存器 | 键名 | 类型 | 描述 |
|---|---|---|---|
| 0 | hb | int | 心跳值。每帧增加一次 |
| 1 | pipelineIndex | int | 当前活动管道索引 (0 .. 9)。 |
| 2 | validTarget | int | 如果存在有效目标则为 1,否则为 0。 |
| 3 | resultsCount | int | 总结果数。包括所有基准标记检测、神经网络检测等 |
| 4 | ID | int | ID / 队伍编号 |
| 5 | modbusMode | int | Modbus 服务器输出模式。 |
| 6 | cpuTemp | int | CPU 温度(摄氏度)。 |
| 7 | cpuUsage | int | CPU 使用率百分比。 |
| 8 | ramUsage | int | 内存使用率百分比。 |
| 9 | currentFPS | int | 当前帧率。 |
| 10 | captureLatency | int | 采集延迟。(毫秒) |
| 11 | targetLatency | int | 处理延迟。(毫秒) |
| 12-15 | 保留 | int |
如果输出模式设置为 0:
| 寄存器 | 键名 | 类型 | 描述 |
|---|---|---|---|
| 16,17 | tx | float32 | 到目标的水平角度偏移(度) |
| 18,19 | ty | float32 | 到目标的垂直角度偏移(度) |
| 20,21 | txnc | float32 | 到目标的水平角度偏移(相对于主点像素)(度) |
| 22,23 | tync | float32 | 到目标的垂直角度偏移(相对于主点像素)(度) |
| 24,25 | ta | float32 (0-1) | 目标面积占图像大小的百分比 |
| 26 | fiducialID | int | 当前 AprilTag ID |
| 27 | classifierClass | int | 当前分类器管道输出的类别索引。如果没有分类器结果则为 -1 |
| 28 | detectorClass | int | 当前检测器管道输出的类别索引。如果没有检测器结果则为 -1 |
| 29 | 保留 | int | |
| 30,31 | python[0] | float32 |