Помогите пожалуйста советом, ситуация следующая:
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 сообщения на каждый добавляемый тэг.
Куда может пропадать этот объект?