Download Original-Programmierhandbuch ExtendedSafetyController

Transcript
ifm Programmierhandbuch ecomatmobile SafetyController (CR7132) Laufzeitsystem V01.00.05
Fehler-Codes und Diagnoseinformationen
2014-12-16
CAN / CANopen: Fehler und Fehlerbehandlung
>
7.6.1
CAN-Fehler
8589
>
Fehlertelegramm
1172
Erkennt ein Busteilnehmer eine Fehlerbedingung, so sendet er sofort ein Fehlertelegramm und
veranlasst damit den Abbruch der Übertragung bzw. das Verwerfen der von anderen Teilnehmern
schon empfangenen fehlerfreien Nachrichten. Dadurch wird sichergestellt, dass allen Teilnehmern
fehlerfreie und einheitliche Daten zur Verfügung stehen. Da das Fehlertelegramm unmittelbar
übertragen wird, kann im Gegensatz zu anderen Feldbussystemen (diese warten eine festgelegte
Quittierungszeit ab) sofort mit der Wiederholung der gestörten Nachricht durch den Absender
begonnen werden. Dies ist eines der wichtigsten Merkmale von CAN.
Eine der grundsätzlichen Problematiken der seriellen Datenübertragung ist, dass ein dauerhaft
gestörter oder defekter Busteilnehmer das gesamte System blockieren kann. Gerade die
Fehlerbehandlung bei CAN würde solche Gefahr fördern. Um diesen Fall auszuschließen, ist ein
Mechanismus erforderlich, welcher den Defekt eines Teilnehmers erkennt und diesen Teilnehmer
gegebenenfalls vom Bus abschaltet.
>
Fehlerzähler
1173
Dazu sind im CAN-Controller ein Sende- und ein Empfangsfehlerzähler enthalten. Diese werden bei
jedem fehlerhaften Sende- oder Empfangsvorgang heraufgezählt (inkrementiert). War eine
Übertragung fehlerfrei, werden diese Zähler wieder heruntergezählt (dekrementiert).
Die Fehlerzähler werden jedoch im Fehlerfall stärker inkrementiert, als sie im Erfolgsfalle
dekrementiert werden. Über eine bestimmte Zeitspanne kann dies zu einem merklichen Anstieg der
Zählerstände führen, selbst wenn die Anzahl der ungestörten Nachrichten größer ist, als die Anzahl
der gestörten Nachrichten. Längere fehlerfreie Zeitspannen bauen die Zählerstände langsam wieder
ab. Die Zählerstände sind somit ein Maß für die relative Häufigkeit von gestörten Nachrichten.
Werden Fehler von einem Teilnehmer selbst als erster erkannt (= selbstverschuldete Fehler), wird bei
diesem Teilnehmer der Fehler stärker "bestraft" als bei den anderen Busteilnehmern. Dazu wird der
Zähler um einen höheren Betrag inkrementiert.
Übersteigt nun der Zählerstand eines Teilnehmers einen bestimmten Wert, kann davon ausgegangen
werden, dass dieser Teilnehmer defekt ist. Damit dieser Teilnehmer den folgenden Busverkehr nicht
weiter durch aktive Fehlermeldungen (error active) stört, wird er "fehlerpassiv" geschaltet (error
passiv).
error active
→ Teilnehmer fehleraktiv (→ Seite 411)
error passive
→ Teilnehmer fehlerpassiv (→ Seite 411)
bus off
→ Teilnehmer bus-off (→ Seite 411)
CAN Restart
→ Teilnehmer bus-off
Grafik: Mechanismus des Fehlerzählers
410