Busstatus bzw. Controllerstatus abfragen

USB to CAN Interface
Post Reply
_Michael_
Posts: 3
Joined: Thu 9. Oct 2014, 10:25

Busstatus bzw. Controllerstatus abfragen

Post by _Michael_ » Thu 9. Oct 2014, 10:32

Hallo,

bietet die PCAN-Basic API eine Möglichkeit, den Busstatus bzw. den Status des CAN Bus Controllers abzufragen?
Ich möchte erkennen, ob am PCAN-USB Adapter ein Bus angeschlossen ist und ob Teilnehmer an diesem Bus aktiv sind.

Danke!

Michael

K.Wagner
Software Development
Software Development
Posts: 1082
Joined: Wed 22. Sep 2010, 13:36

Re: Busstatus bzw. Controllerstatus abfragen

Post by K.Wagner » Thu 9. Oct 2014, 12:06

Hallo,

PCAN-Basic bietet eine CAN_GetStatus Funktion. Dadurch können Sie den momentanen Bus-Zustand des CAN-Controllers eines verbundenen PCAN-Kanals ermitteln. Dies kann einer der folgenden Werte sein:
  • PCAN_ERROR_INITIALIZE: Nicht Verbunden.
  • PCAN_ERROR_BUSLIGHT: Fehlerzähler erreichte das 'Light'-Limit.
  • PCAN_ERROR_BUSHEAVY: Fehlerzähler erreichte das 'Heavy'-Limit.
  • PCAN_ERROR_BUSOFF: CAN-Controller ist Bus-OFF.
  • PCAN_ERROR_OK: Kanal verbunden, kein Fehler.
Wenn die Status anders als PCAN_ERROR_OK ist, so ist das ein Zeichen dafür, dass keine andere Teilnehmer an den Bus hängen oder dass Sie ein falsches Bit-Rate benutzen. Wenn die Status PCAN_ERROR_OK ist, dann müssen Sie die CAN Kommunikation prüfen, um festzustellen ob andere Teilnehmer an den Bus hängen:
  • Passiv: Listen-Only Modus setzen und Bus lauschen. Gibt Kommunkation, dann gibt andere Teilnehmer.
  • Aktiv: Nachricht sneden und erneut CAN_Status aufrufen. Wenn PCAN_ERROR_OK, dann andere Teilnehmer vorhanden.
Best regards,
Keneth

_Michael_
Posts: 3
Joined: Thu 9. Oct 2014, 10:25

Re: Busstatus bzw. Controllerstatus abfragen

Post by _Michael_ » Thu 9. Oct 2014, 12:59

Das Abfragen des Status mit CAN_GetStatus() liefert hier bei initialisiertem Kanal immer den Wert PCAN_ERROR_OK.
Der Status ändert sich auch nicht wenn der PCAN-USB-Adapter vom Bus abgezogen oder mein (einziger) Kommunikationspartner abgeschaltet wird.
Diese Verhalten ist unabhängig von der Funktion PCAN_BUSOFF_AUTORESET und auch unabhängig vom gesetzten Message Filter. Ich verwende Windows 7 (64 Bit).

Wie lange müsste es dauern bis ein Status ungleich PCAN_ERROR_OK gemeldet wird nachdem der CAN Bus abgezogen wurde?

User avatar
PEAK-Support
Sales & Support
Sales & Support
Posts: 1646
Joined: Fri 10. Sep 2010, 19:34

Re: Busstatus bzw. Controllerstatus abfragen

Post by PEAK-Support » Fri 10. Oct 2014, 12:01

Wenn sie das Kabel abziehen, und auf dem Bus nicht gesendet wird, bekommen Sie auch kein Fehler. Das sieht der CAN Controller ja nicht - nur wenn Ihre Applikation versuchen würde zu senden, bekommen Sie den Busfehler.
Die anderen Knoten sehen das überhaupt nicht das Ihr CAN USB Gerät vom Bus weg ist - außer es war der einzige Teilnehmer, so das nur noch ein Knoten aktiv am Bus ist - dann bekommt der verbliebene Teilnehmer beim Versuch zu senden ebenfalls Fehler (kein ACK).
--------------------------------
PEAK-System Technik
Technical Support Team
support[at]peak-system.com
-------------------------------

_Michael_
Posts: 3
Joined: Thu 9. Oct 2014, 10:25

Re: Busstatus bzw. Controllerstatus abfragen

Post by _Michael_ » Fri 10. Oct 2014, 12:22

Ok, jetzt wird die Sache klarer 8-)
Danke!

Post Reply