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