Коллеги, нужен взгляд живых людей на задачу. Программированием WB никогда не занимался. Предварительно проконсультировался с ИИ‑ботом (WirenBoard), но хочу перепроверить его предложения на форуме - не упущено ли чего-то важного.
Что мне нужно:
На объекте автоматизации на электросчетчиках завязан ответственный алгоритм экстренной разгрузки системы.
- 10 счётчиков Меркурий 234 ARTX2-03 (D)PBR, интерфейс СПОДЭС (RS‑485).
- Постоянный режим (высокий приоритет): опрос текущих значений мощности и ошибок по качеству электроэнергии, отправка этих данных по Modbus TCP в другой контроллер управления.
- Периодический режим (раз в сутки, низкий приоритет): выгрузка архивов и аварий по качеству электроэнергии - отправка по MQTT или Modbus TCP в СКАДУ.
- Архивный опрос не должен тормозить выдачу текущих значений.
- Желательно разнести 10 счётчиков на два независимых шлейфа RS‑485 для параллельного опроса (на WB 8.5 два порта есть).
Что предложил бот (основные тезисы):
- Разделить логически на три канала:
- высокоприоритетный опрос текущих значений - публикация в MQTT и/или в витрину Modbus TCP;
- отдельный Modbus TCP slave на WB, откуда другой контроллер читает последние актуальные значения;
- медленный отдельный процесс для архивов/аварий с большим интервалом, который не блокирует основной цикл.
- RS‑485 физически одна, поэтому одновременный опрос по ней невозможен, но можно чередовать циклы и запускать архивы реже, в «свободное окно».
- Использовать два порта RS‑485 на WB 8.5, разнеся счётчики по 5 шт. на порт — это ускорит опрос, если процессы независимы.
- Для гарантии, что архивный опрос не помешает оперативному, можно ввести внешнюю команду по TCP/MQTT, которая откладывает/останавливает медленный опрос на время действия приоритетного режима.
- MQTT — не гарантирует доставки «без потерь», но для текущих данных обычно достаточно (QoS, retained). Для архивов лучше дополнительно хранить локально.
Вопросы к форуму:
Сработает ли такая схема в реальности, как описывает бот? И если да, то насколько глубоких знаний программирования она требует?
- Реальная возможность разделить опрос текущих и архивов на одной физической шине RS‑485 без заметных задержек для текущих данных?
- Надёжность MQTT для передачи архивов счётчиков (без потерь)?
- Можно ли на WB 8.5 (или конкретной модели) получить два действительно параллельно работающих порта RS‑485, чтобы опрашивать две пятёрки счётчиков одновременно?
Буду благодарен за любые замечания - особенно от тех, кто уже опрашивал Меркурий 234 по СПОДЭС на Wiren Board.