Алармы

Вопросы, не попадающие в другие разделы.

Алармы

Сообщение Evgeny » Чт авг 20, 2009 8:41 am

Здравствуйте!
Имеется группа алармов AlmGr_1.
К ней принадлежат несколько тэгов Tag_1, Tag_2, Tag_3.
Для этих тэгов периодически возникают состояния аларма.
Как обратиться к полю .Comment активного в данный момент аларма?
(InTouch 7.1)

Спасибо!
Evgeny
 
Сообщения: 5
Зарегистрирован: Чт дек 27, 2007 8:31 pm

Re: Алармы

Сообщение Blaze » Пт авг 21, 2009 7:37 am

IF ***.Alarm (или иное условие, указывающее что этот аларм активен) THEN ***.AlarmComment = ***;
ENDIF;
Blaze
 
Сообщения: 66
Зарегистрирован: Пн июн 23, 2008 6:34 pm

Сообщение Evgeny » Пт авг 21, 2009 9:51 am

А если в группе сотня алармов?
Перебирать в цикле все и искать активный?
По другому никак?
Evgeny
 
Сообщения: 5
Зарегистрирован: Чт дек 27, 2007 8:31 pm

Re:

Сообщение SMV » Пн июн 08, 2015 12:45 pm

Evgeny писал(а):А если в группе сотня алармов?
Перебирать в цикле все и искать активный?
По другому никак?

Евгений, решили ли Вы эту проблему?
И другой вопрос: Если к одной дискретной переменной привязан аларм и его значение, т.е. комментарий можно изменить в скрипте с помощью AlarmComment, то как сделать, чтобы в AlarmViewerCTRL при сработке аларма появлялась новая строка с событием, а не изменялось у текущей строки время и комментарий?
SMV
 
Сообщения: 2
Зарегистрирован: Вт май 19, 2015 6:28 pm

Re: Алармы

Сообщение Starley » Пн июн 08, 2015 3:10 pm

может IndirectTag поможет?
Starley
 
Сообщения: 40
Зарегистрирован: Вт май 20, 2014 10:17 pm
Откуда: Самара

Re: Алармы

Сообщение SMV » Пн июн 08, 2015 4:49 pm

Starley писал(а):может IndirectTag поможет?

А по подробней можно? :)
SMV
 
Сообщения: 2
Зарегистрирован: Вт май 19, 2015 6:28 pm

Re: Алармы

Сообщение xonyx » Чт июн 18, 2015 4:52 pm

а я создавал текстовый файл, в котором:
1 строка: Combobox, nnn (nnn - количество тегов, которые описаны ниже ниже)
2 строка: тег1, 0
3 строка: тег2, 0
....
n строка: тегn,0

В интаче создавал combobox, в который при загрузке проекта подкидывал этот файлик.
и был скрипт, который запускался при условии активности аварии в определенной группе (например, по состоянию $System.AlarmDscUnackCount<>0 типа On true и while true)
в теле скрипта циклом перебирал строчки combobox и делал с ними, что хотел. (я запускал звук)
Вот сам скрипт:
Код: Выделить всё
DIM AppDir AS MESSAGE;
DIM str AS MESSAGE;
DIM i AS INTEGER;

str = InfoInTouchAppDir();   
str=str+"\ListDiscretTags.txt";
wcClear("ComboBox_TagList");
wcLoadList ( "ComboBox_TagList", str );
FOR i =1 TO KIP_Count_DiscretTags
    wcGetItem ( "ComboBox_TagList", i ,KIP_Ind_DiscretTag_Alarm.Name);
    IF KIP_Ind_DiscretTag_Alarm.UnAck AND StringRight( KIP_Ind_DiscretTag_Alarm.Comment, 1 )<>" " THEN
        AppDir = InfoInTouchAppDir();
        PlaySound(AppDir+"\alarm.wav",1);
    ENDIF;
NEXT;
xonyx
 
Сообщения: 156
Зарегистрирован: Пн мар 14, 2011 5:20 am

Re: Re:

Сообщение xonyx » Чт июн 18, 2015 5:51 pm

SMV писал(а):
Evgeny писал(а):И другой вопрос: Если к одной дискретной переменной привязан аларм и его значение, т.е. комментарий можно изменить в скрипте с помощью AlarmComment, то как сделать, чтобы в AlarmViewerCTRL при сработке аларма появлялась новая строка с событием, а не изменялось у текущей строки время и комментарий?

Тип отображения не summary, а historical, по-моему, аварии в данном случае будут выводится в порядке поступления.
Или же использовать переменную, скриптом меняя ее значение "туда-обратно", дабы зафиксировать ее изменение.
xonyx
 
Сообщения: 156
Зарегистрирован: Пн мар 14, 2011 5:20 am


Вернуться в Другое

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 44