Диспетчер нарахувань cFos дозволяє проводити динамічну оцінку формул. Цей функціонал доступний для лічильника типу "Вираз" і для правил нарахування типу "Формула".
Таким чином, ви можете налаштувати лічильники, які обчислюють значення з інших лічильників або EVSE, підтримують їх у готовності та відображають їх. Правила зарядки можуть також використовувати формули для динамічного розрахунку струму зарядки, а також мати доступ до лічильників та EVSE (включаючи лічильники типу "Expression").
З формулами можливі наступні операції:
+ - * / % | Додавання, віднімання, множення, ділення, модуль |
& | | побітові І та АБО |
^ | Розрахунок потужності, наприклад, 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,5А і 0 в іншому випадку, що призупиняє зарядку. Для таких умов також є можливість опитування входів (див. нижче)
Можливі наступні назви:
Mx | Лічильник з ідентифікатором одиниці x, наприклад, M1 |
Ex | EVSE з ідентифікатором пристрою x, наприклад, E1 |
Також можна отримати доступ до віртуальних лічильників, таких як надлишок сонячної енергії, споживання з мережі або "Power avail. for EVSEs" (потужність, доступна для зарядних пристроїв), налаштувавши лічильник, а потім використавши відповідний ідентифікатор пристрою у формулі.
Потім за допомогою точки можна отримати доступ до окремих значень одиниць виміру. Вони називаються наступним чином:
current_l1 | Струм фази 1 в мА |
current_l2 | Струм фази 2 в мА |
current_l3 | Струм фази 3 в мА |
current | Струм поточної фази в мА (для правил тарифікації Менеджер тарифікації запитує всі фази по черзі; для лічильників типу "Вираз" застосовується відповідна фаза, до якої відноситься формула. Якщо ви вказали формулу для "Струм L1", то поля "Струм L2" та "L3" можна не заповнювати. Тоді використовується формула для струму L1) |
power_w | Поточна активна потужність у ватах |
offered | Wallbox: Пропонований струм у мА |
import_wh | Спожита енергія, Вт∙год |
export_wh | Введена енергія у Вт-год |
dt | Час, що минув з моменту останнього оновлення (в секундах) |
inputN | Вхідний номер N блоку, 1 = активний, 0 = неактивний |
soc | SOC, рівень заряду у відсотках (лічильник/накопичувач) |
id | Ідентифікатор пристрою, Modbus ID |
txn_duration | Тривалість поточної транзакції в секундах (EVSE) |
charging_dur | Фактичний час заряджання поточної транзакції в секундах (Wallbox) |
txn_energy | Заряджена енергія поточної транзакції у Вт-год (EVSE) |
min_current | Мінімальний зарядний струм в мА (EVSE) |
max_current | Максимальний зарядний струм в мА (EVSE) |
state | Стан: 1 очікування, 2 підключено, 3 зарядка, 4 зарядка з вентиляцією, 5 помилка, 6 вимкнено (EVSE) |
cphases | Кількість фаз заряджання (0-3) |
pphases | Кількість прогнозованих фаз заряджання (0-3) |
surplus_pcur | Надлишковий струм фотоелектричних модулів на (прогнозовану) фазу в мА |
surplus_wanted | 1, якщо правило надлишку PV вже застосовано, інакше 0 |
budget | КВт-год на поточний бюджет |
budget_amount | На поточний бюджет максимум кВт/год |
budget_used | КВт-год, використаних на поточний бюджет |
com_err | 1, якщо є помилка COM, інакше 0 |
com_err2 | 1, якщо помилка COM присутня довше ніж 12 секунд, інакше 0 |
M1.current_l1 | Струм лічильника М1, фаза 1 |
E2.import_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, ... Сонце=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_charging1: Кількість настінних боксів, що заряджаються в даний момент, 1, якщо жоден не заряджається
_max_total_current: Максимальний струм підключення будинку в мА на фазу
_max_total_evse_current: Максимальний струм для настінних коробок у мА на фазу
_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
Примітка:
У розділі Користувацькі лічильники ви також знайдете інструкції щодо використання формул з глобальними змінними та результатами Диспетчера зарядки.
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 - М1.струм
.
M1 - це лічильник, який вимірює споживання квартири. Управління навантаженням cFos Charging Manager спочатку намагається забезпечити EVSE максимальним струмом по відношенню до потужності підключення будинку, але потім обмежує його до 16А за вирахуванням споживання квартири.