Beschreibung
Mit Hilfe der Anweisung können Sie Daten aus einer remoten CPU auslesen, falls die Verbindung nicht über einen CP erfolgt.
-
S7-300: Der Lesevorgang erfolgt nach einer positiven Flanke an REQ. Mit jeder positiven Flanke an REQ werden die Parameter ID, ADDR_1 und RD_1 übernommen. Nach Abschluss eines Auftrags können Sie den Parametern ID, ADDR_1 und RD_1 neue Werte zuweisen.
-
S7-400: Bei einer positiven Flanke am Steuereingang REQ wird die Anweisung gestartet. Dabei werden die relevanten Zeiger auf die auszulesenden Bereiche (ADDR_i) an die Partner-CPU gesendet.
Der remote Partner sendet die Dateninhalte zurück. Die empfangenen Daten werden beim nächsten Aufruf in die projektierten Empfangsbereiche (RD_i) kopiert. Sie müssen darauf achten, dass die über die Parameter ADDR_i und RD_i definierten Bereiche in der Anzahl, in der Länge und im Datentyp zueinander passen.
Der Abschluss dieses Vorgangs wird am Zustandsparameter NDR mit "1" angezeigt. Eine erneute Aktivierung eines Lesevorgangs ist erst nach dem Abschluss des letzten möglich.
Die remote CPU kann sich im Betriebszustand RUN oder STOP befinden. Wenn beim Lesen der Daten Zugriffsprobleme auftraten, oder die Datentypprüfung einen Fehler ergab, werden Fehler und Warnungen über ERROR und STATUS ausgegeben.
Parameter
Die folgende Tabelle zeigt die Parameter der Anweisung "GET":
|
Parameter |
Deklaration |
Datentyp |
Speicherbereich |
Beschreibung |
|---|---|---|---|---|
|
REQ |
Input |
BOOL |
E, A, M, D, L |
Steuerparameter request, aktiviert den Datenaustausch bei steigender Flanke. |
|
ID |
Input |
WORD |
M, D oder Konstante |
Adressierungsparameter 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:
|
|
S7-300: ADDR_1 S7-400: ADDR_i (1≤ i ≤4) |
InOut |
ANY |
S7-300: M, D
S7-400: |
Zeiger auf diejenigen Bereiche in der Partner-CPU, die gelesen werden sollen. Hinweis: Wenn der ANY-Pointer auf einen DB zugreift, ist der DB immer zu spezifizieren (z. B.: P#DB10.DBX5.0 Byte 10). Bei der Übertragung von Datenstrukturen (z.B. Struct, Array) muss an dem Parameter ADDR der Datentyp CHAR, BYTE, WORD oder DWORD verwendet werden. |
|
S7-300: RD_1 S7-400: RD_i (1≤ i ≤4) |
InOut |
ANY |
S7-300: M, D S7-400: |
Zeiger auf diejenigen Bereiche in der eigenen CPU, in der die gelesenen Daten abgelegt werden. Zulässig sind nur die Datentypen BOOL (nicht erlaubt: Bitfeld), BYTE, CHAR, WORD, INT, DWORD, DINT, REAL, COUNTER, TIMER. 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
Die folgende Tabelle enthält alle für die Anweisung "GET" spezifischen Fehlerinformationen, die über die Parameter ERROR und STATUS ausgegeben werden können.
|
ERROR |
STATUS (dezimal) |
Erläuterung |
|---|---|---|
|
0 |
11 |
Warnung:
|
|
0 |
25 |
Die Kommunikation wurde angestoßen. Der Auftrag ist in Bearbeitung. |
|
1 |
1 |
Kommunikationsprobleme, z. B.
|
|
1 |
2 |
Negative Quittung vom Partnergerät. Die Funktion ist nicht ausführbar. |
|
1 |
4 |
Fehler in den Empfangsbereichszeigern RD_i bezüglich der Datenlänge oder des Datentyps. |
|
1 |
8 |
Zugriffsfehler bei der Partner-CPU. |
|
1 |
10 |
Zugriff auf lokalen Anwenderspeicher nicht möglich (z. B. Zugriff auf gelöschten DB). |
|
1 |
12 |
Beim Aufruf der Anweisung wurde
|
|
1 |
20 |
|
|
1 |
27 |
Nur bei S7-300: Für diese Anweisung existiert in der CPU kein Funktionscode. |
Datenkonsistenz
Die Daten werden konsistent empfangen, wenn Sie folgendes beachten:
Werten Sie den aktuell benutzten Teil des Empfangsbereichs RD_i vollständig aus, bevor Sie einen erneuten Auftrag aktivieren.