3.2 Подключение dll-библиотеки к проекту для тестирования

Для проверки работоспособности подготовленной DLL-библиотеки ее можно протестировать в среде SimInTech.
Откройте исходный проект (Нагреватель.prt) и сохраните его под именем Нагреватель_загрузчик.prt Этот проект мы будем использовать для тестирования кода, созданного средой SimInTech.
Удалите блок контроллер нагревателя, и разместите на его мести блок «Внешняя DLL» из закладки «Субструктуры» (рис.17).
 
Рис. 17. Настройка проекта для тестирования dll-библиотеки
 
По умолчанию данный блок не содержит портов входа и выхода для настройки данного блока, выполните двойной щелчок на блоке и в свойствах блока задайте следующие параметры (рис.18):
      Количество портов2; (Количество входных портов);
      Массив размерностей выходов - [1,1] (Для выходных портов нужно указать размерности каждого, у нас в модели два порта с 1 сигналом);
      Имена загружаемых DLLcontroller_dll.dll – имя файла которое мы задавали при генерации кода (рис.9);
      Имена файлов проектов для отладки – Контроллер_dll.prt – имя файла проекта, под которым мы сохранили схему для генерации dll.
       
Рис. 18. Настройка свойств блока «Внешняя dll»
 
Закройте окно нажатием кнопки «ОК», после этого на схеме у блока «Внешняя DLL» появятся порты, аналогичные портам блока «Контроллер нагревателя», соедините схему как показано на рис.19.
 
Рис. 19. Схема нагревателя для тестирования dll-библиотеки
 
После этого можно запустить проект на расчет и посмотреть, как работает код собранный в dll-библиотеке.
Поскольку было указано в свойствах dll-библиотеки имя проекта, из которого был сгенерирован код, то по двойному клику на изображении блока «Внешняя dll» откроется окно проекта, на котором подсветкой будет отображаться работа кода в dll-библиотеке (рис.20).
 
 
Рис. 20. Отображение на схеме работы dll-библиотеки
 
Графики расчета модели приведены на рис.20, на них видно, что температура, падает в момент выключения и растет в момент нагрева. Так же видно, что режим работы соответствует заложенному в модель алгоритму конечных автоматов. Нагрев 40 секунд выключен, температура снижается со скоростью охлаждения, далее 20 секунд включён – температура повышается со скоростью нагрева. Но индикатор, работает не так, как планировалось. Индикатор верно показывает состояние, однако частота переключения не меняется - проблема с свойством flash_time у блоков моделирования (рис.21)
 
Рис. 21. Графики работы нагревателя с контроллером из dll-библиотеки