RCVREC: Datensatz empfangen (S7-300, S7-400) - STEP 7

Erweiterte Anweisungen (S7-300, S7-400)

ft:publication_title
Erweiterte Anweisungen (S7-300, S7-400)
Product
STEP 7
Version
V20
Publication date
11/2024
Language
de-DE
RCVREC: Datensatz empfangen

Beschreibung

Ein I-Device kann vom übergeordneten Controller einen Datensatz empfangen. Der Empfang erfolgt im Anwendungsprogramm mit der Anweisung "RCVREC" (receive record).

Die Anweisung hat folgende Betriebsarten:

  • Überprüfung, ob dem I-Device eine Anforderung für einen Datensatzempfang vorliegt.

  • Bereitstellen des Datensatzes an den Ausgangsparametern.

  • Verschicken einer Antwort am den übergeordneten Controller.

Welche dieser Betriebsarten die Anweisung ausführt, legen Sie über den Eingangsparameter MODE fest (siehe unten).

Das I-Device muss sich im Betriebszustand RUN oder im Betriebszustand ANLAUF befinden.

Mit MLEN geben Sie vor, wie viele Bytes Sie maximal empfangen möchten. Den Zielbereich RECORD sollten Sie daher mindestens MLEN Bytes lang wählen.

Wenn ein Datensatz empfangen wurde (MODE=1 oder MODE=2), wird im Ausgangsparameter NEW angezeigt, dass der Datensatz in RECORD gespeichert wurde. Achten Sie dabei auf eine ausreichende Länge von RECORD. Der Ausgangsparameter LEN enthält die tatsächliche Länge des empfangenen Datensatzes in Bytes.

Für die positive Antwort an den übergeordneten Controller beschreiben Sie CODE1 und CODE2 mit Null. Wenn der empfangene Datensatz abgelehnt werden soll, geben Sie in CODE1 den Error Code 1 und in CODE2 den Error Code 2 der negativen Antwort an den übergeordneten Controller an.

Hinweis

Wenn das I-Device eine Anforderung für einen Datensatzempfang erhalten hat, müssen Sie die Zustellung dieser Anforderung innerhalb einer bestimmten Zeitdauer erkannt haben. Nach dem Erkennen müssen Sie dem übergeordneten Controller innerhalb derselben Zeitdauer eine Antwort geschickt haben. Andernfalls tritt beim I-Device ein Timeout-Fehler auf, der zur Folge hat, dass das Betriebssystem des I-Device eine negative Antwort an den übergeordneten Controller schickt. Den Wert für die Zeitdauer entnehmen Sie den Technischen Daten Ihrer CPU.

Nach Auftreten eines Fehlers enthält der Ausgangsparameter STATUS die Fehlerinformation.

Betriebsarten

Die Betriebsart der Anweisung "RCVREC" legen Sie über den Eingangsparameter MODE fest. Dieser wird in der folgenden Tabelle erläutert.

MODE

Bedeutung

0

Überprüfen, ob eine Anforderung für einen Datensatzempfang vorliegt

Falls auf dem I-Device ein Datensatz vom übergeordneten Controller vorliegt, beschreibt die Anweisung nur die Ausgangsparameter NEW, SLOT, INDEX und LEN. Wenn Sie die Anweisung mehrmals hintereinander mit MODE=0 aufrufen, beziehen sich die Ausgangsparameter stets auf ein und dieselbe Anforderung.

1

Empfangen eines Datensatzes für irgendeinen Subslot des I-Device

Falls auf dem I-Device ein Datensatz vom übergeordneten Controller für irgendeinen Subslot des I-Device vorliegt, beschreibt die Anweisung die Ausgangsparameter und überträgt den Datensatz in den Parameter RECORD.

2

Empfangen eines Datensatzes für einen bestimmten Subslot des I-Device

Falls auf dem I-Device ein Datensatz vom übergeordneten Controller für einen bestimmten Subslot des I-Device vorliegt, beschreibt die Anweisung die Ausgangsparameter und überträgt den Datensatz in den Parameter RECORD.

3

Positive Antwort an den übergeordneten Controller schicken

Die Anweisung überprüft die Anforderung des übergeordneten Controllers, einen Datensatz zu empfangen, akzeptiert den vorliegenden Datensatz und schickt eine positive Quittung an den übergeordneten Controller.

4

Negative Antwort an den übergeordneten Controller schicken

Die Anweisung überprüft die Anforderung des übergeordneten Controllers, einen Datensatz zu empfangen, lehnt den vorliegenden Datensatz ab und schickt eine negative Quittung an den übergeordneten Controller. Den Grund für die Ablehnung geben Sie in den Eingangsparametern CODE1 und CODE2 an.

Hinweis

Nach dem Eintreffen eines Datensatzes (NEW=1) müssen Sie "RCVREC" noch zweimal aufrufen, um seine vollständige Abarbeitung zu gewährleisten. Dabei müssen Sie die folgende Reihenfolge einhalten:

  • Erster Aufruf mit MODE=1 oder MODE=2

  • Zweiter Aufruf mit MODE=3 oder MODE=4

Parameter

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

Parameter

Deklaration

Datentyp

Speicherbereich

Beschreibung

MODE

Input

INT

E, A, M, D, L oder Konstante

Betriebsart

F_ID

Input

DWORD

E, A, M, D, L oder Konstante

Subslot im Transferbereich des I-Device für den zu erhaltenden Datensatz (nur relevant für MODE=2). Das high word ist stets auf Null zu setzen.

MLEN

Input

INT

E, A, M, D, L oder Konstante

Maximale Länge des zu empfangenden Datensatzes in Bytes.

CODE1

Input

BYTE

E, A, M, D, L oder Konstante

Null (bei MODE=3) bzw. Error Code 1 (bei MODE=4)

CODE2

Input

BYTE

E, A, M, D, L oder Konstante

Null (bei MODE=3) bzw. Error Code 2 (bei MODE=4)

NEW

Output

BOOL

E, A, M, D, L

  • MODE=0: Neuer Datensatz wurde empfangen

  • MODE=1 oder 2: Datensatz wurde in RECORD übertragen

STATUS

Output

DWORD

E, A, M, D, L

Fehlerinformation

SLOT

Output

INT

E, A, M, D, L

identisch zu F_ID

SUBSLOT

Output

INT

E, A, M, D, L

identisch zu F_ID

INDEX

Output

INT

E, A, M, D, L

Nummer des empfangenen Datensatzes

LEN

Output

INT

E, A, M, D, L

Länge des empfangenen Datensatzes

RECORD

InOut

ANY

E, A, M, D, L

Zielbereich für den empfangenen Datensatz.

Hinweis: Beachten Sie, dass der Parameter RECORD bei S7-300-CPUs immer die vollständige Angabe der DB-Parameter erfordert (Bsp.: P#DB13.DBX0.0 Byte 100). Das Weglassen einer expliziten DB-Nr. ist für S7-300-CPUs unzulässig und führt zu einer Fehlermeldung im Anwenderprogramm.

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

Parameter STATUS

Zur Interpretation des Parameters STATUS siehe Abschnitt: Parameter STATUS