Разработка АСУТП в среде SCADA-системы GENESIS-32, страница 13

Рисунок 64 - Создание нового VBA-скрипта.

Рисунок 65 - Окно редактора VBA.

Код выглядит следующим образом:

Public vertofs as Single

Public invcolor as Boolean

Sub MoveTube(o As GwxPick) Заголовокпроцедуры

изменяется смещение заливки

  vertofs = vertofs - 0.2

‘ изменяется  стиль заливки на обратную

Ifvertofs < -1 Theninvcolor = Notinvcolor

проверяется смещение на достижение границы

Ifvertofs < -1 Thenvertofs = 1

 ‘ резервируется переменная OBJ, типа ПРЯМОУГОЛЬНИК

DimobjAsGwxRectangle

 ‘ объявляется цикл перебора объектов

ForI = 1 To 7

  ‘ берется конкретный прямоугольник

Setobj = ThisDisplay.GetVisibleObjectFromName("T" + Format(I))

   ‘ устанавливается новый тип заливки 

Kz = obj.SetGradientFill(GradientHorizontal, RGB(255, 0, 0), RGB(100, 0, 0), True, 20, invcolor, 15, 0, vertofs)

   ‘ освобождается объект OBJ

Setobj = Nothing

NextI

End Sub

Данный код каждый раз сдвигает вертикальное смещение градиентной заливки на 0.2 пункта, что создает эффект бегущей тени.

Рисунок 66 -Внешний вид мнемосхемы вращающейся печи обжига кокса.

Для вращения холодильника можно использовать также код, написанного на Visual Basic или Анимацию. Для создания анимации следует сделать несколько копий изображений холодильника, далее в инспекторе свойств необходимо изменить градиентную заливку для каждой копии под определенным смещением (Y%). Допустим, для первой копии холодильника устанавливаем смещение «-100», для второй – «-50», для третьей – «0», для четвертой – «50» и для пятой – «100». Группируем в один объект и по аналогии для кокса и воды создаем анимацию для вращения холодильника.

Для отображения трендов создается новый слой с помощью команды Добавить слой подменю Слои, меню Формат. В появившемся диалоговом окне устанавливается галочка напротив Запрашивать данные для скрытого слоя и снимается галочка Освободить элементы данных после скрытия слоя. Затем нажимается кнопка ОК.

Слоив экранных формах GraphWorX32 являются весьма удобным средством объединения наборов графических объектов, когда объекты, входящие в данный набор, должны отображаться только при определенных условиях. В оставшееся время объекты, помещенные в определенный слой, должны быть скрыты. Подменю Слои/Layers меню Формат/Format позволяет добавлять, удалять, дублировать, редактировать слои, а также устанавливать текущий активный слой, делать текущий активный слой следующим или предыдущим в последовательности слоев, скрывать слои, находящиеся над или под текущим активным слоем.

Рисунок 67 - Добавление нового слоя.

Конфигурирование слоев

Каждая экранная форма GrapnWorX32 изначально содержит один слой, называемый Первичным или Системным.

Весьма важно понимать назначение первичного слоя. При работе с экранными формами, содержащими несколько слоев, любой объект, добавленный или нарисованный в первичном слое, будет находиться и, в случае, если они являются видимым, отображаться во всех остальных слоях экранной формы. Однако объекты, помещенные в первичный слой, не могут быть изменены в других слоях экранной формы.

Для добавления еще одного слоя в экранную форму выберите команду Добавить слой подменю Слои меню Формат. На экран монитора будет выведена диалоговая панель, показанная на рисунке 67.

В диалоговой панели Настройка свойств слоя возможно задать имя слоя, которое будет отображаться в крайнем правом поле строки состояния окна GraphWorX32, установить диапазон масштаба экранной формы, в котором графическая информация, находящаяся в данном слое, будет видима, а также определить правила взаимодействия с источниками данных (с элементами данных в серверах ОРС), когда указанный слой скрыт. Кроме того, диалоговая панель позволяет задать условие, при выполнении которого данный слой будет скрыт.

Примечание. Для изменения параметров уже существующего слоя следует выбрать команду Изменить свойства слоя подменю Слои меню Формат.

Сначала создается объект ICONICS TWXWiev32 путем нажатия на кнопку  инструментальной панели ActiveX. В результате в рабочей области окна появится поле нового тренда, как показано на рисунке 68.