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

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

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

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


Автор, лидер и главный разработчик Роман Савоченко, на конференции, зачитал доклад про перспективы версии 0.9LTS проекта OpenSCADA в движении к выполнению заданий, которые являются условием выпуска релиза.

Большая благодарность OSDN за организацию конференции!

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

Текущей стабильной версией продолжительной поддержки проекта OpenSCADA является 0.8 которая была выпущена в 2012 году и для которой всё это время выпускаются обновления. Также, в рамках текущей рабочей версии 0.9, продолжается основной процесс разработки, который к концу этого года (2017) должен достичь запланированной стадии и результатом чего должен стать выпуск новой стабильной версии продолжительной поддержки 0.9 LTS. В данном докладе проект свободной SCADA системы стабильной версии 0.9 предварительно представляется из соображений на её возможности, как развитой SCADA системы, в основной и смежных отраслях назначения, и приводится прогресс в заданиях, которые составляют условие её выпуска.

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

Проект 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!

На данный момент основное время и усилия разработчиков положено на завершение условных заданий выпуска новой стабильной версии 0.9 LTS.

Практические решения, построенные на основе OpenSCADA

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

Автоматизированные системы управления технологическими процессами (АСУ ТП) и окружения исполнения ПЛК:

  • “Система Автоматизации Метрополитена”, 2016 (Оптима). Поддержка продолжается...

  • “САУ шаровых барабанных мельниц ШБМ 287\410 котлоагрегата №8 БКЗ 160–100 ПТ”, в 2010 для №7,9 и в 2015 для №8. В качестве ПЛК использован ICP-DAS LP-8781 с OpenSCADA в роли среды исполнения ПЛК. Поддержка продолжается ...

  • “САУ Фосфатирования, Амминирования и Гидразина котлоагрегатов БКЗ 160–100 ПТ”, 2014 после освобождения от оккупации. В качестве ПЛК использован ICP-DAS LP-8781 с OpenSCADA в роли среды исполнения ПЛК. Поддержка продолжается ...

  • Система Контроля Реактивности (СКР) Ядерной Подкритической Установки (ЯПУ), 2013...2015. Прерван.

  • Система сбора и визуализации котла №1 цеха ТЕЦ, 2012.

  • Вакуумная технологическая установка, 2011. Поддержка продолжается ...

  • Диспетчеризация электрощитовой, 2011.

  • Диспетчеризация птичьего хозяйства, 2010. Поддержка продолжается ...

  • Диспетчеризация вагономоечного комплекса, 2009

Динамические модели технологических процессов реального времени, на данное время доступны через Web в много-языковом интерфейсе (на трёх языках):

  • Динамическая модель ТП парового котла, с 2007 года и на текущий день, как демонстрация OpenSCADA.

  • Динамическая модель ТП АГЛКС, с 2006 рода и по текущий день, как демонстрация OpenSCADA.

Встраиваемые системы: ICP DAS LP-xxxx, LX-8x31; Segnetics SMH2Gi; Diamond Systems ATH400-128; Kontron MOPSlcdLX; Tri-M VSX104, ICOP VDX-6354; ООО "А-ТЕКС" iROBO-Fanless; Завод Электрооборудования Тіон-Про270; Avalue FPC-1705; Advantech PCA-6753, PPC-L126; "Raspberry Pi Foundation" RPi 1, 2, 3; Orange Pi Zero.

Мобильные устройства: Nokia N800, N810, N900, N950, N9; уже есть рабочие сборки для Android.

Умный дом и домовая автоматика: Умный дом (HouseSpirit), 2011; Собственный умный дом с системой диспетчеризации сервера, 2014 и на данный момент.

Другие решения около проекта OpenSCADA и его инфраструктуры:

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

  • Автоматический сборщик проекта OpenSCADA (2015) для упрощения сборок и пересборок пакетов, бинарных архивов и живых дисков дистрибутива автоматизации на основе OpenSCADA. Сборщик предусматривает проверку репозитория исходных текстов OpenSCADA Subversion и сборку двух веток, а именно: стабильную (LTS), сейчас 0.8, и рабочей, сейчас 0.9.

  • Дистрибутив Linux систем автоматизации на основе проекта OpenSCADA (2012) отделён и формализован в проекте “Дистрибутив автоматизации Linux проекта OpenSCADA”. Репозитории пакетов дистрибутива, в первую очередь, включают пакеты самой OpenSCADA, а также ряд пакетов операционной системы и окружения, адаптированных и собранных специально для этого проекта. На данный момент осуществлена замена базы дистрибутива автоматизации с дистрибутива ALTLinux на Debian, в виду множества причин как технического, так и политического характера. Живые диски, а сейчас и проект “Дистрибутив автоматизации Linux проекта OpenSCADA”, создаётся:

    • для предоставления быстрого и простейшего способа знакомства и развёртывания решений с OpenSCADA в проверенном и надёжном окружении Linux;

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

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

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

OpenSCADA 0.9LTS

Будущую стабильную версию значительным образом можно оценить уже сейчас, не ожидая официального анонса и ответвления от рабочей версии. А именно, использовав регулярные сборки текущей рабочей версии в виде: живых дисков, пакетов и репозиториев пакетов. А учитывая тот факт, что текущая стабильная версия поддерживается с её официального выпуска (выпущено уже 18 обновлений) то много функций присутствуют там; т.е. для целевого ознакомления с отдельными функциями Вы можете использовать даже текущую стабильную версию.

На данный момент активно ведутся работы над двумя задачами кросс-платформенности, а именно:

  • Расширение модулей присутствующих WEB-интерфейсов до уровня современных Web-технологий и к как можно ближе к функциональным возможностям основных их аналогов на основе Qt — выполнено на 90%, уровень Web-інтерфейсов позволяет пользоваться ими как первичными (субъективно) и реализована многоязычность.

  • Адаптация к исполнению на программной платформе “Android” — выполнено на 90% и доступны рабочие сборки.

Также активно ведутся работы над последним условным пунктом выпуска релиза 0.9 LTS, а именно — над унификацией и динамической актуализацией off-line документации OpenSCADA, что заключается в: смене движка Базы Знаний (Wiki) проекта на MediaWiki; унификации структуры Базы Знаний; перенос, верификация и полный перевод (на первичные языки) основной документации; реализации динамического формирования-обновления off-line документации с Базы Знаний. На данный момент завершен процесс формального анализа и выбора нового Wiki-движка, формирования структуры новой Wiki и осуществляется самая продолжительная процедура — перенос, верификация и полный перевод. Т.е. это задание выполнено на 30%.

Из уже присутствующих значительных возможностей и особенностей будущего релиза 0.9 LTS нужно отметить следующие, системные:

  • Значительная стабилизация ядра OpenSCADA, унификация контроля внутренних ресурсов и расширение возможностей отладки пользователем. Так, код динамического объекта OpenSCADA уже даже включен в текущую стабильную ветвь, обновлением 17.

  • Расширение механизма резервирования, который потенциально предусматривает резервирование любой подсистемы и на данный момент реализует резервирование подсистем “Сбор данных” и “Архивация”.

  • Поддержка иерархичных параметров объектов контролеров сбора данных.

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

  • Механизм вызова/открытия документации проекта, который с модернизацией Базы Знаний (Wiki) проекта OpenSCADA будет предусматривать обновления offline документации с обновлением и сборкой OpenSCADA.

  • Переход на концепцию разработки — Рабочая/LTS, то есть разработка в рамках рабочей версии и выпуск обновлений к стабильной версии путём обратного портирования совместимых изменений из рабочей версии. Фактически переход произошёл в 2013 году когда текущей стабильной версией признана 0.8 LTS, а рабочей 0.9 Work.

  • Изменение версий модулей происходит со сменой в коде модуля и перед их выгрузкой в репозиторий выходных текстов.

  • Унификация и разработка нового механизма запуска программы из программы-менеджера проектов OpenSCADA. Вероятно, что этот механизм будет расширен с переносом его в модуль UI.QTStarter, в рамках адаптации к программной платформе “Android”.

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

    • Отправка SMS сообщений (SMS) и электронных писем (SMTP).

    • Источник Бесперебойного Питания (UPS), как объект данных с атрибутами со значениями.

    • Простые сенсоры и датчики: Елемер TM510x; EDWARDS TURBOMOLECULAR PUMPS (SCU750); Sycon Multi Drop Protocol (SMDP); Блок питания турбо-молекулярного насоса (TMP-xx03); Измерение температуры IT-3 (IT3); IVE-452HS-02; OPTRIS CT/CTL; CTR 100, 101.

    • Компьютер теплового счётчика VKT7.

    • IEC-60870-104.

    • Тестовые реализации и примеры: DCON, OWEN.

    • One Wire с помощью {DS9097,DS9097U} (1W_{DS9097,DS9097}) для чипов: DS1820, DS1820/DS18S20/DS1920, DS1822, DS2413, DS2408, DS2450, DS2438.

    • I2C: PCF8591, PCF8574, BMP180, DS3231, AT24C{32|64}.

    • GPIO: DHT11,22 (AM23XX). GPIO|I2C: 1602A(HD44780).

В рабочей версии были створены новые модули и значительным образом обновлены существующие:

  • Добавлены новые модули:

    • БД посредством ODBC (ODBC) — модуль реализации доступа к базам данных посредством прослойки БД ODBC и коннекторов к нему.

    • Директории посредством LDAP (DB.LDAP) — модуль реализации доступа к сервисным директориям по протоколу LDAP.

    • MMS(IEC-9506) (DAQ.MMS) — модуль поддержки обмена данных из источниками данных по протоколу Manufacturing Message Specification (MMS, IEC-9506).

    • Comedi (DAQ.Comedi) — модуль поддержки источников данных реального времени (библиотека “Comedi”), которые основаны на платах сбора данных (DAQ) различных производителей и устанавливаются на шине: ISA, PCI, PCMCIA и USB.

    • SMH2Gi (DAQ.SMH2Gi) — модуль реализации доступа к аппаратным модулям источникам данных ПЛК Segnetics SMH2Gi "MC", "MR", а также взаимодействия с оригинальным окружением "SMLogix".

    • Fastwel IO (DAQ.Fastwel) — модуль обмена данными с аппаратными модулями Fastwel IO.

    • FT3 (АПСТМ) (DAQ.FT3) — модуль обмена данными с контроллерами АПСТМ, АСДКУ, СУАП.

    • BCM2835 (DAQ.BCM2835) — модуль доступа по GPIO одноплатных ПК Raspberry Pi и совместимых.

  • Вычислитель на основе Java-подобного языка (DAQ.JavaLikeCalc) значительно стабилизирован, оптимизирован и расширен: сохранением контекста вычисления функции, поддержкой внутренних функций, динамического перевода сообщений и многими другими функциями интерфейса пользовательского программирования в целом.

  • Логический уровень параметров (DAQ.LogicLev) значительно стабилизирован.

  • Шлюз источников данных (DAQ.DAQGate) значительно стабилизирован и расширен шлюзованием сообщений, связанных с выбранным источником данных.

  • Сбор данных ОС (DAQ.System) стабилизирован, несколько расширен источниками данных: “Файловая Система”, “ИБП”; и возможностью отделения медленных источников от быстрых.

  • ModBus ({DAQ,Protocol}.ModBus) стабилизирован и расширен поддержкой строки как последовательности значений регистров.

  • Клиент DCON (DAQ.DCON) значительно расширен поддержкой специфических модулей.

  • OPC-UA (DAQ.OPC_UA) значительно стабилизирован и расширен реализацией, в клиентской части сервиса, публикацией и поддержкой “кусков”; специфический код протокола выделен в библиотеку.

  • Оборудование ICP_DAS (DAQ.ICP_DAS) значительно расширено, а фактически полностью переписано, поддержкой всех присутствующих плат сбора данных от фирмы ICP_DAS для серии I8k, I-87k, на шине ISA и унифицированные типы для стандартных модулей серии I7k.

  • Siemens S7 ПЛК (DAQ.Siemens) значительно стабилизирован и расширен собственной реализацией ISO-TSAP.

  • Diamond платы сбора данных (DAQ.DiamondBoards) значительно расширены, а фактически полностью переписаны, поддержкой всех присутствующих плат сбора данных от фирмы Diamond Systems.

  • Устройства АСКО (DAQ.AMRDevs) расширено, реализованной полностью, поддержкой счётчика Контар (МЗТА).

  • Все модули БД значительно стабилизированы, увеличена их производительность и расширены динамическим переводом и режимом предзагрузки сканирующего запроса.

  • Архиватор на БД (Archive.DBArch) значительно расширен оптимизацией записи и чтения БД, а именно это: групповая запись нескольких архивов в одну таблицу, чтение блоками кратными десяти в одном запросе и восстановление перечня архивов из информации в БД.

  • Архиватор на ФС (Archive.FSArch) значительно стабилизирован и дополнен абсолютным ограничением размеру архиву на диске.

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

  • Сокеты (DAQ.Sockets) расширены поддержкой шины RAWCAN и диагностической информацией.

  • Последовательный интерфейс (Transport.Serial) расширен поддержкой низкоуровневой шины I2C; специальными пользовательскими функциями последовательного интерфейса: “sendbreak”, “TS”, “DR”, “DCD”, “RI”; расширением управления RTS для RS-485.

  • Слой безопасных сокетов (Transport.SSL) расширен поддержкой: TLSv1.1, TLSv1.2, DTLSv1.

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

  • HTTP (Protocol.HTTP) расширен адаптивностью к интерфейсам пользователя, в системных диалогах, и динамичной многоязычностью.

  • Системный конфигуратор Qt (UI.QTCfg) значительно стабилизирован и расширен асинхронными запросами к интерфейсу управления OpenSCADA, улучшенной реализацией элементов контроля.

  • Динамический WEB конфигуратор (UI.WebCfgD) расширен новым дизайном с использованием CSS3 и возможностей современных WEB-браузеров.

  • Концепция и движок среды визуализации и управления значительно стабилизирована и расширена поддержкой специфических для визуализатора атрибутов виджетов, реализацией нового-гибкого механизма сообщений пользователя, диагностикой исполнения, фоновым (в отдельном потоке) исполнением задачи формирования документов, увеличением количества трендов на одному кадре до 100.

  • Рабочий интерфейс пользователя Qt (UI.Vision) значительно стабилизирован и расширен для работы в сети, через сервер визуализации; реализацией группы специфических этому визуализатору атрибутов; реализацией видов “Дерево”, “Таблица” и расширением виду “Кнопка”, примитива “Элементы формы”; реализацией вида “XY” примитива “Диаграмма”; значительным рефакторингом кода примитива “Элементарная фигура”; поддержкой динамичной многоязычности.

  • Рабочий интерфейс пользователя Web (UI.WebVision) значительно стабилизирован, оптимизирован и расширен использование CSS3 и возможностей современных браузеров, а именно: увеличена отзывчивость интерфейса, добавлено масштабирование к доступному пространству окна браузера, реализованы все примитивы интерфейса; поддержкой динамичной многоязычности.

  • Библиотека функций системного API среды пользовательского программирования (Special.FLibSYS) стабилизирована и расширена некоторыми функциями и объектами: “floatExtract”, “md5”, “tmSleep”, об'єкт “IO”; существующие функции и объекты значительно расширены на предмет: “dbReqSQL”, “FFT”, “strParse”, “strDec4Bin”.

Заключение

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

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

Текущие достижения и решения проекта OpenSCADA осуществлены на программной платформе Linux и аппаратных платформах x86_32, x86_64, ARM. И в процессе приближения к версии 0.9 LTS осуществляется значительная работа по расширению возможностей проекта к адаптации его работы на других платформах, через вывод Web-интерфейсов на уровень высокой готовности и стабильности, а также адаптации к работе на программной платформе Android.


13904