主要内容

通过广播事件同步模型组件

事件这是一种状态流®对象,该对象可以触发以下对象之一中的操作:

  • 状态流程图中的并行状态

  • 另一个状态流程图

  • 模拟金宝app®触发或函数调用子系统

出于模拟目的,状态流程图中的事件数量没有限制。但是,对于代码生成,底层C编译器的理论限制为2311事件。

事件类型

隐式事件是在图表执行期间广播的内置事件。这些事件是隐式的,因为您没有显式地定义或触发它们。有关详细信息,请参阅使用隐式事件控制图表行为

明确的事件是显式定义的事件。显式事件可以有这些类型之一。

类型 描述
输入事件 从图表外部广播到状态流图表的事件。有关更多信息,请参见通过发送输入事件激活状态流程图利用状态流图设计人机界面逻辑
本地事件 事件,该事件可以发生在状态流程图中的任何位置,但仅在父对象及其子对象中可见。MATLAB中的独立状态流程图不支持本地事件金宝app®. 有关详细信息,请参阅广播本地事件以同步并行状态
输出事件 在状态流图中发生但被广播到Simulink块的事件。金宝appMATLAB中的独立状态流图不支持输出事件。金宝app有关更多信息,请参见通过发送输出事件激活S金宝appimulink块

您可以在statflow层次结构的这些级别上定义本地事件。

等级 可见性
图表 本地事件对图表及其所有状态和子状态可见。
子图表 本地事件对子图表及其所有状态和子状态可见。
状态 本地事件对状态及其所有子状态可见。

在图表中定义事件

可以使用“符号”窗格、“状态流编辑器”菜单或“模型资源管理器”将事件添加到状态流图中。

通过“符号”窗格添加事件

  1. 建模选项卡,在下面设计数据选择符号窗格

  2. 单击创建事件偶像

  3. 在新事件的那一排,在类型,点击图标,选择:

    • 输入事件

    • 本地事件

    • 输出事件

  4. 编辑事件的名称。

  5. 对于输入和输出事件,请单击港口城市字段并选择端口号。

  6. 要为事件指定属性,请打开属性检查器。在Symbols窗格中,右键单击事件的行并选择探索. 有关详细信息,请参阅设置事件的属性

通过使用状态流编辑器菜单

  1. 在Simulink模型的状态流程图中,选择与要添加的金宝app事件类型对应的菜单选项。

    类型 菜单选项
    输入事件 建模选项卡,在下面设计数据,点击事件输入
    输出事件 建模选项卡,在下面设计数据,点击事件输出
    本地事件 建模选项卡,在下面设计数据,点击本地事件

  2. 在“事件”对话框中,指定数据属性。有关详细信息,请参阅设置事件的属性

通过模型管理器添加事件

  1. 建模选项卡,在下面设计数据选择模型资源管理器

  2. 模型层次结构窗格中,选择要使新事件可见的statflow层次结构中的对象。您选择的对象将成为新事件的父事件。

  3. 在“模型管理器”菜单中,选择添加>事件.带有默认定义的新事件出现在内容窗格中的。

  4. 事件窗格中,指定事件的属性。有关更多信息,请参见设置事件的属性

从数据库访问事件信息状态流图表

您可以显示输入或本地事件的属性,或者直接从状态流程图打开输出事件的目标。右键单击包含感兴趣事件的状态或转换,然后选择探索. 关联菜单列出状态或转换中所有已解析符号的名称和范围。从关联菜单中选择输入或本地事件将在模型管理器中显示其属性。从关联菜单中选择输出事件将打开与事件关联的Simulink子系统或状态流程图。金宝app

中使用事件的最佳实践状态流图表

使用发送在操作中广播显式事件的命令

要在状态或转换操作中广播本地或输出事件,请使用发送操作人员例如,要在转换有效时广播输出事件,请避免将事件名称用作条件操作。

{output_event;}

相反,打电话给发送操作人员

{send(output_event);}

尽管这两个操作都是有效的,但使用发送运算符增强了图表的可读性,并确保不会将显式事件误认为数据。

避免使用显式事件触发条件动作

如果要执行以下操作,请在转换上使用条件而不是事件:

  • 表示条件语句,例如,[x<1](x = = 0)

  • 表示数据值的更改,例如,[已更改(x)]

避免使用隐式事件进来检查状态活动

要检查状态活动,请使用在里面操作符而不是隐式事件进来. 有关详细信息,请参阅使用内操作符检查状态活动

不要在图表中混合使用边触发和函数调用输入事件

混合使用边缘触发器和函数调用的输入事件会导致编译时错误。

另见

||

相关的话题