FB_SocketUdpSendTo

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

FB_SocketUdpSendTo 1:

Mit dem Funktionsbaustein FB_SocketUdpSendTo können UDP-Daten über den TwinCAT TCP/IP Connection Server zu einem Remote-Teilnehmer gesendet werden. Der UDP-Socket muss vorher mit dem Funktionsbaustein FB_SocketUdpCreate geöffnet werden.

VAR_INPUT

VAR_INPUT
    sSrvNetId   : T_AmsNetId := '';
    hSocket     : T_HSOCKET;
    sRemoteHost : STRING(15);
    nRemotePort : UDINT;
    cbLen       : UDINT; 
    pSrc        : DWORD;
    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.

hSocket: Das Handle eines geöffneten UDP-Sockets.

sRemoteHost: Die IP-Adresse (Ipv4) des Remote-Teilnehmers an den Daten gesendet werden sollen als String (z.B.: '172.33.5.1'). Für einen Teilnehmer auf dem lokalen Rechner kann auch ein Leerstring angegeben werden.

nRemotePort: Die IP-Portnummer des Remote-Teilnehmers an den Daten gesendet werden sollen (z.B.: 200).

cbLen: Die Anzahl der zu sendenden Daten in Bytes. Die maximale Anzahl der zu versendenden Datenbytes ist standardmäßig auf 8192 Bytes begrenzt (durch die Deklaration der TCPADS_MAXUDP_BUFFSIZE-Konstante in der Bibliothek, um Speicherresourcen zu schonen).

pSrc: Die Adresse (Pointer) auf den Sendepuffer.

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.

FB_SocketUdpSendTo 2:

Ab der Produktversion: TwinCAT TCP/IP Connection Server v1.0.50 und höher kann die maximale Anzahl der zu versendenden Datenbytes (wenn unbedingt notwendig) erhöht werden.

1) Definieren Sie in dem SPS-Projekt die globale Konstante um (in unserem Beispiel wollen wir die maximale Anzahl der Datenbytes auf 32000 Bytes erhöhen):

VAR_GLOBAL CONSTANT
    TCPADS_MAXUDP_BUFFSIZE : UDINT :=32000;
END_VAR

2) Aktivieren dann die Option "Konstanten ersetzen" im TwinCAT PLC Control->"Projekt->Optionen...->Übersetzungsoptionen" dialogfenster.

3) Übersetzen Sie das Projekt.

VAR_OUTPUT

VAR_OUTPUT
    bBusy       : BOOL;
    bError      : BOOL;
    nErrId      : UDINT;
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.

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS Bibliotheken

Alle TwinCAT v2.8.0 Versionen und höher

PC oder 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)