羅 建, 雷 勇,黃 昊,李 蓉,張 茜
(四川大學 電氣信息學院,四川 成都 610065)
遠程實驗系統是指將虛擬儀器技術與計算機網絡技術相結合,用戶可對實驗設備進行遠程控制,并對數據進行遠程采集和分析的實驗系統。利用遠程實驗系統不僅教師可以在課堂上用互聯網直觀而又生動地給學生演示各種教學實驗,方便學生的理解,學生也可以突破時間和空間的限制在本地計算機上完成各種實驗,獲得與真實實驗一樣的體會,從而豐富感性認識,加深對教學內容的理解。該實驗系統不僅為異地實驗和學術交流提供了平臺, 也很好地解決了現有實驗設備和規(guī)模不足的問題,滿足了學生實驗的需求。同時還提高實驗效率, 節(jié)省了實驗設備的投入資金, 該系統還可延伸到工業(yè)中進行設備的遠程控制與檢測[1-2]。
在參考了傳統的B/S結構和C/S結構的優(yōu)缺點之后,系統網絡構架采用將2種結構模型相結合,建立一套基于BC/S模式的的遠程實驗系統。其中網頁服務器/客戶端是采用B/S結構,它負責處理前端交互事件;虛擬儀器資源服務器/客戶端則是C/S 結構的,它負責處理后端交互事件,這也是系統真正進行實驗的場所。它們都是通過服務器端程序和客戶端程序間的通信,從而實現遠程實驗的目的。通過這種方式,用戶可以隨時隨地利用互聯網終端來訪問遠程虛擬實驗室,可自主選擇實驗并進行操作,還可通過參數控制以及實時檢測來觀察服務端反饋的實驗結果,實現實時測控實驗的目的。系統的網絡構架圖如圖1所示[3-5]。

圖1 系統網絡構架
這里我們以“三相異步電機的空載實驗”為例,來介紹本地實驗室系統的硬件結構。該實驗由應用服務器、數據采集卡、單片機開發(fā)板、串口控制繼電器、步進電機、步進電機驅動器以及電機實驗臺組成。其中上位機是本地計算機,是整個硬件系統的核心;下位機由單片機負責,通過其I/O口控制步進電機的轉動,從而實現步進電機對自耦調壓器輸出電壓進行調節(jié)。上位機運行LabVIEW軟件平臺,負責與下位機的通信,為遠程用戶提供訪問服務以及數據采集[6]。本地實驗系統結構框圖如圖2所示。
整個系統的通信數據可以分為2種:各種系統控制命令和狀態(tài)監(jiān)控數據。對于控制指令數據來說,是不允許有數據丟包情況出現的,TCP/IP是可靠數據傳輸協議,利用它可以保證控制命令的有效發(fā)送和接收;對于系統的狀態(tài)監(jiān)控數據來說,我們只關心數據的最新值,所以數據丟包情況的出現對檢測結果基本上沒有任何影響。經過仔細的研究和反復的實驗,我們采用LabVIEW自帶的通信協議——dstp協議進行。利用LabVIEW中的DataSocket函數,可以方便地在服務器和客戶端之間進行大量的測量數據的傳輸。系統網絡通信示意圖如3所示。

圖2 本地實驗系統硬件結構圖

圖3 網絡通信示意圖
對于本地服務器、單片機和繼電器,則通過串口與其進行通信,以改變測量電路的開關狀態(tài)和實現電壓值的調節(jié)。關于單片機的具體控制我們將在下一節(jié)進行解釋。
這里需要指出的是利用LabVIEW的多線程技術。我們可以將服務器的主程序分為3個線程:網絡通信線程、下位機控制線程和實時數據采集線程。線程間的通信方式采用隊列的方式,以實現將通信線程接收到的控制命令傳輸到控制線程。數據采集線程采集到的數據通過隊列的方式發(fā)送到網絡通信線程,可實現采樣數據的傳輸。這樣把數據采集和數據發(fā)送循環(huán)分離開來的好處是可以避免網絡延時給系統帶來不必要的錯誤。3個線程,每個線程都相互獨立、互不影響。這種將幾個任務分離開來的多線程的思想在很多高速數據采集系統中被廣泛地應用[7-8]。
為了避免控制命令的發(fā)送和使用錯誤,我們將控制參數的指令和數據捆綁在一起,自定義了一種基于TCP/IP協議的簡單消息發(fā)送協議,每次在發(fā)送控制參數時,先發(fā)送指令,再發(fā)送數據。在服務器端通信線程接收到參數時,先將數據通過隊列發(fā)送至控制線程,控制線程在接收到數據時,先進行指令解析,然后使用狀態(tài)機來決定數據的消費。這樣就可以避免下位機的控制發(fā)生數據的錯誤使用而出現不可預見的問題。在接收服務器端也是先接收消息指令,對指令進行解析后再將消息數據傳遞給顯示界面。
下位機與上位機的通信是通過單片機的串口和上位機串口之間的硬件連接實現的。系統采用LabVIEW編寫上位機的控制程序。程序編寫用到的VISA函數,其實質是一個標準的I/O函數庫。這些庫函數用于編寫儀器的驅動程序,完成計算機與儀器間的命令和數據傳輸,進而實現對儀器的程控[9]。上位機控制流程圖如圖4所示。

圖4 上位機控制流程圖
系統選用了STC89C52單片機作為下位機控制系統,單片機接口程序采用C51語言編寫。在程序中,定義了2個I/O口來分別對應定時器脈沖輸出和方向控制信號,利用上位機串口發(fā)送來的控制命令對方向控制信號端口輸出電壓進行控制,進而實現電機的正反轉功能,達到對自耦變壓器輸出進行調節(jié)的目的。在main函數部分,先調用“串口初始化程序”,再對控制命令字進行解析以實現電機的速度和轉向控制。下面給出命令字解析程序段。
void INT_UartRcv(void) interrupt 4
{
if(RI) //查詢接收標志位(有數據發(fā)送過來時置為1)
{
RI=0; // 接收標志位清零
switch(SBUF)
{
case′F′:
TR0=1;DIR=1;//定時器開啟,輸出脈沖,方向為正,電機正轉,電壓升高
break;
case′B′:
TR0=1;DIR=0;//定時器開啟,輸出脈沖,方向為反,電機反轉,電壓下降
break;
case′S′:
TR0=0;CLK=0;//定時器關閉,停止輸出脈沖,電機停止,電壓保持不變
}
}
}
命令字解析程序段
將設計好的實驗題目通過LabVIEW封裝成EXE格式文件上傳到預先建立好的虛擬儀器實驗室網站上,學生通過網絡瀏覽器輸入用戶名和密碼后,就可以登錄到課程網站,進入到遠程實驗系統[1]。網站主頁界面圖如圖5所示。在網站主頁上列出了所有可提供的實驗題目、實驗指導書以及實驗儀器的介紹,學生在選擇相應實驗后可下載相應的客戶端,運行下載文件,如圖6所示。此處以“三相異步電機空轉”實驗為例。

圖5 實驗系統主頁面界面圖

圖6 遠程客戶前面板界面圖
利用LabVIEW子面板技術和模塊化編程的思想,可以方便地對不同類型的實驗功能進行調用和添加,還可在不同的實驗中方便地進行切換,無需退出系統進行重新操作。點擊需要完成的實驗類型即可將該實驗的程序加載到子面板中運行,并可進行遠程實驗的操作和數據記錄。
當客戶端讀取的數據滿足用戶要求時,往往會將數據記錄下來,留待后續(xù)分析。為了滿足這種數據記錄功能,系統提供了實驗報告生成功能來記錄數據。系統已提前將實驗報告的標準格式做成模板,當實驗人員需要記錄數據時,可點擊“報表生成”按鈕,即可在本地生成一份和模板格式一樣的Word文檔,而不需要再去手動抄寫實驗數據和實驗報告[10],這樣就可以方便地在實驗報告中對實驗數據進行后續(xù)分析。
以LabVIEW 為基礎的遠程虛擬實驗室,開發(fā)周期短、可擴展性強、使用效率高、成本低,充分體現了虛擬儀器技術和計算機網絡在現代遠程測量技術中的優(yōu)勢[11]。系統平臺在部分實驗中的試運行的情況表明:該平臺運行穩(wěn)定并有效提高了本校的電工電子技術實驗水平,在一定程度上解決了遠程教育中實驗設備不足的問題。同時也為本校的教學實驗改革和建設提供了新思路和手段。系統還可以進一步擴展,應用到工業(yè)生產過程中虛擬儀器的遠程檢測與控制當中。
[1] 程俊靜.基于LabVIEW 的遠程虛擬實驗系統[J].計算機與現代化,2006(4):73-75.
[2] 劉蘊紅.網絡實驗室的構建及其在實驗教學中的應用[J].微計算機信息,2009(25):128-130.
[3] 周亞輝,朱昊,周愛平,等.基于LabVIEW的工程光學遠程實驗系統設計[J].實驗技術與管理,2006,23(10):63-65.
[4] 李湘林,江兵,封馳.基于LabView 的遠程實驗系統設計與實現[J].測控自動化,2012(28):47-49.
[5] 程琳.基于LabVIEW的遠程實驗平臺構建[J].常州信息職業(yè)技術學院學報,2012(1):16-18.
[6] 賈燕茹.基于 LabVIEW 的 PID 電動機遠程實驗平臺[J].礦山機械,2011(5):109-111.
[7] 龔舉權.基于LabvIEW RT的實時系統中網絡通信的實現[J].網絡與信息技術,2007(26):56-62.
[8] 劉太陽.基于LabVIEW RT的數據實時傳輸系統[J].計算機測量與控制,2008,16(2):270-272.
[9] 莊瑞榮.基于LabVIEW的步進電機控制[J].現代電子技術,2012,35(4):202-204.
[10] 侯國屏,王坤,葉齊鑫,等.LabVIEW7.1 編程與虛擬儀器設計[M].北京: 清華大學出版社, 2005.
[11] 張仁杰,趙燕玉.遠程教育中實驗方式的探索和展望[J].開放教育研究,2000(4):37-38.