FB_SocketAccept

FB_SocketAccept 1:

Die beim TwinCAT TCP/IP Connection Server ankommenden Remote-Client Verbindungsanforderungen müssen angenommen (akzeptiert) werden. Der Funktionsbaustein FB_SocketAccept nimmt die ankommenden Remote-Client Verbindungsanforderungen an, öffnet einen neuen Remote-Client-Socket und liefert das dazugehörige Verbindungshandle zurück. Das Verbindungshandle wird dann z. B. von den Funktionsbausteinen FB_SocketSend und FB_SocketReceive benötigt, um mit dem Remote-Client Daten austauschen zu können. Alle ankommenden Verbindungsanforderungen müssen zuerst angenommen werden. Eine nicht mehr benötigte oder unerwünschte Verbindung kann mit dem Funktionsbaustein FB_SocketClose geschlossen werden.

Eine Serverimplementierung benötigt mindestens eine Instanz dieses Funktionsbausteins. Diese Instanz muss zyklisch (pollend) in einer SPS-Task aufgerufen werden. Durch eine positive Flanke am bExecute-Eingang (z. B. alle 5 Sekunden) kann der Baustein aktiviert werden.

Beim Erfolg wird der bAccepted-Ausgang gesetzt und das Verbindungshandle zum neuen Remote‑Client am hSocket-Ausgang zurückgeliefert. Es wird kein Fehler zurückgeliefert, wenn keine neuen Remote-Client Verbindungsanforderungen vorliegen. Es können mehrere Remote-Clients gleichzeitig eine Verbindung zum Server aufbauen. Die Verbindungshandles mehrerer Remote-Clients können nacheinander durch mehrere Aufrufe des Funktionsbausteins abgeholt werden. Jedes Verbindungshandle zu einem Remote-Client kann nur einmal abgeholt werden. Es empfiehlt sich die Verbindungshandles in einer Liste (Array) zu halten. Neue Verbindungen werden der Liste hinzugefügt und die geschlossenen müssen aus der Liste entfernt werden.

FB_SocketAccept 2: Eingänge

VAR_INPUT
    sSrvNetId     : T_AmsNetId := '';
    hListener     : T_HSOCKET;
    bExecute      : BOOL;
    tTimeout      : TIME := T#5s;
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.

hListener

T_HSOCKET

Das Verbindungshandle des Listener-Sockets. Dieses Handle muss vorher mit dem Funktionsbaustein FB_SocketListen angefordert werden.

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_SocketAccept 3: Ausgänge

VAR_OUTPUT
    bAccepted : BOOL;
    bBusy     : BOOL;
    bError    : BOOL;
    nErrId    : UDINT;
    hSocket   : T_HSOCKET;
END_VAR

Name

Typ

Beschreibung

bAccepted

BOOL

Dieser Ausgang wird gesetzt, wenn eine neue Verbindung zu einem Remote-Client hergestellt wurde.

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.

hSocket

T_HSOCKET

Verbindungshandle eines neuen Remote-Clients.

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS Bibliotheken (Kategoriegruppe)

TwinCAT v3.1.0

PC oder CX (x86, x64, ARM)

Tc2_TcpIp (Communication)