主要内容

控制消息的活动Stateflow图表

一个消息是Stateflow®对象之间的通信数据在本地或图表模型万博1manbetx®模型。从发送方图,您可以发送或转发一条消息。收到图,一个队列接收消息,并持有它直到图表可以对其进行评估。

万博1manbetx仿真软件模型与两个Stateflow图表使用消息进行通信。

使用Stateflow运营商,您可以访问消息数据,并发送、接收、丢弃或转发一条消息。你也可以确定消息是否有效,发现队列的消息的数量。有关更多信息,请参见与Stateflow图表通过发送消息

消息数据的访问

Stateflow消息有一个数据字段。消息数据字段的读或写一个有效的信息,使用点符号的语法:

message_name. data
如果你先发送一条消息,没有消息数据分配一个值,数值数据的默认值是0。枚举数据,默认的是第一个值中列出枚举部分的定义,除非另有指定方法部分的定义。

你不能访问消息数据仍然在队列的消息,或者已经被丢弃。

发送消息

发送一个输出或当地信息,使用发送接线员:

发送(message_name)
例如,在这个图表,入口状态的行动一个发送一条消息的数据值3。如果消息是范围当地的,然后在当地接收队列的消息。如果消息是范围输出,那么图通过输出端口发送消息到另一个块的仿真软件模型。万博1manbetx

Stateflow图表使用send操作符状态。

在一个时间步,你可以发送多个消息通过一个输出端口或当地接收队列。

如果图表发送消息的能力超过接收队列,队列溢出发生。队列溢出的结果取决于接收队列的类型。

  • 当一个溢出发生在一个内部队列,Stateflow图表滴新消息。你可以控制的水平诊断行动通过设置队列溢出诊断消息的属性。看到队列溢出诊断

  • 当一个溢出发生在外部队列,队列(万博1manbetx模型)块滴新消息或者覆盖最古老的消息队列,根据块的配置。看到如果队列满覆盖最古老的元素(万博1manbetx模型)。一个溢出在外部队列总是给出一个警告。

警卫队转换和行动

消息类型的转换或状态的行为。在一个时间步,当保护消息首次评估,从队列中删除消息的图表,使信息有效。而消息是有效的,其他转换或行动可以访问消息数据,但他们不从队列中删除另一个消息。

警卫队转换消息

在这个图表中,一条消息警卫的过渡状态一个B。的转变发生在这两个条件是正确的:

  • 消息出现在队列中。

  • 消息的数据值等于3。

如果消息不存在或者数据值不等于3,然后过渡不发生。如果存在一条消息,从队列中删除无论发生转变。

Stateflow图表和两种状态称为b M警卫之间的过渡状态的消息。

保护一个国家行动与消息

在这个图表中,一条消息保安的动作的状态一个。当状态一个变得活跃,它增加的价值x如果这两个条件是正确的:

  • 消息出现在队列中。

  • 消息的数据值等于3。

如果消息不存在或者数据值不等于3,然后的价值x不会改变。如果消息是,无论从队列中删除x被修改。

Stateflow图与状态称为a . M保安行动的消息。

接收一条消息

提取一个输入或本地消息从接收队列,使用收到接线员:

收到(message_name)
如果一个有效的消息存在,收到(M)返回真正的。如果不存在一个有效的消息,但有一个消息队列中,然后图表从队列中删除消息收到(M)返回真正的。如果不存在有效的消息,没有消息在队列中,收到(M)返回

例如,在这个图表,动作的状态一个检查消息的队列和增量的价值x如果这两个条件是正确的:

  • 消息出现在队列中。

  • 消息的数据值等于3。

如果消息不存在或者数据值不等于3,然后的价值x不会改变。如果消息,图表从队列中删除它不管数据的价值。

Stateflow图表使用接收操作符。

抛弃一个消息

抛弃一个有效的输入或本地消息,使用丢弃接线员:

丢弃(message_name)
图表丢弃消息后,它可以从队列中删除另一个消息在同一时间步。图表不能访问的数据丢弃消息。

例如,在这个图表,动作的状态一个检查消息的队列。如果消息,图表从队列中删除它。如果消息数据值等于3,图表丢弃消息。

Stateflow图表使用丢弃操作符。

转发一条消息

一个有效的输入或当地消息转发到本地队列或输出端口,使用向前接线员:

转发(message_in_name,message_out_name)
图表将消息转发后,它可以从队列中删除另一个消息在同一时间步。

一个输入消息转发

在这个图表中,状态一个检查输入队列的消息M_in。如果消息,图表从队列中删除消息,并将其转发到输出端口M_out。图表将消息转发后,消息不再有效状态一个

Stateflow图表使用操作符。

当地消息转发

在这个图表中,之间的过渡状态一个和国家B检查本地队列的消息M_local。如果消息,过渡删除的消息M_local消息队列,并将其转发到输出端口M_out

Stateflow图表使用操作符。

确定信息是有效的

检查如果输入或本地消息有效,使用isvalid接线员:

isvalid (message_name)
消息是有效的,如果图从接收队列删除它并没有转发或丢弃它。

例如,这个图第一次执行状态一个描述的一样,抛弃一个消息。当图表执行状态B,行动检查信息是有效的。如果消息是有效的,有一个数据值等于6,图表丢弃消息。

Stateflow图表使用isvalid运营商。

确定队列的长度

检查的数量在一个内部消息接收队列的输入或当地信息,使用长度接线员:

长度(message_name)

例如,在这个图表,动作的状态一个检查消息的队列。如果消息,图表从队列中删除它。如果是七消息仍然在队列中,图表增量的价值x

Stateflow图表使用算子长度。

长度运营商不支持使用外部的输入消息接万博1manbetx收队列管理队列(万博1manbetx模型)块。

另请参阅

||||||(万博1manbetx模型)

相关的话题