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 passt immer zu den aktuellen Daten des DP-Slaves und kann mit einer PLC-Variable verknüpft werden (-> DpState des Slaves):

Slave-Diagnose 1:

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 8, 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

DP-Diagnosedaten

Es folgt eine Beschreibung der DP-Diagnosedaten

Offset

Bedeutung

0x00.0

StationNonExistent: Slave beim letzten Telegramm nicht geantwortet

0x00.1

StationNotReady: Slave verarbeitet noch das Set_Prm bzw. Chk_Cfg-Telegramm

0x00.2

CfgFault: Slave meldet einen Konfigurationsfehler

0x00.3

ExtDiag: Extended DiagData sind vorhanden und gültig

0x00.4

NotSupported: Slave unterstützt ein Feature nicht, das mit Set_Prm oder Global_Control gefordert wurde

0x00.5

InvalidSlaveResponse: Slave antwortet nicht DP-konform

0x00.6

PrmFault: Slave meldet einen Parametrierfehler

0x00.7

MasterLock: Slave ist im Datenaustausch mit einem anderen Master

0x01.0

PrmReq: Slave muß neu parametriert und konfiguriert werden

0x01.1

StatDiag: Slave meldet statische Diagnose bzw. Applikation des DPV1-Slave noch nicht bereit für den Datenaustausch

0x01.2

PROFIBUS-DP-Slave

0x01.3

WdOn: DP-Watchdog ist eingeschaltet

0x01.4

FreezeMode: DP-Slave ist im Freeze-Mode

0x01.5

SyncMode: DP-Slave ist im Sync-Mode

0x01.6

reserviert

0x01.7

Deactivated: DP-Slave wurde deaktiviert

0x02.0

reserviert

0x02.1

reserviert

0x02.2

reserviert

0x02.3

reserviert

0x02.4

reserviert

0x02.5

reserviert

0x02.6

reserviert

0x02.7

ExtDiagOverflow: zu viele Extended DiagData vorhanden

0x03

MasterAdd: Stationsadresse des Masters, der mit dem Slave Datenaustausch macht

0x04,0x05

IdentNumber

ab 0x06

Extended DiagData

Extended DiagData

Bei den Extended DiagData wird zwischen Kennungsdiagnose, Kanaldiagnose und Herstellerspezifischer Diagnose unterschieden, wobei das erste Byte jeweils den Typ der Diagnose und die Länge der dazugehörenden Daten anzeigt. In den Extended DiagData können auch auch mehrere Diagnosetypen nacheinander folgen.

Header-Byte

Bit

Bedeutung

0-5

Länge der zugehörigen Diagnosedaten inklusive Header-Byte

6-7

0 = Herstellerspezifische Diagnose (DPV1 wird nicht unterstützt) bzw. DPV1-Diagnose (DPV1 wird unterstützt (DPV1_Enable = 1) in zugehöriger GSD-Datei)

Moduldiagnose

Kanaldiagnose

Revision-Number

Herstellerspezifische Diagnose

Der Aufbau der Herstellerspezifischen Diagnose ist der Dokumentation des DP-Slaves zu entnehmen.