RS485 работает только на скорости 9600

Добрый вечер! Эксплуатирую WB 6.7.2 (FW wb-2207 stable). К тушке подключены WBIO-DO-R10R-4, WBIO-AI-DV-12. На шине WB-MR6C (FW 1.18.5) + WB-MR6C (FW 1.18.5) + WB-MDM3 (FW 2.5.3) + WB-MRGBW-D (FW 3.0.4) +WB-MR6C (FW 1.18.5) еще два датчика WB-MSW 3 (FW 4.22.0).
Проблема заключается в том, что устройства на шине работают только на скорости 9600. Подключение сделано последовательно, изначально витой парой. Пробовал ставить на концы шины резисторы 120 Ом, пробовал менять кабель на специальный экранированный, итог один - работает только на скорости 9600. Подключал модули по одному и все вместе, без результата. Даже разнес на разные шины датчики и реле, без толку. Есть баг, когда релюхи на модуле WB-MR6C начинают самопроизвольно включаться и выключаться в серии примерно раз 15-20 потом входят в статический режим. Плюс бывают задержки в срабатывании реле от датчиков, работает быстро, потом через какое-то время, задержка включения 5-10 секунд. Грешу на работу шины. Да, еще на контроллере установлен NODE RED и Zigbee 1.8. Подскажите куда копать, а то не могу двигаться дальше по расширению системы?

log_20221030T083212.log (140.4 КБ)
wb-mqtt-serial_20221030T083454.log (76.7 КБ)

Добрый день.
Судя по:

2022-10-29T22:53:56.606Z [wb-mqtt-serial] WARNING: [modbus] failed to read 1 coil(s) @ 3 of device modbus:39: Serial protocol error: malformed response: invalid data size
2022-10-29T22:53:14.319Z [wb-mqtt-serial] WARNING: [modbus] failed to read 1 holding(s) @ 2000 of device modbus:63: Serial protocol error: malformed response: invalid crc
2022-10-29T22:52:41.037Z [wb-mqtt-serial] WARNING: [modbus] failed to read 1 holding(s) @ 1 of device modbus:99: Serial protocol error: malformed response: invalid crc
2022-10-29T22:52:02.642Z [wb-mqtt-serial] WARNING: [modbus] failed to read 3 discrete(s) @ 0 of device modbus:63: Serial protocol error: malformed response: invalid data size
2022-10-29T22:51:59.801Z [wb-mqtt-serial] WARNING: [modbus] failed to read 1 holding(s) @ 2002 of device modbus:63: Serial protocol error: malformed response: invalid crc
2022-10-29T22:51:00.619Z [wb-mqtt-serial] WARNING: [modbus] failed to read 1 coil(s) @ 3 of device modbus:39: Serial protocol error: malformed response: invalid data size
2022-10-29T22:50:58.114Z [wb-mqtt-serial] WARNING: [modbus] failed to read 1 coil(s) @ 2 of device modbus:63: Serial protocol error: malformed response: invalid data size
2022-10-29T22:50:36.213Z [wb-mqtt-serial] WARNING: [modbus] failed to read 1 coil(s) @ 3 of device modbus:39: Serial protocol error: malformed response: invalid crc
2022-10-29T22:50:10.923Z [wb-mqtt-serial] WARNING: [modbus] failed to read 3 discrete(s) @ 0 of device modbus:63: Serial protocol error: malformed response: invalid crc
2022-10-29T22:44:55.884Z [wb-mqtt-serial] WARNING: [modbus] failed to read 16 input(s) @ 250 of device modbus:14: Serial protocol error: request timed out
2022-10-29T22:44:55.752Z [wb-mqtt-serial] WARNING: [modbus] failed to read 1 holding(s) @ 2 of device modbus:99: Serial protocol error: request timed out

проблемы все же с шиной. Покажите как именно подключены устройства (фото).

От чего питается реле, как подключено к блоку питания?


Подключено последовательное от контроллера к модулю и далее друг за другом. На разъеме контроллера и крайнего модуля ставил резисторы 120 Ом - не помогло. Пробовал подключить один модуль и поиграть со скоростями, работает только на 9600.
Реле получает питание с шины контроллера. Но пробовал и на прямую с БП питание прокидывать.

Использую Ваш БП.

Я верно понимаю что для шины RS-485 используете целикома ПАРЫ?
А - зачем так? То есть для чего вот именно такое подключение?

Да, 4 пары на 4 канала шины. Я пробовал и по одной жиле, а также специальным кабелем четырех-жильным экранированным.


Сейчас на концах стоят резисторы


Прошу прощения за творческий беспорядок, не могу сделать нормальную коммутацию пока не разберусь с проблемой. Смущает тот, факт, что контроллеры используются в коммерческих проектах и по идее должны работать, как часы. А я такой отказоустойчивости добиться не могу, домашние уже весь плешь проели, не довольны… У меня в перспективе строительство дома, хотел сразу строить коммуникации под Ваше оборудование, но как-то смущает работа моего контроллера, если это норма, тогда наверное придется вернуться к аналоговому варианту.

Итак, для теста - подключите одно устройство на шину, именно используя одну пару для линий A и B.
Измените скорость на устройстве, затем, убедившись что оно работает на новой скорости - для порта.

log_20221031T223753.log (11.5 КБ)



Отлично. А зачем на контроллере еще один резистор? Ну и - скорость на устройстве изменена? На новой скорости регистры читаются?




Не работает.
log_20221101T123409.log (578.9 КБ)
отключил RS-485-1, тестовое устройство висит на RS-485-2. наличие и отсутсвие резисторов на результат никак не влияют.

Покажите команду, которой меняете скорость не порта контроллера а в скорость в модуле.

Не понял о какой команде идет речь, скорость модуля менял в веб интерфейсе - первое фото в последнем топике. Или как-то по другому надо?

По хорошему - надо сначала поменять скороть в устройстве (устройствах), записав туда новую скорость. Потом, убедившись что записалась - менять у порта.
Одновременно делать две операции - результата не будет.
Но лучше всего именно в устройство записать с помощью Утилита «modbus_client» — Wiren Board

Да ладно!!! Спасибо за терпение! Не мог даже предположить, что последовательность действий имеет значение. Все заработало, даже через веб интерфейс. Видимо все об этом знают, все кроме меня((((

1 Like

Эта тема была автоматически закрыта через 7 дней после последнего ответа. В ней больше нельзя отвечать.