Beschreibung
Die Anweisung "URCV_S" empfängt bei S7-300 asynchron Daten von einer remoten Partner-Anweisung vom Typ "USEND_S" und kopiert sie in die projektierten Empfangsbereiche.
Die Anweisung ist empfangsbereit, wenn am Eingang EN_R eine logische "1" anliegt. Mit EN_R=0 kann ein laufender Auftrag abgebrochen werden.
Mit jeder positiven Flanke an EN_R werden die Parameter R_ID, ID und RD_1 übernommen. Nach Abschluss eines Auftrags können Sie den Parametern R_ID, ID und RD_1 neue Werte zuweisen.
Sie müssen beachten, dass die über die Parameter RD_1 und SD_1 (bei der zugehörigen Partner-Anweisung "USEND_S") definierten Bereiche übereinstimmen in:
-
Anzahl
-
Länge
-
Datentyp
Der erfolgreiche Abschluss des Kopiervorgangs wird am Zustandsparameter NDR mit einer logischen "1" angezeigt. Der Parameter R_ID muss bei beiden Anweisungen identisch sein.
Parameter
Die folgende Tabelle zeigt die Parameter der Anweisung "URCV_S":
|
Parameter |
Deklaration |
Datentyp |
Speicherbereich |
Beschreibung |
|---|---|---|---|---|
|
EN_R |
Input |
BOOL |
E, A, M, D, L |
Steuerparameter enabled to receive, signalisiert Empfangsbereitschaft, wenn der Eingang gesetzt ist. |
|
ID |
Input |
WORD |
M, D oder Konstante |
Adressierungsparameter ID Siehe auch: Gemeinsame Parameter der Anweisungen zur S7-Kommunikation |
|
R_ID |
Input |
DWORD |
E, A, M, D, L oder Konstante |
Adressierungsparameter R_ID Siehe auch: Gemeinsame Parameter der Anweisungen zur S7-Kommunikation |
|
NDR |
Output |
BOOL |
E, A, M, D, L |
Zustandsparameter NDR:
|
|
ERROR STATUS |
Output Output |
BOOL WORD |
E, A, M, D, L E, A, M, D, L |
Zustandsparameter ERROR und STATUS, Fehleranzeige:
|
|
RD_1 |
InOut |
ANY |
M, D |
Zeiger auf den i-ten Empfangsbereich: Hinweis: Wenn der ANY-Pointer auf einen DB zugreift, ist der DB immer zu spezifizieren (z. B.: P#DB10.DBX5.0 Byte 10). |
Weitere Informationen zu den gültigen Datentypen finden Sie unter "Übersicht über die gültigen Datentypen".
Parameter ERROR und STATUS
|
ERROR |
STATUS (dezimal) |
Erläuterung |
|---|---|---|
|
0 |
9 |
Overrun-Warnung: Ältere Empfangsdaten wurden von neueren Empfangsdaten überschrieben. |
|
0 |
11 |
Warnung: Die Empfangsdaten werden bereits in einer Prioritätsklasse mit niedrigerer Priorität bearbeitet. |
|
0 |
25 |
Die Kommunikation wurde angestoßen. Der Auftrag ist in Bearbeitung. |
|
1 |
1 |
Kommunikationsprobleme, z. B.
|
|
1 |
4 |
Fehler in den Empfangsbereichszeigern RD_1 bezüglich der Datenlänge oder des Datentyps. |
|
1 |
10 |
Zugriff auf lokalen Anwenderspeicher nicht möglich (z. B. Zugriff auf gelöschten DB). |
|
1 |
12 |
Beim Aufruf der Anweisung wurde
|
|
1 |
18 |
|
|
1 |
19 |
Die zugehörige Anweisung "USEND_S" sendet schneller Daten als diese von "URCV_S" in die Empfangsbereiche kopiert werden können. |
|
1 |
20 |
|
|
1 |
27 |
Für diesen Baustein existiert in der CPU kein Funktionscode. |
Datenkonsistenz
Die Daten werden konsistent empfangen, wenn Sie Folgendes beachten:
Nachdem der Zustandsparameter NDR den Wert "1" angenommen hat, müssen Sie "URCV_S" mit dem Wert "0" an EN_R sofort erneut aufrufen. Damit wird gewährleistet, dass der Empfangsbereich nicht bereits überschrieben wird, bevor Sie ihn ausgewertet haben. Werten Sie den Empfangsbereich RD_1 vollständig aus, bevor Sie den Baustein wieder mit dem Wert "1" am Steuereingang EN_R aufrufen.