Комбинированный датчик 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? Или как-то иначе?
Спасибо! Понятно. Скажите, пожалуйста, серийники модулей с неработающими датчиками.
И еще попрошу прислать вывод после выполнения этих команд (адрес, скорость порт подставьте для вашего контроллера и модуля):
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
Судя по запросам, всё работает ![]()
Датчик использую в стороннем modbus контроллере, буду там копать значит. Спасибо!
Подключаться можно с аргументом стоповых битов 1, верно? а то я меняю с 2 на 1, все проходит успешно, но в регистре 2 остаётся :), при этом подключается -s1
Спасибо за диагностику! Не очень понимаю, почему изначально вы видели в 83 регистре 1, а не 4. Но да, судя по тому, что выдает modbus_client, модуль исправен, и тип датчика NS8, что соответствует вашей фотке.
На стоп-биты, как отметил коллега, можно не обращать внимания, они игнорируются. 2 стопбита – это просто чуть дольше молчащая линия в конце передачи. В последних прошивках настройка стопбита в регистре 112 игнорируется.
С тем ПЛК к которому я подключил датчик, необходимо было сдвинуть все регистры на +1 от регистров которые указаны в карте регистров датчика.
Получается в 83 регистре я видел 1, но ПЛК мне показывал регистр 82 (наличие датчика) и я видел 1, соответственно он (датчик) там есть.
Такие вот нюансы ![]()
Понятно! Отголоски исторического обозначения регистров!
