FC510x - PCI-Karten für CANopen

Diagnose Busknoten

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

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.

Eingangsvariable Node State
 

Node-State (Box-State)

 
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
FC510x Bus-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 FC510x anzugeben. 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)