GET: Daten aus einer remoten CPU lesen (S7-300, S7-400) - STEP 7

S7-Kommunikation (S7-300, S7-400)

ft:publication_title
S7-Kommunikation (S7-300, S7-400)
Product
STEP 7
Version
V20
Publication date
11/2024
Language
de-DE
GET: Daten aus einer remoten CPU lesen

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:

  • 0: Auftrag wurde noch nicht gestartet oder läuft noch.

  • 1: Auftrag wurde erfolgreich abgeschlossen.

ERROR /

STATUS

Output

Output

BOOL

WORD

E, A, M, D, L

E, A, M, D, L

Zustandsparameter ERROR und STATUS, Fehleranzeige:

  • ERROR=0

    STATUS hat den Wert:

    0000H: weder Warnung noch Fehler

    <> 0000H: Warnung, STATUS liefert detaillierte Auskunft.

  • ERROR=1

    Es liegt ein Fehler vor. STATUS liefert detaillierte Auskunft über die Art des Fehlers.

S7-300: ADDR_1

S7-400: ADDR_i

(1≤ i ≤4)

InOut

ANY

S7-300: M, D


S7-400:
E, A, M, D, T, Z

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:
E, A, M, D, T, Z

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:

  • Neuer Auftrag ist unwirksam, da vorangegangener Auftrag noch nicht abgeschlossen ist.

  • Der Auftrag wird 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.

  • Verbindungsbeschreibung nicht geladen (lokal oder remote)

  • Verbindung unterbrochen (z. B. Kabel, CPU ausgeschaltet, CP in STOP)

  • Verbindung zum Partner noch nicht aufgebaut

  • zusätzlich S7-300:

    • Maximale Anzahl paralleler Aufträge/Instanzen ist überschritten.

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

  • ein Instanz-DB, der nicht zu "GET" gehört, angegeben

  • kein Instanz-DB, sondern ein Global-DB angegeben

  • kein Instanz-DB gefunden (Abhilfe: Laden Sie den zugehörigen Instanz-DB erneut).

1

20

  • S7-400

    Zu wenig Arbeitsspeicher vorhanden. Abhilfe: Reduzieren Sie den im Speicher befindlichen Programmcode.

  • S7-300

    • Maximale Anzahl paralleler Aufträge/Instanzen ist überschritten

    • Die Instanzen wurden bei CPU-RUN überladen (STOP-RUN-Übergang der CPU oder des CP ist erforderlich.)

    • Ist beim Erstaufruf möglich

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.