Анимационная система

Анимационная система SimInTech позволяет создавать в проектах SimInTech виртуальные индикаторы и органы управления на основе набора графических примитивов. Посредством инструментов анимационной системы происходит связывание свойств графических примитивов со значениями сигналов проекта и/или сигналов подключаемой к проекту базы данных. Таким образом, анимационная система даёт возможность организовывать наглядную визуализацию изменения данных, рассчитываемых в модели внутри проекта SimInTech, либо получаемых от реального оборудования. Анимация может быть реализована непосредственно в проекте, содержащем расчетную модель, либо в качестве отдельного внешнего проекта с набором видеокадров, подключаемого к проекту с моделью и/или базой данных.

Рисунок 1. Принцип использования анимационной системы

Анимационная система может использоваться для управления внешним видом отдельных примитивов и графических контейнеров, содержащих наборы примитивов.

Также возможно два варианта управления внешним видом библиотечных блоков SimInTech. Первый – аналогично примитивам, путём изменения свойств блоков, таких как координаты, линейные размеры и видимость, хотя такое использование блоков SimInTech не является типичным. Второй – за счет использования анимированных пиктограмм для библиотечных блоков. Этот вариант может использоваться для наглядного отображения значений, рассчитываемых в блоке.

Самый простой вариант использования анимационной системы – управление внешним видом отдельных графических примитивов, добавленных непосредственно в схемное окно проекта разрабатываемой модели, через свойства этого примитива. Этот вариант больше подходит для отладки. Для создания сложных, многократно тиражируемых индикаторов, а также для некоторых особых применений стоит использовать следующие графические контейнеры:

Примечание: схемное окно проекта также обладает всеми свойствами и инструментами графических контейнеров, однако его функциональность гораздо шире.

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

В зависимости от конкретного применения для установления связей между сигналами и свойствами анимируемых объектов и создания необходимого окружения из сигналов и переменных может использоваться ряд инструментов SimInTech:

Связь между сигналами и свойствами графического объекта (примитива или контейнера), может быть описана с помощью редактора связей, либо с помощью скрипта, написанного на встроенном языке программирования. Создание связи с помощью редактора связей – это наиболее простой и наглядный способ, в то время как программный код является более гибким средством и предоставляет пользователю больше возможностей. Допускается одновременное использование обоих вариантов.

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

Рисунок 2. Возможные способы установления связей между сигналами и свойствами графического примитива

Передача значений в направлении от свойств графического примитива к сигналам функционирует не для всех свойств примитивов.

Для организации обмена данными между сигналами проекта или базы данных и содержимым контейнера необходимо дополнительно использовать механизм глобальных или общих свойств контейнера. Необходимость его использования обусловлена областями видимости переменных в SimInTech: значения свойств объектов и скриптовых переменных, используемых внутри графического контейнера, не видны вне этого контейнера. Тем не менее, во внутреннем скрипте контейнера можно обращаться к внешним сигналам как для чтения, так и для записи.

Суть механизма глобальных свойств заключается в том, что внутри контейнера создаётся необходимое количество глобальных свойств, значения которых будут видны вне этого контейнера. А установление связей внутри самого контейнера между глобальными свойствами и свойствами графических примитивов производится по описанной выше схеме с помощью редактора связей или скрипта, но уже на уровне контейнера. Связывание глобальных свойств контейнера с сигналами проекта и базы данных реализуется по аналогичной схеме.

Рисунок 3. Возможные способы установления связей между сигналами и свойствами графического контейнера

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

Рисунок 4. Глобальные свойства графического контейнера «Group», отображаемые в списке стандартных свойств данного графического примитива

Основные этапы внедрения в проект анимированных объектов таковы:

  1. Компоновка изображения, которое должно стать анимированным, определение свойств объектов, которые должны будут изменяться на основе значений сигналов.
  2. Создание необходимого набора сигналов в проекте, в базе данных. При добавлении анимации в графические контейнеры дополнительно необходимо создать набор глобальных свойств для обмена значениями между объектами контейнера и внешними сигналами. Также могут понадобиться наборы внутренних сигналов и локальных переменных.
  3. Описание связей между сигналами проекта, базы данных и свойствами обектов, выбранными в первом пункте.

Подробнее данные этапы рассмотрены в примерах.

Для того, чтобы анимация отображалась в процессе расчета, нужно предварительно перевести схемное окно проекта из режима «Редактирование» в режим «Индикация» нажатием кнопки / на панели инструментов схемного окна.

Рисунок 5. Переключение режимов отображения схемного окна проекта

В случае необходимости создания окружения для большого количества однотипных объектов в SimInTech можно использовать опцию «Шаблон автозаполнения», которая входит в состав свойств как библиотечных блоков SimInTech, так и графических примитивов. Она позволяет автоматизировать данный процесс.

Также в SimInTech возможно созданиеанимированных пиктограмм для библиотечных блоков Субмодель.