16го сентября 2017г. в городе Киев (Украина): Конференция разработчиков и пользователей свободного ПО — FOSS 2017: "OpenSCADA — открытая SCADA система в перспективах релиза 0.9LTS"
|
|
Автор, лидер и главный разработчик Роман Савоченко, на конференции, зачитал доклад про перспективы версии 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.
|
|