From OpenSCADAWiki
Jump to: navigation, search
This page is a translated version of the page Modules/LogicLev and the translation is 100% complete.

Other languages:
English • ‎российский • ‎українська
Модуль Имя Версия Лицензия Источник Языки Платформы Тип Автор Описание
LogicLev Логический уровень 2.0 GPL2 daq_LogicLev.so en,uk,ru,de x86,x86_64,ARM DAQ Роман Савоченко Предоставляет чистый логический уровень параметров сбора данных.

Модуль является чистой реализацией механизма логического уровня, основанного на шаблонах параметров подсистемы "Сбор данных (DAQ)". Реализация модуля основана на проекте "Логический уровень параметров OpenSCADA". Практически, данный модуль является реализацией подсистемы "Параметры" указанного проекта, без шаблонов и вынесенная в модуль.

Модуль предоставляет механизм формирования параметров подсистемы "DAQ" уровня пользователя на основе других источников этой подсистемы. Фактически, модулем используются шаблоны подсистемы "DAQ" и специфический формат описания ссылок на атрибуты параметров подсистемы "DAQ".

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

1 Объект контроллера

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

Рис.1. Вкладка конфигурации объекта контроллера.

С помощью этой вкладки можно установить:

  • Состояние объекта контроллера, а именно: статус, "Включен", "Выполняется" и имя БД, содержащей конфигурацию.
  • Идентификатор, имя и описание контроллера.
  • Состояние "Включен" и "Выполняется", в которое переводить объект контроллера при запуске.
  • Имя таблиц для хранения конфигурации параметров контроллера на основе шаблонов и прямого отражения внешних параметров DAQ.
  • Планирование вычислений и приоритет задачи опроса источников данных.

2 Параметры

Модуль предоставляет два типа параметра: "Логический (std)" и "Отражение параметра (pRefl)". Дополнительными конфигурационными полями параметров данного модуля (рис.2) являются:

  • Логический (std):
    • Шаблон параметра — адрес шаблона параметра DAQ.
  • Отражение параметра"(pRefl):
    • Исходный параметр — адрес исходного параметра отражения.
Рис.2. Вкладка конфигурации параметра.

2.1 Логический (std)

При формировании шаблона логического типа параметра этого модуля нужно учитывать особенность формата ссылки шаблона. Ссылка должна записываться в виде: {Параметр}|{Идентификатор}, где:

  • {Параметр} — строка, характеризующая параметр;
  • {Идентификатор} — идентификатор атрибута параметра.

Подобная запись позволяет группировать несколько атрибутов одного исходного параметра и назначать их выбором только самого параметра. Т.е., в диалоге конфигурации шаблона (рис.3) будет указываться только параметр. Это однако не исключает возможности назначать атрибуты параметров отдельно каждый, кроме того, если опустить в конфигурации шаблона описание ссылки в указанном формате, то назначаться будет атрибут параметра (рис.4).

Модулем предусмотрена особая обработка ряда атрибутов шаблона:

  • f_frq — частота вычисления процедуры шаблона или время после последнего вычисления (отрицательное в секундах) для планирования по CRON, только чтение.
  • f_start — флаг первого выполнения процедуры шаблона — запуск, только чтение.
  • f_stop — флаг последнего выполнения процедуры шаблона — останов, только чтение.
  • f_err — ошибка параметра, полный доступ. Значение этого атрибута шаблона попадает в атрибут ошибки параметра "err". Записать сюда EVAL для возможности установки извне атрибута "err" и всех других в режиме Только для Чтения.
  • SHIFR — значение шифра параметра, только чтение.
  • NAME — значение имени параметра, только чтение.
  • DESCR — значение описания параметра, только чтение.
  • this — объект данного параметра, позволяет получить доступ к атрибутам параметра, например, для доступа к архивам-истории.

Знак "(+)", в конце адреса, сигнализирует об успешном связывании и присутствии целевого объекта. Для атрибутов объектного типа допустим иерархический доступ к конкретному свойству объекта путём указания его пути через символ '#', например: "LogicLev.experiment.Pi.var#pr1.pr2".

Рис.3. Вкладка конфигурации шаблона параметра.
Рис.4. Вкладка конфигурации шаблона параметра. Показывать только атрибуты.

В соответствии с шаблоном, лежащим в основе параметра, мы получаем набор атрибутов параметра как на рисунке 5.

Рис.5. Вкладка атрибутов параметра.

2.2 Отражение параметра (pRef)

Все атрибуты указанного для отражения параметра просто становятся доступными у данного параметра, тем самым осуществляя функцию проксирования, например, для сведения параметров других источников в один — экспортный объект контроллера (для ПЛК).

3 API пользовательского программирования

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

Объект "Параметр" [this]

  • bool attrAdd( string id, string name, string tp = "real", string selValsNms = "" ) [для включенного параметра логического типа] — добавление атрибута id с именем name и типом tp. Если атрибут уже присутствует то будут применены свойства, которые возможно изменить "на ходу": имя, режим выбора и параметры выбора.
    • id, name — идентификатор и имя нового атрибута;
    • tp — тип атрибута [boolean | integer | real | string | text | object] + режим выбора [sel | seled] + только для чтения [ro];
    • selValsNms — две строки со значениями в первой и их именами во второй, разделённые ";".
  • bool attrDel( string id ) [для включенного параметра логического типа] — удаление атрибута id.