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开发等相关项目,可联系们。附件中的资料这里无法上传,可去公司网站搜索下载。

相关文章
|
20天前
|
程序员 开发者 Python
Python网络编程基础(Socket编程) 错误处理和异常处理的最佳实践
【4月更文挑战第11天】在网络编程中,错误处理和异常管理不仅是为了程序的健壮性,也是为了提供清晰的用户反馈以及优雅的故障恢复。在前面的章节中,我们讨论了如何使用`try-except`语句来处理网络错误。现在,我们将深入探讨错误处理和异常处理的最佳实践。
|
4天前
|
监控 安全 网络安全
使用 Fortinet 安全 SD-WAN 解决方案进行全球跨国公司网络设计的最佳实践
使用 Fortinet 安全 SD-WAN 解决方案进行全球跨国公司网络设计的最佳实践
36 3
|
20天前
LabVIEWCompactRIO 开发指南18 使用网络流发送消息和命令
LabVIEWCompactRIO 开发指南18 使用网络流发送消息和命令
18 0
|
20天前
|
网络协议 程序员
LabVIEWCompactRIO 开发指南17 网络流
LabVIEWCompactRIO 开发指南17 网络流
14 0
|
20天前
LabVIEWCompactRIO 开发指南16 有效使用网络共享变量的技巧
LabVIEWCompactRIO 开发指南16 有效使用网络共享变量的技巧
18 1
|
20天前
|
监控 Linux API
LabVIEWCompactRIO 开发指南15 托管和监控网络发布的共享变量
LabVIEWCompactRIO 开发指南15 托管和监控网络发布的共享变量
16 0
LabVIEWCompactRIO 开发指南15 托管和监控网络发布的共享变量
|
20天前
|
监控 安全 数据库
LabVIEWCompactRIO 开发指南13 网络发布的共享变量特性
LabVIEWCompactRIO 开发指南13 网络发布的共享变量特性
17 0
|
20天前
|
网络协议 Windows
LabVIEWCompactRIO 开发指南13 网络发布的共享变量
LabVIEWCompactRIO 开发指南13 网络发布的共享变量
14 0
|
9月前
|
弹性计算 网络协议 数据库
弹性计算Clouder认证:企业级云上网络构建——课时8:企业网络架构最佳实践
弹性计算Clouder认证:企业级云上网络构建——课时8:企业网络架构最佳实践
111 0
|
10月前
|
人工智能 安全 网络安全
防范网络攻击的最佳实践和安全意识培养
防范网络攻击是每个人和组织都需要关注的重要问题。通过建立综合的安全策略、采用适当的技术措施和培养安全意识,我们可以更好地保护个人隐私和组织数据免受网络攻击。未来,随着技术的不断进步,我们有信心在数字化时代创造更加安全的网络环境。
154 1