|
|
(не показаны 42 промежуточные версии 5 участников) |
Строка 2: |
Строка 2: |
| {{DISPLAYTITLE: Программирование контроллера Wiren Board с помощью MasterSCADA 4D}} | | {{DISPLAYTITLE: Программирование контроллера Wiren Board с помощью MasterSCADA 4D}} |
| == Описание == | | == Описание == |
| [[Image: MasterSCADA 4D Runtime.png |300px|thumb|right| Интеграция MasterPLC с контроллером Wiren Board]] | | [[Image: MasterSCADA 4D Runtime.png |300px|thumb|right| Интеграция MasterSCADA 4D с контроллером 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-интеграция — такой способ использования позволяет программировать логику с помощью языков [[IEC 61131-3 | МЭК 61131-3]] и запускать интерактивные дашборды прямо на контроллере. |
|
| |
|
| Для этого нужно установить на контроллер исполнительную систему MasterPLC, добавить в проект библиотеку для контроллера Wiren Board и настроить связь с MQTT-брокером на контроллере. Ещё есть [[MasterSCADA_on_PC |Стандартная интеграция через MQTT или OPC UA]]. | | Для этого нужно установить на контроллер исполнительную систему MasterSCASA 4D Runtime, добавить в проект библиотеку для контроллера Wiren Board и настроить связь с MQTT-брокером на контроллере. Ещё есть [[MasterSCADA_on_PC |Стандартная интеграция через MQTT или OPC UA]]. |
|
| |
|
| Если вы собираетесь использовать встроенный в MasterPLC драйвер Modbus RTU — выключите опрос портов в [[wb-mqtt-serial]]. | | Если вы собираетесь использовать драйвер Modbus RTU — выключите опрос используемых для этого портов в [[wb-mqtt-serial]]. |
|
| |
|
| == Установка исполнительной системы == | | == Установка исполнительной системы == |
| Для установки исполнительной системы MasterPLC на контроллер Wiren Board 7 с [[Wiren_Board_Software| релизом]] ПО wb-2307 и новее подключитесь к контроллеру по [[SSH]] и выполните обновление:
| | [[Image: MasterSCADA 4D Runtime Installing.png |300px|thumb|right| Процесс установки MasterSCADA 4D Runtime ]] |
| <syntaxhighlight lang="bash">
| |
| apt update && apt upgrade
| |
| </syntaxhighlight>
| |
| Затем запустите команду для установки:
| |
| <syntaxhighlight lang="bash">
| |
| apt install mplc4-wirenboard7
| |
| </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>
| |
| на нужные циферки.
| |
|
| |
|
|
| | Запросите дистрибутив исполнительной системы для контроллера в техподдержке MasterSCADA, доступно два варианта: Wiren Board 6 и Wiren Board 7. |
| ===Установка на контроллер со старым релизом ПО===
| |
| [[Image: MasterSCADA 4D Runtime Installing.png |300px|thumb|right| Процесс установки MasterSCADA 4D Runtime]]
| |
| Если вы используете устаревшее ПО, то сначала запросите дистрибутив исполнительной системы для контроллера в техподдержке MasterSCADA, доступно два варианта: Wiren Board 6 и Wiren Board 7. И установите его по инструкции:
| |
|
| |
|
| | Инструкция по установке: |
| # Подключитесь к контроллеру по [[SSH]]. | | # Подключитесь к контроллеру по [[SSH]]. |
| # Создайте временную папку и перейдите в неё: | | # Создайте временную папку и перейдите в неё: |
Строка 144: |
Строка 37: |
|
| |
|
| Установка на контроллере завершена, консоль можно закрыть. | | Установка на контроллере завершена, консоль можно закрыть. |
|
| |
| === Изменение порта MasterPLC с 8043 на 80 ===
| |
| Если требуется поменять порт MasterPLC на 80 то сперва надо изменить порт для веб-интерфейса Wiren Board и потом изменить порт для сервера MasterPLC.
| |
|
| |
| ==== Изменение порта для веб-интерфейса Wiren Board 7 ====
| |
|
| |
| Редактируем файл <code>/mnt/data/etc/nginx/sites-enabled/default</code> и раскомментировать строки, выставить порт на прием 8039
| |
| <syntaxhighlight lang="console">
| |
| listen 8039; ## listen for ipv4; this line is default and implied
| |
| listen [::]:8039 default_server ipv6only=on; ## listen for ipv6
| |
| </syntaxhighlight>
| |
| далее команда <code>service nginx restart</code>
| |
|
| |
| ==== Изменить порт для веб-интерфейса MasterPLC ====
| |
| https://euroec.by/assets/files/master_scada/user_guide_masterscada_4d.pdf стр. 2028
| |
|
| |
| Редактируем файл <code>/opt/mplc4/nginx/conf/nginx-mplc.conf</code>
| |
|
| |
| находим строку:
| |
| <syntaxhighlight lang="console">
| |
| server {
| |
| listen 8043 default_server;
| |
| </syntaxhighlight>
| |
| и меняем 8043 на 80
| |
|
| |
| Далее в командной строке <code>/etc/init.d/mplc4 restart</code>
| |
|
| |
|
| == Создание проекта == | | == Создание проекта == |
Строка 182: |
Строка 49: |
| #* Имя — Buzzer | | #* Имя — Buzzer |
| #* Topic — <code>/devices/buzzer/controls/enabled</code>. Адреса топиков можно узнать в стандартном веб-интерфейсе контроллера, раздел [[Wiren Board Web Interface#mqtt-channels |MQTT Channels]]. | | #* Topic — <code>/devices/buzzer/controls/enabled</code>. Адреса топиков можно узнать в стандартном веб-интерфейсе контроллера, раздел [[Wiren Board Web Interface#mqtt-channels |MQTT Channels]]. |
|
| |
| Если вы используете Mоdbus TCP сервер в проекте (выполняемый runtime) отключите сервис '''wb-mqtt-mbgate''' контроллера, так как по умолчанию он использует тот же '''502''' порт.
| |
|
| |
|
| В остальном видеоинструкция актуальна и для работы на контроллерах Wiren Board. | | В остальном видеоинструкция актуальна и для работы на контроллерах Wiren Board. |
Строка 201: |
Строка 66: |
| Image: Mscada web interface.png | Веб-интерфейс прикладной программы | | Image: Mscada web interface.png | Веб-интерфейс прикладной программы |
| </gallery> | | </gallery> |
|
| |
| == Работа с последовательными портами ==
| |
| Для того чтобы понять какой номер порта использовать при работе с ними непосредственно из runtime можно выполнить следующую команду:
| |
| <syntaxhighlight lang="console">
| |
| # 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
| |
| </syntaxhighlight>
| |
|
| |
| Например, нам нужно обратиться к порту <code>ttyRS485-1</code>, мы видим, что симлинк указывает на порт <code>ttyS2</code>.
| |
|
| |
| В MasterPLC нумерация портов начинается с 1, а в Linux с 0, поэтому нам надо увеличить номер найденного порта ttyS* на 1. Получается, чтобы обратиться из MasterPLC к порту <code>ttyRS485-1</code>, надо использовать порт 2+1=3.
| |
|
| |
| Если вам нужно использовать модули 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">
| |
| 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"
| |
| </syntaxhighlight>
| |
| # Перезапустить контроллер.
| |
|
| |
| Это действие приведёт к тому, что в мастерскаде будет mod1 на порте 11, mod2 на порте 12, mod3 на порте 13. Далее вы выбираете тот порт в который у вас вставлен модуль. При этом вы не должны их использовать в других приложениях.
| |
|
| |
| == Отправка смс через модуль 4G-модема напрямую из MasterPLC ==
| |
| Для работы с модемом из MasterPLC нужно настроить модем в веб-интерфейсе и отключить штатный ModemManager:
| |
| # Включить модем в стандартном веб-интерфейсе контроллера.
| |
| # Подключиться к контроллеру по [[SSH]].
| |
| # Выбрать активную симку, например 1:
| |
| #:<syntaxhighlight lang="bash">
| |
| mmcli -m wbc --set-primary-sim-slot=1
| |
| </syntaxhighlight>
| |
| #Удалить сервис ModemManager из автозапуска
| |
| #:<syntaxhighlight lang="bash">
| |
| systemctl disable ModemManager
| |
| </syntaxhighlight>
| |
| # Остановить ModemManager
| |
| #:<syntaxhighlight lang="bash">
| |
| systemctl stop ModemManager
| |
| </syntaxhighlight>
| |
| #Добавить wb-gsm в автозапуск:
| |
| #:<syntaxhighlight lang="bash">
| |
| systemctl enable wb-gsm
| |
| </syntaxhighlight>
| |
| #Перезапустить wb-gsm:
| |
| #:<syntaxhighlight lang="bash">
| |
| restart_if_broken; dmesg | tail
| |
| </syntaxhighlight>
| |
|
| |
| Создайте файл:
| |
| # Откройте файл в редакторе:
| |
| #:<syntaxhighlight lang="bash">
| |
| nano /usr/lib/udev/rules.d/99-RS485-to-USB.rules
| |
| </syntaxhighlight>
| |
| #Добавьте в него строки:
| |
| #:<syntaxhighlight lang="bash">
| |
| KERNEL=="ttyUSB1", SUBSYSTEM=="tty", SYMLINK+="ttyRS485-4", GROUP="dialout"
| |
| </syntaxhighlight>
| |
| # Перезагрузите контроллер.
| |
| # Подключитесь к консоли контроллера по [[SSH]].
| |
| # Откройте AT-терминал модема:
| |
| #:<syntaxhighlight lang="bash">
| |
| minicom -D /dev/ttyUSB1 -b 115200 -8 -a off
| |
| </syntaxhighlight>
| |
| # Введите модему команды:
| |
| #:<syntaxhighlight lang="bash">
| |
| AAAAAAAAAT
| |
| AT+IPR=115200
| |
| ATE0
| |
| AT&W
| |
| </syntaxhighlight>
| |
| # Выйдите из терминала minicom: нажмите на клавиатуре клавиши <kbd>CTRL</kbd>+<kbd>A</kbd>, отпустите нажмите клавишу и <kbd>X</kbd>, а потом <kbd>Enter</kbd>.
| |
|
| |
| Залейте проект и проверьте работу (если у вас 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 Скачать пример проекта].
| |
|
| |
|
| == Полезные ссылки == | | == Полезные ссылки == |