Skip to main content

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 (Bibliothek IoDrvJ1939)

  • Methode <Name im Gerätebaum>.GetDeviceState (Bibliothek CAA 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 und DEVICE_STATE ist in der Bibliotheksdokumentation von IoDrvJ1939 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.

_can_img_diagnosis_j1939_parametergroup.png