![image](https://habrastorage.org/webt/9i/my/07/9imy07ssdaka0ywqvndluj9qbig.jpeg)
Winter Is Coming. На смену программируемых логических контроллеров (ПЛК) постепенно приходят встраиваемые персональные компьютеры. Это связано с тем, что мощности компьютеров позволяют одному устройству вобрать в себя функционал программируемого контроллера, сервера, и (при наличии у устройства выхода HDMI) еще и автоматизированного рабочего места оператора. Итого: Web-сервер, OPC-часть, база данных и АРМ в едином корпусе, и всё это по стоимости одного ПЛК.
В статье рассмотрим возможность применения таких встраиваемых компьютеров в промышленности. Возьмем за основу устройство на базе Raspberry Pi, поэтапно распишем процесс установки на него открытой бесплатной Open Source SCADA-системы российской разработки — Rapid SCADA, а также разработаем в ней проект абстрактной компрессорной станции, в задачи которой будет входить удаленное управление компрессором и тремя вентилями, а также визуализация технологического процесса производства сжатого воздуха.
Сразу оговоримся, что задачу можно решать двумя вариантами. Принципиально они не отличаются друг от друга никак, вопрос лишь в эстетической и практической составляющей. Итак, нам необходимо:
1.1 Первый вариант подразумевает наличие непосредственно самого Raspberry Pi 2/3/4, а также наличие USB-конвертера в RS485 (так называемого «свистка», который можно заказать с Alliexpress).
![image](https://habrastorage.org/getpro/habr/post_images/cb1/bbf/7f7/cb1bbf7f750d25e977f07cd0beff2aed.jpg)
Рисунок 1 — Raspberry Pi 2 и USB-конвертер в RS485
1.2 Второй вариант включает в себя любое готовое решение на базе Raspberry, рекомендованное для инсталляций в промышленных условиях cо встроенными RS485 портами. Например, такое, как на рисунке 2, на базе модуля Raspberry CM3+.
![image](https://habrastorage.org/getpro/habr/post_images/c88/e84/e15/c88e84e15af6c70d68471a86ab4fffc9.jpg)
Рисунок 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 и добавляем следующее в конец файла:
<Directory /var/www/html/scada/>
<FilesMatch "\.(xml|log|bak)$">
Require all denied
</FilesMatch>
</Directory>
⠀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.
Итак, приступим:
- Обновляем Microsoft .NET Framework до самой свежей версии;
- Скачиваем дистрибутив Rapid SCADA для Windows и устанавливаем в автономном режиме;
- Запускаем приложение «Администратор». В нём мы будем разрабатывать сам проект.
При разработке необходимо обратить внимание на некоторые моменты:
1. Нумерация регистров в данной SCADA-системе начинается с 1 адреса, поэтому нам пришлось увеличить нумерацию своих регистров на единицу. В нашем случае это: 512+1 и так далее:
![image](https://habrastorage.org/webt/bd/7c/hj/bd7chjywwlxieiq78axu3zkq3gs.jpeg)
Рисунок 3 — Нумерация регистров в Rapid SCADA (картинка кликабельна)
2. Для перенастройки директорий и корректного развертывания проекта на операционной системе Linux, в настройках необходимо зайти в «Сервер» -> «Общие параметры» и нажать кнопку «Для Linux»:
![image](https://habrastorage.org/webt/cb/wt/m0/cbwtm0putjdhyvpdvkdzfgeopzw.jpeg)
Рисунок 4 — Перенастройка директорий в Rapid SCADA (картинка кликабельна)
3. Определяем порт опроса для Modbus RTU таким образом, как он определяется в системе Linux устройства. В нашем случае это /dev/ttyUSB0
![image](https://habrastorage.org/webt/db/dn/ls/dbdnls7x1c5rkoe5nfod76qhnho.jpeg)
Рисунок 5 — Перенастройка директорий в Rapid SCADA (картинка кликабельна)
При возникновении каких-то вопросов, все дополнительные инструкции по установке можно получить на сайте компании или на их youtube-канале.
Часть III. Разработка проекта и его загрузка на устройство
Разработка и визуализация проекта создается непосредственно в самом браузере. Это не совсем привычно после десктопных SCADA-систем, но вполне имеет место быть.
Отдельно хотелось бы отметить ограниченный набор элементов визуализации (рисунок 6). Из встроенных компонентов здесь есть светодиод, кнопка, тумблер, ссылка и указатель. Однако большой плюс в том, что данная SCADA-система поддерживает динамические изображения и текст. При минимальных знаниях графических редакторов (Corel, Adobe Photoshop и др.) можно создавать собственные библиотеки изображений, элементов и текстур, а поддержка GIF-элементов позволит добавить анимацию в визуализацию технологического процесса.
![image](https://habrastorage.org/webt/or/x0/xw/orx0xw3t74rneji42tgmokgvgmg.jpeg)
Рисунок 6 — Инструменты редактора схем в Rapid SCADA
В рамках данной статьи не было цели расписывать поэтапно процесс графического создания проекта в Rapid SCADA. Поэтому подробно не будем останавливаться на этом пункте. В среде разработчика наш простенький проект «Системы подачи сжатого воздуха» компрессорной станции выглядит следующим образом (рисунок 7):
![image](https://habrastorage.org/webt/wu/ds/z1/wudsz16bpa5qpdhfwdzgjvofcmi.jpeg)
Рисунок 7 — Редактор схем в Rapid SCADA (картинка кликабельна)
Далее заливаем наш проект на устройство. Для этого указываем IP-адрес устройства для передачи проекта не на localhost, а на наш встраиваемый компьютер:
![image](https://habrastorage.org/webt/7n/zk/d_/7nzkd_ckwrjromwlz3hfhnfpuqw.jpeg)
Рисунок 8 — Загрузка проекта на устройство в Rapid SCADA (картинка кликабельна)
В итоге у нас получилось нечто подобное (рисунок 9). В левой части экрана находятся светодиоды, отражающие статус работы всей системы (компрессора), а также статус работы задвижек (открыты или закрыты), а в центральной части экрана — визуализация технологического процесса с возможностью управления устройствами посредством тумблеров. При открытии той или иной задвижки изменяется цвет с серого на зеленый как самой задвижки, так и соответствующей ей магистрали.
![image](https://habrastorage.org/webt/qh/ua/hl/qhuahl-gkd3m3hil8pqcdgshnve.gif)
Рисунок 9 — Проект компрессорной станции (GIF-анимация кликабельна)
Здесь вы можете скачать файл данного проекта для ознакомления.
На рисунке 10 изображено то, как в целом выглядит то, что у нас получилось.
![image](https://habrastorage.org/webt/yt/xi/k0/ytxik0qfwlquux_2lf5top9upac.jpeg)
Рисунок 10 — SCADA-система на Raspberry
Выводы
Появление мощных встраиваемых промышленных компьютеров позволяет расширить и дополнить функционал программируемых логических контроллеров. Установка на них подобных SCADA-систем может покрыть задачи небольшого производства или технологического процесса. Для более крупных задач с большим количеством пользователей или повышенным требованием безопасности, скорее всего, придется устанавливать полноценные сервера, шкафы автоматики и привычные ПЛК. Однако для точек средней и малой автоматизации по типу небольших производственных зданий, котельных, насосных или умного дома — подобное решение кажется целесообразным. По нашим подсчетам, подобные устройства подойдут для задач до 500 точек ввода-вывода данных.
Если у вас есть опыт рисования в различных графических редакторах и вас не смущает то, что вам придется самостоятельно создавать элементы мнемосхем, то вариант с Rapid SCADA под Raspberry весьма оптимален. Её функционал как готового решения несколько ограничен, поскольку это Open Source, однако и он позволяет покрыть задачи небольшого производственного здания. Поэтому если подготовить для себя шаблоны визуализации, то вполне можно использовать это решение для интеграции если не всех, то какой-то части своих проектов.
Таким образом, чтобы понять, насколько полезным может быть для вас подобное решение на Raspberry и насколько ваши проекты заменимы Open Source SCADA-системами на Linux, возникает вполне резонный вопрос: какими SCADA-системами вы пользуетесь чаще всего?
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Какими SCADA-системами вы пользуетесь чаще всего?
32.67% SIMATIC WinCC (TIA Portal)33
11.88% Intouch Wonderware12
4.95% Trace mode5
15.84% CoDeSys16
1.98% Genesis2
2.97% PcVue Solutions3
5.94% Vijeo Citect6
21.78% Master SCADA22
1.98% iRidium mobile2
6.93% Simple-Scada7
6.93% Rapid SCADA7
0.99% AggreGate SCADA1
34.65% Другой вариант (ответ в комментарии)35
Проголосовал 101 пользователь. Воздержались 57 пользователей.