主要内容

本页采用了机器翻译。点击此处可查看英文原文。

与数据分发服务 (DDS) 中间件进行通信

本示例演示了如何在目标计算机上使用数据分发服务 (DDS) 中间件进行通信。Simulink® Real-Time™ DDS Send 模块和 DDS Receive 模块通过实时应用程序中的 dds 中间件传递消息。

要通过数据分发服务建立通信:

  • 打开 Simulink 模型。

  • 在 Simulink 编辑器中,转到“App”选项卡,选择“App”> Simulink Real-Time。

  • 将 SLRT DDS 模块添加到模型中。

  • 通过添加新的数据字典或关联现有字典来配置 SLRT DDS 模块。有关数据字典的信息,请参阅 DDS Dictionary (DDS Blockset)

  • 构建模型并生成实时应用程序。

  • 连接到 DDS 应用程序,并在目标计算机上运行该实时应用程序。

注意:如果 RegisteredType 的名称与 TopicType 的名称不匹配,则实时应用程序将无法与 DDS 应用程序进行通信。

请根据此示例构建 slrt_ex_pendulum_100Hz_dds 模型,并将应用程序部署到目标计算机上。启动应用程序,并使用 Simulink 数据检查器观察 DDS Send 模块的数据如何被 DDS Receive 模块接收。

创建目标对象并连接

为默认目标计算机创建目标对象,并连接到目标计算机。在命令行窗口中,输入:

tg = slrealtime;
connect(tg);

打开示例模型

打开模型。在命令行窗口中,输入:

model = 'slrt_ex_pendulum_100Hz_dds';
open_system(model);

为目标计算机配置模型

modelSTF = getSTFName(tg);
set_param(model,"SystemTargetFile",modelSTF);

配置 DDS 通信的物理层

DDS Send 和 DDS Receive 模块可通过以太网接口在目标设备与开发计算机之间、目标设备与目标计算机之间,以及目标计算机与连接到同一网络的其他机器之间进行通信。您还可以通过“DDS 字典”App,利用服务质量 (QoS) 设置来指定网络限制。要配置以太网连接,请使用 Speedgoat 以太网配置工具。有关此实用工具的更多信息,请参阅 Speedgoat 文档。

构建模型并下载至目标计算机

要构建模型并下载实时应用程序,请输入:

evalc('slbuild(model)');
load(tg,model);
start(tg);

查看来自 DDS Send 和 DDS Receive 模块的信号

要查看信号,请打开“仿真数据检查器”。在命令行窗口中,输入:

Simulink.sdi.view();

关闭 App 和模型

关闭仿真数据检查器。在命令行窗口中,输入:

Simulink.sdi.close;

关闭打开的模型

在命令行窗口中,输入:

bdclose (model);

另请参阅

(DDS Blockset)

主题