cFos Charging Manager - Формули

Диспетчер нарахувань 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
sqrt(x)Квадратний корінь з x

Крім того, можливі наступні логічні вирази:

== (дорівнює), != (нерівно), < (менше), <= (менше-рівно), > (більше), >= (більше-рівно), ! (не), || (логічне "або"), && (логічне "і"), ? (умовний оператор, наприклад, x ? y : z, повертає y, якщо істина x, інакше z)

Це дозволяє, наприклад, вимикати струм в залежності від умов: M1.current >= 6500 ? M1.current : 0 повертає струм M1, якщо він більше 6,5А і 0 в іншому випадку, що призупиняє зарядку. Для таких умов також є можливість опитування входів (див. нижче)

Можливі наступні назви:

MxЛічильник з ідентифікатором одиниці x, наприклад, M1
ExEVSE з ідентифікатором пристрою x, наприклад, E1

Також можна отримати доступ до віртуальних лічильників, таких як надлишок сонячної енергії, споживання з мережі або "Power avail. for EVSEs", налаштувавши лічильник, а потім використавши відповідний ідентифікатор пристрою у формулі.

Потім за допомогою точки можна отримати доступ до окремих значень одиниць виміру. Вони називаються наступним чином:

current_l1Струм фази 1 в мА
current_l2Струм фази 2 в мА
current_l3Струм фази 3 в мА
currentСтрум поточної фази в мА (для правил тарифікації Менеджер тарифікації запитує всі фази по черзі; для лічильників типу "Вираз" застосовується відповідна фаза, до якої відноситься формула. Якщо ви вказали формулу для "Струм L1", то поля "Струм L2" та "L3" можна не заповнювати. Тоді використовується формула для струму L1)
power_vaПоточна потужність у Вт/ВА (в залежності від типу лічильника тут може бути вказана повна або активна потужність)
power_wПоточна активна потужність у ватах
opower_vaУоллбокс: Поточна потужність, що пропонується у ВА, відноситься до всіх 3 фаз.
import_whСпожита енергія, Вт∙год
export_whВведена енергія у Вт-год
dtЧас, що минув з моменту останнього оновлення (в секундах)
inputNВхідний номер N блоку, 1 = активний, 0 = неактивний
socSOC, рівень заряду у відсотках (лічильник/накопичувач)
txn_durationТривалість поточної транзакції в секундах (EVSE)
txn_energyЗаряджена енергія поточної транзакції у Вт-год (EVSE)
min_currentМінімальний зарядний струм в мА (EVSE)
max_currentМаксимальний зарядний струм в мА (EVSE)
stateСтан: 1 очікування, 2 підключено, 3 зарядка, 4 зарядка з вентиляцією, 5 помилка, 6 вимкнено (EVSE)

Приклад
M1.current_l1Струм лічильника М1, фаза 1
E2.import_whСпожито Вт∙год від EVSE E2
E3.power_vaПоточна потужність заряду від E3

Якщо ви використовуєте формули для лічильника типу "Вираз", ви також можете опустити ідентифікатор пристрою. Тоді назви полів будуть відноситися до цього лічильника, наприклад, 'power_va' - це потужність цього лічильника у Ваттах/ВА. Ви можете використовувати 'dt' для реалізації деяких розширених функцій, наприклад, у лічильнику типу "Expression":

  • Формула для 'import_wh': import_wh + M1.power_va * dt / 3600 оновлює отриману енергію на основі потужності за минулий час оновлення
  • Формула для 'power_va': (power_va * (20 - dt) + M1.power_va * 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.dst0 = зимовий час, 1 = літній час

PB (cFos Power brain only)

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

CM Змінні диспетчера зарядки

Ці змінні можуть бути встановлені адміністратором в розділі "Конфігурація". Наприклад, якщо адміністратор встановив змінну "var_x" на 1.5, CM.var_x повертає значення 1.5.

Заздалегідь визначені змінні:
номер_зарядки: Кількість зарядних пристроїв, що заряджаються в даний момент
_num_charging1: Кількість настінних боксів, що заряджаються в даний момент, 1, якщо жоден не заряджається
максимальна_сумарна_потужність: Максимальна потужність підключення будинку у Вт
максимальна_сумарна_потужність_evse: Максимальна потужність для EVSE у Вт

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 - М1.струм.
M1 - це лічильник, який вимірює споживання квартири. Управління навантаженням cFos Charging Manager спочатку намагається забезпечити EVSE максимальним струмом по відношенню до потужності підключення будинку, але потім обмежує його до 16А за вирахуванням споживання квартири.