基础篇 PDG
揭开LabVIEW的面纱 第 章 的初产高不久在香吉子。金 这是一段关于计算机语言的“圣经”,它表达了长久以来人们对计算机高级语言发展的渴望 计算机发明的初衷就是服务人类,帮助人们去实现他们所关注的事情。然而复杂、枯涩的编程语 言把大部分人都拒之门外,人们不得不花费大量的时间与精力去学习与他们所关注的事情毫不相 关的语法、命令和编译器等诸如此类的东西。 LabVIEW图形化编程语言的出现终于把人们一尤其是工程师和科学家们从繁杂的编程工 作中解放出来,使他们能够真正专心于自己所关注的事情。通过LabVIEW图形化编程环境,编 程者可以像搭积木一样“搭建”所见即所得的程序界面,而程序的执行内容则由一个个表示函数 的图标和图标之何的数据流连线构成。这不仅使得编程者不再需要记忆纷繁复杂的语法和函数喷 型,更使编写程序的过程与工程师们的思维习惯相符合,从而使编写程序的过程也变得生动起来。 1.1 LabVIEW简介 1.1.1什么是LabVIEW LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一种用图标代替文本行包 建应用程序的图形化编程语言。传统文本编程语言根据语句和指令的先后顺序决定程序的执行顺 序,而LabVIEW则采用数据流编程方式,程序框图中节点之间的数据流向决定了程序的执行顺 序。它用图标表示函数,用连线表示数据流向。 LabVIEW提供很多外观与传统仪器(如示波器、万用表)类似的控件,可用来方便地创建用 户界面。用户界面在LabVIEW中被称为前面板。使用图标和连线,可以通过编程对前面板上的 对象进行控制。这就是图形化源代码,又称G(Graphics)代码。LabVIEW的图形化源代码在某 种程度上类似于数据流流程图,因此又被称作程序框图代码。前面板.上的每一个控件对应于程序 框图中的一个对象,当数据“流向”该控件时,控件就会根据自己的特性以一定的方式显示数据 例如开关、数字或图形。图1,1就是一个LabVIEW程序实例的前面板与程序框图,该例模拟了 个温度监测系统。 LabVIEW程序被称为VI(Virtual Instrument),即虚拟仪器,这是因为它的很多界面控件与 操作都模拟了现实世界中的仪器,例如示波器与万用表等。LabVIEW的核心概念就是“软件即是 仪器”,即虚拟仪器的概念。LabVIEW还包含了大量的工具与函数用于数据采集、分析、显示与
第章 揭开LabVIEW的面纱 存储等。这些工具都是向导式的工具,用户只需要一步步按照提示就可以实现与仪器的连接和参 数的设置。而程序员也不用去记忆这些大量的函数,因为这些函数都以图标与名称的形式存在于 一个小小的函数面板上,当需要用到某个函数时把它从函数面板上拖放到程序框图中就可以了。 这一切都是图形化带来的好处。 3 严 图1.1 LabVIEW程序的前面板与程序框图举例 1.1.2 LabVIEW的作用 由于LabVIEW可以用来创建通用的应用程序,因此被称为一种通用的编程语言。但是它在 测试、测量和自动化等领域具有更大的优势,因为LabVIEW提供了大量的工具与函数用于数扼 采集、分析、显示和存储。同时它还提供了大量常用于自动化测试测量领域的图形控件。这使得 用户可以在数分钟内完成一套完整的从仪器连接、数据采集到分析、显示和存储的自动化测试测 量系统。因此它被广泛地应用于汽车、通信、航空、半导体、电子设计生产、过程控制和生物医 学等各个领域,涵盖了从研发、测试、生产到服务的产品开发所有阶段。八1网站上拥有上千个应 用案例供读者参考:htp:小www.ni.com/solutions//。今天欧美的许多高校非计算机专业的学生选修 G语言并用它开发应用软件的人数已经超过C等文本语言,近年来我国高校G语言教学实践正在 讯谏展开。 LabVIEW不仅可以用来快速搭建小型自动化测试测量系统,还可以用来开发大型的分布式数 据采集与控制系统。 在美国Lawrence Livermore国家实验室,一个花费20O0万美金的极为复杂的飞秒激光切割系 统就是基于LabVIEW开发的。该系统中,4台Windows NT工作站用网络连接起来,LabVIEW 用来给激光提供测量、控制和自动定序,同时作为半熟练操作者的高层用户界面。几乎安装了所
LabVIEW8.20程序设计从入门到精通 有类型的VO硬件:DAQ、GPIB、串行、远程控制SCXI、VME/VXI以及IMAQ成像。由于这个 项目的极端重要性,因此本项目采取了正式的软件质量保证过程。软件开发总共用了4个年度, 创建了约600个V1. 在作者参与的北京正负电子对搐机二期工程北京善仪褐烤制系统中,大约有30种物理量共 7000多点的现场数据点需要实时采集控制和分析记录等。作者负责该系统的软件体系结构设计与 大部分代码的实现。该系统由8台计算机与两台服务器组成。8台计算机不间断地采集来自于十 几种硬件设备的数据,并将其分析、T总和本地易示。两台服务器实现数据的存储和网络发布, 以供科学家们随时随地获得或控制探测器的状态。该大型分布式监控系统的上层软件完全基于 LabVIEW及其DSC模块实现,共创建了约300个V1。图1.2是其中两个子系统的主界面。 图12北京谱仪慢控制系统中的两个子系统的主界面 基于LabVIEW实现的最大的系统应该是Honeywell--Measurex公司由Dirk Demol领导的小组 开发的MxProline。它是一流的分布式过程控制系统,其95%的代码都是用LabVIEW编写的。该 系统使用了5000个以上的1,可以处理超过10万个变量(包括物理1V0和计算值). 1.1.3选择LabVIEW的原因 选择LabVIEW开发测试和测量应用程序的一大决定性因素是其开发速度。通常,使用 LabVIEW开发应用系统的速度比使用其他编程语言快4~10倍。这一惊人速度背后的原因在于
第章 揭开LabVIEW的面纱 LabVIEW易用易学,它所提供的工具使创建测试和测量应用变得更为轻松 LabVIEW的且体优势主要体现在以下几个方而。 (1)提供了丰富的图形控件,并采用图形化的编程方法,彻底把工程师们从复杂枯涩的文本 偏程工作中解放出来 (2)内建的编译器在用户编写程序的同时就在后台自动完成了编译。因此用户在编写程序的 过程中如果有语法错误,它会被立即显示出来。 ⊙】 3)由于采用数据流模型,它实现了自动的多线程,从而能充分利用处理器尤其是多处理器 的处理能力。 (4)通过DLL、CIN节点、ActiveX、,NET或MATLAB脚本节点等技术,可以轻松实现 LabVIEW与其他编程语言混和编程。 (5)通过应用程序生成器可以轻松地发布EXE、动态链接库或安装包。 (6)LabVIEW提供了大量的驱动与专用工具,几乎能与任何接口的硬件轻松连接。 (7)LabVIEW内建了600多个分析函数,用于数据分析和信号处理。 (8)NI同时提供了丰富的附加模块,用于扩展LabVIEW在不同领域中的应用,例如实时模 块、PDA模块、FPGA模块、数据记录与监控(DSC)模块、机器视觉模块与触摸屏模块等。 1.2 LabVIEW的起源与发展历程 1.2.1起源 早在20世纪80年代初引入个人计算机之前,几乎所有使用可编程仪器的实验室都通过专门 的仪器控制器用于控制他们的测试系统。这些价格昂贵而且功能单一的控制器通过一个必备的端 口控制使用IEEE-488总线(即GPB总线)的仪器,到了1983年,随着个人计算机的出现,National Instruments公司成为个人计算机的GPIB硬件接口的主要供货商。然而当时用于控制仪器的软件 表现却不太好,当时几乎1OO%的仪器控制程序都是用BASIC语言开发的。虽然BASIC有一定的 优势,例如简单、可读性强的指令集以及可交互功能等,但是它存在一个根本性的问题:像其他 文本编程语言一样,如果要通过计算机控制仪器,无论是科学家、工程师还是技术人员都必须懂 得编程。他们必须把他们的应用软件和仪器使用的知识转化为文本行,而这种过程多半是繁重而 单调乏味的,尤其是对那些从来没有编程经验的人来说。 National Instruments公司有自己的编程团队,其任务是致力于开发用于控制仪器的BASIC程 序。他们敏感地注意到了仪器编程工作压在工程师和科学家身上的负担,那就是开发出一种用于 开发仪器软件程序的新工具。但是这种工具将采用什么形式呢?两位M公司的创始人m Truchard和JeffKodosky博士,连同Jack MacCrisken(后来成为一名顾问),开始着手开发这种软 件工具。Truchard主要研究能够显著地改进科学工作者和工程师们进行测试开发方式的工具。他 想到的软件产品模型是电子数据表格。电子数据表格解决了Truchard、.Kodosky和MacCrisken都 同样面临的问题,即如何使非编程的计算机用户能够使用计算机。只不过电子数据表格处理的是 财务计划制定者的问题,而这个三人组想的是如何帮助工程师和科学工作者。这三个人的口号是: 发明出一种软件工具,它对工程师和科学工作者的影响力要和电子数据表格对财务界的影响力