網(wǎng)絡(luò)化虛擬測(cè)控系統(tǒng)的設(shè)計(jì)
1.3 網(wǎng)絡(luò)化虛擬謝控系統(tǒng)軟件設(shè)計(jì)
軟件系統(tǒng)是網(wǎng)絡(luò)化虛擬測(cè)控系統(tǒng)的核心,系統(tǒng)軟件主要由虛擬儀器軟件、PCI接口卡驅(qū)動(dòng)程序以及SOPC軟件組成。虛擬儀器軟件利用Lab Windows/CVI自帶的強(qiáng)大測(cè)控工具以及豐富的功能面板和庫函數(shù),采用事件驅(qū)動(dòng)、交互式與回調(diào)函數(shù)編程技術(shù),設(shè)計(jì)開發(fā)了信號(hào)采集與轉(zhuǎn)換、數(shù)字信號(hào)處理與分析、數(shù)據(jù)存儲(chǔ)與顯示、外部設(shè)備配置等模塊,使用到的技術(shù)主要有:
1)Matlab與Labview混合編程Matla5語言已經(jīng)成為科研人員有力的仿真分析工具,幾乎滲透到各個(gè)學(xué)科。雖然Matlab擁有很強(qiáng)的數(shù)據(jù)分析處理以及復(fù)雜數(shù)值計(jì)算能力,但是其在界面開發(fā)、硬件連接控制及網(wǎng)絡(luò)通信等方面都不如Labview。將Matlab和Labview結(jié)合是提高測(cè)控儀器精度、可靠性、擴(kuò)展性以及開發(fā)效率的有效途徑。
Matlab與Labview混合編程方法有兩種:①直接調(diào)用Labview內(nèi)建的600多條Matlab函數(shù);②通過Matlab(Ver6.5)ActiveX接口調(diào)用運(yùn)行Matlab函數(shù)、與Matlab數(shù)據(jù)交換以及控制Matlab窗口等命令。其過程為;a.引用自動(dòng)化對(duì)象:在Labview的Controls>>ActiveX>>Automation Refnum模板中選擇自動(dòng)化引用(Automation Refnum)控制量,將其放置在前面板上,從對(duì)象列表中選擇Matlab應(yīng)用庫。這樣Matlab的引用就添加到程序中。b.訪問Matlab自動(dòng)化服務(wù)器:Labview在其Function>L>Communication>>ActiveX模板中提供了一組與AetiveX操作相關(guān)的VI,其中Automation Open.vi打開引用,啟動(dòng)Matlab自動(dòng)化服務(wù)器,并將引用傳遞給其他節(jié)點(diǎn),如屬性節(jié)點(diǎn)(Property Node)、調(diào)用方法節(jié)點(diǎn)(In voke Node)。③使用Matlab Script節(jié)點(diǎn)。Labview使用ActiveX技術(shù)執(zhí)行MatlabScript節(jié)點(diǎn),啟動(dòng)Matlab進(jìn)程。這樣可以在Labview應(yīng)用程序中使用執(zhí)行Matlab命令、使用各種工具箱。圖6為L(zhǎng)abview調(diào)用Matlab語言中6階巴特沃斯(Butterworth)濾波器對(duì)正弦函數(shù)的濾波實(shí)驗(yàn)結(jié)果。本文引用地址:http://m.ptau.cn/article/186898.htm
2)基于LabSQL的數(shù)據(jù)庫訪問 虛擬儀器應(yīng)用程序需要對(duì)采集數(shù)據(jù)以及數(shù)據(jù)分析結(jié)果進(jìn)行存儲(chǔ)和訪問,Labview提供了類似SQL的數(shù)據(jù)庫訪問方法。用戶首先在ODBC中指定DSN(數(shù)據(jù)源名)和ODBC驅(qū)動(dòng)程序,由LabSQL ConnectionVIs通過ODBC建立LabSQL與數(shù)據(jù)庫連接。然后利用LabSQL Command VIs完成ADO操作以及Recordset VIs對(duì)數(shù)據(jù)庫記錄操作,實(shí)現(xiàn)應(yīng)用程序與數(shù)據(jù)庫之間的數(shù)據(jù)交互傳遞。
3)基于DataSocket建立客戶機(jī)/服務(wù)器測(cè)控系統(tǒng) 對(duì)于網(wǎng)絡(luò)化測(cè)控系統(tǒng),由于把各節(jié)點(diǎn)數(shù)據(jù)匯總到處理主機(jī),設(shè)計(jì)上采用DataSocket技術(shù)建立客服務(wù)器/客戶端(C/S)通信模式。主機(jī)工作于服務(wù)器模式,負(fù)責(zé)相應(yīng)客戶端的請(qǐng)求以及采集、存儲(chǔ)和處理數(shù)據(jù),客戶端數(shù)據(jù)點(diǎn)計(jì)算機(jī)工作于Client模式,實(shí)現(xiàn)數(shù)據(jù)傳送。利用DataSocket發(fā)布數(shù)據(jù)需要3個(gè)要素:服務(wù)器(DataSocket Server),負(fù)責(zé)把數(shù)據(jù)寫到服務(wù)器的發(fā)布器(Publisher),客戶機(jī)從服務(wù)器讀取數(shù)據(jù)的訂閱器(Subscriber)。其工作過程為:①客戶端和服務(wù)器端分別運(yùn)行DataSocketServer;②建立客戶端與服務(wù)器端DataSocket的連接;③客戶端接收和顯示測(cè)量數(shù)據(jù):客戶只需通過DataSocket Server發(fā)送請(qǐng)求即可實(shí)現(xiàn)數(shù)據(jù)的接收,這樣客戶機(jī)通過控制服務(wù)器端軟件實(shí)現(xiàn)遠(yuǎn)程測(cè)控。
4)WDM驅(qū)動(dòng)程序設(shè)計(jì) 由于該系統(tǒng)基于PCI接口卡,因此需要開發(fā)windows環(huán)境下的PCI接口卡驅(qū)動(dòng)程序。綜合考慮驅(qū)動(dòng)程序的效率和靈活性,系統(tǒng)選用windows DDK與VC++語言開發(fā)PCI接口卡驅(qū)動(dòng)程序。驅(qū)動(dòng)程序主要包括初始化模塊、內(nèi)存讀寫模塊、I/O操作模塊、中斷模塊以及WDM與應(yīng)用程序的通信模塊,詳細(xì)設(shè)計(jì)可以參考文獻(xiàn),在此不再詳述。
2 結(jié)束語
本文設(shè)計(jì)的網(wǎng)絡(luò)化虛擬測(cè)控系統(tǒng)具有硬件模塊化、網(wǎng)絡(luò)化、開放性以及操作方便等特點(diǎn),適應(yīng)了當(dāng)前測(cè)控儀器向網(wǎng)絡(luò)化和虛擬化方向發(fā)展的趨勢(shì),因而具有較強(qiáng)的應(yīng)用性和擴(kuò)充性。
文中介紹了系統(tǒng)的設(shè)計(jì)與相關(guān)模塊的實(shí)現(xiàn),并簡(jiǎn)要說明了關(guān)鍵軟件模塊的設(shè)計(jì)方法。需要指出的是,本文設(shè)計(jì)的網(wǎng)絡(luò)化虛擬測(cè)控系統(tǒng)具有教學(xué)和科研雙重價(jià)值,對(duì)本系統(tǒng)增加新的硬件模塊或者修改虛擬儀器應(yīng)用軟件可以完成不同的測(cè)試任務(wù)和控制任務(wù)。今后還需要在硬件模塊標(biāo)準(zhǔn)化,硬件模塊的故障監(jiān)測(cè)與故障修復(fù),物聯(lián)網(wǎng)在虛擬測(cè)控儀器上應(yīng)用,分布式網(wǎng)絡(luò)化測(cè)控系統(tǒng)的拓?fù)浣Y(jié)構(gòu)等方面進(jìn)行研究。
評(píng)論