Dokumentasi

cFos Charging Manager - Rumus

Manajer Pengisian cFos memungkinkan evaluasi dinamis dari formula. Fungsionalitas ini tersedia untuk meteran tipe "Expression" dan untuk aturan pengisian tipe "Formula".

Oleh karena itu, Anda dapat mengatur meter yang menghitung nilai dari meter atau EVSE lain dan membuatnya siap dan menampilkannya. Aturan pengisian daya juga dapat menggunakan rumus untuk menghitung arus pengisian daya secara dinamis dan juga mengakses meter dan EVSE (termasuk meter dari jenis "Expression").

Operasi-operasi berikut ini dimungkinkan dengan rumus-rumus:

+ - * / %Penjumlahan, pengurangan, perkalian, pembagian, modulus
& |bitwise AND dan OR
^Perhitungan daya, misalnya 10^2 = 100
min(x,y)Minimum x dan y, lebih dari 2 argumen yang memungkinkan
max(x,y)Maksimum x dan y, lebih dari 2 argumen yang memungkinkan
abs(x)Nilai absolut dari x, misalnya abs(-2) = 2
clamp(x,min,max)Nilai x = min (jika x < min), x = max (jika x > max), jika tidak, pertahankan x
round(x)Membulatkan x ke bilangan bulat. Contoh: Pembulatan ke 1 tempat desimal: bulatkan (10*x)/10.
sqrt(x)Akar kuadrat dari x
exists(x)benar jika variabel x ada, jika tidak salah

Lebih jauh lagi, ekspresi logika berikut ini dimungkinkan:

== (sama), != (tidak sama), < (kurang), <= (kurang-sama), > (lebih besar), >= (lebih besar-sama), ! (tidak), || (logika Or), && (logika And), ? (operator kondisional, misalnya x ? y : z, mengembalikan y jika x benar, jika tidak z)

Hal ini memungkinkan, misalnya, arus dimatikan tergantung pada kondisi: M1.current >= 6500 ? M1.current : 0 mengembalikan arus M1 jika lebih besar dari 6,5A dan 0 jika tidak, yang menghentikan pengisian daya. Untuk kondisi seperti itu, juga memungkinkan untuk menanyakan input (lihat di bawah)

Nama-nama berikut ini dimungkinkan:

MxMeteran dengan ID unit x, misalnya M1
ExEVSE dengan ID perangkat x, misalnya E1

Anda juga dapat mengakses meter virtual, seperti surplus surya, penarikan jaringan, atau "Power avail. for EVSEs" (daya yang tersedia untuk kotak dinding), dengan mengatur meteran dan kemudian menggunakan ID perangkat yang sesuai dalam rumus.

Anda kemudian bisa mengakses nilai individual dari unit-unit melalui titik. Ini disebut sebagai berikut:

current_l1Arus fase 1 dalam mA
current_l2Arus fase 2 dalam mA
current_l3Arus fase 3 dalam mA
currentArus fase saat ini dalam mA (untuk aturan pengisian daya, Manajer Pengisian Daya menanyakan semua fase satu demi satu; untuk meter tipe "Expression", masing-masing fase yang dirujuk oleh rumus berlaku. Jika Anda telah menentukan formula untuk "Arus L1", Anda dapat menghilangkan bidang untuk Arus L2 dan L3. Kemudian rumus untuk L1 saat ini digunakan)
power_wDaya aktif saat ini dalam watt
offeredKotak dinding: Arus yang ditawarkan dalam mA
import_whEnergi yang ditarik dalam Wh
export_whEnergi yang disuntikkan dalam Wh
dtWaktu yang telah berlalu sejak pembaruan terakhir yang lalu (dalam detik)
inputNNomor input N perangkat, 1 = aktif, 0 = tidak aktif, N adalah nomor input, dimulai dengan 1.
socSOC, tingkat pengisian daya dalam persen (penghitung/memori) - jika didukung oleh perangkat
idId Perangkat, ID Modbus
txn_durationDurasi transaksi saat ini dalam detik (EVSE)
charging_durWaktu pengisian daya aktual dari transaksi saat ini dalam hitungan detik (Wallbox)
txn_energyEnergi yang dibebankan dari transaksi saat ini dalam Wh (EVSE)
min_currentArus pengisian minimum dalam mA (EVSE)
max_currentArus pengisian maksimum dalam mA (EVSE)
stateStatus: 1 menunggu, 2 terpasang, 3 pengisian daya, 4 pengisian daya dengan ventilasi, 5 kesalahan, 6 offline (EVSE)
cphasesJumlah fase pengisian daya (0-3)
pphasesJumlah fase pengisian daya yang diprediksi (0-3)
lb_cur_l1Arus yang dihitung saat ini dari fase 1 dalam mA (wallbox). Hanya selama perhitungan aturan pengisian daya wallbox, jika tidak, 0
lb_cur_l2Arus yang dihitung saat ini dari fase 2 dalam mA (wallbox). Hanya selama perhitungan aturan pengisian daya wallbox, jika tidak, 0
lb_cur_l3Arus yang dihitung saat ini dari fase 3 dalam mA (wallbox). Hanya selama perhitungan aturan pengisian daya wallbox, jika tidak, 0
lb_curArus dihitung untuk fase saat ini dalam mA (wallbox). Hanya selama perhitungan aturan pengisian wallbox, jika tidak, 0. Manajer Pengisian Daya menanyakan semua fase satu demi satu.
surplus_pcurKelebihan arus PV per fase (prediksi) dalam mA
surplus_wanted1, jika aturan surplus PV telah diterapkan, jika tidak 0
budgetKWh atau menit pada anggaran saat ini
budget_amountKWh atau menit maksimum pada anggaran saat ini
budget_usedKWh atau menit yang digunakan pada anggaran saat ini
com_err1, jika ada kesalahan COM, jika tidak 0
com_err21, jika kesalahan COM terjadi lebih dari 12 detik, jika tidak 0
reactive_powerSpesifikasi daya reaktif dalam watt (jika didukung oleh perangkat), nilai positif: Induktif, nilai negatif: Kapasitif
switch_phasesUntuk kotak dinding dengan peralihan fase: Peralihan fase manual, 1 = 1 fase, 3 = 3 fase, -1 = peralihan fase otomatis
departureWaktu keberangkatan ISO 15118 sebagai stempel waktu unit (untuk kotak dinding yang mendukung ini, jika tidak, 0)
req_energyISO 15118 Energi yang dibutuhkan dalam Wh (untuk kotak dinding yang mendukung ini, jika tidak, 0)
plugin_startCap waktu Unix, waktu penyisipan kabel
plugin_energyEnergi yang sebelumnya terisi dalam Wh sejak kabel dicolokkan

Contoh
M1.current_l1Arus meter M1, fase 1
E2.import_whWh yang dikonsumsi dari EVSE E2
E3.power_wDaya pengisian daya E3 saat ini dalam watt

Jika Anda menggunakan rumus untuk meteran tipe "Expression", Anda juga dapat menghilangkan ID perangkat. Kemudian nama field merujuk pada meteran ini, misalnya 'power_w' adalah daya meteran ini dalam watt. Dengan menggunakan 'dt', Anda dapat merealisasikan beberapa fungsi yang diperluas, misalnya pada meter dengan tipe "Expression":

  • Sebagai rumus untuk 'import_wh': import_wh + M1.power_w * dt / 3600 memperbarui energi yang bersumber berdasarkan daya selama waktu pembaruan sebelumnya
  • Sebagai rumus untuk 'power_w': (power_w * (20 - dt) + M1.power_w * dt) / 20 menghaluskan daya selama 20 detik terakhir.

Variabel global

date

date.yearTahun sekarang
date.monthBulan dari 0..11
date.dayHari dari 1..31
date.weekdayHari kerja SO = 0, Senin = 1, Selasa = 2, ... Sabtu = 6
date.yeardayHari dalam setahun dari 0..366
date.hourJam dari 0..23
date.minuteMenit dari 0..60
date.secondKedua dari 0..60
date.daysecondKedua hari ini dari 0..86399
date.dayminuteMenit hari ini dari 0..1439
date.dst0 = waktu musim dingin, 1 = waktu musim panas
date.timestampUnix timespamp, secs since 1.1.1970

PB (nur cFos Power Brain)

PB.input1S0 Input 1, 1 = aktif, 0 = tidak aktif
PB.input2S0 Input 2, 1 = aktif, 0 = tidak aktif

CM Variabel Manajer Pengisian Daya

Variabel-variabel ini dapat diatur oleh admin di bawah 'Konfigurasi'. Sebagai contoh, jika admin mengatur variabel 'var_x' menjadi 1,5, CM.var_x mengembalikan nilai 1,5.

Variabel yang sudah ditentukan sebelumnya:
jumlah_pengisian: Jumlah kotak dinding yang sedang diisi daya
_num_charging1: Jumlah kotak dinding yang sedang diisi, 1 jika tidak ada yang sedang diisi
_max_total_arus: Arus maksimum sambungan rumah dalam mA per fase
_max_total_evse_current: Arus maksimum untuk kotak dinding dalam mA per fase
_harga: Harga listrik saat ini
tingkat_harga_listrik: Tingkat harga listrik saat ini, -2=sangat mahal, -3=mahal, -4=normal, -5=murah, -6=sangat murah
_surplus: Surplus tenaga surya saat ini dalam watt
_org_surplus: Surplus tenaga surya karena Manajer Pengisian Daya akan menghitungnya secara independen dengan rumusnya sendiri
_storage_home_max_capacity: Kapasitas total penyimpanan, rumah, jika ditentukan dalam konfigurasi meteran, dalam Wh
kapasitas_storage_home_home: Kapasitas penyimpanan saat ini, Home, jika ditentukan dalam konfigurasi meteran, dalam Wh
_storage_all_max_capacity: Kapasitas total penyimpanan, Semua, jika ditentukan dalam konfigurasi penghitung, dalam Wh
_storage_all_capacity: Kapasitas penyimpanan saat ini, Semua, jika ditentukan dalam konfigurasi penghitung, dalam Wh
_max_total_current_prc: Persentase total arus pengisian maksimum yang tersedia. Variabel ini juga dapat ditulis (dengan definisi kontra dan variabel Manajer Pengisian Daya)

Penggunaan objek global:
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
Catatan:
Di bawah Penghitung Khusus, Anda juga akan menemukan instruksi tentang cara menggunakan formula dengan variabel dan output Charging Manager global.

GM Penghitung global

GM.grid_demandReferensi utama
GM.consumedKonsumsi
GM.producedGenerasi
GM.consumed_evseMobil listrik konsumsi
GM.available_evseDaya yang tersedia
GM.surplusSurplus PV
GM.storage_homeRumah Memori
GM.storage_allMemori Semuanya
GM.errorKinerja melalui kesalahan

Penggunaan penghitung global
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.

Contoh aplikasi

Anda juga ingin membatasi arus pengisian daya sehubungan dengan meteran konsumsi flat. Untuk melakukan ini, Anda dapat menyiapkan aturan pengisian daya dengan rumus 16000 - M1.current.
M1 adalah meteran yang mengukur konsumsi flat. Manajemen beban dari cFos Charging Manager pertama-tama mencoba menyediakan EVSE dengan arus maksimum dalam kaitannya dengan daya sambungan rumah, tetapi kemudian membatasi ini hingga 16A dikurangi konsumsi flat.

Fungsi

Dengan menggunakan min_price(s), max_price(s), Anda dapat menentukan harga termurah dari penyedia energi Anda dalam euro, di mana harga dicari dari waktu saat ini hingga detik maksimal pada hari itu atau pada hari berikutnya, misalnya min_price(25200) menghasilkan harga termurah hingga pukul 7:00 pagi. Sebagai contoh, Anda dapat membuat aturan pengisian daya dengan kondisi CM._price <= min_price(25200) untuk mengisi daya pada waktu yang paling menguntungkan, tetapi dengan kondisi bahwa Anda ingin memulai pengisian daya mulai pukul 8:00 pagi, misalnya (dengan asumsi waktu pengisian daya selama 1 jam). Demikian pula, ada dua fungsi min_price_secs(s) dan max_price_secs(s), yang mengembalikan waktu mulai dari harga termurah dalam hitungan detik sejak hari dimulai. Anda kemudian dapat membandingkannya dengan date.daysecond, misalnya.