Существует три способа выполнения моделирования SIL и PIL. Можно использовать:
Топ-модель.
Блоки модели.
Блоки SIL и PIL, создаваемые из подсистем.
Для конфигурирования и запуска моделирования SIL или PIL верхней модели:
Откройте модель в редакторе Simulink ®.
На вкладке Приложения щелкните SIL/PIL Manager.
В разделе Режим (Mode) выберите Только моделирование SIL/PIL (SIL/PIL Simulation Only).
В разделе «Подготовка» установите для параметра «Тестируемая система» значение Top model.
В поле SIL/PIL Mode выберите либо Software-in-the-Loop (SIL) или Processor-in-the-Loop (PIL). Опция поддерживает только целевые файлы системы ERT, GRT или AUTOSAR. Сведения о конфигурации см. в разделе Параметры конфигурации модели: создание кода и настройка создания кода AUTOSAR (блок AUTOSAR).
Для контроля сигналов компонентов и данных о состоянии и сравнения значений модели и моделирования SIL или PIL:
Для каждого сигнала, который требуется зарегистрировать:
В редакторе Simulink выберите сигнал.
На вкладке SIL/PIL щелкните Monitor Signals. В галерее выберите следующие параметры:
Регистрация выбранных сигналов
Создание точек тестирования выбранных сигналов
Регистрация сигналов
Для регистрации данных состояния в галерее Monitor Signals выберите State Logging.
Если параметр конфигурации Language имеет значение C++, в редакторе сопоставлений кодов установите Видимость данных для сигналов, состояний и категорий элементов внутренней модели данных в значение public.
При настройке моделирования SIL укажите параметр переносимых размеров слов. Затем можно плавно переключаться между режимами SIL и PIL. В диалоговом окне «Параметры конфигурации» установите флажок «Включить переносимые размеры слов».
При необходимости сконфигурируйте:
В разделе Выполнить в поле Время остановки укажите время моделирования.
Щелкните Выполнить SIL/PIL (Run SIL/PIL).
В конце моделирования в разделе Результаты (Results) щелкните Инспектор данных (Data Inspector), чтобы просмотреть результаты моделирования.
Примечание
В операционной системе Windows ® брандмауэр Windows потенциально может блокировать моделирование SIL или PIL. Чтобы разрешить моделирование, используйте диалоговое окно Предупреждение безопасности Windows. Например, в Windows 7 щелкните Разрешить доступ.
Нельзя:
Закройте модель во время выполнения моделирования. Чтобы прервать моделирование, в окне команд нажмите клавиши Ctrl + C.
Изменение модели во время моделирования. Блоки и линии можно перемещать до тех пор, пока они не изменяют поведение модели.
С помощью команды можно запустить моделирование SIL или PIL верхней модели. sim(. Программное обеспечение поддерживает model)sim параметр команды SrcWorkspace для значения 'base'.
При моделировании PIL осуществляется управление способом компиляции и выполнения кода в целевой среде посредством конфигураций соединений.
Конфигурирование блока модели для моделирования SIL или PIL:
В редакторе Simulink откройте модель, например: rtwdemo_sil_modelblock.
Щелкните правой кнопкой мыши блок «Модель», например: Counter A. В контекстном меню выберите Параметры блока (Model Reference), чтобы открыть диалоговое окно Параметры функционального блока (Function Block Parameters).
В раскрывающемся списке Режим моделирования (Simulation Mode) выберите требуемый режим, например: Software-in-the-loop (SIL).
В раскрывающемся списке Code interface укажите код, который требуется проверить, например: Model reference.
Нажмите кнопку OK. Программа отображает режим моделирования в виде метки блока.

При выборе Top model, программа отображает метку блока (SIL: Top).
При настройке моделирования SIL укажите параметр переносимых размеров слов. Затем можно плавно переключаться между режимами SIL и PIL. В диалоговом окне «Параметры конфигурации» установите флажок «Включить переносимые размеры слов».
На вкладке Приложения щелкните SIL/PIL Manager.
В разделе Mode (Режим) выберите SIL/PIL Simulation Only (Только моделирование SIL/PIL).
В разделе «Подготовка» установите для параметра «Тестируемая система» значение Model blocks in SIL/PIL mode.
В поле Режим верхней модели (Top Model Mode) выберите либо Normal или Accelerator.
При необходимости сконфигурируйте:
Профилирование выполнения кода для блока модели путем настройки профилирования выполнения для модели верхнего уровня.
В разделе Выполнить:
В поле Время остановки укажите время моделирования.
Чтобы избежать перестроения кода после первоначальной сборки, нажмите кнопку «Быстрый перезапуск». См. раздел Предотвращение изменений кода в нескольких моделированиях.
Щелкните Выполнить SIL/PIL (Run SIL/PIL).
В конце моделирования в разделе Результаты (Results) щелкните Инспектор данных (Data Inspector), чтобы просмотреть результаты моделирования.
Примечание
В операционной системе Windows брандмауэр Windows потенциально может блокировать моделирование SIL или PIL. Чтобы разрешить моделирование, используйте диалоговое окно Предупреждение безопасности Windows. Например, в Windows 7 щелкните Разрешить доступ.
При моделировании 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
Источники и поглотители: Inport и Outport
Выберите «Открыть электрический жгут после создания».
Нажмите кнопку ОК.
Simulink Test создает тестовый электрический жгут для Controller подсистема.

Укажите формат для сохранения данных. В окне команд введите:
set_param('controller_subsystem_harness', ... 'SaveFormat','Dataset')
В окне Test Harness откройте диспетчер SIL/PIL. На вкладке Приложения щелкните SIL/PIL Manager.
При необходимости сконфигурируйте покрытие кода.
Выполнение моделирования модели «назад-назад» и SIL:
В разделе Режим выберите Автоматическая проверка.
В разделе Выполнить автоматическую проверку щелкните Выполнить проверку.
В галерее Результаты (Results) можно:
Используйте инспектор данных моделирования для анализа результатов. Например, сравните controller_model_output сигналы от моделирования модели и SIL.
Экспорт теста эквивалентности.
Дополнительные сведения см. в разделе Анализ результатов и экспорт тестовых примеров.
Чтобы создать блок SIL или PIL из подсистемы и использовать этот блок для тестирования кода, генерируемого подсистемой:
В раскрывающемся списке «Параметры конфигурации» > «Создание кода» > «Проверка» > «Дополнительные параметры» > «Создать блок» выберите либо SIL или PIL.
При необходимости настройте профилирование выполнения кода.
Нажмите кнопку ОК.
В окне модели щелкните правой кнопкой мыши подсистему, которую требуется смоделировать.
Выберите Код C/C + + > Построить эту подсистему.
Нажмите кнопку Build, которая запускает процесс сборки подсистемы, создающий блок SIL или PIL для сгенерированного кода подсистемы.
Добавьте созданный блок в модель среды или тестового электрического жгута, которая предоставляет тестовые векторы или входные данные стимула.
Выполните моделирование с помощью среды или тестовой модели электрического жгута.
Примечание
В операционной системе Windows брандмауэр Windows потенциально может блокировать моделирование SIL или PIL. Чтобы разрешить моделирование, используйте диалоговое окно Предупреждение безопасности Windows. Например, в Windows 7 щелкните Разрешить доступ.
Невозможно создать блок SIL или PIL, если выполняется одно из следующих действий.
Отключить CreateSILPILBlock собственность.
Выберите инструмент покрытия кода.
«Создать блок» отображается затемненным.
Для моделирования SIL необходимо настроить параметры реализации аппаратного обеспечения, что позволяет компилировать сгенерированный код для компьютера разработчика. Эти параметры могут отличаться от параметров реализации оборудования, используемых при создании модели для производственного оборудования. Используйте один из этих подходов.
| Подход | Подробнее |
|---|---|
| Переносные размеры слов |
Переключение между режимами SIL и PIL без регенерации кода. Те же сгенерированные файлы исходного кода используются для моделирования SIL на компьютере разработчика и для производственного развертывания на целевой платформе. Чтобы настроить модель на использование переносимых размеров слов, задайте:
|
При создании кода для модели с указанными переносимыми размерами слов генератор кода обусловливает определения типов данных в #ifdef PORTABLE_WORDSIZES /* PORTABLE_WORDSIZES defined */ … #else /* PORTABLE_WORDSIZES not defined */ … #endif /* PORTABLE_WORDSIZES */ Файл создания шаблона, используемый для построения кода для целевого объекта, не должен содержать Для подходов makefile и toolchain шаблона к строительному коду программа определяет Сведения о подходах makefile и toolchain шаблона к коду построения см. в разделах Выбор подхода построения и настройка процесса построения. | |
Рассмотрим случай, когда конечный объект использует код, который не может быть скомпилирован компьютером разработчика. При переключении из режима PIL в режим SIL и попытке моделирования модели появляются ошибки компиляции. Можно попытаться обойти эту проблему, добавив файлы исходного кода в
| |
Численные результаты могут отличаться между генерируемым кодом, выполняемым при моделировании SIL, и генерируемым кодом, выполняемым на производственных аппаратных средствах при одном из следующих условий:
| |
| Тестовое оборудование |
Этот подход используется только в том случае, если требуется обойти ограничение размеров переносимых слов. Установить:
|
| Производственное оборудование |
Этот подход используется только в том случае, если параметры производственного оборудования соответствуют архитектуре компьютера для разработки. Установить:
|
Сведения о целях тестирования и производства см. в разделе Настройка параметров среды выполнения.
Выходы компонентов SIL и PIL доступны для наблюдения и сравнения с другими выходами режима моделирования. Если требуется проверить внутренний сигнал, можно включить регистрацию внутреннего сигнала для верхней модели или блока модели SIL или PIL. С помощью регистрации сигналов можно:
Сбор выходных данных регистрации сигналов во время моделирования SIL/PIL, например: logsout.
Регистрация внутренних сигналов и выходов корневого уровня компонента SIL/PIL.
Управление настройками регистрации сигналов SIL/PIL с помощью селектора регистрации сигналов Simulink.
Используйте инспектор данных моделирования, чтобы:
Наблюдение за потоковыми сигналами во время нормального моделирования, моделирования SIL и PIL.
Сравнение зарегистрированных сигналов от моделирования нормального уровня безопасности, SIL и PIL.
Для включения регистрации сигналов в рабочей области MATLAB и потоковой передачи сигналов в инспектор данных моделирования во время моделирования SIL или PIL:
Для каждого сигнала, который требуется контролировать:
В редакторе Simulink выберите сигнал.
На вкладке SIL/PIL щелкните Monitor Signals. В галерее выберите следующие параметры:
Регистрация выбранных сигналов
Создание точек тестирования выбранных сигналов
Регистрация сигналов
Если параметр конфигурации Language имеет значение C++, в редакторе сопоставлений кодов установите Видимость данных для сигналов, состояний и категорий элементов внутренней модели данных в значение public.
Для проверки внутренних сигналов компонента SIL или PIL можно использовать другие методы:
Вручную направьте сигнал на верхний уровень.
Глобальные хранилища данных используются для доступа к внутренним сигналам:
Внутри компонента подключите блок записи хранилища данных к требуемому сигналу.
Вне компонента используйте блок чтения хранилища данных для доступа к значению сигнала.
Использовать ведение журнала файлов MAT. Обратите внимание, что:
Ведение журнала файлов MAT не поддерживает ведение журнала сигналов. Если регистрация сигналов включена, logsout создается, но не сохраняется в MAT-файле.
Для PIL целевая среда должна поддерживать ведение журнала MAT-файлов.
Дополнительные сведения см. в разделе:
Используйте блок модели SIL/PIL или блок SIL/PIL с быстрым перезапуском при необходимости выполнения нескольких симуляций SIL или PIL с помощью:
Изменение тестовых векторов (наборов параметров и входных данных).
Неизмененный сгенерированный код, то есть ни одна из имитаций не регенерирует и не перестраивает код после начальной сборки. Например, необходимо избежать создания инкрементного кода, которое может вызвать изменение начального значения.
Для блока модели SIL/PIL можно также использовать один из следующих методов:
В модели тестового кабеля в диалоговом окне «Параметры конфигурации» задайте для параметра «Перестроить» значение Never. Если параметр интерфейса Model block Code имеет значение Model reference, программное обеспечение не восстанавливает ссылочный код модели. (Если параметр Code interface имеет значение Top model, программа игнорирует параметр «Перестроение».)
Создайте защищенную модель и создайте исходный или двоичный код. Затем вставьте защищенную модель в модель тестового кабеля. С помощью этого метода можно проверить код верхней модели (с помощью автономного интерфейса кода) или ссылочный код модели.
Для альтернативных методов запуска блока модели SIL/PIL следующая таблица суммирует поведение генерации кода после начальной сборки.
| Подход SIL и PIL | Поведение создания кода после начальной сборки | |
|---|---|---|
| Блок модели | Перестроить параметр конфигурации модели тестового кабеля, имеющий значение Never. |
|
| Блок модели (защищенная модель) | Исходный код из защищенной модели. | Вы наблюдаете то же поведение, за исключением элемента 2. В этом случае выполняется файл создания кода компонента. Код компонента перекомпилируется и связывается для создания нового кода объекта. |
| Двоичный код из защищенной модели. | Вы наблюдаете особенности 1-4. | |
Дополнительные сведения см. в разделе:
Если в модели имеются блоки SIL/PIL или блоки модели в режиме SIL/PIL, можно ускорить тестирование SIL/PIL путем:
Запуск моделирования верхней модели в режиме ускорителя. Этот режим ускоряет моделирование компонентов модели, которые не находятся в режиме SIL или PIL.
Включение быстрого перезапуска. После первого моделирования можно настроить параметры и повторно запустить моделирование без повторной компиляции модели. Диспетчер SIL/PIL предоставляет кнопку быстрого перезапуска.
Примечание
Режимы моделирования SIL и PIL не предназначены для сокращения времени моделирования модели. Чтобы ускорить моделирование модели, используйте режим быстрого ускорения. Дополнительные сведения см. в разделе Что такое ускорение?.
Функциональные блоки Simulink и Function Caller используются в следующих случаях:
Создайте код, который выполняет вызов функции для внешнего кода, например, драйвера или устаревшего кода.
Предоставьте подсистему, которая ведет себя как внешний код при моделировании нормального, SIL или PIL.
Пример в разделе Настройка вызовов службы диспетчера NVRAM (AUTOSAR Blockset) показывает, как можно настроить клиентские вызовы интерфейсов службы диспетчера NVRAM (NvM) базового программного обеспечения (BSW) из программного компонента AUTOSAR. При моделировании Simulink реализует вызовы NvM BSW через функцию Simulink и предварительно настроенные блоки вызова функции. Для конечной системы необходимо связать заглушки вызовов функций с внешним кодом функции BSW, который выполняется в среде выполнения AUTOSAR (RTE).
Дополнительные сведения см. в разделах Функциональные блоки Simulink и Создание кода.