Line 37: | Line 37: | ||
[[File:LogicLev_prm_ru.png|center|frame|Рис.2. Вкладка конфигурации параметра.]] | [[File:LogicLev_prm_ru.png|center|frame|Рис.2. Вкладка конфигурации параметра.]] | ||
− | === | + | === Логический (Prm) === |
− | + | При формировании шаблона логического типа параметра этого модуля нужно учитывать особенность формата ссылки шаблона. Ссылка должна записываться в виде: '''{Параметр}|{Идентификатор}''', где: | |
− | * ''{ | + | * ''{Параметр}'' — строка, характеризующая параметр; |
− | * ''{ | + | * ''{Идентификатор}'' — идентификатор атрибута параметра. |
Подобная запись позволяет группировать несколько атрибутов одного исходного параметра и назначать их выбором только самого параметра. Т.е., в диалоге конфигурации шаблона (рис.3) будет указываться только параметр. Это однако не исключает возможности назначать атрибуты параметров отдельно каждый, кроме того, если опустить в конфигурации шаблона описание ссылки в указанном формате, то назначаться будет атрибут параметра (рис.4). | Подобная запись позволяет группировать несколько атрибутов одного исходного параметра и назначать их выбором только самого параметра. Т.е., в диалоге конфигурации шаблона (рис.3) будет указываться только параметр. Это однако не исключает возможности назначать атрибуты параметров отдельно каждый, кроме того, если опустить в конфигурации шаблона описание ссылки в указанном формате, то назначаться будет атрибут параметра (рис.4). |
Revision as of 13:06, 28 January 2024
Модуль | Имя | Версия | Лицензия | Источник | Языки | Платформы | Тип | Автор | Описание |
---|---|---|---|---|---|---|---|---|---|
LogicLev | Логический уровень | 2.9 | GPL2 | daq_LogicLev.so | en,uk,ru,de | x86,x86_64,ARM | DAQ | Роман Савоченко | Предоставляет чистый логический уровень параметров сбора данных. |
Модуль является чистой реализацией механизма логического уровня, основанного на шаблонах параметров подсистемы "Сбор данных (DAQ)". Реализация модуля основана на проекте "Логический уровень параметров OpenSCADA". Практически, данный модуль является реализацией подсистемы "Параметры" указанного проекта, без шаблонов и вынесенная в модуль.
Модуль предоставляет механизм формирования параметров подсистемы "DAQ" уровня пользователя на основе других источников этой подсистемы. Фактически, модулем используются шаблоны подсистемы "DAQ" и специфический формат описания ссылок на атрибуты параметров подсистемы "DAQ".
Также, модулем реализуются функции горизонтального резервирования, а именно — совместной работы с удалённой станцией этого-же уровня. Кроме синхронизации значений и архивов атрибутов параметров, модулем осуществляется синхронизация значений вычислительных шаблонов с целью безударного подхвата алгоритмов.
Contents
[hide]1 Объект контроллера
Для добавления источника данных параметров логического уровня создаётся и конфигурируется объект контроллера OpenSCADA. Пример вкладки конфигурации объекта контроллера данного типа изображен на рисунке 1.
With this tab you can set:
- State of the controller object, as follows: status, "Enabled", "Running" and the database name containing the configuration.
- Identifier, name and description of the controller.
- The state "Enabled" and "Running", in which the controller object must be translated at start up.
- Policy of scheduling and priority of the data acquisition task.
2 Параметры
Модуль предоставляет два типа параметра: "Логический (Prm)" и "Отражение параметра (PrmRefl)". Дополнительными конфигурационными полями параметров данного модуля (рис.2) являются:
- Логический (Prm):
- Шаблон параметра — адрес шаблона параметра DAQ.
- Отражение параметра"(PrmRefl):
- Исходный параметр — адрес исходного параметра отражения.
2.1 Логический (Prm)
При формировании шаблона логического типа параметра этого модуля нужно учитывать особенность формата ссылки шаблона. Ссылка должна записываться в виде: {Параметр}|{Идентификатор}, где:
- {Параметр} — строка, характеризующая параметр;
- {Идентификатор} — идентификатор атрибута параметра.
Подобная запись позволяет группировать несколько атрибутов одного исходного параметра и назначать их выбором только самого параметра. Т.е., в диалоге конфигурации шаблона (рис.3) будет указываться только параметр. Это однако не исключает возможности назначать атрибуты параметров отдельно каждый, кроме того, если опустить в конфигурации шаблона описание ссылки в указанном формате, то назначаться будет атрибут параметра (рис.4).
Модулем предусмотрена особая обработка ряда атрибутов шаблона:
- f_frq — частота вычисления процедуры шаблона или время после последнего вычисления (отрицательное в секундах) для планирования по CRON, только чтение.
- f_start — флаг первого выполнения процедуры шаблона — запуск, только чтение.
- f_stop — флаг последнего выполнения процедуры шаблона — останов, только чтение.
- f_err — ошибка параметра, полный доступ. Значение этого атрибута шаблона попадает в атрибут ошибки параметра "err". Записать сюда EVAL для возможности установки извне атрибута "err" и всех других в режиме Только для Чтения.
- SHIFR — значение шифра параметра, только чтение.
- NAME — значение имени параметра, только чтение.
- DESCR — значение описания параметра, только чтение.
- this — объект данного параметра, позволяет получить доступ к атрибутам параметра, например, для доступа к архивам-истории.
Знак "(+)", в конце адреса, сигнализирует об успешном связывании и присутствии целевого объекта. Для атрибутов объектного типа допустим иерархический доступ к конкретному свойству объекта путём указания его пути через символ '#', например: "LogicLev.experiment.Pi.var#pr1.pr2".
В соответствии с шаблоном, лежащим в основе параметра, мы получаем набор атрибутов параметра как на рисунке 5.
2.2 Parameter reflection (PrmRefl)
All attributes of the parameter specified in the reflection simply become available in this parameter, thereby performing the proxying function, for example, to bring the parameters of other sources into one — the export object of the controller (for the PLC).
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.
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" />
- CNTR, PRM — controller object and parameters.
RESP: <get path="/DAQ/LogicLev/{CNTR}/prm_{PRM}[/prm_{PRM}]/%2fserv%2ftmplAttr" rez="0">{IOs}</get>
- IOs — IOs of the template execution context of the Logical Level parameters in the tags "ta": <ta id="{ID}">{value}</ta>
- ID — identifier of the IO;
- value — value of the IO.
<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>
- CNTR, PRM — controller object and parameters;
- IOs — IOs of the template execution context of the Logical Level parameters in the tags "ta": <ta id="{ID}">{value}</ta>
- ID — identifier of the IO;
- value — value of the IO.
<set path="/DAQ/LogicLev/gen/prm_F3/%2fserv%2ftmplAttr">
<ta id="in">44.9998202036118</ta>
<ta id="var">44.9999585116556</ta>
</set>