Использование SIL/PIL для проверки сгенерированного кода из более раннего релиза

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

Примечание

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

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

Более ранним релизы, если вы создали тестовую обвязку, которая сгенерированный код и верифицировала его с помощью SIL/PIL, можно повторно использовать этот код, а не регенерировать его, в текущем релизе. Чтобы повторно использовать сгенерированный код, вы должны знать расположение папки, которая содержит код. Шаги для повторного использования сгенерированного кода и его проверки с помощью SIL/PIL:

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

  2. На вкладке «Дополнительные свойства» диалогового окна «Создание тестовых обвязок»:

    • Установите значение Verification Mode Select на Software-in-the-Loop (SIL) или Processor-in-the-Loop (PIL).

    • Выберите Use generated code to create SIL/PIL block.

    • В Build folder текстовом поле введите полный путь к папке, которая содержит ранее сгенерированный код.

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

  4. Создайте другую тестовую обвязку режима normal или 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 и выберите Тестовая Обвязка > 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. На вкладке «Дополнительные свойства» установите обвязку как обвязка, который верифицировал код, сгенерированный в более раннем релизе.

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

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

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

  1. Установите значение Модели на sldemo_fuelsys.

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

  3. В разделе Simulation Settings Overrides выберите Время Остановки и установите его равным 10.

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

  1. Установите значение Модели на sldemo_fuelsys.

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

  3. В разделе «Переопределения параметров симуляции» оставьте 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 из предыдущего релиза, и код, сгенерированный в текущем релизе, дают одинаковые результаты.

См. также

| | (Embedded Coder)

Похожие темы