Modbus TCP 寄存器

Modbus TCP registers

我正在尝试使用 pymodbus 读取寄存器。我试图读取的 modbus 输入寄存器是 310301。由于寄存器需要为 65535 或以下,我该如何读取该寄存器?

310301 看起来是在 "Modicon" 符号中指定的地址,其中第一个数字表示 Modbus table 类型(保持寄存器、输入寄存器、线圈、离散输入)。

3xxxxx 地址是输入寄存器,因此请尝试读取输入寄存器 10301。

一般来说,在这个方案中:

  • 线圈从 000001 到 065536
  • 离散输入范围从 100001 到 165536
  • 输入寄存器范围从 300001 到 365536
  • 保持寄存器范围从 400001 到 465536

有时你会发现制造商只使用 5 位数字而不是 6 位来指定地址。我觉得这种做法很可悲,因为它会导致歧义,但你能做什么...