LabVIEW程序具有如下特点:
尽可能采用了通用的硬件,各种仪器的差异主要是软件。
可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪器。
用户可以根据自己的需要定义和制造各种仪器。
虚拟仪器研究的另一个问题是各种标准仪器的互连及与计算机的连接。目前使用较多的是IEEE488或GPIB协议。未来的仪器也应当是网络化的。LabVIEW程序是一种图形化的编程语言的开发环境,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。LabVIEW [1]集成了与满足 GPIB、VXI、RS-232和 RS-485 协议的硬件及数据采集卡通讯的全部功能。
它还内置了便于应用TCP/IP、ActiveX等软件标准的库函数。这是一个功能强大且灵活的软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。图形化的程序语言,又称为“G”语言。使用这种语言编程时,基本上不写程序代码,取而代之的是流程图或框图。它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念,因此,LabVIEW是一个面向最终用户的工具。
它可以增强你构建自己的科学和工程系统的能力,LabVIEW程序提供了实现仪器编程和数据采集系统的便捷途径。使用它进行原理研究、设计、测试并实现仪器系统时,可以大大提高工作效率。利用LabVIEW可产生独立运行的可执行文件,它是一个真正的32位/64位编译器。像许多重要的软件一样,LabVIEW提供了Windows、UNIX、Linux、Macintosh的多种版本。
对于在 CLN 中选取何种线程,LabVIEW程序有一个简单的判断方法。如果你要使用的动态连接库是多线程安全的,就选择可重入方式;否则,动态连接库不是多线程安全的,就选择界面线程方式。
判断一个动态连接库是不是线程安全的,也比较麻烦。如果这个动态连接库文档中没用明确说明它是多线程安全的,那么就要当他是非线性安全的;如果能看到动态连接库的源代码,LabVIEW程序代码中存在全局变量、静态变量或者代码中看不到有 lock 一类的操作,这个动态连接库也就肯定不是多线程安全的。
选择了可重入方式,LabVIEW 会在最方便的线程内运行动态连接库函数,一般会与调用它的 VI 运行在同一个线程内。因为 LabVIEW 是自动多线程的语言,它也很可能会把动态连接库函数分配一个单独的线程运行。LabVIEW程序如果程序中存在没有直接或间接先后关系的两个 CLN 节点,LabVIEW 很可能会同时在不同的线程内运行它们所调用的函数,也许是同一函数。对于非多线程安全的动态连接库,这是很危险的操作。很容易引起数据混乱,甚至是程序崩溃。
选择界面线程方式:因为 LabVIEW 只有一个界面线程,LabVIEW程序所以如果所有的 CLN 设置都是界面线程,那么就可以保证这些 CLN 调用的函数肯定全部都运行在同一线程下,肯定不会被同时调用。对于非多线程安全的动态连接库,这就保证了它的安全。
LabVIEW程序详细情况请到www.gkzhan.com/st135797/
LabVIEW程序详细情况请到www.gkzhan.com/st135797/product_6860612.html