0

    创景科技 | 使用Connext专业版工具加速产品上市时间

    2023.04.26 | admin | 236次围观

    直到这个演示为止的前两周。

    我们才有这样一个机会开发一个实用微电网控制系统,系统要求如下:

    这篇文章中,我会讨论我们开发系统时所面临的实际问题虚拟网络编辑器没有桥接模式,还有 RTI Connext DDS Pro包含的工具怎样在短短几天内帮我们解决系统集成的问题。很多项目中遇到的常见问题被突显了出来,针对每一个问题我们使用特定的RTI工具进行处理。阅读过程中,如果你想要深入的了解相关问题,请查看对应支持的视频/文章链接。希望你能学会运用RTI 工具的方法,这能帮你能更快、更容易地进行DDS开发,你将会发现这是一个非常好的起点。

    大的演示

    这是智能电网互通性事务委员会开放域消息总线(OpenFMB)的第一个工作演示。OpenFMB是一种通过运用像DDS这样的互联网技术,在电网边缘实时控制设备的新方式。 (查看这个链接 获取更多信息)。

    下面的框图展示了这个系统使用的硬件结构、操作系统和编程语言:

    随着在网络上引入各个参与者,我们遇到了一系列问题。以下描述了我们遇到的挑战以及解决每个问题时使用的工具。浏览标题,看看你是否在自己DDS系统中调试过这些问题,并打开链接学习一些新的技巧。思考一下,当你做的时候,不考虑使用提及的工具你将如何诊断这些问题。

    问题:网络配置问题

    工具:RTI DDS Ping

    来自橡树岭国家实验室(Oak Ridge National Labs)的团队负责LabVIEW 图形用户界面方面的工作,这个界面将作为演示的主显示界面。由于他们的笔记本不能观测到网络上任何客户端的数据,所以我们检测基础设施以确保他们的设备在相同的子网——第一步总是检查基础设施!虽然标准ping实用程序能够检测设备间基本的连通性,但它却不能检测DDS discovery所必需的端口是否打开。rtiddsping实用程序恰好可以做这件事,它在很短时间内便帮我们找到了原因,实验室团队政府颁发的笔记本上安装的防火墙程序阻止了DDS discovery的通信。请查看这个帖子,以了解怎样更好的检查基础设施。

    问题:我的应用在发送数据吗?

    工具:Spy,Admin Console

    应用程序是正在否常工作——这是DDS供应商第一次使用DDS所关心的一个常见问题:应用程序是否以确定的周期发送数据?发送的数据是否有效?我们可以使用RTI DDS Spy实用程序做一个快速测试。Spy提供了一个简单的订阅者,它可以有选择地过滤指定的类型和主题,还能够打印收到的每个数据样点,帮你快速查看应用程序正在发送的数据。每一个供应商在最初启动他的应用程序后,都可以使用DDS Spy做一个合理性检测。

    有时,同一主题的更新数据可能来自系统中多个发布者,以至于不能确定哪一个发布者做了最后的更新。Spy的“- showSampleIdentity”命令行开关可以帮你查看更新源自何处。

    Spy是一个控制台应用程序,能够部署在嵌入式系统用于基础测试,小巧、启动迅速和简单易用是它的主要优点。有关Spy的更详细使用请看这里。

    问题:数据类型不匹配

    工具:Admin Console虚拟网络编辑器没有桥接模式,Monitor

    来自于一个厂商报告——在早期的测试中,他们能发现来自另一个应用的数据,但现在他们发现不了那些数据。Admin Console帮我们很快检测到这个问题是由数据类型不匹配引起的——也就是说,拥有相同名称的两个主题却拥有不同的数据类型。这些不匹配的数据类型很是难以诊断,尤其是含有很多成员的大数据类型。Admin Console 利用DDS数据中心解析数据类型,最后被系统中每个应用所理解。Admin Console还能显示一个简化视图和一个“等价 IDL”视图,这让在并排面板中进行类型比较更容易。在你没有应用程序源IDL的情况下,Admin Console的这些功能显的尤为重要。

    这个例子中,由于供应商还没从GitHub库同步他们最新的IDL,因此,他们还使用旧版本的文件在工作。问题找到之后,他们从GitHub下载最新的文件并使用rtiddsgen生成新数据类型的特定代码。经过快速重编译,他们的应用程序能够读/写更新后的主题。

    Admin Console shows data types

    问题:Qos不匹配

    工具:Admin Console,Monitor

    Discovery之后,QoS不匹配是DDS用户在集成期遇到的最常见问题。因为有非常多的QoS可以调节设置,你得确保它们怎样才能兼容的设置在一起。在这里,OpenFMB项目有其相当多不匹配的QoS。Admin Console帮你快速地定位出具体有冲突设置的QoS,你甚至可点击QoS名称直接进入QoS描述文档。Admin Console利用QoS在discovery期共享的信息来检测QoS的不匹配。

    Admin Console identifies a reliability QoSmismatch

    问题:系统运行正常吗?

    工具:Admin Console, Monitor

    Spy只对活跃数据提供基本的文本输出,无法帮你绘制一张能够随时观测数据变化的图表。对复杂数据的可视化,我们转向使用Admin Console。在需要快速确定整个系统怎样工作的时侯,Admin Consol内建的数据可视化特性对我们有巨大的帮助。它甚至允许我们通过回滚历史数据来更好的理解我们的系统是怎样达到当前的状态。这个简短视频描述了更多数据可视化的内容,更详细的视频请看这里。

    Visualize your data with Admin Console

    问题:性能优化

    工具:Monitor, Admin Console

    在做性能调优的时候,Monitor应当是你常用的工具。Monitor和一个特定版本的DDS库一起工作,这个库从你应用中定期发送实时性能数据。若需要Monitor收集和显示数据,至少要加入调试库一起使用。

    使用 Monitor,你可以学习到:

    需要注意的是,并不是每一个QoS设置在discovery期间都值得被关注。很多QoS设置用于应用程序本地资源管理和性能调优上,它们在discovery期间并不被发送,可以使用Monitor对这些QoS进行检测。若要了解Monitor更详实的介绍,请看这个视频。

    问题:随意转换数据

    工具:Prototyper with Lua, DDS Toolkit for LabVIEW

    我们想要一个大的图形用户界面,用来显示实时微电网系统中正在发生的情况,橡树岭国家实验室团队自发地使用LabVIEW创建一个图形用户界面。DDS用于LableView的工具包可以让你从DDS应用中抓取数据并用于LabVIEW 虚拟器。然而,我们发现这里有一些限制,这个工具包不能够处理数组序列和OpenFMB中使用的一些数据类型。我们急需一个解决方案,能使LabVIEW 虚拟仪器读取这些复杂数据类型。

    Connext DDS Pro 5.2工具箱里有一个非常酷的新工具——Prototyper with Lua。在很少或不用编程的情况下,Prototyper可以帮你快速地创建一个启用了DDS的应用:只需要在XML中定义你的主题和域名参与者,然后添加一个简单的Lua脚本,你就可以立即工作在一个DDS 域名的环境中(查看 Gianpiero在Prototyper上的博客)。

    回到酒店的那晚,我写了一个简单的Lua脚本,这个脚本使Prototyper能读取一些复杂的DDS 主题(包括数组序列),然后转发到一些有差异且相关的主题上,以供LabVIEW 图形用户界使用。这个过程中,我可以使用早期在实验室记录的一些活跃数据来做离线测试,这给我们带来了无可估量的好处。

    问题:脱机开发

    工具:Record, Replay, Prototyper with Lua

    OpenFMB 演示程序由一个在地理上分散的开发团队来开发。除了在Knoxville的那几天,团队中没有一个人能在同一时间访问微电网中的所有组件。因此,在你不能访问系统一些设备却要为其编写程序时,真的很为难。

    在开发LabVIEW 图形用户界面的Lua bridge的时候,我使用了Connext Pro Record and Replay服务。我通过在实验室运行所有用例的时间,记录了大约十分钟的活跃数据。之后的那晚,通过RTI DDS Replay工具,我回放这些数据到工作的Lua脚本中。Replay允许你选择回放的主题、循环回放或者使其连续运行。你也可以选择加速播放数据——这可以让你在短短几分钟的时间仿真数天或数小时的数据,从而节省大量的时间。

    Recording Console

    Prototyper做的非常棒的一件事情是,它一旦运行起来就会定时加载Lua脚本。这个特性使我在数小时内就迅速完成了LabVIEW的Lua bridge脚本开发工作。首先,我让Replay以加速模式持续播放数据;然后,打开一个Lua脚本编辑器;最后,实验结果随着我对数据的取存变化而直接反映在持续运行的Prototyper上——不需重启Prototype,就可以观测到因脚本变动而引起的变化。

    Prototyper还能快速方便的创建为生成仿真数据而用的应用程序。LabVIEW 图形用户界面程序在没有任何实际设备环境下被完全地开发出来,其中使用的一些主题是通过Replay 服务生成,另一些部分使用Prototype桥接或仿真。首先,我通过邮件给橡树岭国家实验室发送一份模拟脚本程序;然后,他们做一些LabVIEW的工作并且发送一个更新后的LabVIEW虚拟器给我;最后,他们在本地运行LabVIEW 图形用户界面以验证结果。橡树岭国家实验室在集成DDS域实时数据与SGIP卡通漫画虚拟元素的工作中,取得了令人惊叹的成果,还有,他们开发的LabVIEW图形用户界面是这个演示的核心。

    The final GUI written in LabVIEW

    要点

    当我们几周后到新奥尔良做演示的时候,整个系统在半小时内就上线了。由于之前从没有像LabVIEW图形用户界面这样的应用程序与真实硬件一同部署在网络中的例子,所以这件事十分引人注目!一切都工作的很好。

    在Knoxvile的短短几周,RTI Connext DDS Pro提供的丰富的工具包,帮我们快速地解决了系统集成以及在多个远程位置共同开发的难题。Admin Console,Monitor,DDS Ping和DDS Spy工具让我们的系统启动并且运行起来。Record,Replay和Prototype工具使远程开发团队在缺少实际硬件的情况下也能够工作。用于LabVIEW 的DDS 工具包帮助我们快速地创建复杂的图形用户界面。甚至在这件事之后,我们还可以继续用这些工具做开发和虚拟演示。

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    发表评论