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