过渡动作类型

转换可以具有不同的作用类型,包括事件或消息的触发器,条件,条件操作,和过渡动作。操作类型遵循常规格式的标签符号:

event_or_message触发[健康)状况] {condition_action} / {transition_action}

下面的示例示出了典型的过渡标签语法:

过渡 事件触发 健康)状况 条件操作 过渡行动
国家A到状态C 事件1 温度> 50 FUNC1() 没有
状态A到状态B 事件2 没有 没有 DATA1 = 5

事件或消息触发

在过渡标签语法,事件或消息的触发器出现第一作为事件或消息的名称。他们没有区分特殊字符,以他们在转移标签等行为分开。在该示例过渡动作类型,从状态A两个转换有事件触发。从状态A到状态B的过渡具有事件触发器事件2和从状态A到状态C的转换的具有事件触发事件1

事件触发器指定导致要采取的过渡,提供了条件,如果指定的,是真实的事件。指定一个事件是可选的。消息触发指定消息是否存在于消息队列将要采取的过渡。不存在的事件或消息的指示的转变时的任何事件的发生作出。多个事件或消息被指定使用OR逻辑运算符(|)。

条件

在过渡标签语法,条件是包含在方括号布尔表达式([])。在该示例过渡动作类型,从状态A到状态C的转换的具有条件温度> 50

条件是布尔表达式,以指定一个转变发生鉴于指定的表达式为真。按照定义和使用条件下,这些准则:

  • 条件表达式必须是一个布尔表达式评估为真(1)或(0)。

  • 条件表达式可以包括以下任一:

    • 布尔运算,使数据和数值之间的比较

    • 返回一个布尔值的函数

    • 一个在(STATE_NAME)条件评估为真时指定作为参数的状态是活动的(见检查国家活动由操作员使用

      注意

      图表不能使用条件基础上在其他图表状态的活动触发的动作。

    • 时序逻辑条件(见利用时序逻辑控制图执行

  • 条件表达式可以调用的图形函数,真值表功能,或MATLAB®函数返回一个数值。

    例如,[test_function(X,Y)<0]是有效的条件表达式。

    注意

    如果条件表达式调用与多个返回值的函数,只有第一个值适用。不使用其他的返回值。

  • 条件表达式不应调用使所述图表来改变状态的功能或修改任何变量。

  • 布尔表达式可以使用与用于表达式和关系,并进行分组|对于表达式或关系。

  • 赋值语句是无效的条件表达式。

  • 一元增量和减量的行动是不是有效的条件表达式。

条件操作

在转移标签语法,条件操作跟随转移条件,并包含在大括号({})。在该示例过渡动作类型,从状态A到状态C的转换的具有条件作用FUNC1(),一个函数调用。

作为条件为真条件动作被尽快执行,但在此之前已经确定转变目标的有效。如果没有指定条件,一个隐含的条件计算结果为真,则执行条件的动作。

注意

如果条件是由一个事件把守,检查只有当事件触发激活。如果条件由消息把守,检查仅当该消息是存在的。

转换动作

在转移标签语法,过渡动作前面有一个正斜杠(/)并且被包含在大括号({})。在该示例过渡动作类型,从状态A到状态B的过渡具有过渡动作DATA1 = 5。在C图,不需要过渡动作被大括号括起来。在图表,使用MATLAB作为动作语言,语法是汽车,如果花括号从过渡失踪纠正。看到自动校正使用MATLAB作为动作语言当

过渡措施执行完整的转换路径取之后。他们执行转换目标已被确定后,是有效的,条件,如果指定的,是真实的。如果过渡由多个片段组成的,到最终目的地的整个过渡路径被确定为有效后,才过渡动作执行。

过渡动作在Stateflow中唯一支持万博1manbetx®在Simulink图万博1manbetx表®楷模。