最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

labview通过USB控制agilent33220

来源:动视网 责编:小OO 时间:2025-09-25 04:57:02
文档

labview通过USB控制agilent33220

Labview的仪器控制程序设计摘要LabVIEW(LaboratoryVirtualinstrumentEngineering)是一种图形化的编程语言,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。通过USB接口直接连接PC和agilent33220任意波形发生器,运用labview来控制agilent33220,产生任意波形。第一部分,通过labview实现了对指定波形如:直流波(DC),sin三角正弦函数波(sine),矩形波(square),三角波(
推荐度:
导读Labview的仪器控制程序设计摘要LabVIEW(LaboratoryVirtualinstrumentEngineering)是一种图形化的编程语言,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。通过USB接口直接连接PC和agilent33220任意波形发生器,运用labview来控制agilent33220,产生任意波形。第一部分,通过labview实现了对指定波形如:直流波(DC),sin三角正弦函数波(sine),矩形波(square),三角波(
Labview的仪器控制程序设计

摘要

    LabVIEW(Laboratory Virtual instrument Engineering)是一种图形化的编程语言,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。

 通过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

  Labview instrument control programming 

Abstract

   LabVIEW (Laboratory Virtual instrument Engineering) is a graphical programming language, it is widely in industry, academia and research laboratories accepted as a standard data acquisition and instrument control software. 

 SB interface, and agilent33220 arbitrary waveform generator, using labview to control the agilent33220, generate arbitrary waveforms. 

  as the frequency of the waveform (HZ, KHZ, MHZ), amplitude (mV, V) control. 

 x, write a simple m program to read the height of each column 0. And produce a record height of each column matrix 0. Output of the matrix data to the txt document.Second, open labview, read txt, into a matrix. Input device to generate arbitrary waveforms, and then output to 33,220, and to produce one and the same wave of the hand wave. 

Keywords: labview ,agilent33220 ,matlab

摘要.................................................................................................................................................1

Abstract..........................................................................................................................................2

4.4 任意波形的操作简化 17

 第一章 引言

 1.1 Labview概述

1.1.1 虚拟仪器(VI)

 虚拟仪器(virtual instrumention)是基于计算机的仪器。计算机和仪器的密切结合是目前仪器发展的一个重要方向。粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。另一种方式是将仪器装入计算机。以通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器主要是指这种功能。

 虚拟仪器实际上是一个按照仪器需求组织的数据采集系统。虚拟仪器的研究中涉及的基础理论主要有计算机数据采集和数字信号处理。目前在这一领域内,使用较为广泛的计算机语言是美国NI公司的LabVIEW。

1.1.2 labview软件

    LabVIEW(Laboratory Virtual instrument Engineering)是一种图形化的编程语言,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。LabVIEW集成了与满足GPIB、VXI、RS-232和RS-485协议的硬件及数据采集卡通讯的全部功能。它还内置了便于应用TCP/IP、ActiveX等软件标准的库函数。这是一个功能强大且灵活的软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。

 图形化的程序语言,又称为“G”语言。使用这种语言编程时,基本上不写程序代码,取而代之的是流程图或流程图。它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念,因此,LabVIEW是一个面向最终用户的工具。它可以增强你构建自己的科学和工程系统的能力,提供了实现仪器编程和数剧采集系统的便捷途径。使用它进行原理研究,设计,测试并实现仪器系统时,可以大大提高效率。

 第二章 labview简介

2.1 labview含义

2.1.1 虚拟仪器(VI)的概念

  虚拟仪器的起源可以追溯到20世纪70年代,那时计算机测控系统在国防、航天等领域已经有了相当的发展。PC机出现以后,仪器级的计算机化成为可能,甚至在 Microsof t公司的 Windows 诞生之前,NI公司已经在Macintosh计算机上推出了LabVIEW2.0 以前的版本。对虚拟仪器和 LabVIEW 长期、系统、有效的研究开发使得该公司成为业界公认的权威。目前LabVIEW 的最新版本为 LabVIEW2009,LabVIEW 2009 为多线程功能添加了更多特性,这种特性在 1998 年的版本 5 中被初次引入。使用 LabVIEW 软件,用户可以借助于它提供的软件环境,该环境由于其数据流编程特性、LabVIEW Real-Time 工具对嵌入式平台开发的多核支持,以及自上而下的为多核而设计的软件层次,是进行并行编程的首选。

  普通的 PC 有一些不可避免的弱点。用它构建的虚拟仪器或计算机测试系统性能不可能太高。目前作为计算机化仪器的一个重要发展方向是制定了VXI 标准,这是一种插卡式的仪器。每一种仪器是一个插卡,为了保证仪器的性能,又采用了较多的硬件,但这些卡式仪器本身都没有面板,其面板仍然用虚拟的方式在计算机屏幕上出现。这些卡插入标准的 VXI 机箱,再与计算机相连,就组成了一个测试系统。VXI 仪器价格昂贵,目前又推出了一种较为便宜的 PXI 标准仪器。

2.1.2  labview的概念

 与 C 和 BASIC 一样,LabVIEW 也是通用的编程系统,有一个完成任何编程任务的庞大函数库。LabVIEW 的函数库包括数据采集、GPIB、串口控制、数据分析、数据  LabVIEW标志显示及数据存储,等等。LabVIEW 也有传统的程序调试工具,如设置断点、以动画方式显示数据及其子程序(子VI)的结果、单步执行等等,便于程序的调试。

 (Laboratory Virtual Instrument Engineering Workbench)是一种用图标代替文本行创建应用程序的图形化编程语言。传统文本编程语言根据语句和指令的先后顺序决定程序执行顺序,而 LabVIEW 则采用数据流编程方式,程序框图中节点之间的数据流向决定了VI及函数的执行顺序。VI指虚拟仪器,是 LabVIEW 的程序模块。

  LabVIEW 提供很多外观与传统仪器(如示波器、万用表)类似的控件,可用来方便地创建用户界面。用户界面在 LabVIEW 中被称为前面板。使用图标和连线,可以通过编程对前面板上的对象进行控制。这就是图形化源代码,又称G代码。LabVIEW 的图形化源代码在某种程度上类似于流程图,因此又被称作程序框图代码。

     LABVIEW是首次发表在1986年由美国国家仪器公司(德克萨斯州奥斯汀市)的实验室虚拟仪器工程工作台是一个图形化编程语言。LABVIEW中实现了一个数据范式,其中的代码不是写,而是制定或图样类似流程图。执行程序随着连接器电线连接节点处理一起。每个功能或例行的存储作为一个虚拟仪器,它有三个主要部分组成:前面板,这基本上是一种形式,是一种包含输入和控制,并且可以实时显示,后面板是代码图形被编辑的地方,当它被嵌入作为子VI时,作为接口连接到VI的连接器窗格中。

 2.2 labview的特点

  虚拟仪器研究的另一个问题是各种标准仪器的互连及与计算机的连接。目前使用较多的是 IEEE 488 或 GPIB协议。未来的仪器也应当是网络化的。  

 利用 LabVIEW,可产生运行的可执行文件,它是一个真正的32位/位编译器。像许多重要的软件一样,LabVIEW提供了Windows、UNIX、Linux、Macintosh的多种版本。

 它主要的方便就是,一个硬件的情况下,可以通过改变软件,就可以实现不同的仪器仪表的功能,非常方便,是相当于软件即硬件!现在的图形化主要是上层的系统,国内现在已经开发出图形化的单片机编程系统(支持32位的嵌入式系统,并且可以扩展的)。

2.3 Labview历史信息

 简单回顾一下LabVIEW最近的发展历史。从LabVIEW的软件版本来看,应该有LabVIEW 5系列、LabVIEW 6系列、LabVIEW 7系列和LabVIEW 8系列。

 发布年份,以NI为准。

LabVIEW 5.0 发布于:1998年

LabVIEW 5.1.1 发布于:2000年3月 

LabVIEW 6.02 发布于:2001年2月

LabVIEW 6.1 发布于:2002年1月 

LabVIEW 7.0 发布于:2003年5月

LabVIEW 7.1 发布于:2004年4月

LabVIEW 7.1.1 发布于:2004年11月

LabVIEW 8.0 发布于:2005年10月 

LabVIEW 8.0.1 发布于:2006年2月

LabVIEW 8.20 发布于:2006年8月

LabVIEW 8.2.1 发布于:2007年3月

LabVIEW 8.2.1f4 发布于:2007年9月 

LabVIEW 8.5 发布于:2007年8月

LabVIEW8.5.1 发布于:2008年4月

LabVIEW8.6 发布于:2008年8月

LabVIEW8.6.1 发布于:2009年2月

LabVIEW 2010 发布于: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.4 labview8.2下载

    Labview8.2下载地址:

ftp://ftp.ni.com/evaluation/labview/pc/labview_82_chs.exe

第三章agilent33220简介

3.1技术资料 

Agilent 33220A 函数/任意波形发生器用直接数字合成(DDS)技术建立稳定、精确的输出信号,可生成纯净和低失真的正弦波。也可为您提供具有快上升和下降时间的20MHz 方波,以及达200kHz 的线性斜波。

33220A能产生达5MHz的可变沿时间脉冲。由于有可变周期、脉冲宽度和幅度,因此33220A 是灵活设置和产生各种应用的脉冲信号的理想设备。

用33220A 产生复杂的定制信号。它有14bit 分辨率和50MSa/s 采样率,可以灵活地建立所需波形的性。您也可在非易失存储器中保存4个波形。在波形编辑器中用Agilent Intuilink Arbitrary Waveform软件容易地建立、编辑和下载复杂波形。或使用IntuiLink for Oscilloscope捕获波形,之后将该波形把它发送到33220A。

33220A 有非常友好的用户操作前面板. 您可用一、两个键容易地访问所有主要功能。用旋钮或数值键区调整频率、幅度、偏置和其它参数。甚至能直接用Vpp,Vrms ,dBm 或高低电平送入电压值。定时参数能以赫兹(Hz)或秒送入。可用内部AM,FM,PM,FSK和PWM调制容易地调制波形,而不需要单独的调制源。线性和对数扫描也是内置的,可选择1ms 至500s 的扫描率。突发模式允许用户选择每周期时间的循环数。GPIB, LAN 和USB 接口均为标准配置,并有完全的SCPI 命令编程能力。

3.2  33220A LabVIEW驱动程序

 驱动程序(Agilent33XXX Series.zip)可以到www. ni.com,在右上角搜索33220,再找到自己labview的版本,下载。(必须免费注册个ni的账号才能下载)。

 驱动程序下载地址:

ftp://ftp.ni.com/support/idnet/82F1B5337B4A14F3E04400144FB7D21D/agilent_33xxx_series.zip 

解压后将Agilent 33XXX Series文件夹复制到C:\\Program Files\\National Instruments\\LabVIEW 8.2\\instr.lib目录下(XP默认路径)。此外该LahVIEW驱动程序是利用VISA开发的,所以你的开发环境必须安装有VISA 3.0或以后的版本。

 的下载地址为:

ftp://ftp.ni.com/support/visa/drivers/win32/4.0/visa400full.exe

第四章 程序的编写

4.1 单个波形

 当一切准备就绪,通过USB连接电脑与agilent 33220 ,当电脑提示硬件安装成功后打开Measurement & Automation(MAX是用于配置测试硬件与NI软件通讯的管理软件)。(如果没有正确安装,右键我的电脑,属性,硬件,设备管理器,找到没安装成功的,重新安装)。打开MAX,依次点击My System,Devices and Interface,如果上面所说的成功的话,在Devices and Interface目录下有USB Devices 在它里面就是地址,例如USB0::0x0957::0x0407::MY44049065::INSTR

 在Agilent 33XXX Series文件中,

 Initialize.VI,它主要完成①打开资源名或指定装置的会话;②完成仪器识别查询;③复位仪器到指定状态;④发送初始命令到仪器;⑤资源名;任何程序开始前必须调用该子VI一次。

 onfigure Standard Waveform VI,它能直接通过USB接口实现信号发生器功能,并在这个子VI中设置输出频率调节(Hz)、输出波形类型、输出幅度(V)、偏移量(V)。

Enable Output.VI,实现的功能是当按停止键时,停止仪器输出任何信号,这样可以保证程序停止后,仪器输出通道端口无任何电位存在,从而保证仪器安全。

 Close VI 顾名思义。

 前面板:频率范围(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。

 e arbitrary waveform .vi 输入数组数据,产生任意波形。

 输入频率。需接在Create arbitrary waveform .vi之后。

 在前面板中,路径设为txt文件的路径,例如在桌面上的1个新建的txt文档,

 桌面\新建 文本文档 (2).txt。  

 对于频率,实验证明不能取太高,不然会不稳定,取100到200HZ为佳。

 布尔按钮是保护agilent而设计的,当按下时,agilent才会输出波形。

在程序图中,通过读取文本文件控件,读取txt文本。再通过extract numbers vi把读取的数据转化为1维数组,再通过 Create arbitrary waveform .vi 和那个必须的Configure arbitrary waveform .vi 控件连接,进而产生任意波形,输入给agilent 33220 。其中Configure arbitrary waveform .vi 控件还输入频率,它是必须的,因为之前输入的是1维数组,还需要时间才能构成真正的波形。其他控件和单个波形的输入大致相同,initialze.vi控件输入的是USB地址,每台计算机给的地址都不同。Enable

Output.vi是控制输出波形的的控件,当布尔按钮按下时才会输出波形。Close.vi顾名思义。

    之所以这么连接是参考了之前的文献和Vi的即时帮助,这个太重要了。当然还需要适当的猜测,之前显示的波形一直不稳定,因为当时频率取得比较大,大概有几千,

Agilent 33220显示的波形看起来都是叠在一起,在缩小频率之后agilent显示正常了!

之所以连接个波形图控件,是为了在输入给产生任意波形控件之前,必须先确定你的数据是正确的,而你输入的是什么维数的数据,发现一位数组才会产生波形,因为它频率是默认的,直接就产生波形了,而且Create arbitrary waveform .vi输入部分连线是黄色的,证明是输入的是数组,从而确定它输入的是一位数组!频率部分是由之后的Configure arbitrary waveform .vi确定。

熟悉英文的重要性就在此了,不然看不懂它自带的即时帮助的说明书。要连接准确必须看清楚说明,和VI每个端口的颜色,这个是必须的,这才能确定你应该输入什么类型的数据,相同颜色的端口才能相互连接,这个一定程度上也简化了你的操作,让你可以快速的找到连接端。

Create arbitrary waveform .vi和Configure arbitrary waveform .vi都在之前的程序包中,这都是labview开发好的驱动程序,如果自己开发这个就相对复杂了。Labview给用户提供了方便,这正是labview的优势之一。

程序部分图:

                        图4.2.1 前面板

                        图4.2.2  程序图

    实验部分图:

                        图4.2.3 波形图

图4.2.4 实验图(一个周期)

4.3 任意波形

    在之前的基础上,实现任意波形的输入,输出。

 打开程序--附件--画图。随手画一个连续的波形,保存为单色位图。命名为。

 打开matlab ,将图转化为矩阵,编写一段程序,提取图中数据0的高度。(黑色就是0,白色就是1)并输出到一个矩阵,并输出到txt文档,再采用之前的多个波形读取txt的方法,输出波形。

 首先发现输出时前面和后面都出现了多余的0,于是修改了程序,去除0。这个是在波形图中就发现了,还未连接到agilent3220上。这个一定程度上说明了科学的严谨性,需要在问题未发生之前,尽量的发现问题。这个0是由于在画图时,在画图板上前后都可能有一些空余,在空余部分都是数据1,没有0,编写的程序读完每列数据还没有读到0,它就只能记录最后一个数据,即高度为0。发现用for循环,前面会产生0而最后是不会产生0;而while语句前后都会产生0。所以.有不同的应对方法。而while语句更适用于此处,这个下面会提到。

    程序部分:

 程序:(for循环,考虑不够完善)

 桌面

 转化为数组,m纵向,n横向

       for i=1:m    

 

  %记录高度

    r=length(b);   %记录数组长度

       e=t;       %记录最后0的位置

    b(1:e)=[];    %去除前面的0

 en('C:\\Documents and Settings\\Administrator\桌面\打开创建txt

 写入txt

 关闭txt

 理论上,如果图片为空图片的话,程序无法正常运行。

 对于每列,从下往上读才是高度。

 是因为agilent33220最大5V,而显示屏差不多有900P。除以200的话最大就是4.5V。

    在实际中,图画的不好的话,同一列中,会不止有一个0,有时会有2个0甚至3个0出现。因此,核心部分用while语句,当读到0时直接跳到下一列。

 完善后的matlab程序:(while语句,完善)

 桌面

[m,n]=size(a);

 )记录高度

         end    

     b(1:e)=[];   %去除前面0

  while (b(f)~=0)

 去除后面0

 桌面\\2.txt','w');

 

    实验部分图:

                           图 4.3.1 手写波形

图 4.3.2 有多余0的波形图

                    图 4.3.3 最终波形图 

                   图 4.3.4 实验图(一个周期)

4.4 任意波形的操作简化

 为了简化操作,用生成exe来处理。先把的默认打开方式设为:画图。

1.打开matlab新建1个GUI。

    新建1个普通按钮,取名一键生成。

 在一键生成那右击,查看回调函数---callback。

 在下一行把完善后的程序复制进去,并在之后加入一行close

 保存文件名为bb 。

 再在matlab的command 窗口中输入: mcc -m bb.m

 生成exe文件。

2.生成labview的应用程序

 点击工具--生成可执行文件exe。(专业版)

3.把matlab生成的exe和labview生成的exe放在一个文件夹中。

 为了使两个exe可执行文件先后运行。建立一个批处理文件bat

 新建1个txt文件

 输入如下代码:

 C:\\Documents and Settings\\Administrator\桌面

打开

 桌面\任意波形

    start 1.vbs                 % 调用1.vbs %

 秒时间画波形 %

    start 2.vbs            调用2.vbs %

 给3秒让它保存图片 %

    start 3.vbs                 % 调用3.vbs

    Start/wait bb.exe           % 打开bb.exe %

 应用程序.运行完bb后打开应用程序.exe %

 d Settings\\Administrator\桌面

    del  2.txt                  % 5秒后删除2.txt %

 保存为.bat后缀。(或者 .cmd)

    对于批处理做下简单的介绍,cd指令是进入某个盘符,start指令可以运行exe,ping 指令可以用来进行延时功能,像ping 127.0.0.1 -n 7 >nul就是延时7秒的意思。而start/wait指令就是等运行完毕并退出这个程序,再执行之后的指令,这个就指使我在matlab程序后面加个close,运行完matlab的程序,自己退出,因为退出才能执行下一条指令。对于start指令补充下,要运行这个指令,批处理必须找到这个之后要运行的程序,这样如果批处理和要运行的程序放在一起的话,可以简化操作。Del就是删除的意思,它不需要点击确定,它也不会经过回收站!3个调用的vbs在下面会提到。

 再新建1个txt,命名为1.vbs

 代码如下:

 500 

    objws.SendKeys "^+n"         % 清除图像 %

 再新建1个txt,命名为2.vbs

 代码如下:

    objw.SendKeys "^s"           % 保存图片

 再新建1个txt,命名为3.vbs

 代码如下:

 CreateObject("wscript.shell") 

 35

    Wshell.SendKeys " "           % 给它时间按确定 %

 把这些都放在一个文件夹下,再把bat发送到桌面快捷方式,完工。

 只要运行桌面上的bat,自动打开画图,画波形,7秒后保存图片,3秒后,自动运行bb.exe 。5秒后自动选中一键生成。运行完毕后自动退出bb.exe,并自动打开应用程序.exe,并运行。5秒后自动删除2.txt。

之前对于批处理和vbs脚本并不熟悉,当得知批处理能够连续自动运行exe,我就把matlab和labview生成了对应的exe文件,当得知vbs可以通过sendkey来发送按键,我就用它来对画图进行清除图片和保存图片的操作,其中ctrl+shift+n是清除图片,对应的vbs就是^+n。其中ctrl+s是保存图片的快捷方式,对应的vbs就是^s。这个在vbs指令中都能查到。在发现按Tab键可以对按键进行选定,而按空格键可以对按键进行确定之后,果断用vbs来实现自动按键。批处理和脚本中都有延时的功能,这在程序的连续运行中起到了至关重要的作用。Matlab和labview程序的运行速度,和计算机本身有关,所以延时可以自行调节,以达到最优的效果。其中其实还有1个问题,想一起实现的就是判断鼠标离开的时候再进行保存的,再找了很多资料以后还是未能实现

一是难度确实不易,二是时间有限,所以我用延时来进行保存图片也是很无奈的事情。

批处理和vbs都是系统能够直接运行的,这也节省了成本。Matlab和labview生成的exe,也是只要计算机装了matlab和labview之后能过直接使用的,所以这个也很方便。画图也是系统自带的,在菜单-附件-画图里面,不必使用其他的画图界面。

对于之前的bat文件,虽然只有很少的几行,不过确实实现了程序的自动运行,当画完图后,一切都是自动运行的了,直到agilent33220显示波形。

    这一步步的过来,虽然可能最后的结果很简单,不过每一步都是在查阅资料以后,深思熟虑之后确定的.

程序部分图:

                    图 4.4.1 matlab GUI图

                         图 4.4.2  文件夹中文件图

                        图 4.4.3  桌面文件图

    实验部分图:

                   图 4.4.4   手写输入

                       图 4.4.5   生成波形界面图

第五章 结语

5.1 设计实现的功能

    实现了对指定频率,幅度,波形类型的波形的输入。

 实现了对多个波形的输入。

    实现了对任意波形的输入。

5.2 设计方面的欠缺

对于单个波形:

 没有实现同步输入,每改变一次(频率,幅度,波形类型)都要点击运行。

对于任意波形:

 没有找到图片自动关联到画图的指令。Bmp格式图片要手动关联到画图。

程序编写的缺陷:画图时必须是连续波形而且不能碰到边界,不然matlab的程序无法运行。

 画图时不松开鼠标是无法保存图片的。所以画图超时,显示还是上次的图片。要解决这个问题,只能编写个程序,时刻监视鼠标的活动,当鼠标松开的时候进行保存。Mouseup指令能实现,不过要对编写exe本身的窗体,画图窗体不行。GetAsyncKeyState指令能对任意窗体,但只能监视鼠标的点击,而松开却不行。不过没有解决不了的问题,只是暂未实现,很遗憾。

exe本身的局限性:生成的exe程序不好修改,而且第一次打开bb.exe很慢(应该是读取matlabrc.m文件需要时间),速度不可预知,之后就会很快。调用的3.vbs 运行完毕,还没启动一键生成的话,只能手动点击一键生成。这也是先调用3.vbs计时,再运行 /wait bb .exe的缘故。如果先bb.exe再/wait 3.vbs的话,只要3.vbs运行完毕,labview的程序就开始运行了,那时候可能bb.exe还没打开。

需要自行生成可执行文件,无法复制到其他计算机。因为对于生成的matlab的可执行文件,对于不同版本的系统(像WIN7),桌面图片的路径不同,生成的txt路径不同,所以是无法运行的。而且由于matlabrc.m文件不同,生成exe的也无法在其他计算机上运行。对于labview生成的exe文件,由于每个计算机的地址不同,agilent给的USB地址也就不同,必须把地址由常数改为输入变量。所以自行生成exe文件可以避免不必要的麻烦。

致谢

 毕业论文暂告收尾,这也意味着我在大学的四年的学习生活既将结束。回首既往,自己一生最宝贵的时光能于这样的校园之中,能在众多学富五车、才华横溢的老师们的熏陶下度过,实是荣幸之极。在这四年的时间里,我在学习上和思想上都受益非浅。这除了自身努力外,与各位老师、同学和朋友的关心、支持和鼓励是分不开的。

 论文的写作是枯燥艰辛而又富有挑战的。Labview是理论界一直探讨的热门话题,老师的谆谆诱导、同学的出谋划策及家长的支持鼓励,是我坚持完成论文的动力源泉。在此,我特别要感谢我的导师马青玉老师。从论文的选题、文献的采集、框架的设计、结构的布局到最终的论文定稿,从内容到格式,从标题到标点,她都费尽心血。没有马青玉老师的辛勤栽培、孜孜教诲,就没有我论文的顺利完成。

 感谢各位同学,与他们的交流使我受益颇多。最后要感谢我的家人以及我的朋友们对我的理解、支持、鼓励和帮助,正是因为有了他们,我所做的一切才更有意义;也正是因为有了他们,我才有了追求进步的勇气和信心。

 时间的仓促及自身专业水平的不足,整篇论文肯定存在尚未发现的缺点和错误。恳请阅读此篇论文的老师、同学,多予指正,不胜感激!

参考文献

[1]戎舟.基于Labview的虚拟示波器及远程测控[J].微计算机信息,2004.

[2]杨乐平,李海涛,杨磊.Labview程序设计与应用(第2 版).北京:电子工业出版社,2006.

[3]蔡建安,陈洁华.基于LabVIEW的工程软件应用.重庆大学出版社,2006.

[4]马双宝.基于Labview7.0 虚拟信号发生器的实现[J].微计算机信息,2005

[5]周求湛,钱志鸿,刘萍萍,等.虚拟仪器与LabVIEW7 Express程序设计[M]. 第1版. 北京:北京航空航天大学出版社,2004.

[6]秦树人.智能控件化虚拟仪器系统原理与实现[M].科学出版社, 2004.

[7]陆琦荣.基于虚拟仪器技术个人实验室的构建[M].北京:电子工业出社,2006.

[8]陈锡辉, 张银鸿.LabVIEW 8.20 程序设计从入门到精通[M].北京:清华大学出版社,2007.

[9]赵俊岩.利用LabVIEW通过USB控制33220A程序设计[J].电子测试,2009.

[10]百度百科.labview.百度百科,2011-04-29 [2011-05-15].

http://baike.baidu.com/history/id=19822508.

[11]安捷伦.Agilent 33220A 20MHz函数/任意波形发生器技术资料[J].安捷伦电子期刊,2005.

Strain Test System Based on Virtual Instrument Technology

BY:T

Computer Science Department

college of new jersey Institute of technology

USA.

Email: Tom afrid@nze.edu

Abstract

 Strain test is one of the most widely applied technologies in mechanical engineering. Nowadays, the conventional strain test technology gradually can’t keep up with the step of modern test technology’s development. Virtual Instrument, whose core is computer, is becoming the main trend of test technology instead of conventional instruments. But the software development of virtual Instrument is rather complicate, it limits the application and development of virtual instrument technology in strain test field.In order to solve the problem mentioned above, a strain test software system was developed in LabVIEW 8.0. First, functional module design method was adopted to construct the software system based on studying the test method using traditional instruments. In the process of realizing functional module,“event-loop-state machine”model was designed. Second, the running procedure of software system was designed based on studying the conventional test process. Third, based on the strain test hardware system consisting of NI SCXI-1520 etc., the modules including parameter initialization, bridge balance, shunt calibration, filter, stress and load display, time domain analysis, frequency domain analysis, data storage, signal replay, experiment report generation and static calibration of system were developed to implement the test and control assignment. Finally, some experiments were done to validate the system’s reliability.The user was capable of carrying out the strain test and analysis task using the corresponding software test system constructed only through clicking the functional buttons on the system’s main board according to the test requirement. It makes user far away from the complicate software development.

 LabVIEW (short for Laboratory Virtual Instrumentation Engineering Workbench) is a platform and development environment for a visual programming language from National Instruments. The graphical language is named "G". Originally released for the Apple Macintosh in 1986, LabVIEW is commonly used for data acquisition, instrument control, and industrial automation on a variety of platforms including Microsoft Windows, various versions of UNIX, Linux, and Mac OS X. The latest version of LabVIEW is version LabVIEW 2010, released in August 2010.

Dataflow programming

 The programming language used in LabVIEW, also referred to as G, is a dataflow programming language. Execution is determined by the structure of a graphical block diagram (the LV-source code) on which the programmer connects different function-nodes by drawing wires. These wires propagate variables and any node can execute as soon as all its input data become available. Since this might be the case for multiple nodes simultaneously, G is inherently capable of parallel execution. Multi-processing and multi-threading hardware is automatically exploited by the built-in scheduler, which multiplexes multiple OS threads over the nodes ready for execution

Graphical programming

 LabVIEW ties the creation of user interfaces (called front panels) into the development cycle. LabVIEW programs/subroutines are called virtual instruments (VIs). Each VI has three components: a block diagram, a front panel, and a connector panel. The last is used to represent the VI in the block diagrams of other, calling VIs. Controls and indicators on the front panel allow an operator to input data into or extract data from a running virtual instrument. However, the front panel can also serve as a programmatic interface. Thus a virtual instrument can either be run as a program, with the front panel serving as a user interface, or, when dropped as a node onto the block diagram, the front panel defines the inputs and outputs for the given node through the connector pane. This implies each VI can be easily tested before being embedded as a subroutine into a larger program.

 The graphical approach also allows non-programmers to build programs by dragging and dropping virtual representations of lab equipment with which they are already familiar. The LabVIEW programming environment, with the included examples and the documentation, makes it simple to create small applications. This is a benefit on one side, but there is also a certain danger of underestimating the expertise needed for good quality "G" programming. For complex algorithms or large-scale code, it is important that the programmer possess an extensive knowledge of the special LabVIEW syntax and the topology of its memory management. The most advanced LabVIEW development systems offer the possibility of building stand-alone applications. Furthermore, it is possible to create distributed applications, which communicate by a client/server scheme, and are therefore easier to implement due to the inherently parallel nature of G-code.

Benefits

 One benefit of LabVIEW over other development environments is the extensive support for accessing instrumentation hardware. Drivers and abstraction layers for many different types of instruments and buses are included or are available for inclusion. These present themselves as graphical nodes. The abstraction layers offer standard software interfaces to communicate with hardware devices. The provided driver interfaces save program development time. The sales pitch of National Instruments is, therefore, that even people with limited coding experience can write programs and deploy test solutions in a reduced time frame when compared to more conventional or competing systems. A new hardware driver topology (DAQmxBase), which consists mainly of G-coded components with only a few register calls through NI Measurement Hardware DDK (Driver Development Kit) functions, provides platform independent hardware access to numerous data acquisition and instrumentation devices. The DAQmxBase driver is available for LabVIEW on Windows, Mac OS X and Linux platforms.

 In terms of performance, LabVIEW includes a compiler that produces native code for the CPU platform. The graphical code is translated into executable machine code by interpreting the syntax and by compilation. The LabVIEW syntax is strictly enforced during the editing process and compiled into the executable machine code when requested to run or upon saving. In the latter case, the executable and the source code are merged into a single file. The executable runs with the help of the LabVIEW run-time engine, which contains some precompiled code to perform common tasks that are defined by the G language. The run-time engine reduces compile time and also provides a consistent interface to various operating systems, graphic systems, hardware components, etc. The run-time environment makes the code portable across platforms. Generally, LV code can be slower than equivalent compiled C code, although the differences often lie more with program optimization than inherent execution speed.

 Many libraries with a large number of functions for data acquisition, signal generation, mathematics, statistics, signal conditioning, analysis, etc., along with numerous graphical interface elements are provided in several LabVIEW package options. The number of advanced mathematic blocks for functions such as integration, filters, and other specialized capabilities usually associated with data capture from hardware sensors is immense. In addition, LabVIEW includes a text-based programming component called MathScript with additional functionality for signal processing, analysis and mathematics. MathScript can be integrated with graphical programming using "script nodes" and uses a syntax that is generally compatible with MATLAB[citation needed].

 The fully modular character of LabVIEW code allows code reuse without modifications: as long as the data types of input and output are consistent, two sub VIs are interchangeable.

The LabVIEW Professional Development System allows creating stand-alone executables and the resultant executable can be distributed an unlimited number of times. The run-time engine and its libraries can be provided freely along with the executable.

 A benefit of the LabVIEW environment is the platform independent nature of the G code, which is (with the exception of a few platform-specific functions) portable between the different LabVIEW systems for different operating systems (Windows, Mac OS X and Linux). National Instruments is increasingly focusing on the capability of deploying LabVIEW code onto an increasing number of targets including devices like Phar Lap or VxWorks OS based LabVIEW Real-Time controllers, FPGAs, PocketPCs, PDAs, and Wireless sensor network nodes.

 There is a low cost LabVIEW Student Edition aimed at educational institutions for learning purposes. There is also an active community of LabVIEW users who communicate through several e-mail groups and Internet forums.

Criticism

 LabVIEW is a proprietary product of National Instruments. Unlike common programming languages such as C or FORTRAN, LabVIEW is not managed or specified by a third party standards committee such as ANSI.

 As of version 8, all LabVIEW installations on Windows computers require customers to contact National Instruments by Internet or phone to "activate" the product. Macintosh and Linux users are not subject to this requirement.

 Building a stand-alone application with LabVIEW requires the Application Builder component which is included with the Professional Development System but requires a separate purchase if using the Base Package or Full Development System.Compiled executables produced by the Application Builder are not truly standalone in that they also require that the LabVIEW run-time engine be installed on any target computer on which users run the application.The use of standard controls requires a runtime library for any language and all major operating system suppliers supply the required libraries for common languages such as C. However, the runtime required for LabVIEW is not supplied with any operating system and is required to be specifically installed by the administrator or user. This requirement can cause problems if an application is distributed to a user who may be prepared to run the application but does not have the inclination or permission to install additional files on the host system prior to running the executable.

 According to the National Instruments license agreement an executable built with LabVIEW should contain a note that the software is written in LabVIEW.

 There is some debate as to whether LabVIEW is really a general purpose programming  language (or in some cases whether it is really a programming language at all) as opposed to an application-specific development environment for measurement and automation.Critics point to a lack of features, common in most other programming languages, such as, until version 2009, native recursion and, until version 8.20, native object oriented features.

Also, for an environment heavily targeted for test, LabVIEW includes no built-in functions for formally testing limits, reading a limits file, and conveniently tracking the passing or failing results. Companies tend to build their own proprietary functions for this basic feature if they choose not to use TestStand.

Timing System

 LabVIEW uses the January 1, 1904 Epoch (reference date) as its "zero" time. Other programs that use the January 1, 1904 epoch are Apple Inc.'s Mac OS through version 9, Palm OS, MP4, and Microsoft Excel 

  Labview is above,now let us disuss the strain.Due to external objects (stress, humidity, temperature changes, etc) and deformation, the object between the parts produced within the internal interaction to resist the external cause role, and tried to make the object from the deformation after position revert to deformation previous position. In the section some investigation on unit area of internal force called stress. With section of vertical called normal stress or method to stress, with section tangent called shear stress or shear stress. Stress increases with the external growth, with a particular kind of material, the build-up of stress is limited, exceed this a limit, material will be destroyed. For a certain materials for, stress can be reached this plateau called the materials of ultimate stress. Ultimate stress value through the material mechanics test to determine. Will determine the limit should be reduced, set the masterpiece of appropriate materials can safe work stress, this is the maximum allowable stress. Materials to the safe use, when use inside the stress should be less than its ultimate stress, otherwise materials will occur when use destruction. Engineering components, most cases, internal force is not evenly distributed, usually "destruction" or "failure" tend to be aged from internal force set degree the most pound-foolish beginning, so, it is necessary to distinguish and define stress concept.

               基于虚拟仪器的应变测试系统

作者:汤姆                       新泽西日报科学专版2010年1月

美国纽泽西理工大学计算机系

电子邮箱:tom *************

文摘

应变测试是在机械工程中应用最为广泛的技术之一。如今,传统的应变测试技术逐渐无法跟上现代测试技术的发展步伐。虚拟仪器其核心是计算机,正成为测试技术代替传统工具的主要趋势。但是,虚拟仪器软件开发是相当复杂,它了应用和测试应变虚拟仪器技术的发展,应变测试软件系统开发的LabVIEW 8.0中解决了以上问题。首先,通过构建软件系统测试方法研究了使用传统文书为基础的功能模块设计方法。在功能模块的实现过程中“事件循环状态机”模式的设计。其次,在软件系统的运行程序设计的基础上研究了常规测试过程。第三,通过应变测试硬件的NI的SCXI - 1520等组成的包括参数初始化,电桥平衡,分流校准,过滤器,压力和负荷显示,时域分析,频域分析,数据存储模块,信号回放系统,实验报告生成系统的静态标定和开发,来实现测试和控制任务。最后,进行了一些实验来验证系统的可靠性.用户使用相应的软件测试系统来贯彻应变测试和分析任务,根据测试的要求来点击系统的主板建造的功能按钮的能力,它使用户远离复杂的软件开发。

LabVIEW(实验室虚拟仪器工程工作台的缩写)是一个由美国国家仪器可视化编程语言平台和开发环境。图形语言被命名为“G”语言。最初是为苹果的Macintosh发布于1986年,LabVIEW在常用的数据采集,仪器控制和工业自动化上使用,包括微软Windows的UNIX,Linux的各种版本和Mac OS X,最新版本的LabVIEW平台的版本是LabVIEW2010,2010年8月公布。

数据流编程在LabVIEW的编程语言使用,也被称为G,是一个数据流编程语言。由一个图形块图(LV的源代码)的程序员通过绘制导线连接不同功能节点结构来执行的。这些导线传播变量和任何节点都可以尽快执行,使其所有输入数据变得可用。由于这可能是同时进行多个节点的情况下,所以G是天生的并行处理能力。多处理和多线程硬件会自动利用内置的调度程序,在多个节点的操作系统线程执行。

 图形化编程LabVIEW的关系的用户界面的创建到开发周期(称为前面板)。LabVIEW的方案/子程序被称为(VI)的虚拟仪器。每个VI有三个组成部分:一个框图,前面板,连接器面板。最后是用于表示在其他调用VI框图的VI。控制和前面板指示灯允许操作员从正在运行的虚拟仪器数据将数据输入或提取。然而,前面板还可以作为一个编程接口。因此,一个虚拟仪器既可以作为程序运行作为用户界面,或者,当一个节点上框图下跌服务面板,在前面板通过连接器窗格中,给给定的输入和输出节点定义。这意味着每个VI可以很容易地被作为一个子程序,然后嵌入到一个更大的程序进行测试。

图形化的方法也允许非程序员通过拖放建立实验室装备虚拟他们已经熟悉的程序。在LabVIEW编程环境,包括例子和文档,可以用简单的小程序来创建。这是对一方的利益,但也有低估优质的“G”编程所需要专业知识的危险性。重要的是,对于复杂的算法或大规模的代码,程序员需要拥有一个特别广泛的知识LabVIEW的语法和它的内存管理的拓扑结构。最先进的LabVIEW开发系统提供了建设应用的可能性。此外,通过通信客户机/服务器方案,它可以创建分布式应用程序,因此更容易实施由于G代码固有的并行性。

优点: 一个比其他的LabVIEW开发环境的好处是对访问仪器硬件的广泛支持。驱动程序、文书、地址许多不同类型的抽象层或有可供列入。这些表现为图形节点本身。抽象层提供标准的软件接口进行通信的硬件设备。该方案提供的驱动程序接口节省了开发时间。在国家仪器推销的,因此,与有限的编码经验和部署时间框架的测试解决方案相比,可以编写传统的或竞争的系统程序的人在减少。新的硬件驱动拓扑(DAQmxBase),主要包括G的编码,只有通过NI测量硬件DDK(驱动开发工具包)函数调用的组件数登记,提供了平立的众多数据采集和仪器设备的硬件访问。该DAQmxBase驱动程序可用于在Windows,Mac OS X和Linux平台LabVIEW的。

在性能方面,LabVIEW将包括一个编译器产生的CPU平台的本地代码。图形代码被翻译成可执行的机器代码的语法解释和编译。LabVIEW的语法是严格执行在编辑过程中,进入可执行的机器代码编译请求时运行或对储蓄。在后一种情况下,可执行文件和源代码合并到一个单一的文件。LabVIEW的运行时的引擎,包含了一些预编译的代码,由G语言定义的通用任务,帮助该可执行文件运行。提供了一个一致的界面,各种操作系统,图形系统,硬件组件等运行时环境使得代码能跨平台移植使得运行时引擎减少了编译时间。一般来说,G比同样的代码可以编译的C代码慢,但差异通常在于内在的程序执行速度比优化的信息。

许多图书馆提供多种LabVIEW的封装选择:进行数据采集,信号生成,数学,统计学,信号调理,分析等大量功能以及大量的图形界面元素。采用先进的数学等一体化,过滤器的功能,数量及其他专业能力使得通常与数据相关的硬件传感器捕捉产生巨大的影响。此外,LabVIEW包括一个基于文本的编程组件调用与信号处理,分析和数学MathScript的附加功能。MathScript的可集成的图形化编程使用“脚本节点”,并使用一般的语法与MATLAB [引文需要]兼容。

LabVIEW的代码完全模块化的字符允许在不修改代码重用:只要输入和输出的数据类型长是一致的,两个子VI是可以互换的。

在LabVIEW专业开发系统允许创建的可执行文件,由此产生的可执行文件可以被分发了无数次。运行时引擎和它的库可以提供自由随可执行文件。

一个在LabVIEW环境效益是平台的G代码,这是的性质(与少数特定于平台的功能除外)系统之间的不同LabVIEW的便携式不同的作业系统(Windows,Mac OS X和Linux)的。美国国家仪器公司越来越多地侧重于LabVIEW的部署,包括像菲尔拉普,基于LabVIEW实时控制器或设备,越来越多目标能力的VxWorks操作系统代码,FPGA中,PocketPCs,PDA和无线传感器网络节点。

有一种低成本LabVIEW学生版,旨在为在教育机构学习的目的。此外,还有一个活跃的社区用户的LabVIEW谁的通讯方式,多个电子邮件团体和互联网论坛。

评论: LabVIEW是美国国家仪器公司的专利产品。与诸如C或FORTRAN常见的编程语言,LabVIEW是不管理或由第三方作为ANSI等标准委员会指定。

截至8版,所有LabVIEW在Windows计算机上安装需要客户通过互联网或电话联系“激活”该产品的国家仪器。Macintosh和Linux的用户不遵守这项规定。  

构建以LabVIEW的应用程序需要应用程序生成器组件,它是专业开发系统包括在内,但如果需要使用基础的全面发展System.Compiled包或由应用程序生成器产生的可执行文件的单独购买都没有真正的,因为它们还要求在LabVIEW运行时引擎可以在任何目标计算机上运行的用户标准控件application.使用要求的任何语言,和所有主要作业系统供应商提供的运行时库的共同语言,如C安装所需要的库。然而,LabVIEW中所需要的运行时不附带任何操作系统,并须具体由管理员或用户安装。如果这一要求可能会导致应用程序分发到谁可能是准备运行应用程序,但没有意愿或权限在主机系统上安装额外的文件才能运行可执行用户问题。

据美国国家仪器LabVIEW构建与许可协议,应该包含该软件在LabVIEW书面说明一个可执行文件。

也有一些,是否真的LabVIEW是一种通用编程语言(或在某些情况下,是否真的在所有的编程语言)的辩论,而不是一个点测量和automation.Critics应用程序特定的发展环境,缺乏自信在大多数其他编程语言,比如,共同直到2009年版,原生递归,直到8.20版,特色,本土面向对象特性。

另外,对于严重的环境测试目标,LabVIEW没有包括内置的正式测试的,通过或失败的结果阅读文件,方便地跟踪功能。公司倾向于建立自己的这一基本特征专有的功能,如果他们选择不使用TestStand的。

计时系统:LabVIEW使用的1904年1月1日时代为“零”的时间(参考日期)。使用其他方案的1904年1月1日时代是苹果公司的通过版本9,Palm操作系统,MP4和Microsoft Excel中的Mac OS。

上面讨论的LabVIEW,现在让我们看外部对象(压力,湿度,温度变化等)和变形,在内部之间的互动,以抵御外部原因的作用所产生的部分对象,并设法使物体从变形后的位置回复到变形前的位置。在部分单位的一些地区调查内力称为应力。垂直条的所谓的正常压力或胁迫的方法,称为第切线剪应力或剪应力。与外部增长,特定种类的材料,应力增加,积聚的压力就有限,超过这个限度,材料将被销毁。有一定的用料讲究,可达到所谓的高原极限应力的材料是通过材料的极限力学测试应力值来确定的。将减少,设置适当的材料可以安全工作压力的杰作,是允许的最大压力。要安全使用,使用时里面的压力应不低于其极限应力,否则材料使用时会发生破坏。工程部件,大多数情况下,内力分布并不均匀,通常是“破坏”或“失败”往往是年龄内力设置程度最芝麻丢了西瓜的开始,因此,有必要区分和界定应力概念。

http://dl.dbank.com/c0tmy6ey3v

文档

labview通过USB控制agilent33220

Labview的仪器控制程序设计摘要LabVIEW(LaboratoryVirtualinstrumentEngineering)是一种图形化的编程语言,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。通过USB接口直接连接PC和agilent33220任意波形发生器,运用labview来控制agilent33220,产生任意波形。第一部分,通过labview实现了对指定波形如:直流波(DC),sin三角正弦函数波(sine),矩形波(square),三角波(
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top