第一章虚拟仪器及 Labview入门 虚拟仪器概述 虚拟仪器( virtual instrumention)是基于计算机的仪器。计算机和仪器的密切结合是目 前仪器发展的一个重要方向。粗略地说这种结合有两种方式,一种是将计算机装入仪器,其 典型的例子就是所谓智能化的仪器。随着计算机功能的日益强大以及其体积的日趋缩小,这 类仪器功能也越来越强大,目前己经出现含嵌入式系统的仪器。另一种方式是将仪器装入计 算机。以通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器主要是指这种 方式。下面的框图反映了常见的虚拟仪器方案 被测对象 信号调理 数据采集卡 数据处理 虚拟仪器面板 虚拟仪器的主要特点有 尽可能采用了通用的硬件,各种仪器的差异主要是软件。 可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪 器 用户可以根据自己的需要定义和制造各种仪器 虚拟仪器实际上是一个按照仪器需求组织的数据采集系统。虚拟仪器的研究中涉及的基 础理论主要有计算机数据采集和数字信号处理。目前在这一领域内,使用较为广泛的计算机 语言是美国N公司的 LabvIew 虚拟仪器的起源可以追朔到20世纪70年代,那时计算机测控系统在国防、航天等领域 已经有了相当的发展。PC机出现以后,仪器级的计算机化成为可能,甚至在 Microsoft公司 的 Windows诞生之前,NI公司己经在 Macintosh计算机上推出了 Labview20以前的版本 对虚拟仪器和 Labview长期、系统、有效的研究开发使得该公司成为业界公认的权威。 普通的PC有一些不可避免的弱点。用它构建的虚拟仪器或计算机测试系统性能不可能 太高。目前作为计算机化仪器的一个重要发展方向是制定了VXI标准,这是一种插卡式的 仪器。每一种仪器是一个插卡,为了保证仪器的性能,又采用了较多的硬件,但这些卡式仪 器本身都没有面板,其面板仍然用虚拟的方式在计算机屏幕上出现。这些卡插入标准的VXI 机箱,再与计算机相连,就组成了一个测试系统。VXI仪器价格昂贵,目前又推出了一种较 为便宜的PXI标准仪器。 虚拟仪器研究的另一个问题是各种标准仪器的互连及与计算机的连接。目前使用较多的 是IEEE488或GPIB协议。未来的仪器也应当是网络化的。 1.2 Labview是什么? LabⅤIEW( Laboratory Virtual instrument Engineering)是一种图形化的编程语言,它广 泛地被工业界、学术界和硏究实验室所接受,视为一个标准的数据采集和仪器控制软件。 LabvIew集成了与满足GPIB、VXI、RS-232和RS-485协议的硬件及数据采集卡通讯的全 部功能。它还内置了便于应用TCPP、 ActiveX等软件标准的库函数。这是一个功能强大且 灵活的软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程
第一章 虚拟仪器及 LabVIEW 入门 1.1 虚拟仪器概述 虚拟仪器(virtual instrumention)是基于计算机的仪器。计算机和仪器的密切结合是目 前仪器发展的一个重要方向。粗略地说这种结合有两种方式,一种是将计算机装入仪器,其 典型的例子就是所谓智能化的仪器。随着计算机功能的日益强大以及其体积的日趋缩小,这 类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。另一种方式是将仪器装入计 算机。以通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器主要是指这种 方式。下面的框图反映了常见的虚拟仪器方案。 虚拟仪器的主要特点有: 尽可能采用了通用的硬件,各种仪器的差异主要是软件。 可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪 器。 用户可以根据自己的需要定义和制造各种仪器。 虚拟仪器实际上是一个按照仪器需求组织的数据采集系统。虚拟仪器的研究中涉及的基 础理论主要有计算机数据采集和数字信号处理。目前在这一领域内,使用较为广泛的计算机 语言是美国 NI 公司的 LabVIEW。 虚拟仪器的起源可以追朔到 20 世纪 70 年代,那时计算机测控系统在国防、航天等领域 已经有了相当的发展。PC 机出现以后,仪器级的计算机化成为可能,甚至在 Microsoft 公司 的 Windows 诞生之前,NI 公司已经在 Macintosh 计算机上推出了 LabVIEW2.0 以前的版本。 对虚拟仪器和 LabVIEW 长期、系统、有效的研究开发使得该公司成为业界公认的权威。 普通的 PC 有一些不可避免的弱点。用它构建的虚拟仪器或计算机测试系统性能不可能 太高。目前作为计算机化仪器的一个重要发展方向是制定了 VXI 标准,这是一种插卡式的 仪器。每一种仪器是一个插卡,为了保证仪器的性能,又采用了较多的硬件,但这些卡式仪 器本身都没有面板,其面板仍然用虚拟的方式在计算机屏幕上出现。这些卡插入标准的 VXI 机箱,再与计算机相连,就组成了一个测试系统。VXI 仪器价格昂贵,目前又推出了一种较 为便宜的 PXI 标准仪器。 虚拟仪器研究的另一个问题是各种标准仪器的互连及与计算机的连接。目前使用较多的 是 IEEE 488 或 GPIB 协议。未来的仪器也应当是网络化的。 1.2 LabVIEW 是什么? LabVIEW(Laboratory Virtual instrument Engineering)是一种图形化的编程语言,它广 泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。 LabVIEW 集成了与满足 GPIB、VXI、RS-232 和 RS-485 协议的硬件及数据采集卡通讯的全 部功能。它还内置了便于应用 TCP/IP、ActiveX 等软件标准的库函数。这是一个功能强大且 灵活的软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程 被 测 对 象 信 号 调 理 数 据 采 集 卡 虚拟仪器面板 数 据 处 理
都生动有趣。 图形化的程序语言,又称为“G”语言。使用这种语言编程时,基本上不写程序代码 取而代之的是流程图或流程图。它尽可能利用了技术人员、科学家、工程师所熟悉的术语、 图标和概念,因此, Lab view是一个面向最终用户的工具。它可以增强你构建自己的科学 和工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。使用它进行原理硏究、 设计、测试并实现仪器系统时,可以大大提高工作效率 利用 Labview,可产生独立运行的可执行文件,它是一个真正的32位编译器。像许 多重要的软件一样,LabⅤIEW提供了 Windows、UNX、 Linux、 Macintosh的多种版本 1.3 Labview的运行机制 1.3.1 Labview应用程序的构成 所有的 Labview应用程序,即虚拟仪器(Ⅵ),它包括前面板( front panel)、流程图 ( block diagram)以及图标连结器 icon/connector)三部分 前面板 前面板是图形用户界面,也就是Ⅵ的虚拟仪器面板,这一界面上有用户输入和显示输 出两类对象,具体表现有开关、旋钮、图形以及其他控制( control)和显示对象( indicator)。 图1所示是一个随机信号发生和显示的简单ⅥI是它的前面板,上面有一个显示对象,以曲 线的方式显示了所产生的一系列随机数。还有一个控制对象—一开关,可以启动和停止工作。 显然,并非简单地画两个控件就可以运行,在前面板后还有一个与之配套的流程图。 Eile Edit Operate Project Windows Help 控制对象 随机数 显示对象 开 图1-1随机信号发生器的前 流程图 流程图提供ⅥⅠ的图形化源程序。在流程图中对Ⅵ编程,以控制和操纵定义在前面板 上的输入和输出功能。流程图中包括前面板上的控件的连线端子,还有一些前面板上没有 但编程必须有的东西,例如函数、结构和连线等。图1-2是与图1-1对应的流程图。我 们可以看到流程图中包括了前面板上的开关和随机数显示器的连线端子,还有一个随机数发 生器的函数及程序的循环结构。随机数发生器通过连线将产生的随机信号送到显示控件,为 了使它持续工作下去,设置了一个 While Loop循环,由开关控制这一循环的结束
都生动有趣。 图形化的程序语言,又称为“G”语言。使用这种语言编程时,基本上不写程序代码, 取而代之的是流程图或流程图。它尽可能利用了技术人员、科学家、工程师所熟悉的术语、 图标和概念,因此,LabVIEW 是一个面向最终用户的工具。它可以增强你构建自己的科学 和工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。使用它进行原理研究、 设计、测试并实现仪器系统时,可以大大提高工作效率。 利用 LabVIEW,可产生独立运行的可执行文件,它是一个真正的32位编译器。像许 多重要的软件一样,LabVIEW 提供了 Windows、UNIX、Linux、Macintosh 的多种版本。 1.3 LabVIEW 的运行机制 1.3.1 LabVIEW 应用程序的构成 所有的 LabVIEW 应用程序,即虚拟仪器(VI),它包括前面板(front panel)、流程图 (block diagram)以及图标/连结器(icon/connector)三部分。 前面板 前面板是图形用户界面,也就是 VI 的虚拟仪器面板,这一界面上有用户输入和显示输 出两类对象,具体表现有开关、旋钮、图形以及其他控制(control)和显示对象(indicator)。 图 1 所示是一个随机信号发生和显示的简单 VI 是它的前面板,上面有一个显示对象,以曲 线的方式显示了所产生的一系列随机数。还有一个控制对象——开关,可以启动和停止工作。 显然,并非简单地画两个控件就可以运行,在前面板后还有一个与之配套的流程图。 流程图 流程图提供 VI 的图形化源程序。在流程图中对 VI 编程,以控制和操纵定义在前面板 上的输入和输出功能。流程图中包括前面板上的控件的连线端子,还有一些前面板上没有, 但编程必须有的东西,例如函数、结构和连线等。图1-2是与图1-1对应的流程图。我 们可以看到流程图中包括了前面板上的开关和随机数显示器的连线端子,还有一个随机数发 生器的函数及程序的循环结构。随机数发生器通过连线将产生的随机信号送到显示控件,为 了使它持续工作下去,设置了一个 While Loop 循环,由开关控制这一循环的结束。 控制对象 (输入) 显示对象 (输出) 图1-1 随机信号发生器的前
Ehl vi Diagram K File Edit Operate Project Windows Help 國巴叫网如回: Application Font-2 与前面板控件对 函数:随机数 延机数 应的连线端子 发生器 与前面板控件对 应的连线端子 结构:循环 图1一2随机信号发生器的流 如果将ⅥI与标准仪器相比较,那么前面板上的东西就是仪器面板上的东西,而流程图 上的东西相当于仪器箱内的东西。在许多情况下,使用ⅥI可以仿真标准仪器,不仅在屏幕 上出现一个惟妙惟肖的标准仪器面板,而且其功能也与标准仪器相差无几。 图标/连接器 ⅥI具有层次化和结构化的特征。一个Ⅵ可以作为子程序,这里称为子I(subⅥI) 被其他ⅥI调用。图标与连接器在这里相当于图形化的参数,详细情况稍后介绍。 2.2 Labview的操作模板 在 LabvIeW的用户界面上,应特别注意它提供的操作模板,包括工具( Tools)模板、 控制( Controls)模板和函数( Functions)模板。这些模板集中反映了该软件的功能与特征 下面我们来大致浏览一下 工具模板( Tools palette 该模板提供了各种用于创建、修改和调试Ⅵ程序的工具。如果该模wA 显示该被板。当从模内选择了任种工具后,鼠标箭头就会变成该具|目 相应的形状。当从 Windows菜单下选择了 Show Help Window功能后,把 工具模板内选定的任一种工具光标放在流程图程序的子程序(SubⅥ)或 图标上,就会显示相应的帮助信息。 下述工具中注意1和2的区别,2用于编程时,1用于运行程序时。 4是一个特有的工具,它并不是一个简单的画线工具,而是一个符合 Labview语言规定的 对象连接工具 工具图标有如下几种:
如果将 VI 与标准仪器相比较,那么前面板上的东西就是仪器面板上的东西,而流程图 上的东西相当于仪器箱内的东西。在许多情况下,使用 VI 可以仿真标准仪器,不仅在屏幕 上出现一个惟妙惟肖的标准仪器面板,而且其功能也与标准仪器相差无几。 图标/连接器 VI 具有层次化和结构化的特征。一个 VI 可以作为子程序,这里称为子 VI(subVI), 被其他 VI 调用。图标与连接器在这里相当于图形化的参数,详细情况稍后介绍。 1.2.2 LabVIEW 的操作模板 在 LabVIEW 的用户界面上,应特别注意它提供的操作模板,包括工具(Tools)模板、 控制(Controls)模板和函数(Functions)模板。这些模板集中反映了该软件的功能与特征。 下面我们来大致浏览一下。 工具模板(Tools Palette) 该模板提供了各种用于创建、修改和调试 VI 程序的工具。如果该模 板没有出现,则可以在 Windows 菜单下选择 Show Tools Palette 命令以 显示该模板。当从模板内选择了任一种工具后,鼠标箭头就会变成该工具 相应的形状。当从 Windows 菜单下选择了 Show Help Window 功能后,把 工具模板内选定的任一种工具光标放在流程图程序的子程序(Sub VI)或 图标上,就会显示相应的帮助信息。 下述工具中注意1和2的区别,2用于编程时,1用于运行程序时。 4是一个特有的工具,它并不是一个简单的画线工具,而是一个符合 LabVIEW 语言规定的 对象连接工具。 工具图标有如下几种: 函数:随机数 发生器 结构:循环 与前面板控件对 应的连线端子 与前面板控件对 应的连线端子 图1-2 随机信号发生器的流
图标 名称 功 能 Value用于操作前面板的控制和显示。使用它向数字或字符 (操作值) 串控制中键入值时,工具会变成标签工具 Position/Size/Sele用于选择、移动或改变对象的大小。当它用于改变对 ct(选择) 象的连框大小时,会变成相应形状。 Edit text(编辑用于输入标签文本或者创建自由标签。当创建自由标 文本) 签时它会变成相应形状。 Connect Wire(连用于在流程图程序上连接对象。如果联机帮助的窗口 被打开时,把该工具放在任一条连线上,就会显示相 应的数据类型。 0 bject Shortcut用鼠标左键可以弹出对象的弹出式菜单。 Menu(对象菜单) Scroll windows使用该工具就可以不需要使用滚动条而在窗口中漫 (窗口漫游) Set/clear 使用该工具在Ⅵ的流程图对象上设置断点。 Breakpoint(断点 设置/清除) 「⌒ I Probe Data(数据「可在框图程序内的数据流线上设置探针。通过控针窗 探针) 口来观察该数据流线上的数据变化状况。 Get Color(颜色|使用该工具来提取颜色用于编辑其他的对象 提取) Set color(颜色用来给对象定义颜色。它也显示出对象的前景色和背 设置) 景色 下面的两个模板是多层的,其中每一个子模板下还包括多个对象 控制模板( Control Palette) 注意:只有打开前面板时才能调用该模板 该模板用来给前面板设置各种所需的输出显示对象和输入控制对象。每个图标代表 类子模板。如果控制模板不显示,可以用 Windows菜单的 Show Controls palette功能打开 它,也可以在前面板的空白处,点击鼠标右键,以弹出控制模板。 控制模板如左图所示,它包括如下所示的一些子模板。子模板中包括的对象,我们在功 能中用文字简要介绍。 Bing是Enm 吕吕 品 4
下面的两个模板是多层的,其中每一个子模板下还包括多个对象。 控制模板(Control Palette) 注意:只有打开前面板时才能调用该模板 该模板用来给前面板设置各种所需的输出显示对象和输入控制对象。每个图标代表一 类子模板。如果控制模板不显示,可以用 Windows 菜单的 Show Controls Palette 功能打开 它,也可以在前面板的空白处,点击鼠标右键,以弹出控制模板。 控制模板如左图所示,它包括如下所示的一些子模板。子模板中包括的对象,我们在功 能中用文字简要介绍。 图标 名称 功 能 1 Operate Value (操作值) 用于操作前面板的控制和显示。使用它向数字或字符 串控制中键入值时,工具会变成标签工具 2 Position/Size/Sele ct (选择) 用于选择、移动或改变对象的大小。当它用于改变对 象的连框大小时,会变成相应形状。 3 Edit Text(编辑 文本) 用于输入标签文本或者创建自由标签。当创建自由标 签时它会变成相应形状。 4 Connect Wire(连 线) 用于在流程图程序上连接对象。如果联机帮助的窗口 被打开时,把该工具放在任一条连线上,就会显示相 应的数据类型。 5 Object Shortcut Menu(对象菜单) 用鼠标左键可以弹出对象的弹出式菜单。 6 Scroll Windows (窗口漫游) 使用该工具就可以不需要使用滚动条而在窗口中漫 游。 7 Set/Clear Breakpoint(断点 设置/清除) 使用该工具在 VI 的流程图对象上设置断点。 8 Probe Data(数据 探针) 可在框图程序内的数据流线上设置探针。通过控针窗 口来观察该数据流线上的数据变化状况。 9 Get Color(颜色 提取) 使用该工具来提取颜色用于编辑其他的对象。 10 Set Color(颜色 设置) 用来给对象定义颜色。它也显示出对象的前景色和背 景色
图标子模板名称 Numeric(数值量)「数值的控制和显示。包含数字式、指针式显示表盘及各 种输入框。 Boolean(布尔量)逻辑数值的控制和显示。包含各种布尔开关、按钮以及 指示灯等 String&Path(字字符串和路径的控制和显示 符串和路径) 4”|Aray& Cluster|数组和簇的控制和显示。 (数组和簇) List& Table(列列表和表格的控制和显 表和表格) Grapho(图形显示)显示数据结果的趋势图和曲线图。 Ring&Emm(环|环与枚举的控制和显示。 与枚举) /0(输入/输出功丨输入/输出功能。于操作OLE、 Activeⅹ等功能。 Refnum 参考数 9 glog 数字控制 0 Controls(数字控 Classic 经典控制,指以前版本软件的面板图标。 到( Controlso(经典控 制) Activex 用于 Activex等功能。 Decorations(装|用于给前面板进行装饰的各种图形对象 Select a调用存储在文件中的控制和显示的接口 14|( Controls控制选 15/A| User Controls用户自定义的控制和显示。 (用户控制) 功能模板( Functions Palette) 注:只有打开了流程图程序窗口,才能出现功能模板 功能模板是创建流程图程序的工具。该模板上的每一个顶层图标都表示一个子模板 若功能模板不出现,则可以用 Windows菜单下的 Show Functions palette功能打开它,也 可以在流程图程序窗口的空白处点击鼠标右键以弹出功能模板。 功能模板如右图所示,其子模块如下所示。(个别不常用的子模块未包含)
功能模板(Functions Palette) 注:只有打开了流程图程序窗口,才能出现功能模板。 功能模板是创建流程图程序的工具。该模板上的每一个顶层图标都表示一个子模板。 若功能模板不出现,则可以用 Windows 菜单下的 Show Functions Palette 功能打开它,也 可以在流程图程序窗口的空白处点击鼠标右键以弹出功能模板。 功能模板如右图所示,其子模块如下所示。(个别不常用的子模块未包含) 图标 子模板名称 功 能 1 Numeric(数值量) 数值的控制和显示。包含数字式、指针式显示表盘及各 种输入框。 2 Boolean(布尔量) 逻辑数值的控制和显示。包含各种布尔开关、按钮以及 指示灯等。 3 String & Path(字 符串和路径) 字符串和路径的控制和显示。 4 Array & Cluster (数组和簇) 数组和簇的控制和显示。 5 List & Table(列 表和表格) 列表和表格的控制和显示 6 Graph(图形显示) 显示数据结果的趋势图和曲线图。 7 Ring & Enum(环 与枚举) 环与枚举的控制和显示。 8 I/O(输入/输出功 能) 输入/输出功能。于操作 OLE、ActiveX 等功能。 9 Refnum 参考数 10 Digilog Controls(数字控 制) 数字控制 11 Clussic Controls(经典控 制) 经典控制,指以前版本软件的面板图标。 12 Activex 用于 ActiveX 等功能。 13 Decorations(装 饰) 用于给前面板进行装饰的各种图形对象。 14 Select a Controls(控制选 择) 调用存储在文件中的控制和显示的接口。 15 User Controls (用户控制) 用户自定义的控制和显示