Dökümantasyon

cFos Şarj Yöneticisi - Formüller

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:

MxBirim kimliği x olan sayaç, örneğin M1
ExCihaz 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_l1Faz 1'in mA cinsinden akımı
current_l2Faz 2'nin mA cinsinden akımı
current_l3Faz 3'ün mA cinsinden akımı
currentGeç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_wWatt cinsinden mevcut aktif güç
offeredWallbox: MA cinsinden sunulan akım
import_whWh cinsinden çekilen enerji
export_whWh cinsinden enjekte edilen enerji
dtSon güncellemeden bu yana geçen süre (saniye cinsinden), sadece "İfade" sayacı için, ayrıca bkz CM._dt.
inputNCihazın N giriş numarası, 1 = aktif, 0 = inaktif, N, 1'den başlayarak girişin numarasıdır.
socSOC, yüzde cinsinden şarj seviyesi (sayaç/bellek) - cihaz tarafından destekleniyorsa
idCihaz Kimliği, Modbus Kimliği
txn_durationGeçerli işlemin saniye cinsinden süresi (EVSE)
charging_durGeçerli işlemin saniye cinsinden gerçek şarj süresi (Wallbox)
txn_energyGeçerli işlemin Wh cinsinden şarj edilmiş enerjisi (EVSE)
min_currentMA cinsinden minimum şarj akımı (EVSE)
max_currentMA cinsinden maksimum şarj akımı (EVSE)
stateDurum: 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_l1Faz 1'in mA cinsinden hesaplanan akımı (wallbox). Sadece Wallbox şarj kurallarının hesaplanması sırasında, aksi takdirde 0
lb_cur_l2Faz 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_l3Faz 3'ün mA cinsinden hesaplanan akımı (wallbox). Sadece Wallbox şarj kurallarının hesaplanması sırasında, aksi takdirde 0
lb_curAkı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_pcurMA cinsinden (öngörülen) faz başına PV aşırı akımı
surplus_wanted1, bir PV fazlası kuralı zaten uygulanmışsa, aksi takdirde 0
budgetMevcut bütçede kWh veya dakika
budget_amountMevcut bütçedeki maksimum kWh veya dakika
budget_usedMevcut bütçede kullanılan kWh veya dakika
com_errcOM hatası varsa 1, aksi takdirde 0
com_err212 saniyeden daha uzun bir süre COM hatası varsa 1, aksi takdirde 0
reactive_powerWatt cinsinden reaktif güç spesifikasyonu (cihaz tarafından destekleniyorsa), pozitif değerler: Endüktif, negatif değerler: Kapasitif
switch_phasesFaz anahtarlamalı duvar kutuları için: Manuel faz anahtarlama, 1 = 1 fazlı, 3 = 3 fazlı, -1 = otomatik faz anahtarlama
departureBirim zaman damgası olarak ISO 15118 kalkış saati (bunu destekleyen duvar kutuları için, aksi takdirde 0)
req_energyISO 15118 Wh cinsinden gerekli enerji (bunu destekleyen duvar kutuları için, aksi takdirde 0)
plugin_startUnix zaman damgası, kablo yerleştirme zamanı
plugin_energyKablonun takıldığı andan itibaren Wh cinsinden önceden şarj edilmiş enerji

Örnek
M1.current_l1M1 sayacının akımı, faz 1
E2.import_whEVSE E2'nin tüketilen Wh değeri
E3.power_wE3'ü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' için bir formül olarak: import_wh + M1.power_w * dt / 3600, geçmiş güncelleme süresindeki güce dayalı olarak kaynaklı enerjiyi günceller
  • 'power_w' için bir formül olarak: (power_w * (20 - dt) + M1.power_w * dt) / 20 son 20 saniyedeki gücü düzeltir.

Küresel değişkenler

date

date.yearCari yıl
date.month0..11 arası ay
date.day1..31'den itibaren gün
date.weekdayHafta içi SO=0, Pzt=1, Sal=2, ... Sat=6
date.yeardayYıl içinde 0..366 arası gün
date.hour0..23 arası saat
date.minute0..60 arası dakika
date.second0..60 arası saniye
date.daysecondBu günün saniyesi 0..86399
date.dayminuteBu günün 0..1439 arası dakikası
date.dst0 = kış saati, 1 = yaz saati
date.timestampUnix timespamp, secs since 1.1.1970

PB (nur cFos Power Brain)

PB.input1S0 Input 1, 1 = aktif, 0 = inaktif
PB.input2S0 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.consumedTüketim
GM.producedNesil
GM.consumed_evseTüketim e-arabaları
GM.available_evseMevcut güç
GM.surplusPV fazlası
GM.storage_homeMemory Home
GM.storage_allMemory Everything
GM.errorHata 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.

Uygulama örneği

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.

Fonksiyonlar

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.