一个事件是一个Stateflow®对象,可以在以下对象中触发动作:
状态流图中的并行状态
另一个Stateflow图表
一个金宝app仿真软件®触发或函数调用子系统
出于模拟目的,状态流图中的事件数量没有限制。然而,对于代码生成,底层的C编译器强制在理论上限制为2311事件。
一个隐式的事件是在图表执行期间广播的内置事件。这些事件是隐式的,因为您没有显式地定义或触发它们。有关更多信息,请参见使用隐式事件控制图表行为.
一个明确的事件是显式定义的事件。显式事件可以有这些类型之一。
类型 | 描述 |
---|---|
输入事件 | 从图表外部广播到状态流图表的事件。有关更多信息,请参见通过发送输入事件激活状态流程图和利用状态流图设计人机界面逻辑. |
当地的活动 | 事件,可以发生在状态流图的任何位置,但只在父对象及其子对象中可见。在MATLAB中的独立状态流图中不支持本地金宝app事件®.有关更多信息,请参见广播本地事件以同步并行状态. |
输出事件 | 在状态流图中发生但被广播到Simulink块的事件。金宝appMATLAB中的独立状态流图不支持输出事件。金宝app有关更多信息,请参见通过发送输出事件激活S金宝appimulink块. |
您可以在statflow层次结构的这些级别上定义本地事件。
水平的层次结构 | 可见性 |
---|---|
图表 | 本地事件对图表及其所有状态和子状态是可见的。 |
子图表 | 局部事件对子图及其所有状态和子状态是可见的。 |
状态 | 本地事件对状态及其所有子状态是可见的。 |
您可以使用“符号”窗格、“状态流编辑器”菜单或“模型资源管理器”将事件添加到状态流图中。
在建模选项卡,在设计数据中,选择符号面板.
单击创建事件图标.
在新事件的那一排,在类型,点击图标,选择:
输入事件
当地的活动
输出事件
编辑事件的名称。
对于输入和输出事件,请单击港口字段并选择端口号。
要为事件指定属性,请打开属性检查器。在Symbols窗格中,右键单击事件的行并选择探索.有关更多信息,请参见设置事件的属性.
在Simulink模型中的状态流图中,选择与您想要添金宝app加的事件类型对应的菜单选项。
类型 | 菜单选项 |
---|---|
输入事件 | 在建模选项卡,在设计数据,点击事件输入. |
输出事件 | 在建模选项卡,在设计数据,点击事件输出. |
当地的活动 | 在建模选项卡,在设计数据,点击当地的活动. |
在“事件”对话框中指定数据属性。有关更多信息,请参见设置事件的属性.
在建模选项卡,在设计数据中,选择模型浏览器.
在模型层次结构窗格中,选择要使新事件可见的statflow层次结构中的对象。您选择的对象将成为新事件的父事件。
在模型资源管理器菜单中,选择添加>事件.带有默认定义的新事件出现在内容窗格中的。
在事件窗格中,指定事件的属性。有关更多信息,请参见设置事件的属性.
您可以显示输入或本地事件的属性,或者直接从状态流图打开输出事件的目的地。右键单击包含感兴趣事件的状态或转换并选择探索.上下文菜单列出状态或转换中所有已解析符号的名称和作用域。从上下文菜单中选择输入或本地事件,将在Model Explorer中显示其属性。从上下文菜单中选择输出事件将打开与该事件相关的Simulink子系统或状态流图。金宝app
发送
命令在动作中广播显式事件要在状态或转换操作中广播本地或输出事件,请使用发送
操作符。例如,要在转换有效时广播输出事件,请避免使用事件名称作为条件操作。
{output_event;}
相反,调用发送
操作符。
{发送(output_event);}
尽管这两个操作都是有效的,但使用发送
操作符增强了图表的可读性,并确保显式事件不会被误认为数据。
在转换时使用条件而不是事件:
表示条件语句,例如:(x < 1)
或(x = = 0)
.
表示数据值的更改,例如,(改变了(x))
.
输入
检查状态活动要检查状态活动,请使用在
操作符而不是隐式事件输入
.有关更多信息,请参见使用内操作符检查状态活动.
混合使用边缘触发器和函数调用的输入事件会导致编译时错误。