gestore della carica cFos - Formule

Il Charging Manager di cFos consente la valutazione dinamica delle formule. Questa funzionalità è disponibile per un contatore di tipo "Espressione" e per le regole di tariffazione di tipo "Formula".

È quindi possibile impostare contatori che calcolano i valori da altri contatori o EVSE e tenerli pronti e visualizzarli. Le regole di ricarica possono anche utilizzare formule per calcolare dinamicamente la corrente di ricarica e accedere a contatori e EVSE (compresi quelli di tipo "Expression").

Con le formule è possibile effettuare le seguenti operazioni:

+ - * / %Addizione, sottrazione, moltiplicazione, divisione, modulo
& |aND e OR bitwise
^Calcolo della potenza, ad esempio 10^2 = 100
min(x,y)Minimo di x e y, più di 2 argomenti possibili
max(x,y)Massimo di x e y, più di 2 argomenti possibili
abs(x)Valore assoluto di x, ad esempio abs(-2) = 2
clamp(x,min,max)Valore x = min (se x < min), x = max (se x > max), altrimenti mantenere x
sqrt(x)Arrotonda x a un numero intero. Esempio: arrotondamento a una cifra decimale: round(10*x)/10.
sqrt(x)Radice quadrata di x
exists(x)vero se la variabile x esiste, altrimenti falso

Inoltre, sono possibili le seguenti espressioni logiche:

== (uguale), != (disuguale), < (minore), <= (minore-uguale), > (maggiore), >= (maggiore-uguale), ! (non), || (Or logico), && (And logico), ? (operatore condizionale, ad esempio x ? y : z, restituisce y se x è vero, altrimenti z)

Ciò consente, ad esempio, di disattivare la corrente a seconda delle condizioni: M1.current >= 6500 ? M1.current : 0 restituisce la corrente di M1 se è superiore a 6,5A e 0 altrimenti, mettendo in pausa la carica. Per tali condizioni, è anche possibile interrogare gli ingressi (vedere di seguito)

Sono possibili i seguenti nomi:

MxContatore con ID unità x, ad es. M1
ExEVSE con ID dispositivo x, ad esempio E1

È inoltre possibile accedere a contatori virtuali, come l'eccedenza solare, l'assorbimento dalla rete o la "Power avail. for EVSEs" (potenza disponibile per le wallbox), impostando il contatore e utilizzando l'ID del dispositivo corrispondente nella formula.

È quindi possibile accedere ai singoli valori delle unità tramite il punto. Questi vengono chiamati come segue:

current_l1Corrente della fase 1 in mA
current_l2Corrente della fase 2 in mA
current_l3Corrente della fase 3 in mA
currentCorrente della fase corrente in mA (per le regole di carica, il Gestore della carica interroga tutte le fasi una dopo l'altra; per i contatori di tipo "Espressione", si applica la rispettiva fase a cui si riferisce la formula. Se si è specificata una formula per la "Corrente L1", è possibile omettere i campi per la Corrente L2 e L3. In tal caso viene utilizzata la formula per la corrente L1)
power_vaPotenza attuale in Watt/VA (a seconda del tipo di contatore, qui può essere fornita la potenza apparente o la potenza attiva)
power_wPotenza attiva attuale in watt
opower_vaWallbox: Potenza attuale offerta in VA relativa a tutte e 3 le fasi.
import_whEnergia prelevata in Wh
export_whEnergia iniettata in Wh
dtIl tempo trascorso dall'ultimo aggiornamento passato (in secondi)
inputNNumero di ingresso N dell'unità, 1 = attivo, 0 = inattivo
socSOC, livello di carica in percentuale (contatore/stoccaggio)
idId dispositivo, ID Modbus
txn_durationDurata della transazione corrente in secondi (EVSE)
txn_energyEnergia di carica della transazione corrente in Wh (EVSE)
min_currentCorrente di carica minima in mA (EVSE)
max_currentCorrente di carica massima in mA (EVSE)
stateStato: 1 in attesa, 2 collegato, 3 in carica, 4 in carica con ventilazione, 5 errore, 6 offline (EVSE)
cphasesNumero di fasi di carica (0-3)
pphasesNumero di fasi di carica previste (0-3)
budgetKWh sul bilancio corrente
budget_amountSul budget attuale il kWh massimo
budget_usedKWh utilizzati per il bilancio corrente
com_err1, se c'è un errore COM, altrimenti 0
com_err21, se un errore COM è presente per più di 12 secondi, altrimenti 0

Esempio
M1.current_l1Corrente del contatore M1, fase 1
E2.import_whWh consumati dall'EVSE E2
E3.power_vaPotenza di carica attuale da E3

Se si utilizzano le formule per un misuratore di tipo "Espressione", si può anche omettere l'ID del dispositivo. I nomi dei campi si riferiscono a questo misuratore, ad esempio 'power_va' è la potenza di questo misuratore in Watt/VA. È possibile utilizzare 'dt' per realizzare alcune funzioni estese, ad esempio in un misuratore di tipo "Espressione":

  • Come formula per 'import_wh': import_wh + M1.power_va * dt / 3600 aggiorna l'energia di origine in base alla potenza durante l'ultimo tempo di aggiornamento
  • Come formula per 'power_va': (power_va * (20 - dt) + M1.power_va * dt) / 20 attenua la potenza negli ultimi 20 secondi.

Variabili globali

date

date.yearAnno in corso
date.monthMese da 0..11
date.dayGiorno da 1..31
date.weekdayGiorno della settimana Mo=0, Mar=1, ... Dom=6
date.yeardayGiorno dell'anno da 0..366
date.hourOra da 0..23
date.minuteMinuti da 0 a 60
date.secondSecondo da 0..60
date.daysecondSecondo di questo giorno da 0..86399
date.dayminuteMinuti di questo giorno da 0..1439
date.dst0 = orario invernale, 1 = orario estivo

PB (cFos Power brain only)

PB.input1S0 Input 1, 1 = attivo, 0 = inattivo
PB.input2S0 Input 2, 1 = attivo, 0 = inattivo

CM Variabili del Charging Manager

Queste variabili possono essere impostate dall'amministratore in "Configurazione". Ad esempio, se l'amministratore imposta la variabile "var_x" su 1,5, CM.var_x restituirà il valore 1,5.

Variabili predefinite:
carica_num: Numero di wallbox attualmente in carica
_num_carica1: numero di wallbox attualmente in carica, 1 se nessuno è in carica
_max_total_current: Corrente massima del collegamento dell'abitazione in mA per fase
_max_total_evse_current: corrente massima per wallbox in mA (per fase)
prezzo: prezzo attuale dell'elettricità
_price_level: livello attuale del prezzo dell'elettricità, -2=molto caro, -3=costoso, -4=normale, -5=economico, -6=molto economico _surplus: surplus solare attuale in watt eccedenza solare: eccedenza solare che sarebbe stata calcolata dal Gestore degli addebiti indipendentemente dalle sue formule

Benutzung der globalen Objekte:
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

Esempio di applicazione

Si desidera limitare ulteriormente la corrente di carica rispetto al contatore di consumo di un appartamento. A tal fine, è possibile impostare una regola di ricarica con la formula 16000 - M1.current.
M1 è il contatore che misura il consumo dell'appartamento. La gestione del carico del Charging Manager cFos cerca innanzitutto di fornire all'EVSE la corrente massima in relazione alla potenza di connessione dell'abitazione, ma poi la limita a 16A meno il consumo dell'appartamento.