Dokumentasi

cFos Charging Manager - formula

Pengurus Pengisian cFos membolehkan penilaian formula yang dinamik. Fungsi ini tersedia untuk kaunter jenis "Ekspresi" dan untuk memuatkan peraturan jenis "Rumus".

Oleh itu, anda boleh menetapkan meter yang mengira nilai dari meter atau kotak dinding lain dan memastikannya tetap siap dan memaparkannya. Peraturan pengecasan juga dapat mengira arus pengecasan secara dinamis menggunakan formula dan juga mengakses meter dan kotak dinding (termasuk meter dari jenis "Ekspresi").

Operasi berikut boleh dilakukan dengan formula:

+ - * / %Penambahan, penolakan, pendaraban, pembahagian, modulus
& |bitwise DAN dan ATAU
^Pengiraan kuasa, misalnya 10 ^ 2 = 100
min(x,y)Minimum x dan y, lebih daripada 2 argumen mungkin
max(x,y)Maksimum x dan y, lebih daripada 2 argumen mungkin
abs(x)Jumlah x yang mutlak, mis. Abs (-2) = 2
clamp(x,min,max)Nilai x = min (jika x < min), x = max (jika x > max), jika tidak, kekalkan x
round(x)Bundarkan x kepada integer. Contoh: Bundarkan kepada 1 tempat perpuluhan: bulat(10*x)/10.
sqrt(x)Akar segiempat sama x
exists(x)benar jika pembolehubah x wujud, jika tidak salah

Ungkapan logik berikut juga mungkin:

== (sama dengan) != (tidak sama dengan), < (kurang dari), <= (kurang dari atau sama dengan), > (lebih besar daripada), >= (lebih besar daripada atau sama dengan) ! (bukan), || (logik atau), && (logik dan) ? (Pengendali bersyarat, x ? y : z, mengembalikan y jika x benar, sebaliknya z)

Ini membenarkan, sebagai contoh, mematikan arus bergantung pada keadaan: M1.current >= 6500 ? M1.current : 0 membekalkan arus M1 jika ia lebih besar daripada 6.5A dan 0 sebaliknya, yang menjeda pengecasan. Untuk keadaan sedemikian, anda juga boleh membuat pertanyaan input (lihat di bawah)

Nama berikut mungkin:

MxBerbanding dengan ID peranti x, misalnya M1
ExSETIAP dengan ID peranti x, misalnya E1

Anda juga boleh mengakses meter maya seperti lebihan suria, elektrik yang dibeli atau "Power avail. for EVSEs" (kuasa tersedia untuk wallboxes) dengan menyediakan meter dan kemudian menggunakan ID peranti yang sepadan dalam formula.

Nilai-nilai individu peranti kemudian dapat diakses menggunakan titik. Ini disebut sebagai berikut:

current_l1Fasa 1 semasa di mA
current_l2Fasa 2 semasa di mA
current_l3Fasa 3 semasa di mA
currentArus fasa semasa dalam mA (dengan peraturan pengecasan, Pengecas Pengisian menanyakan semua fasa satu demi satu; dengan meter dari jenis "Ekspresi", fasa masing-masing yang dirujuk oleh formula berlaku. Sekiranya anda telah menentukan formula untuk " L1 semasa, anda boleh menghilangkan medan untuk aliran L2 dan L3. Kemudian formula untuk aliran L1 digunakan)
power_wKuasa aktif semasa dalam watt
offeredWallbox: Semasa tersedia semasa dalam mA
import_whTenaga berkaitan di Wh
export_whTenaga dimasukkan dalam Wh
dtMasa yang telah berlalu sejak kemas kini terakhir (dalam saat), hanya untuk kaunter "Ekspresi", lihat juga CM._dt.
inputNNombor input N peranti, 1 = aktif, 0 = tidak aktif, N ialah nombor input, bermula dengan 1.
socSOC, aras cas dalam peratus (kaunter/memori) - jika disokong oleh peranti
idID Peranti, ID Modbus
txn_durationTempoh transaksi semasa dalam beberapa saat (kotak dinding)
charging_durMasa pemuatan sebenar transaksi semasa dalam beberapa saat (Wallbox)
txn_energyTenaga yang dicaj untuk transaksi semasa dalam Wh (kotak dinding)
min_currentArus pengecasan minimum dalam mA (EVSE)
max_currentArus pengecasan maksimum dalam mA (EVSE)
stateStatus: 1 menunggu, 2 dipasang, 3 mengecas, 4 mengecas dengan pengudaraan, 5 ralat, 6 di luar talian (EVSE)
cphasesBilangan fasa pemuatan (0-3)
pphasesBilangan fasa pemuatan yang diramalkan (0-3)
lb_cur_l1Arus dikira semasa fasa 1 dalam mA (kotak dinding). Hanya semasa mengira peraturan pengecasan Wallbox, jika tidak 0
lb_cur_l2Arus dikira semasa fasa 2 dalam mA (kotak dinding). Hanya semasa mengira peraturan pengecasan Wallbox, jika tidak 0
lb_cur_l3Arus dikira semasa fasa 3 dalam mA (kotak dinding). Hanya semasa mengira peraturan pengecasan Wallbox, jika tidak 0
lb_curSemasa dikira semasa fasa semasa dalam mA (kotak dinding). Hanya semasa pengiraan peraturan pengecasan Wallbox, jika tidak 0. Pengurus Pengecasan menanyakan semua fasa satu demi satu.
surplus_pcurArus lebihan PV setiap fasa (diramalkan) dalam mA
surplus_wanted1 jika peraturan lebihan PV telah digunakan, jika tidak 0
budgetkWj atau minit pada belanjawan semasa
budget_amountPada kWj atau minit maksimum belanjawan semasa
budget_usedkWj atau minit yang digunakan pada belanjawan semasa
com_err1 jika terdapat ralat COM, jika tidak 0
com_err21 jika terdapat ralat COM lebih lama daripada 12 saat, jika tidak 0
reactive_powerSpesifikasi kuasa reaktif dalam watt (jika peranti menyokong ini), nilai positif: induktif, nilai negatif: kapasitif
switch_phasesUntuk kotak dinding dengan pensuisan fasa: Pensuisan fasa manual, 1 = 1-fasa, 3 = 3-fasa, -1 = pensuisan fasa automatik
departureMasa berlepas ISO 15118 sebagai cap masa unit (untuk kotak dinding yang menyokong ini, jika tidak 0)
req_energyISO 15118 Tenaga yang diperlukan dalam Wh (untuk kotak dinding yang menyokong ini, jika tidak 0)
plugin_startCap waktu Unix, masa pemasukan kabel
plugin_energyTenaga dicas setakat ini dalam Wh dari masa kabel dipalamkan

contoh
M1.current_l1Arus meter M1, fasa 1
E2.import_whWh terpakai dari EVSE E2
E3.power_wKuasa pengecasan semasa E3 dalam watt

Jika anda menggunakan formula untuk pembilang jenis "Ungkapan", anda juga boleh meninggalkan ID peranti. Kemudian nama medan merujuk kepada meter ini, contohnya 'kuasa_w' kemudiannya kuasa meter ini dalam watt. Menggunakan 'dt' anda boleh melaksanakan beberapa fungsi tambahan, contohnya dalam kaunter jenis "Ekspresi":

  • Sebagai formula untuk 'import_wh': import_wh + M1.power_w * dt / 3600 mengemas kini tenaga yang dibeli berdasarkan kuasa semasa masa kemas kini yang lalu
  • Sebagai formula untuk 'power_w': (power_w * (20 - dt) + M1.power_w * dt) / 20 melancarkan kuasa selama 20 saat terakhir.

pembolehubah global

date

date.yeartahun semasa
date.monthbulan dari 0..11
date.dayhari dari 1..31
date.weekdayHari minggu AHAD=0, Isn=1, Sel=2, ... Sab=6
date.yeardayhari dalam setahun dari 0..366
date.hourjam dari 0..23
date.minuteminit dari 0..60
date.secondkedua daripada 0..60
date.daysecondKedua hari ini dari 0..86399
date.dayminuteMinit hari ini dari 0..1439
date.dst0 = masa musim sejuk, 1 = masa 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 Mengecas pembolehubah pengurus

Pembolehubah ini boleh ditetapkan oleh pentadbir di bawah "Konfigurasi". Contohnya, jika pentadbir menetapkan pembolehubah 'var_x' kepada 1.5, CM.var_x mengembalikan nilai 1.5.

Pembolehubah yang dipratentukan:
_num_charging: Bilangan kotak dinding yang sedang dicas
_num_charging1: Bilangan kotak dinding sedang dicas, 1 jika tiada yang mengecas
_max_total_current: Arus maksimum sambungan rumah dalam mA setiap fasa
_max_total_evse_current: Arus maksimum untuk kotak dinding dalam mA setiap fasa
_harga: Harga elektrik semasa
_paras_harga: Paras harga elektrik semasa, -2=sangat mahal, -3=mahal, -4=biasa, -5=murah, -6=sangat murah
_lebihan: Lebihan suria semasa dalam watt
_org_surplus: Lebihan suria sebagai Pengurus Pengecasan akan mengiranya secara bebas daripada formulanya sendiri
_storage_home_max_capacity: Jumlah kapasiti storan, Rumah, jika dinyatakan dalam konfigurasi kaunter, dalam Wh
_storage_home_capacity: Kapasiti storan semasa, Rumah, jika dinyatakan dalam konfigurasi kaunter, dalam Wh
_storage_all_max_capacity: Jumlah kapasiti storan, Semua, jika dinyatakan dalam konfigurasi kaunter, dalam Wh
_storage_all_capacity: Kapasiti storan semasa, Semua, jika dinyatakan dalam konfigurasi kaunter, dalam Wh
_max_total_current_prc: Peratusan jumlah arus pengecasan maksimum yang tersedia. Pembolehubah ini juga boleh ditulis (melalui definisi meter dan pembolehubah Pengurus Pengecasan).
_dt: Masa sejak kemas kini terakhir yang lalu (dalam saat).

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
Notis:
Di bawah Kaunter Tersuai, anda juga akan menemui arahan tentang cara menggunakan formula dengan pembolehubah dan output Pengurus Pengecasan global.

GM Kaunter global

GM.grid_demandRujukan grid
GM.consumedpenggunaan
GM.producedgenerasi
GM.consumed_evsePenggunaan kereta elektrik
GM.available_evseKuasa yang ada
GM.surplusLebihan PV
GM.storage_homeRumah Memori
GM.storage_allIngatan Segalanya
GM.errorPrestasi melalui kesilapan

Penggunaan kaunter 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 menghadkan arus pengecasan berkenaan dengan meter penggunaan di sebuah apartmen. Untuk melakukan ini, anda boleh menetapkan 16000 - M1.current
M1 ialah meter yang mengukur penggunaan apartmen. Pengurusan beban Pengurus Pengecasan cFos mula-mula cuba menyediakan peti dinding dengan arus maksimum berkenaan dengan kapasiti sambungan rumah, tetapi kemudian mengehadkan ini kepada 16A tolak penggunaan pangsapuri.

ciri-ciri

Menggunakan min_price(s), max_price(s) anda boleh menentukan harga termurah daripada pembekal tenaga anda dalam euro, yang mana harga dicari dari masa semasa hingga max s saat hari atau hari berikutnya, mis harga paling murah sehingga jam 7.00 malam. Sebagai contoh, anda boleh membuat peraturan pengecasan dengan syarat CM._price <= min_price(25200) untuk mengecas pada masa yang paling murah, tetapi dengan syarat anda ingin bertolak dari 8:00 a.m. (dengan andaian 1 jam masa pengecasan). Begitu juga, terdapat dua fungsi min_price_secs(s) dan max_price_secs(s), yang mengembalikan masa mula harga termurah dalam saat hari yang telah bermula. Anda kemudian boleh membandingkan ini dengan date.daysecond, sebagai contoh.