Существует три способа запустить SIL и PIL симуляции. Можно использовать:
Топ-модель.
Блоки Model.
SIL и блоки PIL, которые вы создаете из подсистем.
Сконфигурировать и запустить топ-модель SIL или PIL симуляция:
В Редакторе Simulink® откройте свою модель.
На вкладке Apps нажмите SIL/PIL Manager.
В разделе Mode выберите SIL/PIL Simulation Only.
В разделе Prepare, набор System Under Test к Top model
.
В поле SIL/PIL Mode выберите Software-in-the-Loop (SIL)
или Processor-in-the-Loop (PIL)
. Опция поддерживает только ERT, GRT или системные конечные файлы AUTOSAR. Смотрите Параметры конфигурации Модели: Генерация кода и Конфигурирует Генерацию кода AUTOSAR (AUTOSAR Blockset) для конфигурационной информации.
Контролировать сигналы компонента и данные состояния и сравнить значения из модели и SIL или PIL симуляций:
Для каждого сигнала, что вы хотите регистрировать:
В Редакторе Simulink выберите сигнал.
На вкладке SIL/PIL нажмите Monitor Signals. Из галереи выберите эти опции:
Log Selected Signals
Make Selected Signals Testpoints
Signal Logging
Чтобы регистрировать данные состояния, из галереи Monitor Signals, выбирают State Logging.
Если параметром конфигурации Language является C++
, в редакторе Code Mappings, набор Data Visibility для сигналов, состояний и внутренних категорий элемента модели данных к public
.
Если вы конфигурируете SIL симуляцию, задаете портативную опцию размеров слова. Можно затем переключиться беспрепятственно между режимами SIL и PIL. В диалоговом окне Configuration Parameters установите флажок Enable portable word sizes.
При необходимости сконфигурируйте:
В разделе Run, в поле Stop Time, задают время симуляции.
Нажмите Run SIL/PIL.
В конце симуляции, в разделе Results, нажимают Data Inspector, чтобы просмотреть результаты симуляции.
Примечание
На операционной системе Windows® Windows Firewall может потенциально блокировать SIL или PIL симуляцию. Чтобы позволить симуляцию, используйте диалоговое окно сигнала безопасности Windows. Например, в Windows 7, нажмите Allow access.
Вы не можете:
Закройте модель, в то время как симуляция запускается. Чтобы прервать симуляцию, в Командном окне, нажимают Ctrl+C.
Измените модель во время симуляции. Можно переместить блоки и линии, пока это не изменяет поведение модели.
Можно запустить топ-модель SIL или PIL симуляция с командой sim (
. Программное обеспечение поддерживает model
)sim
опция команды SrcWorkspace
для значения 'base'
.
Для PIL симуляции вы управляете способом, которым код компилирует и выполняется в целевом окружении через настройки возможности соединения.
Сконфигурировать блок Model для SIL или PIL симуляции:
В Редакторе Simulink откройте свою модель, например, rtwdemo_sil_modelblock
.
Щелкните правой кнопкой по своему блоку Model, например, Counter A
. В контекстном меню выберите Block Parameters (ModelReference), который открывает диалоговое окно Function Block Parameters.
От Simulation Mode выпадающий список выберите необходимый режим, например, Software-in-the-loop (SIL)
.
От Code interface выпадающий список задайте код, что вы хотите протестировать, например, Model reference
.
Нажмите OK. Программное обеспечение отображает режим симуляции как метку блока.
Если вы выбираете Top model
, программное обеспечение отображает метку (SIL: Top)
блока.
Если вы конфигурируете SIL симуляцию, задаете портативную опцию размеров слова. Можно затем переключиться беспрепятственно между режимами SIL и PIL. В диалоговом окне Configuration Parameters установите флажок Enable portable word sizes.
На вкладке Apps нажмите SIL/PIL Manager.
В разделе Mode выберите SIL/PIL Simulation Only.
В разделе Prepare, набор System Under Test к Model blocks in SIL/PIL mode
.
В поле Top Model Mode выберите Normal
или Accelerator
.
При необходимости сконфигурируйте:
Профилирование выполнения кода для вашего блока Model, путем конфигурирования профилирования выполнения для топ-модели.
Создание генерации кода сообщает и статические метрики кода.
В разделе Run:
В поле Stop Time задайте время симуляции.
Если вы не хотите восстанавливать код после начальной сборки, нажмите Fast Restart. Смотрите Предотвращают Изменения Кода в Нескольких Симуляциях.
Нажмите Run SIL/PIL.
В конце симуляции, в разделе Results, нажимают Data Inspector, чтобы просмотреть результаты симуляции.
Примечание
На операционной системе Windows Windows Firewall может потенциально блокировать SIL или PIL симуляцию. Чтобы позволить симуляцию, используйте диалоговое окно сигнала безопасности Windows. Например, в Windows 7, нажмите Allow access.
Для PIL симуляции вы управляете способом, которым код компилирует и выполняется в целевом окружении через настройки возможности соединения.
Можно использовать один из этих рабочих процессов:
Обвязка Simulink Test™ с SIL/PIL Manager — Если у вас есть модель, которая содержит подсистемы, можно использовать Simulink Test и SIL/PIL Manager, чтобы выполнить модульные тесты на коде, сгенерированном от подсистем. Этот рабочий процесс тестирует сгенерированный код подсистемы как часть кода, сгенерированного от родительской модели. Для получения дополнительной информации рабочего процесса смотрите Тестовый Сгенерированный код Атомарной подсистемы.
Если этот рабочий процесс не поддерживает подсистему, используйте рабочий процесс блока SIL или PIL в качестве альтернативы.
Блок SIL или PIL — Создает блок SIL или PIL из подсистемы, и затем запускает блок в среде или модели тестовой обвязки, которая предоставляет вход стимула или тестовые векторы. Этот рабочий процесс генерирует и тестирует новый автономный код от подсистемы. Для получения дополнительной информации см. SIL или Симуляцию Блока PIL.
Для PIL симуляции вы управляете способом, которым код компилирует и выполняется в целевом окружении через настройки возможности соединения.
Выполнять модульные тесты на коде, сгенерированном от атомарной подсистемы:
Откройте модель, которая содержит атомарную подсистему. Например, в Командном окне, введите:
rtwdemo_sil_block
В новой папке сохраните модель как plant_model
.
Измените настройки параметра конфигурации, которые не поддерживаются для этого рабочего процесса. В Командном окне, введите:
set_param('plant_model', ... 'CreateSILPILBlock','None', ... 'PreserveStaticInFcnDecls', 'Off'); % For this example, use these values for block parameters. set_param('plant_model/Controller', ... 'RTWSystemCode','Nonreusable function', ... 'RTWFileNameOpts', 'Auto');
Сгенерируйте код для модели, которая содержит атомарную подсистему. В Командном окне, введите:
slbuild('plant_model')
Создайте тестовую обвязку для подсистемы. Щелкните правой кнопкой по Controller
подсистема и выбирает Test Harness> Create for 'Controller'.
Установите свойства обвязки:
Имя controller_subsystem_harness
Sources and Sinks: Inport
и Outport
Выберите Open harness after creation.
Нажмите OK.
Simulink Test создает тестовую обвязку для Controller
подсистема.
Задайте формат для того, чтобы сохранить данные. В Командном окне, введите:
set_param('controller_subsystem_harness', ... 'SaveFormat','Dataset')
В окне Test Harness откройте SIL/PIL Manager. На вкладке Apps нажмите SIL/PIL Manager.
При необходимости сконфигурируйте покрытие кода.
Запустите компенсационные симуляции модели и SIL симуляции:
В разделе Mode выберите Automated Verification.
В разделе Run Automated Verification нажмите Run Verification.
Из галереи Results вы можете:
Используйте Инспектора Данных моделирования, чтобы анализировать результаты. Например, сравните controller_model_output
сигналы от симуляций модели и SIL симуляций.
Экспортируйте эквивалентный тест.
Для получения дополнительной информации смотрите, Анализируют Тесты Экспорта и Результаты.
Создать блок SIL или PIL из подсистемы и использовать этот блок, чтобы протестировать код, сгенерированный от подсистемы:
От Configuration Parameters> Code Generation> Verification> Advanced Parameters> Create block выпадающий список, выберите SIL
или PIL
.
При необходимости сконфигурируйте профилирование выполнения кода.
Нажмите OK.
В вашем окне модели щелкните правой кнопкой по подсистеме, которую вы хотите симулировать.
Выберите C/C++ Code> Build This Subsystem.
Нажмите Build, который запускает процесс сборки подсистемы, который создает блок SIL или PIL для сгенерированного кода подсистемы.
Добавьте сгенерированный блок в среду или модель тестовой обвязки, которая предоставляет вход стимула или тестовые векторы.
Запустите симуляции с моделью тестовой обвязки или средой.
Примечание
На операционной системе Windows Windows Firewall может потенциально блокировать SIL или PIL симуляцию. Чтобы позволить симуляцию, используйте диалоговое окно сигнала безопасности Windows. Например, в Windows 7, нажмите Allow access.
Вы не можете создать блок SIL или PIL, если вы выполняете одно из следующих действий:
Отключите CreateSILPILBlock
свойство.
Выберите инструмент покрытия кода.
Create block появляется, потускнел.
Для SIL симуляции необходимо сконфигурировать настройки аппаратной реализации, который включает компиляцию сгенерированного кода для компьютера разработчика. Эти настройки могут отличаться от настроек аппаратной реализации, которые вы используете при создавании модели для производственного оборудования. Используйте один из этих подходов.
Подход | Детали |
---|---|
Портативные размеры слова |
Переключитесь между режимами SIL и PIL, не регенерируя код. Вы используете те же сгенерированные файлы исходного кода для SIL симуляции на вашем компьютере разработчика и для производственного развертывания на целевой платформе. Чтобы сконфигурировать модель, чтобы использовать портативные размеры слова, установите:
|
Когда вы генерируете код для модели с портативными заданными размерами слова, генератор кода conditionalizes определения типов в #ifdef PORTABLE_WORDSIZES /* PORTABLE_WORDSIZES defined */ … #else /* PORTABLE_WORDSIZES not defined */ … #endif /* PORTABLE_WORDSIZES */ Make-файл шаблона, который вы используете, чтобы создать код для вашей цели, не должен содержать Для make-файла шаблона и подходов набора инструментальных средств к строительным нормам и правилам, программное обеспечение задает Для получения информации о make-файле шаблона и подходах набора инструментальных средств к строительным нормам и правилам, смотрите, Выбирают Build Approach и Configure Build Process. | |
Рассмотрите случай, где ваша цель использует код, который не может скомпилировать ваш компьютер разработчика. Когда вы переключаетесь от режима PIL до режима SIL и пытаетесь симулировать модель, вы видите ошибки компиляции. Можно попытаться работать вокруг этой проблемы путем добавления файлов исходного кода в
| |
Числовые результаты могут отличаться между сгенерированным кодом, выполняющимся в SIL симуляции и сгенерированным кодом, выполняющимся на производственном оборудовании при одном из этих условий:
| |
Протестируйте оборудование |
Используйте этот подход только, когда это необходимо, чтобы работать вокруг ограничения портативных размеров слова. Набор:
|
Производственное оборудование |
Используйте этот подход только, когда производственные аппаратные настройки будут совпадать с вашей архитектурой компьютера разработчика. Набор:
|
Для получения информации о тесте и производственных платформах, смотрите, Конфигурируют Опции Среды выполнения.
SIL и выходные параметры компонента PIL доступны для наблюдения и сравнения с другим режимом симуляции выходные параметры. Если вы хотите исследовать внутренний сигнал, можно включить внутреннее логгирование сигнала для топ-модели или блока Model SIL или PIL. С логгированием сигнала вы можете:
Соберите логгирование сигнала выходные параметры во время симуляций SIL/PIL, например, logsout
.
Регистрируйте внутренние сигналы и корневой уровень выходные параметры компонента SIL/PIL.
Управляйте сигналом SIL/PIL логгирование настроек с Селектором Логгирования Simulink Signal.
Используйте инспектора данных моделирования для:
Наблюдайте переданные потоком сигналы во время нормального, SIL и PIL симуляций.
Сравните регистрируемые сигналы от нормального, SIL и PIL симуляций.
Включить логгирование сигнала к рабочему пространству MATLAB и потоковую передачу сигнала Инспектору Данных моделирования во время SIL или PIL симуляций:
Для каждого сигнала, что вы хотите контролировать:
В Редакторе Simulink выберите сигнал.
На вкладке SIL/PIL нажмите Monitor Signals. Из галереи выберите эти опции:
Log Selected Signals
Make Selected Signals Testpoints
Signal Logging
Если параметром конфигурации Language является C++
, в редакторе Code Mappings, набор Data Visibility для сигналов, состояний и внутренних категорий элемента модели данных к public
.
Можно использовать другие методы, чтобы исследовать внутренние сигналы SIL или компонента PIL:
Вручную направьте сигнал к верхнему уровню.
Используйте хранилища глобальных данных, чтобы получить доступ к внутренним сигналам:
В компоненте соедините блок Data Store Write с необходимым сигналом.
Вне компонента используйте блок Data Store Read, чтобы получить доступ к значению сигналов.
Используйте логгирование MAT-файла. Обратите внимание на то, что:
Логгирование MAT-файла не поддерживает логгирование сигнала. Если логгирование сигнала включено, logsout
сгенерирован, но не сохранен в MAT-файле.
Для PIL целевое окружение должно поддержать логгирование MAT-файла.
Для получения дополнительной информации см.:
Используйте блок Model SIL/PIL или блок SIL/PIL с быстрым перезапуском, когда это необходимо, чтобы запустить несколько SIL или PIL симуляции с:
Различные тестовые векторы (наборы параметров и входные данные).
Неизменный сгенерированный код, то есть, ни одна из симуляций не регенерирует или восстанавливает код после начальной сборки. Например, вы хотите избежать инкрементной генерации кода, которую может инициировать изменение начального значения.
Для блока Model SIL/PIL можно также использовать один из этих методов:
В вашей модели тестовой обвязки, в диалоговом окне Configuration Parameters, устанавливает Rebuild на Never
. Если блоком Model параметр Code interface является Model reference
, программное обеспечение не восстанавливает типовой кодекс, на который ссылаются. (Если параметром Code interface является Top model
, программное обеспечение игнорирует установку Rebuild.)
Создайте защищенную модель и сгенерируйте исходный или двоичный код. Затем вставьте защищенную модель в свою модель тестовой обвязки. С этим методом можно проверить код топ-модели (с автономным интерфейсом кода) или код модели - ссылки.
Для альтернативных методов рабочего блока Model SIL/PIL следующая таблица обобщает поведение генерации кода после начальной сборки.
SIL и подход PIL | Поведение генерации кода после начальной сборки | |
---|---|---|
Блок Model | Параметр конфигурации Rebuild набора модели тестовой обвязки к Never . |
|
Блок Model (защищенная модель) | Исходный код из защищенной модели. | Вы наблюдаете то же поведение за исключением функции 2. В этом случае make-файл кода компонента запущен. Код компонента перекомпилирован и соединен, чтобы произвести новый объектный код. |
Двоичный код из защищенной модели. | Вы наблюдаете функции 1–4. |
Для получения дополнительной информации см.:
Если ваша модель имеет блоки SIL/PIL или блоки Model в режиме SIL/PIL, можно ускорить тестирование SIL/PIL:
Выполнение симуляции топ-модели в режиме Accelerator. Этот режим ускоряет симуляцию компонентов модели, которые не находятся в режиме SIL или PIL.
Включение быстрого перезапуска. После первой симуляции вы можете настройки параметров и повторно выполнять симуляции без перекомпиляции модели. SIL/PIL Manager обеспечивает кнопку Fast Restart.
Примечание
SIL и режимы PIL симуляции не спроектированы для сокращения времен симуляции модели. Если вы хотите ускорить симуляцию своей модели, используйте быстрый режим Accelerator. Для получения дополнительной информации смотрите то, Что Ускорение?.
Используйте блок Simulink Function и блок Function Caller, когда это необходимо, к:
Сгенерируйте код, который делает вызов функции к внешнему коду, например, драйверу или унаследованному коду.
Обеспечьте подсистему, которая ведет себя как внешний код в нормальном, SIL или PIL симуляциях.
Пример в Конфигурирует Вызовы менеджера AUTOSAR NVRAM, которого показывает Сервис (AUTOSAR Blockset), как можно сконфигурировать клиентские вызовы Basic Software (BSW) NVRAM менеджер (NvM) сервисные интерфейсы от компонента программного обеспечения AUTOSAR. В симуляции Simulink реализует вызовы BSW NvM через Simulink Function и предварительно сконфигурировал блоки Function Caller. Для итоговой системы вы соединяете тупики вызова функции с внешним кодом функции BSW, который запускается в Среде выполнения AUTOSAR (RTE).
Для получения дополнительной информации смотрите Функциональные блоки Simulink и Генерацию кода.