OpcNetApi прочитать дерево сигналов из OPC HDA сервера
От: Xbarter  
Дата: 16.04.09 08:22
Оценка:
Есть HDA сервер.
Требуется построить дерево его сигналов и выбрав сигнал из дерева произвести обработку данных по этому сигналу за определенный промежуток времени.

//подключаюсь к серверу
Opc.Hda.Server hdaSrv;
Opc.URL url = new Opc.URL("opchda://" + "127.0.0.1" + "/" + serverProgID + "");
hdaSrv = new Opc.Hda.Server(new OpcCom.Factory(), url);
hdaSrv.Connect(); //ну там есть еще обработка исключений.

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

теперь возникает вопрос, как просмотреть все содержимое HDA сервера.

пробую следующее:

filt = new Opc.Hda.BrowseFilter();
filt.AttributeID = Opc.Hda.AttributeID.ITEMID;
filt.Operator = Opc.Hda.Operator.Equal;
filt.FilterValue = "P"; //насколько я понял фильтр по вхождению "P" в имя ветви
Opc.Hda.BrowseFilter[] brList = new Opc.Hda.BrowseFilter[1];
brList[0] = filt;
Opc.ResultID[] resultIDs = null;
Opc.Hda.IBrowser browse = this.hdaSrv.CreateBrowser(brList, out resultIDs);

вот. после этого в resultIDs[0].Name.Name содержится "W_NOFILTER" . ветви с содержащимися в них символами P и p точно есьт.
пошарился по форуму OPC foundation я пршел к выводу что используемый HDA сервер не поддерживает метод Browse.

Вопросы:
правильно ли я это понял?
если понял правильно как теперь быть? другой сервер использовать не могу , т.к. данные для обработки хранятся и записываются только при помощи этого HDA сервера.
если понял не правильно поясните кто в теме плиз.
заранее спасибо всем!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.