3种方法调用服务器提供的服务

1)客户端就是本机的LabVIEW 程序,这是最常用的VI 服务器使用方式。VI直接使用LabVIEW 中的属性、调用等节点就可以利用VI 服务器提供的服务了,这种方法也称为VI Scripting(VI 脚本) 。
2)ActiveX: 如果希望在其他编程语言中使用VI 服务器,可以利用LabVIEW 提供的ActiveX接口支持ActiveX 的编程语言,如VB 、VC++ 等都可以调用LabVIEW 提供的服务。
3)TCP/ IP: 用于远程机器.通过TCP/IP 协议调用另一台计算机上LabVIEW提供的功能。

运行中改变界面

属性节点

两种方法:
image.png
有时需要在程序中设置多个控件的同一属性.由控件直接生成的属性节点只能与固定的控件相关联,这就需要为每个控件都生成相同的属性节点。由于通用属性节点可以作用于任何控件,因此可以使用通用属性节点做成的子VI 来设置所有的控件,以尽可能地重用代码。

VI 的引用可以通过两种方法得到:静态的和动态的。
静态的方法:需要使用”编程→应用程序控制→静态VI 弓|用”节点(见图6. 7)。把这个节点放置在程序框图上,双击”静态VI 引用”图标或选择它的右键菜单”浏览路径”,则弹出”选择需打开的VI”提示框。从中选取某VI.这个节点即可输出这一VI 的引用。之所以称其为静态,是因为在编写程序时,就已经指定好了这个引用所指向的VI。

得到对象的引用

在实际应用中,更多的情况是需要得到一个VI 上的某个控件,而不是所有控件.先得到所有的控件,再一一判别它们是否是所需的那个控件,这种方法比较麻烦。Get Control.vi已实现。
改变前面板饰物(Decorations)的属性:
image.png

image.png

类浏览器

ctrl+shift+b:方便查看属性和方法
image.png

装载和运行子VI

静态与动态装载子VI

一般情况下,一个VI 被打开时,它所有的子VI 也都会同时装入内存。这种把子VI 载入内存的方式称为静态装载.对于一些小型程序而言,这种做法没有任何不妥.但是对于大型的、有成百上千个子VI 组成的程序来说,在主VI 打开的同时,装人所有的子VI .这种做法将带来两个主要的弊病2 一是占用内存过大,二是程序启动速度过慢.
在大型程序中,总会有一些运行分支上的子VI 使用频率较低.按照使用的频率可以把子VI 分成3 个级别:经常被使用的(比如启动主程序10 次,某个子VI 至少有三四次会被运行到) ;偶尔被使用的(比如启动主程序100 次,某个子VI 只有不到十次会被运行到h 几乎从来不被使用的〈比如启动主程序上百次,某个子VI 才会有一次被运行到)。
image.png
拖拽函数的使用
D:\Program Files (x86)\Labview2010\LabVIEW 2010\examples\general\dragdrop\Drag and Drop - Built-in Source Custom Data.vi
Grag and Drop.gif
Grag and Drop Dragramming.gif

“打开vi引用”函数需要提供一个”Vi路径”输入,假如这个vi不在内存中,那么需要提供v1的全路径方可打开它的引用;vi已经在内存中,则只需要输入这个v1的名称,就可以得到它的引用了。

动态调用VI

运行动态调用子VI 一般有3 步:动态打开一个VI,运行VI ,关闭VI 的引用。
image.png

image.png
程序往往有这样的需求:主VI 在一个线程内运行,要求子VI 在另一线程内并行独立运行。选用此种动态调用方式就能满足此要求。
image.png

显示多个子界面窗口

编程中有时候会遇到这种需求z程序有一个主界面, 主界面VI 需要多次调用同一个子VI ,子VI 同时运行多份,并显示出多个子界面窗口.
若需要子VI 打开多份实例, 子VI 必须是可重入的.主程序运行到子VI 处,把子VI 打开后会一直等待下去,直到子VI 运行结束,主VI 才继续执行后续的代码.主VI 既然已经停在这里了,自然不可能再继续去打开其他子VI. 解决的办法是在调用子VI 的地方改为动态调用,并且不等待子VI 运行结束。
由于子VI 是可重人的,必须给” 打开VI 引用”函数设置一个值为”8”的”选项”参数.
image.png

插件结构

测试程序主体作为一个框架,每个测试任务作为一个插件。“框架-插件”式结构。
框架式程序的核心是通过动态调用,让插件VI 运行起来的。
image.png
在子文件夹”插件”内的文件都认为是一个插件,若有新的插件, 直接放入这个文件夹即可;每个插件都采用相同样式的连线板,以采用同样的方式为每个插件传递参数.至于实验的顺序,可以在命名插件文件名时,让其第一个字母按序排列即可。

后台任务