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

    image

    Winter Is Coming. На смену программируемых логических контроллеров (ПЛК) постепенно приходят встраиваемые персональные компьютеры. Это связано с тем, что мощности компьютеров позволяют одному устройству вобрать в себя функционал программируемого контроллера, сервера, и (при наличии у устройства выхода HDMI) еще и автоматизированного рабочего места оператора. Итого: Web-сервер, OPC-часть, база данных и АРМ в едином корпусе, и всё это по стоимости одного ПЛК.

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

    Сразу оговоримся, что задачу можно решать двумя вариантами. Принципиально они не отличаются друг от друга никак, вопрос лишь в эстетической и практической составляющей. Итак, нам необходимо:

    1.1 Первый вариант подразумевает наличие непосредственно самого Raspberry Pi 2/3/4, а также наличие USB-конвертера в RS485 (так называемого «свистка», который можно заказать с Alliexpress).

    image

    Рисунок 1 — Raspberry Pi 2 и USB-конвертер в RS485

    1.2 Второй вариант включает в себя любое готовое решение на базе Raspberry, рекомендованное для инсталляций в промышленных условиях cо встроенными RS485 портами. Например, такое, как на рисунке 2, на базе модуля Raspberry CM3+.
    image

    Рисунок 2 — Устройство AntexGate

    2. Устройство с Modbus на несколько управляющих регистров;

    3. ПК на Windows для конфигурирования проекта.


    Этапы разработки:

    1. Часть I. Установка Rapid SCADA на Raspberry;
    2. Часть II. Установка Rapid SCADA на Windows;
    3. Часть III. Разработка проекта и его загрузка на устройство;
    4. Выводы.


    Часть 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.

    Итак, приступим:

    1. Обновляем Microsoft .NET Framework до самой свежей версии;
    2. Скачиваем дистрибутив Rapid SCADA для Windows и устанавливаем в автономном режиме;
    3. Запускаем приложение «Администратор». В нём мы будем разрабатывать сам проект.

    При разработке необходимо обратить внимание на некоторые моменты:

    1. Нумерация регистров в данной SCADA-системе начинается с 1 адреса, поэтому нам пришлось увеличить нумерацию своих регистров на единицу. В нашем случае это: 512+1 и так далее:

    image

    Рисунок 3 — Нумерация регистров в Rapid SCADA (картинка кликабельна)

    2. Для перенастройки директорий и корректного развертывания проекта на операционной системе Linux, в настройках необходимо зайти в «Сервер» -> «Общие параметры» и нажать кнопку «Для Linux»:

    image

    Рисунок 4 — Перенастройка директорий в Rapid SCADA (картинка кликабельна)

    3. Определяем порт опроса для Modbus RTU таким образом, как он определяется в системе Linux устройства. В нашем случае это /dev/ttyUSB0

    image

    Рисунок 5 — Перенастройка директорий в Rapid SCADA (картинка кликабельна)

    При возникновении каких-то вопросов, все дополнительные инструкции по установке можно получить на сайте компании или на их youtube-канале.


    Часть III. Разработка проекта и его загрузка на устройство


    Разработка и визуализация проекта создается непосредственно в самом браузере. Это не совсем привычно после десктопных SCADA-систем, но вполне имеет место быть.

    Отдельно хотелось бы отметить ограниченный набор элементов визуализации (рисунок 6). Из встроенных компонентов здесь есть светодиод, кнопка, тумблер, ссылка и указатель. Однако большой плюс в том, что данная SCADA-система поддерживает динамические изображения и текст. При минимальных знаниях графических редакторов (Corel, Adobe Photoshop и др.) можно создавать собственные библиотеки изображений, элементов и текстур, а поддержка GIF-элементов позволит добавить анимацию в визуализацию технологического процесса.

    image

    Рисунок 6 — Инструменты редактора схем в Rapid SCADA

    В рамках данной статьи не было цели расписывать поэтапно процесс графического создания проекта в Rapid SCADA. Поэтому подробно не будем останавливаться на этом пункте. В среде разработчика наш простенький проект «Системы подачи сжатого воздуха» компрессорной станции выглядит следующим образом (рисунок 7):

    image

    Рисунок 7 — Редактор схем в Rapid SCADA (картинка кликабельна)

    Далее заливаем наш проект на устройство. Для этого указываем IP-адрес устройства для передачи проекта не на localhost, а на наш встраиваемый компьютер:

    image

    Рисунок 8 — Загрузка проекта на устройство в Rapid SCADA (картинка кликабельна)

    В итоге у нас получилось нечто подобное (рисунок 9). В левой части экрана находятся светодиоды, отражающие статус работы всей системы (компрессора), а также статус работы задвижек (открыты или закрыты), а в центральной части экрана — визуализация технологического процесса с возможностью управления устройствами посредством тумблеров. При открытии той или иной задвижки изменяется цвет с серого на зеленый как самой задвижки, так и соответствующей ей магистрали.

    image

    Рисунок 9 — Проект компрессорной станции (GIF-анимация кликабельна)

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

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

    image

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

    Выводы


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

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

    Таким образом, чтобы понять, насколько полезным может быть для вас подобное решение на Raspberry и насколько ваши проекты заменимы Open Source SCADA-системами на Linux, возникает вполне резонный вопрос: какими SCADA-системами вы пользуетесь чаще всего?

    Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

    Какими SCADA-системами вы пользуетесь чаще всего?

    • 39,7%SIMATIC WinCC (TIA Portal)27
    • 11,8%Intouch Wonderware8
    • 4,4%Trace mode3
    • 14,7%CoDeSys10
    • 1,5%Genesis1
    • 2,9%PcVue Solutions2
    • 5,9%Vijeo Citect4
    • 16,2%Master SCADA11
    • 2,9%iRidium mobile2
    • 7,4%Simple-Scada5
    • 7,4%Rapid SCADA5
    • 1,5%AggreGate SCADA1
    • 35,3%Другой вариант (ответ в комментарии)24
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 22

      0

      Возможно не совсем в тему: Home Assistant может служить конкурентом SCADA-системам?

        0
        Я думаю, что может как OpenHab, NodeRed и другие продукты.
        0
        Я 1.5 года назад тоже искал простую в установке, функциональную и работающую под Linux SCADA. В итоге нашел отличный чешский продукт mySCADA: www.myscada.org/en
        У них есть версия для Raspberry и для другого компактного железа с очень дешевой лицензией (где-то в районе 35 евро на два устройства можно сделать). Их студия разработки кроссплатформенная.
        В итоге сделал сам на их продукте свой продукт по управлению автономными контейнерами для майнинга (вентиляция, электрика и т.п. вещи) и прочими штуками, пришлось даже самому сделать реализацию MQTT, благо там внутри можно использовать JavaScript.
        Делал на отличном железе от WirenBoard.
        Все забываю причесать исходники и выложить всё на github, там все просчеты, схемы щитов, куча кода и т.п.
        Интерфейс нарисовал, как смог, вот такой, все крутилось, нажималось, управлялось:
        ibb.co/vHQhk9p
          +1
          В целом рынок SCADA и автономного железа для управления до сих пор в 90-х находится: уродливый, огромный, неповоротливый проприетарный софт, который невозможно толком потестировать; с железяками аналогичная ситуация.
          Вот реально, после поиска нормальных решений нашлись только mySCADA и WirenBoard. Активно развивающиеся, делающие все на современных технологиях и протоколах.
          Потом еще ребята с Питера меня нашли, тоже неплохие решения, но уже было поздно, я уже все сделал на том, что нашел до них: serebrum.ru/ru
          0
          Странно что есть иридиум в списке, но нет OpenSCADA
            0
            По работе идёт Шнайдеровская EcoStruxure — кто работал с TAC Vista — похоже. Visio-подобный редактор, бо́льшая часть — векторная с «примочками» на javascript. В 3й версии они переделали веб-морду и добавили в неё дашборды для вывода на планшеты.

            Весьма шустро и гибко (если ты программист и хоть немного в javascript), но привязано к их железу или серверному софту.

            … ну и цены :(((

            ЗЫ: для домашних поделок — пока OpenHAB+HABPanel+NodeRed, но хочется чего-то более СКАДА-подобного
              0
              Странно, что в списке SCADA-систем делает CoDeSys? Ну да, есть возможность визуализации, но не SCADA же.
              ЗЫ: К ответу на опрос — давно уже пользуемся SCADA КАСКАД
                +1
                одному устройству вобрать в себя функционал программируемого контроллера, сервера, и (при наличии у устройства выхода HDMI) еще и автоматизированного рабочего места оператора

                За такое (если это не пара ящиков с рассадой) «гвоздь надо в голову забить».

                Мухи (UI оператора) отдельно, управляющая логика и история процесса — отдельно. Элементарно же…
                  0
                  За такое (если это не пара ящиков с рассадой) «гвоздь надо в голову забить».
                  смотря какая рассада))
                  Мухи (UI оператора) отдельно, управляющая логика и история процесса — отдельно. Элементарно же…

                  Никто не писал, что нельзя использовать на низком уровне ПЛК, у нас на фото лежит ПР200 с маленькой внутренней логикой, а малина в качестве верхнего уровня, можно назвать АРМ оператора WEB версия только.
                  0
                  Небольшая неточность в статье: нумерация регистров в шаблоне Modbus Rapid SCADA по умолчанию начинается с 1 адреса, но при желании в свойствах шаблона можно поставить с 0.
                    0
                    Спасибо за поправку, проверим.
                    0
                    SCADA «Соната» — работа с ней, это боль.
                      0

                      Кто Вас заставил?

                        0
                        Руководство. Когда пришел она уже была. Думал разберусь и будет норм. Разобрался. Работа в ней — это преодоление всех ее багов и недоделок. Уже привык.
                      +1
                      По-порядку:
                      1. RapidScada на «малинку» поставить можно, но ИМХО тяжеловата она, к тому же тянет много зависимостей(почти весь mono). Есть ненулевая вероятность что съест всю память. Но для небольших инсталляций думаю подойдет.
                      2. У китайских «свистков» этой модели нет серийных номеров, что существенно затрудняет использование нескольких, приходится привязывать их к портам «малинки», но и их нумерация с версиями меняется.
                      3. У третьей малины есть ненулевая вероятность повиснуть в uboot при перезагрузке (watchdog не помогает). Конечно это случается редко, но случается.
                      4. При внезапном отключении питания можно повредить системный раздел. После этого система повиснет в recovery или вобще не запустится или запустится в RO и тогда уже не сможет работать SCADA (не проверял, но скорее всего упадет при запуске). Лучше вынести /opt на отдельный раздел, а коневой перевести на overlayfs.
                      5. Карты памяти не долговечны некоторые и без скады выходят из строя через пару лет использования.
                        0
                        По всем этим причинам рекомендовали «antexgate», там память eMMC, аппаратный wathdog, RS485 2шт на FTDI, для особо суровых есть EEPROM на 64кб на i2c шине. Если только web без рабочего стола думаю с памятью норма будет для небольших внедрений.
                          0
                          Не по всем. Остаются еще смонтированные на запись разделы.
                            0

                            eMMC покрепче гораздо чем sd, но можно внешний накопитель через usb.

                        0
                        Del
                          0

                          С удовольствием прочитал статью. Хотелось бы больше цифр, сколько ресурсов занимает скада (оперативная память, загрузка процессора) например, на 1000 сигналов?

                            0
                            SCADA это минимум 5 компонент — драйверы сбора данных, историческое хранилище, журнал аварийных ситуаций, визуализация, отчетность.

                            Пока этого всего тут я не вижу. Но начинание неплохое.
                              0
                              SCADA+

                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                              Самое читаемое