馬江凱,呂子友,何英昊(輔導老師)
(大連理工大學城市學院,遼寧大連,116000)
LabVIEW ( Laboratory Virtual Instrument Engineering Workbench,實驗室虛擬儀器工作平臺)是美國NI公司推出的一種基于圖形編程方法的虛擬儀器軟件開發工具,用圖標代替文本行創建應用程序,采用數據流編程方式,程序框圖中節點之間的數據流向決定了程序及函數的執行順序。LabVIEW廣泛地被工業界、學術界和研究實驗室所接受,視為一個標準的數據采集和儀器控制軟件。其程序設計可以大量減少硬件設備的使用,節省了更多資源。可充分發揮計算機的能力,有強大的數據處理功能,可以創造出功能更強的儀器。用戶可以根據自己的需要定義和制造各種儀器。
設計分為登錄模塊,注冊模塊和溫濕度檢測系統模塊,各個模塊實現各自對應的功能,登錄模塊:驗證用戶名及密碼。注冊模塊:注冊新的用戶名并設置密碼。溫濕度檢測系統模塊:利用隨機數產生溫度,共計采集十次數據,并將數據由大到小排序、求出平均溫度;利用隨機數產生濕度,實時顯示濕度;以流水燈形式顯示所測的次數。注:后文使用文件a.txt為用戶名+“空格”+密碼文件;b.txt為用戶名文件。

圖2 注冊模塊(a)

圖3 注冊模塊(b)
輸入創建的用戶名及密碼,單擊“確定注冊”按鈕。讀取用戶名文件中的文本,與現創建用戶名進行對比。若對比相等,則單按鈕對話框顯示“用戶名已注冊,請重新輸入用戶名”;若對比不相等,則讀取用戶名及密碼的文件中的文本與新創建(用戶名+“空格常量”+密碼)、“換行符常量”形成一個新的文本,存儲到指定目錄下的文件,單按鈕對話框顯示“注冊成功”。

圖5 登錄模塊(a)

圖4 注冊模塊-對比模塊
從用戶名文件讀取所建所有用戶名,將輸入用戶名字符串與其一行一行對比,若“搜索/拆分字符串”未找到相同字符串,則返回為空;若搜索相同字符串,則拆分字符串,將此行字符串及以后內容返回。“選行并添加至字符串”選取此行輸出,與輸入字符串進行對比。
讀取用戶名文件的文本,與輸入的用戶名進行對比(同注冊模塊中對比模塊),輸入錯誤,顯示“用戶名錯誤,請重新登陸”,輸入正確進行密碼對比,密碼錯誤顯示“密碼錯誤,請重新登陸”,密碼正確顯示“登陸成功”進入溫濕度檢測系統程序框圖。

圖6 登錄模塊(b)
讀取a.txt(用戶名和密碼)文件文本,將與輸入用戶名一致所在行及后面文本拆分保留,并取出對應用戶名及密碼所在行,用“截取字符串”從用戶名字符串長度加1(創建時用戶名與密碼之間存在“空格常量”)的長度截取剩余部分,將此部分與輸入密碼進行對比。

圖7 登錄模塊(c)

圖8 登錄模塊-對比模塊

圖9 溫濕度檢測系統模塊(a)
利用隨機數產生溫度,開始時設置溫度上下限(不設置默認為0)。溫度正常為工作狀態1,顯示“溫度正常!”。當溫度超過上限或者低于下限時為工作狀態2,開始報警,顯示“警報!溫度超限!當前溫度為”并在其下方顯示當前溫度。一次測量十個數據,由溫度計顯示實時溫度,由波形圖記錄測量的數據,將十次數據記錄到數組中(隱藏),輸出十次數據由大到小的排序,最后計算十個數據的平均值顯示輸出。再由隨機數產生數據作為濕度,顯示度數于波形圖,實時顯示示數和實時“水平填充滑動桿”顯示。設置十個溫度所需流水燈實時同步顯示當前測量次數。

圖10 溫度檢測系統模塊(b)
前面板見圖11所示。

圖1 設計思路

圖11 前面板
在前面板,連續運行前選擇“注冊”,輸入注冊用戶名和注冊密碼(以aaaa 1111、bbbbb 22222、aaaaa 1111為例)注冊。而后結束連續運行,選擇“登錄”,使用已注冊用戶名及密碼登錄。登錄成功則開始溫濕度檢測系統的運行,可隨時結束連續運行。進行過程中出現的現象如圖12所示。注:一次連續運行僅執行一個模式,請選擇模式后連續運行。

圖12
注冊后的txt文件如圖13所示。注:a.txt為用戶名+“空格”+密碼;b.txt為用戶名。

圖13
登錄成功后的溫濕度檢測系統(設置溫度下限30,溫度上限70),如圖14所示。注:登錄前設置溫度上下限(不設置默認為0)。

圖14
本次實驗設計使用LabVIEW平臺,運用圖形編程的方法設計帶有用戶登錄的溫濕度檢測系統,從開始的溫濕度檢測系統,參考上課所學內容中設計模塊,如:While循環結構、條件結構,設計隨機數產生數據的子VI與其他需要此部分的程序相調用等等,實現帶有溫度上下限的數據采集及顯示,后拓展至計算固定個數數據的平均溫度值,并以流水燈的形式實時顯示測量溫度次數,結合用戶登錄及用戶創建完成本次設計。設計流水燈時也嘗試過不同循環結構,不同連接方法設計最后選擇了本文的設計方法,在用戶創建登錄模塊設計中也存在許多困難,通過查找相關文獻,經過反復的設計修改完成了基本的功能,最終達到了預期的目標,本次實驗設計仍有更多的發展改進空間。