Labview程序设计与应用(第2版 德博士负贵研究工作,并成立了一个基金会,任命柯德斯凯为项目实施人。为了克服办公 室日常事务干扰,为创新和灵感创造一个安静环境,柯德斯凯在得州首府奥斯汀得州大学 附近安营扎,这样方面可以利用得州大学的图书馆资源,另一方面也便于雇用学生程 序员。测试与仪器领域一个重要事件就此拉开序幕。 1.12 LabVIeW概念创新 LabⅤIEW的概念雏形来源于特鲁查德和柯德斯凯两人20世纪70年代末期在ARL Applied Research Laboratory,应用研究实验室)完成的一个大型测试系统。该系统主要 用于测试美国海军的声呐探测器,研究人员也可用该系统开展水声学实验研究。这套测试 系统的应用十分灵活,因为为各层次用户提供了不同的交互接口。技术人员可以在某些预 先确定的限制条件下,操作测试系统完成指定的测试任务;水声工程师可以进入低层设备 设计测试过程;而研究人员权限最大,他们可以进入系统所有可编程硬件,配置需要的测 试系统。该测试系统也存在两个缺点:一是系统需要超过18人一年;二是用户必须理解选 单上复杂的命令缩语。 通过几年的时间,柯德斯凯把从该测试系统得到的启示发展到测试系统软件由多层虚 拟仪器(Ⅴ irtual Instruments,简称V)构成的新概念。一个Ⅵ可以由更低层的多个Ⅵ组 成,就像真实仪器由印制电路板组成,而印制电路板又由集成电路(IC)组成一样。底层 Ⅵ代表了最基本的软件功能—计算与输入输出(Io),操作。柯德斯凯特别重视多层软 件的互连与嵌套,创造性地提出了各层Ⅵ都有相同结构形式的思想。在硬件领域,将IC 装配为电路板和将电路板装配为仪器的技术是完全不同的;在软件领域,由语句组成子程 序和子程序组成程序也有差别,更不用说由多个程序构成一个系统。所以柯德斯凯提出的 所有层次Ⅵ一致性的结构和接口模型,极大地简化了软件结构,是对传统结构化软件设 计思想的个新发展 虚拟仪器模型的另一个主要特征是每一个Ⅵ都有一个用户接口组件(以下称Ⅵ前面 板),也就是与实际仪器面板相对应的软面板。在当时传统的编程语言里,即使是简单的命 令行用户接口,在核心程序完成后也还要增加一系列复杂的输入输出语句,何况是设计复 杂的仪器操作面板,但是ⅥI前面板概念模型的提出改变了这一状况。Ⅵ前面板接口已成 为整个软件模型不可分割的一部分,用户通过打开Ⅵ前面板,就可以在系统的任何层次 上与ⅥI交互,并且前面板对象的设计与修改不涉及程序结构和源代码的变化,使得在开 发过程中一步步调试软件模块和定位编程错误更为方便。 柯德斯凯是一个UNX系统程序员,当1983年Aple公司支持图形化操作界面的 Macintosh个人计算机问世后,柯德斯凯灵机一动,他心目中可以模拟真实仪器前面板的 ⅥI图形化操作面板可以实现了。应该说,图形化操作系统的出现,为 Labview的实现奠 定了技术基础,然而,Ⅵ仅仅有容易操作的图形化前面板还不够,还必须在编程技术上有 大的突破,柯德斯凯再次想到了电子表格软件。电子表格软件采用财务人员最熟悉的数据 表格和公式来实现财务软件编程,广大工程师又是如何设计软件的呢?最基本的办法是首 先按照系统要求设计流程图,再将流程图转化为具体的程序代码,当然,这个转化过程需 要许多编程技巧。柯德斯凯设想构造设计一种基于框图的编程方法,既便于用户概念设计 其功能和灵活性又足以作为编程语言使用
第1章绪论 在分析比较了几种框图编程方法的优劣后柯德斯凯决定采用数据流图作为编程工具。 数据流图长期以来一直被认为是顶层软件设计的有效工具,但一般的数据流图并没有提供 循环结构、顺序结构和条件结构等程序设计的基本要素。柯德斯凯扩展了数据流图功能 使它能够处理循环、顺序和条件等程序控制,并在此基础上提出了结构化数据流程图模型。 1990年他的结构化数据流图和虚拟仪器面板获得了两项美国专利 在Ⅵ模型、图形界面和结构化数据流图编程等核心技术确定后,编程实现相对容易多 了。柯德斯凯用4个月时间组织了一支软件开发队伍,在 Macintosh上开始编程工作。在开 发过程中,麦克里森表现了卓越的项目组织管理能力,提出了整个软件设计的关键数据结构 与模块关系,加快了整个软件开发进程。柯德斯凯领导的开发小组克服了程序溢出和内存不 足等困难,于1986年5月推出 Labview Beta测试版,又经过几个月的反馈修改,于1986 年10月正式发布了 LabViEw10版。 LabvIEW最初吸引的仅仅是没有任何编程语言经验的 用户,这些用户相信采用 LabvIew就能实现有经验的程序员也难完成的应用程序。 有效的内存管理是使图形化编程语言优于普通解释语言的关键。由于数据流解释需要 大量分配内存,因此,内存重用对数据流图编程效率至关重要,寻找内存重用的有效算法 成为提高 LabvIew性能的关键 LabVIEW 1.版解决了算法问题,随后改进的 Labview1.2 版是可靠性和鲁棒性很强的产品,但由于内在体系局限,其性能与C语言程序相比,仍然 有较大差距。为了解决这个问题,1988年开始的 LabVIEw20采用了最新的面向对象编程 (OOP)技术。当1990年1月 Lab VIEw20发送给第一个热心用户时,LabⅥTW程序在 执行速度和灵活性等方面的改进令人惊叹。与普通编程语言采用编译、连接等步骤生成应 用程序不同, LabVIEw20编译器是整个软件集成和不可见的部分,编译速度极快。 LabⅤIEW20以前的版本都是运行在 Macintosh平台上的,在 Windows30操作系统出 现,32位 Windows应用程序设计成为可能后, LabvIew才实现了从 Macintosh平台到 windows平台的移植。1992年8月,跨平台的LabⅤEW25问世。19%3年1月,增加了 大量新特性的LabⅤEW3.0正式发行,这些新特性包括全局与局部变量、属性节点和执行 动画。从 LabVIew30版本开始,LabⅤEW作为一个完整优异的图形化软件开发环境得 到了工业界和学术界的以可,并开始迅速占领市场,赢得了广大用户的青睐。 12G语言与虚拟仪器 从 Labview研制开发的过程可以看到,虽然LabⅤEW本身是一个功能比较完整的软 件开发环塊,但它是为替代常规的 BASIC或C语言而设计的, Lab vIew是编程语言而不 仅仅是一个软件开发环境。作为编写应用程序的语言,除了编程方式不同外,LabⅤEW具 备语言的所有特性,因此又称之为G语言。 G语言是一种适合应用于任何编程任务,具有扩展函数库的通用编程语言。和BASC 或C语言一样,G语言定义了数据模型、结构类型和模块调用语法规则等编程语言的基本 要素,在功能完整性和应用活性上不逊于任何高级语言,同时,G语言丰富的扩展函数 库还为用户编程提供了极大的方便。这些扩展函数库主要面向数据采集、GPB和串行仪器控 制,以及数据分析、数据显示和数据存储。G语言还包括常用的程序调试工具,比如允许设置 断点、单步调试、数据探针和动态显示执行程序流程等功能。G语言与传统高级编程语言最大 的差别在于编程方式,一般高级语言采用文本编程,而G语言采用图形化编程方式
LabvIew程序设计与应用(第2版 G语言编写的程序称为虚拟仪器vI( Virtual Instruments),因为它的界面和功能与真 实仪器十分相像,在LabⅥW环境下开发的应用程序都被冠以ⅥI后缀,以表示虚拟仪器 的含义。一个Ⅵ由前面板、数据流框图程序和图标连接端口组成,各部分功能如下: 1.前面板 前面板是Ⅵ的交互式用户接口,与真实物理仪器面板相似。前面板可以包含旋钮、刻度 盘、开关、图表和其他界面工具,允许用户通过键盘或鼠标获取数据显示结果。 2.数据流框图程序 Ⅵ从数据流框图程序中接收指令,框图程序是一种解决编程问题的图形化方法,实际上 是Ⅵ的程序代码。 3.图标连接端口 ⅥI图标和连接端口的功能就像一个图形化参数列表,可在ⅥI与SubⅥ之间传递数据。 个Ⅵ既可以作为上层独立程序,也可以作为其他程序(或子程序)的子程序。当一个Ⅵ 作为子程序时,称做SubV。 正是基于Ⅵ的上述特性,G语言最佳地实现了模块化编程思想。用户可以将一个应 用分解为一系列任务,再将每个任务细分,将一个复杂的应用分解为一系列简单的子任务, 为每个子任务建立一个Ⅵ,然后,把这些Ⅵ组合在一起完成最终的应用程序。因为每个 SubⅥ可以单独执行,所以很容易调试。进一步而言,许多低层SubⅥ可以完成一些常用 功能,因此,用户可以开发特定的SubV库,以适用一般的应用程序 G语言是LabⅤW的核心,熟练掌握G语言的编程要素和语法规则,是开发高水平 abVIEW应用程序最重要的基础。换句话说,要真正掌握 Labview开发工具,必须把它 作为一个编程语言,而不仅仅是一个编程环境来学习,这正是本书着力强调并贯穿于全过 程的重点内容 虚拟仪器概念是 LabvieW的精髓,也是G语言区别于其他高级语言最显著的特征。 正是由于 LabVIEw的成功,才使虚拟仪器的概念为学术界和工程界广泛接受;反过来也 正是因为虚拟仪器概念的延伸与扩展,才使 Labview的应用更加广泛。 13LabⅤIEW应用解决方案 LabvIew自198年正式推出至今不到19年的时间内,已经从最初单一图形化编程 功能、单一运行平台发展到目前以最新版本 Lab view7 Express为核心,包括控制与仿真、 高级数字信号处理、统计过程控制、模糊控制和PID控制等众多附加软件包,运行于 indows Nt200iu、 Macintosh、sSm和 HP-UX:等多种平台的工业标准软件开发环 境。在美国,许多工科大学已将 LabvieW作为课堂或实验室教学内容,作为工程师素质 培养的一个方面。不同领域的科学家和工程师都借助这个易用的软件包来解决工作中的各 种应用课题。 LabⅥIEW在包括航空、航天、通信、汽车、半导体和生物医学等世界范围的众多领
第1章绪 域内得到了广泛应用,从简单的仪器控制、数据采集到尖端的测试和工业自动化,从大学 实验室到工厂,从探索研究到技术集成,都可以发现应用 Lab view的成果和开发产品。 1.LabⅤIEW应用于测试与测量 LabVIEW已成为测试与测量领域的工业标准,通过GPIB、VⅪI、PLC、串行设备和 插卡式数据采集板可以构成实际的数据采集系统。它提供了工业界最大的仪器驱动程序库, 同时还支持通过 tenet、 ActiveX、DDE和SQL等交互式通信方式实现数据共享,它提供 的众多开发工具使复杂的测试与测量任务变得简单易行。 2 LabVIew应用于过程控制和工业自动化 LabvIew强大的硬件驱动、图形显示能力和便捷的快速程序设计,为过程控制和工业 自动化应用提供了优秀的解决方案。对于更复杂更专业的工业自动化领域,在 Labview 基础上发展起来的 Bridge VIEW是更好的选择。 3LabⅤIEW应用于实验室研究与自动化 abVIew为科学家和工程师提供了功能强大的高级数学分析库,包括统计、估计、回 归分析、线性代数、信号生成算法、时域和频域算法等众多科学领域,可满足各种计算和 分析需要。即使在联合时域分析、小波和数字滤波器设计等高级或特殊分析场合, Lab VIEW 也为此提供了专门的附加软件包 LabⅤIEW是一个具有高度灵活性的开发系统,用户可以根据自己的应用领域和开发要 求选择 LabvIEw系统配置。N公司为不同层次用户提供了3种系统配置: (1) Labview基本版 LabvIEW基本版是用于开发数据采集和仪器控制系统的最小 LabVIEW配置,包括 VSA、GPB、RS-232、DAQ和基本分析库,同时还包括支持 ActiveX、TCPP和DDE 等标准程序的接口 (2) LabvieW完整版(FDs) 除了基本版的功能外,FDS还包括完整的高级分析库。 (3) LabVIEw专业版(PDS) Lab VIEw专业版除了FDS的功能外,还具有专业程序员开发时所需要的全部工具, 包括可执行文件生成工具、源代码控制、复杂矩阵分析、软件工程文档管理、质量控 制标准文档、图形差异比较和大型软件项目管理文档工具等。 对一般用户而言,采购 LabvIEw完整版,并根据实际应用选取专门的LabⅤEW工具 套件是最佳选择。表131列出了需单独购买的 Labview主要工具包 除了表13.1列出的 LabVIEw工具包以外,还有许多第三方软件开发商设计开发的大量 定制Ⅵ供用户选择。实际上 Labview已经成为工业标准,形成了广泛的用户群体和专业开 发人员,有力地促进了 LabvIew技术本身的发展与进步。从 Labview401版本更新到 abVTEw7版本,几乎一年更新一个版本就是 LabVIEw技术发展和广泛应用最显著的标志
Lab view程序设计与应用(第2版) 表131需单独购买的主要 LabvIew工具包 abVIEW工具包名称 Signal Processing Tookit 包括数字滤波器与联合时频分析L具包,小波及滤波器组设计「具箱 声音和震动信号分析工具包 Order Analysis Tookit 阶次分析具包 Modulation tookil 调制工具包 PID Control Tookit 提供P、PI 发图 D控算法并直接动硬件输出 状态图工貝包,支持从状态图直接生成代码 VI Analyzer tookit Ⅵ分析1具包,提供自动测试工具以改进Ⅵ的设计 Motion control tookit 运动控制工具包 仿真与控制工具包 Database Connectivity Tooki 数据库访问工具 Intime访闷T具 SPC Tookit SPC分析,控制流图,Pato分析 Vision and Image Processing Tookit 高级图像分析具 Report Generation Tookit 报表生成工具 本书内容组织以 LabVIEw7 Express版本为基础。与之前的老版本相比,LabⅤIEW7 Express版本增加了许多先进功能和新特性,下面首先对这些新功能、新特性作概要性描 述,以便读者更好地理解本书增加的内容。 14LabⅤEW7 Express新特性 LabⅤlEW7 Express新增功能与特性概括起来可以归纳为:进步改进提高了编程功 能与运行效率;进一步简化了程序开发与管理;进一步扩展了应用领域。总之,这些新功 能、新特性使得 Labview提供了创新的开发环境、全新的编程工具、交互式测量与运行 方式选择,同时具备强大的功能和方便的使用性能。这些新功能、新特性主要包括: ·改进的 Labview启动界面,如图14.|所示。单击New按钮将打开新建对话框, 该对话框包含一系列Ⅵ模板,可创建基于特定模板的Ⅵ。单击 Configure按钮可以打开 Measurement& Automation Explorer(MAX)、创建 DAQmX任务或创建 DAQmx通道。 Express VIs。又称快速Ⅵ,是针对常见的测试和测量应用而定制设计的Ⅵ。一个 Express VI通常综合了多个传统Ⅵ的功能于一身,极大地简化和改进了用户的开发过程。 ExpressⅥ没有属性结点,所有属性都通过对话框设置,方便快捷。 ·ⅥI模板。从主选单中选择File→New,打开新建对话框,对话框列出了内建的模 板,可以选择并创建基于这些模板的ⅤI