SOCKET_CREATE

Erstellt eine Instanz des Sockets und gibt eine Instanznummer zurück, die als Eingabe für nachfolgende Socket-Vorgänge verwendet wird.
Details zum Betrieb:
  • Socket-Anweisungen unterstützen Vollduplex-Kommunikation mit Remotegeräten.
  • UDP-Verbindungen (User Datagram Protocol) unterstützen maximal acht UDP-Datagram-Pakete in der Warteschlange. Die Warteschlange enthält die aktuellsten Pakete.
  • Micro820
    L20E-Controller mit Version 9 oder höher unterstützen bis zu acht Socket-Instanzen. Die Socket-Instanzen unterstützen UDP- und TCP-Sockets:
    • Verwenden Sie alle acht Instanzen für Client-seitige Transmission Control Protocol (TCP)-Verbindungen.
    • Verwenden Sie alle acht Instanzen, um eine Überwachung auf eingehende TCP-Verbindungen vorzunehmen, und akzeptieren Sie anschließend acht Verbindungen von anderen Geräten.
    • Führen Sie TCP-Client- und Server-Vorgänge durch.
    • Führen Sie TCP- und UDP-Vorgänge durch.
  • Um eingehende TCP-Verbindungen zu demselben Port zu akzeptieren, müssen Sie eine neue Socket-Instanz erstellen.
  • TCP-Verbindungsunterbrechung:
    • Das Benutzer-Anwendungsprogramm sollte die Unterbrechung der TCP-Verbindungen erkennen und das Ereignis verarbeiten. Je nach Benutzeranwendung kann die Option einen Controller-Fehler bewirken.
      • Fehler des Controllers
      • Versuchen Sie, die Verbindung erneut herzustellen.
  • So stellen Sie die Kommunikation mit einem anderen Gerät wieder her:
    • Löschen Sie die Socket-Instanz für die unterbrochene Verbindung.
    • Wenn es sich bei der Verbindung um einen TCP-Client handelt, erstellen Sie mithilfe von SOCKET_CREATE eine neue Socket-Instanz und führen Sie SOCKET_OPEN auf dem Zielgerät aus.
    • Wenn es sich bei der Verbindung um einen TCP-Server handelt, erstellen Sie mithilfe von SOCKET_CREATE eine Socket-Instanz und führen Sie SOCKET_ACCEPT aus, um auf eine weitere Verbindung vom Remote-Gerät zu warten.
  • Anwendungsmeldungen für TCP-Verbindungen:
    • Eine TCP-Verbindung ist ein Byte-Datenstrom zwischen zwei Anwendungen. Das Anwendungsprotokoll ermittelt die Meldungsformate.
    • Meldungen können eine feste oder variable Größe aufweisen.
Unterstützte Sprachen: Funktionsblockdiagramm, Kontaktplan und Strukturierter Text.
Diese Anweisung gilt für
Micro820
L20E-,
Micro850
L50E- und
Micro870
L70E-Controller.
SOCKET_CREATE
SOCKET_CREATE
SOCKET_CREATE-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.
Type
Eingang
USINT
Angeben des Socket-Typs:
  • Transmission Control Protocol (TCP)
  • User Datagram Protocol (UDP)
SockAddr
Eingang
SOCKADDR_CFG
Legt die Adresskonfiguration des Socket fest.
Das EtherNet/IP-Modul, um die lokale Port-Nummer auswählen, „SockAddr“ wird auf 0 gesetzt.
Geben Sie die lokale Port-Nummer an, bei der eine Anwendung überwacht und empfängt, oder:.
  • Alle Array-Elemente müssen Null sein.
  • Für TCP-Client-Vorgänge 0 angeben, sofern keine spezifische lokale Portnummer gewünscht ist.
  • Für die TCP-Serverkommunikation die Portnummer angeben, um eingehende Verbindungsanfragen zu akzeptieren.
  • Für UDP eine lokale Portnummer festlegen, um Datagramme an einem bestimmten Port zu empfangen.
Lokaler Portbereich: Von 1 bis 65535.
Ein Fehler tritt auf, wenn die angegebene lokale Portnummer bereits vom
Micro820
L20E- oder
Micro850
L50E-Controller verwendet wird.
Die Steuerung nutzt die folgenden Portnummern:
TCP-Ports:
  • EtherNet/IP: 44818
  • ModbusTCP: 502
  • DHCP-Server: 67
  • DHCP-Client: 68
UDP-Ports:
  • EtherNet/IP: 2222
  • DHCP-Server: 67
  • DHCP-Client: 68
Weitere Informationen finden Sie unter Datentyp SOCKADDR_CFG.
Timeout
Eingang
UDINT
Geben Sie das Timeout für die Socket-Inaktivität an.
Wenn eine Socket-Instanz innerhalb einer bestimmten Inaktivitätszeitüberschreitung keine Anforderungen erhält, wird die Socket-Instanz gelöscht.
Wenn nach dem Löschen der Socket-Instanz eine Anforderung gesendet wird, wird der Fehler „Socket-Instanz nicht unterstützt“ zurückgegeben.
Der Anweisungsblock gibt einen Fehler zurück, wenn der Zeitüberschreitungswert geringer als der Mindestwert ist.
Setzen Sie die Zeitüberschreitung so fest, dass sie länger als das längste Intervall zwischen den Socket-Vorgängen ist. Wenn das Inaktivitäts-Zeitlimit zu kurz ist, tritt ggf. eine Zeitüberschreitung der Socket-Instanzen auf. Zeitüberschreitungsbereich: 1000–86.400.000 Millisekunden.
Setzen Sie die Zeitüberschreitung auf 0 zur Verwendung des Standardwerts 300.000 (5 Minuten).
Done
Ausgang
BOOL
Gibt an, wenn der Vorgang abgeschlossen ist.
  • TRUE: Vorgang erfolgreich abgeschlossen
  • FALSE: Vorgang wird ausgeführt oder eine Fehlerbedingung ist aufgetreten.
Busy
Ausgang
BOOL
  • TRUE: Vorgang ist nicht vollständig abgeschlossen.
  • FALSE: Vorgang ist abgeschlossen.
Error
Ausgang
BOOL
Gibt an, dass ein Fehler aufgetreten ist.
  • TRUE: Es wurde ein Fehler erkannt.
  • FALSE: Kein Fehler.
Status
Ausgang
SOCK_STATUS
Status wird mit dem Datentyp „SOCK_STATUS“ definiert, der ErrorID-, SubErrorID- und StatusBits-Informationen enthält.
Instance
Ausgang
UDINT
Enthält den Socket-Handler.
Den Instanzparameter für nachfolgende Socket-Anweisungen verwenden.

SOCKET_CREATE-Beispiele

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