第2章虚拟仪器:连接计算机和现实世界 17 很多GPB仪器也有内置的串行口。然而,与GPB不同的是,一个RS-232串行口只能与一个 设备通信,这限制了很多方面的应用。尽管串行通信①非常慢,并且没有内置的错误检查功能。然 而,电行诵信白有其用涂(当然是非常经济的).LabVIEW串行函数库也句含可用的针对串行口操 作的函数。如果用户有电缆和可以“交谈”的设备,就可以尝试使用串行口通信。 2.6现实应用:为什么要分析 一旦计算机获得了数据,就需要进行某些数据处理。LabVIEW有许多分析软件,包括生物医 学数据处理、语音合成和识别及数字语音和图像处理。 将分析库集成到试验台中的重要性是显而易见的:从DAQ设备或GPB仪器采集到的原始数 据并不总是立刻传递有效信息,常常需要转换信号、消除噪声、修正故障设备导致受损的数据,或 补偿环境如温度和湿度带来的影响。图2.6显示了包含噪声的数据,遮了有用信号。 通过分析和处理数字信号数据,可从噪声中提取有用信号,并以比原始数据更容易理解的形式 显示出来。处理时的数据与图27所示的相以 图2.6包含噪声的数据 图27经过处理去除噪声的数据 LabVIEW框图编程方法以及大量的LabVIEW分析VI简化了分析软件的开发。下面的示例框 图说明了LabVIEW的编程概念(见图2.8)。 图2.8框图显示如何在LabVIEW中处理原始数据并显示结果 因为LabVIEW分析函数以离散的VI提供了流行的数据分析技术,所以只要把它们连接起来就 可以分析数据,如上图所示。LabVIEW可以集中精力解决数据分析问题,而不是像大多数编程语 言那样关注分析程序的实现细节。LabVIEW分析VⅥ功能非常强大,专业人员可以使用数字信号处 理(DSP)数字滤波器、统计或数值分析VI创建复杂的分析软件。同时,它也非常简单,初学者 就可以执行复杂的计算。 abVIEW分析V1能够有效地处理以数字形式表示的信息块,涵盖了下面列出的主要处理 领域 ●信号和噪声产生 ●频谱分析(FT、功率谱等) ①RS422和RS485通常称之为“多设备申行通信”,在一条总线上可以方便地进行多个设备间的通信。RS422和RS 485不容易受噪声影响,并且允许使用较长的电缆,这也是它们被普遍用于(超过RS232)工业应用的原因
18 LabVIEW大学实用教程(第三版) ●脉冲特征(时间、转换、电平等) ●幅度/电平测量(DC/RMS、峰值等 ●失真测量(SNAD、THD) ●信号监测(极限屏蔽、触发等) ●曲线拟合/优化 ●插值/外推 ●基于BLAS/LAPACK的线性代数 ●逐点分析 。概率统 ●变换(傅里叶变换、希尔伯特变换等)】 ●频率和脉冲响应 ●峰值/电平检测 ●数字滤波 ●信号二次采样/对齐 ●加窗 ●常微分方程 ·微积分 ●多项式函数/求根 ●基本函数和特殊函数 2.7PX1和VXI简介 另外两个需要熟悉的硬件平台是PXⅪ和VX灯 PXI,是compactPCl eXtensions for Instrumentation(compactPCI总线在仪器领域的扩展)的缩 写词,定义了一个基于英特尔x86处理器(PC体系结构)和CompactPCI.总线(PCI总线的一个版 本)的模块化硬件平台。典型的配置包含一个PXⅪ机箱(见图2.9),它拥有自己的运行Microsoft Windows系统的PC(亦称为控制器),可以插人所有类型的测量模块:模拟输人、成像、运动控制、 语音、继电器、GB和VXⅪ接口等。系统紧凑、耐用,并且可以扩展,对于很多应用系统来说是很 有吸引力的平台。图2.10所示是一个现实应用中的PXⅪ系统实例。除了标准PXⅪ配置的运行Mi© osoft Windows的控制器之外,也可以在控制器上使用LabVIEW的实时版(LabVIEW RT),使其 成为更加强大的系统,甚至还可以运行Linux系统(支持NM硬件的Liux系统稳定性已经得到改进, 图2.9安装有控制器及各种O卡的PX机箱
第2章虚拟仪器:连接计算机和现实世界 19 图2.10PX系统 VXL,是VME eXtensions for Instrumentation(VME总线在仪器领域的扩展)的缩写词,是板 上仪器系统的另一个仪器标准。于1987年首次发布,基于VME总线标准(EEE1014),VⅪ总线 是一种比PXI更高端并且通常更昂贵的系统。VXⅪ包括主机箱,主机箱拥有多个插槽可以插入模块 化仪器插件板。众多的供应商提供了多种多样的仪器和主机尺寸,也可以在VX系统中使用VME 模块。VXⅪ在传统的测试和测量及ATE(自动测试设备)应用中有着广泛的应用。在要求测量通道 数多的(数百或数千个)研究和工业控制应用数据采集和分析领域,VXⅪ也很流行。 VXⅪ即插即用标准是一个和VXⅪ产品相关联的名词,这种标准增加了新的标准化特性,超越 了产品的基本规格范围。VXⅪ即插即用兼容仪器包括标准化软件,提供软件前面板、仪器驱动程序 和安装程序,以便充分利用仪器功能并使编程任务尽量简单。LabVIEW的VXⅪ软件与VXⅪ即插即 用标准兼容。 2.8连通性 在一些应用中,可能需要本地或通过局域网与其他程序共享数据。在很多情况下,可能需要通 过互联网共享数据,或允许别人通过Wb查看或控制自己的系统。 LabVIEW用一些内置功能(如Web服务器、Wcb发布工具、电子邮件VT和网络变量)和函 数来简化这些过程。这些VI用于通过网络或其他互联网进行通信。LabVIEW可以使用NIPublish and Subscribe Protocol(N-PSP),在第16章中将学习更多这方面的内容,包括通过网络共享数据 调用和创建动态链接库(DLL)或外部代码,并支持ActiveX自动化和NET组件。使用另外附加 的模块和工具包,LabVIEW能够与大多数的SQL(结构化查询语言)数据库通信,如MySOL PostgreSQL、Oracle、.SQL Server和Access。还可以在LabVIEW工程中定义网络变量,并很容易地 通过整个分布式测量系统实现共享。甲
20 LabVIEW大学实用教程(第三版) 2.8.1网络连通性 LabVIEW有很多内置的功能使得通过互联网共享VI和数据更加容易。使用LabVIEW的Wb 服务器和远程面板,允许远程查看和控制VT(不需要任何额外编程),如图2.11所示。 A相 图2.11远程查看和控制V1 使用Enterprise Connectivity Toolkit(企业连通工具),还可以用LabVIEW实现fp和telneti访 问远程系统,以及提供高级Wb服务功能。邮件功能已经内置于LabVIEW专业版中。 2.8.2联网 从用途来讲,联网一殷是指(但是不是必要的)运行于不同计算机上的多个进程之间的通信。 这种通信可以发生在一个封闭的局域网(LAN)上,或通过互联网通信。网络在应用软件中的一个 主要用途就是允许一个或多个应用程序使用其他应用程序提供的服务。除了LabVIEW的Wb发布 功能,还可以使用一些网络功能与其他软件或LabVIEW程序通信。 对于工作进程之间的通信,程序应该使用一个通用的通信语言,称之为协议。LabVIEW支持 如下的协议: NI Publish and Subscibe Protocol (NI-PSP)- 一用于共享仪器数据N私有协议。其优点是 使用容易。共享变量(将在16章中讨论)在内部使用了这项技术。 ●TCP/IP 一大多数网络的基本协议,包括互联网。 ●UDP 一个基本的协议,类似于TCPP协议,但是不需要传递应答数据。 本书将在第16章讨论有关互联网和网络的更多内容。 2.8.3 ActiveX和.NET ActiveX是微软的一项技术,定义了一个基于组件的结构,用于建立能够与其他应用程序通信 的应用程序。ActiveX建立在以前的技术如OLE基础上。使用ActiveX,应用软件可以与一个完全
第2章虚拟仪器:连接计算机和现实世界 21 不同的应用程序共享一段代码(组件)。例如,由于Microsoft Word是一个ActiveX组件,所以可 以控制和嵌人一个Word文档到ActiveX应用程序中,如LabVIEW VI。LabVIEW支持ActiveX自 动化并包含ActiveX组件。 NET框架是微软另一项新技术,用于简化设计百联网高级分布式环墙下的应用程序开发。在 LabVIEW中,可以容易地使用这一新技术作为.NET客户端。可以创建.NET类的实例,调用方法设 置并获得其属性。这样,在LabVIEW中使用NET与使用ActiveX自动化T相似。 如果不理解上面所述,也不要担心(ActiveX和.NET都是非常复杂的高级主题,将在第16章 详细讨论)。 2.8.4共享库、DLL和CN 为了增强灵活性,LabVIEW能够调用并创建外部代码程序(例如,C+语言编写的代码)作 为共享库,并把这些程序集成到可执行程序中。事实上,一个共享程序库就是一个共享函数库 应用程序可以在运行时连接到该程序库,而不是在编译时连接。在Windows中,共享程序库被称 为动态链接库(DLL方在Mac OS X系统中,称为framework;在Linux中称为共享目标(或者共 享库)】 在LabVIEW中可以使用Call Library函数调用共享库。还可以告诉LabVIEW,将V编译为共 享库,供其他类型的代码(如C+)使用。在其他平台上的共享库(非Windows)不需要文件扩展 名为.d山一在表2.1中列出了对应平台上的共享库文件扩展名 表21共文件的务 Mac Os x sea w-Ivds I UNIX 除了调用共享库,LabVIEW还可以使用称为代码接口节点(code interface node,C)的特殊 的框图结构调用外部代码,将常规的、基于文本的代码连接到VI中。当节点执行时,LabVIEW调 用该可执行代码,将框图中的输人数据传送到可执行代码,并将可执行代码的数据返回到框图。当 外部代码不能很好地适应共享库结构时,可以使用CN。需要特别注意的是,CN是静态连接到I 的,不编辑VI就不能改变CN(对于只在运行时连接的共享库来说就不是这样的)。使用CN的VI 也不能跨平台兼容。 绝大部分应用程序从来不需要使用CN或DLL。虽然LabVIEW:编译器常常能够为任务生成足 够快的代码,但是对于一些时间要求苛刻、要求进行大量数据操作的任务来说,或者是先前已经为 其编写了特殊的代码,这时CN和DLL是很有用的。同样,对于不能直接从框图中执行的任务也 是很有用的,如调用操作系统程序,LabVIEW的函数中是没有的。另外,很多第三方软件开发者 也把它们的软件打包成共享库。例如,在“PXⅪ和VXⅪ简介”部分提到的VXⅪ即插即用兼容驱动程 序,实际上就是在LabVIEW VI中通过调用DLL函数使用了共享库(DLL)。 2.8.5其他通信机制 除了这些网络协议,LabVIEW还支持一些较早的并且较少用到的协议及应用通信平台,如 DDE(Windows,以及Linux和Mac OS X中所谓的管道