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–8—RESERVIERT
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)