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. |
|
LEN |
Input |
INT |
E, A, M, D, L |
Anzahl der Bytes, die mit dem Auftrag gesendet werden sollen |
|
DONE |
Output |
BOOL |
E, A, M, D, L |
Zustandsparameter DONE:
|
|
BUSY |
Output |
BOOL |
E, A, M, D, L |
|
|
ERROR |
Output |
BOOL |
E, A, M, D, L |
Zustandsparameter ERROR:
|
|
STATUS |
Output |
WORD |
M, D |
Zustandsparameter STATUS: Fehlerinformation |
|
DATA |
InOut |
ANY |
E, A, M, D |
Sendebereich, enthält Adresse und Länge
Hinweis: Den Parameter DATA können Sie auf die folgenden beiden Arten angeben:
|
|
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:
|
Weitere Informationen zu den gültigen Datentypen finden Sie unter "Übersicht über die gültigen Datentypen".
Parameter ERROR und STATUS
|
ERROR |
STATUS |
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:
|
|
1 |
80A4 |
IP-Adresse des remoten Verbindungsendpunkts ist ungültig, evtl. stimmt sie mit der eigenen IP-Adresse überein. |
|
1 |
80B3 |
|
|
1 |
80C3 |
|
|
1 |
80C4 |
Temporärer Kommunikationsfehler:
|
|
1 |
8xyy |
allgemeine Fehlerinformation Siehe auch: Fehlerauswertung mit dem Ausgangsparameter RET_VAL |