Тестовая обвязка состоит из одного или нескольких исходных блоков, которые управляют тестируемым компонентом, который управляет одним или несколькими блоками-приемниками. Тестовая обвязка конфигурирует атрибуты сигнала, вызовы функций, хранилища данных и семантику выполнения. Когда это возможно, тестовая обвязка совпадает с атрибутами сигнала в источниках, приемниках и интерфейсе компонента. Дополнительные сведения о выборе источников и раковин см. в разделе «Источники и раковины».
Подсистемы преобразования сигналов адаптируют интерфейс сигнала исходного и приемного блоков к графическому интерфейсу компонента. Графический интерфейс компонента включает входные сигналы, сигналы выхода и действие, триггер или входы включения. Тестовая обвязка компилирует основную модель, чтобы определить атрибуты сигнала:
Тип данных
Размерности
Сложность
Атрибуты сигнала адаптируются к источникам во время конструкции обвязки одним из двух способов:
Исходные блоки, которые могут генерировать сигналы с скомпилированными атрибутами, сконфигурированы таким образом.
Если исходный блок не может генерировать сигналы с скомпилированными атрибутами, блоки атрибутов сигналов в подсистеме преобразования сигналов адаптируют выходы исходных блоков. Блоки атрибутов сигнала включают Reshape, Rate Transition и Data Type Conversion блоки.
По умолчанию подсистемы преобразования сигналов блокируются при редактировании.
Если у тестируемого компонента есть входы вызова функции, блок Test Sequence, MATLAB Function блок или Stateflow® источник графика генерирует входы вызова функции для компонента, даже если вы выбираете другой источник во время создания обвязки. Чтобы переопределить это поведение и соединить входы вызова функции с выбранным типом источника, создайте тестовую обвязку с sltest.harness.create
function, и задать 'DriveFcnCallWithTestSequence'
на false
. Для примера:
sltest.harness.create('Model/FcnCallSubsystem','Source','From File',... 'DriveFcnCallWithTestSequence',false)
Выходы вызова функции тестируемого компонента соединяются с блоками Terminator.
Компоненты, которые принимают или выводят физические сигналы, поддерживаются во время конструкции обвязки, но источники и раковины не генерируются. Можно добавить блоки физического моделирования к тестовой обвязке после конструкции.
Тестовые обвязки строения для входов и выходов шины зависят от способности соединения шины исходного или приемного блоков:
Источники и приемники, которые могут принять сигнал шины, непосредственно соединяются с компонентом без модификации.
Если источник не может вывести сигнал шины, сигналы шины автоматически создаются из отдельных элементов шины в подсистеме преобразования сигнала.
Если приемник не может принять сигнал шины, элементы сигнала шины расширяются из сигнала шины в подсистеме преобразования сигнала.
Если тестируемый компонент использует строковые входные параметры, и источник тестовых кабелей не поддерживает строковые данные, строковые входные параметры соединяются с блоками Ground.
Строковые входные параметры
Выбор источника обвязки | Исходный блок для строковых входных параметров |
---|---|
Inport | Inport |
Редактор сигналов | Ground |
Из рабочей области | Ground |
Из файла | Ground |
Тестовая последовательность | Ground |
График | Ground |
Постоянный |
String Constant (отдельный строковый вход) Ground (шина, содержащая строку) |
Земля | Земля |
Если тестируемый компонент использует строку выходов данных, и ваша тестовая обвязка приемник не поддерживает строки данные, строки выходов соединяются с блоками Terminator.
Строковые выходы
Выбор приемника обвязок | Блок приемника для строковых выходов |
---|---|
Вспомогательный порт | Outport |
Возможности | Terminator |
К рабочей области | Terminator |
К файлу | Terminator |
Терминатор | Terminator |
В дополнение к графическому интерфейсу компонента Simulink поддерживает несколько неграфических соединений. Тестовая обвязка также поддерживает неграфические соединения.
Goto - From блочные пары, которые пересекают контур компонента, считаются входами или выходами компонента.
Блок From без соответствующего блока Goto в компоненте рассматривается как входной сигнал компонента. Тестовая обвязка включает исходный блок с соответствующим блоком Goto.
Блок Goto без соответствующего блока From в компоненте рассматривается как выходной сигнал компонента. Тестовая обвязка включает блок приемника с соответствующим блоком From.
Data Store Read и Data Store Write блоки требуют полного определения хранилища данных в тестовую обвязку.
Если в Data Store Read или Data Store Write блоке отсутствует соответствующий Data Store Memory блок в компоненте, тестовая обвязка добавляет блок Data Store Memory.
Для компонента, содержащего только Data Store Read блоков, тестовая обвязка добавляет исходный блок, управляющий блоком Data Store Write.
Для компонента, содержащего только Data Store Write блоков, тестовая обвязка добавляет Data Store Read блок, управляющий блоком приемника.
Если использование памяти глобальных данных чтения или записи не может быть определено, блоки Data Store Read и Data Store Write не включены в тестовую обвязку.
Если компонент вызывает функцию Simulink, которая не определена в компоненте, тестовая обвязка добавляет заглушку Simulink Function блок, соответствующий сигнатуре вызова функции.
Тестовые обвязки содержат планировщик вызова функции для компонентов, которые используют стиль моделирования экспорта функций. Планировщик является блоком Test Sequence, блоком MATLAB Function или диаграммой Stateflow, которая содержит вызовы прототипа к функциям в вашей модели.
Блок Test Sequence планировщика включает в себя шаг тестирования, содержащий:
Каталог глобальных блоков Simulink Function в компоненте.
Список триггеров вызова функции, доступных в интерфейсе компонента.
Конструкция обвязки поддерживает периодические триггеры вызова функции с соответствующим десятикратным уменьшением события вызова функции в блоке Test Sequence, блоке MATLAB Function или диаграмме Stateflow.
Тестовые обвязки включают Initialize
, Terminate
, и Reset
шаги для моделей, которые содержат Initialize
, Terminate
, и Reset
подсистемы событий. Можно включать Initialize
, Terminate
, и Reset
шаги для других моделей экспортов функций, использующих 'ScheduleInitTermReset'
свойство sltest.harness.create
.
Поведение выполнения компонента зависит от таких факторов, как вычисленные шаги расчета, настройки решателя, строение модели и настройки параметра. Поведение выполнения также зависит от событий во время выполнения, таких как триггеры вызова функции и асинхронные события. Чтобы обработать эту семантику выполнения, тестовой обвязки конструкцию:
Копирует настройки параметров конфигурации из основной модели в тестовую обвязку.
Копирует требуемые определения параметров из основного рабочего пространства модели в тестовую обвязку рабочего пространства модели.
Копирует настройки словаря данных из основной модели в тестовую обвязку.
Чтит ограниченное подмножество настроек шага расчета, используя явные спецификации исходных блоков и блоки Rate Transition.
Другие факторы, такие как дополнительные блоки в эвристике обвязки и решателя, могут привести к тому, что выполнение тестовой обвязки будет отличаться от основной модели. Графический и скомпилированный интерфейс компонента имеет приоритет над другой семантикой выполнения.
Simulink® поддерживает массив шагов расчета, включая типы, которые получают во время компиляции модели. Конструкция тестовой обвязки поддерживает периодическое дискретное, непрерывное и фиксированные шаги расчета с этими факторами:
Исходные блоки, которые поддерживают желаемую скорость, сконфигурированы таким образом, и подсистема преобразования сигналов содержит блок Signal Specification с спецификацией скорости.
Тестовая обвязка не конфигурирует исходные блоки, которые не могут поддерживать требуемую скорость.
Если требуемая скорость является периодической дискретной или фиксированной в миноре-шаге, тестовая кабель содержит блок Rate Transition в подсистеме преобразования сигналов.
Если требуемая скорость непрерывна, семантика выполнения определяется решателем. Подсистема преобразования сигналов не содержит блок Rate Transition.
Другие спецификации шага расчета игнорируются во время конструкции тестовой обвязки. В этих случаях настройки решателя определяют поведение выполнения.