Используйте SIL/PIL, чтобы Проверить Сгенерированный код от Более раннего Релиза

Для атомарной подсистемы можно использовать SIL/PIL симуляцию в текущем релизе, чтобы проверить код, который был сгенерирован для той подсистемы в предыдущем релизе. Вы не должны регенерировать код, который экономит время генерации тестовой обвязки. Вы не можете снова использовать сгенерированный код для тестовых обвязок для целых моделей или блоков Model.

Примечание

У вас должен быть Embedded Coder® лицензия на сгенерированный код повторного использования от более раннего релиза.

Сгенерированный код повторного использования

В более раннем релизе, если вы создали тестовую обвязку, что сгенерированный код и проверил его с помощью SIL/PIL, можно снова использовать тот код, вместо того, чтобы регенерировать его, в текущем релизе. К сгенерированному коду повторного использования необходимо знать местоположение папки, которая содержит код. Шаги для многократного использования сгенерированного кода и проверки его с помощью SIL/PIL:

  1. Щелкните правой кнопкой по атомарной подсистеме по своей модели и выберите Test Harness> Create for '<subsystem_name>'.

  2. Во вкладке 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 введите полный путь в папку, которая содержит ранее сгенерированный код.

  3. Нажмите ОК, чтобы создать тестовую обвязку с помощью сгенерированного кода.

  4. Создайте другого нормального или тестовая обвязка режима SIL/PIL для модели, которая не использует сгенерированный код.

  5. Создайте тест и запустите тест.

  6. Анализируйте результаты испытаний и проверьте, что результаты совпадают с результатами, приведенными тем же кодом в более раннем релизе.

Использовать ранее сгенерированный код проверило использование подсистемы SIL/PIL программно, используйте ExistingBuildFolder свойство sltest.harness.create или sltest.harness.set задавать местоположение сгенерированного кода.

Верификация SIL Подсистемы с помощью Кода, Сгенерированного от Более раннего Релиза

В этом примере показано, как использовать код, который был сгенерирован в предыдущем релизе, чтобы проверить, что модель в текущем релизе продолжает работать как ожидалось. В текущем релизе можно создать тестовую обвязку с помощью ранее сгенерированного кода, вместо того, чтобы иметь необходимость регенерировать его.

Моделью в этом примере является 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, которая проверила код, сгенерированный в более раннем релизе.

  1. Измените режим верификации в Software-in-the-Loop (SIL).

  2. Выберите Use существующий сгенерированный код, чтобы создать блок SIL/PIL.

  3. В папке 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,

  1. Установите модель на sldemo_fuelsys.

  2. Под Тестовой обвязкой> Обвязка, выберите sldemo_fuelsys_harness_normal.

  3. При Переопределениях Настроек Симуляции выберите Stop Time и установите его на 10.

7. Для симуляции 2,

  1. Установите модель на sldemo_fuelsys.

  2. Под Тестовой обвязкой> Обвязка, выберите sldemo_fuelsys_harness_sil.

  3. При Переопределениях Настроек Симуляции оставьте Релиз как Текущий. Установите Время остановки и установите его на 10.

Задайте входные параметры обвязки

Для обеих симуляций, во Входных разделах, нажимают Add и, в диалоговом окне Add Input, в поле File, вводят harnessInputs.mat. Нажмите Map Inputs и затем нажмите Add, чтобы настроить входные параметры.

Запустите тест и просмотрите Вывод и результаты

Нажмите Run, чтобы запустить эквивалентный тест. В панели Результатов и Артефактов расширьте Эквивалентный Результат Критериев просмотреть вывод.

Верхний график показывает выход обеих тестовых обвязок. Более низкий график показывает, что различием между fuel_rate_control:1 (Базовая линия) и fuel_rate_control:1 (Сим Аутпут) является нуль. Это различие означает, что два графика результатов соответствуют точно. Это соответствие указывает, что код проверенное использование SIL от более раннего релиза и кода, сгенерированного в текущем релизе, приводит к тем же результатам.

Смотрите также

| | (Embedded Coder)

Похожие темы