隨著科學(xué)技術(shù)的發(fā)展,特別是Pc機(jī)的普及,對(duì)測(cè)控系統(tǒng)的設(shè)計(jì)要求越來(lái)越高。在國(guó)際上應(yīng)用較廣泛的一種組建測(cè)控系統(tǒng)的方法是:采用“虛擬儀器”來(lái)取代傳統(tǒng)儀器.即利用數(shù)據(jù)采集卡、信號(hào)調(diào)理卡或其他計(jì)算機(jī)外圍硬件進(jìn)行信號(hào)的采集與檢測(cè),然后由計(jì)算機(jī)來(lái)實(shí)現(xiàn)對(duì)信號(hào)的處理、計(jì)算和分析以及測(cè)試結(jié)果的顯示。但是,由于虛擬儀器設(shè)計(jì)語(yǔ)言LabvIEw的專用性,它只支持NI公司的產(chǎn)品,非NI公司的產(chǎn)品不可以直接使用LabVIEw進(jìn)行開發(fā)。另外用VC,VB等文本編程語(yǔ)言開發(fā)測(cè)控系統(tǒng)用戶界面缺乏靈活性,這兩個(gè)主要方面導(dǎo)致虛擬儀器的應(yīng)用受到很大的限制。而且成本昂貴。本文研究目的就是尋求一種通用而且簡(jiǎn)單的方法使用LabVIEw開發(fā)環(huán)境.把非NI公司的產(chǎn)品(即這里所指的普通數(shù)據(jù)采集卡)與Labview的完美結(jié)合起來(lái)。實(shí)現(xiàn)基于虛擬儀器的測(cè)控系統(tǒng)的設(shè)計(jì)。
1、驅(qū)動(dòng)程序的設(shè)計(jì)
本文研究采用北京優(yōu)采公司生產(chǎn)的uA20lD數(shù)據(jù)采集卡作為底層硬件,與Pc機(jī)組成PC—DAQ方式的虛擬儀器。按照驅(qū)動(dòng)程序模型來(lái)分,可分為vxD(Vinual Device D而ver)式驅(qū)動(dòng)程序,KMD(Kemel Mode Driver)式驅(qū)動(dòng)程序以及wDM(Windows Driver Model)驅(qū)動(dòng)程序,本文設(shè)計(jì)的平臺(tái)是windowsxP,而且是在PCI總線的基礎(chǔ)上進(jìn)行設(shè)計(jì).根據(jù)三種模型的特點(diǎn)采用wDM驅(qū)動(dòng)程序是最理想的選擇。windows下驅(qū)動(dòng)程序開發(fā)語(yǔ)言通常采用兩種方式,匯編語(yǔ)言和C,C++語(yǔ)言,并且結(jié)合第三方公司提供的驅(qū)動(dòng)程序開發(fā)工具。目前使用最廣泛的是WinDriver和Driverstudio。本文設(shè)計(jì)中采用了Driverstudio中的DriverWorks。
首先利用DriverWorks的驅(qū)動(dòng)程序向?qū)?,生成?qū)動(dòng)程序的基本框架,在生成框架過(guò)程中添加與設(shè)備緊密相關(guān)的信息??蚣苌傻脑敿?xì)步驟:打開Vc,出現(xiàn)DriverStudio在vC中嵌入的工具欄:?jiǎn)螕舭粹oLaunch DriverWorks Driver wizard打開向?qū)У牡谝豁?yè),在第一頁(yè)中填入T程名.以及在Pc機(jī)中的保存位置;在第二頁(yè)中,選擇wDM Driver;在第三頁(yè)中,選擇wDM功能驅(qū)動(dòng)程序;在第四頁(yè)中,在select Hardware Bus中選擇PcI,出現(xiàn)PCI總線的各種設(shè)置。設(shè)置PcI vander ID為O“348等等;在第五頁(yè)輸人驅(qū)動(dòng)程序類的類名和文件名。一般采用默認(rèn)設(shè)置;在第六頁(yè)中,主要是選擇驅(qū)動(dòng)程序處理的請(qǐng)求類型;在第七頁(yè)中,選擇IRP串行處理的類型和串行處理的函數(shù);在第八頁(yè)中,添加需要存儲(chǔ)在系統(tǒng)注冊(cè)表中的內(nèi)容。當(dāng)驅(qū)動(dòng)程序開始運(yùn)行,就將信息從注冊(cè)表中讀出,當(dāng)驅(qū)動(dòng)程序卸載后,就存入注冊(cè)表;在第九頁(yè)中,設(shè)置PcI設(shè)備類的信息;在第十頁(yè)中,要添加自定義的10crI’L.驅(qū)動(dòng)程序向?qū)?huì)自動(dòng)生成與之相對(duì)應(yīng)的派遣例程;在第十一頁(yè),I)一verWorks可以為驅(qū)動(dòng)程序生成簡(jiǎn)單的應(yīng)用程序,用于調(diào)試驅(qū)動(dòng)程序;最后點(diǎn)擊Finish,一個(gè)驅(qū)動(dòng)程序的框架就完全產(chǎn)生.這也是一個(gè)完整的驅(qū)動(dòng)程序。但是無(wú)法實(shí)現(xiàn)任何功能,接下來(lái)要作的T作就是完善這個(gè)框架,也就編寫功能函數(shù),主要就是完成不同IRP的處理工作。其中包括兩個(gè)類,uA20lD和uA201DDevice,其中最主要的函數(shù)包括三個(gè),分別是:OnStartDevice、Devicecontrol和startIo。
驅(qū)動(dòng)程序的執(zhí)行過(guò)程包括兩個(gè)方面。一是驅(qū)動(dòng)程序的硬件資源的分配;二是驅(qū)動(dòng)程序控制硬件功能的實(shí)現(xiàn)。具體過(guò)程如圖1、圖2所示:
圖1 驅(qū)動(dòng)程序的資源的獲取與分配
圖2 驅(qū)動(dòng)程序控制硬件
2、動(dòng)態(tài)鏈接庫(kù)的設(shè)計(jì)
動(dòng)態(tài)鏈接庫(kù)(Dynamic Link Library,簡(jiǎn)稱DLL)是一個(gè)可執(zhí)行的windows程序的一種函數(shù)形式。本文設(shè)計(jì)的用戶界面程序是采用圖形化語(yǔ)言LabVIEW設(shè)計(jì)的,因此LabVIEW專門提供了兩個(gè)的節(jié)點(diǎn)函數(shù)CIN(code Interface Mode)和CLFN(call library Function Mode)來(lái)處理與C語(yǔ)言的接口問(wèn)題,而對(duì)于不熟悉LabVIEw的人員來(lái)說(shuō)很難開發(fā)cIN的程序。而且經(jīng)過(guò)大量的實(shí)驗(yàn)證明采用CLFN。即編寫動(dòng)態(tài)鏈接庫(kù)是最理想的選擇。
在本文研究中,根據(jù)功能的不同把動(dòng)態(tài)鏈接庫(kù)的設(shè)計(jì)劃分為打開和關(guān)閉設(shè)備、數(shù)據(jù)采集、模擬輸出、數(shù)字I/0和定時(shí),計(jì)數(shù)四大模塊。首先,用戶界面調(diào)用動(dòng)態(tài)鏈接庫(kù)*能函數(shù),傳遞控制參數(shù)和數(shù)據(jù)。然后,功能函數(shù)根據(jù)參數(shù)不同,在調(diào)用具體的函數(shù),具體函數(shù)把傳遞來(lái)的參數(shù)經(jīng)過(guò)處理,調(diào)用DeviceIoControl向驅(qū)動(dòng)程序發(fā)送參數(shù).并從驅(qū)動(dòng)程序中獲得用戶界面需要的數(shù)據(jù),數(shù)據(jù)經(jīng)過(guò)處理后傳遞給功能函數(shù)。最后,功能函數(shù)把數(shù)據(jù)返回用戶界面。
3、用戶界面設(shè)計(jì)
本文設(shè)計(jì)是在Pc機(jī)上采用虛擬儀器技術(shù)設(shè)計(jì)完成的,與設(shè)計(jì)傳統(tǒng)儀器的操作控制面板完全不同。LabvIEw之所以會(huì)受到虛擬儀器設(shè)計(jì)者的青睞.很重要的原因就是因?yàn)樗梢栽诤芏痰臅r(shí)間里開發(fā)出很完美的控制與顯示面板,這些仿真的控件是其他編程語(yǔ)言所無(wú)法比擬的??刂平缑娴脑O(shè)計(jì)包括兩個(gè)方面的設(shè)計(jì),一一是控制面板的設(shè)計(jì),另一個(gè)是后臺(tái)流程圖的設(shè)計(jì)。采集數(shù)據(jù)的處理與顯示、模擬量的輸出、數(shù)字量的輸出與輸人以及定時(shí)/技術(shù)功能等工作都是通過(guò)編寫軟件來(lái)實(shí)現(xiàn)。這正體現(xiàn)了虛擬儀器的“軟件就是儀器”的設(shè)計(jì)思想。對(duì)于普通用戶來(lái)說(shuō),采用圖形化編成語(yǔ)言LabVIEW應(yīng)該是設(shè)計(jì)控制界面的最佳選擇。
4、遠(yuǎn)程測(cè)控的實(shí)現(xiàn)
要實(shí)現(xiàn)遠(yuǎn)程測(cè)控功能主要是要實(shí)現(xiàn)測(cè)控系統(tǒng)的網(wǎng)絡(luò)功能,利用LabVIEW提供的網(wǎng)絡(luò)通信節(jié)點(diǎn),例如TCP/IP,Remote Data Acquisition(RDA),Internet Toolkit,VI Server,F(xiàn)ront Panel Web
Publishing,Datasocket,Remote Panel等,加上一些高級(jí)編程技術(shù)和技巧,都可以實(shí)現(xiàn)網(wǎng)絡(luò)測(cè)控。大多數(shù)用戶都希望通過(guò)簡(jiǎn)單快捷的方式來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)測(cè)控功能,利用LabVlEw的遠(yuǎn)程面板
(Remote Panel)技術(shù),不需要任何編程,只需要在LabVIEw中設(shè)置幾個(gè)參數(shù).就可以輕松解決這個(gè)問(wèn)題。
Remote Panel技術(shù),允許用戶直接在本地(Client端)計(jì)算機(jī)上打開并操作位于遠(yuǎn)程(web server)計(jì)算機(jī)上的VI的前面板。IJabvIEw集成了Remote Panel技術(shù),用戶可以用極為簡(jiǎn)單的方式直接在本地(client端)計(jì)算機(jī)上打開并操作位于遠(yuǎn)程(web Server端)計(jì)算機(jī)上的vI的前面板。甚至可以將LabVIEw的前面板窗口嵌入到一個(gè)網(wǎng)頁(yè)中并在網(wǎng)頁(yè)中直接操作它。在LabvIEw中使用Remote Panel只需要兩個(gè)步驟:
第一步,在hbvIEw web server端的計(jì)算機(jī)上開啟LabVIEW Web Server服務(wù)。
第二步,在client端計(jì)算機(jī)上連接并運(yùn)行Remote Panel。
完成web server端相應(yīng)的配置后,就可以在client端的LabvIEw環(huán)境中運(yùn)行一個(gè)Remote Panel了。Remote Panel還可以通過(guò)瀏覽器控制遠(yuǎn)端vI的前面板,只要在client端安裝LabVIEW Run-Time Engine即可實(shí)現(xiàn)這個(gè)功能。
5、結(jié)束語(yǔ)
本文的創(chuàng)新之處是把非NI公司的數(shù)據(jù)采集卡與LabVlEW完美結(jié)合起來(lái),實(shí)現(xiàn)基于虛擬儀器的測(cè)控系統(tǒng)的設(shè)計(jì)。設(shè)計(jì)思想是低一層的軟件為高一層的軟件提供接口,供高一層的軟件使用,也就是驅(qū)動(dòng)程序給動(dòng)態(tài)鏈接庫(kù)提供接口,動(dòng)態(tài)鏈接庫(kù)給用戶界面提供接口,實(shí)現(xiàn)三者的完美結(jié)合。此外,利用LabVIEW強(qiáng)大的網(wǎng)絡(luò)編程功能,實(shí)現(xiàn)了同一局域網(wǎng)內(nèi)基于Remote Panel的web環(huán)境的網(wǎng)絡(luò)測(cè)控。因此此系統(tǒng)在測(cè)試領(lǐng)域中將會(huì)有廣闊的應(yīng)用前景。
責(zé)任編輯:gt
-
LabVIEW
+關(guān)注
關(guān)注
2002文章
3670瀏覽量
335795 -
虛擬儀器
+關(guān)注
關(guān)注
23文章
777瀏覽量
88029 -
數(shù)據(jù)采集
+關(guān)注
關(guān)注
40文章
7163瀏覽量
116463
發(fā)布評(píng)論請(qǐng)先 登錄
基于LabVIEW的無(wú)線自動(dòng)測(cè)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
基于LabVIEW的磨損實(shí)驗(yàn)測(cè)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
基于LabVIEW的筒蓋綜合測(cè)控系統(tǒng)設(shè)計(jì)
Vb與LabVIEW混合編程的實(shí)現(xiàn)
基于LabVIEW曲軸疲勞試驗(yàn)機(jī)測(cè)控系統(tǒng)開發(fā)
基于LabVIEW的溫度測(cè)控系統(tǒng)設(shè)計(jì)
基于LabVIEW的無(wú)線溫度測(cè)控系統(tǒng)設(shè)計(jì)方案

基于LabVIEW的虛擬示波器及遠(yuǎn)程測(cè)控

基于LabVIEW的無(wú)線自動(dòng)測(cè)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

評(píng)論