Для атомарной подсистемы можно использовать SIL/PIL симуляцию в текущем релизе, чтобы проверить код, который был сгенерирован для той подсистемы в предыдущем релизе. Вы не должны регенерировать код, который экономит время генерации тестовой обвязки. Вы не можете снова использовать сгенерированный код для тестовых обвязок для целых моделей или блоков Model.
Примечание
У вас должен быть Embedded Coder® лицензия на сгенерированный код повторного использования от более раннего релиза.
В более раннем релизе, если вы создали тестовую обвязку, что сгенерированный код и проверил его с помощью SIL/PIL, можно снова использовать тот код, вместо того, чтобы регенерировать его, в текущем релизе. К сгенерированному коду повторного использования необходимо знать местоположение папки, которая содержит код. Шаги для многократного использования сгенерированного кода и проверки его с помощью SIL/PIL:
Щелкните правой кнопкой по атомарной подсистеме по своей модели и выберите Test Harness> Create for '<subsystem_name>'.
Во вкладке Advanced Properties диалогового окна Create Test Harness:
Установите выбирают Verification Mode to Software-in-the-Loop (SIL)
или Processor-in-the-Loop (PIL)
.
Выберите Use generated code to create SIL/PIL block.
В текстовом поле Build folder введите полный путь в папку, которая содержит ранее сгенерированный код.
Нажмите ОК, чтобы создать тестовую обвязку с помощью сгенерированного кода.
Создайте другого нормального или тестовая обвязка режима SIL/PIL для модели, которая не использует сгенерированный код.
Создайте тест и запустите тест.
Анализируйте результаты испытаний и проверьте, что результаты совпадают с результатами, приведенными тем же кодом в более раннем релизе.
Использовать ранее сгенерированный код проверило использование подсистемы SIL/PIL программно, используйте ExistingBuildFolder
свойство sltest.harness.create
или sltest.harness.set
задавать местоположение сгенерированного кода.
В этом примере показано, как использовать код, который был сгенерирован в предыдущем релизе, чтобы проверить, что модель в текущем релизе продолжает работать как ожидалось. В текущем релизе можно создать тестовую обвязку с помощью ранее сгенерированного кода, вместо того, чтобы иметь необходимость регенерировать его.
Моделью в этом примере является sldemo_fuelsys
, который представляет топливную систему управления для бензинового двигателя. Системой под тестом является fuel_rate_control
подсистема. Симуляция режима normal mode в текущем релизе сравнивается с симуляцией режима SIL от более раннего релиза.
Откройте топливную модель системы управления
sldemo_fuelsys_ex
Создайте нормальную тестовую обвязку и выберите сигнал регистрировать
1. Щелкните правой кнопкой по fuel_rate_control подсистеме и выберите Test Harness> Create для 'fuel_rate_control'. Диалоговое окно Create Test Harness открывается.
2. Поменяйте Имя обвязки к sldemo_fuelsys_harness_normal
и нажмите ОК, чтобы создать обвязку режима normal mode.
3. Выберите сигнал, выходящий из подсистемы в тестовой обвязке. Сделайте паузу на замещающем знаке, чтобы открыть строку меню и выбрать Enable Data Logging.
4. Закройте sldemo_fuelsys_harness_normal
обвязка. Вы не должны явным образом сохранять обвязку.
Создайте тестовую обвязку SIL и выберите Signal to Log
1. Щелкните правой кнопкой по fuel_rate_control подсистеме снова и выберите Test Harness> Create для 'fuel_rate_control', чтобы открыть диалоговое окно Create Test Harness.
2. Поменяйте Имя обвязки к sldemo_fuelsys_harness_sil
.
3. На вкладке Advanced Properties, устанавливает обвязка как обвязка SIL, которая проверила код, сгенерированный в более раннем релизе.
Измените режим верификации в Software-in-the-Loop (SIL)
.
Выберите Use существующий сгенерированный код, чтобы создать блок SIL/PIL.
В папке Build введите fuel_rate_control_ert_rtw
, то, которое является именем папки, которая содержит код, проверило использование подсистемы SIL в более раннем релизе.
4. Нажмите ОК, чтобы создать обвязку SIL.
5. Выберите сигнал, выходящий из подсистемы в тестовой обвязке. Сделайте паузу на замещающем знаке, чтобы открыть строку меню и выбрать Enable Data Logging.
Создайте эквивалентный тест
1. Используйте sltestmgr
открыть менеджера по Тесту.
2. Нажмите New> Test File. Щелкните правой кнопкой по тестовому файлу и поменяйте его имя на SIL reuse
.
3. Удалите New Test Case 1
.
4. Подсветите New Test Suite 1
и нажмите New> Equivalence Test.
5. Поменяйте имя New Test Case 1
к SIL equivalence test case
.
6. В Системе Под Экспериментальным участком для Симуляции 1,
Установите модель на sldemo_fuelsys
.
Под Тестовой обвязкой> Обвязка, выберите sldemo_fuelsys_harness_normal
.
При Переопределениях Настроек Симуляции выберите Stop Time и установите его на 10.
7. Для симуляции 2,
Установите модель на sldemo_fuelsys
.
Под Тестовой обвязкой> Обвязка, выберите sldemo_fuelsys_harness_sil
.
При Переопределениях Настроек Симуляции оставьте Релиз как Текущий. Установите Время остановки и установите его на 10.
Задайте входные параметры обвязки
Для обеих симуляций, во Входных разделах, нажимают Add и, в диалоговом окне Add Input, в поле File, вводят harnessInputs.mat
. Нажмите Map Inputs и затем нажмите Add, чтобы настроить входные параметры.
Запустите тест и просмотрите Вывод и результаты
Нажмите Run, чтобы запустить эквивалентный тест. В панели Результатов и Артефактов расширьте Эквивалентный Результат Критериев просмотреть вывод.
Верхний график показывает выход обеих тестовых обвязок. Более низкий график показывает, что различием между fuel_rate_control:1 (Базовая линия) и fuel_rate_control:1 (Сим Аутпут) является нуль. Это различие означает, что два графика результатов соответствуют точно. Это соответствие указывает, что код проверенное использование SIL от более раннего релиза и кода, сгенерированного в текущем релизе, приводит к тем же результатам.
sltest.harness.create
| sltest.harness.set
| crossReleaseImport
(Embedded Coder)