跳到主要内容

Modbus API

Limelight OS 具有一个运行在 (ip地址):502 的 Modbus TCP 服务器

  • 整数:整数是有符号的,使用二进制补码编码。这种方法被普遍认可,确保正确解释符号。

  • 浮点数:浮点数使用 IEEE 754 标准编码。为了符合 Modbus 协议的 16 位寄存器限制,浮点数被分为两部分:

    • 高 16 位存储在第二个寄存器中,低 16 位存储在第一个寄存器中。
    • 小端格式确保与 Modbus 规范兼容。

USB 和以太网 Limelight 可以使用 ModbusTool 进行测试

Modbus 支持零件检查和工业自动化用例。要开始使用 Modbus,您需要执行以下操作:

  1. 通过以太网或 USB-C 连接到您的 Limelight 并配置管道。

    • 虽然所有管道都会通过 modbus 输出结果,但我们的 python snapscript 管道对于工业用例来说非常通用,因为它们支持自定义输入输出数据。
  2. 给您的 Limelight 分配一个静态 IP 地址

  3. 将您的 Limelight 连接到 modbus 网络。

Modbus 寄存器规范

输入 / 只读寄存器

寄存器类型描述
0hbint心跳值。每帧增加一次
1pipelineIndexint当前活动管道索引(0 .. 9)。
2validTargetint如果存在有效目标则为 1,否则为 0。
3resultsCountint总结果计数。包括所有基准检测、神经检测等
4IDintID / 团队编号
5modbusModeintModbus 服务器输出模式。
6cpuTempintCPU 温度(摄氏度)。
7cpuUsageintCPU 使用率百分比。
8ramUsageintRAM 使用率百分比。
9currentFPSint当前每秒帧数。
10captureLatencyint捕获延迟。(毫秒)
11targetLatencyint处理延迟。(毫秒)
12-15保留int

如果输出模式设置为 0:

寄存器类型描述
16,17txfloat32目标的水平角度偏移(度)
18,19tyfloat32目标的垂直角度偏移(度)
20,21txncfloat32目标的水平角度偏移(相对于主像素,度)
22,23tyncfloat32目标的垂直角度偏移(相对于主像素,度)
24,25tafloat32 (0-1)目标面积占图像大小的百分比
26fiducialIDint当前 AprilTag ID
27classifierClassint当前分类器管道输出的类别索引。如果没有分类器结果则为 -1
28detectorClassint当前检测器管道输出的类别索引。如果没有检测器结果则为 -1
29保留int
30,31python[0]float32自定义 python 输出数组 [0]
32,33python[1]float32自定义 python 输出数组 [1]
34,35python[2]float32自定义 python 输出数组 [2]
36,37python[3]float32自定义 python 输出数组 [3]
38,39python[4]float32自定义 python 输出数组 [4]
40,41python[5]float32自定义 python 输出数组 [5]
42,43python[6]float32自定义 python 输出数组 [6]
44,45python[7]float32自定义 python 输出数组 [7]

保持 / 只写寄存器

寄存器类型描述
0unlockedint解锁管道。设置为 1 以启用管道切换和自定义输入数据
1pipeIndexint如果 "unlocked" 设置为 1,则设置管道索引
2outputModeint设置输出模式。0 - 标准,1 - rawtargets(开发中)
3保留int
4保留int
5保留int
6保留int
7保留int
8pythonInput[0]int自定义 python 输入数组 [0]
9pythonInput[1]int自定义 python 输入数组 [1]
10pythonInput[2]int自定义 python 输入数组 [2]
11pythonInput[3]int自定义 python 输入数组 [3]
12pythonInput[4]int自定义 python 输入数组 [4]
13pythonInput[5]int自定义 python 输入数组 [5]
14pythonInput[6]int自定义 python 输入数组 [6]
15pythonInput[7]int自定义 python 输入数组 [7]
16,17pythonInput[8]float32自定义 python 输入数组 [8]
18,19pythonInput[9]float32自定义 python 输入数组 [9]
20,21pythonInput[10]float32自定义 python 输入数组 [10]
22,23pythonInput[11]float32自定义 python 输入数组 [11]
24,25pythonInput[12]float32自定义 python 输入数组 [12]
26,27pythonInput[13]float32自定义 python 输入数组 [13]
28,29pythonInput[14]float32自定义 python 输入数组 [14]
30,31pythonInput[15]float32自定义 python 输入数组 [15]