В данном разделе описываются атрибуты обработки алармов, атрибуты обработки групповых алармов, а также биты состояния для атрибута «_alert_hdl.._state».
Для обработки алармов предусмотрено два различных вида атрибутов.
- Атрибуты для конфигурирования
Атрибуты для конфигурирования (например, предельные значения обработки алармов элемента точки данных) устанавливаются с помощью функции «dpSet()» и считываются с помощью «dpGet()» или «dpConnect()».
- Атрибуты алармов
Атрибуты алармов (например, атрибут «_comment» для аларма, активирующегося в 10 часов) могут устанавливаться и считываться только с помощью «alertSet()», «alertGet()», «alertConnect()» или «SELECT ALERT», поскольку для идентификации атрибута необходимо не только имя элемента точки данных, но и время аларма.
В следующей таблице приводятся все атрибуты обработки алармов. В таблице также приводятся функции, используемые для установки и считывания атрибутов.
Атрибут (нейтральный)класса(_alert_hdl..) | Тип данных | Бит | Описание | Атрибут поддерживает запись (З) Атрибут поддерживает чтениеЧ | Атрибут может устанавливаться с помощью «dpSet()» и считываться с помощью «dpGet()»/dpConnect() | Атрибут может изменяться с помощью «alertSet()» и считываться с помощью «alertGet()», «alertConnect()» и «dpQuery()», а также с помощью SQL-запроса «SELECT ALERT» | Атрибут может записываться при активном «_alert_hdl» |
_abbr | langString | Сокращенное обозначение приоритета аларма (например, «А» означает «аларм»), случившегося во время atime. | R | X | |||
_abbr_pattern | string | Сокращенное обозначение группового аларма. Позволяет выделять алармы в соответствии с сокращенным обозначением их приоритета. При указании нескольких символов в выделение включаются все алармы, в сокращенном обозначении которых встречается один из указанных символов, например с помощью сочетания «AW» выделяются все алармы с приоритетами «A» и «W». | Ч/З | X | |||
_ack | int | Квитирование всех алармов обработки алармов.Используется для квитирования всех неквитированных алармов точки данных (см. соответственно разделы «_ack_state» и «Обработка алармов с помощью «_alert_hdl.._ack_state»»).Данный атрибут используется, например, на панели «_alert_hdl» модуля PARA, когда на ней для конфигурирования аларма квитируются алармы. | W | X | |||
_ack_deletes | bool | Формировать групповой аларм при удалении квитирования?Включенные отдельные алармы ограничены алармами определенных типов квитирования. См. раздел «_alert_class (аларм-класс)» | Ч/З | X | |||
_ack_has_prio | bool | Последовательность состояний квитирования для групповых алармов. | Ч/З | X | |||
_ack_oblig | bool | 6/22 | Указывает на возможность, а не на необходимость квитирования аларма. | R | X | ||
_ack_possible | bool | Указывает, существует ли аларм, который необходимо квитировать. | R | X | |||
_ack_state | int | Тип квитирования аларма: При запросе возвращается способ квитирования аларма (ВХОДЯЩЕГО или ИСХОДЯЩЕГО), который был активен в указанный момент времени. Для квитирования аларма используется функция «alertSet()». Таким образом, необходимо знать время аларма. Для этого атрибута возможно выполнение только DPATTR_ACKTYPE_SINGLE и DPATTR_ACKTYPE_MULTIPLE. См. также раздел «Обработка алармов с помощью «_alert_hdl.._ack_state»». | Ч/З | X | |||
_ack_time | time | Время квитирования аларма. | R | X | |||
_ack_type | int | Тип квитирования Константы:/Удаление квитированияACKNOWLEDGEMENT_DELETES = 0,// невозможность квитированияACKNOWLEDGEMENT_NONE = 1,// Входящие алармы могут быть квитированыACKNOWLEDGEMENT_CAME = 2,// Пара алармов должна быть квитированаACKNOWLEDGEMENT_PAIR = 3,// входящие и исходящие алармы должны быть квитированыACKNOWLEDGEMENT_CAMEANDGONE = 4,// Тип квитирования групповых алармов Соответствует типу «квитирование невозможно».ACKNOWLEDGEMENT_SUMALERT = 5 | R | X | |||
_ack_user | uint | Пользователь, который выполнил квитирование аларма. | R | X | |||
_ackable | bool | 5/21 | Указывает, может ли аларм быть квитирован | R | X | ||
_act_prior | char | Приоритет текущего диапазонаНе имеет значения для мультиэкзеплярных алармов. | R | X | |||
_act_range | int | Текущий диапазонНе имеет значения для мультиэкзеплярных алармов. | R | X | |||
_act_state | int | Состояние квитирования аларма С помощью данного атрибута возможен запрос текущего состояния квитирования аларма. 1 = ВХОДЯЩИЙ не квитирован2 = ВХОДЯЩИЙ квитирован3 = ИСХОДЯЩИЙ не квитирован4 = ВХОДЯЩИЙ/ИСХОДЯЩИЙ не квитирован0 = аларм отсутствуетПоддерживаемые константы описаны в разделе «Обработка алармов с помощью «_alert_hdl.<i>._act_state»».Не имеет значения для мультиэкзеплярных алармов. | R | X | |||
_act_state_color | string | Строка с обозначением цвета фона при выводе диапазона состояний текущего аларма. | R | X | |||
_act_state_fore_color | string | Строка с обозначением цвета рисунка при выводе диапазона состояний текущего аларма.Не имеет значения для мультиэкзеплярных алармов. | R | X | |||
_act_state_font_style | string | Обозначение шрифта для вывода диапазона состояний текущего алармаНе имеет значения для мультиэкзеплярных алармов. | R | X | |||
_act_state_prior | char | Приоритет диапазона состояний текущего алармаНе имеет значения для мультиэкзеплярных алармов. | R | X | |||
_act_state_range | int | Диапазон состояний текущего аларма Диапазон с максимальным приоритетом, для которого существует ожидающий обработки аларм. Все атрибуты «_act_state_»* относятся к этому диапазону. Не имеет значения для мультиэкзеплярных алармов. | R | X | |||
_act_state_text | langString | Текст диапазона состояний текущего алармаНе имеет значения для мультиэкзеплярных алармов. | R | X | |||
_act_text | langString | Текст текущего диапазонаНе имеет значения для мультиэкзеплярных алармов. | R | X | |||
_active | bool | Указывает, активна ли обработка алармов | Ч/З | X | X | ||
_add_text | dpid | Сохраняет текстовые фрагменты для битов состояния. | Ч/З | X | |||
_add_values | dyn_anytype | Содержит в себе все дополнительные значения аларма | Ч/З | X | |||
_add_value_1 _add_value_32 | anytype | Прямой доступ к первым 32 дополнительным значениям аларма. | Ч/З | X | |||
_alert_color | string | Строка с обозначением цвета фона аларма. | R | X | |||
_alert_fore_color | string | Строка с обозначением цвета рисунка аларма. | R | X | |||
_alert_font_style | string | Шрифт для вывода аларма. | R | X | |||
_alert_id | string | Используется для идентификации мультиэкземплярного аларма к периферии и от нее через драйвер или менеджер. Данный атрибут доступен отдельно для ВХОДЯЩЕГО и ИСХОДЯЩЕГО алармов пары. | Ч/З | X | |||
_alerts | dyn_atime | _alert_hdl.<признак>._alertsВозвращает все пары алармов (время ВХОДЯЩИХ и время ИСХОДЯЩИХ), которые может найти менеджер событий по указанному признаку. Также относится к алармам, которые должны быть удалены. Если значение «признак» равно 0, возвращаются алармы по всем признакам. | R | X | |||
_archive | bool | 10/26 | Указывает, выполнена ли (должна ли быть выполнена) архивация аларма. | R | X | ||
_both_ack | bool | Указывает, необходимо ли создать групповой аларм для значения «оба должны быть квитированы».Включенные отдельные алармы ограничены алармами определенных типов квитирования. См. раздел «_alert_class (аларм-класс)». | Ч/З | X | |||
_came_time | time | Время ВХОДЯЩЕГО аларма. | R | X | |||
_came_time_idx | int | Счетчик, необходимый для различения времени ВХОДЯЩИХ одновременных алармов. | R | X | |||
_gone_time | time | Время ИСХОДЯЩЕГО аларма. | R | X | |||
_gone_time_idx | int | Счетчик, необходимый для различения времени ИСХОДЯЩИХ одновременных алармов. Атрибут «_gone_time_idx» поддерживает только чтение. То есть поддерживается только запрос значения атрибута. | R | X | |||
_class | dpid | Ссылка на аларм-класс диапазонаВыполняется внутреннее преобразование аларм-класса в идентификатор точки данных.Примечание. Запрещается эскалация аларм-класса мультиэкземплярного аларма во время выполнения действия при аларме («_event»).Примечание. Запрещается указание «_class» непосредственно после «_event:DPATTR_ALERTEVENT_CAME», который должен использоваться в качестве аларм-класса. | Ч/З | X | |||
_comment | string | Комментарий пользователя к аларму. | Ч/З | X | |||
_del_date | time | Время удаления или перемещения аларма. Для конфигурирования аларма необходимо перейти на вкладку «Аргументы» в разделе «config _alert_class (аларм-класс)». | R | X | |||
_delete | bool | 15/31 | Удаление или перемещение аларма. В данном аларм-классе можно указать действие с заархивированными алармами (удаление или сохранение) после истечения периода архивации. Данный бит имеет значение только при «ARCHIVE_ALERT_BIT_ATTR = 1». В этом случае менеджер БД либо удаляет аларм (бит = 1), либо сохраняет его (бит = =0). Для конфигурирования аларма необходимо перейти на вкладку «Аргументы» в разделе «config _alert_class (аларм-класс)». | R | X | ||
_dest | int | Вывод текущего диапазона аларма. | R | X | |||
_dest_text | langString | Вывод текст ВХОДЯЩЕГО/ИСХОДЯЩЕГО аларма в текущем диапазоне. | R | X | |||
_direction | bool | 0/16 | Направление аларма.1 = ВХОДЯЩИЙ0 = ИСХОДЯЩИЙ | R | X | ||
_discrete_states | bool | Указывает, является ли это обработкой алармов дискретных значений.Атрибут «_discrete_states» устанавливается автоматически при добавлении аларма типа «_type DPDETAIL_RANGETYPE_MATCH» или «DPDETAIL_RANGETYPE_SET». Примечание.Данный атрибут используется только во время выполнения программы и не сохраняется в базе данных. Поэтому он не задействован в экспорте ASCII. | Ч/З | X | |||
_dp_list | dyn_dpid | Список точек данных для группового аларма.Поддерживается установка либо «_dp_list», либо «_dp_pattern». Оба атрибута невозможно установить одновременно. | Ч/З | X | |||
_dp_pattern | string | Шаблон точек данных для группового аларма. | Ч/З | X | |||
_escalation_class | dpid | Аларм-класс аларма, подлежащий эскалации. Выполняется внутреннее преобразование аларм-класса в идентификатор точки данных.Примечание. При запросе необходимо указывать номер признака (диапазон аларма), например:main(){time t;string value;setTime(t,2011,2,18, 12,17,59,781);alertGet(t, 3, «dist_2:ExampleDP_AlertHdl1.:_alert_hdl.2._escalation_class», value);DebugN(«value: «, value);}—>WCCOActrl2:[«value: «][«dist_2:danger.»] | R | X | |||
_event | int | Активация действия при аларме. С помощью этого атрибута возможна активация, обновление и квитирование мультиэкземплярных алармов. Поддерживаемые константы описаны в разделе «Обработка алармов с помощью «_alert_hdl.<i>._event»».Примечание. Запрещается эскалация аларм-класса мультиэкземплярного аларма во время выполнения действия при аларме («_event»).Примечание. Запрещается указание «_class» непосредственно после «_event:DPATTR_ALERTEVENT_CAME», который должен использоваться в качестве аларм-класса.Примечание. При наличии у экземпляра аларма множества одинаковых атрибутов они игнорируются (например: «_event:DPATTR_ALERTEVENT_CAME» и «_event:DPATTR_ALERTEVENT_SINGLE_ACK» невозможно определить в рамках одной функции «alertSet()»). | W | X | |||
_filtered | bool | Определяет, должен ли данный аларм скрываться при наличии активного фильтра в соответствующем групповом аларме («_filter_active or _force_filtered»). Используется для единичных алармов. | R | X | X (только в случае групповых алармов) | ||
_force_filtered | bool | Присвоение значения «true» приравнивается к установке групповым алармом атрибута «_filtered» («_filtered» возвращает «true»). Используется для единичных алармов. | Ч/З | X (только в случае бинарных алармов или групповых алармов) | X | X (только в случае бинарных алармов или групповых алармов) | |
_filter_threshold | int | Определяет максимальное количество подчиненных алармов, которые могут быть активны до активации фильтрации. См. раздел «Фильтрация алармов». Используется для групповых алармов. | Ч/З | X | |||
_filter_active | bool | Возвращает значение «true» при достижении значения «_filter_threshold» (см. выше) или при установке «_force_filter_active». См. раздел «Фильтрация алармов». Используется для групповых алармов. | R | X | X (только в случае групповых алармов) | ||
_force_filter_active | bool | Атрибут, поддерживающий чтение и запись (для групповых алармов). Присвоение ему значения «true» равнозначно достижению порогового значения («_filter_active» возвращает «true»). См. раздел «Фильтрация алармов». | Ч/З | X | X (только в случае групповых алармов) | ||
_help | langString | Справка (текст справки или путь к файлу справки). | Ч/З | X | |||
_hyst_type | int | Используется ли гистерезис. | Ч/З | X | |||
_impulse | bool | Активация и деактивация импульсных алармов. | Ч/З | X | |||
_inact_ack | bool | Алармы, которые не являются текущими, должны быть квитированы. | R | X | |||
_inactive | bool | 11/27 | ИСХОДЯЩИЕ алармы помечаются как деактивированные. | R | X | ||
_l_hyst_limit | var* | Нижний предел нечувствительности (гистерезис)Для данного атрибута и элемента точки данных (например, int _I_hyst_limit) совпадает тип переменной.ПРИМЕЧАНИЕ Значение должно быть абсолютным, а не относительным (как при использовании в редакторе PARA)! | Ч/З | X | |||
_l_incl | bool | Нижнее предельное значение входит в диапазон | W | X | |||
_l_limit | var* | Нижнее предельное значение диапазона | Ч/З | X | |||
_last | bool | 2/18 | Если измеренное значение входит более чем в один недопустимый диапазон, измеренное значение может перейти в диапазон, который располагается далеко от допустимого. В «КАСКАД Цифра» все диапазоны между допустимым и текущим недопустимым являются ожидающими обработки (например, обработки ожидает не только аларм, но и предупреждение). Текущему недопустимому диапазону присваивается флаг «_last», при этом остальные диапазоны в указанном промежутке остаются ожидающими обработки, но без активного флага. | R | X | ||
_last_of_all | bool | 3/19 | Если измеренное значение переходит в недопустимый диапазон несколько раз и покидает его, не будучи квитированным, остается некоторое количество неквитированных сообщений. Первому (наиболее раннему) сообщению присваивается флаг «_last_of_all». Это событие также должно быть квитировано первым. В примере с «_last» сообщению присваивается не только флаг «_last», но и флаг «last_of_all». Флаг «last_of_all» передается от текущего события измеренного значения следующему событию данного измеренного значения. Флаг «_last» представляет интерес только при наличии нескольких недопустимых диапазонов. Флаг «_last» может устанавливаться только при наличии нескольких неквитированных сообщений об измеренном значении для нескольких событий. | R | X | ||
_match | string | Шаблон, определяющий условия, при которых диапазоном должно вызываться СОБЫТИЕ. Шаблоны зависят от типа элемента точки данных:Bit32: 01X… 1 .. 1 – у шаблона, совпадающего с битом 32, в данной позиции установлено значение 0.0 .. 0 – у шаблона, совпадающего с битом 32, в данной позиции установлено значение 0.X – у шаблона, совпадающего с битом 32, в данной позиции установлено значение 0 или 1.Пример:1111111111111111111111111111111110101010101010101010101010101010XXXXXXXXXXXXXXXX1111111111111111 INT, FLOAT:Диапазоны, например: 0–10 или 6.3–20.8 (в качестве знака, отделяющего дробную часть, во всех языках используется точка).ТЕКСТ: Знаки подстановки с «*» и «?»Звездочка «*» может использоваться для обозначения всех типов данных. | Ч/З | X | |||
_min_prio | char | Минимальный приоритет (для подавления алармов) Алармы ниже данного минимального приоритета не относятся к групповому аларму, если данный атрибут установлен. | Ч/З | X | X | ||
_multi_instance | bool | Обработка алармов в элементе точки данных используется для мультиэкземплярных алармов. | Ч/З | X | |||
_neg | bool | Обратить (инвертировать) обработку диапазона значений.При инвертировании атрибуты «_match» и «_set» инвертируются. | Ч/З | X | |||
_non_ack | bool | Указывает, необходимо ли группировать алармы при «квитирование невозможно».Включенные отдельные алармы ограничены алармами определенных типов квитирования. См. раздел «_alert_class (аларм-класс)». | W | X | |||
_num_ranges | число без знака | Количество диапазоновПоддерживается создание диапазонов с помощью «_alert_hdl.<номер_диапазона>._type». | W | X | |||
_obsolete | bool | 1/17 | Указывает, перестал ли аларм быть текущим.Аларм считается неактуальным, если состояние аларма изменяется на значение «аларм отсутствует» либо аларм может быть удален по причине наличия нового ожидающего обработки аларма. | R | X | ||
_ok_range | bool | Допустимый диапазон для битовой обработки алармов. | Ч/З | X | |||
_oldest_ack | bool | 9/25 | Наиболее ранний аларм, который должен быть квитирован в ходе обработки алармов. | R | X | ||
_order | int | Последовательность алармов для групповых алармовКонстанты:ORDER_PRIO_STATE = 0,// Приоритет раньше состояния алармаORDER_SIGN_STATE = 1,// Сокращенное обозначение раньше состояния алармаORDER_STATE_PRIO = 2,// Состояние аларма раньше приоритетаORDER_STATE_SIGN = 3// Состояние аларма раньше сокращенного обозначения | R | X | |||
_orig_hdl | bool | Обработка исходного (TRUE) или текущего значения при обработке алармов | Ч/З | X | |||
_panel | string | Панель для перекрестного выделения. | Ч/З | X | |||
_panel_param | dyn_string | Параметр панели перекрестного выделения. | Ч/З | X | |||
_param | bool | Указывает, возможна ли настройка обработки алармов. | Ч/З | X | |||
_partn_idx | int | Индекс аларма для аларм-партнера Для различения происходящих одновременно алармов предусмотрен счетчик времени аларма. Атрибут «_partn_idx» является таким счетчиком для атрибута «_partner» типа «time» («время»). | R | X | |||
_partner | time | Время аларма для аларм-партнера Аларм состоит из двух событий: ВХОДЯЩЕГО и ИСХОДЯЩЕГО. Аларм-партнером ВХОДЯЩЕГО события является ИСХОДЯЩЕЕ, а аларм-партнером ИСХОДЯЩЕГО события является ВХОДЯЩЕЕ. Таким образом, атрибут «_partner» ВХОДЯЩЕГО события возвращает время ИСХОДЯЩЕГО или значение 1.1.1970 (если аларм еще не отправлен). Атрибут «_partner» ИСХОДЯЩЕГО события возвращает время ВХОДЯЩЕГО. | R | X | |||
_partner_alert_id | string | Идентификатор аларм-партнера. Аларм-партнером ВХОДЯЩЕГО события является ИСХОДЯЩЕЕ, а аларм-партнером ИСХОДЯЩЕГО события является ВХОДЯЩЕЕ. | R | X | |||
_prio_pattern | string | Шаблон приоритета для группового аларма. | Ч/З | X | |||
_prior | char | Приоритет диапазона аларма | R | X | |||
_set | dyn_var* | Атрибут количества. Поддерживается указание произвольного количества отдельных (изолированных) значений для определения действительного диапазона значений. | Ч/З | X | |||
_single_ack | bool | 7/23 | Требуется одиночное квитированиеАтрибут «_single_ack» поддерживает только чтение. То есть поддерживается только запрос значения атрибута.Для конфигурирования аларма необходимо перейти на вкладку «Аргументы» в разделе «config _alert_class (аларм-класс)». | R | X | ||
_state | bit32 | С помощью атрибута «alert_hdl.._state» биты («_obsolete», «_ackable» и т. д.) состояния объединяются в набор битов в формате «bit32». Атрибут «_state» ВХОДЯЩЕГО события возвращает первые 16 бит, которые являются битами состояния ВХОДЯЩЕГО события. Атрибут «_state» включает в себя биты как входящего, так и исходящего алармов. Биты 0–15 зарезервированы для ВХОДЯЩЕГО события, а биты 16–31 – для ИСХОДЯЩЕГО события.Атрибут «_state» ИСХОДЯЩЕГО события возвращает первые 16 бит, которые являются битами состояния ИСХОДЯЩЕГО события. Бит 0 атрибута «_direction» может использоваться для указания типа события, состояние которого возвращается: ИСХОДЯЩЕЕ или ВХОДЯЩЕЕ. | R | X | |||
_status64_pattern | bit64 | Обеспечивает фильтрацию битов, которые активируют аларм при изменении состояния. Если указанные биты состояния шаблона изменяются, активируется аларм. Данный атрибут касается только дискретной обработки алармов. | Ч/З | X | |||
_status64_match | string | Обеспечивает фильтрацию битов, которые активируют аларм при изменении состояния в каком-либо диапазоне. Если указанные биты состояния образца изменяются, активируется аларм.Данный атрибут касается только дискретной обработки алармов. | Ч/З | X | |||
_sum | bool | 12/28 | Указывает, является ли аларм групповым. | R | X | ||
_sumalerts | dyn_dpid | Указывает, в состав какого группового аларма входит данный аларм. | R | X | |||
_system_time | time | Текущее системное время. Время аларма устанавливается на основе времени изменения значения либо на основе времени атрибута «_event». Это время может отличаться от текущего времени, например в случае непостоянного пребывания периферии в активном состоянии. Атрибут «_system_time» отражает момент времени, когда аларм был создан програмой «КАСКАД Цифра». «КАСКАД Цифра» Пример:ПЛК подключается к системе «КАСКАД Цифра» через коммутируемое подключение. В 12:00 возникает пожар. ПЛК пытается установить подключение к операторная. В течение 20 минут установить подключение не удается по причине неисправности телефонной линии. Когда в 12:20 активируется аларм, время этого аларма будет 12:00.Если позднее возникнет вопрос, почему операторной потребовалось 20 минут на то, чтобы оповестить пожарных,в операторной можно будет проверить и убедиться в том, что для доставки аларма потребовалось 20 минут. | R | X | |||
_text | langString | Текст состояния диапазона. | Ч/З | X | X (только чтение) | ||
_text0 | langString | Текст для цифровой 0 (DPCONFIG_ALERT_BINARYSIGNAL). | Ч/З | X | |||
_text1 | langString | Текст для цифровой 1 (DPCONFIG_ALERT_BINARYSIGNAL). | Ч/З | X | |||
_type | int | Атрибут «_type» используется для создания обработки алармов и для добавления диапазонов алармов для DPCONFIG_ALERT_NONBINARY_SIGNAL.Процесс создания обработки алармов:_alert_hdl.._type =DPCONFIG_ALERT_BINARYSIGNAL = 12DPCONFIG_ALERT_NONBINARYSIGNAL = 13DPCONFIG_SUM_ALERT = 59 Процесс создания аларм-классов:_alert_hdl.<rangeNo>._type =DPDETAIL_RANGETYPE_MIN=6,DPDETAIL_RANGETYPE_MAX=7,DPDETAIL_RANGETYPE MINMAX=4, DPDETAIL_RANGETYPE MATCH=5,DPDETAIL_RANGETYPE SET=3 | W | X | |||
_u_hyst_limit | var* | Верхний предел нечувствительности (гистерезис)ПРИМЕЧАНИЕ Значение должно быть абсолютным, а не относительным (как при использовании в редакторе PARA)! | Ч/З | X | |||
_u_incl | bool | Верхнее предельное значение входит в диапазон | Ч/З | X | |||
_u_limit | var* | Верхнее предельное значение диапазона. | Ч/З | X | |||
_value | var* | Значение, которое приводит к аларму. | R | X | |||
_value_status64 | Bit64 | Изменение состояние, которое приводит к аларму | R | X | |||
_visible | bool | 4/20 | На панели алармов выводятся только те алармы, атрибуту «_visible» которых присвоено значение «true».Аларм не выводится, если состояние аларма изменяется на «аларм отсутствует» либо если появляется новый ожидающий обработки аларм, а в аларм-классе не установлен параметр «квитировать старые алармы» («acknowledge old alarms»). | R | X | ||
_went_text | langString | Текст состояния ИСХОДЯЩЕГО аларма | Ч/З | X |
* Тип «var» соответствует типу элемента, для которого определяется обработка алармов.
Атрибуты групповых алармов
Атрибуты групповых алармов | Тип | Описание |
_sumalerts | dyn_dpid | Указывает, в состав каких групповых алармов входит данный аларм. |
_summed_abbr | dyn_langString | Список текущих сокращенных обозначений |
_summed_alerts | dyn_atime | Список текущих алармов (элементы точек данных + время аларма) |
_summed_colors | dyn_string | Список текущих цветов вывода алармов |
_summed_classes | dyn_string | Список текущих аларм-классов |
_summed_prios | dyn_char | Список текущих приоритетов |
_summed_states | dyn_int | Список текущего состояния аларма (например, входящий неквитированный) |
_summed_alerts_count | int | Указывает количество алармов в груповых алармах. |
«обработка алармов с помощью «_alert_hdl.<i>._act_state»
Следующие целочисленные константы используются для запроса текущего состояния аларма (состояния квитирования) из диапазона аларма (как и обработка алармов в целом) для элемента точки данных. Номер признака в атрибуте соответствует индексу диапазона аларма (см. информацию об атрибутах «_alert_hdl.<i>._type»). Если данный параметр опущен или ему присвоено значение 0, атрибут относится к текущему состоянию обработки алармов (см. dpGet()).
Константа CTRL | Целочисленное значение | Описание |
DPATTR_ALERTSTATE_NONE | 0 | аларм отсутствует |
DPATTR_ALERTSTATE_APP_NOT_ACK | 1 | ВХОДЯЩИЙ или ВХОДЯЩИЙ/неквитированный |
DPATTR_ALERTSTATE_APP_ACK | 2 | ВХОДЯЩИЙ\квитированный |
DPATTR_ALERTSTATE_DISAPP_NOT_ACK | 3 | ИСХОДЯЩИЙ/неквитированный |
DPATTR_ALERTSTATE_APP_DISAPP_NOT_ACK | 4 | ВХОДЯЩИЙ/ИСХОДЯЩИЙ/неквитированный |
Следующие целочисленные константы могут использоваться для запроса состояния квитирования элемента точки данных.
В функции «alertSet()» «_ack_state» должен использоваться с правильным номером признака (диапазон аларма для аналоговых алармов) и правильным значением времени. С помощью функции «alertSet()» можно квитировать особые алармы. Данная функция используется на панели алармов и событий.
Константа CTRL | Целочисленное значение | Описание |
DPATTR_ACKTYPE_NOT | 0 | Не квитирован |
DPATTR_ACKTYPE_MULTIPLE | 1 | Квитировать все |
DPATTR_ACKTYPE_SINGLE | 2 | Одиночное квитирование |
Следующие целочисленные константы могут использоваться для запроса и установки действий по событиям.
Константа CTRL | Целочисленное значение | Описание |
DPATTR_ALERTEVENT_CAME | 0 | ВХОДЯЩИЙ аларм |
DPATTR_ALERTEVENT_CAME_IMPULSE | 1 | ВХОДЯЩИЙ аларм с импульсным алармом. |
DPATTR_ALERTEVENT_WENT | 2 | ИСХОДЯЩИЙ аларм. |
DPATTR_ALERTEVENT_MULTIPLE_ACK | 3 | Аларм был квитирован в рамках группового аларма. |
DPATTR_ALERTEVENT_SINGLE_ACK | 4 | Аларм был квитирован отдельно. |
DPATTR_ALERTEVENT_WENT_INACTIVE | 5 | ИСХОДЯЩИЙ аларм деактивирован. |
DPATTR_ALERTEVENT_WENT_OBSOLETE | 7 | Ни ИСХОДЯЩЕЕ, ни ВХОДЯЩЕЕ событие не активировано. Данную константу можно использовать для явного удаления аларма (например, если аларм больше не существует на ПЛК). |
Следующие целочисленные константы могут использоваться, чтобы установить, применяется ли при обработке алармов гистерезис.
Константа CTRL | Целочисленное значение | Описание |
DPATTR_HYST_NONE | 0 | гистерезис отсутствует |
DPATTR_HYST_VALUE | 1 | гистерезис |
Обработка алармов с помощью «_alert_hdl.<i>._type» для аналоговых значений
Приведенные ниже целочисленные константы могут использоваться для определения типа обработки алармов диапазона аларма какого-либо элемента точки данных. Номер признака в атрибуте указывает на диапазон аларма: «alert_hdl.1._type» соответствует первому (наиболее раннему) диапазону (см. dpSet()).
Константа CTRL | Целочисленное значение | Описание |
DPDETAIL_RANGETYPE_NONE | 0 | Диапазон аларма отсутствует |
DPDETAIL_RANGETYPE_MINMAX | 4 | Мин./макс. диапазон аларма |
Групповой аларм
Константа CTRL | Целочисленное значение | Описание |
DPCONFIG_NONE | 0 | Обработка алармов отсутствует |
DPCONFIG_SUM_ALERT | 59 | Групповой аларм |
ПРИМЕР
Устанавливает обработку алармов по аналоговым значениям с тремя диапазонами:
main() { dyn_float limits; dyn_string alerttext; dyn_string alertclass; dyn_bool limitsincl; int rc; dyn_errClass err; limits=makeDynFloat(20, 80); alerttext=makeDynString(«Warning», «OK», «Alert»); alertclass=makeDynString(«System1:warning.», «System1:alert.»); limitsincl=makeDynBool(TRUE, TRUE); rc = dpSetWait(«TestDP_1.element:_alert_hdl.._type», 13, «TestDP_1.element:_alert_hdl.1._type», 4, «TestDP_1.element:_alert_hdl.2._type», 4, «TestDP_1.element:_alert_hdl.3._type», 4, «TestDP_1.element:_alert_hdl.1._u_limit», limits[1], «TestDP_1.element:_alert_hdl.2._u_limit», limits[2], «TestDP_1.element:_alert_hdl.2._l_limit», limits[1], «TestDP_1.element:_alert_hdl.3._l_limit», limits[2], «TestDP_1.element:_alert_hdl.1._u_incl», limitsincl[1], «TestDP_1.element:_alert_hdl.1._l_incl», limitsincl[1], «TestDP_1.element:_alert_hdl.2._u_incl», limitsincl[2], «TestDP_1.element:_alert_hdl.2._l_incl», !limitsincl[1], «TestDP_1.element:_alert_hdl.3._u_incl», limitsincl[1], «TestDP_1.element:_alert_hdl.3._l_incl», !limitsincl[2], «TestDP_1.element:_alert_hdl.1._text», alerttext[1], «TestDP_1.element:_alert_hdl.2._text», alerttext[2], «TestDP_1.element:_alert_hdl.3._text», alerttext[3], «TestDP_1.element:_alert_hdl.1._class», alertclass[1], «TestDP_1.element:_alert_hdl.3._class», alertclass[2], «TestDP_1.element:_alert_hdl.._orig_hdl», TRUE, «TestDP_1.element:_alert_hdl.._active», TRUE); err = getLastError(); if(dynlen(err)>0) { throwError(err); } DebugN(«done», rc); } |
Биты состояния атрибута «_alert_hdl.._state»
Биты состояния 0–15 зарезервированы для ВХОДЯЩЕГО события, а биты 16–31 – для ИСХОДЯЩЕГО события. Эти биты хранятся в атрибуте «_alert_hdl.._state» в виде набора из 32 битов. Помимо атрибутов из таблицы поддерживается установка следующих атрибутов:
Бит 7/23 (указывает, был ли аларм квитирован отдельно)
Бит 8/24 (указывает, были ли квитированы все алармы)
Бит 13/29 + 14/30 для состояния групповых алармов
Для групповых алармов биты 13/14 (входящее событие) и 29/30 (исходящее событие) устанавливаются следующим образом:
FALSE/FALSE исходящее квитировано
FALSE/TRUE исходящее не квитировано
TRUE/FALSE входящее квитировано
TRUE/TRUE входящее не квитировано
Номер бита состояния | Атрибут | Направление |
0 | _direction | _direction ВХОДЯЩЕЕ |
1 | _obsolete | _direction ВХОДЯЩЕЕ |
2 | _last | _direction ВХОДЯЩЕЕ |
3 | _last_of_all | _direction ВХОДЯЩЕЕ |
4 | _visible | _direction ВХОДЯЩЕЕ |
5 | _ackable | _direction ВХОДЯЩЕЕ |
6 | _ack_oblig | _direction ВХОДЯЩЕЕ |
7 | _single_ack | _direction ВХОДЯЩЕЕ |
8 | — | _direction ВХОДЯЩЕЕ |
9 | _oldest_ack | _direction ВХОДЯЩЕЕ |
10 | _archive | _direction ВХОДЯЩЕЕ |
11 | _inactive | _direction ВХОДЯЩЕЕ |
12 | _sum | _direction ВХОДЯЩЕЕ |
13 | — | Первый бит состояния группового аларма. _direction ВХОДЯЩЕЕ |
14 | — | Второй бит состояния группового аларма. _direction ВХОДЯЩЕЕ |
15 | _delete | _direction ВХОДЯЩЕЕ |
16 | _direction | _direction ИСХОДЯЩЕЕ |
17 | _obsolete | _direction ИСХОДЯЩЕЕ |
18 | _last | _direction ИСХОДЯЩЕЕ |
19 | _last_of_all | _direction ИСХОДЯЩЕЕ |
20 | _visible | _direction ИСХОДЯЩЕЕ |
21 | _ackable | _direction ИСХОДЯЩЕЕ |
22 | _ack_oblig | _direction ИСХОДЯЩЕЕ |
23 | _single_ack | _direction ИСХОДЯЩЕЕ |
24 | — | _direction ИСХОДЯЩЕЕ |
25 | _oldest_ack | _direction ИСХОДЯЩЕЕ |
26 | _archive | _direction ИСХОДЯЩЕЕ |
27 | _inactive | _direction ИСХОДЯЩЕЕ |
28 | _sum | _direction ИСХОДЯЩЕЕ |
29 | — | Первый бит состояния группового аларма. _direction ИСХОДЯЩЕЕ |
30 | — | Второй бит состояния группового аларма. _direction ИСХОДЯЩЕЕ |
31 | _delete | _direction ИСХОДЯЩЕЕ |
Более подробная информация о конфигурационном элементе «_alert_hdl» приводится в разделе «Модуль PARA» – «_alert_hdl (обработка алармов)».