解释以十六进制格式编写的Modbus寄存器

更新 Apr 3, 2023

适用于

软件

  • Lookout Server
  • Lookout Client
  • LabVIEW Datalogging and Supervisory Control Module

问题详述

我有一个通过Modbus协议进行通信的设备。设备手册说明该设备使用十六进制格式的寄存器。 而LabVIEW和Lookout使用十进制格式作为寄存器地址。我试图简单地将它们从十六进制转换为十进制,但这似乎不起作用。

解决方案

Modbus协议寻址方案包含各种范围以及原始地址。例如,有30000范围和40000范围。每个范围都包含不同的数据类型(一些是布尔值,另一些是16位数)的原始地址。为了将十六进制寄存器值转换为相应的十进制值,您必须首先确定地址应该在哪个范围内。然后将十六进制转换为十进制并将其与相应的范围相加。有关G7 Yasawa 驱动的信息,请参阅以下示例。

Yasawa的G7驱动器手册可能会让您使用05Ah地址配置寄存器。事实证明,G7驱动器使用40000范围(读/写16位)。将十六进制(05A)转换为十进制,得到90。将其与范围相加,得到地址40090。之后便通过Modbus从该寄存器写入或读取数据来控制G7上的配置寄存器。