FB_SocketAccept

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