i目录第1章序言..................................................................................................................11.1使用LabVIEW的原因...............................................................................................11.1.1看得见的钱和看不见的钱.................................................................................1第2章初识LabVIEW仪器控制..............................................................................22.1二个辅助开发工具......................................................................................................22.1.1ScanforInstruments(查找仪器)..........................................................................22.1.2CommunicatewithInstrument(与仪器通讯)......................................................32.2二个开发函数(VISAReadandWrite)........................................................................42.2.1NI仪器驱动网....................................................................................................52.2.2在LabVIEW中直接查找并安装仪器驱动程序...............................................62.3二个调试工具(TroubleshootingtoolandNI-Spy)......................................................72.3.1Troubleshootingtool............................................................................................82.3.2NI-SPY................................................................................................................8第3章仪器控制实战................................................................................................103.1安捷伦34401万用表................................................................................................10第4章后记................................................................................................................111第1章序言在自动化测试领域,仪器控制是每一个自动化测试程序开发工程师的基本功。好多刚刚进入自动化测试领域的工程师都会问我同一个问题:“仪器控制到底难不难,有没有什么书可以推荐啊?”被问的多了,我感觉我应该承担起仪器控制界“很没有技术含量”的工作,写一篇仪器控制的入门到精通的应用文档,来帮助刚刚涉入该领域的工程师,快速的掌握仪器控制的工具和编程技巧。之所以说“很没有技术含量”,是因为,这个世界上,如果某项技术没有什么书籍去讲述,只有两个原因:一是这个技术太简单了,书不够写;二是这个技术太难了,还没有研究透彻,不能写。基于LabVIEW的仪器控制,就是属于“技术太简单了,书不够写”。1.1使用LabVIEW的原因很多工程师给我写Email,提及,可否介绍VB/VC下的仪器控制技术,不要因为是NI公司的销售工程师,就一味推NI公司的LabVIEW嘛。其实,我并不是一味推NI公司的LabVIEW,而是纯粹从技术角度上考虑,LabVIEW是最适合开发自动化测试软件的平台。我多次在客户那里碰到一些仪器销售人员,我总是在人群中静静的倾听他们天花乱坠的介绍。他们常常使用的貌似关系客户的话,诸如“哇,你们用LabVIEW啊,怎么不用VB呢,VB不要钱啊~”——还好,我的很多客户并不领情,并语重心长的告诉他们,现在VB的盗版确实很多,在这个地区“不要钱”,不代表在世界其它地区“不要钱”;在这个“不要钱”的地区用VB,不一定能将工作共享到世界其它地区的分公司。然后,我的客户还给我提到了最终选择LabVIEW的另一个原因:“我们管理人员还得考虑KPI(关键绩效指标):1、开发性能优异性(占30%):LabVIEW控件丰富、开发容易、查错方便;2、系统架构优异性(占10%):LabVIEW容易开发高性能的并行程序;3、开发周期(占30%):LabVIEW开发周期非常短4、依赖关系及移殖性(占10%):兼容第三方硬件,可以调用第三方函数库;5、费用(占10%):相对VB,购买成本较高;但LabVIEW有永久免费技术支持。6、后续的维护性能(占10%):LabVIEW程序维护容易。所以,经过KPI分析,我们管理人员还是决定引入LabVIEW作为公司的自动化测试程序开发平台。”1.1.1看得见的钱和看不见的钱另外,当提起仪器是否可以程控时,仪器销售人员拍着胸脯说:“我用VB写过全部控制代码,当然可以啊。”随即,我们请销售人员马上试几条读测试值的指令,销售人员立马一头汗水,马上说“指令怎么可以记得住啊”…无语…我常常对我身边的测试工程师讲,VB/VC的开发公司是Microsoft,所以在Microsoft内部使用VB/VC,是既正版,又支持本公司产品。但Microsoft在开发自己产品Xbox的测试程序时,选用了LabVIEW,而不是VB/VC,为什么呢?——真正的智慧,不被所谓的盗版和“不要钱”蒙蔽了双眼,把精力集中于如何提高工作效率和质量,创造更多的价值(看不见的钱)。2第2章初识LabVIEW仪器控制伟大的军事指挥官林彪把复杂的战术总结出了“一点两面”、“四快一慢”、“三三制”等,从田里、山里出来的战士们在这些浅显的道理面前,特别容易懂也特别容易用,这些浅显的战术道理,把四野铸就成了一支攻无不克,战无不胜的虎狼之师。LabVIEW仪器控制技术只有一个口诀,即“三个二”:二个辅助开发工具(ScanforInstrumentandcommunicatewithInstrument);二个开发函数(VISAReadandWrite);二个调试工具(TroubleshootingtoolandNI-Spy)。2.1二个辅助开发工具在进行仪器控制前,首要事情是先找到仪器,并能保证与仪器正常通讯。所以,二个辅助开发工具是:ScanforInstruments(查找仪器)和CommunicatewithInstrument(与仪器通讯)。2.1.1ScanforInstruments(查找仪器)装好GPIB卡后,请双击击桌面上Measurement&Automation(简称MAX)图标,如图2.1所示。Measurement&Automation是NI公司的设备管理器,类似于Windows的设备管理器。图2.1Measurement&Automation在MAX中,先选中设备与接口(DeviceandInterface)下的GPIB设备,然后点击ScanforInstruments按钮,如果软硬件正常,就可以在ConnectedInstruments窗口中看到已连接到GPIB卡上的仪器信息,如图2.2所示。图2.2ScanforInstruments3该工具保证了仪器连接正常,可以进行下一步工作了。2.1.2CommunicatewithInstrument(与仪器通讯)由于仪器的控制器可能有问题,所以,与仪器成功连接上,并不代表仪器能正确响应控制指令,所以还需要用第二个辅助工具来测试仪器响应关键指令的能力,这个工具就是CommunicatewithInstrument(与仪器通讯)。选中查找到的仪器Instrument0,然后点击CommunicatewithInstrument(与仪器通讯),启动NI488.2Communicator(通讯器),如图2.3所示。图2.3启动NI488.2Communicator(通讯器)在NI488.2Communicator(通讯器)中,可以对一起写入命令,然后再读取结果,以测试仪器对命令响应是否成功,如图2.4所示。图2.4NI488.2Communicator(通讯器)完成以上两步工作证明仪器通讯没有问题后,就可以开始LabVIEW编程了。小贴士:很多有经验的开发人员,在开发自动化程序前,会使用NI488.2Communicator(通讯器)来尝试将要使用的仪器控制命令,尝试成功,则开发的时候心底无忧了。42.2二个开发函数(VISAReadandWrite)在LabVIEW环境下,开发GPIB仪器控制程序非常简单,这也是众多工程师喜欢在LabVIEW环境下进行自动化程序开发的原因。总的来说,只需要用NI-VISAWrite.vi来向仪器发送命令,用NI-VISARead.vi来从仪器读取数据即可,如图2.5所示。图2.5NI-VISAWrite&Read从Agilent34401A的使用手册中115页可以查知,测量DC值的指令为”MEAS:DC?”,如图2.6所示。图2.6Agilent34401A使用手册所以,用NI-VISAWrite向仪器发送指令:MEAS:VOLT:DC?,然后用NI-VISARead.vi读回DC电压测量值,如图2.7所示。图2.7读取DC范例程序5【小贴士】仪器控制程序开发,只有三个步骤:1.查阅仪器使用手册,找到所需的控制指令;2.用NI-VISAWrite.vi向仪器发送该指令;3.用NI-VISARead.vi从仪器中读回数据;2.2.1NI仪器驱动网刚刚开始学习GPIB控制仪器的工程师,会为成功控制仪器而感到欣喜。可是,当写过几个仪器控制程序后,再去重复查阅手册-发指令-读数据的工作,就会感觉乏味和痛苦,感觉一点长进也没有,感觉自己的时间全浪费在看仪器的指令手册上了。早在二十多年前(1986年),NI的工程师已经意识到这个问题了,为了解决工程师的乏味问题,NI的工程师把写过的常用的仪器驱动函数加以总结和整理,免费发布给客户,之后,各大仪器公司也参照NI的做法,为自己的仪器配上了LabVIEW仪器驱动程序。NI把这些前人总结好的仪器驱动程序放到了网上,成就了今天的NI仪器驱动网,如图2.8所示。图2.8NI仪器驱动网从仪器驱动网中下载的程序,请放入..NationalInstruments\LabVIEW8.6\instr.lib文件夹下,这样,就可以在程序框图-仪器I/O-仪器驱动程序下,找到一起的驱动程序了,如图2.9所示。6