一種繼電器測(cè)試數(shù)據(jù)查詢(xún)系統(tǒng)的實(shí)現(xiàn)
1.引言
本文引用地址:http://2s4d.com/article/201612/328477.htm繼電器作為一種自動(dòng)控制系統(tǒng)常用的元件,測(cè)試?yán)^電器的數(shù)量和種類(lèi)都很大,而運(yùn)用人工記錄這些數(shù)據(jù)查詢(xún)起來(lái)會(huì)非常費(fèi)力,因此本文為大家介紹一種用LabVIEW軟件制作的一款繼電器測(cè)試數(shù)據(jù)查詢(xún)系統(tǒng),可以快速的解決從大量的測(cè)試數(shù)據(jù)中尋找符合條件的繼電器的問(wèn)題,還可以將查詢(xún)結(jié)果打印出來(lái)。
2.訪問(wèn)數(shù)據(jù)庫(kù)的解決辦法
由于LabVIEW本身并不具備數(shù)據(jù)庫(kù)訪問(wèn)功能,常用解決方法如下:
1)利用其他語(yǔ)言如VC++編寫(xiě)DLL程序訪問(wèn)數(shù)據(jù)庫(kù),再利用LabVIEW所帶的DLL接口-調(diào)用庫(kù)函數(shù)節(jié)點(diǎn)CLFN(CallLibraryFunction Node)訪問(wèn)該程序。
2)利用NI公司的附加工具包LabVIEWSQLToolkit進(jìn)行數(shù)據(jù)庫(kù)操作。
3)利用LabVIEW的ActiveX功能,調(diào)用Microsoft ADO控件,利用SQL語(yǔ)言實(shí)現(xiàn)數(shù)據(jù)庫(kù)訪問(wèn)。
4)利用LabVIEW開(kāi)發(fā)的LabVIEW數(shù)據(jù)庫(kù)訪問(wèn)工具包LabSQL.
這里我們采用第四種方法。
3.LabsaL簡(jiǎn)介
LabSQL是眾多用戶合作、開(kāi)發(fā)的免費(fèi)的、多功能的、跨平臺(tái)的LabVIEW數(shù)據(jù)庫(kù)訪問(wèn)工具包,支持windows操作系統(tǒng)中任何基于ODBC的數(shù)據(jù)庫(kù),比如:Access,SQLSever,Oracle,Pervasive,Sybase等。按照其功能的不同,劃分為Command,Conncetion和Recordset三個(gè)模板和可直接調(diào)用SQL頂層的三個(gè)子VIs,在每個(gè)模板中,都由多個(gè)不同的子Vl組成,供用戶調(diào)用,具體如下:
(1)Command模板中的子VIs完成一系列基本ADO的操作,如創(chuàng)建或刪除一個(gè)Command,對(duì)數(shù)據(jù)庫(kù)中的某一參數(shù)迸行讀寫(xiě)等。各子程序模塊ADO Command Create.vi、ADO CommandDestroy.vi等。
(2)Connection模板中的子VIs管理LabVIW與數(shù)據(jù)庫(kù)之倒的鏈接。各子程序模塊如圖19所示,在本論文中,主要用到Create Comn、Open Comn、Close Comn等子VIs.
(3)Recordset模板中的子VI用于對(duì)數(shù)據(jù)庫(kù)中的記錄進(jìn)行各種操作,如創(chuàng)建或刪除-條記錄,對(duì)紀(jì)錄中的某一條目進(jìn)行讀寫(xiě)等。
(4)TOP Level VIs是頂層的LabSQL應(yīng)用,是對(duì)前二種LabSqL V Is某些應(yīng)用功能的封裝,如圖1所示,它以3個(gè)獨(dú)立的子VIs形式存在。例如,SQL Execute.VIs可用于直接執(zhí)行SQL命令,SQL FatchD ata(GetString)。vi是對(duì)字符的查詢(xún),而SQL FetchData.vi用于對(duì)數(shù)據(jù)的查詢(xún),這里的數(shù)據(jù)不包括前面的字符。
4.功能的實(shí)現(xiàn)
LabVIEW軟件的一個(gè)顯著的優(yōu)點(diǎn),就是它能夠由計(jì)算機(jī)來(lái)完成顯示、存儲(chǔ)、打印及微處理器控制管理等,即無(wú)論任何功能的儀器都可利用或共享計(jì)算機(jī)的這些公共資源,而無(wú)需重復(fù)的設(shè)計(jì)??紤]到Access適合開(kāi)發(fā)中小型管理信息系統(tǒng),對(duì)于數(shù)據(jù)庫(kù)最終用戶MicrosoftAccess提供了許多便捷的可化操作工具:如表生成器、查詢(xún)?cè)O(shè)計(jì)器、窗體設(shè)計(jì)器、報(bào)表設(shè)計(jì)器等)和向?qū)?如表向?qū)А⒋绑w向?qū)?、查?xún)向?qū)А?bào)表向?qū)У?,而且利用這些工具和向?qū)Р挥镁幊碳纯蓸?gòu)造簡(jiǎn)單實(shí)用的管理信息系統(tǒng),相應(yīng)的開(kāi)發(fā)周期短。因此,在這里采用MicrosoftAccess建立數(shù)謝庫(kù),來(lái)實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)和查詢(xún)功能。
4.1 幾個(gè)重要的SQL查詢(xún)命令語(yǔ)句
在數(shù)據(jù)庫(kù)管理軟件的開(kāi)發(fā)過(guò)程中,雖然利用了LahSqL工具包,但不司避免地要用到簡(jiǎn)單的SQL查詢(xún)命令語(yǔ)句。在開(kāi)發(fā)的過(guò)程。經(jīng)常用到的SQL語(yǔ)句有以下幾種。
1)數(shù)據(jù)查詢(xún)。在SQL語(yǔ)句中使用SELECT可以對(duì)數(shù)據(jù)進(jìn)行查詢(xún),一般格式如下:SELECT<查詢(xún)內(nèi)容>FROM<表或視圖>WHERE<條件>ORDERBY<列名>.開(kāi)發(fā)時(shí)結(jié)合軟件前面板的控件SQL語(yǔ)句表示為:
查詢(xún)某表中全部測(cè)試結(jié)果記錄語(yǔ)句SElECT*FROM所要操作的表(表名從選擇所要操作的表控件得到)單項(xiàng)查詢(xún)的SQL語(yǔ)句為:SELECT* FROM所要操作的表WHERE操作字段 操作條件操作條件值組合查詢(xún)的SQL語(yǔ)句為:SELECT* FROM所要操作的表 WHERE操作字段 操作條件 操作條件值and操作字段2操作條件2 操作條件值22)刪除記錄。刪除記錄的SQL語(yǔ)句格式為:DELETE FROM<表名>WHERE<條件>.本文中對(duì)查詢(xún)結(jié)果進(jìn)行刪除的SQL語(yǔ)句:DELETE FROM所要操作的表WHERE主鍵字段名=鼠標(biāo)所指行條件值4.2 連接數(shù)據(jù)庫(kù)模塊的實(shí)現(xiàn)
(1)LabSQL的配置。首先在Access中創(chuàng)建
名為l.mdb的數(shù)據(jù)庫(kù)。將所需要的各種表單創(chuàng)建好,然后在Windows ODBC數(shù)據(jù)源中創(chuàng)建數(shù)據(jù)庫(kù)的數(shù)據(jù)源名稱(chēng)DSN,再將數(shù)據(jù)源中的數(shù)據(jù)庫(kù)路徑指向1.md b時(shí),將Acces韻用戶與組權(quán)限全部打開(kāi),這樣IabSQL即可訪問(wèn)1.mdb.
(2)建立與數(shù)據(jù)庫(kù)的連接。在LabSQL的Connection VI s模塊中選用ADO ConnectionCreate.vi創(chuàng)建一個(gè)Connection對(duì)象,然后用ADO Connection Open.vi建立與數(shù)據(jù)庫(kù)的具體連接。其中在ADO Connection Open.vi的連接字符串Connectio.string輸入動(dòng)態(tài)連字符:Provider=Microsoft.Jet.OLEDB.4.0:Data Sour.e=e:1.mdb:Persist SecurityInfo=FalSE.這個(gè)過(guò)程的實(shí)質(zhì)是建立一個(gè)向當(dāng)前打開(kāi)的數(shù)據(jù)庫(kù)指針,用這個(gè)指針對(duì)已經(jīng)打開(kāi)的數(shù)據(jù)庫(kù)進(jìn)行各種操作。圖2為其實(shí)現(xiàn)的框圖程序。
4.3 數(shù)據(jù)庫(kù)操作模塊的實(shí)現(xiàn)
關(guān)于數(shù)據(jù)庫(kù)操作方面的內(nèi)容是非常豐富的,如查詢(xún)、添加記錄、修改記錄、刪除記錄等數(shù)據(jù)需求,本文只討論數(shù)據(jù)庠的基本上的操作即刪除、查詢(xún)和查詢(xún)記錄扣印,在數(shù)據(jù)庫(kù)已經(jīng)建立好連接后,要實(shí)現(xiàn)對(duì)數(shù)據(jù)厙的操作一般通過(guò)以下步驟:
(1)建立與記錄集(Rccordset)對(duì)象的連接井實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的具體操作,使用CommandText屬性定義命令(如SQL語(yǔ)句)的可執(zhí)行文本。
(2)使用Execute方法執(zhí)行命令并在適當(dāng)?shù)臅r(shí)候返回RecordSet對(duì)象。
(3)將Command對(duì)象傳送給Recordset的Source屬性以便獲取數(shù)據(jù)。利用在這里關(guān)鍵是LabSQL查詢(xún)語(yǔ)句的編寫(xiě),將相關(guān)的LabSQL查詢(xún)命令寫(xiě)在屬性節(jié)點(diǎn)Commad Text中。
(4)查詢(xún)結(jié)果的顯示。在Top Level VIs模塊中選用SQL Fentch Data(CetString)。VI獲得查詢(xún)結(jié)果,并將查詢(xún)結(jié)果送至前面板窗口中表格顯示控件中顯示。
記錄打印系采用LabVIEW本身自帶的控件,通過(guò)Initialize Report.vi(報(bào)衷初始化),Append Table toReport.vi(將查詢(xún)結(jié)果加入報(bào)表),Print.vi(打印報(bào)表)來(lái)實(shí)現(xiàn)。
5.結(jié)論
基于LabVIEW的繼電器測(cè)試數(shù)據(jù)查詢(xún)系統(tǒng)界面友好、操作簡(jiǎn)單、維護(hù)方便,具有較高的實(shí)際應(yīng)用價(jià)值。
評(píng)論