當前位置:首頁 > 消費電子 > 消費電子
[導(dǎo)讀]在利用基于LabVIEW的虛擬儀器開發(fā)平臺設(shè)計測試系統(tǒng)時,不可避免地需要對大量數(shù)據(jù)進行存儲、查詢、處理分析,在此基礎(chǔ)上提出LabVIEW中訪問數(shù)據(jù)庫的需求。在此結(jié)合油滴電量測試系統(tǒng)的功能需要,利用NI的附加數(shù)據(jù)庫接口工具包LabVIEW SQL Toolkit進行編程,完成對數(shù)據(jù)庫的訪問,實現(xiàn)了數(shù)據(jù)存儲、查詢、更新、修改、刪除等操作。并設(shè)計了人機交互界面,實時顯示所有測試終端的總體進度和各測試終端的詳細數(shù)據(jù)。

0 引言

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

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

1 LabVIEW訪問數(shù)據(jù)庫的多種實現(xiàn)方式

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

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

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

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

(3)與SQL兼容;

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

基于LabVIEW SQL Toolkit 的豐富功能及諸多優(yōu)點,本文選擇使用LabVIEW SQL Toolkit 來實現(xiàn)對數(shù)據(jù)庫的操作。

2 應(yīng)用實例

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

 

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

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

 

 

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

2.1 建立數(shù)據(jù)源

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

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

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

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

ADO使用通用數(shù)據(jù)鏈接UDL(Universal Data Link)來獲得數(shù)據(jù)庫信息,即實現(xiàn)數(shù)據(jù)庫的鏈接[6].

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

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

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

2.2 數(shù)據(jù)庫操作

鏈接上數(shù)據(jù)庫之后,就可以對數(shù)據(jù)庫進行操作了。

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

2.2.1 添加記錄

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

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

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

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

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

 

 

2.2.2 刪除記錄

在測試過程中存在著很多不確定性因素會導(dǎo)致測試結(jié)果出現(xiàn)偏差,這就需要將不合格的測試數(shù)據(jù)刪除,將符合要求的測試數(shù)據(jù)保存起來。

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

DELETE FROM table_name

WHERE column_name = some_value

圖4實現(xiàn)了刪除一條記錄的操作。[!--empirenews.page--]

 

 

2.2.3 查詢數(shù)據(jù)

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

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

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

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

圖5為完整的查詢數(shù)據(jù)程序框圖。

圖6 為直接從數(shù)據(jù)庫中讀取到的未經(jīng)過處理的數(shù)據(jù)顯示。

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

 

 

 

 

 

 

2.2.4 數(shù)據(jù)更新

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

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

UPDATE table_name

SET column_name=new_value

WHERE column_name=some_value

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

 

 

3 結(jié)語

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

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉