Dokumentáció

cFos Charging Manager - Képletek

A cFos Charging Manager lehetővé teszi a képletek dinamikus kiértékelését. Ez a funkció a "Kifejezés" típusú mérő és a "Képlet" típusú díjszabályok esetében érhető el.

Ezért olyan mérőket állíthat be, amelyek más mérők vagy EVSE-k értékeit kiszámítják, készenlétben tartják és megjelenítik azokat. A töltési szabályok képleteket is használhatnak a töltési áram dinamikus kiszámításához, valamint mérőkhöz és EVSE-khez is hozzáférhetnek (beleértve a "Expression" típusú mérőket is).

A képletekkel a következő műveletek végezhetők:

+ - * / %Összeadás, kivonás, szorzás, osztás, modulus
& |bitenkénti ÉS és VAGY
^Teljesítményszámítás, pl. 10^2 = 100
min(x,y)X és y minimum, 2-nél több érv lehetséges
max(x,y)Maximum x és y, több mint 2 argumentum lehetséges
abs(x)X abszolút értéke, pl. abs(-2) = 2
clamp(x,min,max)Érték x = min (ha x < min), x = max (ha x > max), különben marad x
round(x)Kerekítse x-et egész számra. Példa: Kerekítés 1 tizedesjegyre: round(10*x)/10.
sqrt(x)X négyzetgyöke
exists(x)true, ha az x változó létezik, egyébként false

Továbbá a következő logikai kifejezések lehetségesek:

== (egyenlő), != (egyenlőtlen), < (kisebb), <= (kisebb-egyenlőtlen), > (nagyobb), >= (nagyobb-egyenlőtlen), ! (nem), || (logikai Vagy), && (logikai És), ? (feltételes operátor, pl. x ? y : z, y-t ad vissza, ha x igaz, különben z-t)

Ez lehetővé teszi például, hogy az áramot a körülményektől függően kikapcsolják: M1.current >= 6500 ? M1.current : 0 visszaadja az M1 áramát, ha az nagyobb, mint 6,5A, egyébként pedig 0, ami szünetelteti a töltést. Ilyen feltételek esetén a bemenetek lekérdezése is lehetséges (lásd alább)

A következő nevek lehetségesek:

MxX egységazonosítóval rendelkező mérő, pl. M1
ExEVSE x eszközazonosítóval, pl. E1

Lehetőség van virtuális mérőkhöz is hozzáférni, mint például a napenergia-többlet, a hálózati fogyasztás vagy a "Power avail. for EVSEs" (a wallboxok számára rendelkezésre álló teljesítmény), a mérő beállításával, majd a megfelelő eszközazonosító használatával a képletben.

Ezután a pont segítségével elérheti az egységek egyes értékeit. Ezeket a következőképpen hívjuk meg:

current_l1Az 1. fázis árama mA-ben
current_l2A 2. fázis árama mA-ben
current_l3A 3. fázis árama mA-ben
currentAz aktuális fázis árama mA-ben (a töltési szabályok esetében a töltéskezelő az összes fázist egymás után lekérdezi; a "Kifejezés" típusú mérők esetében az adott fázisra vonatkozik, amelyre a képlet vonatkozik. Ha az "Áram L1" képletet adta meg, akkor az "Áram L2" és "L3" mezők elhagyhatók. Ekkor az L1 áramra vonatkozó képletet kell használni)
power_wAktuális aktív teljesítmény wattban
offeredWallbox: MA-ben kínált áram
import_whFelvett energia Wh-ban
export_whBefecskendezett energia Wh-ban
dtAz utolsó frissítés óta eltelt idő (másodpercben), csak a "Kifejezés" számláló esetében, lásd még CM._dt.
inputNA készülék N bemeneti száma, 1 = aktív, 0 = inaktív, N a bemenet száma, 1-gyel kezdődően.
socSOC, töltöttségi szint százalékban (számláló/memória) - ha a készülék támogatja
idEszköz azonosító, Modbus azonosító
txn_durationAz aktuális tranzakció időtartama másodpercben (EVSE)
charging_durAz aktuális tranzakció tényleges töltési ideje másodpercben (Wallbox)
txn_energyAz aktuális tranzakció töltött energiája Wh-ban (EVSE)
min_currentMinimális töltési áram mA-ben (EVSE)
max_currentMaximális töltési áram mA-ben (EVSE)
stateÁllapot: töltés, 4 töltés szellőztetéssel, 5 hiba, 6 offline (EVSE)
cphasesA töltési fázisok száma (0-3)
pphasesAz előre jelzett töltési fázisok száma (0-3)
lb_cur_l1Az 1. fázis számított áramerőssége mA-ben (fali doboz). Csak a wallbox töltési szabályainak számítása során, egyébként 0
lb_cur_l2A 2. fázis aktuálisan kiszámított árama mA-ben (fali doboz). Csak a wallbox töltési szabályainak kiszámítása során, egyébként 0
lb_cur_l3A 3. fázis számított áramerőssége mA-ben (fali doboz). Csak a wallbox töltési szabályainak kiszámítása során, egyébként 0
lb_curAz áramfázisra kiszámított áram mA-ben (fali doboz). Csak a wallbox töltési szabályainak kiszámítása során, egyébként 0. A Charging Manager az összes fázist egymás után lekérdezi.
surplus_pcurPV többletáram (előre jelzett) fázisonként mA-ben
surplus_wanted1, ha már alkalmaztak PV többlet szabályt, egyébként 0
budgetKWh vagy percek a jelenlegi költségvetésben
budget_amountMaximális kWh vagy percek az aktuális költségvetésben
budget_usedKWh vagy a jelenlegi költségvetésben felhasznált percek
com_err1, ha COM hiba van, egyébként 0
com_err21, ha a COM hiba 12 másodpercnél hosszabb ideig áll fenn, egyébként 0
reactive_powerReaktív teljesítmény specifikáció wattban (ha a készülék támogatja), pozitív értékek: Induktív, negatív értékek: Kapacitív
switch_phasesFázisváltós fali szekrényekhez: Kézi fázisváltás, 1 = 1 fázis, 3 = 3 fázis, -1 = automatikus fázisváltás
departureISO 15118 indulási idő egységnyi időbélyegzőként (az ezt támogató wallboxok esetében, egyébként 0)
req_energyISO 15118 Szükséges energia Wh-ban (az ezt támogató wallboxok esetében, egyébként 0)
plugin_startUnix időbélyegző, a kábel behelyezésének időpontja
plugin_energyKorábban feltöltött energia Wh-ban a kábel csatlakoztatásának időpontjától számítva

Példa
M1.current_l1Az M1 mérőműszer árama, 1. fázis
E2.import_whAz EVSE E2 fogyasztása Wh
E3.power_wAz E3 jelenlegi töltési teljesítménye wattban

Ha a "Kifejezés" típusú mérőre vonatkozó képleteket használja, a készülék azonosítóját is elhagyhatja. Ekkor a mezőnevek erre a mérőre vonatkoznak, pl. a "power_w" ekkor a mérő teljesítménye wattban. A 'dt' segítségével néhány kiterjesztett függvényt valósíthat meg, pl. egy "Expression" típusú mérőben:

  • Az "import_wh" képleteként: import_wh + M1.power_w * dt / 3600 frissíti a beszerzett energiát az elmúlt frissítési idő alatt mért teljesítmény alapján
  • A "power_w" képlet: (power_w * (20 - dt) + M1.power_w * dt) / 20 az utolsó 20 másodperc teljesítményét simítja.

Globális változók

date

date.yearTárgyév
date.monthHónap 0..11-től
date.dayNap 1..31-től
date.weekdayHétköznap SO=0, Mon=1, Tue=2, ... Sat=6
date.yeardayNap az évben 0..366-tól kezdve
date.hourÓra 0..23-tól
date.minutePerc 0..60-tól
date.secondMásodperc 0..60-tól
date.daysecondA mai nap második napja 0..86399-től
date.dayminuteA nap percei 0..1439-től kezdődően
date.dst0 = téli időszámítás, 1 = nyári időszámítás
date.timestampUnix timespamp, secs since 1.1.1970

PB (nur cFos Power Brain)

PB.input1S0 Input 1, 1 = aktív, 0 = inaktív
PB.input2S0 Input 2, 1 = aktív, 0 = inaktív

CM Charging Manager változók

Ezeket a változókat az adminisztrátor állíthatja be a 'Konfiguráció' menüpont alatt. Ha például az adminisztrátor a 'var_x' változót 1,5-re állítja, a CM.var_x 1,5 értéket ad vissza.

Előre meghatározott változók:
_num_charging: A jelenleg töltő wallboxok száma
_num_charging1: A jelenleg töltő wallboxok száma, 1, ha egyik sem töltődik
_max_total_current: A házcsatlakozás maximális áramerőssége fázisonként mA-ben
_max_total_evse_current: A fali dobozok maximális áramerőssége fázisonként mA-ben
_ár: Jelenlegi villamosenergia-ár
_price_level: A villamos energia jelenlegi árszintje, -2=nagyon drága, -3=drága, -4=normális, -5=olcsó, -6=nagyon olcsó
_többlet: Jelenlegi napenergia-többlet wattban kifejezve
_org_surplus: a napenergia többlete, amelyet a díjkezelő a saját képleteitől függetlenül számított volna ki
_storage_home_max_capacity: A tároló teljes kapacitása, ha a mérő konfigurációjában meg van adva, Wh-ban
_storage_home_capacity: A tároló jelenlegi kapacitása, Home, ha a mérő konfigurációjában meg van adva, Wh-ban
_storage_all_max_capacity: A tároló teljes kapacitása, All, ha a számláló konfigurációjában meg van adva, Wh-ban
_storage_all_capacity: A tároló jelenlegi kapacitása, All, ha a számláló konfigurációjában meg van adva, Wh-ban
_max_total_current_prc: A rendelkezésre álló maximális teljes töltési áram százalékos aránya. Ez a változó (a számláló definíciói és a Charging Manager változók segítségével) a következő módon is leírható
_dt: Az utolsó frissítés óta eltelt idő (másodpercben).

A globális objektumok használata:
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
Megjegyzés:
Az Egyéni számlálók menüpontban talál útmutatást a globális Charging Manager változókkal és kimenetekkel kapcsolatos képletek használatára vonatkozóan is.

GM Globális számlálók

GM.grid_demandHálózati hivatkozás
GM.consumedFogyasztás
GM.producedGeneráció
GM.consumed_evseFogyasztás e-autók
GM.available_evseRendelkezésre álló teljesítmény
GM.surplusPV többlet
GM.storage_homeMemory Home
GM.storage_allMemória Minden
GM.errorTeljesítmény a hibán keresztül

A globális számlálók használata
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.

Alkalmazási példa

A lakás fogyasztásmérője tekintetében a töltési áramot is korlátozni szeretné. Ehhez beállíthat egy töltési szabályt a 16000 - M1.current képlettel.
M1 a lakás fogyasztását mérő mérőműszer. A cFos Charging Manager terhelésmenedzsmentje először megpróbálja az EVSE-t a maximális árammal ellátni a házi csatlakozási teljesítményhez képest, de ezt követően ezt 16A-ra korlátozza, csökkentve a lakás fogyasztásával.

Funkciók

A min_price(s), max_price(s) segítségével meghatározhatja az energiaszolgáltatója legolcsóbb árát euróban, ahol az árakat az aktuális időponttól a nap vagy a következő nap maximum s másodpercéig keresi, pl. a min_price(25200) a reggel 7:00 óráig érvényes legolcsóbb árat adja vissza. Létrehozhat például egy töltési szabályt a CM._ár <= min_ár(25200) feltétellel, hogy a legkedvezőbb időpontban töltsön, de azzal a feltétellel, hogy például reggel 8:00 órától akar elindulni (1 órás töltési időt feltételezve). Hasonlóképpen létezik a két függvény min_price_secs(s) és max_price_secs(s), amelyek a megkezdett nap legolcsóbb árának kezdő időpontját adják vissza másodpercben kifejezve. Ezeket aztán összehasonlíthatjuk például a date.daysecond értékkel.