OpenSCADA

Модули/Логический уровень

This page is a translated version of the page Modules/LogicLev and the translation is 79% complete.

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

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

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

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

Contents

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

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

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

With this tab you can set:

2 Parameters

The module provides two types of parameters: "Logical (Prm)" and "Reflection parameter (PrmRefl)". The additional configuration fields of the parameters of this module (Fig. 2) are:

Рис.2. Вкладка конфигурации параметра.

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

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

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

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

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

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

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

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

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

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

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

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

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


4 Service commands-functions of the Control Interface

Service functions are an interface for accessing OpenSCADA from external systems through the Control Interface. This mechanism is the basis of all exchange within OpenSCADA, implemented through weak links and OpenSCADA's own exchange protocol.


Getting for values of the template IO of the Logical Level parameter of the controller object
REQ: <get path="/DAQ/LogicLev/{CNTR}/prm_{PRM}[/prm_{PRM}]/%2fserv%2ftmplAttr" />

RESP: <get path="/DAQ/LogicLev/{CNTR}/prm_{PRM}[/prm_{PRM}]/%2fserv%2ftmplAttr" rez="0">{IOs}</get>

<get path="/DAQ/LogicLev/gen/prm_F3/%2fserv%2ftmplAttr" rez="0" user="roman">
  <ta id="in">44.9998202036118</ta>
  <ta id="inProc" />
  <ta id="var">44.9999585116556</ta>
  <ta id="ed">ton/h</ta>
  <ta id="min">0</ta>
  <ta id="max">100</ta>
  <ta id="scSqr">0</ta>
</get>

Setting for values of the template IO of the Logical Level parameter of the controller object
REQ[root-DAQ]: <set path="/DAQ/LogicLev/{CNTR}/prm_{PRM}[/prm_{PRM}]/%2fserv%2ftmplAttr">{IOs}</set>

<set path="/DAQ/LogicLev/gen/prm_F3/%2fserv%2ftmplAttr">
  <ta id="in">44.9998202036118</ta>
  <ta id="var">44.9999585116556</ta>
</set>
Modules/LogicLev/ru - GFDLMarch 2024OpenSCADA 0.9.7