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.
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. |
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. |
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
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) |