基於LabVIEW的局域網雙機通信

前言:
         LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是當前最流行的圖形化虛擬儀器集成開發環境,同時它也是一種功能強大的編程語言。與一般的編程語言(如VB,VC等)不同的是,LabVIEW採用基於流程圖的圖形化編程方式,因此也被成為G語言(Graphical Language)。LabVIEW首先提出了虛擬儀器(Virtual Instrument,簡稱VI)這一創新概念,這一概念將儀器技術與電腦技術緊密結合起來,將傳統儀器由硬體實現的資料分析處理與顯示功能,改由功能強大的PC機及顯示器來完成,儀器功能完全由軟體編程來實現,只要由I/O周邊設備完成信號的採集、測量與調理,就能完成各種測試功能的電腦儀器系統。虛擬儀器概念的提出使得測量儀器的功能可以由用戶根據需要自行設計軟體來定義和擴展,而不是只能由廠家事先定義且固定不可變更。這樣,用戶不必購買多台不同功能的傳統儀器,不必購買昂貴的集多種功能于一身的傳統儀器,也不必不斷購買新儀器。因為虛擬儀器可與電腦同步發展,與網路和其他周邊設備互聯,用戶只需要改變軟體就可以賦予它或擴展、增強它的測量功能。用LabVIEW開發虛擬儀器主要分兩個部分:前面板的設計和框圖程式的編寫。前面板的功能等效于傳統測試儀器的前面板;框圖程式等效于傳統測試儀器與前面板相聯繫的硬體電路。本文主要介紹怎樣用LabVIEW完成局域網雙機通信。
 
一、系統目標
       在工程應用中,電腦與儀器或者電腦與電腦之間常常需要進行資料通信,串列通信和網路通信是較為常用的通信方式,本文主要介紹怎樣利用TCP/IP協議進行雙機通信。
 
二、 實現方案
       採用C/S(伺服器/客戶機)模式進行雙機通信,是在LabVIEW中進行網路通信的最基本的結構模式。該系統由伺服器產生一組隨機波形,通過局域網送至客戶機進行顯示,雙機通信流程如圖1所示。從圖中可以看出,程式的設計分為兩個部分:伺服器程式和客戶機程式。

![](upload://5SgVF9ECUXsNx70de1IU1Ln2eEX.gif)

三、伺服器端程式
       在用TCP/IP節點進行通信時,需要在伺服器框圖程式中指定網路通信埠(Port),客戶機也要指定相同的埠,才能與伺服器之間進行正確的通信。埠值可以由用戶任意指定,只要伺服器與客戶機的埠保持一致即可。如果的確需要改變埠值,則必須首先斷開連接,才能重新設置埠值。

![](upload://dYm2OWAzf8JQqxPaBazmh8TMgbS.jpeg)

圖2-a  前面板


       伺服器端的前面板和框圖程式如圖2所示。在伺服器的框圖程式中,首先指定網路埠(Port),並用TCP Listen節點建立TCP監聽,等待客戶機的請求,這就是初始化的過程。框圖程式採用了兩個TCP Write節點來發送資料,第一個節點發送的資料是隨機波形的長度,第二個節點發送隨機波形資料。這種發送方式有利於客戶機接收資料。

![](upload://oGBbqLsFan2Mq9BcGlIbYzKiJfm.jpeg)

圖2-b 框圖程式


四、用戶端的前面板和框圖程式如圖3所示。
       與伺服器框圖程式相對應,客戶機框圖程式也採用了兩個TCP Read節點讀出由伺服器送來的隨機波形的資料。第一個節點讀出隨機波形的長度,然後第二個節點根據這個長度將隨機波形的資料全部讀出。這種方法是TCP/IP通信中常用的方法,可以有效地發送、接收資料,並保證資料不丟失。

![](upload://l7gZwXkhAgATumlA2bf4yI3GzZC.jpeg)

圖3-a 用戶端前面板

圖3-b 用戶端框圖程式
      另外只得注意的一點是,在客戶機框圖程式中首先要指定伺服器的名稱才能與伺服器之間建立連接。伺服器的名稱是指伺服器的電腦名。若伺服器和客戶機程式在同一台電腦上同時運行,客戶機框圖程式中輸入的伺服器的名稱可以是localhost,也可以是這台電腦的名稱。

圖3-b  客戶機框圖程式
 
結束語

       作為一個比較完整和性能優異的圖形化軟體發展環境,LabVIEW已經得到工業界和學術界的承認,在航空、航太、通信、汽車、半導體、生物醫學等世界範圍的眾多領域得到廣泛應用,從簡單的儀器控制、資料獲取到尖端的測試和工業自動化,從大學實驗室到工廠,從探索研究到技術集成,我們都可以發現LabVIEW應用的成果和開發的產品。目前LabVIEW已經推出了最新版本LabVIEW7.1。