Main Content

使用端口值标签查看信号值

端口值标签将信号值显示为标签,该标签漂浮在模块图中的信号线上,类似于工具提示或数据提示。在仿真之前和仿真期间,您可以在整个模型中添加和删除端口值标签。将端口值标签和其他可视化选项一起使用,可了解、分析和调试您的模型。

A port value label on the output signal of an Integrator block named x1 shows the current signal value 2. The port value label is a yellow text box that floats over the canvas.

端口值标签通过探测仿真中使用的数据缓冲区来访问信号值。在某些情况下,产生信号的输出端口与仿真中的数据缓冲区并不直接对应。在模型中添加和删除端口值标签不会以任何方式修改模型,即使是为了使信号值可用于显示也是如此。当您将端口值标签添加到信号时,如果在不修改模型的情况下,软件无法访问该信号的值,则标签显示的是文本而不是信号值,指示无法从模型中的该点访问该信号值。有关详细信息,请参阅了解端口值标签中显示的文本

您可以配置与端口值标签相关的设置,包括字体大小以及活动仿真期间值的更新频率。端口值标签和端口值标签设置不会保存为模型的一部分。

有关数据查看选项的详细信息,请参阅决定如何可视化仿真数据

添加和删除端口值标签

当模型没有在仿真中运行时,您可以一次性向一个信号中添加端口值标签,向所选的多个信号中添加端口值标签,或者向当前模块图中的所有信号中添加端口值标签。

  • 选择一个或多个信号。然后,在 Simulink® 工具条调试选项卡下工具部分的端口值按钮组中,点击“在所选信号上显示端口值标签”

  • 选择一个或多个信号。然后,在信号选项卡上,点击输出值标签

  • 右键点击所选的一个或多个信号。然后,在上下文菜单中,选择在所选信号上显示端口值标签

默认情况下,在仿真期间,点击某信号线会为其添加或删除端口值标签。

  • 如果端口值标签可见,则点击信号线会删除端口值标签。

  • 如果端口值标签不可见,则点击信号线会添加端口值标签。

您可以使用“值标签显示选项”对话框来控制此行为。要在仿真期间禁用用于添加和删除端口值标签的单击选项,请执行以下操作:

  1. 调试选项卡下工具部分的端口值按钮组中,点击“删除所有端口值标签”按钮箭头

  2. 选择选项

  3. 在“值标签显示选项”对话框的显示值部分中,清除仿真期间默认启用

将端口值标签添加到一条或多条信号线后,标签会显示在信号线上。如果您在仿真之前或在仿真中暂停时添加端口值标签,则该标签最初显示为 no data yet,因为自您添加端口值标签以来该模块尚未执行。

A port value label on the output of an Integrator block named x1 shows the message no data yet.

当您开始、继续或通过步进推进仿真时,如果操作导致生成信号值的模块执行,则端口值标签会更新以显示信号值。例如,点击步进后,前一图像中的端口值标签会更新以显示信号值。

The port value label on the output of the Integrator block named x1 shows the current signal value 2.

如果端口值标签显示另一条消息,如 inaccessible,则您的模型中的端口和信号可能不支持端口值标签。有关详细信息,请参阅了解端口值标签中显示的文本

在删除端口值标签时,软件不会保留已显示的值。如果您立即再次添加端口值标签,该值将显示 no data yet,直到生成信号的模块再次执行。

要删除模型中的特定端口值标签,请执行以下操作:

  1. 右键点击所选的一个或多个信号。

  2. 在上下文菜单中,清除在所选信号上显示端口值标签

要删除模型中的所有端口值标签,请在调试选项卡下工具部分的端口值按钮组中,点击“删除所有端口值标签”

您无法以编程方式添加或删除端口值标签。

以下示例说明如何使用端口值标签来分析和调试模型:

配置端口值标签设置

您可以使用“值标签显示选项”对话框来配置多个与端口值标签相关的选项,包括值显示的字体大小、显示值的近似更新速率以及数值的显示格式。

要打开“值标签显示选项”对话框,请在调试选项卡下工具部分的端口值按钮组中,点击“删除所有端口值标签”按钮箭头 。然后,选择选项

您配置的设置适用于模型中的所有端口值标签。端口值标签设置不会随模型一起保存。您无法以编程方式配置端口值标签设置。

大约刷新间隔用于设置指定软件更新每个端口值标签中显示的值的大约频率。通常,在仿真期间,信号值更新的速度比读取它们的速度要快。默认情况下,模型的大约刷新间隔是一秒。软件不是在每次源模块的输出方法执行时更新端口值标签,而是大约每秒更新一次该值。

配置总线的端口值标签

当您将端口值标签添加到总线或作为总线承载其有效负载的消息的信号线时,默认情况下,端口值标签显示总线的所有叶元素的名称和值。例如,假设有以下模型使用来自源模块的输出信号创建总线层次结构。

Five different source blocks create signals that Bus Creator blocks combine to create a bus hierarchy with three buses. The top bus named main_bus contains two nested buses named bus1 and bus2. A Bus Selector block connects the bus elements named Pulse and Chirp to a Scope block.

当您向总线 main_bus 添加端口值标签时,端口值标签显示 no data yet

The port value label shows the text no data yet.

当您开始、继续或通过步进推进仿真后,端口值标签会更新以显示总线中所有叶元素的名称和值。

The port value shows a flat list of bus element names and values.

您可以选择在端口值标签上显示哪些总线元素。

  1. 点击总线的端口值标签。

  2. 在出现的菜单中,选择要显示的元素。选择一条总线时会选中其所有元素。

The port value label bus element menu for the bus named main_bus has the Chirp signal in bus1 and all signals in bus2 selected.

在菜单外的任意位置点击以关闭该菜单。端口值标签仅显示以文本 no data yet 作为每个元素值的选定元素。更改要显示的所选总线元素会丢弃先前显示在端口值标签中的值。

The port value label on the bus named main_bus displays the text no data yet as the value for the Chirp, Clock, Pulse, and Sine signals

当您仿真模型时,端口值标签会更新以显示所选总线元素的值。

The port value label on the bus named main_bus displays the names and values of the Chirp, Clock, Pulse, and Sine signals.

在处理包含多个元素的总线层次结构时,请考虑使用以下选项:

  • 使用菜单顶部的文本框按名称搜索总线元素。

  • 要减少菜单中显示的项目,请选择仅显示所选内容

    只有所选的要显示在端口值标签上的元素才会显示在菜单中。要另选一个元素,请按名称搜索该元素。搜索结果显示在菜单中,您可以在其中选择它们。

  • 折叠显示总线层次结构的树中的节点。

了解端口值标签中显示的文本

端口值标签可能显示的是几条消息之一,而不是信号值。例如,某些类型的信号(如函数调用信号)上的端口值标签会显示一条指示信号类型的消息。在其他情况下,当信号值难以在可用空间中显示,或当信号值在模型中的该点不可访问时,端口值标签可能会显示一条消息。

下表总结了指示信号类型的端口值标签消息。

端口值标签消息信号类型
action

控制执行子系统(如 If 执行子系统)执行的动作信号

fcn-call

控制函数调用子系统的函数调用信号

ground

Ground 模块输出信号

not a data signal

不含有效数据的信号,例如注释掉的模块的输出信号

[m*n]

二维信号

端口值标签显示的是信号维度,而不是元素值。

下表总结了表明软件可访问信号值但无法显示该值的端口值标签消息。

端口值标签消息上下文
...

向量信号中的元素数超出在“值标签显示选项”对话框中配置的要显示的最大元素数。

click to add signals

总线上的端口值标签没有选择要显示的元素。要选择总线元素,请点击端口值标签。

下表总结了表明软件无法访问信号值的端口值标签消息。

消息上下文
no data yet

信号值不可用,因为自添加端口值标签以来源模块的输出方法尚未执行。

对于未启用普通模式可见性的模型引用实例中的端口值标签,也会出现此值。

在删除端口值标签时,软件不会保留已显示的值。如果您立即再次添加端口值标签,该值将显示此消息,直到生成信号的模块再次执行。

no message

没有足够的仿真数据可用。

尝试开始、继续或推进仿真。

inaccessible

模型的结构体使得软件无法访问输出端口值。

信号存储重用 (Simulink Coder)模型配置参数处于选中状态时,端口值标签会为在生成代码中共享内存的信号显示此消息。

not used

软件无法访问输出端口值,因为该输出端口值未在仿真中使用。

removed软件无法访问输出端口值,因为源模块已通过模块简化删除。有关详细信息,请参阅模块简化
optimized

优化使得软件无法访问信号值。

端口值标签为满足以下条件的模块的输出信号显示此消息:

  • 已从加速模式仿真的仿真目标中优化掉

  • 由于条件输入分支执行模型配置参数处于选中状态,因此已从编译的模型中优化掉

  • 出于其他原因,已从编译的模型中优化掉。

unavailable

由于数据不可用,软件无法访问输出端口值。

当您步退到添加端口值标签之前的仿真时间时,端口值标签会显示此消息。

当端口值标签无法访问您要查看的值时,有时您可以更改模型以使信号值可用。例如,在某些情况下,信号值在您执行以下操作时可用:

  • 使用其他可视化选项查看信号值,如 Display 模块、Scope 模块和波形查看器。

  • 标记要记录的信号。

  • 使用信号属性对话框将信号指定为测试点。

使用端口值标签的其他注意事项

下表根据几种工作流和建模模式总结了与使用端口值标签相关的注意事项。

工作流或建模模式使用端口值标签的注意事项
仿真性能在“值标签显示选项”对话框中选择悬停时显示点击时切换会减慢仿真速度。
加速和快速加速仿真

端口值标签不显示从加速模式仿真目标中优化掉的模块的输出信号值。

快速加速仿真不支持端口值标签。

编程仿真使用 sim 函数启动的仿真不支持端口值标签。
定点数据端口值标签为具有定点数据类型的信号显示转换后的双精度值。
模型引用端口值标签显示启用普通模式可见性的模型引用实例的数据。有关详细信息,请参阅 Simulate Multiple Referenced Model Instances in Normal Mode
子系统输入端口表示子系统内部的输入端口的模块通常为虚拟模块。当表示输入端口的模块为虚拟模块时,子系统内部的输入端口上的端口值标签显示驱动该端口的模块的输出值。
可变子系统如果某子系统位于没有输入信号的可变子系统内部,则端口值标签无法访问该子系统的端口数据。
禁用的子系统

端口值标签是否显示禁用的条件执行子系统的输出端口数据取决于表示条件执行子系统的模块的禁用时的输出参数设置。

端口值标签不显示禁用的使能子系统的输出端口数据。

Signal Specification 模块端口值标签显示驱动该端口的模块的输出值。
Merge 模块连接到 Merge 模块的输入端口的信号不支持端口值标签。
Simscape™

某些类型的信号,例如 Simscape 信号,不支持端口值标签。

要在模块图中查看 Simscape 信号的数据,您可以添加迷你图。有关详细信息,请参阅View Sparkline Plots of Simulation Data (Simscape)

模型配置参数

端口值标签仅显示在模块的输出方法执行时生成的值。当您为记录指定细化因子时,端口值标签不会显示为细化记录的数据而生成的值。有关详细信息,请参阅细化因子

当您启用以下参数时,端口值标签可能无法访问某些信号的数据:

相关主题