16 885
правок
(не показано 8 промежуточных версий 3 участников) | |||
Строка 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 | ||
Строка 46: | Строка 46: | ||
Установка на контроллере завершена, консоль можно закрыть. | Установка на контроллере завершена, консоль можно закрыть. | ||
=== Изменение порта | === Изменение порта 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: | Строка 70: | ||
и меняем 8043 на 80 | и меняем 8043 на 80 | ||
Далее в командной строке | Далее в командной строке <code>/etc/init.d/mplc4 restart</code> | ||
== Создание проекта == | == Создание проекта == | ||
Строка 120: | Строка 120: | ||
В 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 == |