From OpenSCADAWiki
Jump to: navigation, search

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

  • Системные, генерируются объектами-узлами OpenSCADA:
КАТЕГОРИЯ: определяет типовой путь к узлу сообщения, например — "/sub_DAQ/mod_LogicLev/cntr_gen/", где:
  • "/*/*" — типовой шаблон-признак системного сообщения на основе символа-разделителя элементов пути, который может быть непосредственно использован в фильтре категории для определения чисто архива системных сообщений.
ТЕКСТ: содержит путь наименований узла сообщения и само сообщение в формате "{NodeNmPath}: {message}", например — "AGLKS > Сбор Данных > LogicLev > gen: Запуск контроллера.".
  • Шлюзованные, сообщения, которые были получены из иерархически низшей станции OpenSCADA (вроде ПЛК) или передано высшей станцией:
КАТЕГОРИЯ: в начало категории полученного сообщения добавляется идентификатор объекта контроллера модуля DAQ.DAQGate, который осуществил получение, например — "loop:alModBus:testTCP" или "TopStat(DAQCntr):alModBus:testTCP", где:
  • "loop:*" — типовой шаблон-признак удалённого нижшего сообщения на основе идентификатора объекта контроллера модуля DAQ.DAQGate, который может быть непосредственно использован в фильтре категории для определения исключительно архива удалённых сообщений этого источника;
  • "TopStat(DAQCntr):*" — типовой шаблон-признак удалённого высшего сообщения на основе названия проекта (или идентификатора) TopStat и идентификатора объекта контроллера модуля DAQ.DAQGate, который может быть непосредственно использован в фильтре категории для определения исключительно архива удалённых сообщений этого источника.
  • Унифицированные структуры с источником данных в категории, генерируются источником данных или его процедурами с помощью функции messSet() API OpenSCADA и пользовательского API:
КАТЕГОРИЯ: определяет ID-адрес источника нарушения в формате "{ID}{ModId}:{CntrId}[.{PrmId}][:{SpecPrms}]", где:
  • ID — двухсимвольный идентификатор структуры;
  • ModId — идентификатор модуля;
  • CntrId — идентификатор объекта контроллера;
  • PrmId — идентификатор параметра;
  • SpecPrms — специфические параметры структуры ID.
КАТЕГОРИЯ: определяет ID-адрес источника нарушения в формате "al{ModId}:{CntrId}[.{PrmId}]", например — "alLogicLev:gen.F_PP1", где:
  • "al*" — типовой шаблон-признак сообщения нарушения на основе двух первых символов слова "alarm", который может быть непосредственно использован в фильтре категории для определения чисто архива сообщений.
ТЕКСТ: "{CntrNm} > {PrmNm}: {MessText}", например — "Общестанционка > F_PP1: Расход газа через диафрагму PP1: НОРМА", где:
  • CntrNm — название объекта контроллера;
  • PrmNm — название параметра;
  • MessText — текст сообщения, которое имеет подструктуру "{Viol}: {Value}[: {QuietTime}[: {NormTime}[: {Comment}]]]", где:
  • Viol — описание нарушения, которое отдельные кадры, вроде Main.alarmsAct и Main.alarmsSt, могут расширять пользовательскими полями в форме "[[{CustFld0} => {CustFld1} => ... => {CustFldN}]]";
  • Value — значение нарушения;
  • QuietTime — время подтверждения (квитации);
  • NormTime — время возврата к состоянию НОРМА, устанавливается тут после квитации-возврата сообщения уже в НОРМА;
  • Comment — комментарий к этому случаю.
  • Действия пользователя-оператора с источником данных, генерируются процедурой виджетов при определении действий пользователя-оператора, которые должны быть зафиксированы в протоколе пользователя-оператора и когда доступнен объект параметра источника данных:
КАТЕГОРИЯ: определяет пользователя и характерный источник (обычно параметр подсистемы "Сбор данных") для которого осуществлено действия, в формате "OP{ModId}:{CntrId}[.{PrmId}]:{user}", например — "OPLogicLev:gen.PC_PCV1:roman", где:
  • "OP*" — типовой шаблон-признак сообщения действия пользователя-оператора на основе двух первых символов слова "operator", который может быть непосредственно использован в фильтре категории для определения чисто архива действий оператора.
TEXT: такое самое как и при структуре "Действия пользователя-оператора".
  • Действия пользователя-оператора, генерируются процедурой виджетов при определении действий пользователя-оператора, которые должны быть зафиксированы в протоколе пользователя-оператора:
КАТЕГОРИЯ: определяет пользователя и характерный источник (обычно параметр подсистемы "Сбор данных") для которого осуществлено действия, в формате "OP:{user}:{src}", например — "OP:roman:PC КРД1", где:
  • "OP:*" — типовой шаблон-признак сообщения действия пользователя-оператора на основе двух первых символов слова "operator", который может быть непосредственно использован в фильтре категории для определения чисто архива действий оператора;
  • user — пользователь OpenSCADA;
  • src — характерный источник, обычно параметр подсистемы "Сбор данных", при необходимости дополненный иерархией DAQ-параметров до объекта контроллера.
ТЕКСТ: описание действия в формате "{src} : {name} : [{oldVal}] : {newVal}", например — "'PC КРД1'. Задание : Регулятор давления на входе КС : 5.8 : 6.0", где:
  • src — название источнике, обычно объекта параметра с детализацией, и при необходимости дополненный иерархией DAQ-параметров до объекта контроллера;
  • name — название источника, обычно объекта параметра;
  • oldVal — старое значение, может отсутствовать;
  • newVal — новое значение или действие.
КАТЕГОРИЯ: определяет ID источника SrcID в формате "val{SrcID}", где:
  • "val*" — типовой шаблон-признак значения, который может быть непосредственно использован в фильтре категорий для определения чисто значения в сообщениях;
  • SrcID — идентификатор источника.
ТЕКСТ: название Name и значение Value параметра в формате "{Name}: {Value}".
КАТЕГОРИЯ: определяет идентификатор пользовательского рецепта-программы ProgNM в формате "uprg{ProgNM}", где:
  • "uprg*" — типовой шаблон-признак пользовательского рецепта-программы, который может быть непосредственно использован в фильтре категории для определения чисто пользовательских рецептов-программ;
  • ProgNM — имя рецепта-программы.
ТЕКСТ: описание действия в формате "{ActDescr} "{ProgNM}" : {StartTm} : {ActTm}", где:
  • ActDescr — описание действия:
  • "Текущий узел отсутствует";
  • "Прерванный пользователем сеанс программы";
  • "Прерванный ошибкой сеанс программы";
  • "Успешный сеанс программы".
  • ProgNM — имя рецепта-программы;
  • StartTm — время запуска рецепта-программы, в формате "2020-03-14 16:05:01";
  • ActTm — время действия рецепта-программы, в формате "2020-03-14 16:05:52".