Slave-Diagnose
DP-State
Je DP-Slave gibt es eine Status-Variable, die den aktuellen Zustand des DP-Slaves anzeigt. Dieser Status ist ein Echtzeit-Status, d.h. er paßt immer zu den aktuellen Daten des DP-Slaves und kann mit einer PLC-Variable verknüpft werden (-> DpState des Slaves):
Diagnosedaten
Jeder DP-Slave kann während des Data_Exchange-Betriebs azyklisch DP-Diagnosedaten melden. Dabei setzt der Slave in der Antwort des zyklischen Data_Exchange-Telegramms das Diag_Flag, woraufhin der DP-Master automatisch die DP-Diagnosedaten beim Slave ausliest. Der Data-Exchange-Zyklus wird beim Beckhoff-DP-Master dabei nicht beeinflusst, da das DP-Diagnosetelegramm am Ende des zyklischen Data-Exchange-Zyklus (vor dem Anfang des nächsten Zyklus) gesendet wird. Wenn sich die beim Slave ausgelesenen DP-Diagnosedaten gegenüber dem letzten Zustand geändert haben, setzt der DP-Master die Variable "ExtDiagFlag", die mit einer Variable des Steuerungsprogramms verknüpft werden kann.
Die aktuellen Diagnosedaten des DP-Slaves werden im System Manager Karteireiter Diag des Slaves angezeigt. Außerdem können sie per ADS vom Steuerungsprogramm ausgelesen werden, woraufhin die Variable "ExtDiagFlag" wieder zurückgesetzt wird:
ADS-Read-Parameter | Bedeutung |
---|---|
Net-ID | Net-ID des Masters (s. Karteireiter ADS des Devices) |
Port | 200 |
IndexGroup | 0x00yyF181 (yy = Stationsadresse des Slaves) |
IndexOffset | Offset innerhalb der Diagnosedaten |
Length | Länge der auszulesenden Diagnosedaten |
Data | Diagnosedaten |
Die Diagnosedaten beihalten die Slave-Statistiken (32 Bytes) und die vom Slave gesendeten DP-Diagnosedaten (bis zu 244 Bytes) und sind wie folgt aufgebaut:
Offset | Bedeutung |
---|---|
Slave-Statistiken | |
0 | Receive-Error-Counter (WORD): Anzahl der fehlerhaften Telegramme bei der Kommunikation mit diesem Slave |
2 | Repeat-Counter[8] (WORD): Die Repeat-Counter zeigen an, wie oft wie viele Repeats gemacht werden mussten. Repeat-Counter[0] zeigt an, wie oft ein Telegramm zu diesem Slave einmal wiederholt werden mußte, Repeat-Counter[1], wie oft ein Telegramm zu diesem Slave zweimal wiederholt werden musste, etc. Die maximale Anzahl der Wiederholungen wird mit dem Parameter Max Retry-Limit (s. Dialog Bus-Parameter) eingestellt, der Wertebereich geht von 0 bis 7, daher gibt es hier 8 Repeat-Counter (für 1 bis 8 Wiederholungen) |
18 | reserviert für Erweiterungen |
20 | NoAnswer-Counter (DWORD): Anzahl der Telegramme bei der Kommunikation mit diesem Slave, auf die nicht geantwortet wurde. Wenn ein Slave das erste Mal nicht antwortet, wird entsprechend des MaxRetryLimit das Telegramm wiederholt, wenn er auch dann nicht geantwortet hat, wird beim nächsten Mal keine Wiederholung mehr durchgeführt. |
24-27 | Last-DPV1-Error[4] (BYTE): Hier wird die letzte fehlerhafte DPV1-Antwort eingetragen (Byte 0: DPV1-Dienst (Bit 7 ist gesetzt und zeigt damit einen Fehler an), Byte 1: Error_Decode, Byte 2: Error_Code_1 (Error_Class/Error_Code), Byte 3: Error_Code_2), s. Beschreibung DPV1-Fehlercodes |
27-31 | reserviert für Erweiterungen |
ab 32 |