Блок Test Sequence использует MATLAB® в качестве языка действия. Можно перейти между тестовыми шагами путем оценки компонента под тестом. Можно использовать условную логику, темпоральных операторов и операторы события.
Рассмотрите простую тестовую последовательность, которая выводит синусоиду на трех частотах. Тестовые переходы последовательности между шагами:
От Initialize до Sine, когда Switch изменяется
От Sine до Sine8, когда Switch изменяет от значения 1
От Sine8 до Sine16, когда Switch изменяет на значение 13.344

Чтобы создать выражение, которое оценивает время симуляции, используйте темпоральных операторов. Переменные, используемые в условиях сигнала, должны быть входными параметрами, параметрами или константами в блоке Test Sequence.
| Оператор | Синтаксис | Описание | Пример |
|---|---|---|---|
et |
| Прошедшее время теста продвигается в | Прошедшее время тестовой последовательности продвигается в миллисекунды: et(msec) |
t |
| Прошедшее время симуляции в | Прошедшее время симуляции в микросекундах: t(usec) |
after |
| Возвращает | После 4 секунд: after(4,sec) |
before |
| Возвращает | Перед 4 секундами: before(4,sec) |
duration |
| Возвращает | Возвратите duration(Phi>1,msec) > 550 |
Синтаксис в таблице использует эти аргументы:
Чтобы создать выражения, которые оценивают события сигнала, используйте операторы перехода. Общие операторы перехода включают:
| Оператор | Синтаксис | Описание | Пример |
|---|---|---|---|
hasChanged | hasChanged(u) | Возвращает
| Переход, когда hasChanged(h) |
hasChangedFrom | hasChangedFrom(u,A) | Возвращает true, если
| Переход, когда hasChangedFrom(h,1) |
hasChangedTo | hasChangedTo(u,B) | Возвращает true, если изменения
| Переход, когда hasChangedTo(h,0) |
Сообщения несут данные между Тестовыми блоками Последовательности и другими блоками, такими как графики Stateflow®. Сообщения могут использоваться, чтобы смоделировать асинхронные события. Сообщение ставится в очередь, пока вы не оцениваете его, который удаляет его из очереди. Можно использовать сообщения и передать данные в тестовой последовательности. Сообщение остается допустимым, пока вы не передаете его, или концы временного шага. Для получения дополнительной информации см. сообщения (Stateflow) в документации Stateflow®.
Получите сообщения и доступ к данным о сообщении
Если вашему блоку Test Sequence вводили сообщение, можно использовать поставленные в очередь сообщения в тестовых действиях последовательности или переходах. Используйте команду receive прежде, чем получить доступ к данным о сообщении или передать сообщение.
Чтобы создать вход сообщения, наведите на Вход на боковой панели Символов, кликните по добавить значку сообщения и введите имя сообщения.

receive(M) определяет, присутствует ли сообщение во входной очереди M и удаляет сообщение из очереди. receive(M) возвращает true, если сообщение находится в очереди и false если нет. Если сообщение получено, можно получить доступ к данным о сообщении с помощью записи через точку, M.data, или передать сообщение. Сообщение допустимо, пока оно не передается или концы шага текущего времени.
Порядок удаления сообщения зависит от типа очереди. Установите тип очереди с помощью диалогового окна свойств сообщения. На боковой панели Символов кликните по значку редактирования рядом с входом сообщения и выберите тип Очереди.
Отправьте сообщения
Чтобы отправить сообщение, создайте сообщение вывод и используйте команду send. Чтобы создать сообщение вывод, наведите на Вывод на боковой панели Символов, кликните по добавить значку сообщения и введите имя сообщения.

Можно присвоить данные сообщению с помощью записи через точку M.data, где M является сообщением вывод блока Test Sequence. send(M) отправляет сообщение.
Передайте сообщения
Можно передать сообщение от очереди входного сигнала к выходному порту. Передавать сообщение:
Получите сообщение от входной очереди с помощью receive.
Передайте сообщение с помощью команды forward(M,M_out), где M является входной очередью сообщения, и M_out является сообщением вывод.
Сравните тестовые последовательности Используя данные и сообщения
Этот пример демонстрирует вводы и выводы сообщения, отправку и получение сообщения. Модель сравнивает две пары тестовых последовательностей. Каждая пара состоит из отправки и получения тестового блока последовательности. Первая пара отправляет и получает данные, и второе отправляет и получает сообщение.
Установите следующий путь и переменные имени модели.
filePath = fullfile(matlabroot,'examples','simulinktest'); model = 'sltest_testsequence_data_vs_message';
Откройте модель.
open_system(fullfile(filePath,model))

Протестируйте последовательности Используя данные
Блок DataSender присваивает значение выводу данных M.

Блок DataReceiver ожидает 3 секунды, затем переходы к шагу S2. Переходы шага S2 к шагу S3 с помощью условия, сравнивающего M с ожидаемым значением, и, делают то же самое для S3 к S4.

Протестируйте последовательности Используя сообщения
Блок MessageSender присваивает значение данным о сообщении сообщения вывод M_out, затем отправляет сообщение в блок MessageReceiver.

Блок MessageReceiver ожидает 3 секунды, затем переходы к шагу S2. Переход шага S2's оценивает очередь M с receive(M), удаляя сообщение из очереди. receive(M) возвращает true, поскольку сообщение присутствует. M.data == 3.5 сравнивает данные о сообщении с ожидаемым значением. Оператор верен, и переходы последовательности к шагу S3.

Когда условие перехода шага S3's оценивает, никакие сообщения не присутствуют в очереди. Поэтому S3 не переходит к S4.
Запустите тест и наблюдайте выходной сигнал, сравнивающий различные поведения тестовых пар последовательности.
open_system([model '/Scope'])
sim(model)

close_system(model,0) clear(model, filePath)
Протестируйте последовательность | Протестируйте синтаксис последовательности и оценки