Beschreibung
Mit der Anweisung lesen Sie den Datensatz mit der Nummer INDEX von 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 MLEN geben Sie vor, wie viele Bytes Sie maximal lesen möchten. Den Zielbereich RECORD sollten Sie daher mindestens MLEN Bytes lang wählen.
Der Wert TRUE des Ausgangsparameters VALID zeigt an, dass der Datensatz erfolgreich in den Zielbereich RECORD übertragen wurde. In diesem Fall enthält der Ausgangsparameter LEN die Länge der gelesenen Daten in Bytes.
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 "RDREC" von den E/A-Baugruppen gelesen 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 "RDREC" ist identisch mit der des in der Norm "PROFIBUS and PROFINET Guideline Communication Function Blocks on PROFIBUS DP and PROFINET IO" definierten FB "RDREC". |
Arbeitsweise
"RDREC" ist eine asynchron arbeitende Anweisung, d. h. die Bearbeitung erstreckt sich über mehrere Aufrufe. Sie starten die Datensatzübertragung, indem Sie RDREC 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.
Die Datensatzübertragung ist abgeschlossen, wenn der Ausgangsparameter BUSY den Wert FALSE angenommen hat.
Solange die Datensatzübertragung läuft, darf der Zielbereich nicht verändert werden, und zwar weder dessen Länge noch dessen Inhalt.
Parameter
Die folgende Tabelle zeigt die Parameter der Anweisung "RDREC":
|
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)
|
|
INDEX |
Input |
INT |
E, A, M, D, L oder Konstante |
Datensatznummer |
|
MLEN |
Input |
INT |
E, A, M, D, L oder Konstante |
maximale Länge der zu lesenden Datensatzinformation in Bytes |
|
VALID |
Output |
BOOL |
E, A, M, D, L |
Neuer Datensatz wurde empfangen und ist gültig |
|
BUSY |
Output |
BOOL |
E, A, M, D, L |
BUSY = 1: Der Lesevorgang ist noch nicht beendet. |
|
ERROR |
Output |
BOOL |
E, A, M, D, L |
ERROR = 1: Beim Lesevorgang trat ein Fehler auf. |
|
STATUS |
Output |
DWORD |
E, A, M, D, L |
Bausteinstatus bzw. Fehlerinformation Zur Interpretation des Parameters STATUS siehe Parameter STATUS. |
|
LEN |
Output |
INT |
E, A, M, D, L |
Länge der gelesenen Datensatzinformation |
|
RECORD |
InOut |
ANY |
E, A, M, D, L |
Zielbereich für den gelesenen 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 Lesen eines Datensatzes bei PROFINET IO einsetzen, werden negative Werte in den Parametern INDEX, MLEN und LEN als 16-Bit vorzeichenlose ganze Zahl interpretiert. |