TCP_Connect-Baustein

Kurz-Information

NameTCP_Connect
→POE-Typ→Funktion
KategorieWeitere Systembausteine, Netzwerkbausteine, Baustein mit interner Fehlerdiagnose
→Namespacelogicals.system.network.tcp
Grafische Schnittstelle

Verfügbar ab

Version 3.2.2 (für Bibliothek Standard)
(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 stellt eine Verbindung zu einem →TCP-Server her.

Eingänge, Ausgänge, Ergebniswert


Bezeichner→DatentypBeschreibung
Eingänge:


destinationAddress
DWORDIP-Adresse des Ziels
destinationPortUINTIP-Port des Ziels
interfaceAddressDWORDIP-Adresse der Netzwerkschnittstelle
interfacePortUINTIP-Port der Netzwerkschnittstelle
Ausgänge:clientHandleTCP_ClientHandleHandel der reservierten Adresse und des reservierten Ports
Ergebniswert: (= rc)TCP_ErrorCode

liefert den Status der TCP-Operation:

  • succeeded: Die Operation ist erfolgreich.
  • cannotCreateSocket: Socket kann nicht erstellt werden.
  • cannotBindSocket: Socket für die Schnittstelle kann nicht gebunden werden.
  • cannotConnectToServer: Die Verbindung zum Server kann nicht erstellt werden.

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:

  • Socket kann nicht erstellt werden.
  • Socket für die Schnittstelle kann nicht gebunden werden.
  • Die Verbindung zum Server kann nicht erstellt werden.

In einem solchen Fehlerfall wird der Ausgang ENO des Bausteins auf den Wert FALSE (oder eine Entsprechung) zurückgesetzt. Zusätzlich liefert der Baustein den entsprechenden Status (siehe die vorhergehende Tabelle).

Beispiel für Verwendung im ST-Editor

Programm mit Aufrufen von TCP-Bausteinen
PROGRAM TCP_Client
  USING logicals.system.network.tcp;
  VAR
    rcTCPConnect : TCP_ErrorCode := invalidHandle;
    clientCommData : tcpClientCommData;
    receiveTestMsg : STRING[30] := '';
    init : bool := true;
  END_VAR

  IF init THEN
    clientCommData.serverAddress := INET_ATON('127.0.0.1');
    clientCommData.serverPORT := 9999;
  END_IF;

  IF rcTCPConnect <> succeeded THEN
    rcTCPConnect := TCP_Connect(destinationAddress:=clientCommData.serverAddress, destinationPort:=clientCommData.serverPORT, clientHandle=>clientCommData.clientHandle);
  ELSE
    TCP_Receive(clientHandle:=clientCommData.clientHandle, data:=receiveTestMsg);
  END_IF;
END_PROGRAM

TYPE
  tcpServerCommData : STRUCT
    address : DWORD;
    port : UINT;
    serverHandle : logicals.system.network.tcp.TCP_ServerHandle;
    clientHandle : logicals.system.network.tcp.TCP_ClientHandle;
  END_STRUCT;

  tcpClientCommData : STRUCT
    serverAddress : DWORD;
    serverPORT : UINT;
    clientHandle : logicals.system.network.tcp.TCP_ClientHandle;
  END_STRUCT;
END_TYPE


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.