Modulo smartCORE batMON
Descrizione
Il modulo batmon rappresenta l'interfaccia del monitoraggio batteria smartIO batMON verso lo smartCORE. In questo modo diversi parametri della batteria
- a sistema in funzione vengono scritti in smartCHANNELS sotto forma di dati live
- durante la fase di riposo del sistema vengono acquisiti come dati storici e, durante la fase di accensione del sistema, scaricati dal batMON e salvati in un apposito file.
Stati operativi
Il diagramma seguente illustra gli stati operativi del batMON.

Interfacce e protocolli utilizzati
- CAN bus
- Formato OSF
Configurazione JSON
Nella sezione seguente viene descritta l'intera configurazione JSON del modulo e vengono illustrati i singoli parametri.
Configurazione di esempio (minima)
{
"module":"Batmon",
"factory":"batmon",
"config":{}
}
Configurazione di esempio (massima)
{
"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
}
}
Elenco dei parametri
| Nome parametro | Obbligatorio | Tipo di dati | Intervallo di valori sensato | Default | Descrizione |
|---|---|---|---|---|---|
| priority | No | INT | 1 ... 99 | 80 | Priorità di scheduling dell'interfaccia CAN bus |
| timeoutMs | No | INT | 1 ... | 1000 | Intervallo tra le parti del modulo eseguite periodicamente |
| readBufferSize | No | INT | 1 ... | 8192 | Numero di messaggi CAN bus in buffer (direzione di lettura) |
| writeBufferSize | No | INT | 1 ... | 8192 | Numero di messaggi CAN bus in buffer (direzione di scrittura) |
| canInterface | No | STRING | "can0", "can1", ... | "can1" | Interfaccia CAN bus |
| fileName | No | STRING | modello di percorso OSF valido | "/sde/<tag>/<date>/<date>_<time>.osf" | File OSF storico |
| fileTag | No | STRING | "preview" | Attributo tag del file OSF storico | |
| measurementTimeChannelName | No | STRING | "<module>.Parameter.MeasurementTime" | Canale con il parametro impostato dell'intervallo di misura | |
| shutDownTimeChannelName | No | STRING | "<module>.Parameter.ShutDownTime" | Canale con il parametro impostato del tempo di arresto | |
| bootTimeChannelName | No | STRING | "<module>.Parameter.BootTime" | Canale con il parametro impostato del tempo di boot | |
| wakeUpTimeChannelName | No | STRING | "<module>.Parameter.WakeUpTime" | Canale con il parametro impostato del tempo di riattivazione | |
| voltageDropDelayTimeChannelName | No | STRING | "<module>.Parameter.VoltageDropDelayTime" | Canale con il parametro impostato del tempo di tolleranza per cali di tensione | |
| vAlwaysOffChannelName | No | STRING | "<module>.Parameter.VAlwaysOff" | Canale con il parametro impostato della soglia di commutazione inferiore | |
| vAlwaysOnChannelName | No | STRING | "<module>.Parameter.VAlwaysOn" | Canale con il parametro impostato della soglia di commutazione superiore | |
| powerSupplyVoltageChannelName | No | STRING | "<module>.PowerSupplyVoltage" | Tensione di alimentazione (U_Sup) | |
| powerSupplyCurrentChannelName | No | STRING | "<module>.PowerSupplyCurrent" | Corrente di alimentazione (I_Sup) | |
| temperatureMOSFETChannelName | No | STRING | "<module>.TemperatureMOSFET" | Temperatura del MOSFET (T_MOS) | |
| temperatureChannelName | No | STRING | "<module>.Temperature" | Temperatura del batMON (T_bM) | |
| resistanceChannelName | No | STRING | "<module>.Resistance" | Resistenza del batMON (R_bM) | |
| operatingModeChannelName | No | STRING | "<module>.PluginState" | Stato del plug-in batMON (valore grezzo della state machine) | |
| configurationErrorChannelName | No | STRING | "<module>.ConfigurationError" | Errore di configurazione batMON | |
| batteryStatusChannelName | No | STRING | "<module>.BatteryStatus" | Stato batteria batMON | |
| terminal15StatusChannelName | No | STRING | "<module>.Terminal15Status" | Stato del morsetto 15 batMON | |
| shutDownCounterChannelName | No | STRING | "<module>.ShutDownCounter" | Conto alla rovescia batMON entro il quale l'arresto deve essere completato | |
| bootCounterChannelName | No | STRING | "<module>.BootCounter" | Conto alla rovescia batMON entro il quale l'avvio del sistema deve essere completato | |
| wakeUpEventChannelName | No | STRING | "<module>.WakeUpEvent" | Evento di riattivazione batMON | |
| requestEnergySaveChannelName | No | STRING | "<module>.RequestEnergySave" | Latch BOOL: viene impostato non appena, dall'avvio del modulo, è stato richiesto almeno una volta il risparmio energetico (modalità ECO, fronte di spegnimento KL15 in funzionamento AlwaysOn o comando di arresto confermato); reset solo al riavvio del modulo | |
| aboutToShutDownChannelName | No | STRING | "<module>.AboutToShutDown" | Canale booleano batMON per la notifica dell'imminente arresto | |
| criticalPowerStateChannelName | No | STRING | "<module>.CriticalPowerState" | Canale booleano batMON per la notifica di uno stato di tensione critico | |
| lowPowerStateChannelName | No | STRING | "<module>.LowPowerState" | Canale booleano batMON per la notifica di uno stato di tensione bassa | |
| firmwareVersionsChannelName | No | STRING | "<module>.FirmwareVersion" | Canale STRING con le informazioni sulle versioni FW e PIC FW | |
| wakeUpTime | No | INT | 600 ... 7200 | 3600 | Tempo di riattivazione batMON [s] |
| measurementTime | No | INT | 30 ... 300 | 60 | Intervallo di misura batMON [s] |
| shutDownTime | No | INT | 30 ... 120 | 90 | Tempo di arresto batMON [s] |
| bootTime | No | INT | 60 ... 120 | 900 | Tempo di boot batMON [s] |
| voltageDropDelayTime | No | INT | 10 | Tempo di tolleranza per cali di tensione batMON [s] | |
| voltageAlwaysOnMV | No | INT | (voltageAlwaysOffMV + 2000) ... 150000 | 23000 | Soglia di accensione funzionamento continuo batMON [mV] |
| voltageAlwaysOffMV | No | INT | 18500 ... (voltageAlwaysOnMV - 2000) | 20500 | Soglia di spegnimento batMON [mV] |
| canIdValues123 | No | INT | CAN ID valido/univoco | 120 | CAN ID batMON per il messaggio (U_Sup,I_Sup,T_MOS) |
| canIdValues456 | No | INT | CAN ID valido/univoco | 121 | CAN ID batMON per il messaggio (T_bM) |
| canIdStatus | No | INT | CAN ID valido/univoco | 125 | CAN ID batMON per il messaggio di stato |
| canIdSetRtcRXD | No | INT | CAN ID valido/univoco | 10 | CAN ID batMON per l'impostazione dell'RTC |
| canIdSetRtcTXD | No/Scartato | INT | CAN ID valido/univoco | 11 | CAN ID batMON per l'impostazione dell'RTC (conferma) |
| canIdParameter1 | No | INT | CAN ID valido/univoco | 130 | CAN ID batMON per il primo Parameter Report Frame |
| canIdParameter2 | No | INT | CAN ID valido/univoco | 131 | CAN ID batMON per il secondo Parameter Report Frame |
| canIdParameter3 | No | INT | CAN ID valido/univoco | 132 | CAN ID batMON per il terzo Parameter Report Frame |
Parameter Enums
Stato del plug-in (OperatingMode)
| Valore | Enum | Stato |
|---|---|---|
| 0 | bsInit | Inizializzazione |
| 1 | bsBoot | Avvio |
| 2 | bsBootInternCom | Avvio: comunicazione interna |
| 3 | bsSynchronizeRtc | Avvio: sincronizzazione RTC |
| 4 | bsGetFirmwareVersion | Avvio: lettura versione firmware |
| 5 | bsGetHistory | Avvio: caricamento dati storici |
| 6 | bsGetParameter | Avvio: lettura parametri |
| 7 | bsUpdateParameter | Avvio: scrittura parametri |
| 8 | bsWakeup | Riattivazione |
| 9 | bsRunning | Funzionamento normale |
| 10 | bsCmdShutdown | Funzionamento normale: elaborazione del comando di arresto |
| 11 | bsResynchronizeRtc | Funzionamento normale: risincronizzazione RTC |
| 12 | bsNotifyShutDown | Annuncio dell'arresto |
| 13 | bsAboutToShutDown | Arresto avviato |
| 14 | bsPostponeShutDown | Arresto ritardato |
| 15 | bsShutdown | Arresto |
Stato del dispositivo batMON smartIO
| Valore | Significato |
|---|---|
| 0 | iniziale dopo un avvio a freddo / reset |
| 1 | Standby (monitoraggio del timer di stato di riposo, delle tensioni, del morsetto 15, ...) |
| 2 | Acceso (MOSFET acceso, monitoraggio della tensione di ingresso) |
| 3 | Avvio del sistema (attesa dell'avvio del sistema) |
| 4 | Monitoraggio (attesa della condizione di arresto del sistema) |
| 5 | Spegnimento (attesa dello spegnimento del sistema) |
| 6 | Spento (MOSFET spento, i condensatori vengono scaricati) |
Errore di configurazione
| Valore | Enum | Significato |
|---|---|---|
| -3 | VoltageAlwaysOnTooHigh | voltageAlwaysOnMV troppo alto |
| -2 | VoltageAlwaysOnTooLow | voltageAlwaysOnMV troppo basso |
| -1 | VoltageAlwaysOffTooLow | voltageAlwaysOffMV troppo basso |
| 0 | OK | OK |
| 1 | WrongMeasurementTime | measurementTime errato |
| 2 | WrongShutdownTime | shutDownTime errato |
| 3 | WrongBootTime | bootTime errato |
| 4 | WrongWakeUpTime | wakeUpTime errato |
| 5 | WrongVAlwaysOn | voltageAlwaysOnMV errato |
| 6 | WrongVAlwaysOff | voltageAlwaysOffMV errato |
| 7 | WrongVoltageDropDelayTime | voltageDropDelayTime errato |
Stato della batteria
| Valore | Significato |
|---|---|
| 0 | sconosciuto |
| 1 | permanentemente acceso |
| 2 | modalità di risparmio energetico |
| 3 | permanentemente spento |
| 4 | permanentemente spento (al di sotto della tensione di accensione dell'alimentatore) |
Stato del morsetto 15
| Valore | Significato |
|---|---|
| 0 | sconosciuto/non presente |
| 1 | fronte di accensione |
| 2 | fronte di spegnimento |
Evento di riattivazione
| Valore | Enum | Significato | Modalità operativa successiva |
|---|---|---|---|
| 0 | eWakeUp_none | nessun evento | non definita |
| 1 | eWakeUp_KL15_ON | Fronte di accensione del morsetto 15 | Prelievo dei dati storici + funzionamento continuo |
| 2 | eWakeUp_Ubatt_Always_OFF | U_batt sotto la soglia Always-OFF | Allarme + arresto |
| 3 | eWakeUp_Ubatt_Always_ON | U_batt sopra la soglia Always-ON | Prelievo dei dati storici + funzionamento continuo |
| 4 | eWakeUp_Ubatt_Timer | Riattivazione periodica in modalità di risparmio energetico (timer) | Prelievo dei dati storici + modalità di risparmio energetico |
| 5 | eWakeUp_Ubatt_LowPower | (obsoleto) | Prelievo dei dati storici + modalità di risparmio energetico |
| 6 | eWakeUp_CAN_Timer | Riattivato dopo sospensione richiesta attivamente via CAN | Prelievo dei dati storici + funzionamento continuo |
Evento di arresto
| Valore | Enum | Significato | Descrizione |
|---|---|---|---|
| 0 | eShutdown_none | nessuno | nessun evento |
| 1 | eShutdown_KL15 | Morsetto 15 | Arresto tramite il morsetto 15 (ad es. chiave di accensione) |
| 2 | eShutdown_Ubatt_Always_OFF | U_batt sotto la soglia Always-OFF | Arresto, poiché U_batt è scesa sotto il valore di soglia Always-OFF |
| 3 | eShutdown_CAN | Messaggio CAN bus | Arresto a causa di un messaggio CAN bus |
| 4 | eShutdown_OverCurrent | Sovracorrente (errore) | Arresto a causa del superamento della corrente |
| 5 | eShutdown_OverTemperature | Sovratemperatura (errore) | Arresto a causa del superamento della temperatura |
| 6–8 | — | RISERVATO | |
| 9 | eShutdown_MOSFET_Failure | Guasto del MOSFET (errore) | Arresto a causa di un guasto del MOSFET |
| 10 | ePowerOff_KL15_Ubatt_Always_OFF | Morsetto 15 e soglia Always-OFF | Arresto, poiché U_batt è scesa sotto il valore di soglia Always-OFF (morsetto 15 presente) |
| 11 | ePowerOff_ECO_Mode | Modalità Eco | Arresto dopo la misura, U_batt al di sotto della soglia Always-ON |
| 12 | ePowerOff_Underrange_Intrexis | Sottosoglia | Tensione inferiore alla tensione di accensione del MOSFET |
| 15 | eShutdown_Unknown | sconosciuto | evento di arresto sconosciuto |
Funzioni Call-Interface
requestDelayedShutdown
Funzione per il ritardo dell'arresto
| Parametro | Tipo | Descrizione |
|---|---|---|
| sender | STRING | Identificativo univoco del mittente (ad es. istanza del modulo) |
| delay | INT | Ritardo [ms] < 64k |
Informazioni sul modulo
| Informazione | Valore |
|---|---|
| Autore | optiMEAS GmbH |
| da smartCORE | 0.101 |
| Tipo di modulo | Producer e Consumer (request energy save) |
| Dipendenze | smartMODULE "canbus" o "candbc" (su smartDEVICES), interfaccia CAN bus funzionante (sulle altre piattaforme) |