閆洪平,張小強(qiáng),朱 俊
(武漢大學(xué)物理科學(xué)與技術(shù)學(xué)院,湖北武漢430072)
在眾多虛擬儀器開(kāi)發(fā)環(huán)境之中,LabVIEW是應(yīng)用范圍最廣和功能最強(qiáng)大的開(kāi)發(fā)平臺(tái)。它有四種方法可以實(shí)現(xiàn)網(wǎng)絡(luò)通信:①無(wú)須具體協(xié)議的遠(yuǎn)程桌面連接;②實(shí)時(shí)發(fā)布測(cè)控程序的網(wǎng)頁(yè),異地使用瀏覽器(如Internet Explorer,Netscape Communicator等)進(jìn)行監(jiān)控;③使用DataSocket技術(shù)進(jìn)行網(wǎng)絡(luò)通信;④使用TCP和UDP等傳輸控制協(xié)議編程進(jìn)行網(wǎng)絡(luò)通信[1]。其中,遠(yuǎn)程桌面的方法很難實(shí)現(xiàn)在實(shí)驗(yàn)教學(xué)中的互動(dòng);WEB瀏覽器的方法雖可使不同的用戶均可通過(guò)瀏覽器來(lái)實(shí)時(shí)地查看測(cè)量結(jié)果,大大提高了工作效率[2],但同樣不能很好地解決有效互動(dòng)的問(wèn)題;而使用TCP和UDP等傳輸控制協(xié)議編程進(jìn)行網(wǎng)絡(luò)通信,需要很復(fù)雜的客戶端編程和服務(wù)端編程,不利于后期維護(hù)。
目前,有關(guān)于LabVIEW中DataSocket的大量文獻(xiàn)中有一定數(shù)量的文獻(xiàn)討論了DataSocket遠(yuǎn)程通信技術(shù)在實(shí)驗(yàn)教學(xué)中的應(yīng)用。然而,我們還沒(méi)有看到在實(shí)驗(yàn)教學(xué)中用LabVIEW軟件來(lái)有效地解決教師與學(xué)生間互動(dòng)的內(nèi)容。本文提出了一種網(wǎng)絡(luò)化虛擬儀器實(shí)驗(yàn)教學(xué)的管理模式,主要基于LabVIEW中DataSocket技術(shù),實(shí)現(xiàn)了兩種服務(wù)測(cè)控端—主(教師)客戶端—次(學(xué)生)客戶端之間的數(shù)據(jù)傳輸與控制方式,從而在一定程度上克服了在實(shí)驗(yàn)教學(xué)中存在的師生無(wú)法有效互動(dòng)等難題。
DataSocket是美國(guó)NI公司推出的基于TCP/IP協(xié)議的新技術(shù),是一種基于工業(yè)標(biāo)準(zhǔn)的網(wǎng)上實(shí)時(shí)高速數(shù)據(jù)交換編程新技術(shù)。它在不同的應(yīng)用程序之間傳輸數(shù)據(jù)時(shí)不必為不同的數(shù)據(jù)格式和通信協(xié)議編寫(xiě)具體的程序代碼,從而簡(jiǎn)化了網(wǎng)上測(cè)控?cái)?shù)據(jù)的編程[3]。對(duì)于用戶來(lái)說(shuō),DataSocket為共享與發(fā)布現(xiàn)場(chǎng)測(cè)試數(shù)據(jù)提供方便的高性能編程接口[4]。
在使用DataSocket通信之前必須對(duì)相關(guān)的服務(wù)器進(jìn)行設(shè)置。DataSocket由DataSocket API(應(yīng)用程序接口)和DataSocket Server(服務(wù)器)兩部分組成[5]。DataSocket API提供了簡(jiǎn)單的應(yīng)用接口。它除了從DataSocket Server上獲取數(shù)據(jù)外,還可以獲取HTTP Server、FTP Server、OPC Server的數(shù)據(jù)。DataSocket Server可以認(rèn)為是TCP/IP協(xié)議的接口,用戶通過(guò)對(duì)DataSocket Server的簡(jiǎn)單設(shè)置和管理,便可以實(shí)現(xiàn)復(fù)雜的TCP/IP操作編程。它們的結(jié)構(gòu)描述如圖1所示。
圖1 DataSocket通信結(jié)構(gòu)
DataSocket API包含如下四個(gè)基本動(dòng)作:Open,Read,Write和Close,它們被簡(jiǎn)化成LabVIEW8.6里面的VI。這些VI位于Function面板中的Communication子面板的DataSocket目錄內(nèi)。DataSocket Server是一個(gè)獨(dú)立運(yùn)行的程序,發(fā)布數(shù)據(jù)的程序通過(guò)它進(jìn)行數(shù)據(jù)輸出,輸入數(shù)據(jù)的程序也通過(guò)它接受數(shù)據(jù)[6]。簡(jiǎn)單地說(shuō),就是存儲(chǔ)數(shù)據(jù)源發(fā)布的數(shù)據(jù),然后提供給請(qǐng)求數(shù)據(jù)的計(jì)算機(jī)。
目前,在相關(guān)文獻(xiàn)里所涉及到的LabVIEW中有關(guān)DataSocket技術(shù)實(shí)現(xiàn)的數(shù)據(jù)傳輸與控制,基本上是客戶端與服務(wù)端之間的雙方通信。這種通信方式在科研方面以及各種測(cè)控領(lǐng)域得到了很有效的應(yīng)用,給人們帶來(lái)很大方便。不過(guò),它在實(shí)驗(yàn)教學(xué)中卻不能很好地解決教師與學(xué)生之間的互動(dòng)問(wèn)題。在雙方通信系統(tǒng)中,教師處于一種失控狀態(tài):除了在服務(wù)端上進(jìn)行操作外,沒(méi)有其它辦法來(lái)控制和觀察學(xué)生的實(shí)驗(yàn)過(guò)程,同時(shí)在處理學(xué)生訪問(wèn)哪一臺(tái)服務(wù)端的問(wèn)題上操作非常繁瑣。也就是說(shuō),對(duì)于虛擬儀器實(shí)驗(yàn)教學(xué)而言,實(shí)驗(yàn)不夠智能化。
針對(duì)這一問(wèn)題,我們的設(shè)想是:①該實(shí)驗(yàn)管理系統(tǒng)的遠(yuǎn)程通信應(yīng)是多方通信系統(tǒng);②有多個(gè)安裝采集卡的服務(wù)端采集發(fā)布數(shù)據(jù),并能根據(jù)反饋控制信號(hào)進(jìn)行時(shí)實(shí)控制;③所有的采集信號(hào)都由服務(wù)端經(jīng)主客戶端(由教師掌控,能夠觀察到學(xué)生的數(shù)據(jù)采集與控制過(guò)程,而且還可以控制某個(gè)學(xué)生對(duì)某臺(tái)服務(wù)端的訪問(wèn)),傳輸?shù)侥硞€(gè)次客戶端(由學(xué)生掌控,能在其上進(jìn)行相關(guān)實(shí)驗(yàn)操作),并將次客戶端的控制信息再經(jīng)主客戶端反饋到服務(wù)器端進(jìn)行相關(guān)控制。
(2)免疫學(xué)指標(biāo):在 HAART后一年,CD4+T淋巴細(xì)胞數(shù)與治療前相比增加了30%或CD4+T淋巴細(xì)胞數(shù)增長(zhǎng)100個(gè)/μL,提示治療有效。
具體的網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,從而實(shí)現(xiàn)服務(wù)測(cè)控端—主(教師)客戶端—次(學(xué)生)客戶端之間的多方通信。
圖2一種虛擬儀器實(shí)驗(yàn)教學(xué)的管理框圖
圖2所示為一種基于DataSocket遠(yuǎn)程通信系統(tǒng)設(shè)計(jì)的虛擬儀器實(shí)驗(yàn)教學(xué)管理框圖,它可以實(shí)現(xiàn)服務(wù)端與次客戶端之間的即時(shí)通信;同時(shí),也可單獨(dú)實(shí)現(xiàn)主客戶端與次客戶端之間的通信,以滿足教師與學(xué)生之間的互動(dòng)。在具體實(shí)現(xiàn)時(shí),有兩種設(shè)計(jì)方式,一是以教師為主導(dǎo),即以主客戶端為控制主體來(lái)實(shí)現(xiàn)多方的互動(dòng);另一種是以學(xué)生為主導(dǎo),即以次客戶端為控制主體來(lái)實(shí)現(xiàn)上述的多方互動(dòng)。下面針對(duì)熱處理實(shí)驗(yàn)討論這兩種程序設(shè)計(jì)特點(diǎn)。
整個(gè)系統(tǒng)分為三個(gè)部分,即服務(wù)測(cè)控端的程序設(shè)計(jì)、主(教師)客戶端的程序設(shè)計(jì)和次(學(xué)生)客戶端的程序設(shè)計(jì)。
(1)服務(wù)測(cè)控端的程序設(shè)計(jì)
從服務(wù)測(cè)控端通過(guò)采集卡得到的熱處理實(shí)驗(yàn)中熱電偶的溫度和通過(guò)樣品的測(cè)試電流(其前面板如圖3所示),并將其打包通過(guò)DataSocket數(shù)據(jù)通信的寫(xiě)入控件寫(xiě)入資源定位符“服務(wù)端發(fā)布信息寫(xiě)入U(xiǎn)RL”指定的地址服務(wù)器中,以便主客戶端讀取數(shù)據(jù)(其程序框圖略),同時(shí),還將從主客戶端讀取的從次客戶端傳來(lái)的控制開(kāi)關(guān)(用于打開(kāi)或斷開(kāi)加熱電爐)信息和客戶端控制電壓(施加于被測(cè)樣品上的電壓)。
圖3 以教師為主導(dǎo)的服務(wù)測(cè)控端面板
(2)主(教師)客戶端的程序設(shè)計(jì)
該程序?qū)崿F(xiàn)了從服務(wù)測(cè)控端的服務(wù)器讀取溫度信號(hào)和測(cè)試電流,其中,服務(wù)器的地址由資源定位符“從服務(wù)端讀取URL”來(lái)定位,并且把讀取的數(shù)據(jù)寫(xiě)入該主客戶端所在計(jì)算機(jī)的DataSocket服務(wù)器,以便次客戶端可以讀取數(shù)據(jù)(其程序框圖略)。同時(shí),還實(shí)現(xiàn)了從次客戶端讀取學(xué)生的要求信息傳送給服務(wù)測(cè)控端。其功能特點(diǎn)可由圖4所示的前面板清楚地表現(xiàn)出來(lái)。另外,我們還可以看到教師與學(xué)生之間的互動(dòng)文本對(duì)話框。
圖4 以教師為主導(dǎo)的主客戶端面板
(3)次(學(xué)生)客戶端的程序設(shè)計(jì)
由資源定位符“從主客戶端讀取信息讀取URL”定位的服務(wù)器可以從主客戶端計(jì)算機(jī)的服務(wù)器上讀取溫度和測(cè)試電流,通過(guò)資源定位符“次客戶端發(fā)布信息寫(xiě)入U(xiǎn)RL”定位的服務(wù)器地址寫(xiě)入次客戶端(其程序框圖略)。同時(shí),將次客戶端的請(qǐng)求信息數(shù)據(jù),打包通過(guò)主客戶端發(fā)送給服務(wù)測(cè)控端。其功能特點(diǎn)可由圖5所示的前面板表現(xiàn)出來(lái)。同時(shí),我們也可看到教師與學(xué)生的互動(dòng)過(guò)程。
圖5 以教師為主導(dǎo)的次客戶端面板
從以上敘述及前面板可以看到所有的程序運(yùn)行基本上是以教師為主導(dǎo),由教師來(lái)進(jìn)行服務(wù)測(cè)控端服務(wù)器的選擇以及讓某個(gè)學(xué)生能夠獲取數(shù)據(jù)與操控。
次序戶端系統(tǒng)與以教師為主導(dǎo)的系統(tǒng)非常類似,也分三個(gè)部分次序戶端系統(tǒng)。
(1)服務(wù)測(cè)控端的程序設(shè)計(jì)
在次客戶端發(fā)送的“學(xué)生控制真假開(kāi)關(guān)”為“真”的條件下,程序運(yùn)行“真”分支,即從服務(wù)測(cè)控端通過(guò)采集卡得到的熱處理中熱電偶的“采集溫度”和“采集電流”(程序框圖略),并將其打包通過(guò)DataSocket數(shù)據(jù)通信的寫(xiě)入控件寫(xiě)入資源定位符“發(fā)布信息寫(xiě)入U(xiǎn)RL”指定的地址服務(wù)器中,以便主客戶端讀取數(shù)據(jù)。反之,在次客戶端發(fā)送的“學(xué)生控制真假開(kāi)關(guān)”為“假”的條件下,程序運(yùn)行“假”分支,服務(wù)端要從主客戶端讀取從次客戶端傳來(lái)的控制開(kāi)關(guān)和控制電壓。其前面板如圖6所示。
(2)主(教師)客戶端的程序設(shè)計(jì)
在次客戶端發(fā)送的“學(xué)生控制真假開(kāi)關(guān)”為“真”的條件下,程序運(yùn)行“真”分支。該程序?qū)崿F(xiàn)了從服務(wù)測(cè)控端的服務(wù)器讀取“采集溫度”和“采集電流”,其中服務(wù)器的地址由資源定位符來(lái)定位的。并且把讀取的數(shù)據(jù)寫(xiě)入該主客戶端所在計(jì)算機(jī)的DataSocket服務(wù)器,以便次客戶端可以讀取數(shù)據(jù)。同樣,在次客戶端發(fā)送的“學(xué)生控制真假開(kāi)關(guān)”為“假”的條件下,可以從次客戶端讀取學(xué)生的要求信息傳送給服務(wù)測(cè)控端。另外,在如圖7所示的前面板中同樣顯示了教師與學(xué)生之間的有效文本互動(dòng)過(guò)程。
(3)次(學(xué)生)客戶端的程序設(shè)計(jì)
整個(gè)程序分為兩個(gè)部分,一是在其真假邏輯條件結(jié)構(gòu)下的由資源定位符定位的DataSocket寫(xiě)入控件;另一個(gè)是在其真假邏輯條件結(jié)構(gòu)下的讀取程序。當(dāng)發(fā)布的“學(xué)生控制真假開(kāi)關(guān)”為“真”的條件下,控制了服務(wù)測(cè)控端和主客戶端的程序都運(yùn)行“真”的條件下的程序,由資源定位符URL1定位的服務(wù)器可以從主客戶端計(jì)算機(jī)的服務(wù)器上讀取“采集溫度”和“采集電流”。然而當(dāng)“學(xué)生控制真假開(kāi)關(guān)”為“假”時(shí),控制服務(wù)測(cè)控端和主客戶端的程序都運(yùn)行“假”的條件下的程序,通過(guò)資源定位符定位的服務(wù)器地址寫(xiě)入次客戶端的請(qǐng)求信息數(shù)據(jù),將其數(shù)據(jù)打包通過(guò)主客戶端發(fā)送給服務(wù)測(cè)控端。同樣,如圖8所示的前面板上可以看到該程序?qū)崿F(xiàn)了教師與學(xué)生之間有效的互動(dòng)。
這與由教師主導(dǎo)的設(shè)計(jì)方法不同,它是由學(xué)生來(lái)主導(dǎo)整個(gè)程序的運(yùn)行方向。當(dāng)“學(xué)生控制真假開(kāi)關(guān)”為“真”時(shí),所有程序都只運(yùn)行在條件結(jié)構(gòu)為“真”的條件下的程序。這些程序的運(yùn)行只完成由服務(wù)測(cè)控端發(fā)布的數(shù)據(jù),經(jīng)主客戶端后,傳輸給次客戶端。反之,這些程序只實(shí)現(xiàn)了學(xué)生對(duì)服務(wù)測(cè)控端控制。
圖8 以學(xué)生為主導(dǎo)的次客戶端面板
與由教師為主導(dǎo)的設(shè)計(jì)相比,雖然都能在虛擬儀器的環(huán)境下完成實(shí)驗(yàn),并且能夠有效地實(shí)現(xiàn)教師與學(xué)生之間的互動(dòng)。但其優(yōu)點(diǎn)是在整個(gè)實(shí)驗(yàn)過(guò)程中學(xué)生可以根據(jù)自己的實(shí)驗(yàn)要求來(lái)對(duì)整個(gè)實(shí)驗(yàn)進(jìn)行掌控,想對(duì)實(shí)驗(yàn)進(jìn)行測(cè)試就可進(jìn)行測(cè)試,想提出自己的控制要求就可以完成實(shí)驗(yàn)控制。這是因?yàn)橛蓪W(xué)生為主導(dǎo)的通信設(shè)計(jì)在程序運(yùn)行過(guò)程中總是單向完成的,即由學(xué)生掌控單向完成實(shí)驗(yàn)測(cè)試或者實(shí)驗(yàn)控制,所以在實(shí)驗(yàn)過(guò)程中信號(hào)延遲時(shí)間比較短,并能恒定條件下觀察被測(cè)物理量隨時(shí)間的變化,提高了實(shí)驗(yàn)的穩(wěn)定性。
當(dāng)然,由教師主導(dǎo)的通信設(shè)計(jì)也具有自己獨(dú)特的優(yōu)點(diǎn),教師在整個(gè)實(shí)驗(yàn)中占主導(dǎo)地位,他能夠自如的選擇到底選擇哪個(gè)服務(wù)端提供給某個(gè)學(xué)生使用;并能進(jìn)行輔助控制;而這由學(xué)生為主導(dǎo)的通信設(shè)計(jì)卻不易實(shí)現(xiàn)。其代價(jià)是整個(gè)實(shí)驗(yàn)過(guò)程中信號(hào)延遲時(shí)間會(huì)更長(zhǎng),不利于完成瞬間變化的實(shí)驗(yàn)。
本文是基于LabVIEW中DataSocket遠(yuǎn)程通信技術(shù)設(shè)計(jì)的一種虛擬儀器實(shí)驗(yàn)教學(xué)管理模式,其中涵蓋了以學(xué)生為主導(dǎo)的通信系統(tǒng)設(shè)計(jì)和以教師為主導(dǎo)的通信系統(tǒng)設(shè)計(jì),它主要針對(duì)熱處理等實(shí)驗(yàn)教學(xué)而設(shè)計(jì)的。用于真正解決學(xué)生實(shí)驗(yàn)的時(shí)空限制,同時(shí)又能有效地實(shí)現(xiàn)教師與學(xué)生的即時(shí)互動(dòng)。
然而本文設(shè)計(jì)的這兩種通信設(shè)計(jì)模式在僅有三方通信條件下,信號(hào)傳輸?shù)难訒r(shí)還不明顯;如果有多個(gè)服務(wù)測(cè)控端及多個(gè)次(學(xué)生)客戶端同時(shí)使用時(shí),由于都要受制于主客戶端的限制,其信號(hào)的延時(shí)非常明顯。另外,師生互動(dòng)還只限于文本交流。這些都是有待改進(jìn)的地方。
[1] 尹興波,馬海瑞,周愛(ài)軍.基于DataSocket技術(shù)的LabVIEW1遠(yuǎn)程測(cè)控[J] .重慶:自動(dòng)化與儀器儀表,2005,(4):61-63
[2] 吳志鋒,陳漢平,吳偉亮.基于Web的虛擬儀器技術(shù)[J] .上海:儀表技術(shù),2001,(5):41-43
[3] 李水芳,朱榮新.利用DataSocket技術(shù)實(shí)現(xiàn)網(wǎng)絡(luò)化虛擬儀器[J] .西安:現(xiàn)代電子技術(shù),2003(19):100-102
[4] 潘海彬,胡壯,張春果.基于Datasocket分布式測(cè)控網(wǎng)絡(luò)數(shù)據(jù)通信方法研究[J] .成都:計(jì)算機(jī)應(yīng)用,2008,28(2):397-398
[5] 徐園園,鄭力新.TCP/IP和DataSocket技術(shù)在網(wǎng)絡(luò)虛擬實(shí)驗(yàn)室中的應(yīng)用[J] .南京:電氣電子教學(xué)學(xué)報(bào),2007,29(4):85-87
[6] 張炯,方湘陵,基于虛擬儀器技術(shù)的遠(yuǎn)程實(shí)驗(yàn)室[J] .上海:實(shí)驗(yàn)室研究與探索.2007,26(9):12-13