cFos 计费管理器允许对公式进行动态评估。这一功能适用于 "表达式 "类型的仪表和 "公式 "类型的收费规则。
因此,你可以设置计算其他电表或EVSE的值的电表,并保持它们的准备和显示。充电规则也可以使用公式来动态计算充电电流,也可以访问电表和EVSE(包括 "表达式 "类型的电表)。
用公式可以进行以下操作。
+ - * / % | 加法、减法、乘法、除法、模数 |
& | | 位数和OR |
^ | 功率计算,例如: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=最小(如果x<最小),x=最大(如果x>最大),否则保留x |
sqrt(x) | 将x四舍五入为整数。例如:四舍五入到小数点后1位:round(10*x)/10。 |
sqrt(x) | x的平方根 |
exists(x) | 如果变量x存在,则为真,否则为假 |
此外,以下逻辑表达是可能的。==
(相等),!=
(不相等),<
(较小),<=
(较小-相等),>
(较大),>=
(较大-相等),!
(不是),||
(逻辑Or),&&
(逻辑And),?
(条件运算符,例如x? y : z
,如果x为真,则返回y,否则返回z
)
例如,这允许根据条件关闭电流。M1.current >= 6500 ?M1.current : 0
如果M1的电流大于6.5A,则返回M1的电流,否则为0,这样就暂停了充电。对于这样的条件,也可以查询输入(见下文)
以下名称是可能的。
Mx | 单位ID为x的电表,例如M1 |
Ex | 设备ID为x的EVSE,例如E1 |
也可以通过设置电表,然后在公式中使用相应的设备ID,来访问虚拟电表,如太阳能盈余、电网抽水或 "Power avail. for EVSEs"(墙盒可用的电量)等。
然后你可以通过点来访问各单位的个别数值。这些调用方式如下。
current_l1 | 第1相的电流,单位:mA |
current_l2 | 第2相的电流,单位:mA |
current_l3 | 第3相的电流,单位:mA |
current | 当前阶段的电流,单位为 mA(对于充电规则,充电管理器逐一查询所有阶段;对于 "表达式 "类型的仪表,公式所指的各阶段适用。如果您为 "电流L1 "指定了一个公式,您可以省略电流L2和L3的字段。然后使用电流L1的公式) |
power_va | 电流功率,单位是瓦特/安培(根据电表类型,这里可以提供视在功率或有功功率)。 |
power_w | 当前有功功率,单位为瓦特 |
opower_va | 墙盒。提供给所有3个阶段的电流功率,单位为VA。 |
import_wh | 汲取的能量(Wh |
export_wh | 注入的能量(Wh)。 |
dt | 自上次更新以来所经过的时间(以秒为单位)。 |
inputN | 单位的输入编号N,1=激活,0=不激活 |
soc | SOC,充电水平(百分比)(仪表/存储)。 |
id | 设备标识,Modbus标识 |
txn_duration | 当前交易的持续时间(秒)(EVSE)。 |
txn_energy | 当前交易的充电能量(Wh)(EVSE)。 |
min_current | 最小充电电流,单位为mA (EVSE) |
max_current | 最大充电电流(mA)(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的充电功率 |
如果你对一个 "表达式 "类型的仪表使用公式,你也可以省略设备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_charging:目前正在充电的墙盒数量
_num_charging1: 当前正在充电的壁挂炉的数量,如果没有正在充电则为1
_max_total_current: 房屋连接的最大电流,每相毫安。
_max_total_evse_current: 墙盒的最大电流,单位为mA(每相)。
价格:目前的电价
_price_level: 当前电价水平,-2=非常昂贵,-3=昂贵,-4=正常,-5=便宜,-6=非常便宜 剩余:当前的太阳能剩余,单位为瓦特 _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.电流
设置一个充电规则。
M1是测量单元消费的仪表。cFos充电管理器的负载管理首先试图为EVSE提供与房屋连接功率有关的最大电流,但随后将其限制在16A减去单位的消耗。