Использование MASC ВПЛК с контроллером Wiren Board

From Wiren Board
This is the approved revision of this page, as well as being the most recent.
Лого MASC


Назначение

MaxAutomation Studio

MASC (Maximum Automation Soft Controller) — софтовый программируемый логический контроллер от ООО "Maximum Automation". Платформа позволяет исполнять пользовательские программы на языке ST стандарта МЭК 61131-3 на edge-узле, обмениваться данными с локальными устройствами и публиковать переменные наружу по OPC UA.

MASC состоит из четырёх компонентов:

  • ВПЛК (vplc) — исполнитель пользовательских программ;
  • ВПЛК Studio — IDE для разработки на ST под Windows;
  • ВПЛК Server (vplc-server) — публикация данных по OPC UA;
  • ВПЛК Cloud Hub — облачный шлюз для удалённого доступа.

Благодаря поддержке MQTT можно настроить интеграцию MASC с линейкой контроллеров Wiren Board разными способами:

  • установка пакетов vplc и vplc-server непосредственно на контроллер Wiren Board и обмен с локальными устройствами через MQTT.
  • публикация данных ВПЛК наружу по OPC UA через vplc-server для подключения внешних SCADA-систем.

MASC, помимо MQTT, поддерживает другие способы коммуникации, которые можно комбинировать в зависимости от задачи: OPC UA, Modbus TCP, Modbus RTU.

Работа MASC на контроллере Wiren Board

Установка

Установочные пакеты MASC по умолчанию не идут в комплекте с контроллером Wiren Board. Дистрибутивы и установочные скрипты доступны на официальной странице вендора.

Установка ВПЛК:

curl -fsSL https://updates.max-automation.ru/linux-cli/vplc/install.sh | sh

При необходимости публикации переменных ВПЛК наружу по OPC UA на контроллер аналогичным способом ставится отдельный пакет ВПЛК Server. Команды установки и настройки приведены в официальном руководстве пользователя MASC.

ВПЛК Studio устанавливается на Windows-машину разработчика из инсталлятора vplc-studio-setup.exe. На контроллер Studio не ставится — это GUI-приложение и для headless-Linux не предназначено.

Удаление

Для удаления ВПЛК выполните команду:

sudo dpkg -P vplc

Управление сервисом vplc

После установки в контроллере создаётся и запускается сервис vplc.service, работающий параллельно с основными сервисами Wiren Board.

Основные команды для управления сервисом ВПЛК:

  • Список всех команд и параметров CLI: vplc help
  • Текущий статус ВПЛК и выполняемой программы: vplc status
  • Текущая конфигурация (порт подключения Studio, настройки облачного хаба и т.п.): vplc config

Подключение Studio к контроллеру

Для загрузки ST-проекта на контроллер:

  1. Узнать IP контроллера
  2. Запустить ВПЛК Studio на Windows-машине
  3. В диалоге подключения указать <IP контроллера>:1234
  4. Открыть проект и выполнить сборку и загрузку

Пример работы через MQTT

В составе MASC демо-проект для Wiren Board не поставляется. Далее описано минимальное создание коммуникации MQTT в Studio для обмена с каналами Wiren Board через локальный брокер mosquitto.

Внимание! При неверной настройке MQTT-привязок логика проекта может работать некорректно. В таком случае рекомендуется проверить топики, направления PUB/SUB и типы переменных.

Создание тестового виртуального устройства Wiren Board

Для обмена тестовыми значениями удобно завести отдельное виртуальное устройство wb-rules прямо из веб-интерфейса контроллера:

  1. Открыть веб-интерфейс контроллера и перейти в раздел НастройкиПравила
  2. Создать новое правило с именем vplc-test-vd.js и вставить следующий код:
defineVirtualDevice("vplc-test-vd", {
  title: "MASC Integration Test",
  cells: {
    Switch: {
      type: "switch",
      value: false,
    },
    Setpoint: {
      type: "range",
      value: 0,
      min: 0,
      max: 100,
    },
  },
});
  1. Сохранить правило — wb-rules перечитает его автоматически.
  2. Убедиться, что устройство vplc-test-vd появилось в списке устройств веб-интерфейса.

Создание коммуникации MQTT в Studio

  1. Открыть проект в ВПЛК Studio и перейти на вкладку MQTT
  2. Снять блокировку редактирования и добавить нового брокера
  3. Заполнить параметры для локальной работы:
    • IP-адрес
    • Порт: 1883
  4. Сохранить настройки

Чтение значения канала Wiren Board

  1. В привязках MQTT добавить переменную setpoint_from_wb:
    • Тип: REAL
    • Топик: /devices/vplc-test-vd/controls/Setpoint
    • Направление: SUBSCRIBE
  2. Загрузить программу на контроллер и запустить
  3. Менять значение Setpoint1 в веб-интерфейсе — переменная в Studio будет обновляться в мониторинге

Запись в канал Wiren Board

  1. Добавить переменную switch_from_wb:
    • Тип: BOOL
    • Топик: /devices/vplc-test-vd/controls/Switch/on
    • Направление: PUBLISH
  2. Во вкладке "Программа" в основном цикле нужно создать задачу и добавить скрипт переключения, например:
    MQTT1.switch_from_wb := MQTT1.setpoint_from_wb > 50.0;
  3. Загрузить и запустить программу — Switch будет переключаться по логике порога

Запись в виртуальные каналы wb-rules выполняется в командный топик /on. Запись в state-топик для управления не используется — wb-rules не примет команду.

Техническая поддержка

Вопросы по использованию MASC на Wiren Board можно задать через официальные каналы вендора: e-mail maximumautomation@yandex.ru.

Полезные ссылки

Сайт разработчика MASC.

Страница загрузки ВПЛК и ВПЛК Studio.

Руководство пользователя MASC.


Поддерживаемые контроллером Wiren Board системы верхнего уровня, приложения, способы программирования, протоколы и устройства
Протоколы
Опрос датчиков и работа с устройствами (в базовой комплектации) 1-WireDLMS/COSEM Modbus RTU/TCP Master ГОСТ МЭК 61107 СПОДЭС (ГОСТ Р 58940-2020)
Опрос датчиков и работа с устройствами (с помощью модулей расширения) KNXeBUSOpenThermZ-WaveZigbee
Опрос контроллера из систем верхнего уровня и с других устройств KNX Modbus RTU/TCP SlaveMQTTOPC UASNMPZabbix МЭК 104SmartWeb (Гидролого)
Через шлюзы DALILoRaWAN
Системы верхнего уровня
Системы мониторинга и SCADA GrafanaHome Assistant IntraHouse IntraSCADASprut.hubMasterSCADANagiosSimpLight SCADARapid SCADASAYMONZabbix iRidium ServerAggreGate ТМИУС КПМажордом SCADA WebDisCo SCADA FUXA
Приложения
Управление с телефона MQTT DashiRidiumHome Assistant Apple HomeДом с АлисойСалют! Умный домМажордом
Голосовые помощники Siri Салют Алиса
Способы программирования
Визуальное программирование Node-RED
Упрощённый текстовый движок правил wb-rules
Сценарии автоматизации без программирования wb-scenarios
Стандартное программирование Python C++ Go Node.js
Языки программирования ПЛК
FBD, ST, LD, SFC (МЭК 61131-3) MasterPLCISaGRAFCODESYS Maximum Automation Soft ControllerKLogic
Протестированные устройства сторонних производителей
Адаптеры протоколов ECODim DALI GW2 Arlight DALI-LOGIC-LITE-PS-x1Lavritech L1 Lite LoRaWAN Шлюз БРШС-РК-485 (РИЭЛТА)
Аудиоресиверы сетевые URRI A1Skirell-Sound
Датчики климата DS18B20 и клоныKvadro 1WIRE-RS485Wellpro WP3066ADAMДаджет MT8057/MT8057SРД MSU21РД MSU24РД MSU34+TLPРД MSU34+THLPЭксис ИВТМ-7 М 3
Датчики присутствия MTDХ62-MB (MTD062-MB, MTD262-MB)
Датчики уровня ЭСКОРТ ДБ-2
Универсальные датчики TESLiOT (BLE)
Диммеры DALI Philio PAD07-RU Uniel UCH-M131RC/0808 Uniel UCH-M141RC/0808 РД DDL04R РД DDL24 РД DDM845R Demid.Net
Домофоны Домофоны координатного типа: VIZIT (ВИЗИТ), Элтис, Цифрал, Техком, Метаком, Beward и др.
Источники питания и ИБП MEAN WELL DRS Series
Кондиционеры

Haier YCJ-A002 Z-Wave ИК-передатчик PAR01-RU • Hisense (ONOKOM-AIR-HS-3-MB-B, ONOKOM-AIR-HS-5-MB-B, ONOKOM-AIR-HS-6-MB-B) • Daikin (ONOKOM-AIR-DK-1-MB-B, ONOKOM-AIR-DK-5-MB-B) • Mitsubishi Electric (ONOKOM-AIR-ME-1-MB-B) • Mitsubishi Heavy (ONOKOM-AIR-MH-2-MB-B) • AUX (ONOKOM-AIR-AUX-1-MB-B) • GREE (ONOKOM-AIR-GR-1-MB-B, ONOKOM-AIR-GR-3-MB-B, ONOKOM-AIR-GR-5-MB-B) • MDV (ONOKOM-AIR-MD-1-MB-B, ONOKOM-AIR-MD-3-MB-B) • VRF (ONOKOM-AIR-MD-VRF-MB-B, ONOKOM-AIR-AUX-VRF-MB-B, ONOKOM-AIR-CG-VRF-MB-B, ONOKOM-AIR-HS-VRF-MB-B) • TCL (ONOKOM-AIR-TCL-1-MB-B, ONOKOM-AIR-TCL-3-MB-B, ONOKOM-AIR-TCL-6-MB-B) • Hitachi (ONOKOM-AIR-HT-1-MB-B) • TOSHIBA (ONOKOM-AIR-TB-1-MB-B) • Haier (ONOKOM-AIR-HR-1-MB-B)

Рекуператоры / вентиляция VAKIO City Air 250/500 Komfovent Breezart Lux / Aqua VENTMACHINE Colibri 650 GTC • TION (ONOKOM-AIR-TN-1-MB-B)
Контроллеры вентиляции и климата Тепломаш КЭВ-БЛОК-МКDrivent V2
Контроллеры холодильного оборудования Carel BASIC(PYEZ)/EASY(PJEZ) Danfoss EKC 204A1/AK-CC 210 Danfoss EKC 202B Danfoss EKC 202D Danfoss ERC 211/ERC 213/ERC 214 Eliwell IDPlus 974
Метеостанции Сокол-М
Модули ввода-вывода Wellpro WP8026ADAM Wellpro WP8027ADAM Wellpro WP8028ADAM Wellpro WP9038ADAM
Модули реле РД DRB88 Rubetek TZ78 ICP DAS tM-P3R3 ICP DAS LC-103 Uniel UCH-M111RX/0808 Uniel UCH-M121RX/0808
Моторы для штор/Электрокарнизы Akko AM82 Dooya DM35EQ Dooya DT82 WinDeco Somfy SDN (Sonesse и Glydea Series) SunFlower KT82TV Somfy RS485 RTS transmitter Беспроводные Dooya/Somfy Dauerhaft CM5 Dauerhaft Roll 35/45 A-OK AM68 (LM100) A-OK AM35
Панели управления Cityron ПУ-3 (Modbus) Sonoff NSPanel (fw NXPanel) EKF PRO-Screen Skirell Panel
Системы защиты от протечек KAPLESTOP Ensystec Leak Protect
Считыватели карт (для СКУД) Wiegand
Счётчики воды Пульсар Пульсар-М Счётчики с импульсным выходом
Счётчики тепла Пульсар
Счётчики электроэнергии CSQ PD561Z-9SY Peacefair PZEM-016 Eastron SDM120M Eastron SDM220M Меркурий 200 Меркурий 201 Меркурий 203.2T Меркурий 206 Меркурий 230 Меркурий 231 Меркурий 234 Меркурий 236 Милур 104 Милур 105 Милур 107 Милур 305 Милур 307 Нева МТ 113 Нева МТ 123 Нева МТ 124 Нева МТ 323 Нева МТ 324 Энергомера CE301 Энергомера CE102M Энергомера CE303 Энергомера CE308 Милур 107S
Термостаты BAC-002ALN BAC-6000ALN BAC-6000ELNW BHT-6000 Series BHT-006 Series Heatit Z-TEMP2 Siemens RDF302 Ridan Greencon-R Welrok az ENGO EFAN
Управление двигателями (преобразователи частоты) Vacon/Danfoss 10 Danfoss VLT Microdrive FC51 T13-400W-12-H/T13-750W-12-H
Управление шаговыми двигателями Овен (Meyertec) MST-24 Rtelligent NT60
Прочее TasmotaESPHome
Устройства с аналоговым или цифровым выходом
Низковольтная нагрузка Реле с управляющим напряжением 12–24 В Светодиоды Низковольтные вентиляторы Низковольтные сигнальные лампы
Датчики с аналоговым выходом Датчики температуры, давления и другие, имеющие на выходе ток или напряжение
Счётчики с импульсным выходом Счётчики электроэнергии, воды, тепла и другие с импульсным выходом
Устройства с выходом «открытый коллектор» Устройства с выходом «открытый коллектор»
Устройства с питанием 220 В Лампы Контакторы и другое оборудование с питанием от 220 В

Поддерживаемые , но непроверенные в лаборатории Wiren Board устройства сторонних производителей (шаблоны от сообщества)
Опрос датчиков и работа с устройствами (в базовой комплектации) DMX-512
Адаптеры протоколов HDL KNX-DALI Gateway M/DALI.1
Датчики климата RLDA NL-3DPAS-M RLDA NL-1S111Рэлсиб ДВТ-05 XY-MD03/XY-MD04
Датчики расстояния WitMotion WT53R-485
Диммеры РД DDL84R-V
Источники питания и ИБП ИБП Импульс Мультиплекс
Конвекторы Varmann QTherm
Рекуператоры / вентиляция Рекуператор VAKIO Base Smart ПВУ Royal Clima Soffio Primo RCS-350-PRoyal Clima VENTO Systemair CorrigoПриточный клапан Vakio OpenAir
Метеостанции Netatmo Urban Weather Station
Коллекторы датчиков R4DCB08
Контроллеры вентиляции и климата Mautomatics JL204C5 (Breezart 550 Lux) GTC (General Thermo Controllers) Syberia 5.0 SystemAir VR 300 Royal Clima MACS-RC-420MBTurkov Zenit HECO 550E
Контроллеры ДГУ SDMO APM303
Модули реле R4D3C32
Преобразователи частоты ERMAN ER-G-220-02ERMAN ER-G-220-03
Счётчики воды Элехант СВД-15 Элехант СВД-20
Счётчики электроэнергии Меркурий 204 Меркурий 208 Меркурий 238 ABB SCU100 Фобос 3T
Счетчики тепла ВИС.Т2-ТС Тепловычислитель ТМК-Н
Термостаты Hessway
Увлажнители CAREL Humisonic Xiaomi Humidifier
Прочее DIYShelly UNI Renke RS-LDO-N01-2