Проблема с датчиками температуры

Имеем 3 датчика WB-MSW v.3 температуры и влажности. Измеряем только температуру.
Периодически с датчика приходят некорректные значения.
Проверили, с помощью ПО Modbus poll, получение некорректного значения.

Сделали запись появления данных некорректных данных с датчиков https://yadi.sk/i/Ih9D1QGjaxGRWA

Что можно сделать, или они неисправны?

Если не будет решения будем решать вопрос с возвратом негодного товара

Добрый день.
Судя по значениям, (0x7fffffff), которое описано в карте регистров как признак ошибки датчика.
Давайте диагностировать:

  • какая версия прошивки устройства? (актуальная 4.16.5), посмотреть можно в регистрах 250…265 или сразу командой:
export DEV_PORT=/dev/ttyRS485-2
export DEV_ADDR=55
U=""
for i in {250..265};  do   U=$U"\\x"$(modbus_client --debug -mrtu -pnone -s2 $DEV_PORT -a$DEV_ADDR -t0x03 -r$i | grep Data:| cut -f 2 -d' ' | tr -d '0x00');  done;
echo -e $U
  • напряжение питания устройства (считать из регистра 121)
  • не перезагружается ли (проверить время работы с момента загрузки, старшее значение в 104, младшее в 105) если перезагружается из-за плохого контакта - то дает похожие симптомы.

Сам датчик стоит на шине в середине или крайним? Какое питание?
Так себя ведет один?

Пересмотрел, как минимум два сенсора.

Проверили по вашим указаниям.
Питание в норме и в момент прихода ошибки никак не изменяется.
Связь с датчиком постоянна.
Данные из регистров

Версия прошивки (Input: 250-265):
342e392e31 (hex) = 4.9.1 (ASCII, null-terminated);

Модель устройства (Input: 200-205):
424d535733 (hex) = BMSW3 (ASCII, null-terminated);

Сигнатура прошивки (Input: 290-301):
2d34386d68 (hex) == -48mh (ASCII, null-terminated);

Текущее напряжение питания (Input: 121):
колеблется около 23,8В; //

Время работы с момента загрузки в секундах ():
45942425 == около 1,45 года после запуска

Датчики с ошибкой стоят последними в линии связи. В самой линии связи установлено по 2 датчика
Линия 1 ТФ120.1 и ТФ120.2
Линия 2 ТФ121.1 и ТФ120.2
Связь с датчиками осуществляется через 1-портовый преобразователь Modbus RTU/ASCII (RS-232/422/485) в Modbus TCP MGATE MB3180.

Прошивка старая, в новой неверные значения фильтруются автоматически. Попробуете обновить? Как понимаю, контроллера нет, можно использовать компьютер с Debian:
https://wirenboard.com/wiki/WB_Modbus_Devices_Firmware_Update

Какую именно прошивку необходимо установить?
Возможно ли установка с ПК на Windows 10?

Так как сигнатуру устройства уже получили, то вот этот файл:
http://fw-releases.wirenboard.com/fw/by-signature/msw3-48mh/stable/4.16.5.wbfw

Нет, под эту ОС инструменты отсутствуют.

@BrainRoot, здравствуйте.
Есть особенность при работе с этим датчиком - он подключен посредством преобразователя протоколов Modbus RTU<>Modbus TCP

Вопрос в следующем - утилита для обновления firmware, которая указана в материалах по загрузке прошивок на устройства позволяет работать посредством обращения к Modbus TCP, по IP-адресу? В явном виде такой возможности в материалах по ссылке выше не нашёл.

Нет, утилита не умеет, но можно создать “виртуальный” порт так:

и использовать утилиту под windows без обертки:
https://wirenboard.com/wiki/WB_Modbus_Devices_Firmware_Update#.D0.A3.D1.82.D0.B8.D0.BB.D0.B8.D1.82.D0.B0_wb-mcu-fw-flasher_.D0.B4.D0.BB.D1.8F_.D0.BF.D1.80.D0.BE.D1.88.D0.B8.D0.B2.D0.BA.D0.B8_.D1.83.D1.81.D1.82.D1.80.D0.BE.D0.B9.D1.81.D1.82.D0.B2
Ну либо подключить шину к ноутбуку, например через usb адапрер.
Ну или прошить сами сенсоры у нас в офисе.

@BrainRoot, здравтсвуйте.
Получилось подключиться к датчику по Modbus-RTU, после настройки COM-порта, считать значения регистров с данными о температуре и влажности.
Но в процессе попытки установки firmware с помощью утилиты wb-mcu-fw-flasher произошло следующее:

Сводка

C:\Users\Админ\Downloads\Wb-mcu-fw-flasher_1.0.3>wb-mcu-fw-flasher_1.0.3.exe -j -d COM3 -a 146 -f msw3-48mh__4.16.5_master_7a4adf5.wbfw
\.\COM3 opened successfully.
Send jump to bootloader command and wait 2 seconds…
Ok, device will jump to bootloader.
msw3-48mh__4.16.5_master_7a4adf5.wbfw opened successfully, size 23968 bytes

Sending info block…
Error while sending info block: Unknown error

Error while sending info block: Unknown error

Error while sending info block: Unknown error
Error while sending info block.
Check connection, jump to bootloader and try again.

После чего датчик перестал отвечать на запросы в его адрес по Modbus, повторная попытка записать firmware приводит к следующему:

Сводка

C:\Users\Админ\Downloads\Wb-mcu-fw-flasher_1.0.3>wb-mcu-fw-flasher_1.0.3.exe -j -d COM3 -a 146 -f msw3-48mh__4.16.5_master_7a4adf5.wbfw
\.\COM3 opened successfully.
Send jump to bootloader command and wait 2 seconds…
Error: Unknown error.
May be device already in bootloader, check status led
msw3-48mh__4.16.5_master_7a4adf5.wbfw opened successfully, size 23968 bytes

Sending info block…
Error while sending info block: Unknown error

Error while sending info block: Unknown error

Error while sending info block: Unknown error
Error while sending info block.
Check connection, jump to bootloader and try again.

Что могло произойти в процессе обновления firmware, из за чего датчик стал недоступен и есть ли возможность восстановить его работоспособность?

Не(до)прошитый. Если светодиод status с обратной стороны датчика моргает равномерно - он находится в bootloader’е
Тогда можно попробовать восстановить:
https://wirenboard.com/wiki/Restore_factory_settings#.D0.92.D0.BE.D1.81.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5_.D0.B4.D0.BE.D1.81.D1.82.D1.83.D0.BF.D0.B0_.D0.BA_.D1.83.D1.81.D1.82.D1.80.D0.BE.D0.B9.D1.81.D1.82.D0.B2.D0.B0.D0.BC
Ну и, возможно, может проще датчики к нам? прощьем (обновим) прошивку быстро.

Здравствуйте! В Windows 10 можно установить подсистему Linux Debian, и из нее использовать утилиту для прошивки: Install WSL on Windows 10 | Microsoft Docs