Мениджърът за таксуване на cFos позволява динамична оценка на формулите. Тази функционалност е налична за измервателен уред от тип "Израз" и за правила за таксуване от тип "Формула".
Следователно можете да настроите измервателни уреди, които изчисляват стойности от други измервателни уреди или EVSE, поддържат ги готови и ги показват. Правилата за зареждане могат също така да използват формули за динамично изчисляване на тока на зареждане и също така да имат достъп до измервателни уреди и EVSE (включително измервателни уреди от тип "Expression").
Следните операции са възможни с формулите:
+ - * / % | Събиране, изваждане, умножение, деление, модул |
& | | побитово AND и OR |
^ | Изчисляване на мощността, напр. 10^2 = 100 |
min(x,y) | Минимум на x и y, възможни са повече от 2 аргумента |
max(x,y) | Максимум x и y, възможни са повече от 2 аргумента |
abs(x) | Абсолютна стойност на x, напр. abs(-2) = 2 |
clamp(x,min,max) | Стойност x = min (ако x < min), x = max (ако x > max), в противен случай се запазва x |
round(x) | Закръглете x до цяло число. Пример: Закръгляне до 1 знак след десетичната запетая: round(10*x)/10. |
sqrt(x) | Квадратен корен от x |
exists(x) | true, ако променливата x съществува, в противен случай false |
Освен това са възможни следните логически изрази:==
(равен), !=
(неравен), <
(по-малък), <=
(по-малък-равен), >
(по-голям), >=
(по-голям-равен), !
(не), ||
(логическо Или), &&
(логическо И), ?
(условен оператор, напр. x ? y : z
, връща y, ако x е вярно, в противен случай z
)
Това позволява, например, токът да се изключва в зависимост от условията: M1.current >= 6500 ? M1.current : 0
връща тока на M1, ако той е по-голям от 6,5A, и 0 в противен случай, което спира зареждането. За такива условия е възможно също така да се направи запитване към входовете (вж. по-долу)
Възможни са следните имена:
Mx | Измервателен уред с идентификационен номер x, напр. M1 |
Ex | EVSE с идентификатор на устройството x, напр. E1 |
Възможен е и достъп до виртуални измервателни уреди, като например излишък от слънчева енергия, потребление от мрежата или "Power avail. for EVSEs" (мощност, налична за стенни кутии), чрез настройване на измервателния уред и след това използване на съответния идентификатор на устройството във формулата.
След това можете да получите достъп до отделните стойности на единиците чрез точката. Те се извикват по следния начин:
current_l1 | Ток на фаза 1 в mA |
current_l2 | Ток на фаза 2 в mA |
current_l3 | Ток на фаза 3 в mA |
current | Ток на текущата фаза в mA (за правилата за зареждане мениджърът за зареждане задава запитвания за всички фази една след друга; за измервателни уреди от тип "Expression" се прилага съответната фаза, за която се отнася формулата. Ако сте задали формула за "Current L1", можете да пропуснете полетата за Current L2 и L3. Тогава се използва формулата за ток L1) |
power_w | Текуща активна мощност във ватове |
offered | Стенна кутия: Предлаган ток в mA |
import_wh | Изразходвана енергия в Wh |
export_wh | Впръскана енергия в Wh |
dt | Времето, което е изминало от последната актуализация (в секунди) |
inputN | Номер на входа N на устройството, 1 = активен, 0 = неактивен |
soc | SOC, ниво на зареждане в проценти (измервателен уред/хранилище) |
id | Идентификатор на устройството, Modbus ID |
txn_duration | Продължителност на текущата транзакция в секунди (EVSE) |
charging_dur | Действително време за зареждане на текущата транзакция в секунди (Wallbox) |
txn_energy | Заредена енергия на текущата транзакция в Wh (EVSE) |
min_current | Минимален ток на зареждане в mA (EVSE) |
max_current | Максимален ток на зареждане в mA (EVSE) |
state | Статус: 1 изчакване, 2 включено, 3 зареждане, 4 зареждане с вентилация, 5 грешка, 6 офлайн (EVSE) |
cphases | Брой фази на зареждане (0-3) |
pphases | Брой на прогнозираните фази на зареждане (0-3) |
surplus_pcur | PV излишък на ток за (прогнозна) фаза в mA |
surplus_wanted | 1, ако вече е приложено правило за PV излишък, в противен случай 0 |
budget | KWh за текущия бюджет |
budget_amount | При текущия бюджет максимален брой kWh |
budget_used | KWh, използвани за текущия бюджет |
com_err | 1, ако има грешка в COM, в противен случай 0 |
com_err2 | 1, ако грешката COM е налице за повече от 12 сек, в противен случай 0 |
M1.current_l1 | Ток на измервателния уред M1, фаза 1 |
E2.import_wh | Консумирани Wh от EVSE E2 |
E3.power_w | Текуща мощност на зареждане на E3 във ватове |
Ако използвате формулите за измервателен уред от тип "Expression", можете също така да пропуснете идентификатора на устройството. Тогава имената на полетата се отнасят за този измервателен уред, например "power_w" е мощността на този уред във ватове. С помощта на 'dt' можете да реализирате няколко разширени функции, напр. в измервателен уред от тип "Expression":
import_wh + M1.power_w * dt / 3600
актуализира енергията на източника въз основа на мощността през последното време на актуализация(power_w * (20 - dt) + M1.power_w * dt) / 20
изглажда мощността през последните 20 секунди.date
date.year | Текуща година |
date.month | Месец от 0..11 |
date.day | Ден от 1..31 |
date.weekday | Седмичен ден Mo=0, Tue=1, ... Не=6 |
date.yearday | Ден в годината от 0..366 |
date.hour | Час от 0..23 |
date.minute | Минута от 0..60 |
date.second | Секунда от 0..60 |
date.daysecond | Втора част на този ден от 0..86399 |
date.dayminute | Минута от този ден от 0..1439 |
date.dst | 0 = зимно време, 1 = лятно време |
PB (nur cFos Power Brain)
PB.input1 | S0 Input 1, 1 = активен, 0 = неактивен |
PB.input2 | S0 Input 2, 1 = активен, 0 = неактивен |
CM Променливи на мениджъра за зареждане
Тези променливи могат да бъдат зададени от администратора в раздел "Конфигурация". Например, ако администраторът зададе променливата 'var_x' на 1,5, CM.var_x връща стойността 1,5.
Предварително зададени променливи:
_num_charging: Брой стенни кутии, които се зареждат в момента
_num_charging1: Брой на зареждащите се в момента wallbox, 1, ако никой не се зарежда
_max_total_current: Максимален ток на връзката на къщата в mA на фаза
_max_total_evse_current: Максимален ток за стенни кутии в mA на фаза
_price: Текуща цена на електроенергията
_price_level: Текущо ниво на цените на електроенергията, -2=много скъпо, -3=скъпо, -4=нормално, -5=евтино, -6=много евтино
_surplus: Текущ излишък на слънчева енергия във ватове
_org_surplus: Слънчевият излишък, който би бил изчислен от мениджъра по таксуването независимо от неговите собствени формули
Използване на глобалните обекти:
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
Забележка:
В раздела Custom Counters (Потребителски броячи) ще намерите и инструкции за използване на формули с глобални променливи и изходи на Charging Manager.
GM Глобални броячи
GM.grid_demand | Референтна мрежа |
GM.consumed | Потребление |
GM.produced | Поколение |
GM.consumed_evse | Потребление на електронни автомобили |
GM.available_evse | Налична мощност |
GM.surplus | PV излишък |
GM.storage_home | Memory Home |
GM.storage_all | Памет Всичко |
GM.error | Изпълнение чрез грешки |
Използване на глобалните броячи
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.
Искате допълнително да ограничите тока на зареждане по отношение на измервателния уред за потребление на апартамент. За тази цел можете да създадете правило за зареждане с формулата 16000 - M1.current
.
M1 е електромерът, който измерва потреблението на апартамента. Управлението на натоварването на мениджъра за зареждане на cFos първо се опитва да осигури на EVSE максимален ток спрямо мощността на домашната връзка, но след това го ограничава до 16 A минус потреблението на апартамента.