cFos Charging Manager - Fórmulas

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:

MxMedidor com unidade ID x, por exemplo M1
ExEVSE 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_l1Corrente da fase 1 em mA
current_l2Corrente da fase 2 em mA
current_l3Corrente da fase 3 em mA
currentCorrente 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_vaPotência actual em Watt/VA (dependendo do tipo de contador, a potência aparente ou a potência activa pode ser fornecida aqui)
power_wPotência activa actual em watts
opower_vaWallbox: Potência actual oferecida em VA relacionada com as 3 fases.
import_whEnergia atraída em Wh
export_whEnergia injectada em Wh
dtO tempo que decorreu desde a última actualização passada (em segundos)
inputNNúmero de entrada N da unidade, 1 = ativo, 0 = inativo
socSOC, nível de carga em percentagem (metro/armazém)
idIdentificação do dispositivo, ID do Modbus
txn_durationDuração da transacção actual em segundos (EVSE)
txn_energyEnergia carregada da actual transacção em Wh (EVSE)
min_currentCorrente mínima de carga em mA (EVSE)
max_currentCorrente máxima de carga em mA (EVSE)
stateEstado: 1 espera, 2 ligado, 3 carregamento, 4 carregamento com ventilação, 5 erro, 6 offline (EVSE)
cphasesNúmero de fases de carregamento (0-3)
pphasesNúmero de fases de carga previstas (0-3)
budgetKWh no orçamento actual
budget_amountSobre o orçamento actual máximo kWh
budget_usedKWh utilizado no orçamento actual
com_err1, se houver um erro COM, caso contrário 0
com_err21, se um erro COM estiver presente durante mais de 12 segundos; caso contrário, 0

Exemplo
M1.current_l1Corrente do contador M1, fase 1
E2.import_whPorquê consumido do EVSE E2
E3.power_vaPotê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":

  • Como fórmula para 'import_wh': import_wh + M1.power_va * dt / 3600 actualiza a energia de origem com base na energia durante o tempo de actualização passado
  • Como fórmula para 'power_va': (power_va * (20 - dt) + M1.power_va * dt) / 20 suaviza a potência durante os últimos 20 segundos.

Variáveis globais

date

date.yearAno actual
date.monthMês a partir de 0..11
date.dayDia a partir de 1..31
date.weekdayDia da semana Mo=0, Tue=1, ... Sol=6
date.yeardayDia do ano a partir de 0..366
date.hourHora a partir de 0..23
date.minuteMinuto a partir de 0...60
date.secondSegundo a partir de 0...60
date.daysecondSegundo deste dia a partir de 0..86399
date.dayminuteMinuto deste dia a partir de 0..1439
date.dst0 = hora de Inverno, 1 = hora de Verão

PB (cFos Power brain only)

PB.input1S0 Input 1, 1 = ativo, 0 = inativo
PB.input2S0 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

Exemplo de aplicação

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.