_alert_hdl

В данном разделе описываются атрибуты обработки алармов, атрибуты обработки групповых алармов, а также биты состояния для атрибута «_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»
_abbrlangString Сокращенное обозначение приоритета аларма (например, «А» означает «аларм»), случившегося во время atime.R X 
_abbr_patternstring Сокращенное обозначение группового аларма. Позволяет выделять алармы в соответствии с сокращенным обозначением их приоритета. При указании нескольких символов в выделение включаются все алармы, в сокращенном обозначении которых встречается один из указанных символов, например с помощью сочетания «AW» выделяются все алармы с приоритетами «A» и «W».Ч/ЗX  
_ackint Квитирование всех алармов обработки алармов.Используется для квитирования всех неквитированных алармов точки данных (см. соответственно разделы «_ack_state» и «Обработка алармов с помощью «_alert_hdl.._ack_state»»).Данный атрибут используется, например, на панели «_alert_hdl» модуля PARA, когда на ней для конфигурирования аларма квитируются алармы.WX  
_ack_deletesbool Формировать групповой аларм при удалении квитирования?Включенные отдельные алармы ограничены алармами определенных типов квитирования. См. раздел «_alert_class (аларм-класс)»Ч/ЗX  
_ack_has_priobool Последовательность состояний квитирования для групповых алармов.Ч/ЗX  
_ack_obligbool6/22Указывает на возможность, а не на необходимость квитирования аларма.R X 
_ack_possiblebool Указывает, существует ли аларм, который необходимо квитировать.RX  
_ack_state int Тип квитирования аларма: При запросе возвращается способ квитирования аларма (ВХОДЯЩЕГО или ИСХОДЯЩЕГО), который был активен в указанный момент времени. Для квитирования аларма используется функция «alertSet()». Таким образом, необходимо знать время аларма. Для этого атрибута возможно выполнение только DPATTR_ACKTYPE_SINGLE и DPATTR_ACKTYPE_MULTIPLE. См. также раздел «Обработка алармов с помощью «_alert_hdl.._ack_state»».Ч/З X 
_ack_timetime Время квитирования аларма.R X 
_ack_typeint Тип квитирования Константы:/Удаление квитированияACKNOWLEDGEMENT_DELETES = 0,// невозможность квитированияACKNOWLEDGEMENT_NONE = 1,// Входящие алармы могут быть квитированыACKNOWLEDGEMENT_CAME = 2,// Пара алармов должна быть квитированаACKNOWLEDGEMENT_PAIR = 3,// входящие и исходящие алармы должны быть квитированыACKNOWLEDGEMENT_CAMEANDGONE = 4,// Тип квитирования групповых алармов Соответствует типу «квитирование невозможно».ACKNOWLEDGEMENT_SUMALERT = 5R X 
_ack_useruint Пользователь, который выполнил квитирование аларма.R X 
_ackablebool5/21Указывает, может ли аларм быть квитированR X 
_act_priorchar Приоритет текущего диапазонаНе имеет значения для мультиэкзеплярных алармов.RX  
_act_rangeint Текущий диапазонНе имеет значения для мультиэкзеплярных алармов.R  
_act_stateint Состояние квитирования аларма С помощью данного атрибута возможен запрос текущего состояния квитирования аларма. 1 = ВХОДЯЩИЙ не квитирован2 = ВХОДЯЩИЙ квитирован3 = ИСХОДЯЩИЙ не квитирован4 = ВХОДЯЩИЙ/ИСХОДЯЩИЙ не квитирован0 = аларм отсутствуетПоддерживаемые константы описаны в разделе «Обработка алармов с помощью «_alert_hdl.<i>._act_state»».Не имеет значения для мультиэкзеплярных алармов.RX  
_act_state_colorstring Строка с обозначением цвета фона при выводе диапазона состояний текущего аларма.R  
_act_state_fore_colorstring Строка с обозначением цвета рисунка при выводе диапазона состояний текущего аларма.Не имеет значения для мультиэкзеплярных алармов.R  
_act_state_font_stylestring Обозначение шрифта для вывода диапазона состояний текущего алармаНе имеет значения для мультиэкзеплярных алармов.R  
_act_state_priorchar Приоритет диапазона состояний текущего алармаНе имеет значения для мультиэкзеплярных алармов.R  
_act_state_rangeint Диапазон состояний текущего аларма Диапазон с максимальным приоритетом, для которого существует ожидающий обработки аларм. Все атрибуты «_act_state_»* относятся к этому диапазону. Не имеет значения для мультиэкзеплярных алармов.R  
_act_state_textlangString Текст диапазона состояний текущего алармаНе имеет значения для мультиэкзеплярных алармов.R  
_act_textlangString Текст текущего диапазонаНе имеет значения для мультиэкзеплярных алармов.R  
_activebool Указывает, активна ли обработка алармовЧ/ЗX X
_add_textdpid Сохраняет текстовые фрагменты для битов состояния.Ч/ЗX  
_add_valuesdyn_anytype Содержит в себе все дополнительные значения алармаЧ/З X 
_add_value_1 _add_value_32anytype Прямой доступ к первым 32 дополнительным значениям аларма.Ч/З X 
_alert_colorstring Строка с обозначением цвета фона аларма.R X 
_alert_fore_colorstring Строка с обозначением цвета рисунка аларма.R X 
_alert_font_stylestring Шрифт для вывода аларма.R X 
_alert_idstring Используется для идентификации мультиэкземплярного аларма к периферии и от нее через драйвер или менеджер. Данный атрибут доступен отдельно для ВХОДЯЩЕГО и ИСХОДЯЩЕГО алармов пары.Ч/З X 
_alertsdyn_atime _alert_hdl.<признак>._alertsВозвращает все пары алармов (время ВХОДЯЩИХ и время ИСХОДЯЩИХ), которые может найти менеджер событий по указанному признаку. Также относится к алармам, которые должны быть удалены. Если значение «признак» равно 0, возвращаются алармы по всем признакам.RX   
_archivebool10/26Указывает, выполнена ли (должна ли быть выполнена) архивация аларма.R X 
_both_ackbool Указывает, необходимо ли создать групповой аларм для значения «оба должны быть квитированы».Включенные отдельные алармы ограничены алармами определенных типов квитирования. См. раздел «_alert_class (аларм-класс)».Ч/З  
_came_timetime Время ВХОДЯЩЕГО аларма.R X 
_came_time_idxint Счетчик, необходимый для различения времени ВХОДЯЩИХ одновременных алармов.R  
_gone_timetime Время ИСХОДЯЩЕГО аларма.R X 
_gone_time_idxint Счетчик, необходимый для различения времени ИСХОДЯЩИХ одновременных алармов. Атрибут «_gone_time_idx» поддерживает только чтение. То есть поддерживается только запрос значения атрибута.R  
_classdpid Ссылка на аларм-класс диапазонаВыполняется внутреннее преобразование аларм-класса в идентификатор точки данных.Примечание. Запрещается эскалация аларм-класса мультиэкземплярного аларма во время выполнения действия при аларме («_event»).Примечание. Запрещается указание «_class» непосредственно после «_event:DPATTR_ALERTEVENT_CAME», который должен использоваться в качестве аларм-класса.Ч/З  
_commentstring Комментарий пользователя к аларму.Ч/З X 
_del_datetime Время удаления или перемещения аларма. Для конфигурирования аларма необходимо перейти на вкладку «Аргументы» в разделе «config _alert_class (аларм-класс)».R  
_deletebool15/31Удаление или перемещение аларма. В данном аларм-классе можно указать действие с заархивированными алармами (удаление или сохранение) после истечения периода архивации. Данный бит имеет значение только при «ARCHIVE_ALERT_BIT_ATTR = 1». В этом случае менеджер БД либо удаляет аларм (бит = 1), либо сохраняет его (бит = =0). Для конфигурирования аларма необходимо перейти на вкладку «Аргументы» в разделе «config _alert_class (аларм-класс)».R  
_destint Вывод текущего диапазона аларма.R X 
_dest_textlangString Вывод текст ВХОДЯЩЕГО/ИСХОДЯЩЕГО аларма в текущем диапазоне.R X 
_directionbool0/16Направление аларма.1 = ВХОДЯЩИЙ0 = ИСХОДЯЩИЙR X 
_discrete_statesbool Указывает, является ли это обработкой алармов дискретных значений.Атрибут «_discrete_states» устанавливается автоматически при добавлении аларма типа «_type DPDETAIL_RANGETYPE_MATCH» или «DPDETAIL_RANGETYPE_SET». Примечание.Данный атрибут используется только во время выполнения программы и не сохраняется в базе данных. Поэтому он не задействован в экспорте ASCII.Ч/ЗX  
_dp_listdyn_dpid Список точек данных для группового аларма.Поддерживается установка либо «_dp_list», либо «_dp_pattern». Оба атрибута невозможно установить одновременно.Ч/ЗX  
_dp_patternstring Шаблон точек данных для группового аларма.Ч/ЗX  
_escalation_classdpid Аларм-класс аларма, подлежащий эскалации. Выполняется внутреннее преобразование аларм-класса в идентификатор точки данных.Примечание. При запросе необходимо указывать номер признака (диапазон аларма), например: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  
_eventint Активация действия при аларме. С помощью этого атрибута возможна активация, обновление и квитирование мультиэкземплярных алармов. Поддерживаемые константы описаны в разделе «Обработка алармов с помощью «_alert_hdl.<i>._event»».Примечание. Запрещается эскалация аларм-класса мультиэкземплярного аларма во время выполнения действия при аларме («_event»).Примечание. Запрещается указание «_class» непосредственно после «_event:DPATTR_ALERTEVENT_CAME», который должен использоваться в качестве аларм-класса.Примечание. При наличии у экземпляра аларма множества одинаковых атрибутов они игнорируются (например: «_event:DPATTR_ALERTEVENT_CAME» и «_event:DPATTR_ALERTEVENT_SINGLE_ACK» невозможно определить в рамках одной функции «alertSet()»).W X 
_filteredbool Определяет, должен ли данный аларм скрываться при наличии активного фильтра в соответствующем групповом аларме («_filter_active or _force_filtered»). Используется для единичных алармов.R XX (только в случае групповых алармов)
_force_filteredbool Присвоение значения «true» приравнивается к установке групповым алармом атрибута «_filtered» («_filtered» возвращает «true»). Используется для единичных алармов.Ч/ЗX (только в случае бинарных алармов или групповых алармов) XX (только в случае бинарных алармов или групповых алармов)
_filter_thresholdint Определяет максимальное количество подчиненных алармов, которые могут быть активны до активации фильтрации. См. раздел «Фильтрация алармов». Используется для групповых алармов.Ч/З  
_filter_activebool Возвращает значение «true» при достижении значения «_filter_threshold» (см. выше) или при установке «_force_filter_active». См. раздел «Фильтрация алармов». Используется для групповых алармов.RX X (только в случае групповых алармов)
_force_filter_activebool Атрибут, поддерживающий чтение и запись (для групповых алармов). Присвоение ему значения «true» равнозначно достижению порогового значения («_filter_active» возвращает «true»). См. раздел «Фильтрация алармов».Ч/З X (только в случае групповых алармов)
_helplangString Справка (текст справки или путь к файлу справки).Ч/ЗX  
_hyst_typeint Используется ли гистерезис.Ч/ЗX  
_impulsebool Активация и деактивация импульсных алармов.Ч/ЗX  
_inact_ackbool Алармы, которые не являются текущими, должны быть квитированы.R  
_inactivebool11/27ИСХОДЯЩИЕ алармы помечаются как деактивированные.R X 
_l_hyst_limitvar* Нижний предел нечувствительности (гистерезис)Для данного атрибута и элемента точки данных (например, int _I_hyst_limit) совпадает тип переменной.ПРИМЕЧАНИЕ Значение должно быть абсолютным, а не относительным (как при использовании в редакторе PARA)!Ч/ЗX  
_l_inclbool Нижнее предельное значение входит в диапазонWX  
_l_limitvar* Нижнее предельное значение диапазонаЧ/ЗX  
_lastbool2/18Если измеренное значение входит более чем в один недопустимый диапазон, измеренное значение может перейти в диапазон, который располагается далеко от допустимого. В «КАСКАД Цифра» все диапазоны между допустимым и текущим недопустимым являются ожидающими обработки (например, обработки ожидает не только аларм, но и предупреждение). Текущему недопустимому диапазону присваивается флаг «_last», при этом остальные диапазоны в указанном промежутке остаются ожидающими обработки, но без активного флага.R  
_last_of_allbool3/19Если измеренное значение переходит в недопустимый диапазон несколько раз и покидает его, не будучи квитированным, остается некоторое количество неквитированных сообщений. Первому (наиболее раннему) сообщению присваивается флаг «_last_of_all». Это событие также должно быть квитировано первым. В примере с «_last» сообщению присваивается не только флаг «_last», но и флаг «last_of_all». Флаг «last_of_all» передается от текущего события измеренного значения следующему событию данного измеренного значения. Флаг «_last» представляет интерес только при наличии нескольких недопустимых диапазонов. Флаг «_last» может устанавливаться только при наличии нескольких неквитированных сообщений об измеренном значении для нескольких событий.R  
_matchstring Шаблон, определяющий условия, при которых диапазоном должно вызываться СОБЫТИЕ. Шаблоны зависят от типа элемента точки данных:Bit32: 01X…   1 .. 1 – у шаблона, совпадающего с битом 32, в данной позиции установлено значение 0.0 .. 0 – у шаблона, совпадающего с битом 32, в данной позиции установлено значение 0.X – у шаблона, совпадающего с битом 32, в данной позиции установлено значение 0 или 1.Пример:1111111111111111111111111111111110101010101010101010101010101010XXXXXXXXXXXXXXXX1111111111111111 INT, FLOAT:Диапазоны, например: 0–10 или 6.3–20.8 (в качестве знака, отделяющего дробную часть, во всех языках используется точка).ТЕКСТ: Знаки подстановки с «*» и «?»Звездочка «*» может использоваться для обозначения всех типов данных.Ч/З  
_min_priochar Минимальный приоритет (для подавления алармов) Алармы ниже данного минимального приоритета не относятся к групповому аларму, если данный атрибут установлен.Ч/З X
_multi_instancebool Обработка алармов в элементе точки данных используется для мультиэкземплярных алармов.Ч/ЗX  
_negbool Обратить (инвертировать) обработку диапазона значений.При инвертировании атрибуты «_match» и «_set» инвертируются.Ч/З  
_non_ackbool Указывает, необходимо ли группировать алармы при «квитирование невозможно».Включенные отдельные алармы ограничены алармами определенных типов квитирования. См. раздел «_alert_class (аларм-класс)».W  
_num_rangesчисло без знака Количество диапазоновПоддерживается создание диапазонов с помощью «_alert_hdl.<номер_диапазона>._type».W  
_obsoletebool1/17Указывает, перестал ли аларм быть текущим.Аларм считается неактуальным, если состояние аларма изменяется на значение «аларм отсутствует» либо аларм может быть удален по причине наличия нового ожидающего обработки аларма.R X 
_ok_rangebool Допустимый диапазон для битовой обработки алармов.Ч/ЗX  
_oldest_ackbool9/25Наиболее ранний аларм, который должен быть квитирован в ходе обработки алармов.R  
_orderint Последовательность алармов для групповых алармовКонстанты:ORDER_PRIO_STATE = 0,// Приоритет раньше состояния алармаORDER_SIGN_STATE = 1,// Сокращенное обозначение раньше состояния алармаORDER_STATE_PRIO = 2,// Состояние аларма раньше приоритетаORDER_STATE_SIGN = 3// Состояние аларма раньше сокращенного обозначенияR  
_orig_hdlbool Обработка исходного (TRUE) или текущего значения при обработке алармовЧ/З  
_panelstring Панель для перекрестного выделения.Ч/ЗX  
_panel_paramdyn_string Параметр панели перекрестного выделения.Ч/ЗX  
_parambool Указывает, возможна ли настройка обработки алармов.Ч/ЗX  
_partn_idxint Индекс аларма для аларм-партнера Для различения происходящих одновременно алармов предусмотрен счетчик времени аларма. Атрибут «_partn_idx» является таким счетчиком для атрибута «_partner» типа «time» («время»).R  
_partnertime Время аларма для аларм-партнера Аларм состоит из двух событий: ВХОДЯЩЕГО и ИСХОДЯЩЕГО. Аларм-партнером ВХОДЯЩЕГО события является ИСХОДЯЩЕЕ, а аларм-партнером ИСХОДЯЩЕГО события является ВХОДЯЩЕЕ. Таким образом, атрибут «_partner» ВХОДЯЩЕГО события возвращает время ИСХОДЯЩЕГО или значение 1.1.1970 (если аларм еще не отправлен). Атрибут «_partner» ИСХОДЯЩЕГО события возвращает время ВХОДЯЩЕГО.R  
_partner_alert_idstring Идентификатор аларм-партнера. Аларм-партнером ВХОДЯЩЕГО события является ИСХОДЯЩЕЕ, а аларм-партнером ИСХОДЯЩЕГО события является ВХОДЯЩЕЕ.R X 
_prio_patternstring Шаблон приоритета для группового аларма.Ч/ЗX  
_priorchar Приоритет диапазона алармаR X 
_setdyn_var* Атрибут количества. Поддерживается указание произвольного количества отдельных (изолированных) значений для определения действительного диапазона значений.Ч/ЗX  
_single_ackbool7/23Требуется одиночное квитированиеАтрибут «_single_ack» поддерживает только чтение. То есть поддерживается только запрос значения атрибута.Для конфигурирования аларма необходимо перейти на вкладку «Аргументы» в разделе «config _alert_class (аларм-класс)».R  
_statebit32 С помощью атрибута «alert_hdl.._state» биты («_obsolete», «_ackable» и т. д.) состояния объединяются в набор битов в формате «bit32». Атрибут «_state» ВХОДЯЩЕГО события возвращает первые 16 бит, которые являются битами состояния ВХОДЯЩЕГО события. Атрибут «_state» включает в себя биты как входящего, так и исходящего алармов. Биты 0–15 зарезервированы для ВХОДЯЩЕГО события, а биты 16–31 – для ИСХОДЯЩЕГО события.Атрибут «_state» ИСХОДЯЩЕГО события возвращает первые 16 бит, которые являются битами состояния ИСХОДЯЩЕГО события. Бит 0 атрибута «_direction» может использоваться для указания типа события, состояние которого возвращается: ИСХОДЯЩЕЕ или ВХОДЯЩЕЕ.R  
_status64_patternbit64 Обеспечивает фильтрацию битов, которые активируют аларм при изменении состояния. Если указанные биты состояния шаблона изменяются, активируется аларм. Данный атрибут касается только дискретной обработки алармов.Ч/З  
_status64_matchstring Обеспечивает фильтрацию битов, которые активируют аларм при изменении состояния в каком-либо диапазоне. Если указанные биты состояния образца изменяются, активируется аларм.Данный атрибут касается только дискретной обработки алармов.Ч/З  
_sumbool12/28Указывает, является ли аларм групповым.R X 
_sumalertsdyn_dpid Указывает, в состав какого группового аларма входит данный аларм.R  
_system_timetime Текущее системное время. Время аларма устанавливается на основе времени изменения значения либо на основе времени атрибута «_event». Это время может отличаться от текущего времени, например в случае непостоянного пребывания периферии в активном состоянии. Атрибут «_system_time» отражает момент времени, когда аларм был создан програмой «КАСКАД Цифра». «КАСКАД Цифра» Пример:ПЛК подключается к системе «КАСКАД Цифра» через коммутируемое подключение. В 12:00 возникает пожар. ПЛК пытается установить подключение к операторная. В течение 20 минут установить подключение не удается по причине неисправности телефонной линии. Когда в 12:20 активируется аларм, время этого аларма будет 12:00.Если позднее возникнет вопрос, почему операторной потребовалось 20 минут на то, чтобы оповестить пожарных,в операторной можно будет проверить и убедиться в том, что для доставки аларма потребовалось 20 минут.R  
_textlangString Текст состояния диапазона.Ч/ЗXX (только чтение) 
_text0langString Текст для цифровой 0 (DPCONFIG_ALERT_BINARYSIGNAL).Ч/З  
_text1langString Текст для цифровой 1 (DPCONFIG_ALERT_BINARYSIGNAL).Ч/З  
_typeint Атрибут «_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=3W  
_u_hyst_limitvar* Верхний предел нечувствительности (гистерезис)ПРИМЕЧАНИЕ Значение должно быть абсолютным, а не относительным (как при использовании в редакторе PARA)!Ч/ЗX  
_u_inclbool Верхнее предельное значение входит в диапазонЧ/ЗX  
_u_limitvar* Верхнее предельное значение диапазона.Ч/ЗX  
_valuevar* Значение, которое приводит к аларму.R X 
_value_status64Bit64 Изменение состояние, которое приводит к алармуR X 
_visiblebool4/20 На панели алармов выводятся только те алармы, атрибуту «_visible» которых присвоено значение «true».Аларм не выводится, если состояние аларма изменяется на «аларм отсутствует» либо если появляется новый ожидающий обработки аларм, а в аларм-классе не установлен параметр «квитировать старые алармы» («acknowledge old alarms»).R X 
_went_textlangString Текст состояния ИСХОДЯЩЕГО алармаЧ/ЗX  

* Тип «var» соответствует типу элемента, для которого определяется обработка алармов.

Атрибуты групповых алармов

Атрибуты групповых алармовТипОписание
_sumalertsdyn_dpidУказывает, в состав каких групповых алармов входит данный аларм.
_summed_abbrdyn_langStringСписок текущих сокращенных обозначений
_summed_alertsdyn_atimeСписок текущих алармов (элементы точек данных + время аларма)
_summed_colorsdyn_stringСписок текущих цветов вывода алармов
_summed_classesdyn_stringСписок текущих аларм-классов
_summed_priosdyn_charСписок текущих приоритетов
_summed_statesdyn_intСписок текущего состояния аларма (например, входящий неквитированный)
_summed_alerts_countintУказывает количество алармов в груповых алармах.
Константа CTRLЦелочисленное значениеОписание
DPCONFIG_NONE0Обработка алармов отсутствует
DPCONFIG_ALERT_BINARYSIGNAL12двоичные значения обработки алармов
DPCONFIG_ALERT_NONBINARYSIGNAL13аналоговые значения обработки алармов

«обработка алармов с помощью «_alert_hdl.<i>._act_state»

Следующие целочисленные константы используются для запроса текущего состояния аларма (состояния квитирования) из диапазона аларма (как и обработка алармов в целом) для элемента точки данных. Номер признака в атрибуте соответствует индексу диапазона аларма (см. информацию об атрибутах «_alert_hdl.<i>._type»). Если данный параметр опущен или ему присвоено значение 0, атрибут относится к текущему состоянию обработки алармов (см. dpGet()).

Константа CTRLЦелочисленное значениеОписание
DPATTR_ALERTSTATE_NONE0аларм отсутствует
DPATTR_ALERTSTATE_APP_NOT_ACK1ВХОДЯЩИЙ или ВХОДЯЩИЙ/неквитированный
DPATTR_ALERTSTATE_APP_ACK2ВХОДЯЩИЙ\квитированный
DPATTR_ALERTSTATE_DISAPP_NOT_ACK3ИСХОДЯЩИЙ/неквитированный
DPATTR_ALERTSTATE_APP_DISAPP_NOT_ACK4ВХОДЯЩИЙ/ИСХОДЯЩИЙ/неквитированный

Следующие целочисленные константы могут использоваться для запроса состояния квитирования элемента точки данных.

В функции «alertSet()» «_ack_state» должен использоваться с правильным номером признака (диапазон аларма для аналоговых алармов) и правильным значением времени. С помощью функции «alertSet()» можно квитировать особые алармы. Данная функция используется на панели алармов и событий.

Константа CTRLЦелочисленное значениеОписание
DPATTR_ACKTYPE_NOT0Не квитирован
DPATTR_ACKTYPE_MULTIPLE1Квитировать все
DPATTR_ACKTYPE_SINGLE2Одиночное квитирование

Следующие целочисленные константы могут использоваться для запроса и установки действий по событиям.

Константа CTRLЦелочисленное значениеОписание
DPATTR_ALERTEVENT_CAME0ВХОДЯЩИЙ аларм
DPATTR_ALERTEVENT_CAME_IMPULSE1ВХОДЯЩИЙ аларм с импульсным алармом.
DPATTR_ALERTEVENT_WENT2ИСХОДЯЩИЙ аларм.
DPATTR_ALERTEVENT_MULTIPLE_ACK3Аларм был квитирован в рамках группового аларма.
DPATTR_ALERTEVENT_SINGLE_ACK4Аларм был квитирован отдельно.
DPATTR_ALERTEVENT_WENT_INACTIVE5ИСХОДЯЩИЙ аларм деактивирован.
DPATTR_ALERTEVENT_WENT_OBSOLETE7Ни ИСХОДЯЩЕЕ, ни ВХОДЯЩЕЕ событие не активировано. Данную константу можно использовать для явного удаления аларма (например, если аларм больше не существует на ПЛК).

Следующие целочисленные константы могут использоваться, чтобы установить, применяется ли при обработке алармов гистерезис.

Константа CTRLЦелочисленное значениеОписание
DPATTR_HYST_NONE0гистерезис отсутствует
DPATTR_HYST_VALUE1гистерезис

Обработка алармов с помощью «_alert_hdl.<i>._type» для аналоговых значений

Приведенные ниже целочисленные константы могут использоваться для определения типа обработки алармов диапазона аларма какого-либо элемента точки данных. Номер признака в атрибуте указывает на диапазон аларма: «alert_hdl.1._type» соответствует первому (наиболее раннему) диапазону (см. dpSet()).

Константа CTRLЦелочисленное значениеОписание
DPDETAIL_RANGETYPE_NONE0Диапазон аларма отсутствует
DPDETAIL_RANGETYPE_MINMAX4Мин./макс. диапазон аларма

Групповой аларм

Константа CTRLЦелочисленное значениеОписание
DPCONFIG_NONE0Обработка алармов отсутствует
DPCONFIG_SUM_ALERT59Групповой аларм

ПРИМЕР

Устанавливает обработку алармов по аналоговым значениям с тремя диапазонами:

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 (обработка алармов)».

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *