Mqtt производительность на переключение 15 модулей WB-MR6C

Добрый день,
Есть задача по управлению 80-100 реле. Необходимо получать состояние и посылать управляющие сигналы на все реле с интервалом 0.5-1 секунда.

Вопрос, Если мы подключим к wirenboard6 10-15 модулей WB-MR6C, то справится ли mqtt с таким потоком и требованием по скорости?
грубо говоря если нам надо будет всем 100 выходам посылать управляющий сигнал 2 раза в секунду.

Добрый день!
MQTT не будет узким местом. А вот если будет подключать на одну линию RS-485, то ограничивать будет скорость линии.
Чтобы этого избежать, можете подключить боковые модули https://wirenboard.com/ru/product/WBIO-DO-R1G-16/ - их можно подключить до 4 штук, они будут работать мгновенно.

Ресурс 1млн. переключений закончится через 25 дней.
Для такой частоты необходимо использовать SSR.

1 лайк

Боковой модуль не вариант - реле находятся удаленно.

MQTT не будет узким местом. А вот если будет подключать на одну линию RS-485, то ограничивать будет скорость линии.

А можно поподробнее по ограничению RS-485? есть какие то измеренные значения? Грубо говоря есть 10 модулей реле подключенных проводами по RS-485. на каждый выход надо подавать раз в 2 секунды управляющий сигнал. ну и считывать.
И еще вопрос - можно ли оптимизировать MQTT если слать на модуль не по каждому выходу а битную маску на все 6 реле модуля? ну и считывать также. Есть сейчас такое в вашей реализации?

Добрый день, paz!
На 115200 со всеми требуемыми шиной задержками за 1 секунду по одной шине удается передать около 1500 байт. Команды на запись регистров ставятся драйвером вне очереди.
Один запрос обходится в ~ 80 байт (https://wirenboard.com/wiki/index.php/Протокол_Modbus)
Ответ – зависит от количества возвращаемых данных.
Сейчас для достижения максимальной скорости читать состояния надо реже, по одному регистру, через разные промежутки времени (https://wirenboard.com/wiki/index.php/RS-485:Configuration_via_Web_Interface)
В реализации чтения/записи входов выходов по битовой маске пока нет.