УкраїнськаEnglishmRussian
Вход/Новый

17го сентября 2016г. в городе Киев (Украина): Конференция разработчиков и пользователей свободного ПО — FOSS 2016: "OpenSCADA — достижения, перспективы и планы релиза 0.9LTS"

17.09.2016 11:00 Давность: 8 yrs
Категория: НовостьДоклад

Автор: Роман Савоченко


Конференция состоялась! На конференции зачитан доклад о достижениях, перспективах и планах релиза 0.9LTS проекта OpenSCADA.

Большая благодарность организаторам OSDN!

Сайт конференции: osdn.org.ua

В течении последних трёх лет проект OpenSCADA продолжил своё развитие в режиме глубокой стабилизации с элементами расширения существующего функционала и направленности на выполнения условий и заданий выпуска новой стабильной версии 0.9, чем в первую очередь стало развёртывание собственного сервера OpenSCADA, плановое обновление ресурсов проекта и создание новых сервисов. В докладе приведены знаковые достижения проекта за последние три года и планы, которые реализуются на данный момент, так и планы ближайшего времени.

Доклад/Статья

Проект OpenSCADA основан в 2003 году Савоченко Романом, как свободная реализацию Системы Диспетчерского Контроля и Сбора Данных (SCADA) или Человеко Машинного Интерфейса (HMI), на основе опыта использования и разработки коммерческих SCADA-систем. SCADA или HMI системы в целом предназначены и используются для осуществления человеком оперативного контроля за работой сложного технологического оборудования различных производственных предприятий.

На данный момент проект OpenSCADA является развитой SCADA/HMI системой, которая довольно широко используется как по прямому назначению, так, благодаря своей гибкости, и во многих смежных отраслях, как то: динамические модели и имитаторы технологических процессов реального времени, окружения исполнения Программируемых Логических Контроллеров (ПЛК), мониторинг оборудования серверов, построение умного дома и домовой автоматики. С некоторыми ограничениями и доработками, значительным образом во внутреннем окружении, OpenSCADA может использоваться и в отраслях: биллинговые системы, Управление Ресурсами Предприятия (ERP), учёт и бухгалтерия. Таким образом OpenSCADA с уверенностью можно называть в целом — система работы с данными реального времени.

Поскольку проект является свободным, предоставляется в основном под лицензией GPLv2, пользователь может свободно получить доступ к исходным текстам проекта, собрать его и использовать. Готовые сборки и пакеты программы на данный момент предоставляются для многих известных дистрибутивов и окружений Linux, на главном ресурсе проекта oscada.org. Для свободно-полученных исходных текстов, бинарных архивов или пакетов на форуме проекта предоставляется ограниченная бесплатная поддержка, в основном для проблем, которые разработчик может быстро локализовать у себя и для неспецифических пользовательских окружений. Для получения полноценной поддержки пользователь имеет возможность приобрести пакет коммерческой технической поддержки у разработчиков проекта. Кроме коммерческой поддержки пользователь может приобрести услуги по разработке решений на основе OpenSCADA как непосредственно у разработчиков, так и у сторонних интеграторов. Отсутствующие функции или расширения, которые не противоречат концепции проекта, пользователь может также заказать разработчикам OpenSCADA.

Основной процесс разработки обеспечивается автором и главным разработчиком OpenSCADA Савоченко Романом, который соответственно и определяет этот процесс. До последнего времени разработка в основном осуществлялась в пределах рабочей версии, путём целевой стабилизации и расширения, в процессе реализации решений пользователей. С началом 2016 года и достижения текущей рабочей версией приемлемого уровня стабильности, при внедрении всех ключевых изменений в архитектуре и концепции, была обновлена дорожная карта и начат процесс подготовки к выпуску релиза стабильной версии 0.9 LTS. Нужно отметить, что всё это время продолжают выпускаться обновления предварительной стабильной версии 0.8 LTS! Также нужно ответить некоторый рост качественного уровня и участия сообщества в разработке проекта, которое однако всё ещё довольно низкое, в основном из-за значительно специализированности программного обеспечения этого класса.

Из значительных расширений OpenSCADA общего характера стоит отметить следующие:

  • Значительная стабилизация ядра OpenSCADA и расширение возможностей отладки пользователем. Включение и контроль всех ядер процессора. Унификация внутренних ресурсов. Расширение механизма резервирования. Реализация механизма динамического перевода сообщений. Реализация механизма вызова/открытия документации проекта. Переход на схему разработки Work/LTS, т.е. разработка в пределах рабочей версии и выпуск обновлений к стабильной версии путём обратного портирования совместимых изменений из рабочей версии. Унифицирован и разработан новый механизм запуска программы с программы-менеджера проектов OpenSCADA.

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

  • Значительная стабилизация и расширение среды визуализации как для работы в сети, через сервер визуализации, так и в контексте реализации примитивов, в основном в UI.Vision. Расширение концепции сообщений.

  • Значительное расширение, стабилизация и повышение производительности транспортов, архивов и баз данных OpenSDADA.

  • Значительное пополнение поддерживаемых протоколов и оборудования через реализацию как протокол пользователя, на внутреннем языке программирования OpenSCADA.

Реализованные за последнее время проекты систем управления

Непосредственно автором OpenSCADA, в течении трёх последних лет, было реализовано или принято участие в пяти больших решениях систем управления с OpenSCADA в основе. Реализация двух решений все ещё продолжается, а одно превратилось в тираж с расширениями и доработками каждого нового релиза решения.

Из завершённых решений, которые описаны и опубликованы, можно отметить два, которые реализованы в 2014 и 2015 году на ТЭЦ города Краматорск, сразу после освобождения от оккупации. А именно “САУ Фосфатирования, Аминирования и Гидразина котлоагрегатов БКЗ 160–100 ПТ” и “САУ шаровых барабанных мельниц ШБМ 287\410 котлоагрегата №8 БКЗ 160–100 ПТ”. Последнее решение стало продолжением проекта 2010 года для котлоагрегатов №7 и 9. Результатом этих двух решений стала общая технологическая сеть оборудования коррекции котловой и питательной воды и системы пыле-подготовки в состав которой вошли три станции оператора и шесть контроллеров ICP_DAS LP8781 с OpenSCADA на них всех.

Собственный сервер проекта OpenSCADA и канал подключения к интернет

В начале 2014 года остро стал вопрос хостинга ресурсов проекта OpenSCADA и канала подключения к Интернет, в связи с проблемами и политикой, точнее полной её отсутствия, предыдущего хостинга фирмы ООО НИП “ДІЯ”. Поэтому был объявлен и удачно завершен сбор средств на новый канал и серверную инфраструктуру проекта. Основным и единственным спонсором стала фирма “Beams&Plasmas”. В этом году задача развёртывания нового сервера и переноса ресурсов проекту OpenSCADA была завершена: wiki.oscada.org/HomePageEn/Server.

Кроме текущих сервисов на новом сервере было развёрнуто: туннельное подключение для предоставления удалённого сервиса; автоматический сборщик проекта; модели “АГЛКС” и “Бойлер” с демонстрационным Web-доступом к них извне; умный дом на основе OpenSCADA с функциями мониторинга сервера и ERP.

На данный момент ресурсы OpenSCADA развёрнуты в облаке виртуальных серверов с доступом по домену OSCADA.ORG и через канал шириной 3МБ/с.

Автоматический сборщик проекта OpenSCADA

С целью упрощения сборок и пересборок пакетов, бинарных архивов и живых дисков дистрибутива автоматизации на основе OpenSCADA; на новом сервере были написаны скрипты и развёрнуто автоматический сборщик OpenSCADA.

На данный момент сборщик предусматривает проверку репозитория исходных тексов OpenSCADA Subversion и сборку двух веток, а именно: стабильной (LTS), сейчас это 0.8, и рабочей, сейчас это 0.9. Стабильная ветка, как правило, собирается при выпуске очередного обновления, приблизительно через 3-6 месяца и для всех целей первой ревизии стабильной версии. Рабочая версия пересобирается при каждой выгрузке изменений в SVN-репозиторий и в основном для целей, которые используют разработчики и пользователи коммерческих услуг и технической поддержки. Все сборки автоматическим сборщиком осуществляются ночью и обычно завершаются к полдню следующего дня.

На данный момент автоматический сборщик предусматривает цели:

  • формирование архива и RPM-пакета исходных текстов;

  • сборка пакетов для репозиторев дистрибутива Linux Автоматизации на OpenSCADA: Debian, ALTLinux (старые);

  • сборка пакетов для репозиторев дистрибутивов Linux стабильных версий и архитектур x86, x86_64, ARM: Debian, Ubuntu, CentOs, SuSE, Mandriva, ALTLinux;

  • сборка прошивок для встраиваемого оборудования и ПЛК;

  • сборка пакетов для мобильных платформ Maemo, MeeGo;

  • сборка живых образов и архивов живых дисков для дистрибутива автоматики OpenSCADA, на базе Debian и ALTLinux (старые).

Поскольку на данный момент осуществляется автоматическая сборка пакетов для локальных репозиториев основных дистрибутивов Linux непосредственно на сервере OpenSCADA то специальная сборка для первичных репозиториев дистрибутивов Linux прекращена, раньше это осуществлялось для ALTLinux и Fedora.

Дистрибутив Linux систем автоматизации на основе проекта OpenSCADA

В рамках проекта OpenSCADA уже довольно давно создаются сборки образов и архивов живых дисков и в этом году было решено этот процесс отделить и формализовать в проекте “Дистрибутив автоматизации Linux проекта OpenSCADA”, поскольку фактически образы создаваемых живых дисков строятся на дополнительных репозиториях пакетов. Репозитории пакетов, в первую очередь, включают пакеты самой OpenSCADA, а также и ряд пакетов операционной системы и окружения, адаптированных и собранных специально для этого проекта.

Живые диски, а сейчас и проект “Дистрибутив автоматизации Linux проекта OpenSCADA”, создаётся:

  • для предоставления быстрого способа знакомства с OpenSCADA;

  • как платформа для ПЛК и панельных ПК/ПЛК аппаратных архитектур x86 и x86_64;

  • как платформа для решений систем автоматизации в создании сборного диска проекта системы автоматизации в связке с установщиком типового, оптимизированного и стабилизированного окружения; документацией и другими файлами конфигурации частей проекта;

  • для обеспечения сервисных функций около программного обеспечения и оборудования автора и решений систем автоматизации.

На данный момент осуществлена замена базы дистрибутива автоматизации с дистрибутива ALTLinux на Debian, из-за множества причин как технического, так и политического характера. На основе Debian предоставляются сборки живых дисков для версий 7, 8 и для аппаратных архитектур x86, x86_64; которые также включены в автоматический сборщик ветви рабочей версии. Т.е. для каждой ревизии проекта OpenSCADA в репозитории исходных текстов Subversion осуществляется сборка этих живых дисков и пользователь имеет возможность сразу опробовать свежие возможности и исправления.

OPC-UA в OpenSCADA

Протокол OPC-UA поддерживается в OpenSCADA с 2009 года и за последние три года его реализация претерпела значительных изменений и улучшений, не в последнюю очередь благодаря использованию, обратной связи и прямых заказов на улучшения от пользователей. На данный момент реализована клиентская и серверная части этого протокола, причём серверная часть более развита в связи с требовательностью клиентов OPC-UA других производителей. Работа и совместимость реализации OPC-UA от OpenSCADA проверена на многих клиентах, благодаря пользователям; и создана таблица совместимости. Документация модуля DAQ.OPC-UA значительно обновлена, актуализирована и переведена на все три поддерживаемые автором языка.

В целом OPC-UA это многоплатформенный вариант реализаций протоколов OPC, который в виде устарелого, закрытого, небезопасного и одноплатформенного OPC-DA довольно часто встречается в автоматике коммерческих производителей; и вопрос шлюзования из существующих реализаций OPC-DA в OPC-UA поднимается все чаще. В случае с OpenSCADA прямое шлюзования станет возможно с адаптацией к работе на платформе MS Windows, что однако ещё не очень интересно пользователям и интеграторам, поскольку они не готовы платить за общедоступность результатов этой адаптации, согласно того, что OpenSCADA это свободное ПО. Однако с релизом версии 0.9 LTS запланировано публичное объявление сбора средств на выполнение работ по адаптации OpenSCADA к работе на платформе MS Windows.

Из значительных изменений в реализации OPC-UA, за последние три года, нужно отметить завершение и оформление отделения протокольной части кода в отдельную библиотеку под лицензией LGPLv3 для предоставления пользователям возможности создания собственных решений вокруг OPC-UA, а также значительную стабилизацию и реализацию серверной части в одном потоке с подключением, режим пуллинга входного транспорта, что кроме всего позволило портировать полноценный код OPC-UA в версию 0.8 LTS.

Расширения OpenSCADA для прямой работы с шинами и устройствами нижнего уровня: 1Wire, I2C, GPIO. Умный дом.

От основания проект OpenSCADA нацеливался на завершённые решения и протоколы источников данных в основном промышленного характера. Однако со временем, а имя с достижением высокого уровня готовности OpenSCADA для промышленной автоматики, автору стало интересно, и появилось некоторое время, освежить и актуализировать свои знания и заинтересованности в низкоуровневой электронике, на предмет низкоуровневых шин и сенсоров. Для этого был выбран и приобретён Raspberry Pi2, как платформа для свободного доступа к низкоуровневым шинам из окружения Linux и OpenSCADA. Также, к автоматическому сборщику OpenSCADA добавлена цель “Debian_8_armhf”, для сборки пакетов Debian 8 аппаратной архитектуры ARMHF, которые можно прямо, с репозитория, установить/обновить на RASPBIAN JESSIE.

На данный момент к OpenSCADA создан модуль DAQ.BCM2835, для прямого и быстрого доступа к GPIO Raspbery Pi. Скорость доступа к этому GPIO и виртуальной машины внутреннего языка программирования OpenSCADA.JavaLikeCalc позволила реализовать вывод данных на текстовый дисплей LCD1602A и опросить сенсоры DHT11, AM2320 путём прямой реализации их шины ONE-WIRE.

Модуль транспорта “Serial” был адаптирован для подключения и работы с устройством шины I2C. Через этот транспорт в режиме I2C были подключены и созданы шаблоны опроса чипов PCF8591 и PCF8574.

Для нужд проекта “Умный дом, на основе OpenSCADA” (квартира автора) были созданы шаблоны для опроса сети датчиков 1Wire от фирмы Dallas. На Linux, для опроса чипов 1Wire от фирмы Dallas, присутствуют как минимум два решения DIGITEMP и OWNET, которые однако в основном ограничиваются датчиками температуры и имеют проблемы интеграции, так, именно для OWNET раньше был создан к OpenSCADA модуль “DAQ.OneWire”. Шаблоны на данный момент созданы для 1Wire адаптеров DS9097 и DS9097U на внутреннем языке OpenSCADA и они позволяют автоматически определить, подключить, опросить и управлять устройствами на шине. В данный момент реализовано поддержку сенсоров температуры, двухканального DIO и запланировано реализацию поддержки ещё трёх присутствующих у автора. При необходимости, в будущем, будут реализованы адаптеры 1Wire на шинах USB, I2C и прямо через GPIO.

На данный момент фактически завершены подготовительные и опробационные работы вокруг шин и сенсоров низкого уровня, а также созданы устройства адаптеров 1Wire на интерфейс RS232, а именно: DS9097 и DS9097U. Печатные платы этих адаптеров были разработаны в KiCAD и изготовлены с помощью фотошаблона и плёночного фоторезиста. Далее запланировано развёртывание проводной сети 1Wire и RS485, а также установка сенсоров температуры DS18B20 с целью получения картины потерь энергии, целевого планирования мероприятий их устранения и оценки эффективности этих мероприятий.

Текущие планы в контексте подготовки к выпуску версии 0.9 LTS

Вектор деятельности над проектом OpenSCADA в основном сохраняется и направляется на целевую стабилизацию, в рамках рабочей ветки, и выпуски обновлений к стабильной. Однако с началом текущего года и переносом сервера начато движение в направлении выпуска новой стабильной версии 0.9 LTS, дорожная карта обновлена и сделана бессрочной, однако с прогрессом реализации по ключевым задачам/условиям выпуска новой стабильной версии, для восстановления стратегического и долгосрочного планирования.

Текущие условия/задачи выпуска новой стабильной версии 0.9 LTS такие:

  • Завершение адаптации OpenSCADA к прямой работе с низкоуровневыми шинами и устройствами вроде 1Wire, I2C, а также первичная, в объёме сети температурных сенсоров, реализация проекта умного дома.

  • Ревизия, актуализация и некоторое расширение Web-модулей OpenSCADA.

  • Перенос базы знаний и документирования на новый движок с унификацией структуры под многоязычность с приоритетом: Английский, Украинский, Русский; и автоматизация генерации готовых к печати документов.

  • Адаптация к работе на платформе “Android”.

Конечно, пользователи, инвесторы и спонсоры имеют возможность коррекции процесса развития проекта OpenSCADA реализуя или финансируя нужные им функции/задачи для чего присутствует перечень задач, которые требуют реализации и задачисловия релиза далёких планов 1.0: 

  • Адаптация к работе на платформе "MS Windows®".

  • Реализация функции визуального построения пользовательских программ, как для блочных, логических, релейных диаграмм; так и для визуального построения моделей технологических процессов.

Заключение

Интегрированная SCADA-система OpenSCADA является развитой, готовой и используется в сложных промышленных условиях для выполнения полного спектра задач автоматизированного управления технологическими процессами и автоматизации в целом.

Фактически OpenSCADA является системой для работы с динамическими данными в реальном времени, а её развитие автором направляется на расширение и охват близких ему смежных областей, унификацию базы знаний (Wiki), и выпуск новой стабильной версии 0.9 LTS, на фоне общей деятельности целевой стабилизации, поддержки и расширения.

Коммерческая деятельность вокруг проекта OpenSCADA не приносит значительной прибыли, что однако автора не останавливает и не остановит. Но для ускорения развития и повышения качества нужно дополнительное привлечение квалифицированных специалистов, что можно сделать только через рыночную оплату их работы, согласно уровня квалификации. Следовательно приветствуются любые мероприятия по помощи и целевому финансированию работ около и на основе OpenSCADA!


13692