FB_ClientServerConnection

FB_ClientServerConnection 1:

Mit dem Funktionsbaustein FB_ClientServerConnection kann eine Client-Verbindung verwaltet werden (auf- und abgebaut werden). FB_ClientServerConnection vereinfacht die Implementierung einer Client-Applikation in dem er die Funktionalität von den zwei Funktionsbausteinen FB_SocketConnect und FB_SocketClose bereits intern kapselt. Die integrierte Debug-Ausgabe des Verbindungsstatus erleichtert die Fehlersuche bei Konfigurations- oder Kommunikationsfehlern. Eine minimale Client-Applikation benötigt zusätzlich nur noch jeweils eine Instanz vom FB_SocketSend und/oder eine Instanz vom FB_SocketReceive Funktionsbaustein.

Eine typische Client-Applikation stellt im ersten Schritt mit dem FB_ClientServerConnection-Funktionsbaustein die Verbindung zum Server her. Im nächsten Schritt können dann Instanzen von FB_SocketSend und/oder FB_SocketReceive benutzt werden, um Daten mit dem Server auszutauschen. Wann eine Verbindung geschlossen wird, hängt von den Anforderungen der Applikation ab.

FB_ClientServerConnection 2: Eingänge

VAR_INPUT
    sSrvNetID   : T_AmsNetID := '';
    nMode       : DWORD := 0;
    sRemoteHost : T_IPv4Addr := '';
    nRemotePort : UDINT;
    bEnable     : BOOL;
    tReconnect  : TIME := T#45s;(*!!!*)
END_VAR

Name

Typ

Beschreibung

sSrvNetID

T_AmsNetID

String mit der AMS-Netzwerkadresse des TwinCAT TCP/IP Connection Servers. Für den loka-len Rechner (default) kann auch ein Leerstring angegeben werden.

nMode

DWORD

Parameter-Flags (Modi). Die zulässigen Parameter sind hier aufgeführt und können mit einer ODER-Verknüpfung kombiniert werden:

CONNECT_MODE_ENABLEDBG:

Aktiviert das Loggen von Debug-Meldungen im Application-Log. Um die Debug-Meldungen zu sehen öffnen Sie den Twin-CAT System Manager und aktivieren Sie die Loggeransicht.

sRemoteHost

T_IPv4Addr

IP-Adresse (Ipv4) des Remote-Servers als String (z. B. '172.33.5.1'). Für einen Server auf dem lokalen Rechner kann auch ein Leerstring angegeben werden.

nRemotePort

UDINT

IP-Portnummer des Remote-Servers (z. B. 200).

bEnable

BOOL

Solange dieser Eingang TRUE ist, wird zyklisch versucht, eine neue Verbindung herzustellen, bis eine Verbindung hergestellt wurde. Mit FALSE kann eine hergestellte Verbindung wieder geschlossen werden.

tReconnect

TIME

Zykluszeit, mit der der Funktionsbaustein versucht, die Verbindung aufzubauen.

FB_ClientServerConnection 3:

Zykluszeit für die Verbindung einstellen

Setzen Sie den Wert tReconnect nicht zu niedrig, da bei einer Netzwerkunterbrechung Timeoutzeiten von >30s auftreten können. Bei einem zu niedrigen Wert wird die Kommandoausführung vorzeitig unterbrochen und der ADS-Fehlercode: 1861 (timeout elapsed) statt des Winsocket-Fehlers: WSAETIMEDOUT zurückgeliefert.

FB_ClientServerConnection 4: Ausgänge

VAR_OUTPUT
    bBusy      : BOOL;
    bError     : BOOL;
    nErrId     : UDINT;
    hSocket    : T_HSOCKET;
    eState     : E_SocketConnectionState := eSOCKET_DISCONNECTED;
END_VAR

Name

Typ

Beschreibung

bBusy

BOOL

TRUE, solange der Funktionsbaustein aktiv ist.

bError

BOOL

Wird bei Auftreten eines Fehlercodes TRUE.

nErrID

UDINT

Dieser Parameter liefert bei einem gesetzten bError-Ausgang die TwinCAT TCP/IP Connection Server Fehlernummer.

hSocket

T_HSOCKET

Verbindungshandle zu dem neu geöffneten Local-Client Socket. Diese Variable wird bei Erfolg an die Instanzen der Funktionsbausteine FB_SocketSend und/oder FB_SocketReceive übergeben.

eState

E_SocketConnectionState

Liefert den aktuellen Verbindungsstatus.

Beispiel für einen Aufruf in FUP

PROGRAM MAIN
VAR
    fbClientConnection1 : FB_ClientServerConnection;
    bConnect1           : BOOL;
    bBusy1              : BOOL;
    bError1             : BOOL;
    nErrID1             : UDINT;
    hSocket1            : T_HSOCKET;
    eState1             : E_SocketConnectionState;
END_VAR
FB_ClientServerConnection 5:

Hier finden Sie weitere Anwendungsbeispiele (und Quellcode): Beispiele

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS Bibliotheken (Kategoriegruppe)

TwinCAT v3.1.0

PC oder CX (x86, x64, ARM)

Tc2_TcpIp (Communication)