Данные измерений от WB-MSW v.3


#1

Здравствуйте!
У нас датчик wb-msw v.3 подключенный к преобразователю wb-mge. Снимаем показания температуры (регистр 4), влажности (регистр 5) и co2 (регистр 8) каждые 15 секунд. По данным co2 все впорядке, а вот показания температуры и влажности иногда выдают некорректные значения. Температура бывает 1-2 градуса или далеко за 300. Влажность иногда показывает около 2-3%. На картинке видно температуру.
in1
Причем такое также происходит если температуру и влажность считывать из регистров 0 и 1.
Перезагрузка датчика не меняет картины, перезагружаю записью единички в регистр 120.
Подскажите, это брак датчика температуры/влажности или такие скачки нормальное явление?


#2

[Raiderovi4](https://support.wirenboard.com/u/Raiderovi4, добрый день! Похоже на брак.
Свяжитесь с нашими менеджерами (https://wirenboard.com/ru/pages/contacts), чтобы согласовать замену. Сошлитесь на эту тему при обращении.


#3

Поменяли датчик, показания такие же странные


иногда получаем данные значения по умолчанию/ошибка (по температуре это 328 градусов), но часто проскакивают показания в 1-2 градуса. Подскажите, это опять брак или мы неправильно показания снимаем? Спасибо.


#4

Да, очень выглядит странно! Мы проверили, первый и второй датчик из разных партий, что сводит к минимуму вероятность наличия компонентов с однотипным браком. Все, конечно, возможно.
Когда получим от вас предыдущий модуль, обязательно его протестируем.
Сейчас вы считываете input-регистр 4? делите значение на 100 и получаете температуру. Верно?
Скажите, а вы можете прислать фрагмент побайтового обмена данными на шине (в шестнадцатеричном виде) на момент появления этих странных температур?


#5

Получили ваш экземпляр, тестируем.


#6

Похоже что ошибка у меня в коде. Исправил, сейчас пусть поработает некоторое время, чтобы посмотреть будут ли отклонения в значениях (вроде температуры 2 градуса).

“Сейчас вы считываете input-регистр 4? делите значение на 100 и получаете температуру. Верно?” - да, именно так делаем.

Вот фрагмент обмена, когда возникает ошибка по температуре:
request: 48 04 00 04 00 01 7E 52
temperature: response 48 04 02 7F FF 04 8E data 7FFF result 32767
Фрагмент, когда все ок:
request: 48 04 00 04 00 01 7E 52
temperature: response 48 04 02 09 B4 62 D9 data 09B4 result 2484


#7

Добрый день, Raiderovi4!
Смотрите, это ошибка даже не в вашем коде, это ошибка, которую возвращает модуль, когда он не может получить значения от датчика, в коде она у вас просто не обрабатывается.
А вот почему значение температуры от датчика модуль не может получить, это вопрос, скорее, к нам. Будем смотреть.


#8

Дополнил еще таблицу в документации значениями при ошибке.


#9

На всякий случай, вот ссылка на таблицу регистров датчиков:
https://wirenboard.com/wiki/index.php/Sensors_Modbus_Management