LabVIEW-编程思想(第2版)

上传人:xgs****56 文档编号:12961053 上传时间:2020-06-04 格式:DOC 页数:298 大小:24.88MB
返回 下载 相关 举报
LabVIEW-编程思想(第2版)_第1页
第1页 / 共298页
LabVIEW-编程思想(第2版)_第2页
第2页 / 共298页
LabVIEW-编程思想(第2版)_第3页
第3页 / 共298页
点击查看更多>>
资源描述
总目录序第1部分:LabVIEW编程思想第1章 虚拟仪器导论 1.1 虚拟仪器概述 1.1.1 虚拟仪器理念的诞生 1.1.2 初期虚拟仪器的理念 1.1.3 现代虚拟仪器的理念 1.2 虚拟仪器构成 1.2.1 传感器 1.2.2 数据采集模块 1.2.3 商业化计算机平台 1.3 虚拟仪器的测量原理 1.3.1 传统仪器的基本测量原理 1.3.2 虚拟仪器的基本测量原理 1.3.3 虚拟仪器改变了传统仪器的测量方式和理念 1.4 虚拟仪器的特点 1.4.1 虚拟仪器充分利用了商业化计算机的软件资源 1.4.2 虚拟仪器充分利用了商业化计算机的硬件资源 1.4.3 软件仍然是虚拟仪器的重要组成部分 1.4.4 可重复使用的硬件将降低虚拟仪器成本 1.4.5 虚拟仪器的测量功能取决于用户需求 1.5 虚拟仪器与传统仪器间的关系 1.5.1 虚拟仪器会取代传统仪器吗? 1.5.2 模拟电子技术仍主导着虚拟仪器的未来 1.5.3 数字电子技术使得虚拟仪器设计更加灵活 1.5.4 高端测量仪器领域传统仪器仍是主宰者 1.6 虚拟仪器技术 1.6.1 虚拟仪器技术概述 1.6.2 虚拟仪器技术之一虚拟仪器软件开发环境 1.6.3 虚拟仪器技术之二虚拟仪器硬件体系架构 1.6.4 虚拟仪器技术之三虚拟仪器管理体系架构 1.7 本章小结第2章 NI LabVIEW 2.1 计算机编程语言 2.1.1 机器语言 2.1.2 汇编语言 2.1.3 高级语言 2.1.4 图形化编程语言 2.2 NI LabVIEW概述 2.2.1 关于NI LabVIEW 2.2.2 LabVIEW图形化编程语言 2.2.3 NI LabVIEW图形化开发环境 2.2.4 创建第一个图形化程序 2.2.5 图形化语言运行机制数据流 2.3 VI图形化程序的基本框架 2.3.1 前面板窗口 2.3.2 程序框图窗口 2.3.3 图标和连线板 2.4 VI属性 2.4.1 VI属性常规 2.4.2 VI属性内存使用 2.4.3 VI属性说明信息 2.4.4 VI属性修订历史和编辑器选项 2.4.5 VI属性保护 2.5 子VI与VI的层次结构 2.5.1 创建子VI 2.5.2 创建子VI的图标和连线板 2.5.3 VI的属性窗口外观 2.5.4 VI的属性窗口大小和运行时的位置 2.5.5 VI的层次结构 2.6 VI的类型和跨平台特性 2.6.1 通用类型VI 2.6.2 严格类型VI 2.6.3 VI的使用 2.6.4 VI的跨平台 2.7 本章小结第3章 控件前面板对象 3.1 控件的基本特征 3.1.1 控件的外观和样式 3.1.2 控件的指向性 3.1.3 控件的映射 3.1.4 控件的静态属性 3.2 控件的基本作用 3.2.1 装饰前面板 3.2.2 实现人机对话 3.2.3 放置数据、承载数据类型 3.2.4 控件的数据类型 3.3 控件与LabVIEW中变量间的关系 3.3.1 局部变量 3.3.2 全局变量 3.3.3 共享变量 3.4 控件类型的定义 3.4.1 控件 3.4.2 自定义类型 3.4.3 严格自定义类型 3.5 控件的深入探索 3.5.1 控件与VI服务器类之间的关系 3.5.2 控件的创建和销毁 3.5.3 利用更加丰富多彩的控件第4章 接线端、节点程序框图对象 4.1 接线端控件的映射 4.1.1 接线端的作用和表示方式 4.1.2 接线端数据类型的标识 4.1.3 接线端间的数据通道连线 4.2 节点图形化代码 4.2.1 函数原子级的图形化代码 4.2.2 内置VI面对任务的函数集合 4.2.3 Express VI基于配置的模块化程序 4.3 程序框图对象的深入探索 4.3.1 图形化语言的抽象机制 4.3.2 图形化代码的重用机制 4.3.3 图形化语言异常和错误处理 4.3.4 图形化语言与硬件的无缝连接第5章 控制程序流程 5.1 数据流图形化语言运行机制 5.1.1 何谓数据流 5.1.2 数据流编程 5.1.3 数据流编程的基本特点 5.1.4 数据流编程的深入理解 5.2 控制程序流程运算符和算术表达式 5.2.1 数值运算符 5.2.2 关系运算符 5.2.3 算术表达式 5.2.4 逻辑运算符 5.3 控制程序流程定序控制 5.3.1 平铺式顺序结构 5.3.2 层叠式顺序结构 5.3.3 利用公共线程 5.4 控制程序流程条件结构 5.4.1 基本条件结构的图形化表示方法 5.4.2 基本条件结构的数据流运行机制 5.4.3 复杂条件结构 5.4.4 最简单的条件选择 5.5 控制程序流程循环结构 5.5.1 For循环及它的图形化表示法 5.5.2 For循环的数据流运行机制 5.5.3 While循环及它的图形化表示方法 5.5.4 While循环的数据流运行机制 5.5.5 循环中添加移位寄存器 5.5.6 反馈节点 5.6 控制程序流程事件结构 5.6.1 事件结构及它的图形化表示法 5.6.2 事件结构的数据流运行机制第6章 应用程序控制VI和函数 6.1 属性节点和调用(方法)节点 6.1.1 创建属性节点和调用节点 6.1.2 应用程序(App)的属性和方法 6.1.3 VI的属性和方法 6.1.4 对象的属性和方法 6.1.5 对象的属性的一些深入探索 6.2 引用操控对象的钥匙 6.2.1 引用的基本概念 6.2.2 获得引用的方法之一:创建引用 6.2.3 获得引用的方法之二:打开与关闭引用 6.2.4 引用句柄 6.3 应用程序引用 6.3.1 打开应用程序的引用 6.3.2 获得相关计算机的网络地址 6.3.3 获得相关计算机VI服务器的设置 6.3.4 应用程序引用实例 6.4 VI引用 6.4.1 打开VI的引用 6.4.2 VI的动态调用 6.4.3 动态调用VI方法之一通过引用节点调用 6.4.4 动态调用VI方法之二通过调用节点调用 6.5 控件的引用 6.5.1 控件引用的创建方法 6.5.2 控件引用的实际应用 6.6 VI 脚本(VI Scripting) 6.6.1 启动VI脚本 6.6.2 使用VI脚本新建VI 6.6.3 使用VI脚本新建VI对象 6.6.4 VI脚本的用途 6.6.5 VI脚本的第三方应用第7章 文件处理 7.1 文件间路径的关系 7.1.1 文件常量与所引导的路径间关系 7.1.2 非确定性文件路径的引导 7.1.3 路径的简单拆分 7.1.4 图形化应用程序与开发环境间的路径关系 7.2 文件的读写 7.2.1 文件的类型 7.2.2 文本文件读写的操作过程 7.2.3 二进制文件读写的操作过程 7.2.4 波形文件读写的操作过程 7.2.5 电子表格文件读写的操作过程 7.3 配置文件(.ini文件) 7.3.1 INI文件及INI文件格式 7.3.2 LabVIEW中的INI文件函数 7.3.3 LabVIEW中的INI文件实例第8章 图形化语言的编程范式 8.1 编程范式 8.1.1 编程 8.1.2 编程范式 8.1.3 编程范式与编程思想 8.2 几种常见的编程范式 8.2.1 过程化(命令式)编程 8.2.2 事件驱动编程 8.2.3 面向对象编程 8.3 LabVIEW图形化语言编程范式之一过程化编程 8.3.1 数据流编程思想导致过程化编程 8.3.2 图形化语言中过程化编程的主要特点 8.4 LabVIEW图形化语言编程范式之二事件编程 8.4.1 轮询与事件 8.4.2 图形化语言中事件驱动编程的主要特点 8.5 LabVIEW图形化语言编程范式之三面向对象编程 8.5.1 LabVIEW为什么要引入面向对象的编程范式 8.5.2 LabVIEW中的类和对象 8.5.3 LVOOP中的类和对象 8.5.4 创建LabVIEW类 8.5.5 LabVIEW 面向对象编程实例演示第9章 图形化语言的设计模式 9.1 设计模式概述 9.1.1 设计模式 9.1.2 LabVIEW图形化编程语言中的设计模式 9.1.3 LabVIEW图形化编程语言的程序框架 9.1.4 图形化语言设计模式的深入探讨 9.2 图形化语言设计模式之一标准状态机 9.2.1 状态和状态机 9.2.2 标准状态机 9.3 图形化语言设计模式之二队列消息处理器 9.3.1 队列消息 9.3.2 队列消息处理器图形化代码 9.4 图形化语言设计模式之三生产者队消费者(事件) 9.4.1 生产者消费者结构 9.4.2 导出生产者消费者(事件)设计模式 9.4.3 生产者消费者设计模式(事件)的图形化代码 9.5 图形化语言设计模式之四生产者队消费者(数据) 9.5.1 导入生产者消费者(数据)模板 9.5.2 生产者消费者(数据)设计模式的图形化代码 9.6 图形化语言设计模式之五用户界面事件处理器 9.6.1 用户界面事件处理器 9.6.2 用户界面事件处理器应用之一鼠标双击事件 9.6.3 用户界面事件处理器应用之二用户按键操作 9.6.4 用户界面事件处理器应用之三用户菜单操作 9.7 图形化语言设计模式之六主从设计模式 9.7.1 主从设计模式模板 9.7.2 主从设计模式图形化代码 9.7.3 主从设计模式用于数据传递的验证第10章 在LabVIEW中管理项目 10.1 项目浏览器(Project Explorer) 10.1.1 创建一个新项目 10.1.2 保存这个新项目 10.2 在项目中添加相关的文件夹 10.2.1 创建文档文件夹 10.2.2 实现文档文件夹内容自动升级 10.2.3 为文档文件夹添加其它的子文件夹 10.2.4 创建LabVIEW代码文件夹 10.3 在项目中添加VI 10.3.1 创建 Top Level VI 10.3.2 添加子VI及自定义控件 10.3.3 添加读取文件的路径VI 10.3.4 添加动态调用的VI 10.4 生成应用程序和应用程序安装包 10.4.1 生成应用程序 10.4.2 生成应用程序安装包第2部分:LabVIEW高级编程_第11章 LabVIEW图形化语言的基本设计准则_ 11.1 应用开发中所必要的工作 11.1.1 创建完善的需求文档 11.1.2 依据需求文档进行硬件设计 11.1.3 软件开发环境的规范化_参考文献及附录 附录A:LabVIEW 版本25年来的变迁第1部分:LabVIEW编程思想 LabVIEW是一个划时代的图形化编程系统。确切的讲,LabVIEW是一种采用图形化编程方法的计算机编程语言。采用图形化的编程方法进行计算机程序设计无疑是这个时代的一个伟大的创举。 图形化编程,对于那些非软件专业出身的工程师和科学家无疑是个巨大的帮助。同时他们也会面临一个巨大的挑战,即要求他们逐渐适应图形化编程的方法以及图形化程序数据流运行机制的理念。 图形化编程,与我们过去所做过的基于文本的程序设计(汇编、BASIC、C)不仅在形式上有很大的不同,在设计方法和设计理念上也存在着许多不同之处。所以,我们将这部分内容归结为LabVIEW编程思想。 LabVIEW的确是上手很快,初学者很容易实现单元测试或分析任务。但是LabVIEW毕竟是一种编程语言,学习任何语言都不会是一件很简单、很容易的事。只有全面认真领会它的编程思想,才能够设计出合格满意的计算机程序,达到真正游刃有余的掌控计算机的目的。 我们的目的是为那些使用过LabVIEW的用户提供学习上的帮助,所以没有对LabVIEW开发环境的操作使用做更多的介绍。这部分内容请大家寻找其它相关书籍作为参考。 如果期待图形化语言编程技能的提高,LabVIEW宝典、我和LabVIEW都是绝好的参考书籍12。 LabVIEW编程思想是一个新的命题,尽管我们作了许多认真的思考,但错误的认识和观点可能还是会存在,十分期待大家批评指正。 这里引用郑辉博士的一段话作为共勉3: “知识之上是思想,思想之上是精神。” 一个优秀的程序员,除了要迅速掌握知识、善于领悟思想外,还必须具备务实与研究精神、独立和合作精神、批判与自省精神。 序人生历程 如果按中学毕业年代来划分,我属于70届的高中毕业生。在小学六年级开学不久,一场史无前例、轰轰列列的无产阶级文化大革命开始了。我的整个初中和高中阶段都是处于大革命的状态下,根本没有学到任何真正的数理化知识。我是有其名无其实的高中毕业生(小学五、六年级文化水平)。 1971年底,我来到当地的一个无线电厂做仪表工。该厂是一个数字仪表的生产厂,主要生产数字式频率计(10MHz)、单积分式数字电压表(4位半)、数字式万用表等(3位半)。 七年仪表工的经历,使我接触到了晶体管特性图示仪、示波器、数字万用表、电子数字式频率计等常用仪器;使用过国产的数字集成电路,以及国产的模拟集成运算放大器。了解到多种数字电压表的工作原理,比如斜波比较式、单积分、双积分式、三次积分式、逐次比较式、脉冲调宽式等等。 可能是受工作环境的影响,我开始对技术工作产生浓厚的兴趣和特别的喜好。拼尽全力来学习数字电路、模拟电路等相关的基础知识。可是因文化知识短缺的先天不足,仅仅能够理解和使用“欧姆定律”。看到诸如:方程、矢量、函数等概念时就会目瞪口呆,根本无法理解。 当时,那种对知识渴求的心情是其他人难以理解的。为了改变这种状况,我开始时断时续的自学初中代数、几何、三角等基础知识。位于哈尔滨烈士馆傍边的市图书馆是我周日最常去的地方。 说到这里,我非常感谢我的爸爸。 1976年,粉碎“四人帮”不久,在政治上还没有获得真正“解放”的他,以高度的政治敏感性和丰富的人生阅历,就曾不止一次的告诫我:“要下决心,继续搞好文化课复习。今后,国家一定会恢复考试制度,不学习、没有文化是肯定不行的”。 得益于爸爸的谆谆教诲,我一直坚持走着万分艰难的自学之路。我坚持,我做到了,并为此而受益终身。 1977年,国家恢复了高考制度。1978年,开始实行全国统一招生考试。 1978年,实行全国统一考试的第一年,我以五门功课总计374分的成绩考入哈尔滨工业大学工业自动化仪表专业(那年我刚好满24周岁)。 1982年,大学毕业直接分配到当地的省计量科学研究所(后改为黑龙江省计量检定测试院),在时间频率计量室实习。一年以后,也就是在1983年,被抽调到一个科研项目组从事科研工作,从那时起我就再也没有离开过科研岗位一步。 或许是对技术工作十分偏爱的原因,在大家的帮助下,我的技术生涯几乎一帆风顺,技术职称按部就班的不断晋升。儿时的梦想慢慢地转变为现实,1998年我最终晋升为享受研究员待遇的高级工程师。工程师 我对工程师是这样认识的:工程师是对具备一定专业技术能力人士的一种称谓。换句话说,工程师应该是现代科学技术的载体。如果能够充分展现你所承载的技术能力,并且表现的越完善,相对你所获得技术称谓也就会越高。 现实是科学是不断发展,技术也是不断进步的。所以,潜移默化要求工程师的技术能力也必须不断的发展和提高。时刻保持不被时代淘汰的唯一方法就是不断的学习新知识、新技术。这就意味着:学习是一生的事情,只要你想保持具备一定的技术能力就必须一刻不停的学习。大学毕业仅仅意味着:你已经具备了继续提高的自学能力。真正的学习过程是在未来你的工作之中。 非常值得庆幸的是:现在是网络时代,也是一个无师自通的时代。所以,学习和提高并非是一件很难很难的事。我与LabVIEW 学习有很多方式和方法,找到一个合适的学习平台应该是最好的选择。2004年,那年我刚好满50周岁。一个偶然的机会使我开始学习、使用LabVIEW,直到今天。 假如你现在身处自动化测量和控制领域,我建议:不妨先学习LabVIEW来试一试。相信我,它一定会帮助你不断的提高技术能力,同时又不会使学习显得特别枯燥和单调。 我为什么如此推崇LabVIEW?1. 在学习使用LabVIEW前,我一直从事硬件电路的设计开发工作。那时,困扰我的主要问题有三个:一是,数字和模拟集成电路推新的速度很快,以至于需要不断学习提高和不断的更新设计,从而导致工作压力特别大。二是,作为研究部门我们不具备严格的质量管理体系,从而导致项目质量总是存在一些问题。三是,即时是一个很简单的项目也很难由少数几个人来完成。因为至少要涉及到软件和硬件方面的设计。虚拟仪器帮助解决了这些问题。同时,还保证了产品质量,提高了研发速度。2. LabVIEW图形化的编程方法及高效的分析、处理问题的能力,令我十分震惊!它内置的几百个分析、处理函数,可以大大增强你的分析处理能力。许多在过去工作中无法想像或无法解决的问题,现在都可以轻松解决处理。例如,过去对信号中的谐波进行分析处理是一个十分棘手的问题。现在,很容易设计出基于虚拟仪器技术的信号谐波分析仪,甚至是易如反掌、举手可得。这种即想即得的工作方式会大大提高自信心。3. 我学习LabVIEW时,已经进入测试、测量领域多年,对虚拟仪器的概念和测量知识并不感到很陌生。所以学习起来没有感到吃力和不便,反而有种如鱼得水的感受。比如以前主要测量对象是电压、电流、功率和电能等。现在借助于LabVIEW和不同功能的硬件模块很容易实现像声音、振动、应变、温度等其它物理量的分析测量。的确,图形化的设计方法给我带来了能力上的提高。而虚拟仪器定制灵活的特点,可以满足特定的测量任务的需求。4. 毕业多年来,我一直没有深入学习使用过任何高级编程语言。问题就出在没有找到一个适合工程设计的软、硬件平台。VB固然可以编写华丽的GUI,但是面对硬件的驱动程序就很难编写。C+和Java都可以实现面向对象的编程,可是测量对象千变万化,如何应对?因为我们毕竟不是软件工程师。总之,那时的工作中几乎处处都是坎,处处都需要再提高再学习。当我使用LabVIEW这个软、硬件无缝连接的平台后,很容易在这个平台下处理所有面临的问题。总之,学习的难度大大降低,能力得到进一步发挥。 尽管LabVIEW一直被视为适合工程师和科学家使用的编程语言,事实也的确如此。但是它仍可作为工程教育平台以及仿真工具来供广大的学生使用。包括来验证许多曾经学习过的知识。出版 我只是一名普通的应用工程师,如同大多数工程师一样,没有更多的写作经验和写作能力。长期以来,一直想把七年来学习LabVIEW的点滴体会和经验总结出来奉献给更多的爱好者和初学者。为此首先自费创办了自己的个人主页:www.LabVIEW365.com,然后开始这本书的写作旅途。 本书是以一个工程师的视角来介绍LabVIEW图形化编程语言。鉴于笔者的认知能力,书中不可避免的会有许多错误的认识或观点,恳请大家批评指正。目的只有一个,无论如何要对得起读者。 最后,让我们一起走进LabVIEW世界!鸣谢 作为一个时代的宠儿,在我的一生中,我得到了应该获得的一切!我的内心中充满了感激、充满了真情的谢意。感谢我的父母感谢我的家人感谢我的母校哈尔滨工业大学感谢我的工作单位黑龙江省计量科学研究院感谢我的良师益友Liang Fu Cheng先生感谢我的最佳搭档Wang Da Jie、Li He先生感谢与我共事过的所有同志们,真心地感谢你们多年来的理解、信任、宽容和支持。网络成员labview7i;Ian Fung Koo;Yu hu;csxcs_366;Mechtest;王永建;glenn1986;Wein100;hunt978;无极天道;colinzhang;sillyball:Simon.chen;dbzard;nayi;yytseng;第五次修改;luoyang;jakewang;ThomasYoung;kkjmt;dxgung;芒果派;羊八井;czhen;随心;nicezx;HighTech;Charles.Tac ;格物;bigness;ppcas;gawK;JimmyKo;tom.huo ;LV_learner;fareast;trtr;YongqingYe;Sailfish11397BEAM_Z(已自愿退出);xuezicn;zhwangwhut.edu.cn;wuming123057;mcusir天边;JamesWang;b-cho;Wzj;QuanhuLEEIvangan;Blithe;wdzcmail126.com;marlin333;flyingdragonHou浩强;yulinby;张扬;Boone301;nenggxwillson07; horizon521;达峰;nuaa5310;super3小黎;wuqingfeng234163.com;tree2000;lssharbingmail.com;maoyyconcorpoly;BinNiNI;pilotcrane;小_羊;eric_hitRegister;alexalex222;f85112411;Fuyu;在梦晨fyocean;Zhuang;孤独剑;nikooy;am-aumtechpheipha;zangga;CaoWJ;xiaotwo;神佑惺辰chenge;Kellen;943294069;lightwolf;ShadeNie东东欧欧;abcxx414;Xiehaha;budss;tonykunblueheartsu;LabVIEW2010;hotor;stewart423;rainfallsliufeng;小小草;qxs;wsqwsqwsq;yxjydzheu;幽暗的心;ahunter;ChrisWu;汪澔韵chenxq;朱毅斌;LeonLi;xjbob_hit;sunshinekvxiuzhuhaodiao;lzh153;nemoxf;jeevi;huche注:均使用的是网络名高巍第1章 虚拟仪器导论 众所周知,测试与测量活动是人们认识了解客观世界最基本的方法之一。测试与测量仪器则是实施这些活动所必需的工具和手段。 随着现代科学技术的不断发展和进步,已导致电子测量仪器逐渐演变成为测量仪器的主体。虚拟仪器的出现则进一步标志着电子测量仪器发展到一个崭新的阶段。 尽管测量仪器的发展历史很悠久,但归纳起来可划分为这样几个阶段:1. 模拟仪表以19世纪的钟表技术、电磁(磁电)技术为主体,奠定了仪器仪表的基础2. 数字仪表以20世纪60年代的半导体集成电路为主体,进入数字式测量仪器阶段3. 智能仪器以20世纪70年代嵌入式计算机、大规模集成电路、精密模拟电路为主体,进入智能化测量仪器阶段4. 虚拟仪器以20世纪80年代计算机技术、微电子技术和数字信号处理技术、精密模数转换技术为基础,进入基于计算机的测试测量阶段 早期的仪器仪表作为测量工具往往是以通用测量仪器形式出现的,这些仪器来自不同的专业制造商。比如较常见的数字万用表、示波器、信号发生器、频谱分析仪等等。 那时,工程师和科学家们面对较为复杂的测试任务时,就会在整个工作台上堆满不同种类的测试仪器。比如麦克风测试就需要数字电压表、扫频信号发生器、谐波分析仪、双踪示波器、频谱分析仪等多台通用测试仪器。这种工作方式在过去是司空见惯的。 虚拟仪器出现后,同样的测试任务可以通过GPIB总线将这些仪器( 虚拟仪器出现后,人们称此前的这些仪器为传统仪器)连通起来构成自动化测试系统。随着虚拟仪器技术的进一步发展,工程师和科学家利用虚拟仪器技术实现模块化的自动测试系统。甚至采用虚拟仪器技术设计组建自定义的测试系统。 虚拟仪器是计算机技术、微电子技术和数字信号处理技术发展的产物,同时也标志着电子测量仪器的发展到一个新的历史阶段。 尽管在一些实验室中,我们依然可以看到不同发展阶段的仪表仍在继续使用。但是,虚拟仪器已无可争议的成为实验室中更加广泛使用的现代电子测量仪器。1.1 虚拟仪器概述图 11 iMac 媒体播放软件 能够直观地展现虚拟仪器含义的实例就是计算机上的媒体播放器。对于天天与计算机打交道的人来说,在紧张繁忙的工作一段时间后,通常会选择听一段轻松的音乐或观看一部大片,目的就是来缓解一下因紧张工作所带来的压力和烦躁。商业化的计算机完全具备了这样的能力,为何不借此享受一番呢!我相信,绝大多数与计算机打过交道的人,都曾有过类似的经历。 仔细地想一想:我们身边并没有摆放任何媒体播放器,之所以能够获得这样的享受,完全是借助于现代计算机上的光驱、声卡等硬件资源和媒体播放软件。它们的软硬件组合为我们“虚拟”了一部媒体播放器。通过计算机显示屏上的软件播放器窗口,我们可以随意地调节音量和设置音调、查看播放进程、慢放或快放等等操作。宛如我们身边确实有一台媒体播放器一样。 实际上,虚拟仪器的构成大致类似,它也是利用计算机及某些外部硬件资源(类似于声卡的数据采集模块)与测量应用软件(类似于播放软件)共同组成了一台“虚拟”的测量仪器。 通过这样简单的对比,相信大家已经对虚拟仪器有一个大致的理解。1.1.1 虚拟仪器理念的诞生 虚拟仪器的理念源自于美国国家仪器公司(National Instruments Corporation,简称美国NI公司,成立于1976年)。 上世纪60年代末,已处于仪器仪表制造业鼎盛时期的美国HP公司(1999年HP-Hewlett-Packard公司的检测仪器部被拆分出成立了现在的安捷仑公司,原来HP公司改为专门生产制作计算机及打印设备。)设计出一种计算机与电子测量仪器之间可进行并行通讯的接口总线HP-IB(Hewlett-Packard Instrument Bus),也就是后来的GPIB(General Purpose Interface Bus)。 GPIB总线的出现解决了计算机和电子测量仪器之间的连接和通讯问题,同时也为组建自动化测试系统提供了最佳的解决方案。 当时,HP公司是世界上最大的综合性仪器仪表制造公司。市场上许多高精尖测试、测量仪器都是由该公司生产制造。而且该公司生产的许多电子测量仪器都配备有GPIB接口。 鉴于GPIB接口总线规定了计算机与可编程仪器间从电气到机械等具体的要求,所以它被国际电工委员会IEEE接纳批准为国际标准。也就是IEEE-488-1975(IEEE-488.1)以及后来修订的IEEE-488-1987(IEEE- 488.2)。 事实上,IEEE-488.1定义了GPIB接口部分的硬件电气标准,而随后出现的IEEE-488.2则定义了GPIB接口部分的软件语法规则。大约是在IEEE-488.1国际标准发布一年后,正在美国德州的奥斯汀学习和工作的几个年轻人看到了GPIB接口总线技术的发展未来,他们决定开发这方面的产品,并着手创办一个属于自己的公司。 他们就是,NI公司的三个共同创始人:James Truchard,Jeff Kodosky and Bill Nowlin (也有资料称其为William Nowlin)。图 12 NI公司的三个创始人(:James Truchard,Jeff Kodosky and Bill Nowlin) 关于NI公司的创立,最有说服力的资料还是来自NI公司的总裁、CEO、公司的创立者之一James Truchard博士在后来回忆公司创建之初时所写下的一封信(这封信原来刊登在NI的英文官网上)。图 13 James Truchard的毕业照 James Truchard博士在信中是这样写到: 创立公司的想法第一次闪现在我的脑海里是在1967年,那时我刚刚在德克萨斯大学的奥斯汀分校完成了我的硕士论文。我设计、开发了一个超低噪音放大器,并且在测量应用领域得到了很广泛使用。这不仅使我品尝到了成功的滋味,特别是让我隐隐约约感觉到凭借这个成功我已经可以去独闯天下了。可是,最终我还是放弃了这个想法,决定继续留在德克萨斯大学读完博士学位。 当我完成学业获得了博士学位后,我再次有了创办企业的想法。 早在1976年前,我就遇到了Jeff Kodosky 和Bill Nowlin,他们是我在奥斯汀德克萨斯大学应用研究实验室(ARL)的伙伴,我们在一起相继工作有2年多。1976年,我们开始共同策划创建一个小公司,并很快决定我们最初的产品应该是一个通用接口总线的具体应用,那样工程师和科学家就可以用它连接测量仪器和电脑,并用电脑来读取测量值,比如温度、电压和压力等。 从1976年4月开始,我、Jeff和Bill就准备开始设计我们自己的产品,同时也为即将成立的新公司选择了很多个可能使用的名称德克萨斯数码以及我们姓名首字母的一些排列组合等等。可是,当我们第一次递交公司的申请时,这些名称全部都遭到了拒绝。在接下来的一轮名称递交申请中,令人非常吃惊的是他们认可了我们的第一选择National Instruments。当我们集体签名从本地银行借出10,000美元后,购买了一台电脑并开始了产品研发。我们最初使用的工作间是我们的车库,后来又围绕在我们的房子周围的地方到处打游击。 我们的首款通用接口总线在1977年4月完成。此后,国家仪器搬进了它的第一个300平方英尺的办公室。在1977年,我们通过陌生的电话将我们的首个产品出售给德克萨斯州圣安东尼奥的凯利空军基地。到年底,我们已经发售出去了总计3套产品,并且雇佣了一个兼职的行政助理。1978年7月,公司搬迁到了一个600平方英尺的场地。9月份,公司的发展遇到了一个十分危机关头。虽然大家竭尽全力,但是事情并没有向我们预期的那样发展。然而,我们没有放弃,而是投入更多的金钱和决心,并且有计划的行动。我们给大约1000多名工程师和科学家寄去了产品宣传单,建议他们使用通过电脑传送和处理测量数据的新方法。那些邮件使我们获得了成功,那一年公司销售了78,000美元的产品,应该是前途一片光明了。1979年11月9日我专职加入NI公司,Jeff的加入是在1980年2月1日,而Bill则是在1980年4月1日加入的。从此,我们开始了新的征程。图 14 踌躇满志 今天,我可以十分骄傲的说:美国国家仪器公司在虚拟仪器领域是一个科技先锋者和领导者,虚拟仪器这一创新理念已经改变了各个领域的工程师和科学家们进行测试测量和自动化的方式。30多年的发展历程中,美国国家仪器公司的虚拟仪器解决方案完全依仗于商业化科学技术的飞速发展,其中包括行业标准、计算机及网络。通过采用PC和现成的商业技术,虚拟仪器通过集成的软件,比如图形化开发环境NI LabVIEW,以及基于PXI、PCI、PCIe、PXIe、USB、1394、WiFi和以太网的模块化测量和控制硬件,降低了用户在测试、控制和设计领域应用的成本,并大幅提高了生产效率。 这封信中,充满了创业的喜悦和成功后的自豪! 成立后的NI公司很快就设计开发出基于IEEE-488.1的硬件扩展版。逐渐稳步上升的销售业绩更加激发了他们的创新欲望,他们开始对GPIB接口进行新的改进。改进后的GPIB将接口总线的传输速率从1Mbytes/s提高到8Mbytes/s。并成为新的国际标准IEEE-488-2003。 上个世纪80年代初期,NI公司凭借着GPIB总线上所获得的巨大成功,业已成为个人计算机GPIB控制器稳定的开发商和供应商。他们在与用户不断接触的商务活动中敏锐的发现:当时所有的仪器控制程序基本上都是用BASIC语言编写的。要求那些十分精通测试、测量的科学家和工程师使用BASIC语言来编写仪器控制程序,肯定不是一件十分愉快的事情。NI公司的精英们开始设想:如果能够创造、发明一种很实用、很方便的仪器控制软件开发工具或软件开发平台,必将彻底改变那些测试、测量科学家和工程技术人员对仪器控制程序设计的态度。基于这样的理念,他们决定研发一种这样的产品,并从1983年4月开始迈出实现这个伟大梦想的第一步。经过了三年多艰苦卓绝的不懈努力,这些天才的发明家终于实现了他们当初的梦想。不仅创建了虚拟仪器的理念,还同时发明了一种图形化的计算机编程语言及图形化程序的设计方法。 1986年,NI LabVIEW 1.0(Mac版)诞生(LabVIEW的版本历史,请参考附录A)。 二十五年来,持续不断地改进,图形化编程的方式已经逐渐演变成为现在的NI LabVIEW图形化系统设计的平台。 无可置疑,NI LabVIEW的诞生的确引发了测试、测量仪器领域的一场革命。1.1.2 初期虚拟仪器的理念 虚拟仪器理念的诞生之初,受当时技术发展所限,虚拟仪器的主要应用体现在仪器控制方面。常被用于构建基于数字式仪表的大型自动化测试系统。 在这样的自动化测试系统中,安置在计算机上的GPIB控制器通过GPIB接口控制和管理着多台数字式测量仪器,并将仪器的测量数据不断地传送给计算机。计算机按LabVIEW图形化程序要求对测量数据进行分析并将分析结果显示在计算机的屏幕上。自动化测试系统的基本模式参见下图。图 15 虚拟仪器自动化测量系统图 16 上个世纪90年代前后NI的Logo 由于测量控制软件在自动化测量系统中不仅起着对GPIB总线地控制和管理作用,同时还可以对多台仪器的测量数据进行较为复杂的分析和处理。所以,当时的虚拟仪器理念中突出强调软件在自动化测量系统中的作用。 当时的宣传口号“软件就是仪器”几乎随处可见,甚至包括在早期NI的Logo中。 二十五年后的今天,虚拟仪器的开发和应用已经得到了长足进步和发展。“软件就是仪器”的提法已经被全新的理念逐渐所取代。 其实,虚拟仪器理念的转变得益于现代计算机技术、微电子技术和数字信号处理技术获得的突破性进展。正因为如此,以这些技术为依托的虚拟仪器也得到了不断地发展,从而导致电子测量仪器进入到一个创新的发展阶段。1.1.3 现代虚拟仪器的理念 上个世纪未,随着计算机技术、微电子技术和数字信号处理等相应技术的飞速发展,虚拟仪器的构成发生了很大的变化,从而导致了虚拟仪器理念也发生了根本性的改变。 现阶段关于虚拟仪器的定义存在着许多相类似的说法:1. 在NI的帮助文档中还可以看到这样的说法:“LabVIEW程序又称虚拟仪器,即VI。其外观和操作均模仿现实仪器,如示波器和万用表。每个VI都使用函数从用户界面或其它渠道获取信息输入,然后将信息显示或传输至其它文件或计算机。”2. 在清华大学出版社2008年出版的虚拟仪器设计基础教程4一书中第3.1节中也谈到:目前对于虚拟仪器的概念还没有统一定义。书中还提到NI公司认为:虚拟仪器是由计算机硬件资源、模块化仪器硬件和用于数据分析、过程通讯及图形用户界面的软件组成的测控系统,是一种计算机操纵的模块化仪器系统。 依据当前虚拟仪器的发展状况,我们认为基本上可以这样来表述:虚拟仪器基于计算机的测试测量和自动化仪器(系统)。 这样的表述是基于下面的观点: 虚拟仪器所表述的内容从虚拟仪器表述的内容来看,它应该所指是:电子测量仪器中的某一个仪器种类,并非指某种特定的仪器。事实上,它被用来区分传统仪器。无论虚拟仪器还是传统仪器,二者所表达的概念是相同的,都是用来表示基本构成不同的某类测量仪器。 虚拟仪器的测量特性无论传统仪器还是虚拟仪器其本质区别就是基本构成不同。从测量的角度来分析:对于同一个被测量,具有相同功能的测量仪器,无论是传统仪器还是虚拟仪器它的测量结果都应该是一致的。所以无论虚拟仪器还是传统仪器,我们在评价其测量特性时,会依据相同的技术标准。 基于计算机的测试测量本身已包含软件和硬件因为基于计算机的测试测量本身就包含了软件和硬件部分,所以就不必特意强调“软件就是仪器”或者特殊强调“硬件模块”的作用。正是在计算机上实现了测试测量。所以传统仪器前面板上的许多硬件都可以通过软件来模拟实现。比如像传统仪器前面板上的按键、开关、图形指示器、旋钮等等。这种方式必定会大大降低测量仪器的成本,并提高了仪器的使用寿命,同时大大提高了设计开发效率。 综上所述,虚拟仪器是与传统仪器是基本构成不一样的同一类测量仪器,是一种创新的仪器设计思想的产物。图 17 传统仪器(上)与虚拟仪器(下)的面板 依据虚拟仪器的理念,它是如何与计算机结合的,它又包含那些组成部分呢?1.2 虚拟仪器构成 虚拟仪器是基于计算机的测试、测量仪器。所以,它的构成中必然包括硬件模块和软件模块两个部分。 图15给出了早期虚拟仪器的基本构成(主要体现在仪器控制应用),在现代自动化测试系统中我们依然可以看到这种构成模式。其实,虚拟仪器的构成本身是多样化和十分灵活的,并不局限与某种特定的模式上面。然而,随着现代虚拟仪器技术的不断发展,更多的虚拟仪器应用实例往往是采用下面的基本形式,参见下图。图 18 虚拟仪器基本构成 从上图中可以看出,现代虚拟仪器的基本构成可简单的划分为三个部分:传感器、多功能数据采集模块(构成虚拟仪器的硬件)、商业化计算机平台(运行虚拟仪器应用软件)。1.2.1 传感器 大家知道,自然界中许多物理量,比如声压、光强、温度、压力、流量、应力等等是电子测量仪器无法直接感知的。因为电子测量仪器通常只能够识别电压、电流信号或者是频率信号,这些被称为电信号。为了将这些物理量转换成为电子测量仪器能够感知的电信号,则需要一种物理量变换元件传感器。 传感器可以将一种物理量变换成为另一种物理量,其变换系数可视为常数。例如:我们通过麦克风可以将声音变为电信号,通过热电偶可以将温度变为电信号。这样通过测量传感器的输出电信号就可以间接实现对原物理量的测量。 在工程测量过程中,传感器已经成为虚拟仪器中的一个重要组成部分,所以它的性能好坏将决定整个虚拟仪器的测量特性的好坏。 构建虚拟仪器时,选择变换性能稳定的传感器这点尤为重要。例如:传感器最重要的技术指标之一,灵敏度。因灵敏度这个指标反映了输入变化引起输出变化之间的某种特定的函数关系。所以对传感器灵敏度这个指标,我们期待它长期稳定不变,并不受温度等外界环境变化的影响。这不仅可以保证虚拟仪器的测量准确度,同时也可以解决传感器需要经常标定或校准的问题。因为传感器的标定或校准,并不是所有实验室都可以做得到的,通常只有专业实验室才可以做到这点。 目前传感器已经发展到智能化传感器阶段。所谓智能化传感器就是指:采用IEEE1451标准的传感器。这种传感器在内部提供了一个传感器电子数据表(TEDS),在使用时随时可以提供给用户。该表中纪录了传感器制造商的有关信息和传感器的校准数据等信息。 NI许多数据采集卡已经开始支持对TEDS数据的访问功能。1.2.2 数据采集模块 传感器实现了将物理信号变换成为电信号。可是就计算机而言,它同样是无法直接识别来自传感器输出的电信号。而要想实现基于计算机的测试测量,就必须将电信号转换为计算机能够识别的数字信号。这个任务通常由模数转换器(ADC)来完成。 数据采集模块中包含了功能各异的模数转换器以及其它部件。 NI公司也是一个数据采集模块的专业制造商,它提供了品种众多、性能各异的数据采集模块。数据采集模块有多种分类的方式,比如按平台、按总线、按输入通道数、按模数转换器的位数、按采样速率、按同步或非同步测量、按动态非动态、按被测物理量等等。 这些数据采集模块基本上可以满足工程项目中几乎所有物理量的采集。同时NI公司也提供了数据采集模块的驱动软件。这种数据采集模块与驱动软件来自同一个公司的模式可以确保实现软、硬件的无缝连接。这也为虚拟仪器的设计和开发提供了多样化的选择和最有效技术上的支持与保证。 总之,选择适合的数据采集模块是工程应用中非常重要的一个环节,这里给出选择时需要注意的几个基本原则:1. 最好选用NI的数据采集模块,因为它与NI的整个软件系统是无缝连接的2. 根据测量项目的需求确定总线(或平台)模式3. 根据信号分析的实时性确定是同步还是非同步卡4. 根据信号分析所需的最高频率确定采集卡的采样速率5. 根据测量准确度要求确定数据采集卡的位数 虚拟仪器的构成是多样化和十分灵活的,所以对数据采集模块本身做更全面、细致的了解是十分必要的。这些需要在实践中不断进行总结和体会,只有这样才能够选择确定虚拟仪器最佳的硬件系统。 1.2.3 商业化计算机平台 显然,在虚拟仪器的构成中,商业计算机是一个极其重要的组成部分。因为它是虚拟仪器应用程序的运行环境(目前还不涉及到虚拟仪器的设计开发)。之所以强调计算机为商业计算机,是因为无论LabVIEW开发环境还是它所开发的应用程序都需要在现代操作系统支持下才能够运行。 就目前计算机的发展水平,几乎所有的商业计算机都能够满足虚拟仪器的运行条件。但是由于NI对Windows操作系统支持力度最大(Windows平台下的工具包最多)。所以最好还是选用Windows操作系统的计算机。 随着计算机价格的不断下降、性能的不断提高,使我们有了更多的可选择余地,但也要相应的注意一些可能存在的问题:1. 尽管一体机已经成为主流的计算机,但因为它们已经取消了PCI插槽,所以只适合选择使用基于Ethernet、USB、WiFI接口的数据采集模块。此类计算机如果作为仪器控制来用应该没有太多的限制。2. 笔记本电脑与Ethernet、USB及WiFi数据采集
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!