Grundlagen der TCP/IP-Kommunikation in LabVIEW

Überblick

Dieser Artikel ist eine Einführung in die Grundlagen der TCP/IP-Kommunikation. Es werden einige LabVIEW-Kenntnisse vorausgesetzt. Wenn Sie ein Anfänger in LabVIEW sind, könnte Ihnen das Lesen dieser LabVIEW-Anleitung helfen, diesen Artikel besser zu verstehen.

Inhalt

TCP-Kommunikationsprotokoll

Das Internet Protocol (IP), das User Datagram Protocol (UDP) und das Transmission Control Protocol (TCP) bilden die Grundlage für die Netzwerkkommunikation. Der Name „TCP/IP“ ergibt sich aus zwei der bekanntesten Protokolle der Internet Protocol Suite, dem „Transmission Control Protocol“ und dem „Internet Protocol“. Mit TCP/IP können Sie über einzelne oder miteinander verbundene Netzwerke (Internet) kommunizieren.

Die TCP/IP-Kommunikation bietet eine einfache Benutzeroberfläche, hinter der sich die Komplexität einer zuverlässigen Netzwerkkommunikation verbirgt. Weitere Informationen zur Funktionsweise der TCP/IP-Kommunikation finden Sie unter Verwenden von LabVIEW mit TCP/IP und UDP in der LabVIEW-Hilfe. 

Verwenden Sie die TCP/IP-Funktionen auf der Palette Funktionen»Datenkommunikation»Protokolle»TCP für die TCP-Kommunikation in LabVIEW. Wie bei der DAQ-, Geräte- und Datei-I/O-Kommunikation umfasst der Prozess das Herstellen der Verbindung, das Lesen und Schreiben der Informationen und das Schließen der Verbindung.

Bei der meisten I/O-Kommunikation ist der Prozessor immer der Client, der eine Verbindung mit dem Festplattenserver, dem externen Messgeräteserver oder dem DAQ-Kartenserver initiiert. Bei TCP/IP-Verbindungen kann ein Computer entweder als Client oder Server fungieren. Im folgenden Blockdiagramm sehen Sie eine Client-Anwendung, die über „TCP: Verbindung herstellen“ eine Verbindung zu einem Netzwerkserver herstellt. Der Server oder Daemon wartet auf Netzwerkverbindungen und reagiert entsprechend.

LabVIEW-Benutzer können benutzerdefinierte Anwendungen für die TCP/IP-Kommunikation entwickeln. Der Programmierer ist für die Entwicklung sowohl des Clients als auch des Servers verantwortlich. 

Da jeder eine Verbindung zu einem Server herstellen kann, möchten Sie möglicherweise die Serverzugriffskontrolle übernehmen. Im folgenden Blockdiagramm sehen Sie, wie der Server anhand des vom VI „TCP: Listen“ ausgegebenen Wertes für die Netzwerkadresse feststellt, ob ein Client im Netzwerk die Berechtigung zum Zugriff auf den Server hat.

Entwickeln von TCP/IP-Kommunikationsanwendungen

Die meisten Anwendungen erfüllen mehr Aufgaben als nur das Schreiben und Lesen eines Wertes. Die Kommunikation ist ein fortlaufender Prozess, in dem Protokolle verwendet werden. Angenommen, ein Client sendet die folgenden vier Befehle per 8-Bit-Integer an den Server:

1 = Daten erfassen und bestätigen
2 = Daten senden
3 = Status ermitteln
4 = Verbindung schließen

Die folgende Abbildung* zeigt, wie der Server diese Befehle empfängt. Beachten Sie, dass zwar die gleichen TCP-Basisfunktionen enthalten sind, der umgebende Programmcode jedoch komplexere Verbindungen und eine stabile Kommunikation ermöglicht.

  • Eine While-Schleife umgibt den Rest des VIs. Auf diese Weise kann das VI mehrere sequenzielle Verbindungen verarbeiten, ohne nach dem Schließen jeder Verbindung neu starten zu müssen. Das VI kann mehrere gleichzeitige Verbindungen nicht verarbeiten. 
  • Die äußere Case-Struktur bestimmt, ob eine gültige Verbindung hergestellt wurde. 

    • Wenn keine gültige Verbindung hergestellt wurde, geschieht nichts. 
    • Bei einer gültigen Verbindung tritt das VI in eine While-Schleife ein, die ein Byte vom TCP/IP-Port liest. Dieses Byte enthält die Befehle 1 bis 4 vom Client.
    • Wenn die Verbindung gültig ist, aber innerhalb der Timeout-Periode kein Befehl empfangen wurde, sendet der Standard-Case der inneren Case-Struktur einen TRUE-Wert an den Fortsetzungsanschluss der inneren While-Schleife, um die Verbindung aktiv zu halten.
       
Der Standard-Case der inneren Case-Struktur sendet einen TRUE-Wert


Das folgende Blockdiagramm* zeigt die anderen vier Cases der inneren Case-Anweisung. Jeder Case verarbeitet einen bestimmten Befehl, den der Server senden kann. Jeder Case sendet Informationen an den Fortsetzungsanschluss, der bestimmt, ob die Schleife fortgesetzt werden soll. Insbesondere gibt der Abbrechen-Case immer den Wert FALSE aus. Nach dem Verlassen der Schleife schließt der Server die Verbindung mit dem Client.

Der Abbrechen-Case gibt immer den Wert FALSE aus  Der Abbrechen-Case gibt immer den Wert FALSE aus
Der Abbrechen-Case gibt immer den Wert FALSE aus Der Abbrechen-Case gibt immer den Wert FALSE aus


Mit einer Serverarchitektur dieser Art können Sie flexible Server für komplexere Netzwerkkommunikationsprozeduren entwickeln. Die von Ihnen entwickelten Protokolle sind möglicherweise komplexer als im vorherigen Beispiel.

* Beachten Sie, dass diese Grafiken aus einer älteren Version von LabVIEW stammen. Die Farben der Datenverbindungen und Funktionssymbole stimmen möglicherweise nicht mit Ihrer Version überein. Die Struktur des Codes kann trotzdem verwendet werden.

Was this information helpful?

Yes

No