LabVIEW環(huán)境下遠(yuǎn)程資源共享及Dat Socket實(shí)現(xiàn)
此方法由于使用了RDA Server,與方法1相比具有更大的實(shí)用性,用戶只需要在原來(lái)設(shè)計(jì)的程序外面添加建立連接或者結(jié)束連接的子程序,就可以把在本機(jī)運(yùn)行的采集程序改為使用遠(yuǎn)程采集卡時(shí)的程序。但是此方法也并不滿足多客戶同時(shí)從服務(wù)器獲取采集數(shù)據(jù)的需求,而且這種任務(wù)管理機(jī)制的程序設(shè)計(jì)也使用戶增加了額外編程負(fù)擔(dān)。
2.2 利用DS技術(shù)實(shí)現(xiàn)多客戶同時(shí)共享數(shù)據(jù)采集卡的設(shè)計(jì)方案
綜合以上兩種方法的優(yōu)點(diǎn),保留虛擬采集卡等思想,同時(shí)針對(duì)其缺點(diǎn),利用DataSocket提供的DataSocketConnection URL特殊屬性,結(jié)合實(shí)際需要分別在服務(wù)端和多個(gè)客戶端設(shè)計(jì)非常簡(jiǎn)單的程序來(lái)滿足多客戶的同時(shí)
需求。其設(shè)計(jì)思想如下:在帶有采集卡的服務(wù)端進(jìn)行數(shù)據(jù)采集,可以利用DataSocket函數(shù)把采集到的數(shù)據(jù)寫(xiě)入到DataSocket服務(wù)器;在客戶端,同樣利用DataSocket函數(shù)從服務(wù)器實(shí)時(shí)的讀取采集卡采集到的數(shù)據(jù),而且這些數(shù)據(jù)可以根據(jù)具體需要直接作為客戶端不同程序的輸入數(shù)據(jù)。這樣,相同的數(shù)據(jù),客戶端可以設(shè)計(jì)不同的程序?qū)ζ溥M(jìn)行處理,從而及時(shí)得到所需要的不同結(jié)果。這種方案的關(guān)鍵是使用DataSocket Connection URL特殊屬性把控件的值連接并同步起來(lái)。如前所述:如果為不同計(jì)算機(jī)中的兩個(gè)類型相同的 LabVIEW控件設(shè)置相同的DataSocket Connection URL地址,那么,這兩個(gè)控件就由DataSocket連接起來(lái),這兩個(gè)控件的值就會(huì)完全保持同步。
下面以一個(gè)實(shí)驗(yàn)為例進(jìn)行簡(jiǎn)要說(shuō)明。實(shí)驗(yàn)中,按既定的輸入值得到相對(duì)應(yīng)的一組實(shí)測(cè)數(shù)據(jù),要求把這兩組數(shù)據(jù)進(jìn)行不同階次的曲線擬合,從而分析不同擬合階次對(duì)擬合效果的影響,最后對(duì)輸入數(shù)據(jù)和實(shí)測(cè)數(shù)據(jù)在實(shí)驗(yàn)的基礎(chǔ)上進(jìn)行合理的擬合分析。程序的前面板和流程圖如圖2所示。本文引用地址:http://2s4d.com/article/158071.htm
在程序流程圖中,DSTP(DataSocket Transfer Protoco1)是數(shù)據(jù)套接傳輸協(xié)議,這是數(shù)據(jù)套接自身的協(xié)議,用戶必須為數(shù)據(jù)提供附在URL中的命名標(biāo)簽和數(shù)據(jù)項(xiàng)定址。兩組數(shù)據(jù)經(jīng)過(guò)變體后通過(guò)函數(shù)寫(xiě)入服務(wù)器;在客戶端,變體后的數(shù)據(jù)通過(guò)函數(shù)讀取出來(lái)可以根據(jù)用戶需要進(jìn)行一系列處理,兩組數(shù)據(jù)在服務(wù)器和客戶機(jī)上是完全同步的。通過(guò)實(shí)驗(yàn)可以證明:數(shù)據(jù)在服務(wù)器和多臺(tái)客戶機(jī)上都是同步的,客戶機(jī)之間也不存在競(jìng)爭(zhēng)。
在程序運(yùn)行的前面板圖中,可以看到服務(wù)器端對(duì)輸入數(shù)據(jù)和實(shí)測(cè)數(shù)據(jù)進(jìn)行了分析處理;同時(shí),客戶端對(duì)從服務(wù)器讀取的數(shù)據(jù)進(jìn)行了不同處理,客戶端可以根據(jù)自己需要輸入不同的階次,由于階次不一樣,每個(gè)客戶端的擬合圖、擬合系數(shù)以及方差均不一樣。服務(wù)器和多個(gè)客戶端只共享一個(gè)數(shù)據(jù)采集卡,從數(shù)據(jù)采集卡得到相同的數(shù)據(jù)后,每個(gè)客戶端和服務(wù)器都可以同時(shí)對(duì)數(shù)據(jù)進(jìn)行不同的處理,用戶還可以設(shè)計(jì)其他程序(比如直線擬合、數(shù)值插值等)對(duì)這組數(shù)據(jù)進(jìn)行同步處理。
這種方案的優(yōu)點(diǎn)在于通過(guò)設(shè)置相同的DataSocket Connection URL地址把控件的值完全保持同步,從而為多客戶提供實(shí)時(shí)的數(shù)據(jù)。該方案的另一個(gè)優(yōu)點(diǎn)是服務(wù)器與客戶端的程序設(shè)計(jì)非常簡(jiǎn)單,用戶可以把更多的精力集中在工程設(shè)計(jì)本身。此方案同時(shí)也為學(xué)校構(gòu)建經(jīng)濟(jì)型網(wǎng)絡(luò)虛擬實(shí)驗(yàn)室提供了很好的思路。
本方案雖然解決了多客戶同時(shí)對(duì)數(shù)據(jù)需求的問(wèn)題,但客戶端只能接受和處理數(shù)據(jù),如果想控制服務(wù)器,可能還得借助其它方式去實(shí)現(xiàn)(比如通過(guò)瀏覽器方式去申請(qǐng)控制權(quán)等),限于篇幅,本文沒(méi)有進(jìn)一步展開(kāi)敘述。
3 展望
本文只在虛擬儀器的網(wǎng)絡(luò)化方面進(jìn)行了初步的嘗試,還沒(méi)有涉及到LabVIEW對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)和控制等方面。如果能進(jìn)一步將虛擬儀器技術(shù)、網(wǎng)絡(luò)技術(shù)和數(shù)據(jù)庫(kù)技術(shù)結(jié)合起來(lái),那么遠(yuǎn)程虛擬測(cè)試系統(tǒng)將會(huì)有更廣闊的應(yīng)用前景。
評(píng)論