Мениджърът за таксуване на 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 |
sqrt(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_va | Мощност на тока във ватове/VA (в зависимост от типа на измервателния уред тук може да се посочи видимата или активната мощност) |
power_w | Текуща активна мощност във ватове |
opower_va | Стенна кутия: Предлаганата текуща мощност във VA за всички 3 фази. |
import_wh | Изразходвана енергия в Wh |
export_wh | Впръскана енергия в Wh |
dt | Времето, което е изминало от последната актуализация (в секунди) |
inputN | Номер на входа N на устройството, 1 = активен, 0 = неактивен |
soc | SOC, ниво на зареждане в проценти (измервателен уред/хранилище) |
id | Идентификатор на устройството, Modbus ID |
txn_duration | Продължителност на текущата транзакция в секунди (EVSE) |
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) |
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_va | Текуща мощност на зареждане от E3 |
Ако използвате формулите за измервателен уред от тип "Expression", можете също така да пропуснете идентификатора на устройството. Тогава имената на полетата се отнасят за този измервателен уред, например "power_va" е мощността на този уред във ватове/VA. Можете да използвате 'dt', за да реализирате няколко разширени функции, напр. в измервателен уред от тип "Expression" (Израз):
import_wh + M1.power_va * dt / 3600
актуализира енергията на източника въз основа на мощността през последното време на актуализация(power_va * (20 - dt) + M1.power_va * 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 (cFos Power brain only)
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: Слънчевият излишък, който би бил изчислен от мениджъра по таксуването независимо от неговите собствени формули
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
Искате допълнително да ограничите тока на зареждане по отношение на измервателния уред за потребление на апартамент. За тази цел можете да създадете правило за зареждане с формулата 16000 - M1.current
.
M1 е електромерът, който измерва потреблението на апартамента. Управлението на натоварването на мениджъра за зареждане на cFos първо се опитва да осигури на EVSE максимален ток спрямо мощността на домашната връзка, но след това го ограничава до 16 A минус потреблението на апартамента.