Scadao 发表于 2018-9-4 14:26:51

如何使用共享变量和 DataSockets 在网络上的两个计算机之间传递数据?

问题: 我想在分别处于网络上两个不同计算机上的VI之间进行通信。如何使用共享变量和 DataSockets 实现这种应用?

解答: 若要在网络上的两个计算机之间使用共享变量进行通信,那么首先要将其中一个计算机指定为主服务器,另一台作为客户端。在服务器端,要建立一个 LabVIEW 的项目,项目中要包含所有需要运行的 VI 文件、共享变量,以及存放这些共享变量的共享变量库。接着,在客户端的计算机中,VI将会通过 DataSockets 的方式读写这些变量。下面是如何设定两个计算机的详细步骤。

服务器

[*]在LabVIEW中选择 File»New Project 创建一个新的项目文件。在项目浏览器窗口右键单击 My Computer 并选择 New»Variable , 打开共享变量的属性设置窗口。
[*]在这个窗口中,设定共享变量的名字和数据类型,并在 Variable Type 中选择 Network Published 。设定完毕后点击 OK ,共享变量将出现在项目浏览器窗口中Untitled Library 1目录下。

http://digital.natinst.com/public.nsf/$CXIV/ATTACH-AEEE-7NZTQ8/$FILE/sharedvarpic.bmp
[*]若要在服务器端的VI中使用这个共享变量,首先要创建一个新的VI:在项目浏览器中右键单击My Computer 并选择 New»VI, 这样将会创建一个新的未命名的VI,并添加至项目当中。
[*]若要在此项目中的VI内对上述共享变量进行读写,需要使用共享变量节点。放置一个共享变量节点的最简单的方法就是将刚刚在项目浏览器中创建好的共享变量直接拖放到程序框图当中。出现在程序框图中的节点默认是用于读取变量的,可以右键点击这个节点并选择 Change to Write ,这样就可以写入变量。

http://digital.natinst.com/public.nsf/$CXIV/ATTACH-AEEE-7NZU7N/$FILE/sharedvarpic2.bmp

客户端

[*]为了能够在客户端计算机上对上述共享变量进行读写,需要使用共享变量控件(注意,不是上面所说的共享变量节点)。首先创建一个VI,用于读写共享变量(这个VI不必包含在一个项目当中)。
[*]接着,在VI前面板上单击右键,在弹出的控件选板当中选择 I/O»Shared Variable Control,并将其拖放至前面板。

http://digital.natinst.com/public.nsf/$CXIV/ATTACH-AEEE-7NZUCB/$FILE/sharedvarcontrol.bmp
[*]现在需要将此共享变量控件与之前在另一个计算机上创建的共享变量关联起来。首先点击此控件右侧的向下箭头,并选择 Browse... ,打开一个浏览共享变量的窗口。在 Network Neighborhood 中,寻找之前创建共享变量的计算机。浏览这个计算机,你会发现这个计算机上全部共享变量库的名字。浏览那个包含你所想要的共享变量的库,并选择想要的共享变量,之后点击 OK。这样可以打开对此共享变量的引用。
[*]若要对此共享变量进行读写操作,在程序框图中将共享变量控件与 DataSocket Read VI 或者DataSocket Write VI 的Connection In 接线端相连 (位于函数选版的 Data Communication»DataSocket 目录下)。由于 DataSocket Read VI 可以读取任意类型的变量,你需要在 Type input 中输入一个常量,其类型要与你所使用的共享变量的类型一致,对于DataSocket Read VI ,写入的数据的类型也要与共享变量一致。在DataSocket Read VI 的数据输入端上无法通过右键单击创建输入控件,这是因为其输入类型是未知的。
下图中展示了如何读取和写入一个双精度类型的共享变量。

http://digital.natinst.com/public.nsf/$CXIV/ATTACH-AEEE-7NZUZ8/$FILE/datasockets.bmp

页: [1]
查看完整版本: 如何使用共享变量和 DataSockets 在网络上的两个计算机之间传递数据?