WRREC: Datensatz schreiben (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
WRREC: Datensatz schreiben

Beschreibung

Mit der Anweisung übertragen Sie den Datensatz RECORD zu der mittels ID adressierten Komponente. Es kann sich dabei um eine zentral steckende Baugruppe oder eine dezentrale Komponente (PROFIBUS DP oder PROFINET IO) handeln.

Mit LEN (ausgeblendet) geben Sie die Länge des zu übertragenden Datensatzes in Bytes vor. Den Quellbereich RECORD sollten Sie daher mindestens LEN Bytes lang wählen.

Der Wert TRUE des Ausgangsparameters DONE zeigt an, dass der Datensatz erfolgreich übertragen wurde.

Falls bei der Datensatzübertragung ein Fehler auftrat, wird dies über den Ausgangsparameter ERROR angezeigt. Der Ausgangsparameter STATUS enthält in diesem Fall die Fehlerinformation.

Hinweis

Wenn ein DPV1-Slave über GSD-Datei projektiert ist (GSD ab Rev. 3) und die DP-Schnittstelle des DP-Masters auf "S7-kompatibel" eingestellt ist, dürfen im Anwenderprogramm keine Datensätze mit "WRREC" zu den E/A-Baugruppen geschrieben werden. Der DP-Master adressiert in diesem Fall den falschen Steckplatz (projektierter Steckplatz + 3).

Abhilfe: Schnittstelle des DP-Masters auf "DPV1" umstellen.

Hinweis

Die Schnittstelle der Anweisung "WRREC" ist identisch mit der des in der Norm "PROFIBUS and PROFINET Guideline Communication Function Blocks on PROFIBUS DP and PROFINET IO" definierten Anweisung "WRREC".

Arbeitsweise

"WRREC" ist eine asynchron arbeitende Anweisung, d. h. die Bearbeitung erstreckt sich über mehrere Aufrufe. Sie starten die Datensatzübertragung, indem Sie "WRREC" mit REQ = 1 aufrufen.

Über den Ausgangsparameter BUSY und die mittleren zwei Bytes des Ausgangsparameters STATUS wird der Zustand des Auftrags angezeigt. Dabei entsprechen die mittleren zwei Bytes von STATUS dem Ausgangsparameter RET_VAL der asynchron arbeitenden Anweisungen.

Siehe auch: Unterschied zwischen synchron und asynchron arbeitenden Anweisungen.

Beachten Sie, dass Sie dem Aktualparameter von RECORD bei allen zu ein und demselben Auftrag gehörenden Aufrufen von "WRREC" denselben Wert zuweisen. Dasselbe gilt für die Aktualparameter von LEN.

Die Datensatzübertragung ist abgeschlossen, wenn der Ausgangsparameter BUSY den Wert FALSE angenommen hat.

Parameter

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

Parameter

Deklaration

Datentyp

Speicherbereich

Beschreibung

REQ

Input

BOOL

E, A, M, D, L

REQ = 1: Datensatzübertragung durchführen

ID

Input

DWORD

E, A, M, D, L oder Konstante

logische Adresse der DP-Slave/PROFINET IO-Komponente (Baugruppe bzw. Modul)
Bei einer Ausgabebaugruppe muss Bit 15 gesetzt werden (Bsp. für Adresse 5: ID:=DW#16#8005).
Bei einer Mischbaugruppe ist die kleinere der beiden Adressen anzugeben.

INDEX

Input

INT

E, A, M, D, L oder Konstante

Datensatznummer

LEN

Input

INT

E, A, M, D, L oder Konstante

(ausgeblendet)

maximale Länge des zu übertragenden Datensatzes in Bytes

DONE

Output

BOOL

E, A, M, D, L

Datensatz wurde übertragen

BUSY

Output

BOOL

E, A, M, D, L

BUSY = 1: Der Schreibvorgang ist noch nicht beendet.

ERROR

Output

BOOL

E, A, M, D, L

ERROR = 1: Beim Schreibvorgang trat ein Fehler auf.

STATUS

Output

DWORD

E, A, M, D, L

Bausteinstatus bzw. Fehlerinformation

Zur Interpretation des Parameters STATUS siehe Parameter STATUS.

RECORD

InOut

ANY

E, A, M, D, L

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".

Hinweis

Falls Sie die Anweisung für das Schreiben eines Datensatzes bei PROFINET IO einsetzen, werden negative Werte in den Parametern INDEX und LEN als 16-Bit vorzeichenlose ganze Zahl interpretiert.