1 引言
隨著虛擬儀器技術的廣泛應用,基于LabVIEW開發各種現代測試系統時,如何管理和分析測試數據是設計者所關注的熱點。一般在實際測量過程中,由于采集得到的數據量非常巨大,不可能將所有的數據存儲并進行處理,除此之外,還要記錄系統的各項測試參數。這就不僅要求數據冗余少,而且能夠實現自動存儲和管理功能。數據庫恰好滿足了目前的數據存儲需求,而研究基于LabVIEW開發平臺訪問數據庫技術,正是現代測試系統設計所必需的。
2 基于LabVIEW開發環境訪問數據庫技術
鑒于LabVIEW開發環境不能直接對數據庫操作,主要是通過以下四種方式間接對其進行訪問[1-3]:
(1) 利用其他語言編寫DLL程序訪問數據庫
動態鏈接庫(DLL)是一種可被應用程序共享的程序模塊,具有良好的移植性和兼容性,而且利用LabVIEW中的CLF節點可以方便、快速地通過DLL訪問數據庫,但是采用其他語言編寫數據庫訪問程序,本身就非常復雜,開發時間比較長。
(2) 利用Microsoft ADO技術訪問數據庫
LabVIEW本身具有ActiveX功能,調用Microsoft ADO控件,并使用SQL語言可以實現數據庫操作,該方法具有靈活、高效等特點,不過用戶需對Microsoft ADO控件以及SQL語言有較深的了解,而且需要復雜的程序設計才能實現。
(3) 利用LabVIEW 的Database Connectivity
工具包進行數據庫操作 該方法雖然簡單可靠,但缺乏靈活性同時需要額外購買工具包。
(4) 利用免費工具包LabSQL進行數據庫訪問
LabSQL是一個免費的、源代碼完全公開的LabVIEW數據庫訪問工具包。利用LabSQL庫中集成的模塊VI,不僅避免了前三種方式中存在的問題,而且簡單易用,能夠快速實現數據庫的訪問。
綜上所述,由于LabSQL已將復雜的底層ADO及SQL操作一起封裝成一系列的模塊VI,而且可以支持Windows操作系統中任何基于OBDC的數據庫,同時對于那些不熟悉SQL語言的用戶也可以很容易地使用。鑒于此,本文采用LabSQL對智舌測試樣品數據庫進行訪問。
3 智舌及其測試樣品數據庫參數設置
本課題組研制的伏安型電子舌——智舌,主要是通過外部激勵信號激發特定電化學傳感器陣列,驅動樣品溶液發生電化學反應,使其產生響應信號,經數據采集卡采集并存儲至樣品數據庫當中,以便結合多元統計方法進行離線分析。智舌使用的外部激勵信號是由不同頻率的序列脈沖構成如圖1a所示,系統采集得到的響應信號共有28000個數據組成,不宜直接進行處理,需要提取響應信號中不同頻率段內的極值和拐點作為特征值,如圖1b所示[4,5]。最終經處理得到40個特征值,有效地壓縮了數據量,簡化數據處理難度。
圖1 智舌的外部激勵信號及其響應信號特征值提取
在應用LabSQL對測試樣品數據庫進行訪問之前,首先需要建立一個標準樣品數據庫模型并創建一張表,在這里采用Access 2003數據庫進行操作。測試參數表中除了設計40個特征值字段外,還包括其他系統設置參數,比如測試時間、文件名、測試樣品、靈敏度、測試頻段等,以下是對表中的部分字段設置情況,具體見圖2所示。
圖2 測試參數表中部分字段設置情況
4 基于LabSQL連接智舌測試樣品數據庫及其應用
4.1 基于LabSQL實現數據庫連接
由于已經存在標準樣品數據庫模型,利用LabSQL訪問數據庫的基本流程是連接數據庫、執行操作、斷開數據庫連接,其基本程序框圖見圖3所示。要完成將處理過的數據和系統參數記錄至樣品數據庫模型中,主要通過對LabSQL進行配置和SQL添加記錄命令來實現,其實就是對圖3中ADO Connection Open與SQL Exeucte兩個VI進行操作。
圖3 訪問數據庫的基本流程
在LabSQL配置方面,本實例采用無ODBC DSN連接方式對其進行設置。其具體操作過程就是向“ConnectionString”中寫入命令字符串:“Driver={ };Dbq=;Uid=;Pwd=”,Microsoft Access Driver (*.mdb)”。其中“Driver”是指定數據庫驅動程序;“Dbq”是指定要訪問的數據庫路徑;“Uid”和“Pwd”是指定要訪問數據庫時所需的用戶名和密碼。由于我們采用Access 2003作為操作數據庫,其數據庫驅動程序應設置為“Microsoft Access Driver (*.mdb)”;而由于訪問的數據庫路徑是不固定的,因此賦以一個路徑變量來靈活調用;訪問數據庫的用戶名和密碼這里不設置,所以可以缺省“Uid”和“Pwd”兩項,具體程序框圖見圖4所示。與ODBC DSN連接方式相比,采用上述方式可以在程序中靈活設定數據源以及其驅動程序而無須在控制面板中手動設置,因此這種方式更適宜程序的移植和使用。
在記錄添加方面,主要利用SQL Exeucte VI的Command Text輸入命令,在這里使用SQL 插入語句就可以實現逐次向表中的字段添加數據,其基本命令語法為:“ INSERT INTO 表名 VALUES( )”,其程序實現框圖見圖5所示。
圖5 數據記錄添加程序框圖
基于LabSQL實現了測試樣品數據庫的無縫連接與數據添加功能,為了使整個程序緊湊明了,易于調用,已經做成子VI——數據庫操作VI ,具體實現框圖和結果見圖6所示。
圖6 智舌測試樣品數據庫的實現
4.2 應用實例
基于LabSQL工具包實現了智舌測試樣品數據庫的建立與數據記錄,并結合本課題組編制的多元統計分析軟件——主成分分析,對市售的紅茶飲料系列進行采集與處理,取得了良好的區分效果,見圖7所示。
圖7 六種不同品牌紅茶飲料在不同電極不同頻率段的主成分區分圖
(A) 5號電極在10Hz; (B,C) 1號電極在10Hz、100Hz; (D) 2號電極在1Hz
5 結論
隨著現代測試系統結構日益復雜化,數據采集與處理日趨網絡化,這對測量數據的快速分析和有效管理提出了更高的要求。而引入數據庫能夠為現代檢測系統的數據存儲與處理提供了極大的便利:利用專業數據庫不僅能高效獲取數據并進行管理,極大節省了數據的存儲空間,而且能夠隨時讓其他數據處理工具調用并進行分析,實現了數據資源的充分共享。本文基于LabVIEW開發平臺和LabSQL工具包完成了對智舌測試樣品數據庫的連接和數據錄入,整個實現過程具有操作簡單、易于理解、開發時間短等優點。經實驗證明,本課題組利用自行設計的數據處理軟件調用樣品數據庫進行分析,取得了良好效果。同時基于LabSQL開發的數據庫訪問程序,具有可擴展性和可移植性等特點,顯示了巨大的開發潛力。