推广 热搜: 电机  PLC  变频器  服务机器人  培训  变送器  危化品安全,爆炸  西门子PLC  触摸屏  阀门 

基于VB和LabVIEW的自动化控制和编程设计

   日期:2013-03-23     来源:工控之家网    作者:工控之家    浏览:30    评论:0    
摘 要:介绍了在VB和Labview平台下,利用Labview的强大仪器驱动和实验仪器图形显示、VB的可视化编程完成友好的用户界面进行混合编程,实现了应用系统的无缝集成,丰富了软件的测量功能,缩短了程序的开发周期。

关键词:VB;虚拟仪器 ;自动化控制;数据采集

ABSTRACT:The article introducethe characteristic of LabVIEW,the development. In addition, it analyzes three methods to automatization of the instrument with computer by using LabVIEW language and VB here.From the example of E5262A,it is a good way to integrative design of data acquisition,data processing and analyse.

KEYWORDS:VB,Virtual Instrument(VI);Automatization ;Data Acquisition

1 引言

  虚拟仪器(简称为VI)的开发环境有很多,但NI公司的LabVIEW最为著名。LabVIEW不同于基于文本的编程语言(如Fortran和C),是一种图形编程语言——通常称为G编程语言,其编程过程是通过图形符号描述程序的行为。LabVIEW使用的是科学家和工程师们所熟悉的术语,还使用了很易于识别的构造G语言的图形符号,即使具有很少编程经验的人也能学会使用LabVIEW。而VB作为可视化编程工具,不仅简单容易上手,而且功能强大,可以开发友好的用户使用界面,同时通过ActiveX控件、DLL(动态链接库)等多种方法实现与其他软件的联合开发。

  Microsoft把所有以COM为基础的技术统称为ActiveX技术。自动化是大多数ActiveX技术的基础,它可使解释性的宏语言(如VB)能够在不了解应用程序实现细节的情况下控制自动化对象。Labview实现了ActiveX自动化服务支持,在VB下通过ActiveX自动化接口可将Labview作为Visual Basic语言的一个ActiveX部件调用。

  本文以Agilent公司的E5262A仪器为例,通过Labview和VB混合编程,实现了多种数据采集和自动化控制系统。

2 程序设计

  程序设计以VB作为编程界面,同时调用Labview的图形显示控件,而动态链接库则要使用Win的Kernel32.dll,以及Labview的Gpib32.dll、Visa32.dll、仪器驱动安装时生成的E5260_32.dll等。程序流程图如下图所示。

  首先安装仪器自动的驱动库,接口一般采用通用的GPIB标准,不仅数据、命令传输速度快,而且一张GPIB卡能够同时控制最多16台仪器。仪器驱动安装后,会生成一个以仪器为名的DLL文件。可以利用Labview的MAX进行接口扫描,发现新增加的仪器。安装Labview后,在系统目录下有gpib32.dll文件。

  其次当电脑中安装了Labview后,在VB的工程引用中选取所需要的库文件,其中包括了Agilent的VISA库文件;在控件引用中,选中National Instrument公司的CW(波形显示)等控件;Microsoft的通用对话控件。这样就可以直接使用NI公司Labview的控件了。在VB工程中,添加仪器的动态链接库(DLL)声明,包括将要使用的常量字符、GPIB、VISA接口库函数、仪器(E5262A)库函数、以及系统的Kernel32库函数等等。如:Declare Function viOpenDefaultRM Lib "VISA32.DLL" Alias "#141" (sesn As Long) As Long等等。

  程序设计中首先出现用户选择界面,选择所需要的测量方式,进入下一界面,填写测量参数,程序进行仪器初始化,根据送入参数进行测试,测试结果由Labview控件显示,用户指定文件保存信息将数据保存到文件中。

  VB自带了时钟控件Timer,但时间量级是毫秒,快速测量或者反复切换测量状态时不方便,程序中采用了Win的API函数,通过调用Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)函数,更加方便的对程序进行控制。

  E5262数据采集和自动测量要求:测量一般为三极管的电压电流变化曲线和漏电流,因此要加入输入电压值一、电压二作为两者间的电压值,如使用共发射极时,可以测量不同Vce电压值时,Vbe的电流曲线。即先固定Vce的电压值,改变Vbe值,得到伏安曲线。


图1、PNP三极管示意图

  根据实验要求设计数据采集模式为以下几种:

  模式1:固定通道一,二的电压,即固定Vce、Vbe值,测量电流Ibe。

  模式1:固定通道二的输出电压,即固定Vce,以三角波形方式改变通道一(即Vbe)的输出电压,测量电流Ibe。

  模式2:固定通道一的输出电压,即固定Vbe,以三角波形改变通道二(即Vce)的输出。测量电流Ibe。


图2 程序流程图

  数据保存格式规范为数据序列号、实验日期、采集时间、通道一电压值、通道二电压值、采集电流值。

  主要程序代码说明:

  ReDim OnePeroI((CInt((vdmax - vdmin) / vdstep)) * CInt(tspotcount.Text)) //根据测量数据要求动态分配空间

  For vg = vgmin To vgmax Step vgstep //进行三角波电压输出循环

  For vd = vdmin To vdmax Step vdstep//进行三角波电压输出循环

  If Option1.value = True Then //判断使用通道测量类型

  If Combo1.ListIndex = 0 Then//判断输入类型,电流还是电压

  ret = age5260_force(vi, pins(0), age5260_VF_MODE, 2, vd, idcomp, 0)

  End If

  End If

  If RunorStop = True Then //是否被用户强行终止测量

  test_stopmeas //仪器设置清零

  Exit Sub //退出

  Else

  spot_meas //进行测量

  OnePeroI(CurrentIndex) = meas //保存数据到数组

  Sleep Sleeptime //延迟,控制采用速率

  End If

  CWGraph1.PlotY OnePeroI //Labview控件显示图形

  Next vd//通道循环

  CWGraph1.ClearData //图形更新

  Next vg//通道循环

3 测试实例、结果和讨论


图3 基于Labview和VB仪器采集自动化控制界面

  程序在Labview7.1和VB6.0软件下,系统为Windows XP运行测试通过。仪器使用的是Agilent公司的E5262A,实验测量的是三极管在不同偏压下的电流值曲线,程序中可以由自定义的函数设置任意形状的输出电压值。结果表明程序不能快速的自动化测量采集数据,将采集的不同对比图形实时显示,还能够进行初步的数据处理,极大的方便了实验的进行。

4 结束语

  本文的创新点:

  (1)进行基于VB和Labview的联合混合编程,,利用Labview的强大仪器驱动和实验仪器图形显示、VB的可视化编程完成友好的用户界面进行混合编程,实现了应用系统的无缝集成,丰富了软件的测量功能,缩短了程序的开发周期。

  (2)充分的利用了AcitiveX控件和DLL(动态链接库)等多种方法,不仅能够满足实验测量要求,还增强了仪器的测量功能,充分的发挥了虚拟仪器编程的强大能力。

  (3)程序中可以通过自己开发的函数进行数据处理,在测量显示存储数据的同时,将初步结果也计算显示出来,这样不仅直观的监控测量系统,还能随时根据结果进行参数的调整。

参考文献

  [1]毕虎,律方成,李燕青,李和明.Labview中访问数据库的几种不同方法.微计算机信息,2006,1-1:131-134。

  [2]吴苗,许江宁,缪绣华,纪兵.基于Labview的设备驱动程序开发技术研究.微计算机信息,2006,2-1:153-155。

  [3]毛建东.基于Labview的单片机数据采集系统的设计.微计算机信息,2006,3-2:41-42。

  [4]周伟林,李清峰,杨华勇.基于Labview的AC1077数据采集卡的驱动.微计算机信息,2006,1-1:121-123。

 
打赏
 
更多>同类环保知识
0相关评论

推荐图文
推荐环保知识
点击排行
网站首页  |  免责声明  |  联系我们  |  关于我们  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  RSS订阅  |  违规举报  |  鲁ICP备12015736号-1
Powered By DESTOON