亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        LabVIEW在測(cè)控系統(tǒng)登錄與管理中的應(yīng)用

        2012-12-01 10:08:32萬(wàn)文略崔冰波
        自動(dòng)化儀表 2012年4期
        關(guān)鍵詞:數(shù)據(jù)庫(kù)用戶信息

        萬(wàn)文略 崔冰波

        (重慶理工大學(xué)機(jī)械檢測(cè)技術(shù)與裝備教育部工程中心,重慶 400054)

        0 引言

        虛擬儀器 (virtual instruments,VI)是美國(guó)National Instruments(NI)公司在其產(chǎn)品LabVIEW中首先提出的概念。隨著現(xiàn)代測(cè)試技術(shù)與儀器的發(fā)展,虛擬儀器概念已經(jīng)發(fā)展成為一種創(chuàng)新的儀器設(shè)計(jì)思想,成為設(shè)計(jì)復(fù)雜測(cè)控系統(tǒng)與測(cè)試儀器的主要方法和手段。

        現(xiàn)代測(cè)控系統(tǒng)大多需要對(duì)被測(cè)目標(biāo)進(jìn)行全方位的檢測(cè)以及多傳感器網(wǎng)絡(luò)協(xié)調(diào)應(yīng)用,這就使得產(chǎn)生的數(shù)據(jù)量急劇增長(zhǎng),采用數(shù)據(jù)庫(kù)技術(shù)可以準(zhǔn)確地反映各類數(shù)據(jù)間的關(guān)系。多數(shù)工業(yè)測(cè)控系統(tǒng)需要設(shè)計(jì)系統(tǒng)用戶的登錄與管理模塊,它主要用來(lái)保障系統(tǒng)的正常運(yùn)行。設(shè)置了軟件使用權(quán)限以后,能夠?qū)⒎菍I(yè)人員“拒之門外”,有效防止誤操作引起的系統(tǒng)運(yùn)行障礙,保護(hù)工業(yè)測(cè)試現(xiàn)場(chǎng)的數(shù)據(jù)安全與可靠性。由于大多數(shù)LabVIEW的程序針對(duì)的是工業(yè)測(cè)控領(lǐng)域,其對(duì)關(guān)于操作對(duì)象、配套設(shè)施的知識(shí)要求都很高,因此,設(shè)置對(duì)硬件設(shè)施參數(shù)的保護(hù)能保障測(cè)試過(guò)程的準(zhǔn)確性[1]。

        本文針對(duì)一款工業(yè)測(cè)控系統(tǒng),開發(fā)了用戶登錄與管理模塊,顯著地提高了系統(tǒng)的使用安全性。同時(shí),本文描述的數(shù)據(jù)庫(kù)訪問方法也可以實(shí)現(xiàn)測(cè)控系統(tǒng)中其他數(shù)據(jù)的有效組織與管理,其開發(fā)工具為L(zhǎng)abVIEW8.2,操作系統(tǒng)使用 Windows XP。

        1 LabVIEW與數(shù)據(jù)庫(kù)

        1.1 LabVIEW的數(shù)據(jù)庫(kù)訪問

        LabVIEW中常用的數(shù)據(jù)庫(kù)訪問方式有以下五種[2-4]。

        ①使用LabVIEW的ActiveX功能,調(diào)用Microsoft ADO控件,利用SQL語(yǔ)言實(shí)現(xiàn)數(shù)據(jù)庫(kù)訪問。該方法需要用戶對(duì)Microsoft ADO控件和SQL語(yǔ)言有較深的理解,編程復(fù)雜。

        ②使用NI公司的附加工具包LabVIEW SQL Toolkit進(jìn)行數(shù)據(jù)庫(kù)的訪問。該工具包集成了一系列的高級(jí)功能模塊,這些模塊封裝了大多數(shù)的數(shù)據(jù)庫(kù)操作和一些高級(jí)的數(shù)據(jù)庫(kù)訪問功能,其優(yōu)點(diǎn)是易于理解、操作簡(jiǎn)單,用戶不需要學(xué)習(xí)SQL語(yǔ)法,但這種工具包價(jià)格昂貴,系統(tǒng)成本高,大多數(shù)用戶無(wú)法承受。

        ③通過(guò)第三方開發(fā)的免費(fèi)LabVIEW數(shù)據(jù)庫(kù)訪問工具包LabSQL來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的訪問。LabSQL利用Microsoft ADO和SQL語(yǔ)言來(lái)完成數(shù)據(jù)庫(kù)的訪問,將復(fù)雜的底層ADO和SQL操作封裝成一系列的LabSQL VIs。該方法編程簡(jiǎn)單、快捷,無(wú)需對(duì)數(shù)據(jù)庫(kù)底層作深入了解,支持Windows平臺(tái)下的任何基于開放式數(shù)據(jù)庫(kù)連接(open database connectivity,ODBC)的數(shù)據(jù)庫(kù)。

        ④ 通過(guò)調(diào)用動(dòng)態(tài)鏈接庫(kù)(dynamic link library,DLL)實(shí)現(xiàn)數(shù)據(jù)庫(kù)訪問,先利用其他語(yǔ)言如Visual C++編寫DLL,再利用LabVIEW的調(diào)用庫(kù)函數(shù)節(jié)點(diǎn)(calling function node,CLFN)調(diào)用此DLL訪問數(shù)據(jù)庫(kù)。該方法需要從底層進(jìn)行復(fù)雜的編程才能實(shí)現(xiàn),對(duì)于非專業(yè)編程人員來(lái)講是不現(xiàn)實(shí)的。

        ⑤利用中間文件存取數(shù)據(jù),先將數(shù)據(jù)存入文件之中,待測(cè)量結(jié)束后再用專門的工具將數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)中。該方法需要磁盤文件作為中介且不具有實(shí)時(shí)性,使用不方便。

        前三種方法是工程應(yīng)用過(guò)程中經(jīng)常使用的,本文設(shè)計(jì)的數(shù)據(jù)庫(kù)訪問過(guò)程是采用免費(fèi)、跨平臺(tái)的LabVIEW數(shù)據(jù)庫(kù)訪問工具包LabSQL實(shí)現(xiàn)的。

        1.2 數(shù)據(jù)源的注冊(cè)

        注冊(cè)數(shù)據(jù)源的方式有手動(dòng)創(chuàng)建和動(dòng)態(tài)創(chuàng)建兩種。手動(dòng)創(chuàng)建的步驟為:在開始→控制面板→性能和維護(hù)→管理工具→數(shù)據(jù)源(ODBC)下的數(shù)據(jù)源管理器中選擇添加數(shù)據(jù)源,選擇數(shù)據(jù)源的驅(qū)動(dòng)程序,然后綁定數(shù)據(jù)庫(kù),給數(shù)據(jù)源命名。這樣就在主機(jī)上完成了數(shù)據(jù)源的注冊(cè),本設(shè)計(jì)數(shù)據(jù)源僅包括系統(tǒng)的用戶登錄數(shù)據(jù),所以該方法簡(jiǎn)單易行。有些情況下系統(tǒng)使用的數(shù)據(jù)源可能是多選或不確定的,這種情況下手動(dòng)創(chuàng)建數(shù)據(jù)源就無(wú)法滿足系統(tǒng)的要求,區(qū)別于采用修改注冊(cè)表的方式動(dòng)態(tài)創(chuàng)建數(shù)據(jù)源[3]。本設(shè)計(jì)首先獲取VI應(yīng)用程序文件所在的絕對(duì)路徑,從得到的路徑字符串中獲得當(dāng)前目錄;然后在當(dāng)前目錄中創(chuàng)建名稱為“數(shù)據(jù)庫(kù)文件”的文件夾,用以存放數(shù)據(jù)庫(kù)文件;最后使用連接字符串控件實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接字符串的創(chuàng)建。數(shù)據(jù)源動(dòng)態(tài)注冊(cè)實(shí)現(xiàn)代碼如圖1所示。

        圖1 數(shù)據(jù)源的動(dòng)態(tài)注冊(cè)實(shí)現(xiàn)代碼Fig.1 Implementation for dynamic registration of data source

        2 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

        2.1 系統(tǒng)主界面設(shè)計(jì)

        軟件人機(jī)界面是評(píng)價(jià)軟件的重要指標(biāo),良好的人機(jī)界面可顯著減少誤操作,方便用戶使用。構(gòu)建界面友好的人機(jī)界面,主要包括協(xié)調(diào)的色調(diào)搭配、鮮明的控件排版以及軟件功能主次的突出顯示等。LabVIEW可以快速地開發(fā)出良好的人機(jī)交互界面,這得益于其高效的G語(yǔ)言編程方式和靈活的控件屬性設(shè)置[5]。本文設(shè)計(jì)的系統(tǒng)包括登錄系統(tǒng)、密碼修改、用戶管理等模塊。當(dāng)系統(tǒng)開始運(yùn)行時(shí),界面上只存在登錄系統(tǒng)和退出系統(tǒng)事件,初始時(shí)通過(guò)設(shè)置控件的“可見”屬性,使密碼修改、用戶管理和進(jìn)入系統(tǒng)模塊為隱藏狀態(tài)。當(dāng)用戶輸入的用戶名和密碼通過(guò)登錄系統(tǒng)查詢到相應(yīng)的信息后,就更新用戶的界面狀態(tài)。登錄系統(tǒng)后,主界面顯示用戶登錄系統(tǒng)的歷史信息和當(dāng)前用戶的權(quán)限,以便于用戶的使用管理。

        2.2 系統(tǒng)詳細(xì)設(shè)計(jì)

        2.2.1 系統(tǒng)初始化

        系統(tǒng)的初始化主要完成兩個(gè)任務(wù):隱藏相關(guān)的控件,清空輸入和顯示字符串控件;鼠標(biāo)指向用戶名輸入欄。

        2.2.2 用戶信息驗(yàn)證

        用戶信息的驗(yàn)證主要由兩部分組成,首先是數(shù)據(jù)庫(kù)信息的讀取,本系統(tǒng)設(shè)計(jì)的數(shù)據(jù)庫(kù)只包含用戶登錄信息表。記錄集的遍歷查詢實(shí)現(xiàn)代碼如圖2所示。程序首先使用數(shù)據(jù)源動(dòng)態(tài)注冊(cè)SubVI,生成數(shù)據(jù)庫(kù)連接字符串,然后執(zhí)行SQL查詢語(yǔ)句,導(dǎo)出數(shù)據(jù)庫(kù)數(shù)據(jù)并顯示到名稱為ReadData的表格控件中,其中NI為數(shù)據(jù)庫(kù)文件名稱,數(shù)據(jù)庫(kù)用戶名為admin,密碼為123。

        圖2 數(shù)據(jù)表信息的遍歷查詢實(shí)現(xiàn)代碼Fig.2 Implementation for traversal inquiry of data sheet information

        另外一部分是用戶信息的驗(yàn)證,用戶信息驗(yàn)證部分主要實(shí)現(xiàn)用戶登錄權(quán)限的查詢。以用戶名和用戶密碼為參數(shù)查詢記錄集的匹配數(shù)據(jù),如包含此用戶且密碼正確,則進(jìn)入到權(quán)限分級(jí)模塊。該部分的實(shí)現(xiàn)代碼如圖3所示,其中外層的條件語(yǔ)句實(shí)現(xiàn)程序運(yùn)行的總體使能。

        程序首先從讀取的數(shù)據(jù)庫(kù)信息中獲得列索引的一維數(shù)組(該數(shù)組存儲(chǔ)的是用戶名信息),再調(diào)用搜索一維數(shù)組函數(shù),對(duì)搜索結(jié)果進(jìn)行判斷后,進(jìn)入密碼的匹配以及用戶登錄信息的分割輸出顯示。

        圖3 登錄信息的驗(yàn)證實(shí)現(xiàn)代碼Fig.3 Implementation for verification of the login information

        當(dāng)用戶信息驗(yàn)證完成后,對(duì)系統(tǒng)用戶的權(quán)限進(jìn)行判斷,使系統(tǒng)功能分級(jí)顯示給不同權(quán)限的用戶。其實(shí)現(xiàn)方法是在得到當(dāng)前用戶的登錄信息且密碼正確后,判斷該用戶的權(quán)限:如果是管理員,就隱藏登錄系統(tǒng),顯示進(jìn)入系統(tǒng)、用戶管理模塊和密碼修改模塊;如果是普通用戶,就隱藏系統(tǒng)用戶的管理模塊,其余功能與管理員相同。當(dāng)用戶密碼輸入錯(cuò)誤且繼續(xù)出錯(cuò)超過(guò)3次時(shí),就彈出提示框,并將此次登錄活動(dòng)記錄到日志文件中。

        2.2.3 用戶信息修改

        用戶在完成信息驗(yàn)證后,就獲得了修改自己密碼信息的權(quán)限。該過(guò)程主要包括編輯新的密碼和更新數(shù)據(jù)庫(kù)中的對(duì)應(yīng)信息。其實(shí)現(xiàn)代碼如圖4所示。

        圖4 數(shù)據(jù)表信息更新實(shí)現(xiàn)代碼Fig.4 Implementation for the data sheet information update

        編輯用戶的新密碼主要采用確認(rèn)密碼的形式,防止用戶遺忘和誤輸入,并基于輸入框的事件元素V鍵,設(shè)置鍵盤按鍵的連續(xù)操作。更新數(shù)據(jù)庫(kù)中的信息是修改用戶信息的最終目的,以確保用戶下一次登錄時(shí)信息有效。

        2.2.4 登錄信息的更新

        用戶登錄系統(tǒng)后,系統(tǒng)的相應(yīng)功能也就分級(jí)完成,這樣用戶點(diǎn)擊“進(jìn)入系統(tǒng)”就完成了整個(gè)用戶登錄與管理系統(tǒng)的使用。由于本系統(tǒng)只設(shè)計(jì)了登錄與用戶管理模塊,所以進(jìn)入系統(tǒng)事件發(fā)生后就停止了VI主界面的運(yùn)行,但用戶的登錄信息,包括登錄的時(shí)間、登錄的次數(shù)都會(huì)在下一次的登錄系統(tǒng)后顯示出來(lái),這在工程實(shí)踐中是十分有用的。這些參數(shù)的更新是在“進(jìn)入系統(tǒng)”事件中完成的,其實(shí)現(xiàn)過(guò)程與用戶信息修改類似。

        2.2.5 管理模塊的設(shè)計(jì)

        為有效管理軟件操作人員的數(shù)量和權(quán)限,需要修改用戶表中的數(shù)據(jù)項(xiàng)。修改可通過(guò)兩種方式實(shí)現(xiàn):一種是直接修改數(shù)據(jù)庫(kù),但是在沒有安裝Access的工控機(jī)上難以實(shí)現(xiàn)且操作不靈活;另一種方法是為系統(tǒng)增加用戶管理模塊,方便系統(tǒng)用戶的增刪查改。本文采用后者完成對(duì)系統(tǒng)用戶的管理。在管理過(guò)程中,設(shè)置了管理員和普通用戶身份,其中,管理員能夠進(jìn)行系統(tǒng)用戶的管理,包括添加系統(tǒng)用戶、刪除系統(tǒng)用戶和修改系統(tǒng)用戶權(quán)限與密碼。

        由于增加用戶與修改用戶只在用戶名的處理上有區(qū)別,所以增加和修改用戶信息共用了編輯信息SubVI前面板。當(dāng)增加用戶事件發(fā)生時(shí),用戶名編輯框?yàn)檩斎?當(dāng)修改用戶事件發(fā)生時(shí)(列表框的雙擊事件),用戶名設(shè)置為輸出。通過(guò)設(shè)置編輯框?qū)傩约纯赏瓿尚薷暮吞砑咏缑娴膹?fù)用,用戶編輯完成后即可更新數(shù)據(jù)庫(kù)中的數(shù)據(jù),其實(shí)現(xiàn)代碼如圖5所示,其中UserEdit和 UserAdd 為 SubVI。

        圖5 系統(tǒng)新用戶添加實(shí)現(xiàn)代碼Fig.5 Implementation for adding new user into the system

        單擊列表框,選中一行后,觸發(fā)列表框單擊事件;獲取該行的用戶信息后,就可將它作為參數(shù),刪除用戶在數(shù)據(jù)庫(kù)中的記錄。列表框雙擊事件處理實(shí)現(xiàn)代碼如圖6所示,在事件處理框圖中完成彈出用戶編輯對(duì)話框,此時(shí)用戶名作為用戶表的主鍵是不能修改的。完成用戶信息的編輯后,就可以將編輯后的信息更新到數(shù)據(jù)庫(kù)中,更新數(shù)據(jù)庫(kù)的子程序UpdateData與登錄參數(shù)的更新過(guò)程類似。

        圖6 列表框雙擊事件處理實(shí)現(xiàn)代碼Fig.6 Implementation for double-click event processing of list box

        2.3 SubVI與事件結(jié)構(gòu)

        本系統(tǒng)的設(shè)計(jì)過(guò)程中多次用到SubVI的調(diào)用和事件結(jié)構(gòu)的編寫,作者在編寫程序時(shí)也總結(jié)了一些關(guān)于兩者的用法與注意事項(xiàng),主要包括以下3點(diǎn)。

        ①在設(shè)置SubVI界面運(yùn)行不彈出時(shí),SubVI中最好不要使用循環(huán),如果界面彈出,則需考慮循環(huán)結(jié)束條件,如本設(shè)計(jì)中的用戶驗(yàn)證信息程序、用戶登錄歷史信息更新等程序;

        ②事件結(jié)構(gòu)用在主控面板上容易實(shí)現(xiàn)程序與面板操作的直接交互,但是事件處理過(guò)程不適合運(yùn)行復(fù)雜的程序,如包含的SubVI中如果含有沒有處理好的循環(huán),那么事件結(jié)構(gòu)中的處理程序無(wú)法返回到主面板中,這樣主面板上觸發(fā)的其他事件就無(wú)法工作;

        ③ 事件結(jié)構(gòu)中超時(shí)事件的使用[6],事件結(jié)構(gòu)左上角的漏斗指明該事件處理程序在無(wú)其他事件的情況下,延時(shí)多長(zhǎng)時(shí)間進(jìn)入“超時(shí)”事件處理分支。編程實(shí)踐中配合while循環(huán)中的移位寄存器使用,可以顯著地?cái)U(kuò)展程序功能。

        3 LabVIEW調(diào)試技術(shù)

        類似文本語(yǔ)言開發(fā)環(huán)境,LabVIEW環(huán)境集成了豐富的調(diào)試策略[7]。下面結(jié)合本次設(shè)計(jì)過(guò)程,簡(jiǎn)單地闡述labVIEW調(diào)試技術(shù)的使用方法。

        LabVIEW提供斷裂的箭頭,以指示當(dāng)前程序含有語(yǔ)法錯(cuò)誤,連線過(guò)程中實(shí)時(shí)提示錯(cuò)誤類型。同時(shí)LabVIEW設(shè)有高亮運(yùn)行模式,用戶在單步運(yùn)行程序的過(guò)程中,可以通過(guò)此種方式觀察程序運(yùn)行的實(shí)時(shí)數(shù)據(jù)。右擊數(shù)據(jù)線選擇Probe命令,數(shù)據(jù)通過(guò)該線段時(shí),探針可顯示數(shù)據(jù)的值。此外,可設(shè)置程序運(yùn)行斷點(diǎn),單步運(yùn)行程序,遇到SubVI,可以配合“跟入”、“跳出”命令出入SubVI,觀察參數(shù)傳遞過(guò)程中的數(shù)據(jù)流,以完成進(jìn)一步的調(diào)試。

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

        本文設(shè)計(jì)了測(cè)控系統(tǒng)用戶登錄和管理模塊的方案,主要涉及界面事件處理和使用 LabSQL操作MSAcess。測(cè)試結(jié)果表明,本設(shè)計(jì)包含的用戶管理模塊可方便地在工控機(jī)上添加或者修改系統(tǒng)用戶,同時(shí),由于系統(tǒng)具有高內(nèi)聚和松散耦合的特點(diǎn),可以作為大型應(yīng)用程序的組件。文章中介紹的LabVIEW訪問數(shù)據(jù)庫(kù)的方法可用來(lái)組織和管理工業(yè)測(cè)控系統(tǒng)中的其他數(shù)據(jù)。

        [1]王魯濤,羅馬吉.基于LabVIEW用戶登錄系統(tǒng)設(shè)計(jì)[J].軟件導(dǎo)刊,2009,8(6):86 -87.

        [2]吉順祥,劉旺鎖,宋曉婷.基于LabVIEW的數(shù)據(jù)庫(kù)訪問技術(shù)[J].船海工程,2007,36(3):125 -128.

        [3]羅文輝.LabVIEW中的數(shù)據(jù)庫(kù)訪問[J].武漢理工大學(xué)學(xué)報(bào):信息與管理工程版,2006,28(3):13 -16.

        [4]畢虎,律方成,李燕青,等.LabVIEW中訪問數(shù)據(jù)庫(kù)的幾種不同方法[J].微計(jì)算機(jī)信息,2006,22(1):131 -134.

        [5]陳錫輝.LabVIEW8.20程序設(shè)計(jì)從入門到精通[M].北京:清華大學(xué)出版社,2007.

        [6]Conwy J,Watts S.軟件工程方法在 LabVIEW 中的應(yīng)用[M].羅霄,周毅,譯.北京:清華大學(xué)出版社,2006.

        [7]Travis J.LabVIEW 大學(xué)實(shí)用教程[M].喬瑞萍,譯.北京:電子工業(yè)出版社,2008.

        猜你喜歡
        數(shù)據(jù)庫(kù)用戶信息
        訂閱信息
        中華手工(2017年2期)2017-06-06 23:00:31
        數(shù)據(jù)庫(kù)
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        數(shù)據(jù)庫(kù)
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        數(shù)據(jù)庫(kù)
        數(shù)據(jù)庫(kù)
        如何獲取一億海外用戶
        展會(huì)信息
        国产成人亚洲综合| 国内色精品视频在线网址| 在线高清亚洲精品二区| 麻豆精品国产av在线网址| 亚洲综合激情五月丁香六月| 人人狠狠综合久久亚洲婷婷| 女人被躁到高潮嗷嗷叫免费软| 一本大道久久a久久综合精品| 婷婷五月深深久久精品| 国产99久久精品一区二区| 无码天堂亚洲国产av麻豆| 成年人视频在线播放麻豆| 国产毛片视频一区二区| 99精品国产一区二区| 一级呦女专区毛片| 手机在线观看亚洲av| 国产精品内射久久一级二| 小荡货奶真大水真多紧视频| 亚洲伊人久久大香线蕉影院| 国产一级黄色性生活片| 久久精品熟女亚洲av麻| 国产精品免费精品自在线观看| jjzz日本护士| 国产麻豆国精精品久久毛片| 国产大屁股视频免费区| 131美女爱做视频| 天天澡天天揉揉AV无码人妻斩| 国产精品伦理久久一区| 亚洲av无码专区在线观看下载| 老太脱裤让老头玩ⅹxxxx| 亚洲国产av剧一区二区三区| 蜜桃臀av一区二区三区| 午夜福利试看120秒体验区 | 久久久久久99精品| 精品国产一区二区三区av新片| 欧美激情肉欲高潮视频| vr成人片在线播放网站| 亚洲伊人免费综合网站| 开心五月婷婷激情综合网| 成人三级a视频在线观看| 亚洲一区二区欧美色妞影院|