Страница 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