Лабораторная работа №3.
Разработка собственных блоков в SimInTech выполняется с помощью встроенных средств: блоком «Субмодель», блоком «Язык программирования», с помощью блока «Внешняя DLL»; с помощью стороннего средства IDE Delphi; а также за счет встраивания библиотек, разработанных на различных языках программирования.
Логическое разделение и структурирование схем было представлено в лабораторной работе №1 и лабораторной работе №2. В данной работе будет рассматриваться разработка нового блока, который будет входить в стандартную библиотеку блоков автоматики, а также разработка графической анимации для данного блока.
В предыдущей лабораторной работе была разработана модель управления наполнением и опорожнением бака. Работу данной модели возможно представить более наглядно за счет создания анимации работы блока «Субмодель» с подписью «Модель бака», которая будет отображать текущее значение объема бака в виде подвижного столбца линейной шкалы.
Рисунок 1. Рабочая область проекта с размещенными блоками.
Сохранить проект под именем «tank.prt».
Рисунок 2. Рабочая область проекта «tank_2_volume.prt» из лабораторной работы №2.
Скопировать в новый проект «tank.prt» блок «Субмодель» с подписью «Модель бака», для этого необходимо выбрать блок «Субмодель» с подписью «Модель бака» и скопировать с использованием сочетания клавиш «Ctrl + C».
Рисунок 3. Рабочая область проекта «tank.prt».
Установка блоков завершена, далее необходимо настроить блоки. Вывод значения уровня и объема жидкости в баке будет осуществляться блоком «Временной график», для отображения данных двух параметров на одном графике необходимо увеличить количество входных портов блока «Временной график». Для этого необходимо открыть окно «Свойства» блока «Временной график», в открывшемся окне в поле «Значения» задать значение свойства «Количество входных портов» равным «2».
Рисунок 4. Рабочая область проекта «tank.prt» с блоками, соединенными линиями связи.
Настройка проекта завершена, необходимо перейти непосредственно к созданию анимации для блока «Субмодель» с подписью «Модель бака». Для создания графического изображения для бака необходимо выполнить первый этап создания анимированных объектов: компоновку анимированного изображения блока «Субмодель» с подписью «Модель бака».
Рисунок 5. Окно «Свойства» блока «Модель бака» с выделенным свойством «Режим показа подписей портов».
Рисунок 6. Окно «Свойства» блока «Субмодель» с подписью «Модель бака» с выделенной кнопкой доступа к графическому изображению.
Рисунок 7. Окно «Графический редактор».
Рисунок 8. Окно «Графический редактор» с выделенным изображением.
Рисунок 9. Окно «Графический редактор» с выделенной кнопкой «Удалить».
Рисунок 10. Окно «Графический редактор» с выделенным пунктом «Задать размеры контейнера по размеру блока» меню «Масштаб».
В открывшемся окне «Размеры контейнера» требуется задать размеры графического контейнера: в поле «Ширина» значение «56», в поле «Высота» значение «64». Нажать на кнопку «Ok» для подтверждения изменения и закрытия окна.
Рисунок 11. Окно «Графический редактор» с выделенным в строке состояния областью «Масштаб».
Рисунок 12. Окно «Масштаб» графического редактора.
Рисунок 13. Окно «Графический редактор» с измененным масштабом изображения.
Рисунок 14. Главное окно программы с выделенной кнопкой вызова окна примитивов.
Рисунок 15. Главное окно программы с панелью примитивов с выделенным примитивом «Залитый эллипс».
Рисунок 16. Окно «Графический редактор» с графическим примитивом «Залитый эллипс».
Рисунок 17. Окно «Графический редактор» с выделенным примитивом «Залитый эллипс».
Рисунок 18. Окно «Графический редактор» с измененным примитивом «Залитый эллипс».
Рисунок 19. Окно «Графический редактор» с контекстным меню примитива «Залитый эллипс» с выделенным пунктом «Свойства объекта».
Рисунок 20. Окно «Цвет» с выделенным цветом на палитре основных цветов.
Рисунок 21. Окно «Графический редактор» с изображением бака.
Рисунок 22. Окно «Графический редактор» с размещенным примитивом «Залитый прямоугольник».
Рисунок 23. Окно «Свойства» примитива «Залитый прямоугольник» с выделенными свойствами «Цвет» и «Цвет границы».
Рисунок 24. Окно «Порядок объектов» с выделенными кнопками управления «Поместить вверх» и «Поместить вниз».
Рисунок 25. Окно «Графический редактор» с созданием примитива «Прямая».
Рисунок 26. Окно «Графический редактор» с размещенным примитивом «Прямая».
Рисунок 27. Окно «Графический редактор» с изображением бака.
Рисунок 28. Главное окно программы с панелью примитивов с выделенным примитивом «Линейный прибор».
Рисунок 29. Окно «Графический редактор» с размещенным примитивом «Линейный прибор».
Рисунок 30. Окно «Свойства» примитива «Линейный прибор» с выделенной кнопкой доступа к редактору шрифта.
Рисунок 31. Окно «Редактор шрифта».
Рисунок 32. Окно «Свойства» примитива «Линейный прибор» с выделенными свойствами «Верхний предел», «Шаг» и «Число делений на шаг».
Рисунок 33. Окно «Графический редактор» с контекстным меню примитива «Линейный прибор» с выделенным пунктом «Повернуть».
Рисунок 34. Окно «Графический редактор» с изображением бака со шкалой.
Рисунок 35. Окно «Свойства» примитива «Линейный прибор» с выделенным свойством «Имя объекта».
Рисунок 36. Окно «Графический редактор» с изображением бака со шкалой.
Второй этап создания анимированного блока – это создание нужного окружения из сигналов, переменных и глобальных свойств.
Рисунок 37. Главное окно SimInTech с выделенным пунктом «Сигналы…».
Рисунок 38. Окно «Сигналы» с выделенной кнопкой «Добавить сигнал».
Рисунок 39. Окно «Сигналы» с сигналом состояния бака.
Заключительный третий этап – это описание связей между созданным окружением и свойствами графических примитивов, а также логикой их работы.
Рисунок 40. Окно «Свойства» примитива «Линейный прибор» с выделенным свойство «Отображаемое значение».
Рисунок 41. Окно «Графический редактор» с выделенным пунктом «Скрипт…».
Рисунок 42. Окно «Скрипт анимации».
Рисунок 43. Рабочая область субмодели «Модель бака» с выделенной линией связи.
Рисунок 44. Окно «Свойства» линии связи с выделенным свойством «Имя объекта».
Рисунок 45. Главное окно SimInTech с выделенным пунктом «Связи…».
Рисунок 46. Окно «Редактор связей» с выделенной сигналом «Y (Значение)».
Рисунок 47. Окно «Редактор связей» с заданной связью сигнала «status» и выходным портом модели бака.
Рисунок 48. Окно «Свойства» блока «Субмодель» с подписью «Модель бака» с выделенным свойством «Анимированный».
В простейшем случае достаточно написать: signal <Имя сигнала>.
Вне зависимости от выбранного подхода для построения связей между объектами и сигналами, функционирование анимированных примитивов должно быть одинаковым. Таким образом второй и третий этап создания анимированного графического изображения блока «Субмодель» с подписью «Модель бака» завершен, требуется сохранить проект.
Рисунок 49. Окно «Скрипт страницы» проекта «tank_2.prt».
А также необходимо увеличить время расчета проекта и синхронизировать проект с реальным временем, для этого следует открыть окно «Параметры проекта» нажатием на кнопку «Параметры расчета», в открывшемся окне во вкладке «Параметры расчета» в поле «Значение» задать значение свойства «Конечное время расчета» равным «100», затем перейти на вкладку «Синхронизация» и активировать синхронизацию с реальным временем.
Рисунок 50. Рабочая область проекта с измененным изображением блока «Субмодель» с подписью «Модель бака».
Рисунок 51. Рабочая область проекта с измененным изображением блока «Субмодель» с подписью «Модель бака».
Если при проверке работоспособности графического изображения для блока «Субмодель» с подписью «Модель бака» значение текущего объема бака по шкале примитива «Линейный прибор» изменялось согласно рассчитанному значению текущего объема бака, то графическое изображение блока работает корректно. Разработка анимированного графического изображения для бака завершена, требуется сохранить проект.
SimInTech позволяет создавать собственные библиотеки блоков, что значительно сокращает время на разработку новых систем за счет использования готовых библиотечных блоков. Данный раздел будет посвящен разработке библиотечного блока SimInTech на основе блока «Субмодель» с подписью «Модель бака», описывающего модель бака.
Рисунок 52. Окно «Параметры» с выделенным параметром «Режим разработчика».
Рисунок 53. Рабочая область проекта с контекстным меню блока «Субмодель» с подписью «Модель бака» с выделенным пунктом «Изменить блок…».
Рисунок 54. Окно «Редактирование блока» с выделенной кнопкой «Добавить свойство».
Рисунок 55. Окно «Редактирование блока» с созданным свойством «Количество секций бака».
Измененное свойство на рисунке (Рисунок 55) было указано в скрипте проекта.
Рисунок 56. Окно «Редактирование блока» с созданными свойствами бака.
Рисунок 57. Окно редактора блока «Язык программирования» с выделенной секцией начальной инициализации.
Для этого необходимо выйти из субмодели с подписью «Модель бака», вызвать контекстное меню блока «Субмодель» с подписью «Модель бака» и выбрать пункт «Графическое изображение блока…».
Рисунок 58. Окно «Скрипт анимации» графического изображения блока «Субмодель» с подписью «Модель бака».
Рисунок 59. Окно «Свойства» примитива «Линейный прибор» с выделенными измененными свойствами «Нижний предел», «Верхний предел», «Шаг».
Рисунок 60. Окно «Скрипт анимации» с выделенными добавленными строка инициализирующие свойства примитива «Линейный прибор».
Рисунок 61. Окно «Скрипт анимации» с выделенным кодом, выполняющим изменение цвета анимированного столбца примитива «Линейный прибор».
Рисунок 62. Окно «Свойства» блока «Субмодель» с подписью «Модель бака».
Рисунок 63. Рабочая область проекта с выделенным выходным портом блока «Субмодель» с подписью «Модель бака».
Рисунок 64. Окно «Свойства» линии связи с выделенной кнопкой «Создать подписи».
Рисунок 65. Окно «Подпись объектов».
Рисунок 66. Рабочая область проекта с выделенной подписью, выводящая значение объема в баке.
Рисунок 67. Рабочая область проекта с измененным изображением блока «Субмодель» с подписью «Модель бака».
Рисунок 68. Рабочая область проекта с измененным цветом столбца примитива «Линейный прибор» на изображении блока «Субмодель» с подписью «Модель бака».
Рисунок 69. Рабочая область проекта с измененным цветом столбца примитива «Линейный прибор» на изображении блока «Субмодель» с подписью «Модель бака».
Таким образом, результаты моделирования показывают полную работоспособность разработанного блока «Субмодель» с подписью «Модель бака» и его готовность для включения в собственную библиотеку блоков. Сохранить проект.
Рисунок 70. Окно «Свойства» блока «Субмодель» с подписью «Модель бака» с выделенными свойствами «Имя объекта» и «Тип элемента».
Рисунок 71. Окно «Свойства» блока «Субмодель» с подписью «Модель бака» с выделенными свойством «Закрыть субмодель».
Рисунок 72. Окно «Сохранение выделенных объектов».
Рисунок 73. Окно «Сохранение в библиотеку».
Рисунок 74. Окно «Редактирование библиотеки» с выделенной записью «ModelTank».
Рисунок 75. Окно «Редактирование библиотеки» с выделенными областями поля «Страницы».
Рисунок 76. Окно «Редактирование библиотеки» с выделенными областями поля «Записи страницы».
Рисунок 77. Окно «Редактирование библиотеки» с выделенной кнопкой «Добавить».
Рисунок 78. Окно «Редактирование библиотеки» с выделенной областью редактирования страницы.
Рисунок 79. Окно «Редактирование библиотеки» с добавленной записью «ModelTank» и выделенной кнопкой «Добавить запись на страницу».
Создание библиотеки и добавление в нее блока «ModelTank» завершено, теперь требуется отредактировать отображение добавленного блока в библиотеке, для этого необходимо в окне «Редактирование библиотеки» перейти на вкладку «Свойства записей» и добавить графическое изображение библиотеки, выбрав картинку с расширением «.png», «.gif», «.jpg», «.ani», «.jpeg», «.bmp», «.ico», «.emf», «.wmf», «.tif», «.tiff» и разрешением 32x32 пикселя.
Рисунок 80. Изображение для кнопки в палитре блоков.
Рисунок 81. Окно «Редактирование библиотеки» с выделенной кнопкой «Из буфера».
Рисунок 82. Главное окно программы с созданной библиотекой «Гидродинамика».
Добавление разработанного блока в собственную библиотеку блоков завершено. Сохранить проект.
Рисунок 83. Рабочая область проекта с созданным блоком «ModelTank».
Рисунок 84. Рабочая область проекта с подключенным блоком «ModelTank».
Рисунок 85. Рабочая область проекта с выделенной выходной линией связи блока «Субмодель» с подписью «Модель бака».
Рисунок 86. Окно «Подпись объектов» с измененным полем «Выводимые параметры».
Рисунок 87. Рабочая область проекта с добавленной подписью выходного значения линии связи блока «Субмодель» с подписью «Модель бака».
Рисунок 88. Рабочая область проекта с подписанными выходными значениями линий связи блока «ModelTank».
Рисунок 89. Рабочая область проекта с моделью работы процесса наполнения баков.
Рисунок 90. Рабочая область проекта с моделью работы процесса наполнения баков до объема жидкости в баке больше, чем в 0.8 раз от полного объема бака.
Рисунок 91. Рабочая область проекта с моделью работы процесса наполнения баков до объема жидкости в баке больше, чем в 0.99 раз полного объема бака.
Рисунок 92. Рабочая область проекта с моделью работы процесса опорожнения баков.
Исходя из полученных результатов видно, что процесс опорожнения для двух баков одинаков. Следовательно, блок «Субмодель» с подписью «Модель бака» и блок «ModelTank» являются полностью идентичными. Сохранить проект под именем «tank2.prt».
В ходе данной лабораторной работы было разработано графическое изображение субмодели с подписью «Модель бака». На основе языка программирования SimInTech и базы сигналов проекта была разработана анимация графического изображения блока «Субмодель» с подписью «Модель бака». В результате математического моделирования была проверена корректность работы графического изображения в процессе наполнения и опорожнения бака с клапанами. На основе разработанной субмодели с подписью «Модель бака» была создана собственная библиотека блоков.