MasterSCADA on Wiren Board: различия между версиями
(не показано 20 промежуточных версий 4 участников) | |||
Строка 2: | Строка 2: | ||
{{DISPLAYTITLE: Программирование контроллера Wiren Board с помощью MasterSCADA 4D}} | {{DISPLAYTITLE: Программирование контроллера Wiren Board с помощью MasterSCADA 4D}} | ||
== Описание == | == Описание == | ||
[[Image: MasterSCADA 4D Runtime.png |300px|thumb|right| Интеграция | [[Image: MasterSCADA 4D Runtime.png |300px|thumb|right| Интеграция MasterPLC с контроллером Wiren Board]] | ||
[https://masterscada.ru/masterscada4d MasterSCADA 4D] — программная платформа для создания АСУТП, MES, решения задач учета и диспетчеризации объектов промышленности, ЖКХ и автоматизации зданий. | [https://masterscada.ru/masterscada4d MasterSCADA 4D] — программная платформа для создания АСУТП, MES, решения задач учета и диспетчеризации объектов промышленности, ЖКХ и автоматизации зданий. | ||
В этой статье описывается Runtime-интеграция [https://masterscada.ru/masterplc MasterPLC] — такой способ использования позволяет программировать логику с помощью языков [[IEC 61131-3 | МЭК 61131-3]] и запускать интерактивные дашборды прямо на контроллере. | В этой статье описывается Runtime-интеграция [https://masterscada.ru/masterplc MasterPLC] — такой способ использования позволяет программировать логику с помощью языков [[IEC 61131-3 | МЭК 61131-3]] и запускать интерактивные дашборды прямо на контроллере. | ||
Для этого нужно установить на контроллер исполнительную систему | Для этого нужно установить на контроллер исполнительную систему MasterPLC, добавить в проект библиотеку для контроллера Wiren Board и настроить связь с MQTT-брокером на контроллере. Ещё есть [[MasterSCADA_on_PC |Стандартная интеграция через MQTT или OPC UA]]. | ||
Если вы собираетесь использовать драйвер Modbus RTU — выключите опрос | Если вы собираетесь использовать встроенный в MasterPLC драйвер Modbus RTU — выключите опрос портов в [[wb-mqtt-serial]]. | ||
== Установка исполнительной системы == | == Установка исполнительной системы == | ||
Для установки исполнительной системы MasterPLC на контроллер Wiren Board 7 с [[ | Для установки исполнительной системы MasterPLC на контроллер Wiren Board 7 с [[Wiren_Board_Software| релизом]] ПО wb-2307 и новее подключитесь к контроллеру по [[SSH]] и выполните обновление: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
apt update && apt upgrade | apt update && apt upgrade | ||
Строка 21: | Строка 21: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Установка исполнительной системы на Wiren Board 8== | |||
#Необходимо скачать среду исполнения для armv8 с [https://download.mps-soft.ru/support/Updates/Installation/MasterSCADA_4D/RunTime/linux-armv8/ сайта разработчика]. | |||
#:Логин:'''ftpGuestSupport''' | |||
#:Пароль:'''21B74F6E''' | |||
#Загрузите все скачанные файлы на контроллер в папку /home/, например с помощью WinSCP(или через облако). | |||
#Откройте консоль контроллера и введите последовательно команды.<syntaxhighlight lang="bash">cd /home</syntaxhighlight><syntaxhighlight lang="bash">chmod +x install.sh</syntaxhighlight><syntaxhighlight lang="bash">./install.sh</syntaxhighlight> | |||
#Отредактируйте файл <code>/opt/mplc4/nginx/conf/nginx-mplc.conf</code>: | |||
##Найдите строку<syntaxhighlight lang="console"> server { listen 80 default_server;</syntaxhighlight> | |||
##Поменяйте 80 на '''8043''' | |||
#Далее в командной строке выполните<syntaxhighlight lang="bash">/etc/init.d/mplc4 restart</syntaxhighlight> | |||
#Установка завершена, можно удалить скачанные файлы из /home/. | |||
==Если проект не загружается== | |||
Иногда после установке, среда разработки не дает загрузить проект т.к. версия среды исполнения проекта и контроллера отличаются. | |||
Если при обновлении среды исполнении вышла ошибка то требуется удалить среду исполнения. | |||
Но перед этим нужно скачать требуемую среду исполнения | |||
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. | |||
Подключимся через консоль вводим команду: | |||
<syntaxhighlight lang="bash"> | |||
/etc/init.d/mplc4 stop | |||
</syntaxhighlight> | |||
Далее переходим cd opt/mplc4/ | |||
Запускаем скрип удаления среды: | |||
<syntaxhighlight lang="bash"> | |||
./uninstall.sh | |||
</syntaxhighlight> | |||
После удачного удаления переходимым в консоли cd opt/mplc4_installer | |||
Запускаем команду установки | |||
<syntaxhighlight lang="bash"> | |||
./install.sh | |||
</syntaxhighlight> | |||
Если все прошло нормально то будет предложено ознакомиться с хелпом : | |||
<syntaxhighlight lang="console"> | |||
Help for MasterPLC: | |||
</syntaxhighlight> | |||
Вводим в консоль : | |||
<syntaxhighlight lang="bash"> | |||
/etc/init.d/mplc4 start | |||
</syntaxhighlight> | |||
Если среда стартовала то вы увидите такое сообщение: | |||
<syntaxhighlight lang="console"> | |||
Starting MasterPLC... OK | |||
</syntaxhighlight> | |||
Далее пробуете загружать свой проект. | |||
Если если желание перед установкой изменить порт среды исполнения то открываем | |||
opt/mplc4_installer/cfg и меняем | |||
<syntaxhighlight lang="console"> | |||
NGINX_HTTP_POTR=8043 | |||
</syntaxhighlight> | |||
на нужные циферки. | |||
===Установка на контроллер со старым релизом ПО=== | ===Установка на контроллер со старым релизом ПО=== | ||
[[Image: MasterSCADA 4D Runtime Installing.png |300px|thumb|right| Процесс установки MasterSCADA 4D Runtime]] | [[Image: MasterSCADA 4D Runtime Installing.png |300px|thumb|right| Процесс установки MasterSCADA 4D Runtime]] | ||
Строка 46: | Строка 145: | ||
Установка на контроллере завершена, консоль можно закрыть. | Установка на контроллере завершена, консоль можно закрыть. | ||
=== Изменение порта | === Изменение порта MasterPLC с 8043 на 80 === | ||
Если требуется поменять порт | Если требуется поменять порт MasterPLC на 80 то сперва надо изменить порт для веб-интерфейса Wiren Board и потом изменить порт для сервера MasterPLC. | ||
==== Изменение порта для веб | ==== Изменение порта для веб-интерфейса Wiren Board 7 ==== | ||
Редактируем файл /mnt/data/etc/nginx/sites-enabled/default | Редактируем файл <code>/mnt/data/etc/nginx/sites-enabled/default</code> и раскомментировать строки, выставить порт на прием 8039 | ||
<syntaxhighlight lang="console"> | <syntaxhighlight lang="console"> | ||
listen 8039; ## listen for ipv4; this line is default and implied | listen 8039; ## listen for ipv4; this line is default and implied | ||
listen [::]:8039 default_server ipv6only=on; ## listen for ipv6 | listen [::]:8039 default_server ipv6only=on; ## listen for ipv6 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
далее команда | далее команда <code>service nginx restart</code> | ||
==== Изменить порт для | ==== Изменить порт для веб-интерфейса MasterPLC ==== | ||
https://euroec.by/assets/files/master_scada/user_guide_masterscada_4d.pdf стр. 2028 | https://euroec.by/assets/files/master_scada/user_guide_masterscada_4d.pdf стр. 2028 | ||
Редактируем файл /opt/mplc4/nginx/conf/nginx-mplc.conf | Редактируем файл <code>/opt/mplc4/nginx/conf/nginx-mplc.conf</code> | ||
находим строку: | находим строку: | ||
Строка 70: | Строка 169: | ||
и меняем 8043 на 80 | и меняем 8043 на 80 | ||
Далее в командной строке | Далее в командной строке <code>/etc/init.d/mplc4 restart</code> | ||
== Создание проекта == | == Создание проекта == | ||
Строка 120: | Строка 219: | ||
В MasterPLC нумерация портов начинается с 1, а в Linux с 0, поэтому нам надо увеличить номер найденного порта ttyS* на 1. Получается, чтобы обратиться из MasterPLC к порту <code>ttyRS485-1</code>, надо использовать порт 2+1=3. | В MasterPLC нумерация портов начинается с 1, а в Linux с 0, поэтому нам надо увеличить номер найденного порта ttyS* на 1. Получается, чтобы обратиться из MasterPLC к порту <code>ttyRS485-1</code>, надо использовать порт 2+1=3. | ||
Если нужно использовать WBE2-I-RS485-ISO или WBE2-I-RS232 в | Если вам нужно использовать модули WBE2-I-RS485-ISO или WBE2-I-RS232, то из-за того, что в среде разработке MasterSCADA 4D используется шаблон имен для последовательных портов <code>/dev/ttyRS485-%d</code> нужно: | ||
# Создать файл <code>/etc/udev/rules.d/99-RS485ISO-uart.rules</code> с правами <code>rw-r--r--</code>; | |||
# Записать в него: | |||
#:<syntaxhighlight lang="console"> | |||
<syntaxhighlight lang="console"> | |||
KERNEL=="ttyS7", SUBSYSTEM=="tty", SYMLINK+="ttyRS485-10", GROUP="dialout" | KERNEL=="ttyS7", SUBSYSTEM=="tty", SYMLINK+="ttyRS485-10", GROUP="dialout" | ||
KERNEL=="ttyS6", SUBSYSTEM=="tty", SYMLINK+="ttyRS485-11", GROUP="dialout" | KERNEL=="ttyS6", SUBSYSTEM=="tty", SYMLINK+="ttyRS485-11", GROUP="dialout" | ||
KERNEL=="ttyS5", SUBSYSTEM=="tty", SYMLINK+="ttyRS485-12", GROUP="dialout" | KERNEL=="ttyS5", SUBSYSTEM=="tty", SYMLINK+="ttyRS485-12", GROUP="dialout" | ||
</syntaxhighlight> | </syntaxhighlight> | ||
# Перезапустить контроллер. | |||
Это действие приведёт к тому, что в мастерскаде будет mod1 на порте 11, mod2 на порте 12, mod3 на порте 13. Далее вы выбираете тот порт в который у вас вставлен модуль. При этом вы не должны их использовать в других приложениях. | |||
Далее вы выбираете тот порт в который у вас вставлен модуль. | |||
При этом вы не должны их использовать в других приложениях. | |||
== Отправка смс через модуль 4G-модема напрямую из MasterPLC == | == Отправка смс через модуль 4G-модема напрямую из MasterPLC == | ||
Строка 186: | Строка 280: | ||
# Выйдите из терминала minicom: нажмите на клавиатуре клавиши <kbd>CTRL</kbd>+<kbd>A</kbd>, отпустите нажмите клавишу и <kbd>X</kbd>, а потом <kbd>Enter</kbd>. | # Выйдите из терминала minicom: нажмите на клавиатуре клавиши <kbd>CTRL</kbd>+<kbd>A</kbd>, отпустите нажмите клавишу и <kbd>X</kbd>, а потом <kbd>Enter</kbd>. | ||
Залейте проект и проверьте работу (если у вас MasterPLC на порту 8043 то в демо-проекте сделайте 8043), при запуске в контроллере | Залейте проект и проверьте работу (если у вас MasterPLC на порту 8043 то в демо-проекте сделайте 8043), при запуске в контроллере будет создан файл <code>/temp/sms.txt</code> если туда что-то записать то отправится смс. [https://github.com/wirenboard/wb-community/blob/main/third-party-soft-demo/master-scada-4d/sms-wb-demo.zip Скачать пример проекта]. | ||
== Полезные ссылки == | == Полезные ссылки == |
Текущая версия на 18:17, 19 июля 2024
Описание
MasterSCADA 4D — программная платформа для создания АСУТП, MES, решения задач учета и диспетчеризации объектов промышленности, ЖКХ и автоматизации зданий.
В этой статье описывается Runtime-интеграция MasterPLC — такой способ использования позволяет программировать логику с помощью языков МЭК 61131-3 и запускать интерактивные дашборды прямо на контроллере.
Для этого нужно установить на контроллер исполнительную систему MasterPLC, добавить в проект библиотеку для контроллера Wiren Board и настроить связь с MQTT-брокером на контроллере. Ещё есть Стандартная интеграция через MQTT или OPC UA.
Если вы собираетесь использовать встроенный в MasterPLC драйвер Modbus RTU — выключите опрос портов в wb-mqtt-serial.
Установка исполнительной системы
Для установки исполнительной системы MasterPLC на контроллер Wiren Board 7 с релизом ПО wb-2307 и новее подключитесь к контроллеру по SSH и выполните обновление:
apt update && apt upgrade
Затем запустите команду для установки:
apt install mplc4-wirenboard7
Установка исполнительной системы на Wiren Board 8
- Необходимо скачать среду исполнения для armv8 с сайта разработчика.
- Логин:ftpGuestSupport
- Пароль:21B74F6E
- Загрузите все скачанные файлы на контроллер в папку /home/, например с помощью WinSCP(или через облако).
- Откройте консоль контроллера и введите последовательно команды.
cd /home
chmod +x install.sh
./install.sh
- Отредактируйте файл
/opt/mplc4/nginx/conf/nginx-mplc.conf
:- Найдите строку
server { listen 80 default_server;
- Поменяйте 80 на 8043
- Найдите строку
- Далее в командной строке выполните
/etc/init.d/mplc4 restart
- Установка завершена, можно удалить скачанные файлы из /home/.
Если проект не загружается
Иногда после установке, среда разработки не дает загрузить проект т.к. версия среды исполнения проекта и контроллера отличаются.
Если при обновлении среды исполнении вышла ошибка то требуется удалить среду исполнения.
Но перед этим нужно скачать требуемую среду исполнения
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/
Проходим в нужную версию и выбираем контроллер с нужной релизом
Например
Скачиваем и открываем 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
на нужные циферки.
Установка на контроллер со старым релизом ПО
Если вы используете устаревшее ПО, то сначала запросите дистрибутив исполнительной системы для контроллера в техподдержке MasterSCADA, доступно два варианта: Wiren Board 6 и Wiren Board 7. И установите его по инструкции:
- Подключитесь к контроллеру по SSH.
- Создайте временную папку и перейдите в неё:
mkdir /home/masterscada && cd /home/masterscada
- Загрузите файлы для установки исполнительной системы в папку контроллера
/home/masterscada
, инструкция. - Сделайте скрипт установки исполняемым:
chmod u+x ./install.sh
- Запустите установку:
./install.sh --http-port=8043
- Временные файлы больше не нужны, их можно удалить:
cd ~ && rm -R /home/masterscada
Установка на контроллере завершена, консоль можно закрыть.
Изменение порта MasterPLC с 8043 на 80
Если требуется поменять порт MasterPLC на 80 то сперва надо изменить порт для веб-интерфейса Wiren Board и потом изменить порт для сервера MasterPLC.
Изменение порта для веб-интерфейса Wiren Board 7
Редактируем файл /mnt/data/etc/nginx/sites-enabled/default
и раскомментировать строки, выставить порт на прием 8039
listen 8039; ## listen for ipv4; this line is default and implied
listen [::]:8039 default_server ipv6only=on; ## listen for ipv6
далее команда service nginx restart
Изменить порт для веб-интерфейса MasterPLC
https://euroec.by/assets/files/master_scada/user_guide_masterscada_4d.pdf стр. 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 на официальном сайте.
Отличия от видеоинструкции:
- Прежде чем добавлять контроллер, подключите библиотеку Wiren Board. Это позволит выбрать тип контроллера Wirenboard6 или Wirenboard7.
- После добавления контроллера, справа на панели укажите:
- фактический IP-адрес вашего контроллера, например, 192.168.2.22
- Порт для Web-сервера — 8043, его мы указывали при установке исполнительной системы.
- Далее добавьте в Контроллер → Встроенные модули канал 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
нужно:
- Создать файл
/etc/udev/rules.d/99-RS485ISO-uart.rules
с правамиrw-r--r--
; - Записать в него:
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"
- Перезапустить контроллер.
Это действие приведёт к тому, что в мастерскаде будет mod1 на порте 11, mod2 на порте 12, mod3 на порте 13. Далее вы выбираете тот порт в который у вас вставлен модуль. При этом вы не должны их использовать в других приложениях.
Отправка смс через модуль 4G-модема напрямую из MasterPLC
Для работы с модемом из MasterPLC нужно настроить модем в веб-интерфейсе и отключить штатный ModemManager:
- Включить модем в стандартном веб-интерфейсе контроллера.
- Подключиться к контроллеру по SSH.
- Выбрать активную симку, например 1:
mmcli -m wbc --set-primary-sim-slot=1
- Удалить сервис ModemManager из автозапуска
systemctl disable ModemManager
- Остановить ModemManager
systemctl stop ModemManager
- Добавить wb-gsm в автозапуск:
systemctl enable wb-gsm
- Перезапустить wb-gsm:
restart_if_broken; dmesg | tail
Создайте файл:
- Откройте файл в редакторе:
nano /usr/lib/udev/rules.d/99-RS485-to-USB.rules
- Добавьте в него строки:
KERNEL=="ttyUSB1", SUBSYSTEM=="tty", SYMLINK+="ttyRS485-4", GROUP="dialout"
- Перезагрузите контроллер.
- Подключитесь к консоли контроллера по SSH.
- Откройте AT-терминал модема:
minicom -D /dev/ttyUSB1 -b 115200 -8 -a off
- Введите модему команды:
AAAAAAAAAT AT+IPR=115200 ATE0 AT&W
- Выйдите из терминала minicom: нажмите на клавиатуре клавиши CTRL+A, отпустите нажмите клавишу и X, а потом Enter.
Залейте проект и проверьте работу (если у вас MasterPLC на порту 8043 то в демо-проекте сделайте 8043), при запуске в контроллере будет создан файл /temp/sms.txt
если туда что-то записать то отправится смс. Скачать пример проекта.
Полезные ссылки