O cFos Charging Manager permite a avaliação dinâmica das fórmulas. Esta funcionalidade está disponível para um contador do tipo "Expressão" e para regras de carregamento do tipo "Fórmula".
Pode, portanto, configurar contadores que calculam valores de outros contadores ou EVSEs e mantê-los prontos e exibi-los. As regras de carregamento podem também utilizar fórmulas para calcular dinamicamente a corrente de carregamento e também aceder a contadores e EVSEs (incluindo contadores do tipo "Expressão").
As seguintes operações são possíveis com as fórmulas:
+ - * / % | Adição, subtracção, multiplicação, divisão, módulo |
& | | bitwise AND e OR |
^ | Cálculo de potência, por exemplo 10^2 = 100 |
min(x,y) | Mínimo de x e y, mais de 2 argumentos possíveis |
max(x,y) | Máximo de x e y, mais de 2 argumentos possíveis |
abs(x) | Valor absoluto de x, por exemplo abs(-2) = 2 |
clamp(x,min,max) | Valor x = min (se x < min), x = max (se x > max), caso contrário manter x |
sqrt(x) | Ronda x para número inteiro. Exemplo: Arredondamento para 1 casa decimal: arredondamento(10*x)/10. |
sqrt(x) | Raiz quadrada de x |
exists(x) | verdadeiro se a variável x existir, caso contrário falso |
Além disso, são possíveis as seguintes expressões lógicas:==
(igual), !=
(desigual), <=
(menos), <=
(menos igual), >=
(maior), >=
(maior igual), !
(não), ||
(lógico Ou), &&
(lógico E), ?
(operador condicional, por exemplo x ? y : z
, retorna y se x for verdadeiro, caso contrário z
)
Isto permite, por exemplo, que a corrente seja desligada em função das condições: M1.current >= 6500 ? M1.current : 0
retorna a corrente de M1 se for superior a 6,5A e 0 caso contrário, o que faz uma pausa na carga. Para tais condições, é também possível consultar as entradas (ver abaixo)
Os seguintes nomes são possíveis:
Mx | Medidor com unidade ID x, por exemplo M1 |
Ex | EVSE com dispositivo ID x, por exemplo E1 |
Também é possível aceder aos contadores virtuais, tais como o excedente solar, o desenho da rede ou "Power avail. for EVSEs" (energia disponível para caixas de parede), através da configuração do contador e depois utilizando a ID do dispositivo correspondente na fórmula.
Pode então aceder aos valores individuais das unidades por meio do ponto. Estes são chamados da seguinte forma:
current_l1 | Corrente da fase 1 em mA |
current_l2 | Corrente da fase 2 em mA |
current_l3 | Corrente da fase 3 em mA |
current | Corrente da fase actual em mA (para regras de carregamento, o Gestor de Carregamento consulta todas as fases uma após a outra; para contadores do tipo "Expressão", aplica-se a respectiva fase a que a fórmula se refere. Se tiver especificado uma fórmula para "Corrente L1", pode omitir os campos para as Correntes L2 e L3. Depois é utilizada a fórmula para a corrente L1) |
power_va | Potência actual em Watt/VA (dependendo do tipo de contador, a potência aparente ou a potência activa pode ser fornecida aqui) |
power_w | Potência activa actual em watts |
opower_va | Wallbox: Potência actual oferecida em VA relacionada com as 3 fases. |
import_wh | Energia atraída em Wh |
export_wh | Energia injectada em Wh |
dt | O tempo que decorreu desde a última actualização passada (em segundos) |
inputN | Número de entrada N da unidade, 1 = ativo, 0 = inativo |
soc | SOC, nível de carga em percentagem (metro/armazém) |
id | Identificação do dispositivo, ID do Modbus |
txn_duration | Duração da transacção actual em segundos (EVSE) |
txn_energy | Energia carregada da actual transacção em Wh (EVSE) |
min_current | Corrente mínima de carga em mA (EVSE) |
max_current | Corrente máxima de carga em mA (EVSE) |
state | Estado: 1 espera, 2 ligado, 3 carregamento, 4 carregamento com ventilação, 5 erro, 6 offline (EVSE) |
cphases | Número de fases de carregamento (0-3) |
pphases | Número de fases de carga previstas (0-3) |
budget | KWh no orçamento actual |
budget_amount | Sobre o orçamento actual máximo kWh |
budget_used | KWh utilizado no orçamento actual |
com_err | 1, se houver um erro COM, caso contrário 0 |
com_err2 | 1, se um erro COM estiver presente durante mais de 12 segundos; caso contrário, 0 |
M1.current_l1 | Corrente do contador M1, fase 1 |
E2.import_wh | Porquê consumido do EVSE E2 |
E3.power_va | Potência de carga actual de E3 |
Se utilizar as fórmulas para um medidor do tipo "Expressão", também pode omitir a identificação do dispositivo. Então os nomes dos campos referem-se a este medidor, por exemplo "power_va" é então a potência deste medidor em Watt/VA. Pode usar 'dt' para realizar algumas funções alargadas, por exemplo, num medidor do tipo "Expression":
import_wh + M1.power_va * dt / 3600
actualiza a energia de origem com base na energia durante o tempo de actualização passado(power_va * (20 - dt) + M1.power_va * dt) / 20
suaviza a potência durante os últimos 20 segundos.date
date.year | Ano actual |
date.month | Mês a partir de 0..11 |
date.day | Dia a partir de 1..31 |
date.weekday | Dia da semana Mo=0, Tue=1, ... Sol=6 |
date.yearday | Dia do ano a partir de 0..366 |
date.hour | Hora a partir de 0..23 |
date.minute | Minuto a partir de 0...60 |
date.second | Segundo a partir de 0...60 |
date.daysecond | Segundo deste dia a partir de 0..86399 |
date.dayminute | Minuto deste dia a partir de 0..1439 |
date.dst | 0 = hora de Inverno, 1 = hora de Verão |
PB (cFos Power brain only)
PB.input1 | S0 Input 1, 1 = ativo, 0 = inativo |
PB.input2 | S0 Input 2, 1 = ativo, 0 = inativo |
CM Variáveis do Gestor de Carregamento
Estas variáveis podem ser definidas pelo administrador em "Configuração". Por exemplo, se o admin define a variável "var_x" para 1,5, CM.var_x retorna o valor 1,5.
Variáveis pré-definidas:
_num_charging: Número de caixas de parede actualmente em carga
_num_charging1: Número de caixas de parede actualmente a carregar, 1 se nenhuma estiver a carregar
corrente_max_total: Corrente máxima da ligação da casa em mA por fase
corrente_max_total_evse_current: Corrente máxima para caixas de parede em mA (por fase)
preço: preço actual da electricidade
_preço_nível: nível actual do preço da electricidade, -2=muito caro, -3=barato, -4=normal, -5=preço normal, -6=muito barato excedente: Excedente solar actual em watts excedente solar: Excedente solar como teria sido calculado pelo Gestor de Carregamento independentemente das suas próprias fórmulas
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
Pretende-se ainda limitar a corrente de carga em relação a um contador de consumo de um apartamento. Para o fazer, pode estabelecer uma regra de carga com a fórmula 16000 - M1.current
.
M1 é o medidor que mede o consumo do apartamento. A gestão da carga do Gestor de Carga cFos tenta primeiro fornecer ao EVSE a corrente máxima em relação à potência de ligação da casa, mas depois limita esta a 16A menos o consumo do apartamento.