menedżer ds. ładowania cFos - Formuły

Menedżer ładowania cFos umożliwia dynamiczną ocenę formuł. Funkcjonalność ta jest dostępna dla licznika typu "Wyrażenie" oraz dla reguł naliczania opłat typu "Formuła".

Można zatem skonfigurować liczniki, które obliczają wartości z innych liczników lub EVSE i utrzymują je w gotowości oraz wyświetlają je. Reguły ładowania mogą również wykorzystywać formuły do dynamicznego obliczania prądu ładowania, a także uzyskiwać dostęp do liczników i EVSE (w tym liczników typu "Expression").

Z formułami możliwe są następujące operacje:

+ - * /Dodawanie, odejmowanie, mnożenie, dzielenie
^Obliczanie potęgi, np. 10^2 = 100
min(x,y)Minimum x i y, możliwe więcej niż 2 argumenty
max(x,y)Maksymalnie x i y, możliwe więcej niż 2 argumenty
abs(x)Wartość bezwzględna x, np. abs(-2) = 2
sqrt(x)Pierwiastek kwadratowy z x

Ponadto możliwe są następujące wyrażenia logiczne:

== (równe), != (nierówne), < (mniej), <= (mniej-równe), > (większe), >= (większe-równe), ! (nie), || (logiczne Or), && (logiczne And), ? (operator warunkowy, np. x ? y : z, zwraca y jeśli x jest prawdziwe, w przeciwnym razie z)

Pozwala to np. na wyłączenie prądu w zależności od warunków: M1.current >= 6500 ? M1.current : 0 zwraca prąd M1 jeśli jest większy niż 6,5A i 0 w przeciwnym wypadku, co wstrzymuje ładowanie. Dla takich warunków możliwe jest również odpytywanie wejść (patrz poniżej)

Możliwe są następujące nazwy:

MxLicznik z identyfikatorem jednostki x, np. M1
ExEVSE z identyfikatorem urządzenia x, np. E1

Możliwy jest również dostęp do wirtualnych liczników, takich jak nadwyżka solarna, pobór z sieci lub "Power avail. for EVSEs", poprzez ustawienie licznika, a następnie użycie odpowiedniego ID urządzenia w formule.

Następnie można uzyskać dostęp do poszczególnych wartości jednostek za pomocą punktu. Są one nazywane w następujący sposób:

current_l1Prąd fazy 1 w mA
current_l2Prąd fazy 2 w mA
current_l3Prąd fazy 3 w mA
currentPrąd fazy bieżącej w mA (w przypadku reguł ładowania Charging Manager odpytuje wszystkie fazy po kolei; w przypadku liczników typu "Expression" obowiązuje odpowiednia faza, do której odnosi się formuła. Jeżeli określiliście formułę dla "Prądu L1", możecie pominąć pola dla Prądu L2 i L3. Wtedy używana jest formuła dla prądu L1)
power_vaAktualna moc w Watt/VA (w zależności od typu miernika może być tu podana moc pozorna lub moc czynna)
power_wAktualna moc czynna w watach
opower_vaWallbox: Aktualna moc oferowana w VA odniesiona do wszystkich 3 faz.
import_whEnergia pobrana w Wh
export_whWtłoczona energia w Wh
dtCzas, który upłynął od ostatniej aktualizacji (w sekundach)
inputNNumer wejścia N urządzenia, 1 = aktywny, 0 = nieaktywny
socSOC, poziom naładowania w procentach (licznik/magazyn)
txn_durationCzas trwania bieżącej transakcji w sekundach (EVSE)
txn_energyEnergia naładowania bieżącej transakcji w Wh (EVSE)
min_currentMinimalny prąd ładowania w mA (EVSE)
max_currentMaksymalny prąd ładowania w mA (EVSE)
stateStatus: 1 oczekuje, 2 podłączony, 3 ładowanie, 4 ładowanie z wentylacją, 5 błąd, 6 offline (EVSE)

Przykład
M1.current_l1Prąd licznika M1, faza 1
E2.import_whPobrana Wh przez EVSE E2
E3.power_vaAktualna moc ładowania z E3

Jeżeli wykorzystasz formuły dla miernika typu "Expression", możesz również pominąć ID urządzenia. Wtedy nazwy pól odnoszą się do tego miernika, np. 'power_va' jest wtedy mocą tego miernika w Watt/VA. Przy pomocy 'dt' można zrealizować kilka rozszerzonych funkcji, np. w mierniku typu "Expression":

  • Jako wzór dla "import_wh": import_wh + M1.power_va * dt / 3600 aktualizuje energię pozyskiwaną na podstawie mocy w poprzednim czasie aktualizacji
  • Jako wzór dla "power_va": (power_va * (20 - dt) + M1.power_va * dt) / 20 wygładza moc w ciągu ostatnich 20 sekund.

Zmienne globalne

date

date.yearRok bieżący
date.monthMiesiąc od 0..11
date.dayDzień od 1..31
date.weekdayDzień powszedni Mo=0, Tue=1, ... Sun=6
date.yeardayDzień w roku od 0..366
date.hourGodzina od 0..23
date.minuteMinuta od 0..60
date.secondDrugi od 0..60
date.daysecondDrugi dzień tego dnia od 0..86399
date.dayminuteMinuta tego dnia od 0..1439
date.dst0 = czas zimowy, 1 = czas letni

PB (cFos Power brain only)

PB.input1S0 Input 1, 1 = aktywny, 0 = nieaktywny
PB.input2S0 Input 2, 1 = aktywny, 0 = nieaktywny

CM Zmienne menedżera ds. ładowania

Zmienne te mogą być ustawione przez administratora w zakładce "Konfiguracja". Na przykład, jeśli administrator ustawi zmienną "var_x" na 1,5, CM.var_x zwraca wartość 1,5.

Zmienne predefiniowane:
_num_charging: Liczba aktualnie ładujących się wallboxów
_num_charging1: Liczba aktualnie ładujących się wallboxów, 1 jeśli żaden nie jest ładowany
_max_total_power: Maksymalna moc przyłącza domu w W
_max_total_evse_power: Maksymalna moc dla EVSE w W

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

Przykład zastosowania

Chcesz dodatkowo ograniczyć prąd ładowania w odniesieniu do licznika zużycia mieszkania. W tym celu można ustawić regułę ładowania o wzorze 16000 - M1.prąd.
M1 to licznik, który mierzy zużycie prądu przez mieszkanie. Zarządzanie obciążeniem przez cFos Charging Manager najpierw próbuje zapewnić EVSE maksymalny prąd w stosunku do mocy przyłączeniowej domu, ale następnie ogranicza go do 16A minus zużycie mieszkania.