Чтобы создать тестовую обвязку для модели верхнего уровня (включая подсистемы и модели модели-ссылки):
Щелкните правой кнопкой мыши в Simulink® Модель и нажатие кнопки Test Harness > Create for Model, чтобы открыть диалоговое окно Create Тестовой обвязки.
Выбрав требуемые опции, щелкните OK, чтобы создать тестовую обвязку.
Чтобы создать тестовую обвязку для одного компонента модели:
На вкладке Apps, в разделе Верификации модели, Валидация и Тест, нажмите Simulink Test.
На вкладке Tests щелкните Simulink Test Manager, чтобы открыть Диспетчер тестов.
Создайте новый тестовый файл в Диспетчере тестов.
Щелкните New > Test for Model Component, который открывает мастер создания рабочего процесса «Тест для компонента модели».
Создайте тестовую обвязку путем заполнения страниц мастера.
Примечание
Мастер создания теста для рабочего процесса компонентов модели предоставляет подмножество тестовой обвязки опций. Если тестовая обвязка не должен использовать параметры, отличные от опций по умолчанию, используйте мастер для быстрого создания обвязки. Если необходимо изменить другие опции, используйте Диспетчер тестов для тестовых обвязок, созданных с помощью мастера.
Для получения информации об использовании мастера и свойствах, которые он задает, см. «Генерация тестов и тестовых обвязок для компонента или модели».
Когда компонент модели имеет тестовую обвязку, в правом нижнем углу блока появляется значок. Чтобы просмотреть тестовые обвязки, щелкните значок. Чтобы открыть тестовую обвязку, щелкните плитку.
Чтобы просмотреть тестовые обвязки для блока модели, щелкните значок вывода в холсте модели. Чтобы открыть тестовую обвязку, щелкните плитку.
Чтобы изменить свойства открытой тестовой обвязки, щелкните значок в блоке тестовой обвязки и нажмите кнопку Test harness properties, чтобы открыть диалоговое окно свойств обвязки.
Чтобы изменить свойства тестовых обвязок из основной модели, щелкните значок Harness operations из предварительного просмотра тестовой обвязки.
Прежде чем выбирать тестовую обвязку свойства, примите к сведению следующее:
Какой источник данных вы хотите использовать для входа теста
Способ просмотра или хранения выходов тестирования
Хотите ли вы скопировать параметры и рабочие области из основной модели в обвязку
Планируете ли вы редактировать тестируемый компонент
Как вы хотите синхронизировать изменения между тестовой обвязкой и моделью
Кроме источников и раковин, можно изменить свойства обвязки позже с помощью диалогового окна свойств обвязки. Чтобы изменить источники и приемники после создания обвязок, вручную удалите блоки из тестовой обвязки и замените их новыми источниками и приемниками.
Примечание
В следующих разделах описываются свойства тестовых обвязок в диалоговом окне «Создание тестовых обвязок». Для получения информации о свойствах тестовых обвязок в мастере создания тестов для компонентов модели, см. «Генерация тестов» и «Тестовые обвязки для компонента или модели».
Тестовые обвязки должны использовать допустимый MATLAB® имена файлов.
Эта опция управляет хранением тестовых обвязок в модели. Модель хранит все свои тестовые обвязки либо внутри, либо снаружи. Если модель уже имеет тестовые обвязки, этот элемент определяет тип склада обвязки следующим Harnesses saved <internally|externally>.
После удаления модель сохраняет тестовые обвязки как часть файла SLX модели.
Когда выбран, модель сохраняет тестовые обвязки в отдельных файлах SLX в текущей рабочей папке и добавляет XML-файл информации о обвязке в папку модели. Информационный файл обвязки должен остаться в той же папке, что и модель.
Выберите интерфейс функции для связи с многоразовой тестовой обвязкой подсистемы библиотеки. Эта опция появляется, только если тестируемый компонент является переиспользуемой подсистемой библиотеки с интерфейсом функции.
В диалоговом окне «Создание тестовой обвязки» под Sources and Sinks выберите источник и приемник из соответствующих меню. Меню обеспечивают общие источники и раковины.
Можно использовать исходный и приемный блоки из библиотеки Simulink Sources или Sinks. Выберите Custom
источник или раковина и введите путь к блоку. Для примера:
simulink/Sources/Sine Wave
simulink/Sinks/Terminator
Пользовательские источники и приемники строят тестовую обвязку с одним блоком на порт.
Когда вы выбираете это свойство, тестовая обвязка создаёт скалярные входы для многомерных сигналов. Индивидуумы скаляра входов изменены так, чтобы соответствовать размерности входных сигналов тестируемому компоненту. Эта опция относится к тестовым обвязкам с Inport, Constant, Signal Builder, From Workspace, или From File исходные блоки. Эта опция не применяется к моделям подсистем.
Заголовок этой опции зависит от того, является ли тестируемый компонент подсистемой или моделью. Чтобы включить блок планировщика в тестовую обвязку, выберите блок из выпадающего списка. Можно использовать блок Test Sequence, блок MATLAB Function или Stateflow® график как планировщик.
Add scheduler for function-calls and rates: Для модели можно использовать блок, чтобы вызвать функции и задать шаги расчета для входов и выходов модели.
Generate function-call signals using: Для подсистемы можно использовать блок для вызова функций в подсистеме.
Выбор этой опции позволяет инициализировать, завершить или сбросить порты вызова функции в тестируемом компоненте и соединяет блок планировщика с портами.
Эта опция появляется, когда вы создаете тестовую обвязку для модели верхнего уровня и выбираете блок для опции Add scheduler for function-calls and rates.
Выберите Add separate assessment block, чтобы включить отдельный Test Assessment блок в тестовую обвязку.
Блок Test Assessment является отдельным блоком Test Sequence, сконфигурированным со свойствами, обычно используемыми для проверки тестируемого компонента. Для получения дополнительной информации смотрите Оценка симуляции и Сравнение выходных данных и Оценка Симуляции Модели Используя Операторы Проверки.
Выберите Log output signals, чтобы записать все выходные сигналы тестируемого компонента. Использовать эту опцию можно только при создании новой обвязки. Сигналы регистрируются во время выполнения теста и возврата результатов тестирования. Если сигнал выхода не имеет имени или распространенного имени, он назначается в обвязку с использованием формата <component under test name>:<output port number>
. Чтобы удалить сигнал из регистрации, откройте обвязку, щелкните правой кнопкой мыши сигнал и выберите Stop Logging Selected Signals.
Очистите Open Harness After Creation, чтобы создать тестовую обвязку, не открывая его. Это может быть полезно при создании нескольких тестовых обвязок последовательно.
Создание тестовой обвязки без компиляции модели может быть полезным, если вы прототипируете проект, который пока не может компилироваться. Когда вы создаете тестовую обвязку, не компилируя основную модель:
Параметры не копируются в рабочую область тестовых обвязок.
Основное строение модели не копируется в тестовую обвязку.
Тестовая обвязка не содержит подсистем преобразования.
Вам может потребоваться добавить в тестовую обвязку блоки, такие как блоки преобразования сигналов. Перестроить обвязку можно, когда вы готовы скомпилировать основную модель. Для получения дополнительной информации см. «Синхронизация изменений между тестовой обвязкой и моделью».
Тестовые обвязки для моделей Подсистемы создаются без компиляции модели.
Режим тестовой обвязки верификации определяет тип блока, сгенерированного в тестовую обвязку.
Normal
: Блок-схема Simulink.
Software-in-the-Loop (SIL)
: Компонент в тесте ссылается на сгенерированный код, работающий как цикл. Требуется Embedded Coder®.
Processor-in-the-Loop (PIL)
: Компонент в тестовых ссылках генерирует код для определенного набора команд процессора, работающий как процессор в цикле. Требуется Embedded Coder.
Тестовые обвязки модели подсистемы не поддерживают SIL или PIL верификации.
Примечание
Сохраните код SIL или PIL в тестовую обвязку синхронизированным с последними проектами компонента. Если вы выбираете режим SIL или верификацию PIL, не выбирая Rebuild harness on open, код блока SIL или PIL может не отражать недавних обновлений проекта основной модели. Чтобы перегенерировать код для блока SIL или PIL в тестовую обвязку, выберите Rebuild Harness > Update Harness Configuration Settings and Model Workspace.
Если сгенерированный код для блока SIL/PIL уже существует, выберите это свойство, чтобы использовать этот существующий код вместо регенерации кода. Эта опция доступна только для обвязок подсистем. Он не применяется к тестовым обвязкам модели Подсистемы.
Укажите папку, содержащую сгенерированный код для блока SIL/PIL. Эта опция доступна, только если вы выбрали Use generated code to create SIL/PIL block.
Можно настроить тестовую обвязку с помощью обратного коллбэка после создания. Обратный коллбэк после создания является функцией, которая запускается после создания обвязки. Для примера ваш коллбэк может настроить логгирование сигнала, добавить пользовательские блоки или изменить обвязку времен симуляции. Для получения дополнительной информации см. раздел «Настройка тестовых обвязок». Эта опция не применяется к тестовым обвязкам модели подсистемы.
Когда вы выбираете это свойство, тестовая обвязка перестраивается каждый раз, когда вы открываете его. Если вы задали использование существующего сгенерированного кода для подсистемы SIL/PIL с помощью sltest.harness.create
или sltest.harness.set
перестроение обвязки использует этот код вместо его регенерации. Для получения дополнительной информации о процессе перестроения смотрите Синхронизация изменений между тестовой обвязкой и моделью. Эта опция не применяется к тестовым обвязкам модели подсистемы.
Когда вы выбираете это свойство, параметры конфигурации и данные рабочего пространства модели обновляются при перестройке обвязки. Для получения дополнительной информации о процессе перестроения смотрите Синхронизация изменений между тестовой обвязкой и моделью. Эта опция не применяется к тестовым обвязкам модели подсистемы.
Можно настроить тестовую обвязку с помощью обратного коллбэка после перестройки. Обратный коллбэк после восстановления является функцией, которая запускается после перестройки обвязки. Для примера ваш коллбэк может настроить логгирование сигнала, добавить пользовательские блоки или изменить обвязку времен симуляции. Для получения дополнительной информации см. раздел «Настройка тестовых обвязок». Эта опция не применяется к тестовым обвязкам модели подсистемы.
Режим синхронизации управляет, когда изменения в тестируемом компоненте синхронизируются с основной моделью, и когда изменения в владельце обвязки синхронизируются в тестовую обвязку.
Synchronize on harness open - При открытии тестовой обвязки компоненты тестовой обвязки, конфигурация модели и параметры синхронизируются из модели в тестовую обвязку. Эта опция доступна для:
Блоки
Подсистемы, включая диаграммы и Блоки MATLAB function Stateflow
Для Subsystem Reference блоков синхронизируются только параметры блоков, а не содержимое блоков.
Моделируйте опорные блоки
Блоки s-function
Опция Synchronize on harness open недоступна для:
SIL/PIL обвязок
Модели подсистемы обвязок
Synchronize on harness open and close - При открытии тестовой обвязки компоненты тестовой обвязки, конфигурация модели и параметры синхронизируются из модели в тестовую обвязку. Когда тестовая обвязка закроется, те же элементы синхронизируются из обвязки в модель. Эта опция доступна для:
Блоки
Подсистемы, включая диаграммы и Блоки MATLAB function Stateflow
Для Subsystem Reference блоков синхронизируются только параметры блоков, а не содержимое блоков.
Моделируйте опорные блоки
Блоки s-function
Модели подсистемы обвязок
Опция Synchronize on harness open and close недоступна для:
Блоки
SIL/PIL обвязок
Модели подсистемы обвязок
Synchronize only during push and rebuild - Синхронизируется при нажатии кнопки Push Changes или Rebuild Harness. Push Changes синхронизирует изменения от тестовой обвязки к модели. Rebuild Harness синхронизирует изменения из модели в тестовой обвязке. Эта опция доступна для:
Подсистемы, включая диаграммы и Блоки MATLAB function Stateflow
Моделируйте опорные блоки
Блоки s-function
Модели подсистемы, которые всегда синхронизируются только при нажатии и перестроении.
Опция Synchronize only during push and rebuild недоступна для:
Блоки
SIL/PIL обвязок
Компоненты в библиотеках
Synchronize only during rebuild - Синхронизируется только при нажатии кнопки Rebuild Harness. Rebuild Harness синхронизирует изменения из модели в тестовой обвязке. Эта опция доступна для:
Блоки
Подсистемы, включая диаграммы и Блоки MATLAB function Stateflow
Моделируйте опорные блоки
Блоки s-function
Компоненты режима верификации SIL/PIL
Опция Synchronize only during rebuild недоступна для:
Компоненты в библиотеках
Можно изменить некоторые настройки свойств по умолчанию, чтобы использовать пользовательские значения по умолчанию при создании тестовой обвязки. Все заданные индивидуальные настройки отображаются в диалоговом окне «Создание тестовой обвязки». Любые значения свойств, явно заданные в диалоговом окне или с помощью API, переопределяют значения, заданные файлом индивидуальной настройки.
Создайте sl_customization.m
Файл и задайте новые настройки по умолчанию.
Свойства, которые можно задать с помощью sl_customization
файлы:
PostCreateCallback
- задает скрипт коллбэка, который выполняется после создания тестовой обвязки. Свойство является скалярной строкой или символьным массивом. Его значение передается в структуру обвязки по умолчанию, а скрипт коллбэка добавляется в диалоговое окно «Создать тестовую обвязку». Можно использовать диалоговое окно, чтобы добавить другой коллбэк, которое будет выполняться сложением к коллбэку, указанному в sl_customization
файл.
Другой способ задать коллбэк - это использовать sltest.harness.create
и пары "имя-значение", таких как sltest.harness.create ('PostCreateCallback',<callbackScript>)
.
SaveExternally
- Определяет, сохранена ли тестовая обвязка как внутренний или внешний.
LogOutputs
- Определяет, нужно ли регистрировать все выходы для тестируемого компонента тестовой обвязки. Установка параметра также появится в флажке Log output signals диалогового окна Создать тестовый кабель (Create Тестовая Обвязка).
Индивидуальные настройки заданы и хранятся в скалярной структуре в sl_customization.m
файл. A выборки sl_customization.m
файл, который устанавливает PostCreateCallback
использовать addHarnessAnnotation
функция, и обвязка, которая будет сохранена внутренне и журнал выходов является:
function sl_customization(cm) % Create the struct with the harness options myStruct.PostCreateCallback = "addHarnessAnnotation"; myStruct.SaveExternally = false; myStruct.LogOutputs = true; % Invoke harness customization cObj = cm.SimulinkTestCustomizer; cObj.setHarnessCreateDefaults(myStruct); end
Сохраните файл.
Добавьте файл к пути MATLAB.
Триггер с использованием новых индивидуальных настроек путем перезагрузки Simulink или при помощи sl_refresh_customizations
. Для получения дополнительной информации см. раздел Регистрация индивидуальных настроек.