Herunterladen Inhalt Inhalt Diese Seite drucken

Diagnosedaten Eines Dp-Slave Lesen; Konsistentes Lesen Der Diagnosedaten; Beispiel Für Konsistentes Lesen Der Diagnosedaten - Siemens SIMATIC NET CP 5613 Handbuch

Programmierschnittstelle dp-base
Inhaltsverzeichnis

Werbung

Beschreibung der einzelnen DP-Funktionen und Daten sowie Fehlercodes
4.3.2

Diagnosedaten eines DP-Slave lesen

Konsistentes Lesen der Diagnosedaten

Für die Diagnosedaten jedes einzelnen Slave gibt es einen fest zugeordneten Da-
tenbereich im Prozessabbild des CP 5613/CP 5614 (zum Datenformat siehe Kapi-
tel 4.6).
Zum konsistenten Lesen der Diagnosedaten eines Slave sperrt Ihr Anwenderpro-
gramm den Datenbereich zunächst gegen Aktualisierung von Seiten des DP-
Master, greift dann darauf zu und gibt ihn anschließend wieder frei. Das Sperren
erfolgt durch das Schreiben der Slave-Nummer in ein Steuerregister im Pro-
zessabbild. Das Freigeben erfolgt durch Schreiben des Wertes DPR_DP_UNLOCK
in dasselbe Register.
Außerdem gibt es einen Zähler, der die Diagnosedaten des betreffenden Slave
mitzählt.
Beispiel für konsistentes Lesen der Diagnosedaten
Es sei p ein Zeiger auf das Prozessabbild, den Ihr Anwenderprogramm beim
„DP_get_pointer"-Aufruf erhalten hat. Dann werden 200 Byte der Diagnosedaten
des Slave Nr. 5 wie folgt in einen lokalen Puffer „buf" kopiert:
/*Sperren des Diagnosedatenbereichs gegen Aktualisierung*/
p->ctr.D_lock_diag_slave_adr = 5;
/* Zähler auswerten */
count = p->pi.slave_diag[5].diag_count;
/* aktuelle Daten kopieren */
memcpy(buf, &p->pi.slave_diag[5].data[0],
/* Sperre wieder aufheben */
p->ctr.D_lock_diag_slave_adr = DPR_DP_UNLOCK;
Programmierschnittstelle DP-Base für CP 5613/CP 5614
C79000-G8900-C139-04
p->pi.slave_diag[5].diag_len);
169

Werbung

Inhaltsverzeichnis
loading

Diese Anleitung auch für:

Simatic net cp 5614

Inhaltsverzeichnis