exponenta event banner

polyspacePackNGo

Создание и упаковка файлов опций для выполнения анализа Polyspace для кода, созданного из модели Simulink

Описание

пример

archivePath = polyspacePackNGo(mdlName) исследует модель Simulink ®mdlName, извлекает из него файлы параметров Polyspace ® и упаковывает файлы параметров в zip-файл, расположенный по адресуarchivePath. Перед использованием polyspacePackNGo, создайте код из модели Simulink. Затем архивируйте созданный код, например, с помощью packNGo. Создайте файлы опций Polyspace из модели Simulink и включите их в архив кода с помощью polyspacePackNGo. В другой среде разработки при выполнении анализа создаваемого кода Polyspace используйте файлы опций, включенные в архив кода, чтобы сохранить специфичную для модели информацию, например спецификации диапазона проектирования. Для использования необходимо иметь встроенный кодер ®slbuild (Симулинк).

пример

archivePath = polyspacePackNGo(mdlName,psOpt) создает и упаковывает файлы опций Polyspace, которые создаются в соответствии со спецификацией в psOpt. Объект psOpt должен быть объектом параметров Polyspace, который создается с помощью pslinkoptions. Используя psOptизмените параметры анализа Polyspace.

пример

archivePath = polyspacePackNGo(mdlName,psOpt,asModelRef) создает и упаковывает файлы параметров Polyspace с помощью asModelRef определяет необходимость создания файлов опций для ссылочного кода модели или автономного кода.

Примеры

свернуть все

Чтобы создать и упаковать файлы опций Polyspace для модели Simulink, используйте polyspacePacknGo.

Открытие модели Simulink rtwdemo_counter и укажите папку для хранения созданного кода.

% Open the model
mdlName = 'rtwdemo_counter';
open_system(mdlName);
% Specify a folder for generated code
codegenFolder = 'rtwdemo_counter_ert_rtw';

Чтобы включить упаковку созданного кода в архив, установите параметр PackageGeneratedCodeAndArtifacts кому true. Укажите имя созданного архива кода как genCodeArchive.zip.

configSet = getActiveConfigSet(mdlName);
set_param(configSet, 'PackageGeneratedCodeAndArtifacts', true);
set_param(configSet, 'PackageName', 'genCodeArchive.zip');

Чтобы сделать модель совместимой с Polyspace, установите SystemTargetFile кому etr.tlc.

set_param(configSet, 'SystemTargetFile', 'ert.tlc');

После конфигурирования модели создайте код.

if exist(fullfile(pwd,codegenFolder), 'dir') == 0
    slbuild(mdlName)
end

Поскольку PackageGeneratedCodeAndArtifacts имеет значение true, сформированный код упаковывается в архив genCodeArchive.zip.

Создание и упаковка файлов параметров Polyspace.

zipFile = polyspacePackNGo(mdlName);
В архиве кода genCodeArchive.zip, файлы параметров Polyspace упакованы в polyspace папка.

Чтобы задать опции анализа Polyspace при упаковке и создании файлов опций, используйте pslinktoptions.

Открытие модели Simulink rtwdemo_counter и настройте модель для создания архива кода, совместимого с Polyspace.

% Open the model
mdlName = 'rtwdemo_counter';
open_system(mdlName);
% Specify a folder for generated code
codegenFolder = 'rtwdemo_counter_ert_rtw';
configSet = getActiveConfigSet(mdlName);
% Enable packing the generated code into an archive
set_param(configSet, 'PackageGeneratedCodeAndArtifacts', true);
% Specify a name for the code archive
set_param(configSet, 'PackageName', 'genCodeArchive.zip');
% Configure the model to be Polyspace Compatible
set_param(configSet, 'SystemTargetFile', 'ert.tlc');

После конфигурирования модели создайте код.

if exist(fullfile(pwd,codegenFolder), 'dir') == 0
    slbuild(mdlName)
end

Поскольку PackageGeneratedCodeAndArtifacts имеет значение true, сформированный код упаковывается в архив genCodeArchive.zip.

Чтобы указать конфигурацию модели для анализа Polyspace, используйте pslinkoptions объект. Создать этот объект с помощью функции pslinkoptions.

psOpt = pslinkoptions(mdlName);
Объект psopt - структура, в которой поля являются конфигурациями модели, которые можно указать.

Укажите конфигурацию модели с помощью psOpt объект. Например, установить InputRangeMode до полного диапазона. Полный список параметров см. в аргументе ввода psOpt.

psOpt.InputRangeMode = 'FullRange';

Создание и упаковка файлов параметров Polyspace. Используйте psOpt объект в качестве второго аргумента в polyspacePacknGo.

zipFile = polyspacePackNGo(mdlName,psOpt);
В архиве кода genCodeArchive.zip, файлы параметров Polyspace упакованы в polyspace папка. Файл optionsFile.txt содержит указанные опции анализа Polyspace.

Чтобы ускорить моделирование модели, вызовите ссылочные модели Simulink в качестве целей моделирования. Чтобы создать цели моделирования привязки модели из модели Simulink, создайте код из модели с помощью slbuild с процессом построения, указанным как ModelReferenceCoderTargetOnly. Затем пакетируйте созданный код с помощью packNGo. Чтобы создать и упаковать файлы параметров Polyspace для анализа такого кода, используйте функцию polyspacePacknGo с необязательным аргументом asModelRef установить в значение true.

Открытие модели Simulink rtwdemo_counter и настройте модель для создания архива кода, совместимого с Polyspace.

% Load model
mdlName = 'rtwdemo_counter';
load_system(mdlName);
configSet = getActiveConfigSet(mdlName);
% Enable packing the generated code into an archive 
set_param(configSet, 'PackageGeneratedCodeAndArtifacts', true);
set_param(configSet, 'PackageName', '');
% Configure the model to be Polyspace Compatible
set_param(configSet, 'SystemTargetFile', 'ert.tlc');

После конфигурирования модели создайте из нее цель моделирования привязки модели с помощью функции slbuild. Укажите опцию ModelReferenceCoderTargetOnly. Посмотрите slbuild (Симулинк).

slbuild(mdlName,'ModelReferenceCoderTargetOnly');
Создаваемый код сохраняется в папке slprj.

Чтобы упаковать код, созданный как ссылка на модель, используйте функцию packNGo. Найдите файл buildinfo.mat в <working folder>/slprj/ert/rtwdemo_counter и использовать полный путь к нему в качестве входных данных для packNGo. Эта команда создает архив, содержащий созданный код и объект buildinfo.mat. Посмотрите packNGo (Встроенный кодер).

% Locate buildinfo and generate code archive
buildinfo = fullfile(pwd,'slprj','ert',mdlName,'buildinfo.mat');
packNGo(buildinfo)

Создание и упаковка файлов параметров Polyspace. Опустить дополнительный второй аргумент. Задать третий аргумент asModelRef кому true.

zipFile = polyspacePackNGo(mdlName,[],true);
В архиве кода rtwdemo_counter.zip, файлы параметров Polyspace упакованы в polyspace папка.

Входные аргументы

свернуть все

Символьный массив, содержащий имя модели, для которой требуется создать и упаковать файлы опций Polyspace.

Пример: polyspacePackNGo('rtwdemo_roll')

Типы данных: char

Задает конфигурацию модели для анализа Polyspace с помощью pslinkoptions объект. Можно изменить определенные опции анализа, изменив psOpt, которая представляет собой структуру, в которой отдельные поля представляют опции анализа. Список опций заполнения, которые можно изменить, см. в таблице Опции анализа в пространстве, поддерживаемые polyspacePacknGo.

Параметры анализа Polyspace, поддерживаемые polyspacePacknGo

СобственностьСтоимостьОписание
EnableAdditiveFileList: Включить дополнительный список файлов для анализа, указанный как true или false. Использовать с AdditionalFileList вариант. trueПолиспейс проверяет дополнительные файлы, указанные в AdditionalFileList вариант.
false (по умолчанию)Polyspace не проверяет дополнительные файлы.
AdditiveFileList: список дополнительных файлов для анализа, указанный как массив ячеек файлов. Чтобы добавить эти файлы в анализ, используйте EnableAdditionalFileList вариант.массив ячеекPolyspace рассматривает перечисленные файлы для проверки.
InputRureMode: указывает диапазон входных переменных.'DesignMinMax' (по умолчанию)В Полиспейсе используется диапазон ввода, определенный в рабочей области или блоке.
'Fullrange'Polyspace использует входы полного диапазона.
ParamRiveMode: задает диапазон параметров константы.'DesignMinmax'В Полиспейсе используется диапазон постоянных параметров, определенный в рабочей области или в блоке.
'None' (по умолчанию)Polyspace использует значение параметров, указанное в коде.
OutputRiveMode: указывает выходные утверждения.'DesignMinMax'Polyspace применяет утверждения к выводам, используя диапазон, определенный в блоке или рабочей области.
'None' (по умолчанию)Polyspace не применяет утверждения к выходным переменным.
ModelRefVerifDepth: укажите глубину для анализа моделей, на которые ссылается текущая модель.'Current model Only' (по умолчанию)Polyspace анализирует только верхнюю модель без анализа ссылочных моделей. Эта опция используется при ссылке на модели, которые не нуждаются в анализе, например библиотечные модели.
'1'|'2'|'3'Polyspace анализирует ссылочные модели до заданной глубины в иерархии привязок. Для анализа моделей, на которые ссылается модель верхнего уровня, укажите свойство ModelRefVerifDepth как '1'. Для анализа моделей, на которые ссылается первый уровень привязок, задайте это свойство как '2'.
'All'Полиспейс проверяет все ссылочные модели.
ModelRefStartModelRefVerif: укажите, нужно ли анализировать все ссылочные модели вместе или по отдельности.truePolyspace анализирует верхнюю модель и ссылочные модели вместе. Эта опция используется для проверки проблем интеграции или масштабирования.
false (по умолчанию)Polyspace анализирует верхнюю модель и ссылочные модели по отдельности.
AutoStubLUT: указывает, как используются таблицы подстановки.true (по умолчанию)Polyspace блокирует таблицы подстановки и проверяет модель без анализа кода таблицы подстановки.
falsePolyspace включает в анализ код таблицы подстановки.
StartConfigBeforeAnalysis: указывает уровень проверки конфигурации, выполненной перед запуском анализа Polyspace.'Off'Polyspace проверяет только наличие ошибок. Анализ останавливается при обнаружении ошибок.
'OnWarn' (по умолчанию)Полиспейс останавливает анализ при обнаружении ошибок и отображает сообщение при обнаружении предупреждений.
'OnHalt'Полиспейс останавливает анализ при обнаружении ошибок или предупреждений.

Пример: polyspacePackNGo('rtwdemo_roll', psOpt), где ps_opt является объектом параметров, созданным путем вызова pslinkoptions

Индикатор для ссылочного анализа модели, указанный как true или false.

  • Если asModelRef является false (по умолчанию), функция создает файлы опций так, что Polyspace анализирует созданный код как автономный код.

  • Если asModelRef является true, функция создает файлы опций так, что Polyspace анализирует созданный код как ссылочный код модели.

    Примечание

    Если установить asModelRef кому true, использовать slbuild (Simulink) для создания кода.

Пример: polyspacePackNGo('rtwdemo_roll', psOpt,true)

Типы данных: logical

Выходные аргументы

свернуть все

Символьный массив, содержащий путь к созданному архиву. Файлы опций находятся в папке polyspace папка в архиве. polyspace содержит следующие файлы параметров:

  • optionsFile.txt: текстовый файл, содержащий параметры Polyspace, необходимые для выполнения анализа Polyspace по сгенерированному коду без потери специфичной для модели информации, например спецификации диапазона конструкции.

  • model_drs.xml: Файл, содержащий спецификацию диапазона проектирования модели.

  • linkdata.xmlФайл, связывающий созданный код с компонентами модели.

Чтобы выполнить анализ Polyspace для созданного кода в среде, отличной от среды, в которой был создан код из модели Simulink, используйте эти файлы.

Типы данных: char

Представлен в R2020b