Diagnose in der Applikation
ECU-Zustand
Der ECU-Zustand eines Geräts kann auf drei verschiedene Möglichkeiten in der Applikation abgefragt werden:
Eigenschaft
<Name im Gerätebaum>.State
(BibliothekIoDrvJ1939
)Methode
<Name im Gerätebaum>.GetDeviceState
(BibliothekCAA Device Diagnosis
)Die Methode liefert zwar keinen spezifischen J1939-Zustand zurück, jedoch die Information, ob das Gerät läuft oder nicht. Eine Mapping-Tabelle zwischen
ECUSTATE
undDEVICE_STATE
ist in der Bibliotheksdokumentation vonIoDrvJ1939
zu finden.
Für Remote ECUs:
Da das J1939-Protokoll keinen Überwachungsmechanismus definiert, wird standardmäßig ein Ausfall einer ECU nicht angezeigt. Sie können jedoch im J1939 ECU-Konfigurator den Watchdog für Kommunikation aktivieren und auf eine passende Überwachungszeit (Watchdog-Zeit) stellen. Wird in dieser Zeit keine Parametergruppe (muss im Konfigurator definiert sein) des Geräts empfangen, dann wird die ECU als nicht vorhanden betrachtet und dies entsprechend über die State-Eigenschaft signalisiert. Hierzu muss jedoch eine Parametergruppe im Konfigurator definiert sein. Im Handbuch des Geräts können Sie nachlesen, in welchem Intervall das Gerät Parametergruppen sendet, um die richtige Zeit einzustellen. Beispiel: Sendet eine ECU im 1s-Intervall eine PG, dann kann die Watchdog-Zeit auf >1s gestellt werden.
Diagnosemeldungen DM1 und DM2
Für DM1- und DM2-Nachrichten stehen in der Bibliothek IoDrvJ1939
Bausteine zum Empfangen (bei Remote-ECUs) aber auch Senden (bei lokalen ECUs) zur Verfügung.
DM1_Read
DM2_Read
DM1_Write
DM2_Write
Überwachung einer einzelnen Parametergruppe
Da der globale Kommunikations-Watchdog alle Parametergruppen eines Geräts überwacht, wird möglicherweise der Ausfall einer einzelnen Parametergruppe nicht erkannt. In diesen Fällen ist die Überwachung einzelner Parametergruppen sinnvoll. Mit dem Funktionsbaustein ReceiveWatchdog
können Sie überprüfen, ob die Parametergruppen regelmäßig empfangen werden. Der Funktionsbaustein benötigt als Eingang eine Instanz des Funktionsbausteins ReceiveParameterGroup
, dem die entsprechende zu überwachende PGN mitgeteilt wird.
Die Ausgänge des Funktionsbaustein ReceiveWatchdog
zeigen an, ob im aktuellen Zyklus die Parametergruppe empfangen wurde und ob ein Timeout vorliegt.
