LabⅤIEW 程序设计与应用(第2版) 白電子工堂出版社杨乐平李海涛杨磊编著 附光盘
前言 自20世纪90年代以来,随着计算机技术的迅猛发展,虚拟仪器技术在数据采集、自 动测试和测量仪器领域得到广泛应用,促进和推动测试系统和测量仪器的设计方法与实现 技术发生了深刻的变化。“软件就是仪器”已经成为测试与测量技术发展的重要标志。美国 国家仪器公司( National Instruments,简称NI〕是虚拟仪器技术的主要倡导者和贡献者, 其创新软件产品LabⅤIEW( Laboratory Virtual Instrument Engineering Workbench,简称 LabVIEW)自1986年问世以来,已经成为虚拟仪器软件开发平台事实上的工业标准,在 研究、制造和开发的众多领域得到广泛应用。从简单的仪器控制、数据采集到尖端的测试 和工业自动化,从大学实验室到工厂,从探索硏究到技术集成,人们都可以发现LabⅤIW 应用的成果和开发的产品。 Labview所创新的图形化语言编程方法成为虚拟仪器技术应用 与发展的重要基础,得到工业界和学术界的广泛关注 最近儿年,随着 LabvIEw在国内普及和应用的推广,陆续出版了一批有关LbⅤIEW程 序设计和应用开发方面的教材和专著,培养了一批 Lab vew的忠实用户和程序设计员。由 本书编著者编写,电子工业出版社2001年7月出版的《LabW程序设计与应用》是国内 第一本系统介绍 LabVIew程序设计的入门书。该书体系结构设计突出了图形化编程语言的 概念、方法与特点,论述深入浅出,编排结构和编写风格采用寓教于例、图文结合的形式, 得到了广大 Labview用户的认同和欢迎。该书已多次重印,国内多所高等院校已将该书选 为教材。但是由于该书是以当时的 Labview51版本为蓝本组织内容,而目前N公司已经 推出的最新 LabvIew7 Express i版本,在开发环境、编程手段、应用管理等方面增加了许多 先进功能,因此有必要对该书内容进行更新、完善和扩展,以适应技术发展的要求。 本书在保持原书风格、特色与体系基本不变的基础上,以 LabVIEw7 Express版本为 对象,结合读者反馈意见和我们最新的研究成果,对原书内容进行了较大的增加、修订和 调整。增加的内容主要包括 Lab vIEw7 Express版阪本在编程环境、数据类型、模板设置等 方面新增的功能,如 ExpressⅥ、动态数据、波形数据、事件结构、反馈节点、逐点数字 信号处理等;也包括在数据采集、仪器控制和通信等方面的应用,增加或扩展了ⅤPP和IvI 仪器驱动器、 DataSocket编程、远程操作面板、PLC通信等内容。在修订和调整时,主要 对原书的一些论述和结构顺序进行了完善和优化,如将字符串运算从原第8章“字符串与 文件ⅣO”调整到第4章“数据操作”,原第8章则加大了文件操作与管理的论述与编程实 例等。总之,本书力求在保持原书特色的基础上,内容更加系统完整,结构更加科学合理, 应用更加全面深入,为广大 Labview用户提供一本易懂实用的入门教材。 参加本书编写工作的有国防科技大学杨乐平教授、李海涛博士和杨磊博士,全书由杨 乐平教授统稿。本书可供相关专业高年级本科生和研究生作为教材使用,也可供从事测试 计量、仪器设计、过程控制及数据处理方面工作的工程技术人员参考。 由于编著者水平有限,书中难免有疏漏和错误之处,恳请广大读者批评指正。 编著者 2004年10月于国防科技大学
目录 第1章绪论………… 11 Lab view概述…………………………………… (1) 1.1.1 LabVIEw起源……… 1.12 LabVIEw概念创新 ……(2) 12G语言与虚拟仪器… 13 LabvIew应用解决方案 …………(4) 14 Labview7 Express新特性… (6) 第2章 LabVIEw编程环境 21 LabvIEw系统安装 ……(11) 22 Labview启动…… (l1 23 Labview模板…… 24Ⅵ库 25定制LabV压W环境 ………(22) 25环境参数设置 …………(22) 252模板设置 (23) 第3章 LabVIEW编程入门…… (26) 31基本概念 (26) 311前面板 (27) 312框图程序 (29) 313使用数据连线 (33) 314图标/连接端口 …(41) 32 Labview术语 (42) 33创建和编辑ⅥI (43) 331创建v… ……(4) 332编辑Ⅵ (49) 34运行和调试Ⅵ1………………… ……(60) 341运行… (60) 342调试ⅥI (61) 35创建和调用Sub 351创建SubV1… 352调用SubV1…… …求 (67) 36 Express VI… (69) I·
Express VI的特点 (69 362 ExpressⅥ的使用方法 (72) 3.7伏取帮助 (74) 37.1实时上下文帮助 (74) 372Ⅵ及功能模块帮助 (75 3.73 LabvIew例程…… (75) 374 LabVIEW书架 …(76) 37.5 LabvIEw网络资源………… (77) 第4章数据操作 (78) 41数据类型… (78) 1.1数字型 41.2布尔型 (85) 4L3字符串型与路径 86) 4.2数学运算… 42.1数字常量 ……(91) 42,2基本数学运算节点 (91) 42.3类型转换节点 42.4三角函数节点… 42.5对数节点……… (97) 426复数节点 (98) 42.,附加常数节点 ………(99) 43布尔运算 44字符串运算 …(102) 44.1字符串常量………… (102) 44.2基本字符串运算… ……(103) 443字符串数字转换 (107) 444字符串(数组路径转换… ………………(110 44.5附加字符串运算 …(112) 45比较运算……… …(115) 第5章变量、数组、簇与波形数据…… 51本地变量… (118) (118) 5本地变量的创建……… 平非“““非非;丶 (118) 512本地变量的使用 丰平护丰丰“中世中本=44 (120) 53本地变量的特点 (121) 52全局变量………… …………(122) 52!全局变量的创建 …………122) 522全局变量的使用 (123) 523全局变量的特点……………… ……(124)
53数组 531数组的组成与创建… (125) 53.2数组的使用…… (127) 533数组的特点………………… (149) 54簇 54.t簇的组成与创建 …(149) 542簇的使用………… (151) 543簇的特点…… (161) 55波形数据 551波形数据的组成………… ……(163) 552波形数据的使用 ………(167) 553波形数据的特点 ……(178) 第6章结构与属性 (179) 61For循环… 611For循环的组成 (180) 61.2For循环的使用…… (182 613For循环的特点… (186) 62Whle循环……………… (186) 621 While循坏的组成…… 主丰 (186) 622 While循环的使用 (187) 623 While循坏的特点… 63顺序结构 …(189) 631顺序结构的组成… (190) 632顺序结构的使用 (192) 633顺序结构的特点………… ……(194) 64选择结构………… 甲,中,击,丰 车,分车日a (196) 641选择结构的组成……… (196) 642选择结构的使用 (198) 643选择结构的特点………… (198) 65事件结构………… (199) 651享件结构的组成……… 652辜件结构的使用 (201) 653享件结构的特点 ………(203) 66基本公式节点…… 661基本公式节点的创建 (205) 662基本公式节点的使用… 663基本公式节点的特点 (209) 67属性节点……… (209)
67,1属性节点的创建 ……(209) 67.2属性节点的使用 …(211) 673属性节点的特点…… (214) 第7章波形显示…… (215) 71事后记录波形图…… …………(215) 7.11事后记录波形图的组成……… (216) 712使用事后记录波形图…………… (217) 713定制事后记录波形图的外观 7.2实时趋势图 目“, 231) 72.1使用实时趋势图 231) 722定制实时趋勢图的外观定制… (233) 7.3XY波形图… ……(235) 74密度图形显示控件( Intensity graph)……… ……237) 74.1使用密度 237) 742定义密度图的颜色…… ……(238) 743设置密度图的外观…… (239) 7.5密度趋势图 …(240) 76三维曲面图 761使用三维曲面图 (241) (241) 762设置三维曲面图的外观 (244) 77三维参数曲面图 ………(247) 771使用三维参数曲面图…… …(248) 772设置三维参数曲面图的外观……… 78三维曲线图 ……………(249) 7.8I使用三维曲线图…… 带木丰+“分 (249) 782设置三维曲线图的外观 …(251) 79极坐标图 (251) 791使用极坐标图 ¨(251) 792设置极坐标图的外观………… …(252) 第8章文件操作与管理… ……(253 81基本概念及术语… (253) 811路径…… 812标识号 (254) 813文件O的出错管理…… 814文件UO操作流程控制… ……(256) 82文件操作 (256) 821文件定位与文件对话框 …………(257) 822文件操作 2
83文件管理 ………………(267) 831文件的删除、移动和复制 (268) 83,2获取文件、目录的信息 ………(268) 83.3路径、目录操作 …(269 84数据存储与读取… (272) 841LabⅤIEw数据文件类型……………… ……(272) 842数据文件存储与读取 …(273) 第9章数学分析与信号处理 91数学分析 285) 911公式运算节点……… ……(286) 912函数计算与微积分 (289) 913概率统计与曲线拟合… …(295) 9l4矩阵与数组运算……………………… (300) 915最优化与零点求解 …(304) 91.6数值函数……… (309 92数字信号处理……… 310) 93波形测量 931波形测量节点 ……(328) 932波形测量应用实例 ……(331) 94信号调理 (332) 941信号调理节点… 942信号调理应用实例……………… (333 95波形监测……… (335) 951波形监测节点 ……(335) 952波形监测应用实例 ……(336 96逐点信号分析 ………………(338) 961逐点信号分析的特点 962逐点信号分析节点 ……………33 963逐点倌号分析应用实例… (339) 第10章 LabVIEW程序设计 …………(340) 101人机交互界面 (340) 10.1.1定制前面板对象 ……(340) 10.1.2选单的编辑与响应 (341) 10.13子面板的使用… (343) 10.14界面装饰……… 102定时与对话框 (346) 021定时器… (347) 10.22对话框……… (347)
1023错误处理节点 (351) 10.3 Labview环境参数设置… ……(352) 103.1新特性… 10.32路径与性能 (355) 10.33编程界面… 1034模板与调试… ……(359) 103.5属性设置…………… …(361) 10.36Ⅴ I Server与 Web server……………… ……365) 104ⅥI属性设置 104.l一般设置……… 1042存储空间 ……(370) 1043帮助与编辑… (371) 1044版本历史与安全 (27 10.4.5密口与运行… …………(374) 0.5文件管理……… …(376) 106创建应用程序………………… …………(378) 107培养良好的编程风格 ……(381) 第11章数据采集 (384) 11数据采集基础 (384) 1.1DAQ功能 …384) 11.2DAQ节点的组织与结构 (385) 113 DAQ VIS的组织结构 …(386) 1l42DAQ节点常用参数简介 112DAQ设备的安装与配置… (391) 1.21安装PCL1200数据采集卡… 1.22配置PC-1200数据采集卡… (392) 123配置数据采集虚拟通道……… ……(396) 1.3DAQ编程 (399) 13.简易DAQ编程……… (399) l3.2扩展DAQ编程 (402) 113.3高级DAQ编程…… (408) 第12章仪器控制… ……(412) 121仪器驱动器 …………(412) 1211VPP仪器驱动器 4l2) 121.2IⅥ仪器驱动器……… (415) 122SA标准 ……(416) 123sA编程……… 1231SA节点………………………… …(419)
12.32vIsA编程实例 ……………(423) 12.4PP驱动程序转换与编程 12.4.1VT432A数字化仪简介…………… (425) 1242VPP驱动程序转换 124,3PP驱动程序编程实例… …(428) 第13章通信 (431) 13.1串行通信… (431) 13.1.1串口简介 …(431) 13.L.2串行通信节点…… (434) 13.1.3串行通信编程举例…… 132网络通信 …(439) 1321TCP协议简介……… …………(439) 322TCP节点 ………(440) 1323TCP通信编程实例 ……(441) 133 DataSocket通信………………… (443) 13.3. 1 Data Socket基本概念……… …(443) 1332 DataSocket节点 13.33 DataSocket编程举例· (449) 134远程面板…… 1341配置LabⅤ EW Web Server (453) 1342在LabⅤIEW环境中操作 Remote panel… 454) 13.4.3通过网页浏览器在网页中操作 Remote Panel …(456 参考文献 458)
第1章绪论 1.1 Lab view概述 11.1 LabvIew起源 LabvIew是实验室虚拟仪器集成环境( Laboratory Virtual Instrument Engineering Workbench)的简称,是美国国家仪器公司( NATIONAL INSTRUMENTSM,简称NI)的 创新软件产品,也是目前应用最广、发展最快、功能最强的图形化软件开发集成环境 数据采集、仪器控制、过程监控和自动测试是实验室研究和工业自动化领域广泛存在 的实际任务。在20世纪80年代初个人计算机出现之前,几乎所有拥有程控仪器的实验室 都采用贵重的仪器控制器来控制测试系统,这些功能单一、价格昂贵的仪器控制器通过 个集成通信口来控制IEEE488总线仪器(也称为GPIB程控仪器)。后来,随着PC的出现, 程师和科学家们找到了一种通过性能价格比高的通用PC控制台式仪器的方法,各种基 于PC的接口板卡产品迅速地打开了市场,N公司也应运而生。1983年,N公司已经成 为世界上 PC GPIB接口卡最主要的供应商 到1983年,GPB总线事实上已经成为连接仪器和计算机的通用标准接口。除了不同 仪器制造商对EE488标准的个别解释不同之外用户在物理上配置仪器和仪器系统基本 上已没有问题。不过,仪器控制软件的发展,仍然存在许多问题。当时几乎所有的仪器控 制程序都是由 BASIC语言编写的。虽然与可读性差、编程专业性要求更高的机器语言和汇 编语言相比,BASC语言已经具有许多优势(如简单、可读性强的命令集和交互能力) 但与其他基于文本的高级语言一样,它也存在一个根本问题,即要求使用仪器的科学家、 程师和技术人员成为程序员,这些用户必须将他们关于仪器和应用的知识转化成一行行 的程序代码,以形成测试程序。这个过程经常是费时费力的苦差事,尤其是对当时那些很 少编程或基本没有编程经验的测试工程师更是如此。 N公司有一支用BASC语言开发仪器程控软件的程序员专门队伍,因此,它十分敏 锐地感觉到程控仪器编程为工程师和科学家带来的负担,清楚地意识到需要开发一个用于 程控仪器编程的软件工具。№公司的创始人杰姆·特鲁查德博士、杰夫·柯德斯凯博士和他 们的好友杰克麦克里森组成了一个小组,开始研究开发这个新的软件工具,希望这个新的 软件工具能够改变工程师和科学家从事测试开发的方式。他们首先想到的软件工具模型是 电子表格软件,电子表格软件解决了特鲁查德博士、柯德斯凯博士和麦克里森三人希望解 决的共同阿题;使计算机更容易被非程序员的计算机用户使用。当然,电子表格软件主要 是为财务人员设计的,而特鲁查德博士小组设想的软件工具是为从事测试和仪器控制的工 程师和科学家服务的 1984年,当时财政实力还相对较弱的N公司决定投资启动该软件工程项目,特鲁查