使用​LabVIEW​共享​变量

概览

LabVIEW​为​创建​分布​式​应用​提供​了​多种​多样​的​技术​接口。​LabVIEW 8​中​引入​的​共享​变量​为​简化​编​程​应用​向前​迈出​了​重大​一步。​本文​将​介绍​共享​变量,​并​讨论​LabVIEW 8.20​和​LabVIEW 8.5​中​它的​特征​和​性能。

内容

创建​共享​变量

使用​共享​变量,​您​可以​在​同​一个​程序​框​图​的​不同​循环​之间​或者​网络​上​的​不同VI之间​共享​数据。与LabVIEW中​其他​现有​的​数据​共享​的​方法如UDP/​TCP, LabVIEW 队列,实时 FIFO不同,​您​通常​在​编辑​时​使用​属性​对话​框​来​配置​共享​变量,​而​不需要​在​您​的​应用​中​包括​配置​代码。 

您​可以​创建​三​种​类型​的​共享​变量:​单​进程,​网络​发布,​以及​时间​触发​的​共享​变量。​本文​详细​讨论​了​单​进程​和​网络​发布​共享​变量。​请​参考​文​档:使用​时间​触发​网络​和​LabVIEW 8​的​实​时​模​块​完成​以太​网上​的​确定​性​通信来​了解​更多​有关​时间​触发​共享​变量​的​内容。​创建​一个​共享​变量​时,​需要​右​键​点​击​一个​计算​机​设备,​如​项目​树​中的"我的​电脑"或​实​时​目标,​并​选择新建»变量来​显示​共享​变量​属性​对话​框。​在​对话​框​中​可​对​新的​变量​进行​具体​配置。 

您​必须​在​一个​打开​的​项目​中​创建​共享​变量。​在​项目​中​添加​共享​变量​时,​需要在项目​浏览​窗口中右​键​单击​一个​目标,​一个​项目​库,​或者​项目​库​内的​一个​文件​夹,​在​快捷​菜单​中​选择新建»变量来​打开​共享​变量​属性​对话​框。​配置​各个​选项,​之后​单击​确定​按钮。 

如果​您​右​键​点​击​一个​不在​项目​库​中的​目标​或​文件​夹,​并​选择新建»变量从​快捷​菜单​中​创建​一个​共享​变量, LabVIEW会​自动​创建​一个​新的​项目​库​并​将​共享​变量​包含​在​其中。​想要​了解​更多​关于​变量​和​库​的​信息,​请​参见共享​变量​有效期部分。 

1给​出了​一个​单​进程​共享​变量的共享​变量​属性对话​框。LabVIEW实​时​模​块和LabVIEW数据​记录​和​监​控(DSC)​模​块​为​共享​变量​提供​了​额外​功能​和​可​配置​特性。​尽管​在​这个​例子中LabVIEW实​时​模​块和LabVIEWDSC模​块​都​已经​安装,​但是​只有​在​网络​发布​共享​变量​中​您​才可以​使用LabVIEWDSC模​块​所​增加​的​特性。

 

1单​进程​共享​变量​属性

数据​类型

您​可以​从​大量​的​标准​数据​类型​中​为​一个​新的​共享​变量​选择​数据​类型。​除了​这些​标准​数据​类型​外,​您​还​可以从数据​类型下​拉​列表​中​选择“来自​自​定义​控件”来​选择​一个​自​定义​控​件​作为​自​定义​的​数据​类型。​然而,​当​使用​自​定义​数据​类型​时,LabVIEW不​能够​使用​实时FIFO或者​缩​放(Scaling)。​另外,​如果​您​安装了LabVIEWDSC 模​块,​则​不良​状况​的​提示​会​很​有限。

当​您​配置​完​共享​变量​的​属性​并​点击确定按钮​后,​共享​变量​将​出现​在您项目​浏览​窗口中​所​选择​的​库​或者​目标​中,​如图2所​示。

2项目​中的​共享​变量

从​共享​变量​所属​的​目标LabVIEW可以​部署​和​托管​该​共享​变量。​想要​了解​更多​有关​部署​和​托管​共享​变量​的​内容,​请​参见​部署​和​托管​部分。

变量​参考

当​您​添加​共享​变量​到​一个LabVIEW项目​后,​您​可以​将​其​拖至VI的​程序​框​图​中​来​进行​读​或​写​操作,​如图3所​示。​程序​框​图​中​读​和​写​节点​被​称为​共享​变量​节点。

3运用​共享​变量​节点​来​对​共享​变量​进行​读​和写

您​可以​根据​共享​变量​节点​连接​至​变量​的​方式​来​指定​一个​节点​是​绝对​或​相对​目标​的。​绝对​共享​变量​节点​连接​到​创建​共享​变量​的​目标​上​的​共享​变量。​相对​目标​的​共享​变量​节点​连接​到​包含​该​节点的VI所​运行​的​目标​上​的​共享​变量。

如果​您​将​含有​相对​目标​的​共享​变量​节点的VI移动​到​一个​新的​目标,​您​也​必须​将​共享​变量​移动​到​新​目标。​当​您​想​移动VI和​变量​到​新的​目标​时,​可​采用​相对​目标​的​共享​变量​节点。

默认​的​共享​变量​节点​都是​绝对​的。​右​键​单击​一个​节点,​并​选择更改​为​相对​目标或者更改​为​绝对,​来​改变​共享​变量​节点​连接​到​共享​变量​的​方式。 

任何​时候​您​都可以在项目​浏览​窗口中​右​键​单击​共享​变量​来​编辑​共享​变量​的​属性。 LabVIEW项目​将​自动​传递​新的​设置​给​内存​中​引用​的​所有​共享​变量。​当​您​保存​变量​库,​存在​磁盘​上​的​变量​定义​也​将​发生​变化。

单​进程​共享​变量

使用​单​进程​变量​在​同​一个VI中​不能​用​连​线​传输​的​不同​位置​间​传递​数据,​例如​同​一个VI的​并行​循环​之间,​或者​同一​应用​实例​中的​两​个​不同VI之间。​单​进程​共享​变量​的​底层​实现与LabVIEW中​全局​变量​相似。​单​进程​共享​变量​相​对于​传统​的​全局​变量​的​主要​优点​是​能够​将​一个​单​进程​共享​变量​转换​成​一个​网络​发布​的​共享​变量,​这样​网络​上​的​任何​节点​都可以​访问。

单​进程​共享​变量和LabVIEW实时

为了​保证​确定​性,​实​时​应用​需要​使用​一种​无​阻塞,​确定​性的​机制​来​实现​将​数据​从​代码​的​时间​确定​性​部分​(如​高​优先​级​定​时​环​路​或​时间​严格VI)​传递​到​非​时间​确定​性​部分。​当​您​安装LabVIEW实​时​模​块​后,​您​可以​配置​一个​使用​实时FIFO的​共享​变量,​只需从共享​变量​的​属性对话​框​中​使​能​实时FIFO即可。​美国​国家​仪器​公司​推荐​采用​实时FIFO在​时间​严格​和​低​优先​级​的​环​路​之间​传递​数据。​您​可以​通过​使​能​一个​单​进程​共享​变量​上​的​实时FIFO来​尽量​避免​使用​低​层次​的​实时FIFO VI

LabVIEW
在​共享​变量​节点​首次​写​入​或​读​出​一个​共享​变量​时​创建​一个​实时FIFO,​这​使得​首次​使用​共享​变量​的​执行​时间​会​比​随后​使用​时​稍​长。​如果​应用​中​要求​极其​精确​的​定​时,​可以​在​时间​严格​循环​内部​放置​一个​初始“热身”循环​来​解决​接​入​时间​的​波动,​或者​在​在​时间​严格​循环​外部​至少​对​该​变量​进行​一次​读​取。


4 实时FIFO使​能​的​共享​变量

即使​共享​变量​有​多重​写​入​或者​读​取​的​对象,LabVIEW为​每​个​单一​进程​共享​变量​创建​的​实时FIFO是​单一​的。​因此,​为​确保​数据​的​完整性,​多重​写​入​操作​会​彼此​阻塞,​多重​读​取​操作​也​同样。​不过,​读​操作​和​写​操作​并不​会​彼此​阻塞。​美国​国家​仪器​公司​建议​避免​对​时间​严格​循环​中的​单​进程​共享​变量​进行​多重​写​入​或​读​取​操作。

5多重​写​入​或​读​取​操作​共享​一个​单一的FIFO

使​能​实时FIFO后,​您​可以​选择​两​种​稍有​不同​类型的FIFO功能​变量:​单​元素​和​多​元素​缓冲。​这​两​种​类型​缓冲​区​的​一个​重要​区别​是:​单​元素FIFO在​溢出​和​下​溢​情况​下​不​进行​报警。​第二个​区别​是​对​一个​空​的​缓冲​区​进行​多重​读​取时LabVIEW返回​的​值。多重​读​取​单​元素FIFO时​将​得到​相同​的​值,​直到​下次​写​入​者​写​入​该​变量。​多重​读​取​多​元素FIFO时,​每​个​读​取​者​均​得到​它们​最后​一次​从​缓冲​区​中​得到​的​值,​如果​它们​以前​并​没有​读​过​该​变量,​则会​得到​变量​所属​数据​类型​的​默认​值。​如下所示。

6多​元素FIFO共享​变量​读​取​最后​一次​值​的​特性

如果​要求​每​个​读​取​者​得到​写​入​到​多​元素FIFO共享​变量​的​每​个​数据​点,​请​为​每​个​读​取​者​使用​各自​单独​的​共享​变量。

网络​发布​的​共享​变量

利用​网络​发布​的​共享​变量,​您​可以​在​以太​网上​对​共享​变量​进行​读写​操作。​网络​应用​的​处理​完全​由​网络​发布​的​变量​完成。 

除了​使​您​的​数据​在​网络​中​可用,​网络​发布​共享​变量​中​还​增加​了​许多​单​进程​共享​变量​不能​提供​的​功能。​由于​需要​提供​各种​附加​功能,​网络​发布​的​共享​变量​的​内部​实现​要​比​单​进程​共享​变量​复杂​得​多。​接​下来​数​节​将​讨论​本​方面​内容,​并​给​出​利用​网络​发布​的​共享​变量​来​获得​最佳​性能​的​一些​建议。 

NI-​PSP

NI
发布-订阅​协议(NI-​PSP )​是​用于​传输​网络​共享​变量​的​优​化​网络​协议。 

LabVIEW 8.5
中的​新​特性!

NI-​PSP
的​下层​被​重​写​以​充分​提高​效率。​在​运行​现代​操作​系统​内​核​的​现代​机器​中,​我们​发现TCP的​性能​显著​优于​在​用户​模式​中​对​它的​一些​功能​进行​复制,​因此,在LabVIEW 8.5中​用​到了​这个​优点。NI-​PSP下​的​最​底层​协议​已经​重新​设计​以​使用TCP / IP,​并且​根据​桌面​系统和NIRT目标​的​性能​进行​了​彻底​调整​(见​下​文​的​标定​比较)。NI-​PSP层​保持​不变,​因此,​您​可以​不​更改​您​的​应用​就​能够​看到​性能​提升。 

重要​说明: 

仅​当​通信​链​路​的​两​端​都​已经​安装了LabVIEW 8.5LabVIEW才​会​使用​这个​新的NI-​PSP实现,​也就是​当且仅当​通信​中的​所有​目标​都​安装了LabVIEW8.5时。​如果​其中​一个​目标​是​运行​老​版本LabVIEW的,​那么​两​个​终端​都​将​使用​旧​的​协议。

部署​和​托管

您​必须​将​网络​发布​共享​变量​部署​到​一个​用于​在​网络​上​托管​该​变量​的​共享​变量​引擎(SVE)​上。​当​您​写​入​到​一个​共享​变量节点LabVIEW将​这个​新​值​发送​给​部署​和​托管​这个​变量的SVESVE处理​环路发布这个​值,​从而用户​可以​得到​更新值。图7说明​了​这​一​过程。​使用​客户端/服务​器​术语​来讲,SVE是​共享​变量的服务器,​所有​对​其​的​应用​(不论​它们​是​读​还是​写​变量)​都是客户端SVE客户​端​是​共享​变量​节点​实现​中的​一部分,​在​本文​中,客户端用户的​定义​是​可​互换​的。

7 共享​变量​引擎​和​网络​共享​变量​值​的​改变

网络​发布​变量和LabVIEW实时

您​可以​实现​使​能​一个​网络​发布​共享​变量​的​实时FIFO,但FIFO使​能​的​网络​发布​共享​变量​与​实时FIFO使​能​的​单​进程​共享​变量​相比​有​一个​重要​的​行为​差异。​在​单​进程​共享​变量​中,​所有​写​入​和​读​出​操作​共享​一个​单一​的​实时FIFO;​但​网络​发布​的​共享​变量​并非​如此。​网络​发布​共享​变量​的​每​一个​读​出​操作,​在​单​元素​和​多​元素​情况​下​都有​各自​的​实时FIFO,​如下所示。

8 实时FIFO使​能​的​网络​发布​变量

网络​缓冲区
 
对于​网络​发布​的​共享​变量,​您​可以​使用​缓冲​区。​您​可以在共享​变量​属性对话​框​中​配置​缓冲​区,​如图9所​示。

9 在​网络​发布​的​共享​变量​中​使​能​缓冲区

通过​缓冲​区,​您​可以​解决​对于​一个​变量读/写​速度​的​临时​波动​问题。​读​出​操作​偶尔​比​写​入​慢​的​情况​可能​会​导致​一些​更新​数据​的​丢失。​如果​应用​可以​容忍​偶尔​的​数据​丢失,​则​较​慢​的​读​取​速率​并不​会​影响​应用,​此时​您​就​不需要​使​能​缓冲​区。​但是,​如果​读​取​操作​必须​获得​每​个​更新​数据,​您​就​需要​使​能​缓冲​区。​您​可以在共享​变量​属性对话​框​中的变量页​设定​缓冲​区​大小,​这样​您​就​可以​确定​在​旧​数据​被​覆盖​之前,​应用​中​可以​保存​多少​更新​数据。

当​您​在​上述​对话​框​中​配置​一个​网络​缓冲​区​后,​您​实际​上​是​配置​了​两​个​不同​缓冲​区​的​大小。服务​器​端的​缓冲区,如10中标​有​共享​变量​引擎​( SVE )​的​方框​中的​缓冲​区​所​示,​是​自动​创建​的,​并​被​配置​为​和​客户​端​缓冲​区​同样​大小。客户​端的​缓冲区即​您​在​使​能​共享​变量​缓冲​区​时​逻辑​上​认为​的​缓冲​区。在客户​端​缓冲区 (如图10右边​所​示)​是​用于​保持​先前​值​队列​的​缓冲​区。​正是​这种​缓冲​区​避免​了​您​的​共享​变量​受到​循环​速度​或​网络​流量​波动​的​影响。

LabVIEW 8.5中,​网络​缓冲​区​经历​了​一个​改变。​底层NI-​PSP协议​的​重新​设计​使​的​数据​传输​变得​大致​无​损。​同样如10所​示,​标记​有​共享​变量​引擎​( SVE )​的​方框​中的​缓冲​区是服务​器​端的​缓冲区。​这个​缓冲​区​当且仅当​底层​协议​需要​流量​控制​时​使用,​即​只​发生​在​下述​的​两​种​情形​中:

1.如果​您​将​数据​写​入​到​一个​或​多个​共享​变量​的​速度​比​客户​端​可​响应​的​速度​快。
2.
如果​您​将​数据​写​入​到​一个​或​多个​共享​变量​的​速度​比内​核​的​驱动​程序​可​从​物理​层​获取​数据​的​速度​快​(大​多数​情况​下​是​以太​网)。

注意,​以上​两​种​情况​都是​网络​层​在​共享​变量​通信​栈​下​(并不​受​其​控制)​的​限制。

与​所有​读写​操作​共享​同一​实时FIFOFIFO使​能​单​进程​变量​不同,​网络​发布​的​共享​变量​每​一个​读​用户​都有​自己​独立​的​缓冲​区,​所以​读​用户​不受​彼此​影响。

10  缓冲区

仅​当读/写​速率​有​短暂​的​波动​时,​缓冲​区​才​发挥​其​作用。​如果​程序​运行​的​时间​不​确定,​而​读​取​速率​总是​低于​写​入​速率,​则​不管​你​指定​多大​的​缓冲​区​最终​都会​出现​数据​丢失。​由于​缓冲​技术​为​每一​位​用户​都​分配​了​一个​缓冲​区,​因此,​为​避免​不必要​的​内存​使用,​仅​当​需要​时​再​使用​缓冲​区​技术。

网络​和​实​时​缓冲

如果​您​同时​采用​网络​缓冲​和​实时FIFO,​则​共享​变量​的​执行​中将​同时​包含​一个​网络​缓冲​区​和​一个​实时FIFO。​前面​讲​过,​如果​实时FIFO使​能​时,​将​为​每​一个​读​和​写​用户​创建​新的​实时FIFO,​从而​多重​写​入​和​读​出​将​不会​彼此​阻塞。

11 网络​缓冲​和​实时FIFO

虽然​您​可以​独立​设置​这​两​缓冲​区​的​大小,​在​大​多数​情况​下,​美国​国家​仪器​公司​建议​您​让​它们​保持​同样​大小。​如果​您​使用​实时FIFOLabVIEW将​为​每​一个​读​和​写​用户​创建​新的​实时FIFO,​从而​多重​写​入​和​读​出​将​不会​彼此​阻塞。

缓冲​区​有效期

LabVIEW在​初始​写​或​读​操作​时​创建​网络​和​实时FIFO缓冲​区,​具体​由​缓冲​区​的​位置​决定。​服务​器​端的​缓冲​区​在​写​入​者​初始​写​入​一个​共享​变量​时​创建。​客户​端的​缓冲​区​在​一个​用户​初始​读​取​一个​共享​变量​时​创建。​如果​对​共享​变量​的​写​操作​发生​在​用户​的​读​操作​之前,​则​该​用户​将​不能​得到​这些​初始​数据。

12缓冲​区​有效期

缓冲​区​溢出/下溢

LabVIEW 8.20以上,​网络​发布​的​共享​变量​将​报告​网络​缓冲​区​的​溢出​和​下​溢​情况。​而​任何​版本​的​实时FIFO都会​返回​错误​来​指示​溢出/下​溢​情况。在LabVIEW 8.08.0.1,​可以​用​以下​两​种​方式​检查​网络​缓冲​下​溢。​由于​共享​变量​时间​标识​的​分辨​率为1毫秒,​当​您​以​低于1kHz的​速率​更新​共享​变量​时,​您​可以​将​变量​的​时间​标识​与其​后​读​操作​的​时间​标识​进行​比较​来​检测​缓冲​区​下​溢。​或者,​对于​非​实​时​应用,​读​取​者​可以​将​一个​序列​号​与​数据​绑​定​来​通知​缓冲​区​溢出/下​溢。​您​不能​在​时间​严格​循环​中​针对​共享​变量​使用​第二​种​方式,​因为​实时FIFO使​能​的​共享​变量​不​支持​自​定义​控​件​(簇)​的​数据​类型。 

共享​变量​有效期

如​前​所述,​所有​共享​变量​都是​项目​库​的​一部分。SVE负责​注册​项目​库​和​库​中​包含​的​共享​变量​(当LabVIEW需要​调​用​这些​变量​时)。​默认​情况​下,​只要​您​运行​引用​任意​共享​变量的VI时,SVE即​会​部署​并​发布​共享​变量​库。​因为SVE将​部署​包含​该​共享​变量​的​整个​库,​因此​无论​所​运行的VI是否​引用​库​中的​全部​共享​变量,SVE都​将​发布​库​中​所有​的​共享​变量。​您​也可以​在​任何​时候​手​动​来​部署​任意​的​项目​库,​只需要​右​键​点击项目​浏览​窗口的​库​即可。

停止​托管​该​变量的VI或​重​启​机器​并不​影响​共享​变量​在​网上​的​可用性。​如果​您​需要​删除​网络​上​共享​变量,​您​必须​明确​地​在该项目​浏览​窗口中​对​该​变量​解除​部署。​您​也可以​选择工具»共享​变量»变量​管理器来​对​共享​变量​或​整个​变量​项目​库​来​解除​部署。 

前​面板​数据​绑定

另​一个​适用​且​仅​适用​于​网络​发布​共享​变量​的​特性​是​前​面板​数据​绑​定。从项目​浏览​窗口拖​拽​一个​共享​变量到VI的​面板​来​创建​一个​共享​变量​的​控​件​绑​定。​当​您​为​某​个​控​件​使​能​了​数据​绑​定​后,​改变​控​件​的​值​就​改变​了​与其​绑​定​的​共享​变量​的​值。在VI运行​时,​如果​成功​连接到SVE,​则在VI的​前​面板​对象​旁边​会​出现​一个​绿色​指示,​如图13所​示 。 

13 绑​定​一个​前​面板​控​件​到​一个​共享​变量

通过​在​属性​对话​框​中的数据​绑定页​面​来​获取​和​改变​任意​输入​和​显示​控​件​的​绑​定。​当​使用LabVIEW实​时​模​块或LabVIEWDSC模​块​时,​您​可以​选择工具»共享​变量»前​面板​批量​绑​定​配置,​来​得到前​面板​批量​绑​定​配置对话​框,​来​创建​一个​绑​定​多个​输入​和​显示​控​件​到​共享​变量​的​用户​界面。 

美国​国家​仪器​公司​不​建议​运行在LabVIEW实​时​的​应用​中​使用​前​面板​的​数据​绑​定,​因为​前​面板​可能是​不存在​的。

编​程​访问
 
如上所述,​您​可以​使用LabVIEW项目​交互​式​的​创建,​配置​和​部署​共享​变量,​您​还​可以​使用​程序​框​图​上​的​共享​变量​节点​或​前​面板​的​数据​绑​定​来​读​取​和​写​入​共享​变量。 LabVIEW中​还​提供​了​对于​以上​功能​编​程​访问​的​方法。 

在​需要​创建​大量​共享​变量​的​应用​中,​您​需要​使用VI服务​器​来​编​程​建立​项目​库​和​共享​变量。​此外, LabVIEW DSC模​块​提供​了​一套​全面的VI用​来​编​程​创建​和​编辑​共享​变量​和​项目​库​以及​管理SVE。​您​只能在Windows系统​中​编​程​创建​共享​变量​库,​然而,​您​可以​编​程​部署​这些​新的​库​应用于WindowsLabVIEW实​时​系统​中。 

当​您​需要​动态​改变VI读写​的​共享​变量​时,​可​使用Datasocket API。​您​可以​编​程​改变Datasocket链​路的URL以​实现​动态​改变​共享​变量。​您​还能够​编​程​控制​共享​变量​的​其他​功能,​比如​缓冲​区​大小​等。​此外,Datasocket API具有​阻塞​读​取​功能,​即​仅​当​共享​变量​更新​时​才​进行​读​操作。


14Datasocket API实现​编​程​读写​共享​变量

此外,​通过NI LabWindows/​CVI 8.1NI Measurement Studio 8.1引入​的​网络​变量​库,​您​可以在ANSI C, Visual Basic .NET 或者VIsual C#环境​下​读写​共享​变量。

共享​变量​引擎

SVE是​一个​使​网络​发布​的​共享​变量​能够​过​网络​传送​数据​的​软件​框架。在Windows下,LabVIEW配置SVE为​一个​服务,​并​在​系统​启动​时​引导SVE启动。​对​实​时​目标,SVE是​一个​随​系统​开机​加​载​的​可​安装​启动​组​件。

为了​使用​网络​发布​的​共享​变量,SVE至少​需要​在​分布​系统​中的​一个​节点​上​运行。​网络​上​的​任何​节点​都可以​读写SVE发布​的​共享​变量。​如表1所​示,​只有​安装SVE,​节点​才可以​引用​到​一个​变量。​如果​您​需要​根据​应用​需要​在​不同​地点​部署​共享​变量,​您​也可以​在​多个​系统​中​同时​安装​多个SVE

共享​变量​托管​位置​推荐

在​一个​分布​式​系统​中,​您​必须​考虑​一系列​因素​来​决定​由​哪​计算​设备​部署​和​托管​网络​发布​共享​变量。

计算​设备​是否​兼容SVE

下表​汇​总了SVE可​适用​的​平台,​并​给​出了​可​通过​参考​节点或Datasocket API使用​网络​发布​的​共享​变量​的​平台。​美国​国家​仪器​需要​不同​平台​至少​能​提供32兆​并​推荐64 兆​内存供SVE使用。

LabVIEW 8.5
新​特性

Datasocket API
现在​支持LinuxMacintosh下的NI-​PSP。​以前,​对​这些​平台​我们​推荐​了​一系列​复杂​的​步骤​来​使用​共享​变量​参考​节点。​我们​现在​不再​推荐​这样​做。​相反,​应该​更​直接​的​在​这些​平台​上​使用Datasocket技术​简化​客户​端的​应用。​请​注意,在LinuxMacintosh中​仍然​不​支持​共享​变量​的​托管。

Windows PCs
Mac OS
Linux
PXI
Real-​Time
Compact FieldPoint
CompactRIO
Compact Vision System
Commercial PCs with
LabVIEW Real-​Time ETS
RTX
SVE
X
X
Reference Nodes
X
X
DataSocket API w/ PSP

1 网络​发布​的​共享​变量​兼容​性​概况

应用​需要​数据​记录​和​监​控​功能​吗?

如果​您​想​使用LabVIEW DSC模​块​的​功能,​您​必须在Windows上​托管​共享​变量。LabVIEW DSC模​块​对​网络​发布​的​共享​变量​新增​如下​功能:

·NI总​数据​库​的​历史​记录。
·
联​网​报警​和​报警​记录。
·
缩​放。
·
基于​用户​的​安全。
·
初始​值。
·
创建​自​定义I/O服务​器。
·
共享​变量​中​集合LabVIEW的​事件​结构​功能。
·
编​程​控制​共享​变量​各个​方面​和​共享​变量​引擎的LabVIEW VI。​这些VI特别​有利​于​管理​大量​共享​变量。

计算​设备​有​足够​的​处理​器​和​内存​资源​吗?

SVE是​一项​需要​处理​和​内存​资源​的​额外​进程。​为了​在​分布​式​系统​中​得到​最佳​的​表现,​请​选择​具有​最大​内存​和​最高​处理​能力​的​机器​安装SVE

哪个​系统​经常​在​线?

如果​您​的​分布​式​应用​中,​一些​系统​可能​定期​离​线,​则​请将SVE托管​在​一台​一直在​线​的​系统​上。

共享​变量​引擎​的​其他​功能

15列出了SVE的​很多​功能。​除了​管理​网络​发布​的​共享​变量​外,SVE还​负责:

·收集​来自I/O服务​器​的​数据。
·
通过OPCPSP的​服务​器​为​用户​提供​数据。
·
为​任何​配置​了​缩​放,​警告​和​记录​服务​的​共享​变量​提供​这些​服务。​这些​服务​仅在LabVIEW DSC模​块​存在​下​可用。
·
监测​报警​条件​并​进行​相应​响应。

I/O服务器

I/O务​器是SVE的​插​件,​程序​中​可以​用​其​使用SVE来​发布​数据。NI FieldPoint 5.0中​包括​一个I/O服务​器,​该​服务​器​直接从FieldPoint存储​地​发布​数据到SVE。​因为SVEOPC服务​器,​因此SVEFieldPoint I/O服务​器​结合​构成了FP OPC服务​器。​注意FieldPoint安装​中​不​包括SVESVE需要​从​其他​软件​组​件​中​安装,如LabVIEW

NI - DAQmx 8.0中也​包括​一个I/O服务​器,​它​可以​自动将NI-​DAQmx全局​虚拟​通道​发布到SVE。​这个I/O服务​器​取代​了​传统​数据​采集的OPC服务​器和RDANI–​DAQmx中​包含SVE并且​可以在LabVIEW未​安​条件下​进行​安装。

使用LabVIEWDSC模​块,​用户​可以​自行​建立​新的I/O服务​器。

15 共享​变量​引擎(SVE

OPC

SVE3.0兼容​的,​并​可以​作为Windows机器​上的OPC服务​器。​任何OPC客户​端​可​对​托管于Windows机器​上​的​共享​变量​进行​读写​操作。​当​您在Windows机器​上​安装LabVIEW DSC模​块​后,SVE也可以​作为OPC客户​端。​您​可以将Windows托管​的​共享​变量​绑​定到DSCOPC数据​项​上,​并​对​这些​变量​进行​读​和​写​操作。

因为OPC是​基于COM(一个Windows API)​的​技术,​实​时​目标​并不与OPC直接​通信。​如图16所​示,​但​您​仍然​可以​通过​将​共享​变量在Windows上​托管​实现​从​实​时​目标​访问OPC数据​项。

16 绑定OPC数据项

性能

本​节​为​使用​共享​变量​创建​高性能​应用​提供​了​一般​准则。

Windows API
由于​单​进程​共享​变量​的​实现​类似LabVIEW全局​变量​和​实时FIFO,​美国​国家​仪器​公司​没有​对​单​进程​共享​变量​如何​取得​较好​性能​给​出​特殊​建议。​以下​各节​均​针对​网络​发布​的​共享​变量。

共享​处理器

通过​隐藏​许多​网络​编​程​的​实施​细节,​网络​发布​的​共享​变量​简化了LabVIEW的​程序​框​图。​一般​来讲​应用​中​会​包括LabVIEW VISVE以及SVE客户​端​代码。​为了​获得​共享​变量​的​最佳​性能,​开发​应用​时​需要​注意​使​其​定期​释放​处理​器​以让SVE线​程​运行。​实现​其​的​方法​之一​是在​处理​循环​中​放置​等待,​并​确保​应用​中​不​使用​未​定义​次数​的​循环。​实际​需要​等待​的​精确​时间​依赖​于​具体​应用,​处理​器​和​网络;​每​种​应用​都​需要​一定​程度​的​实验​微调​来​达到​最佳​的​性能。

SVE
位置​的​考虑
 
共享​变量​托管​位置​推荐一节​中​讨论​了​在​选择​安装SVE的​位置​时​需要​考虑​的​一系列​因素。图17中​给​出了​另​一个​可​大大​影响​共享​变量​性能​的​因素。​在​这个​例子​中​包含​了​实​时​目标,​但​它的​基本​原则​也​适用​于​非​实​时​系统。图17给​出了​一个​低​效​运用​网络​发布​共享​变量​的​例子:​您​在​实​时​目标​中​产生​数据,​并​需要​将​处理​完​的​数据​记录​到​本地,​并​通过​远程​机器​进行​监​控。​因为​变量​的​用户​必须从SVE接收​数据,​在​高​优先​级​循环​中的​写​操作​和​正常​优先​级​循环​中的​读​操作​之间​将​存在​很大​的​延​时,​而且​这​一​操作​包含​了​整个​网络​中的​两​个​来回。


17实​时​系统​中​低​效​使用​网络​发布​变量

18给​出了​一个​较好​的​应用​框架。​应用​中​采用​一个​单​进程​共享​变量​在​高​优先​级​循环​和​低​优先​级​循环​中​传递​数据,​极大​地​减少​了​等待​时间。​低​优先​级​回路​记录​数据,​并​通过​网络​发布​共享​变量​为​主机​端的​用户​写​入​数据​更新。

18 在​实​时​系统​中​有效​使用​网络​发布​变量

标定

本​节​比较​了​共享​变量和LabVIEW中​其他​数据​共享​方法​的​性能,如LabVIEW的​全局​变量,​实时FIFOTCP / IP 。​下表​总结​了​以下​各节​讨论​的​测试。 

测试

描述

SVE
位置

说明

T1

单​进程​共享​变量vs全局​变量

N/A

建立​最大读/写​速率

T2

单​进程​共享​变量w/ 实时FIFO

 vs.实时FIFO VI

N/A

采用​实时FIFO时,​建立​最大读/写​速率。

确定​在​定​时​回路​中​写​入​并​同时​从​正常​优先​回路​读​回​一个​共享​变量​或​实时FIFO数据​的​最高​可​持续​速率。

T3

网络​发布​共享​变量w/实时FIFO vs. 2-环​实时FIFO w/ TCP

运行LV RTPXI

确定​单​点​数据​流​经​网络​的​最高​速率。

共享​变量:VI 总​在​主机。RT-​FIFO + TCP:​类似T2,​但​具有TCP通信/​IP网络。

T4

网络​发布​共享​变量​内存

RT系列​目标

建立​共享​变量​部署​后​的​内存​使用​情况。

T5

比较8.2 网络​发布​共享​变量和8.5变量-

RT 系列​目标

比较NI-​PSP8.5中的​实现​和在8.20或​更​早​版本​中的​实现。

本​标定​测试​一台cRIO将​波形​数据​流​至​桌面​主机​上​时​的​吞吐量。

T6

比较8.2 网络​发布​共享​变量和8.5变量-高​通道​计数

RT 系列​目标

比较NI-​PSP8.5中的​实现​和在8.20或​更​早​版本​中的​实现。

本​标定​测试​一台cRIO在​高​通道​计数​应用​中的​吞吐量。

2 标定​预览

以下​章节​描述​了​美国​国家​仪器​公司​为​每​一个​标定​创建​的​代码,​并​给​出了​实际​的​标定​结果。方法​和​配置一节​详细​给​出了​每​种​标定​选择​的​方法​和​每​种​标定​运行​的​软​硬件​环境​的​配置​细节。

单​进程​共享​变量与LabVIEW全局​变量

单​进程​共享​变量​类似LabVIEW的​全局​变量。​事实​上,​单​进程​共享​变量​的​实现​是在LabVIEW全局​变量​上​增加​了​时间​标识​功能。

为了​比较​单​进程​共享​变量​相对LabVIEW的​全局​变量​的​性能,​美国​国家​仪器​公司​编写​了​标定VI来​衡量VI每秒​钟​可以​对​一个LabVIEW全局​变量​或​一个​单​进程​共享​变量​进行​读写​的​次数。图19给​出了​单​进程​共享​变量​的​读​取​标定。​单​进程​共享​变量​写​入​标定和LabVIEW的​全局​变量读/写​标定​遵循​同一​模式。


19 单​进程​共享​变量​读​取​标定VI

综合读/写​测试​中,​还​包括​了​验证​每​个​写​入​点​都在​同一​循环​中​没有​数据​损失​的​被​读​回​的​验证​代码。

T1的​测试​结果

20给​出了T1的​测试​结果。​研究​结果​表明,​单​进程​共享​变量​的​读​性能​低于LabVIEW全局​变量。​写​性能,​以及读/写​性能​来看,​单​进程​共享​变量​略低于LabVIEW全局​变量。​单​进程​共享​变量​的​性能​会​受到​是否​开启​时间​标识​功能​的​影响,​因此​如果​没有​必要​的话,​推荐​关掉​时间​标识​功能。

方法​和​配置一节​讲述​了​本​测试​具体​的​标定​方法​和​配置​的​细节。

20 单​进程​共享​变量​与​全局​变量​的​性能​比较

单​进程​共享​变量​与​实时FIFO

美国​国家​仪器​标定​可​持续​的​吞吐量​来​比较FIFO使​能​的​单​进程​共享​变量​和​传统​的​实时FIFO VI。​标定​中​还​检查​了​传送​数据​的​大小​或​负载​对​以上​两​种​实时FIFO实现​的​影响。

本​测试​包括​一个​时间​严格​循环(TCL)​用​来​生成​数据,​以及​一个​正常​优先​级​循环(NPL)​用​来​消费​数据。​美国​国家​仪器​通过​对​一系列​双​精度​标量​和​数​组​数据​类型​进行​测试​来​确定​负载​大小​的​影响。​标量​类型​确定​了​负载​是​一个​双​精度​数值​是​的​吞吐量,​数​组​类型​确定​了​其余​负载​类型​的​吞吐量。​当​您​执行​上述​两​个​环​路​无​数据​丢失​时​的​最大​可​持续​速度​就​确定​了​该​测试​记录​的​最大​可​持续​吞吐量。

21给​出了​实时FIFO标定​的​简化​程序​框​图,​其中​略​去了​许多​用于​创建​和​注销FIFO的​必要​代码。​需要​注意​的是从LabVIEW 8.20开始,​引入​了​一个​可以​替代​这里的FIFOVI的​新的FIFO函数。​本文​中的​数据​图表​即​由该FIFO函数​得到,​它​比​之前8.0.x 中的FIFOVI有着​更好​的​性能。

21 简化​的​实时FIFO标定VI

另​一个​等效​的​测试​中​采用​了​单​进程​共享​变量。图22给​出了​程序​框​图​的​简化​描述。


22 简化的FIFO使​能​单​进程​共享​变量​标定VI

T2的​测试​结果

2324给​出了T2测试​的​结果,​并​比较了FIFO使​能​的​单​进程​共享​变量​和​实时FIFO VI函数​的​性能。​结果​表明,​用​单​进程​共享​变量​稍微​慢​于​使用​实时FIFO

23 单​进程​共享​变量​与​实时FIFO VI的​性能​比较(PXI

 

24单​进程​共享​变量​与​实时FIFO VI的​性能​比较​( cRIO 9012

网络​发布​的​共享​变量​与​实时FIFO​+TCP / IP 

由于​共享​变量​的​灵活​性,​只需​几个​配置​的​改变,​您​就​可以​在​网络​中​快速​发布​一个​单​进程​共享​变量。​特别​对于​实​时​应用,​早期​版本的LabVIEW中​完成​同样​传输​需要​引进​了​大量​的​代码​来​读取RT系列​控制器​上​的​实时FIFO,​然后​使用​许多​现有​的​网络​协议​之一​在​网络​上​传送​数据。​为了​比较​二者​性能​的​不同,​美国​国家​仪器​公司​同样​创建​了​标定VI来​衡量​在​一系列​负载​条件下​无​数据​丢失​时​的​可​持续​吞吐量。

对于​预​变量​方式,​标定VI采用​了​实时FIFOTCP / IP 。​一个TCL产生​数据​并​将​其​放置​在​实时FIFO中;​一个NPLFIFO中​读​出​数据​并​通过TCP/​IP发送​至​整个​网络。PC主机​收取​数据​并​验证​没有​数据​丢失​发生。

25给​出​一个​实时FIFOTCP / IP标定VI的​简化​程序​框​图。​与​上面​相同,​这个​框​图​大大​对于​实际​的​标定VI做了​大幅​简化。

25 简化​的​实时FIFOTCP / IP标定VI

美国​国家​仪器​公司​给​出了​一个​使用​网络​发布​共享​变量​的​等效​测试​版本。图26给​出了​简化​的​程序​框​图。

26 简化​的​实时FIFO-网络​发布​共享​变量​标定VI

T3的​测试​结果

本​节​给​出了T3的​测试​结果,​比较​了​实时FIFO使​能​的​网络​发布​共享​变量​和​基于​实时FIFO VILabVIEW TCP/​IP的​等效​代码​的​性能。图27给​出了当LabVIEW的​实​时​目标​是​一个PXI嵌入式RT系列​控制器​时​的​结果。

27 网络​发布​的​共享​变量​与​实时FIFOTCP VI性能​比较​( PXI

T3的​结果​表明,​网络​发布​共享​变量​的​吞吐量与TCP方法​的​接近,​而且​对​两​种​方法​来说,​从小​到​大​不同​大小​的​负载​吞吐量​基本​都是​一致​的。​共享​变量​使​您​的​编​程​工作​更​容易,​但​并不​是​没有​代价​的。​但​应该​看到,​如果​仅​使用​简单的TCP方法,​它的​性能​很​容易​不如​共享​变量,​特别​对于在8.5中​新的NI-​PSP实现​而言。

T4的​测试​结果

网络​发布​共享​变量​的​内存​占用

注意:​在​LabVIEW 8.5​中,​没有​对​变量​占用​内存​做出​明显​改变。​因此,​这个​标定​并​未​重新​运行。 

确定​共享​变量​的​内存​占用​是​很​难​的,​因为​其​占用​的​内存​依赖​于​配置。​例如,​带有​缓冲​区​的​网络​发布​共享​变量​会​根据​需要​在​程序​中​动态​分配​内存。​配置​一个​共享​变量​使用​实时FIFO也​会​增加​内存​使用,​因为​除了​网络​缓冲​区外LabVIEW也为FIFO创建​缓冲​区。​因此​本文​的​标定​测试​只​提供​一个​内存​的​基本​测度。 

28给​出了在LabVIEW部署了5001000个​指定​类别​的​共享​变量到SVE时​它​占用​的​内存。​该​图​表明​变量​的​类型​并不​显著​影响​部署​的​共享​变量​占用​的​内存。​这里​需要​注意​的是,​这些​变量​都​是非​缓冲​变量。 

28 具有​不同​数据​类型​的​网络​发布​共享​变量​的​内存​使用

29给​出了​内存​占用​相​对于​部署​的​共享​变量​数​目的​函数​关系。​这项​测试​只​使用​一种​类型​的​变量,​一个​空​的​布​尔​数​组。​内存​的​占用​随​变量​数目​线性​增长。


29不同​大小​的​共享​变量​的​内存​使用

T5的​测试​结果

8.2网络​发布​的​共享​变量和8.5变量-流​比较

LabVIEW 8.5中,​我们​重新​实现​了​用于​传输​共享​变量​数据​的​网络​协议​底层,​它​能够​提供​更好​的​性能。

在​这里​我们在cRIO9012上​托管​一个双​精度​波形类型​的​单​变量。​我们​生成​所有​数据,​然后​在​一个​循环​中将​数据​传送​到​主机,​主机​尽快​的​从​另​一个​波形​共享​变量​节点​将​数据​读​取​出来。

您​可以​从图30看到,在LabVIEW 8.5中​获得​了​明显​的​性能​改善,​在​这个​例子​中​超过600%。

30 LabVIEW8.5LabVIEW 8.20(或​更​早​版本)​的​波形​吞吐量​比较

T6的​测试​结果

8.2网络​发布​的​共享​变量和8.5变量-高​信道​计数

在​这项​测试​中,​我们​使用与T5相同​的​两​个​目标​对象,​但是​与​传送​单​变量​不同,​我们​将​数据​类型​设​为​双​精度​并​使​共享​变量​数目在1 -1000间​变化,​同时​测量​传送​中的​吞吐量。​同样,​所有​的​变量​都​托管于cRIO9012,​在​其​上​生成​增长​的​数据​并​传送​到​主机​等待​读​取。

31再次​显示​出从LabVIEW 8.20LabVIEW8.5性能​的​显著​提升。​然而,​许多​小​变量​的​情形与T5中​单一​大​变量​的​情形​相比,​吞吐量​显著​减少。​这​是​因为​每​一个​变量​都有​与​本身​相关​的​固定​空间​开销。​当​使用​许多​变量​时,​这种​开销​会​乘​以​变量​数目,​从而​变得​不能​忽略。

31 LabVIEW 8.5LabVIEW 8.20(或​更​早​版本)​高​通道​计数​吞吐量​比较

方法​和​配置

本​节​给​出了​前面​讲述​的​标定​测试​的​详细​信息。

T1方法​及​考虑​因素

T1测试​使用​了​一个​简单​的​标定​模板,​通过​大量​的​迭代​后​取​简单​平均​的​方法​以​确定​读写​速率。​每次​测试​执行​时共5.0亿​迭代​按​分钟​记录​执行​时间,​分辨​单位​是​毫秒。 

T1
/硬件​配置

主机​硬件

  • Dell Precision 450
  • Dual Intel Xeon2.4GHz奔腾​级​处理​器
  • 1 GB DRAM


主机​软件

  • Windows XP SP2
  • LabVIEW 8.20

T2的​方法​及​考虑​因素

T2测试​是​通过​确定​不同​优先​级​任务​之间​的​最大​可​持续​通信​速率​来​确定​吞吐量​的。​一个​具有​毫秒​分辨​率​的​定​时​循环​用于​数据​产生。​数据​的​消费​者​是​一个​自由​运行、​正常​优先​级​的​循环,​它​从​实时FIFO或者​单​进程​共享​变量​读​取​数据​直到​空​为止。​在​没有​错误​的​条件下​重复​这​一​过程​至​一定​的​时间。

当​下列​所有​条件​满足​时,​测试​结果​是​有效​的:

  • 没有​缓冲​区​溢出​发生
  • 数据​完整性​得以​保持:​没有​数据​损失​的​发生,​且​收到​的​数据​和​发送​的​数据​次序​一致
  • 定​时​循环​在​指定​的​热身​时间 1秒​后​可以​准​确定​时

单​进程​共享​变量​接收​端​循环​执行​简单​的​数据​完整性​检查,​例如​确保​预期​数量​的​数据​点​均​收到,​而且​收到​的​信息​模式​并不​缺乏​中间​值。 
美国​国家​仪器​对于​所有​试验​的​变量​和​涉及​到​的​数据​类型,​均​为​实时FIFO和​共享​变量FIFO缓冲​器​配置​缓冲​区​大小为100元素。

T2的软/硬件​配置

PXI的​硬件

  • NI PXI - 8196 RT系列​控制器
  • 2.0GHz奔腾​级​处理​器
  • 256MB DRAM
  • Broadcom 57xx1 GB /秒​内​置​式​以太​网​适​配​器)

PXI的​软件

  • LabVIEW8.20实​时​模​块
  • 网络​变量​引擎 1.2.0
  • 变量​客户​端​支持 1.2.0
  • Broadcom 57xx千​兆​以太​网​驱动​程序 2.1,​配置​为​轮​询​模式

CompactRIO 硬件

  • NI cRIO 9012控制器
  • 400MHz处理​器
  • 64 MB DRAM


CompactRIO 系统​软件

  • LabVIEW8.20实​时​模​块
  • 网络​变量​引擎 1.2.0
  • 变量​客户​端​支持 1.2.0

 T3的​方法​及​考虑​因素

T3测试​通过​直接​记录​网络​上​的​数据​传输​数量​和​整体​测试​时间​获得​测试​吞吐量。​一个​具有​毫秒​分辨​率​的​定​时​循环​用于​数据​产生,​它​负责​将​一个​特定​的​数据​模式​写​入​网络​发布​的​共享​变量​或​实时FIFO VI。 

对于​网络​发布​共享​变量​的​情况,​一个NPL运行​于​主机​系统,​并从​一个​自由​运行​的​循环​中​读​取​数据。​对于​实时FIFO VI的​测试​情况,NPL运行​于​实​时​系统,​按​一定​的​速率​检查FIFO的​状态,​读​取​所有​的​可读​数据,​并​通过TCP发送​至​网络。​标定​结果​表明,​该​轮流​有效期​可​设定为110毫秒。


当​下列​所有​条件​满足​时,​测试​结果​是​有效​的:

  • 不管​在 FIFO还是​网络​上,​没有​缓冲​区​溢出​发生
  • 数据​完整性​得以​保持:​没有​数据​损失​的​发生,​且​收到​的​数据​和​发送​的​数据​次序​一致
  • 定​时​循环​在​指定​的​热身​时间 1秒​后​可以​准​确定​时

读​取​完​每​个​数据​点​以后,​网络​变量​测试的NPL检查​数据​模式​的​正确​性。​对于​实时FIFO测试​中,TCL负责​根据​实时FIFO是否​发生​溢出​进行​数据​验证。 

为了​避免​数据​丢失,​美国​国家​仪器​会​将​缓冲​区​大小​配置​为​不小于NPLTCL循环​周期​之​比,​对于​实时FIFO另外​具有100个​元素​的​下​边界。

T3的软/硬件​配置

主机​硬件

  • Intel Core2 Duo 1.8GHz
  • 2 GB DRAM
  • 英特尔 pro/​10001 GB /秒​以太​网​适​配​器)

主机​软件

  • Windows Vista 64
  • LabVIEW 8

网络​配置

  • 1 GB/秒​交换​网

PXI硬件

  • NI PXI - 8196 RT控制器
  • 2.0GHz奔腾​级​处理​器
  • 256 MB DRAM
  • Broadcom 57xx1 GB /秒​内​置​式​以太​网​适​配​器)

PXI软件

  • LabVIEW 8.5实​时​模​块
  • 网络​变量​引擎 1.2.0
  • 变量​客户​端​支持 1.2.0
  • Broadcom57xx千​兆​以太​网​驱动 2.1

 T4的​方法​及​考虑​因素

T4测试​中,NI采用​具有​下列​数据​类型​的​非​缓冲​网络​发布​共享​变量,​包括:​双​精度,​单​精度,​布​尔​型,​双​精度​数据,​单​精度​数​组,​布​尔​数​组​等。

T4/硬件​配置

PXI的​硬件

  • NI PXI - 8196 RT控制器
  • 2.0GHz奔腾​级​处理​器
  • 256 MB DRAM
  • Broadcom57xx1 GB /秒​内​置​式​以太​网​适​配​器)

PXI的​软件

  • LabVIEW实​时​模​块 8.0
  • 网络​变量​引擎 1.0.0
  • 变量​客户​端​支持 1.0.0
  • Broadcom57xx千​兆​以太​网​司机 1.0.1.3.0

T5T6方法​及​考虑​因素

T5T6测试​中 ,NI采用​双​精度​波形​类型​的​非​缓冲​网络​发布​共享​变量。

T5T6/硬件​配置

主机​硬件

  • 64Intel Core 2 Duo 1.8GHz
  • 2GB DRAM
  • 千​兆​以太​网


主机​软件

  • Windows Vista 64
  • LabVIEW 8.20LabVIEW 8.5

Compact RIO 硬件

  • cRIO 9012
  • 64MB DRAM


Compact RIO 软件

  • LabVIEW RT 8.20LabVIEW RT 8.5
  • 网络​变量​引擎 1.2LabVIEW 8.20 )​和 1.4LabVIEW 8.5
  • 变量​客户​端​支持 1.0LabVIEW 8.20 )​和 1.4LabVIEW 8.5

   

更多​相关​资源

使用​NI​平台​连接​任意​工业​网络​与​PLC

NI CompactRIO​扫描​模式​在​NI LabVIEW​软件​中的​使用

更多​LabVIEW​中文​技术​资源

Was this information helpful?

Yes

No