Менеджер тарификации 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 |
sqrt(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 |
Ex | EVSE с идентификатором устройства x, например, E1 |
Также можно получить доступ к виртуальным счетчикам, таким как избыток солнечной энергии, потребление сети или "Power avail. for EVSEs" (мощность, доступная для настенных блоков), установив счетчик, а затем используя соответствующий ID устройства в формуле.
Затем вы можете получить доступ к отдельным значениям единиц измерения с помощью точки. Они вызываются следующим образом:
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 = неактивен |
soc | SOC, уровень заряда в процентах (счетчик/накопитель) |
id | Идентификатор устройства, идентификатор Modbus |
txn_duration | Продолжительность текущей операции в секундах (EVSE) |
txn_energy | Заряженная энергия текущей транзакции в Втч (EVSE) |
min_current | Минимальный зарядный ток в мА (EVSE) |
max_current | Максимальный зарядный ток в мА (EVSE) |
state | Статус: 1 ожидание, 2 подключен, 3 заряжается, 4 заряжается с вентиляцией, 5 ошибка, 6 отключен (EVSE) |
cphases | Количество фаз зарядки (0-3) |
pphases | Количество прогнозируемых фаз зарядки (0-3) |
budget | КВтч по текущему бюджету |
budget_amount | При текущем бюджете максимальное количество кВт/ч |
budget_used | КВт/ч, использованных в рамках текущего бюджета |
com_err | 1, если есть ошибка COM, иначе 0 |
com_err2 | 1, если ошибка COM присутствует более 12 секунд, иначе 0 |
M1.current_l1 | Ток счетчика M1, фаза 1 |
E2.import_wh | Потребляемый Вт от EVSE E2 |
E3.power_va | Текущая мощность зарядки от E3 |
Если вы используете формулы для измерителя типа "Expression", вы также можете опустить ID устройства. Тогда названия полей относятся к этому счетчику, например, 'power_va' - это мощность этого счетчика в Ватт/ВА. Вы можете использовать 'dt' для реализации нескольких расширенных функций, например, в счетчике типа "Выражение":
import_wh + M1.power_va * dt / 3600
обновляет полученную энергию на основе мощности за прошедшее время обновления(power_va * (20 - dt) + M1.power_va * 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.dst | 0 = зимнее время, 1 = летнее время |
PB (cFos Power brain only)
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_зарядка: Количество настенных ящиков, которые в настоящее время заряжаются
_num_charging1: количество заряжающихся в данный момент настенных ящиков, 1, если ни один из них не заряжается
_max_total_current: Максимальный ток подключения дома в мА на фазу
_max_total_evse_current: Максимальный ток для стенных коробок в мА (на фазу)
_price: Текущая цена на электроэнергию
_price_level: Текущий уровень цен на электроэнергию, -2=очень дорогая, -3=дорогая, -4=нормальная, -5=дешевая, -6=очень дешевая _surplus: Текущий избыток солнечной энергии в ваттах _org_surplus: Солнечный излишек, который был бы рассчитан Управляющим по тарифам независимо от его собственных формул
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 - M1.current
.
M1 - это счетчик, который измеряет потребление квартиры. Управление нагрузкой cFos Charging Manager сначала пытается обеспечить EVSE максимальным током по отношению к мощности подключения дома, но затем ограничивает его до 16A минус потребление квартиры.