FB_ClientServerConnection
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.
VAR_INPUT
VAR_INPUT
sSrvNetID : T_AmsNetID := '';
nMode : DWORD := 0;
sRemoteHost : STRING(15) := '';
nRemotePort : UDINT;
bEnable : BOOL;
tReconnect : TIME := T#45s;
END_VAR
sSrvNetID: String mit der Ams-Netzwerkadresse des TwinCAT TCP/IP Connection Servers. Für den lokalen Rechner (default) kann auch ein Leerstring angegeben werden.
nMode: Parameter-Flags (Modi). Die zulässigen Parameter sind in der Tabelle aufgeführt und können mit einer ODER-Verknüpfung kombiniert werden:
Flag | Beschreibung |
---|---|
CONNECT_MODE_ENABLEDBG | Aktiviert das Loggen von Debug-Meldungen im Application-Log. Um die Debug-Meldungen zu sehen, öffnen Sie den TwinCAT System Manager und aktivieren Sie die Loggeransicht. |
sRemoteHost: Die 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: Die IP-Portnummer des Remote-Servers (z.B.: 200).
bEnable: Solange dieser Eingang TRUE ist wird zyklisch versucht eine Verbindung aufzubauen, solange bis eine Verbindung aufgebaut wurde. Mit FALSE kann eine aufgebaute Verbindung wieder geschlossen werden.
tReconnect: Zykluszeit mit der der Funktionsbaustein versucht die Verbindung aufzubauen. Spätestens nach dieser Zeit wird der Versuch abgebrochen und ein neuer gestartet.
![]() | 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. |
VAR_OUTPUT
VAR_OUTPUT
bBusy : BOOL;
bError : BOOL;
nErrId : UDINT;
hSocket : T_HSOCKET;
eState : E_SocketConnectionState := eSOCKET_DISCONNECTED;
END_VAR
bBusy: Dieser Ausgang ist TRUE solange der Funktionsbaustein aktiv ist.
bError: Wird TRUE, sobald ein Fehler aufgetreten ist.
nErrID: Liefert bei einem gesetzten bError-Ausgang die TwinCAT TCP/IP Connection Server Fehlernummer.
hSocket: Das 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: 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

Weitere Anwendungsbeispiele (inklusive Sourcecode) finden Sie hier: Beispiele
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken |
---|---|---|
TwinCAT v2.9.0 Build >= 1030 | PC or CX (x86) | TcSocketHelper.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib; TcpIp.Lib werden automatisch eingebunden |
TwinCAT v2.10.0 Build >= 1301 | CX (ARM) |