馬江凱,呂子友,何英昊(輔導(dǎo)老師)
(大連理工大學(xué)城市學(xué)院,遼寧大連,116000)
LabVIEW ( Laboratory Virtual Instrument Engineering Workbench,實(shí)驗(yàn)室虛擬儀器工作平臺(tái))是美國NI公司推出的一種基于圖形編程方法的虛擬儀器軟件開發(fā)工具,用圖標(biāo)代替文本行創(chuàng)建應(yīng)用程序,采用數(shù)據(jù)流編程方式,程序框圖中節(jié)點(diǎn)之間的數(shù)據(jù)流向決定了程序及函數(shù)的執(zhí)行順序。LabVIEW廣泛地被工業(yè)界、學(xué)術(shù)界和研究實(shí)驗(yàn)室所接受,視為一個(gè)標(biāo)準(zhǔn)的數(shù)據(jù)采集和儀器控制軟件。其程序設(shè)計(jì)可以大量減少硬件設(shè)備的使用,節(jié)省了更多資源??沙浞职l(fā)揮計(jì)算機(jī)的能力,有強(qiáng)大的數(shù)據(jù)處理功能,可以創(chuàng)造出功能更強(qiáng)的儀器。用戶可以根據(jù)自己的需要定義和制造各種儀器。
設(shè)計(jì)分為登錄模塊,注冊模塊和溫濕度檢測系統(tǒng)模塊,各個(gè)模塊實(shí)現(xiàn)各自對(duì)應(yīng)的功能,登錄模塊:驗(yàn)證用戶名及密碼。注冊模塊:注冊新的用戶名并設(shè)置密碼。溫濕度檢測系統(tǒng)模塊:利用隨機(jī)數(shù)產(chǎn)生溫度,共計(jì)采集十次數(shù)據(jù),并將數(shù)據(jù)由大到小排序、求出平均溫度;利用隨機(jī)數(shù)產(chǎn)生濕度,實(shí)時(shí)顯示濕度;以流水燈形式顯示所測的次數(shù)。注:后文使用文件a.txt為用戶名+“空格”+密碼文件;b.txt為用戶名文件。
圖2 注冊模塊(a)
圖3 注冊模塊(b)
輸入創(chuàng)建的用戶名及密碼,單擊“確定注冊”按鈕。讀取用戶名文件中的文本,與現(xiàn)創(chuàng)建用戶名進(jìn)行對(duì)比。若對(duì)比相等,則單按鈕對(duì)話框顯示“用戶名已注冊,請(qǐng)重新輸入用戶名”;若對(duì)比不相等,則讀取用戶名及密碼的文件中的文本與新創(chuàng)建(用戶名+“空格常量”+密碼)、“換行符常量”形成一個(gè)新的文本,存儲(chǔ)到指定目錄下的文件,單按鈕對(duì)話框顯示“注冊成功”。
圖5 登錄模塊(a)
圖4 注冊模塊-對(duì)比模塊
從用戶名文件讀取所建所有用戶名,將輸入用戶名字符串與其一行一行對(duì)比,若“搜索/拆分字符串”未找到相同字符串,則返回為空;若搜索相同字符串,則拆分字符串,將此行字符串及以后內(nèi)容返回。“選行并添加至字符串”選取此行輸出,與輸入字符串進(jìn)行對(duì)比。
讀取用戶名文件的文本,與輸入的用戶名進(jìn)行對(duì)比(同注冊模塊中對(duì)比模塊),輸入錯(cuò)誤,顯示“用戶名錯(cuò)誤,請(qǐng)重新登陸”,輸入正確進(jìn)行密碼對(duì)比,密碼錯(cuò)誤顯示“密碼錯(cuò)誤,請(qǐng)重新登陸”,密碼正確顯示“登陸成功”進(jìn)入溫濕度檢測系統(tǒng)程序框圖。
圖6 登錄模塊(b)
讀取a.txt(用戶名和密碼)文件文本,將與輸入用戶名一致所在行及后面文本拆分保留,并取出對(duì)應(yīng)用戶名及密碼所在行,用“截取字符串”從用戶名字符串長度加1(創(chuàng)建時(shí)用戶名與密碼之間存在“空格常量”)的長度截取剩余部分,將此部分與輸入密碼進(jìn)行對(duì)比。
圖7 登錄模塊(c)
圖8 登錄模塊-對(duì)比模塊
圖9 溫濕度檢測系統(tǒng)模塊(a)
利用隨機(jī)數(shù)產(chǎn)生溫度,開始時(shí)設(shè)置溫度上下限(不設(shè)置默認(rèn)為0)。溫度正常為工作狀態(tài)1,顯示“溫度正常!”。當(dāng)溫度超過上限或者低于下限時(shí)為工作狀態(tài)2,開始報(bào)警,顯示“警報(bào)!溫度超限!當(dāng)前溫度為”并在其下方顯示當(dāng)前溫度。一次測量十個(gè)數(shù)據(jù),由溫度計(jì)顯示實(shí)時(shí)溫度,由波形圖記錄測量的數(shù)據(jù),將十次數(shù)據(jù)記錄到數(shù)組中(隱藏),輸出十次數(shù)據(jù)由大到小的排序,最后計(jì)算十個(gè)數(shù)據(jù)的平均值顯示輸出。再由隨機(jī)數(shù)產(chǎn)生數(shù)據(jù)作為濕度,顯示度數(shù)于波形圖,實(shí)時(shí)顯示示數(shù)和實(shí)時(shí)“水平填充滑動(dòng)桿”顯示。設(shè)置十個(gè)溫度所需流水燈實(shí)時(shí)同步顯示當(dāng)前測量次數(shù)。
圖10 溫度檢測系統(tǒng)模塊(b)
前面板見圖11所示。
圖1 設(shè)計(jì)思路
圖11 前面板
在前面板,連續(xù)運(yùn)行前選擇“注冊”,輸入注冊用戶名和注冊密碼(以aaaa 1111、bbbbb 22222、aaaaa 1111為例)注冊。而后結(jié)束連續(xù)運(yùn)行,選擇“登錄”,使用已注冊用戶名及密碼登錄。登錄成功則開始溫濕度檢測系統(tǒng)的運(yùn)行,可隨時(shí)結(jié)束連續(xù)運(yùn)行。進(jìn)行過程中出現(xiàn)的現(xiàn)象如圖12所示。注:一次連續(xù)運(yùn)行僅執(zhí)行一個(gè)模式,請(qǐng)選擇模式后連續(xù)運(yùn)行。
圖12
注冊后的txt文件如圖13所示。注:a.txt為用戶名+“空格”+密碼;b.txt為用戶名。
圖13
登錄成功后的溫濕度檢測系統(tǒng)(設(shè)置溫度下限30,溫度上限70),如圖14所示。注:登錄前設(shè)置溫度上下限(不設(shè)置默認(rèn)為0)。
圖14
本次實(shí)驗(yàn)設(shè)計(jì)使用LabVIEW平臺(tái),運(yùn)用圖形編程的方法設(shè)計(jì)帶有用戶登錄的溫濕度檢測系統(tǒng),從開始的溫濕度檢測系統(tǒng),參考上課所學(xué)內(nèi)容中設(shè)計(jì)模塊,如:While循環(huán)結(jié)構(gòu)、條件結(jié)構(gòu),設(shè)計(jì)隨機(jī)數(shù)產(chǎn)生數(shù)據(jù)的子VI與其他需要此部分的程序相調(diào)用等等,實(shí)現(xiàn)帶有溫度上下限的數(shù)據(jù)采集及顯示,后拓展至計(jì)算固定個(gè)數(shù)數(shù)據(jù)的平均溫度值,并以流水燈的形式實(shí)時(shí)顯示測量溫度次數(shù),結(jié)合用戶登錄及用戶創(chuàng)建完成本次設(shè)計(jì)。設(shè)計(jì)流水燈時(shí)也嘗試過不同循環(huán)結(jié)構(gòu),不同連接方法設(shè)計(jì)最后選擇了本文的設(shè)計(jì)方法,在用戶創(chuàng)建登錄模塊設(shè)計(jì)中也存在許多困難,通過查找相關(guān)文獻(xiàn),經(jīng)過反復(fù)的設(shè)計(jì)修改完成了基本的功能,最終達(dá)到了預(yù)期的目標(biāo),本次實(shí)驗(yàn)設(shè)計(jì)仍有更多的發(fā)展改進(jìn)空間。