Разработка анимационного блока в SimInTech

Лабораторная работа №3.

Цель работы:

Задачи работы:

Разработка блоков и анимационная система в SimInTech

Технические системы нередко состоят из однотипных элементов с одними и теми же параметрами или одним и тем же алгоритмом или скриптом, и при моделировании данных систем разработка каждого подобного элемента с нуля ведет к увеличению времени разработки модели. Сокращение времени на разработку таких систем в SimInTech достигается благодаря возможности разработки собственных блоков, а также данный подход существенно упрощает процесс моделирования за счет:
  • возможности самостоятельной разработки новых блоков для их повторного использования;
  • возможности изменения параметров во внутреннем алгоритме или скрипте через назначенные блоку свойства;
  • возможности сохранения разработанных блоков в собственные библиотеки блоков.

Разработка собственных блоков в SimInTech выполняется с помощью встроенных средств: блоком «Субмодель», блоком «Язык программирования», с помощью блока «Внешняя DLL»; с помощью стороннего средства IDE Delphi; а также за счет встраивания библиотек, разработанных на различных языках программирования.

Для упрощения процесса моделирования сложных разветвленных систем зачастую используют графическую анимацию элементов модели, которые в зависимости от рассчитанных параметров изменяют свое графическое отображение. В SimInTech существует возможность создания анимированных графических изображений для любых блоков. Процесс создания анимированных объектов в SimInTech условно разделяется на три этапа:
  1. Компоновка изображения для анимации.
  2. Создание нужного окружения из сигналов, переменных и глобальных свойств.
  3. Описание связей между созданным окружением и свойствами графических примитивов, а также логикой их работы.
Блок «Субмодель» является стандартным блоком библиотеки «Субструктуры» решателя «Автоматика» и чаще всего его используют:
  • для логического разделения и структурирования схем;
  • для создания на основе блока «Субмодель» нового структурного блока.

Логическое разделение и структурирование схем было представлено в лабораторной работе №1 и лабораторной работе №2. В данной работе будет рассматриваться разработка нового блока, который будет входить в стандартную библиотеку блоков автоматики, а также разработка графической анимации для данного блока.

Разработка анимированного графического изображения для бака

В предыдущей лабораторной работе была разработана модель управления наполнением и опорожнением бака. Работу данной модели возможно представить более наглядно за счет создания анимации работы блока «Субмодель» с подписью «Модель бака», которая будет отображать текущее значение объема бака в виде подвижного столбца линейной шкалы.

Разработку графического изображения для бака необходимо выполнить в новом проекте. Для создания нового проекта необходимо:
  1. В главном окне SimInTech нажать левой кнопкой мыши на кнопку «Файл» и выбрать пункт «Новый проект».
  2. В выпадающем меню выбрать пункт «Схема модели общего вида».
Откроется новое окно проекта с рабочей областью, в котором требуется разместить следующие блоки (Рисунок 1):
  • 2 блока «Кнопка» из вкладки «Ключи» - данные блоки позволяют включать/отключать клапан наполнения и клапан опорожнения.
  • 1 блок «Усилитель» из вкладки «Операторы» - данный блок позволяет задать интенсивность входного потока.
  • 1 блок «Временной график» из вкладки «Вывод данных» - данный блок выводит значения результатов моделирования в виде графика.

    Рисунок 1. Рабочая область проекта с размещенными блоками.

Сохранить проект под именем «tank.prt».

Необходимо добавить на схему модель бака, разработанную в лабораторной работе №2. Для этого следует открыть проект «tank_2_volume.prt» из лабораторной работы №2 (Рисунок 2).

Рисунок 2. Рабочая область проекта «tank_2_volume.prt» из лабораторной работы №2.

Скопировать в новый проект «tank.prt» блок «Субмодель» с подписью «Модель бака», для этого необходимо выбрать блок «Субмодель» с подписью «Модель бака» и скопировать с использованием сочетания клавиш «Ctrl + C».

После копирования блока необходимо разместить блок в рабочей области проекта «tank.prt», для этого необходимо открыть проект «tank.prt» и вставить с использованием сочетания клавиш «Ctrl + V». Для снятия выделения блока необходимо нажать на свободное пространство проекта (Рисунок 3). После этого необходимо закрыть проект «tank_2_volume.prt».

Рисунок 3. Рабочая область проекта «tank.prt».

Установка блоков завершена, далее необходимо настроить блоки. Вывод значения уровня и объема жидкости в баке будет осуществляться блоком «Временной график», для отображения данных двух параметров на одном графике необходимо увеличить количество входных портов блока «Временной график». Для этого необходимо открыть окно «Свойства» блока «Временной график», в открывшемся окне в поле «Значения» задать значение свойства «Количество входных портов» равным «2».

Добавление блоков в рабочую область проекта завершено, далее необходимо разместить блоки в рабочей области проекта, соединить их линиями связи и задать им подписи согласно рисунку (Рисунок 4).

Рисунок 4. Рабочая область проекта «tank.prt» с блоками, соединенными линиями связи.

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

Перед изменением графического изображения блока необходимо изменить способ отображения подписей портов блока с внутреннего отображения на наружное для неподключенных, для того чтобы видеть название неподключенных портов. Для этого необходимо открыть окно «Свойства» блока «Субмодель» с подписью «Модель бака», в открывшемся окне во вкладке «Общие» в поле «Значение» задать значение свойства «Режим показа подписей портов» равным «Снаружи блока для неподключенных» (Рисунок 5).

Рисунок 5. Окно «Свойства» блока «Модель бака» с выделенным свойством «Режим показа подписей портов».

Подготовка блока завершена, теперь необходимо перейти к изменению графического изображения блока «Субмодель» с подписью «Модель бака», для этого необходимо открыть окно «Свойства» блока «Субмодель» с подписью «Модель бака». В открывшемся окне во вкладке «Общие» в поле «Значение» выбрать свойство «Графическое изображение». Нажать на появившейся кнопку доступа к графическому изображению, которая обозначена на рисунке (Рисунок 6). Также доступ к изменению графического изображения блока возможно выполнить через контекстное меню выбранного блока, для этого необходимо выбрать блок «Субмодель» с подписью «Модель бака», вызвать контекстное меню и выбрать пункт «Графическое изображение блока…».

Рисунок 6. Окно «Свойства» блока «Субмодель» с подписью «Модель бака» с выделенной кнопкой доступа к графическому изображению.

Откроется окно «Графический редактор» со стандартным изображением блока «Субмодель» в виде пустого контейнера (Рисунок 7).

Рисунок 7. Окно «Графический редактор».

Необходимо убедиться, что графический контейнер блока «Субмодель» не содержит изображения, удалив текущее изображение блока. Для этого необходимо выделить всю область графического контейнера, нажав левой кнопкой мыши на свободное пространство рабочей области графического редактора и потянув до полного захвата изображения, как на рисунке (Рисунок 8), или выделив содержимое с использованием сочетания клавиш «Ctrl + A».

Рисунок 8. Окно «Графический редактор» с выделенным изображением.

После того, как было выделено содержимое графического контейнера, на рисунке (Рисунок 8) это захваченная белая прямоугольная область, необходимо удалить изображение. Удаление изображения выполняется нажатием на кнопку «Удалить», которая выделена на рисунке (Рисунок 9), или нажатием на клавишу «Delete».

Рисунок 9. Окно «Графический редактор» с выделенной кнопкой «Удалить».

Графический контейнер блока очищен, теперь необходимо изменить размер графического контейнера. Для изменения размера графического изображения блока необходимо нажать на кнопку «Масштаб». В открывшемся списке при нажатии на пункт:
  • «Задать размеры контейнера» − выполняется изменение размера графического контейнера по ширине и высоте согласно заданным пользователем параметрам в открывающемся окне «Размеры контейнера».
  • «Задать размеры контейнера по размеру блока» − выполняется изменение размера графического контейнера по ширине и высоте согласно размеру редактируемого блока, размещенного в рабочей области проекта.
  • «Задать размеры контейнера по блоку с коэффициентом» − выполняется изменение масштаба отображения графического контейнера согласно заданным пользователем параметрам в открывающемся окне «Масштаб, %».
Выбрать пункт «Задать размеры контейнера» (Рисунок 10).

Рисунок 10. Окно «Графический редактор» с выделенным пунктом «Задать размеры контейнера по размеру блока» меню «Масштаб».

В открывшемся окне «Размеры контейнера» требуется задать размеры графического контейнера: в поле «Ширина» значение «56», в поле «Высота» значение «64». Нажать на кнопку «Ok» для подтверждения изменения и закрытия окна.

Размер контейнера задан, далее необходимо изменить масштаб отображения пустого графического контейнера для удобства редактирования изображения блока, для этого необходимо в окне «Графический редактор» нажать в строке состояния на область с подписью «Масштаб:», обозначенную на рисунке (Рисунок 11).

Рисунок 11. Окно «Графический редактор» с выделенным в строке состояния областью «Масштаб».

В открывшемся окне «Масштаб» выбрать масштаб «200%» или ввести в поле значение «200» (Рисунок 12).

Рисунок 12. Окно «Масштаб» графического редактора.

Соотношение размера изображения и рабочего пространства изменилось (Рисунок 13).

Рисунок 13. Окно «Графический редактор» с измененным масштабом изображения.

Графическое изображения бака будет построено из прямоугольника, эллипсов и прямых, а также линейного прибора. Для создания изображения бака используются графические примитивы, которые находятся в окне «Панель примитивов» на палитре блоков (Рисунок 14).

Рисунок 14. Главное окно программы с выделенной кнопкой вызова окна примитивов.

В открывшемся окне представлен набор графических примитивов, в котором необходимо выбрать «Залитый эллипс» (Рисунок 15) для создания основания бака.

Рисунок 15. Главное окно программы с панелью примитивов с выделенным примитивом «Залитый эллипс».

После того, как был выбран примитив «Залитый эллипс», в окне «Графический редактор» появился круг (Рисунок 16), который будет перемещаться вместе с курсором мыши.

Рисунок 16. Окно «Графический редактор» с графическим примитивом «Залитый эллипс».

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

Рисунок 17. Окно «Графический редактор» с выделенным примитивом «Залитый эллипс».

Зажать угол одинарным нажатием левой кнопкой мыши и, удерживая кнопку мыши, потянуть в сторону по горизонтали, чтобы увеличить или уменьшить ширину примитива, по вертикали, чтобы увеличить или уменьшить размер примитива по высоте. Изменить размер примитива «Залитый эллипс» согласно рисунку (Рисунок 18)

Рисунок 18. Окно «Графический редактор» с измененным примитивом «Залитый эллипс».

Верхнее основание бака создано, теперь необходимо изменить цвет примитива «Залитый эллипс», для этого необходимо выбрать данный примитив, вызвать контекстное меню и выбрать пункт «Свойства объекта» (Рисунок 19).

Рисунок 19. Окно «Графический редактор» с контекстным меню примитива «Залитый эллипс» с выделенным пунктом «Свойства объекта».

В результате откроется окно «Свойства» примитива «Залитый эллипс», в котором необходимо нажать на поле «Значение» свойства «Цвет» и затем нажать на кнопку доступа к графическому изображению, для открытия окна выбора цвета по шкале, палитре или задания цвета по цветовой модели. Откроется окно «Цвет», в котором требуется выбрать цвет согласно рисунку (Рисунок 20). Нажать на кнопку «OK» для сохранения изменения и закрытия окна.

Рисунок 20. Окно «Цвет» с выделенным цветом на палитре основных цветов.

Цвет основания бака задан, теперь необходимо его продублировать, для обозначения верхнего и нижнего основания бака, для этого необходимо выбрать примитив «Залитый эллипс», сделать его копию и разместить копию примитива «Залитый эллипс» согласно рисунку (Рисунок 21).

Рисунок 21. Окно «Графический редактор» с изображением бака.

Основания бака созданы, далее требуется создать форму бака, для этого необходимо открыть окно «Панель примитивов» на палитре блоков, в открывшемся окне выбрать «Залитый прямоугольник». Разместить выбранный примитив «Залитый прямоугольник» и изменить его размер согласно рисунку (Рисунок 22).

Рисунок 22. Окно «Графический редактор» с размещенным примитивом «Залитый прямоугольник».

Изменить цвет примитива «Залитый прямоугольник» и цвет границы согласно рисунку (Рисунок 23).

Рисунок 23. Окно «Свойства» примитива «Залитый прямоугольник» с выделенными свойствами «Цвет» и «Цвет границы».

После задания цвета бака, необходимо изменить порядок перерисовки примитивов, разместив примитив «Залитый эллипс», отвечающий за верхнее основание бака, на верхний слой изображения, примитив «Залитый прямоугольник», отвечающий за форму бака, на средний слой, примитив «Залитый эллипс», отвечающий за нижнее основание бака, на нижний слой изображения. Для этого необходимо выбрать меню «Правка» и выбрать пункт «Порядок перерисовки», откроется окно «Порядок объектов», в котором требуется задать порядок объектов согласно рисунку (Рисунок 24), при помощи обозначенных на рисунке кнопок «Поместить вверх», «Поместить вниз».

Рисунок 24. Окно «Порядок объектов» с выделенными кнопками управления «Поместить вверх» и «Поместить вниз».

Форма бака создана, далее необходимо добавить контур к изображению бака, для этого необходимо открыть окно «Панель примитивов» на палитре блоков, в открывшемся окне выбрать «Прямая». Для того, чтобы нарисовать прямую линию примитивом «Прямая» необходимо нажать левой кнопкой мыши на начальную точку прямой линии и переместить вниз курсор мыши до появления прямой линии (Рисунок 25).

Рисунок 25. Окно «Графический редактор» с созданием примитива «Прямая».

Для завершения создания прямой необходимо нажать левой кнопкой мыши на конечную точку прямой, таким образом, чтобы размер прямой соответствовал рисунку (Рисунок 26).

Рисунок 26. Окно «Графический редактор» с размещенным примитивом «Прямая».

Прямая для контура бака создана, теперь необходимо продублировать прямую, для завершения создания контура бака, для этого необходимо выделить примитив «Прямая», скопировать и разместить копию согласно рисунку (Рисунок 27).

Рисунок 27. Окно «Графический редактор» с изображением бака.

Форма бака создана, теперь требуется изобразить для него шкалу, для этого необходимо открыть окно «Панель примитивов» на палитре блоков. В открывшемся окне выбрать «Линейный прибор» (Рисунок 28).

Рисунок 28. Главное окно программы с панелью примитивов с выделенным примитивом «Линейный прибор».

Разместить примитив «Линейный прибор» в графическом контейнере блока (Рисунок 29).

Рисунок 29. Окно «Графический редактор» с размещенным примитивом «Линейный прибор».

После размещения примитива «Линейный прибор» необходимо изменить его отображение: изменить шрифт, предельное значение и шаг шкалы, число делений на шаг, а также размер и ориентацию. Для изменения размера шрифта примитива «Линейный прибор» необходимо открыть окно «Свойства» примитива «Линейный прибор», в открывшемся окне во вкладке «Общие» выбрать поле «Значение» свойства «Шрифт», нажать на кнопку доступа к редактору шрифта, которая обозначена на рисунке (Рисунок 30).

Рисунок 30. Окно «Свойства» примитива «Линейный прибор» с выделенной кнопкой доступа к редактору шрифта.

В открывшемся окне «Редактор шрифта» изменить кегль текущего шрифта в поле «Высота» на «8.0000» (Рисунок 31), затем нажать на кнопку «Ok» для сохранения и закрытия окна «Редактор шрифта».

Рисунок 31. Окно «Редактор шрифта».

Шрифт для линейного прибора задан, теперь необходимо в свойствах примитива «Линейный прибор» задать верхнее значение шкалы, шаг шкалы и число делений на шаг, для этого необходимо открыть его свойства обозначенного примитива и в поле «Значение» задать значение свойства «Верхний предел» равным «12», задать значение свойства «Шаг» равным «2» и задать значение свойства «Число делений на шаг» равным «2» (Рисунок 32).

Рисунок 32. Окно «Свойства» примитива «Линейный прибор» с выделенными свойствами «Верхний предел», «Шаг» и «Число делений на шаг».

Теперь необходимо изменить размер и ориентацию примитива «Линейный прибор» для этого необходимо открыть свойства примитива «Линейный прибор» и в поле «Значение» задать значение свойства «Высота» равным «16» и задать значение свойства «Ширина» равным «44». Для изменения ориентации линейной шкалы необходимо повернуть примитив на 90 градусов, для этого необходимо выбрать примитив «Линейный прибор» в окне графического редактора, открыть контекстное меню примитива и выбрать пункт «Повернуть», который обозначен на рисунке (Рисунок 33).

Рисунок 33. Окно «Графический редактор» с контекстным меню примитива «Линейный прибор» с выделенным пунктом «Повернуть».

Повернуть примитив «Линейный прибор» на 90 градусов и разместить его согласно рисунку (Рисунок 34).

Рисунок 34. Окно «Графический редактор» с изображением бака со шкалой.

Линейная шкала для бака создана, теперь необходимо обозначить данный примитив новым уникальным именем, для оперирования его значениями в дальнейшей разработке анимации к блоку «Субмодель» с подписью «Модель бака». Для изменения имени примитива «Линейный прибор» необходимо открыть его свойства и в поле «Значение» свойства «Имя объекта» задать значение «bar_Volume» согласно рисунку (Рисунок 35).

Рисунок 35. Окно «Свойства» примитива «Линейный прибор» с выделенным свойством «Имя объекта».

Линейная шкала готова, теперь необходимо увеличить масштаб отображения изображения в рабочей области окна «Графический редактор» до 400% и разместить примитив «Линейный прибор» согласно рисунку (Рисунок 36).

Рисунок 36. Окно «Графический редактор» с изображением бака со шкалой.

Второй этап создания анимированного блока – это создание нужного окружения из сигналов, переменных и глобальных свойств.

Таким образом, следующий этап необходимо начать с создания сигнал, который будет связывать свойства анимированных графических примитивов с динамическими значениями субмодели, для этого необходимо в главном окне SimInTech нажать на кнопку «Сервис» и выбрать пункт «Сигналы» (Рисунок 37).

Рисунок 37. Главное окно SimInTech с выделенным пунктом «Сигналы…».

В открывшемся окне «Список сигналов проекта» необходимо создать сигнал, значение которого будет указывать на текущий объем в баке и который будет задавать значение высоты столбца на шкале примитива «Линейный прибор». Для создания нового сигнала необходимо нажать на кнопку «Добавить сигнал» в левом нижнем углу окна «Сигналы» (Рисунок 38).

Рисунок 38. Окно «Сигналы» с выделенной кнопкой «Добавить сигнал».

Изменить параметры созданного сигнала согласно рисунку (Рисунок 39).

Рисунок 39. Окно «Сигналы» с сигналом состояния бака.

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

После создания нового сигнала «status» в проекте, требуется связать его с графическим примитивом «Линейный прибор» для отображения значения объема жидкости в баке по высоте шкалы, для этого необходимо:
  • Найти параметр, который отвечает за отображаемое значение на шкале примитива.
    Для этого необходимо открыть окно «Свойства» примитива «Линейный прибор» и в поле «Имя» найти свойство «Отображаемое значение», которое будет указывать на искомое имя, по которому задается значение примитива «Линейный прибор» (Рисунок 40).

    Рисунок 40. Окно «Свойства» примитива «Линейный прибор» с выделенным свойство «Отображаемое значение».

  • Присвоить значения созданного сигнала «status» найденному параметру «Value», отвечающего за отображаемое значение на шкале примитива «Линейный прибор».
    Для этого необходимо, нажать в окне «Графический редактор» на кнопку «Сервис», выбрать пункт «Скрипт…» (Рисунок 41).

    Рисунок 41. Окно «Графический редактор» с выделенным пунктом «Скрипт…».

    В открывшемся окне «Скрипт анимации» присвоить параметру «Value», отвечающий за отображение значения на шкале примитива «Линейный прибор», значение созданного сигнала «status» как показано на рисунке (Рисунок 42). Сохранить внесенные изменения в скрипт анимации изображения к блоку и закрыть окно, нажатием на кнопку «Закрыть и применить».

    Рисунок 42. Окно «Скрипт анимации».

Для завершения описания связей свойств графических примитивов в изображении блока «Субмодель» с подписью «Модель бака» с его динамическими характеристиками необходимо создать связь между сигналом «status» и выходным портом модели бака, которому присваивается рассчитанное значение текущего объема в баке. Для этого необходимо:
  • Переименовать линию связи внутри блока «Субмодель» с подписью «Модель бака», которой присваивается рассчитанное значение текущего объема в баке для дальнейшего удобства обращения к данной линии связи.
    Для этого необходимо в рабочей области проекта «tank.prt» войти в блок «Субмодель» с подписью «Модель бака» и в рабочей области субмодели выделить линию связи, идущую от блока «Язык программирования» с подписью «Модель бака» к блоку «Порт выхода» с именем «Объем в баке» (Рисунок 43). Данной линии связи присваивается рассчитанное значение текущего объема в баке.

    Рисунок 43. Рабочая область субмодели «Модель бака» с выделенной линией связи.

    После выделения линии связи требуется открыть контекстное меню и выбрать пункт «Свойства объекта», в открывшемся окне «Свойства» во вкладке «Общие» в поле «Значение» задать значение свойства «Имя объекта» равным «VolumeInTank» (Рисунок 44).

    Рисунок 44. Окно «Свойства» линии связи с выделенным свойством «Имя объекта».

  • После переименования линии связи необходимо создать связь между значениями, идущими по данной линии связи, и созданным сигналом «status».
    Для этого необходимо выделить линию связи, обозначенную на рисунке (Рисунок 43), затем в главном окне SimInTech нажать на кнопку «Сервис» и выбрать пункт «Связи…» (Рисунок 45).

    Рисунок 45. Главное окно SimInTech с выделенным пунктом «Связи…».

В открывшемся окне «Редактор связей» во вкладке «Объект» в левом нижнем поле «Сигналы: : VolumeInTank» будет обозначен сигнал «Y», который передается по линии связи от блока «Язык программирования» с подписью «Модель бака» к блоку «Порт выхода» с именем «Объем в баке». Требуется связать значение сигнала Y объекта «VolumeInTank» с сигналом «status», который задает значения для анимированного примитива «Линейный прибор». Для этого необходимо, во-первых, задать сигнал Y объекта «VolumeInTank» источником путем захвата данного сигнала нажатием левой кнопкой мыши и перемещения в правую часть окна в колонку «Источник» (Рисунок 46).

Рисунок 46. Окно «Редактор связей» с выделенной сигналом «Y (Значение)».

Во-вторых, задать сигнал «status» приемником, установив тем самым связь между двумя сигналами, для этого следует в окне «Редактор связей» перейти во вкладку «Сигнал», в левой колонке выбрать ранее созданный сигнал «status» и перетащить в правую часть окна в колонку «Приемник» (Рисунок 47).

Рисунок 47. Окно «Редактор связей» с заданной связью сигнала «status» и выходным портом модели бака.

Настройка связи между сигналом, отвечающим за отображение значения объема по шкале, и динамическим значением объема в баке завершена. Теперь необходимо для отображения анимации указать, что блок «Субмодель» с подписью «Модель бака» является анимированным, для этого необходимо в свойствах блока «Субмодель» с подписью «Модель бака» в поле «Значение» активировать пункт «Анимированный» (Рисунок 48).

Рисунок 48. Окно «Свойства» блока «Субмодель» с подписью «Модель бака» с выделенным свойством «Анимированный».

Одним из основных этапов при создании анимированных блоков является необходимость установления связей между динамическими значениями сигналов модели и свойствами графических примитивов. Это можно сделать не только с помощью редактора связей, но и посредством скрипта на встроенном языке. Для этого используются две команды:
  • connect <Источник>, <Приемник> — данная команда создает связь с уже существующим сигналом;
  • signal <Имя>, <Режим>, <Тип данных>, <Название>, <Значение по умолчанию> — данная команда создает новые сигналы:
    • Параметр«Режим» имеет два значения вход и выход. Если параметр не указан: установлен пробел, то по умолчанию сигнал будет входом, для того чтобы сигнал был выходом — необходимо указать «Out».
    • Параметр «Тип данных» по умолчанию, если не указан, — это вещественное число.
      Идентификаторы типов данных:
      • integer — целое;
      • double — вещественное;
      • array — массив вещественных чисел;
      • color — цвет.
    • Параметр «Название» по умолчанию, если не указано, совпадает с параметром «Имя».

В простейшем случае достаточно написать: signal <Имя сигнала>.

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

Создание графического изображения блока «Субмодель» с подписью «Модель бака» завершено. Перед проверкой измененного блока на корректность работы визуализации во время моделирования и добавлением его в библиотеку блоков SimInTech, необходимо записать в скрипте проекта изменяемые характеристики бака, которые инициализируются перед запуском проекта. Для этого необходимо открыть скрипт проекта «tank_2.prt» из лабораторной работы №2 (Рисунок 49). Скопировать скрипт в текущий скрипт проекта «tank.prt».

Рисунок 49. Окно «Скрипт страницы» проекта «tank_2.prt».

А также необходимо увеличить время расчета проекта и синхронизировать проект с реальным временем, для этого следует открыть окно «Параметры проекта» нажатием на кнопку «Параметры расчета», в открывшемся окне во вкладке «Параметры расчета» в поле «Значение» задать значение свойства «Конечное время расчета» равным «100», затем перейти на вкладку «Синхронизация» и активировать синхронизацию с реальным временем.

Чтобы удостоверится в работоспособности графического изображения для блока «Субмодель» с подписью «Модель бака», необходимо запустить проект на моделирование, нажатием на кнопку «Пуск». В процессе моделирования необходимо изменять состояние блока «Кнопка» с подписью «Включение клапана наполнения» для подачи жидкости в бак, и состояние блока «Кнопка» с подписью «Включение клапана опорожнения» для опорожнения бака. Если перевести состояние блока «Кнопка» с подписью «Включение клапана наполнения» в состояние «1», а блок «Кнопка» с подписью «Включение клапана опорожнения» в состояние «0», то на изображении блока «Субмодель» с подписью «Модель бака» с увеличением объема жидкости в баке будет изменяться показатель объема бака по шкале, путем изменения высоты синего столбца по шкале (Рисунок 50).

Рисунок 50. Рабочая область проекта с измененным изображением блока «Субмодель» с подписью «Модель бака».

Если перевести состояние блока «Кнопка» с подписью «Включение клапана наполнения» в состояние «0», а блок «Кнопка» с подписью «Включение клапана опорожнения» в состояние «1», то на изображении блока «Субмодель» с подписью «Модель бака» с уменьшением объема жидкости в баке будет изменяться показатель объема по шкале (Рисунок 51).

Рисунок 51. Рабочая область проекта с измененным изображением блока «Субмодель» с подписью «Модель бака».

Если при проверке работоспособности графического изображения для блока «Субмодель» с подписью «Модель бака» значение текущего объема бака по шкале примитива «Линейный прибор» изменялось согласно рассчитанному значению текущего объема бака, то графическое изображение блока работает корректно. Разработка анимированного графического изображения для бака завершена, требуется сохранить проект.

Подготовка блока к его добавлению в новую библиотеку блоков

SimInTech позволяет создавать собственные библиотеки блоков, что значительно сокращает время на разработку новых систем за счет использования готовых библиотечных блоков. Данный раздел будет посвящен разработке библиотечного блока SimInTech на основе блока «Субмодель» с подписью «Модель бака», описывающего модель бака.

Примечание: для редактирования блока необходимо включить режим разработчика, для этого необходимо в главном меню программы «Файл», выбрать пункт «Параметры…», в открывшемся окне установить галочку в параметре «Режим разработчика» (Рисунок 52).

Рисунок 52. Окно «Параметры» с выделенным параметром «Режим разработчика».

Перед внесением блока «Субмодель» с подписью «Модель бака» в библиотеку блоков, необходимо его отредактировать, указав необходимое количество входов/выходов и указав параметры, которые будут задаваться в свойствах данного блока. Параметры бака, а также начальный уровень жидкости в баке указывались в скрипте проекта, данные параметры необходимо занести в свойства блока «Субмодель» с подписью «Модель бака». Для добавления нового свойства блока необходимо выделить блок «Субмодель» с подписью «Модель бака», вызвать контекстное меню и выбрать пункт «Изменить блок…» (Рисунок 53).

Рисунок 53. Рабочая область проекта с контекстным меню блока «Субмодель» с подписью «Модель бака» с выделенным пунктом «Изменить блок…».

В открывшемся окне «Редактирование блока» во вкладке «Свойства» добавить необходимые для работы данной модели свойства, для этого необходимо нажать на кнопку «Добавить свойство» выделенную на рисунке (Рисунок 54).

Рисунок 54. Окно «Редактирование блока» с выделенной кнопкой «Добавить свойство».

После создания нового свойства для блока, требуется изменить его параметры согласно рисунку (Рисунок 55).

Рисунок 55. Окно «Редактирование блока» с созданным свойством «Количество секций бака».

Измененное свойство на рисунке (Рисунок 55) было указано в скрипте проекта.

В соответствии с заданными параметрами в скрипте проекта создать оставшиеся свойства согласно рисунку (Рисунок 56).

Рисунок 56. Окно «Редактирование блока» с созданными свойствами бака.

Поскольку свойства бака были созданы в свойствах субмодели с подписью «Модель бака», то скрипт проекта (Рисунок 49) необходимо очистить.
Прим.: поскольку переменные в созданных свойствах используются внутри блока «Субмодель» с подписью «Модель бака» в блоке «Язык программирования», то необходимо в скрипте блока «Язык программирования» локализовать данные переменные, чтобы они обращались к свойству блока «Субмодель» с подписью «Модель бака», а не к глобальным переменным, к которым они могут обратиться. Для этого необходимо обозначать используемые в свойствах блока переменные через префикс «submodel.» (Рисунок 57).
Одним из основных требований к библиотечному блоку является его работоспособность при любых заданных пользователем свойствах, данное требование распространяется и на соответствие анимационного изображения блока заданным свойствам, поэтому необходимо учесть в блоке «Субмодель» с подписью «Модель бака» изменение масштаба шкалы при изменении геометрии бака. Для выполнения данного требования должен быть известен полный объем бака и установлена его связь со свойствами графического примитива. В рабочей области субмодели с подписью «Модель бака» в блоке «Язык программирования» с подписью «Модель бака» содержится основной скрипт работы бака, в котором выполняется расчет объемов как по отдельным секциям, так и по баку в целом. Расчет полного объема бака производится в разделе «Секция начальной инициализации» (Рисунок 57). Полученный результат расчета должен быть приравнен к конечному значению шкалы графического примитива «Линейный прибор». Расчет значений графического примитива желательно производить в инструменте графического редактора. Таким образом необходимо перенести указанную часть кода в скрипт графического изображения блока в графическом редакторе.

Рисунок 57. Окно редактора блока «Язык программирования» с выделенной секцией начальной инициализации.

Таким образом, для автоматического масштабирования шкалы графического примитива «Линейный прибор» при изменении геометрии бака необходимо:
  • Изменить скрипт в графическом изображении блока «Субмодель» с подписью «Модель бака», добавив в него секцию начальной инициализации, определяющую переменную, которая хранит в себе значение объема в баке.

    Для этого необходимо выйти из субмодели с подписью «Модель бака», вызвать контекстное меню блока «Субмодель» с подписью «Модель бака» и выбрать пункт «Графическое изображение блока…».

    В открывшемся окне «Графический редактор» нажать на кнопку «Сервис» и выбрать пункт «Скрипт…». В открывшемся окне «Скрипт анимации» добавить следующие строки, указанные на рисунке (Рисунок 58) и инициализирующие параметр «full_V», который будет хранить в себе значение объема бака.

    Рисунок 58. Окно «Скрипт анимации» графического изображения блока «Субмодель» с подписью «Модель бака».

    Прим.: для графического редактора, обозначать локальные и глобальные переменные нет необходимости, поскольку переменные, используемые в графическом контейнере, обращаются к переменным, которые обозначены в свойствах блока «Субмодель» с подписью «Модель бака». Поэтому в скрипте графического редактора перед переменными, которые обозначались в свойствах блока «Субмодель» с подписью «Модель бака», префикс «submodel.» убирается.
  • Связать созданную переменную «full_V», определяющую объем бака, со шкалой.
    Для этого необходимо открыть свойства примитива «Линейный прибор». В открывшемся окне «Свойства» изменить параметры согласно рисунку (Рисунок 59).

    Рисунок 59. Окно «Свойства» примитива «Линейный прибор» с выделенными измененными свойствами «Нижний предел», «Верхний предел», «Шаг».

    Прим.: формула «self.MaxValue/4» свойства «Шаг» обозначает, что значение собственного свойства «Шаг» примитива «Линейный прибор» будет равна четверти значения свойства «Верхний предел» с именем «MaxValue».
    Прим.: значения свойств «Верхний шаг» и «Шаг» примитива «Линейный прибор» возможно также задать через скрипт графического изображения блока «Субмодель» с подписью «Модель бака», добавив строки, выделенные на рисунке (Рисунок 60).

    Рисунок 60. Окно «Скрипт анимации» с выделенными добавленными строка инициализирующие свойства примитива «Линейный прибор».

  • Дополнить возможностью изменения цвета анимированного столбца примитива «Линейный прибор» в зависимости от объема жидкости в баке.
    Для этого необходимо в окне «Графический редактор» блока «Субмодель» с подписью «Модель бака» нажать на кнопку «Сервис» и выбрать пункт «Скрипт…». В открывшемся окне «Скрипт анимации» добавить следующие строки (Рисунок 61).

    Рисунок 61. Окно «Скрипт анимации» с выделенным кодом, выполняющим изменение цвета анимированного столбца примитива «Линейный прибор».

После добавления функций для автоматического масштабирования шкалы графического примитива «Линейный прибор» при изменении геометрии бака и перед проверкой корректности отображения анимации блока во время моделирования требуется настроить свойства бака, а также вывести значение текущего объема в баке на рабочую область проекта. Таким образом, требуется изменить высоту последней секции бака с 6 метров до 9 метров, для этого необходимо открыть свойства блока «Субмодель» с подписью «Модель бака». В открывшемся окне на вкладке «Свойства» в поле «Значение» изменить значение свойства «Сечение бака – высота (м)» согласно рисунку (Рисунок 62).

Рисунок 62. Окно «Свойства» блока «Субмодель» с подписью «Модель бака».

После изменения свойств блока «Субмодель» с подписью «Модель бака», требуется изменить размер блока, для более компактного представления блока на схеме, согласно рисунку (Рисунок 63), а также вывести значение выходного объема бака на рабочую область проекта. Для отображения текущего значения объема необходимо выбрать нижний выходной порт блока «Субмодель» с подписью «Модель бака», по которому идет выходной сигнал со значением объема бака в блок «Временной график» (Рисунок 63).

Рисунок 63. Рабочая область проекта с выделенным выходным портом блока «Субмодель» с подписью «Модель бака».

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

Рисунок 64. Окно «Свойства» линии связи с выделенной кнопкой «Создать подписи».

В открывшемся окне «Подпись объектов» в поле «Выводимые параметры» требуется указать имя сигнала, который необходимо отображать. Имя требуемого сигнала задано как «Y» (Рисунок 65). После ввода имени сигнала нажать на кнопку «Ok».

Рисунок 65. Окно «Подпись объектов».

В рабочей области проекта появилась подпись к редактируемой линии связи (Рисунок 66).

Рисунок 66. Рабочая область проекта с выделенной подписью, выводящая значение объема в баке.

Все настройки завершены, теперь необходимо проверить корректность отображения изображения бака во время моделирования: при увеличении жидкости в баке до объема более, чем 0.8 полного объема бака, столбец примитива «Линейный прибор» должен окрасится в желтый цвет, а при увеличении жидкости в баке до объема более, чем 0.99 полного объема бака, столбец примитива «Линейный прибор» должен окрасится в красный цвет. Запустить проект на расчет, нажатием на кнопку «Пуск». В процессе расчета перевести состояние блока «Кнопка» с подписью «Включение клапана наполнения» в состояние «1», а блок «Кнопка» с подписью «Включение клапана опорожнения» в состояние «0» для подачи жидкости в бак.

Рисунок 67. Рабочая область проекта с измененным изображением блока «Субмодель» с подписью «Модель бака».

С увеличением объема жидкости в баке изменяется изображение блока «Субмодель» с подписью «Модель бака»: показатель объема бака по шкале увеличивается, путем изменения высоты синего столбца по шкале (Рисунок 67). После того, как значение объема жидкости в баке стало больше, чем 12.8 кубометров, то есть более, чем 0.8 полного объема в баке, столбец примитива «Линейный прибор» окрасился в желтый цвет (Рисунок 68).

Рисунок 68. Рабочая область проекта с измененным цветом столбца примитива «Линейный прибор» на изображении блока «Субмодель» с подписью «Модель бака».

После того, как значение объема жидкости в баке стало больше, чем 15.84 кубометров, то есть более, чем 0.99 полного объема в баке, столбец примитива «Линейный прибор» окрасился в красный цвет (Рисунок 69), что символизирует о переливе жидкости в баке.

Рисунок 69. Рабочая область проекта с измененным цветом столбца примитива «Линейный прибор» на изображении блока «Субмодель» с подписью «Модель бака».

Таким образом, результаты моделирования показывают полную работоспособность разработанного блока «Субмодель» с подписью «Модель бака» и его готовность для включения в собственную библиотеку блоков. Сохранить проект.

Создание библиотеки блоков для клапанов и баков

Перед тем, как добавить блок «Субмодель» с подписью «Модель бака» в библиотеку SimInTech необходимо изменить некоторые свойства блока и закрыть доступ к элементам субмодели. При разработке новых блоков для SimInTech требуется, чтобы имя и тип разработанного блока имели уникальное наименование, следовательно, в свойствах блока «Субмодель» с подписью «Модель бака» требуется поменять «Имя объекта» и «Тип элемента», для этого необходимо открыть окно «Свойства» блока «Субмодель» с подписью «Модель бака». В открывшемся окне на вкладке «Общие» изменить в поле «Значение» значения свойства «Имя объекта» и «Тип элемента» согласно рисунку (Рисунок 70).

Рисунок 70. Окно «Свойства» блока «Субмодель» с подписью «Модель бака» с выделенными свойствами «Имя объекта» и «Тип элемента».

После изменения свойств блока необходимо закрыть доступ к внутренним элементам субмодели, для этого необходимо открыть свойства блока «Субмодель» с подписью «Модель бака». В открывшемся окне «Свойства» во вкладке «Общие» в поле «Значение» установить «Да» значению свойства «Закрытьсубмодель» (Рисунок 71).

Рисунок 71. Окно «Свойства» блока «Субмодель» с подписью «Модель бака» с выделенными свойством «Закрыть субмодель».

Подготовка блока к добавлению в библиотеку завершена, теперь необходимо его сохранить, для этого следует выделить блок «Субмодель» с подписью «Модель бака» в рабочей области проекта, затем в главном окне SimInTech выбрать кнопку «Файл» и выбрать подпункт «Сохранить в файл…», в открывшемся окне «Сохранение выделенных объектов» в поле «Имя файла» задать имя «Tank» (Рисунок 72).

Рисунок 72. Окно «Сохранение выделенных объектов».

Для занесения блока «Субмодель» с подписью «Модель бака» в текущую группу библиотек блоков SimInTech «ClassLib» необходимо сохранить его в данную группу, для этого следует выделить блок в рабочей области проекта, затем в главном окне SimInTech выбрать кнопку «Файл» и выбрать подпункт «Сохранить в библиотеку…». В открывшемся окне «Сохранение в библиотеку» в поле «Введите или выберете имя записи» выбрать «ModelTank» (Рисунок 73). Подтвердить выбор и закрыть окно, нажатием на «Ок».

Рисунок 73. Окно «Сохранение в библиотеку».

После сохранения блока в текущую группу библиотек блоков необходимо ее отредактировать для отображения созданного блока в палитре блоков, для этого следует в главном окне SimInTech выбрать кнопку «Файл» и выбрать пункт «Редактировать библиотеку…». В открывшемся окне «Редактирование библиотеки» в поле «Все записи» будет указан созданный блок «ModelTank» (Рисунок 74).

Рисунок 74. Окно «Редактирование библиотеки» с выделенной записью «ModelTank».

Теперь необходимо в текущей группе библиотек блоков SimInTech «ClassLib» создать новую библиотеку, перед этим ознакомившись с окном «Редактирование библиотеки». Поле «Страницы» содержит следующие области (Рисунок 75):
  • 1 область – перечень страниц (вкладок) на палитре компонентов главного окна программы, внутри которых содержатся расчетные блоки;
  • 2 область – кнопки редактирования следования страниц: «Переместить страницу вверх» и «Переместить страницу вниз»;
  • 3 область – кнопка «Добавить» для добавления новой страницы, кнопка «Удалить» для удаления выбранной страницы и поле ввода имени новой страницы.

Рисунок 75. Окно «Редактирование библиотеки» с выделенными областями поля «Страницы».

Поле «Записи страницы» содержит следующие области (Рисунок 76):
  • 1 область – отображает содержимое выбранной страницы в виде списка расчетных блоков;
  • 2 область – кнопки редактирования следования расчетных блоков «Переместить запись вверх» и «Переместить запись вниз»;
  • 3 область – кнопки редактирования содержимого страницы «Добавить запись на страницу» и «Удалить запись со страницы», а также полного очищения страницы «Очистить страницу».

Рисунок 76. Окно «Редактирование библиотеки» с выделенными областями поля «Записи страницы».

Таким образом, для добавления новой библиотеки в группу библиотек «ClassLib» необходимо создать новую страницу, для этого следует в разделе «Страницы» нажать на кнопку «Добавить», после чего в поле появится новая страница под именем «Страница 1» (Рисунок 77).

Рисунок 77. Окно «Редактирование библиотеки» с выделенной кнопкой «Добавить».

После создания новой страницы необходимо ее переименовать, при этом заданное новое имя изменяемой страницы будет отображаться также и на палитре библиотек блоков. Для этого необходимо выделить в поле запись «Страница 1», после чего необходимо в выделенной области на рисунке (Рисунок 78) изменить запись «Страница 1» на запись «Гидродинамика».

Рисунок 78. Окно «Редактирование библиотеки» с выделенной областью редактирования страницы.

После изменения названия созданной библиотеки на «Гидродинамика», требуется записать в нее созданный блок «ModelTank». Для этого необходимо в поле «Страницы» выделить страницу «Гидродинамика», в поле «Все записи» выделить «ModelTank» и нажать на кнопку «Добавить запись на страницу», обозначенную на рисунке (Рисунок 79).

Рисунок 79. Окно «Редактирование библиотеки» с добавленной записью «ModelTank» и выделенной кнопкой «Добавить запись на страницу».

Создание библиотеки и добавление в нее блока «ModelTank» завершено, теперь требуется отредактировать отображение добавленного блока в библиотеке, для этого необходимо в окне «Редактирование библиотеки» перейти на вкладку «Свойства записей» и добавить графическое изображение библиотеки, выбрав картинку с расширением «.png», «.gif», «.jpg», «.ani», «.jpeg», «.bmp», «.ico», «.emf», «.wmf», «.tif», «.tiff» и разрешением 32x32 пикселя.

Графическое изображение для блока «ModelTank» выглядит следующим образом (Рисунок 80).

Рисунок 80. Изображение для кнопки в палитре блоков.

Добавление графического изображения блока для библиотеки выполняется либо через сохранение выбранного изображения в буфер и вставки изображения, путем нажатия на кнопку «Из буфера», которая обозначена на рисунке (Рисунок 81), либо через окно проводника операционной системы, путем нажатия на пустое поле «Изображение кнопки в палитре» и выбора нужного изображения в сплывающем окне «Открытие».

Рисунок 81. Окно «Редактирование библиотеки» с выделенной кнопкой «Из буфера».

Изменив изображение блока в библиотеке, требуется нажать на кнопку «Ок» для подтверждения изменения и закрытия окна. В главном окне программы появится новая вкладка «Гидродинамика» с созданным блоком «ModelTank» (Рисунок 82).

Рисунок 82. Главное окно программы с созданной библиотекой «Гидродинамика».

Добавление разработанного блока в собственную библиотеку блоков завершено. Сохранить проект.

Теперь, необходимо убедится, что новый блок «ModelTank» идентичен блоку «Субмодель» с подписью «Модель бака», для этого следует добавить новый блок в рабочую область окна и выполнить моделирование системы, для того чтобы убедится в корректности работы блока «ModelTank». Добавить созданный блок «ModelTank» из собственной созданной библиотеки блоков «Гидродинамика» в рабочую область окна (Рисунок 83). Блок «ModelTank» имеет схожее изображение, количество и название входных и выходных портов.

Рисунок 83. Рабочая область проекта с созданным блоком «ModelTank».

Перед запуском проекта на моделирование необходимо увеличить количество входных портов блока «Временной график» и отобразить выходные сигналы с блоков «Субмодель» с подписью «Модель бака» и блока «ModelTank» в рабочей области проекта, для этого следует открыть свойства блока «Временной график» и на вкладке «Свойства» в поле «Значение» задать значение свойства «Количество входных портов» равным «4». Подключить блок «ModelTank» к схеме согласно рисунку (Рисунок 84).

Рисунок 84. Рабочая область проекта с подключенным блоком «ModelTank».

Теперь необходимо вывести значения выходных портов, для этого необходимо выделить верхнюю линию связи блока «Субмодель» с подписью «Модель бака» обозначенную на рисунке (Рисунок 85).

Рисунок 85. Рабочая область проекта с выделенной выходной линией связи блока «Субмодель» с подписью «Модель бака».

Вызвать контекстное меню выходной линии связи и выбрать пункт «Свойства объекта». В открывшемся окне «Свойства» нажать на кнопку «Создание подписи». В открывшемся окне «Подпись объектов» в поле «Выводимые параметры» ввести значение имени свойства «Значение» равным «Y» (Рисунок 86).

Рисунок 86. Окно «Подпись объектов» с измененным полем «Выводимые параметры».

В рабочей области проекта возле выходной линии связи блока «Субмодель» с подписью «Модель бака» появилась подпись, переместить подпись согласно рисунку (Рисунок 87).

Рисунок 87. Рабочая область проекта с добавленной подписью выходного значения линии связи блока «Субмодель» с подписью «Модель бака».

Аналогичным образом добавить подписи выходных значений линий связи для блока «ModelTank» (Рисунок 88).

Рисунок 88. Рабочая область проекта с подписанными выходными значениями линий связи блока «ModelTank».

Запустить проект на моделирование, нажатием на кнопку «Пуск». В процессе моделирования необходимо для наполнения бака перевести состояние блока «Кнопка» с подписью «Включение клапана наполнения» в состояние «1», а блок «Кнопка» с подписью «Включение клапана опорожнения» в состояние «0», на изображениях блоков «Субмодель» с подписью «Модель бака» и «ModelTank» с увеличением объема жидкости в баке будет изменяться показатель объема по шкале (Рисунок 89).

Рисунок 89. Рабочая область проекта с моделью работы процесса наполнения баков.

Увеличить объем жидкости в баке до объема больше, чем в 0.8 раз от полного объема бака, чтобы убедится, что столбцы примитивов «Линейный прибор» при изменении показателя объема по шкале окрасятся в желтый цвет (Рисунок 90).

Рисунок 90. Рабочая область проекта с моделью работы процесса наполнения баков до объема жидкости в баке больше, чем в 0.8 раз от полного объема бака.

Увеличить объем жидкости до объема жидкости в баке больше, чем в 0.99 раз от полного объема бака, чтобы убедится, что столбцы примитивов «Линейный прибор» при изменении показателя объема по шкале окрасятся в красный цвет (Рисунок 91).

Рисунок 91. Рабочая область проекта с моделью работы процесса наполнения баков до объема жидкости в баке больше, чем в 0.99 раз полного объема бака.

Исходя из полученных результатов видно, что процесс наполнения баков для двух блоков одинаков. Теперь необходимо выполнить проверку при опорожнении бака. Для опорожнения бака требуется перевести состояние блока «Кнопка» с подписью «Включение клапана наполнения» в состояние «0», а блок «Кнопка» с подписью «Включение клапана опорожнения» в состояние «1» (Рисунок 92).

Рисунок 92. Рабочая область проекта с моделью работы процесса опорожнения баков.

Исходя из полученных результатов видно, что процесс опорожнения для двух баков одинаков. Следовательно, блок «Субмодель» с подписью «Модель бака» и блок «ModelTank» являются полностью идентичными. Сохранить проект под именем «tank2.prt».

Заключение

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

Данная работа позволила освоить в SimInTech базовые приемы:
  • разработки графического изображения и анимации функциональных блоков;
  • работы с базами сигналов проекта;
  • разработки собственных библиотек.

Задания к лабораторной работе

  1. Создать анимированные блоки для клапанов, алгоритма управления клапанами, алгоритма управления заливкой бака.
  2. Добавить модифицированные блоки в созданную библиотеку «Гидродинамика».
  3. На базе сформированной библиотеки разработать модель раздельного управления несколькими баками разной геометрии с клапанами при разной скорости работы.
  4. Выполнить анализ работы модели и основные результаты изложить в отчете по лабораторной работе.