Beschreibung
Mit Hilfe der Anweisung können Sie Daten in eine remote CPU schreiben, falls die Verbindung nicht über einen CP erfolgt.
-
S7-300: Der Sendevorgang erfolgt nach einer positiven Flanke an REQ. Mit jeder positiven Flanke an REQ werden die Parameter ID, ADDR_1 und SD_1 übernommen. Nach Abschluss eines Auftrags können Sie den Parametern ID, ADDR_1 und SD_1 neue Werte zuweisen.
-
S7-400: Bei einer positiven Flanke am Steuereingang REQ wird die Anweisung gestartet. Dabei werden die Zeiger auf die zu schreibenden Bereiche (ADDR_i) und die Daten (SD_i) an die Partner-CPU gesendet.
Der remote Partner legt die gesendeten Daten unter den mitgeführten Adressen ab und sendet eine Ausführungsquittung zurück. Sie müssen darauf achten, dass die über die Parameter ADDR_i und SD_i definierten Bereiche in der Anzahl, in der Länge und im Datentyp zueinander passen.
Falls keine Fehler auftraten, wird dies beim nächsten Aufruf am Zustandsparameter DONE mit "1" angezeigt. Eine erneute Aktivierung eines Schreibvorgangs ist erst nach dem Abschluss des letzten möglich.
Die remote CPU kann sich im Betriebszustand RUN oder STOP befinden. Wenn beim Schreiben der Daten Zugriffsprobleme auftraten, oder die Prüfung der Ausführungsquittung einen Fehler ergab, werden Fehler und Warnungen über ERROR und STATUS ausgegeben.
Parameter
Die folgende Tabelle zeigt die Parameter der Anweisung "PUT":
|
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 |
|
DONE |
Output |
BOOL |
E, A, M, D, L |
Zustandsparameter DONE:
|
|
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 |
InOut |
ANY |
S7-300: M, D
S7-400: |
Zeiger auf diejenigen Bereiche in der Partner-CPU, in die geschrieben werden soll. 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: SD_1
S7-400: SD_i |
InOut |
ANY |
S7-300: M, D S7-400: |
Zeiger auf diejenigen Bereiche in der eigenen CPU, die die zu versendenden Daten enthalten. 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 PUT 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 Sendebereichszeigern SD_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 bei S7-300:
Um Datenkonsistenz zu gewährleisten, dürfen Sie den Sendebereich SD_1 erst dann wieder beschreiben, wenn der aktuelle Sendevorgang abgeschlossen ist. Dies ist der Fall, wenn der Zustandsparameter DONE den Wert "1" annimmt.
Datenkonsistenz bei S7-400 und S7-300 über eine integrierte Schnittstelle:
Mit dem Aktivieren eines Sendevorgangs (steigende Flanke an REQ) sind die zu sendenden Daten der Sendebereiche SD_i aus dem Anwenderprogramm kopiert. Sie können diese Bereiche nach dem Aufruf der Anweisung neu beschreiben, ohne die aktuellen Sendedaten zu verfälschen.
|
Hinweis Der gesamte Sendevorgang ist erst dann abgeschlossen, wenn der Zustandsparameter DONE den Wert "1" annimmt. |