張幃幃
摘 要:隨著測試技術(shù)的發(fā)展,對相應測試軟件提出了更高的要求。針對傳統(tǒng)文本開發(fā)工具的編程復雜、直觀性差及不易操作等問題,本文通過融合LabVIEW與MATLAB編程技術(shù),采用MathScript節(jié)點技術(shù),以及研究基于動態(tài)鏈接庫的USB通信技術(shù),測試軟件實現(xiàn)了對測試設備的可靠控制和數(shù)據(jù)精確處理,并在多次試驗中成功得以應用。
關鍵詞:采集存儲;數(shù)據(jù)處理;混合編程;軟件測試
待測物理量通過傳感器采集,轉(zhuǎn)化為相應信息后在測試設備中存儲,試驗后再由軟件測試系統(tǒng)再現(xiàn)和處理測試數(shù)據(jù)[1]。測試軟件通常采用文本編程工具開發(fā),存在編程繁雜、不直觀、難維護以及數(shù)據(jù)實時處理差等不足,難以滿足未來的測試需求。隨著測控領域技術(shù)的發(fā)展,基于LabVIEW的虛擬儀器技術(shù)越來越受到青睞[2]。用戶可以利用虛擬儀器技術(shù)根據(jù)項目需求設計專用化的測試系統(tǒng),只需通過修改軟件即可改變系統(tǒng)功能,而無需對硬件設備重新設計[3]。
1 系統(tǒng)總體設計
虛擬儀器是測試設備、工程通信、計算機技術(shù)以及測試軟件的有機結(jié)合,主要包括硬件和軟件兩部分,總體結(jié)構(gòu)組成如圖1所示。虛擬儀器主要完成三大功能:數(shù)據(jù)采集與存儲、控制與處理、顯示與輸出。
硬件平臺主要由計算機和I/O接口設備組成,其中計算機提供數(shù)據(jù)實時處理的高效性能。硬件平臺主要完成待測信號的采集,數(shù)據(jù)存儲等工作。修改硬件平臺往往會耗費巨大的人力和物力,但可根據(jù)需求修改軟件,構(gòu)建出特定的測試儀器,即可實現(xiàn)儀器的控制和對數(shù)據(jù)的處理。軟件系統(tǒng)主要分為用戶界面、應用程序和儀器驅(qū)動程序,LabVIEW是用圖標源代碼(G代碼)取代文本行編寫應用程序的軟件開發(fā)平臺。用戶界面層擁有儀器面板元件,根據(jù)需求設計圖形控制界面,通過點擊控件執(zhí)行相應功能。應用程序?qū)影瑘D形化模塊,數(shù)據(jù)連線,函數(shù)庫和工具包等,軟件憑借構(gòu)建與連接的圖標進行定義、編寫程序的邏輯功能,實現(xiàn)對輸入到計算機的數(shù)據(jù)分析和處理。驅(qū)動程序?qū)又苯涌刂聘鞣N硬件接口,軟件通過驅(qū)動程序完成與儀器設備的數(shù)據(jù)交互,進行初始化,設定參數(shù)和工作方式。
2 基于動態(tài)鏈接庫技術(shù)(DLL)的USB通信實現(xiàn)
USB通信作為目前設備常用通信方式之一,具有傳輸速度快、操作方便和使用靈活等優(yōu)點。為節(jié)約成本和縮短研發(fā)周期,本文測試設備USB芯片選用了FTDI公司FT245RL。LabVIEW僅支持NI公司生產(chǎn)的接口板,而第三方研制的USB通信接口卻難以被識別。因此,必須安裝FTD2XX驅(qū)動程序,以確保USB FT245芯片正常工作,本文采用LabVIEW提供的外部接口DLL(動態(tài)鏈接庫),通過調(diào)用驅(qū)動程序內(nèi)的接口函數(shù)實現(xiàn)USB通信。
首先利用外部編譯器VC++將DLL模塊編制生成FTD2XX.dll文件,該文件包含了許多可對芯片進行操作的接口函數(shù),主要提供:FT_ResetDevice復位函數(shù)、FT_Purge清除函數(shù)、FT_SetLatencyTimer延時函數(shù)、FT_SetTimeouts超時函數(shù)、FT_Writer寫函數(shù)、FT_Read讀函數(shù)、FT_Open打開函數(shù)、FT_Close關閉函數(shù)等。由于在程序運行時DLL庫中函數(shù)代碼才會動態(tài)載入內(nèi)存中,在LabVIEW中調(diào)用動態(tài)鏈接庫中函數(shù)并非在程序中直接嵌入DLL文件,而是將FTD2XX.dll放在應用程序當前目錄下,利用該文件函數(shù)進行訪問。LabVIEW憑借調(diào)用函數(shù)選板中的庫與可執(zhí)行程序目錄下的調(diào)庫函數(shù)節(jié)點進行和FTD2XX.dll文件之間的通信,在其配置對話框中完成相關配置,如指定文件地址、選擇函數(shù)名、確定調(diào)用范圍和設置線程等操作,實現(xiàn)綁定接口函數(shù)。打開USB接口設備后,先執(zhí)行復位操作,消除USB芯片內(nèi)的緩沖區(qū)數(shù)據(jù),在設定4秒的超時時間內(nèi)判斷是否接收連接請求。若請求成功可進行數(shù)據(jù)交互,若超時則USB打開失敗,說明應用程序與設備通信中斷,圖2為完成的USB連接通信程序框圖。
3 基于LabVIEW與MATLAB融合技術(shù)的數(shù)據(jù)處理
針對手動處理存儲數(shù)據(jù)時存在不精確、繁瑣等問題,LabVIEW軟件平臺提供了自動處理數(shù)據(jù)的解決方案,主要有以下處理數(shù)據(jù)方式:(1)拆分存儲的數(shù)據(jù)文件,數(shù)學運算處理,還原成波形,進行顯示(2)運用集成的VI模塊直接處理數(shù)據(jù),利用多元化的控件完成數(shù)字濾波器、頻譜分析、虛擬示波器等功能;(3)運用混合編程技術(shù),通過LabVIEW調(diào)用其他語言,發(fā)揮其數(shù)據(jù)處理上的優(yōu)勢。本文通過研究LabVIEW與MATLAB融合技術(shù),在LabVIEW程序嵌入MATLAB腳本服務器的功能執(zhí)行命令,并與之交換數(shù)據(jù),實現(xiàn)數(shù)據(jù)高效運算[4],提高測試軟件的數(shù)據(jù)處理能力。
在LabVIEW中提供了面向數(shù)學的文本式編程語言MathScript,該語言十分適用于編寫函數(shù)和腳本,擁有強大的數(shù)據(jù)處理和圖像顯示功能,隨著LabVIEW的更新,MathScript的功能也隨之不斷強大??赏ㄟ^交互式窗口和程序框圖中調(diào)用節(jié)點,這兩種方式使用MathScript。MathScript節(jié)點使用操作簡單,且可脫離于MATLAB環(huán)境單獨執(zhí)行。利用MathScript節(jié)點直接編輯程序代碼,或者在MATLAB環(huán)境下成功調(diào)試M文件后,在MathScript節(jié)點中進行復制粘貼,通過添加輸入與輸出變量,指定數(shù)據(jù)類型,保證匹配交互時的數(shù)據(jù)類型。MathScript節(jié)點自帶錯誤檢查功能,若出錯則會予以提示,保證輸入代碼符合MathScript節(jié)點語法,因此根據(jù)不同設計需求,在腳本框內(nèi)修改和更新程序,對各個輸入輸出參數(shù)進行即時設置和調(diào)試,使程序運行結(jié)果直觀簡捷。在對數(shù)據(jù)進行處理時,傳統(tǒng)的MATLAB環(huán)境要對采集存儲的數(shù)據(jù),需要到后臺程序中進行寫入和修改,存在流程繁雜,操作不便等問題。本文采用MathScript節(jié)點編程方式,將存儲的測試結(jié)果寫輸入控件,在后臺程序中將這些參數(shù)引入MathScript內(nèi),完成LabVIEW與MATLAB交互,實現(xiàn)數(shù)據(jù)高效處理,同時還具備多樣化功能,本文就利用事先在MATLAB中構(gòu)造的相適應濾波器對測試數(shù)據(jù)進行處理實現(xiàn)濾波消噪的功能。
4 測試結(jié)果
在某次試驗中,測試裝置采集到了瞬態(tài)壓力信號,利用本文設計的測試軟件,通過usb接口成功回讀數(shù)據(jù),并且進行顯示波形。利用設計的濾波功能對數(shù)據(jù)進行了消噪處理,同時給出濾波前后的數(shù)據(jù)對比,如圖3所示。多次試驗表明:測試軟件與測試裝置通信性能穩(wěn)定,實現(xiàn)數(shù)據(jù)可靠交互與處理。
5 結(jié)語
本文通過研究LabVIEW與MATLAB融合編程,以及DLL技術(shù),應用MathScript節(jié)點技術(shù),開發(fā)了具有友好的圖形界面、高效處理數(shù)據(jù)、功能豐富等優(yōu)點的測試軟件,實現(xiàn)與測試裝置USB通信以及數(shù)據(jù)的高效處理。本文研究的基于LabVIEW技術(shù)的測試軟件在軟硬件結(jié)合和重用、數(shù)據(jù)交互與處理等領域具有重要意義。
參考文獻
[1] John Q,Ehrgott,Jr. et al. The influence of soil parameters on the impulse and airblast overpressure loading above surface-laid and shallow-buried explosives[J].Shock and Vibration, 2011, 18(6):857-874.
[2] 孟亮,郭秀媛,崔新強等. 基LabVIEW的熱電偶溫控系統(tǒng)[J].自動化儀表.2014,35(1):33-35.
[3] 韓琪. 基于虛擬儀器的數(shù)據(jù)采集與分析系統(tǒng)研究與設計[D].北京:北京交通大學,2011.
[4] 肖俊旺,夏靜. 基于LabVIEW的火箭試驗數(shù)據(jù)處理方法 [J].電子設計工程.2011, 19(4):38-40.