50

SCADA на Raspberry: миф или реальность?

Серия Контроллер интернет вещей AntexGate

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 и добавляем следующее в конец файла:


<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 и так далее:

Рисунок 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 — Проект компрессорной станции (GIF-анимация)


Здесь вы можете скачать файл данного проекта для ознакомления.


На рисунке 10 изображено то, как в целом выглядит то, что у нас получилось.

Рисунок 10 — SCADA-система на Raspberry


Выводы


Появление мощных встраиваемых промышленных компьютеров позволяет расширить и дополнить функционал программируемых логических контроллеров. Установка на них подобных SCADA-систем может покрыть задачи небольшого производства или технологического процесса. Для более крупных задач с большим количеством пользователей или повышенным требованием безопасности, скорее всего, придется устанавливать полноценные сервера, шкафы автоматики и привычные ПЛК. Однако для точек средней и малой автоматизации по типу небольших производственных зданий, котельных, насосных или умного дома — подобное решение кажется целесообразным. По нашим подсчетам, подобные устройства подойдут для задач до 500 точек ввода-вывода данных.


Если у вас есть опыт рисования в различных графических редакторах и вас не смущает то, что вам придется самостоятельно создавать элементы мнемосхем, то вариант с Rapid SCADA под Raspberry весьма оптимален. Её функционал как готового решения несколько ограничен, поскольку это Open Source, однако и он позволяет покрыть задачи небольшого производственного здания. Поэтому если подготовить для себя шаблоны визуализации, то вполне можно использовать это решение для интеграции если не всех, то какой-то части своих проектов.

Arduino & Pi

1.5K поста20.8K подписчика

Правила сообщества

В нашем сообществе запрещается:

• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)

• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском

• Выкладывать код прямо в посте - используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)

• Рассуждать на темы политики

• Нарушать установленные правила Пикабу

Вы смотрите срез комментариев. Показать все
13
Автор поста оценил этот комментарий

"...мощности компьютеров позволяют одному устройству вобрать в себя функционал программируемого контроллера, сервера, и еще и автоматизированного рабочего места оператора..."

На кол сажать за такое.

Никогда, слышите, НИКОГДА не смешивайте процесс с HMI. Компьютер не способен заменить PLC по определению, так же как и наоборот

раскрыть ветку (45)
1
Автор поста оценил этот комментарий
Ну учитывая, что современные плк представлят из себя я бы не говорил что компьютеры не могут. Другое дело что плк таки должны быть хорошо оттестированным программноаппаратным средством.
раскрыть ветку (19)
3
Автор поста оценил этот комментарий

Главное свойство PLC - работа в реальном времени, какую не может обеспечить ни один даже супер-скоростной компьютер.

Желаете возразить на конкретных примерах?

раскрыть ветку (18)
1
Автор поста оценил этот комментарий

Гонять по кругу вечный цикл это не реалтайм вообще не разу. Жесткий реалтайм это ПЛИС где под каждую задачу задаются аппаратные LUT соединенные в логическую систему. Реакция на аппаратном уровне. Вне зависимости от софта. Интегральной схеме софт не нужен. Только для конфигурации. А теперь представь что для каждой требуемой реакции системы у тебя специализированная интегральная схема. Отклик системы мгновенен, причем на все события контролируемые, запрограмированными ИС, сразу.

Любой МК с цикличной прошивкой медленный и неповоротливый паравоз. И да, архитектура любого МК реализуема на ПЛИС, и даже некоторых процессоров.


Развивайте кругозор, знание ПЛК это лишь маленькая часть интересной профессии системного архитектора/инженера. Xilinx или Alterra, не важно, мне больше Xilinx нравится. Zynq сейчас отрабатываю.  Когда освоите пару проектов, вернитесь к своему комментарию, посмеетесь.

раскрыть ветку (3)
0
Автор поста оценил этот комментарий

Ну ПЛИС тоже не мгновенна, не надо забывать, что каждый триггер вносит задержку, впрочем они прогнозируются при синтезе.

Ну и синтезированные ядра проигрывают по скорости, да и дорого т.к. много ячеек жрут.

Хотя помню мне попадался интересный проект, где процессы описывались на питоне, выводились в верилог. И при этом получалось куча недоядер урезанных до тех команд, которые потребуются конкретному модулю.

Их демо проект - многоканальный стример видео в сеть, вебконфа на которой рассказывали про проект шла через эту плату.

Автор поста оценил этот комментарий

Искренне сочувствую вашей проблеме следовать теме

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Ты еще и доктор? =) Сочувствие ты вызываешь. Мне оно ни к чему, хотя может быть ты и прав, тоже нужно. Потому что нет ни одного человека прошедшего собеседование за последние 2 года. Одни балбесы. Болтают черт пойми что, но марку держать стараются. Прям, как ты сейчас.

0
Автор поста оценил этот комментарий

Режим реального времени не имеет точного трактования и все кто это пишут под своими устройствами вам продали воздух.

См. Толкование термина :

Система реального времени — система, которая должна реагировать на события во внешней по отношению к системе среде или воздействовать на среду в рамках требуемых временных ограничений.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Истинно так. Предлагаю вам вчитаться и понять написанное

0
Автор поста оценил этот комментарий
какую не может обеспечить ни один даже супер-скоростной компьютер.
Может, зачастую даже быстрее ПЛК. Большинство ПК в разы быстрее ПЛК, вот только ПЛК и не должен быть сверхбыстрым. Главная его черта - надежность.
раскрыть ветку (5)
0
Автор поста оценил этот комментарий

Главная черта ПЛК - работа в реальном времени

раскрыть ветку (4)
Автор поста оценил этот комментарий

ПК так же может работать в реальном времени - дальше что? При этом практически любой ПК будет обрабатывать задачи быстрее, чем ПЛК.

раскрыть ветку (3)
0
Автор поста оценил этот комментарий

ПК не может работать в реальном времени

раскрыть ветку (2)
Автор поста оценил этот комментарий

С чего бы?

раскрыть ветку (1)
Автор поста оценил этот комментарий

Удачи вам!

Автор поста оценил этот комментарий

А что мне возражать, я уже и так вижу что вы путаете плк с плис, которые могут быть составной частью плк. Да и про ОСРВ вы очевидно не в курсе...

раскрыть ветку (5)
2
Автор поста оценил этот комментарий

Куды нам - мы академиев не кончали.

Но всё же пожелаю вам успехов в изучении азов понятия PLC

ещё комментарии
1
Автор поста оценил этот комментарий
Согласен полностью. PLC должен существовать отдельно как сущность,и выполнен желательно на более низкоуровневой платформе,нежели x86. А вот скаду можно запустить хоть на мясорубке,если она не предполагает 60 минут в часу ручного дрыгания элементами при помощи оператора.
Автор поста оценил этот комментарий

Компьютер не способен заменить PLC по определению, так же как и наоборот

эм, што?

раскрыть ветку (14)
4
Автор поста оценил этот комментарий

Это на русском, вам, видимо, не сюда

раскрыть ветку (1)
Автор поста оценил этот комментарий

смешно.

3
Автор поста оценил этот комментарий
Компьютер штука сложная, но надёжность, увы, невысока, как и скорость обработки сигналов. PLC переводится как Программируемый Логический Контроллер, основной элемент при построении систем автоматического регулирования различных процессов. Он быстрее обрабатывает сигналы, при зависании сам перезагружается (на лету), ведёт журнал процесса, и ещё много чего.
раскрыть ветку (11)
1
Автор поста оценил этот комментарий

во всем написанном нет ничего, чего не умеют современные системы на SoC.

раскрыть ветку (10)
2
Автор поста оценил этот комментарий
PLC реализуют это на железном уровне. Не помню в описании RPi описания хотя бы аппаратного watchdog таймера
раскрыть ветку (8)
2
Автор поста оценил этот комментарий

В 3 и 4 подходящие таймеры точно есть (в BCM2710 и 2711 соответственно).

Но они не для этого.

раскрыть ветку (6)
Автор поста оценил этот комментарий

Мы аппаратный себе припаяли и не пользуемся тем встроенным. Внешний надежнее)))

раскрыть ветку (5)
0
Автор поста оценил этот комментарий

Скорее всего, вы до него просто не добрались.

А вообще малина-4 мне даже почти понравилась... ей даже настоящий ПКП приделали. Если бы с УПШ не обосрались, вообще отличный аппарат был бы.

раскрыть ветку (4)
Автор поста оценил этот комментарий

Можно немного термины на три буквы расшифровать?

раскрыть ветку (3)
0
Автор поста оценил этот комментарий

Контроллер прерываний и USB соответственно.

раскрыть ветку (2)
Автор поста оценил этот комментарий

Я жду что выйдет raspberry cm4 и я получу полноценную pci шину. А что у него с usb?

раскрыть ветку (1)
Автор поста оценил этот комментарий

Есть в rpi watchdog правда он до 5 считает, но мы решили сделать сложнее решение с ПЛКшными причудами Разработка IoT-шлюза на базе Raspberry CM3+

Часы watchdog, порты и диф шины

0
Автор поста оценил этот комментарий
Вы про алгоритмы и библиотеки написанные энтузиастами?
ещё комментарии
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества