1

我有一个 Modbus RTU 设备,它的信息存储在非标准数据地址中。

例如,它将读取值(32 位 IEEE-754 浮点数,转换器链接)存储在寄存器号 1003 - 1004 中。

认为这意味着我不能再使用标准的 Python + Modbus RTU 库,比如modbus-tkpymodbus.

在这种情况下可以做些什么?


设备规格

  • 设备:E+E Elektronik 的 CO2 传感器,EE872系列
  • 用户手册(第 5.2 节包含 Modbus RTU 信息)
  • 使用 Python 3.6 将设备插入 Windows 10 机器
4

1 回答 1

1

您可以将不同类型的数据格式与 modbus-tk 一起使用,方法是将其作为execute方法的可选参数

    # Read and write floats
    # master.execute(1, cst.WRITE_MULTIPLE_REGISTERS, starting_address=0, output_value=[3.14], data_format='>f')
    # logger.info(master.execute(1, cst.READ_HOLDING_REGISTERS, 0, 2, data_format='>f'))

data_format 基于 pythonstruct模块。此处列出了预期值。

https://docs.python.org/3.7/library/struct.html#format-characters

我希望它有帮助

于 2020-05-28T08:35:22.097 回答