Библиотека Python modbus, поддерживающая расширенный адресный интервал?

У меня есть устройство Modbus RTU, информация о котором хранится в нестандартных адресах данных.

Например, он сохраняет считанные значения (32-битное число с плавающей запятой IEEE-754, ссылка преобразователя) в регистр с номером 1003 - 1004.

Я думаю, это означает, что я больше не могу использовать стандартные библиотеки Python + Modbus RTU, напримерmodbus-tk а также pymodbus.

Что можно сделать в этой ситуации?


Особенности устройства

  • Устройство: датчик CO2 E + E Elektronik, серия EE872
  • Руководство пользователя (раздел 5.2 содержит информацию о Modbus RTU)
  • Устройство подключено к машине с Windows 10 с Python 3.6

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 основан на python structмодуль. Ожидаемые значения перечислены здесь.

https://docs.python.org/3.7/library/struct.html

Я надеюсь, что это помогает

Другие вопросы по тегам