Winter Is Coming. На смену программируемых логических контроллеров (ПЛК) постепенно приходят встраиваемые персональные компьютеры. Это связано с тем, что мощности компьютеров позволяют одному устройству вобрать в себя функционал программируемого контроллера, сервера, и (при наличии у устройства выхода HDMI) еще и автоматизированного рабочего места оператора. Итого: Web-сервер, OPC-часть, база данных и АРМ в едином корпусе, и всё это по стоимости одного ПЛК.
В статье рассмотрим возможность применения таких встраиваемых компьютеров в промышленности. Возьмем за основу устройство на базе Raspberry Pi, поэтапно распишем процесс установки на него открытой бесплатной Open Source SCADA-системы российской разработки — Rapid SCADA, а также разработаем в ней проект абстрактной компрессорной станции, в задачи которой будет входить удаленное управление компрессором и тремя вентилями, а также визуализация технологического процесса производства сжатого воздуха.
Сразу оговоримся, что задачу можно решать двумя вариантами. Принципиально они не отличаются друг от друга никак, вопрос лишь в эстетической и практической составляющей. Итак, нам необходимо:
⠀1.1 Первый вариант подразумевает наличие непосредственно самого Raspberry Pi 2/3/4, а также наличие USB-конвертера в RS485 (так называемого «свистка», который можно заказать с Alliexpress).
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀Рисунок 1 — Raspberry Pi 2 и USB-конвертер в RS485
⠀1.2 Второй вариант включает в себя любое готовое решение на базе Raspberry, рекомендованное для инсталляций в промышленных условиях cо встроенными RS485 портами. Например, такое, как на рисунке 2, на базе модуля Raspberry CM3+.
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀Рисунок 2 — Устройство AntexGate
⠀2. Устройство с Modbus на несколько управляющих регистров;
⠀3. ПК на Windows для конфигурирования проекта.
Этапы разработки:
- Часть I. Установка Rapid SCADA на Raspberry;
- Часть II. Установка Rapid SCADA на Windows;
- Часть III. Разработка проекта и его загрузка на устройство;
- Выводы.
Часть I. Установка Rapid SCADA на Raspberry
⠀1. Заполняем форму на сайте Rapid Scada для получения дистрибутива и скачиванием последнюю версию для Linux.
⠀2. Разархивируем скаченные файлы и копируем папку «scada» в директорию /opt устройства.
⠀3. Кладем три скрипта из папки «daemons» в директорию /etc/init.d
⠀4. Даем полный доступ трем папкам приложения:
sudo chmod -R ugo+rwx /opt/scada/ScadaWeb/config
sudo chmod -R ugo+rwx /opt/scada/ScadaWeb/log
sudo chmod -R ugo+rwx /opt/scada/ScadaWeb/storage
⠀5. Делаем скрипты исполняемыми:
sudo chmod +x /opt/scada/make_executable.sh
sudo /opt/scada/make_executable.sh
⠀6. Добавляем репозиторий:
sudo apt install apt-transport-https dirmngr gnupg ca-certificates
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb https://download.mono-project.com/repo/debian stable-stretch main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt update
⠀7. Устанавливаем Mono .NET Framework:
sudo apt-get install mono-complete
⠀8. Устанавливаем Apache HTTP-сервер:
sudo apt-get install apache2
⠀9. Устанавливаем дополнительные модули:
sudo apt-get install libapache2-mod-mono mono-apache-server4
⠀10. Создаем ссылку на Web-приложение:
sudo ln -s /opt/scada/ScadaWeb /var/www/html/scada
⠀11. Из скаченного архива в папке «apache» копируем файл scada.conf в директорию /etc/apache2/sites-available
sudo a2ensite scada.conf
⠀12. Переходим по этому пути sudo nano /etc/apache2/apache2.conf и добавляем следующее в конец файла:
Require all denied
⠀13. Выполняем скрипт:
sudo /opt/scada/svc_install.sh
⠀14. Перезагружаем Raspberry:
sudo reboot
⠀15. Открываем веб-сайт:
http://IP-адрес устройства/scada
⠀16. В открывшемся окне вводим логин «admin» и пароль «12345».
Часть II. Установка Rapid SCADA на Windows
Установка Rapid SCADA на Windows потребуется для настройки Raspberry и конфигурации проекта. В теории можно это делать и на самой малине, но в технической поддержке нам посоветовали использовать среду разработки на Windows, поскольку здесь она работает корректнее, чем на Linux.
Итак, приступим:
⠀1. Обновляем Microsoft .NET Framework до самой свежей версии;
⠀2. Скачиваем дистрибутив Rapid SCADA для Windows и устанавливаем в автономном режиме;
⠀3. Запускаем приложение «Администратор». В нём мы будем разрабатывать сам проект.
При разработке необходимо обратить внимание на некоторые моменты:
⠀1. Нумерация регистров в данной SCADA-системе начинается с 1 адреса, поэтому нам пришлось увеличить нумерацию своих регистров на единицу. В нашем случае это: 512+1 и так далее:
⠀⠀⠀⠀⠀⠀⠀⠀Рисунок 3 — Нумерация регистров в Rapid SCADA (картинка кликабельна)
⠀2. Для перенастройки директорий и корректного развертывания проекта на операционной системе Linux, в настройках необходимо зайти в «Сервер» -> «Общие параметры» и нажать кнопку «Для Linux»:
⠀⠀⠀⠀⠀⠀⠀⠀Рисунок 4 — Перенастройка директорий в Rapid SCADA (картинка кликабельна)
⠀3. Определяем порт опроса для Modbus RTU таким образом, как он определяется в системе Linux устройства. В нашем случае это /dev/ttyUSB0
⠀⠀⠀⠀⠀⠀⠀⠀Рисунок 5 — Перенастройка директорий в Rapid SCADA (картинка кликабельна)
При возникновении каких-то вопросов, все дополнительные инструкции по установке можно получить на сайте компании или на их youtube-канале.
Часть III. Разработка проекта и его загрузка на устройство
Разработка и визуализация проекта создается непосредственно в самом браузере. Это не совсем привычно после десктопных SCADA-систем, но вполне имеет место быть.
Отдельно хотелось бы отметить ограниченный набор элементов визуализации (рисунок 6). Из встроенных компонентов здесь есть светодиод, кнопка, тумблер, ссылка и указатель. Однако большой плюс в том, что данная SCADA-система поддерживает динамические изображения и текст. При минимальных знаниях графических редакторов (Corel, Adobe Photoshop и др.) можно создавать собственные библиотеки изображений, элементов и текстур, а поддержка GIF-элементов позволит добавить анимацию в визуализацию технологического процесса.
⠀⠀⠀⠀⠀⠀⠀⠀Рисунок 6 — Инструменты редактора схем в Rapid SCADA
В рамках данной статьи не было цели расписывать поэтапно процесс графического создания проекта в Rapid SCADA. Поэтому подробно не будем останавливаться на этом пункте. В среде разработчика наш простенький проект «Системы подачи сжатого воздуха» компрессорной станции выглядит следующим образом (рисунок 7):
⠀⠀⠀⠀⠀⠀⠀⠀Рисунок 7 — Редактор схем в Rapid SCADA (картинка кликабельна)
Далее заливаем наш проект на устройство. Для этого указываем IP-адрес устройства для передачи проекта не на localhost, а на наш встраиваемый компьютер:
⠀⠀⠀⠀⠀⠀⠀⠀Рисунок 8 — Загрузка проекта на устройство в Rapid SCADA (картинка кликабельна)
В итоге у нас получилось нечто подобное (рисунок 9). В левой части экрана находятся светодиоды, отражающие статус работы всей системы (компрессора), а также статус работы задвижек (открыты или закрыты), а в центральной части экрана — визуализация технологического процесса с возможностью управления устройствами посредством тумблеров. При открытии той или иной задвижки изменяется цвет с серого на зеленый как самой задвижки, так и соответствующей ей магистрали.
⠀⠀⠀⠀⠀⠀⠀⠀Рисунок 9 — Проект компрессорной станции
Здесь вы можете скачать файл данного проекта для ознакомления.
На рисунке 10 изображено то, как в целом выглядит то, что у нас получилось.
⠀⠀⠀⠀⠀⠀⠀⠀Рисунок 10 — SCADA-система на Raspberry
Выводы
Появление мощных встраиваемых промышленных компьютеров позволяет расширить и дополнить функционал программируемых логических контроллеров. Установка на них подобных SCADA-систем может покрыть задачи небольшого производства или технологического процесса. Для более крупных задач с большим количеством пользователей или повышенным требованием безопасности, скорее всего, придется устанавливать полноценные сервера, шкафы автоматики и привычные ПЛК. Однако для точек средней и малой автоматизации по типу небольших производственных зданий, котельных, насосных или умного дома — подобное решение кажется целесообразным. По нашим подсчетам, подобные устройства подойдут для задач до 500 точек ввода-вывода данных.
Если у вас есть опыт рисования в различных графических редакторах и вас не смущает то, что вам придется самостоятельно создавать элементы мнемосхем, то вариант с Rapid SCADA под Raspberry весьма оптимален. Её функционал как готового решения несколько ограничен, поскольку это Open Source, однако и он позволяет покрыть задачи небольшого производственного здания. Поэтому если подготовить для себя шаблоны визуализации, то вполне можно использовать это решение для интеграции если не всех, то какой-то части своих проектов.
Таким образом, чтобы понять, насколько полезным может быть для вас подобное решение на Raspberry и насколько ваши проекты заменимы Open Source SCADA-системами на Linux, возникает вполне резонный вопрос: какими SCADA-системами вы пользуетесь чаще всего?