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