Grundlegendes zur TCP/IP-Kommunikation in LabVIEW

Beschreibung

Das Internet Protocol (IP), das User Datagram Protocol (UDP) und das Transmission Control Protocol (TCP) bilden die Grundlage für den Datenaustausch im Netzwerk. Der Name "TCP/IP" ergibt sich aus den zwei bekanntesten Protokollen der Internet Protocol Suite, dem "Transmission Control Protocol" und dem "Internet Protocol". Mit TCP/IP können Sie über einzelne oder miteinander verbundene Netzwerke ("interconnected networks", Internet) hinweg Daten austauschen.

Die TCP/IP-Kommunikation bietet eine einfache Benutzeroberfläche, hinter der sich die Komplexität einer verlässlichen Netzwerkkommunikation verbirgt. Auf der NI-Hilfeseite "Verwenden von LabVIEW mit TCP/IP und UDP" finden Sie mehr Informationen zur TCP/IP-Kommunikation. Für technische Details zu TCP, öffnen Sie den Link unten zu den TCP-Spezifikationen.

Verwenden Sie die TCP/IP-Funktionen auf der Palette Funktionen»Datenkommunikation»Protokolle»TCP für die TCP-Kommunikation in LabVIEW. Genau wie bei DAQ, bei der Gerätesteuerung und bei der Datei-I/O umfasst der Vorgang das Öffnen der Verbindung, das Lesen und Schreiben von Informationen und das Schließen der Verbindung.

In der Regel ist bei der I/O-Kommunikation der Prozessor immer der Client, der eine Verbindung mit dem Festplatten-Server, dem externen Geräte-Server oder dem DAQ-Karten-Server herstellt. Bei TCP/IP-Verbindungen kann der Computer entweder als Client oder als Server dienen. Das folgende Blockdiagramm zeigt eine Client-Anwendung, die eine Verbindung mit einem Netzwerk-Server mit Hilfe der Funktion "TCP: Verbindung herstellen" initiiert. Der Server, bzw. Daemon, horcht auf Netzwerkverbindungen und reagiert entsprechend.


Benutzerdefinierte Anwendungen für den Datenaustausch mit Hilfe von TCP/IP können vom LabVIEW-Benutzer erstellt werden. Der Programmierer ist verantwortlich für das Erstellen des Clients sowie des Servers. Auf der NI-Hilfeseite "Verwenden von LabVIEW mit TCP/IP und UDP" finden Sie mehr Informationen zum Erzeugen eines TCP/IP-Clients mit LabVIEW.

Da jeder eine Verbindung mit einem Server initiieren kann, ist eine Server-Zugriffkontrolle unter Umständen empfehlenswert. Das folgende Blockdiagramm zeigt, wie der Server den Wert des Ausgangs "Netzwerkadresse" des VIs "TCP: Listen" verwendet, um zu bestimmen, ob ein Netzwerk-Client die Berechtigung zum Zugriff auf den Server hat.





Entwickeln für Anwendungen für den Datenaustausch
Die meisten Anwendungen können mehr, als nur einen Wert zu schreiben und zu lesen. Der Austausch von Daten ist ein fortlaufender Prozess, für den ein Protokoll benötigt wird. Beispielsweise sendet ein Client die folgenden vier 8-Bit-Integer-Befehle an den Server:
1 = Daten erfassen und bestätigen
2 = Daten senden
3 = Status ermitteln
4 = Verbindung beenden

Im folgenden Blockdiagramm umgibt eine While-Schleife den Rest des VIs. Dadurch wird dem VI das Verarbeiten mehrerer sequenzieller Verbindungen ermöglicht, ohne dass es nach dem Schließen jeder Verbindung neu gestartet werden muss. Das VI kann mehrere simultane Verbindungen nicht verarbeiten. In der äußeren Case-Struktur wird bestimmt, ob eine gültige Verbindung vorliegt. Ohne eine solche Verbindung findet keine Verarbeitung statt. Wenn eine gültige Verbindung vorhanden ist, geht das VI in die While-Schleife über, in der ein Byte aus dem TCP/IP-Port gelesen wird. Dieses Byte enthält einen Befehl von 1, 2, 3 oder 4 vom Client. Wenn während der "Lesen"-Timeout-Periode kein Befehl empfangen wird, sendet der Standard-Case der inneren Case-Struktur einen TRUE-Wert an den Fortsetzungsanschluss der inneren While-Schleife, um die Verbindung aufrecht zu erhalten.




Im folgenden Blockdiagramm werden die anderen vier Cases der inneren Case-Anweisung gezeigt. Jeder Case verarbeitet einen bestimmten Befehl, den der Server senden kann. Jeder Case sendet Informationen an den Fortsetzungsanschluss, wodurch bestimmt wird, ob die Schleife fortgesetzt ausgeführt wird oder nicht. Durch den "Beenden"-Case wird immer ein FALSE-Wert ausgegeben. Nach dem Abschluss der Schleife schließt der Server die Verbindung mit dem Client.


 
 


Diese Art von Server-Architektur ermöglicht Ihnen das Entwickeln flexibler Server für kompliziertere Datenaustauschvorgänge im Netzwerk. Die von Ihnen entwickelten Protokolle sind unter Umständen komplexer als das hier zu sehende Beispiel.