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 запрещен)

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

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

Вы смотрите срез комментариев. Показать все
5
Автор поста оценил этот комментарий
Как минимум встаёт вопрос надёжности ПК (особенно RPi) в сравнении с контроллерами. Не думаю, что стоимость потерь при нарушении процессов даже "небольшого производственного здания" сопоставима со стоимостью контроллера.
раскрыть ветку (15)
Автор поста оценил этот комментарий

Я понимаю что rpi не совсем готов быть плк, но вы зря про надежность. Китайский свисток умрет sd карта тоже, а малина всех нас переживет , вы ради интереса потестируйте, только архив на флешку не пишите. Мы для решения проблем со свистками и флешками взяли модуль от raspberry и обвязку на качественных элементах сделали. Так скажем материнку под raspberry cm3+

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

Малина может работать 24/7 в помещении со 100% влажностью воздуха? Сдается мне она от коррозии загнётся через пару месяцев. Может она обрабатывать требуемые куски кода в заданном требуемом интервале времени? А то все сгорело, а в логах все хорошо. А как у неё с сертификацией? Есть к примеру сертификат СИ? Неспешно рулить тремя задвижками на каком нибудь неответственном участке или открывать гаражные ворота я бы ей доверил, но серьезную пром. установку - ни в коем случае.

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

У большинства контроллеров ip 20 клас защиты, поэтому влажность никому нельзя )) малине можно доверить больше чем овну))

раскрыть ветку (7)
3
Автор поста оценил этот комментарий
Вот это прямо в точку))) но я всё равно за плк. Слабо представляю, как на rpi собрать такой баян, а потом без SM это все закодить.
Иллюстрация к комментарию
раскрыть ветку (5)
0
Автор поста оценил этот комментарий

Somashine это копия codesys, а raspberry поддерживает codesys!

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

Ой господи, вот эта серия shnider tm очень убогая, аккуратнее чуть перегреете слетает прошивка, в прошлом году они нас ушатали . У нас были tm 241, не выдерживает больше 50 градусов окружающей среды ((( Совет, положить рядом флешки с прошивкой и программой в щите для быстрого восстановления .

раскрыть ветку (3)
1
Автор поста оценил этот комментарий
4 года. Полет нормальный. Да, убогая, под наши нужды лучше не нашел по этой цене. Трудиться в паровых и водогрейных котельных в шкафах с ЧРП )) ни одного отказа. Овен же каждый второй-третий прибор может и 5 минут не проработать, если включиться))
Про CS в малине не знал.
раскрыть ветку (2)
Автор поста оценил этот комментарий

Овен неплохо делает только мдвв и пр, все где линукс проблемы(( пару лет назад начали переход на эти шнайдеры, все отлично работает, но перегрева до жути боятся! Большая вероятность, что очень они сэкономили на emmc памяти, которая при нагреве просто сыпится. К слову там внутри windows.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Я как програмист-так себе, код в SM напишу, HMI навешу, в скаде отрисую (simple scada). Вот затесалась недавно в ряды hmi weintek на win ce 5. Ума не приложу с чего начать, чтоб ее применить где то.
2
Автор поста оценил этот комментарий

Дело не в классе защиты, тут решают материалы, элементная база и конструктивные  и технологические решения. Даже положение контроллера в пространстве изменяет допустимые тепловые режимы работы. Если мне не изменяет память (давно дело было), у Сименса для серии s300 это прямо в документации указано.

4
Автор поста оценил этот комментарий
Ubuntu или Debian это не системы реального времени, загружаются они довольно долго (это в случае перезагрузки по watchdog). Лучше конечно какой нибудь RTos ставить. ПЛК очень часто это просто микроконтроллер со специализированной программой, по сути прошивкой, который тупо молотит по кругу цикл, с обработкой возможных прерываний. По сути время обработки прерываний или цикла регламентировано. Т.е. он с гарантией может выполнить то, что ему поручено в строго отведённое время. Есть конечно более сложные модели, но они, как правило работают под ОС реального времени. А вот Debian захочется себе мозги прочистить в какой-то момент, мусор там собрать, обновления проверить. Ну вот вам и задержка. Хотя... смотря чем управлять и какое время реакции нужно. Если процесс не критичный к задержкам, то наверное, вариант рабочий. Но у малины есть одно очень слабое место - SD карта, и там надо что-то делать
раскрыть ветку (3)
Автор поста оценил этот комментарий

Конструктивно, согласен если нет ос, хотя сейчас такое редко бывает время затрачивается только на выполнение основной задачи. На счёт sd мы решили для себя устройством https://antexcloud.ru/docs/antexgate/description/

Там уже eMMC, watchdog и промышленный модем mpci -e.

Если в двух словах понадобился мониторинг многих точек со сторонними контроллерами и шиной modbus rtu. Начали искать решение, а его на тот момент не было на рынке либо цена космос (а ну и овен со своим облаком был). Вот и решили сделать железо которое дырявит дыру в интернете через 3G, модемы взяли готовые mpci-e, в итоге получили свободно программируемый 3G роутер, который одним концом смотрит на rs485 другим в интернет по изменению (экономим трафик) сыпит mqtt. В общем туда симку мтс «умное устройство» 900р в год и один vds сервер с mqtt брокером все состыковали! Для себя использовали node-red, а вот советские интеграторы ему не доверяют, поэтому пытаемся обрастать софтом. Дополнительно на этом сервере сделали проброс ssh 22 и 1883 порт с каждого устройства , и теперь сменить конфиг можно не выходя из кабинета, вот такая задача была решена. Если честно путь был довольно сложный ))

раскрыть ветку (2)
3
Автор поста оценил этот комментарий
В принципе, если только смотреть и не нужна прям железобетонная надёжность, то вариант вполне рабочий. Тут действительно, надо пробивать дыру в сознании, поскольку, с одной стороны modbus, производственная шина, ассоциируется с какими-нибудь rtos plc типа сименса, который нас этом собаку съел. И с другой вы, с "бытовой" малиной. Как бы скепсис интеграторов я, в общем-то, понимаю. Как уже говорил, для многих применений такого устройства вполне достаточно. Думаю, если хотите двигаться дальше в этом направлении, то надо делать что-то на других операционках. Либо лезть в другую сферу, например в "умные дома". Хотя там уже есть куча альтернативных решений. Из специальных контроллеров под это дело, мне, например, нравится решение Logic Machine от латышей. Они, кстати, долго сидели на knx, и на rs485, потом видать решили сделать своё на can bus

И, кстати, у традиционных plc есть куча различных модулей или библиотек, например тот же PID регулятор, или управление какими-нибудь многоходовыми клапанами, семафоры там всякие. По сути программеру не нужно знать, как там все внутри устроено. Он просто соединяет модули с выходами входами. А среда программирования уже исходя из этого генерит прошивку. Кстати, тот же codesys позволяет это делать, как программно, так и в виде построения блок схем. Коде ред это конечно тоже тема, но для многих plc специалистов это нечто новое и "ему нужно учиться". А учиться новой системе он будет только в том случае, если эта система занимает какую-то часть рынка, ну или по острой необходимости. Уот так уот
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

node-red сильный инкубатор, насчёт сложности почти почти как блочное программирование )) зависит от разработчика модуля. Если честно один из примеров, когда open source впереди все возможных коммерческих продуктов (не считая визуализации хотя визуализация зато масштабируется грамотно под любые дисплеи )

А на счёт надёжности железа, можно пример испытания на учтройчивость? Просто если работать с устройством исключительно на верхнем уровне, не понимаю какие могут быть проблемы?

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

Вопрос простой - а нахрена весь этот огород, если есть проверенные временем решения?

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

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

Сообщества

18+

Теги

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

Сообщества

Игры

Теги

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

Сообщества

Юмор

Теги

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

Сообщества

Отношения

Теги

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

Сообщества

Здоровье

Теги

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

Сообщества

Путешествия

Теги

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

Сообщества

Спорт

Теги

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

Сообщества

Хобби

Теги

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

Сообщества

Сервис

Теги

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

Сообщества

Природа

Теги

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

Сообщества

Бизнес

Теги

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

Сообщества

Транспорт

Теги

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

Сообщества

Общение

Теги

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

Сообщества

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

Теги

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

Сообщества

Наука

Теги

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

Сообщества

IT

Теги

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

Сообщества

Животные

Теги

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

Сообщества

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

Теги

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

Сообщества

Экономика

Теги

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

Сообщества

Кулинария

Теги

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

Сообщества

История

Теги

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

Сообщества