資源描述:
《LabVIEW TCP網(wǎng)絡(luò)通訊》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、LabVIEWTCP/IP網(wǎng)絡(luò)通訊1、介紹LabVIEW具有強(qiáng)大的網(wǎng)絡(luò)通訊功能,這種功能使得LabVIEW的用戶可以很容易編寫出具有強(qiáng)大網(wǎng)絡(luò)通訊能力的LabVIEW應(yīng)用軟件,實現(xiàn)遠(yuǎn)程虛擬儀器。LabVIEW支持TCP/IP協(xié)議、UDP協(xié)議等。而且NI公司還開發(fā)了一種DATASOCKET技術(shù),很大程度上的簡化甚至免除了網(wǎng)絡(luò)通訊編程,用戶很容易地在互聯(lián)網(wǎng)實現(xiàn)高速數(shù)據(jù)交換。TCP/IP協(xié)議(傳輸控制協(xié)議/互聯(lián)網(wǎng)絡(luò)協(xié)議)是INTERNET最基本的協(xié)議,由于INTERNET的廣泛使用,使得TCP/IP成了事實的標(biāo)準(zhǔn)。2、TCP節(jié)點介紹在LabVIEW中,可以采用TCP節(jié)點
2、來實現(xiàn)基于TCP協(xié)議的局域網(wǎng)通訊,該節(jié)點在函數(shù)選板-數(shù)據(jù)通信-協(xié)議-TCP下,該節(jié)點分為三個部分:Connection節(jié)點:用于建立客戶機(jī)和服務(wù)器之間通訊的連接Transmission節(jié)點:用于在客戶機(jī)和服務(wù)器之間傳輸數(shù)據(jù)Conversion節(jié)點:用于計算機(jī)IP地址和計算機(jī)名稱間的切換3、雙機(jī)TCP通訊流程如下圖:4、兩種通訊方式14.1多機(jī)都采用LabVIEW進(jìn)行通訊多機(jī)都采用LabVIEW中的TCP實現(xiàn)通訊,一端我們設(shè)定為服務(wù)器端,一端為客戶端。這樣在運(yùn)行的時候服務(wù)器端不斷的偵聽,當(dāng)有客戶端連接的時候進(jìn)行建立連接,然后收取和發(fā)送數(shù)據(jù)形成通訊,客戶端運(yùn)行后不斷
3、的與服務(wù)器端進(jìn)行試探連接,如果沒有連接上,做一定的處理,當(dāng)連接上后,進(jìn)行收發(fā)數(shù)據(jù)進(jìn)行處理。該VI圖結(jié)構(gòu)如下:通過以上方式,可以方便的實現(xiàn)多機(jī)進(jìn)行通訊。4.2一端采用LabVIEW另一端是其他的工具實現(xiàn)進(jìn)行通訊在實際工作當(dāng)中,有的時候下位機(jī)或者其他的機(jī)器使用其他的語言或者組態(tài)工具實現(xiàn),這個時候在實現(xiàn)TCP之間進(jìn)行交互通訊的時候,我們就不能象上面多機(jī)都是LabVIEW編寫的通訊那樣處理了,如何去實現(xiàn)呢。經(jīng)過研究發(fā)現(xiàn),LabVIEW提供了運(yùn)行控制技術(shù),在Semaphonre技術(shù)中,該功能可以限制任務(wù)數(shù)目,這些任務(wù)可以同時堆一個共享資源進(jìn)行操作。所以大膽采用共享資源操作
4、信息,將其他端設(shè)置為服務(wù)器端,本端為客戶端,進(jìn)行操作,這樣受保護(hù)的資源或者臨界區(qū)進(jìn)行外部通訊,我們可以利用該技術(shù)同步多個相互獨立的、并行的任務(wù),這樣可以利用一個公用的Semaphore可以在某一時刻僅允許一個任務(wù)執(zhí)行。注意事項:當(dāng)建立客戶端和服務(wù)器端之間的通訊時候,除了指定Internet地址之外,還必須指定通訊端口號,端口號的范圍是0到65535,該端口號區(qū)分不同的通訊服2務(wù),這樣很容易的管理多個通訊連接。端口號最好手動設(shè)置,最好不要低于1000(低于1000的端口號,一方面防火墻可能會禁止,并且1000以下的端口號可能是系統(tǒng)保留,有特定用途的)??蛻舳撕头?wù)
5、器端要指定端口,同時這兩個端口必須相同,才能進(jìn)行有效的通訊。在客戶端首先要指定服務(wù)器的名稱才能與服務(wù)器建立連接,服務(wù)器的名稱是指服務(wù)器端的計算機(jī)名,若在同一臺計算機(jī)上運(yùn)行時候,客戶端的輸入服務(wù)器名稱既可以是該臺計算機(jī)名稱也可以是LOCALHOST。在與多機(jī)并且與其他語言的接口的時候,按照以上3點執(zhí)行外,加上了執(zhí)行了排隊,這樣在連接成功后進(jìn)行數(shù)據(jù)相互交換,交換完畢后斷開連接,然后與下一個連接。這樣依次執(zhí)行程序,形成臨界區(qū)保護(hù)。5、總結(jié)在LabVIEW的TCP中用于兩個應(yīng)用程序進(jìn)行數(shù)據(jù)共享,缺點是它不是實時的。但由于TCP/IP的普及,應(yīng)用范圍不斷的擴(kuò)大,以上兩點包
6、含大多數(shù)的應(yīng)用,我們也可以采用WINDOWS的ACTIVEX控件WINSOCK來實現(xiàn)。具體的我將在以后的文章中做專門的介紹。如果需要采用實時數(shù)據(jù)傳輸,可以采用DataSocket技術(shù),該技術(shù)是一項在測量和自動化應(yīng)用中用于共享和發(fā)布實時數(shù)據(jù)的,并且可以在任何編程環(huán)境中應(yīng)用。3