Módulo batMON de smartCORE
Descripción
El módulo batmon representa la interfaz de la supervisión de batería smartIO batMON hacia el smartCORE. Para ello, diversos parámetros de la batería
- con el sistema en funcionamiento, se escriben en forma de datos en vivo en smartCHANNELS
- durante la fase de reposo del sistema, se registran como datos históricos y, durante la fase de encendido del sistema, se descargan del batMON y se guardan en un archivo previsto para ello.
Estados de funcionamiento
El siguiente diagrama ilustra los estados de funcionamiento del batMON.

Interfaces y protocolos utilizados
- CAN-Bus
- Formato OSF
Configuración JSON
En la siguiente sección se describe la configuración JSON completa del módulo y se explican los distintos parámetros.
Configuración de ejemplo (mínima)
{
"module":"Batmon",
"factory":"batmon",
"config":{}
}
Configuración de ejemplo (máxima)
{
"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
}
}
Lista de parámetros
| Nombre del parámetro | Obligatorio | Tipo de datos | Rango de valores recomendado | Valor predeterminado | Descripción |
|---|---|---|---|---|---|
| priority | No | INT | 1 ... 99 | 80 | Prioridad de planificación (scheduling) de la interfaz CAN-Bus |
| timeoutMs | No | INT | 1 ... | 1000 | Intervalo entre las partes del módulo que se ejecutan periódicamente |
| readBufferSize | No | INT | 1 ... | 8192 | Número de mensajes CAN-Bus almacenados en búfer (sentido de lectura) |
| writeBufferSize | No | INT | 1 ... | 8192 | Número de mensajes CAN-Bus almacenados en búfer (sentido de escritura) |
| canInterface | No | STRING | "can0", "can1", ... | "can1" | Interfaz CAN-Bus |
| fileName | No | STRING | plantilla de ruta OSF válida | "/sde/<tag>/<date>/<date>_<time>.osf" | Archivo OSF histórico |
| fileTag | No | STRING | "preview" | Atributo de etiqueta (tag) del archivo OSF histórico | |
| measurementTimeChannelName | No | STRING | "<module>.Parameter.MeasurementTime" | Canal con el parámetro de intervalo de medición configurado | |
| shutDownTimeChannelName | No | STRING | "<module>.Parameter.ShutDownTime" | Canal con el parámetro de tiempo de apagado configurado | |
| bootTimeChannelName | No | STRING | "<module>.Parameter.BootTime" | Canal con el parámetro de tiempo de arranque configurado | |
| wakeUpTimeChannelName | No | STRING | "<module>.Parameter.WakeUpTime" | Canal con el parámetro de tiempo de despertar configurado | |
| voltageDropDelayTimeChannelName | No | STRING | "<module>.Parameter.VoltageDropDelayTime" | Canal con el parámetro configurado del tiempo de tolerancia a caídas de tensión | |
| vAlwaysOffChannelName | No | STRING | "<module>.Parameter.VAlwaysOff" | Canal con el parámetro configurado del umbral de conmutación inferior | |
| vAlwaysOnChannelName | No | STRING | "<module>.Parameter.VAlwaysOn" | Canal con el parámetro configurado del umbral de conmutación superior | |
| powerSupplyVoltageChannelName | No | STRING | "<module>.PowerSupplyVoltage" | Tensión de alimentación (U_Sup) | |
| powerSupplyCurrentChannelName | No | STRING | "<module>.PowerSupplyCurrent" | Intensidad de corriente de alimentación (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" | Resistencia del batMON (R_bM) | |
| operatingModeChannelName | No | STRING | "<module>.PluginState" | Estado del plugin batMON (valor bruto de la máquina de estados) | |
| configurationErrorChannelName | No | STRING | "<module>.ConfigurationError" | Error de configuración del batMON | |
| batteryStatusChannelName | No | STRING | "<module>.BatteryStatus" | Estado de la batería del batMON | |
| terminal15StatusChannelName | No | STRING | "<module>.Terminal15Status" | Estado del borne 15 del batMON | |
| shutDownCounterChannelName | No | STRING | "<module>.ShutDownCounter" | Cuenta atrás del batMON dentro de la cual debe haber finalizado el apagado | |
| bootCounterChannelName | No | STRING | "<module>.BootCounter" | Cuenta atrás del batMON dentro de la cual debe haber finalizado el arranque del sistema | |
| wakeUpEventChannelName | No | STRING | "<module>.WakeUpEvent" | Evento de despertar del batMON | |
| requestEnergySaveChannelName | No | STRING | "<module>.RequestEnergySave" | Latch BOOL: se activa en cuanto, desde el inicio del módulo, se ha solicitado al menos una vez el ahorro de energía (modo ECO, flanco de desconexión del KL15 en funcionamiento AlwaysOn u orden de apagado confirmada); solo se restablece al reiniciar el módulo | |
| aboutToShutDownChannelName | No | STRING | "<module>.AboutToShutDown" | Canal BOOLEANO del batMON para notificar el apagado inminente | |
| criticalPowerStateChannelName | No | STRING | "<module>.CriticalPowerState" | Canal BOOLEANO del batMON para notificar un estado de tensión crítico | |
| lowPowerStateChannelName | No | STRING | "<module>.LowPowerState" | Canal BOOLEANO del batMON para notificar un estado de tensión baja | |
| firmwareVersionsChannelName | No | STRING | "<module>.FirmwareVersion" | Canal STRING con información de versión del FW y del FW del PIC | |
| wakeUpTime | No | INT | 600 ... 7200 | 3600 | Tiempo de despertar del batMON [s] |
| measurementTime | No | INT | 30 ... 300 | 60 | Intervalo de medición del batMON [s] |
| shutDownTime | No | INT | 30 ... 120 | 90 | Tiempo de apagado del batMON [s] |
| bootTime | No | INT | 60 ... 120 | 900 | Tiempo de arranque del batMON [s] |
| voltageDropDelayTime | No | INT | 10 | Tiempo de tolerancia a caídas de tensión del batMON [s] | |
| voltageAlwaysOnMV | No | INT | (voltageAlwaysOffMV + 2000) ... 150000 | 23000 | Umbral de conexión del batMON para funcionamiento continuo [mV] |
| voltageAlwaysOffMV | No | INT | 18500 ... (voltageAlwaysOnMV - 2000) | 20500 | Umbral de desconexión del batMON [mV] |
| canIdValues123 | No | INT | CAN ID válido/único | 120 | CAN-Bus ID del batMON para el mensaje (U_Sup,I_Sup,T_MOS) |
| canIdValues456 | No | INT | CAN ID válido/único | 121 | CAN-Bus ID del batMON para el mensaje (T_bM) |
| canIdStatus | No | INT | CAN ID válido/único | 125 | CAN-Bus ID del batMON para el mensaje de estado |
| canIdSetRtcRXD | No | INT | CAN ID válido/único | 10 | CAN-Bus ID del batMON para configurar el RTC |
| canIdSetRtcTXD | No/Descartado | INT | CAN ID válido/único | 11 | CAN-Bus ID del batMON para configurar el RTC (acuse de recibo) |
| canIdParameter1 | No | INT | CAN ID válido/único | 130 | CAN-Bus ID del batMON para la primera trama de informe de parámetros |
| canIdParameter2 | No | INT | CAN ID válido/único | 131 | CAN-Bus ID del batMON para la segunda trama de informe de parámetros |
| canIdParameter3 | No | INT | CAN ID válido/único | 132 | CAN-Bus ID del batMON para la tercera trama de informe de parámetros |
Enumeraciones de parámetros
Estado del plugin (OperatingMode)
| Valor | Enum | Estado |
|---|---|---|
| 0 | bsInit | Inicialización |
| 1 | bsBoot | Arranque |
| 2 | bsBootInternCom | Arranque: comunicación interna |
| 3 | bsSynchronizeRtc | Arranque: sincronizar RTC |
| 4 | bsGetFirmwareVersion | Arranque: leer versión de firmware |
| 5 | bsGetHistory | Arranque: cargar datos históricos |
| 6 | bsGetParameter | Arranque: leer parámetros |
| 7 | bsUpdateParameter | Arranque: escribir parámetros |
| 8 | bsWakeup | Despertar |
| 9 | bsRunning | Funcionamiento normal |
| 10 | bsCmdShutdown | Funcionamiento normal: procesar orden de apagado |
| 11 | bsResynchronizeRtc | Funcionamiento normal: resincronizar RTC |
| 12 | bsNotifyShutDown | Anunciar apagado |
| 13 | bsAboutToShutDown | Apagado iniciado |
| 14 | bsPostponeShutDown | Apagado retrasado |
| 15 | bsShutdown | Apagado |
Estado del dispositivo batMON smartIO
| Valor | Significado |
|---|---|
| 0 | inicial tras un arranque en frío / reinicio |
| 1 | Standby (supervisión del temporizador de reposo, tensiones, borne 15, ...) |
| 2 | Conectado (MOSFET conectado, supervisión de la tensión de entrada) |
| 3 | Arranque del sistema (espera a que el sistema arranque) |
| 4 | Supervisión (espera a la condición de apagado del sistema) |
| 5 | Desconexión (espera a que el sistema se apague) |
| 6 | Desconectado (MOSFET desconectado, los condensadores se descargan) |
Error de configuración
| Valor | Enum | Significado |
|---|---|---|
| -3 | VoltageAlwaysOnTooHigh | voltageAlwaysOnMV demasiado alto |
| -2 | VoltageAlwaysOnTooLow | voltageAlwaysOnMV demasiado bajo |
| -1 | VoltageAlwaysOffTooLow | voltageAlwaysOffMV demasiado bajo |
| 0 | OK | OK |
| 1 | WrongMeasurementTime | measurementTime incorrecto |
| 2 | WrongShutdownTime | shutDownTime incorrecto |
| 3 | WrongBootTime | bootTime incorrecto |
| 4 | WrongWakeUpTime | wakeUpTime incorrecto |
| 5 | WrongVAlwaysOn | voltageAlwaysOnMV incorrecto |
| 6 | WrongVAlwaysOff | voltageAlwaysOffMV incorrecto |
| 7 | WrongVoltageDropDelayTime | voltageDropDelayTime incorrecto |
Estado de la batería
| Valor | Significado |
|---|---|
| 0 | desconocido |
| 1 | conectada permanentemente |
| 2 | modo de ahorro de energía |
| 3 | desconectada permanentemente |
| 4 | desconectada permanentemente (por debajo de la tensión de conexión de la fuente de alimentación) |
Estado del borne 15
| Valor | Significado |
|---|---|
| 0 | desconocido/no presente |
| 1 | Flanco de conexión |
| 2 | Flanco de desconexión |
Evento de despertar
| Valor | Enum | Significado | Modo de funcionamiento siguiente |
|---|---|---|---|
| 0 | eWakeUp_none | sin evento | indefinido |
| 1 | eWakeUp_KL15_ON | Flanco de conexión del borne 15 | Recogida de datos históricos + funcionamiento continuo |
| 2 | eWakeUp_Ubatt_Always_OFF | U_batt por debajo del umbral Always-OFF | Alarma + apagado |
| 3 | eWakeUp_Ubatt_Always_ON | U_batt por encima del umbral Always-ON | Recogida de datos históricos + funcionamiento continuo |
| 4 | eWakeUp_Ubatt_Timer | Despertar periódico en modo de ahorro de energía (temporizador) | Recogida de datos históricos + modo de ahorro de energía |
| 5 | eWakeUp_Ubatt_LowPower | (obsoleto) | Recogida de datos históricos + modo de ahorro de energía |
| 6 | eWakeUp_CAN_Timer | Despertado tras un reposo solicitado activamente por CAN | Recogida de datos históricos + funcionamiento continuo |
Evento de apagado
| Valor | Enum | Significado | Descripción |
|---|---|---|---|
| 0 | eShutdown_none | ninguno | sin evento |
| 1 | eShutdown_KL15 | Borne 15 | Apagado mediante el borne 15 (p. ej. llave de contacto) |
| 2 | eShutdown_Ubatt_Always_OFF | U_batt por debajo del umbral Always-OFF | Apagado porque U_batt ha caído por debajo del valor umbral Always-OFF |
| 3 | eShutdown_CAN | Mensaje CAN-Bus | Apagado debido a un mensaje CAN-Bus |
| 4 | eShutdown_OverCurrent | Sobrecorriente (error) | Apagado debido a que se ha superado la intensidad de corriente |
| 5 | eShutdown_OverTemperature | Sobretemperatura (error) | Apagado debido a que se ha superado la temperatura |
| 6–8 | — | RESERVADO | |
| 9 | eShutdown_MOSFET_Failure | Fallo del MOSFET (error) | Apagado debido a un fallo del MOSFET |
| 10 | ePowerOff_KL15_Ubatt_Always_OFF | Borne 15 y umbral Always-OFF | Apagado porque U_batt ha caído por debajo del valor umbral Always-OFF (borne 15 presente) |
| 11 | ePowerOff_ECO_Mode | Modo Eco | Apagado tras la medición, U_batt por debajo del umbral Always-ON |
| 12 | ePowerOff_Underrange_Intrexis | Valor por debajo del rango | Tensión por debajo de la tensión de conexión del MOSFET |
| 15 | eShutdown_Unknown | desconocido | evento de apagado desconocido |
Funciones de la interfaz de llamada (Call-Interface)
requestDelayedShutdown
Función para retrasar el apagado
| Parámetro | Tipo | Descripción |
|---|---|---|
| sender | STRING | Identificador único del emisor (p. ej. instancia del módulo) |
| delay | INT | Retardo [ms] < 64k |
Información del módulo
| Información | Valor |
|---|---|
| Autor | optiMEAS GmbH |
| desde smartCORE | 0.101 |
| Tipo de módulo | Productor y consumidor (request energy save) |
| Dependencias | smartMODULE "canbus" o "candbc" (en smartDEVICES), interfaz CAN-Bus funcional (en las demás plataformas) |