LabVIEW 中利用LabSQL 訪問資料庫

admin @ 2014-03-26 , reply:0

    虛擬儀器VI(virtual instruments)是National Instruments 公司在其產品LabVIEW 中首先提出的創新概念。隨著現代測試技術與儀器技術的發展,目前虛擬儀器概念已經發展成為一種創新的儀器設計思想,成為設計複雜測試系統和測試儀器的主要方法和手段。同時LabVIEW 也以成為測試與測量領域的工業標準應用編程軟體。
    現代的測試測量系統大多需要對被測目標進行全方位檢測,多感測器網路協調應用,從而有利於獲取對目標系統的全面認識,這同時也會使產生的數據量急劇增長。面對大量的數據信息無論是手工數據管理還是文件系統管理方式都無法正確反映各類數據之間的密切聯繫,都不能有效的管理和組織數據。因此以資料庫為中心,以數據管理為重點,構建的基於資料庫管理數據的虛擬儀器系統是現代的測試測量系統的發展趨勢。其結構框圖如圖1 所示:
 
    但由於LabVIEW 本身並不具備資料庫訪問功能,因此以LabVIEW 編製的虛擬儀器系統需要其它輔助的方法來進行資料庫訪問。

1 LabVIEW 中與資料庫介面的方法
    在基於資料庫的虛擬儀器測量測試系統中,很重要的一部分工作是對實時採集地的數據進行顯示、查詢、統計、生成報表分析等。這其中涉及的最主要的任務就是對數據的讀取和寫入,即與資料庫系統進行交互。據筆者所知,在LabVIEW 編程環境下,通常通過以下幾種方法來完成與資料庫的介面。

  1. 利用NI 公司的附加工具包LabVIEW SQL Toolkit 進行資料庫訪問。但是這種工具包比較昂貴,對於很多LabVIEW 用戶來講,這個價格是不可能承受的。
  2. 利用其他語言如Visual C++編寫DULL 程序訪問資料庫,再利用LabVIEW 所帶的DULL 介面訪問該程序,這樣可以實現間接訪問資料庫。但這樣工作量太大。
  3. 利用LabVIEW 的ActiveX 功能,調用Microsoft ADO 控制項,利用SQL 語言實現資料庫訪問。利用這種方式進行資料庫訪問需要用戶對Microsoft ADO 控制項以及SQL語言有較深的了解,並且需要從底層進行複雜的編程才能實現。這對於大多數用戶來講也是不現實的。

    這幾種方法雖然都可以完成對資料庫的訪問,但各有缺點不能滿足系統對資料庫實時訪問的要求。本文提出通過LabVIEW 用戶開發的免費LabVIEW 資料庫訪問的工具包LabSQL來解決以上存在的問題。

2 資料庫訪問的工具包LabSQL 簡介
    LabSQL 是一個免費的、多資料庫、跨平台的LabVIEW 資料庫訪問工具包。目前的版本是LabSQL Release 1.1,LabSQL 支持Windows 操作系統中任何基於OBDC 的資料庫,包括Acess,SQL Server,Orcale,Pervasive,Sybase 等。LabSQL 是利用Microsoft ADO 以及SQL 語言來完成資料庫訪問,將複雜的底層ADO 及SQL 操作封裝成一系列的LabSQL VIs。利用LabSQL 幾乎可以訪問任何類型地資料庫,執行各種查詢,對記錄進行各種操作。它的優點是易於理解,操作簡單,不熟悉SQL 語言的用戶也可以很容易地使用。只需進行簡單地編程,就可在LabVIEW 中實現資料庫訪問。它還有一個最大的優點是源代碼開放,並且是全面免費的。(註:LabSQL 的下載網址http://jeffreytravis.com)
    Microsoft ADO 簡介:Microsoft AciveX Data Objects(ADO)是微軟最新的資料庫訪問技術,可以用於編寫通過OLE DB 提供者對在資料庫伺服器中的數據進行訪問和操作的應用程序。OLE DB 是一個底層的數據訪問介面,用它可以訪問各種數據源,包括傳統的關係型資料庫以及電子郵件系統和自定義的商業對象。ADO 為用戶提供了一個OLE DB 的Automation 封裝介面。如同不同的資料庫系統需要它們自己的ODBC 驅動程序一樣,不同的數據源要求它們自己的OLE DB 提供者(OLE DB provider)。
    SQL 作為關係型資料庫中的一種通用的結構化查詢語言,它的主要功能就是同各種資料庫建立聯繫,進行溝通。SQL 語句可以用來執行各種各樣的操作,例如更新資料庫中的數據,從資料庫中提取數據等。目前絕大多數的關係型資料庫管理系統,如Orcale,Sybase,Microsoft SQL Server,Access 等都採用了SQL 語言表標準。

3 LabVIEW 中對LabSQL 的使用
3.1 LabVIEW 中加入LabSQL
    在LabVIEW 安裝目錄中的user.lib 文件夾中新建一個名為LabSQL 的文件夾,並將下載得到的LabSQL.zip 壓縮文件中所有文件解壓到這個文件夾中。解壓縮后的文件包括LabSQLADO functions 和Examples 兩個文件夾,以及ADO210.CHM 和README_FIRST.txt 兩個文件。再次運行時,LabVIEW 的功能模塊就會自動載入LabSQL。

3.2 LabSQL 的配置
    LabSQL 與資料庫之間是通過ODBC 連接,用戶需要在ODBC 中指定數據源名稱和驅動程序。因此在使用LabSQL之前,首先需要在Windows 操作系統中的ODBC 數據源中創建一個DSN(data source name,數據源名)。LabSQL 與資料庫之間的連接就是建立在DSN 基礎之上的。其連接流程如圖2 所示。
 
3.3 LabSQL VIs 分類
    LabSQL VIs 按照功能可分為四類:Command VIs;Connection VIs;Recordset VIs;Top Level VIs。

  • Command VIs 的功能是完成一系列的基本ADO 操作,例如,創建或刪除一個Command,對資料庫中的某一個參數進行讀或寫等。
  • Connection VIs 的功能是管理LabVIEW 與資料庫之間的連接。
  • Recordset VIs 用於對資料庫中的記錄進行各種操作,例如,創建或刪除一條記錄,對記錄中的某一條目進行讀或寫等。
  • Top Level VIs 屬於頂層的LabSQL 應用,對前三類LabSQL VIs 某些功能的封裝,例如,SQL Execute.VIs 可用於直接執行SQL 命令。

3.4 利用LabSQL 開發的基本步驟
    利用LabSQL 在資料庫操作中可實現應用程序與資料庫之間的數據交互傳遞。一般的簡單操作步驟如圖3 所示。
 

4 LabSQL 應用實例
    本應用實例是基於VI 的隨動測試系統,該測試系統需要對事先存儲的各測試點的基本資料,標準值、上下限值進行讀取,然後與採集的數據值進行計算、判斷,並進行狀態記錄存儲和管理。其資料庫採用的是Microsoft Access 系統,它的使用和維護較簡單,並且能夠滿足本系統的需要。限於篇幅,本文只對打開資料庫、查詢指定的記錄的欄位值和向資料庫添加、刪除、修改記錄的實現方法作一下介紹,以起到拋磚引玉的作用。圖四即為筆者編寫的對資料庫進行簡單操作的框圖。
 
具體步驟如下:
第一步:首先通過ADO Create.vi 創建一個Connection 對象,然後利用ADO Connection Open.vi 建立與資料庫的連接,資料庫由字元串ConnectionString“DSN=myDB”。(myDB 是一個在Windows ODBC 數據源中創建的一個DSN,並與想要連接的資料庫相連接。
第二步:利用ADO Recordset Create.vi 創建一個Recordset 對象,然後利用ADO Recordset Open.vi 打開Recordset 對象,並同時利用SQL 查詢命令獲得資料庫表中的全部或部分記錄。
第三步:通過功能選擇按鈕來選擇控制對資料庫的操作(查詢、添加、刪除、修改)。
第四步:利用ADO Recordset Close.vi 和ADO Connection Close.vi 關閉與資料庫之間的連接。
    以上所舉的例子只是對資料庫的基本操作,如果綜合利用LabSQL 的四類VIs,就可以實現複雜的資料庫操作。另外注意Microsoft ADO 控制項具有遠程資料庫訪問的功能,但是LabSQL 並沒有開發這一功能。

4 小結
    實踐證明,在LabVIEW 利用LabSQL 資料庫訪問工具包實現對資料庫的訪問,比其它方式操作更簡潔,更容易理解,不用精通ActiveX 技術和SQL 語言。充分利用了現有的資源,就可以資料庫的實時操作,應該是一個值得學習和推廣的方法。




[admin via 研發互助社區 ] LabVIEW 中利用LabSQL 訪問資料庫已經有2738次圍觀

http://cocdig.com/docs/show-post-44780.html