OpenSCADAWiki: Doc/ OpenSCADA050
 

OpenSCADA 0.5.0



Contents

Введение

Версию 0.5.0 системы OpenSCADA можно с уверенностью назвать переломной. Дело в том, что данная версия содержит ядро SCADA системы в котором реализованы все запроектированные базовые функции. Кроме этого, система практически вплотную приблизилась к реализации всех запроектированных базовых функций SCADA системы. Так, в дистрибутив системы была включена среда представления Vision Зайчука Евгения. Разработка которой, однако, ещё не завершена. Также система дважды была использована для решения практических задач. Первой задачей стала - построение динамической модели технологического процесса газо-лифтной компрессорной станции (ГЛКС). Вторая задача представляла собой высокочастотный сбор и архивирование 6 каналов датчиков давлений и 2 канала перепада той-же компрессорной станции на основе одноплатного компьютера (PC/104) с УСО "Athena" фирмы Diamond Systems.

Данный документ является обработкой(компиляцией) документа <ChangeLog> системы OpenSCADA версии 0.5.0 призванный вкратце и доходчиво осветить новые возможности системы OpenSCADA. Детально ознакомиться с изменениями в системе OpenSCADA можно в файле ChangeLog из дистрибутива системы или здесь: http://wiki.oscada.org/Works/ChangeLog

Ключевыми особенностями данной версии являются:

Новые и значительно обновленные модули:

1 Добавлена полная поддержка архивирования значений.

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

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

Архив может работать в трёх режимах:

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

В результате, архив может архивироваться многими архиваторами, предоставляя при этом простой механизм доступа как к данным в целом, так и данным отдельно взятого архиватора.

В модуль архивирования на файловую систему "BaseArh" была добавлена полная поддержка механизма архивирования значений в файлы. Кроме этого, обеспечен разумный подход в архивировании, позволивший значительно сократить размеры архивов. Подход заключается в двойной упаковке архивов. Первая упаковка реализует быстрый последовательный механизм заключающийся в сворачивании смежных точек с одинаковыми значениями в одно значение. Вторая упаковка подразумевает дожатие файла архива стандартным архиватором gzip.

Кроме этого, в модуле BaseArh реализован механизм упаковки данных четырёх стандартных типов системы OpenSCADA: логическое, целое, вещественное и строковое.

Также в архиватор сообщений модуля BaseArh добавлена поддержка формата архива плоского текста и упаковки файлов архивов архиватором gzip.

2 Переименована подсистема "Контроллеры" в "DAQ". Реализована поддержка жесткого реального времени.

Подсистема "Контроллеры" получила более адекватное статусу название: "DAQ", т.е Data acquisition - сбор данных.

Во все задачи периодического опроса добавлена поддержка режима жесткого реального времени на основе POSIX функции clock_nanosleep(). Режим жесткого реального времени поддерживается только при запуске системы с привилегиями "root". В процессе испытаний удалось достичь уверенной реакции не превышающей 2мс на ОС ALTLinux 3.0.

3 Добавлена поддержка параметров логического уровня.

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

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

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

Поскольку параметр контроллера, практически, выступает в роли шлюза между физической средой и SCADA системой, то и уведомлять про состояние физической среды вынужден именно он. Унифицированный механизм уведомления состоит из двух частей.

Первая это уведомление доступности атрибута параметра. Возможна ситуация, когда часть атрибутов параметра доступна, а часть недоступна. При этом, в первую очередь нас интересует именно само состояние доступности. Для индикации о недоступности атрибута было введено понятие "Ошибка значения (EVAL)" которое присваивается атрибуту. Для каждого типа значения было зарезервировано собственное ошибочное значение: EVAL_BOOL(2), EVAL_INT(-2147483647), EVAL_REAL(-3.3E308), EVAL_STR(<EVAL>). Также в механизм приведения была добавлена поддержка ошибочных значений. Хотя данный механизм и изымает из обращения крайние значения, он всё-же предпочтительнее поскольку идентификация доступности становится предельно простой, что несомненно важно для среды программирования и других подсистем.

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

Такой механизм уведомления позволяет совместить сразу три способа уведомления:

5 Добавлена поддержка параметров в модуль вычисления на основе Java-подобного языка "JavaLikeCalc" и модуль вычислений на основе блоков "BlockCalc"

С целью обмена вычисленными данными между системой OpenSCADA и вычислительными модулями была добавлена поддержка параметров в модули вычислителей JavaLikeCalc и BlockCalc.

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

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

6 Полноценная поддержка сбора данных плат фирмы Diamond Systems в модуле DAQ/DiamondBoards.

Реализован полноценный однопоточный доступ к драйверу фирмы Diamond System с поддержкой сбора данных по прерыванию. Практически это первый пример покадрового сбора и архивирования данных реализованный в системе OpenSCADA. Метод позволяет достичь частоты опроса в 100кГц для платы Athena фирмы Diamond systems.

7 Значительно переработана подсистема "БД" и концепция доступа к БД. Предоставлен интерфейс доступа к БД прямо через SQL-запросы.

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

С целью расширения API подсистемы "БД" была добавлена функция доступа к БД посредством SQL-запров. Естественно, эта функция работает только для БД поддерживающих SQL-запросы.

Однако, наиболее важным изменением стало создание механизма предварительной регистрации(открытия) нужных БД и последующей работы с ними. Этот механизм позволил скрыть особенности настройки БД (могут содержать и пароли) за её идентификатором. Так-же, механизм регистрации БД позволил раскрыть идею одновременного использования различных БД для суммарной загрузки системы. Например, можно выделять конфигурации отдельных контроллеров, сохранять их в собственной БД и распространять независимо. Этот пример вы можете увидеть в демонстрационном пакете системы OpenSCADA данной версии.

8 Реконструирован интерфейс управления системой OpenSCADA.

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

Также был пересмотрен механизм формирования информационной страницы, с целью повысить производительность и сделать этот процесс более надёжным.

Для более надёжного и безопасного приведения типов, при адресации, было внедрено динамическое приведение типов.

Важным приобретением также стала поддержка изображений языком интерфейса управления и включение библиотеки формирования изображения GD в систему. На основе этих возможностей были добавлены:

9 Создана объектная модель с пользовательскими функциями. Создано несколько библиотек функций для объектной модели системы.

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

Данный релиз поставляется с четырьмя библиотеками функций для объектной модели системы OpenSCADA. Три из них выполнены в динамических библиотеках, а одна построена на основе Java-подобного языка модуля JavaLikeCalc. Этими библиотеками являются:

Используя эти библиотеки и вычислители модулей JavaLikeCalc и BlockCalc пользователь может строить свои вычислительные алгоритмы или создавать новые библиотеки и функции.

10 Добавлена среда визуализации Vision.

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

12 Обновлены скрипты управления сборкой. Добавлена поддержки платформы x86_64.

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

На основе этого было добавлено условие для исключения из компиляции модуля DiamonBoards и условие выбора системной директории 64-разрядных библиотек на платформе x86_64.

13 Планы дальнейшего развития

Для реализации в следующей версии можно сформулировать следующие важные задачи:

14 Замечания к релизу

В процессе тестирования была подтверждена ошибка от 19.12.2005. Ошибка проявляется в сязке NPTL+UI/QTCfg в момент останова системы OpenSCADA. Других проблем эта ошибка не вызывает. На момент данного релиза локализовать проблему не удалось.

Ссылки

Referring pages: Doc
HomePageEn/Doc
HomePageUk/Doc