cFos 充電管理器允許對公式進行動態評估。此功能可用於“表達式”類型的計數器和“公式”類型的加載規則。
因此,您可以設置儀表來計算來自其他儀表或壁箱的值,並將它們準備好並顯示出來。充電規則還可以使用公式動態計算充電電流,還可以訪問儀表和牆盒(包括“表達式”類型的儀表)。
可以使用公式進行以下操作:
+ - * / % | 加法、減法、乘法、除法、模數 |
& | | 按位與和或 |
^ | 功率計算,例如 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 舍入為整數。示例:四捨五入到小數點後一位:round(10*x)/10。 |
sqrt(x) | x 的平方根 |
exists(x) | 如果變量 x 存在則為真,否則為假 |
以下邏輯表達式也是可能的:==
(等於) !=
(不等於)、 <
(小於)、 <=
(小於或等於)、 >
(大於)、 >=
(大於或等於) !
(不是), ||
(邏輯或), &&
(邏輯與) ?
(條件運算符x ? y : z
,如果 x 為真則返回 y,否則返回 z)
例如,這允許根據條件關閉電流: M1.current >= 6500 ? M1.current : 0
如果大於 6.5A,則提供 M1 的電流,否則為 0,暫停充電。對於這種情況,也可以查詢輸入(見下文)
以下名稱是可能的:
Mx | 帶有設備 ID x 的計數器,例如 M1 |
Ex | 帶有設備 ID x 的 EVSE,例如 E1 |
還可以通過設置電錶然後在公式中使用相應的設備 ID 來訪問虛擬電錶,例如太陽能盈餘、購買的電力或“EVSE 的可用功率”(壁箱可用功率)。
然後可以使用點訪問設備的各個值。它們被稱為如下:
current_l1 | 以 mA 為單位的第 1 相電流 |
current_l2 | 以 mA 為單位的第 2 相電流 |
current_l3 | 以 mA 為單位的第 3 相電流 |
current | 當前相的電流 mA(帶充電規則,充電管理器逐個查詢所有相;對於“表達式”類型的儀表,公式所指的相應相適用。如果您指定了“當前 L1”,您可以省略流 L2 和 L3 的字段。然後使用流 L1 的公式) |
power_w | 當前有功功率(瓦特) |
offered | Wallbox:當前可用電流(單位:mA) |
import_wh | 相關能量 Wh |
export_wh | 輸入的能量 Wh |
dt | 自上次更新以來經過的時間(以秒為單位),僅適用於「表達式」計數器,另請參閱 CM._dt。 |
inputN | 設備的輸入編號 N,1 = 有效,0 = 無效,N 為輸入編號,從 1 開始。 |
soc | SOC,充電水平百分比(計數器/內存) - 如果設備支持 |
id | 設備 ID、Modbus ID |
txn_duration | 當前事務的持續時間(以秒為單位)(wallbox) |
charging_dur | 目前交易的實際載入時間(以秒為單位)(Wallbox) |
txn_energy | 當前交易的充電能量,以 Wh 為單位(wallbox) |
min_current | 最小充電電流 (EVSE) |
max_current | 最大充電電流 (EVSE) |
state | 狀態:1等待,2插入,3充電,4通風充電,5錯誤,6離線(EVSE) |
cphases | 加載階段數 (0-3) |
pphases | 預測加載階段數 (0-3) |
lb_cur_l1 | 目前計算出的第 1 相電流,以 mA 為單位(壁箱)。僅在計算Wallbox計費規則時,否則為0 |
lb_cur_l2 | 目前計算出的第 2 相電流,以 mA 為單位(壁箱)。僅在計算Wallbox計費規則時,否則為0 |
lb_cur_l3 | 目前計算出的第 3 相電流,單位為 mA(壁盒)。僅在計算Wallbox計費規則時,否則為0 |
lb_cur | 目前計算的當前相位電流(以 mA 為單位)(wallbox)。僅在Wallbox計費規則計算期間,否則為0。 |
surplus_pcur | 每相(預測)PV 過剩電流(mA) |
surplus_wanted | 如果已應用 PV 盈餘規則,則為 1,否則為 0 |
budget | 當前預算的千瓦時或分鐘 |
budget_amount | 根據當前預算最大千瓦時或分鐘 |
budget_used | 當前預算使用的千瓦時或分鐘 |
com_err | 如果有 COM 錯誤則為 1,否則為 0 |
com_err2 | 如果 COM 錯誤超過 12 秒則為 1,否則為 0 |
reactive_power | 無功功率規格(以瓦為單位)(如果設備支援此功能),正值:感性,負值:容性 |
switch_phases | 對於有相位切換的牆盒:手動相位切換,1 = 1 相,3 = 3 相,-1 = 自動相位切換 |
departure | ISO 15118 出發時間作為單位時間戳(支援此功能的 Wallbox,否則為 0) |
req_energy | ISO 15118 所需能量(以 Wh 為單位)(支援此功能的壁箱,否則為 0) |
plugin_start | Unix時間戳,電纜插入時間 |
plugin_energy | 從插入電纜時至今充電的電量(以 Wh 為單位) |
M1.current_l1 | 電錶 M1 電流,第 1 相 |
E2.import_wh | EVSE E2 的使用時間 |
E3.power_w | E3當前充電功率(瓦) |
如果您使用“表達式”類型計數器的公式,則還可以省略設備 ID。然後字段名稱引用該儀表,例如“power_w”就是該儀表的功率(以瓦為單位)。使用“dt”,您可以實現一些附加功能,例如在“表達式”類型的計數器中:
import_wh + M1.power_w * dt / 3600
根據過去更新時間內的功率更新購買的能量(power_w * (20 - dt) + M1.power_w * dt) / 20
平滑過去 20 秒的功率。date
date.year | 今年 |
date.month | 從 0..11 開始的月份 |
date.day | 從 1..31 開始的一天 |
date.weekday | 工作日 SUN=0、週一=1、週二=2、...週六=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 = 夏令時 |
date.timestamp | Unix timespamp, secs since 1.1.1970 |
PB (nur cFos Power Brain)
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:房屋連接的最大電流(每相 mA)
_max_total_evse_current:壁箱的最大電流(每相 mA)
_price:當前電價
_price_level:當前電價水平,-2=很貴,-3=貴,-4=正常,-5=便宜,-6=很便宜
_surplus:以瓦特為單位的當前太陽能盈餘
_org_surplus:充電管理器會獨立於自己的公式計算太陽能盈餘
_storage_home_max_capacity:總儲存容量,Home,如果在計數器配置中指定,以 Wh 為單位
_storage_home_capacity:目前儲存容量,Home,如果在計數器配置中指定,以 Wh 為單位
_storage_all_max_capacity:總儲存容量,全部,如果在計數器配置中指定,以Wh為單位
_storage_all_capacity:目前儲存容量,全部,如果在計數器配置中指定,以Wh為單位
_max_total_current_prc:可用最大總充電電流的百分比。也可以寫入該變數(透過電錶定義和充電管理器變數)。
_dt:自上次更新以來的時間(以秒為單位)。
全局對象的使用:
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
注意:
在自定義計數器下,您還將找到有關如何使用具有全局計費管理器變量和輸出的公式的說明。
GM 全球專櫃
GM.grid_demand | 網格參考 |
GM.consumed | 消耗 |
GM.produced | 世代 |
GM.consumed_evse | 電動車消費 |
GM.available_evse | 可用功率 |
GM.surplus | 光電發電盈餘 |
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 充電管理器的負載管理首先嘗試為牆盒提供與房屋連接容量相關的最大電流,但隨後將其限制為16A減去公寓消耗。
使用min_price(s)、max_price(s),您可以確定能源提供者提供的最便宜價格(以歐元為單位),從當前時間到當天或第二天的max s 秒內搜尋價格,例如min_price(25200) 提供晚上7:00之前價格最便宜。例如,您可以建立一個計費規則,條件為 CM._price <= min_price(25200) 以在最便宜的時間計費,但條件是您要從上午 8:00 出發(假設充電時間為 1 小時) ) 。類似地,還有兩個函數 min_price_secs(s) 和 max_price_secs(s),它們會傳回最便宜價格的開始時間(以當天開始的秒數為單位)。例如,您可以將其與 date.daysecond 進行比較。