Как запускать фильтрацию алармов?

Обсуждение SCADA-систем: Citect SCADA, Vijeo Citect, CitectSCADA, CitectFacilities, PowerLogic SCADA, PowerSCADA, MX4SCADA, Desigo Insight.
romasimeiz
Сообщений в теме: 2
Сообщения: 32
Зарегистрирован: 14 май 2015, 09:48

Как запускать фильтрацию алармов?

#1

Сообщение romasimeiz » 31 июл 2015, 14:34

Добрый день! подскажите пожалуйста, как лучше сделать :
пробую делать фильтрацию алармов для каждого видеокадра (чтобы все подряд не сыпались). Использую Vijeo Citect 7.40 и функции AlarmFilterOpen и далее.
На видеокадре были созданы объекты Cicode и была сделана привязка следующих функций :

Код: Выделить всё

AlarmDsp(416, 5, 0)
SetFltrAlrm_MF()


Функция SetFltrAlrm_MF() реализована след. образом :

Код: Выделить всё

FUNCTION SetFltrAlrm_MF()
INT iError, iHndl;
STRING filterMF = "AlarmFilterToMF";
iError = AlarmFilterOpen(filterMF, iOpenModeNew, iCloseModeManual);
iHndl = AlarmFilterEditOpen(filterMF);
   IF  iHndl <> -1 THEN
      iError = AlarmFilterEditSet(iHndl,"Category=1");
      IF  iError = 0 THEN
          iError = AlarmFilterEditCommit(iHndl);
          IF  iError = 0 THEN
         iError = AlarmFilterEditClose(iHndl);
         END
      END
    END
      iError = AlarmSetInfo(AN_MF, 12, filterMF);
      iError = AlarmFilterClose(filterMF);      
END


Привязка к обеъкту CiCode выше обозначенных функций обеспечивает выполнение только первой по счёту функции AlarmDsp. Фильтрация алармов не запускается, т.е. отображаются все. Менять местами их тоже не помогло, тогда алармов нет вообще.
Запускается , только если в свойствах графической страницы запустить SetFltrAlrm_MF через TaskNew. Тогда только алармы начинают правильно фильтроваться.
Правильно ли я сделал? Точнее эффективно ли это ?
Может подскажете как лучше поступить? Спасибо!



Аватара пользователя
alex
Администратор
Сообщений в теме: 2
Сообщения: 1756
Зарегистрирован: 05 апр 2010, 21:58
Откуда: Москва
Благодарил (а): 47 раз
Поблагодарили: 104 раза
Контактная информация:

Re: Как запускать фильтрацию алармов?

#2

Сообщение alex » 06 авг 2015, 09:36

Я попробовал реализовать Ваше решение на Vijeo Citect 2015, в нем все работает как Вы задумывали изначально, т.е:
AlarmDsp(416, 5, 0)
SetFltrAlrm_MF()

Нет необходимости применять фильтр в отдельной задаче.



romasimeiz
Сообщений в теме: 2
Сообщения: 32
Зарегистрирован: 14 май 2015, 09:48

Re: Как запускать фильтрацию алармов?

#3

Сообщение romasimeiz » 06 авг 2015, 14:33

Может в этом то и дело: что у вас Vijeo Citect 2015 а у меня 7.40 ?
Кстати, я не могу понять в чём дело. Я сделал один проект. Добавил туда несколько дискретных алармов. При запуске проекта они отображаются функцией AlarmDsp(236, 5, 0). Т.е. все активные алармы.
Взял другой проект. Точно также сконфигурировал дискртные алармы, результат - ни один из них не отображается :(((( Что делать ? Я всё перепробовал. Ошибок и предупреждений Citect не выдаёт :( .



Аватара пользователя
alex
Администратор
Сообщений в теме: 2
Сообщения: 1756
Зарегистрирован: 05 апр 2010, 21:58
Откуда: Москва
Благодарил (а): 47 раз
Поблагодарили: 104 раза
Контактная информация:

Re: Как запускать фильтрацию алармов?

#4

Сообщение alex » 07 авг 2015, 09:05

Воспроизвел в Vijeo Citect 7.40 SP1 тоже все работает. Думаю есть какие-то нюансы в конфигурировании проектов. Если есть возможность выложить тестовый проект с этим эффектом, можно будет точнее сказать что не так.




Если эта тема может быть полезна другим, поделитесь ссылкой:

Вернуться в «Citect SCADA, Vijeo Citect, CitectSCADA, CitectFacilities, PowerLogic SCADA, PowerSCADA, MX4SCADA, Desigo Insight»