主要内容

沟通Stateflow通过发送消息绘制图表

在statflow内部和之间进行通信®在Simulink中的图金宝app表®模型,使用消息。一个消息是一个在本地或图表之间通信数据的statflow对象。从发送者图表中,您可以发送或转发包含数据的消息。在接收图表中,一个队列接收消息并将其保存,直到图表能够对其进行评估。

消息结合了数据和事件的一些功能。像数据一样,消息可以传输数字和文本信息。与事件一样,消息可以触发转换和状态操作。然而:

  • 消息不会触发图表唤醒。相反,消息将排队直到图表被唤醒。当图表唤醒时,它可以响应队列中的消息。

  • 如果接收方图表不能立即响应,消息不会丢失。

有关更多信息,请参见查看状态流消息、事件和数据之间的差异

当图表转换或状态操作计算消息时,图表将确定队列是否包含任何消息。如果是,则图表将从队列中删除消息。消息将一直有效,直到时间步骤结束或图表转发或丢弃该消息为止。虽然消息是有效的,但其他转换或操作可以访问消息数据,图表不会从队列中删除另一条消息。图表在当前时间步骤结束时销毁所有有效消息。

在图表中定义消息

您可以使用“符号”窗格、“状态流编辑器”菜单或“模型资源管理器”向状态流图添加消息。

通过符号窗格添加消息

  1. 建模选项卡,在设计数据中,选择符号面板

  2. 单击创建消息图标

  3. 在新消息的行中,在类型,点击图标,选择:

    • 输入消息

    • 当地消息

    • 输出消息

  4. 编辑消息的名称。

  5. 要获取输入和输出消息,请单击港口字段并选择端口号。

  6. 要为消息指定属性,请打开属性检查器。在Symbols窗格中,右键单击消息的行并选择探索.有关更多信息,请参见设置消息的属性

添加消息使用Stateflow编辑菜单

  1. 在statflow Editor中,选择与您想要添加的消息的范围相对应的选项。

    范围 选项
    输入 建模选项卡,在设计数据中,选择信息输入
    输出 建模选项卡,在设计数据中,选择消息输出
    当地的 建模选项卡,在设计数据中,选择消息

  2. 在“消息”对话框中,指定数据属性。有关更多信息,请参见设置消息的属性

通过模型资源管理器添加消息

  1. 建模选项卡,在设计数据中,选择模型浏览器

  2. 模型层次结构窗格中,选择要使新消息可见的statflow层次结构中的对象。您选择的对象将成为新消息的父对象。

  3. 在模型资源管理器菜单中,选择添加>消息.带有默认定义的新消息将出现在内容窗格中的。

  4. 消息窗格中,指定消息的属性。有关更多信息,请参见设置消息的属性

一生的Stateflow消息

一个statflow消息有一个有限的生存期。属性将消息发送到接收队列时,生命周期开始发送操作符。消息将一直留在队列中,直到转换或状态行动评估它或图表接收它使用收到操作符。

当图表计算或接收消息时,消息就生效。消息保持有效,直到:

  • 当图表销毁任何剩余有效消息时,当前时间步骤结束。

  • 属性将消息转发到另一个队列向前操作符。消息在新队列中继续其生命周期。

  • 该图表通过使用丢弃

当消息有效时,其他转换和操作可以评估消息并访问其数据。要检查消息是否有效,请使用isvalid操作符。

要查看模拟过程中消息的交换,请添加顺序查看器阻塞到您的Simulink模金宝app型。的顺序查看器块显示:

  • 发送消息

  • 接收到的消息

  • 转发消息

  • 下降的消息

  • 摧毁了消息

  • 丢弃的消息

有关更多信息,请参见使用序列查看器来可视化消息、事件和实体

消息的局限性

您不能在以下情况下使用消息:

  • 摩尔的图表

  • 原子子图表

  • 断点条件表达式

在使用C作为操作语言的图表中,消息不支持多字定点数据。金宝app

另请参阅

|||||(金宝app模型)|

相关的话题