主要内容

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

一个事件是州流®可以触发其中一个对象中的动作的对象:

  • 状态流图中的并行状态

  • 另一个州流图

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

对于仿真目的,状态流图中的事件数量没有限制。但是,对于代码生成,底层C编译器强制了2的理论限制31.1事件。

事件类型

一个隐含事件是在图表执行期间广播的内置事件。这些事件是隐式的,因为您未明确定义或触发它们。有关更多信息,请参阅使用隐式事件控制图表行为

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

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

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

层次结构水平 可见性
图表 本地事件可在图表和其所有状态和替换物中可见。
子图表 本地事件可以对子图文和其所有状态和代置方式可见。
状态 本地事件对状态和所有代表都可见。

在图表中定义事件

您可以使用符号窗格,extenfledere菜单或模型资源管理器将事件添加到StateFlow图表。

通过符号窗格添加事件

  1. 造型标签,下面设计数据, 选择符号窗格

  2. 单击创建事件图标

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

    • 输入事件

    • 当地事件

    • 输出事件

  4. 编辑事件的名称。

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

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

通过使用使用的活动州流程编辑器菜单

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

    类型 菜单选项
    输入事件 造型标签,下面设计数据,点击事件输入
    输出事件 造型标签,下面设计数据,点击事件输出
    当地事件 造型标签,下面设计数据,点击当地事件

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

通过模型资源管理器添加活动

  1. 造型标签,下面设计数据, 选择模型探险家

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

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

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

从a中访问事件信息州流程图表

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

中使用事件的最佳实践州流程图表

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

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

{output_event;}

相反,打电话给发送运营商。

{发送(output_event);}

尽管这两个操作都是有效的,但使用发送操作员提高了图表的可读性,并确保了对数据没有讨论的显式事件。

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

在需要时使用过渡的条件而不是事件:

  • 代表条件陈述,例如,[x <1](x = = 0)

  • 代表数据值的变化,例如,[剩下的(x)]

避免使用隐式事件进入检查国家活动

要检查状态活动,请使用操作符而不是隐式事件进入.有关更多信息,请参阅使用内操作符检查状态活动

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

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

另请参阅

||

相关的话题