FB_SocketConnect
Mit dem Funktionsbaustein FB_SocketConnect kann ein Local-Client über den TwinCAT TCP/IP Connection Server eine neue TCP/IP Verbindung zu einem Remote-Server aufbauen. Bei erfolgreicher Verbindung wird ein neuer Socket geöffnet und am hSocket-Ausgang das dazugehörige Verbindungshandle zurückgeliefert. Das Verbindungshandle wird dann z.B. von den Funktionsbausteinen FB_SocketSend und FB_SocketReceive benötigt, um mit einem Remote-Server Daten austauschen zu können. Eine nicht mehr benötigte Verbindung wird mit dem Funktionsbaustein FB_SocketClose geschlossen. Es können mehrere Clients gleichzeitig eine Verbindung zum Remote-Server aufbauen. Für jeden neuen Client wird ein neuer Socket geöffnet und ein neues Verbindungshandle zurückgeliefert. Jedem Client wird von dem TwinCAT TCP/IP Connection Server automatisch eine neue IP-Portnummer zugewiesen.
VAR_INPUT
VAR_INPUT
sSrvNetId : T_AmsNetId := '';
sRemoteHost : STRING(15);
nRemotePort : UDINT;
bExecute : BOOL;
tTimeout : TIME := T#45s;(*!!!*)
END_VAR
sSrvNetId: String mit der Netzwerkadresse des TwinCAT TCP/IP Connection Servers. Für den lokalen Rechner (default) kann auch ein Leerstring angegeben werden.
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).
bExecute: Über eine positive Flanke an diesem Eingang wird der Baustein aktiviert.
tTimeout: Maximale Zeit, die bei der Ausführung des Funktionsbausteins nicht überschritten werden darf.
Setzen Sie den Wert tTimeout 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;
END_VAR
bBusy: Dieser Ausgang wird bei der Aktivierung des Funktionsbausteins gesetzt und bleibt gesetzt, bis eine Rückmeldung erfolgt.
bError: Dieser Ausgang wird, nachdem der bBusy-Ausgang zurückgesetzt wurde, gesetzt, sollte ein Fehler bei der Übertragung des Kommandos erfolgen.
nErrId: Liefert bei einem gesetzten bError-Ausgang die TwinCAT TCP/IP Connection Server Fehlernummer.
hSocket: Das TCP/IP Verbindungshandle zu dem neu geöffneten Local-Client Socket.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken |
---|---|---|
Alle TwinCAT v2.8.0 Versionen und höher | PC oder CX (x86) | TcpIp.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib werden automatisch eingebunden ) |
TwinCAT v2.10.0 Build >= 1301 | CX (ARM) |