PDA

Просмотр полной версии : События из OPC HDA тегов



evg3798
03.06.2014, 14:20
На тренде получаю все значения тега "вибратор" из конфигурации "симулятор" (HDA), а события заносятся в журнал только в реальном времени.
Можно ли получить все события из HDA тегов OPC сервера Insat с записью в журнал?

SCADAMaster
03.06.2014, 15:47
Не совсем понятно про какие события идет речь. Опишите вашу проблему подробнее.
Если вам нужно формировать архив сообщений на основе HDA, то посмотрите это сообщение:
http://www.owen.ru/forum/showthread.php?t=11806&p=136673&viewfull=1#post136673

evg3798
05.06.2014, 02:48
События аналогичны http://www.owen.ru/forum/showthread.php?t=17448 только не кратковременные.
Пример меркурия просмотрел. Только там у него загружаются, как я понял, свои архивы. Мне нужны теги из OPC Insat HDA. На их основе организовать сообщения в журнале (например: вкл-выкл установки, превышение параметра и т.п.).
Дело в том, что я не программист и мне сложновато разобраться со скриптами.

Спасибо.

SCADAMaster
05.06.2014, 08:06
Без скриптов данную задачу не решить.
Пользователь из этой темы как раз решает именно эту задачу - из HDA формировать архив сообщений.
Ниже у нас есть пример как получить в скрипте архив из HDA, чтобы потом можно было на основе него генерировать сообщения.
http://www.owen.ru/forum/showthread.php?t=11806&p=137117&viewfull=1#post137117

evg3798
05.06.2014, 10:14
Спасибо, я это уже читал. Только я не программист и мне трудно разобраться со скриптами.
Скажите куда что подать и что я должен получить.
Спасибо.

SCADAMaster
05.06.2014, 13:03
Просто "подать" не получится - скрипт нужно адаптировать под задачу (например при каких значениях нужно сформировать сообщение и какой должен быть текст сообщения).
Посмотрите код из указанного примера - каждая строчка кода закомментирована.
Непосредственная генерация сообщения происходит в строчках:
project.AlarmManager.OnFBEventTimed(alarmId, text, -1, (short)EventStatus.EventOn, (uint)OpcQuality.Good,TimeStart);
project.AlarmManager.OnFBEventTimed(alarmId, text, -1, (short)EventStatus.EventOff, (uint)OpcQuality.Good,TimeEnd);