×
 

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

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