SOCKET_OPEN

Die SOCKET_OPEN-Anweisung öffnet die Verbindung für die angegebene Zieladresse für Transmission Control Protocol-Verbindungen (TCP). Für User Datagram Protocol-Verbindungen (UDP) wird dem Socket eine Ziel-IP-Adresse und eine Port-Nummer zugeordnet.
Details zum Betrieb:
  • Für UDP-Verbindungen (User Datagram Protocol) mittels
    SOCKET_OPEN
    sind IP-Adresse und Port-Nummer nicht bei jedem Datensendevorgang erforderlich.
  • Für UDP-Verbindungen, bei denen
    SOCKET_OPEN
    nicht verwendet wird, muss die Zieladresse bei jeder Verwendung von
    SOCKET_WRITE
    zum Senden von Daten angegeben werden.
  • Bei Verwendung von
    SOCKET_READ
    wird neben dem Empfang von Daten die Adresse des Absenders zurückgegeben. Die Adresse des Absenders kann zum Senden einer Antwort mittels
    SOCKET_WRITE
    verwendet werden.
  • Ein
    SOCKET_OPEN
    -Vorgang wird ggf. vor dem Zeitüberschreitungszeitraum zurückgegeben, ohne dass eine Transmission Control Protocol (TCP)-Verbindung erstellt wird. Dies kann auftreten, wenn das Zielgerät in Betrieb ist, jedoch Verbindungen an der angegebenen Portnummer nicht beachtet.
    SOCKET_OPEN
    gibt vor dem Zeitüberschreitungszeitraum einen Fehler zurück.
  • Die Ausgänge werden synchron vom Programm-Scan aktualisiert.
Unterstützte Sprachen: Funktionsblockdiagramm, Kontaktplan und Strukturierter Text.
Diese Anweisung gilt für
Micro820
L20E-,
Micro850
L50E- und
Micro870
L70E-Controller.
SOCKET_OPEN
SOCKET_OPEN
SOCKET_OPEN-Parameter
Parameter
Parametertyp
Datentyp
Beschreibung
Execute
Eingang
BOOL
Anweisungsblock aktivieren.
  • TRUE: Anstiegsflanke erkannt. Startet den Anweisungsblock unter der Voraussetzung, dass der letzte Vorgang abgeschlossen ist.
  • FALSE: Keine Anstiegsflanke erkannt.
Instance
Eingang
UDINT
Kopieren vom zurückgegebenen Socket-Handler aus einem SOCKET_CREATE-Funktionsblock.
Timeout
Eingang
UDINT
Zeitüberschreitung für SOCKET_OPEN-Funktionsblock.
Der Funktionsblock gibt einen Fehler zurück, wenn der Zeitüberschreitungswert geringer als der Mindestwert ist.
Zeitüberschreitungsbereich: 1000 - 1.800.000 Millisekunden
Setzen Sie Zeitüberschreitung auf 0 zur Verwendung des Standardwerts 10.000 (10 Sekunden).
DestAddr
Eingang
Die Adresse der Zielverbindung.
Eine Verbindung zwischen der IP-Adresse und der Portnummer des Remote-Host ist erforderlich.
Die folgenden IP-Adressen werden nicht für DestAddr unterstützt:
  • Eigene IP-Adresse
  • Loop-back-Adresse
  • 0.0.0.0
  • Sendeadresse (Nur unterstützt für TCP), Ausnahmeadressen
  • Multicast-Adresse der Klasse D (224.x.x.x)
  • Lokale Link-Adresse (169.254.x.x)
Beispiel für IP-Adresse von 192.168.2.100 und Port 12000:
  • DestAddr.IPAddress[0]=192
  • DestAddr.IPAddress[1]=168
  • DestAddr.IPAddress[2]=2
  • DestAddr.IPAddress[3]=100
  • DestAddr.Port = 12000
EnUDPRxFilter
Eingang
BOOL
Wenn für UDP-Socket SOCKET_OPEN und „EnUDPRxFilter aktivieren“ verwendet werden, wird kein Paketfilter für eine spezifische IP-Adresse und Portnummer bei jedem Lesen der Daten benötigt.
  • Eine UDP-Socket mit offenem wird erstellt. DestAddr als IP 192.168.1.157/Port 161. EnUDPRxFilter aktivieren, Socket_Read durchführen.
  • Wenn Controller Daten von DestAddr (192.168.1.157 / 161) empfangen, führt Socket_Read den Vorgang erfolgreich ab. Wenn der Controller Daten von einer anderen IP-Adresse oder einem anderen Port empfängt, ignoriert Socket_Read das Paket und wartet auf das DestAddr-Paket.
EnUDPRxFilter deaktiviert:
  • SOCKET_READ durchführen. Wenn die Steuerung bei der Konfiguration des UDP-Ports empfängt, schließt SOCKET_READ den Vorgang erfolgreich ab.
  • Die Anwendung überprüft, ob das eingehende Paket vom erwarteten Gerät eingeht oder nicht.
  • Die Anwendung führt die Filterung basierend auf dem SOCKET_READ-Ausgangsparameter UDPAddr durch.
Done
Ausgang
BOOL
Gibt an, wenn der Vorgang abgeschlossen ist.
  • TRUE: Vorgang erfolgreich abgeschlossen
  • FALSE: Vorgang wird ausgeführt oder eine Fehlerbedingung ist aufgetreten.
Die Ausgabe wird synchron vom Programm-Scan aktualisiert.
Busy
Ausgang
BOOL
  • TRUE: Der Vorgang ist nicht abgeschlossen.
  • FALSE: Vorgang ist abgeschlossen.
Die Ausgabe wird synchron vom Programm-Scan aktualisiert.
Error
Ausgang
BOOL
Gibt an, dass ein Fehler aufgetreten ist.
  • TRUE: Es wurde ein Fehler erkannt.
  • FALSE: Kein Fehler.
Die Ausgabe wird synchron vom Programm-Scan aktualisiert.
Status
Ausgang
SOCK_STATUS
Der Status wird mithilfe der Datentyp SOCK_STATUS definiert, welche ErrorID-, SubErrorID- und StatusBits-Informationen enthält.
Die Ausgabe wird synchron vom Programm-Scan aktualisiert.

SOCKET_OPEN-Beispiele

Beispiel für ein SOCKET_OPEN-Funktionsblockdiagramm
Beispiel für ein SOCKET_OPEN-Funktionsblockdiagramm
Beispiel für einen SOCKET_OPEN-Kontaktplan
Beispiel für einen SOCKET_OPEN-Kontaktplan
Beispiel für strukturierten SOCKET_OPEN-Text
Beispiel für strukturierten SOCKET_OPEN-Text
Ergebnisse – TCP
Ergebnisse – TCP
Ergebnisse – UDP
Ergebnisse – UDP
Rückmeldung geben
Haben Sie Fragen oder Feedback zu dieser Dokumentation? Bitte geben Sie hier Ihr Feedback ab.
Normal