Очень познавательный получился тред!
Хотелось бы узнать, какие решения привели к снижению задержки передачи команд с 5 сек до приемлемых значений?
Я не уверен решил ли свои проблемы автор, но можно и не получать задержек в 5 секунд, если:
- Использовать нормальный, а не абы какой кабель. Не забыть про терминальные резисторы, если нужны(а не нужны они в крайне редких случаях).
- Поставить нормальную, а не самую низкую скорость.
- Использовать разумный обмен данными, т.е. не пытаться одним запросом узнать состояние одного бита.
При выполнении этих трёх простых пунктов задержек в 5 секунд не будет.
Так я о том же, просто “ жаль что мы так и не услышали начальника транспортного цеха"
Добрый день!
Давайте только по тезисам:
Здесь согласен. Замечу, что и про КИС, и про терминаторы написано в нашей документации.
Здесь не согласен. С КСПЭВГ проблем ни разу не возникало у нас, и ни одной жалобы клиентов мы не слышали. Если вам известны случаи проблем в инсталляциях с КСПЭВГ - напишите, мы посмотрим внимательно, и возможно, действительно изменим рекомендации.
Согласен, но отмечу, что я это же писал в первом своём сообщении.
Утверждение формально верное, но как совет не подходит - потому что Wiren Board в любом случае так не делает.
Мне очень неприятно, что вы уверенно утверждаете о наличии проблем в Wiren Board, основываясь лишь на одной инсталляции с непонятной конфигурацией. Так как вопрос задержки при опросе всплывал на форуме несколько раз, напишу прямо здесь пару вероятных причин именно для экстремально длинных (секунду) задержек:
- включен опрос устройства, которого на самом деле нет на линии (тогда контроллеру приходится дожидаться таймаута для перехода к следующему),
- на той же линии висит устройство с большим количеством регистров, из-за которого сильно удлиняется цикл опроса.
Любая из эти двух причин может привести к существенным задержкам при низкой скорости опроса. При этом ни одна из них не является “проблемой реализации” Wiren Board.
Поэтому если у вас есть какие-то более твёрдые основания так считать, приведите их, пожалуйста.
Погодите, кажется мы говорим на разных языках. Я говорю что невозможность работать на максимальных скоростях это проблема. Вы говорите что “проблем не возникало”, то есть в вашей терминологии “хоть какая-то работа означает отсутствие проблем”.
Позвольте я Вас поправлю. Я это пишу вовсе не потому, что “одна инсталляция с непонятной конфигурацией”, а потому что я видел следующий диалог:
То есть был прямой ответ что “цикл опроса в 5 секунд это нормально” и первым же советом было “используйте ethernet”. Но сейчас Вы уже изменили свою позицию с “нормально. Шина медленная прост” на “это экстремально длинная задержка”. Не надо так
Но всё-таки ответьте, пожалуйста:
Я же уже сказал, что у нас с вами абсолютно разное понимание слова “проблема”. Для меня невозможность системы работать на максимальной скорости это проблема, для вас, похоже, абы какая работа это уже нормально и не проблема вовсе. Ещё раз повторюсь что “абы как”, особенно в условиях домашних инсталляций, RS-485 будет работать и по ВВГнг, поэтому “нет никакой необходимости покупать дорогой и недоступный КСПЭВГ”.
Давайте я покажу на другом примере то, о чём я говорю. Открываем официальную вики, на которой можно писать только с аппрува админами, да и сама статья написана из под учётки “админ” и видим следующее (чёрными прямоугольниками закрашено для того, чтобы было сложнее найти ):
Для тех, кто с Линуксом очень на “ты” ключ --force-all это установка пакета, игнорируя все возможные проблемы в том числе с зависимостями. При сломанных зависимостях штатные механизмы обновления и установки программ отрубаются и настойчиво предлагают сделать “fix broken install”(то есть в данном случае снести пакет, который установлен на скриншоте).
Стоит ли говорить что убитые зависимости потом не чинятся хотя бы ручной правкой установленных пакетов? Какое это имеет отношение к кабелю? К кабелю никакого, но к подходу самое прямое: система с убитыми зависимостями и невозможностью установки/обновления пакетов великолепно демонстрирует подход “хоть как-то работает - уже не проблема”
У нас с вами разный подход и разные стандарты. Нам не понять друг друга.
За сим предлагаю закончить этот бессмысленный разговор. Ведь право, шурупы тоже можно заколачивать и даже не молотком, а микроскопом.
Я проблему не решил, до окончания отопительного сезона экспериментировать со скоростями не буду, тк на wb реализованы пид регуляторы для управления температурой отопления.
Кабель уже в штробах, а штробы заштукатурены.
На новогодних праздниках попробую поставить резистор, может быть получится вывести проблемные устройства на вторую шину 485.
Спасибо всем за подсказки!
Хочется все таки выяснить до покупки.
Вот хочу купить Wiren Board 6 + WBIO-DI-WD-14 + Модуль реле 6-канальный WB-MR6 для управления светом.
То есть у меня что, будет эффект - кода выключатель замкнет контакт на WBIO-DI-WD-14, контроллер отработает логику (как я понял до контроллера все быстро дойдет и он быстро отработает), а реально физически контакт реле на WB-MR6 сработает только через 5 секунд ???
нет, у вас не будет такого эффекта, реле переключится мгновенно.
ок, спасибо,
можно все таки чтобы вы описали, какая там у человека потенциально проблема.
Я не хотел бы купить оборудование а после наткнуться на подобные грабли.
Тут выше тред на кучу страниц. с непонятным результатом, который меня как потенциального покупателя смущает.
Резюме по треду выше:
- Команды на смену состояния выходов (например, переключение реле) уходят с контроллера и приходят на модули RS-485 мгновенно (миллисекунды).
- Если вы используете модуль входов с интерфейсом RS-485 Modbus RTU, то чтобы контроллер узнал об изменении состояния входа, в худшем случае пройдёт цикл опроса - опрос всех регистров всех устройств. С настройками по умолчанию и несколькими устройствами на шине такой цикл может занять несколько секунд. Чтобы уменьшить это время, нужно:
- увеличить скорость устройств до 115200,
- в настройках wb-mqtt-serial в веб-интерфейсе уменьшить задержки,
- отключить опрос ненужных регистров.
+Перевести часть устройств на другие порты?
Порты можно добавить через WB-MGE? Время отклика уменьшиться?
Да.
Да.
Но это советы для больших инсталляций. Для маленьких (3-4 устройства) можно вещать всё на одну шину и добиться хорошего времени только правильной настройкой.
Всем привет!
Ситуацию с временем отклика исправил - посадил WB-MIO-E на отдельную шину RS485 и поднял скорость работы на 115200.
Вот хорошая статья, рекомендую к прочтению.
https://sprut.ai/client/article/2388
Но это советы для больших инсталляций. Для маленьких (3-4 устройства) можно вещать всё на одну шину и добиться хорошего времени только правильной настройкой.
Пока у меня не было возможности протестировать WB с большим количеством устройств, но судя по сообщениям на портале, существует проблема в работе с большим количеством устройств и временем и их срабатывания. Для управления светом это очень критично. Поэтому хочется понимания реальных возможностей системы, чтобы можно было заранее проектировать такую систему для заказчиков, которая будет работать. И хочется понимать какие модули нужно для этого использовать.
Вы могли бы подробнее описать схему работы через модули WB-MGE для больших инсталляций? Если планируется достаточно много выключателей света (20) и групп света (приблизительно 35-40). И для более крупных объектов, например управления светом в ресторане?
Добрый день!
Чтобы всё работало быстро, нужно учесть несколько вещей. В частности, выбрать тип модулей входов-выходов.
Первый вариант. Боковые модули.
Работают мгновенно. То есть если вы заведёте 20 выключателей на два Модуль ввода-вывода WBIO-DI-WD-14 , то состояние выключателей будет приходить в контроллер мгновенно.
Если вы подключите нагрузку через боковые релейные модули https://wirenboard.com/ru/catalog/wb-extensions/, то переключаться они тоже будут мгновенно по сигналу с контроллера.
Но обычно это не лучший вариант по двум причинам:
- В боковых модулях установлены слабые реле - ими можно переключать контакторы, но нельзя коммутировать светодиодное освещение из-за больших пусковых токов светильников.
- Если вы используете боковые модули, вы лишаетесь прямой связи между входом (выключателем) и выходом (светильником). Связь между ними будет обеспечена только вашим скриптом на контроллере. Если со скриптом что-то пойдёт не так, или контроллер зависнет, вы не сможете переключить свет.
Второй вариант. Модули по Modbus.
Это, например, Модуль реле 6-канальный WB-MR6 .
Из плюсов:
- Умеют коммутировать мощную нагрузку. Выдерживают большие пусковые токи - можно управлять светодиодными светильниками.
- Прямо на модуле есть собственный вход для выключателя, которым можно напрямую управлять соответствующим ему выходом. То есть неважно, есть ли вообще контроллер, включен ли он - можно выключателем, подключенным к модулю WB-MR6, управлять выходом WB-MR6.
- Могут находиться не только рядом (и в одном ряду) с Wiren Board.
Недостатки:
при неправильной настройке опроса по Modbus, данные со входов модулей могут приходить в контроллер с задержкой. То есть вы нажали выключатель, модуль узнал про это мгновенно, а контроллер с задержкой пол-секунды, секунду или больше. При этом команды с контроллера (“включи группу 5”) отправляются всё равно мгновенно.
Что нужно сделать, чтобы не было задержек:
- Исключить из опроса устройства, которых физически нет на линии.
Иногда после начальной/тестовой настройки в настройках контроллера остаются устройства, которые физически уже убрали с линии RS-485. Каждое обращение к такому устройству вызывает огромную задержку - контроллер пытается дождаться ответа, с остальными устройствами на линии в это время нельзя общаться. - Разнести устройства по нескольким линиям RS-485. Условно, если у вас 40 групп освещения, это 8 шестиканальных модулей реле. Лучше подключить их по 4 штуки к каждому порту RS-485. Если есть другие устройства (например, датчики, счётчики - где скорость реакции не важна), их лучше убрать на отдельную шину RS-485. В Wiren Board 6 есть два порта RS-485 из коробки, и ещё два можно добавить внутренними модулями.
Хорошо, понятно. Каждый порт RS-485 это отдельная линия? Скажите, какой функционал у модулей WB-MGE? Что даёт их применение? И каждый модуль MGE это отдельная линия RS-485 или они будут относится к какой-то из существующих?
https://wirenboard.com/wiki/RS-485:Физическое_подключение
https://wirenboard.com/ru/product/WB-MGE/
В чём именно вопрос?
Если мы подключаем WB-MGE к контроллеру через Ethernet (Modbus TCP), а дальше к MGE другие устройства по RS-485, то это будет отдельная линия RS-485 или это будет относится к какой-либо из существующих линий RS-485? Если применить несколько модулей MGE ускорит ли это связь с устройствами?