Добрый день!
Возникают проблемы с работой датчиков wb-msw3.
3 датчика подключены последовательно экранированной витой парой (суммарно не более 30 метров) на второй канал rs485.
В логе messages постоянно возникают ошибки чтения/записи отдельных регистров.
Nov 21 12:31:38 wirenboard-AB3RVWYB user.notice serial: ModbusRTU::ReadRegisterR ange(): failed to read 1 holding(s) @ 8 of device modbus:102: Serial protocol er ror: request timed out
Nov 21 12:31:39 wirenboard-AB3RVWYB user.notice serial: ModbusRTU::ReadRegisterR ange(): failed to read 1 coil(s) @ 0 of device modbus:102: Serial protocol error : request timed out
Nov 21 12:31:39 wirenboard-AB3RVWYB user.notice serial: ModbusRTU::ReadRegisterR ange(): failed to read 7 coil(s) @ 5100 of device modbus:102: Serial protocol er ror: request timed out
Много раз тестировал, отключал/подключал/снимал датчики с шины безрезультатно.
Периодические единичиные пропадания значений температуры, влажности и тд некритичны.
Основная проблема с ик сигналами, он их воспроизводит с каналов ROM (1 раз из 10) , а например из RAM почти всегда.
Долго грешил на проблему с шиной, но тут попробовал подключить их через modbus из spruthub и о чудо, там датчики прекрасно работают (возможно тоже есть ошибки чтения регистров но я не знаю как их там смотреть)
Как точно удостовериться что проблема с шиной а не программная?
Почему в альтернативном ПО (другой драйвер) работы с шиной все работает хорошо?
Попробуйте пожалуйста записать сигнал в RAM, проверить, что он воспроизводится, затем записать его в ROM. Или просто заново записать сигнал в ROM с пульта.
Возможно в ROM при обучении сигнал записался неправильно
Ещё нужны подробности про то, как вы понимаете, что
ИК-передатчик не светится? Оборудование не реагирует? Какое это оборудование?
В rom несколько раз перезаписывал, все равно есть проблема.
То есть методика мне понятна.
Не нашел команды как из регистра командой в модбас клиент показать содержимое ram и rom, чтобы точно понимать что записанное идентично между собой.
Сегодня поэкспериментировал, когда проблемы с шиной перестали появляться (как раз исправлено это судя по чейнджлогу в последней прошивке). Если быстро нажать два раза play rom, то хорошо срабатывает.
Причем rom1, 2 и тд не меняет ситуации.
Приемник ИК никак не реагирует (морганием) на сигнал. На двухкратное нажатие play rom реагирует морганием и включается/выключается.
Оборудование - телевизор samsung. Просто on/off.
Проверил, аналогичное поведение - при остановленном wb-mqtt-serial командой
root@wirenboard-AB3RVWYB:~# modbus_client --debug -mrtu -b115200 -s2 -pnone /dev/ttyRS485-2 -a59 -t5 -r5100 1
Data to write: 0x1
Opening /dev/ttyRS485-2 at 115200 bauds (N, 8, 2)
[3B][05][13][EC][FF][00][4C][11]
Waiting for a confirmation…
<3B><05><13><00><4C><11>
SUCCESS: written 1 elements!
Включает и выключает великолепно.
При запущенном wb-mwtt-serial только со второго раза, но с очень маленьким промежутком между нажатием на кнопку play rom, буквально как папку открыть. Если пауза больше, то ничего не происходит.
Поэтому присоединяюсь к той теме, но там нет ни одного ответа.
Они не разделены. В регистрах хранится содержимое ROM банка ( копируется туда при отображении) или RAM.
В нормальном состоянии, когда ни один банк не отображен в регистра RAM - по этим адресам досупно то, что хранится в RAM банке (если что-то есть). Если “отображаем” - то в RAM копируется содержимое ROM, содержимое одного банка и становится доступно для чтения/редактирования. По окончанию отображения - по записи “0” в 5200+i - RAM записывается в соответствующий банк ROM. Но из RAM не удаляется, остается.