主要内容

管理中的符号Stateflow编辑器

在Symbols窗格中,您可以在statflow中工作时查看和管理数据、事件和消息®编辑器。在建模选项卡上,选择符号面板

在“符号”窗格中,您可以:

  • 添加和删除数据、事件和消息。

  • 设置对象类型和作用域。

  • 更改端口号。

  • 编辑一个对象的名称,并更新图表中该对象名称的所有实例。

  • 撤消和重做类型、名称和端口号的更改。

  • 检测未使用的对象。

  • 检测并修复未解决的对象。

  • 在窗口中的对象之间以及对象在图表中的使用位置进行跟踪。

  • 在属性检查器中查看和编辑对象属性。

符号窗格显示输入、输出和本地数据、输入事件和输出消息。

“符号”窗格中的行显示对象层次结构。在窗口中展开一个对象,以查看该对象作为父对象的数据、事件和消息。默认情况下,图表中的所有非图形对象都列在窗口中。要仅查看在当前层次级别及其下使用的对象,请选择图标。要搜索特定的符号,请在“筛选器”搜索框中键入

添加和修改数据、事件和消息

要将非图形对象添加到statflow块,请在“Symbols”窗格中:

  1. 选择这些图标之一。

    图标 描述
    添加数据
    添加事件
    添加消息

  2. 在新对象所在行中,在类型,选择对象类型。

  3. 编辑对象的名称。

  4. 对于输入和输出对象,在港口,选择端口号。

  5. 要在属性检查器中查看该对象,右键单击该对象并选择检查

  6. 在属性检查器中,修改对象属性。

通过Symbols窗格添加对象后,这些对象将显示为未使用,直到在statflow设计中引用它们。

在“符号”窗格中,可以修改statflow对象的名称、类型和端口号。属性中编辑对象的名称的名字字段。重命名对象时,选择Shift + Enter在整个状态机中重命名对象的所有实例。若要更改对象的类型或端口号,请单击对应字段,并从可用选项中进行选择。要从状态机中删除对象,请右键单击对象并选择删除

在“符号”窗格中检测未使用的数据

出现在图表中但未作为数据、事件或消息添加的符号为未定义的未解决的.“符号”窗格以黄色警告图标表示未使用的数据、消息、函数和事件.您可以使用“符号”窗格或“符号向导”解析未定义的符号。

显示未使用数据的符号窗格。

未检测到以下类型的未使用数据:

  • Machine-parented数据

  • MATLAB的输入和输出®功能

  • 包含原子子图的图表中的参数范围的数据

对于每个未定义的符号,根据图表中的符号使用情况,statflow推断出以下属性:

  • 大小

  • 类型

  • 复杂性

若要删除未使用的对象,请在“符号”窗格中右键单击该对象并选择删除.通过删除对模拟没有影响的对象,可以减少模型的大小。在这个图表中,在你加上数据,它首先显示为未使用。在你参考数据在图表中,警告标志消失了。

通过“符号”窗格解析符号

编辑图表时,Stateflow会检测未定义的符号,并在“符号”窗格中用红色错误图标标记它们。对于每个未定义的符号类型列显示从图表中的用法推断出的类和范围。您可以单独或集体地解析未定义的符号。

  • 要定义带有推断类和作用域的符号,请单击错误图标并选择修理

  • 属性中选择类和作用域的另一个组合来定义具有不同类或作用域的符号类型下拉列表。

  • 要解析所有未定义符号及其推断类和作用域,请单击解决未定义的符号按钮

通过符号向导解析符号

如果在更新图表、更新模型或模拟模型时,图表包含任何未定义的符号,则符号向导将打开并列出未定义的符号。对于每个未定义的符号范围列显示从图表中的使用推断出的类和范围。您可以接受、修改或拒绝“符号向导”建议的每个符号定义。

  • 若要接受具有推断类和范围的定义,请选中符号前面的复选框。

  • 要修改定义,请从中选择其他类或范围范围下拉列表。

  • 若要拒绝定义,请清除符号前的复选框。

编辑符号定义后,通过单击将符号添加到Stateflow层次结构中好啊

检测自定义代码中的符号定义

对自定义代码中定义的符号的检测依赖于模型配置参数导入自定义代码

  • 如果您选择导入自定义代码, statflow解析器尝试在自定义代码中找到未解析的图表符号。如果自定义代码没有定义这些符号,它们将出现在“符号向导”中。

  • 如果不选择导入自定义代码, statflow解析器将图表中未解析的数据符号视为自定义代码中定义的。如果自定义代码没有定义这些符号,那么从模型模拟和生成代码将导致错误。

导入自定义代码选项不适用于使用MATLAB作为操作语言的图表。有关详细信息,请参阅导入自定义代码(金宝app模型)

跟踪数据、事件和消息

statflow提供状态机和非图形符号之间的可跟踪性。当您在“符号”窗格中选择一个符号时,statflow将突出显示访问该符号的图表部分。当您在图表中选择一个对象时,statflow会突出显示该对象使用的符号。

要控制对象和符号何时高亮显示,请选择首选项按钮. 此时会出现一个下拉菜单。

要使statflow突出显示对象使用的符号窗格中的符号,请选择突出显示使用过的符号。如果希望Stateflow突出显示图表中使用符号的对象,请选择在图表上突出显示用途具有在图表上突出显示用途,你可以选择突出:

  • 在你的星图中所有符号的用法。

  • 读取符号的对象。

  • 对象写入符号的位置。

例如,打开模型sf_tetris2然后双击图表TetrisLogic.在“符号”窗格中,当您选择常量时ARENA_HEIGHT,所使用的状态和函数ARENA_HEIGHT突出显示。

来看看这个常数的用法ARENA_HEIGHT,打开函数冻结

您还可以在图表中选择图形对象(如状态、转换或函数),并查看该对象使用的符号。例如,在图表中TetrisLogic,展开符号MainArea在“符号”窗格中。如果选择状态冻结形状在图表中,然后是本地数据形状和功能冻结()在“符号”窗格中高亮显示。这个高亮显示表明这些对象是在状态中使用的冻结形状

在调试模式下,各数据的值将显示在价值列。statflow在模拟运行时定期更新这些值。值列在发生更改时突出显示对数据值的更改。当调试器在断点处停止时,您可以在命令提示符或symbols窗格中更新初始值或更改符号的值。

数据或信息 更新初始值 调试期间更新
输入
输出 是的 是的
参数
常数 是的
数据存储内存 是的
当地的 是的 是的

对于总线元素,您可以在命令提示符或symbols窗格中更改符号的值。

公共汽车元素 更新初始值 调试期间更新
输入
输出 是的
参数
常数
数据存储内存 是的
当地的 是的

在“符号”窗格中,多维数组显示为数组的数据类型和大小。如果数组不超过100个元素,将鼠标悬停在符号上以查看元素。对于包含超过100个元素的数组,使用命令提示符查看这些元素。

暂停模拟时,将鼠标悬停在画布中的消息上,以查看队列中的有效负载。这类似于画布上的悬停功能。对于其他非标量对象,将显示大小和数据类型。要查看这些值,请使用“观察”窗口。看到在调试时检查和修改数据和消息跟踪观察列表中的数据

符号窗格限制

如果数据、事件或消息属于以下情况,则无法在“符号”窗格中添加:

  • 由国家抚养的。

  • 在一个函数。

  • 由状态机控制。

由状态机产生的数据和事件在“符号”窗格中也不可见。要添加这些类型的对象,请使用模型资源管理器。作为一项最佳实践,应避免使用机器生成的数据。

  • 当您在MATLAB函数中修改代码时,在保存MATLAB函数之前,不会在Symbols窗格中更新更改。

  • 不能撤消或重做对MATLAB函数输入和输出的更改。

  • 无法从状态转换表中恢复已删除的数据、事件或消息。

  • 不能撤消对图形函数、MATLAB函数和真值表所属数据的范围更改。

  • 不能撤销真值表对象的重命名。

  • 当您删除包含在基于Simulink的状态中的对象的数据时,对象仍然保持在基于Simulink的状金宝app态中,并且数据符号在“符号”窗格中显示为未定义。

相关话题