我有一个 Modbus RTU 设备,它的信息存储在非标准数据地址中。
例如,它将读取值(32 位 IEEE-754 浮点数,转换器链接)存储在寄存器号 1003 - 1004 中。
我认为这意味着我不能再使用标准的 Python + Modbus RTU 库,比如modbus-tk
和pymodbus
.
在这种情况下可以做些什么?
设备规格
我有一个 Modbus RTU 设备,它的信息存储在非标准数据地址中。
例如,它将读取值(32 位 IEEE-754 浮点数,转换器链接)存储在寄存器号 1003 - 1004 中。
我认为这意味着我不能再使用标准的 Python + Modbus RTU 库,比如modbus-tk
和pymodbus
.
在这种情况下可以做些什么?
设备规格
您可以将不同类型的数据格式与 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
我希望它有帮助