TUSEND: Daten über Ethernet (UDP) senden (S7-300, S7-400) - STEP 7

Open User Communication (S7-300, S7-400)

ft:publication_title
Open User Communication (S7-300, S7-400)
Product
STEP 7
Version
V21
Publication date
11/2025
Language
de-DE
TUSEND: Daten über Ethernet (UDP) senden

Beschreibung

Die Anweisung "TUSEND" sendet Daten über UDP an den über den Parameter ADDR adressierten remoten Partner.

Warnung

Datenübertragung über UDP

Bei der Datenübertragung über UDP gemäß RFC 768 werden die Daten unquittiert und damit ungesichert zum remoten Partner übertragen. D. h., es können Daten verloren gehen, ohne dass dies am Baustein angezeigt wird.

Hinweis

Bei aufeinander folgenden Sendevorgängen an verschiedene Partner müssen Sie bei den Aufrufen von "TUSEND" lediglich den Parameter ADDR anpassen. Der erneute Aufruf der Anweisungen "TCON" und "TDISCON" hingegen entfällt.

Arbeitsweise

"TUSEND" ist eine asynchron arbeitende Anweisung, d. h. die Auftragsbearbeitung erstreckt sich über mehrere Aufrufe. Sie starten den Sendevorgang, indem Sie "TUSEND" mit REQ = 1 aufrufen.

Über den Ausgangsparameter BUSY und den Ausgangsparameter STATUS wird der Zustand des Auftrags angezeigt. Dabei entspricht STATUS dem Ausgangsparameter RET_VAL der asynchron arbeitenden Anweisungen.

Siehe auch: Unterschied zwischen synchron und asynchron arbeitenden Anweisungen.

In der folgenden Tabelle ist der Zusammenhang zwischen BUSY, DONE und ERROR angegeben. Mit ihrer Hilfe können Sie feststellen, in welchem Zustand sich "TUSEND" aktuell befindet bzw. wann der Sendevorgang beendet ist.

BUSY

DONE

ERROR

Beschreibung

TRUE

irrelevant

irrelevant

Der Auftrag ist in Bearbeitung.

FALSE

TRUE

FALSE

Der Auftrag wurde erfolgreich abgeschlossen.

FALSE

FALSE

TRUE

Der Auftrag wurde mit einem Fehler beendet. Die Fehlerursache können Sie dem Parameter STATUS entnehmen.

FALSE

FALSE

FALSE

Der Anweisung wurde kein (neuer) Auftrag erteilt.

Hinweis

Durch die asynchrone Arbeitsweise von "TUSEND" müssen Sie die Daten im Sendebereich so lange konsistent halten, bis der Parameter DONE oder der Parameter ERROR den Wert TRUE annimmt.

Parameter

Die folgende Tabelle zeigt die Parameter der Anweisung "TUSEND":

Parameter

Deklaration

Datentyp

Speicherbereich

Beschreibung

REQ

Input

BOOL

E, A, M, D, L, T, Z

Steuerparameter REQUEST, startet den Sendeauftrag bei steigender Flanke.

Die Daten werden aus dem mit DATA und LEN angegebenen Bereich übergeben.

ID

Input

WORD

M, D oder Konstante

Referenz auf die zugehörige Verbindung zwischen Anwenderprogramm und Kommunikationsschicht des Betriebssystems. ID muss identisch sein mit dem zugehörigen Parameter ID in der lokalen Verbindungsbeschreibung.
Wertebereich: W#16#0001 bis W#16#0FFF

LEN

Input

INT

E, A, M, D, L

Anzahl der Bytes, die mit dem Auftrag gesendet werden sollen
Wertebereich: 1 bis 1472

DONE

Output

BOOL

E, A, M, D, L

Zustandsparameter DONE:

  • 0: Auftrag wurde noch nicht gestartet oder wird noch ausgeführt.

  • 1: Auftrag wurde fehlerfrei ausgeführt

BUSY

Output

BOOL

E, A, M, D, L

  • BUSY = 1: Der Auftrag ist noch nicht beendet. Es kann kein neuer Auftrag angestoßen werden.

  • BUSY = 0: Der Auftrag ist beendet.

ERROR

Output

BOOL

E, A, M, D, L

Zustandsparameter ERROR:

  • ERROR=1: Bei der Bearbeitung ist ein Fehler aufgetreten. STATUS liefert detaillierte Auskunft über die Art des Fehlers

STATUS

Output

WORD

M, D

Zustandsparameter STATUS: Fehlerinformation

DATA

InOut

ANY

E, A, M, D

Sendebereich, enthält Adresse und Länge
Die Adresse verweist auf:

  • das Prozessabbild der Eingänge

  • das Prozessabbild der Ausgänge

  • einen Merker

  • einen Datenbaustein

Hinweis: Den Parameter DATA können Sie auf die folgenden beiden Arten angeben:

  • absolut. Bsp.: P#DB13.DBX0.0 Byte 64

  • symbolisch. Bsp.: DB_name.variable

ADDR

InOut

ANY

D

Zeiger auf die Adresse des Empfängers (z. B. P#DB100.DBX0.0 Byte 8)

Siehe auch: Struktur der Adressinformation des remoten Partners bei UDP

Hinweis: Den Parameter ADDR können Sie auf die folgenden beiden Arten angeben:

  • absolut. Bsp.: P#DB13.DBX0.0 Byte 64

  • symbolisch. Bsp.: DB_name.variable

Weitere Informationen zu den gültigen Datentypen finden Sie unter "Übersicht über die gültigen Datentypen".

Parameter ERROR und STATUS

ERROR

STATUS
(W#16#...)

Erläuterung

0

0000

Sendeauftrag wurde ohne Fehler abgeschlossen

0

7000

Keine Auftragsbearbeitung aktiv

0

7001

Start der Auftragsbearbeitung, Daten werden versendet

Hinweis: In dieser Bearbeitungsphase greift das Betriebssystem auf die Daten im Sendebereich DATA zu.

0

7002

Zwischenaufruf (REQ irrelevant), Auftrag ist in Bearbeitung

Hinweis: In dieser Bearbeitungsphase greift das Betriebssystem auf die Daten im Sendebereich DATA zu.

1

8085

Parameter LEN hat den Wert "0" oder ist größer als der größte zulässige Wert

1

8086

Parameter ID liegt in einem unzulässigen Wertebereich

0

8088

Parameter LEN ist größer als der in DATA angegebene Speicherbereich

1

8089

Parameter ADDR zeigt nicht auf einen Datenbaustein

1

80A1

Kommunikationsfehler:

  • Die angegebene Verbindung zwischen Anwenderprogramm und Kommunikationsschicht des Betriebssystems wurde noch nicht aufgebaut.

  • Die angegebene Verbindung zwischen Anwenderprogramm und Kommunikationsschicht des Betriebssystems wird momentan abgebaut. Ein Sendevorgang über diese Verbindung ist nicht möglich.

  • Schnittstelle wird neu initialisiert

1

80A4

IP-Adresse des remoten Verbindungsendpunkts ist ungültig, evtl. stimmt sie mit der eigenen IP-Adresse überein.

1

80B3

  • Die parametrierte Protokollvariante (Parameter connection_type in der Verbindungsbeschreibung) ist nicht UDP. Bitte verwenden Sie "TSEND".

  • Parameter ADDR: ungültige Angaben für Port-Nr.

1

80C3

  • Ein Baustein mit dieser ID wird bereits in einer anderen Prioritätsklasse bearbeitet.

  • interner Ressourcenmangel

1

80C4

Temporärer Kommunikationsfehler:

  • Die Verbindung zwischen Anwenderprogramm und der Kommunikationsschicht des Betriebssystems kann momentan nicht aufgebaut werden.

  • Die Schnittstelle wird neu parametriert.

1

8xyy

allgemeine Fehlerinformation

Siehe auch: Fehlerauswertung mit dem Ausgangsparameter RET_VAL