W&T verbindet
Interfaces für TCP/IP, Ethernet, RS-232, RS-485, USB, 20mA, Glas- und Kunststoff-LWL, http, SNMP, OPC, Modbus TCP, I/O digital, I/O analog, ISA, PCI

Applikation zum seriellen Com-Server:

Mit 30 Zeilen übers Netz: TCP/IP-Sockets als Programmierschnittstelle


Mit dem Socket-API (z. B. Winsock unter Windows oder Berkely Sockets unter UNIX) ist es möglich, die verschiedensten Anwendungsfälle innerhalb Ihrer Software zu realisieren. Das API bietet die gesamte Funktionalität zum Transport der Daten über das Netzwerk.

Eine der einfachsten Möglichkeiten, Verbindungen via Netzwerk herzustellen, bietet Microsoft Visual Basic ab der Version 5.0. Auch ohne ausgeprägte Netzwerkkenntnisse können Sie Ihre Daten übers Netz übertragen; hier finden Sie unser kleines Beispielprogramm. Sie werden sehen: 30 Zeilen Quelltext und unsere kleinen Adapter reichen schon aus, um serielle Daten über das LAN/WAN zu übertragen.

TCP/IP-Sockets

Dabei ist die Programmierung dieser API sogar unkomplizierter als die gewohnten Funktionsaufrufe zur Anbindung eines COM-Ports, da die ganze Komplexität der Netzwerkmechanismen in der Socketschnittstelle versteckt ist.

Die Querpfeile verdeutlichen das Zusammenwirken von Client- und Serverprogrammen. Sie brauchen natürlich nur ein Programm zu implementieren - je nachdem, ob der Com-Server im Client- oder Servermodus betrieben wird.

Server oder Client?

Als TCP-Client betrieben ist der Com-Server in der Lage, selbst eine Verbindung zu öffnen, wenn Daten zu übertragen sind, und sie zu schließen, wenn keine Daten mehr vorliegen. Ist gerade keine Verbindung zu einem anderen Server aktiv, kann er auch selbst als Server Verbindungen annehmen.

Um den Com-Server als TCP-Server zu betreiben, sind keinerlei Einstellungen notwendig. Die gesamte Verbindung wird hier von Ihrem Client-Prozeß gesteuert, das heißt, Sie öffnen und schließen die Verbindung. Ist eine Verbindung hergestellt, können Daten zwischen den beiden Prozessen ausgetauscht werden. Der Com-Server gibt die Daten vom Netzwerk auf die serielle Schnittstelle bzw. die E/A Ports aus und liest umgekehrt alle Daten von der seriellen Schnittstelle bzw. den E/A Ports ein, um sie an den Client-Prozeß zu übermitteln.

TCP oder UDP?

TCP ist ein verbindungsorientiertes Protokoll; während der Datenübertragung gibt es hier eine feste logische Verbindung zwischen Client und Server. TCP verfügt über alle Mechanismen, die notwendig sind, um eine Verbindung zu öffnen, einen fehlerfreien Datentransfer über das Netzwerk sicherzustellen und die Verbindung wieder zu schließen. Zu diesem Zweck werden vom Protokollstack für jede Verbindung eigene Puffer angelegt und verwaltet. Sollen sehr viele Com-Server gleichzeitig von einem Rechner aus angesprochen werden, können im Extremfall Speichergrenzen erreicht werden.

Im Gegensatz dazu verfügt UDP nicht über Mechanismen, um Datenpakete zu wiederholen oder deren Vollständigkeit zu überprüfen. Der Datentransfer mit UDP ist empfehlenswert, wenn ein übergeordnetes Protokoll zwischen dem Endgerät am Com-Server und der Applikation auf der TCP/IP-Station ohnehin eine fehlerfreie Übertragung sicherstellt oder wenn sehr viele Netzwerkteilnehmer gleichzeitig angesprochen werden sollen.

Die (manchmal wichtigen) Sonderfälle

Für Anwender, die die Möglichkeiten der Socket-Programmierung nutzen, bietet der Com-Server mit seinen Control- und Serviceports zusätzliche Funktionen, die parallel zum Datentransfer in Form von Serverprozessen aktiviert werden können. Damit haben Sie beispielsweise die Möglichkeit der Fernkonfiguration und -wartung des Geräts; nähere Informationen zu diesem Thema finden Sie im in Teil 6 des Com-Server Handbuchs.

zum Praxis-Beispiel

Hintergrund: Socketprogrammierung