From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.



实时(Real-Time) VI 与主机(host) VI的通信方法



主要软件:
主要软件版本: 5.0
主要软件修正版本: N/A
次要软件: N/A

问题: 我想在我的实时VI和主机VI 之间互传数据,我有哪些选择?

解答: 有很多种常用的方式可以实现RT目标上的VI与运行Windows操作系统的台式或PXI控制器主机上的VI进行互相通信:

共享变量
TCP
UDP
DataSocket
其他通信方法


共享变量

LabVIEW共享变量是在LabVIEW 8中引入的一种新技术,它使得在LabVIEW 应用中传递数据更容易实现。 共享变量底层实现的细节即用户允许其他用户使用一个单一的程序框图节点在两个LabVIEW 应用中进行通信。另外在LabVIEW Real-Time和Data Logging & Supervisory Control Modules中提供了附加的共享变量的功能,如实时FIFO, 报警, 数据记录, 事件结构支持, 安全性等.

需要LabVIEW共享变量更多信息,请参见:
Developer Zone Tutorial: Using the LabVIEW Shared Variable

TCP 


TCP 是最常用的网络协议, 它也是很多互联网协议,如HTTP and FTP的基础.它在提供良好工作的性能的基础上,同时具有可靠性(不丢失数据)的优势。 可靠性是TCP最重要的特性之一:它保证数据能够最终到达设定的接收端, 或者发送端能够接收到失败信息. 在LabVIEW提供的所有通信标准中,TCP提供了最高的吞吐量和最好的可靠性,在传输大量数据的时候尤其能够体现其高效的特性。

UDP 


另一种常见的网络协议是UDP. 和TCP不同, UDP可能会丢失数据. 这意味着当发送数据时, 不能保证数据能够准确到达目的地. 如果网络过于拥挤或者接收方未成功响应, 一些数据将会丢失. 由于UDP并不考虑数据丢失问题, 它比TCP用了更少的冗余数据, 因此在某些情况下可以提供更快的性能. UDP最适用于隔离网络,此时外界流量不会使网络过于拥挤;或者适用于那些即使丢失一些数据仍能正常工作的应用。

DataSocket 
另一种LabVIEW编程者可使用的数据传输协议是DataSocket. 它是LabVIEW共享变量的先驱,因此发布和使用方式以及前面板绑定方式等都很相似.DataSocket的一个缺点是它不能能处理大量的数据集. 另外,DataSocket服务器只能在Windows系统的机器上运行,而共享变量的引擎可以在Windows系统的机器上和RT目标机上运行.

其他通信方式

在RT系列网络设备上, 同样可以同过串口(RS-232)进行通信. 在RT 系列PXI控制器上,可使用CAN, RS-485, GPIB等其他通信标准. 需要注意的是,大多数的通信协议都是非实时的,因此,为了保证严格定时代码的实时性能,你不能在这部分严格定时(time-critical) VI中进行通信. 你可以将数据传输到同样运行于RT系统上的一个普通优先级的VI中进行通信。

需要上述各种通信方式的范例,请使用NI范例查找器,即在下拉菜单中选择帮助 »查找范例.



相关链接: Developer Zone Tutorial: Using the LabVIEW Shared Variable
KnowledgeBase 372CGCQS. Network Communication to an RT Series DAQ Device

附件:


shared_variable.gif - shared_variable.gifudp.gif - udp.giftcp.gif - tcp.gifvi_server.gif - vi_server.gif


报告日期: 06/10/2002
最近更新: 10/08/2007
文档编号: 2M9ARPEW