FB_ConnectionlessSocket

FB_ConnectionlessSocket 1:

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

FB_ConnectionlessSocket 2: 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.

FB_ConnectionlessSocket 3:

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.

FB_ConnectionlessSocket 4: 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)