-

UDP_SOCKET_2

Der Funktionsbaustein UDP_SOCKET_2 ist eine neuere Implementierung des UDP_SOCKET-FB, der in diesem Hilfethema als "ältere Implementierungen" bezeichnet wird. Der Unterschied zwischen der neuen und der älteren Implementierung ist, dass UDP_SOCKET_2 Broadcast unterstützt.

Sockethandles, die mit UDP_SOCKET_2 erzeugt wurden, können nur mit den Funktionsbausteinen UDP_SEND_2 und UDP_RECEIVE_2 verwendet werden.

Hinweis
Dieser Funktionsbaustein erfordert die Firmware-Version 2021.3 oder neuer.

Hinweis
Um in einem bestehenden Projekt Instanzen der früheren FB-Implementierung durch neuere FBs zu aktualisieren, ersetzen Sie diese wie folgt: Editieren Sie die Deklaration der Instanzvariablen und (nur in FBD) aktualisieren Sie den Instanzaufruf im Code. Formalparameter mit gleichem Namen bleiben verbunden, neu hinzugefügte Formalparameter müssen verbunden werden (falls deren Funktion benötigt wird).

TypFunktionsbaustein
BeschreibungDer Funktionsbaustein öffnet und schließt einen IP-Socket, der für die IP-Kommunikation über das User Datagram Protocol (UDP) verwendet wird.

Der IP-Socket wird durch den Ausgangsparameter HANDLE repräsentiert. Dieses Handle muss an die Funktionsbausteine UDP_SEND_2 und UDP_RECEIVE_2 übergeben werden. Die FBs benötigen das Sockethandle, um Daten mit einem Kommunikationspartner auszutauschen.

Mit einer steigenden Flanke am Eingang ACTIVATE wird begonnen, einen Socket zu öffnen. Bei erfolgreichem Öffnen des Sockets und Verbindungsaufbau wird der Ausgang ACTIVE auf TRUE gesetzt. Solange ACTIVE = TRUE ist, kann das Sockethandle am Ausgang HANDLE für den Aufruf der Funktionsbausteine UDP_SEND_2/UDP_RECEIVE_2 verwendet werden. Während ACTIVE = FALSE, führt das Aufrufen von UDP_SEND_2/UDP_RECEIVE_2 mit dem Sockethandle zu einem Fehler an den Funktionsbausteinen. Solange der ACTIVATE-Eingang gesetzt ist, bleibt der Socket geöffnet. Der Ausgang BUSY wird auf TRUE gesetzt, während ACTIVATE = TRUE und der Socket noch nicht geöffnet ist. Nach erfolgreichem Öffnen des Sockets wird BUSY auf FALSE gesetzt und bleibt FALSE, solange ACTIVE = TRUE ist.

Die IP-Adresse und der Port des Ethernet-Adapters, der für den Datenaustausch verwendet werden soll, können mit den Eingängen BIND_IP und BIND_PORT vorgegeben werden.

Der Eingang BROADCAST steuert, ob ein bestimmter Kommunikationspartner adressiert wird, oder (falls TRUE anliegt) alle möglichen Adressen im Netzwerk.

Bei einer fallenden Flanke des ACTIVATE-Eingangs wird der Socket geschlossen und der Ausgang ACTIVE auf FALSE gesetzt (siehe hierzu auch die nachfolgenden Hinweise).

WARNUNG
Unbeabsichtigter Betriebszustand des Geräts
Stellen Sie sicher, dass das Ändern der Ausgangsdaten nicht zu einem ungewollten oder gefährlichen Verhalten des Gesamtsystems führen kann.1

1Wenn Sie die Anwendungslogik auf der Simulation ausführen, werden durch die Funktionsbausteine echte Verbindungen zu anderen Geräten/Servern aufgebaut. Dadurch können gegebenenfalls Ausgänge und Variablen, die mit echter Hardware verbunden sind, gesetzt werden und somit zu echten Beschädigungen der Maschine führen.

Hinweise
  • Die Funktionsbausteine für die UDP-Kommunikation werden asynchron verarbeitet. Das bedeutet, die Funktionsbausteine erteilen Befehle und warten auf deren Verarbeitung.
  • Bei einem Warm- oder Kaltstart oder einem Reset der Steuerung, schließt die Firmware alle Sockets, die mit der entsprechenden UDP_SOCKET_2-Instanz geöffnet wurden.
  • Stellen Sie bei Steuerungen mit integrierter Firewall sicher, dass die Firewall nicht die für die Kommunikation benötigten Ports blockiert. Andernfalls kann keine Verbindung hergestellt werden.
  • Alle verwendeten IP-Adressen sind IPv4-Adressen. IPv4-Adressen bestehen aus 4 Zahlen (Werte von 0 bis 255), die durch Punkte voneinander getrennt sind.
  • Die Anzahl der gerade geöffneten IP-Sockets wird in der Systemvariablen IP_ACTIVE_SOCKETS gespeichert (enthalten in der Datenliste des Steuerungsknotens und des 'PLC'-Knotens der ANLAGE).
  • Funktionsbausteine müssen instanziiert werden.
    Der FB-Instanzname muss in der 'Variablen'-Tabelle der POE deklariert werden, in welcher der FB verwendet werden soll. Der Instanzname muss innerhalb der POE eindeutig sein.
  • Gleichzeitig können bis zu 64 Sockets aktiviert werden. Diese 64 Sockets werden von den FBs UDP_SOCKET_2 und den "veralteten" FBs UDP_SOCKET und TCP_SOCKET gemeinsam genutzt (siehe auch Statuscode 0xC201).
  • Die Ausführung des Funktionsbausteins dauert eine bestimmte Zeit (mehrere Millisekunden), wenn am Eingang ACTIVATE eine steigende Flanke erkannt wird. Berücksichtigen Sie diese Zeit, wenn Sie den Watchdog eines ESM-Tasks, in welchem der FB ausgeführt wird, konfigurieren. Dies gilt auch, wenn der FB indirekt, z.B. in der Modbus_TCP-Bibliothek verwendet wird.
ParameterEingänge

ACTIVATE

BIND_IP

BIND_PORT

BROADCAST

Ausgänge

HANDLE

ACTIVE

BUSY

ERROR

STATUS

USED_PORT