許麗川,唐凱飛,梁永春,白連生,叢培強,李逢春
(電子科技大學 機械電子工程學院,四川 成都 611731)
隨著計算機技術(shù)和網(wǎng)絡技術(shù)的迅速發(fā)展,各類信息化手段在高校實驗教學中得到了廣泛和多樣的應用。國內(nèi)各高校實驗教學信息化手段主要包括:實驗項目信息化、實驗預約系統(tǒng)、實驗教學輔助系統(tǒng)、開放式實驗預習系統(tǒng)、演示的實驗系統(tǒng),虛擬實驗項目以及遠程實驗系統(tǒng)等[1]。東南大學通過實驗教學信息資源與管理平臺建設,創(chuàng)建并推廣了計算機TA教學模式,推進了實驗教學過程的網(wǎng)絡管理[2]。
實驗項目的信息化是對傳統(tǒng)常規(guī)實驗手段的重大創(chuàng)新,主要表現(xiàn)為兩種取向:數(shù)字化和虛擬化[3]。數(shù)字實驗系統(tǒng)是由傳感器、數(shù)據(jù)采集設備、計算機系統(tǒng)及配套軟件構(gòu)成,有助于實驗結(jié)果的數(shù)字化和精確化測量與顯示;而虛擬實驗系統(tǒng)則是利用虛擬技術(shù),為師生提供一個和計算機進行交互操作的環(huán)境來模擬實際的實驗操作。湖南農(nóng)業(yè)大學信息科學技術(shù)學院在信號與系統(tǒng)實驗教學改革中,設計開發(fā)了虛擬實驗系統(tǒng),使學生可以方便地更改實驗參數(shù)、設計實驗步驟、創(chuàng)設實驗情境進行“研究式”和“協(xié)作式”的學習[4];華東師范大學設計開發(fā)了“溫度傳感器特性的研究”虛擬實驗項目,并應用于大學物理實驗教學[5]。而國內(nèi)常見的數(shù)字化實驗系統(tǒng)有基于LabVIEW和聲卡數(shù)據(jù)采集的中學物理實驗儀器系統(tǒng)、江蘇艾迪生數(shù)字實驗室和朗威數(shù)字化實驗系統(tǒng)等[3],其中,隨著虛擬儀器技術(shù)的發(fā)展,LabVIEW在實驗或?qū)嵺`教學中的應用也逐漸廣泛和多樣。
基于虛擬儀器的LabVIEW軟件是一個高效的設計軟件,它結(jié)合了簡單易用的圖形化開發(fā)環(huán)境與強大的硬件驅(qū)動、圖形顯示能力,高級數(shù)學分析庫和便捷快速的程序設計,為過程測量控制及實驗室研究和自動化應用提供了一個直接高效的設計環(huán)境。
LabVIEW集成化的環(huán)境與現(xiàn)實世界的信號相連,能進行數(shù)據(jù)分析,獲取實用信息,極大地提高了數(shù)據(jù)采集與控制系統(tǒng)的效率[6-7]。洛陽工業(yè)高等專科學?;痖L躍等人利用虛擬儀器技術(shù)對液位實時控制系統(tǒng)進行了仿真設計,使系統(tǒng)具有軟硬件開放,兼容性好等特點[8];武漢大學自動化系謝建軍、薛平貞設計了一種基于NIDAQ板卡和LabVIEW軟件的液位控制系統(tǒng),為先進的控制算法研究和實際應用提供了非常好的實驗平臺[9]。
LabVIEW軟件既能與NI模塊化的硬件相結(jié)合,又能與各種工業(yè)處理器,例如單片機、PLC、智能調(diào)節(jié)儀等進行實時通信,因此可以應用在許多不同種類的實驗項目中。LabVIEW編程既能方便地進行實驗數(shù)據(jù)的處理,也能對實驗信息進行存儲、提取和顯示。因此,基于LabVIEW設計的實驗平臺在實驗系統(tǒng)信息化中有很好的擴展性。
自助實驗平臺主要包括3個模塊:開始模塊、實驗模塊和報告生成模塊,其總體結(jié)構(gòu)如圖1所示。
圖1 自助實驗平臺總體結(jié)構(gòu)圖
(1)開始模塊主要包括主程序模塊、登錄模塊和仿真實驗模型。其功能包括:在實驗前進行必要的初始化工作,如登錄個人信息、選擇端口號等;在離線條件下,可以起動仿真模型,進行仿真實驗。其中,仿真模型需要根據(jù)不同的實驗項目進行設計,由于程序采用模塊化結(jié)構(gòu),因此可以方便地鏈接不同的仿真模型。
(2)實驗模塊主要包括實驗內(nèi)容模塊和一些通用的功能模塊。實驗內(nèi)容模塊根據(jù)不同的實驗項目進行設計,如水箱液位測量和控制實驗。對于驗證性實驗,學生直接運行程序、觀察現(xiàn)象、記錄數(shù)據(jù);對于綜合性或設計性實驗,學生可以自行設計界面、算法等內(nèi)容。通用功能模塊實現(xiàn)實驗過程中的運行、暫停、數(shù)據(jù)保存、數(shù)據(jù)回放、退出等功能。
(3)報告生成模塊的主要功能是從文件中選擇需要的數(shù)據(jù),完成實驗報告數(shù)據(jù)和圖表的填寫,學生需要自行補充填寫實驗分析結(jié)論和實驗心得體會。
圖1中的“個人信息”和“全局2”是各模塊之間傳遞信息的全局Vi。實驗時產(chǎn)生的實驗數(shù)據(jù)、實驗波形及前面板圖像以文件形式保存至指定文件夾,供實驗結(jié)束后進行實驗分析填寫報告時使用。生成實驗報告時可以選擇性地從這些文件中讀取典型數(shù)據(jù)用來填寫實驗數(shù)據(jù),并分析實驗結(jié)果。
為保證實驗有序地進行,程序規(guī)定了各模塊的調(diào)用方向和數(shù)據(jù)傳送方向,如圖1中箭頭所示。線型箭頭代表程序引用方向,只有箭頭首端的程序才能引用箭頭末端的數(shù)據(jù);方框型的箭頭代表了數(shù)據(jù)的傳遞方向,雙向箭頭表示數(shù)據(jù)發(fā)生了雙向傳遞;在仿真模型和實驗模塊中,使用了虛線的數(shù)據(jù)箭頭,表示這些數(shù)據(jù)可能發(fā)生(離線仿真演示運行)也可能不發(fā)生(在線運行)。
主程序模塊的前面板包括登錄信息區(qū)、啟動仿真模型(離線演示)、實驗選擇和幾個說明按鈕,如圖2所示。主程序模塊使用了一個事件結(jié)構(gòu)[10]處理按鍵事件和超時事件,如圖3所示。“按鍵事件”處理所有按鍵產(chǎn)生的事件,“超時事件”顯示超時要處理的任務。超時要處理的任務主要有兩部分:一是從全局變量獲得姓名、學號、專業(yè)和指導教師的信息,通過登錄Vi賦值給全局變量;二是判斷這些信息是否有效,有效則顯示,無效則不顯示。
圖2 主程序模塊前面板
實驗模塊是系統(tǒng)的核心部分,它包括不同實驗項目特有的實驗內(nèi)容和一些通用的功能。實驗模塊的運行狀態(tài)分為初始化、空閑、運行、保存數(shù)據(jù)、數(shù)據(jù)回放和退出,通過功能區(qū)對應的按鈕進行切換,其狀態(tài)轉(zhuǎn)換圖如圖4所示。由于存在既有特定狀態(tài)的轉(zhuǎn)換,又要與用戶進行互動,因此使用了標準狀態(tài)機[11]和事件狀態(tài)機結(jié)合的方法將事件和動作分離,由事件結(jié)構(gòu)和CASE結(jié)構(gòu)分別處理。
圖3 主程序程序框圖
圖4 實驗程序運行狀態(tài)轉(zhuǎn)換圖
空閑程序接收來自各功能按鈕的觸發(fā)事件,從而實現(xiàn)狀態(tài)之間的轉(zhuǎn)換??臻e狀態(tài)的程序包括一個事件結(jié)構(gòu),共處理有6個事件對應不同的狀態(tài)轉(zhuǎn)換。
(1)開始運行、數(shù)據(jù)保存、數(shù)據(jù)回放所觸發(fā)的事件比較簡單,程序跳轉(zhuǎn)到相應的狀態(tài)即可,如圖5(a)所示。暫停運行需要使用部分功能按鈕,這些功能按鈕可能在運行狀態(tài)時被禁用,如圖5(b)所示。
(2)退出事件被觸發(fā)時,系統(tǒng)需要判斷用戶是否已經(jīng)對運行時產(chǎn)生的數(shù)據(jù)進行保存,并提醒用戶保存。如果用戶已經(jīng)保存了數(shù)據(jù),則會彈出確認“退出”的對話框,防止用戶誤操作,如圖5(c)所示。
(3)點擊“生成報告”將觸發(fā)生成報告事件,這個事件將調(diào)用“生成實驗報告.vi”這個程序,進入實驗報告的撰寫和生成頁面。
(4)保存數(shù)據(jù)將實驗數(shù)據(jù)保存,以便實現(xiàn)歷史數(shù)據(jù)的回放,以及供實驗后的數(shù)據(jù)分析使用。保存數(shù)據(jù)使用了一個層疊順序結(jié)構(gòu)和一個CASE結(jié)構(gòu)。每次保存數(shù)據(jù)將生成4個文件,分別保存運行條件、數(shù)據(jù)、波形圖表圖像和當前運行的前面板圖像。
(5)保存數(shù)據(jù)的數(shù)據(jù)源為波形圖表的歷史數(shù)據(jù),使用波形圖表的歷史屬性即可獲得。保存數(shù)據(jù)分為3步:第1步先將全局變量數(shù)據(jù)保存次數(shù)自加1;第2步將需要保存的數(shù)據(jù)寫入文件,并保存至用戶保存數(shù)據(jù)文件夾;第3步則是彈出提示用戶保存成功的消息窗口。
(6)數(shù)據(jù)回放是讀取保存數(shù)據(jù)時保存的數(shù)據(jù)文件,并顯示在回放波形圖表。回放數(shù)據(jù)前先清空回放窗口,然后再給回放窗口賦值。這樣可以防止不足一個窗口顯示的數(shù)據(jù)顯示在同一窗口,影響回放效果。
實驗報告的前面板可以根據(jù)各高校的標準模板進行設計,主要包括信息區(qū)、模板選擇區(qū)、數(shù)據(jù)區(qū)和結(jié)論區(qū)幾部分,各部分的順序與標準實驗報告一致。
實驗報告中的學生信息、實驗時間等實驗信息由程序自動讀取并顯示,不能修改。實驗項目名稱會根據(jù)調(diào)用此程序的實驗自動選擇,但是如果程序選擇有誤,或者用戶期望補充填寫上一實驗的報告,這時可以更改實驗項目名稱。
實驗報告中的實驗原理、實驗目的、實驗內(nèi)容、實驗器材和實驗步驟由于屬于預習內(nèi)容,在教師安排實驗教學時已經(jīng)確定,因此可以由教師提前寫入模板,也可以在生成報告之后由學生補充填寫。
圖5 空閑狀態(tài)事件結(jié)構(gòu)
實驗數(shù)據(jù)是實驗中最關(guān)鍵的部分,因此程序主要集中于這部分數(shù)據(jù)的導入和排版。程序默認條件下至少需要導入1組數(shù)據(jù),否則不能生成報告,最多可以導入4組數(shù)據(jù)。
實驗報告生成程序由一個while循環(huán)和循環(huán)外的一個順序結(jié)構(gòu)組成。while循環(huán)配合用戶選擇需要填入報告的實驗數(shù)據(jù)和實驗圖表。順序結(jié)構(gòu)負責把數(shù)據(jù)圖表以及其他實驗報告信息填寫至實驗報告中。
while循環(huán)主要負責處理前面板里的用戶操作,采用標準狀態(tài)機的設計思想,由一個事件結(jié)構(gòu)和一個CASE結(jié)構(gòu)組成,狀態(tài)流程轉(zhuǎn)換如圖6所示。數(shù)據(jù)狀態(tài)的轉(zhuǎn)換主要由添加刪除按鈕觸發(fā)相關(guān)的事件結(jié)構(gòu)實現(xiàn)。
圖6 添加數(shù)據(jù)狀態(tài)轉(zhuǎn)換
報告填寫完畢后,點擊確定按鈕將結(jié)束while循環(huán),開始順序結(jié)構(gòu)創(chuàng)建實驗報告。創(chuàng)建實驗報告主要包括以下3步。
第1步:獲取數(shù)據(jù)相關(guān)路徑。在前面板上,用戶選擇條件路徑后,系統(tǒng)讀取條件文件夾中的數(shù)據(jù),并顯示在路徑下方的顯示窗口,用戶可以根據(jù)顯示內(nèi)容判斷是否為需要填寫至實驗報告的數(shù)據(jù)。獲取相關(guān)路徑程序的任務便是把被選擇的數(shù)據(jù)的路徑獲取出來并存入數(shù)組。獲取數(shù)據(jù)路徑的程序如圖7所示。
圖7 獲取數(shù)據(jù)路徑程序
第2步:讀取數(shù)據(jù)。讀取數(shù)據(jù)指的是讀取數(shù)據(jù)數(shù)組中的路徑元素所指向的數(shù)據(jù)文件中的數(shù)據(jù),并抽樣存儲于數(shù)值數(shù)組中。讀取數(shù)據(jù)程序如圖8所示。
第3步:程序填寫實驗報告。填寫實驗報告需要較長的時間,采用進度條顯示完成進度。填寫實驗報告程序如圖9所示。首先根據(jù)單選控件選擇要使用的實驗報告模板(模板已經(jīng)預先存入實驗報告模板文件夾),利用模板新建文檔;然后,使用自定義Vi填寫學號姓名等個人信息,以及實驗室名稱和實驗項目名稱;之后創(chuàng)建表格并填表和插入波形圖片;最后寫入結(jié)果分析、實驗結(jié)論等后續(xù)部分。報告的末尾還插入了程序運行時的前面板圖像。
圖8 讀取數(shù)據(jù)
圖9 填寫實驗報告程序
程序的最后是以“當前時間 實驗項目名稱-姓名-學號”命名的Word文檔,并根據(jù)登錄時選擇的保存路徑保存實驗報告。
水箱液位測控實驗系統(tǒng)結(jié)構(gòu)如圖10所示。Lab-VIEW實驗平臺通過智能調(diào)節(jié)儀采集液位變送器的信號,經(jīng)過PID調(diào)節(jié)后,控制電動調(diào)節(jié)閥的開度,從而控制水位高低。在實驗過程中,所有的手閥都打開。
圖10 水箱液位測控實驗系統(tǒng)結(jié)構(gòu)
第1步,雙擊基于“l(fā)abVIEW的水箱液位測控實驗系統(tǒng)main.vi”啟動主程序,點擊登錄,填寫個人信息并保存;然后選擇通信端口,若是離線運行,還需要打開液位仿真模型,使用虛擬串口技術(shù)模擬設備與上位機發(fā)送信息。
第2步,設置完成后,點擊“實驗二:水箱液位自動控制實驗”進入實驗程序。點擊相關(guān)功能鍵可運行相應的功能。用戶可在運行前修改PID的參數(shù),也可以在運行時進行修改。
第3步,選擇好通信端口號(默認為COM1),點擊“運行”,系統(tǒng)進入運行狀態(tài)。液位變送器、流量計和電動調(diào)節(jié)閥會顯示出當前值,波形圖表將顯示期望液位、實際液位和電動調(diào)節(jié)閥的變化曲線。液位控制系統(tǒng)是一個滯后系統(tǒng),液位的調(diào)整需要一段時間,用戶可以觀察液位的變化,并在記事本中記錄相關(guān)的變化趨勢,以及實驗時得到的一些結(jié)論。運行狀態(tài)下,“通信端口”、“數(shù)據(jù)回放”和“生成報告”按鈕呈灰色被禁用狀態(tài)。
在運行時點擊“暫停運行”,數(shù)據(jù)采集和控制被暫停,“通信端口”、“數(shù)據(jù)回放”和“生成報告”按鈕被重新啟用,點擊“運行”可以再次進入對液位的采集和控制。
第4步,實驗時點擊“保存數(shù)據(jù)”按鈕,程序?qū)⒈4孢\行所產(chǎn)生的數(shù)據(jù),并彈出提示框說明數(shù)據(jù)保存位置。
圖11是系統(tǒng)運行在PID參數(shù)為Kc=8.3,Ti=1.08,Td=0.002時的前面板顯示。
圖11 液位測控實驗產(chǎn)生的液位變化曲線
第5步,實驗結(jié)束后點擊“生成報告”可進入實驗報告的填寫程序。選擇相關(guān)的數(shù)據(jù)和圖表,以及完成實驗報告其余項的填寫,點擊“確定”,可以看到一個進度條,進度條結(jié)束后彈出文件保存對話框,此時可以修改保存路徑,選擇完成后生成報告頁面自動關(guān)閉,實驗報告被打開并最大化。用戶可對實驗報告進行二次編輯,或直接關(guān)閉。
基于LabVIEW的自助實驗平臺應用到水箱液位測控實驗系統(tǒng)中,完成了整個實驗過程,現(xiàn)場載入測量數(shù)據(jù),生成電子檔的實驗報告。
實驗過程中所涉及的控制策略和參數(shù)的整定,都屬于用戶的實驗內(nèi)容部分,在程序沒有被運行的情況下,從文件夾打開這些程序,就可以修改源代碼,比如修改控制策略為其他的控制函數(shù)。完成修改并保存后,通過主程序調(diào)用即可以試驗新策略的控制效果。因此,對于不同的實驗,可以有不同的實驗內(nèi)容設計,使得平臺具有一定的通用性。
在以后的系統(tǒng)完善中,可以增強程序的二次開發(fā)功能,使用LabVIEW的動態(tài)調(diào)用函數(shù),實現(xiàn)不修改程序框圖而直接通過文件對話框的方式載入自己的模型或控制策略。
如今,基于LabVIEW的工程教育在國內(nèi)日趨成熟,越來越多的人開始接觸和使用LabVIEW進行工程開發(fā)。作為基于LabVIEW的一個開放的實驗平臺,可以借鑒更多的前人經(jīng)驗,不斷完善,以更加適應現(xiàn)代實驗教學信息化的需要。
(
)
[1]余建波,楊西強,王媛,等.高校實驗教學信息化的建設與探索[J].實驗室研究與探索,2010,29(10):150-152.
[2]戴玉蓉,熊宏齊.適應開放式創(chuàng)新性實驗教學的信息化建設與管理[J].實驗技術(shù)與管理,2008,25(10):15-16.
[3]熊大紅,高志強,李坤.高校實驗教學信息化研究[J].湖南農(nóng)業(yè)大學學報:社會科學版,2008,9(2):89.
[4]張洪洋.實驗教學信息化發(fā)展的兩種取向[J].中國教育信息化,2009(4):47.
[5]朱敏.虛擬實驗與教學應用研究[D].上海:華東師范大學,2006.
[6]劉琨.基于虛擬儀器的光纖傳感數(shù)據(jù)采集與處理系統(tǒng)[D].天津:天津大學,2006.
[7]沈嵐.基于LabVIEW的光纖應變數(shù)據(jù)采集與處理系統(tǒng)的設計[D].邯鄲:河北工程大學,2010.
[8]火長躍,付春仙.用LabVIEW實現(xiàn)液位的實時控制[J].洛陽工業(yè)高等專科學校學報,2003(4):27-28.
[9]謝建軍,薛平貞.基于NI labVIEW 和DAQ卡的液位控制系統(tǒng)[J].儀器儀表學報,2008,25(4):889-891.
[10]陳樹學,劉萱.LabVIEW寶典[M].北京:電子工業(yè)出版社,2011.
[11]阮奇楨.我和LabVIEW:一個NI工程師的十年編程經(jīng)驗[M].北京:北京航空航天大學出版社,2009.