合肥工業(yè)大學儀器科學與光電工程學院 張宏偉 黃 煒
?
基于LabVIEW訪問Access數據庫的設計與應用
合肥工業(yè)大學儀器科學與光電工程學院張宏偉黃煒
【摘要】在利用LabVIEW平臺開發(fā)測試測量系統中,不可避免會遇到對數據庫訪問的需求。在此結合瓣閥氣密性檢測系統的功能需要,利用LabVIEW附加工具包中的數據庫接口工具包Database Connectivity Toolkit對Access數據庫進行訪問,實現了對大量數據的存儲、統計、添加以及按要求的查詢與刪除等功能。并設計了人機交互界面,可以實現對測量數據的管理工作。
【關鍵詞】LabVIEW;氣密性檢測;Access數據庫
LabVIEW是一種功能強大的圖形化編程語言,與傳統的文本編程工具相比,LabVIEW具有簡單易學,開發(fā)效率高等優(yōu)點,因而受到各界的廣泛應用[1]。在利用LabVIEW開發(fā)測控系統時,往往會遇到對大量數據的存儲與管理問題,面對大量的數據信息,數據庫技術的優(yōu)勢凸顯而出[2],如可將測量結果入庫以便測試后查詢,這樣能夠有效地管理和組織數據,是現代測試測量系統的發(fā)展趨勢[3]。數據庫技術不僅給數據的管理帶來了便利,而且也解決了大量數據的存儲占用存儲空間的問題。但是LabVIEW本身并不具備數據庫訪問的功能,因此本文旨在結合對瓣閥氣密性檢測系統的開發(fā)中,探索Access 數據庫文件和數據存儲的方法。
LabVIEW可借助下面幾種方法訪問數據庫[4][5]:
1)在LabVIEW中調用由C++等語言編寫的動態(tài)鏈接庫(DLL)實現對數據庫的訪問。該方法需要從底層進行復雜編程,工作量較大。
2)利用LabVIEW的ActiveX功能,調用Microsoft ADO控件,通過SQL語言實現數據庫訪問。該方式需要熟練掌握Microsoft ADO和SQL語言,也需要從底層進行復雜編程。
3)利用Lab VIEW的數據庫接口工具包Database Connectivity Toolkit進行數據庫訪問[6]。該工具包集成了一系列的高級功能模塊,這些模塊封裝了大多數的數據庫操作和一些高級的數據庫訪問功能。
通過以上比較,本文最終選擇第三種方法實現對Access數據庫的訪問。
利用LabVIEW開發(fā)瓣閥氣密性檢測系統時,不可避免的需要數據庫來存儲大量的數據信息,方便用戶進行存儲與管理。對于本系統而言,數據存儲與管理的流程為:將采集數據經處理后存儲在主界面表格控件中,當用戶選擇“保存”數據后,測得數據會被保存到名為“測量值數據庫”的Access 數據庫中,用戶可通過“查看歷史數據”的操作來查詢和管理以往存儲在數據庫中的數據,圖1為數據庫管理界面。

圖1 數據庫管理界面
數據存儲與管理的功能有:軟件與數據庫連接,將測量數據存儲到Access數據庫中;在Access數據庫中隨時可查看和調用歷史數據;統計測得數據的合格數、試件總數、合格率情況;可以按著用戶需求,可選擇性刪除歷史數據。
3.1與數據庫建立連接
若要LabVIEW程序運行時能訪問Access數據庫,還需建立一個數據源。因為本文是針對瓣閥氣密性檢測系統建立的數據庫,所以建立一個名為 “測量值數據庫. mdb”的數據庫文件。在利用LabVIEW數據庫工具包操作數據庫之前,需要先建立數據庫鏈接[7]。與數據庫的連接方法主要有3種:通過DSN訪問ODBC標準數據庫;通過UDL訪問ADO標準數據庫;通過對話框提示訪問數據庫。本文采用第二種方法進行數據庫連接,其連接步驟為:
1)打開LabVIEW,選擇“工具”菜單中的“Creat Data Link…”命令,此時會彈出“數據連接屬性”對話框。
2)在“提供程序”選項卡中選擇 “Microsoft Jet 4.0 OLE DB Provider”都可以連接到Access數據庫。
3)單擊“下一步”,進入“連接”選項卡,在“選擇或輸入數據庫名稱”文本框中通過單擊“…”瀏覽按鈕來選擇“測量值數據庫. mdb” 的數據庫文件。然后單擊“測試連接”按鈕,出現“測試連接成功”對話框。
4)點擊“確定”按鈕,在彈出的“Save Data Link as”的對話框中將數據連接文件命名為“數據庫連接.udl”,并保存在合適位置。
3.2LabVIEW操作數據庫
數據庫連接完成后,就可以對數據庫進行操作了。對數據庫的操作主要有創(chuàng)建表格、刪除表格、添加數據、查詢數據、刪除數據等[8]。本文主要實現數據庫的添加、統計、查詢、刪除信息的功能。
3.2.1添加數據
當用戶在測量主界面單擊“保存”按鈕后,測得的數據將會被保存到數據庫中,通過在數據庫中添加數據來實現。
利用DB Tools Open Connection.VI與數據庫創(chuàng)建連接,獲取“數據庫連接.udl”文件的位置。利用DB Tools Insert Data.VI實現在數據庫中添加數據,此VI有三個主要的參數:table連接數據表名,本文數據表名為“流量信息”;data 連接插入到數據庫的具體數據,本文的數據來源通過“測量值”子VI獲得;column為數據表中對應列的名字,其數據類型是一個字符串數組。添加數據結束后通過使用“DB Tools Close Connection .VI”斷開與數據庫的連接。圖2是在數據庫中添加數據的程序框圖。

圖2 在數據庫中添加數據
3.2.2統計、查詢及刪除數據
在瓣閥批量檢測結束后,用戶可通過單擊主界面的“查詢歷史數據”按鈕來查看和管理測得數據,此時會彈出如圖1所示的“歷史數據”界面,圖1中實現了對數據庫的統計、查詢及刪除的功能。這幾個功能可通過 “生產者與消費者”模式來編程實現:
1)創(chuàng)建Data隊列,設置數據類型為字符串。
2)當發(fā)生“鼠標進入窗格”事件或點擊“全部刪除”、“按合格產品刪除”、“按不合格產品刪除”按鈕時,在生產者循環(huán)中,對應的字符串會進入“元素入隊列”函數,在消費者循環(huán)中,“元素出隊列”函數接受指令,進入相應的條件結構進行事件處理。
3)當點擊“返回”按鈕后,“釋放隊列”函數將會執(zhí)行停止循環(huán)操作。
(1)統計、查詢數據。
數據庫統計、按條件查詢的實現如圖3所示,此處同樣需要首先建立鏈接,利用DB Tools Select Data.VI來讀取指定數據表中的所有數據,因從DB Tools Select Data.VI讀出來的數據是動態(tài)數據類型,需要通過Database Variant To Data.VI 把動態(tài)數據類型轉換成正確的數據類型,這樣指定數據表中的全部數據就可以讀出并以正確的顯示了。

圖3 統計、查詢程序框圖
(2)刪除數據。
在數據庫管理過程中,有時會因剔除不合格產品或排查合格產品,將測得數據的合格或不合格部分刪除,此時可以使用DB Tools Delete Data. VI,并結合使用數據庫高級操作,即在LabVIEW中執(zhí)行SQL語言來實現數據刪除功能,刪除一條記錄的語法為:WHERE column_name = some_value。
當刪除不合格的產品數據時,其程序框圖如圖4所示。若要刪除合格產品數據或清空數據,可將“ WHERE 合格情況= ‘不合格’ ”改為“ WHERE 合格情況= ‘合格’ ”或“ WHERE 1=1”。

圖4 刪除不合格產品數據
綜上所述,在瓣閥氣密性檢測系統的研究中,完成了利用LabVIEW中Database Connectivity Toolkit工具包完成了對Access數據庫的連接與操作,可為瓣閥氣密性檢測系統在批量測量時的大量數據提供足夠的存儲空間,并能進行數據的管理工作,為用戶提供了方便。
參考文獻
[1]鄭對元.精通LabVIEW虛擬儀器程序設計[M].清華大學出版社,2012.
[2]趙桂明,趙質良.在LabVIEW中靈活訪問數據庫[J].電子測試,2008(9):49-52.
[3]高陽,王堅強.數據庫技術與應用[M].北京:電子工業(yè)出版社,2003.
張宏偉(1989—),女,內蒙古赤峰人,合肥工業(yè)大學儀器科學與光電工程學院在讀碩士研究生,研究方向:精密測試技術及儀器。
作者簡介: