batMON smartCORE Modul
Beschreibung
Das batmon Modul stellt die Schnittstelle der smartIO batMON Batterieüberwachung zum smartCORE hin dar. Hierbei werden diverse Batterieparameter
- im Fall eines laufenden Systems in Form von Livedaten in smartCHANNELS geschrieben
- während der Ruhephase des Systems als historische Daten erfasst und während der Einschaltphase des Systems vom batMON heruntergeladen sowie in einer hierfür vorgesehenen Datei abgelegt.
Betriebszustände
Folgendes Diagramm soll die Betriebszustände des batMON veranschaulichen.

Verwendete Schnittstellen & Protokolle
- CAN-Bus
- OSF Format
JSON-Konfiguration
Im folgenden Abschnitt soll die gesamte JSON-Konfiguration des Moduls beschrieben und die einzelnen Parameter erläutert werden.
Beispielkonfiguration (minimal)
{
"module":"Batmon",
"factory":"batmon",
"config":{}
}
Beispielkonfiguration (maximal)
{
"module":"Batmon",
"factory":"batmon",
"config":{
"priority":80,
"timeoutMs":1000,
"readBufferSize":8192,
"writeBufferSize":8192,
"canInterface":"can1",
"fileName":"/sde/<tag>/<date>/<date>_<time>.osf",
"fileTag":"preview",
"measurementTimeChannelName":"Batmon.Parameter.MeasurementTime",
"shutDownTimeChannelName":"Batmon.Parameter.ShutDownTime",
"bootTimeChannelName":"Batmon.Parameter.BootTime",
"wakeUpTimeChannelName":"Batmon.Parameter.WakeUpTime",
"voltageDropDelayTimeChannelName":"Batmon.Parameter.VoltageDropDelayTime",
"vAlwaysOffChannelName":"Batmon.Parameter.VAlwaysOff",
"vAlwaysOnChannelName":"Batmon.Parameter.VAlwaysOn",
"powerSupplyVoltageChannelName":"Batmon.PowerSupplyVoltage",
"powerSupplyCurrentChannelName":"Batmon.PowerSupplyCurrent",
"temperatureMOSFETChannelName":"Batmon.TemperatureMOSFET",
"temperatureChannelName":"Batmon.Temperature",
"resistanceChannelName":"Batmon.Resistance",
"operatingModeChannelName":"Batmon.PluginState",
"configurationErrorChannelName":"Batmon.ConfigurationError",
"batteryStatusChannelName":"Batmon.BatteryStatus",
"terminal15StatusChannelName":"Batmon.Terminal15Status",
"shutDownCounterChannelName":"Batmon.ShutDownCounter",
"bootCounterChannelName":"Batmon.BootCounter",
"wakeUpEventChannelName":"Batmon.WakeUpEvent",
"shutDownEventChannelName":"Batmon.ShutDownEvent",
"requestEnergySaveChannelName":"Batmon.RequestEnergySave",
"aboutToShutDownChannelName":"Batmon.AboutToShutDown",
"criticalPowerStateChannelName":"Batmon.CriticalPowerState",
"lowPowerStateChannelName":"Batmon.LowPowerState",
"firmwareVersionsChannelName":"firmwareVersions",
"wakeUpTime":3600,
"measurementTime":60,
"shutDownTime":90,
"bootTime":900,
"voltageDropDelayTime":10,
"voltageAlwaysOnMV":23000,
"voltageAlwaysOffMV":20500,
"canIdValues123":120,
"canIdValues456":121,
"canIdStatus":125,
"canIdSetRtcRXD":10,
"canIdSetRtcTXD":11,
"canIdRXD":128,
"canIdTXD":129,
"canIdParameter1":130,
"canIdParameter2":131,
"canIdParameter3":132
}
}
Parameter-Liste
| Parametername | Erforderlich | Datentyp | sinnvoller Wertebereich | Default | Beschreibung |
|---|---|---|---|---|---|
| priority | Nein | INT | 1 ... 99 | 80 | Scheduling Priorität der CAN-Bus Schnittstelle |
| timeoutMs | Nein | INT | 1 ... | 1000 | Intervall zwischen periodisch ausgeführten Anteilen des Moduls |
| readBufferSize | Nein | INT | 1 ... | 8192 | Anzahl gepufferter CAN-Bus Botschaften (Leserichtung) |
| writeBufferSize | Nein | INT | 1 ... | 8192 | Anzahl gepufferter CAN-Bus Botschaften (Schreibrichtung) |
| canInterface | Nein | STRING | "can0", "can1", ... | "can1" | CAN-Bus-Schnittstelle |
| fileName | Nein | STRING | gültige OSF Pfadschablone | "/sde/<tag>/<date>/<date>_<time>.osf" | Historische OSF Datei |
| fileTag | Nein | STRING | "preview" | Tag Attribute der historischen OSF Datei | |
| measurementTimeChannelName | Nein | STRING | "<module>.Parameter.MeasurementTime" | Kanal mit eingestelltem Messintervall Parameter | |
| shutDownTimeChannelName | Nein | STRING | "<module>.Parameter.ShutDownTime" | Kanal mit eingestelltem Herunterfahrzeit Parameter | |
| bootTimeChannelName | Nein | STRING | "<module>.Parameter.BootTime" | Kanal mit eingestelltem Bootzeit Parameter | |
| wakeUpTimeChannelName | Nein | STRING | "<module>.Parameter.WakeUpTime" | Kanal mit eingestelltem Aufwachzeit Parameter | |
| voltageDropDelayTimeChannelName | Nein | STRING | "<module>.Parameter.VoltageDropDelayTime" | Kanal mit eingestelltem Parameter der Spannungseinbruchstoleranzzeit | |
| vAlwaysOffChannelName | Nein | STRING | "<module>.Parameter.VAlwaysOff" | Kanal mit eingestelltem Parameter der unteren Schaltschwelle | |
| vAlwaysOnChannelName | Nein | STRING | "<module>.Parameter.VAlwaysOn" | Kanal mit eingestelltem Parameter der oberen Schaltschwelle | |
| powerSupplyVoltageChannelName | Nein | STRING | "<module>.PowerSupplyVoltage" | Versorgungsspannung (U_Sup) | |
| powerSupplyCurrentChannelName | Nein | STRING | "<module>.PowerSupplyCurrent" | Versorgungsstromstärke (I_Sup) | |
| temperatureMOSFETChannelName | Nein | STRING | "<module>.TemperatureMOSFET" | Temperatur des MOSFET (T_MOS) | |
| temperatureChannelName | Nein | STRING | "<module>.Temperature" | Temperatur des batMON (T_bM) | |
| resistanceChannelName | Nein | STRING | "<module>.Resistance" | Widerstand des batMON (R_bM) | |
| operatingModeChannelName | Nein | STRING | "<module>.PluginState" | batMON Plugin-Zustand (roher Statemachine-Wert) | |
| configurationErrorChannelName | Nein | STRING | "<module>.ConfigurationError" | batMON Konfigurationsfehler | |
| batteryStatusChannelName | Nein | STRING | "<module>."BatteryStatus" | batMON Batteriestatus | |
| terminal15StatusChannelName | Nein | STRING | "<module>.Terminal15Status" | batMON Status der Klemme 15 | |
| shutDownCounterChannelName | Nein | STRING | "<module>.ShutDownCounter" | batMON Countdown innerhalb dessen das Herunterfahren abgeschlossen sein muss | |
| bootCounterChannelName | Nein | STRING | "<module>.BootCounter" | batMON Countdown innerhalb dessen der Systemstart abgeschlossen sein muss | |
| wakeUpEventChannelName | Nein | STRING | "<module>.WakeUpEvent" | batMON Aufwachereignis | |
| requestEnergySaveChannelName | Nein | STRING | "<module>.RequestEnergySave" | BOOL-Latch: wird gesetzt, sobald seit Modulstart mindestens einmal Energiesparen angefordert wurde (ECO-Modus, KL15-Abschaltflanke im AlwaysOn-Betrieb oder bestätigter Herunterfahrbefehl); Reset nur beim Modul-Neustart | |
| aboutToShutDownChannelName | Nein | STRING | "<module>.AboutToShutDown" | BOOLescher batMON Kanal zur Benachrichtigung über das baldige Herunterfahren | |
| criticalPowerStateChannelName | Nein | STRING | "<module>.CriticalPowerState" | BOOLescher batMON Kanal zur Benachrichtigung über einen kritischen Spannungszustand | |
| lowPowerStateChannelName | Nein | STRING | "<module>.LowPowerState" | BOOLescher batMON Kanal zur Benachrichtigung über einen niedrigen Spannungszustand | |
| firmwareVersionsChannelName | Nein | STRING | "<module>.FirmwareVersion" | STRING Kanal mit FW und PIC FW Versionsinformationen | |
| wakeUpTime | Nein | INT | 600 ... 7200 | 3600 | batMON Aufwachzeit [s] |
| measurementTime | Nein | INT | 30 ... 300 | 60 | batMON Messintervall [s] |
| shutDownTime | Nein | INT | 30 ... 120 | 90 | batMON Herunterfahrzeit [s] |
| bootTime | Nein | INT | 60 ... 120 | 900 | batMON Bootzeit [s] |
| voltageDropDelayTime | Nein | INT | 10 | batMON Spannungseinbruchstoleranzzeit [s] | |
| voltageAlwaysOnMV | Nein | INT | (voltageAlwaysOffMV + 2000) ... 150000 | 23000 | batMON Einschaltschwelle Dauerbetrieb [mV] |
| voltageAlwaysOffMV | Nein | INT | 18500 ... (voltageAlwaysOnMV - 2000) | 20500 | batMON Ausschaltschwelle [mV] |
| canIdValues123 | Nein | INT | gültige/eindeutige CAN ID | 120 | batMON CAN-Bus ID für Botschaft (U_Sup,I_Sup,T_MOS) |
| canIdValues456 | Nein | INT | gültige/eindeutige CAN ID | 121 | batMON CAN-Bus ID für Botschaft (T_bM) |
| canIdStatus | Nein | INT | gültige/eindeutige CAN ID | 125 | batMON CAN-Bus ID für Stautsbotschaft |
| canIdSetRtcRXD | Nein | INT | gültige/eindeutige CAN ID | 10 | batMON CAN-Bus ID für das Setzen der RTC |
| canIdSetRtcTXD | Nein/Verworfen | INT | gültige/eindeutige CAN ID | 11 | batMON CAN-Bus ID für das Setzen der RTC (Quittierung) |
| canIdParameter1 | Nein | INT | gültige/eindeutige CAN ID | 130 | batMON CAN-Bus ID für das erste Parameter Report Frame |
| canIdParameter2 | Nein | INT | gültige/eindeutige CAN ID | 131 | batMON CAN-Bus ID für das zweite Parameter Report Frame |
| canIdParameter3 | Nein | INT | gültige/eindeutige CAN ID | 132 | batMON CAN-Bus ID für das dritte Parameter Report Frame |
Parameter Enums
Plugin-Zustand (OperatingMode)
| Wert | Enum | Zustand |
|---|---|---|
| 0 | bsInit | Initialisierung |
| 1 | bsBoot | Hochfahren |
| 2 | bsBootInternCom | Hochfahren: interne Kommunikation |
| 3 | bsSynchronizeRtc | Hochfahren: RTC synchronisieren |
| 4 | bsGetFirmwareVersion | Hochfahren: Firmware-Version lesen |
| 5 | bsGetHistory | Hochfahren: historische Daten laden |
| 6 | bsGetParameter | Hochfahren: Parameter lesen |
| 7 | bsUpdateParameter | Hochfahren: Parameter schreiben |
| 8 | bsWakeup | Aufwachen |
| 9 | bsRunning | Normalbetrieb |
| 10 | bsCmdShutdown | Normalbetrieb: Herunterfahrbefehl verarbeiten |
| 11 | bsResynchronizeRtc | Normalbetrieb: RTC re-synchronisieren |
| 12 | bsNotifyShutDown | Herunterfahren ankündigen |
| 13 | bsAboutToShutDown | Herunterfahren eingeleitet |
| 14 | bsPostponeShutDown | Herunterfahren verzögert |
| 15 | bsShutdown | Herunterfahren |
batMON smartIO Gerätestatus
| Wert | Bedeutung |
|---|---|
| 0 | initial nach einem Kaltstart / Reset |
| 1 | Standby (Überwachung Ruhezustandstimer, Spannungen, Klemme 15, ...) |
| 2 | Eingeschaltet (MOSFET eingeschaltet, Überwachung der Eingangsspannung |
| 3 | Systemstart (Warten auf Hochfahren des Systems) |
| 4 | Überwachung (Warten auf Herunterfahr-Bedingung des Systems) |
| 5 | Ausschalten (Warten auf Ausschalten des Systems) |
| 6 | Ausgeschaltet (MOSFET ausgeschaltet, Kondensatoren werden entladen) |
Konfigurationsfehler
| Wert | Enum | Bedeutung |
|---|---|---|
| -3 | VoltageAlwaysOnTooHigh | voltageAlwaysOnMV zu hoch |
| -2 | VoltageAlwaysOnTooLow | voltageAlwaysOnMV zu niedrig |
| -1 | VoltageAlwaysOffTooLow | voltageAlwaysOffMV zu niedrig |
| 0 | OK | OK |
| 1 | WrongMeasurementTime | falsche measurementTime |
| 2 | WrongShutdownTime | falsche shutDownTime |
| 3 | WrongBootTime | falsche bootTime |
| 4 | WrongWakeUpTime | falsche wakeUpTime |
| 5 | WrongVAlwaysOn | falsche voltageAlwaysOnMV |
| 6 | WrongVAlwaysOff | falsche voltageAlwaysOffMV |
| 7 | WrongVoltageDropDelayTime | falsche voltageDropDelayTime |
Batteriestatus
| Wert | Bedeutung |
|---|---|
| 0 | unbekannt |
| 1 | permanent eingeschaltet |
| 2 | Energiesparmodus |
| 3 | permanent ausgeschaltet |
| 4 | permanent ausgeschaltet (unterhalb Netzteil-Einschaltspannung) |
Status der Klemme 15
| Wert | Bedeutung |
|---|---|
| 0 | unbekannt/nicht vorhanden |
| 1 | Einschaltflanke |
| 2 | Ausschaltflanke |
Aufwachereignis
| Wert | Enum | Bedeutung | folgende Betriebsart |
|---|---|---|---|
| 0 | eWakeUp_none | kein Ereignis | undefiniert |
| 1 | eWakeUp_KL15_ON | Klemme 15 Einschaltflanke | Abholung historischer Daten + Dauerbetrieb |
| 2 | eWakeUp_Ubatt_Always_OFF | U_batt unter Always-OFF-Schwelle | Alarmierung + Herunterfahren |
| 3 | eWakeUp_Ubatt_Always_ON | U_batt über Always-ON-Schwelle | Abholung historischer Daten + Dauerbetrieb |
| 4 | eWakeUp_Ubatt_Timer | Periodisches Aufwachen im Energiesparmodus (Timer) | Abholung historischer Daten + Energiesparmodus |
| 5 | eWakeUp_Ubatt_LowPower | (veraltet) | Abholung historischer Daten + Energiesparmodus |
| 6 | eWakeUp_CAN_Timer | Aufgewacht nach aktiv per CAN angefordertem Schlaf | Abholung historischer Daten + Dauerbetrieb |
Herunterfahr-Ereignis
| Wert | Enum | Bedeutung | Beschreibung |
|---|---|---|---|
| 0 | eShutdown_none | kein | kein Ereignis |
| 1 | eShutdown_KL15 | Klemme 15 | Herunterfahren über Klemme 15 (z.B. Zündschlüssel) |
| 2 | eShutdown_Ubatt_Always_OFF | U_batt unter Always-OFF-Schwelle | Herunterfahren, da U_batt den Always-OFF-Schwellwert unterschritten hat |
| 3 | eShutdown_CAN | CAN-Bus-Botschaft | Herunterfahren aufgrund einer CAN-Bus-Botschaft |
| 4 | eShutdown_OverCurrent | Überstrom (Fehler) | Herunterfahren aufgrund überschrittener Stromstärke |
| 5 | eShutdown_OverTemperature | Übertemperatur (Fehler) | Herunterfahren aufgrund überschrittener Temperatur |
| 6–8 | — | RESERVIERT | |
| 9 | eShutdown_MOSFET_Failure | MOSFET-Versagen (Fehler) | Herunterfahren aufgrund eines Versagens des MOSFETs |
| 10 | ePowerOff_KL15_Ubatt_Always_OFF | Klemme 15 und Always-OFF-Schwelle | Herunterfahren, da U_batt den Always-OFF-Schwellwert unterschritten hat (Klemme 15 vorhanden) |
| 11 | ePowerOff_ECO_Mode | Eco-Modus | Herunterfahren nach Messung, U_batt unterhalb Always-ON-Schwelle |
| 12 | ePowerOff_Underrange_Intrexis | Unterschreitung | Unterschreitung der MOSFET-Einschaltspannung |
| 15 | eShutdown_Unknown | unbekannt | unbekanntes Herunterfahr-Ereignis |
Call-Interface Funktionen
requestDelayedShutdown
Funktion für die Verzögerung des Herunterfahrens
| Paramter | Typ | Beschreibung |
|---|---|---|
| sender | STRING | Eindeutige Senderkennung (z.B. Modulinstanz) |
| delay | INT | Verzögerung [ms] < 64k |
Modul-Informationen
| Information | Wert |
|---|---|
| Autor | optiMEAS GmbH |
| seit smartCORE | 0.101 |
| Modultyp | Produzent & Konsument (request energy save) |
| Abhängigkeiten | "canbus" bzw. "candbc" smartMODULE (auf smartDEVICES), funktionierendes CAN-Bus Interface (auf übrigen Plattformen) |