TRCV: Daten über Kommunikationsverbindung empfangen (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
TRCV: Daten über Kommunikationsverbindung empfangen

Beschreibung

Die Anweisung "TRCV" empfängt Daten über eine bestehende Kommunikationsverbindung.

Empfangsbereich

Man versteht darunter den Bereich, in den der Funktionsbaustein die empfangenen Daten einträgt.

Der Empfangsbereich ist durch die folgenden beiden Größen festgelegt:

  • Zeiger auf den Beginn des Bereichs

  • Länge des Bereichs

Die Länge des Bereichs wird abhängig von der verwendeten Protokollvariante entweder durch den Parameter LEN (falls LEN <> 0) oder die Längenangabe des Parameters DATA (falls LEN = 0) festgelegt.

Empfangsmodi von TRCV

In der folgenden Tabelle wird beschrieben, wie "TRCV" die empfangenen Daten in den Empfangsbereich einträgt.

Protokollvariante

Eintragen der Daten in den Empfangsbereich

Parameter connection_type

Wert des Parameters LEN

TCP

Ad-hoc-Mode

B#16#01, B#16#11

0

TCP

Datenempfang mit vorgegebener Länge

B#16#01, B#16#11

<> 0

ISO on TCP

protokollgesteuert

B#16#12

0 (empfohlen) oder <> 0

TCP / Ad-hoc-Mode

Den Ad-hoc-Mode gibt es nur bei der Protokollvariante TCP. Sie stellen den Ad-hoc-Mode ein, indem Sie dem Parameter LEN den Wert "0" zuweisen.

Der Empfangsbereich ist identisch mit dem durch DATA gebildeten Bereich. Es werden maximal 8192 Byte empfangen. Unmittelbar nach Empfang eines Datenblocks überträgt die Anweisung "TRCV" diesen in den Empfangsbereich und setzt NDR auf "1".

TCP / Datenempfang mit vorgegebener Länge

Indem Sie dem Parameter LEN einen von Null verschiedenen Wert zuweisen, stellen Sie den Datenempfang mit vorgegebener Länge ein.

Der Empfangsbereich wird durch die Parameter LEN und DATA gebildet. Sobald LEN Bytes empfangen wurden, überträgt TRCV diese in den Empfangsbereich und setzt NDR auf "1".

ISO on TCP / Protokollgesteuerte Datenübertragung

Bei der Protokollvariante ISO on TCP werden die Daten protokollgesteuert übertragen.

Der Empfangsbereich wird durch die Parameter LEN und DATA gebildet. Sobald sämtliche Daten eines Auftrags empfangen wurden, überträgt "TRCV" diese in den Empfangsbereich und setzt NDR auf "1".

Austausch von Daten des Datentyps STRING

Wenn Sie mit den Anweisungen "TSEND" und "TRCV" Daten des Datentyps STRING austauschen wollen, ist nur der Ad-hoc-Mode mit LEN=0 sinnvoll. Außerdem müssen Sie die Länge des Strings bei der Anweisung "TRCV" mindestens so groß wählen wie bei der Anweisung "TSEND". Wenn Sie gegen diese Regel verstoßen, kann dies zu Fehlern bei der weiteren Stringbearbeitung führen.

Wenn Sie als Empfangsbereich für eine gesendete Zeichenkette ein ARRAY of BYTE verwenden, enthält das erste Byte die vom Sender vorgegebene Maximallänge und das zweite Byte die aktuelle Länge der Zeichenkette.

Arbeitsweise

"TRCV" ist eine asynchron arbeitende Anweisung, d. h. die Bearbeitung erstreckt sich über mehrere Aufrufe. Sie starten den Empfangsauftrag, indem Sie TRCV mit EN_R = 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, NDR und ERROR angegeben. Mit ihrer Hilfe können Sie feststellen, in welchem Zustand sich "TRCV" aktuell befindet bzw. wann der Empfangsvorgang beendet ist.

BUSY

NDR

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 "TRCV" sind die Daten im Empfangsbereich erst dann konsistent, wenn der Parameter NDR den Wert TRUE annimmt.

Parameter

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

Parameter

Deklaration

Datentyp

Speicherbereich

Beschreibung

EN_R

Input

BOOL

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

Steuerparameter enabled to receive: Mit EN_R = 1 wird "TRCV" empfangsbereit. Der Empfangsauftrag wird bearbeitet.

ID

Input

WORD

M, D oder Konstante

Referenz auf die zugehörige Verbindung. 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

Länge des Empfangsbereichs in Bytes

Zur Bedeutung von LEN = 0 bzw. LEN <> 0 siehe oben (Empfangsmodi von "TRCV").

Zum Wertebereich siehe auch: Zusammenhang zwischen eingesetzter CPU und Protokollvariante (connection_type) und übertragbarer Datenlänge.

NDR

Output

BOOL

E, A, M, D, L

Zustandsparameter NDR:

  • NDR = 0: Auftrag wurde noch nicht gestartet oder läuft noch

  • NDR = 1: Auftrag wurde erfolgreich abgeschlossen

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

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.

STATUS

Output

WORD

M, D

Zustandsparameter STATUS: Fehlerinformation

RCVD_LEN

Output

INT

E, A, M, D, L

Anzahl der tatsächlich empfangenen Daten in Bytes

DATA

InOut

ANY

E, A, M, D

Empfangsbereich (Definition siehe oben), 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: Verwenden Sie als Empfangsbereich nicht ARRAY of BOOL.

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

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

Neue Daten wurden übernommen. Die aktuelle Länge der empfangenen Daten wird in RCVD_LEN angezeigt.

0

7000

Baustein nicht empfangsbereit

0

7001

Baustein ist empfangsbereit, Empfangsauftrag wurde aktiviert

0

7002

Zwischenaufruf, Empfangsauftrag ist in Bearbeitung

Hinweis: In dieser Bearbeitungsphase schreibt die Anweisung Daten in den Empfangsbereich. Deshalb können im Fehlerfall inkonsistente Daten im Empfangsbereich stehen.

1

8085

Parameter LEN ist größer als der größte zulässige Wert, oder Sie haben einen der Parameter LEN oder DATA gegenüber dem Erstaufruf geändert

1

8086

Parameter ID liegt in einem unzulässigen Wertebereich

1

8088

  • Empfangsbereich ist zu klein

  • Wert in LEN ist größer als der durch DATA vorgegebene Empfangsbereich

1

80A1

Kommunikationsfehler:

  • Die angegebene Verbindung wurde noch nicht aufgebaut.

  • Die angegebene Verbindung wird momentan abgebaut. Ein Empfangsauftrag über diese Verbindung ist nicht möglich.

  • Die Schnittstelle wird neu parametriert.

1

80B3

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

1

80C3

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

  • interner Ressourcenmangel

1

80C4

Temporärer Kommunikationsfehler:

  • Die Verbindung zum Kommunikationspartner kann momentan nicht aufgebaut werden.

  • Die Schnittstelle wird neu parametriert bzw. die Verbindung wird gerade aufgebaut.

1

8xyy

allgemeine Fehlerinformation

Siehe auch: Fehlerauswertung mit dem Ausgangsparameter RET_VAL