exponenta event banner

Компиляция исходного кода для функциональных блоков макета

При построении модели, включающей блоки FMU, необходимо скомпилировать исходный код FMU с помощью компилятора QNX ® Neutrino ®qcc или q++. Этот компилятор создает общие SO-файлы объектов, включенные в FMU. Этот процесс гарантирует, что FMU содержит код для запуска на целевом компьютере Simulink ® Real-Time™. Дополнительные сведения см. в разделе Применение функциональных макетов с использованием Simulink в реальном времени.

Настройка переменных среды компилятора

Пакет поддержки для целевого компьютера включает компилятор QNX Neutrino C/C + +qcc или q++. Перед использованием компилятора для создания FMU-файла настройте переменные среды компилятора.

Открытие окна cmd и измените папки на корневую папку для целевого пакета поддержки Simulink Real-Time. Если вы изменили папку по умолчанию для пакетов поддержки MATLAB, настройте эту команду в соответствии с пользовательским расположением. В командной строке Windows введите:

C:
cd C:\ProgramData\MATLAB\SupportPackages\<release>\toolbox\slrealtime\target\supportpackage\qnx710

Чтобы задать переменные среды Windows, необходимые для использования компилятора QNX Neutrino из командной строки, запустите пакетный файл qnxsdp-env.bat. В командной строке Windows введите:

qnxsdp-env.bat

Убедитесь, что qcc компилятор готов к использованию. В командной строке Windows введите:

which qcc

Команда возвращает:

C:/ProgramData/MATLAB/SupportPackages/<release>/toolbox/slrealtime/target/supportpackage/qnx710/host/win64/x86_64/usr/bin/qcc.EXE

Создание файла FMU

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

Чтобы просмотреть файлы для этого примера, в окне команд MATLAB введите:

cd(fullfile(matlabroot, 'toolbox', 'slrealtime', ...
'examples', 'slrt_ex_fmu_work'))

Чтобы открыть модель для этого примера, в окне команды MATLAB введите:

open_system(fullfile(matlabroot, 'toolbox', 'slrealtime', ...
'examples', 'slrt_ex_vanderpol'))

Пример файла FMU vanDerPol_slrt.fmu содержит следующий набор папок:

C:\work\my_fmu_work\
C:\work\my_fmu_work\binaries\
C:\work\my_fmu_work\binaries\slrt_x64
C:\work\my_fmu_work\binaries\win64
C:\work\my_fmu_work\documentation
C:\work\my_fmu_work\resources
C:\work\my_fmu_work\sources\

В этом примере исходные файлы FMU находятся в папке источников. В этом примере используются файлы: fmuTemplate.c, fmuTemplate.h, vanDerPol.c

В примере имеется динамически связанный файл библиотеки из исходных файлов, созданных с помощью компилятора на основе окна. Этот файл находится в папке win64. В этом примере используется файл: vanDerPol.dll

Компиляция источников в примере с помощью qcc, скопируйте файлы для FMU из папки matlab/slrealtime/examples/slrt_ex_fmu_work к папке C:\work\my_fmu_work.

В Windows cmd измените текущую папку на расположение исходных файлов. В командной строке Windows введите:

cd C:\work\my_fmu_work\sources

Чтобы создать файл SO общего объекта QNX Neutrino, в примере выполняется компиляция источников с помощью -Vgcc_ntox86_64 флаг. В командной строке Windows введите:

qcc -Vgcc_ntox86_64 -shared -o ../binaries/slrt_x64/vanDerPol.so -fPIC -DFMI_COSIMULATION -IC:/PROGRA~1/MATLAB/R2020b_bash/rtw/c/src/rapid/fmu vanDerPol.c

Примечание

Компилятор QNX Neutrino не поддерживает длинные имена файлов Windows (например, пути с пробелами) для параметра поиска библиотеки -I. Чтобы обойти это ограничение, можно установить MATLAB ® по пути без пробелов (например ,C:\MATLAB) или можно использовать путь DOS 8.3 в команде компилятора. Чтобы получить имена папок 8.3, можно использовать dir /x команда в Windows cmd окно.

Для создания FMU-файла функционального макета, содержащего файл общего объекта QNX Neutrino, в примере архивируются папки и файлы. Используйте расширение FMU для архивного файла. В командной строке Windows введите:

cd ..
zip -r vanDerPol.fmu *

Внедрение блока FMU в модели

Для реализации vanDerPol в модели Simulink с помощью FMU укажите имя FMU для блока. Открытие модели slrt_ex_vanderpolдважды щелкните на блоке FMU vanDerPolи выберите vanDerPol.fmu для параметра блока имени FMU.

Создайте модель, загрузите приложение реального времени на целевой компьютер и запустите приложение реального времени.

См. также

Связанные темы

Внешние веб-сайты