Скомпилируйте исходный код для функциональных модулей макета

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

Сконфигурируйте переменные окружения компилятора

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

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

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

Чтобы установить переменные окружения Windows, которые требуются, чтобы использовать компилятор Нейтрино QNX из командной строки, запустите пакетный файл 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

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

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

Примечание

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

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

cd ..
zip -r vanDerPol.fmu *

Реализуйте блок FMU в модели

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

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

Смотрите также

Похожие темы

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