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

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

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

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.

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

Используйте Sequence Viewer, чтобы визуализировать сообщения

Можно использовать инструмент Sequence Viewer или блок Sequence Viewer, чтобы визуализировать сообщения, события и вызовы функции Simulink. Sequence Viewer отображает события перехода сообщения и данные, которые несут сообщения. В окне Sequence Viewer можно просмотреть данные о событиях, связанные с выполнением диаграммы Stateflow и обменом сообщениями между диаграммами Stateflow.

Использовать инструмент Sequence Viewer:

  • Чтобы активировать события логгирования, в Панели инструментов Simulink, на вкладке Simulation, в разделе Prepare, нажимают Log Events.

  • Симулируйте свою модель. Чтобы открыть инструмент Sequence Viewer, на вкладке Simulation, в разделе Review Results, нажимают Sequence Viewer.

События Log и кнопки Sequence Viewer отображаются, когда ваша модель имеет блоки из библиотеки Simulink® Messages & Events, диаграммы Stateflow, Подсистемы вызова функций, Функции Simulink или блоков SimEvents®.

Окно Sequence Viewer показывает сообщения, когда они созданы, отправлены, переданы, получены и уничтожены в разное время во время выполнения модели. Окно Sequence Viewer также отображает действие состояния, переходы и вызовы функции к графическим функциям Stateflow, функциям Simulink и функциям MATLAB.

Можно также добавить блок Sequence Viewer в модель для визуализации переходов сообщения. Для получения дополнительной информации смотрите Использование Блок Очереди, чтобы Управлять сообщениями.

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

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

В панели инструментов, на вкладке Debug, определяют местоположение раздела Event Animation.

От раздела Event Animation, набор скорость анимации к 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, и выберите постоянный.

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

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

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

| | | | |

Похожие темы