Documentatión

gestor de cargas cFos - Fórmulas

El Gestor de Cargas cFos permite la evaluación dinámica de fórmulas. Esta funcionalidad está disponible para un contador del tipo "Expresión" y para reglas de tarificación del tipo "Fórmula".

Por lo tanto, puede configurar contadores que calculen valores de otros contadores o EVSEs y mantenerlos preparados y mostrarlos. Las reglas de carga también pueden utilizar fórmulas para calcular dinámicamente la corriente de carga y también acceder a contadores y EVSEs (incluyendo contadores del tipo "Expresión").

Las siguientes operaciones son posibles con las fórmulas:

+ - * / %Suma, resta, multiplicación, división, módulo
& |aND y OR bit a bit
^Cálculo de potencia, por ejemplo, 10^2 = 100
min(x,y)Mínimo de x e y, más de 2 argumentos posibles
max(x,y)Máximo de x e y, más de 2 argumentos posibles
abs(x)Valor absoluto de x, por ejemplo, abs(-2) = 2
clamp(x,min,max)Valor x = mín (si x < mín), x = máx (si x > máx), en caso contrario mantener x
round(x)Redondear x a número entero. Ejemplo: Redondear a 1 decimal: round(10*x)/10.
sqrt(x)Raíz cuadrada de x
exists(x)true si la variable x existe, en caso contrario false

Además, son posibles las siguientes expresiones lógicas:

== (igual), != (desigual), < (menor), <= (menor-igual), > (mayor), >= (mayor-igual), ! (no), || (Or lógico), && (And lógico), ? (operador condicional, por ejemplo, x ? y : z, devuelve y si x es verdadero, en caso contrario z)

Esto permite, por ejemplo, desconectar la corriente en función de las condiciones: M1.current >= 6500 ? M1.current : 0 devuelve la corriente de M1 si es superior a 6,5A y 0 en caso contrario, lo que pone en pausa la carga. Para estas condiciones, también es posible consultar las entradas (véase más abajo)

Son posibles los siguientes nombres:

MxContador con ID de unidad x, por ejemplo M1
ExEVSE con ID de dispositivo x, por ejemplo, E1

También es posible acceder a contadores virtuales, como el excedente solar, la extracción de la red o la "Power avail. for EVSEs" (potencia disponible para los wallboxes), configurando el contador y utilizando después el ID del dispositivo correspondiente en la fórmula.

A continuación, se puede acceder a los valores individuales de las unidades mediante el punto. Estos se llaman de la siguiente manera:

current_l1Corriente de la fase 1 en mA
current_l2Corriente de la fase 2 en mA
current_l3Corriente de la fase 3 en mA
currentCorriente de la fase actual en mA (para las reglas de carga, el Gestor de Carga consulta todas las fases una tras otra; para los contadores del tipo "Expresión", se aplica la fase respectiva a la que se refiere la fórmula. Si ha especificado una fórmula para la "Corriente L1", puede omitir los campos para la Corriente L2 y L3. Entonces se utiliza la fórmula para la corriente L1)
power_wPotencia activa actual en vatios
offeredWallbox: Corriente ofrecida en mA
import_whEnergía extraída en Wh
export_whEnergía inyectada en Wh
dtEl tiempo transcurrido desde la última actualización (en segundos), sólo para el contador "Expresión", véase también CM._dt.
inputNNúmero de entrada N del dispositivo, 1 = activa, 0 = inactiva, N es el número de la entrada, empezando por 1.
socSOC, nivel de carga en porcentaje (contador/memoria) - si el dispositivo lo admite
idId de dispositivo, ID de Modbus
txn_durationDuración de la transacción actual en segundos (EVSE)
charging_durTiempo de carga real de la transacción actual en segundos (Wallbox)
txn_energyEnergía cargada de la transacción actual en Wh (EVSE)
min_currentCorriente de carga mínima en mA (EVSE)
max_currentCorriente de carga máxima en mA (EVSE)
stateEstado: 1 en espera, 2 enchufado, 3 cargando, 4 cargando con ventilación, 5 error, 6 desconectado (EVSE)
cphasesNúmero de fases de carga (0-3)
pphasesNúmero de fases de carga previstas (0-3)
lb_cur_l1Corriente actualmente calculada de la fase 1 en mA (wallbox). Sólo durante el cálculo de las reglas de carga de la Wallbox, en caso contrario 0
lb_cur_l2Corriente calculada de la fase 2 en mA (wallbox). Sólo durante el cálculo de las reglas de carga de la Wallbox, en caso contrario 0
lb_cur_l3Corriente actualmente calculada de la fase 3 en mA (wallbox). Sólo durante el cálculo de las reglas de carga de la Wallbox, en caso contrario 0
lb_curCorriente calculada para la fase actual en mA (wallbox). Sólo durante el cálculo de las reglas de carga de la Wallbox, en caso contrario 0. El Gestor de carga consulta todas las fases una tras otra.
surplus_pcurExceso de corriente FV por fase (prevista) en mA
surplus_wanted1, si ya se ha aplicado una regla de superávit FV, en caso contrario 0
budgetKWh o minutos sobre el presupuesto actual
budget_amountMáximo de kWh o minutos en el presupuesto actual
budget_usedKWh o minutos utilizados en el presupuesto actual
com_err1, si hay un error COM, en caso contrario 0
com_err21, si se produce un error COM durante más de 12 segundos, en caso contrario 0
reactive_powerEspecificación de la potencia reactiva en vatios (si el dispositivo la admite), valores positivos: Inductiva, valores negativos: Capacitiva
switch_phasesPara cajas murales con conmutación de fases: Conmutación manual de fases, 1 = monofásica, 3 = trifásica, -1 = conmutación automática de fases
departureHora de salida ISO 15118 como marca de tiempo unitaria (para wallboxes que lo admitan, de lo contrario 0)
req_energyISO 15118 Energía necesaria en Wh (para las cajas murales que lo admitan, en caso contrario 0)
plugin_startUnix timestamp, hora de inserción del cable
plugin_energyEnergía previamente cargada en Wh desde que se enchufó el cable

Ejemplo
M1.current_l1Corriente del contador M1, fase 1
E2.import_whWh consumido del EVSE E2
E3.power_wPotencia de carga actual del E3 en vatios

Si utiliza las fórmulas para un medidor de tipo "Expresión", también puede omitir el ID del dispositivo. Entonces los nombres de los campos se refieren a este contador, p.ej. 'potencia_w' es entonces la potencia de este contador en vatios. Mediante 'dt' puede realizar algunas funciones ampliadas, por ejemplo en un medidor del tipo "Expresión":

  • Como fórmula para 'import_wh': import_wh + M1.power_w * dt / 3600 actualiza la energía suministrada basándose en la potencia durante el último tiempo de actualización
  • Como fórmula para 'power_w': (power_w * (20 - dt) + M1.power_w * dt) / 20 suaviza la potencia durante los últimos 20 segundos.

Variables globales

date

date.yearAño en curso
date.monthMes de 0..11
date.dayDía de 1..31
date.weekdayDía de la semana SO=0, Lun=1, Mar=2, ... Sáb=6
date.yeardayDía del año de 0..366
date.hourHora de 0..23
date.minuteMinuto de 0..60
date.secondSegundo de 0..60
date.daysecondSegundo de este día de 0..86399
date.dayminuteMinuto de este día desde 0..1439
date.dst0 = horario de invierno, 1 = horario de verano
date.timestampUnix timespamp, secs since 1.1.1970

PB (nur cFos Power Brain)

PB.input1S0 Input 1, 1 = activo, 0 = inactivo
PB.input2S0 Input 2, 1 = activo, 0 = inactivo

CM Variables del gestor de cobros

Estas variables pueden ser configuradas por el administrador en "Configuración". Por ejemplo, si el administrador establece la variable "var_x" en 1,5, CM.var_x devuelve el valor 1,5.

Variables predefinidas:
_num_charging: Número de cajas murales actualmente en carga
_num_charging1: Número de wallboxes que se están cargando actualmente, 1 si no se está cargando ninguna
_corriente_máx_total: Corriente máxima de la conexión domiciliaria en mA por fase
_max_total_evse_current: Corriente máxima para wallboxes en mA por fase
precio: Precio actual de la electricidad
_price_level: Nivel actual del precio de la electricidad, -2=muy caro, -3=caro, -4=normal, -5=barato, -6=muy barato
excedente: excedente solar actual en vatios
excedente_org: Excedente solar tal y como lo habría calculado el Gestor de Cobros independientemente de sus propias fórmulas
capacidad_máx_almacenamiento_vivienda: Capacidad total del almacenamiento, vivienda, si se especifica en la configuración del contador, en Wh
capacidad_de_almacenamiento_home: Capacidad actual del almacenamiento, Home, si se especifica en la configuración del contador, en Wh
capacidad_máx_almacenamiento_todos: Capacidad total del almacenamiento, Todos, si se especifica en la configuración del contador, en Wh
_storage_all_capacity: Capacidad actual del almacenamiento, Todos, si se especifica en la configuración del contador, en Wh
_max_total_current_prc: Porcentaje de la corriente de carga total máxima disponible. Esta variable también puede escribirse (mediante definiciones de contador y variables del Gestor de carga)
_dt: El tiempo transcurrido desde la última actualización (en segundos).

Utilización de los objetos globales:
charge 8A starting at 8:00am: date.dayminute >= 480 ? 8000 : 0
charge 16A on Saturday and Sunday: date.weekday == 5 || date.weekday == 6 ? 16000 : 0
charge 6A if input 2 active: PB.input2 ? 6000 : 0 charge 6A if CM variable non-zero: cm.var1 ? 6000 : 0
Nota:
En Contadores personalizados también encontrará instrucciones sobre cómo utilizar fórmulas con variables y salidas globales del Gestor de cargas.

GM Contadores globales

GM.grid_demandReferencia de red
GM.consumedConsumo
GM.producedGeneración
GM.consumed_evseConsumo de coches eléctricos
GM.available_evsePotencia disponible
GM.surplusExcedente fotovoltaico
GM.storage_homeMemoria del hogar
GM.storage_allMemoria Todo
GM.errorRendimiento por error

Utilización de los contadores globales
Jeder Zähler hat die Felder power_w, current, current_l1, current_l2, current_l3, import_wh und export_wh,
z.B. GM.prod_pwr.current_l1 oder GM.cons_pwr.power_w
. Bei 'current' wird der Strom der gerade betrachteten Phase ausgewertet. Ströme werden in mA geliefert, Leistung in W, Energie in Wh.

Ejemplo de aplicación

Usted quiere limitar adicionalmente la corriente de carga con respecto a un contador de consumo de un piso. Para ello, puede establecer una regla de carga con la fórmula 16000 - M1.current.
M1 es el contador que mide el consumo del piso. La gestión de la carga del Gestor de Carga cFos intenta primero proporcionar al EVSE la máxima corriente en relación con la potencia de conexión de la vivienda, pero luego la limita a 16A menos el consumo del piso.

Funciones

Mediante min_precio(s), max_precio(s), puede determinar el precio más barato de su proveedor de energía en euros, para lo cual se buscan los precios desde la hora actual hasta un máximo de s segundos del día o del día siguiente, por ejemplo min_precio(25200) devuelve el precio más barato hasta las 7:00 de la mañana. Por ejemplo, se puede crear una regla de carga con la condición CM._precio <= min_precio(25200) para cargar a la hora más favorable, pero con la condición de que se quiera poner en marcha a partir de las 8:00 de la mañana, por ejemplo (suponiendo un tiempo de carga de 1 hora). Del mismo modo, existen las dos funciones min_price_secs(s) y max_price_secs(s), que devuelven la hora de inicio del precio más barato en segundos del día iniciado. A continuación, puede compararlas con date.daysecond, por ejemplo.