本文介紹 TCP/IP 通訊基本概念。讀者必須先初步了解 LabVIEW 相關知識。如果您是 LabVIEW 入門新手,先參閱 LabVIEW 教學課程對於進一步理解本文會有所助益。
網際網路通訊協定 (IP)、使用者封包通訊協定 (UDP) 及傳輸控制通訊協定 (TCP),全都是網路通訊基本工具。TCP/IP 的名稱源自網際網路通訊協定組合中最廣為人知的兩項通訊協定:「傳輸控制通訊協定」和「網際網路通訊協定」。TCP/IP 支援透過單一網路或互連網路 (網際網路) 進行通訊。
TCP/IP 通訊提供簡易易用的使用者介面,有助於化繁為簡、讓網路通訊保持穩定可靠。如欲深入了解 TCP/IP 通訊運作方式,請參閱 LabVIEW 說明中的使用 LabVIEW 與 TCP/IP 及 UDP。
在 LabVIEW 中,請使用函式»資料通訊»通訊協定»TCP 面板中的 TCP/IP 函式進行 TCP 通訊。如同 DAQ、儀器與檔案 I/O 通訊作業,這項流程也包括開啟連線、讀取與寫入資訊,以及關閉連線。
就大多數的 I/O 通訊而言,處理器一定是主動與磁碟機伺服器、外接儀器伺服器或 DAQ 機板伺服器連線的用戶端。進行 TCP/IP 連線時,電腦可以是用戶端,也可以是伺服器。下列程式圖示意主動使用 TCP 開放連線與遠端伺服器進行連線的用戶端應用程式。伺服器 (或稱常駐程式) 會偵聽遠端連線並適度回應。
LabVIEW 使用者可以開發用於進行 TCP/IP 通訊的客製應用程式。程式設計師負責開發用戶端和伺服器。
任何人都可以主動與伺服器連線,因此,建議您控制伺服器存取權限。下列程式圖示意伺服器如何使用 TCP 偵聽 VI 的遠端位址輸出值決定遠端用戶端是否有權存取伺服器。
大多數應用程式的功能並不只有寫入及讀取某個值。通訊是持續進行的處理序,且與通訊協定息息相關。舉例來說,假設用戶端以 8 位元整數傳送下列四個指令到伺服器:
1 = 擷取資料並確認
2 = 傳送資料
3 = 取得狀態
4 = 關閉連線
下圖*示意伺服器接收這些指令的方式。請注意,圖中包含相同的基本 TCP 函式,但外圍程式碼支援進行更複雜的連線及完整的通訊功能。
下列程式方塊圖*示意內部條件陳述式的其他四種條件。每個條件均會處理一個該伺服器可以傳送的特定指令。每個條件均會傳送資訊至 Continuation 端點,決定是否要繼續執行迴圈。其中,Quit 條件一律會傳回 FALSE 值。離開迴圈之後,伺服器會關閉與用戶端的連線。
這種類型的伺服器架構能支援您開發靈活的伺服器,適用於更複雜的網路通訊程序。您開發的通訊協定也許會比上述範例更複雜。
* 請注意,這些影像擷自舊版 LabVIEW。資料接線與功能圖示的顏色未必與您的版本相符。程式碼的架構仍然適用。