主要内容

使用消息轮询和消息触发子系统

这个例子展示了如何消息投票子系统和消息触发子系统模块操作和演示了它们之间的区别。两个消息投票子系统和消息触发子系统模块包含一个触发块。基于触发块的配置,您可以创建这些行为:

  • 信息轮询子系统块——子系统从队列提取消息定期根据的样品时间子系统。

  • 消息触发子系统块在直接模式——消息发送者和消息触发子系统是同步的。消息发送者通过推消息调用子系统。

  • 消息触发子系统在预定模式-子系统的执行顺序可以安排时间表编辑器模型中的异步行为。

这个例子展示了这三种模式之间的区别和解释用例为每个模式。

概述

这个模型包含三个相同的消息来源:Sender1,Sender2,Sender3。每个源生成消息有效负载值从两个楼梯重复序列块。

Sender1,Sender2,Sender3都有样品的时间在每个时间步1和生成两个消息。这个数字显示生成的负载值信息。序列重复步骤6开始时间。

在每个消息接收子系统,读取消息有效负载,使用一块获得乘以2,用作消息的有效负载。

信息轮询子系统

使用轮询消息子系统块当你想定义子系统的速度块,当把消息。块把消息从一个队列基于其样品,和样品时间块参数可以指定子系统。块只能把一个消息在每个时间步。您可以配置块将消息较慢或更快的速度。

在这个示例中,消息块的样品时间轮询子系统2。在每个时间步,可用的块检查消息在队列。如果消息是可用的,消息块拉一条消息并执行轮询子系统。在FIFO队列阻塞操作模式的能力16站之间的消息发送者和消息块投票子系统。这图显示子系统将消息较慢的速度使用样例次。

输出显示子系统范围拉和过程只有一个消息每2时间单位,而两个消息被发送到队列块在每个时间单位。在仿真过程中,队列块填满,和一些消息丢失。

消息触发子系统在直接模式

第一个消息触发子系统块在直接模式运营。也就是说,在子系统内部的触发块,计划作为非周期分区复选框不选中。使用这种模式代表了简单的情况下你不需要安排子系统执行。在这个配置中,消息发送方调用消息触发子系统块执行,把可用的信息子系统。子系统执行一旦消息被发送方。如果你使用一个消息触发子系统块在直接模式中,您不需要使用一个队列消息发送方块和子系统之间的块。这种模式支持顶部的代金宝app码生成模型及其组件。在生成的代码中,子系统作为函数需要调用消息有效负载作为参数,发送者。

这个数字表明,样品时间同步,因为发送方调用子系统。

输出显示子系统接收范围和流程两个信息在每个时间单位。

消息触发子系统在预定的模式

第二个消息触发子系统块在预定的模式运营。也就是说,在子系统内部的触发块,计划作为非周期分区复选框被选中时,默认配置。非周期分区是分区,不一定是定期引发或绑定到一个周期时间触发,可以绑定到事件。这个模式允许你计划的执行子系统使用时间表编辑器。有关更多信息,请参见使用时间表编辑器。在这种情况下,模型不支持代码生成,因为调度不支持代码生成。金宝app然而,你可以移动消息触发子系统块在参考模型和连接到根尺寸和生成代码的组件,然后可以与消息中间件集成。

在这个例子中,一个队列块在FIFO模式下操作站之间的消息来源和消息触发子系统。当一个消息到达队列,消息会引发一个事件触发消息触发子系统块从队列中取出消息块。然后,子系统把消息基于消息可用性和时间表。这个图显示了这个示例的消息发送者和消息触发子系统。

例如,这个图中显示时间表编辑器显示消息触发子系统块,先按计划执行。在这种情况下,基于消息到达队列块D1,这事件触发消息触发子系统把消息。消息触发子系统将尽快到达队列的消息块,因为它是将第一次的顺序。在这种情况下,消息触发子系统在预定的模式表现相同的消息触发子系统直接模式。然而,计划模式允许你改变的顺序和进度的执行子系统基于您的建模需求。

模拟模型。范围输出显示消息触发子系统接收和处理两条消息在每个样品时间。

另请参阅

|