From OpenSCADAWiki
Revision as of 19:35, 2 April 2023 by FuzzyBot (Talk | contribs) (Updating to match new version of source page)

Jump to: navigation, search
Other languages:
English • ‎mRussian • ‎Українська
Foundation: Jul 2002 (projecting), January 2003 (implementing)
Author: Roman Savochenko
  Maxim Lisenko (2007-2012), Maxim Kochetkov (2014-2016), Almaz Karimov (2008-2009, 2011), Arsen Zakojan (2017), Ruslan Yarmoliuk (2017), Arcadiy Kisel (2017)
Participants: see the detailed information
Policy: Free software (Open source software)
License: GPL v.2 for sources mostly, GFDL v.1.3 for documentation
Languages of the localization: English(en), Ukrainian(uk), German(de), mRussian(ru) and add
Version: 1 Work, 0.9 LTS (2018-...), 0.8 Old LTS (2012-2018)
Functions and demands: see the detailed information
Contacts:
Resources
WWW:
Files:
Repository:
Demo:

OpenSCADA represents an open SCADA or HMI system constructed on principles of modularity, cross-platform and scalability. SCADA (Supervisory Control And Data Acquisition) or Human Machine Interface (HMI) are the terms which are often used in sphere of automation of technological processes. SCADA or HMI systems are generically appointed and used to operational and responsible control by human for working of the complex technological equipment of different production companions. OpenSCADA is generically intended for: acquisition, archiving (conduct history), visualization of the information, issuing control actions, and also for other related operations, which are characteristic for full-featured SCADA or HMI systems.

1 Предпосылки

На рынке програмного обеспечения автоматизированных систем управления технологическими процессами (АСУ ТП) 2002 года сложилась ситуация, когда отсутствуют не только свободные SCADA системы, но и SCADA системы для платформ отличных от MS Windows+x86. Да, единицы есть, но про них почти ничего не слышно и выглядят они крайне блекло на фоне общей массы.

В тоже время фирмы, занимающиеся внедрением АСУ ТП, заинтересованы в полном контроле над SCADA системой, внедряемой на объектах заказчика. Эта заинтересованность связана со спецификой работы с Заказчиком. Заказчик является последним звеном в цепочке создания программы. От качества взаимодействия Заказчика и разработчиков прямо пропорционально зависит удовлетворённость Заказчика, а также скорость совершенствования программы. Вытекая из вышесказанного пропорционально зависит и имидж фирмы, внедряющей АСУ ТП. Применение законченных коммерческих SCADA систем, как правило, приводит к ухудшению или же полному отсутствию взаимодействия Заказчика с разработчиками.

Реально существуют следующие варианты решения сложившейся проблемы:

  • Первым вариантом может быть налаживание тесных связей с производителем SCADA систем, т.е. интеграция (явная или неявная) в подразделение по внедрению. Что, в свою очередь, равносильно полной или частичной потере самостоятельности.
  • Вторым вариантом является создание собственной коммерческой SCADA системы. Этим достигается полный контроль, однако для разработки системы, на высоком уровне, нужен огромный штат высококвалифицированных специалистов. Что в большинстве случаев не по карману фирмам внедряющим АСУ ТП. Как результат — квалификация специалистов довольно низка. И даже если фирма решается на подобный подвиг то SCADA система не дотягивает до уровня самой посредственной сторонней коммерческой системы и очень часто имеет место — низкое качество кода и(или) посредственная функциональность системы.
  • Третьим вариантом является использование открытых SCADA систем, то есть — совместная разработка. Это позволяет совместить преимущества вышеперечисленных вариантов:
    • полный контроль над SCADA системой;
    • не требуется огромного штата высококвалифицированных специалистов для развития системы, достаточно специалистов для дистрибуции системы;
    • приводит к повышению качества системы, за счёт множественной внешней экспертизы и широты поддерживаемых платформ;
    • позволяет выбирать платформу в зависимости от её преимуществ, а не по причине того, что только на ней работает SCADA система;
    • ну и прочие: психологические, экономические, моральные и юридические преимущества открытых систем.

Для совместной реализации третьего варианта и был основан проект OpenSCADA!

2 Цели проекта — реальность

Основными целями, которые преследует проект, являются:

  • открытость — в основном GPL v.2;
  • масштабированность, гибкость, расширяемость — модульность, многопоточность и внутренняя динамичность;
  • исполнительная избыточность — резервирование;
  • доступность — открытые исходные тексты; автоматическая сборка архивов, пакетов, живых дисков, ...; многоязычность; динамическая многоязычность; сборка и исполнение на Linux окружениях широкого возрастного диапазона, от 2002 года по современные;
  • надёжность — практические применения, быстрое решение проблем;
  • безопасность — разделение прав, SSL;
  • много-платформенность — x86_32, x86_64, ARM, Web, Android, QNX;
  • единый, унифицированный, удобный, динамичный и развитый интерфейс пользователя — Qt, Web, прозрачное и многоуровневое удалённое динамичное управление;
  • широкий круг источников данных — унифицированные, платы сбора данных и низкоуровневые шины, созданные в окружении OpenSCADA.

3 Политика разработки, лицензия

В качестве политики реализации данного проекта выбраны "OPEN SOURCE" принципы разработки ПО. Данная политика позволит привлечь к разработке, тестированию, развитию, распространению и использованию продукта значительное количество разработчиков, энтузиастов и других заинтересованных лиц при минимальных финансовых затратах. Программа распространяется на условиях лицензии GPL v2.

4 Области применения

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

С некоторыми ограничениями и корректировками, в основном во внутреннем окружении, OpenSCADA может быть использована в отраслях:

  • управление ресурсами предприятия (ERP);
  • Geo-локация и отслеживание положения;
  • торговые системы;
  • медицинские диагностические системы;
  • бухгалтерский учёт;
  • билинговые системы.

Соответственно мы можем с уверенностью называть OpenSCADA, как — система работы с данными в реальном времени.

В качестве базовой (хостовой) операционной системы (ОС) для разработки и использования выбрана ОС Linux, которая является стандартной POSIX совместимой ОС. Кроме того, ОС Linux является оптимальным решением в вопросах:

  • надёжности;
  • безопасности;
  • гибкости/масштабируемости;
  • доступности;
  • популярности и распространённости.

Поскольку OpenSCADA разрабатывается на стандартной POSIX ОС, по принципам кросс-платформенности, то её адаптация на остальные ОС не составит проблемы.

Актуальную и детальную функциональность OpenSCADA Вы можете посмотреть на странице функций.

5 Архитектура

Сердцем программы является модульное ядро.

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

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

Архитектурно, OpenSCADA состоит из подсистем:

  • Безопасность — содержит списки пользователей и групп пользователей, обеспечивает проверку прав на доступ к элементам программы и т.д.
  • Диспетчер модулей — обеспечивает контроль над модулями.
  • Базы данных (модульная) — обеспечивает доступ к базам данных.
  • Транспорты (модульная) — обеспечивает коммуникацию с внешней средой посредством различных коммуникационных интерфейсов.
  • Транспортные протоколы (модульная) — тесно связана с подсистемой транспортов и обеспечивает поддержку различных протоколов обмена с внешними системами.
  • Сбор данных (модульная) — обеспечивает сбор данных от внешних источников: контроллеров (ПЛК), датчиков и т.д. Кроме этого, подсистема может предоставлять среду для написания генераторов данных: модели, регуляторы, ... .
  • Архивы-История (модульная) — содержит архивы-историю двух типов: архивы сообщений и архивы значений. Способ архивирования определяется алгоритмом, который заложен в модуле архивирования.
  • Интерфейсы пользователя (модульная) — содержит функции пользовательских интерфейсов.
  • Специальные (модульная) — содержит функции не вошедшие в остальные подсистемы. В настоящий момент к этим функциям относятся и функции тестирования и библиотеки статических функций пользовательского API.

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

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

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

6 Распространение

Поскольку этот проект свободный то пользователь может свободно получить исходные тексты проекта для дальнейшей сборки и использования. Готовые к использованию сборки и пакеты программы доступны для большинства известных дистрибутивов и окружений Linux на главном ресурсе проекту http://oscada.org.

7 Поддержка и услуги

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

8 Помощь и участие в проекте

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