Additional Diagnostic information
FrmXState: Variable vom Typ WORD (oder UINT), die den Status des Frame X anzeigt. Für jedes EtherCAT-Kommando im Frame ist ein Bit in FrmXState reserviert:
Bit | Beschreibung |
---|---|
0 (0x0001) | 1. EtherCAT-Kommando nicht gesendet (NOP angefordert) |
1 (0x0002) | 2. EtherCAT-Kommando nicht gesendet (NOP angefordert) |
2 (0x0004) | 3. EtherCAT-Kommando nicht gesendet (NOP angefordert) |
... |
|
14 (0x4000) | 15. EtherCAT-Kommando nicht gesendet (NOP angefordert) |
15 (0x8000) | kompletter Frame nicht gesendet |
FrmXWcState: Variable vom Typ WORD(oder UINT), die die Working-Counter-States der einzelnen EtherCAT-Kommandos des zyklischen Frame X anzeigt. Für jedes EtherCAT-Kommando im Frame ist ein Bit in FrmXWcState reserviert:
Bit | Beschreibung |
---|---|
0 (0x0001) | falscher Working Counter vom 1. EtherCAT-Kommando empfangen |
1 (0x0002) | falscher Working Counter vom 2. EtherCAT-Kommando empfangen |
2 (0x0004) | falscher Working Counter vom 3. EtherCAT-Kommando empfangen |
... |
|
14 (0x4000) | falscher Working Counter vom 15. EtherCAT-Kommando empfangen |
15 (0x8000) | kompletter Frame fehlt |
Ein EtherCAT-Frame kann aus einem oder mehreren EtherCAT-Kommandos bestehen. Jeder dieser Kommandos hat einen erwarteten Work Counter-Wert. Das heißt, der Master weiß, wie viele Slave-Geräte durch ein einzelnes Kommando angesprochen werden und kann den zu erwartenden Working Counter berechnen. Wenn der Master einen falschen Working Counter empfängt, bedeutet dies, dass ein oder mehrere Slaves ein Problem haben. In diesem Fall wird das entsprechende Bit in FrmXWcState gesetzt.
Im obigen Beispiel wird während der Prozessdatenkommunikation nur ein Frame (Frame0) zyklisch gesendet. In der Registerkarte "EtherCAT" des EtherCAT-Gerätes kann man die einzelnen zyklischen Frames und die darin enthaltenen EtherCAT-Kommandos sehen:
Das erste Kommando ist ein logischer Lese- und Schreibbefehl und der zweite ein Broadcast-Lesebefehl. Der LRW-Kommando ist für das Lesen der Eingänge und das Beschreiben der Ausgänge eines oder mehrerer Slave-Geräte zuständig. Das Kommando BRD (Broad Cast Read) liest die kombinierten Zustände aller Slaves aus.
Slave Count: Anzahl der an den EtherCAT-Master angeschlossenen Slave-Geräte.
DevState: Gerätestatusinformationen als WORD- (oder UINT-) Variable, nimmt die folgenden Werte an:
Bit | Beschreibung: |
---|---|
0 (0x0001) | Link-Fehler erkannt. |
1 (0x0002) | E/A gesperrt nach Link-Fehler (E/A-Reset erforderlich) |
2 (0x0004) | Link-Fehler (Redundanzadapter) |
3 (0x0008) | Fehlen eines Frames (Redundanz Modus) |
4 (0x0010) | Keine Senderessourcen mehr vorhanden (E/A-Reset erforderlich) |
5 (0x0020) | Watchdog ausgelöst |
6 (0x0040) | Ethernet-Treiber (Miniport) nicht gefunden |
7 (0x0080) | E/A Reset aktiv |
8 (0x0100) | Mindestens ein Gerät im 'INIT'-Status |
9 (0x0200) | Mindestens ein Gerät im 'PRE-OP'-Status |
10 (0x0400) | Mindestens ein Gerät im 'SAFE-OP'-Status |
11 (0x0800) | Mindestens ein Gerät zeigt einen Fehlerzustand an |
12 (0x1000) | DC not in sync |
Die Bits 8-11 der Variable des Gerätestatus zeigen an, ob sich ein oder mehrere Slave-Geräte in einem bestimmten Status befinden. Während der Prozessdatenkommunikation befinden sich die Slaves im Status Operational. In diesem Fall sind die Bits 8-11 auf 0 gesetzt. Befindet sich ein Slave-Gerät im Status Init statt Operational, wäre das Bit 8 gesetzt (DevState = 0x0100).
EtherCAT-Slave-Gerät
Zusätzlich zu den Diagnoseeingängen der EtherCAT-Geräte verfügt jedes Slave-Gerät über eine optionale Diagnose-Eingangsvariable namens WcState:
WcState: Variable vom Typ BOOL, die den Working Counter-Staus des EtherCAT-Slave-Gerätes anzeigt. Ein Wert von 0 bedeutet einen gültigen Working Counter und ein Wert von 1 einen ungültigen Working Counter. Wenn der Working Counter ungültig ist, bedeutet dies, dass das EtherCAT-Kommando, das für die Aktualisierung der Ein- und Ausgänge für dieses Gerät zuständig ist, einen falschen Working Counter hat. Da dieses Kommando mehr als 1 Slave-Gerät ansprechen kann, wird die Variable WcState aller beteiligten Geräte auf ungültig gesetzt und man kann das Gerät, das das Problem verursacht, nicht mit Hilfe dieser Variable bestimmen. Um festzustellen, ob ein einzelnes Slave-Gerät ein Problem hat, kann man mit Hilfe der Variablen InfoData.State den Status des Gerätes auslesen.
Wenn "Info Data" aktiviert ist (siehe Master-Einstellungen), wird das "Info"-Geräteabbild dem EtherCAT-Gerät hinzugefügt. Zusätzlich wird dem EtherCAT-Gerät und den angeschlossenen EtherCAT-Slave-Geräten ein Eintrag "InfoData" hinzugefügt. 'InfoData' enthält Eingangsvariablen, die Informationen über das EtherCAT-Gerät liefern, die sich normalerweise nicht sehr oft ändern. Variablen, die auf die "Info"-Bildern abgebildet werden, werden nicht zyklisch aktualisiert, sondern nur, wenn das Abbild sich geändert hat.
ChangeCnt: Die ChangeCnt zeigt an, wie oft sich der Inhalt des Abbildes geändert hat.
DevId(optional): Dies ist die Geräte-ID des EtherCAT-Geräts.
AmsNetId(optional): Die AmsNetId ist ein Parameter, der für die Kommunikation mit dem EtherCAT-Master-Gerät über ADS erforderlich ist. Der ADS-Port des EtherCAT-Masters ist immer 0xFFFF(65535) und der Ads-Port eines EtherCAT-Slave-Geräts ist gleich der festen Adresse (siehe EtherCAT Addr) des Slaves.
EtherCAT-Slave-Gerät
State: Die Variable "State" enthält den aktuellen EtherCAT-Status und den Verbindungsstatus des EtherCAT-Slave-Geräts.
Wert | Beschreibung |
---|---|
0x___1 | Slave im 'INIT'-Status |
0x___2 | Slave im 'PREOP'-Status |
0x___3 | Slave im 'BOOT'-Status |
0x___4 | Slave im 'SAFEOP'-Status |
0x___8 | Slave im 'OP'-Status |
0x0010 | Slave meldet Fehler |
0x0020 | Ungültige vendorId, productCode... lesen |
0x0100 | Slave nicht vorhanden |
0x0200 | Slave meldet Link-Fehler |
0x0400 | Slave meldet fehlenden Link |
0x0800 | Slave meldet unerwarteten Link |
0x1000 | Kommunikations-Port A |
0x2000 | Kommunikations-Port B |
0x4000 | Kommunikations-Port C |
0x8000 | Kommunikations-Port D |
AdsAddr( optional ): Die Variable "AdsAddr" enthält die Ams netId und den Ams port des Slave-Geräts. Dies sind notwendige Parameter, um mit dem EtherCAT-Slave-Gerät über ADS zu kommunizieren. Die Variable "AdsAddr" wird standardmäßig hinzugefügt, wenn der Slave eine Mailbox unterstützt.
Chn0 (nur bei Antrieben optional): Antriebskanal.
Zusätzliche nicht-zyklische Diagnoseinformationen finden Sie auf der Registerkarte Online des EtherCAT-Geräts.