Страница 1 из 1
Получение Item Reference из OPCClient
Добавлено:
Вт июл 25, 2017 12:46 pm
callmecough
Нужно получить значение Item Reference каждого элемента Attribute. Например, есть три кнопки и три текстовых поля. Необходимо по нажатию одной кнопки первому текстовому полю присваивалось значение Item Reference первого атрибута в ScanGroup (в моем примере IASPulse) - в данном случае - Zond.Value.Code2.For system numbers.IASPulse, по нажатию второй кнопки второму текстовому полю присваивалось значение Item Reference другого атрибута - IASPlenary и т.д.
Вообщем, подскажите пожалуйста, как можно обратиться вот к этим конкретным Item Reference? Спасибо.
Re: Получение Item Reference из OPCClient
Добавлено:
Вт июл 25, 2017 9:50 pm
Генератор зла
А в чём трудности?
Всё как обычно.
Создаётся производный от одного из шаблонов (A nalogDevices, DiscreteDevices, String), в котором в поле InputSource указывается ссылка на необходимый атрибут OPCClient_Zond#L08.
Re: Получение Item Reference из OPCClient
Добавлено:
Чт июл 27, 2017 11:47 am
callmecough
Наверное, неправильно объяснил чего мне надо. В случае, как написали Вы, будет выводится именно величина, измеряемый параметр, давление или температура например, а мне нужно само название (текст) референса. Т.е. именно Zond.Value.Code2.For system numbers.IASPulse. Другими словами, по нажатию кнопки, чтоб выводилось имя привязки тега к системе нижнего уровня
Re: Получение Item Reference из OPCClient
Добавлено:
Чт июл 27, 2017 2:04 pm
Генератор зла
Данная информация хранится в:
ИмяOPCCliet.ИмяOPCGroup.AliasDatabase
Но придётся помучиться с расшифровкой в скрипте XML-формата, в котором хранятся данные.
Re: Получение Item Reference из OPCClient
Добавлено:
Пн ноя 13, 2017 2:47 pm
callmecough
Данные из OPCClient.ИмяOPCGroup.AliasDatabase я получил. Вот таким образом:
dim TagRef as System.Xml.XmlNode;
dim doc as System.Xml.XmlDocument;
dim SR as System.IO.StringReader;
SR = new System.IO.StringReader(OPCClient_L09.Valve.AliasDatabase);
doc = new System.Xml.XmlDocument;
doc.load(SR);
TagRef = doc.SelectSingleNode("/ItemsList/Item[@Alias='"+me.Tagname+"']/@Name");
me.ItemReference = TagRef.InnerText;
LogMessage(TagRef.InnerText);
Теперь, как бы это сделать на уровне шаблона, т.е. у меня разная вот эта часть:OPCClient_L09.Valve.. Я мог бы получить ее, например из InputSource самого тега, сложить это все в string и сделать примерно так:
SR = new System.IO.StringReader(me.OPCName + "AliasDatabase"); где me.OPCName - это стринг с кусочком от InputSource, но функция System.IO.StringReader не понимает, что ей дают ссылку на данные, а не сами данные. то есть, с кавычками не работает:
SR = new System.IO.StringReader("OPCClient_L09.Valve.AliasDatabase");
Как бы заставить функцию использовать строку в качестве аргумента? Хотя, может есть и другие варианты? Спасибо!
Re: Получение Item Reference из OPCClient
Добавлено:
Пн ноя 13, 2017 5:33 pm
callmecough