Documentație

cFos Charging Manager - Formule

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:

MxContor cu ID-ul unității x, de exemplu M1
ExEVSE 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_l1Curentul fazei 1 în mA
current_l2Curentul fazei 2 în mA
current_l3Curentul fazei 3 în mA
currentCurentul 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_wPuterea activă curentă în wați
offeredWallbox: Curent oferit în mA
import_whEnergie consumată în Wh
export_whEnergie injectată în Wh
dtTimpul care a trecut de la ultima actualizare (în secunde), numai pentru contorul "Expression", a se vedea și CM._dt.
inputNNumărul de intrare N al dispozitivului, 1 = activ, 0 = inactiv, N este numărul de intrare, începând cu 1.
socSOC, nivelul de încărcare în procente (contor/memorie) - dacă este acceptat de dispozitiv
idID dispozitiv, ID Modbus
txn_durationDurata tranzacției curente în secunde (EVSE)
charging_durTimpul real de încărcare a tranzacției curente în secunde (Wallbox)
txn_energyEnergia încărcată a tranzacției curente în Wh (EVSE)
min_currentCurentul minim de încărcare în mA (EVSE)
max_currentCurentul maxim de încărcare în mA (EVSE)
stateStare: 1 în așteptare, 2 conectat, 3 încărcând, 4 încărcând cu ventilație, 5 eroare, 6 offline (EVSE)
cphasesNumărul de faze de încărcare (0-3)
pphasesNumărul de faze de încărcare preconizate (0-3)
lb_cur_l1Curentul curentului calculat al fazei 1 în mA (wallbox). Numai în timpul calculării regulilor de încărcare a wallbox-ului, altfel 0
lb_cur_l2Curentul 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_l3Curentul curentului calculat al fazei 3 în mA (wallbox). Numai în timpul calculării regulilor de încărcare a wallbox-ului, altfel 0
lb_curCurentul 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_pcurExcesul de curent PV pe fază (prezis) în mA
surplus_wanted1, în cazul în care s-a aplicat deja o regulă privind excedentul PV, altfel 0
budgetKWh sau minute pe bugetul curent
budget_amountNumărul maxim de kWh sau de minute din bugetul curent
budget_usedKWh sau minute utilizate în bugetul curent
com_err1, dacă există o eroare COM, altfel 0
com_err21, dacă o eroare COM este prezentă mai mult de 12 secunde, altfel 0
reactive_powerSpecificația puterii reactive în wați (dacă este acceptată de dispozitiv), valori pozitive: Inductivă, valori negative: Capacitivă
switch_phasesPentru cutii de perete cu comutare de fază: Comutare manuală de fază, 1 = 1 fază, 3 = 3 faze, -1 = comutare automată de fază
departureOra de plecare ISO 15118 ca timestamp unitar (pentru casetele de perete care acceptă acest lucru, altfel 0)
req_energyISO 15118 Energie necesară în Wh (pentru casetele de perete care acceptă acest lucru, altfel 0)
plugin_startTimestamp Unix, ora de introducere a cablului
plugin_energyEnergia încărcată anterior în Wh din momentul în care cablul a fost conectat

Exemplu
M1.current_l1Curentul contorului M1, faza 1
E2.import_whWh consumat de EVSE E2
E3.power_wPuterea 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":

  • Ca o formulă pentru " import_wh ": import_wh + M1.power_w * dt / 3600 actualizează energia provenită pe baza puterii din timpul ultimei actualizări
  • Ca o formulă pentru "power_w": (power_w * (20 - dt) + M1.power_w * dt) / 20 netezește puterea pe ultimele 20 de secunde.

Variabile globale

date

date.yearAnul curent
date.monthLuna de la 0..11
date.dayZiua de la 1..31
date.weekdayZiua săptămânii SO=0, luni=1, marți=2, ... Sâmbătă=6
date.yeardayZiua din an de la 0..366
date.hourOra de la 0..23
date.minuteMinute de la 0..60
date.secondSecunda de la 0..60
date.daysecondA doua din această zi de la 0..86399
date.dayminuteMinutul din această zi de la 0..1439
date.dst0 = ora de iarnă, 1 = ora de vară
date.timestampUnix timespamp, secs since 1.1.1970

PB (nur cFos Power Brain)

PB.input1S0 Input 1, 1 = activ, 0 = inactiv
PB.input2S0 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_demandReferință de rețea
GM.consumedConsum
GM.producedGenerația
GM.consumed_evseConsumul de automobile electronice
GM.available_evsePutere disponibilă
GM.surplusExcedent PV
GM.storage_homeCasa de memorie
GM.storage_allMemorie Totul
GM.errorPerformanță 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.

Exemplu de aplicație

Î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.

Funcții

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.