FB_SocketUdpCreate

Mit dem Funktionsbaustein FB_SocketUdpCreate kann ein Client/Serverr-Socket für den User Datagram Protocol (UDP) geöffnet werden. Beim Erfolg wird ein neuer Socket geöffnet und am hSocket-Ausgang das dazugehörige Socket-Handle zurückgeliefert. Das Handle wird dann z. B. von den Funktionsbausteinen FB_SocketUdpSendTo und FB_SocketUdpReceiveFrom benötigt, um mit einem Remote-Teilnehmer Daten austauschen zu können. Ein nicht mehr benötigter UDP-Socket kann mit dem Funktionsbaustein FB_SocketClose geschlossen werden. Die Portadresse nLocalHost wird intern von dem TCP/IP Connection Server für den UDP-Protokoll reserviert (es wird ein "Bind" durchgeführt). Es können mehrere Netzwerkadapter in einem PC existieren. Der Eingangsparameter sLocalHost bestimmt den Netzwerkadapter, der benutzt werden soll. Wenn Sie die sLocalHost-Eingangsvariable ignorieren (Leerstring), dann wird von dem TCP/IP Connection Server der Default-Netzwerkadapter benutzt. Es ist meistens der erste Netzwerkadapter aus der Liste der Netzwerkadapter in der Systemsteuerung.
![]() | Automatisch erstellte Netzwerkverbindungen Wenn Sie beim Aufruf von FB_SocketUdpCreate als sLocalHost einen Leerstring angegeben haben und der PC vom Netzwerk getrennt wurde, dann öffnet das System einen neuen Socket unter der Software-Loopback-IP-Adresse: '127.0.0.1'. |
![]() | Automatisch erstellte Netzwerkverbindungen mit mehreren Netzwerkadaptern Wenn im PC zwei oder mehr Netzwerkadapter vorhanden sind und Sie als sLocalHost einen Leerstring angegeben haben, der Default-Netzwerkadapter aber vom Netzwerk getrennt wurde, dann wird der neue Socket unter der der IP-Adresse des zweiten Netzwerkadapters geöffnet. |
![]() | Festlegen einer Netzwerkadresse Um das Öffnen der Sockets unter einer anderen IP-Adresse zu verhindern, können Sie die sLocalHost‑Adresse explizit angeben oder die zurückgelieferte Adresse in der Handle-Variable (hSocket) überprüfen, den Socket schließen und erneut öffnen. |
Eingänge
VAR_INPUT
sSrvNetId : T_AmsNetId := '';
sLocalHost : T_IPv4Addr := '';
nLocalPort : UDINT;
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. |
sLocalHost | T_IPv4Addr | Lokale IP-Adresse (Ipv4) des UDP-Client/Server-Sockets als String (z. B. '172.33.5.1'). Für den Default-Netzwerkadapter kann auch ein Leerstring angegeben werden. |
nLocalPort | UDINT | Lokale IP-Portnummer des UDP-Client/Server-Sockets (z. B. 200). |
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
bBusy : BOOL;
bError : BOOL;
nErrId : UDINT;
hSocket : T_HSOCKET;
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. |
hSocket | T_HSOCKET |
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken (Kategoriegruppe) |
---|---|---|
TwinCAT v3.1.0 | PC oder CX (x86, x64, Arm®) | Tc2_TcpIp (Communication) |