Русская версия?
Українська версія?
Author: /RomanSavochenko
Open SCADA system OpenSCADA belongs to the class of SCADA (Supervisory Control and Data Aquisition) systems. Systems of this class are used as an element of technological processes automation systems (ACS TP).
OpenSCADA system is constructed as a modular and highly scalable system. Hence the internal structure of the system must meet the high demands of flexibility.
To get data from outside the OpenSCADA system provides so-called "Data sources". All data sources are contained in the subsystem of the same name and grouped by type of data sources, defining the module of subsystem of data sources (DAQ). The module is the separate component of the OpenSCADA system, which for the "DAQ" subsystem's modules contains the controllers with parameters of the predetermined structure. Under the structure of the parameter it is meant the number of its attributes.
The nature of the data source can range from "raw" to the full. The "raw" means the source that provides only the basic signal (integer, float, boolean). The full one means the source, which in the parameter contains the attributes of additional values, covering virtually all diagnostic tasks, ie parameter is a complete object, not requiring additional information.
Учитывая такой разброс, может возникнуть ситуация, когда информации в объекте параметра недостаточно для описания объекта в целом и нужен производный объект на более высоком уровне абстракции. Решением такой ситуации может быть формирование дополняющих параметров, что является ненаглядным и вносит путаницу. Более правильным решением будет создание прослойки, так называемого "Логического уровня", выполняющей функции гибкого формирования параметров/объектов необходимой структуры, включая пост-обработку.
Функционально, разработка предназначена для предоставления в системе OpenSCADA механизма свободного формирования объектов параметров нужной структуры.
Эксплуатационным назначением разработки является:
Архитектурно, логический уровень должен удовлетворять следующим требованиям:
Исходя из архитектурных соображений можно сформировать требования к отдельным компонентам.
Требования к подсистеме "Параметры":
Требования к объектам "Шаблоны параметров":
Требования к объектам "Параметров":
Исходя из вышеизложенных требований разработаем Логический уровень параметров. Общая структура Логического уровня, в контексте взаимодействия с физическим, представлена на рис. 1.
Разработка подсистемы "Параметры" ничем существенно не отличается от других подсистем системы OpenSCADA, поэтому рассматривать особенности её формирования не будем. Шаблоны параметров и параметры являются интересным вопросом, поэтому рассмотрим особенности их формирования.
Требованиями к шаблону параметров, озвучена необходимость содержания структуры атрибутов, которые будут фигурировать как со стороны конфигурации параметра, так и со стороны результирующих атрибутов. Кроме того, необходимо обеспечить возможность вычисления атрибутов. Хорошим решением будет использования для этих целей объектов функций среды программирования?. Такой подход избавит от необходимости создания механизма добавления атрибутов, поскольку добавляться и формироваться они будут в виде параметров функции. Общую структуру формирования параметра по шаблону представлено на рис. 2.
Архитектура логического уровня получается предельно простая. В виде диаграммы классов её можно изобразить следующим образом (рис 3). Описание классов приведено в таблице 1.
Таблица 1. Классы логического уровня параметров
Класс | Ответственность | Связи |
TParamS | Класс подсистемы "Параметры". Содержит механизм вычисления параметров на шаблонах | Содержит параметры и их шаблоны. |
TParam | Класс параметра. Содержит структуру связей, кадр значений функции и может выполнять вычисления с помощью функции шаблона | Содержится в подсистеме "Параметры". Включает кадр значений объекта функции. |
TPrmTmpl | Класс шаблона параметра. Содержит структуру атрибутов(параметров функции) | Содержится в подсистеме "Параметры". Включает ссылку на объект функции. |
Логику работы логического уровня параметров можно записать следующим образом:
В шаблоне параметра, у атрибута, предусмотрено два свойства: "Атрибут", "Доступ" и "Значение". Свойство "Атрибут" описывает отражения на атрибут параметра. Предусмотрены следующие варианты этого свойства:
Свойство "Доступ" определяет связи этого параметра функции с физическим уровнем. Предусмотрены следующие варианты этого свойства:
Поле "Значение" описывает значение для констант и предпочитаемый атрибут параметра для связей. Описание предпочитаемого атрибута параметра, для связей, используется в целях описания неявного распределения атрибутов параметров. Структура описания следующая: <Описание параметра>|<атрибут>. Где "Описание параметра" используется для объединения параметров и помещения на форму конфигурации, а атрибут для автоматического связывания при назначении параметра.
В процессе реализации были созданы все компоненты, а также сценарии конфигурации, интерфейса управления, для них. Формы конфигурации подсистемы "Параметры" приведены на рис. 4. и рис. 5. Формы конфигурации шаблонов параметров приведены на рис. 6 и рис. 7. Формы конфигурации параметров логического уровня приведены на рис. 8, рис. 9 и рис.10.