Доступ к текущим alarms и events из внешнего приложения???

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

Доступ к текущим alarms и events из внешнего приложения???

Сообщение set1984 » Пт ноя 16, 2007 11:06 am

Доброго времени суток хотел бы задать следующий вопрос.Я пишу ActiveX для SCADA системы InTouch 9.5, которому

необходимо выводить скажем в стандартный компонент ListBox значения alarms и events (не архивные ). Вот и

вопросик...есть ли какой-нибудь механизм как можно обратиться к этим тэгам. Я переситал toolkit и единственное ,что я

нашел -это ActiveX DataChange позволяющий отслеживать изменения тэгов и тд. Вообщем он бы мне подощел, если не два

но..Первое - это то что этуму объекту необходимо передавать имена тэгов(((а если их у меня 3000).Вот я и незнаю как ему

передать именно те тэги на которых мы смотрим alarms и events. И второе для того, чтобы обратиться к полям тэгов,

используетсья COM объект TagLink, который как написано и мною проверено не работает с InTouch 9.5. Вот я и в

тупике...может есть еще варианты чтобы считывать значения текущих тэгов из InTouch. Буду очень признателен!!!!!!
set1984
 
Сообщения: 6
Зарегистрирован: Пт июл 13, 2007 4:37 pm

Сообщение Admin » Пт ноя 16, 2007 2:40 pm

Простите, не совсем понял Вашу задачу.
Почему бы Вам не использовать готовые ActiveX для алармов?
А в 10-ом Интаче есть также событие OnNewEvent для обработки произвольного нового аларма.
Admin
Site Admin
 
Сообщения: 294
Зарегистрирован: Пт май 04, 2007 7:32 pm

Сообщение set1984 » Пн ноя 19, 2007 10:55 am

Дело в том, что я пишу ActiveX и мне в нем нужно выводить текущии алармы и события....в ListBox. Вот мне и нужно знать как добраться до них..жалко что никто не может помочь((
set1984
 
Сообщения: 6
Зарегистрирован: Пт июл 13, 2007 4:37 pm

Сообщение Admin » Пн ноя 19, 2007 12:10 pm

Уважаемый set1984, одно из двух - или Вы слишком усложняете или же я неправильно Вас понимаю.

Вы должны использовать готовый ActiveX {AlarmViewerCtrl, AlarmTreeViewerCtrl, DistAlarmDisplay} этот компонет "на лету" отображает все возможные алармы (по умолчанию группа System).
Делов том что разработчики InTouch уже постарались максимально упростить Вам жизнь. Далее, обращаясь к созданному объекту как к AlmObj_1 Вы можете использовать функции AlmSelectAll, AlmSelectGroup и наиболее подходяшую на мой взгляд almSelectTag (ObjectName, ApplicationName, GroupName, TagName, FromPri, ToPri) для получения нужной Вам выборки алармов.

Полученная выборка естественно имеет тип (array), который нельзя напрямую присвоить тэгу InTouch, поэтому в ListBox алармы поместить не получиться. Вместо этого Вы можете создать свой объект и присвоить ему аттрибут AlarmQuery вот таким образом:
#AlarmTreeViewerCtrl1.AlarmQuery=
almSelectTag("AlarmTreeViewerCtrl1","InTouch","$System","casey",1,1000);

Какой формат использует AlarmQuery неизвестно, но вероятно что то подобное SQL.
Admin
Site Admin
 
Сообщения: 294
Зарегистрирован: Пт май 04, 2007 7:32 pm

Сообщение High_egor » Ср дек 05, 2007 6:18 pm

можно использовать доп. библиотеку wwextalm.dll которая записывает информацию о текущих алармах в тэг LastAlarmString, который можно парсить скриптом по DataChange.

Или как вариант, использовать Wonderware Alarm Toolkit, получать список алармово в виде XML и выводить их в листбокс
High_egor
 
Сообщения: 1
Зарегистрирован: Ср дек 05, 2007 6:12 pm


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

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

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