UDP_Open-Baustein
Kurz-Information
Name |
UDP_Open |
→POE-Typ |
|
Kategorie |
Weitere Systembausteine, Netzwerkbausteine, Baustein mit interner Fehlerdiagnose |
Grafische Schnittstelle |
|
Verfügbar ab |
|
Funktionalität
Der Baustein reserviert eine Adresse und einen Port für eine →UDP-Kommunikation.
Eingänge, Ausgänge, Ergebniswert
|
Bezeichner |
Beschreibung |
|
Eingänge: |
address |
DWORD |
zu reservierende IP-Addresse in Netzwerk-Byte-Reihenfolge (englisch: network byte order) Verwenden Sie den INET_ATON-Baustein, um die IP-Adresse zu konvertieren. |
port |
UINT |
zu reservierender IP-Port in Host-Byte-Reihenfolge (englisch: host byte order) |
|
Ausgänge: |
rc |
UDINT |
Status der UDP-Operation:
|
Ergebniswert: |
– |
DINT |
liefert den Handle der reservierten Adresse und des reservierten Ports |
Der Eingang EN und der Ausgang ENO sind für den →Aufruf
des Bausteins verfügbar. Siehe "Ausführungssteuerung: EN, ENO" für Informationen zum Eingang EN und zum Ausgang ENO.
Informieren Sie sich unter:
"Bausteine für sichere Logik", ob dieser Baustein für das Entwickeln von sicherheitsrelevanten Anwendungen unterstützt wird.
"Kennzeichnung von sicherer Logik im FBS-Editor", welche Auswirkung die Verwendung des Bausteins als Baustein für sichere Logik hat.
Interne Fehlerdiagnose für Baustein
Der Baustein prüft die folgenden Fehlerfälle:
Es wurden zu viele Systemressourcen reserviert.
Die Systemressourcen konnten nicht reserviert werden.
Die Adresse und der Port konnten nicht reserviert werden.
In einem solchen Fehlerfall wird der Ausgang ENO des Bausteins auf den Wert FALSE (oder eine Entsprechung) zurückgesetzt. Zusätzlich liefert der Ausgang rc den entsprechenden Status (siehe die vorhergehende Tabelle).
Beispiel für Verwendung im ST-Editor
TYPE
udpCommunicationData : STRUCT
dstAddr : DWORD;
dstPort: UINT;
handle : DINT;
END_STRUCT;
END_TYPE
PROGRAM ExampleUdpBlocks
VAR
udpCommData : udpCommunicationData;
msg : STRING[56] := 'Text Message';
receiveBuffer : STRING[100];
END_VAR
udpCommData.dstAddr := INET_ATON(hostAddr := '127.0.0.1');
(* This example assumes that the IP-address '127.0.0.1' is registered in the ARP table.
If not, the first ' UDP_Send' command will be used by the operating system to create the required entries in the ARP table.
Mind that the first sent message might be lost. *)
udpCommData.dstPort := 8888;
udpCommData.handle := UDP_Open(address:=udpCommData.dstAddr, port := udpCommData.dstPort);
UDP_Send(handle:=udpCommData.handle, lengthOfDataToSend := LEN(msg), data := msg, destinationAddress:=udpCommData.dstAddr, destinationPort := udpCommData.dstPort);
UDP_Receive(handle:=udpCommData.handle, data:=receiveBuffer);
UDP_Close(handle := udpCommData.handle);
END_PROGRAM
Bei der Erstellung Ihrer Anwendung im ST-Editor erstellen Sie den Aufruf eines Bausteins, indem Sie den laut Syntax erforderlichen Text eintippen oder die Inhaltshilfe verwenden.