主要内容

查看状态流消息、事件和数据之间的差异

这个例子比较了statflow®中的消息、事件和数据的行为。

寄件人图表

此模型有三个发件人图表:数据源,EventSender,消息发送者. 每个发件人图表都有一个状态。在状态的输入操作中,图表为数据赋值、发送函数调用事件或发送消息。

接收机的图表

对于每个发送方图表,都有相应的接收方图表。每个接收器图表都有一个带有状态的状态图A0,A1,A2,A3. 隐式事件之后(3秒)触发从A0A1. 来自相应发送者图表的数据、事件或消息将保护A1,A2,A3

范围输出

每个接收器图都启用了活动状态输出并连接到一个范围。作用域显示每个时间步骤中哪些状态是活动的。此输出突出显示了输出数据、事件和消息之间的行为差异。

数据的行为

这个数据源图表为输出数据指定值1M,它作为输入连接到数据接收器图表

这个数据接收器图表在每个时间步执行一次。在模拟开始时,状态为A0它是活动的。当时t=3,从A0A1发生。当时t=4,图表测试是否M等于1。这个条件为真,所以图表从A1A2. 当时t=5,M仍然相等1.,因此图表从A2A3.在显示器上,你可以看到数据接收器改变状态三次。

在给数据赋值后,它将在整个模拟过程中保持其值。因此,每次都是这样数据接收器评估条件[M==1],它转换到一个新的状态。

事件行为

这个EventSender图表使用该命令发送(M)发送函数调用输出事件以唤醒事件接收器图表

这个事件接收器图表仅在输入事件发生时执行M唤醒图表。在模拟开始时,状态为A0它是活动的。从A0A1基于绝对时间时态逻辑,在时间上无效t=0A0保持活动状态,图表返回睡眠状态。因为EventSender发送事件M只有一次,事件接收器不再醒来。在范围上,你看到了吗事件接收器永不脱离A0

事件不能跨时间步骤保持有效,因此接收图只有一次机会响应事件。当EventSender发送事件,事件接收器还没有准备好回应它。的机会事件接收器为响应事件而进行的转换丢失。

信息行为

这个消息发送者图表使用语法发送(M)通过输出消息端口发送消息。该消息进入的输入消息队列消息接收者图表消息在队列中等待,直到消息接收者评估它。

这个消息接收者图表在每个时间步执行一次。在模拟开始时,状态为A0它是活动的。当时t=3,从A0A1发生。当时t=4,图表决定了M队列中存在,因此需要转换到A2. 在时间步结束时,图表将删除M从队列中。当时t=5,队列中没有消息,因此图表不会转换为A3A2保持活动状态。在范围上,你看到了吗消息接收者仅更改状态两次。

与事件不同,消息是排队的。接收图表可以选择在消息发送后的任何时间响应消息。与数据不同,消息不会无限期地保持有效。消息在时间步结束时被销毁。

相关的话题