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

Ошибка в aaHistClientTrend - NullReferenceException

СообщениеДобавлено: Пт мар 20, 2015 5:52 pm
cuthbert
Добрый день!
Помогите пожалуйста советом, ситуация следующая:
1. У объекта есть графический символ, в него добавлен .Net объект - aaHistClientTrend Control (имя добавленного символа - aaTrendControl1 )
2. Так же у исходного символа созданы несколько Custom Properties
3. Проблемы вознимакают при работе со следующими:
CurrentTagValAtX1 - тип float
CurrentTagValAtX2 - тип float

4. Для их отображения на схеме тренада использую Digital4Digit, там они привязаны к value.

5. Далее произвожу привязку эти Custom Properties следующим образом

Код: Выделить всё
dim s_ptr as string;

s_ptr = "aaTrendControl1.CurrentTagValAtX1";
SetCustomPropertyValue("CurrentTagValAtX1", s_ptr,false);

s_ptr = "aaTrendControl1.CurrentTagValAtX2";
SetCustomPropertyValue("CurrentTagValAtX2",s_ptr,false);


6. В настоящий момент этот скрипт выполняется по условию
Код: Выделить всё
 aaTrendControl1.ShowXAxisCursors == true

т.е. когда включается отображение x-axis cursors

7. Пока привязка этих Custom Properties не произведена к aaTrendControl1.CurrentTagValAtX1 (2)
получается нормально работать с трендами, т.е.
1) добавление новых тэгов через:
Код: Выделить всё
aaTrendControl1.AddTag(GRPlatform.Engine.Historian.Connection, "<имя тэга>", 1);

2) Очистка списка тэгов
Код: Выделить всё
aaTrendControl1.ClearTags();


8. Но как-только произвожу отображение курсоров по оси х, т.е. выполяню команду присвовения:
Код: Выделить всё
aaTrendControl1.ShowXAxisCursors = true

Далее отрабатывает скрипт по изменению aaTrendControl1.ShowXAxisCursors == true
Код: Выделить всё
dim s_ptr as string;

s_ptr = "aaTrendControl1.CurrentTagValAtX1";
SetCustomPropertyValue("CurrentTagValAtX1", s_ptr,false);

s_ptr = "aaTrendControl1.CurrentTagValAtX2";
SetCustomPropertyValue("CurrentTagValAtX2",s_ptr,false);


9. После этого операции добавления тэгов выдают в лог следующую ошибку:
GetTagValAtX1:System.NullReferenceException: Object reference not set to an instance of an object.
at ArchestrA.HistClient.UI.aaTrendControl.GetTagValAtX1(String serverName, String tagName)



10. В чем может быть причина?
В том что перед добавление тэгов очищаю список через aaTrendControl1.ClearTags(); ?
Перед этой операцией произвожу отключение отображения курсоров присвоением aaTrendControl1.ShowXAxisCursors = false.

Может быть есть обратная операция SetCustomPropertyValue("CurrentTagValAtX1", s_ptr,false); ?
Пробовал при отключении осей курсоров делать
Код: Выделить всё
SetCustomPropertyValue("CurrentTagValAtX1", "0,0",true);

Вроде бы по логике долно быть просто присвоено значение для этих Custom Properties в "0.0"
Но это не помогает, ошибка все равно продолжает валиться в лог, примерно 3-4 сообщения на каждый добавляемый тэг.

Куда может пропадать этот объект?