Анимируйте и изучите отправку и получение сообщений

В этом примере показано, как отправить, получите и визуализируйте сообщения. Пример также показывает, как использовать Инспектора Данных моделирования, Анимацию и Инспектора Устройства хранения данных, чтобы изучить, как сообщения текут в вашей модели.

Описание модели

SimpleMessagesModel содержит эти блоки:

  • Sine wave — Источник сигнала. Параметр Шага расчета блока устанавливается на 0.1.

  • Отправьте — Преобразует сигналы данных, и отправьте сообщения. Заданное значение для параметра Шага расчета блока Sine Wave определяет уровень, на котором блок Send отправляет сообщения. Поэтому блок Send отправляет одному сообщению каждый 0.1 время симуляции.

  • Очередь — Хранит сообщения. Наблюдайте строку сообщения между блоком Send и блоком Queue. Способностью по умолчанию очереди является 16, что означает, что блок Queue может сохранить в большей части 16 сообщения. Сообщением по умолчанию, сортирующим поведение, является LIFO, что означает, что входящие сообщения сортируются на основе в обратном порядке политики. По умолчанию Перезапись самый старый элемент, если очередь является полным флажком, выбрана. Когда очередь полна, входящее сообщение перезаписывает самое старое сообщение в очереди. Для получения дополнительной информации об использовании блока Queue смотрите Использование Блок Очереди, чтобы Управлять сообщениями.

  • Получите — Получает сообщения и преобразует их в данные сигнала. В блоке параметр Шага расчета устанавливается на 0.1. Блок Receive получает сообщение каждые 0,1 времени симуляции.

  • Осциллограф Визуализирует сообщения, полученные блоком Receive.

Симулируйте модель и рассмотрите результаты

В модели регистрация данных включена для сигнальных линий и строк сообщения среди Sine wave, Отправьте, Поставьте в очередь, Получите, и блоки Осциллографа.

Симулируйте SimpleMessagesModel и заметьте от Инспектора Данных моделирования что:

  • Блок Sine Wave генерирует (зеленый) синусоидальный сигнал.

  • Каждый 0.1 время симуляции, блок Send преобразует значение сигнала к сообщению и отправляет его в блок Queue. Инспектор Данных моделирования отображает сообщения как диаграммы стебель-листья. Наблюдайте Инспектора Данных моделирования, отображающегося отправленный (фиолетовые) сообщения.

  • Блок Queue отправляет сообщения в (синий) блок Receive.

  • Получите блок выход, восстановленный синусоидальный сигнал (оранжевый).

Используйте инспектора анимации и устройства хранения данных

Можно наблюдать, что поток сообщений между компонентами модели при помощи Анимации анимирует модель. Можно задать скорость анимации как Slow, Medium, или Fast. Четвертая опция None отключает анимацию модели.

В окне модели щелкают правой кнопкой и выбирают Animation Speed и устанавливают его скорость на Slow. Симулируйте модель снова. Наблюдайте подсвеченные строки сообщения, представляющие поток сообщений между блоками.

Анимация подсвечивает строки сообщения и вызовы функции Simulink на основе события, а не время передало. В одном времени симуляции могут быть подсвечены больше чем один поток сообщений или событие вызова функции Simulink.

Приостановите анимацию. В Панели инструментов Simulink, во вкладке Debug, нажимают Pause. Заметьте, что последняя подсвеченная строка сообщения подсвечена в фиолетовом.

Инспектор Устройства хранения данных позволяет вам визуализировать детали хранивших сообщений в блоке Queue. Когда вы приостанавливаете симуляцию, Инспектор Устройства хранения данных, значок лупы появляется на блоке Queue. Чтобы открыть Инспектора Устройства хранения данных, кликните по лупе.

Инспектор Устройства хранения данных не показывает хранивших сообщений, потому что сообщения, прибывающие в блок Queue, одновременно получены блоком Receive в том же времени симуляции.

Чтобы создать сценарий с хранившими сообщениями, остановите симуляцию и измените параметр Шага расчета блока Receive к 0.5. Теперь блок Send отправляет одному сообщению каждый 0.1 время симуляции, но блок Receive получает, передает каждый 0.5 время симуляции. Это вызывает отставание сообщений, которые хранятся в блоке Queue.

Симулируйте модель снова с набором скорости анимации к Slow, и приостановите симуляцию, чтобы проверять состояние в Инспектора Устройства хранения данных. Сущность в Инспекторе Устройства хранения данных представляет сохраненные элементы в блоке Queue, в этом случае, сообщениях. Инспектор устройства хранения данных перечисляет сообщения, хранившие в блоке Queue с их Значением идентификатора и значением данных, которое несет каждое сообщение.

Отобразите полезную нагрузку сообщения как метки значения порта

Чтобы отобразить данные о сообщении как, значение порта помечает, щелкните правой кнопкой по строке сообщения, появляющейся из блока, и выберите Show Value Label of Selected Port.

В примере ниже, значения порта отображены для строки сообщения, соединяющей блок Send с блоком Queue.

Если сообщение несет данные как объект шины, можно также выбрать элементы, которые будут отображены как значения порта.

SimpleMessagesPortValueModel изменение SimpleMessagesModel куда вход с блоком Send прибывает из блока Bus Creator. В этом примере, объекте Data_message шины создается с двумя элементами, sinewave и constant.

Открыть эту модель, введите:

open_system('SimpleMessagesPortValueModel');

Щелкните правой кнопкой по строке сообщения, появляющейся из блока Send, нажмите Show Value Label of Selected Port, и выберите постоянный.

Только значения постоянного сигнала отображены как значения порта.

Если остановки передачи сообщения на строке сообщения, отображение значения порта продолжает отображать последнее значение полезной нагрузки сообщения.

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

| | | | |

Похожие темы