cFos Charging Manager дазваляе дынамічна ацэньваць формулы. Гэтая функцыя даступная для лічыльніка тыпу "Выраз" і для правілаў загрузкі тыпу "Формула".
Такім чынам, вы можаце наладзіць лічыльнікі, якія вылічаюць значэнні з іншых лічыльнікаў або насценных скрынь, і трымаць іх у гатоўнасці і адлюстроўваць. Правілы зарадкі таксама могуць дынамічна разлічваць зарадны ток з дапамогай формул, а таксама атрымаць доступ да лічыльнікаў і насценных скрынь (у тым ліку лічыльнікаў тыпу "Выраз").
З формуламі магчымыя наступныя аперацыі:
+ - * / % | Складанне, адніманне, множанне, дзяленне, модуль |
& | | паразраднае І і АБО |
^ | Разлік магутнасці, напрыклад 10 ^ 2 = 100 |
min(x,y) | Мінімум x і y, магчыма больш за 2 аргументаў |
max(x,y) | Максімум x і y, магчыма больш за 2 аргументаў |
abs(x) | Абсалютная колькасць х, напрыклад, abs (-2) = 2 |
clamp(x,min,max) | Значэнне x = min (калі x < min), x = max (калі x > max), у адваротным выпадку захавайце x |
round(x) | Акругліць х да цэлага. Прыклад: акругленне да 1 знака пасля коскі: круглае (10*x)/10. |
sqrt(x) | Квадратны корань з х |
exists(x) | ісціна, калі зменная x існуе, у адваротным выпадку ілжыва |
Таксама магчымыя наступныя лагічныя выразы:==
(роўна) !=
(не роўна), <
(менш за), <=
(менш або роўна), >
(больш за), >=
(больш або роўна) !
(не), ||
(лагічны або), &&
(лагічны і) ?
(Умоўны аператар, x ? y : z
, вяртае y, калі x праўда, інакш z)
Гэта дазваляе, напрыклад, адключыць ток у залежнасці ад умоў: M1.current >= 6500 ? M1.current : 0
забяспечвае ток M1, калі ён перавышае 6,5 А, і 0 у адваротным выпадку, што спыняе зарадку. Для такіх умоў таксама можна запытваць уводы (гл. ніжэй)
Магчымыя наступныя назвы:
Mx | Лічыльнік з ідэнтыфікатарам прылады x, напрыклад, M1 |
Ex | EVSE з ідэнтыфікатарам прылады x, напрыклад E1 |
Таксама можна атрымаць доступ да віртуальных лічыльнікаў, такіх як лішак сонечнай энергіі, набытая электраэнергія або "Даступнасць электраэнергіі для EVSE" (магутнасць, даступная для насценных скрынак), наладзіўшы лічыльнік, а затым выкарыстоўваючы адпаведны ідэнтыфікатар прылады ў формуле.
Затым можна атрымаць доступ да асобных значэнняў прылад з дапамогай кропкі. Яны называюцца наступным чынам:
current_l1 | Ток фазы 1 у ма |
current_l2 | Фаза 2 току ў мА |
current_l3 | Ток фазы 3 у ма |
current | Ток бягучай фазы ў мА (з правіламі зарадкі менеджэр зарадкі запытвае ўсе фазы адзін за адным; з лічыльнікамі тыпу "Выраз" прымяняецца адпаведная фаза, да якой адносіцца формула. Калі вы задалі формулу для " Бягучы L1 ", вы можаце апусціць палі для патокаў L2 і L3. Затым выкарыстоўваецца формула для патоку L1) |
power_w | Бягучая актыўная магутнасць у ватах |
offered | Wallbox: даступны ў цяперашні час ток у мА |
import_wh | Звязаная энергія ў Ут |
export_wh | Энергія, якая паступае ў Вт |
dt | Час, які прайшоў з моманту апошняга абнаўлення (у секундах), толькі для лічыльніка «Выраз», гл. таксама CM._dt. |
inputN | Нумар уваходу N прылады, 1 = актыўны, 0 = неактыўны, N - нумар уваходу, пачынаючы з 1. |
soc | SOC, узровень зарада ў працэнтах (лічыльнік/памяць) - калі падтрымліваецца прыладай |
id | Ідэнтыфікатар прылады, ідэнтыфікатар Modbus |
txn_duration | Працягласць бягучай транзакцыі ў секундах (сценная скрынка) |
charging_dur | Фактычны час загрузкі бягучай транзакцыі ў секундах (Wallbox) |
txn_energy | Зараджаная энергія бягучай транзакцыі ў Вт-гадз (васценны скрыню) |
min_current | Мінімальны ток зарадкі ў мА (EVSE) |
max_current | Максімальны ток зарадкі ў мА (EVSE) |
state | Статус: 1 чакае, 2 падключана, 3 зараджаецца, 4 зараджаецца з вентыляцыяй, 5 памылка, 6 па-за сеткай (EVSE) |
cphases | Колькасць фаз загрузкі (0-3) |
pphases | Колькасць прагназуемых фаз загрузкі (0-3) |
lb_cur_l1 | Разліковы ток фазы 1 у мА (насценная скрынка). Толькі падчас разліку правілаў зарадкі Wallbox, інакш 0 |
lb_cur_l2 | Разліковы ток фазы 2 у мА (насценная скрынка). Толькі падчас разліку правілаў зарадкі Wallbox, інакш 0 |
lb_cur_l3 | Разліковы ток фазы 3 у мА (насценная скрынка). Толькі падчас разліку правілаў зарадкі Wallbox, інакш 0 |
lb_cur | Бягучы разлічаны ток бягучай фазы ў мА (Wallbox). Толькі падчас разліку правілаў зарадкі Wallbox, інакш 0. Менеджэр зарадкі запытвае ўсе фазы адну за адной. |
surplus_pcur | Перавышэнне току PV на (прагназаваную) фазу ў мА |
surplus_wanted | 1, калі правіла лішку PV ужо прыменена, інакш 0 |
budget | кВт.гадз або хвілін пры бягучым бюджэце |
budget_amount | У бягучым бюджэце максімальная колькасць кВт.гадз або хвілін |
budget_used | кВт.гадз або хвіліны, выкарыстаныя пры бягучым бюджэце |
com_err | 1, калі ёсць памылка COM, інакш 0 |
com_err2 | 1, калі ёсць памылка COM больш за 12 секунд, інакш 0 |
reactive_power | Спецыфікацыя рэактыўнай магутнасці ў ватах (калі прылада падтрымлівае гэта), дадатныя значэнні: індуктыўная, адмоўныя значэнні: ёмістная |
switch_phases | Для насценных боксаў з пераключэннем фаз: ручное пераключэнне фаз, 1 = 1-фаза, 3 = 3-фаза, -1 = аўтаматычнае пераключэнне фаз |
departure | Час адпраўлення па ISO 15118 як адзінкавая метка часу (для насценных скрынак, якія падтрымліваюць гэта, інакш 0) |
req_energy | ISO 15118. Неабходная энергія ў Вт·гадз (для насценных боксаў, якія падтрымліваюць гэта, інакш 0) |
plugin_start | Пазнака часу Unix, час устаўкі кабеля |
plugin_energy | Зараджаная энергія ў Вт·гадз з моманту падлучэння кабеля |
M1.current_l1 | Ток лічыльніка М1, фаза 1 |
E2.import_wh | Выкарыстоўваецца Wh з EVSE E2 |
E3.power_w | Бягучая магутнасць зарадкі E3 у ватах |
Калі вы выкарыстоўваеце формулы для лічыльніка тыпу "Выраз", вы таксама можаце апусціць ідэнтыфікатар прылады. Тады назвы палёў адносяцца да гэтага лічыльніка, напрыклад, "power_w" - гэта магутнасць гэтага лічыльніка ў ватах. З дапамогай «dt» можна рэалізаваць некалькі дадатковых функцый, напрыклад, у лічыльніку тыпу «Выраз»:
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 | Дзень будня нд=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.dst | 0 = зімовы час, 1 = летні час |
date.timestamp | Unix timespamp, secs since 1.1.1970 |
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: Максімальны ток хатняга падключэння ў мА на фазу
_max_total_evse_current: Максімальны ток для насценных скрынак у мА на фазу
_price: Бягучая цана на электраэнергію
_price_level: бягучы ўзровень цэн на электраэнергію, -2=вельмі дорага, -3=дорага, -4=нармальна, -5=танна, -6=вельмі танна
_surplus: бягучы сонечны лішак у ватах
_org_surplus: лішак сонечнай энергіі, паколькі дыспетчар зарадкі разлічыў яго незалежна ад уласных формул
_storage_home_max_capacity: Агульная ёмістасць захоўвання, Home, калі паказана ў канфігурацыі лічыльніка, у Вт·гадз
_storage_home_capacity: бягучая ёмістасць захоўвання, Home, калі паказана ў канфігурацыі лічыльніка, у Вт·гадз
_storage_all_max_capacity: Агульная ёмістасць захоўвання, усе, калі паказана ў канфігурацыі лічыльніка, у Вт·гадз
_storage_all_capacity: бягучая ёмістасць захоўвання, усе, калі паказана ў канфігурацыі лічыльніка, у Вт·гадз
_max_total_current_prc: Працэнт даступнага максімальнага агульнага току зарадкі. Гэтую зменную таксама можна запісаць (праз вызначэнні лічыльнікаў і зменныя Charging Manager).
_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
Заўвага:
У раздзеле "Карыстальніцкія лічыльнікі" вы таксама знойдзеце інструкцыі па выкарыстанні формул з глабальнымі зменнымі і выхадамі Charging Manager.
GM Глабальныя лічыльнікі
GM.grid_demand | Спасылка на сетку |
GM.consumed | спажывання |
GM.produced | пакалення |
GM.consumed_evse | Спажыванне электрамабіляў |
GM.available_evse | Даступная магутнасць |
GM.surplus | PV лішак |
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) для зарадкі ў самы танны час, але з умовай, што вы хочаце пачаць з 8:00 раніцы (пры ўмове, што час зарадкі складае 1 гадзіну). Аналагічным чынам існуюць дзве функцыі min_price_secs(s) і max_price_secs(s), якія вяртаюць час пачатку самай нізкай цаны ў секундах дня, які пачаўся. Затым вы можаце параўнаць гэта з date.daysecond, напрыклад.