LabVIEWCompactRIO 开发指南12 LabVIEWCompactRIO 开发指南12 第四章网络通信的最佳实践

简介: LabVIEWCompactRIO 开发指南12 LabVIEWCompactRIO 开发指南12 第四章网络通信的最佳实践

LabVIEWCompactRIO 开发指南12

第四章

网络通信的最佳实践

网络通信

对于嵌入式CompactRIO应用程序,与远程客户机的通信通常是项目的关键部分。嵌入式应用程序通常充当“数据服务器”,因为它们的主要角色是向客户机报告信息(状态、获取的数据、分析的数据等)。它们通常还能够响应来自客户机的命令,以执行特定于应用程序的活动。

图4.1 CompactRIO系统通过以太网与远程客户端通信

选择网络协议

可以从LabVIEW中的几种数据机制中选择表4.1中列出的一种或多种通信模型。在选择数据传输机制时,请考虑以下因素。

通信模型


第1章和第3章讨论的通信模型既适用于进程间通信,也适用于网络通信。这些模型是当前值数据(标签)、更新、流和基于命令/消息的通信。在选择网络机制时,了解所需的数据传输类型是最重要的考虑因素。表4.1提供了在网络应用程序中使用当前值数据(标记)、更新、流或基于命令的数据通信的示例。


表4.1 通信模型用例示例


ae12cf3adde0bd6303f042469358152f.png


网络配置


网络配置是另一个重要的考虑因素。在多客户机应用程序中,客户机可以在任意时间连接和断开。TCP/IP协议要求实现一个连接管理器,除了跟踪客户端需求和单独服务每个客户端之外,还可以动态地接受和服务任意数量的传入连接。虽然这是可能的,但它需要在开发方面进行大量的工作。另一方面,网络发布的共享变量具有带有内置连接管理器的共享变量引擎的特性,该连接管理器为处理任何传入的客户机连接。由于TCP/IP消息传递(STM)和CVT客户端通信(CCC)都基于TCP,因此它们还要求开发一个连接管理器。


当在1:N或N:1配置中使用网络流时,还需要一些额外的开发,因为它们是作为点对点通信模型实现的。这意味着基于网络流的应用程序连接到10个客户端,至少需要10个流。然而,由于网络流是流数据最可靠和易于使用的机制,因此它们仍然是流的一个很好的选择。对于消息和命令,考虑在Network Streams上使用共享变量。


bb9a1bc72fe0cdd8e756250f57dff887.png


图4.2 在选择网络协议时考虑系统配置。


对接操作系统和第三方应用


NetworkStreams和网络发布的共享变量都基于专有协议,对某些操作系统和第三方应用程序的通信提供有限的支持,如表4.2所示。后面讨论的其他机制,包括TCP/IP、UDP、STM、CCC和Web服务,都基于标准协议,使它们能够将数据传输到任何操作系统或第三方应用程序。


表4.2 网络流和共享变量支持限制

61221e54eab394927579088c57f554bc.png




虚拟仪器的版本


表4.3中推荐的一些数据传输机制并不适用于所有版本的LabVIEW:


■网络流在LabVIEW 2010及以后的版本中工作


Web服务可在LabVIEW 2009及更新版本中工作


■共享变量在LabVIEW 8.0及更高版本中工作


如果选择了这三种机制中的一种,但没有使用兼容版本的LabVIEW,请使用推荐的机制,用于相同的通信模型和网络配置,可以与第三方UI通信。


安全


如果需要内置加密和身份验证等安全特性,请使用基于HTTPS的Web服务来实现通信。Web服务支持与LabVIEW UI、第三方UI和Web浏览器之间的数据通信。如果正在使用NI的实时目标上的Web服务器来实现HTTPS通信,请考虑启用Web服务API密钥以增加安全性。


易用性VS性能和可靠性


最后要考虑的是易用性与性能和可靠性之间的权衡。如果正在开发一个快速原型,并且不打算在稍后的关键任务应用程序中使用它,那么可以使用拖放式网络发布的共享变量来满足大多数通信需求。然而,与其他机制相比,这些变量会产生更多的CPU和内存开销,这对于高性能或高可靠性应用程序来说可能是不可接受的。TCP/IP、Simple TCP/IP Messaging (STM)、CVT Client Communication (CCC)、UDP和Web服务基于标准协议,在正确实现的情况下提供高性能和可靠性。Network Streams虽然基于专有协议,但对性能进行了优化,并且具有增强的连接管理,如果由于网络中断或其他系统故障而导致断开连接,则可以自动恢复网络连接。


表4.3列出了基于前面讨论的三个因素选择数据传输机制的一般建议:通信模型、网络配置和要向其发送数据的应用程序类型。本节中讨论的其他因素也应该考虑在内,但是这个表提供了一个起点。


表4.3 推荐的网络协议

ce95e2b8f4b95c3d207baa8344644b7e.png



下一节解释如何实现表4.3中描述的每个网络协议,并提供下载和安装未包含在LabVIEW中的协议的功能说明。


需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。附件中的资料这里无法上传,可去公司网站搜索下载。

相关文章
|
1月前
|
容灾 网络协议 数据库
云卓越架构:云上网络稳定性建设和应用稳定性治理最佳实践
本文介绍了云上网络稳定性体系建设的关键内容,包括面向失败的架构设计、可观测性与应急恢复、客户案例及阿里巴巴的核心电商架构演进。首先强调了网络稳定性的挑战及其应对策略,如责任共担模型和冗余设计。接着详细探讨了多可用区部署、弹性架构规划及跨地域容灾设计的最佳实践,特别是阿里云的产品和技术如何助力实现高可用性和快速故障恢复。最后通过具体案例展示了秒级故障转移的效果,以及同城多活架构下的实际应用。这些措施共同确保了业务在面对网络故障时的持续稳定运行。
|
4月前
|
安全 物联网 物联网安全
探索未来网络:物联网安全的最佳实践
随着物联网设备的普及,我们的世界变得越来越互联。然而,这也带来了新的安全挑战。本文将探讨在设计、实施和维护物联网系统时,如何遵循一些最佳实践来确保其安全性。通过深入分析各种案例和策略,我们将揭示如何保护物联网设备免受潜在威胁,同时保持其高效运行。
105 5
|
5月前
|
机器学习/深度学习 安全 物联网安全
探索未来网络:物联网安全的最佳实践与创新策略
本文旨在深入探讨物联网(IoT)的安全性问题,分析其面临的主要威胁与挑战,并提出一系列创新性的解决策略。通过技术解析、案例研究与前瞻展望,本文不仅揭示了物联网安全的复杂性,还展示了如何通过综合手段提升设备、数据及网络的安全性。我们强调了跨学科合作的重要性,以及在快速发展的技术环境中保持敏捷与适应性的必要性,为业界和研究者提供了宝贵的参考与启示。
|
5月前
|
存储 安全 物联网
探索未来网络:物联网安全的最佳实践与挑战
在数字化浪潮中,物联网作为连接万物的关键技术,已深刻改变我们的工作与生活方式。然而,随着其应用的广泛化,安全问题日益凸显,成为制约物联网发展的重要瓶颈。本文旨在深入探讨物联网的安全架构、风险点及应对策略,通过分析当前技术趋势和实际案例,提出一套切实可行的安全防护方案,以促进物联网技术的健康发展。
|
5月前
|
数据采集 存储 监控
网络爬虫的最佳实践:结合 set_time_limit() 与 setTrafficLimit() 抓取云盘数据
本文探讨了如何利用 PHP 的 `set_time_limit()` 与爬虫工具的 `setTrafficLimit()` 方法,结合多线程和代理 IP 技术,高效稳定地抓取百度云盘的公开资源。通过设置脚本执行时间和流量限制,使用多线程提高抓取效率,并通过代理 IP 防止 IP 封禁,确保长时间稳定运行。文章还提供了示例代码,展示了如何具体实现这一过程,并加入了数据分类统计功能以监控抓取效果。
91 16
网络爬虫的最佳实践:结合 set_time_limit() 与 setTrafficLimit() 抓取云盘数据
|
6月前
|
开发者 图形学 API
从零起步,深度揭秘:运用Unity引擎及网络编程技术,一步步搭建属于你的实时多人在线对战游戏平台——详尽指南与实战代码解析,带你轻松掌握网络化游戏开发的核心要领与最佳实践路径
【8月更文挑战第31天】构建实时多人对战平台是技术与创意的结合。本文使用成熟的Unity游戏开发引擎,从零开始指导读者搭建简单的实时对战平台。内容涵盖网络架构设计、Unity网络API应用及客户端与服务器通信。首先,创建新项目并选择适合多人游戏的模板,使用推荐的网络传输层。接着,定义基本玩法,如2D多人射击游戏,创建角色预制件并添加Rigidbody2D组件。然后,引入网络身份组件以同步对象状态。通过示例代码展示玩家控制逻辑,包括移动和发射子弹功能。最后,设置服务器端逻辑,处理客户端连接和断开。本文帮助读者掌握构建Unity多人对战平台的核心知识,为进一步开发打下基础。
225 0
|
6月前
|
安全 开发者 数据安全/隐私保护
Xamarin 的安全性考虑与最佳实践:从数据加密到网络防护,全面解析构建安全移动应用的六大核心技术要点与实战代码示例
【8月更文挑战第31天】Xamarin 的安全性考虑与最佳实践对于构建安全可靠的跨平台移动应用至关重要。本文探讨了 Xamarin 开发中的关键安全因素,如数据加密、网络通信安全、权限管理等,并提供了 AES 加密算法的代码示例。
88 0
|
6月前
|
SQL 安全 API
数字堡垒之下:网络安全漏洞、加密技术与安全意识的博弈探索RESTful API设计的最佳实践
【8月更文挑战第27天】在数字化浪潮中,网络安全成为守护个人隐私与企业资产的关键防线。本文深入探讨了网络漏洞的成因与影响,分析了加密技术如何为数据保驾护航,并强调了提升公众的安全意识对于构建坚固的信息防御系统的重要性。文章旨在为读者提供一场思维的盛宴,启发更多关于如何在日益复杂的网络世界中保护自己的思考。
|
6月前
|
监控 安全 网络安全
保护网络免受 DDoS 攻击的最佳实践
【8月更文挑战第24天】
115 1
|
7月前
|
缓存 数据安全/隐私保护 Kotlin
Kotlin 中的网络请求代理设置最佳实践
Kotlin 中的网络请求代理设置最佳实践

热门文章

最新文章