cFos Charging Manager gør det muligt at foretage dynamisk evaluering af formler. Denne funktionalitet er tilgængelig for en måler af typen "Expression" og for opkrævningsregler af typen "Formula".
Du kan derfor oprette målere, der beregner værdier fra andre målere eller EVSE'er og holder dem klar og viser dem. Opladningsreglerne kan også bruge formler til dynamisk at beregne opladningsstrømmen og også få adgang til målere og EVSE'er (herunder målere af typen "Expression").
Følgende operationer er mulige med formlerne:
+ - * / % | Addition, subtraktion, multiplikation, division, modulus |
& | | bitvis AND og OR |
^ | Beregning af effekt, f.eks. 10^2 = 100 |
min(x,y) | Minimum af x og y, mere end 2 argumenter muligt |
max(x,y) | Højst x og y, mere end 2 argumenter muligt |
abs(x) | Absolut værdi af x, f.eks. abs(-2) = 2 |
clamp(x,min,max) | Værdi x = min (hvis x < min), x = max (hvis x > max), ellers beholder x |
round(x) | Afrund x til heltal. Eksempel: Afrunding til 1 decimal: round(10*x)/10. |
sqrt(x) | Kvadratrod af x |
exists(x) | sand, hvis variablen x findes, ellers falsk |
Desuden er følgende logiske udtryk mulige:==
(lig), !=
(ulig), <
(mindre), <=
(mindre lig), >
(større), >=
(større lig), !
(ikke), ||
(logisk eller), &&
(logisk og), ?
(betinget operatør, f.eks. x ? y : z
, returnerer y hvis x er sandt, ellers z
)
Dette gør det f.eks. muligt at slukke for strømmen afhængigt af forholdene: M1.current >= 6500 ? M1.current : 0
returnerer strømmen i M1, hvis den er større end 6,5 A, og 0 i modsat fald, hvilket sætter opladningen på pause. For sådanne betingelser er det også muligt at forespørge indgange (se nedenfor)
Følgende navne er mulige:
Mx | Måler med enheds-ID x, f.eks. M1 |
Ex | EVSE med enheds-ID x, f.eks. E1 |
Det er også muligt at få adgang til virtuelle målere, f.eks. soloverskud, netudtag eller "Power avail. for EVSEs" (tilgængelig effekt til EVSEs), ved at konfigurere måleren og derefter bruge det tilsvarende enheds-id i formlen.
Du kan derefter få adgang til de enkelte værdier af enhederne ved hjælp af punktet. Disse kaldes på følgende måde:
current_l1 | Strøm i fase 1 i mA |
current_l2 | Strøm i fase 2 i mA |
current_l3 | Strøm i fase 3 i mA |
current | Strømmen for den aktuelle fase i mA (for opladningsregler forespørger Charging Manager alle faser efter hinanden; for målere af typen "Expression" gælder den respektive fase, som formlen henviser til. Hvis du har angivet en formel for "Current L1", kan du udelade felterne for Current L2 og L3. Så anvendes formlen for strøm L1) |
power_w | Aktuel aktiv effekt i watt |
offered | Wallbox: Strøm tilbydes i mA |
import_wh | Trækket energi i Wh |
export_wh | Indsprøjtet energi i Wh |
dt | Den tid, der er gået siden sidste opdatering (i sekunder), kun for tæller "Expression", se også CM._dt. |
inputN | Indgangsnummer N på enheden, 1 = aktiv, 0 = inaktiv, N er nummeret på indgangen, begyndende med 1. |
soc | SOC, opladningsniveau i procent (tæller/hukommelse) - hvis det understøttes af enheden |
id | Enheds-id, Modbus-id |
txn_duration | Varigheden af den aktuelle transaktion i sekunder (EVSE) |
charging_dur | Faktisk opladningstid for den aktuelle transaktion i sekunder (Wallbox) |
txn_energy | Opladet energi for den aktuelle transaktion i Wh (EVSE) |
min_current | Mindste opladestrøm i mA (EVSE) |
max_current | Maksimal opladestrøm i mA (EVSE) |
state | Status: 1 venter, 2 tilsluttet, 3 oplader, 4 oplader med ventilation, 5 fejl, 6 offline (EVSE) |
cphases | Antal opladningsfaser (0-3) |
pphases | Antal forudsagte opladningsfaser (0-3) |
lb_cur_l1 | Aktuelt beregnet strøm for fase 1 i mA (wallbox). Kun under beregningen af reglerne for opladning af wallboxen, ellers 0 |
lb_cur_l2 | Aktuel beregnet strøm i fase 2 i mA (wallbox). Kun under beregningen af reglerne for opladning af wallboxen, ellers 0 |
lb_cur_l3 | Aktuelt beregnet strøm for fase 3 i mA (wallbox). Kun under beregningen af reglerne for opladning af wallboxen, ellers 0 |
lb_cur | Strøm beregnet for den aktuelle fase i mA (wallbox). Kun under beregningen af wallboxens opladningsregler, ellers 0. Charging Manager forespørger alle faser en efter en. |
surplus_pcur | PV-overskudsstrøm pr. (forudsagt) fase i mA |
surplus_wanted | 1, hvis der allerede er anvendt en PV-overskudsregel, ellers 0 |
budget | KWh eller minutter på det aktuelle budget |
budget_amount | Maksimum kWh eller minutter på det aktuelle budget |
budget_used | KWh eller minutter brugt på det aktuelle budget |
com_err | 1, hvis der er en COM-fejl, ellers 0 |
com_err2 | 1, hvis en COM-fejl er til stede i mere end 12 sek., ellers 0 |
reactive_power | Specifikation for reaktiv effekt i watt (hvis understøttet af enheden), positive værdier: Induktiv, negative værdier: Kapacitiv |
switch_phases | For wallboxe med faseskift: Manuelt faseskift, 1 = 1-faset, 3 = 3-faset, -1 = automatisk faseskift |
departure | ISO 15118 afgangstid som enhedstidsstempel (for wallboxe, der understøtter dette, ellers 0) |
req_energy | ISO 15118 Nødvendig energi i Wh (for wallboxe, der understøtter dette, ellers 0) |
plugin_start | Unix-tidsstempel, tidspunkt for isætning af kabel |
plugin_energy | Tidligere opladet energi i Wh fra det tidspunkt, hvor kablet blev tilsluttet |
M1.current_l1 | Strøm fra måler M1, fase 1 |
E2.import_wh | Forbrugt Wh fra EVSE E2 |
E3.power_w | E3's aktuelle opladningseffekt i watt |
Hvis du bruger formlerne til en måler af typen "Expression", kan du også udelade enhedens ID. Så refererer feltnavnene til denne måler, f.eks. er 'power_w' så denne målers effekt i watt. Ved hjælp af 'dt' kan du realisere nogle få udvidede funktioner, f.eks. i en måler af typen "Expression":
import_wh + M1.power_w * dt / 3600
opdaterer den indkøbte energi baseret på effekten i den seneste opdateringstid(power_w * (20 - dt) + M1.power_w * dt) / 20
udjævner effekten over de sidste 20 sekunder.date
date.year | Igangværende år |
date.month | Måned fra 0..11 |
date.day | Dag fra 1..31 |
date.weekday | Ugedag SO=0, man=1, tir=2, ... Lør=6 |
date.yearday | Dag i året fra 0..366 |
date.hour | Timer fra 0..23 |
date.minute | Minut fra 0..60 |
date.second | Andet fra 0..60 |
date.daysecond | Andet på denne dag fra 0..86399 |
date.dayminute | Minutter på denne dag fra 0..1439 |
date.dst | 0 = vintertid, 1 = sommertid |
date.timestamp | Unix timespamp, secs since 1.1.1970 |
PB (nur cFos Power Brain)
PB.input1 | S0 Input 1, 1 = aktiv, 0 = inaktiv |
PB.input2 | S0 Input 2, 1 = aktiv, 0 = inaktiv |
CM Variabler for Charging Manager
Disse variabler kan indstilles af administratoren under 'Konfiguration'. Hvis administratoren f.eks. indstiller variablen 'var_x' til 1,5, returnerer CM.var_x værdien 1,5.
Foruddefinerede variabler:
_num_opladning: Antal wallboxes, der i øjeblikket oplades
_num_charging1: Antal wallboxer, der i øjeblikket oplades, 1, hvis ingen er i gang med at oplade
_max_total_current: Maksimal strøm i husforbindelsen i mA pr. fase
_max_total_evse_current: Maksimal strøm til wallboxe i mA pr. fase
_price: nuværende elpris
_price_level: Nuværende prisniveau for elektricitet, -2=meget dyrt, -3=dyre, -4=normalt, -5=billigt, -6=meget billigt
_surplus: aktuelt soloverskud i watt
_org_surplus: Soloverskud, som Charge Manager ville have beregnet det uafhængigt af sine egne formler
_storage_home_max_capacity: Samlet kapacitet for lageret, hjemmet, hvis det er angivet i målerkonfigurationen, i Wh
_storage_home_capacity: Lagerets aktuelle kapacitet, Home, hvis det er angivet i målerens konfiguration, i Wh
_storage_all_max_capacity: Lagerets samlede kapacitet, Alle, hvis det er angivet i tællerkonfigurationen, i Wh
_storage_all_capacity: Aktuel kapacitet på lageret, Alle, hvis angivet i tællerkonfigurationen, i Wh
_max_total_current_prc: Procentdel af den tilgængelige maksimale samlede ladestrøm. Denne variabel kan også skrives (af tællerdefinitioner og Charging Manager-variabler)
_dt: Den tid, der er gået siden sidste opdatering (i sekunder).
Brug af de globale objekter:
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
Bemærk:
Under Custom Counters finder du også instruktioner i, hvordan du bruger formler med globale Charging Manager-variabler og -output.
GM Globale tællere
GM.grid_demand | Netværksreference |
GM.consumed | Forbrug |
GM.produced | Generation |
GM.consumed_evse | Forbrug af elbiler |
GM.available_evse | Tilgængelig strøm |
GM.surplus | PV-overskud |
GM.storage_home | Memory Home |
GM.storage_all | Hukommelse for alt |
GM.error | Præstation gennem fejl |
Brug af de globale tællere
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.
Du ønsker desuden at begrænse opladningsstrømmen med hensyn til en forbrugsmåler af en lejlighed. For at gøre dette kan du oprette en opladningsregel med formlen 16000 - M1.current
.
M1 er den måler, der måler lejlighedens forbrug. Belastningsstyringen i cFos Charging Manager forsøger først at forsyne EVSE'en med den maksimale strøm i forhold til husets tilslutningseffekt, men begrænser derefter denne til 16 A minus lejlighedens forbrug.
Ved hjælp af min_price(s), max_price(s) kan du bestemme den billigste pris hos din energileverandør i euro, hvor priserne søges fra det aktuelle tidspunkt til maks. s sekunder af dagen eller den følgende dag, f.eks. min_price(25200) returnerer den billigste pris indtil kl. 7.00 om morgenen. Du kan f.eks. oprette en opladningsregel med betingelsen CM._price <= min_price(25200) for at oplade på det mest gunstige tidspunkt, men med den betingelse, at du f.eks. vil starte fra kl. 8.00 (forudsat en opladningstid på 1 time). På samme måde er der de to funktioner min_price_secs(s) og max_price_secs(s), som returnerer starttidspunktet for den billigste pris i sekunder for den påbegyndte dag. Dem kan man så sammenligne med f.eks. date.daysecond.