Температура из двух регистров Modbus читается как 2,36e-41
По документации преобразователя температура — float32 в регистрах 100–101. Датчик показывает 25,5 °C. Ответ устройства:
регистр 100 = 0x0000
регистр 101 = 0x41CC
Прошивка склеивает (reg100 << 16) | reg101 и копирует результат в float — получается 2,36e-41. Что происходит?
- Устройство кладёт младшее слово в первый регистр
- Регистры хранят температуру в сотых долях
- Байты внутри каждого регистра перевёрнуты
- float32 надо читать функцией 04, а не 03
