共享变量可用于在项目的VI之间或联网VI之间读写数据。在项目浏览器窗口右键单击RT终端,从快捷菜单中选择新建»变量,打开共享变量属性对话框,从中创建、使用和配置共享变量。共享变量是可在下列情况下传递数据:程序框图两个无法连线的位置之间、RT终端上运行的两个VI之间、不同RT终端上联网的VI之间。单进程共享变量用于在一个RT终端上本地共享数据,网络发布共享变量用于在不同计算机的数据记录VI之间共享数据。

Real-Time模块在共享变量中新增了FIFO功能。启用共享变量实时FIFO后,共享数据不会影响VI的确定性。RT FIFO不支持大小变化的数据类型(例如,簇、字符串和变体)。

注: 关于共享变量的性能比较和高级编程理论,请访问NI网站。

创建共享变量

使用共享变量属性对话框在RT终端上创建共享变量。要访问该对话框,在项目浏览器窗口右键单击终端或库,从快捷菜单中选择新建»变量。在终端上选择新建»变量,可在终端下新建一个库,并将变量添加至库。在现有库中选择新建»变量,可在库中新建一个变量。右键单击库,从快捷菜单中选择部署,将共享变量部署至终端。

注: 调用变量的VI运行时,LabVIEW自动部署变量,除非用户禁用RT终端的自动部署选项。

共享变量引擎

在终端上创建网络部署共享变量时,终端上的共享变量引擎即开始成为共享变量的服务方。共享变量引擎将共享的数据通过网络发送至其他终端。在项目浏览器窗口选择特定的终端创建共享变量,可选择共享变量所服务的终端。

当某个RT终端使用网络发布共享变量时,该终端控制数据,其他终端不影响共享变量的可用性。如可用性不是考虑因素,可在主机上使用共享变量。这样可释放终端上的处理器资源,使不支持共享变量引擎的终端也可访问共享变量,并使用户可使用LabVIEW DSC模块的安全功能。

下图显示了Real-Time模块的应用,这些应用通过单进程或网络发布共享变量在本地VI之间或联网VI之间共享数据:

RT终端上的确定性VI与终端上的其他VI通过单进程共享变量B共享数据。确定性VI还通过网络发布的共享变量A与主机上的VI共享数据。A启用了RT FIFO。RT终端上的网络发布共享变量将数据发送到终端上的共享变量引擎,然后与主机共享数据。

注: 必须在RT终端上安装Network Variable Engine和Variable Client Support,才能在终端上使用网络发布共享变量。RT终端需要至少32 MB内存才能运行共享变量引擎。但是,终端上内存少于32 MB时,可在终端上安装Variable Client Support,然后使终端引用其他主机上的网络发布共享变量。

创建共享变量后,可使用共享变量属性对话框修改变量的配置。在项目浏览器窗口右键单击共享变量,从快捷菜单中选择属性,可打开该对话框。修改共享变量的属性时,对变量的改动在部署后生效。

启用Real-Time FIFO

在共享变量属性对话框的实时FIFO页上,可启用共享变量的实时FIFO功能。勾选启用实时FIFO复选框,使用单元素或多元素FIFO确定性共享数据。

单元素FIFO

单元素FIFO共享最新的数据值。共享变量接收到新值时会覆盖原来的数据值。只在需要最新值时使用该选项。如要使用数组或波形数据类型,为FIFO缓冲区配置数组元素的大小和波形的大小。

多元素FIFO

多元素FIFO缓存共享变量共享的值。用户可将FIFO缓冲区的大小和元素配置为与网络页中使用缓冲部分相同,或者自定义FIFO的大小和元素。

注: 对于单元素FIFO和多元素FIFO,如变量包含数组或波形数据,则必须将FIFO的大小配置为要共享的数据相同的大小。如共享变量启用了网络缓冲和RT FIFO,网络缓冲区必须与一个FIFO元素同等大小。共享与指定大小不同的数据,会导致内存分配问题,影响确定性。
注: 波形中包含可变大小的元素,与实时FIFO不兼容。因此,在包含波形数据的共享变量上启用实时FIFO,波形数据的可变元素不会被传输。