Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

添加 Stateflow 数据

当您想要存储可在特定 Stateflow® 层级可见的值时,可向图中添加数据。

在 Stateflow 图中定义的数据对图中的多个 Stateflow 对象可见,包括状态、转移、MATLAB® 函数和真值表。要确定在状态或转移中使用的数据,请右键点击状态或转移并选择 Explore。上下文菜单会列出在状态或转移中所有已解析符号的名称和作用域。从上下文菜单中选择一个符号将在 Model Explorer 中显示其属性。从上下文菜单中选择输出事件将打开与事件关联的 Simulink® 子系统或 Stateflow 图。

注意

Stateflow 数据对于 Stateflow 图中的 Simulink 函数不可用。

您可以使用 Symbols 窗格、Stateflow Editor 菜单或 Model Explorer 向 Stateflow 图添加数据。

通过 Symbols 窗格添加数据

  1. Modeling 选项卡中的 Design Data 下,选择 Symbols Pane

  2. 点击 Create Data 按钮

  3. 在新数据行中,TYPE 的下方,点击该图标并选择:

    • Input Data

    • Local Data

    • Output Data

    • Constant

    • Data Store Memory

    • Parameter

    • Temporary

  4. 编辑数据名称。

  5. 对于输入和输出数据,点击 PORT 字段并选择端口号。

  6. 要指定数据的属性,请打开 Property Inspector。在 Symbols 窗格中,右键点击该符号的行并选择 Explore。有关详细信息,请参阅Stateflow 数据属性

使用 Stateflow Editor 菜单添加数据

  1. 在 Simulink 模型的 Stateflow 图中,选择与您要添加的数据作用域对应的菜单选项。

    作用域菜单选项
    Input

    Modeling 选项卡中的 Design Data 下,选择 Data Input

    Output

    Modeling 选项卡中的 Design Data 下,选择 Data Output

    Local

    Modeling 选项卡中的 Design Data 下,选择 Local

    Constant

    Modeling 选项卡中的 Design Data 下,选择 Constant

    Parameter

    Modeling 选项卡中的 Design Data 下,选择 Parameter

    Data Store Memory

    Modeling 选项卡中的 Design Data 下,选择 Data Store

  2. 在 Data 对话框中,指定数据属性。有关详细信息,请参阅Stateflow 数据属性

通过 Model Explorer 添加数据

要向 Simulink 模型中的 Stateflow 图添加状态级别或状态级别的数据,请使用 Model Explorer:

  1. Modeling 选项卡中的 Design Data 下,选择 Model Explorer

  2. Model Hierarchy 窗格中,在 Stateflow 层次结构中选择您希望新数据对其可见的对象。所选对象即变为新数据的父级。

  3. 在 Model Explorer 菜单中,选择 Add > Data。具有默认定义的新数据出现在 Model Explorer 的 Contents 窗格中。

  4. Data 窗格中,指定数据的属性。有关详细信息,请参阅Stateflow 数据属性

使用图中数据的最佳做法

避免从 Simulink 模块继承输出数据属性

Stateflow 输出数据不应该从输出信号继承属性,因为这些值从 Simulink 模块反向传播且可能无法预测。

限制使用机器级别数据

避免使用机器级别数据。如果模型中存在机器级别数据,则会阻止生成代码重用和其他代码优化。此类型的数据也与许多 Simulink 及 Stateflow 功能不兼容。

例如,以下功能不支持机器级别数据:

  • 枚举数据

  • Simulink 函数

  • 图工作点

  • 隐式更改事件

  • 未使用数据检测

  • 将参数绑定到基础工作区中的 Simulink.Parameter 对象

  • 模型引用(请参阅模型引用的要求和限制 (Simulink)

  • 在 Embedded Coder® 生成的代码中使用代码替换库。有关详细信息,请参阅Code You Can Replace From Simulink Models (Embedded Coder)

  • Simulink PLC Coder™ 软件生成代码

  • Simulink Design Verifier™ 软件进行分析

要使模型中的其他图和模块能够访问 Stateflow 数据,请使用数据存储内存。有关详细信息,请参阅Access Data Store Memory from a Chart

相关主题