FB_ConnectionlessSocket

Mit dem Funktionsbaustein FB_ConnectionlessSocket kann ein UDP-Socket verwaltet werden (geöffnet/erzeugt und geschlossen werden). FB_ConnectionlessSocket vereinfacht die Implementierung einer UDP-Applikation indem er die Funktionalität von den zwei Funktionsbausteinen FB_SocketUdpCreate und FB_SocketClose bereits intern kapselt. Die integrierte Debug-Ausgabe des Socket-Status erleichtert die Fehlersuche bei Konfigurations- oder Kommunikationsfehlern. Eine minimale UDP-Applikation benötigt zusätzlich nur noch jeweils eine Instanz vom FB_SocketUdpSendTo und/oder eine Instanz vom FB_SocketUdpReceiveFrom Funktionsbaustein.
Eine typische UDP-Applikation öffnet im ersten Schritt mit dem FB_ConnectionlessSocket-Funktionsbaustein einen verbindungslosen UDP-Socket. Im nächsten Schritt können dann Instanzen von FB_SocketUdpSendTo und/oder FB_SocketUdpReceiveFrom benutzt werden, um Daten mit einem anderen Kommunikationsteilnehmer auszutauschen. Wann ein UDP-Socket geschlossen wird, hängt von den Anforderungen der Applikation ab (z. B. beim Kommunikationsfehler).
Eingänge
VAR_INPUT
sSrvNetID : T_AmsNetID := '';
nMode : DWORD := 0;
sLocalHost : T_Ipv4Addr := '';
nLocalPort : UDINT;
bEnable : BOOL;
tReconnect : TIME := T#45s;(*!!!*)
END_VAR
Name | Typ | Beschreibung |
---|---|---|
sSrvNetID | T_AmsNetID | String mit der AMS-Netzwerkadresse des TwinCAT TCP/IP Connection Servers. Für den loka-len Rechner (default) kann auch ein Leerstring angegeben werden. |
nMode | DWORD | Parameter-Flags (Modi). Die zulässigen Parameter sind hier aufgeführt und können mit einer ODER-Verknüpfung kombiniert werden. CONNECT_MODE_ENABLEDBG: Aktiviert das Loggen von Debug-Meldungen im Application-Log. Um die Debug-Meldungen zu sehen, öffnen Sie den Twin-CAT System Manager und aktivieren Sie die Loggeransicht. |
sLocalHost | T_Ipv4Addr | IP-Adresse (Ipv4) des lokalen Netzwerkadapters als String (z. B. '172.33.5.1'). Für den Default-Netzwerkadapter kann auch ein Leerstring angegeben werden. |
nLocalPort | UDINT | IP-Portnummer auf dem lokalen Rechner (z. B. 200). |
bEnable | BOOL | Solange dieser Eingang TRUE ist, wird zyklisch versucht einen UDP-Socket zu öffnen, bis eine Verbindung hergestellt wurde. Mit FALSE kann ein geöffneter UDP-Socket wieder ge-schlossen werden. |
tReconnect | TIME | Zykluszeit, mit der der Funktionsbaustein versucht den UDP-Socket zu öffnen. |
![]() | Zykluszeit für die Verbindung einstellen 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. |
Ausgänge
VAR_OUTPUT
bBusy : BOOL;
bError : BOOL;
nErrId : UDINT;
hSocket : T_HSOCKET;
eState : E_SocketConnectionlessState := eSOCKET_CLOSED;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
bBusy | BOOL | TRUE, solange der Funktionsbaustein aktiv ist. |
bError | BOOL | Wird bei Auftreten eines Fehlercodes TRUE. |
nErrID | UDINT | Dieser Parameter liefert bei einem gesetzten bError-Ausgang die TwinCAT TCP/IP Connection Server Fehlernummer. |
hSocket | T_HSOCKET | Verbindungshandle zu dem neu geöffneten UDP-Socket. Diese Variable wird bei Erfolg an die Instanzen der Funktionsbausteine FB_SocketUdpSendTo und/oder FB_SocketUdpReceiveFrom übergeben. |
eState | E_SocketConnectionlessState | Liefert den aktuellen Verbindungsstatus. |
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken (Kategoriegruppe) |
---|---|---|
TwinCAT v3.1.0 | PC oder CX (x86, x64, Arm®) | Tc2_TcpIp (Communication) |