Программирование контроллера Wiren Board с помощью MasterSCADA 4D

From Wiren Board
This is the approved revision of this page, as well as being the most recent.
Программа на FBD для контроллера Wiren Board


Описание

Интеграция MasterPLC с контроллером Wiren Board

MasterPLC можно установить на контроллеры Wiren Board 7. Поддержка новых версий контроллера Wiren Board прекращена разработчиком платформы. MasterSCADA 4D — программная платформа для создания АСУТП, MES, решения задач учета и диспетчеризации объектов промышленности, ЖКХ и автоматизации зданий.

В этой статье описывается Runtime-интеграция MasterPLC — такой способ использования позволяет программировать логику с помощью языков МЭК 61131-3 и запускать интерактивные дашборды прямо на контроллере.

Для этого нужно установить на контроллер исполнительную систему MasterPLC, добавить в проект библиотеку для контроллера Wiren Board и настроить связь с MQTT-брокером на контроллере. Ещё есть Стандартная интеграция через MQTT или OPC UA.

Если вы собираетесь использовать встроенный в MasterPLC драйвер Modbus RTU — выключите опрос портов в wb-mqtt-serial.

Установка исполнительной системы на Wiren Board 7

Для установки исполнительной системы MasterPLC на контроллер Wiren Board 7 с релизом ПО wb-2307 и новее подключитесь к контроллеру по SSH и выполните обновление:

apt update && apt upgrade

Затем запустите команду для установки:

apt install mplc4-wirenboard7

Изменение порта MasterPLC с 8043 на 80

Если требуется поменять порт MasterPLC на 80, то сперва надо изменить порт для веб-интерфейса Wiren Board и потом изменить порт для сервера MasterPLC.

Изменение порта для веб-интерфейса Wiren Board 7

В релизах до wb-2507 редактировать файл /mnt/data/etc/nginx/sites-enabled/default и раскомментировать строки, выставить порт на приём 8039.

Начиная с релиза wb-2507 редактировать /etc/nginx/includes/default.wb.d/listen.conf.

listen   8039; ## listen for ipv4; this line is default and implied
listen   [::]:8039 default_server ipv6only=on; ## listen for ipv6

Далее команда:

service nginx restart

Изменить порт для веб-интерфейса MasterPLC

стр. 2028

Редактируем файл /opt/mplc4/nginx/conf/nginx-mplc.conf.

Находим строку:

server {
    listen 8043 default_server;

и меняем 8043 на 80.

Далее в командной строке:

/etc/init.d/mplc4 restart

Создание проекта

Создание первого проекта хорошо показано в видео MasterSCADA 4D. Быстрый старт. Часть 1, наш пример можно взять на Github, а MasterSCADA 4D на официальном сайте.

Отличия от видеоинструкции:

  1. Прежде чем добавлять контроллер, подключите библиотеку Wiren Board. Это позволит выбрать тип контроллера Wirenboard6 или Wirenboard7.
  2. После добавления контроллера, справа на панели укажите:
    • фактический IP-адрес вашего контроллера, например, 192.168.2.22
    • Порт для Web-сервера — 8043, его мы указывали при установке исполнительной системы.
  3. Далее добавьте в КонтроллерВстроенные модули канал DIO, и заполните поля так:
    • Имя — Buzzer
    • Topic — /devices/buzzer/controls/enabled. Адреса топиков можно узнать в стандартном веб-интерфейсе контроллера, раздел MQTT Channels.

Если вы используете Mоdbus TCP сервер в проекте (выполняемый runtime) отключите сервис wb-mqtt-mbgate контроллера, так как по умолчанию он использует тот же 502 порт.

В остальном видеоинструкция актуальна и для работы на контроллерах Wiren Board.

Загрузка проекта в контроллер

Чтобы запустить загрузить программу в контроллер и запустить её, выберите режим Исполнение и нажмите кнопку Подключить выбранный узел (с загрузкой конфигурации).

Работа с последовательными портами

Для того чтобы понять какой номер порта использовать при работе с ними непосредственно из runtime можно выполнить следующую команду:

# ls -l /dev/ |grep tty[A-Z]
lrwxrwxrwx 1 root root           5 Oct 18 13:02 ttyCONSOLE -> ttyS0
lrwxrwxrwx 1 root root           5 Oct 18 13:02 ttyMOD1 -> ttyS7
lrwxrwxrwx 1 root root           5 Oct 18 13:02 ttyMOD2 -> ttyS6
lrwxrwxrwx 1 root root           5 Oct 18 13:02 ttyMOD3 -> ttyS5
lrwxrwxrwx 1 root root           5 Oct 18 13:02 ttyMOD4 -> ttyS3
lrwxrwxrwx 1 root root           5 Oct 18 13:02 ttyRS485-1 -> ttyS2
lrwxrwxrwx 1 root root           5 Oct 18 13:02 ttyRS485-2 -> ttyS4

Например, нам нужно обратиться к порту ttyRS485-1, мы видим, что симлинк указывает на порт ttyS2.

В MasterPLC нумерация портов начинается с 1, а в Linux с 0, поэтому нам надо увеличить номер найденного порта ttyS* на 1. Получается, чтобы обратиться из MasterPLC к порту ttyRS485-1, надо использовать порт 2+1=3.

Если вам нужно использовать модули WBE2-I-RS485-ISO или WBE2-I-RS232, то из-за того, что в среде разработке MasterSCADA 4D используется шаблон имен для последовательных портов /dev/ttyRS485-%d нужно:

  1. Создать файл /etc/udev/rules.d/99-RS485ISO-uart.rules с правами rw-r--r--;
  2. Записать в него:
    		KERNEL=="ttyS7", SUBSYSTEM=="tty", SYMLINK+="ttyRS485-10", GROUP="dialout"
    		KERNEL=="ttyS6", SUBSYSTEM=="tty", SYMLINK+="ttyRS485-11", GROUP="dialout"
    		KERNEL=="ttyS5", SUBSYSTEM=="tty", SYMLINK+="ttyRS485-12", GROUP="dialout"
    
  3. Перезапустить контроллер.

Это действие приведёт к тому, что в мастерскаде будет mod1 на порте 11, mod2 на порте 12, mod3 на порте 13. Далее вы выбираете тот порт в который у вас вставлен модуль. При этом вы не должны их использовать в других приложениях.

Отправка смс через модуль 4G-модема напрямую из MasterPLC

Для работы с модемом из MasterPLC нужно настроить модем в веб-интерфейсе и отключить штатный ModemManager:

  1. Включить модем в стандартном веб-интерфейсе контроллера.
  2. Подключиться к контроллеру по SSH.
  3. Выбрать активную симку, например 1:
     mmcli -m wbc --set-primary-sim-slot=1
    
  4. Удалить сервис ModemManager из автозапуска
    systemctl disable ModemManager
    
  5. Остановить ModemManager
     systemctl stop ModemManager
    
  6. Добавить wb-gsm в автозапуск:
     systemctl enable wb-gsm
    
  7. Перезапустить wb-gsm:
    restart_if_broken; dmesg | tail
    

Создайте файл:

  1. Откройте файл в редакторе:
    nano /usr/lib/udev/rules.d/99-RS485-to-USB.rules
    
  2. Добавьте в него строки:
    KERNEL=="ttyUSB1", SUBSYSTEM=="tty", SYMLINK+="ttyRS485-4", GROUP="dialout"
    
  3. Перезагрузите контроллер.
  4. Подключитесь к консоли контроллера по SSH.
  5. Откройте AT-терминал модема:
    minicom -D /dev/ttyUSB1 -b 115200 -8 -a off
    
  6. Введите модему команды:
    AAAAAAAAAT
    AT+IPR=115200
    ATE0
    AT&W
    
  7. Выйдите из терминала minicom: нажмите на клавиатуре клавиши CTRL+A, отпустите нажмите клавишу и X, а потом Enter.

Залейте проект и проверьте работу (если у вас MasterPLC на порту 8043 то в демо-проекте сделайте 8043), при запуске в контроллере будет создан файл /temp/sms.txt если туда что-то записать то отправится смс. Скачать пример проекта.

Решение проблем

Если проект не загружается

Иногда после установке, среда разработки не дает загрузить проект т.к. версия среды исполнения проекта и контроллера отличаются.

Если при обновлении среды исполнении вышла ошибка то требуется удалить среду исполнения.

Но перед этим нужно скачать требуемую среду исполнения

https://download.mps-soft.ru/support/Updates/Installation/MasterSCADA_4D/RunTime/wirenboard7/

Логин: ftpGuestSupport

Пароль: 21B74F6E

Если в предыдущей ссылки нет нужной версии (mplc4-wirenboard7-ХХХХХХХХХХХХ-armhf.deb), то переходим

https://download.mps-soft.ru/support/Updates/Installation/MasterSCADA_4D/Archive/

Проходим в нужную версию и выбираем контроллер с нужной релизом

Например

https://download.mps-soft.ru/support/Updates/Installation/MasterSCADA_4D/Archive/1.3.4/RT/wirenboard7/mplc4-wirenboard7-1.3.4.18803-armhf.deb

Скачиваем и открываем 7-zip. Проваливаемся до

\mplc4-wirenboard7-1.3.4.18803-armhf.deb\data.tar\.\opt\

Далее выделяем mplc4_installer и извлекаем.

Открываем WinSCP, подключаемся к контроллеру.

Проходим в каталог opt и удаляем mplc4_installer.

Затем копируем наш распакованный файл, вместо удаленного.

Проходим opt/mplc4_installer.

Даем права на запуска install.sh -rwxr-xr-x Далее можно закрыть WinSCP.

Подключимся через консоль вводим команду:

/etc/init.d/mplc4 stop

Далее переходим cd opt/mplc4/

Запускаем скрип удаления среды:

 ./uninstall.sh

После удачного удаления переходимым в консоли cd opt/mplc4_installer

Запускаем команду установки

 ./install.sh

Если все прошло нормально то будет предложено ознакомиться с хелпом :

Help for MasterPLC:

Вводим в консоль :

/etc/init.d/mplc4 start

Если среда стартовала то вы увидите такое сообщение:

Starting MasterPLC...   OK

Далее пробуете загружать свой проект.

Если если желание перед установкой изменить порт среды исполнения то открываем opt/mplc4_installer/cfg и меняем

NGINX_HTTP_POTR=8043
на нужные циферки.

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


Поддерживаемые контроллером 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 ТМИУС КПМажордом
Приложения
Управление с телефона MQTT DashiRidiumHome Assistant Apple HomeДом с АлисойСалют! Умный домМажордом
Голосовые помощники Siri Салют Алиса
Способы программирования
Языки программирования ПЛК FBD, ST, LD, SFC (МЭК 61131-3)
Визуальное программирование Node-RED
Упрощённый текстовый движок правил wb-rules
Сценарии автоматизации без программирования wb-scenarios
Стандартное программирование Python C++ Go Node.js
Протестированные устройства сторонних производителей
Адаптеры протоколов ECODim DALI GW2 Arlight DALI-LOGIC-LITE-PS-x1Lavritech L1 Lite LoRaWAN
Аудиоресиверы сетевые 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) • AUX (ONOKOM-AIR-AUX-1-MB-B) • GREE (ONOKOM-AIR-GR-1-MB-B, ONOKOM-AIR-GR-3-MB-B) • MDV (ONOKOM-AIR-MD-1-MB-B, ONOKOM-AIR-MD-3-MB-B) • VRF (ONOKOM-AIR-MD-VRF-MB-B) • TCL (ONOKOM-AIR-TCL-1-MB-B, ONOKOM-AIR-TCL-3-MB-B) • Haier (ONOKOM-AIR-HR-1-MB-B)

Рекуператоры / вентиляция Приточка VAKIO City Air 250/500 Komfovent Breezart Lux / Aqua
Контроллеры вентиляции и климата Тепломаш КЭВ-БЛОК-МК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
Термостаты BAC-002ALN BAC-6000ALN BAC-6000ELNW BHT-6000 Series BHT-006 Series Heatit Z-TEMP2 Siemens RDF302 Ridan Greencon-R Welrok az
Управление двигателями (преобразователи частоты) 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 устройства сторонних производителей (шаблоны от сообщества)
Адаптеры протоколов HDL KNX-DALI Gateway M/DALI.1
Датчики климата RLDA NL-3DPAS-M RLDA NL-1S111Рэлсиб ДВТ-05 XY-MD03/XY-MD04
Диммеры РД DDL84R-V
Источники питания и ИБП ИБП Импульс Мультиплекс
Конвекторы Varmann QTherm
Рекуператоры / вентиляция Рекуператор VAKIO Base Smart ПВУ Royal Clima Soffio Primo RCS-350-PRoyal Clima VENTO Systemair Corrigo
Метеостанции Netatmo Urban Weather Station
Коллекторы датчиков R4DCB08
Контроллеры вентиляции и климата Mautomatics JL204C5 (Breezart 550 Lux) GTC (General Thermo Controllers) Syberia 5.0 SystemAir VR 300
Модули реле R4D3C32
Счётчики воды Элехант СВД-15 Элехант СВД-20
Счётчики электроэнергии Меркурий 204 Меркурий 208 Меркурий 238 ABB SCU100
Счетчики тепла ВИС.Т2-ТС
Термостаты Hessway
Увлажнители CAREL Humisonic Xiaomi Humidifier
Прочее DIYShelly UNI