Динамическая адресация в графике AS

Динамическая адресация в графике AS

В данной статье мы рассмотрим три метода реализации динамических привязок в AS. 
Использование динамических привязок в графике AS позволяет создавать панели управления типовыми устройствами (faceplates) и визуальные представления аналогичных производственных площадок с реализованной анимацией на косвенной адресации.

Такой подход к разработке приложений визуализации сокращает время разработки и способствует унификации графики.


Метод SetCustomPropertyValue() 


позволяет изменять выражения или ссылки пользовательских свойств в среде выполнения. Применяется в пользовательских скриптах графики.
SetCustomPropertyValue(System.String name, System.String value, System.Boolean isConstant);
Три параметра:
      name - имя Custom Property, которое будет изменено;
      value - новое значение для Custom Property (константа, выражение или ссылка), 
      isConstant - это флаг, указывающий является ли value константой или ссылкой (имеет значение только, если пользовательское свойство типа string или Time), прописать значение True, если value константа и False, если ссылка.

Пример:
      SetCustomPropertyValue("PV1", 100, true) ;
В среде выполнения по условию скрипта в пользовательское свойство с именем PV1 запишется значение 100.

Примечание:
1. Метод поддерживается только в скриптах Industrial графики.
2. При встраивании графического символа в другой, возможно изменение только публичных пользовательских свойств встраиваемого символа.

Версии приложений:
  • Поддерживается начиная с версии Wonderware Application Server 3.1
  • Поддерживается начиная с версии InTouch 10.1

Метод .BindTo


Скрипты объектов Application Server и скрипты Industrial графики поддерживают тип данных indirect. Это дает возможность привязывать эти переменные к ссылкам, считывать и записывать в них.
Параметром метода может быть абсолютная ссылка на конкретный атрибут, относительная ссылка, выражение, в котором собирается ссылка на атрибут или пользовательское свойство.

Пример:
      dim ptr as indirect;
      ptr.BindTo("ud1_001.Int1");
      if IsGood(ptr) then
      ptr  = 42;
      else
      LogMessage("Bidnding in progress.."); 
      elseif; 

Примечание:
1. Функция .BindTo() не рекомендована для использования в скриптах графики.
Обязательным условием использования этого метода в скриптах Industrial графики является использование цикла проверки с применением функции IsGood() для переменных как показано в примере.
2. Метод .BindTo не может быть использован с атрибутами объектов другого AppEngine до версии SP2020.

Версии приложений:
  • Поддерживается начиная с версии Wonderware Application Server 2.1

Свойство OwningObject 


позволет заменить все ссылки "Me.", содержащиеся в ссылках анимации графического символа желаемым именем экземпляра. Может быть изменено с помощью анимации и пользовательских скриптов. Использование этого свойства аналогично работе с переменными InTouch типа Indirect.

Пример:
В Graphic Toolbox создан символ с анимацией и привязками с использованием ссылок "Me." (Рисунок 1 ниже).



      Рисунок 1: Графический символ с анимацией с использованием ссылок  "Me."

При встраивании этого символа доступно свойство OwningObject. В этом примере показано изменение этого свойства с помощью инструмента ComboBox (Рисунок 2 ниже).



      Рисунок 2: Изменение свойства OwningObject с помощью ComboBox

В среде выполнения ссылки "Me." заменятся заданной строкой, образуя ссылки на конкретные атрибуты.

Примечание:
Свойство OwningObject доступно только для встраиваемых графических символов.

Версии приложений:
  • Поддерживается начиная с версии Wonderware Application Server 3.0