TCP/UDP

Mit der TCP/UDP-Schnittstelle können RAW-Daten zwischen der SPS und dem Remote-Server ausgetauscht werden. Gleichzeitig kann auch ein Server zum Horchen von Daten gestartet werden.

Info: Die Schnittstelle synchronisiert automatisch mit dem langsamsten Zyklus der zugeordneten SPS. Die Telegramme werden vom System gepuffert, sodass kein Telegramm verloren geht.

Monitor

Es werden folgende Farben im Monitor verwendet.

Farbe Beschreibung
Weiss Kein Fehler ist aufgetreten.
Orange Timeout wurde erreicht.
Grün Verbindung war erfolgreich.
Rot Verbindung konnte nicht hergestellt werden oder ein kritisches Timeout beim Senden wurde erreicht. Möglicherweise wird ein Fehler in der UDP-Kommunikation nicht erkannt.

Broadcast und Multicast

Es ist möglich, Broadcast und Multicast mittels TCP/UDP-Schnittstelle zu senden und zu empfangen. Dabei wird der Betriebsmodus in der Gatewaykonfiguration entsprechen gewählt. Danach werden diverse Optionen, wie z.B. TCP nicht mehr verfügbar sein. Ausserdem wird die Wahl der ausgehenden Schnittstelle zwingend notwendig.

Zum Senden von Telegrammen muss ausserdem die IP entsprechend der Vorgabe neben dem Feld eingetragen werden. Ist dies nicht der Fall, so wird mittels Unicast gesendet.

Modus Beschribung
Unicast Ermöglicht eine direkte Kommunikation.
Limited Broadcast Ermöglicht die Kommunikation nur im lokalen Netzwerk. (IP-Unabhängig)
Directed Broadcast Ermöglicht die Kommunikation zum Broadcast-Subnetz. Z.B. 10.0.0.255, falls das Subnetz 24 Bits enthält bzw. auf 255.255.255.0 gesetzt wurde.
Multicast Ermöglicht die Kommunikation per Multicast. Dabei wird IGMP-Snooping verwendet.

Ende des Paketes erkennen

In der Konfiguration Zeilenumbruch kann die Bedingung für die Beendung der Übertragung festgelegt werden. Das erkannte Ende wird dabei mitgesendet.

Wird das Ende nicht erkannt, wartet die Schnittstelle das Timeout oder das Ende der Verbindung ab und sendet das Resultat zur SPS. Es wird daher empfohlen, alle empfangene Pakete zu überprüfen. Das Empfangen von UDP-Telegrammen besitzt kein Timeout.

HTTP-Übertragung

Die Methode kann mittels folgendem Zeilenumbruch definiert werden:

HTTP

Diese ist speziell, da sie es ermöglicht auch auf den Content-Length im Header entsprechend zu reagieren.

Nach einer gewissen Länge

Um nach einer gewissen Länge den Empfang abzuschliessen, kann die folgende Zeichenfolge in der Konfiguration Zeilenumbruch verwendet werden:

LEN === ###

Wobei ### die Anzahl der Zeichen entspricht. Die Schreibweise muss genau dieser inklusive der Leerzeichen entsprechen.

Achtung: Das Verwenden von LEN === 1 empfängt jedes Zeichen einzeln und kann zu erhöhter Auslastung des Servers führen.

Individuelles Zeilenende

Es können verschiedene Zeilenenden definiert werden. Normalerweise wird dabei \n oder \r verwendet. Jede Zeile definiert eine andere Erkennung des Zeilenendes.

Folgende Zeichen erhalten in der Konfiguration ein Escape:

\\ \r \n \0

Kommunikation

Bei der ausgehenden Kommunikation via TCP wird nach jeder Anfrage die Verbindung wieder beendet.

Kommt bei der Anfrage von sendrecv keine Antwort, so wird die sendende Schnittstelle blockiert bis das Timeout erreicht wurde. Im Monitor wird ein Fehler ausgegeben.

Variable Beschreibung
send Sendet die Daten zum Server.
!send Sendet alle Daten zum Server und überspringt dabei keine Telegramme.
sendrecv Wie send, jedoch wird auf eine Antwort gewartet.
!sendrecv Wie !send, jedoch wird auf eine Antwort gewartet.
response Die Antwort von sendrecv. Beim Erreichen des Timeouts wird eine leere Zeichenkette zurückgegeben.
recv Daten, die vom lokalen Server empfangen wurden.
error Falls ein Fehler beim Übertragen auftritt, ist der Wert wahr. Dieser kann bei sendrecv erst nach dem Timeout auftreten.

Hinweis: Beachten Sie die Sicherheit der Schnittstelle. Die Daten sollten nie direkt übers Internet übertragen werden. Hier fehlen die Authentifizierung und die Verschlüsselung via SSL oder TLS.