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