Чтобы увидеть обмен сообщениями и событиями между блоками из Simulink® Библиотека сообщений и событий, Stateflow® графики в моделях Simulink и SimEvents® блоки, можно:
Используйте инструмент Sequence Viewer на панели инструментов Simulink.
Добавьте блок Sequence Viewer к модели Simulink.
Этот Sequence Viewer позволяет вам визуализировать события перехода сообщения и данные, которые несут сообщения. В Sequence Viewer можно просмотреть данные о событиях, связанные с выполнением диаграммы Stateflow и обменом сообщениями между диаграммами Stateflow. В окне Sequence Viewer отображаются сообщения, которые создаются, отправляются, пересылаются, получаются и уничтожаются в разное время во время выполнения модели. Окно Sequence Viewer также отображает активность состояний, переходы и вызовы функций в графические функции Stateflow, функции Simulink и MATLAB® функций.
С помощью Sequence Viewer можно также визуализировать перемещение сущностей между блоками при симуляции моделей SimEvents. Все блоки SimEvents, которые могут хранить сущности, отображаются как спасательные линии в окне Sequence Viewer. Сущности, перемещающиеся между этими блоками, появляются как линии со стрелами. Можно просматривать вызовы блоков Function Simulink и блоков Function MATLAB.
Можно добавить Sequence Viewer блок на верхний уровень модели или любой подсистемы. Если вы помещаете блок Sequence Viewer в подсистему, которая не имеет сообщений, событий или действий в состоянии, окно Sequence Viewer сообщает вам, что отображать нечего.
Например, предположим, что вы моделируете пример Stateflow sf_msg_traffic_light
.
Эта модель имеет три подсистемы Simulink: Traffic Light 1, Traffic Light 2 и GUI. Диаграммы Stateflow в этих подсистемах обмениваются данными путем отправки сообщений. Когда сообщения проходят через систему, их можно просмотреть в окне Sequence Viewer. Окно Sequence Viewer представляет каждый блок в модели как вертикальный спасательный круг с временем симуляции вниз.
В верхней части окна Sequence Viewer на панели инструментов навигации отображается путь иерархии модели. Используя кнопки панели инструментов, можно:
Показать или скрыть Property Inspector.
Выберите автоматическое или ручное размещение.
Показать или скрыть неактивные спасательные линии.
Сохраните Sequence Viewer настройки.
Восстановите Sequence Viewer настройки.
Сконфигурируйте Sequence Viewer параметры.
Доступ к Sequence Viewer документации.
В Property Inspector можно выбрать фильтры, чтобы показать или скрыть:
События
Сообщения
Вызовы функций
Изменения и переходы состояния
На панели заголовков под панелью инструментов Sequence Viewer показаны заголовки жизненных линий, содержащие имена соответствующих блоков в модели.
Серые прямоугольные заголовки соответствуют подсистемам.
Белые прямоугольные заголовки соответствуют маскированным подсистемам.
Желтые заголовки с закругленными углами соответствуют диаграммам Stateflow.
Чтобы открыть блок в модели, щелкните имя в соответствующем заголовке спасательной линии. Чтобы показать или скрыть спасательный круг, дважды щелкните соответствующий заголовок. Чтобы изменить размер заголовка спасательной линии, щелкните и перетащите его правую сторону. Для размещения всех заголовков спасательной линии в окне Sequence Viewer нажмите пробел.
Под панелью заголовка находится панель сообщений. На панели сообщений отображаются сообщения, события и вызовы функций между спасательными линиями в виде стрел от отправителя к приемнику. Чтобы отобразить информацию о отправителе, приемнике и полезной нагрузке в Property Inspector, щелкните стрелу, соответствующую вызову сообщения, события или функции.
В окне Sequence Viewer иерархия спасательных линий соответствует иерархии модели. Когда вы останавливаете или останавливаете модель, можно расширять или сокращать жизненные линии и изменять корень особого внимания для средства просмотра.
На панели сообщений толстый, серый спасательный круг указывает, что можно расширить спасательный круг, чтобы увидеть его дочерние объекты. Чтобы отобразить дочерние элементы спасательной линии, щелкните значок расширения под заголовком или дважды щелкните родительскую спасательную линию.
Например, расширение спасательной линии для блока Traffic Light 1 открывает два новых спасательных линии, соответствующих Ped Button Sensor и Controller диаграмм Stateflow.
В окне Sequence Viewer маскированные подсистемы отображаются как белые блоки. Чтобы отобразить дочерние элементы маскированной подсистемы, наведите указатель на нижний левый угол заголовка спасательной линии и щелкните стреле.
Например, подсистема GUI содержит четыре маскированные подсистемы: Traffic Lamp 1,Traffic Lamp 2, Ped Lamp 1 и Ped Lamp 2.
Дочерние спасательные линии можно отобразить в этих маскированных подсистемах, щелкнув стреле в родительском заголовке спасательной линии.
Чтобы сделать спасательную линию корнем особого внимания для средства просмотра, наведите на нижний левый угол заголовка спасательной линии и щелкните стреле. Также можно использовать панель инструментов навигации в верхней части окна Sequence Viewer, чтобы переместить текущий корень вверх и вниз по иерархии спасательных линий. Чтобы переместить текущий корень на один уровень вверх, нажмите клавишу Esc.
В окне Sequence Viewer отображается текущий корневой путь спасательной линии и отображаются дочерние жизненные линии. Любые внешние события и сообщения отображаются как входящие или выходящие через вертикальные пазы в желобе схемы. Когда вы указываете на паз в желобе схемы, всплывающая подсказка отображает имя отправляющего или получающего блока.
Чтобы увидеть активность состояния и переходы в окне Sequence Viewer, разверните иерархию состояния до достижения самого низкого дочернего состояния. Вертикальные желтые полосы показывают, какое состояние активно. Синие горизонтальные стрелы обозначают переходы между состояниями.
В этом примере можно увидеть переход от Go
на PrepareToStop
затем, через 1 секунду, переход на Stop
.
Чтобы отобразить начальное состояние, конечное состояние и полную метку перехода в Property Inspector, щелкните стрела, соответствующее переходу.
Чтобы отобразить информацию о взаимодействиях, которые происходят во время активного состояния, щелкните желтую полосу, соответствующую состоянию. В Property Inspector используйте кнопки Search Up и Search Down, чтобы перемещаться через переходы, сообщения, события и вызовы функций, которые происходят во время активного состояния.
На Sequence Viewer отображаются вызовы функций и ответы. В этой таблице перечислены типы поддержки для каждого типа вызова функции.
Тип вызова функции | Поддержка |
---|---|
Вызовы блоков Simulink Function | Полностью поддерживается |
Вызовы графических функций Stateflow или Stateflow MATLAB |
|
Звонки в подсистемы вызова функций | Не отображается в окне Sequence Viewer |
В окне Sequence Viewer вызовы функций отображаются как твердые стрелы, помеченные форматом function_name(argument_list)
. Ответы на вызовы функций отображаются как штриховые стрелы, обозначенные форматом [argument_list]=function_name
.
Для примера в модели slexPrinterExample
подсистема вызывает блок Simulink Function addPrinterJob
. Функциональный блок отвечает с выходом значением false
.
В окне Sequence Viewer отображаются события вертикально, упорядоченные по времени. Несколько событий в Simulink могут происходить одновременно. И наоборот, могут быть большие периоды времени во время симуляции без событий. Как следствие, окно Sequence Viewer показывает время с помощью комбинации линейных и нелинейных отображений. Линейка времени показывает линейные времена симуляции. Временная сетка показывает время нелинейным способом. Каждая временная строка сетки, окаймленная двумя синими линиями, содержит события, которые происходят в одно и то же время симуляции. Временная полоса задает время событий в этой строке сетки.
Чтобы показать события в определенной временной области значений симуляции, используйте колесо прокрутки или перетащите ползунок времени вверх и вниз по линейке времени. Чтобы перейти к началу или концу симуляции, нажмите кнопки Go to first event или Go to last event. Чтобы увидеть всю длительность симуляции на временной линейке, нажмите кнопку Fit to view.
При использовании решателя переменного шага можно настроить точность линейки времени. В Model Explorer на вкладке Main панели «Параметры блоков Sequence Viewer» измените значение поля Time Precision for Variable Step.
Этот Sequence Viewer сохраняет порядок и состояния спасательных линий между запусками симуляции. Когда вы закрываете и снова открываете Sequence Viewer окно, это сохраняет последнее открытое состояние спасательной линии. Чтобы сохранить конкретное состояние средства просмотра, нажмите кнопку Save Settings на панели инструментов. Сохранение модели затем сохраняет информацию о состоянии между сеансами. Чтобы загрузить сохраненные настройки, нажмите кнопку Restore Settings.
Можно изменять параметры Time Precision for Variable Step и History только между симуляциями. Вы можете получить доступ к кнопкам на панели инструментов перед моделированием или когда симуляция приостановлена. Во время симуляции кнопки на панели инструментов отключаются.
Sequence Viewer (Stateflow)