主要内容

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

一个事件是一个Stateflow®在其中的一个对象,可以触发行动对象:

  • 在Stateflow平行状态图

  • 另一个Stateflow图表

  • 一个金宝app仿真软件®引发或函数调用子系统

仿真的目的,是没有限制的事件数量Stateflow图。然而,对于代码生成,底层C编译器执行2的理论极限31日1事件。

类型的事件

一个隐式的事件是一个内置的事件图表执行期间播出。这些事件是隐式的,是因为你不显式地定义或触发它们。有关更多信息,请参见控制图的行为通过使用隐式事件

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

类型 描述
输入事件 事件广播Stateflow图之外的图表。有关更多信息,请参见激活Stateflow图表发送输入事件通过使用Stateflow图表设计人机界面逻辑
当地的活动 事件可以发生在任何地方Stateflow图但是是可见的只有在父对象及其后代。不支持本地事件在MATLAB的独立Stat金宝appeflow图表®。有关更多信息,请参见广播本地事件同步平行状态
输出事件 事件发生在一个Stateflow图表但广播模型块。金宝app不支持输出事件在MATLAB的独立State金宝appflow图表。有关更多信息,请参见激活一个模型块通过发送金宝app输出事件

您可以在这些层面定义本地事件的Stateflow层次结构。

水平的层次结构 可见性
图表 本地事件可见图及其所有州和亚态。
子图表 本地事件可见子图表及其所有州和亚态。
状态 本地事件是可见的状态及其所有亚态。

在图中定义事件

您可以添加事件Stateflow图通过使用符号窗格,Stateflow编辑器菜单,或Model Explorer。

通过符号面板中添加事件

  1. 建模选项卡,在设计数据中,选择符号面板

  2. 单击创建事件图标

  3. 新事件的行下类型单击图标,选择:

    • 输入事件

    • 当地的活动

    • 输出事件

  4. 编辑事件的名称。

  5. 输入和输出活动,点击港口字段和选择一个端口号。

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

通过使用添加事件Stateflow编辑菜单

  1. 在Stateflow图仿真软件模型,选择相对应的菜单金宝app选项的类型您想要添加的事件。

    类型 菜单选项
    输入事件 建模选项卡,在设计数据,点击事件输入
    输出事件 建模选项卡,在设计数据,点击事件输出
    当地的活动 建模选项卡,在设计数据,点击当地的活动

  2. 在对话框中,指定数据属性。有关更多信息,请参见设置属性为一个事件

通过模型浏览器中添加事件

  1. 建模选项卡,在设计数据中,选择模型浏览器

  2. 模型层次结构Stateflow层次结构中的窗格中,选择对象,你想让新的事件可见。您选择的对象变成了父母的新事件。

  3. 在Model Explorer菜单,选择添加>事件。新事件的出现在一个默认的定义内容Model Explorer窗格。

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

从一个访问事件信息Stateflow图表

您可以显示一个输入的属性或当地事件,或打开一个输出的目的地事件直接从Stateflow图表。右键单击状态或转换包含事件的兴趣和选择探索。上下文菜单列表的名称和作用域解析符号状态或转换。从上下文菜单中选择一个输入或当地事件在模型浏览器中显示其属性。从上下文菜单中选择一个输出事件打开了仿真软件子系统或Stateflow图表与事件相关联。金宝app

使用事件的最佳实践Stateflow图表

使用发送命令来广播明确事件的行动

播放本地或输出事件状态或转换操作,使用发送操作符。例如,播放一个输出事件有效过渡时,避免使用事件的名称作为行动的条件。

{output_event;}

相反,调用发送操作符。

{发送(output_event);}

虽然行动是有效的,使用发送运营商增强可读性的图表并确保明确的事件不是错误的数据。

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

使用条件转换而不是事件当你想:

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

  • 代表一个数据值的变化,例如,(改变了(x))

避免使用隐式事件输入检查状态的活动

检查状态的活动,使用操作符,而不是隐含的事件输入。有关更多信息,请参见检查活动进行的操作状态

不要混合边沿触发和函数调用图输入事件

混合使用边缘触发器的输入事件和函数调用的结果在一个编译时错误。

另请参阅

||

相关的话题