Цитата Сообщение от Luna Посмотреть сообщение
Методом перебора оказалось, что правильное значение удается получить только командой
read_float(registeraddress=22, functioncode=3, number_of_registers=2 )

И это противоречит информации из инструкции: 2. Во время передачи четырехбайтовых значений (тип Float32) старшее слово передается в
регистре с меньшим номером.
Получается, что в регистре с меньшим номеров старшее слово и вообще значение датчика только в одном регистре разместилось...
Предлагаю попробовать так:
read_float(registeraddress=22, functioncode=3, number_of_registers=4, byteorder=BYTEORDER_BIG)
read_float(registeraddress=22, functioncode=3, number_of_registers=4, byteorder=BYTEORDER_LITTLE)
read_float(registeraddress=22, functioncode=3, number_of_registers=4, byteorder=BYTEORDER_BIG_SWAP)
read_float(registeraddress=22, functioncode=3, number_of_registers=4, byteorder=BYTEORDER_LITTLE_SWAP)

В любом случае, какой-то вызов даст верное значение.