UDP_Open-Baustein

Kurz-Information

Name

UDP_Open

→POE-Typ

→Funktion

Kategorie

Weitere Systembausteine, Netzwerkbausteine, Baustein mit interner Fehlerdiagnose

Grafische Schnittstelle

Verfügbar ab

  • Version 1.105.0 (für Neuron Power Engineer) und Version 3.15.0 von Neuron RTS max
    (Warnung) Dieser Baustein wird für diese →Zielsysteme oder Plattformen unterstützt:

  • Version 1.109.0 (für Neuron Power Engineer) und Version 3.19.0 von Neuron RTS max
    (Warnung) Dieser Baustein wird nur für diese Zielsysteme oder Plattformen unterstützt:

    • Raspberry Pi,  Revolution Pi

    • Plattform WindowsX86 (inkl. der integrierten SPS unter Windows)

    • Plattform LinuxX86

Funktionalität

Der Baustein gibt eine reservierte Adresse und einen reservierten Port frei, die zuvor mit dem Baustein UDP_Open reserviert wurden.

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

(Info) 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: Zu viele Systemressources sind 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.