В данной статье мы рассмотрим три метода реализации динамических привязок в 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