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

менеджер зарядки cFos - формулы

Менеджер тарификации cFos позволяет динамически оценивать формулы. Эта функциональность доступна для счетчика типа "Выражение" и для правил тарификации типа "Формула".

Поэтому можно настроить счетчики, которые вычисляют значения от других счетчиков или EVSE, держат их наготове и отображают. Правила зарядки могут также использовать формулы для динамического расчета тока зарядки, а также обращаться к счетчикам и EVSE (включая счетчики типа "Выражение").

С формулами возможны следующие операции:

+ - * / %Сложение, вычитание, умножение, деление, модуль
& |побитовое И и ИЛИ
^Расчет мощности, например, 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

Кроме того, возможны следующие логические выражения:

== (равно), != (неравно), < (меньше), <= (меньше-равно), > (больше), >= (больше-равно), ! (не), || (логическое Or), && (логическое And), ? (условный оператор, например, x ? y : z, возвращает y, если x истинно, иначе z)

Это позволяет, например, отключать ток в зависимости от условий: M1.current >= 6500 ? M1.current : 0 возвращает ток M1, если он больше 6.5A, и 0 в противном случае, что приостанавливает зарядку. Для таких условий можно также запросить входы (см. ниже)

Возможны следующие названия:

MxСчетчик с идентификатором устройства x, например, M1
ExEVSE с идентификатором устройства x, например, E1

Также можно получить доступ к виртуальным счетчикам, таким как избыток солнечной энергии, потребление сети или "Power avail. for EVSEs" (мощность, доступная для настенных блоков), установив счетчик, а затем используя соответствующий ID устройства в формуле.

Затем вы можете получить доступ к отдельным значениям единиц измерения с помощью точки. Они вызываются следующим образом:

current_l1Ток фазы 1 в мА
current_l2Ток фазы 2 в мА
current_l3Ток фазы 3 в мА
currentТок текущей фазы в мА (для правил зарядки Менеджер зарядки запрашивает все фазы последовательно; для счетчиков типа "Выражение" применяется соответствующая фаза, к которой относится формула. Если вы задали формулу для "Тока L1", вы можете опустить поля для Тока L2 и L3. Тогда будет использоваться формула для тока L1)
power_wТекущая активная мощность в ваттах
offeredНастенная коробка: Предлагаемый ток в мА
import_whПотребляемая энергия в Вт
export_whИнжектированная энергия в Втч
dtВремя, прошедшее с момента последнего обновления (в секундах)
inputNНомер входа N устройства, 1 = активен, 0 = неактивен
socSOC, уровень заряда в процентах (счетчик/накопитель)
idИдентификатор устройства, идентификатор Modbus
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_wanted1, если правило PV surplus уже применялось, иначе 0
budgetКВтч по текущему бюджету
budget_amountПри текущем бюджете максимальное количество кВт/ч
budget_usedКВт/ч, использованных в рамках текущего бюджета
com_err1, если есть ошибка COM, иначе 0
com_err21, если ошибка COM присутствует более 12 секунд, иначе 0

Пример
M1.current_l1Ток счетчика M1, фаза 1
E2.import_whПотребляемый Вт от EVSE E2
E3.power_wТекущая мощность зарядки E3 в ваттах

Если вы используете формулы для измерителя типа "Expression", то идентификатор устройства можно не указывать. Тогда имена полей относятся к этому счетчику, например, '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Будний день 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.dst0 = зимнее время, 1 = летнее время

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_зарядка: Количество настенных ящиков, которые в настоящее время заряжаются
_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
Примечание:
В разделе Пользовательские счетчики вы также найдете инструкции по использованию формул с глобальными переменными и выходами 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.
M1 - это счетчик, который измеряет потребление квартиры. Управление нагрузкой cFos Charging Manager сначала пытается обеспечить EVSE максимальным током по отношению к мощности подключения дома, но затем ограничивает его до 16A минус потребление квартиры.