OpenSCADA представляет собой открытую SCADA систему, построенную по принципам модульности, многоплатформенности и масштабируемости. SCADA (Supervisory Control And Data Acquisition) в переводе: «Системы диспетчерского управления и сбора данных» является термином, который часто употребляется в сфере автоматизации технологических процессов. Система OpenSCADA предназначена для: сбора, архивирования, визуализации информации, выдачи управляющих воздействий, а также других родственных операций, характерных для полнофункциональной SCADA системы.
Предпосылки
На рынке программ для АСУ-ТП (Автоматизированные системы управления технологическим процессом) сложилась ситуация, когда отсутствуют не только свободные SCADA системы, но и SCADA системы для платформ отличных от MS Windows+x86. Да, единицы есть, но про них почти ничего не слышно и выглядят они крайне блекло на фоне общей массы.
В тоже время фирмы, занимающиеся внедрением АСУ-ТП, заинтересованы в полном контроле над SCADA системой, внедряемой на объектах заказчика. Эта заинтересованность связана со спецификой работы с Заказчиком. Заказчик является последним звеном в цепочке создания программы. От качества взаимодействия Заказчика и разработчиков прямо пропорционально зависит удовлетворённость Заказчика, а также скорость совершенствования программы. Вытекая из вышесказанного, пропорционально зависит и имидж фирмы, внедряющей АСУ-ТП. Применение законченных коммерческих SCADA систем, как правило, приводит к ухудшению или же полному отсутствию взаимодействия Заказчика с разработчиками.
Реально существуют следующие варианты решения сложившейся проблемы:
Первым вариантом может быть налаживание тесных связей с производителем SCADA систем, т.е интеграция (явная или неявная) в подразделение по внедрению. Что, в свою очередь, равносильно полной или частичной потере самостоятельности.
Вторым вариантом является создание собственной коммерческой SCADA системы. Этим достигается полный контроль, однако для разработки системы, на высоком уровне, нужен огромный штат специалистов высокой квалификации. Что, в большинстве случаев, не по карману фирмам внедряющим АСУ-ТП. Как результат - квалификация специалистов довольно низка. И даже если фирма решается на подобный подвиг, то SCADA система не дотягивает до уровня самой посредственной сторонней коммерческой системы, и очень часто имеет место низкое качество кода и(или) посредственная функциональность системы.
Третьим вариантом является использование открытых SCADA систем, то есть - совместная разработка. Это позволяет совместить преимущества вышеперечисленных вариантов:
полный контроль над SCADA системой;
не требуется огромного штата высококвалифицированных специалистов для развития системы, достаточно специалистов для дистрибьюции системы;
приводит к повышению качества системы, за счёт множественной внешней экспертизы и широты поддерживаемых платформ;
позволяет выбирать платформу в зависимости от её преимуществ, а не по причине того, что только на ней работает SCADA система;
ну и прочие психологические, экономические, моральные и юридические преимущества открытых систем.
Для совместной реализации третьего варианта и был основан проект OpenSCADA!
Цели проекта
Основными целями, которые преследует проект, являются:
открытость;
надежность;
гибкость;
масштабируемость;
многоплатформенность;
безопасность;
финансовая доступность;
предоставление удобного интерфейса управления;
Политика разработки. Лицензия.
В качестве политики реализации данного проекта выбраны «OPEN SOURCE» принципы разработки ПО. Данная политика позволит привлечь к разработке, тестированию, развитию, распространению и использованию продукта значительное количество разработчиков, энтузиастов и других заинтересованных лиц при минимальных финансовых затратах. Программа распространяется на условиях лицензии GPL v2.
Области применения
Система OpenSCADA предназначена для выполнения как обычных функций SCADA систем, так и для использования в смежных областях информационных технологий.
Система OpenSCADA может использоваться для следующих целей:
создание АСУ ТП (SCADA) или систем телемеханики;
построение систем мониторинга или управления домовой автоматикой;
создание встраиваемых систем (среда исполнения ПЛК);
построение динамических моделей и имитаторов;
использование на ПК, серверах и кластерах: сбор и обработка информации об ОС, её окружении и оборудовании;
ERP, биллинг, статистика.
В качестве базовой (хостовой) операционной системы (ОС) для разработки и использования выбрана ОС Linux, которая является стандартной POSIX совместимой ОС. Кроме того, ОС Linux является оптимальным решением в вопросах:
надёжности;
гибкости/масштабируемости;
доступности;
популярности и распространенности.
Поскольку система OpenSCADA разрабатывается на стандартной POSIX ОС, по принципам кроссплатформенности, то её адаптация на остальные ОС не составит проблемы.
Архитектура
Сердцем системы является модульное ядро.
В зависимости от того, какие модули подключены, система может выполнять как функции различных серверов, так и функции клиентов клиент-серверной архитектуры. Собственно, архитектура системы позволяет реализовывать распределённые клиент-серверные системы любой сложности.
Для достижения высокого быстродействия, за счёт сокращения времени коммуникаций, архитектура позволяет объединять функции распределённых систем в одной программе.
Архитектурно, система OpenSCADA состоит из подсистем:
Подсистема безопасности. Содержит списки пользователей и групп пользователей, обеспечивает проверку прав на доступ к элементам системы и т.д.
Модульная подсистема баз данных. Обеспечивает доступ к базам данных.
Модульная подсистема транспортов. Обеспечивает коммуникацию с внешней средой, посредством различных коммуникационных интерфейсов.
Модульная подсистема коммуникационных протоколов обмена. Тесно связана с подсистемой транспортов и обеспечивает поддержку различных протоколов обмена с внешними системами.
Модульная подсистема сбора данных (DAQ). Обеспечивает сбор данных от внешних источников: контроллеров, датчиков и т.д. Кроме этого, подсистема может предоставлять среду для написания генераторов данных(модели, регуляторы ... ).
Модульная подсистема архивов. Содержит архивы двух типов: архивы сообщений и архивы значений. Способ архивирования определяется алгоритмом, который заложен в модуле архивирования.
Модульная подсистема пользовательских интерфейсов. Содержит функции пользовательских интерфейсов.
Подсистема управление модулями. Обеспечивает контроль над модулями.
Модульная подсистема специальных функций. Содержит функции не вошедшие в остальные подсистемы. В настоящий момент к этим функциям относятся и функции тестирования.
Исходя из принципа модульности, указанные выше модульные подсистемы могут расширять свою функциональность путём подключения модулей соответствующего типа.
Модульное ядро системы OpenSCADA выполняется в виде статической и совместно используемой библиотек. Это позволяет встраивать функции системы в существующие программы, а также создавать новые программы на основе модульного ядра системы OpenSCADA. Однако модульное ядро является самодостаточным и может использоваться посредством простой запускающей программы.
Модули системы OpenSCADA хранятся в динамических библиотеках. Каждая динамическая библиотека может содержать множество модулей различного типа. Наполнение динамических библиотек модулями определяется функциональной связностью самих модулей. Динамические библиотеки допускают горячую замену, что позволяет, в процессе работы, производить обновление модулей. Метод хранения кода модулей в динамических библиотеках является основным для системы OpenSCADA, поскольку поддерживается практически всеми современными ОС. Это не исключает возможности разработки других методов хранения кода модулей.
Помощь проекту
Если вы заинтересованы в развитии проекта, и у вас есть мысли опыт и знания для совершенствования данной разработки, то добро пожаловать к участию в разработке. Проект разрабатывается на открытых основаниях, следовательно все его наработки являются общественным достоянием, а значит совершенствуя его мы помогаем друг другу, создавая всё более совершенный инструмент для решения наших задач!