《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 設(shè)計(jì)應(yīng)用 > 基于VB和LabVIEW的自動(dòng)化控制和編程設(shè)計(jì)
基于VB和LabVIEW的自動(dòng)化控制和編程設(shè)計(jì)
摘要: 介紹了在VB和Labview平臺(tái)下,利用Labview的強(qiáng)大儀器驅(qū)動(dòng)和實(shí)驗(yàn)儀器圖形顯示、VB的可視化編程完成友好的用戶界面進(jìn)行混合編程,實(shí)現(xiàn)了應(yīng)用系統(tǒng)的無(wú)縫集成,豐富了軟件的測(cè)量功能,縮短了程序的開(kāi)發(fā)周期。
關(guān)鍵詞: 自動(dòng)化軟件 VB LabView
Abstract:
Key words :

1 引言

  虛擬儀器(簡(jiǎn)稱為VI)的開(kāi)發(fā)環(huán)境有很多,但NI公司的LabVIEW最為著名。LabVIEW不同于基于文本的編程語(yǔ)言(如Fortran和C),是一種圖形編程語(yǔ)言——通常稱為G編程語(yǔ)言,其編程過(guò)程是通過(guò)圖形符號(hào)描述程序的行為。LabVIEW使用的是科學(xué)家和工程師們所熟悉的術(shù)語(yǔ),還使用了很易于識(shí)別的構(gòu)造G語(yǔ)言的圖形符號(hào),即使具有很少編程經(jīng)驗(yàn)的人也能學(xué)會(huì)使用LabVIEW。而VB作為可視化編程工具,不僅簡(jiǎn)單容易上手,而且功能強(qiáng)大,可以開(kāi)發(fā)友好的用戶使用界面,同時(shí)通過(guò)ActiveX控件、DLL(動(dòng)態(tài)鏈接庫(kù))等多種方法實(shí)現(xiàn)與其他軟件的聯(lián)合開(kāi)發(fā)。

  Microsoft把所有以COM為基礎(chǔ)的技術(shù)統(tǒng)稱為ActiveX技術(shù)。自動(dòng)化是大多數(shù)ActiveX技術(shù)的基礎(chǔ),它可使解釋性的宏語(yǔ)言(如VB)能夠在不了解應(yīng)用程序?qū)崿F(xiàn)細(xì)節(jié)的情況下控制自動(dòng)化對(duì)象。Labview實(shí)現(xiàn)了ActiveX自動(dòng)化服務(wù)支持,在VB下通過(guò)ActiveX自動(dòng)化接口可將 Labview作為Visual Basic語(yǔ)言的一個(gè)ActiveX部件調(diào)用。

  本文以Agilent公司的E5262A儀器為例,通過(guò)Labview和VB混合編程,實(shí)現(xiàn)了多種數(shù)據(jù)采集和自動(dòng)化控制系統(tǒng)。

2 程序設(shè)計(jì)

  程序設(shè)計(jì)以VB作為編程界面,同時(shí)調(diào)用Labview的圖形顯示控件,而動(dòng)態(tài)鏈接庫(kù)則要使用Win的Kernel32.dll,以及Labview的 Gpib32.dll、Visa32.dll、儀器驅(qū)動(dòng)安裝時(shí)生成的E5260_32.dll等。程序流程圖如下圖所示。

  首先安裝儀器自動(dòng)的驅(qū)動(dòng)庫(kù),接口一般采用通用的GPIB標(biāo)準(zhǔn),不僅數(shù)據(jù)、命令傳輸速度快,而且一張GPIB卡能夠同時(shí)控制最多16臺(tái)儀器。儀器驅(qū)動(dòng)安裝后,會(huì)生成一個(gè)以儀器為名的DLL文件。可以利用Labview的MAX進(jìn)行接口掃描,發(fā)現(xiàn)新增加的儀器。安裝Labview后,在系統(tǒng)目錄下有 gpib32.dll文件。

  其次當(dāng)電腦中安裝了Labview后,在VB的工程引用中選取所需要的庫(kù)文件,其中包括了Agilent的VISA庫(kù)文件;在控件引用中,選中 National Instrument公司的CW(波形顯示)等控件;Microsoft的通用對(duì)話控件。這樣就可以直接使用NI公司Labview的控件了。在VB工程中,添加儀器的動(dòng)態(tài)鏈接庫(kù)(DLL)聲明,包括將要使用的常量字符、GPIB、VISA接口庫(kù)函數(shù)、儀器(E5262A)庫(kù)函數(shù)、以及系統(tǒng)的Kernel32庫(kù)函數(shù)等等。如:Declare Function viOpenDefaultRM Lib "VISA32.DLL" Alias "#141" (sesn As Long) As Long 等等。

  程序設(shè)計(jì)中首先出現(xiàn)用戶選擇界面,選擇所需要的測(cè)量方式,進(jìn)入下一界面,填寫測(cè)量參數(shù),程序進(jìn)行儀器初始化,根據(jù)送入?yún)?shù)進(jìn)行測(cè)試,測(cè)試結(jié)果由Labview控件顯示,用戶指定文件保存信息將數(shù)據(jù)保存到文件中。

  VB自帶了時(shí)鐘控件Timer,但時(shí)間量級(jí)是毫秒,快速測(cè)量或者反復(fù)切換測(cè)量狀態(tài)時(shí)不方便,程序中采用了Win的API函數(shù),通過(guò)調(diào)用 Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)函數(shù),更加方便的對(duì)程序進(jìn)行控制。

  E5262數(shù)據(jù)采集和自動(dòng)測(cè)量要求:測(cè)量一般為三極管的電壓電流變化曲線和漏電流,因此要加入輸入電壓值一、電壓二作為兩者間的電壓值,如使用共發(fā)射極時(shí),可以測(cè)量不同Vce電壓值時(shí),Vbe的電流曲線。即先固定Vce的電壓值,改變Vbe值,得到伏安曲線。

 


圖1、PNP三極管示意圖

  根據(jù)實(shí)驗(yàn)要求設(shè)計(jì)數(shù)據(jù)采集模式為以下幾種:

  模式1:固定通道一,二的電壓,即固定Vce、Vbe值,測(cè)量電流Ibe。

  模式1:固定通道二的輸出電壓,即固定Vce,以三角波形方式改變通道一(即Vbe)的輸出電壓,測(cè)量電流Ibe。

  模式2:固定通道一的輸出電壓,即固定Vbe,以三角波形改變通道二(即Vce)的輸出。測(cè)量電流Ibe。

 


圖2 程序流程圖

  數(shù)據(jù)保存格式規(guī)范為數(shù)據(jù)序列號(hào)、實(shí)驗(yàn)日期、采集時(shí)間、通道一電壓值、通道二電壓值、采集電流值。

  主要程序代碼說(shuō)明:

  ReDim OnePeroI((CInt((vdmax - vdmin) / vdstep)) * CInt(tspotcount.Text)) //根據(jù)測(cè)量數(shù)據(jù)要求動(dòng)態(tài)分配空間

  For vg = vgmin To vgmax Step vgstep //進(jìn)行三角波電壓輸出循環(huán)

  For vd = vdmin To vdmax Step vdstep//進(jìn)行三角波電壓輸出循環(huán)

  If Option1.value = True Then //判斷使用通道測(cè)量類型

  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 //是否被用戶強(qiáng)行終止測(cè)量

  test_stopmeas //儀器設(shè)置清零

  Exit Sub //退出

  Else

  spot_meas //進(jìn)行測(cè)量

  OnePeroI(CurrentIndex) = meas //保存數(shù)據(jù)到數(shù)組

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

  End If

  CWGraph1.PlotY OnePeroI //Labview控件顯示圖形

  Next vd//通道循環(huán)

  CWGraph1.ClearData //圖形更新

  Next vg//通道循環(huán)

3 測(cè)試實(shí)例、結(jié)果和討論

 


圖3 基于Labview和VB儀器采集自動(dòng)化控制界面

  程序在Labview7.1和VB6.0軟件下,系統(tǒng)為Windows XP運(yùn)行測(cè)試通過(guò)。儀器使用的是Agilent公司的E5262A,實(shí)驗(yàn)測(cè)量的是三極管在不同偏壓下的電流值曲線,程序中可以由自定義的函數(shù)設(shè)置任意形狀的輸出電壓值。結(jié)果表明程序不能快速的自動(dòng)化測(cè)量采集數(shù)據(jù),將采集的不同對(duì)比圖形實(shí)時(shí)顯示,還能夠進(jìn)行初步的數(shù)據(jù)處理,極大的方便了實(shí)驗(yàn)的進(jìn)行。

4 結(jié)束語(yǔ)

  本文的創(chuàng)新點(diǎn):

 ?。?)進(jìn)行基于VB和Labview的聯(lián)合混合編程,,利用Labview的強(qiáng)大儀器驅(qū)動(dòng)和實(shí)驗(yàn)儀器圖形顯示、VB的可視化編程完成友好的用戶界面進(jìn)行混合編程,實(shí)現(xiàn)了應(yīng)用系統(tǒng)的無(wú)縫集成,豐富了軟件的測(cè)量功能,縮短了程序的開(kāi)發(fā)周期。

 ?。?)充分的利用了AcitiveX控件和DLL(動(dòng)態(tài)鏈接庫(kù))等多種方法,不僅能夠滿足實(shí)驗(yàn)測(cè)量要求,還增強(qiáng)了儀器的測(cè)量功能,充分的發(fā)揮了虛擬儀器編程的強(qiáng)大能力。

 ?。?)程序中可以通過(guò)自己開(kāi)發(fā)的函數(shù)進(jìn)行數(shù)據(jù)處理,在測(cè)量顯示存儲(chǔ)數(shù)據(jù)的同時(shí),將初步結(jié)果也計(jì)算顯示出來(lái),這樣不僅直觀的監(jiān)控測(cè)量系統(tǒng),還能隨時(shí)根據(jù)結(jié)果進(jìn)行參數(shù)的調(diào)整。

參考文獻(xiàn)

  [1]畢虎,律方成,李燕青,李和明.Labview中訪問(wèn)數(shù)據(jù)庫(kù)的幾種不同方法.微計(jì)算機(jī)信息,2006,1-1:131-134。

  [2]吳苗,許江寧,繆繡華,紀(jì)兵.基于Labview的設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)技術(shù)研究.微計(jì)算機(jī)信息,2006,2-1:153-155。

  [3]毛建東.基于Labview的單片機(jī)數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì).微計(jì)算機(jī)信息,2006,3-2:41-42。

  [4]周偉林,李清峰,楊華勇.基于Labview的AC1077數(shù)據(jù)采集卡的驅(qū)動(dòng).微計(jì)算機(jī)信息,2006,1-1:121-123。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。