UDP_Open-Baustein

Kurz-Information

NameUDP_Open
→POE-Typ→Funktion
KategorieWeitere Systembausteine, Netzwerkbausteine, Baustein mit interner Fehlerdiagnose
Grafische Schnittstelle

Verfügbar ab
  • Version 1.105.0 (für logi.CAD 3 ) und Version 3.15.0 von logi.RTS
    (warning) 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
    (warning) 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→DatentypBeschreibung
Eingänge:addressDWORD

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.

portUINTzu reservierender IP-Port in Host-Byte-Reihenfolge (englisch: host byte order)
Beispiel: Der IP-Port 1125 muss als Wert 1125 angegeben werden.
Ausgänge:rcUDINT

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.

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.