Managerul de încărcare cFos permite evaluarea dinamică a formulelor. Această funcționalitate este disponibilă pentru un contor de tip "Expression" și pentru regulile de taxare de tip "Formula".
Prin urmare, puteți configura contoare care să calculeze valorile de la alte contoare sau EVSE-uri, să le păstreze pregătite și să le afișeze. Regulile de încărcare pot utiliza, de asemenea, formule pentru a calcula în mod dinamic curentul de încărcare și pot accesa, de asemenea, contoare și EVSE-uri (inclusiv contoare de tip "Expression").
Următoarele operații sunt posibile cu formulele:
+ - * / % | Adăugare, scădere, înmulțire, împărțire, modul |
& | | șI și OR în sens biunivoc |
^ | Calculul puterii, de exemplu 10^2 = 100 |
min(x,y) | Minimum de x și y, sunt posibile mai mult de 2 argumente |
max(x,y) | Maximum de x și y, sunt posibile mai mult de 2 argumente |
abs(x) | Valoarea absolută a lui x, de exemplu: abs(-2) = 2 |
clamp(x,min,max) | Valoare x = min (dacă x < min), x = max (dacă x > max), altfel se păstrează x |
round(x) | Rotunjiți x la un număr întreg. Exemplu: Rotunjire la 1 zecimală: round(10*x)/10. |
sqrt(x) | Rădăcina pătrată a lui x |
exists(x) | adevărat dacă variabila x există, altfel fals |
În plus, sunt posibile următoarele expresii logice:==
(egal), !=
(inegal), <
(mai puțin), <=
(mai puțin egal), >
(mai mare), >=
(mai mare-egal), !
(nu), ||
(Or logic), &&
(And logic), ?
(operator condițional, de exemplu x ? y : z
, returnează y dacă x este adevărat, altfel z
)
Acest lucru permite, de exemplu, oprirea curentului în funcție de condiții: M1.current >= 6500 ? M1.current : 0
returnează curentul lui M1 dacă acesta este mai mare de 6,5 A și 0 în caz contrar, ceea ce întrerupe încărcarea. Pentru astfel de condiții, este posibilă și interogarea intrărilor (a se vedea mai jos)
Sunt posibile următoarele denumiri:
Mx | Contor cu ID-ul unității x, de exemplu M1 |
Ex | EVSE cu ID-ul dispozitivului x, de exemplu E1 |
De asemenea, este posibilă accesarea contoarelor virtuale, cum ar fi surplusul de energie solară, consumul din rețea sau "Power avail. for EVSEs" (energia disponibilă pentru wallbox-uri), prin configurarea contorului și apoi prin utilizarea ID-ului dispozitivului corespunzător în formulă.
Puteți accesa apoi valorile individuale ale unităților prin intermediul punctului. Acestea se numesc după cum urmează:
current_l1 | Curentul fazei 1 în mA |
current_l2 | Curentul fazei 2 în mA |
current_l3 | Curentul fazei 3 în mA |
current | Curentul fazei curente în mA (pentru regulile de încărcare, Charging Manager interoghează toate fazele una după alta; pentru contoarele de tip "Expresie", se aplică faza respectivă la care se referă formula. Dacă ați specificat o formulă pentru "Current L1" (Curent L1), puteți omite câmpurile pentru Current L2 și L3. Atunci se utilizează formula pentru curentul L1) |
power_w | Puterea activă curentă în wați |
offered | Wallbox: Curent oferit în mA |
import_wh | Energie consumată în Wh |
export_wh | Energie injectată în Wh |
dt | Timpul care a trecut de la ultima actualizare (în secunde), numai pentru contorul "Expression", a se vedea și CM._dt. |
inputN | Numărul de intrare N al dispozitivului, 1 = activ, 0 = inactiv, N este numărul de intrare, începând cu 1. |
soc | SOC, nivelul de încărcare în procente (contor/memorie) - dacă este acceptat de dispozitiv |
id | ID dispozitiv, ID Modbus |
txn_duration | Durata tranzacției curente în secunde (EVSE) |
charging_dur | Timpul real de încărcare a tranzacției curente în secunde (Wallbox) |
txn_energy | Energia încărcată a tranzacției curente în Wh (EVSE) |
min_current | Curentul minim de încărcare în mA (EVSE) |
max_current | Curentul maxim de încărcare în mA (EVSE) |
state | Stare: 1 în așteptare, 2 conectat, 3 încărcând, 4 încărcând cu ventilație, 5 eroare, 6 offline (EVSE) |
cphases | Numărul de faze de încărcare (0-3) |
pphases | Numărul de faze de încărcare preconizate (0-3) |
lb_cur_l1 | Curentul curentului calculat al fazei 1 în mA (wallbox). Numai în timpul calculării regulilor de încărcare a wallbox-ului, altfel 0 |
lb_cur_l2 | Curentul calculat în prezent al fazei 2 în mA (wallbox). Numai în timpul calculării regulilor de încărcare a wallbox-ului, altfel 0 |
lb_cur_l3 | Curentul curentului calculat al fazei 3 în mA (wallbox). Numai în timpul calculării regulilor de încărcare a wallbox-ului, altfel 0 |
lb_cur | Curentul calculat pentru faza curentă în mA (wallbox). Numai în timpul calculării regulilor de încărcare wallbox, altfel 0. Managerul de încărcare interoghează toate fazele una după alta. |
surplus_pcur | Excesul de curent PV pe fază (prezis) în mA |
surplus_wanted | 1, în cazul în care s-a aplicat deja o regulă privind excedentul PV, altfel 0 |
budget | KWh sau minute pe bugetul curent |
budget_amount | Numărul maxim de kWh sau de minute din bugetul curent |
budget_used | KWh sau minute utilizate în bugetul curent |
com_err | 1, dacă există o eroare COM, altfel 0 |
com_err2 | 1, dacă o eroare COM este prezentă mai mult de 12 secunde, altfel 0 |
reactive_power | Specificația puterii reactive în wați (dacă este acceptată de dispozitiv), valori pozitive: Inductivă, valori negative: Capacitivă |
switch_phases | Pentru cutii de perete cu comutare de fază: Comutare manuală de fază, 1 = 1 fază, 3 = 3 faze, -1 = comutare automată de fază |
departure | Ora de plecare ISO 15118 ca timestamp unitar (pentru casetele de perete care acceptă acest lucru, altfel 0) |
req_energy | ISO 15118 Energie necesară în Wh (pentru casetele de perete care acceptă acest lucru, altfel 0) |
plugin_start | Timestamp Unix, ora de introducere a cablului |
plugin_energy | Energia încărcată anterior în Wh din momentul în care cablul a fost conectat |
M1.current_l1 | Curentul contorului M1, faza 1 |
E2.import_wh | Wh consumat de EVSE E2 |
E3.power_w | Puterea actuală de încărcare a E3 în wați |
Dacă utilizați formulele pentru un contor de tip "Expression", puteți omite și ID-ul dispozitivului. Apoi, numele câmpurilor se referă la acest contor, de exemplu, "power_w" este atunci puterea acestui contor în wați. Cu ajutorul lui "dt" puteți realiza câteva funcții extinse, de exemplu, într-un contor de tip "Expression":
import_wh
": import_wh + M1.power_w * dt / 3600
actualizează energia provenită pe baza puterii din timpul ultimei actualizări(power_w * (20 - dt) + M1.power_w * dt) / 20
netezește puterea pe ultimele 20 de secunde.date
date.year | Anul curent |
date.month | Luna de la 0..11 |
date.day | Ziua de la 1..31 |
date.weekday | Ziua săptămânii SO=0, luni=1, marți=2, ... Sâmbătă=6 |
date.yearday | Ziua din an de la 0..366 |
date.hour | Ora de la 0..23 |
date.minute | Minute de la 0..60 |
date.second | Secunda de la 0..60 |
date.daysecond | A doua din această zi de la 0..86399 |
date.dayminute | Minutul din această zi de la 0..1439 |
date.dst | 0 = ora de iarnă, 1 = ora de vară |
date.timestamp | Unix timespamp, secs since 1.1.1970 |
PB (nur cFos Power Brain)
PB.input1 | S0 Input 1, 1 = activ, 0 = inactiv |
PB.input2 | S0 Input 2, 1 = activ, 0 = inactiv |
CM Variabilele managerului de încărcare
Aceste variabile pot fi setate de către administrator în secțiunea "Configurație". De exemplu, dacă administratorul setează variabila "var_x" la 1,5, CM.var_x returnează valoarea 1,5.
Variabile predefinite:
_num_încărcare: Numărul de wallbox-uri care se încarcă în prezent
_num_charging1: Numărul de wallbox-uri care se încarcă în prezent, 1 dacă nu se încarcă niciunul
_max_total_current: Curentul maxim al conexiunii casei în mA pe fază
_max_total_evse_current: Curentul maxim pentru cutiile de perete în mA pe fază
_price: Prețul curent al energiei electrice
_price_level: Nivelul actual al prețului energiei electrice, -2=foarte scump, -3= scump, -4=normal, -5= ieftin, -6=foarte ieftin
_surplus: Surplusul solar actual în wați
_org_surplus: surplusul solar așa cum ar fi fost calculat de către administratorul de taxare independent de propriile formule
_storage_home_max_capacity: Capacitatea totală a depozitului, acasă, dacă este specificată în configurația contorului, în Wh
_storage_home_capacity: Capacitatea curentă a depozitului, acasă, dacă este specificată în configurația contorului, în Wh
_storage_all_max_capacity: Capacitatea totală a depozitului, All, dacă este specificată în configurația contorului, în Wh
_storage_all_capacity: Capacitatea curentă a depozitului, All, dacă este specificată în configurația contorului, în Wh
_max_total_current_prc: Procent din curentul de încărcare total maxim disponibil. Această variabilă poate fi, de asemenea, scrisă (prin definițiile contorului și variabilele Charging Manager)
_dt: Timpul care a trecut de la ultima actualizare (în secunde).
Utilizarea obiectelor globale:
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
Notă:
În secțiunea Contoare personalizate veți găsi, de asemenea, instrucțiuni privind modul de utilizare a formulelor cu variabilele și ieșirile globale ale Charging Manager.
GM Contoare globale
GM.grid_demand | Referință de rețea |
GM.consumed | Consum |
GM.produced | Generația |
GM.consumed_evse | Consumul de automobile electronice |
GM.available_evse | Putere disponibilă |
GM.surplus | Excedent PV |
GM.storage_home | Casa de memorie |
GM.storage_all | Memorie Totul |
GM.error | Performanță prin eroare |
Utilizarea contoarelor globale
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.
În plus, doriți să limitați curentul de încărcare în ceea ce privește un contor de consum al unui apartament. În acest scop, puteți seta o regulă de încărcare cu formula 16000 - M1.current
.
M1 este contorul care măsoară consumul apartamentului. Gestionarea încărcăturii de către managerul de încărcare cFos încearcă mai întâi să furnizeze EVSE curentul maxim în raport cu puterea de conectare a casei, dar apoi îl limitează la 16A minus consumul apartamentului.
Folosind min_price(s), max_price(s), puteți determina cel mai ieftin preț al furnizorului dvs. de energie în euro, prețurile fiind căutate de la ora curentă până la maxim s secunde ale zilei sau ale zilei următoare, de exemplu min_price(25200) returnează cel mai ieftin preț până la ora 7:00 dimineața. De exemplu, puteți crea o regulă de încărcare cu condiția CM._price <= min_price(25200) pentru a încărca la ora cea mai favorabilă, dar cu condiția să porniți de la 8:00 a.m., de exemplu (presupunând un timp de încărcare de 1 oră). În mod similar, există cele două funcții min_price_secs(s) și max_price_secs(s), care returnează ora de pornire a celui mai ieftin preț în secunde din ziua începută. Puteți compara apoi aceste date cu date.daysecond, de exemplu.