UDP_SEND_2
Der Funktionsbaustein UDP_SEND_2 ist eine neuere Implementierung des UDP_SEND-FB, der in diesem Hilfethema als "ältere Implementierungen" bezeichnet wird. Im Unterschied zur älteren Implementierung unterstützt UDP_SEND_2 Broadcast, sofern der verwendete Socket mit dem FB UDP_SOCKET_2. entsprechend erzeugt wurde.
UDP_SEND_2 kann nur mit Sockethandles verwendet werden, die vom FB UDP_SOCKET_2 erzeugt wurden.
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). |
Typ | Funktionsbaustein |
Beschreibung | Der Funktionsbaustein wird für das Senden von UDP-Datagrammen (UDP = Universal Datagram Protocol) an ein UDP-fähiges Ethernet-Gerät über einen IP-Socket verwendet. Bevor Daten gesendet werden können, muss der IP Socket zuerst mit Hilfe des Funktionsbausteins UDP_SOCKET_2 geöffnet werden.Jeder einzelne Sendevorgang wird durch eine steigende Flanke am Eingang REQ angestoßen. In diesem Zyklus kopiert der Funktionsbaustein die Werte der an DATA angeschlossenen Variable in einen internen Buffer. Der Ausgang BUSY wird auf TRUE gesetzt, solange Daten aus dem internen Buffer gesendet werden. Solange BUSY = TRUE ist, wird der Eingang REQ ignoriert. Das Übertragen von neuen Daten, die während des laufenden Übertragungszyklus an DATA verfügbar sind, kann nur mit einer steigenden Flanke am Eingang REQ angestoßen werden, nachdem der Ausgang BUSY auf FALSE gesetzt wurde.Tritt während der Ausführung des Funktionsbausteins ein Fehler auf, wird der Ausgang ERROR für die Dauer eines Zyklus auf TRUE gesetzt. Der zugehörige Fehlercode wird in diesem Zyklus am Ausgang STATUS angezeigt.Der Datenempfänger (das Gerät) wird über die Parameter DEST_IP (IP-Adresse des Empfängers) und DEST_PORT (Portnummer des Empfängers) vorgegeben.Falls der verwendete Socket mit der Einstellung BROADCAST = TRUE am UDP_SOCKET_2-FB erzeugt wurde, können Daten als Broadcast gesendet werden. Dazu muss der Eingang DEST_IP auf die Broadcast-Adresse 255.255.255.255 eingestellt werden.
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 |
- Der mit dem Funktionsbaustein UDP_SOCKET_2 geöffnete IP Socket kann nur für den Aufruf des Funktionsbausteins UDP_SEND_2 verwendet werden, solange der Ausgang ACTIVE von UDP_SOCKET_2 = TRUE ist. Der Aufruf des Funktionsbausteins UDP_SEND_2 während ACTIVE = FALSE ist, führt zu einem Fehler an UDP_SEND_2 (ERROR = TRUE und STATUS-Code = 0xC210).
- 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.
- 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
REQ
Datentyp: | BOOL |
Beschreibung: | Mit einer steigenden Flanke am Eingang REQ wird die Übertragung der an DATA anliegenden Daten angestoßen. Der Eingang wird ignoriert, solange Daten gesendet werden (BUSY = TRUE).Alle anderen Eingangsparameter werden mit steigender Flanke am REQ-Eingang ausgewertet, sofern BUSY = FALSE ist. |
HANDLE
Datentyp: | DWORD |
Beschreibung: | Sockethandle, das mit dem Funktionsbaustein UDP_SOCKET_2 geöffnet wurde (siehe auch oben stehende Hinweise). Der Parameter wird nur in dem Zyklus ausgewertet, in dem am Parameter REQ eine steigende Flanke erkannt wird.
Hinweis
Ein Handle, das mit einer Instanz der älteren Implementierung des Funktionsbausteins UDP_SOCKET erzeugt wurde, darf nicht mit dem Funktionsbaustein UDP_SEND_2 verwendet werden. Verwenden Sie Handles nur innerhalb derselben "FB-Generation". |
|
DEST_IP
Datentyp: | STRING |
Beschreibung: | IP-Adresse (IPv4-Adresse) des Geräts, an das die im DATA-Buffer gespeicherten Daten gesendet werden sollen. Der Parameter wird nur in dem Zyklus ausgewertet, in dem am Parameter REQ eine steigende Flanke erkannt wird.Falls der verwendete Socket mit der Einstellung BROADCAST = TRUE am UDP_SOCKET_2-FB erzeugt wurde, können Daten als Broadcast gesendet werden. Dazu muss der Eingang DEST_IP auf die Broadcast-Adresse eingestellt werden. |
Hinweis
Falls Sie als DEST_IP am UDP_SEND_2-FB die begrenzte Broadcast-Adresse verwenden (d.h., 255.255.255), dann sollte der Eingang BIND_IP von UDP_SOCKET_2 ebenfalls auf die IP-Adresse des Ethernet-Adapters Ihrer Steuerung eingestellt werden, der mit dem Netzwerk verbunden ist, in das der Broadcast gesendet werden soll. Da die meisten PLCnext-Steuerungen mehr als einen Ethernet-Adapter besitzen (multi-homed), benötigt der IP-Stack diese Information, um Nachrichten über den richtigen Ethernet-Adapter senden zu können. Alternativ zu der begrenzten Broadcast-Adresse können Sie auch eine Subnetz-gerichtete Broadcast-Adresse verwenden. Diese Subnetz-gerichtete Broadcast-Adresse wird gebildet aus der Ethernet-Adresse des Adapters und VerODERung dieser Adresse mit der bitweise negierten Subnetzmaske. Beispiel: Für einen Adapter mit der IP-Adresse 192.168.1.10 und der Subnetzmaske 255.255.255.0 ist die entsprechende Subnetz-gerichtete Broadcast-Adresse 192.168.1.255. |
DEST_PORT
Datentyp: | UINT |
Beschreibung: | Portnummer des Geräts, an das die im DATA-Buffer gespeicherten Daten gesendet werden sollen. Der Parameter wird nur in dem Zyklus ausgewertet, in dem am Parameter REQ eine steigende Flanke erkannt wird. |
DATA_CNT
Datentyp: | UDINT |
Beschreibung: | Anzahl an Bytes im internen Buffer (DATA), die gesendet werden sollen (DATA_CNT = DATA_CouNT). Es können maximal 2147483647 Bytes gesendet werden. Dieser Grenzwert ist nur ein theoretischer Wert. In der Praxis bildet die maximale Größe der angeschlossenen Variable den Grenzwert.Der Parameter wird nur in dem Zyklus ausgewertet, in dem am Parameter REQ eine steigende Flanke erkannt wird.Für DATA_CNT = UDINT#16#FFFFFFFF wird die komplette an DATA angeschlossene Variable gesendet.
Tipp: Sie können mit der Funktion SIZEOF die Größe der Variable, d.h. die Anzahl der für die Variable im Speicher der Steuerung reservierten Bytes ermitteln. |
Ein-/Ausgang
DATA
Datentyp: | ANY |
Beschreibung: | Datenpuffer mit den Daten, die an das Gerät mit der IP-Adresse (DEST_IP) und der Portnummer (DEST_PORT) gesendet werden sollen.Die Daten werden als Byte-Stream übertragen. Es erfolgt keine Little-/Big-Endian-Konvertierung. Ist die angeschlossene Variable ein STRUCT (oder ARRAY OF STRUCT), enthält der Byte-Strom eventuell Padding Bytes. |
Ausgänge
DONE
Datentyp: | BOOL |
Beschreibung: | Der Ausgang wird auf TRUE gesetzt, wenn die Daten erfolgreich gesendet wurden. Der Ausgang wird für genau einen Zyklus gesetzt. |
BUSY
Datentyp: | BOOL |
Beschreibung: | Der Ausgang wird auf TRUE gesetzt, solange versucht wird, Daten zu senden. Der Eingang REQ wird ignoriert, solange der Ausgang BUSY gesetzt 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.Falls ein Fehler erkannt wurde, wird dieser Ausgang für nur einen Zyklus TRUE. Der Fehlercode muss in diesem Zyklus am Ausgang STATUS gelesen werden.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. |
|