主要内容

使用顺序查看器可视化消息、事件和实体

从Simulink中查看块之间的消息和事件的交换®消息和事件库,状态流®图表在Simulink模型中和SimEvents®block,你可以:

顺序查看器允许您可视化消息转换事件和消息携带的数据。在顺序查看器,您可以查看与状态流程图执行和状态流程图之间的消息交换相关的事件数据。Sequence Viewer窗口显示了在模型执行期间在不同时间创建、发送、转发、接收和销毁消息的过程。序列查看器窗口还显示状态活动、转换以及对statflow图形函数、Simulink函数和MATLAB的函数调用®功能。

顺序查看器,在模拟SimEvents模型时,还可以可视化实体在块之间的移动。所有可以存储实体的SimEvents块在序列查看器窗口中显示为生命线。在这些块之间移动的实体显示为带箭头的线。您可以查看对Simulink的调用函数块和MATLAB函数块。

您可以添加顺序查看器块到模型或任何子系统的顶层。如果你放置一个顺序查看器在一个没有消息、事件或状态活动的子系统中,序列查看器窗口会通知您没有什么要显示的。

例如,打开Stateflow示例sf_msg_traffic_light

openExample (“stateflow / ModelingADistributedTrafficControlSystemUsingMessageExample”

Simulink模型包含三个子系统,分别是交通灯1、交通灯2和GUI。

该模型有三个Simulink子系统:交通灯1、交通灯2和GUI。在模拟过程中,这些子系统中的状态流程图通过发送消息交换数据。当消息通过系统时,您可以在Sequence Viewer窗口中查看它们。序列查看器窗口将模型中的每个块表示为垂直生命线,模拟时间向下推进。

序列查看器显示子系统交通灯1、交通灯2和GUI的生命线。

序列查看器窗口的组件

导航工具栏

在Sequence Viewer窗口的顶部,一个导航工具栏显示模型层次结构路径。使用工具栏按钮,您可以:

  • 显示或隐藏属性检查器

  • 选择自动或手动布局。

  • 显示或隐藏非活动的生命线。

  • 保存顺序查看器设置。

  • 恢复顺序查看器设置。

  • 配置顺序查看器参数。

  • 访问顺序查看器文档。

属性检查器

属性检查器,你可以选择显示或隐藏滤镜:

  • 事件

  • 消息

  • 函数调用

  • 状态变化和过渡

标题窗格

Sequence Viewer工具栏下面的标题窗格显示了包含模型中相应块的名称的生命线标题。

  • 灰色矩形报头对应子系统。

  • 白色矩形报头对应于被屏蔽的子系统。

  • 带有圆角的黄色标题对应于状态流程图。

要在模型中打开一个块,单击相应生命线头中的名称。要显示或隐藏生命线,双击相应的标头。若要调整生命线标头的大小,请单击并拖动其右侧。要适合序列查看器窗口中的所有生命线标题,请按空格键。

序列查看器的标题窗格。

信息面板

标题窗格下面是消息窗格。消息窗格将生命线之间的消息、事件和函数调用显示为从发送方到接收方的箭头。控件中显示发送方、接收方和有效负载信息属性检查器,单击消息、事件或函数调用对应的箭头。

序列查看器显示消息的发送方、接收方和有效负载信息。

浏览生命线层次结构

在Sequence Viewer窗口中,生命线的层次结构对应于模型层次结构。当您暂停或停止模型时,您可以展开或收缩生命线,并更改查看器的焦点根。

扩大父母生命线

在消息窗格中,一个粗大的灰色生命线表示您可以展开生命线以查看它的子生命线。要显示生命线的子节点,请单击展开器图标在标题下面或双击父生命线。

对象的生命线扩展1号红绿灯块显示了两个对应于状态流程图的新生命线Ped按钮传感器而且控制器

序列查看器显示子系统红绿灯1中状态流程图的生命线。

展开屏蔽子系统生命线

序列查看器窗口将被屏蔽的子系统显示为白色块。要显示屏蔽子系统的子系统,请指向生命线头部的左下角并单击箭头。

例如,GUI子系统包含四个屏蔽子系统:交通灯1、交通灯2、Ped灯1和Ped灯2。

序列查看器显示子系统GUI中被屏蔽的子系统。

您可以通过单击父生命线标头中的箭头来显示这些被屏蔽子系统中的子生命线。

箭头图标显示被屏蔽子系统的子子系统的生命线。一个工具提示说:“查看蒙版内部。”

改变焦点的根源

要使生命线成为查看器的焦点根,请指向生命线头部的左下角并单击箭头。或者,您可以使用Sequence Viewer窗口顶部的导航工具栏在生命线层次结构中上下移动当前根。要将当前根目录上移一级,请按Esc关键。

箭头图标,使生命线的根焦点为观众。一个工具提示说:“将此设置为根。”

Sequence Viewer窗口显示当前根生命线路径并显示其子生命线。任何外部事件和消息都显示为通过图槽中的垂直槽进入或退出。当您指向图槽中的插槽时,工具提示将显示发送或接收块的名称。

序列查看器显示外部事件和消息通过图表右侧的沟槽进入。

查看状态活动和转换

要在Sequence Viewer窗口中查看状态活动和转换,请展开状态层次结构,直到到达最低的子状态。垂直的黄色条显示哪个状态是活动的。蓝色水平箭头表示状态之间的转换。

在本例中,您可以看到从的转换PrepareToStop紧接着,一秒钟后,过渡到停止

序列查看器显示状态之间的转换。

控件中的开始状态、结束状态和完整转换标签属性检查器,单击转换对应的箭头。

若要显示有关状态处于活动状态时发生的交互的信息,请单击与状态对应的黄色条。在属性检查器,使用搜索了而且搜索下用于在状态处于活动状态时通过发生的转换、消息、事件和函数调用的按钮。

查看函数调用

顺序查看器显示函数调用和响应。该表列出了对每种类型函数调用的支持类型。

函数调用类型 支持

调用仿真软件的功能

完全支持。

调用Stateflow图形或Stateflow MATLAB函数

  • 范围-选择导出图表级别函数图表选项。使用chartNamefunctionName点符号。

  • 全局-选择将导出的函数视为全局可见的图表选项。你不需要点表示法。

调用函数调用子系统 完全支持和显示。
打来的电话MATLAB函数 支持显示函数调用事件,限制调用跨越模型引用边界。

序列查看器窗口将函数调用显示为带有格式标记的实箭头function_nameargument_list.函数调用的回复显示为带有格式标记的虚线箭头argument_list] =function_name

例如,在模型中slexPrinterExample,子系统调用Simulink函数块addPrinterJob.函数块返回输出值

序列查看器显示对Simulink函数的调用和函数的返回值。

打开本例,输入:

openExample (“stateflow / ShareFcnsAcrossSLandSFExample”

序列查看器窗口中的模拟时间

序列查看器窗口按时间顺序垂直显示事件。Simulink中的多个事件可以同时发生。相反,在模拟过程中可能会有很长一段时间没有事件。因此,序列查看器窗口通过使用线性和非线性显示的组合来显示时间。时间标尺显示线性模拟时间。时间网格以非线性方式显示时间。每个时间网格行(由两条蓝线包围)包含在同一模拟时间发生的事件。时间条提供该网格行中事件的时间。

时序查看器图表,显示时间网格、时间条、时间标尺和时间滑块。

若要显示特定模拟时间范围内的事件,请使用滚轮或在时间标尺上上下拖动时间滑块。要导航到模拟的开始或结束,请单击参加第一场活动去最后一个活动按钮。要在时间标尺上查看整个模拟持续时间,请单击适合查看按钮

当使用变步长求解器时,您可以调整时间尺的精度。在模型资源管理器中主要选项卡,调整序列查看器块参数窗格中的变步长时间精度字段。

在序列查看器窗口中重新显示信息

顺序查看器保存模拟运行之间生命线的顺序和状态。当您关闭并重新打开顺序查看器窗口时,它保留最后一个打开的生命线状态。要保存特定的查看器状态,请单击保存设置按钮在工具栏中。保存模型然后跨会话保存状态信息。要加载已保存的设置,请单击恢复设置按钮

您可以修改变步长时间精度而且历史参数仅在模拟之间。您可以在模拟之前或在模拟暂停时访问工具栏中的按钮。在模拟过程中,工具栏中的按钮将被禁用。

另请参阅

工具

相关的话题

Baidu
map