Добрый день!
Есть контроллер Wire Board 6
К контактам RS 485 /1 A B подключена метеостанция протокол Modbus получаем данные температуры влажность давление,
Все показатели выводятся правильно но стоит температуре уйти в отрицательное значение контроллер даёт температуру 6552.1 °C ~ + -10 °C по графику видно что перепады температуры в течении дня похожи на правду но 6552.1 °C
Вот здесь http://arduino.ru/forum/programmirovanie/modbus-rtu-i-otritsatelnye-chisla
Нашёл похожую проблему
Пишут что:
65535 это и есть “-1”
Цитирую
<
Скажи мне в чем разница этих записей?
#FFFF
1111 1111 1111 1111 1111
-1
65535
Ни в чем!!! В шестнадцати-битной ячейке это одно и тоже значение. Разница только в интерпретации.
Modbus не является объектно-ориентированным протоколом. Он имеет дело только с регистрами, а что в этих регистрах находится ему без разницы. Все зависит он интерпретации. В двух регистрах может быть короткий Float, а может быть вообще 8 char.
Поэтому возьми модбас-тестер (модбас-мастер), который может отображать значения полученных регистров в нужное представление (тебе нужен signed int).
Подскажите что можно сделать, я не очень понимаю что какие настройки и с какой стороны проверять со стороны контроллера или со стороны метеостанции.
Спасибо,