系統(tǒng)以工控機(jī)為核心,輔以一定的外圍簡單電路,通過GPIB、USB以及串行通信口,把現(xiàn)有的測量儀器連接起來,并通過編程人員開發(fā)針對測量過程的控制軟件。測量者只需要把儀器與設(shè)備正確地連接起來,向汁算機(jī)發(fā)出簡單的操作指令就可以實(shí)現(xiàn)測量、數(shù)據(jù)分析、處理和記錄的全過程。
1、作為COM組件的測量儀器
在軟件開發(fā)中,可以先將儀器設(shè)計(jì)成COM組件。儀器的功能在C()M組件設(shè)汁中要全部實(shí)現(xiàn)并給出相應(yīng)的接口函數(shù),在虛擬儀器軟件中通過調(diào)用這些組件來實(shí)現(xiàn)對具體儀器的操作。這樣,編程人員在開發(fā)虛擬儀器控制軟件時(shí)可以把具體的儀器當(dāng)成組件來對待,通過組件的各個(gè)函數(shù)來完成實(shí)際儀器的各個(gè)指令操作。這樣做不但容易對硬件可能出現(xiàn)的問題進(jìn)行排錯(cuò),而且一旦硬件更新,開發(fā)人員只需要作針對C0M的升級維護(hù)即可。
以某型頻譜分析儀為例,設(shè)汁測量某信號在控壓變化范圍內(nèi)的雜散值的過程:
1)首先調(diào)整頻譜儀到對數(shù)坐標(biāo)系,并根據(jù)該信號的變化范圍設(shè)定頻譜儀的中心頻率及合適的帶寬以保證頻譜儀在控壓變化范圍內(nèi)可以捕獲信號。這樣實(shí)現(xiàn)了測量雜散初始化的子過程;
2)在不同的控壓點(diǎn)讀取帶寬內(nèi)信號主瓣外的所有信號,以最大的旁瓣值作為雜散值。為了避免信號的白噪聲影響雜散值的測量。采用同一控壓點(diǎn)測量若干組信號用軟件求平均的思路。平滑白噪聲引起的信號起伏,取平滑后的雜散值作為測量結(jié)果,這樣實(shí)現(xiàn)了測量當(dāng)前信號雜散值的子過程。
圖1雜散值測量流程圖
該型頻譜儀在連續(xù)測量若干組信號求平均的過程中,相鄰兩組數(shù)據(jù)測量之間有一個(gè)工控機(jī)與頻譜儀通信的時(shí)間,這就削弱了信號的時(shí)間相關(guān)性,不利于平滑白噪聲。為了提高測量的準(zhǔn)確性,引入了可以作均值測量的頻譜儀,工控機(jī)只需讀取均值測量后主瓣外的所有信號最大值作為當(dāng)前信號雜散值即可。按上述思路重新設(shè)計(jì)頻譜儀COM組件,測量雜散值的過程還是按照上述的測量流程圖,虛擬儀器軟件調(diào)用更新后的組件,程序員甚至可以不用改虛擬儀器軟件中的一句源代碼。
對同一信號改進(jìn)前后軟件測出的雜散值分別為-76.3dB和-78.2dB,而用標(biāo)定設(shè)備測出的值為-78.51dB,改進(jìn)后軟件的測量值更加準(zhǔn)確。
2、采用Access數(shù)據(jù)庫作實(shí)時(shí)測量存檔
在測量過程中,有時(shí)設(shè)備會因?yàn)橥蝗粩嚯?、?jì)算機(jī)*發(fā)作等一系列不可預(yù)期的故障導(dǎo)致測量過程意外中斷,但此時(shí)用戶測量可能還沒有結(jié)束,也沒有大提交測量報(bào)表,而在系統(tǒng)內(nèi)存中的數(shù)據(jù)將會全部丟失,這對用戶來說是非常不利的,所以必須對用戶的所有測量結(jié)果做一個(gè)實(shí)時(shí)的數(shù)據(jù)庫備份。
對用戶測量全過程進(jìn)行監(jiān)控的數(shù)據(jù)庫采用全部內(nèi)存變量存儲的方式,包括用戶的設(shè)定量、用戶的測量結(jié)果、用戶的操作步驟以及測量結(jié)果的自動*判,都在數(shù)據(jù)庫中建立相應(yīng)的字段。在用戶進(jìn)行虛擬儀器操作時(shí)。每新測量一個(gè)產(chǎn)品都會以用戶填入的產(chǎn)品編號及測量時(shí)間新建一條測量記錄,操作過程中實(shí)時(shí)地把用戶的操作及結(jié)果同步提交到數(shù)據(jù)庫中,只有當(dāng)用戶全部測量完畢并保存報(bào)表之后,該條記錄才被刪除,否則記錄予以保留,留下來的某條記錄即為某個(gè)非正常退出系統(tǒng)的實(shí)時(shí)測量存檔,這就是系統(tǒng)實(shí)時(shí)測量存檔的過程。當(dāng)用戶下一次打開虛擬儀器軟件時(shí),軟件會自動加載該數(shù)據(jù)庫,如果數(shù)據(jù)庫存在數(shù)據(jù)記錄,則在加載操作界面之后會提示用戶有以前未完成的任務(wù),讓用戶選擇是繼續(xù)未完成的任務(wù)還是刪除某次不全的測試記錄,如果選擇繼續(xù)則會給出未完成任務(wù)列表,讓用戶選擇開始某一次未完成的任務(wù),用戶選擇后會自動把數(shù)據(jù)庫里對應(yīng)的值恢復(fù)到虛擬儀器操作界面,恢復(fù)某一次意外狀態(tài)前的結(jié)果,這樣通過系統(tǒng)的問詢及用戶的選擇,實(shí)現(xiàn)了加載測量存檔的過程。當(dāng)然,如果用戶也可以選擇刪除某些不全但不想保留的測試記錄,對存檔數(shù)據(jù)庫進(jìn)行清理,同樣也可以選擇全新測量,開始新的操作。
虛擬儀器軟件的工作流程如圖2所示。
圖2以數(shù)據(jù)庫為核心的軟件工作流程圖
3、系統(tǒng)性能
采用本文的方案,使用VB.NET程序設(shè)計(jì)語言開發(fā)的虛擬儀器軟件成功的應(yīng)用在某產(chǎn)品的指標(biāo)測量上。整套系統(tǒng)研發(fā)周期短、維護(hù)簡單方便。而“實(shí)時(shí)測量存檔”在軟件內(nèi)部異常保護(hù)的基礎(chǔ)上又增加了一個(gè)抵御外部突發(fā)事件的能力,有效地保護(hù)了測量數(shù)據(jù)。每一個(gè)產(chǎn)品測量所需時(shí)間僅為原先人工用儀器測量的1/3~1/4(不包括后期的數(shù)據(jù)處理時(shí)間),極大地提高了生產(chǎn)效率。而整個(gè)系統(tǒng)的開發(fā)成本非常低,所有的測量儀器都是利用現(xiàn)有的設(shè)備,硬件的投入只是一臺工控機(jī)和GPIB轉(zhuǎn)接卡及一些電纜。