Назначение
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-проекта на контроллер:
- Узнать IP контроллера
- Запустить ВПЛК Studio на Windows-машине
- В диалоге подключения указать
<IP контроллера>:1234
- Открыть проект и выполнить сборку и загрузку
Подключение Studio к контроллеру
Пример работы через MQTT
В составе MASC демо-проект для Wiren Board не поставляется. Далее описано минимальное создание коммуникации MQTT в Studio для обмена с каналами Wiren Board через локальный брокер mosquitto.
Внимание! При неверной настройке MQTT-привязок логика проекта может работать некорректно. В таком случае рекомендуется проверить топики, направления PUB/SUB и типы переменных.
Создание тестового виртуального устройства Wiren Board
Для обмена тестовыми значениями удобно завести отдельное виртуальное устройство wb-rules прямо из веб-интерфейса контроллера:
- Открыть веб-интерфейс контроллера и перейти в раздел Настройки → Правила
- Создать новое правило с именем
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,
},
},
});
- Сохранить правило — wb-rules перечитает его автоматически.
- Убедиться, что устройство
vplc-test-vd появилось в списке устройств веб-интерфейса.
Виртуальное устройство в веб-интерфейсе
Создание коммуникации MQTT в Studio
- Открыть проект в ВПЛК Studio и перейти на вкладку MQTT
- Снять блокировку редактирования и добавить нового брокера
- Заполнить параметры для локальной работы:
- Сохранить настройки
Добавление MQTT-брокера в Studio
Чтение значения канала Wiren Board
- В привязках MQTT добавить переменную
setpoint_from_wb:
- Тип: REAL
- Топик:
/devices/vplc-test-vd/controls/Setpoint
- Направление: SUBSCRIBE
- Загрузить программу на контроллер и запустить
- Менять значение Setpoint1 в веб-интерфейсе — переменная в Studio будет обновляться в мониторинге
Запись в канал Wiren Board
- Добавить переменную
switch_from_wb:
- Тип: BOOL
- Топик:
/devices/vplc-test-vd/controls/Switch/on
- Направление: PUBLISH
- Во вкладке "Программа" в основном цикле нужно создать задачу и добавить скрипт переключения, например:
MQTT1.switch_from_wb := MQTT1.setpoint_from_wb > 50.0;
- Загрузить и запустить программу — Switch будет переключаться по логике порога
Добавление и запуск в Studio
Добавление скрипта в Studio
Мониторинг переменных в Studio
Запись в виртуальные каналы wb-rules выполняется в командный топик /on. Запись в state-топик для управления не используется — wb-rules не примет команду.
Техническая поддержка
Вопросы по использованию MASC на Wiren Board можно задать через официальные каналы вендора: e-mail maximumautomation@yandex.ru.
Полезные ссылки
Сайт разработчика MASC.
Страница загрузки ВПЛК и ВПЛК Studio.
Руководство пользователя MASC.
Поддерживаемые контроллером Wiren Board системы верхнего уровня, приложения, способы программирования, протоколы и устройства
| Протоколы
|
| Опрос датчиков и работа с устройствами (в базовой комплектации)
|
1-Wire • DLMS/COSEM • Modbus RTU/TCP Master • ГОСТ МЭК 61107 • СПОДЭС (ГОСТ Р 58940-2020)
|
| Опрос датчиков и работа с устройствами (с помощью модулей расширения)
|
KNX • eBUS • OpenTherm • Z-Wave • Zigbee
|
| Опрос контроллера из систем верхнего уровня и с других устройств
|
KNX • Modbus RTU/TCP Slave • MQTT • OPC UA • SNMP • Zabbix • МЭК 104 • SmartWeb (Гидролого)
|
| Через шлюзы
|
DALI • LoRaWAN
|
| Системы верхнего уровня
|
| Системы мониторинга и SCADA
|
Grafana • Home Assistant • IntraHouse • IntraSCADA • Sprut.hub • MasterSCADA • Nagios • SimpLight SCADA • Rapid SCADA • SAYMON • Zabbix • iRidium Server • AggreGate • ТМИУС КП • Мажордом • SCADA WebDisCo • SCADA FUXA
|
| Приложения
|
| Управление с телефона |
MQTT Dash • iRidium • Home Assistant • Apple Home • Дом с Алисой • Салют! Умный дом • Мажордом
|
| Голосовые помощники
|
Siri • Салют • Алиса
|
| Способы программирования
|
| Визуальное программирование |
Node-RED
|
| Упрощённый текстовый движок правил
|
wb-rules
|
| Сценарии автоматизации без программирования
|
wb-scenarios
|
| Стандартное программирование
|
Python • C++ • Go • Node.js
|
| Языки программирования ПЛК
|
| FBD, ST, LD, SFC (МЭК 61131-3) |
MasterPLC • ISaGRAF • CODESYS • Maximum Automation Soft Controller • KLogic
|
| Протестированные устройства сторонних производителей
|
| Адаптеры протоколов
|
ECODim DALI GW2 • Arlight DALI-LOGIC-LITE-PS-x1 • Lavritech L1 Lite LoRaWAN • Шлюз БРШС-РК-485 (РИЭЛТА)
|
| Аудиоресиверы сетевые
|
URRI A1 • Skirell-Sound
|
| Датчики климата
|
DS18B20 и клоны • Kvadro 1WIRE-RS485 • Wellpro 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
|
| Прочее
|
Tasmota • ESPHome
|
| Устройства с аналоговым или цифровым выходом
|
| Низковольтная нагрузка
|
Реле с управляющим напряжением 12–24 В • Светодиоды • Низковольтные вентиляторы • Низковольтные сигнальные лампы
|
| Датчики с аналоговым выходом
|
Датчики температуры, давления и другие, имеющие на выходе ток или напряжение
|
| Счётчики с импульсным выходом
|
Счётчики электроэнергии, воды, тепла и другие с импульсным выходом
|
| Устройства с выходом «открытый коллектор»
|
Устройства с выходом «открытый коллектор»
|
| Устройства с питанием 220 В
|
Лампы • Контакторы и другое оборудование с питанием от 220 В
|