FB_TlsSocketConnect

FB_TlsSocketConnect 1:

Mit dem Funktionsbaustein FB_TlsSocketConnect kann ein Client über den TwinCAT TCP/IP Connection Server eine neue, über TLS abgesicherte TCP/IP-Verbindung zu einem Remote-Server aufbauen. Beim Erfolg 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. Die TLS-Parameter können über die Funktionsbausteine FB_TlsSocketAddCa, FB_TlsSocketAddCrl, FB_TlsSocketSetPsk und FB_TlsSocketSetCert definiert werden. Programmierbeispiele für deren Verwendung finden Sie in unseren Samples.

FB_TlsSocketConnect 2: Eingänge

VAR_INPUT
    sSrvNetId   : T_AmsNetId:='';
    sRemoteHost : STRING(TCPADS_TLS_HOSTNAME_SIZE):='';
    nRemotePort : UDINT:=0;
    flags       : ST_TlsConnectFlags:=DEFAULT_TLSCONNECTFLAGS;
    bExecute    : BOOL;
    tTimeout    : TIME:=T#45s;(*!!!*)
END_VAR

Name

Typ

Beschreibung

sSrvNetId

T_AmsNetId

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

sRemoteHost

STRING(TCPADS_TLS_HOSTNAME_SIZE)

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

flags

ST_TlsConnectFlags

Zusätzliche (optionale) Client-Verbindungsparameter.

bExecute

BOOL

Über eine positive Flanke an diesem Eingang wird der Baustein aktiviert.

tTimeout

TIME 

Maximale Zeit, die bei der Ausführung des Funktionsbausteins nicht überschritten werden darf.

FB_TlsSocketConnect 3:

Maximale Ausführungszeit des Funktionsbausteins einstellen

Setzen Sie den Wert „tTimeout“ nicht zu niedrig, da bei einer Netzwerkunterbrechung Timeout-Zeiten 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_TlsSocketConnect 4: Ein-/Ausgänge

VAR_IN_OUT
    hSocket : T_HSOCKET;
END_VAR

Name

Typ

Beschreibung

hSocket

T_HSOCKET

TCP/IP-Verbindungshandle zum neu geöffneten Local-Client Socket

FB_TlsSocketConnect 5: Ausgänge

VAR_OUTPUT
    bBusy  : BOOL;
    bError : BOOL;
    nErrId : UDINT;
END_VAR

Name

Typ

Beschreibung

bBusy

BOOL

Bei aktiviertem Funktionsbaustein ist diese Ausgabe aktiv. Sie bleibt bis zur Quittierung aktiv.

bError

BOOL

Sollte ein Fehler bei der Übertragung des Kommandos erfolgen, dann wird dieser Ausgang gesetzt, nachdem der bBusy-Ausgang zurückgesetzt wurde.

nErrId

UDINT

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

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS Bibliotheken (Kategoriegruppe)

TF6310 v3.3.15.0 oder neuer

TwinCAT v3.1.0

PC oder CX (x86, x64, ARM)

Tc2_TcpIp (Communication)