Для атомарной подсистемы можно использовать симуляцию SIL/PIL в текущем релизе, чтобы проверить код, который был сгенерирован для этой подсистемы в предыдущем релизе. Вам не нужно регенерировать код, что экономит время генерации тестовых обвязок. Вы не можете повторно использовать сгенерированный код для тестовых обвязок для целых моделей или блоков Модель-ссылка.
Примечание
У вас должен быть Embedded Coder® лицензия на повторное использование сгенерированного кода из более раннего релиза.
Более ранним релизы, если вы создали тестовую обвязку, которая сгенерированный код и верифицировала его с помощью SIL/PIL, можно повторно использовать этот код, а не регенерировать его, в текущем релизе. Чтобы повторно использовать сгенерированный код, вы должны знать расположение папки, которая содержит код. Шаги для повторного использования сгенерированного кода и его проверки с помощью SIL/PIL:
Щелкните правой кнопкой мыши атомарную подсистему в модели и выберите Test Harness > Create for '<subsystem_name>'.
На вкладке «Дополнительные свойства» диалогового окна «Создание тестовых обвязок»:
Установите значение Verification Mode Select на Software-in-the-Loop (SIL)
или Processor-in-the-Loop (PIL)
.
Выберите Use generated code to create SIL/PIL block.
В Build folder текстовом поле введите полный путь к папке, которая содержит ранее сгенерированный код.
Нажмите OK, чтобы создать тестовую обвязку с помощью сгенерированного кода.
Создайте другую тестовую обвязку режима normal или 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 и выберите Тестовая Обвязка > Create для 'fuel _ rate _ control'. Откроется диалоговое окно Создать тестовый кабель (Create Тестовая Обвязка).
2. Измените имя обвязки на sldemo_fuelsys_harness_normal
и нажмите кнопку OK, чтобы создать обвязку в режиме normal mode.
3. Выберите сигнал выхода из подсистемы в тестовую обвязку. Остановитесь на эллипсисе, чтобы открыть панель действий и выберите Enable Data Logging.
4. Закройте sldemo_fuelsys_harness_normal
обвязка. Вам не нужно явно сохранять обвязку.
Создайте тестовую обвязку SIL и выберите сигнал для регистрации
1. Еще раз щелкните подсистему fuel_rate_control и выберите Тестовая Обвязка > Create для 'fuel _ rate _ control', чтобы открыть диалоговое окно Create Test Harness.
2. Измените имя обвязки на sldemo_fuelsys_harness_sil
.
3. На вкладке «Дополнительные свойства» установите обвязку как обвязка, который верифицировал код, сгенерированный в более раннем релизе.
Измените режим верификации на Software-in-the-Loop (SIL)
.
Выберите Использовать существующий сгенерированный код для создания блока SIL/PIL.
В папке Build введите fuel_rate_control_ert_rtw
, которое является именем папки, содержащей код, проверенный с помощью подсистемы SIL в более раннем релизе.
4. Нажмите кнопку ОК, чтобы создать обвязку SIL.
5. Выберите сигнал выхода из подсистемы в тестовую обвязку. Остановитесь на эллипсисе, чтобы открыть панель действий и выберите Enable Data Logging.
Создайте тест эквивалентности
1. Использование sltestmgr
чтобы открыть диспетчер тестов.
2. Щелкните Создать > Тестовый файл. Щелкните правой кнопкой мыши тестовый файл и измените его имя на SIL reuse
.
3. Удалить New Test Case 1
.
4. Подсветите New Test Suite 1
и щелкните Создать > Тест эквивалентности.
5. Измените имя New Test Case 1
на SIL equivalence test case
.
6. В разделе «Тестируемая система» для симуляции 1,
Установите значение Модели на sldemo_fuelsys
.
В разделе Тестовой обвязки > Обвязкой выберите sldemo_fuelsys_harness_normal
.
В разделе Simulation Settings Overrides выберите Время Остановки и установите его равным 10.
7. Для симуляции 2,
Установите значение Модели на sldemo_fuelsys
.
В разделе Тестовой обвязки > Обвязкой выберите sldemo_fuelsys_harness_sil
.
В разделе «Переопределения параметров симуляции» оставьте Release as Current. Установите Время остановки и установите его равным 10.
Задайте входные параметры обвязки
Для обеих симуляций в разделах Inputs нажмите Add и, в диалоговом окне Add Input, в поле файл, введите harnessInputs.mat
. Нажмите Map Inputs, а затем Add, чтобы настроить входы.
Запуск теста и просмотр выхода и результатов
Нажмите запуск, чтобы запустить тест эквивалентности. На панели Результаты и программные продукты разверните раздел Критерии эквивалентности (Equivalence Criteria Result), чтобы просмотреть выход.
Верхний график показывает выход обеих тестовых обвязок. Нижний график показывает, что различие между fuel_rate_control:1 (Baseline) и fuel_rate_control:1 (Sim Output) равна нулю. Это различие означает, что два графика результатов точно совпадают. Это соответствие указывает, что код, проверенный с помощью SIL из предыдущего релиза, и код, сгенерированный в текущем релизе, дают одинаковые результаты.
sltest.harness.create
| sltest.harness.set
| crossReleaseImport
(Embedded Coder)