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:
Mx | Berbanding dengan ID peranti x, misalnya M1 |
Ex | SETIAP 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_l1 | Fasa 1 semasa di mA |
current_l2 | Fasa 2 semasa di mA |
current_l3 | Fasa 3 semasa di mA |
current | Arus 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_w | Kuasa aktif semasa dalam watt |
offered | Wallbox: Semasa tersedia semasa dalam mA |
import_wh | Tenaga berkaitan di Wh |
export_wh | Tenaga dimasukkan dalam Wh |
dt | Masa yang telah berlalu sejak kemas kini terakhir (dalam saat), hanya untuk kaunter "Ekspresi", lihat juga CM._dt. |
inputN | Nombor input N peranti, 1 = aktif, 0 = tidak aktif, N ialah nombor input, bermula dengan 1. |
soc | SOC, aras cas dalam peratus (kaunter/memori) - jika disokong oleh peranti |
id | ID Peranti, ID Modbus |
txn_duration | Tempoh transaksi semasa dalam beberapa saat (kotak dinding) |
charging_dur | Masa pemuatan sebenar transaksi semasa dalam beberapa saat (Wallbox) |
txn_energy | Tenaga yang dicaj untuk transaksi semasa dalam Wh (kotak dinding) |
min_current | Arus pengecasan minimum dalam mA (EVSE) |
max_current | Arus pengecasan maksimum dalam mA (EVSE) |
state | Status: 1 menunggu, 2 dipasang, 3 mengecas, 4 mengecas dengan pengudaraan, 5 ralat, 6 di luar talian (EVSE) |
cphases | Bilangan fasa pemuatan (0-3) |
pphases | Bilangan fasa pemuatan yang diramalkan (0-3) |
lb_cur_l1 | Arus dikira semasa fasa 1 dalam mA (kotak dinding). Hanya semasa mengira peraturan pengecasan Wallbox, jika tidak 0 |
lb_cur_l2 | Arus dikira semasa fasa 2 dalam mA (kotak dinding). Hanya semasa mengira peraturan pengecasan Wallbox, jika tidak 0 |
lb_cur_l3 | Arus dikira semasa fasa 3 dalam mA (kotak dinding). Hanya semasa mengira peraturan pengecasan Wallbox, jika tidak 0 |
lb_cur | Semasa 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_pcur | Arus lebihan PV setiap fasa (diramalkan) dalam mA |
surplus_wanted | 1 jika peraturan lebihan PV telah digunakan, jika tidak 0 |
budget | kWj atau minit pada belanjawan semasa |
budget_amount | Pada kWj atau minit maksimum belanjawan semasa |
budget_used | kWj atau minit yang digunakan pada belanjawan semasa |
com_err | 1 jika terdapat ralat COM, jika tidak 0 |
com_err2 | 1 jika terdapat ralat COM lebih lama daripada 12 saat, jika tidak 0 |
reactive_power | Spesifikasi kuasa reaktif dalam watt (jika peranti menyokong ini), nilai positif: induktif, nilai negatif: kapasitif |
switch_phases | Untuk kotak dinding dengan pensuisan fasa: Pensuisan fasa manual, 1 = 1-fasa, 3 = 3-fasa, -1 = pensuisan fasa automatik |
departure | Masa berlepas ISO 15118 sebagai cap masa unit (untuk kotak dinding yang menyokong ini, jika tidak 0) |
req_energy | ISO 15118 Tenaga yang diperlukan dalam Wh (untuk kotak dinding yang menyokong ini, jika tidak 0) |
plugin_start | Cap waktu Unix, masa pemasukan kabel |
plugin_energy | Tenaga dicas setakat ini dalam Wh dari masa kabel dipalamkan |
M1.current_l1 | Arus meter M1, fasa 1 |
E2.import_wh | Wh terpakai dari EVSE E2 |
E3.power_w | Kuasa 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":
import_wh + M1.power_w * dt / 3600
mengemas kini tenaga yang dibeli berdasarkan kuasa semasa masa kemas kini yang lalu(power_w * (20 - dt) + M1.power_w * dt) / 20
melancarkan kuasa selama 20 saat terakhir.date
date.year | tahun semasa |
date.month | bulan dari 0..11 |
date.day | hari dari 1..31 |
date.weekday | Hari minggu AHAD=0, Isn=1, Sel=2, ... Sab=6 |
date.yearday | hari dalam setahun dari 0..366 |
date.hour | jam dari 0..23 |
date.minute | minit dari 0..60 |
date.second | kedua daripada 0..60 |
date.daysecond | Kedua hari ini dari 0..86399 |
date.dayminute | Minit hari ini dari 0..1439 |
date.dst | 0 = masa musim sejuk, 1 = masa musim panas |
date.timestamp | Unix timespamp, secs since 1.1.1970 |
PB (nur cFos Power Brain)
PB.input1 | S0 Input 1, 1 = aktif, 0 = tidak aktif |
PB.input2 | S0 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_demand | Rujukan grid |
GM.consumed | penggunaan |
GM.produced | generasi |
GM.consumed_evse | Penggunaan kereta elektrik |
GM.available_evse | Kuasa yang ada |
GM.surplus | Lebihan PV |
GM.storage_home | Rumah Memori |
GM.storage_all | Ingatan Segalanya |
GM.error | Prestasi 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.
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.
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.