Когда вы создаете модель, которая включает блоки 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 содержит иерархию файлов и папок. Набор их обеспечивается в этом примере. Пример показывает, как создать файл общего объекта для одного исходного файла, который соединяется в приложении реального времени, которое работает на целевом компьютере.
Чтобы просмотреть файлы для этого примера, в командном окне 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 *
Реализовывать vanDerPol
блокируйтесь в модели Simulink при помощи FMU, задайте имя FMU для блока. Откройте модель slrt_ex_vanderpol
, дважды кликните блок FMU vanDerPol
, и выберите vanDerPol.fmu
файл для FMU называет параметры блоков.
Создайте модель, загрузите приложение реального времени на целевом компьютере и запустите приложение реального времени.