LabVIEW環(huán)境下遠(yuǎn)程資源共享及Dat Socket實(shí)現(xiàn)
摘要:簡(jiǎn)要介紹了LabVIEW中的TCP、RDA、瀏覽器和DataSocket四種網(wǎng)絡(luò)通信方式及其原理,重點(diǎn)分析了利用DataSocket技術(shù)實(shí)現(xiàn)遠(yuǎn)程資源共享的兩種方法,在對(duì)這兩種方法進(jìn)行綜合的基礎(chǔ)上,提出了一種多客戶端同時(shí)遠(yuǎn)程共享資源的設(shè)計(jì)方案。實(shí)驗(yàn)結(jié)果證明,該方案能在一定程度上滿足實(shí)際應(yīng)用需求。
關(guān)鍵詞:LabVIEW;遠(yuǎn)程共享;DataSocket
0 引言
與傳統(tǒng)儀器相比,虛擬儀器的一個(gè)顯著特點(diǎn)就是儀器功能由用戶基于計(jì)算機(jī)通過軟件進(jìn)行定義。而隨著計(jì)算機(jī)互聯(lián)網(wǎng)的普及,虛擬儀器的網(wǎng)絡(luò)化也應(yīng)運(yùn)而生。將虛擬儀器技術(shù)與網(wǎng)絡(luò)技術(shù)相結(jié)合,構(gòu)成遠(yuǎn)程虛擬測(cè)控系統(tǒng),是當(dāng)前虛擬儀器一個(gè)非常重要的發(fā)展方向。
在虛擬儀器軟件平臺(tái)LabVIEW中,提供了TCP、RDA、瀏覽器和DataSocket四種網(wǎng)絡(luò)通信方式,根據(jù)實(shí)際的應(yīng)用需求,基于這些基本方式設(shè)計(jì)具體的網(wǎng)絡(luò)互聯(lián)方案,就可以達(dá)到遠(yuǎn)程測(cè)試、控制和資源共享的目的。
1 LabVIEW中的幾種常用通信方式
LabVIEW中幾種常用通信方式有: (1)TCP方式,TCP/IP協(xié)議在LabVIEW的應(yīng)用主要是傳輸層,包含了UDP和TCP兩個(gè)協(xié)議,兩個(gè)協(xié)議都有相應(yīng)的功能函數(shù)。由于UDP協(xié)議可靠性比較差,因此人們?cè)诟鄨?chǎng)合使用TCP。利用TCP協(xié)議我們可以采用服務(wù)器/客戶機(jī)模式進(jìn)行通信。在用TCP節(jié)點(diǎn)進(jìn)行通信時(shí),服務(wù)器程序和客戶機(jī)程序都要指定相同的網(wǎng)絡(luò)通信端口。 (2)RDA方式,NI公司提供了遠(yuǎn)程設(shè)備訪問服務(wù)器RDA(remote device access)Server,這樣可以實(shí)現(xiàn)對(duì)遠(yuǎn)程數(shù)據(jù)采集卡的訪問。用戶可以用MAX(measureautomation explorer)來進(jìn)行遠(yuǎn)程采集卡的設(shè)置。設(shè)置完成后,異地的數(shù)據(jù)采集卡就成了本地機(jī)的虛擬數(shù)據(jù)采集卡,并且被分配有相應(yīng)的設(shè)備號(hào)。(3)瀏覽器方式,瀏覽器方式也是一種基于TCP協(xié)議的通訊方式,與直接使用底層的TCP函數(shù)相比,用戶使用瀏覽器方式時(shí)不需要編程,只需設(shè)定網(wǎng)絡(luò)通信參數(shù),就可以直觀并且方便地使用瀏覽器進(jìn)行遠(yuǎn)程監(jiān)視。
以上三種方式適合單臺(tái)客戶機(jī)訪問遠(yuǎn)程帶有采集卡的服務(wù)器,但是當(dāng)有多臺(tái)客戶機(jī)訪問同一個(gè)采集卡時(shí),必須在服務(wù)器端增加任務(wù)管理程序或者通過申請(qǐng)控制權(quán)等方式來對(duì)多客戶的請(qǐng)求進(jìn)行處理。最重要的,如果多客戶機(jī)要從同一個(gè)遠(yuǎn)程采集卡在同一時(shí)間獲取實(shí)時(shí)數(shù)據(jù),這三種方式是無法實(shí)現(xiàn)的。下面介紹第四種方式: (4)DataSocket技術(shù),DataSocket(DS)包括了DS server Manager、 DS Server和DS函數(shù)庫(kù)等工具,以及數(shù)據(jù)傳輸協(xié)議DSTP(DataSocket TraFISfer Protoco1)、統(tǒng)一資源定位符URL(uniform Resource Locator)和文件格式等技術(shù)規(guī)范。利用這些工具,可大大簡(jiǎn)化網(wǎng)絡(luò)中計(jì)算機(jī)之間數(shù)據(jù)交換的編程工作。在LabVIEW中,所有的控件都增加了一個(gè)叫做DataSocket Connection URL的特殊屬性,利用這個(gè)屬性可以實(shí)現(xiàn)不同計(jì)算機(jī)上相對(duì)應(yīng)的兩個(gè)或者多個(gè)同類型控件之間的DataSocket通信。如果為不同計(jì)算機(jī)中的兩個(gè)類型相同的LabVIEW控件設(shè)置相同的DataSocket Connection URL地址,那么,這兩個(gè)控件就由DataSocket連接起來,這兩個(gè)控件的值就會(huì)完全保持同步。其中,一個(gè)控件發(fā)生了變化,另一個(gè)控件也會(huì)發(fā)生同樣的變化。
2 利用DataSocket技術(shù)實(shí)現(xiàn)資源遠(yuǎn)程共享
2.1 利用DS技術(shù)實(shí)現(xiàn)采集卡共享的兩種方法
數(shù)據(jù)采集卡是數(shù)據(jù)采集系統(tǒng)中重要的硬件之一,在有些場(chǎng)合,例如教學(xué)實(shí)驗(yàn)室,如果每臺(tái)計(jì)算機(jī)都配備一塊采集卡,則代價(jià)較高,因此可以考慮借助DS技術(shù)實(shí)現(xiàn)數(shù)據(jù)采集卡的共享,即多臺(tái)計(jì)算機(jī)共享一臺(tái)計(jì)算機(jī)(服務(wù)器)上的采集卡。硬件接線原理圖如圖l所示,用戶不必在每臺(tái)客戶機(jī)上都配備數(shù)據(jù)采集卡,只需在服務(wù)器上配置采集卡即可,這樣可以充分利用資源,節(jié)省費(fèi)用。數(shù)據(jù)采集卡共享程序可以用于連接位于一個(gè)局域網(wǎng)內(nèi)的計(jì)算機(jī)組。
利用DS技術(shù)實(shí)現(xiàn)數(shù)據(jù)采集卡共享的基本思想是,利用DS Server進(jìn)行客戶機(jī)和服務(wù)器之間的信息交換和傳遞,將服務(wù)器上采集卡采集到的數(shù)據(jù)傳給客戶機(jī)??紤]到不同的用戶對(duì)共享要求可能不同,可以嘗試兩種方法。
1)方法l是考慮只在服務(wù)器上配置數(shù)據(jù)采集程序。首先設(shè)計(jì)一個(gè)輸入輸出數(shù)據(jù)格式的規(guī)范,用戶在客戶端按約定的格式填寫表格,發(fā)給服務(wù)器,服務(wù)器完成采集任務(wù)后,將采到的數(shù)據(jù)再按約定的格式返回客戶端。在服務(wù)器端設(shè)計(jì)一個(gè)管理程序,對(duì)客戶機(jī)的請(qǐng)求進(jìn)行管理,然后按照順序由服務(wù)器執(zhí)行相應(yīng)的數(shù)據(jù)采集。每次采集完成后,將數(shù)據(jù)發(fā)送給DS Server,客戶機(jī)可以從DSServer中讀取采集到的數(shù)據(jù)。
此方法的優(yōu)點(diǎn)是客戶機(jī)不調(diào)用任何有關(guān)數(shù)據(jù)采集的程序,因而客戶機(jī)上不必安裝有關(guān)采集卡設(shè)置的程序。其局限性在于,不同的采集程序需要的采集參數(shù)不同,而且采集數(shù)據(jù)后得到的數(shù)據(jù)格式有可能不同,這就需要對(duì)不同的采集函數(shù)設(shè)計(jì)相應(yīng)的客戶機(jī)程序。這時(shí)客戶機(jī)程序和服務(wù)器程序的設(shè)計(jì)將會(huì)過于復(fù)雜。
2)方法2是在NI公司提供的RDA的基礎(chǔ)上,想辦法在服務(wù)器上增加一個(gè)任務(wù)排隊(duì)管理程序,使虛擬采集卡可以被多個(gè)用戶共享,該方案比較直接,在客戶端不需要開發(fā)過多的新程序,但有一定難度。用戶可以利用Measurement Artomation Explorer 來進(jìn)行遠(yuǎn)程采集卡的設(shè)置,設(shè)置完成后,在本地機(jī)上就會(huì)出現(xiàn)一塊虛擬的數(shù)據(jù)采集卡,并且分配有相應(yīng)的設(shè)備號(hào)。為了避免多個(gè)客戶機(jī)同時(shí)訪問同一個(gè)遠(yuǎn)程采集卡時(shí)發(fā)生沖突,導(dǎo)致程序出錯(cuò),必須考慮在服務(wù)器端增加任務(wù)管理程序,以對(duì)客戶機(jī)的請(qǐng)求進(jìn)行管理,這樣就可避免多個(gè)客戶機(jī)同時(shí)訪問一個(gè)遠(yuǎn)程采集卡時(shí)發(fā)生的沖突。
評(píng)論