Technische Einführung

In diesem Abschnitt finden Sie einen generellen Überblick zu den Übertragungsprotokollen TCP und UDP und einen Link zu den entsprechenden SPS-Bibliotheken, die zum Einbinden der Protokolle erforderlich sind. Beide Übertragungsprotokolle sind Bestandteil der Internet Protocol Suite und daher für unsere alltägliche Kommunikation, z. B. über Internet, von großer Bedeutung.

Transmission Control Protocol (TCP)

Bei dem TCP-Protokoll handelt es sich um ein verbindungsorientiertes Übertragungsprotokoll (OSI Layer 4), vergleichbar mit einer Telefonverbindung, wo Gesprächsteilnehmer erst eine Verbindung aufbauen müssen, bevor Daten übertragen werden können. Über TCP können Datenströme (Bytes) auf Anforderung zuverlässig übertragen werden, daher wird in diesem Zusammenhang auch von einem „Datenstrom-orientiertem Übertragungsprotokoll“ gesprochen. Das TCP-Protokoll wird in Netzwerken eingesetzt, wo für die von einem Client oder Server gesendeten Daten eine Bestätigung des gegenüberliegenden Gesprächspartners erforderlich ist. Das TCP-Protokoll ist gut geeignet, um größere Datenmengen oder Datenströme ohne definierte Start/Ende-Kennung zu übertragen. Für den Sender ist dies unproblematisch, da er weiß, wie viele Datenbytes er verschickt hat. Der Empfänger kann jedoch nicht erkennen, wo eine Nachricht im Datenstrom aufhört und wo die nächste im Datenstrom beginnt. Ein Leseaufruf auf der Empfängerseite liefert immer nur die gerade im Empfangspuffer vorhandenen Daten (u. U. können es weniger oder mehr sein als der Datenblock, der vom anderen Teilnehmer gesendet wurde). Der Sender muss eine Nachrichtenstruktur festlegen, die beim Empfänger bekannt ist und interpretiert werden kann. Die Nachrichtenstruktur kann sich im einfachen Fall aus den Daten und einem abschließenden Steuerzeichen (z. B. carriage return) zusammensetzen. Das abschließende Steuerzeichen signalisiert das Ende einer Nachricht. Eine mögliche Nachrichtenstruktur, die oft für die Übertragung von Binärdaten mit einer variablen Länge genutzt wird, kann wie folgt definiert werden: In den ersten Datenbytes wird ein spezielles Steuerzeichen (ein sogenannter start delimiter) und die Datenlänge der darauffolgenden Daten eingetragen. Der Empfänger kann dadurch den Nachrichtenanfang und das Ende erkennen.

TCP/IP Client

Für eine minimale TCP/IP-Clientimplementierung in der SPS werden folgende Funktionsbausteine benötigt:

TCP/IP Server

Für eine minimale TCP/IP-Serverimplementierung in der SPS werden folgende Funktionsbausteine benötigt:

Die Instanzen der Funktionsbausteine FB_SocketAccept und FB_SocketReceive werden zyklisch (pollend) aufgerufen, alle anderen nach Bedarf.

User Datagram Protocol (UDP)

UDP ist ein verbindungsloses Protokoll, d. h. Daten werden ohne explizite Verbindung zwischen Netzwerkgeräten versendet. UDP nutzt ein einfaches Übertragungsmodell ohne spezielle Definition für Handshake, Zuverlässigkeit, Datenanforderung oder Stauüberwachung. Auch wenn die obige Beschreibung nahe legt, dass UDP-Datagramme unangefordert oder doppelt ankommen oder zu Staus in der Datenleitung führen, wird das Protokoll in einigen Fällen gegenüber TCP bevorzugt, besonders bei der Echtzeit-Kommunikation, da die TCP-Merkmale mehr Rechenleistung und damit auch mehr Zeit beanspruchen. Wegen der Verbindungslosigkeit ist das UDP-Protokoll gut geeignet, kleine Datenmengen zu verschicken. UDP ist ein „paketorientiertes/nachrichtenorientiertes Transportprotokoll“, d. h. der gesendete Datenblock wird auf der Empfängerseite auch als kompletter Datenblock empfangen.

Für eine minimale UDP-Client/Server-Implementierung werden folgende Funktionsbausteine benötigt:

Die Instanzen des Funktionsbausteins FB_SocketUdpReceiveFrom werden zyklisch (pollend) aufgerufen, alle anderen nach Bedarf.

Siehe auch: Beispiele