WB-MSW v4

Комбинированный датчик WB-MSW v4
Состав датчика
Температура
Влажность
Звук
СО2
Судя по регистру: 83 0x0053 Input RO u16 Тип установленного датчика CO2: 1 - CM1106
Судя по регистру: 3 0x0003 Coil RW bool Включение датчика CO2 (1-вкл, 0-выкл): 0 - выключен, ввожу 1 что бы включить, включается на несколько секунд и выключается сразу.
Как мне его включить, что бы он работал?
Только из коробки открыл его.

Добрый день!
А вы можете сфотографировать модуль со снятой крышкой? У меня первое подозрение – это либо отсутствие датчика, либо плохой контакт.
А “включается на несколько секунд и выключается сразу” – вы что откуда считываете, чтобы понять, что датчик включился? Это значение 1 считывается из регистра 3 несколько секунд, а потом становится 0? Или как-то иначе?


Купили 7 разных датчиков, во всех есть СО2. Пока что проверил 2 из них, все показания вижу, кроме СО2.
Регистр показания датчика СО2, ничего не показывает.
Регистр датчика включения, считывает цифру 0. Посылаю в этот регистр 1, он на секунду меняется на 1 и потом обратно возвращается на 0.

Спасибо! Понятно. Скажите, пожалуйста, серийники модулей с неработающими датчиками.

И еще попрошу прислать вывод после выполнения этих команд (адрес, скорость порт подставьте для вашего контроллера и модуля):

export MODBUS_ADDR=17
export BUS_SPEED=115200
export PORT=/dev/ttyRS485-1

modbus_client -mrtu -b$BUS_SPEED -pnone -s2 -a$MODBUS_ADDR -t0x01 -r3 $PORT
modbus_client -mrtu -b$BUS_SPEED -pnone -s2 -a$MODBUS_ADDR -t0x04 -r8 -c1 $PORT
modbus_client -mrtu -b$BUS_SPEED -pnone -s2 -a$MODBUS_ADDR -t0x04 -r82 -c2 $PORT
modbus_client -mrtu -b$BUS_SPEED -pnone -s2 -a$MODBUS_ADDR -t0x04 -r372 -c1 $PORT
modbus_client -mrtu -b$BUS_SPEED -pnone -s2 -a$MODBUS_ADDR -t0x04 -r358 -c1 $PORT
modbus_client -mrtu -b$BUS_SPEED -pnone -s2 -a$MODBUS_ADDR -t0x04 -r320 -c1 $PORT
modbus_client -mrtu -b$BUS_SPEED -pnone -s2 -a$MODBUS_ADDR -t0x04 -r348 -c16 $PORT

C:>modbus_client -mrtu -b38400 -pnone -s2 COM4 -a109 -t0x01 -r3
SUCCESS: read 1 of elements:
Data: 0x01

C:>modbus_client -mrtu -b38400 -pnone -s1 COM4 -a109 -t0x04 -r8 -c1
SUCCESS: read 1 of elements:
Data: 0x03e9

C:>modbus_client -mrtu -b38400 -pnone -s1 COM4 -a109 -t0x04 -r82 -c2
SUCCESS: read 2 of elements:
Data: 0x0001 0x0004

C:>modbus_client -mrtu -b38400 -pnone -s1 COM4 -a109 -t0x04 -r372 -c1
SUCCESS: read 1 of elements:
Data: 0x0001

C:>modbus_client -mrtu -b38400 -pnone -s1 COM4 -a109 -t0x04 -r358 -c1
SUCCESS: read 1 of elements:
Data: 0x0000

C:>modbus_client -mrtu -b38400 -pnone -s1 COM4 -a109 -t0x04 -r320 -c1
SUCCESS: read 1 of elements:
Data: 0x0004

C:>modbus_client -mrtu -b38400 -pnone -s1 COM4 -a109 -t0x04 -r348 -c16
SUCCESS: read 16 of elements:
Data: 0x004d 0x0046 0x0031 0x002e 0x0030 0x0033 0x0044 0x0000 0x0000 0x0000 0x0000 0xffff 0xffff 0xffff 0xffff 0xffff

Судя по запросам, всё работает :slight_smile:
Датчик использую в стороннем modbus контроллере, буду там копать значит. Спасибо!

Подключаться можно с аргументом стоповых битов 1, верно? а то я меняю с 2 на 1, все проходит успешно, но в регистре 2 остаётся :), при этом подключается -s1

https://wiki.wirenboard.com/wiki/Modbus#Игнорирование_стопбитов

Спасибо за диагностику! Не очень понимаю, почему изначально вы видели в 83 регистре 1, а не 4. Но да, судя по тому, что выдает modbus_client, модуль исправен, и тип датчика NS8, что соответствует вашей фотке.

На стоп-биты, как отметил коллега, можно не обращать внимания, они игнорируются. 2 стопбита – это просто чуть дольше молчащая линия в конце передачи. В последних прошивках настройка стопбита в регистре 112 игнорируется.

С тем ПЛК к которому я подключил датчик, необходимо было сдвинуть все регистры на +1 от регистров которые указаны в карте регистров датчика.
Получается в 83 регистре я видел 1, но ПЛК мне показывал регистр 82 (наличие датчика) и я видел 1, соответственно он (датчик) там есть.
Такие вот нюансы :slight_smile:

Понятно! Отголоски исторического обозначения регистров!