EL6751- Diagnose Busknoten

Die CANopen Feldbuskarte EL6751 verfügt über umfangreiche Diagnosemöglichkeiten für die angeschlossenen Netzwerkknoten. 

EL6751- Diagnose Busknoten 1:
Diagnose Eingänge im TwinCAT Baum

Für jeden CANopen Feldbusknoten gibt es die Eingangsvariable Node State, die den Status des jeweiligen Slaves zur Laufzeit signalisiert und z. B. mit der SPS verknüpft werden kann.

Node-State (Box-State)

EL6751- Diagnose Busknoten 2:
Karteireiter „Variable“

Node State

Bedeutung

Erläuterung

0 = 0x00

No error

Busknoten ist Operational, Kommunikation läuft fehlerfrei

1 = 0x01

Node deactivated

Knoten weist einen oder mehrere der folgenden Fehler auf:

  • Guarding/Heartbeat Fehler (Ausfall, Toggle Bit Fehler, Knoten hat Zustand gewechselt)
  • erwartetes TxPDO wurde nicht empfangen
  • TxPDO Länge kürzer als erwartet

Knoten wurde gestoppt, da "Restart Manuell" nach Knotenausfall angewählt wurde.

2 = 0x02

Node not found

Knoten wurde nicht gefunden: keine Antwort auf SDO-Lesezugriff auf Objekt 0x1000 an der erwarteten Knotenadresse. Am Knoten prüfen: eingestellte Knotenadresse + Baudrate. Netzwerk prüfen (Abschlusswiderstand, Stecker, Buslänge, vertauschte Leitungen, etc.)

4 = 0x04

SDO syntax error at StartUp

Fehler beim SDO Schreibzugriff: SDO Abort durch Knoten. Details siehe Karteireiter "Diag".
oder: Länge eines via SDO gelesenen Objektes stimmt mit erwarteter Länge überein.

5 = 0x05

SDO data mismatch at StartUp

Erwartete Daten stimmen nicht mit via SDO gelesenen Daten überein (z. B. Device Profile und/oder Add. Info stimmen nicht mit Objekt 0x1000 überein). Tritt auch auf, wenn zu schreibender Wert (z. B. PDO COB-ID) wegen Verweigerung des Schreibzugriffs zurückgelesen wurde und nicht übereinstimmt. Details siehe Karteireiter "Diag".

8 = 0x08

Node StartUp in progress

Knoten wurde gefunden und wird gestartet

11 = 0x0B

EL6751Bus-OFF

CAN Chip ist in "Bus-OFF" Zustand gegangen: Sende-Fehlerzähler ging

12 = 0x0C

Pre-Operational

Knoten ist (von selbst) in Pre-Operational gegangen.

13 = 0x0D

Severe bus fault

Allgemeiner Firmwarefehler

14 = 0x0E

Guarding: toggle error

Guarding Fehler: Toggle Bit wurde nicht geändert

20 = 0x14

TxPDO too short

Empfangenes TxPDO kürzer als erwartet

22 = 0x16

Expected TxPDO is missing

  • TxPDO wurde im erwarteten Zeit-Intervall nicht empfangen :
  • Sync-Intervall bei synchronen TxPDOs,
  • Event-Timer bei ereignisgesteuerten PDOs)

23 = 0x17

Node is Operational but not all TxPDOs were received

Knoten wurde gestartet aber mindestens ein TxPDO des Knotens wurde noch nicht empfangen. Mögliche Ursachen (z. B.):

  • Knoten schickt ereignisgesteuerte PDOs erst nach dem ersten Event (nicht im Sinne der CANopen Spezifikation, aber durchaus üblich)
  • zu viele TxPDOs konfiguriert
  • TxPDO ist auf dem Knoten vorhanden aber keine Prozessdaten gemappt
  • TxPDO hat Transmission Type 1...120 (synchron), aber SYNC wurde noch nicht verschickt da zugehörige Task nicht gestartet wurde

DiagFlag

Zeigt an, ob sich die Diagnoseinformationen der Box geändert haben.

Auslesen der Diagnosedaten via ADS

CANopen Emergencies und weitere Diagnosedaten können mit ADS-Read ausgelesen werden (neue Daten sind vorhanden, sobald das DiagFlag gesetzt ist). Dazu sind die ADS Net-ID der EL6751anzugeben. Weitere ADS Parameter:

Port: 200

IndexGroup: Lo-Word = 0xF180, Hi-Word = Node-Nummer.

IndexOffset: siehe unten

Länge: siehe unten

Wenn mehr als 26 Bytes Diagnosedaten ausgelesen werden, wird der Emergency-Speicher zurückgesetzt. Das DiagFlag wird zurückgesetzt, sobald ab Offset 0 mindestens 108 Bytes ausgelesen werden. Alternativ wird das Flag nach jedem Lesezugriff zurückgesetzt, wenn IndexGroup 0xF181 (statt 0xF180) zum Auslesen verwendet wird.

Die Diagnosedaten habe folgende Bedeutung:

Offset 0,1:

Bit 1:

Boot-Up-Message nicht empfangen oder fehlerhaft

Bit 2:

Emergency-Overflow

Bit 0, Bit 3-15:

 reserviert

Offset 2,3:

Bit 0-14:

TX-PDO (i+1) empfangen

Bit 15:

alle TX-PDOs 16-n empfangen

Offset 4,5:

Bit 0-4:

1: falsche TX-PDO-Länge

 

2: synchrone TX-PDO fehlt

 

3: Node meldet PRE-OPERATIONAL

 

4: Event-Timer bei einer TX-PDO abgelaufen

 

5: keine Antwort beim Guarden

 

6: mehrmals kein Toggeln beim Guarden

Bit 5-15:

zugehörige COB-ID

Offset 6:

Bit 0-7:

1: falscher Wert bei einem SDO-Upload

 

2: falsche Länge bei einem SDO-Upload

 

3: Abort bei einem SDO-Up-/Download

 

4: falsches Datum bei einer Boot-Up-Message

 

5: Timeout beim Warten auf Boot-Up-Message

Offset 7:

Bit 0-7:

2: falscher SDO-Command specifier

 

3: SDO-Toggle-Bit hat sich nicht geändert

 

4: SDO-Länge zu groß

 

5: SDO-Abort

 

6: SDO-Timeout

Offset 8,9

Bit 0-7:

Index des SDO-Up/Downloads

Offset 10:

Bit 0-7:

Subindex des SDO-Up/Downloads

Offset 11:

Bit 0-7:

reserviert

Offset 12:

Bit 0-7:

errorClass des Aborts

Offset 13:

Bit 0-7:

errorCode des Aborts

Offset 14,15:

Bit 0-15:

additionalCode des Aborts

Offset 16-19:

 

gelesener Wert (falls Offset 6 = 1)

Offset 20-23:

 

erwarteter Wert (falls Offset 6 = 1)

Offset 24-25:

 

Anzahl der folgenden Emergencies

Offset 26 - n:

 

Emergencies (jeweils 8 Byte)