labview通过USB控制agilent33220.docx
《labview通过USB控制agilent33220.docx》由会员分享,可在线阅读,更多相关《labview通过USB控制agilent33220.docx(30页珍藏版)》请在冰豆网上搜索。
![labview通过USB控制agilent33220.docx](https://file1.bdocx.com/fileroot1/2023-1/23/91a9d0f9-eb19-41dc-a4f3-635ee7cd779a/91a9d0f9-eb19-41dc-a4f3-635ee7cd779a1.gif)
labview通过USB控制agilent33220
Labview的仪器控制程序设计
摘要
LabVIEW(LaboratoryVirtualinstrumentEngineering)是一种图形化的编程语言,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。
通过USB接口直接连接PC和agilent33220任意波形发生器,运用labview来控制agilent33220,产生任意波形。
第一部分,通过labview实现了对指定波形如:
直流波(DC),sin三角正弦函数波(sine),矩形波(square),三角波(triangle),斜波(ramp),脉冲(pulse),噪声(noise),SinX/X(sinc)等波形的频率(HZ,KHZ,MHZ),幅值(mV,V)的控制。
第二部分,对于任意波形。
首先,打开画图,手写随意画一个波形,保存为单色位图。
打开matlab,读取这张图,并转化为矩阵,编写一个简单的m程序,读取每列中0的高度。
并产生一个记录每列0高度的矩阵。
输出这个矩阵数据到txt文档。
其次,打开labview,读取txt,转化为矩阵。
输入给产生任意波形的元件,再输出到33220上,从而产生一个和手写波形一样的波形了。
关键词:
labview,agilent33220,matlab
Labviewinstrumentcontrolprogramming
Abstract
LabVIEW(LaboratoryVirtualinstrumentEngineering)isagraphicalprogramminglanguage,itiswidelyinindustry,academiaandresearchlaboratoriesacceptedasastandarddataacquisitionandinstrumentcontrolsoftware.
DirectlyconnectedtoPCthroughUSBinterface,andagilent33220arbitrarywaveformgenerator,usinglabviewtocontroltheagilent33220,generatearbitrarywaveforms.
Thefirstpart,throughlabviewachievethespecifiedwaveformsuchas:
DCwave(DC),sintriangularsinewave(sine),rectangularwave(square),triangle(triangle),ramp(ramp),pulse(pulse),noise(noise),SinX/X(sinc)suchasthefrequencyofthewaveform(HZ,KHZ,MHZ),amplitude(mV,V)control.
Thesecondpart,foranywaveform.First,openthedrawing,handwritingfreetodrawawaveform,saveforthemonochromebitmap.Openmatlab,readthismap,andintothematrix,writeasimplemprogramtoreadtheheightofeachcolumn0.Andproducearecordheightofeachcolumnmatrix0.Outputofthematrixdatatothetxtdocument.Second,openlabview,readtxt,intoamatrix.Inputdevicetogeneratearbitrarywaveforms,andthenoutputto33,220,andtoproduceoneandthesamewaveofthehandwave.
Keywords:
labview,agilent33220,matlab
目录
摘要.................................................................................................................................................1
Abstract..........................................................................................................................................2
第一章引言4
1.1Labview概述4
1.1.1虚拟仪器(VI)4
1.1.2labview软件4
第二章labview简介5
2.1labview含义5
2.1.1虚拟仪器(VI)的概念5
2.1.2labview的概念5
2.2labview的特点6
2.3Labview版本信息6
2.4labview8.2下载6
第三章agilent33220简介7
3.1技术资料7
3.233220A的LabVIEW驱动程序7
第四章程序的编写8
4.1单个波形8
4.2多个波形10
4.3任意波形13
4.4任意波形的操作简化17
第五章结语21
5.1设计实现的功能21
5.2设计方面的欠缺21
致谢22
参考文献22
第一章引言
1.1Labview概述
1.1.1虚拟仪器(VI)
虚拟仪器(virtualinstrumention)是基于计算机的仪器。
计算机和仪器的密切结合是目前仪器发展的一个重要方向。
粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。
随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。
另一种方式是将仪器装入计算机。
以通用的计算机硬件及操作系统为依托,实现各种仪器功能。
虚拟仪器主要是指这种功能。
虚拟仪器实际上是一个按照仪器需求组织的数据采集系统。
虚拟仪器的研究中涉及的基础理论主要有计算机数据采集和数字信号处理。
目前在这一领域内,使用较为广泛的计算机语言是美国NI公司的LabVIEW。
1.1.2labview软件
LabVIEW(LaboratoryVirtualinstrumentEngineering)是一种图形化的编程语言,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。
LabVIEW集成了与满足GPIB、VXI、RS-232和RS-485协议的硬件及数据采集卡通讯的全部功能。
它还内置了便于应用TCP/IP、ActiveX等软件标准的库函数。
这是一个功能强大且灵活的软件。
利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。
图形化的程序语言,又称为“G”语言。
使用这种语言编程时,基本上不写程序代码,取而代之的是流程图或流程图。
它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念,因此,LabVIEW是一个面向最终用户的工具。
它可以增强你构建自己的科学和工程系统的能力,提供了实现仪器编程和数剧采集系统的便捷途径。
使用它进行原理研究,设计,测试并实现仪器系统时,可以大大提高效率。
第二章labview简介
2.1labview含义
2.1.1虚拟仪器(VI)的概念
虚拟仪器的起源可以追溯到20世纪70年代,那时计算机测控系统在国防、航天等领域已经有了相当的发展。
PC机出现以后,仪器级的计算机化成为可能,甚至在Microsoft公司的Windows诞生之前,NI公司已经在Macintosh计算机上推出了LabVIEW2.0以前的版本。
对虚拟仪器和LabVIEW长期、系统、有效的研究开发使得该公司成为业界公认的权威。
目前LabVIEW的最新版本为LabVIEW2009,LabVIEW2009为多线程功能添加了更多特性,这种特性在1998年的版本5中被初次引入。
使用LabVIEW软件,用户可以借助于它提供的软件环境,该环境由于其数据流编程特性、LabVIEWReal-Time工具对嵌入式平台开发的多核支持,以及自上而下的为多核而设计的软件层次,是进行并行编程的首选。
普通的PC有一些不可避免的弱点。
用它构建的虚拟仪器或计算机测试系统性能不可能太高。
目前作为计算机化仪器的一个重要发展方向是制定了VXI标准,这是一种插卡式的仪器。
每一种仪器是一个插卡,为了保证仪器的性能,又采用了较多的硬件,但这些卡式仪器本身都没有面板,其面板仍然用虚拟的方式在计算机屏幕上出现。
这些卡插入标准的VXI机箱,再与计算机相连,就组成了一个测试系统。
VXI仪器价格昂贵,目前又推出了一种较为便宜的PXI标准仪器。
2.1.2labview的概念
与C和BASIC一样,LabVIEW也是通用的编程系统,有一个完成任何编程任务的庞大函数库。
LabVIEW的函数库包括数据采集、GPIB、串口控制、数据分析、数据LabVIEW标志显示及数据存储,等等。
LabVIEW也有传统的程序调试工具,如设置断点、以动画方式显示数据及其子程序(子VI)的结果、单步执行等等,便于程序的调试。
LabVIEW(LaboratoryVirtualInstrumentEngineeringWorkbench)是一种用图标代替文本行创建应用程序的图形化编程语言。
传统文本编程语言根据语句和指令的先后顺序决定程序执行顺序,而LabVIEW则采用数据流编程方式,程序框图中节点之间的数据流向决定了VI及函数的执行顺序。
VI指虚拟仪器,是LabVIEW的程序模块。
LabVIEW提供很多外观与传统仪器(如示波器、万用表)类似的控件,可用来方便地创建用户界面。
用户界面在LabVIEW中被称为前面板。
使用图标和连线,可以通过编程对前面板上的对象进行控制。
这就是图形化源代码,又称G代码。
LabVIEW的图形化源代码在某种程度上类似于流程图,因此又被称作程序框图代码。
LABVIEW是首次发表在1986年由美国国家仪器公司(德克萨斯州奥斯汀市)的实验室虚拟仪器工程工作台是一个图形化编程语言。
LABVIEW中实现了一个数据范式,其中的代码不是写,而是制定或图样类似流程图。
执行程序随着连接器电线连接节点处理一起。
每个功能或例行的存储作为一个虚拟仪器,它有三个主要部分组成:
前面板,这基本上是一种形式,是一种包含输入和控制,并且可以实时显示,后面板是代码图形被编辑的地方,当它被嵌入作为子VI时,作为接口连接到VI的连接器窗格中。
2.2labview的特点
虚拟仪器研究的另一个问题是各种标准仪器的互连及与计算机的连接。
目前使用较多的是IEEE488或GPIB协议。
未来的仪器也应当是网络化的。
利用LabVIEW,可产生独立运行的可执行文件,它是一个真正的32位/64位编译器。
像许多重要的软件一样,LabVIEW提供了Windows、UNIX、Linux、Macintosh的多种版本。
它主要的方便就是,一个硬件的情况下,可以通过改变软件,就可以实现不同的仪器仪表的功能,非常方便,是相当于软件即硬件!
现在的图形化主要是上层的系统,国内现在已经开发出图形化的单片机编程系统(支持32位的嵌入式系统,并且可以扩展的)。
2.3Labview历史信息
简单回顾一下LabVIEW最近的发展历史。
从LabVIEW的软件版本来看,应该有LabVIEW5系列、LabVIEW6系列、LabVIEW7系列和LabVIEW8系列。
发布年份,以NI为准。
LabVIEW5.0发布于:
1998年
LabVIEW5.1.1发布于:
2000年3月
LabVIEW6.02发布于:
2001年2月
LabVIEW6.1发布于:
2002年1月
LabVIEW7.0发布于:
2003年5月
LabVIEW7.1发布于:
2004年4月
LabVIEW7.1.1发布于:
2004年11月
LabVIEW8.0发布于:
2005年10月
LabVIEW8.0.1发布于:
2006年2月
LabVIEW8.20发布于:
2006年8月
LabVIEW8.2.1发布于:
2007年3月
LabVIEW8.2.1f4发布于:
2007年9月
LabVIEW8.5发布于:
2007年8月
LabVIEW8.5.1发布于:
2008年4月
LabVIEW8.6发布于:
2008年8月
LabVIEW8.6.1发布于:
2009年2月
LabVIEW2010发布于:
2010年8月
从NI的LabVIEW版本号,可以看出:
1、系列号:
5、6、7、8表示新的系列,软件结构或功能可能有重大改进(付费升级)
2、版本号:
5.x、6.x、7.x、8.x表示软件有新的内容或比较大的改进(付费升级)
3、版本号:
5.x.x、6.x.x、7.x.x、8.x.x表示软件较上个版本进行了修补(免费升级)
2.4labview8.2下载
Labview8.2下载地址:
ftp:
//
第三章agilent33220简介
3.1技术资料
Agilent33220A函数/任意波形发生器用直接数字合成(DDS)技术建立稳定、精确的输出信号,可生成纯净和低失真的正弦波。
也可为您提供具有快上升和下降时间的20MHz方波,以及达200kHz的线性斜波。
33220A能产生达5MHz的可变沿时间脉冲。
由于有可变周期、脉冲宽度和幅度,因此33220A是灵活设置和产生各种应用的脉冲信号的理想设备。
用33220A产生复杂的定制信号。
它有14bit分辨率和50MSa/s采样率,可以灵活地建立所需波形的性。
您也可在非易失存储器中保存4个波形。
在波形编辑器中用AgilentIntuilinkArbitraryWaveform软件容易地建立、编辑和下载复杂波形。
或使用IntuiLinkforOscilloscope捕获波形,之后将该波形把它发送到33220A。
33220A有非常友好的用户操作前面板.您可用一、两个键容易地访问所有主要功能。
用旋钮或数值键区调整频率、幅度、偏置和其它参数。
甚至能直接用Vpp,Vrms,dBm或高低电平送入电压值。
定时参数能以赫兹(Hz)或秒送入。
可用内部AM,FM,PM,FSK和PWM调制容易地调制波形,而不需要单独的调制源。
线性和对数扫描也是内置的,可选择1ms至500s的扫描率。
突发模式允许用户选择每周期时间的循环数。
GPIB,LAN和USB接口均为标准配置,并有完全的SCPI命令编程能力。
3.233220ALabVIEW驱动程序
33220ALabVIEW驱动程序(Agilent33XXXSeries.zip)可以到www.ni.com,在右上角搜索33220,再找到自己labview的版本,下载。
(必须免费注册个ni的账号才能下载)。
Labview8.2驱动程序下载地址:
ftp:
//
解压后将Agilent33XXXSeries文件夹复制到C:
\ProgramFiles\NationalInstruments\LabVIEW8.2\instr.lib目录下(XP默认路径)。
此外该LahVIEW驱动程序是利用VISA开发的,所以你的开发环境必须安装有VISA3.0或以后的版本。
VISA4.0的下载地址为:
ftp:
//
第四章程序的编写
4.1单个波形
当一切准备就绪,通过USB连接电脑与agilent33220,当电脑提示硬件安装成功后打开Measurement&Automation(MAX是用于配置测试硬件与NI软件通讯的管理软件)。
(如果没有正确安装,右键我的电脑,属性,硬件,设备管理器,找到没安装成功的,重新安装)。
打开MAX,依次点击MySystem,DevicesandInterface,如果上面所说的成功的话,在DevicesandInterface目录下有USBDevices在它里面就是地址,例如USB0:
:
0x0957:
:
0x0407:
:
MY44049065:
:
INSTR
在Agilent33XXXSeries文件中,
Initialize.VI,它主要完成①打开资源名或指定装置的会话;②完成仪器识别查询;③复位仪器到指定状态;④发送初始命令到仪器;⑤资源名;任何程序开始前必须调用该子VI一次。
ConfigureStandardWaveformVI,它能直接通过USB接口实现信号发生器功能,并在这个子VI中设置输出频率调节(Hz)、输出波形类型、输出幅度(V)、偏移量(V)。
EnableOutput.VI,实现的功能是当按停止键时,停止仪器输出任何信号,这样可以保证程序停止后,仪器输出通道端口无任何电位存在,从而保证仪器安全。
CloseVI顾名思义。
前面板:
频率范围(1HZ--20MHZ)幅值范围(10mV--5V)
频率单位可调(HZ,KHZ,MHZ)幅值单位(mV,V)
偏置默认为0。
波形:
直流波(DC),sin三角正弦波(sine),矩形波(square),
三角波(triangle),斜波(ramp),脉冲(pulse),
噪声(noise),SinX/X(sinc)。
实现功能:
1.波形类型,频率大小,幅值大小,可调。
2.频率单位可调,幅值单位可调。
3.当输入溢出时,自动取极值(最大值,最小值)。
对于频率单位调节部分,通过索引数组,第一个选项HZ代表1,第二个选项KHZ代表1000,第三个选项MZ代表1000000,再通过相乘来实现频率单位的控制。
对于幅值单位调节部分,通过索引数组,第一个选项mV代表1000,第二个选项V代表1,再通过相除来实现幅值单位的控制。
对于频率范围控制,通过判断范围并强制转换VI,上限设为20000000,下限设为1,来控制频率的输入范围,当输入超过或不足时自动取最大或最小值。
对于幅值范围控制,通过判断范围并强制转换VI,上限设为5,下限设为0.01,来控制幅值的输入范围,当输入超过或不足时自动取最大或最小值。
程序部分图:
图4.1.1前面板
图4.1.2程序图
4.2多个波形
编写一个含有正弦波+矩形波+三角波的数据存入txt文档。
这个txt记录的是一维数据,这个数据可以由matlab输入,也可以用labview输入,还可以用手写直接输入,不过这个相对繁琐。
本人是通过labview输入的,正弦波+矩形波+三角波,最后把三个数据合并起来,存入txt文档。
路径指定txt文档,频率取100HZ。
Createarbitrarywaveform.vi输入数组数据,产生任意波形。
Configurearbitrarywaveform.vi输入频率。
需接在Createarbitrarywaveform.vi之后。
在前面板中,路径设为txt文件的路径,例如在桌面上的1个新建的txt文档,
C:
\DocumentsandSettings\Administrator\桌面\新建文本文档
(2).txt。
对于频率,实验证明不能取太高,不然会不稳定,取100到200HZ为佳。
布尔按钮是保护agilent而设计的,当按下时,agilent才会输出波形。
在程序图中,通过读取文本文件控件,读取txt文本。
再通过extractnumbersvi把读取的数据转化为1维数组,再通过Createarbitrarywaveform.vi和那个必须的Configurearbitrarywaveform.vi控件连接,进而产生任意波形,输入给agilent33220。
其中Configurearbitrarywaveform.vi控件还输入频率,它是必须的,因为之前输入的是1维数组,还需要时间才能构成真正的波形。
其他控件和单个波形的输入大致相同,initialze.vi控件输入的是USB地址,每台计算机给的地址都不同。
Enable
Output.vi是控制输出波形的的控件,当布尔按钮按下时才会输出波形。
Close.vi顾名思义。
之所以这么连接是参考了之前的文献和Vi的即时帮助,这个太重要了。
当然还需要适当的猜测,之前显示的波形一直不稳定,因为当时频率取得比较大,大概有几千,
Agilent33220显示的波形看起来都是叠在一起,在缩小频率之后agilent显示正常了!
之所以连接个波形图控件,是为了在输入给产生任意波形控件之前,必须先确定你的数据是正确的,而你输入的是什么维数的数据,发现一位数组才会产生波形,因为它频率是默认的,直接就产生波形了,而且Createarbitrarywaveform.vi输入部分连线是黄色的,证明是输入的是数组,从而确定它输入的是一位数组!
频率部分是由之后的Configurearbitrarywaveform.vi确定。
熟悉英文的重要性就在此了,不然看不懂它自带的即时帮助的说明书。
要连接准确必须看清楚说明,和VI每个端口的颜色,这个是必须的,这才能确定你应该输入什么类型的数据,相同颜色的端口才能相互连接,这个一定程度上也简化了你的操作,让你可以快速的找到连接端。
Createarbitrarywaveform.vi和Configurearbitrarywaveform.vi都在之前的程序包中,这都是labview开发好的驱动程序,如果自己开发这个就相对复杂了。
Labview给用户提供了方便,这正是labview的优势之一。
程序部分图:
图4.2.1前面板
图4.2.2程序图
实验部分图:
图4.2.3波形图
图4.2.4实验图(一个周期)
4.3任意波形
在之前的基础上,实现任意波形的输入,输出。
打开程序--附件--画图。
随手画一个连续的波形,保存为单色位图。
命名为2.bmp。
打开matlab,将图转化为矩阵,编写一段程序,提取图中数据0的高度。
(黑色就是0,白色就是1)并输出到一个矩阵,并