Когда вы создаете модель, которая включает FMU блоков, необходимо скомпилировать исходный код FMU с помощью QNX® Нейтрино® компилятор qcc
или q++
. Этот компилятор создает общие файлы SO объектов, которые вы включаете в FMU. Этот процесс гарантирует, что FMU содержит код для запуска в Simulink® Real-Time™ целевой компьютер. Для получения дополнительной информации смотрите Применить функциональные модули макета при помощи Simulink Real-Time.
Пакет поддержки для целевого компьютера включает компилятор QNX Neutrino C/C + + qcc
или q++
. Прежде чем использовать компилятор для генерации файла FMU, сконфигурируйте переменные окружения компилятора.
Откройте cmd
Windows окно и изменение папок в корневую папку для пакета Simulink Real-Time Target Support Package. Если вы изменили папку по умолчанию для пакетов поддержки 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 содержит иерархию файлов и папок. Набор из них приведен в этом примере. В примере показано, как создать файл общего объекта для одного исходного файла, связанного в приложении реального времени, которое запускается на целевом компьютере.
Чтобы просмотреть файлы для этого примера, в Командном окне 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 в папке source. Этот пример использует файлы: fmuTemplate.c
, fmuTemplate.h
, vanDerPol.c
Пример имеет динамически связанный файл библиотеки из исходных файлов, который был создан с помощью компилятора на базе Window. Этот файл находится в папке 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
команда в cmd
Windows окно.
Чтобы сгенерировать functional mockup unit FMU файл, который содержит общий файл объекта QNX Neutrino, пример архивирует папки и файлы. Используйте расширение FMU для файла архива. В командной строке Windows введите:
cd .. zip -r vanDerPol.fmu *
Для реализации vanDerPol
блокируйте в модели Simulink при помощи FMU, задайте имя FMU для блока. Откройте модель slrt_ex_vanderpol
дважды кликните блок FMU vanDerPol
, и выберите vanDerPol.fmu
файл для имени параметров блоков FMU.
Создайте модель, загрузите приложение реального времени на целевой компьютер и запустите приложение реального времени.