Страница 1 из 1

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

СообщениеДобавлено: Пт ноя 16, 2007 11:06 am
set1984
Доброго времени суток хотел бы задать следующий вопрос.Я пишу ActiveX для SCADA системы InTouch 9.5, которому

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

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

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

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

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

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

тупике...может есть еще варианты чтобы считывать значения текущих тэгов из InTouch. Буду очень признателен!!!!!!

СообщениеДобавлено: Пт ноя 16, 2007 2:40 pm
Admin
Простите, не совсем понял Вашу задачу.
Почему бы Вам не использовать готовые ActiveX для алармов?
А в 10-ом Интаче есть также событие OnNewEvent для обработки произвольного нового аларма.

СообщениеДобавлено: Пн ноя 19, 2007 10:55 am
set1984
Дело в том, что я пишу ActiveX и мне в нем нужно выводить текущии алармы и события....в ListBox. Вот мне и нужно знать как добраться до них..жалко что никто не может помочь((

СообщениеДобавлено: Пн ноя 19, 2007 12:10 pm
Admin
Уважаемый 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.

СообщениеДобавлено: Ср дек 05, 2007 6:18 pm
High_egor
можно использовать доп. библиотеку wwextalm.dll которая записывает информацию о текущих алармах в тэг LastAlarmString, который можно парсить скриптом по DataChange.

Или как вариант, использовать Wonderware Alarm Toolkit, получать список алармово в виде XML и выводить их в листбокс