999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于LabVIEW的遠(yuǎn)程數(shù)據(jù)庫(kù)訪問(wèn)策略及其應(yīng)用研究

2012-04-29 00:44:03江務(wù)學(xué)王志明
計(jì)算機(jī)時(shí)代 2012年5期

江務(wù)學(xué) 王志明

摘要:為提高虛擬實(shí)驗(yàn)室設(shè)計(jì)中的遠(yuǎn)程數(shù)據(jù)庫(kù)訪問(wèn)的有效性,分析了LabView訪問(wèn)遠(yuǎn)程數(shù)據(jù)庫(kù)方法的特點(diǎn)和不足,提出了Lab SQL工具包和ADO技術(shù)的集成應(yīng)用策略。結(jié)合一個(gè)網(wǎng)絡(luò)虛擬實(shí)驗(yàn)室的應(yīng)用開(kāi)發(fā),給出了基于LabSQL的數(shù)據(jù)庫(kù)訪問(wèn)步驟和虛擬實(shí)驗(yàn)室的設(shè)計(jì)過(guò)程。該策略及設(shè)計(jì)具有較高的實(shí)用價(jià)值。

關(guān)鍵詞: 虛擬儀器; LabVIEW; 遠(yuǎn)程數(shù)據(jù)庫(kù); LabSQL; ADO

中圖分類(lèi)號(hào):TP391文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2012)05-32-03

Research on strategy and application of access to remote database based on LabVIEW

Jiang Wuxue, Wang Zhiming

(Dongguan Polytechnic, Dongguan, Guangdong 523808, China)

Abstract: To improve the effective of access to remote database in the design of virtual laboratory, this paper analyzes the characteristics and insufficiency of access to remote database method based on LabView, presents the integrated application strategy of the LabSQL toolkits and ADO. Combined with a virtual laboratory application development, based on LabSQL database access steps and virtual laboratory design process is given, and has great practical value.

Key words: virtual instruments; LabVIEW; remotedatabase; LabSQL; ADO

0 引言

虛擬儀器(VI-Virtual Instrument)是指通過(guò)應(yīng)用程序?qū)⑼ㄓ糜?jì)算機(jī)與功能化硬件結(jié)合起來(lái)的計(jì)算機(jī)系統(tǒng),用戶(hù)可通過(guò)友好的圖形界面來(lái)操作這臺(tái)計(jì)算機(jī),就像在操作自己定義、自己設(shè)計(jì)的一臺(tái)單個(gè)儀器一樣。

LabVIEW是當(dāng)前虛擬儀器的主要開(kāi)發(fā)工具之一,是由NI(National Instruments)公司開(kāi)發(fā)的一種高效的圖形化編程工具, 是一個(gè)集開(kāi)發(fā)、調(diào)試和運(yùn)行于一體的數(shù)據(jù)采集和儀器控制軟件,目前通用的最新版本為L(zhǎng)abVIEW2011。LabVIEW集成了與滿(mǎn)足GPIB、VXI、RS-232和RS-485協(xié)議的硬件及數(shù)據(jù)采集卡通訊的全部功能,還內(nèi)置了便于應(yīng)用TCP/IP、ActiveX等軟件標(biāo)準(zhǔn)的庫(kù)函數(shù),是一個(gè)功能強(qiáng)大且靈活的軟件。通過(guò)LabVIEW可以方便地建立適應(yīng)個(gè)性化需求的虛擬測(cè)量和控制儀器,其圖形化的界面使得編程及使用過(guò)程形象而生動(dòng)。目前,LabVIEW在數(shù)據(jù)采集及分析、儀器和控制、測(cè)試測(cè)量及過(guò)程監(jiān)控和控制等領(lǐng)域中的應(yīng)用越來(lái)越廣泛。其中,數(shù)據(jù)的存儲(chǔ)、分析所涉及到的數(shù)據(jù)庫(kù)讀寫(xiě)操作是一個(gè)重要環(huán)節(jié),現(xiàn)有的LabVIEW版本中還沒(méi)有提供與通用數(shù)據(jù)庫(kù)直接接口的方法[1]。這一問(wèn)題一般會(huì)考慮采用以下幾種方法解決。

⑴ 采用其他編程語(yǔ)言編寫(xiě)動(dòng)態(tài)鏈接庫(kù)DLL訪問(wèn)數(shù)據(jù)庫(kù),并在LabVIEW中調(diào)用此DLL與數(shù)據(jù)庫(kù)連接。

⑵ 利用中間文件存取數(shù)據(jù),先將數(shù)據(jù)存入文件中,在一定的時(shí)刻或者需要時(shí)再將數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)中。這種方法實(shí)現(xiàn)比較簡(jiǎn)單,但是需要單獨(dú)的軟件對(duì)數(shù)據(jù)文件導(dǎo)入導(dǎo)出。

⑶ LabVIEW中包含了大量的ActiveX對(duì)象,包括ADO(ActiveX Data Objects)接口的各種對(duì)象,可以利用ADO的接口進(jìn)行數(shù)據(jù)庫(kù)的訪問(wèn)。

⑷ 使用NI公司的SQL ToolKit for LabVIEW附加工具包與數(shù)據(jù)庫(kù)連接[2]。

這些方法中,第一種方法的工作量較大,第二種方法不能對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)的存取,第三種方法通用性和靈活性欠佳,而第四種方法需單獨(dú)購(gòu)買(mǎi)該工具包,價(jià)格昂貴,成本過(guò)高。針對(duì)上述四種方法的不足,本文采用Premise Development公司的Chris Roth和Jeffrey Travis開(kāi)發(fā)的免費(fèi)LabVIEW數(shù)據(jù)庫(kù)支持工具VI—LabSQL來(lái)完善整個(gè)系統(tǒng)的數(shù)據(jù)庫(kù)功能,將復(fù)雜的底層ADO及SQL操作封裝成一系列的LabSQL VIs。LabSQL的優(yōu)點(diǎn)是易于理解,使用簡(jiǎn)單,只需進(jìn)行簡(jiǎn)單的編程,就可以在LabVIEW中實(shí)現(xiàn)數(shù)據(jù)庫(kù)訪問(wèn)。利用LabSQL幾乎可以訪問(wèn)任何類(lèi)型的數(shù)據(jù)庫(kù)且易于實(shí)現(xiàn)。

1 基于LabSQL的遠(yuǎn)程數(shù)據(jù)庫(kù)訪問(wèn)的步驟

一般而言,對(duì)遠(yuǎn)程數(shù)據(jù)庫(kù)的操作有以下幾步。

⑴ 在服務(wù)器上建立網(wǎng)絡(luò)數(shù)據(jù)庫(kù)

選擇一種客戶(hù)/服務(wù)器體系結(jié)構(gòu)的數(shù)據(jù)庫(kù)軟件,分別安裝在客戶(hù)端和服務(wù)器端。

⑵ 連接數(shù)據(jù)庫(kù)

應(yīng)用程序是通過(guò)“連接”訪問(wèn)數(shù)據(jù)源的,連接是交換數(shù)據(jù)所必需的環(huán)境。所以,創(chuàng)建“Connection”對(duì)象是所有數(shù)據(jù)庫(kù)操作的必需的一個(gè)步驟。

⑶ 執(zhí)行SQL指令

通過(guò)已經(jīng)建立的連接發(fā)出的SQL指令可以用某種方式來(lái)操作數(shù)據(jù)源。Microsoft ADO的Command對(duì)象,Connection對(duì)象以及Recordset對(duì)象都提供有執(zhí)行SQL指令的方法,可依據(jù)具體情況具體選擇對(duì)象。

⑷ 處理結(jié)果

檢索到的數(shù)據(jù)通過(guò)各種需要的算法加以處理。

⑸ 關(guān)閉連接

執(zhí)行完任務(wù)后,必須切斷與數(shù)據(jù)庫(kù)資源的連接,釋放任何屬于連接的資源,關(guān)閉任何從屬對(duì)象。否則將導(dǎo)致服務(wù)器資源浪費(fèi)并影響服務(wù)器性能[3]。

Oracle?是以高級(jí)結(jié)構(gòu)化查詢(xún)語(yǔ)言(SQL)為基礎(chǔ)的大型關(guān)系數(shù)據(jù)庫(kù),是目前最流行的客戶(hù)/服務(wù)器(CLIENT/SERVER)體系結(jié)構(gòu)的數(shù)據(jù)庫(kù)之一,也是目前技術(shù)比較領(lǐng)先、應(yīng)用非常廣泛的一個(gè)商業(yè)數(shù)據(jù)庫(kù)產(chǎn)品。?所以我們選擇Oracle來(lái)搭建所需的網(wǎng)絡(luò)數(shù)據(jù)庫(kù)。

在運(yùn)行LabVIEW程序的應(yīng)用程序服務(wù)器上,設(shè)已經(jīng)安裝了Oracle客戶(hù)端,已連接到數(shù)據(jù)庫(kù)服務(wù)器上的遠(yuǎn)程數(shù)據(jù)庫(kù),通過(guò)Windows控制面板中管理工具里面的“數(shù)據(jù)源 (ODBC)”來(lái)創(chuàng)建ODBC數(shù)據(jù)源,設(shè)置系統(tǒng)DSN(數(shù)據(jù)源名稱(chēng))為loginoracle,驅(qū)動(dòng)程序選擇Microsoft ODBC for Oracle,設(shè)置成功后客戶(hù)端就可以像訪問(wèn)本地?cái)?shù)據(jù)庫(kù)一樣訪問(wèn)遠(yuǎn)程數(shù)據(jù)庫(kù)了[4]。

2 基于LabSQL虛擬實(shí)驗(yàn)室的應(yīng)用開(kāi)發(fā)

我們建立了一個(gè)校園網(wǎng)虛擬實(shí)驗(yàn)室,將過(guò)程控制實(shí)驗(yàn)室的液位過(guò)程控制實(shí)驗(yàn)搬到了網(wǎng)站上,學(xué)習(xí)者可以遠(yuǎn)程監(jiān)視并控制其運(yùn)行狀態(tài),進(jìn)行不受時(shí)空限制的個(gè)性化學(xué)習(xí)。但是實(shí)驗(yàn)裝置并不是隨時(shí)打開(kāi)的,我們需要將它的歷史狀態(tài)保存在數(shù)據(jù)庫(kù)中,以便在未打開(kāi)裝置的情況下通過(guò)歷史數(shù)據(jù)顯示數(shù)據(jù)采集曲線,因此在數(shù)據(jù)庫(kù)服務(wù)器上建了一個(gè)Waveform表,將液位高度數(shù)據(jù)和控制器輸出電壓數(shù)據(jù)保存在其中,就可對(duì)這個(gè)表進(jìn)行相關(guān)的操作。

2.1 本實(shí)驗(yàn)裝置的工作原理

過(guò)程控制實(shí)驗(yàn)室引進(jìn)英國(guó)FeedBack公司開(kāi)發(fā)的PROCON(PROcess CONtroller)38系列綜合實(shí)驗(yàn)裝置,它是處理過(guò)程控制問(wèn)題一個(gè)完整的組合裝置,包括相關(guān)的硬件過(guò)程控制裝置,監(jiān)視器和接口設(shè)備,一個(gè)工業(yè)標(biāo)準(zhǔn)控制器,并且附帶指導(dǎo)手冊(cè)和軟件。我們用LabVIEW2011軟件取代PROCON 38系列系統(tǒng)的工業(yè)標(biāo)準(zhǔn)控制器,搭建自己的控制平臺(tái)。選用的芯片和設(shè)備分別是:一塊I/V轉(zhuǎn)換芯片RCV420,一塊V/I轉(zhuǎn)換芯片XTR110,一塊NI公司出產(chǎn)的PCI-6014E系列數(shù)據(jù)采集卡和一臺(tái)微機(jī)。

PROCON38系列系統(tǒng)水箱的浮子式液位計(jì)采集到的0-5V電壓液位信號(hào)被過(guò)程接口(PI)轉(zhuǎn)換為一個(gè)4-20毫安的電流信號(hào),通過(guò)一個(gè)I/V轉(zhuǎn)換電路將其還原成0-5V的電壓信號(hào),用NI公司的PCI-6014數(shù)據(jù)采集卡采集電壓信號(hào),經(jīng)控制算法的處理后再通過(guò)該數(shù)據(jù)采集卡輸出0-5V的電壓控制信號(hào),接著通過(guò)一個(gè)V/I轉(zhuǎn)換電路轉(zhuǎn)換成4-20毫安的電流信號(hào),控制伺服閥的開(kāi)閉、4毫安時(shí)閥門(mén)全閉、20毫安時(shí)閥門(mén)全開(kāi),通過(guò)控制進(jìn)水量來(lái)控制水箱中的液位。文中采用PID控制實(shí)現(xiàn)控制算法,直接調(diào)用仿真工具箱里的PID工具包[5]。程序框圖如圖1所示。

圖1液位過(guò)程控制實(shí)驗(yàn)程序框圖

2.2 虛擬實(shí)驗(yàn)室的的開(kāi)發(fā)過(guò)程

訪問(wèn)數(shù)據(jù)庫(kù)信息的第一步是與數(shù)據(jù)庫(kù)建立連接,LabSQL中的Connection VIs就能夠?qū)崿F(xiàn)這個(gè)目的.首先利用ADO Connection Create.vi創(chuàng)建一個(gè)Connection對(duì)象,然后利用ADO Connection Open.vi建立與數(shù)據(jù)庫(kù)的連接。但是ADO Connection Open.vi只能設(shè)置DSN,而網(wǎng)絡(luò)數(shù)據(jù)庫(kù)為了安全起見(jiàn)都設(shè)置有用戶(hù)名和密碼,所以要打開(kāi)遠(yuǎn)程數(shù)據(jù)庫(kù)不能使用LabSQL中的ADO Connection Open.vi,而要用ADO接口對(duì)象進(jìn)行再開(kāi)發(fā)。具體過(guò)程如下:

從控制模板的Application Control子模板中調(diào)用Invoke Node結(jié)點(diǎn),在點(diǎn)右鍵彈出的菜單中選擇Select Class,再在順次閃出的菜單里選擇ActiveX,最后選定其中的ADODB._Connection,然后選擇其方法(Method)為Open,最終在程序框圖中顯示的圖標(biāo)如圖2所示。

圖2打開(kāi)數(shù)據(jù)庫(kù)連接的Invoke Node結(jié)點(diǎn)

這樣,通過(guò)在ConnectionString中設(shè)置DSN,在UserID中設(shè)置用戶(hù)名,在Password中設(shè)置密碼,就可對(duì)一個(gè)遠(yuǎn)程數(shù)據(jù)庫(kù)進(jìn)行象本地?cái)?shù)據(jù)庫(kù)一樣的數(shù)據(jù)操作了。

接下來(lái)是執(zhí)行SQL指令LabSQL中的Connection VIs里有一個(gè)ADO Connection Execute.vi,它可以執(zhí)行SQL命令,檢索數(shù)據(jù)庫(kù)以及對(duì)數(shù)據(jù)庫(kù)進(jìn)行添加、更新、刪除操作,它的CommandText端子傳送的就是命令文本,通常是SQL語(yǔ)句,它返回的是一個(gè)記錄集(Recorderset)對(duì)象。

如果需要處理相關(guān)數(shù)據(jù),可利用SQL Fetch Data(GetString).vi獲得查詢(xún)結(jié)果,處理后送到前面板中的示波器或者其它儀器或表格加以顯示。本文只介紹數(shù)據(jù)的存儲(chǔ)過(guò)程,所以沒(méi)有涉及此步驟[6]。

最后,用ADO Connection Close.vi關(guān)閉與數(shù)據(jù)庫(kù)之間的連接。

在前面板中的ConnectionString中輸入“DSN=loginoracle”,在UserID中輸入遠(yuǎn)程數(shù)據(jù)庫(kù)的登錄用戶(hù)名,在Password中輸入密碼,并設(shè)為默認(rèn)值,然后將它們?cè)谇懊姘迳想[藏。設(shè)置了各個(gè)參數(shù)后就可點(diǎn)擊程序“啟動(dòng)”按鈕。液位過(guò)程控制實(shí)驗(yàn)程序的運(yùn)行結(jié)果如圖3所示。

圖3液位過(guò)程控制實(shí)驗(yàn)程序運(yùn)行結(jié)果

在程序運(yùn)行的時(shí)候,參數(shù)設(shè)置和其他無(wú)關(guān)的按鈕都在前面板隱藏起來(lái),停止采樣后則將示波器隱藏,然后再將參數(shù)設(shè)置及復(fù)位等其他按鈕顯示出來(lái)。前面板顯示如圖3.3之結(jié)果的同時(shí),在后臺(tái)的程序中當(dāng)前的兩組波形數(shù)據(jù)已經(jīng)由當(dāng)前本地的應(yīng)用程序服務(wù)器傳遞給了數(shù)據(jù)庫(kù)服務(wù)器。

在裝置未打開(kāi)時(shí),我們可通過(guò)訪問(wèn)Waveform數(shù)據(jù)表,將波形的數(shù)據(jù)取出,顯示其歷史工作狀態(tài),這樣無(wú)論實(shí)驗(yàn)裝置是否打開(kāi),學(xué)習(xí)者都能看到如圖3所示的裝置運(yùn)行時(shí)的波形圖。

3 結(jié)束語(yǔ)

在LabVIEW環(huán)境下,利用LabSQL工具包實(shí)現(xiàn)數(shù)據(jù)庫(kù)的管理,在很大程度上減輕了編程的工作量,這是一種很有效的遠(yuǎn)程數(shù)據(jù)庫(kù)訪問(wèn)的方法。再結(jié)合LabVIEW中的ADO接口對(duì)象,就能夠?qū)崿F(xiàn)對(duì)Oracle網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的各種操作。實(shí)踐證明,該實(shí)驗(yàn)室不僅實(shí)現(xiàn)了所需功能,而且在速度、穩(wěn)定和效率上均具有良好的性能。

參考文獻(xiàn):

[1] 楊樂(lè)平,李海濤,趙勇等.LabVIEW高級(jí)程序設(shè)計(jì)[M].北京清華大學(xué)出

版社,2003.

[2] 李建文,劉篤喜,朱名銓.基于ADO技術(shù)的LabVIEW訪問(wèn)數(shù)據(jù)庫(kù)的方

法[J].自動(dòng)化儀表,2003.24(9):15~17

[3] Chen X Z,Chen C,Qi H. Design of a kind of single neuron PID

adaptive controller based on expert[C]/ / Proceedings of the 7th International Conference on Electronic Measurement & Instruments. Beijing: International Academic Publishers,2005:216~220

[4] 齊虹,周文濱,陳沖等.利用LabVIEW實(shí)現(xiàn)的虛擬網(wǎng)絡(luò)實(shí)驗(yàn)室及其虛

擬實(shí)驗(yàn)[J].福州大學(xué)學(xué)報(bào)(自然科學(xué)版),2010.38(2):237~250

[5] 楊靜. 基于LabVIEW的電工電子網(wǎng)絡(luò)虛擬實(shí)驗(yàn)室研究與開(kāi)發(fā)[J].實(shí)

驗(yàn)室研究與探索,2011.30(2):74~77

[6] 江務(wù)學(xué).基于LabVIEW 的校園網(wǎng)虛擬實(shí)驗(yàn)室的開(kāi)發(fā)[J].浙江萬(wàn)里學(xué)

院學(xué)報(bào),2005.18(4):51~54

主站蜘蛛池模板: www.99精品视频在线播放| h网址在线观看| 国产视频a| 91小视频版在线观看www| 欧美日韩午夜| 亚洲a级在线观看| 欧美劲爆第一页| 国产成人夜色91| 1024国产在线| 色爽网免费视频| 亚洲三级影院| 国产资源免费观看| 国产午夜福利片在线观看| 91精品视频在线播放| 久久精品91麻豆| 毛片免费高清免费| 国产免费怡红院视频| 久久毛片网| 性69交片免费看| 亚洲日本中文字幕天堂网| 97se亚洲综合在线韩国专区福利| 日韩精品一区二区三区免费在线观看| 日韩无码精品人妻| 国产情精品嫩草影院88av| 久久黄色小视频| 国产精品黑色丝袜的老师| 精品成人一区二区| 91九色视频网| 国产在线拍偷自揄观看视频网站| 重口调教一区二区视频| 女人18毛片一级毛片在线 | 亚洲第一成人在线| 97se亚洲| 午夜成人在线视频| 在线五月婷婷| 在线欧美日韩| 国产v欧美v日韩v综合精品| 国内精品小视频福利网址| 男女男免费视频网站国产| 一区二区三区成人| 国产一区二区福利| 欧美日韩福利| 久久综合丝袜日本网| 欧美三级视频在线播放| JIZZ亚洲国产| 成年午夜精品久久精品| 熟女视频91| 日韩激情成人| 制服无码网站| 免费国产小视频在线观看| 综合人妻久久一区二区精品 | 99久久亚洲综合精品TS| 美女被操91视频| 精品国产一二三区| 97久久精品人人| 国产青青草视频| 最新精品久久精品| 国产欧美综合在线观看第七页| 爽爽影院十八禁在线观看| 日韩视频福利| 欧美日本在线观看| 亚洲首页在线观看| 欧美福利在线观看| 国产第一色| 亚洲中文字幕在线一区播放| 免费人成在线观看成人片| 中文字幕无码av专区久久| 亚洲欧洲综合| 中文国产成人精品久久| 国产一级片网址| 欧美不卡视频一区发布| 亚洲精品自产拍在线观看APP| 天堂av高清一区二区三区| 欧美一级大片在线观看| 狠狠久久综合伊人不卡| 伊人色综合久久天天| 日韩精品久久久久久久电影蜜臀| 国产在线97| 69视频国产| 国产性生大片免费观看性欧美| 又大又硬又爽免费视频| 好紧好深好大乳无码中文字幕|