cFos Ücretlendirme Yöneticisi formüllerin dinamik olarak değerlendirilmesini sağlar. Bu işlevsellik, "İfade" tipindeki bir sayaç ve "Formül" tipindeki ücretlendirme kuralları için kullanılabilir.
Bu nedenle, diğer sayaçlardan veya EVSE'lerden değerleri hesaplayan ve bunları hazır tutan ve görüntüleyen sayaçlar kurabilirsiniz. Şarj kuralları ayrıca şarj akımını dinamik olarak hesaplamak için formüller kullanabilir ve ayrıca sayaçlara ve EVSE'lere ("İfade" türündeki sayaçlar dahil) erişebilir.
Formüller ile aşağıdaki işlemler mümkündür:
+ - * / % | Toplama, çıkarma, çarpma, bölme, modülüs |
& | | bitsel VE ve VEYA |
^ | Güç hesaplaması, örneğin 10^2 = 100 |
min(x,y) | Minimum x ve y, 2'den fazla argüman mümkün |
max(x,y) | Maksimum x ve y, 2'den fazla argüman mümkündür |
abs(x) | X'in mutlak değeri, örneğin abs(-2) = 2 |
clamp(x,min,max) | Değer x = min (x < min ise), x = max (x > max ise), aksi takdirde x'i sakla |
round(x) | X'i tam sayıya yuvarlayın. Örnek: 1 ondalık basamağa yuvarlama: round(10*x)/10. |
sqrt(x) | X'in karekökü |
exists(x) | x değişkeni varsa true, yoksa false |
Ayrıca, aşağıdaki mantıksal ifadeler de mümkündür:==
(eşit), !=
(eşit olmayan), <
(daha az), <=
(daha az-eşit), >
(daha büyük), >=
(daha büyük-eşit), !
(değil), ||
(mantıksal Or), &&
(mantıksal And), ?
(koşul operatörü, örneğin x ? y : z
, x doğruysa y, aksi takdirde z
döndürür)
Bu, örneğin akımın koşullara bağlı olarak kapatılmasını sağlar: M1.current >= 6500 ? M1.current : 0
, M1'in akımı 6,5A'den büyükse akımı döndürür, aksi takdirde 0 döndürür ve bu da şarjı duraklatır. Bu tür koşullar için girişleri sorgulamak da mümkündür (aşağıya bakın)
Aşağıdaki isimler mümkündür:
Mx | Birim kimliği x olan sayaç, örneğin M1 |
Ex | Cihaz kimliği x olan EVSE, örneğin E1 |
Ayrıca, sayacı ayarlayarak ve ardından formülde ilgili cihaz kimliğini kullanarak güneş enerjisi fazlası, şebeke çekişi veya "Power avail. for EVSEs" (duvar kutuları için mevcut güç) gibi sanal sayaçlara erişmek de mümkündür.
Daha sonra nokta aracılığıyla birimlerin tek tek değerlerine erişebilirsiniz. Bunlar aşağıdaki gibi çağrılır:
current_l1 | Faz 1'in mA cinsinden akımı |
current_l2 | Faz 2'nin mA cinsinden akımı |
current_l3 | Faz 3'ün mA cinsinden akımı |
current | Geçerli fazın mA cinsinden akımı (şarj kuralları için Şarj Yöneticisi tüm fazları birbiri ardına sorgular; "İfade" tipindeki sayaçlar için formülün atıfta bulunduğu ilgili faz geçerlidir. "Akım L1" için bir formül belirlediyseniz, Akım L2 ve L3 alanlarını atlayabilirsiniz. O zaman L1 akımı için formül kullanılır) |
power_w | Watt cinsinden mevcut aktif güç |
offered | Wallbox: MA cinsinden sunulan akım |
import_wh | Wh cinsinden çekilen enerji |
export_wh | Wh cinsinden enjekte edilen enerji |
dt | Son güncellemeden bu yana geçen süre (saniye cinsinden), sadece "İfade" sayacı için, ayrıca bkz CM._dt. |
inputN | Cihazın N giriş numarası, 1 = aktif, 0 = inaktif, N, 1'den başlayarak girişin numarasıdır. |
soc | SOC, yüzde cinsinden şarj seviyesi (sayaç/bellek) - cihaz tarafından destekleniyorsa |
id | Cihaz Kimliği, Modbus Kimliği |
txn_duration | Geçerli işlemin saniye cinsinden süresi (EVSE) |
charging_dur | Geçerli işlemin saniye cinsinden gerçek şarj süresi (Wallbox) |
txn_energy | Geçerli işlemin Wh cinsinden şarj edilmiş enerjisi (EVSE) |
min_current | MA cinsinden minimum şarj akımı (EVSE) |
max_current | MA cinsinden maksimum şarj akımı (EVSE) |
state | Durum: 1 bekliyor, 2 takılı, 3 şarj oluyor, 4 havalandırma ile şarj oluyor, 5 hata, 6 çevrimdışı (EVSE) |
cphases | Şarj fazlarının sayısı (0-3) |
pphases | Öngörülen şarj aşamalarının sayısı (0-3) |
lb_cur_l1 | Faz 1'in mA cinsinden hesaplanan akımı (wallbox). Sadece Wallbox şarj kurallarının hesaplanması sırasında, aksi takdirde 0 |
lb_cur_l2 | Faz 2'nin o anda hesaplanan akımı mA cinsinden (wallbox). Sadece Wallbox şarj kurallarının hesaplanması sırasında, aksi takdirde 0 |
lb_cur_l3 | Faz 3'ün mA cinsinden hesaplanan akımı (wallbox). Sadece Wallbox şarj kurallarının hesaplanması sırasında, aksi takdirde 0 |
lb_cur | Akım fazı için mA cinsinden hesaplanan akım (wallbox). Sadece Wallbox şarj kurallarının hesaplanması sırasında, aksi takdirde 0. Şarj Yöneticisi tüm fazları birbiri ardına sorgular. |
surplus_pcur | MA cinsinden (öngörülen) faz başına PV aşırı akımı |
surplus_wanted | 1, bir PV fazlası kuralı zaten uygulanmışsa, aksi takdirde 0 |
budget | Mevcut bütçede kWh veya dakika |
budget_amount | Mevcut bütçedeki maksimum kWh veya dakika |
budget_used | Mevcut bütçede kullanılan kWh veya dakika |
com_err | cOM hatası varsa 1, aksi takdirde 0 |
com_err2 | 12 saniyeden daha uzun bir süre COM hatası varsa 1, aksi takdirde 0 |
reactive_power | Watt cinsinden reaktif güç spesifikasyonu (cihaz tarafından destekleniyorsa), pozitif değerler: Endüktif, negatif değerler: Kapasitif |
switch_phases | Faz anahtarlamalı duvar kutuları için: Manuel faz anahtarlama, 1 = 1 fazlı, 3 = 3 fazlı, -1 = otomatik faz anahtarlama |
departure | Birim zaman damgası olarak ISO 15118 kalkış saati (bunu destekleyen duvar kutuları için, aksi takdirde 0) |
req_energy | ISO 15118 Wh cinsinden gerekli enerji (bunu destekleyen duvar kutuları için, aksi takdirde 0) |
plugin_start | Unix zaman damgası, kablo yerleştirme zamanı |
plugin_energy | Kablonun takıldığı andan itibaren Wh cinsinden önceden şarj edilmiş enerji |
M1.current_l1 | M1 sayacının akımı, faz 1 |
E2.import_wh | EVSE E2'nin tüketilen Wh değeri |
E3.power_w | E3'ün watt cinsinden mevcut şarj gücü |
"İfade" türünde bir sayaç için formülleri kullanırsanız, cihaz kimliğini de atlayabilirsiniz. Daha sonra alan adları bu ölçüm cihazına atıfta bulunur, örneğin 'power_w' bu ölçüm cihazının watt cinsinden gücüdür. 'dt' aracılığıyla, örneğin "Expression" tipindeki bir sayaçta birkaç genişletilmiş fonksiyon gerçekleştirebilirsiniz:
import_wh + M1.power_w * dt / 3600
, geçmiş güncelleme süresindeki güce dayalı olarak kaynaklı enerjiyi günceller(power_w * (20 - dt) + M1.power_w * dt) / 20
son 20 saniyedeki gücü düzeltir.date
date.year | Cari yıl |
date.month | 0..11 arası ay |
date.day | 1..31'den itibaren gün |
date.weekday | Hafta içi SO=0, Pzt=1, Sal=2, ... Sat=6 |
date.yearday | Yıl içinde 0..366 arası gün |
date.hour | 0..23 arası saat |
date.minute | 0..60 arası dakika |
date.second | 0..60 arası saniye |
date.daysecond | Bu günün saniyesi 0..86399 |
date.dayminute | Bu günün 0..1439 arası dakikası |
date.dst | 0 = kış saati, 1 = yaz saati |
date.timestamp | Unix timespamp, secs since 1.1.1970 |
PB (nur cFos Power Brain)
PB.input1 | S0 Input 1, 1 = aktif, 0 = inaktif |
PB.input2 | S0 Input 2, 1 = aktif, 0 = inaktif |
CM Şarj Yöneticisi Değişkenleri
Bu değişkenler yönetici tarafından 'Yapılandırma' altında ayarlanabilir. Örneğin, yönetici 'var_x' değişkenini 1,5 olarak ayarlarsa, CM.var_x 1,5 değerini döndürür.
Önceden tanımlanmış değişkenler:
_num_charging: Şu anda şarj olan duvar kutusu sayısı
_num_charging1: Şu anda şarj olan duvar kutularının sayısı, hiçbiri şarj olmuyorsa 1
_max_total_current: Faz başına mA cinsinden ev bağlantısının maksimum akımı
_max_total_evse_current: Faz başına mA cinsinden duvar kutuları için maksimum akım
_price: Güncel elektrik fiyatı
_price_level: Mevcut elektrik fiyat seviyesi, -2=çok pahalı, -3=pahalı, -4=normal, -5=ucuz, -6=çok ucuz
_surplus: Watt cinsinden mevcut güneş enerjisi fazlası
_org_surplus: Ücretlendirme Yöneticisi tarafından kendi formüllerinden bağımsız olarak hesaplanacak olan güneş enerjisi fazlası
_storage_home_max_capacity: Sayaç yapılandırmasında belirtilmişse, Wh cinsinden toplam depolama, ev kapasitesi
_storage_home_capacity: Deponun mevcut kapasitesi, Ev, sayaç yapılandırmasında belirtilmişse, Wh cinsinden
_storage_all_max_capacity: Depolamanın toplam kapasitesi, Tümü, sayaç yapılandırmasında belirtilmişse, Wh cinsinden
_storage_all_capacity: Depolamanın mevcut kapasitesi, Tümü, sayaç yapılandırmasında belirtilmişse, Wh cinsinden
_max_total_current_prc: Mevcut maksimum toplam şarj akımının yüzdesi. Bu değişken ayrıca yazılabilir (sayaç tanımları ve Şarj Yöneticisi değişkenleri ile)
_dt: Son güncellemeden bu yana geçen süre (saniye cinsinden).
Küresel nesnelerin kullanımı:
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
Not:
Özel Sayaçlar altında, global Charging Manager değişkenleri ve çıktıları ile formüllerin nasıl kullanılacağına ilişkin talimatları da bulacaksınız.
GM Küresel sayaçlar
GM.grid_demand | Şebeke referansı |
GM.consumed | Tüketim |
GM.produced | Nesil |
GM.consumed_evse | Tüketim e-arabaları |
GM.available_evse | Mevcut güç |
GM.surplus | PV fazlası |
GM.storage_home | Memory Home |
GM.storage_all | Memory Everything |
GM.error | Hata yoluyla performans |
Global sayaçların kullanımı
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.
Bir dairenin tüketim ölçerine göre şarj akımını ek olarak sınırlamak istiyorsunuz. Bunu yapmak için 16000 - M1.current
formülüyle bir şarj kuralı oluşturabilirsiniz.
M1, dairenin tüketimini ölçen sayaçtır. cFos Şarj Yöneticisinin yük yönetimi ilk olarak EVSE'ye ev bağlantı gücüne göre maksimum akımı sağlamaya çalışır, ancak daha sonra bunu dairenin tüketimi eksi 16A ile sınırlar.
Min_price(s), max_price(s) kullanarak enerji sağlayıcınızın en ucuz fiyatını Euro cinsinden belirleyebilirsiniz, bu sayede fiyatlar geçerli saatten günün veya bir sonraki günün maksimum s saniyesine kadar aranır, örneğin min_price(25200) sabah 7:00'ye kadar en ucuz fiyatı verir. Örneğin, en uygun zamanda şarj etmek için CM._price <= min_price(25200) koşuluyla bir şarj kuralı oluşturabilirsiniz, ancak örneğin sabah 8:00'den itibaren yola çıkmak istediğiniz koşuluyla (1 saatlik bir şarj süresi varsayarak). Benzer şekilde, başlatılan günün saniye cinsinden en ucuz fiyatının başlangıç zamanını döndüren min_price_secs(s) ve max_price_secs(s) işlevleri vardır. Daha sonra bunları örneğin date.dayecond ile karşılaştırabilirsiniz.