LabVIEW 中支持TCP/IP網絡通訊研究

LabVIEW 中支持TCP/IP網絡通訊研究

介紹
     LabVIEW具有強大的網絡通訊功能,這種功能使得LabVIEW的用戶可以很容易編寫出具有強大網絡通訊能力的LabVIEW應用軟件,實現遠程虛擬儀器。LabVIEW支持TCP/IP協議、UDP協議等等。而且NI公司還開發了一種DATASOCKET技術,很大程度上的簡化甚至免除了網絡通訊編程,用戶很容易地在互聯網實現高速數據交換。

   TCP/IP協議(傳輸控制協議/互聯網絡協議)是INTERNET最基本的協議,由於INTERNET的廣泛使用,使得TCP/IP成了事實的標準。對於該協議的介紹不是本文的重點,相關信息可以參閱其他的資料。

TCP節點介紹
    在LabVIEW中,可以採用TCP節點來實現基於TCP協議的局域網通訊,該節點在FUNCTION/COMMUNICATION/TCP下,該節點分爲三個部分:
Connection節點:用於建立客戶機和服務器之間通訊的連接
Transmission節點:用於在客戶機和服務器之間傳輸數據
Conversion節點:用於計算機IP地址和計算機名稱間的切換

雙機TCP通訊流程

labview1

兩種通訊方式
多機都採用LabVIEW進行通訊

在多機採用LV中TCP實現的通訊,一端我們設定爲服務器端,一端爲客戶端。這樣在運行的時候服務器端不斷的偵聽,當有客戶端連接的時候進行建立連接,然後收取和發送數據形成通訊,客戶端運行後不斷的與服務器端進行試探連接,如果沒有連接上做一定的處理,當連接上後進行收發數據進行處理。該VI圖結構如下

labview2

 

通過以上方式,可以方便的實現多機進行通訊。

有一端採用LabVIEW另一端是其他的工具實現進行通訊

在實際工作當中,有的時候下位機或者其他的機器使用其他的語言或者組態工具實現,這個時候在實現TCP之間進行交互通訊的時候,我們就不能象上面多機都是LV編寫的通訊那樣處理了,如何去實現呢。經過研究發現,LabVIEW提供了運行控制技術,在Semaphonre技術中,該功能可以限制任務數目,這些任務可以同時堆一個共享資源進行操作。所以大膽採用共享資源操作信息,將其他端設置爲服務器端,本端爲客戶端,進行操作,這樣受保護的資源或者臨界區進行外部通訊,我們可以利用該技術同步多個相互獨立的、並行的任務,這樣可以利用一個公用的Semaphore可以在某一時刻僅允許一個任務執行

labview3

該圖是簡要的功能顯示,具體有興趣的讀者可以根據上面的提示使之完善


    
注意事項:
當建立客戶端和服務器端之間的通訊時候,除了指定Internet地址之外,還必須指定通訊端口號,端口號的範圍是0到65535,該端口號區分不同的通訊服務,這樣很容易的管理多個通訊連接。端口號最好手動設置,最好不要低於1000(由於該低於1000的一方面防火牆可能會禁止並且1000以下的端口號是保留個特定用途的

客戶端和服務器端要指定端口,同時這兩個端口必須相同,才能進行有效的通訊


在客戶端首先要指定服務器的名稱才能與服務器建立連接,服務器的名稱是指服務器端的計算機名,若在同一臺計算機上運行時候,客戶端的輸入服務器名稱既可以是該臺計算機名稱也可以是LOCALHOST

在與多機並且與其他語言的接口的時候,按照以上3點執行外,加上了執行了排隊,這樣在連接成功後進行數據相互交換,交換完畢後斷開連接,然後與下一個連接。這樣依次執行程序。形成臨界區保護


總結:
  在LabVIEW的TCP中用於兩個應用程序進行數據共享,缺點是它不是實時的。但由於TCP/IP的普及,應用範圍不斷的擴大,以上兩點包含大多數的應用,我們也可以採用WINDOWS的ACTIVEX控件WINSOCK來實現。具體的我將在以後的文章中做專門的介紹。
  如果需要採用實時數據傳輸,可以採用DataSocket技術,該技術是一項在測量和自動化應用中用於共享和發佈實時數據的,並且可以在任何編程環境中應用。本篇主要介紹的是TCP/IP方面,對於實時數據傳遞通訊和控制,將在以下章節中做介紹。


參考文獻
《LabVIEW高級程序設計》  清華大學出版社  楊樂平
 

發佈了19 篇原創文章 · 獲贊 16 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章