新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > 基于 LabVIEW 的油滴電量測試系統的數據庫訪問

        基于 LabVIEW 的油滴電量測試系統的數據庫訪問

        作者: 時間:2016-12-26 來源:網絡 收藏
          0 引言

          隨著測試技術與計算機技術日益緊密的結合,測試測量領域得到了空前的發展。尤其是基于LabVIEW的新一代虛擬儀器測試系統,充分利用了計算機數據處理速度快、控制能力強等優點,使測試系統在數據采集、傳送、處理、顯示及存儲等方面突破了以往單一的儀器儀表的限制。LabVIEW 是一個劃時代的圖形化編程系統,提供一種全新的程序設計方法,它對被稱為“虛擬儀器”的軟件對象進行圖形化的組合操作,其強大的數據分析功能可在數據采集、測試分析中起到至關重要的作用,這就涉及到對大量數據的存儲、查詢、調用等功能。

        本文引用地址:http://www.104case.com/article/201612/333647.htm

          而大量數據的管理又需要通過數據庫來實現,但是Lab-VIEW 本身并不具備數據庫訪問功能,因此需要其他輔助的方法來實現。本文以油滴電量測試系統的數據庫為例,利用NI的LabVIEW Database Connectivity Toolkit進行編程,完成了對數據庫的訪問,實現了數據存儲、查詢、更新、修改、刪除等各項功能。

          1 LabVIEW訪問數據庫的多種實現方式

          數據庫訪問方式有多種,第一種是利用Visual C++等多種語言編寫DLL程序訪問數據庫,但這種方法需要從底層經過復雜的編程才能實現,開發難度大,本文不考慮這一方法;第二種方法是基于第三方軟件通過編程來實現LabVIEW 對數據庫的訪問。比如,LabSQL工具包就是第三方開發的專門針對LabVIEW的一個開源附加工具包,對基本的數據庫操作功能進行二次封裝,能夠完成一般的數據庫操作,但兼容性相對較差;第三種是利用NI 的附加數據庫接口工具包LabVIEW SQLToolkit進行編程來實現對數據庫的訪問。該工具包集成的模塊中包含了大多數數據庫操作和訪問的功能,易于理解和編程。

          LabVIEW SQL Toolkit 又稱為LabVIEW DatabaseConnectivity Toolkit,是專門用于數據庫訪問的附加工具包,它涵蓋了數據庫操作的所有功能,集成了一系列功能模塊,這些模塊封裝了數據庫的大多數操作和一些高級的數據庫訪問功能。其主要的功能包括:

          (1)支持ADO所支持的所有數據庫引擎;

          (2)支持所有與ODBC 或OLE DB 兼容的數據庫驅動程序;

          (3)與SQL兼容;

          (4)可以將數據庫中Column Values 的數據類型轉換為標準LabVIEW Database Connectivity Toolset 的數據類型,進一步增強了它的可移植性。

          基于LabVIEW SQL Toolkit 的豐富功能及諸多優點,本文選擇使用LabVIEW SQL Toolkit 來實現對數據庫的操作。

          2 應用實例

          本文以油滴電量測試系統作為基于LabVIEW的數據庫訪問的應用實例。油滴電量測試系統分為上位機和下位機2 部分,分別承擔總控平臺和測試終端的作用,總體結構見圖1.該系統具有參數采集、存儲和數據分析等功能。下位機采用的是油滴儀、計時器、噴霧器等儀器進行測量,測試數據通過無線通信模塊將數據傳送到上位機,上位機是采用LabVIEW 2010圖形化編程平臺設計,將下位機傳送來的數據存儲到數據庫,通過數據庫進行訪問,實現對數據的分析與管理。

          

          基于LabVIEW 的總控臺由3部分組成:命令發送、總體進度顯示、某一測試終端的詳細數據顯示。與第二和第三項功能相適應,需要對各個測試終端的數據進行數據庫管理。

          軟件設計中,利用LabVIEW SQL Toolkit 對Micro-soft Access 數據庫進行添加、修改、更新、刪除、查詢和分析,實現測試系統的數據管理功能。系統總體流程為:下位機采集數據并存儲在FLASH中,待上位機發送“數據接收”命令,下位機將依次把數據傳送到上位機,上位機將數據存儲在名為“測試數據庫”的Microsoft Ac-cess 的數據庫中,操作人員通過“歷史數據查詢”或“圖像顯示歷史數據”功能模塊,查詢或分析某一顆油滴的測試數據。而操作人員在進入此系統前需要注冊或登錄操作,在這里的登錄系統中同樣需要數據的存儲、匹配操作,需要對數據庫進行訪問。圖2為系統數據顯示的程序前面板。

          

          軟件具體功能包括:一是將操作員編號、測試儀地址、測試電壓、油滴運動時間等基本數據添加到Micro-soft Access數據庫;二是對Microsoft Access 數據庫進行查詢、修改、更新、刪除錯誤的數據,并對數據進行分析。

          2.1 建立數據源

          LabVIEW 數據庫工具包只能操作數據庫,不能創建數據庫,所以必須借助第三方數據庫管理系統,本文采用Access來創建數據庫。因為文中的數據庫范例是油滴電量測試實時監控系統(簡稱油滴電量測試系統),所以建立一個名為“測試數據庫。 mdb”的數據庫文件。

          然后是建立于數據庫的鏈接。在利用LabVIEW 數據庫工具包操作數據庫之前,需要先建立數據庫鏈接。

          鏈接數據庫的方法有2 種:利用ODBC(OpenDatabaseConnectivity)技術鏈接數據庫和利用Active 數據對象ADO(ActiveX Data Objects)技術鏈接數據庫。

          使用ODBC API 函數時,需要創建數據源名DSN(Data Source Names)才能鏈接到實際數據庫。因此需要考慮移植問題,當代碼發布到其他機器上時,要手動為其重新建立一個DSN.此外,Microsoft設計的ODBC標準只能訪問關系型數據庫,對于非關系型數據庫則無能為力。而ADO 是Microsoft 提出的應用程序接口(API),用以訪問關系型或非關系型數據庫中的數據。

          ADO使用通用數據鏈接UDL(Universal DataLink)來獲得數據庫信息,即實現數據庫的鏈接[6].

          本文使用的是利用動態數據對象ADO(ActiveXData Objects)技術鏈接數據庫。在“測試數據庫。mdb”

          所在的文件夾下點擊鼠標右鍵→新建→Microsoft DataLink,并命名為“測試數據庫鏈接。udl”.或者通過另一種方法來建立。udl文件,在測試數據庫。mdb所在的文件夾下點擊鼠標右鍵→新建→文本文檔,并命名為“測試數據庫鏈接。txt”,再將其后綴改為“.udl”即可。雙擊“測試數據庫鏈接。udl”,打開數據鏈接屬性對話框,在提供程序選項卡中選擇Microsoft Jet 4.0 OLE DB Provide.

          在接下來的鏈接選項卡中,選擇已經建立好的數據庫文件,然后單擊“測試鏈接(T)”按鈕,就會鏈接成功。

          2.2 數據庫操作

          鏈接上數據庫之后,就可以對數據庫進行操作了。

          對數據庫的操作主要有創建表格、刪除表格、添加記錄、查詢記錄等。本文主要介紹添加記錄、刪除記錄、查詢記錄和更新數據庫數據信息。

          2.2.1 添加記錄

          在使用本系統時,第一次使用的操作員需要注冊,操作員的注冊信息需要寫入數據庫以數據表的形式保存下來,以便操作員以后使用系統就可以直接登錄,下面說明如何向數據庫中寫入數據。

          與數據庫以及記錄集對象建立鏈接,獲取“測試數據庫鏈接。udl”文件的位置,使用DB Tools Open Connec-tion.vi創建鏈接。

          選擇寫入數據的數據表“ 用戶信息表”,利用DBTools Insert Data.vi獲取數據表的列名字。

          由DB Tools Insert Data.vi來實現添加記錄,它有三個主要的參數:table(數據表名)告訴DB Tools InsertData.vi 向數據庫里的哪個表格插入數據;data 告訴DBTools Insert Data.vi插入什么數據;column對應插入列的名字,其數據類型是一個字符串數組,而且它的數據來源于DB Tools Insert Data.vi獲得并輸出的數據。然后斷開與數據庫的鏈接。

          圖3是添加記錄的程序框圖

          

          2.2.2 刪除記錄

          在測試過程中存在著很多不確定性因素會導致測試結果出現偏差,這就需要將不合格的測試數據刪除,將符合要求的測試數據保存起來。

          對于刪除測試數據記錄的操作,可以使用數據庫高級操作,在LabVIEW 中執行SQL 語言來實現數據刪除功能。刪除一條記錄的語法為:

          DELETE FROM table_name

          WHERE column_name = some_value

          圖4實現了刪除一條記錄的操作。

          

          2.2.3 查詢數據

          實驗操作人員需要通過下位機將獲得的測試數據發送到PC 機的LabVIEW 測試系統中并通過LabVIEW保存到數據庫中,以便以后查看數據和數據的存檔。在本測試系統中,每個操作員的數據分為5組且每一組數據存放在一個數據表中,這樣要獲得某一個操作員的實驗數據就需要從5個數據表中一次查詢到該操作員的數據,再在LabVIEW前面板上顯示查詢結果。

          此處同樣需要首先建立鏈接,即利用DB Tools In-sert Data.vi獲取數據表的列名,并利用DB ToolsSelectData.vi 來讀取指定數據表中的所有數據。因為從DBTools Select Data.vi 讀出來的數據是動態數據類型,需要通過Database Variant To Data.vi 函數把動態數據類型轉換成正確的數據類型。

          通過以上步驟,已經完成將指定數據表中的數據全部數據讀出并以正確的數據類型進行顯示。

          在完成某一特定操作員的測試數據查詢工作時,本文采用雙for循環嵌套,外部for循環的循環次數為5,再由內部for循環依次查詢“測試數據1…5”表中的數據,根據外部索引輸出數組的操作員編號列信息與前面板輸入的信息匹配,再利用指定操作員編號的索引值查找數據表中對應的記錄信息,并插入到最后的“指定操作員數據”數組中。

          圖5為完整的查詢數據程序框圖。

          圖6 為直接從數據庫中讀取到的未經過處理的數據顯示。

          圖7為經過對數組數據進行變換、處理得到的通常情況下數據記錄表格形式。

          

          

          

          2.2.4 數據更新

          以上過程已實現了數據的寫入,但對于某些需要實時同步修改的數據,需要考慮數據更新問題。因為數據庫要記錄用戶最后一次登錄系統的時間,所以當用戶每次登錄系統,系統都要將其在數據庫中的時間信息更改為當前時間。

          這里同樣使用的是數據庫高級操作,在LabVIEW中執行SQL 語言來實現數據更新功能。SQL 中更新一條記錄的語句是“update”,其語法為:

          UPDATE table_name

          SET column_name=new_value

          WHERE column_name=some_value

          圖8為更新時間的框圖程序。

          

          3 結語

          通過結合油滴電量測試系統的Access數據庫操作,本文實現了在LabVIEW 平臺下,利用Database Connec-tivity Toolkits 工具對Access 數據庫進行實時操作,實現了數據的寫入、刪除、更新等實用功能,為類似的數據庫開發提供了可予借鑒的方法。



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 武宣县| 都江堰市| 济宁市| 东乡县| 安阳市| 秦皇岛市| 陇西县| 青岛市| 沾益县| 巴林右旗| 神农架林区| 德兴市| 景泰县| 盐池县| 青冈县| 巴林右旗| 河北省| 新闻| 喜德县| 宁南县| 长沙市| 桐乡市| 望都县| 开远市| 古田县| 威宁| 九寨沟县| 福清市| 乐山市| 大洼县| 兴仁县| 镇江市| 安顺市| 卢龙县| 定南县| 隆回县| 象州县| 易门县| 峨边| 清徐县| 尚义县|