FB_SocketUdpCreate

Ab der Produktversion: TwinCAT TCP/IP Connection Server v1,0,0,31 und höher

FB_SocketUdpCreate 1:

Mit dem Funktionsbaustein FB_SocketUdpCreate kann ein Client/Server-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.

FB_SocketUdpCreate 2:
  • 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'.
  • 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.
  • Um das Öffnen der Sockets unter einer anderen IP-Adresse zu verhindern können Sie die sLocalHost-Adresse explizit angeben oder die zurück gelieferte Adresse in der Handle-Variable (hSocket) überprüfen, den Socket schließen und erneut öffnen.

VAR_INPUT

VAR_INPUT
    sSrvNetId       : T_AmsNetId := '';
    sLocalHost      : STRING(15);
    nLocalPort      : UDINT;
    bExecute        : BOOL;
    tTimeout        : TIME := T#5s;
END_VAR

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

sLocalHost: Die 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: Die lokale IP-Portnummer des UDP Client/Server-Sockets (z.B.: 200).

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

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

VAR_OUTPUT

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

bBusy: Dieser Ausgang wird bei der Aktivierung des Funktionsbausteins gesetzt und bleibt gesetzt, bis eine Rückmeldung erfolgt.

bError: Dieser Ausgang wird, nachdem der bBusy-Ausgang zurückgesetzt wurde, gesetzt, sollte ein Fehler bei der Übertragung des Kommandos erfolgen.

nErrId: Liefert bei einem gesetzten bError-Ausgang die TwinCAT TCP/IP Connection Server Fehlernummer.

hSocket: Das Handle des neu geöffneten UDP Client/Server-Sockets.

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS Bibliotheken

Alle TwinCAT v2.8.0 Versionen und höher

PC or CX (x86)

TcpIp.Lib (v1.0.4 und höher)

( Standard.Lib; TcBase.Lib; TcSystem.Lib werden automatisch eingebunden )

TwinCAT v2.10.0 Build >= 1301

CX (ARM)