使用 Connext 专业工具加快上市时间
距离演示还有两周时间。>
我们有这个机会构建了一个有效的微电网控制系统,它需要:
- 在 Intel 和 ARM 处理器上运行
- 面向 Linux 和 Windows 平台
- 包括用 C、C++、Java、SCALA、Lua 和 LabVIEW 编写的应用程序
- 与使用 ModBus 和 DNP3 协议的旧设备交谈
- 在满足上述所有要求的同时进行实时控制
在这篇博文中,我将讨论我们面临的现实问题以及 RTI Connext ® 中包含的工具如何 DDS Professional 帮助我们在短短几天内解决了我们的集成问题。突出显示了大多数项目中遇到的常见问题,并使用特定的 RTI 工具来解决每个问题。在此过程中,您会找到支持视频和文章的链接,供想要深入了解的人使用。我希望您会发现这是学习如何应用 RTI 工具使您的 DDS 开发更快更容易的有用起点。
大演示
这是智能电网互操作性面板的开放现场消息总线 (OpenFMB) 的第一个工作演示,这是一种实时控制电网边缘设备的新方法,通过应用 DDS 等物联网技术。
以下是显示硬件架构、操作系统和语言的系统框图:
<人物>
当我们将个体参与者带入网络时,我们遇到了许多问题。挑战和我们用来解决每个挑战的工具的描述如下。扫描标题列表,看看您是否必须在 DDS 系统中调试这些问题中的任何一个,然后查看链接以了解一些新技巧。这样做时,请考虑如何在没有提到的工具的情况下尝试诊断问题。
问题:网络配置问题
工具:RTI DDS Ping橡树岭国家实验室的团队正在开发将成为主显示器的 LabVIEW GUI。他们的笔记本电脑无法看到来自网络上任何客户端的数据。我们检查了基础知识以确保他们的机器在同一子网中 - 始终首先检查基础知识!虽然标准 ping 实用程序可以确认机器之间的基本可达性,但它不会检查 DDS 发现所需的端口是否打开。 rtiddsping 实用程序正是这样做的,它在几秒钟内告诉我们,安装在他们政府发行的笔记本电脑上的防火墙正在阻止 DDS 发现流量。有关如何检查基础知识的详细信息,请参阅此社区帖子 .
问题:我的应用是否在发送数据?
工具:间谍、管理控制台首次使用 DDS 的供应商的一个常见问题是他们的应用程序是否正常运行:它是否以适当的时间间隔发送数据,数据是否有意义?为了快速检查,我们使用了 RTI DDS Spy 实用程序。 Spy 提供了一个简单的订阅者,可以有选择地过滤特定类型和主题,并且可以打印它收到的各个样本,让您可以快速查看您的应用程序正在编写的数据。每个供应商在最初启动他们的应用程序后都使用 DDS Spy 作为健全性检查。
有时同一主题的更新可能来自系统中的多个发布者。不确定哪一个写了最新的更新? Spy 的命令行开关(“-showSampleIdentity”)允许您查看更新的来源。
Spy 是一个控制台应用程序,可以部署在嵌入式目标上进行基本测试。体积小、启动快、简单是它的主要优点。使用详情在这里。
问题:数据类型不匹配
工具:管理控制台、监视器一位供应商报告说,在早期的测试中,他们看到了来自其他应用程序之一的数据,而现在却没有。 Admin Console 很快向我们展示了数据类型不匹配是罪魁祸首——即两个具有相同名称但数据类型不同的主题。这些类型的不匹配可能难以诊断,尤其是对于具有许多成员的大型类型。管理控制台利用 DDS 以数据为中心的特性来检查系统中每个应用程序所理解的数据类型。然后,它显示了一个简化视图和一个“等效 IDL”视图,以便于比较并排窗格中的类型。在您没有来自每个应用程序的源 IDL 的情况下,这尤其有价值。
在这种情况下,一个供应商没有与最新 IDL 的 GitHub 存储库同步,因此他们使用的是旧版本的文件。他们从 GitHub 中提取了最新的文件,rtiddsgen 为它们创建了新的特定于类型的代码,在快速重新编译后,他们的应用程序能够读写更新的主题。

问题:QoS 不匹配
工具:管理控制台、监视器除了发现之外,服务质量 (QoS) 不匹配是 DDS 用户在集成过程中遇到的最常见问题。有这么多旋钮要转动,您如何确保设置兼容?起初,OpenFMB 项目有相当多的 QoS 不匹配。管理控制台会快速发现这些并告诉您发生冲突的特定 QoS 设置。您甚至可以单击 QoS 名称并直接转到文档。管理控制台使用发现期间共享的 QoS 信息来检测不匹配。

问题:系统是否按预期运行?
工具:管理控制台、监视器虽然 Spy 为实时数据提供基本的文本输出,但您无法通过图表来查看数据随时间的变化情况。对于更复杂的数据可视化,我们求助于管理控制台。 Admin Console 中内置的数据可视化功能对快速确定整个系统的工作方式有很大帮助。它甚至允许我们滚动浏览历史数据,以更好地了解我们是如何到达当前状态的。要了解有关数据可视化的更多信息,请观看此简短介绍视频或此深入了解视频。

问题:性能调优
工具:监视器、管理控制台说到性能调优,Monitor 应该是您的首选工具。 Monitor 与 DDS 库的特殊版本一起工作,该版本定期从您的应用程序发布实时性能数据。调试库的干扰最小,数据由 Monitor 收集和呈现。
使用Monitor,可以了解:
- 发送和接收统计
- 错过最后期限
- 缓存上的高水位标记
- QoS 不匹配
- 数据类型冲突
- 样品丢失或拒绝
- 失去活力
需要注意的是,并非每个 QoS 设置都会在发现期间公布。许多 QoS 设置适用于应用程序的本地资源管理和性能调整,并且在发现期间不会发送这些设置。使用 Monitor 您也可以检查这些。有关 Monitor 的精彩介绍,请观看此视频。
问题:在飞行中转换数据
工具:带有 Lua 的原型机、用于 LabVIEW 的 DDS 工具包我们想要一个大的 GUI 来实时显示微电网中发生的事情。橡树岭国家实验室的团队自愿在 LabVIEW 中创建了一个 GUI。 Labview 的 DDS 工具包允许您从 DDS 应用程序中获取数据并在 LabVIEW 虚拟仪器 (VI) 中使用它。但是,正如我们发现的那样,存在一些限制。 Toolkit 不处理 OpenFMB 数据模型中的某些类型使用的序列数组。我们需要一个快速的解决方案,让 LabVIEW VI 能够读取这些复杂的数据类型。
Connext DDS Pro 5.2 工具箱中的一个很酷的新工具是带有 Lua 的 Prototyper。 Prototyper 允许您快速创建支持 DDS 的应用程序,几乎不需要编程:在 XML 中定义您的主题和域参与者,添加一个简单的 Lua 脚本,您可以立即进入 DDS 域。 (查看 Gianpiero 在 Prototyper 上的博文)
一天晚上回到酒店,我编写了一个简单的 Lua 脚本,它允许 Prototyper 读取包含序列数组的复杂 DDS 主题,然后将它们重新发布到不同的扁平主题以供使用通过LabVIEW GUI。我能够使用实验室早期记录的实时数据对其进行离线测试,这让我们...
问题:开发脱节
工具:用 Lua 录制、回放、原型制作地理上分散的开发团队构建了 OpenFMB 演示。除了在诺克斯维尔的那几天,团队中没有人可以同时访问微电网中的所有组件。那么,当您无法访问系统中的其他设备时,如何为您的拼图编写代码?
当我在 LabVIEW GUI 的 Lua 桥接器上工作时,我使用了 Connext Pro Record 和 Replay 服务。在实验室中,当我们通过所有用例运行系统时,我记录了大约 10 分钟的实时数据。那天晚上晚些时候,在酒店里,我能够在处理 Lua 脚本时回放这些数据。重播允许您有选择地播放主题,循环播放以使其连续运行。您还可以选择以更快的速度播放数据 - 这可以节省大量时间,让您能够在几分钟内模拟数天或数小时的运行时间。

Prototyper 在运行后所做的一件非常巧妙的事情就是定期重新加载 Lua 脚本。这使得开发到 LabVIEW 的桥梁非常快速:以加速模式连续重播数据;我在 Lua 脚本上打开了一个编辑器;当我进行并保存更改时,它们会立即反映在不断运行的 Prototyper 中——无需重新启动即可查看脚本的更改。转换脚本只用了几个小时就完成了。
Prototyper 在快速创建应用程序以生成模拟数据方面也派上了用场。 LabVIEW GUI 是完全离线开发的,没有任何真实世界的设备,使用由重播服务生成的一些主题以及通过 Prototyper 桥接或模拟的其他主题。我将一个模拟器脚本通过电子邮件发送给 ORNL,他们会做一些 LabVIEW 工作并向我发送一个更新的 VI,然后我会在本地运行它以验证它。 ORNL 在将来自 DDS 域的实时数据与来自 SGIP 卡通片的视觉元素进行整合方面做得非常出色,而 GUI 是演示的核心。

主要要点
几周后当我们出现在新奥尔良时,整个系统在大约 30 分钟内启动,考虑到一些应用程序(如 LabVIEW GUI),这是非常了不起的甚至从未使用过实际的硬件在网络上。一切正常。
RTI Connext DDS Professional 提供的丰富工具集使我们能够在诺克斯维尔的短短一周内快速解决我们的集成问题,并在许多远程位置进行开发。 Admin Console、Monitor、DDS Ping 和 DDS Spy 使我们的系统启动并运行。 Record、Replay 和 Prototyper 使远程开发团队可以在没有真正硬件的情况下工作。 DDS Toolkit for LabVIEW 使我们能够快速创建复杂的 GUI。甚至在活动结束后,我们还可以继续使用这些工具进行开发和虚拟演示。
了解详情:
自动驾驶汽车生产»
自治系统中的连通性»
什么是DDS? »
Connext DDS Professional »
什么是工业物联网? »
物联网技术
- Connext DDS 的 Telegraf 插件:使用 DDS 和 InfluxDB 构建时间序列监控系统
- Connext DDS 和工业物联网:需要了解的前 5 件事
- ROS2 + DDS:再玩一次
- AUTOSAR 自适应平台 18.03:现在使用 DDS!
- 使用 Python 介绍用于 Connext DDS 的 RTI 实验室和连接器
- Connext DDS 5.3 现已发布,可帮助您构建 IIoT 系统!
- 如何处理数据?!
- 抵抗是徒劳的——保护您的公司免受不遵守数据保护法规的影响
- 是时候改进您的 S&OP、数据和规划系统
- 使用 5 个简单工具减少瓶颈
- 使用 Nexus Apps 创建您的操作环境
- 简化成功:帮助您加快生产线速度的 3 种工具