cFos Charging Manager - formules

De cFos Charging Manager maakt de dynamische evaluatie van formules mogelijk. Deze functionaliteit is beschikbaar voor een teller van het type "Expressie" en voor laadregels van het type "Formule".

U kunt dus meters instellen die waarden berekenen van andere meters of wandkasten en deze gereed houden en weergeven. De laadregels kunnen ook dynamisch de laadstroom berekenen met behulp van formules en ook toegangsmeters en wallboxen (inclusief meters van het type "Expressie").

Met de formules zijn de volgende bewerkingen mogelijk:

+ - * /Optellen, aftrekken, vermenigvuldigen, delen
^Vermogensberekening, bijv. 10 ^ 2 = 100
min(x,y)Minimaal x en y, meer dan 2 argumenten mogelijk
max(x,y)Maximaal x en y, meer dan 2 argumenten mogelijk
abs(x)Absoluut aantal x, bijv. abs (-2) = 2
sqrt(x)Vierkantswortel van x

De volgende logische uitdrukkingen zijn ook mogelijk:

== (gelijk aan) != (niet gelijk aan), < (kleiner dan), <= (kleiner dan of gelijk aan), > (groter dan), >= (groter dan of gelijk aan) ! (niet), || (logisch of), && (logisch en) ? (Voorwaardelijke operator, x ? y : z, geeft y terug als x waar is, anders z)

Hierdoor kan bijvoorbeeld de stroom afhankelijk van de omstandigheden worden uitgeschakeld: M1.current >= 6500 ? M1.current : 0 levert de stroom van M1 als deze groter is dan 6,5A en anders 0, waardoor het opladen wordt onderbroken. Voor dergelijke omstandigheden is het ook mogelijk om invoer op te vragen (zie hieronder)

De volgende namen zijn mogelijk:

MxTeller met apparaat-ID x, bijv. M1
ExEVSE met apparaat-ID x, bijv. E1

Het is ook mogelijk om toegang te krijgen tot virtuele meters zoals zonne-overschot, gekochte elektriciteit of "Power available for EVSE's" (power available for wall boxes) door de meter in te stellen en vervolgens de bijbehorende apparaat-ID in de formule te gebruiken.

Individuele waarden van de apparaten zijn dan toegankelijk via een punt. Deze worden als volgt genoemd:

current_l1Fase 1 stroom in mA
current_l2Fase 2 stroom in mA
current_l3Fase 3 stroom in mA
currentStroom van de huidige fase in mA (bij laadregels vraagt de Charging Manager alle fasen na elkaar af; bij meters van het type "Expressie" geldt de respectievelijke fase waarop de formule betrekking heeft. Als u een formule heeft opgegeven voor " Current L1", kunt u de velden voor stream L2 en L3 weglaten. Dan wordt de formule voor stream L1 gebruikt)
power_vaHuidig vermogen in watt/VA (afhankelijk van het type meter kan hier schijnbaar vermogen of werkelijk vermogen worden geleverd)
import_whGerelateerde energie in Wh
export_whIngevoerde energie in Wh
dtDe tijd sinds de laatste laatste update (in seconden)
inputNInvoer nummer N van het apparaat, 1 = actief, 0 = inactief
socSOC, laadniveau in procenten (teller/geheugen)
txn_durationDuur van de huidige transactie in seconden (wallbox)
txn_energyOpgeladen energie van de huidige transactie in Wh (wallbox)

voorbeeld
M1.current_l1Stroom van meter M1, fase 1
E2.import_whGebruikte Wh van de EVSE E2
E3.power_vaHuidig laadvermogen van E3

Als u de formules voor een teller van het type "Expressie" gebruikt, kunt u de apparaat-ID weglaten. Dan verwijzen de veldnamen naar deze meter, bv 'power_va' is dan het vermogen van deze meter in watt/VA. Met 'dt' kun je een aantal extra functies implementeren, bijvoorbeeld in een teller van het type "Expressie":

  • Als formule voor 'import_wh': import_wh + M1.power_va * dt / 3600 werkt de opgenomen energie bij op basis van het vermogen tijdens de laatste updatetijd
  • Als formule voor 'power_va': (power_va * (20 - dt) + M1.power_va * dt) / 20 verzacht het vermogen over de laatste 20 seconden.

globale variabelen

date

date.yearhuidige jaar
date.monthmaand vanaf 0..11
date.daydag vanaf 1..31
date.weekdayDag van de week ma=0, di=1, ... zo=6
date.yeardaydag van het jaar vanaf 0..366
date.houruur vanaf 0..23
date.minuteminuten van 0..60
date.secondtweede van 0..60
date.daysecondTweede van deze dag van 0..86399
date.dayminuteMinuut van deze dag vanaf 0..1439
date.dst0 = wintertijd, 1 = zomertijd

PB (cFos Power brain only)

PB.input1S0 Input 1, 1 = actief, 0 = inactief
PB.input2S0 Input 2, 1 = actief, 0 = inactief

CMVariabelen laadbeheer

Deze variabelen kunnen door de beheerder worden ingesteld onder "Configuratie". Als de beheerder bijvoorbeeld de variabele 'var_x' instelt op 1.5, retourneert CM.var_x de waarde 1.5.

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

Toepassingsvoorbeeld

U wilt bij een verbruiksmeter in een appartement bovendien de laadstroom begrenzen. Om dit te doen, kunt u 16000 - M1.current
M1 is de meter die het verbruik van het appartement meet. Het load management van de cFos Charging Manager probeert eerst de wallbox te voorzien van de maximale stroom met betrekking tot het huisaansluitvermogen, maar beperkt dit vervolgens tot 16A minus het appartementsverbruik.