Zum Hauptinhalt springen

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.

batMON States

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

ParameternameErforderlichDatentypsinnvoller WertebereichDefaultBeschreibung
priorityNeinINT1 ... 9980Scheduling Priorität der CAN-Bus Schnittstelle
timeoutMsNeinINT1 ...1000Intervall zwischen periodisch ausgeführten Anteilen des Moduls
readBufferSizeNeinINT1 ...8192Anzahl gepufferter CAN-Bus Botschaften (Leserichtung)
writeBufferSizeNeinINT1 ...8192Anzahl gepufferter CAN-Bus Botschaften (Schreibrichtung)
canInterfaceNeinSTRING"can0", "can1", ..."can1"CAN-Bus-Schnittstelle
fileNameNeinSTRINGgültige OSF Pfadschablone"/sde/<tag>/<date>/<date>_<time>.osf"Historische OSF Datei
fileTagNeinSTRING"preview"Tag Attribute der historischen OSF Datei
measurementTimeChannelNameNeinSTRING"<module>.Parameter.MeasurementTime"Kanal mit eingestelltem Messintervall Parameter
shutDownTimeChannelNameNeinSTRING"<module>.Parameter.ShutDownTime"Kanal mit eingestelltem Herunterfahrzeit Parameter
bootTimeChannelNameNeinSTRING"<module>.Parameter.BootTime"Kanal mit eingestelltem Bootzeit Parameter
wakeUpTimeChannelNameNeinSTRING"<module>.Parameter.WakeUpTime"Kanal mit eingestelltem Aufwachzeit Parameter
voltageDropDelayTimeChannelNameNeinSTRING"<module>.Parameter.VoltageDropDelayTime"Kanal mit eingestelltem Parameter der Spannungseinbruchstoleranzzeit
vAlwaysOffChannelNameNeinSTRING"<module>.Parameter.VAlwaysOff"Kanal mit eingestelltem Parameter der unteren Schaltschwelle
vAlwaysOnChannelNameNeinSTRING"<module>.Parameter.VAlwaysOn"Kanal mit eingestelltem Parameter der oberen Schaltschwelle
powerSupplyVoltageChannelNameNeinSTRING"<module>.PowerSupplyVoltage"Versorgungsspannung (U_Sup)
powerSupplyCurrentChannelNameNeinSTRING"<module>.PowerSupplyCurrent"Versorgungsstromstärke (I_Sup)
temperatureMOSFETChannelNameNeinSTRING"<module>.TemperatureMOSFET"Temperatur des MOSFET (T_MOS)
temperatureChannelNameNeinSTRING"<module>.Temperature"Temperatur des batMON (T_bM)
resistanceChannelNameNeinSTRING"<module>.Resistance"Widerstand des batMON (R_bM)
operatingModeChannelNameNeinSTRING"<module>.PluginState"batMON Plugin-Zustand (roher Statemachine-Wert)
configurationErrorChannelNameNeinSTRING"<module>.ConfigurationError"batMON Konfigurationsfehler
batteryStatusChannelNameNeinSTRING"<module>."BatteryStatus"batMON Batteriestatus
terminal15StatusChannelNameNeinSTRING"<module>.Terminal15Status"batMON Status der Klemme 15
shutDownCounterChannelNameNeinSTRING"<module>.ShutDownCounter"batMON Countdown innerhalb dessen das Herunterfahren abgeschlossen sein muss
bootCounterChannelNameNeinSTRING"<module>.BootCounter"batMON Countdown innerhalb dessen der Systemstart abgeschlossen sein muss
wakeUpEventChannelNameNeinSTRING"<module>.WakeUpEvent"batMON Aufwachereignis
requestEnergySaveChannelNameNeinSTRING"<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
aboutToShutDownChannelNameNeinSTRING"<module>.AboutToShutDown"BOOLescher batMON Kanal zur Benachrichtigung über das baldige Herunterfahren
criticalPowerStateChannelNameNeinSTRING"<module>.CriticalPowerState"BOOLescher batMON Kanal zur Benachrichtigung über einen kritischen Spannungszustand
lowPowerStateChannelNameNeinSTRING"<module>.LowPowerState"BOOLescher batMON Kanal zur Benachrichtigung über einen niedrigen Spannungszustand
firmwareVersionsChannelNameNeinSTRING"<module>.FirmwareVersion"STRING Kanal mit FW und PIC FW Versionsinformationen
wakeUpTimeNeinINT600 ... 72003600batMON Aufwachzeit [s]
measurementTimeNeinINT30 ... 30060batMON Messintervall [s]
shutDownTimeNeinINT30 ... 12090batMON Herunterfahrzeit [s]
bootTimeNeinINT60 ... 120900batMON Bootzeit [s]
voltageDropDelayTimeNeinINT10batMON Spannungseinbruchstoleranzzeit [s]
voltageAlwaysOnMVNeinINT(voltageAlwaysOffMV + 2000) ... 15000023000batMON Einschaltschwelle Dauerbetrieb [mV]
voltageAlwaysOffMVNeinINT18500 ... (voltageAlwaysOnMV - 2000)20500batMON Ausschaltschwelle [mV]
canIdValues123NeinINTgültige/eindeutige CAN ID120batMON CAN-Bus ID für Botschaft (U_Sup,I_Sup,T_MOS)
canIdValues456NeinINTgültige/eindeutige CAN ID121batMON CAN-Bus ID für Botschaft (T_bM)
canIdStatusNeinINTgültige/eindeutige CAN ID125batMON CAN-Bus ID für Stautsbotschaft
canIdSetRtcRXDNeinINTgültige/eindeutige CAN ID10batMON CAN-Bus ID für das Setzen der RTC
canIdSetRtcTXDNein/VerworfenINTgültige/eindeutige CAN ID11batMON CAN-Bus ID für das Setzen der RTC (Quittierung)
canIdParameter1NeinINTgültige/eindeutige CAN ID130batMON CAN-Bus ID für das erste Parameter Report Frame
canIdParameter2NeinINTgültige/eindeutige CAN ID131batMON CAN-Bus ID für das zweite Parameter Report Frame
canIdParameter3NeinINTgültige/eindeutige CAN ID132batMON CAN-Bus ID für das dritte Parameter Report Frame

Parameter Enums

Plugin-Zustand (OperatingMode)

WertEnumZustand
0bsInitInitialisierung
1bsBootHochfahren
2bsBootInternComHochfahren: interne Kommunikation
3bsSynchronizeRtcHochfahren: RTC synchronisieren
4bsGetFirmwareVersionHochfahren: Firmware-Version lesen
5bsGetHistoryHochfahren: historische Daten laden
6bsGetParameterHochfahren: Parameter lesen
7bsUpdateParameterHochfahren: Parameter schreiben
8bsWakeupAufwachen
9bsRunningNormalbetrieb
10bsCmdShutdownNormalbetrieb: Herunterfahrbefehl verarbeiten
11bsResynchronizeRtcNormalbetrieb: RTC re-synchronisieren
12bsNotifyShutDownHerunterfahren ankündigen
13bsAboutToShutDownHerunterfahren eingeleitet
14bsPostponeShutDownHerunterfahren verzögert
15bsShutdownHerunterfahren

batMON smartIO Gerätestatus

WertBedeutung
0initial nach einem Kaltstart / Reset
1Standby (Überwachung Ruhezustandstimer, Spannungen, Klemme 15, ...)
2Eingeschaltet (MOSFET eingeschaltet, Überwachung der Eingangsspannung
3Systemstart (Warten auf Hochfahren des Systems)
4Überwachung (Warten auf Herunterfahr-Bedingung des Systems)
5Ausschalten (Warten auf Ausschalten des Systems)
6Ausgeschaltet (MOSFET ausgeschaltet, Kondensatoren werden entladen)

Konfigurationsfehler

WertEnumBedeutung
-3VoltageAlwaysOnTooHighvoltageAlwaysOnMV zu hoch
-2VoltageAlwaysOnTooLowvoltageAlwaysOnMV zu niedrig
-1VoltageAlwaysOffTooLowvoltageAlwaysOffMV zu niedrig
0OKOK
1WrongMeasurementTimefalsche measurementTime
2WrongShutdownTimefalsche shutDownTime
3WrongBootTimefalsche bootTime
4WrongWakeUpTimefalsche wakeUpTime
5WrongVAlwaysOnfalsche voltageAlwaysOnMV
6WrongVAlwaysOfffalsche voltageAlwaysOffMV
7WrongVoltageDropDelayTimefalsche voltageDropDelayTime

Batteriestatus

WertBedeutung
0unbekannt
1permanent eingeschaltet
2Energiesparmodus
3permanent ausgeschaltet
4permanent ausgeschaltet (unterhalb Netzteil-Einschaltspannung)

Status der Klemme 15

WertBedeutung
0unbekannt/nicht vorhanden
1Einschaltflanke
2Ausschaltflanke

Aufwachereignis

WertEnumBedeutungfolgende Betriebsart
0eWakeUp_nonekein Ereignisundefiniert
1eWakeUp_KL15_ONKlemme 15 EinschaltflankeAbholung historischer Daten + Dauerbetrieb
2eWakeUp_Ubatt_Always_OFFU_batt unter Always-OFF-SchwelleAlarmierung + Herunterfahren
3eWakeUp_Ubatt_Always_ONU_batt über Always-ON-SchwelleAbholung historischer Daten + Dauerbetrieb
4eWakeUp_Ubatt_TimerPeriodisches Aufwachen im Energiesparmodus (Timer)Abholung historischer Daten + Energiesparmodus
5eWakeUp_Ubatt_LowPower(veraltet)Abholung historischer Daten + Energiesparmodus
6eWakeUp_CAN_TimerAufgewacht nach aktiv per CAN angefordertem SchlafAbholung historischer Daten + Dauerbetrieb

Herunterfahr-Ereignis

WertEnumBedeutungBeschreibung
0eShutdown_nonekeinkein Ereignis
1eShutdown_KL15Klemme 15Herunterfahren über Klemme 15 (z.B. Zündschlüssel)
2eShutdown_Ubatt_Always_OFFU_batt unter Always-OFF-SchwelleHerunterfahren, da U_batt den Always-OFF-Schwellwert unterschritten hat
3eShutdown_CANCAN-Bus-BotschaftHerunterfahren aufgrund einer CAN-Bus-Botschaft
4eShutdown_OverCurrentÜberstrom (Fehler)Herunterfahren aufgrund überschrittener Stromstärke
5eShutdown_OverTemperatureÜbertemperatur (Fehler)Herunterfahren aufgrund überschrittener Temperatur
6–8RESERVIERT
9eShutdown_MOSFET_FailureMOSFET-Versagen (Fehler)Herunterfahren aufgrund eines Versagens des MOSFETs
10ePowerOff_KL15_Ubatt_Always_OFFKlemme 15 und Always-OFF-SchwelleHerunterfahren, da U_batt den Always-OFF-Schwellwert unterschritten hat (Klemme 15 vorhanden)
11ePowerOff_ECO_ModeEco-ModusHerunterfahren nach Messung, U_batt unterhalb Always-ON-Schwelle
12ePowerOff_Underrange_IntrexisUnterschreitungUnterschreitung der MOSFET-Einschaltspannung
15eShutdown_Unknownunbekanntunbekanntes Herunterfahr-Ereignis

Call-Interface Funktionen

requestDelayedShutdown

Funktion für die Verzögerung des Herunterfahrens

ParamterTypBeschreibung
senderSTRINGEindeutige Senderkennung (z.B. Modulinstanz)
delayINTVerzögerung [ms] < 64k

Modul-Informationen

InformationWert
AutoroptiMEAS GmbH
seit smartCORE0.101
ModultypProduzent & Konsument (request energy save)
Abhängigkeiten"canbus" bzw. "candbc" smartMODULE (auf smartDEVICES), funktionierendes CAN-Bus Interface (auf übrigen Plattformen)