張靈靈
(安徽省廣播電視臺淮北市發(fā)射臺,安徽 淮北 235000)
LabVIEW(Laboratory Virtual instrument Engineering Workbench)是一種圖形化的編程語言的開發(fā)環(huán)境,它廣泛地被工業(yè)界、學(xué)術(shù)界和研究實驗室所接受,視為一個標(biāo)準(zhǔn)的數(shù)據(jù)采集和儀器控制軟件,同時它也是目前多數(shù)虛擬儀器系統(tǒng)所采用的開發(fā)軟件。在這種基于圖形化編程語言的開發(fā)環(huán)境中,LabVIEW可以高效、快速地編寫出相應(yīng)的應(yīng)用程序,完成諸如數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)顯示以及儀器控制和通信等多種功能。在我國由于引進時間短,了解和熟悉它的人不多,還遠遠沒被認識和推廣應(yīng)用。
VISA(Virtual Instrument Software Architecture)是一個用來與各種儀器總線進行通訊的高級應(yīng)用編程接口(API)。它不受平臺、總線和環(huán)境的限制。因此,可以通過NI-VISA來控制USB設(shè)備進行相互之間的通信。
首先,配置NI-VISA來控制USB設(shè)備。安裝好VISA,接著分3步完成操作:
(1)使用Driver Development Wizard(驅(qū)動程序開發(fā)向?qū)?創(chuàng)建INF文檔。為了使用NI-VISA,先讓W(xué)indows將NI-VISA作為設(shè)備的缺省驅(qū)動程序使用。在Windows環(huán)境中可以通過INF文檔做到這一點。NI-VISA3.0中包含的VISA Driver Development Wizard(DDW)將為USB設(shè)備創(chuàng)建一個INF文檔。
選擇Start>>Programs>>National Instruments>>VISA>>VISA Driver DeveloperWizard,打開DDW。
可以用這個向?qū)镻XI/PCI或USB設(shè)備創(chuàng)建一個INF文檔。由于是在為USB設(shè)備創(chuàng)建驅(qū)動程序,因此選擇USB,并點擊Next。此時出現(xiàn)圖1所示的VISA DDW基本設(shè)備信息窗口。
圖1 VISA DDW基本設(shè)備信息窗口
進行這一步時,您需要清楚USB儀器的USB供應(yīng)商ID和產(chǎn)品ID。這些數(shù)字可以在您安裝USB設(shè)備的時候?qū)ζ溥M行確認,并在您想要與設(shè)備通訊的時候,尋找它的地址。依據(jù)USB的規(guī)格,兩個數(shù)字都是16位十六進制數(shù)字,并應(yīng)該由設(shè)備制造商提供。在相應(yīng)欄內(nèi)輸入設(shè)備的供應(yīng)商ID、產(chǎn)品ID、制造商名稱和型號名稱。
USB Instrument Prefix(USB儀器前綴)只是一個描述符,您可以用它來識別本設(shè)備所用的相關(guān)文檔。在USB Instrument Prefix中輸入相應(yīng)信息,并在“output file directory”中選擇存放這些文檔的目錄,然后點擊Finish。INF文檔就被建好并保存在您指定的位置了。
(2)安裝INF文檔,并使用INF文檔的USB設(shè)備。在Windows XP操作系統(tǒng)中,DDW創(chuàng)建INF文檔時,INF文檔頂部的標(biāo)題中會包含安裝指導(dǎo)。因為INF文檔是ASCII文本文件,所以可以通過諸如記事本之類的任何文本編輯器進行閱讀。如果要了解有關(guān)安裝INF文檔的詳細信息,就在文本編輯器中打開您的INF文檔,然后遵照文檔頂部的指導(dǎo)行事。
(3)使用NI-VISA Interactive Control(NI-VISA互動控制工具)對設(shè)備進行測試。
VISA Interactive Control(VISAIC)是一個實用程序,可用來輕而易舉地與任何VISA資源進行通訊。做好使用VISA的配置之后,USB設(shè)備就會被列入USB分項之中。雙擊該設(shè)備,打開設(shè)備的VISA對話框。應(yīng)出現(xiàn)如圖2所示的窗口。
圖2 “VISA交互控制”打開VISA對話框
使用VISAIC打開VISA Session時,會自動選擇“Template(模板)”表格與“Property Node(Read)”(屬性節(jié)點(只讀))表格。選擇想要讀取的屬性并點擊Execute,以讀取此項屬性?!癈urrent Value”(當(dāng)前值)指示欄中即顯示“Attribute Name”(屬性名稱)中指定屬性的當(dāng)前值。上圖中,可以看到Resource Name(資源名稱)的屬性。
在NI-VISA與USB設(shè)備進行通訊后?,F(xiàn)在,在LabVIEW中,我們可以使用“VISA打開”、“VISA關(guān)閉”、“VISA讀取”和“VISA寫入”進行數(shù)據(jù)的傳輸了。
圖3 LabVIEW通信界面
設(shè)備連接成功以后,下一步可以用LabVIEW來設(shè)計這里的應(yīng)用程序。
Labview通信主界面如圖3所示。
在上述圖中,首先從VISA resource name中選擇一個端口號(這個端口與外部儀器連接到電腦上的端口是相一致的),接著對流控制,奇偶校驗位,數(shù)據(jù)的傳送速率,數(shù)據(jù)位,停止位等這些參數(shù)進行相關(guān)的設(shè)置。此時,LabVIEW與外部儀器的連接已經(jīng)完成,下面就要進行數(shù)據(jù)的發(fā)送了。在Lab-VIEW通信中,先在發(fā)送字符框中寫入一個字符,如果這個字符是外部儀器默認的字符,這時再點擊發(fā)送按鈕,外部儀器中的數(shù)據(jù)將傳送到LabVIEW中(如果這個字符與外部儀器默認的字符不符,外部儀器中的數(shù)據(jù)將不會傳送過來),再點擊接收按鈕,此時數(shù)據(jù)將在圖中的示波器上顯示出來。與此同時,讀取字節(jié)數(shù)框內(nèi)也顯示了讀取的總字節(jié)數(shù)。從而實現(xiàn)了LabVIEW與外部儀器之間的相互通信。如果想保存?zhèn)魉偷降臄?shù)據(jù),單擊保存按鈕就可以了。所有的功能實現(xiàn)完以后,再單擊退出按鈕便可以退出了。
當(dāng)單擊保存按鈕時,傳送到LabVIEW里的數(shù)據(jù)默認以文本文檔的形式保存到磁盤里,當(dāng)然也可以選擇別的格式保存,而保存的路徑則可以自主選擇。
軟件具體實現(xiàn)的步驟是:
(1)調(diào)用VISA Configure Serial Port完成串口參數(shù)的設(shè)置,包括串口資源分配、波特率、數(shù)據(jù)位、停止位、校驗位和流控等。
(2)使用VISA Write發(fā)送數(shù)據(jù),使用VISARead接收數(shù)據(jù).在接收數(shù)據(jù)之前需要使用VISAByt es at Serial Port查詢當(dāng)前串口接收緩沖區(qū)中的數(shù)據(jù)字節(jié)數(shù),如果VISA Read要讀取的字節(jié)數(shù)大于緩沖區(qū)中的數(shù)據(jù)字節(jié)數(shù),VISA Read操作將一直等待,直至Timeout或者緩沖區(qū)中的數(shù)據(jù)字節(jié)數(shù)達到要求的字節(jié)數(shù).當(dāng)然也可以分批讀取接收緩沖區(qū)的數(shù)據(jù)或者只從中讀取一定字節(jié)的數(shù)據(jù)。
(3)串口使用結(jié)束后,用VISA Close結(jié)束與V ISA resource name指定的串口之間的會話。
程序設(shè)計時,第一步實現(xiàn)LabVIEW與外部儀器間的相互通信。正確安裝NI-VISA驅(qū)動程序后,接著進行通信接口程序的完成。具體的程序框圖如圖4所示。
圖4 通信接口程序框圖
與外部儀器通信連接成功以后,下一步就是進行雙方的的發(fā)送和接收數(shù)據(jù)。首先通過LabVIEW向外部儀器發(fā)送一個字符,如果該字符與儀器中設(shè)置的字符相符合,則儀器便向LabVIEW發(fā)送數(shù)據(jù)過來。而發(fā)送過來的數(shù)據(jù)在LabVIEW前面板框圖中的示波器中顯示出來。
綜上所述,通過通信接口和數(shù)據(jù)的處理與顯示這兩個程序框圖從而實現(xiàn)了LabVIEW與外部儀器間的相互通信。
從最終測試得到的數(shù)據(jù)表明,文章設(shè)計串口通信的方案是有效,可行的。它成功實現(xiàn)了LabVIEW與外部儀器之間的相互通信。該方法簡單方便,對儀器發(fā)送到LabVIEW的數(shù)據(jù),可以進行進一步的測量,處理和檢測,操作完成以后再把處理過的數(shù)據(jù)再發(fā)送到外部儀器上。這種通信方式在儀器儀表與虛擬儀器之間的數(shù)據(jù)交換和檢測等方面,有較高的實用價值。
[1]楊樂平.LabVIEW程序設(shè)計與應(yīng)用[M].北京:電子工業(yè)出版社,2001.
[2]徐永和.USB外圍設(shè)備設(shè)計與應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2002.
[3]龍志強,趙海龍.虛擬儀器測試技術(shù)研究[J].儀表技術(shù),2000,(3).
[4]楊樂平,李海濤,肖相生.LabVIEW程序設(shè)計與應(yīng)用》[M].北京:電子工業(yè)出版社,2001.
[5]逯穎.基于LabVIEW的串行通信接口設(shè)計與實現(xiàn)[J].現(xiàn)代電子技術(shù),2006,29(17):123-124.
[6]賴永泉,王毅,曹銀強.基于DLL虛擬儀器系統(tǒng)開發(fā)技術(shù)[J].儀器儀表與檢測技術(shù),2004,29(4):62-65.
[7]李文軍,田瑞利,易利鵬.基于LabVIEW的數(shù)據(jù)采集與信號處理系統(tǒng)[J].現(xiàn)代電子技術(shù),2005,28(20):10-11,17.
[8]曾水生,謝云,易波.Labview實時數(shù)據(jù)采集系統(tǒng)的USB2.0接口實現(xiàn)[J].機床與液壓,2005,(5):89-91.