LabVIEWCompactRIO 开发指南12
第四章
网络通信的最佳实践
网络通信
对于嵌入式CompactRIO应用程序,与远程客户机的通信通常是项目的关键部分。嵌入式应用程序通常充当“数据服务器”,因为它们的主要角色是向客户机报告信息(状态、获取的数据、分析的数据等)。它们通常还能够响应来自客户机的命令,以执行特定于应用程序的活动。
图4.1 CompactRIO系统通过以太网与远程客户端通信
选择网络协议
可以从LabVIEW中的几种数据机制中选择表4.1中列出的一种或多种通信模型。在选择数据传输机制时,请考虑以下因素。
通信模型
第1章和第3章讨论的通信模型既适用于进程间通信,也适用于网络通信。这些模型是当前值数据(标签)、更新、流和基于命令/消息的通信。在选择网络机制时,了解所需的数据传输类型是最重要的考虑因素。表4.1提供了在网络应用程序中使用当前值数据(标记)、更新、流或基于命令的数据通信的示例。
表4.1 通信模型用例示例
网络配置
网络配置是另一个重要的考虑因素。在多客户机应用程序中,客户机可以在任意时间连接和断开。TCP/IP协议要求实现一个连接管理器,除了跟踪客户端需求和单独服务每个客户端之外,还可以动态地接受和服务任意数量的传入连接。虽然这是可能的,但它需要在开发方面进行大量的工作。另一方面,网络发布的共享变量具有带有内置连接管理器的共享变量引擎的特性,该连接管理器为处理任何传入的客户机连接。由于TCP/IP消息传递(STM)和CVT客户端通信(CCC)都基于TCP,因此它们还要求开发一个连接管理器。
当在1:N或N:1配置中使用网络流时,还需要一些额外的开发,因为它们是作为点对点通信模型实现的。这意味着基于网络流的应用程序连接到10个客户端,至少需要10个流。然而,由于网络流是流数据最可靠和易于使用的机制,因此它们仍然是流的一个很好的选择。对于消息和命令,考虑在Network Streams上使用共享变量。
图4.2 在选择网络协议时考虑系统配置。
对接操作系统和第三方应用
NetworkStreams和网络发布的共享变量都基于专有协议,对某些操作系统和第三方应用程序的通信提供有限的支持,如表4.2所示。后面讨论的其他机制,包括TCP/IP、UDP、STM、CCC和Web服务,都基于标准协议,使它们能够将数据传输到任何操作系统或第三方应用程序。
表4.2 网络流和共享变量支持限制
虚拟仪器的版本
表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 推荐的网络协议
下一节解释如何实现表4.3中描述的每个网络协议,并提供下载和安装未包含在LabVIEW中的协议的功能说明。
需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。附件中的资料这里无法上传,可去公司网站搜索下载。
楼主最近还看过