主要内容

动画和理解发送和接收信息

这个示例展示了如何发送、接收和可视化消息。该示例还展示了如何使用仿真数据检查顺序查看器动画片, 和存储检查员要了解邮件如何流入模型中。

模型描述

SimpleMessagesModel包含这些块:

  • 正弦波—信号源。的样品时间块的参数设置为0.1

  • 发送—转换数据信号,发送消息。的指定值样品时间正弦波块的参数确定发送块发送消息的速率。因此,发送块每次发送一条消息0.1模拟时间。

  • 队列——存储信息。观察Send块和Queue块之间的消息行。队列的默认容量为16,这意味着队列块最多可以存储16消息。默认消息排序行为是Lifo.,这意味着输入消息根据上一级拔出策略进行排序。默认情况下,如果队列已满,则覆盖最老的元素复选框被选中。当队列满时,传入的消息将覆盖队列中最老的消息。有关使用Queue块的详细信息,请参见使用队列块来管理消息

  • 收到—接收消息并转换为信号数据。块,样品时间参数设置为0.1.Receive块每0.1个模拟时间接收一条消息。

  • 范围- 可视化接收块收到的消息。

模拟模型和审查结果

在该模型中,为SINE WAVE,发送,队列,接收和范围块中的信号和消息行启用了数据记录。

模拟SimpleMessagesModel并观察到模拟数据检查器:

  • 正弦波块生成正弦波信号(绿色)。

  • 每一个0.1仿真时间,发送块将信号的值转换为消息并将其发送到队列块。仿真数据检测器将消息显示为干图。观察显示发送消息(紫色)的模拟数据检查器。

  • 队列块向接收块(蓝色)发送消息。

  • 接收块输出是重建的正弦波信号(橙色)。

使用序列查看器可视化消息

你可以使用顺序查看器工具或序列查看器块可视化消息,事件和Simulink函数调用。万博1manbetx序列查看器显示消息转换事件和消息携带的数据。在“序列查看器”窗口中,您可以查看与StateFlow Chart执行相关的事件数据以及状态溢图之间的消息交换。

要使用序列查看器工具:

  • 在Simulink ToolStrip中激活日志记录事件,请执行万博1manbetx模拟标签,在准备部分中,点击日志事件

  • 模拟你的模型。打开序列查看器工具,在模拟标签,在审查结果部分中,点击顺序查看器

日志事件顺序查看器当您的模型具有来自Simulink®消息和事件库的块时,按钮可见,状态溢图,功能呼叫子系统,Simulink功能万博1manbetx或Simevents®块。

序列查看器窗口显示在模型执行期间在不同时间创建,发送,转发,接收和销毁的消息。序列查看器窗口还将状态活动,转换和函数调用显示为StateFlow图形功能,Simulink函数和MATLAB函数。万博1manbetx

你也可以添加顺序查看器块,以可视化消息转换。有关更多信息,请参见使用队列块来管理消息

使用动画和存储检查器

您可以使用动画片动画模型并观察模型组件之间的消息流。你可以指定动画的速度为媒介,或.的选项没有任何禁用模型动画。

在工具条上,在调试选项卡,找到事件的动画部分。

事件的动画段,将动画速度设置为

再次模拟模型。观察表示块之间的消息流的突出显示的消息行。

动画根据事件而不是时间突出显示消息行和Simulink函数调用。万博1manbetx在一个模拟时间内,可以突出显示多个消息流或Simulink函数调用事件。万博1manbetx

暂停动画。在Simuli万博1manbetxnk工具条中,在调试选项卡上,单击暂停.注意,最后一个突出显示的消息行是用紫色突出显示的。

存储检查器允许您可视化Queue块中存储的消息的详细信息。暂停模拟时,存储检查器放大镜图标将出现在Queue块上。要打开存储检查器,单击放大镜。

存储检查器不显示任何存储的消息,因为到达Queue块的消息是在同一模拟时间由Receive块同时接收的。

要创建带有存储消息的场景,请停止模拟并更改样品时间接收块的参数0.5.现在Send块每发送一条消息0.1模拟时间,但接收块每次接收消息0.5模拟时间。这导致存储在队列块中的邮件的积压。

再次模拟模型,动画速度设置为,并暂停模拟以在存储检查器中检查状态。存储检查器中的实体表示Queue块中的存储元素,在本例中是消息。存储检查员列出存储在队列块中的消息,其ID和每个消息携带的数据值。

显示消息有效负载为端口值标签

要将消息数据显示为端口值标签,右键单击从块中出现的消息行并选择显示所选端口的值标签

在下面的示例中,将显示端口值,用于将发送块连接到队列块的消息行。

如果消息携带数据作为总线对象,则还可以选择要显示为端口值的元素。

SimpleMessagesPortValueModel是一个变化SimpleMessagesModel发送块的输入来自总线创建器块。在此示例中,总线对象Data_message使用两个元素创建,SineWave.持续的

要打开此模型,请输入:

Open_System('simpleMessagePortValueModel');

右键单击从发送块中出现的消息行,单击显示所选端口的值标签,选择常量。

只有常数信号的值显示为端口值。

如果消息传输在消息行上停止,则端口值显示会导致显示最后消息有效载荷值。

另请参阅

|||||

相关话题