FB_SocketUdpSendTo
Ab der Produktversion: TwinCAT TCP/IP Connection Server v1,0,0,31 und höher
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.
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) |