Main Content

before

在事件广播或指定时间之前执行图

描述

示例

如果自关联状态激活以来 E 事件的发生次数少于 n 次,则 before(n,E) 返回 true。否则,运算符返回 false

示例

如果图自关联状态激活以来的唤醒次数少于 n 次,则 before(n,tick) 返回 true。否则,运算符返回 false

当 Simulink® 模型中的 Stateflow® 图有输入事件时,不支持隐式事件 tick

示例

如果自关联状态激活以来经过的时间少于 n 个单位,则 before(n,time_unit) 返回 true。否则,运算符返回 false

time_unit 指定为秒 (sec)、毫秒 (msec) 或微秒 (usec)。如果将 n 指定为表达式,图会在仿真期间随着表达式值的变化而调整时滞。

注意

时序逻辑运算符 before 仅在 Simulink 模型的 Stateflow 图中受支持。

示例

全部展开

状态激活后,在图处理 E 事件的第一次和第二次广播时,显示状态消息。

on before(3,E): disp("ON");

Stateflow chart that uses the before operator in a state.

当图处理事件 E 的广播时,仅在关联状态激活后 E 的广播次数少于五次时,发生转出关联状态的转移。

before(5,E)

Stateflow chart that uses the before operator in a transition.

如果关联状态在少于五次事件 E 的广播期间持续为激活状态,则发生转出该关联状态的转移。

[before(5,E)]

Stateflow chart that uses the before operator in a transition.

当图被唤醒时,仅在自关联状态激活以来的唤醒次数少于七次,且变量 temp 大于 98.6 时,发生转出关联状态的转移。

before(7,tick)[temp > 98.6]

Stateflow chart that uses the before operator in a transition.

在关联状态激活后的 12.3 秒之内,每次图被唤醒时,都将 temp 变量设置为 MED

on before(12.3,sec): temp = MED;

Stateflow chart that uses the before operator in a state.

提示

  • 您可以使用引号将关键字 'tick''sec''msec''usec' 括起来。例如,before(5,'tick') 等效于 before(5,tick)

  • 每当关联状态重新激活时,Stateflow 图都会重置 before 运算符使用的计数器。

版本历史记录

在 R2014b 中推出