Документација

cFos Менаџер за полнење - формули

Менаџерот за полнење на cFos овозможува динамична евалуација на формулите. Оваа функционалност е достапна за бројач од типот "Израз" и за правила за вчитување од типот "Формула".

Така, можете да поставите метри што пресметуваат вредности од други метри или wallидни кутии и да ги чувате подготвени и да ги прикажете. Правилата за полнење, исто така, можат динамично да ја пресметаат струјата за полнење користејќи формули и, исто така, да пристапат до метри и wallидни кутии (вклучувајќи метри од типот "Изразување").

Следниве операции се можни со формулите:

+ - * / %Собирање, одземање, множење, делење, модул
& |по малку И и ИЛИ
^Пресметка на моќност, на пр. 10 ^ 2 = 100
min(x,y)Минимум x и y, можни се повеќе од 2 аргументи
max(x,y)Максимум од x и y, можни се повеќе од 2 аргументи
abs(x)Апсолутна количина на x, на пр. Апс (-2) = 2
clamp(x,min,max)Вредност x = min (ако x < min), x = max (ако x > max), инаку задржи x
round(x)Заокружете го x до цел број. Пример: заокружете до 1 децимално место: круг(10*x)/10.
sqrt(x)Квадратен корен на x
exists(x)точно ако постои променливата x, инаку неточно

Следниве логички изрази се исто така можни:

== (еднакво на) != (не е еднакво на), < (помало од), <= (помало или еднакво на), > (поголемо од), >= (поголемо или еднакво на) ! (не), || (логично или), && (логично и) ? (Условен оператор, x ? y : z, враќа y ако x е точно, инаку z)

Ова овозможува, на пример, исклучување на струјата во зависност од условите: M1.current >= 6500 ? M1.current : 0 ја напојува струјата на M1 ако е поголема од 6,5A и 0 во спротивно, што го паузира полнењето. За такви услови, можно е и барање за влезови (види подолу)

Следниве имиња се можни:

MxБројач со ID на уредот x, на пр. M1
ExEVSE со уред ID, на пр. E1

Исто така, можно е да се пристапи до виртуелни броила, како што се соларниот вишок, купената електрична енергија или „Power avail. for EVSEs“ (моќта достапна за wallboxes) со поставување на мерачот и потоа користење на соодветниот ID на уредот во формулата.

До индивидуалните вредности на уредите потоа може да се пристапи со помош на точка. Тие се нарекуваат како што следува:

current_l1Фаза 1 струја во mA
current_l2Фаза 2 струја во mA
current_l3Фаза 3 струја во mA
currentСтруја на тековната фаза во mA (со правила за полнење, Менаџерот за полнење ги прашува сите фази една по друга; со метри од типот "Израз", се применува соодветната фаза на која се однесува формулата. Ако сте навеле формула за " Тековен L1 ", можете да ги изоставите полињата за потокот L2 и L3. Потоа се користи формулата за поток L1)
power_wТековната активна моќност во вати
offeredWallbox: Моментално достапна струја во mA
import_whПоврзана енергија во Wh
export_whЕнергија внесена во Wh
dtВремето што поминало од последното ажурирање (во секунди), само за бројачот „Израз“, видете исто така CM._dt.
inputNВлезен број N на уредот, 1 = активен, 0 = неактивен, N е бројот на влезот, почнувајќи од 1.
socSOC, ниво на полнење во проценти (бројач/меморија) - ако е поддржано од уредот
idID на уред, ID на Modbus
txn_durationВреметраење на тековната трансакција во секунди (wallbox)
charging_durРеално време на вчитување на тековната трансакција во секунди (Wallbox)
txn_energyНаплатена енергија на тековната трансакција во Wh (wallbox)
min_currentМинимална струја на полнење во mA (EVSE)
max_currentМаксимална струја на полнење во mA (EVSE)
stateСтатус: 1 чекање, 2 приклучено, 3 полнење, 4 полнење со вентилација, 5 грешка, 6 офлајн (EVSE)
cphasesБрој на фази на вчитување (0-3)
pphasesБрој на предвидени фази на вчитување (0-3)
lb_cur_l1Тековна пресметана струја на фаза 1 во mA (wallbox). Само додека ги пресметувате правилата за полнење на Wallbox, во спротивно 0
lb_cur_l2Тековна пресметана струја на фаза 2 во mA (wallbox). Само додека ги пресметувате правилата за полнење на Wallbox, во спротивно 0
lb_cur_l3Тековна пресметана струја на фаза 3 во mA (wallbox). Само додека ги пресметувате правилата за полнење на Wallbox, во спротивно 0
lb_curТековно пресметана струја на тековната фаза во mA (wallbox). Само за време на пресметката на правилата за полнење Wallbox, во спротивно 0. Управникот за полнење ги прашува сите фази една по друга.
surplus_pcurPV вишок струја по (предвидена) фаза во mA
surplus_wanted1 ако веќе е применето правило за вишок на PV, во спротивно 0
budgetkWh или минути на тековниот буџет
budget_amountНа тековниот буџет максимум kWh или минути
budget_usedkWh или минути искористени на тековниот буџет
com_err1 ако има грешка COM, во спротивно 0
com_err21 ако има грешка COM подолга од 12 секунди, во спротивно 0
reactive_powerСпецификација за реактивна моќност во вати (ако уредот го поддржува ова), позитивни вредности: индуктивни, негативни вредности: капацитивни
switch_phasesЗа ѕидни кутии со фазно префрлување: Рачно префрлување фаза, 1 = 1-фаза, 3 = 3-фаза, -1 = автоматско префрлување фаза
departureISO 15118 време на поаѓање како единица временска ознака (за ѕидни кутии што го поддржуваат ова, инаку 0)
req_energyISO 15118 Потребна енергија во Wh (за ѕидни кутии што го поддржуваат ова, во спротивно 0)
plugin_startВременски печат на Unix, време на вметнување кабел
plugin_energyЕнергијата се полни досега во Wh од моментот кога кабелот беше приклучен

пример
M1.current_l1Струја на метар М1, фаза 1
E2.import_whКористен Wh од EVSE E2
E3.power_wТековна моќност на полнење од E3 во вати

Ако ги користите формулите за бројач од типот „Израз“, можете исто така да го испуштите ID на уредот. Тогаш имињата на полињата се однесуваат на овој метар, на пример, „power_w“ е тогаш моќноста на овој метар во вати. Користејќи „dt“ можете да имплементирате неколку дополнителни функции, на пример во бројач од типот „Израз“:

  • Како формула за 'import_wh': import_wh + M1.power_w * dt / 3600 ја ажурира купената енергија врз основа на моќноста за време на минатото ажурирање
  • Како формула за „power_w“: (power_w * (20 - dt) + M1.power_w * dt) / 20 измазнува моќноста во последните 20 секунди.

глобални променливи

date

date.yearоваа година
date.monthмесец од 0..11
date.dayден од 1..31
date.weekdayРаботнички ден СОНЦЕ=0, Пон=1, Вто=2, ... Саб=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.dst0 = зимско време, 1 = летно време
date.timestampUnix timespamp, secs since 1.1.1970

PB (nur cFos Power Brain)

PB.input1S0 Input 1, 1 = активен, 0 = неактивен
PB.input2S0 Input 2, 1 = активен, 0 = неактивен

CM Променливи на менаџерот за полнење

Овие променливи може да ги постави администраторот под „Конфигурација“. На пример, ако администраторот ја постави променливата „var_x“ на 1,5, CM.var_x ја враќа вредноста 1,5.

Предефинирани променливи:
_num_charging: Број на ѕидни кутии кои моментално се полнат
_num_charging1: Број на wallboxes кои моментално се полнат, 1 ако ниту една не се полни
_max_total_current: Максимална струја на приклучокот на куќата во mA по фаза
_max_total_evse_current: Максимална струја за ѕидни кутии во mA по фаза
_price: Тековна цена на струјата
_price_level: Тековно ниво на цената на електричната енергија, -2=многу скапо, -3=скапо, -4=нормално, -5=евтино, -6=многу евтино
_suplus: Тековен соларен вишок во вати
_org_surplus: Сончевиот вишок бидејќи Менаџерот за наплата би го пресметал независно од неговите формули
_storage_home_max_capacity: вкупен капацитет за складирање, Дома, доколку е наведено во конфигурацијата на бројачот, во Wh
_storage_home_capacity: Тековен капацитет за складирање, Home, доколку е наведено во конфигурацијата на бројачот, во Wh
_storage_all_max_capacity: Вкупен капацитет за складирање, Сите, доколку е наведено во конфигурацијата на бројачот, во Wh
_storage_all_capacity: Тековен капацитет за складирање, Сите, доколку е наведено во конфигурацијата на бројачот, во Wh
_max_total_current_prc: Процент од достапната максимална вкупна струја за полнење. Оваа променлива, исто така, може да се запише (преку дефинициите на мерачот и променливите на менаџерот за полнење).
_dt: Времето од последното минато ажурирање (во секунди).

Употреба на глобални објекти:
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
Забележете:
Под Прилагодени бројачи ќе најдете и упатства како да користите формули со глобални променливи и излези на Управникот за полнење.

GM Глобални шалтери

GM.grid_demandРеференца на мрежа
GM.consumedпотрошувачката
GM.producedгенерација
GM.consumed_evseПотрошувачка на електрични автомобили
GM.available_evseДостапна моќност
GM.surplusФВ вишок
GM.storage_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
М1 е броилото кое ја мери потрошувачката на станот. Управувањето со оптоварувањето на cFos Charging Manager прво се обидува да му обезбеди на ѕидното сандаче максимална струја во однос на капацитетот за поврзување на куќата, но потоа го ограничува тоа на 16А минус потрошувачката на станот.

Карактеристики

Со користење на min_price(s), max_price(s) можете да ја одредите најевтината цена од вашиот снабдувач на енергија во евра, при што цените се пребаруваат од моменталното време до max s секунди од денот или следниот ден, на пр., min_price(25200). најевтина цена до 7:00 часот навечер. На пример, можете да креирате правило за полнење со условот CM._price <= min_price(25200) за полнење на најевтино време, но со услов да сакате да тргнете од 08:00 часот (претпоставувајќи 1 час време за полнење). Слично на тоа, постојат двете функции min_price_secs(s) и max_price_secs(s), кои го враќаат времето на започнување на најевтината цена во секунди од денот што започнал. Потоа можете да го споредите ова со date.daysecond, на пример.