Typ | Funktionsbaustein |
Beschreibung | Der 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 und UDP_RECEIVE ü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/UDP_RECEIVE verwendet werden. Das Aufrufen der UDP_SEND/UDP_RECEIVE-Funktionsbausteine mit dem Sockethandle während ACTIVE auf FALSE gesetzt ist, führt 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.Bei einer fallenden Flanke des ACTIVATE-Eingangs wird der Socket geschlossen und der Ausgang ACTIVE auf FALSE gesetzt (siehe hierzu auch die nachfolgenden Hinweise).
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 |
1 | Wenn 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-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 'IEC 61131-3'-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.
|
Parameter | Eingänge
ACTIVATE
Datentyp: | BOOL |
Beschreibung: | Bei einer steigenden Flanke am Eingang wird begonnen, den Socket zu öffnen. Bei einer fallenden Flanke wird der Socket geschlossen. Solange der ACTIVATE-Eingang gesetzt ist, bleibt der Socket geöffnet. |
BIND_IP
Datentyp: | STRING |
Beschreibung: | Legt die lokale IP-Adresse (IPv4-Adresse) des Ethernet-Adapters fest, an den der erzeugte Socket gebunden ist. Der ausgewählte Ethernet-Adapter wird für den Datenaustausch zwischen den Netzwerkgeräten verwendet (z.B. sinnvoll für UDP-Server bei Steuerungen mit mehreren Ethernet-Adaptern). Zusammen mit der Portnummer, die mit dem erzeugten Socket verknüpft ist (BIND_PORT-Eingang), identifiziert die IP-Adresse den Ethernet-Adapter.Wird ein leerer String oder 0.0.0.0 angegeben, wird ein geeigneter Ethernet-Adapter ausgewählt.Der Funktionsbaustein wertet diesen Parameter nur in dem Taskzyklus aus, in dem am ACTIVATE-Eingang eine steigende Flanke erkannt wird. |
BIND_PORT
Datentyp: | UINT |
Beschreibung: | Gibt die lokale Portnummer an, die mit dem an die IP-Adresse des Ethernet-Adapters gebundenen Socket verknüpft ist (notwendig zur Realisierung eines UDP-Servers). Die ausgewählte Portnummer wird vom UDP-Socket für eingehende Daten verwendet. Ist der Wert 0 (Anfangswert des Parameters), wählt der Stack einen temporären Port aus.Der Funktionsbaustein wertet diesen Parameter nur in dem Taskzyklus aus, in dem am ACTIVATE-Eingang eine steigende Flanke erkannt wird. |
Ausgänge
HANDLE
Datentyp: | DWORD |
Beschreibung: | Das erzeugte Handle des IP-Sockets. Das Sockethandle wird als Input für die Funktionsbausteine UDP_RECEIVE und UDP_SEND benötigt, um bspw. Daten an einen UDP-Server zu senden bzw. von diesem zu empfangen.Das Sockethandle kann nur für einen Aufruf der Funktionsbausteine UDP_SEND/UDP_RECEIVE verwendet werden, solange ACTIVE = TRUE ist. Das Aufrufen eines UDP_*-Funktionsbausteins während ACTIVE = FALSE ist, führt zu einem Fehler (eine entsprechende Fehlermeldung wird am STATUS-Ausgang der UDP_*-Funktionsbausteine ausgegeben). |
ACTIVE
Datentyp: | BOOL |
Beschreibung: | Zeigt an, ob ein Socket geöffnet ist.TRUE: Die Verbindung wurde erfolgreich aufgebaut und der Socket ist geöffnet. Solange ACTIVE = TRUE ist, kann das erzeugte Sockethandle (HANDLE-Eingang) von den Funktionsbausteinen UDP_SEND/UDP_RECEIVE verwendet werden, um Daten zu senden bzw. zu empfangen.FALSE: Der Socket ist geschlossen. Während ACTIVE = FALSE ist, führt der Aufruf der Funktionsbausteine UDP_SEND/UDP_RECEIVE mit dem Sockethandle zu einem Fehler an den Funktionsbausteinen. |
BUSY
Datentyp: | BOOL |
Beschreibung: | Wird auf TRUE gesetzt, wenn der Eingang ACTIVATE = TRUE ist 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. |
ERROR
Datentyp: | BOOL |
Beschreibung: | Bei einem Fehler wird der Ausgang ERROR auf TRUE gesetzt. Der zugehörige Fehlercode kann am Ausgang STATUS ausgelesen werden, solange ERROR = TRUE ist.Siehe Fehlercodes / Statuscodes für Ethernet-FBs. |
STATUS
Datentyp: | WORD |
Beschreibung: | Liefert den Fehlercode im Fehlerfall (ERROR = TRUE) oder den aktuellen Status des Funktionsbausteins (ERROR = FALSE). Fehlercodes beginnen mit 16#Cxxx und Statuscodes mit 16#8xxx.Siehe Fehlercodes / Statuscodes für Ethernet-FBs. |
USED_PORT
Datentyp: | UINT |
Beschreibung: | Zeigt den Port an, der für die Erzeugung des Sockets verwendet wird (entweder automatisch vergeben oder die am Eingang BIND_PORT angegebene Portnummer). Der Ausgang kann bei Bedarf für Diagnosezwecke verwendet werden. |
|