UDP_Open-Baustein

Kurz-Information

Name

UDP_Open

→POE-Typ

→Funktion

Kategorie

Weitere Systembausteine, Netzwerkbausteine, Baustein mit interner Fehlerdiagnose

Grafische Schnittstelle

images/download/thumbnails/414780524/UDP_Open-version-1-modificationdate-1534501973237-api-v2.png

Verfügbar ab

  • Version 1.105.0 (für logi.CAD 3) und Version 3.15.0 von logi.RTS
    images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/warning.svg Dieser Baustein wird nur für diese →Zielsysteme oder Plattformen unterstützt:

  • Version 1.109.0 (für logi.CAD 3) und Version 3.19.0 von logi.RTS
    images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/warning.svg Dieser Baustein wird nur für diese Zielsysteme oder Plattformen unterstützt:

    • Raspberry Pi, Revolution Pi

    • Plattform WindowsX86 (inkl. integrierte SPS unter Windows)

    • Plattform LinuxX86

Funktionalität

Der Baustein reserviert eine Adresse und einen Port für eine →UDP-Kommunikation.

Eingänge, Ausgänge, Ergebniswert


Bezeichner

→Datentyp

Beschreibung

Eingänge:

address

DWORD

zu reservierende IP-Addresse in Netzwerk-Byte-Reihenfolge (englisch: network byte order)
Beispiel: Die IP-Adresse 127.0.0.1 muss als Wert 16#0100007F angegeben werden.

images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/information.svg 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)
Beispiel: Der IP-Port 1125 muss als Wert 1125 angegeben werden.

Ausgänge:

rc

UDINT

Status der UDP-Operation:

  • 16#00000000: Die Operation ist erfolgreich.

  • 16#80000007: Es wurden zu viele Systemressourcen reserviert.
    Reduzieren Sie die Verwendung von UDPOpen.

  • 16#81000003: Die Systemressourcen konnten nicht reserviert werden.

  • 16#81000004: Die Adresse und der Port konnten nicht reserviert werden.

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:

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

Programm mit Aufrufen von UDP-Bausteinen
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.