Wallbox samodomo
Re: Wallbox samodomo
Ahoj, willcz, jsem Ti sice vděčný za veškerá naťuknutí, ale tím Tvým kódem jsi mě pěkně doblbnul...
Až budeš chtít naprogramovat bezproblémový TECO wallbox (samozřejmě bez té jejich knihovny), podívej se do kódu níže
Nic ve zlém prosím Tě , třeba tam stále nevidím nějaké zákoutí. Popravdě řečeno, byl jsem pěkný idiot, že jsem si neprostudoval tu normu dříve.
Externě (v jiném funkčním bloku) nastavuji dvě proměnné:
wb_charge_current - vždy mezi MIN a MAX hodnotou (tj. nikdy 0)
wb_logic_charge_allow - zda mohu nebo nemohu zrovna nabíjet. To zahrnuje například i pauzu mezi přepínáním DS a FVE.
Pro samotné ovládání (stykač na DO2) pak stačí:
Až budeš chtít naprogramovat bezproblémový TECO wallbox (samozřejmě bez té jejich knihovny), podívej se do kódu níže
Nic ve zlém prosím Tě , třeba tam stále nevidím nějaké zákoutí. Popravdě řečeno, byl jsem pěkný idiot, že jsem si neprostudoval tu normu dříve.
Externě (v jiném funkčním bloku) nastavuji dvě proměnné:
wb_charge_current - vždy mezi MIN a MAX hodnotou (tj. nikdy 0)
wb_logic_charge_allow - zda mohu nebo nemohu zrovna nabíjet. To zahrnuje například i pauzu mezi přepínáním DS a FVE.
Pro samotné ovládání (stykač na DO2) pak stačí:
Kód: Vybrat vše
PROGRAM Wallbox_execute
// variables handled outside the POU:
//// wb_logic_charge_allow - if True, EVSE logic allows charging
//// wb_charge_current - current within MIN - MAX (never 0)
//
//
// evaluate "force stop" logic coming from web (wb_stop) or button (at EV_In.DI.DI2)
wb_stop_tof(IN := wb_stop or EV_In.DI.DI2, PT := T#30s);
wb_stop := 0;
//
// verify the connection and charge request status
wb_request_charge := EV_In.STAT.CHARGE;
wb_cable_connected := EV_In.STAT.CCONN;
//
// handle output current
IF wb_cable_connected and wb_logic_charge_allow and not wb_stop_tof.Q THEN
Ev_Out.CURR := wb_charge_current;
ELSE
Ev_Out.CURR := 0;
END_IF;
//
// control the contactor
Ev_Out.DOs.DO2 := wb_request_charge;
//
END_PROGRAM
Re: Wallbox samodomo
Děkuji ještě všem, kteří mi na cestě ze soucitu nabízeli hotové wallboxy . Kdybych tušil, jaká to bude anabáze, sáhnul bych po takovém Sampro nebo Open EVSE bez zaváhání. Teď už konečně začínám být spokojený a pěkně jsem se vyučil, takže nabídek nevyužiji...
Teco 0302 kit má ovšem stále jednu zásadní nevýhodu, se kterou je třeba počítat, pokud nějaký vlastník Teco Foxtrot ho chce použít: odpojení stykače po "návratu" napětí CP z 6V na 9V (C->B) ze strany auta se řídí softwarově a při zabloudění Foxtrotu při nějakém extrémně dlouhém výpočetním cylu se to nedá systémově dobře řešit (jedině interrupty, které se v Tecu se dělají mírně blbě). Umístil jsem tedy na krabici wallboxu tlačítko STOP a když jdu kolem něj k autu s cílem ukončit nabíjení a uvolnit kabel, před uvolněním kabelu stisknu toto STOP a mám nastavených 30s, do kterých je ještě třeba uvolnit kabel stiskem tlačítka v autě a kabel vyndat. Pokud se to do 30s nestane, nic se neděje, auto zamkne kabel a začne znovu nabíjet (pokud má povoleno v logice) a postup je pak třeba opakovat. Tento postup "Když s autem přijedeš, jen zastrč kabel a o nic se nestarej, vše zařídí automatika nabíjení. Když odjíždíš, stiskni STOP + do 30s uvolni a vyndej kabel" se jeví dostatečně jednoduchý i pro členy rodiny . Ukončování nabíjení z aplikace bych nechtěl ani po sobě...
Chápu, že plechová krabice, do které jsem wallbox (spolu s přepínačem sítí, elektroměrem atd.) dal, se nemusí líbit každému, ale kromě "kodlovské" bezpečnosti tím, že je plechová, se u ní projevila jedna nečekaná výhoda: velmi dobře tlumí zvuky stykačů.
Teco 0302 kit má ovšem stále jednu zásadní nevýhodu, se kterou je třeba počítat, pokud nějaký vlastník Teco Foxtrot ho chce použít: odpojení stykače po "návratu" napětí CP z 6V na 9V (C->B) ze strany auta se řídí softwarově a při zabloudění Foxtrotu při nějakém extrémně dlouhém výpočetním cylu se to nedá systémově dobře řešit (jedině interrupty, které se v Tecu se dělají mírně blbě). Umístil jsem tedy na krabici wallboxu tlačítko STOP a když jdu kolem něj k autu s cílem ukončit nabíjení a uvolnit kabel, před uvolněním kabelu stisknu toto STOP a mám nastavených 30s, do kterých je ještě třeba uvolnit kabel stiskem tlačítka v autě a kabel vyndat. Pokud se to do 30s nestane, nic se neděje, auto zamkne kabel a začne znovu nabíjet (pokud má povoleno v logice) a postup je pak třeba opakovat. Tento postup "Když s autem přijedeš, jen zastrč kabel a o nic se nestarej, vše zařídí automatika nabíjení. Když odjíždíš, stiskni STOP + do 30s uvolni a vyndej kabel" se jeví dostatečně jednoduchý i pro členy rodiny . Ukončování nabíjení z aplikace bych nechtěl ani po sobě...
Chápu, že plechová krabice, do které jsem wallbox (spolu s přepínačem sítí, elektroměrem atd.) dal, se nemusí líbit každému, ale kromě "kodlovské" bezpečnosti tím, že je plechová, se u ní projevila jedna nečekaná výhoda: velmi dobře tlumí zvuky stykačů.
- Přílohy
-
- Wallb.jpg (137.48 KiB) Zobrazeno 7138 x
-
- 20220620_200338.jpg (347.93 KiB) Zobrazeno 7148 x
-
- Příspěvky: 712
- Registrován: pon bře 29, 2021 11:51 pm
Re: Wallbox samodomo
Děkujeme za prošlapání cestičky.marsal píše: ↑úte čer 21, 2022 8:08 am Děkuji ještě všem, kteří mi na cestě ze soucitu nabízeli hotové wallboxy . Kdybych tušil, jaká to bude anabáze, sáhnul bych po takovém Sampro nebo Open EVSE bez zaváhání. Teď už konečně začínám být spokojený a pěkně jsem se vyučil, takže nabídek nevyužiji...
Teco 0302 kit má ovšem stále jednu zásadní nevýhodu, se kterou je třeba počítat, pokud nějaký vlastník Teco Foxtrot ho chce použít: odpojení stykače po "návratu" napětí CP z 6V na 9V (C->B) ze strany auta se řídí softwarově a při zabloudění Foxtrotu při nějakém extrémně dlouhém výpočetním cylu se to nedá systémově dobře řešit (jedině interrupty, které se v Tecu se dělají mírně blbě). Umístil jsem tedy na krabici wallboxu tlačítko STOP a když jdu kolem něj k autu s cílem ukončit nabíjení a uvolnit kabel, před uvolněním kabelu stisknu toto STOP a mám nastavených 30s, do kterých je ještě třeba uvolnit kabel stiskem tlačítka v autě a kabel vyndat. Pokud se to do 30s nestane, nic se neděje, auto zamkne kabel a začne znovu nabíjet (pokud má povoleno v logice) a postup je pak třeba opakovat. Tento postup "Když s autem přijedeš, jen zastrč kabel a o nic se nestarej, vše zařídí automatika nabíjení. Když odjíždíš, stiskni STOP + do 30s uvolni a vyndej kabel" se jeví dostatečně jednoduchý i pro členy rodiny . Ukončování nabíjení z aplikace bych nechtěl ani po sobě...
Chápu, že plechová krabice, do které jsem wallbox (spolu s přepínačem sítí, elektroměrem atd.) dal, se nemusí líbit každému, ale kromě "kodlovské" bezpečnosti tím, že je plechová, se u ní projevila jedna nečekaná výhoda: velmi dobře tlumí zvuky stykačů.
A těm co si koupili hotový wallbox, přeji velké solární pole a mnoho baterek.(je to pro lenochy , nebo ti co nemají čas)
Pak nemusí řešit nic a za cca.3 hod od rozbalení krabice nabíjejí. Sice nikoli dynamicky, ale bez obstrukcí.
Ano potom je potřeba poučit osádku.
Re: Wallbox samodomo
Inu, věda a výzkum vyžadují oběti.Noparasito píše: ↑úte čer 21, 2022 10:46 pm A těm co si koupili hotový wallbox, přeji velké solární pole a mnoho baterek.(je to pro lenochy , nebo ti co nemají čas)
Pak nemusí řešit nic a za cca.3 hod od rozbalení krabice nabíjejí. Sice nikoli dynamicky, ale bez obstrukcí.
Přepínání DS/FVE, které zmírní cyklování baterek, lze jistě udělat i ručně. Automatika je pro mne dobrá, zmirňuje kromě zmíněného cyklování i ostrovnickou obsesi "nenechávat na střeše", obzvláště pro ty, kteří zatím nevytěžovali, protože neměli kam.
Ještě trochu ladím UI, ale to už je takové hraní, nebudu zase spamovat, aby mne dumi nevybanoval (viewtopic.php?p=1319#p1319)
EDIT:
Jasněže jsou další možnosti: Renault ZOE by se měl dát ovládat i přes API (t.j. např. vyčítat si SOC a nenabíjet nad 90%, pokud nemusím), tak je stále kam směřovat .
-
- Příspěvky: 712
- Registrován: pon bře 29, 2021 11:51 pm
Re: Wallbox samodomo
Prej doporuceni je se pohybovat 40-80% SOC.
Ale zalezi kterej vyrobce.
Jinak kdyz vis ze pojedes 100km a vice tak na SOC 100% na tu chvilu zas tak neskodi .
Ale zalezi kterej vyrobce.
Jinak kdyz vis ze pojedes 100km a vice tak na SOC 100% na tu chvilu zas tak neskodi .
Re: Wallbox samodomo
Ahoj,
musím se na ten tvůj zdroják podívat, jsem rád že to někdo udělal pořádně, já jen vycházel z diagramů od Phoenix wallboxu a pár článků z netu.
Psal jsem hned na začátku, funguje to s autem co mám.
Ohledně ukončování, tak to dělám různě.
- tlačítkem na wallboxu, které nastaví proud na 0
- appkou k autu
- nejčastěji tak že přijdu k autu, sáhnu na kliku a vytáhnu kabel
K tomu jaký má enyaq nahouby sw, tak toto má vymyšleno primitivně. odemčení vozu auto cca minutu nenabíjí a odemkne kabel.
tzn stačí přijít k autu, sáhnout na zadní kliku, cvakne zámek kabelu a vytáhnu, dám do držáku, sedám a jedu.
musím se na ten tvůj zdroják podívat, jsem rád že to někdo udělal pořádně, já jen vycházel z diagramů od Phoenix wallboxu a pár článků z netu.
Psal jsem hned na začátku, funguje to s autem co mám.
Ohledně ukončování, tak to dělám různě.
- tlačítkem na wallboxu, které nastaví proud na 0
- appkou k autu
- nejčastěji tak že přijdu k autu, sáhnu na kliku a vytáhnu kabel
K tomu jaký má enyaq nahouby sw, tak toto má vymyšleno primitivně. odemčení vozu auto cca minutu nenabíjí a odemkne kabel.
tzn stačí přijít k autu, sáhnout na zadní kliku, cvakne zámek kabelu a vytáhnu, dám do držáku, sedám a jedu.
9,8 kWp Poly + Tigo, 3x XTM4000, 2x VT65, 1x VT80, 8x Pylon US3000B + paralelne k tomu 15S LiFe 360Ah s Batrium BMS
Re: Wallbox samodomo
No, bez Tebe bych neudělal nic a "pořádně" je poněkud přepjatý výraz, řekl bych .
Stále mi zůstává (neobtěžující) nedokonalost, že pokud já stisknu "kliku" na ZOE (tedy v případě ZOE je to tlačítko "uvolni kabel"), tak občas ZOE vyhodí chybu "zkontrolovat nabíjecí stanici". Toto se nikdy nestane, pokud nabíjení nejdřív ukončím tlačítkem na wallboxu nebo v aplikaci (které obojí nastavují proud na nulu). Přičítám to za současného stavu znalostí tomu, že v případě, kdy ZOE ukončuje vlastním tlačítkem, hlídá odpad stykače nějak rychleji než v případě, že zjistí, že CP je na 100% a že tedy požadavek na ukončení nabíjení přišel zvenčí.
Ve stávajím mém programu to tak není, ale zkoušel jsem i nastavení proudu na nulu při detekci ukončení stavu EV_In.STAT.CHARGE, ale nepomohlo to. Buď tedy stále něco nevidím nebo je to to, co už jsem psal: Teco 0302 prodlevu mezi detekcí konce EV_In.STAT.CHARGE a odpadem relé realizuje softwarově a to holt někdy časově nestačí a ZOE je na toto příliš citlivé.
Pan Urban z Teco, který se snažil a komunikoval dobře, mi tuto softwarovou záležitost potvrdil a to je prostě slabina tohoto řešení Teco.
Takže, jak už jsem tedy zase psal, ukončování dělám tlačítkem, nevadí mi to a funguje zcela spolehlivě.
Pokud bys chtěl studovat kód, přikládám . Ta optimalizace je tam ještě k doladění, dělám sice pomalé klouzavé průměry, ale stejně tam přidám hysterezi, aby na hraně výkonu panelů nebo na hraně SOC nechodil tam a zpět příliš rychle (v řádech minut, což se teď děje).
Díky
Kód: Vybrat vše
PROGRAM Wallbox_execute
// variables handled outside the POU:
//// wb_logic_charge_allow - if True, EVSE logic allows charging
//// wb_charge_current - current within MIN - MAX (never 0)
//
//
// evaluate "force stop" logic coming from web or button
wb_stop_tof(IN := wb_stop or EV_In.DI.DI2, PT := T#30s);
wb_stop := 0;
//
// verify the connection
wb_cable_connected := EV_In.STAT.CCONN;
//
// handle output current
IF wb_cable_connected and wb_logic_charge_allow and not wb_stop_tof.Q THEN
Ev_Out.CURR := wb_charge_current;
ELSE
Ev_Out.CURR := 0;
END_IF;
//
// verify request charge status and control the contactor
wb_request_charge := EV_In.STAT.CHARGE;
Ev_Out.DOs.DO2 := wb_request_charge;
//
// copy contactor state to LED
Ev_Out.DOs.DO1 := Ev_Out.DOs.DO2;
//
//
//
// for messaging purpose only: process the contractor on/off triggers
IF not wb_contactor_previous and Ev_Out.DOs.DO1 THEN
wb_contactor_on_tp(IN := True); // event - wb contactor on
ELSIF wb_contactor_previous and not Ev_Out.DOs.DO1 THEN
wb_contactor_off_tp(IN := True); // event - wb contactor off
ELSE
wb_contactor_on_tp(IN := False); // event - wb contactor on
wb_contactor_off_tp(IN := False); // event - wb contactor on
END_IF;
wb_contactor_previous := Ev_Out.DOs.DO1;
wb_contactor_on := bool_to_real(wb_contactor_on_tp.Q);
wb_contactor_off := bool_to_real(wb_contactor_off_tp.Q);
END_PROGRAM
PROGRAM Wallbox
VAR
TP_FVE_pulse : TP; // time pulse for FVE relay of network switch
TP_DS_pulse : TP; // time pulse for DS relay of network switch
TP_FVE_delay : TP; // time pulse for FVE relay of network switch protect
TP_DS_delay : TP; // time pulse for DS relay of network switch protect
TP_ERRSTATE : TP; // time pulse for try to switch on network switch
//
//
NETSWITCHPULSE : TIME; // pulse lenght to network switch contactors
NETSWITCHPROTECT : TIME; // pulse lenght to network switch contactors
NETSWITCHDELAY : TIME; // pulse lenght to network switch contactors
//FIXSWITCHCURRENT_FVE : REAL; // current set after the switch to FVE
//FIXSWITCHCURRENT_DS : REAL; // current set after the switch to DS
//
ADAPTINTERVAL_fbTick : fbTICK;
//
AVGCURRENTINTERVAL_SLOW : TIME;
alpha_slow : REAL;
AVGCURRENTINTERVAL_FAST : TIME;
alpha_fast : REAL;
//
alpha_soc : REAL;
//
average_current_tp_slow : TP; // interval for averagizing of battery current
average_current_tp_fast : TP; // interval for averagizing of battery current
//
wb_prevcurrent : REAL;
//
wb_a : REAL;
END_VAR
//
//
IF ProgramIsChanged() THEN
// allow wallbox charging both from FVE and DS
wb_allowed_ds := False; // allowed charging from ds?
wb_allowed_fve := True; // allowed charging from fve?
wb_adaptivecurr := True; // should be the wb charging current adaptively changed (otherwise fixed)
//
WB_MIN_CURRENT := 8; // cannot go below this current when charging
WB_MAX_CURRENT := 16; // cannot go above this current when charging
//FIXSWITCHCURRENT_FVE := 10; // go to this current when switching to FVE (should limit "slow charging not alowed")
//FIXSWITCHCURRENT_DS := 10; // go to this current when switching to DS (should limit "slow charging not alowed")
//
NETSWITCHPULSE := T#500ms; // pulse lenght to network switch contactors
NETSWITCHPROTECT := T#8s; // lenght of the protection interval when switching network switch
NETSWITCHDELAY := T#4s; // lenght between protection interval start and impulse to switch contractor
//
wb_charge_current := WB_MIN_CURRENT; // initial charging current
wb_maxpower_fve := 7000; // maximum power from FVE total (if above, starts panic regulation)
wb_maxpower_ds := 9000; // maximum power from DS total (if above, starts panic regulation)
WB_MAXPOWER_FVE_HARDLIMIT := 8000; // hard limit for FVE set
WB_MAXPOWER_DS_HARDLIMIT := 10000; // hard limit for DS set
//
wb_soc_mincharge := 90; // min soc value for which chargin from FVE is enabled
//
wb_targetcurrent_bat_min := 40; // target regulation battery charging current during adaptive wb regulation in case when battery soc is minimum (equal to wb_soc_mincharge)
wb_targetcurrent_bat_100 := 0; // target regulation battery charging current during adaptive wb regulation in case when battery soc is 100%
wb_switchoffcurrent_bat := - 50; // if the regulation of the wb is not hold desired wb_targetcurrent_bat current and longer time goes beyond this value, FVE wb charging is disabled (slow averagizing)
MINPANELSWATTAGE := 100; // minimum averagized value beyond which the charging from FVE is disabled (slow averagizing)
//
// switch network switch to FVE
netswitch_state := 'n/a'; // unclear state
//
AVGCURRENTINTERVAL_SLOW := T#60s; // interval for slow smoothing average variables
alpha_slow := 0.2; // alpha for slow exponential smoothing
AVGCURRENTINTERVAL_FAST := T#5s; // interval for fast smoothing average variables
alpha_fast := 0.5; // alpha for "fast" exponential smoothing
alpha_soc := 0.03; // alpha for SOC very slow smoothing
ADAPTINTERVAL_fbTick(IN := TRUE, PT := T#10s); // launch adaptive interval for current adaptation
//
// message inticators for contactor on/of init
wb_contactor_on_tp(IN := False, PT := T#2s);
wb_contactor_off_tp(IN := False, PT := T#2s);
END_IF;
//
//
// update battery target current
wb_a :=(wb_targetcurrent_bat_100 - wb_targetcurrent_bat_min) /(100 - wb_soc_mincharge);
wb_targetcurrent_bat := wb_targetcurrent_bat_min +(gs_bsp_soc - wb_soc_mincharge) * wb_a;
IF gs_bsp_soc < wb_soc_mincharge THEN
wb_targetcurrent_bat := wb_targetcurrent_bat_min;
END_IF;
//
wb_run :=(wb_allowed_fve OR wb_allowed_ds) AND not is_init.Q and not EM340_evse_errstate.q and not TP_FVE_protect.Q and not TP_DS_protect.Q and not wb_stop_tof.Q;
//
// charging allowed logic
IF wb_run and wb_allowed_fve and wb_adaptivecurr and wb_soc_mincharge <= wb_avg_soc and wb_avg_batt_current_slow >= wb_switchoffcurrent_bat and wb_avg_pannels_wattage >= MINPANELSWATTAGE THEN
wb_logic_charge_allow := TRUE;
FVE_button := True;
ELSIF wb_run and wb_allowed_fve and not wb_adaptivecurr and wb_soc_mincharge <= wb_avg_soc and wb_avg_pannels_wattage >= MINPANELSWATTAGE THEN
wb_logic_charge_allow := TRUE;
FVE_button := True;
ELSIF wb_run and wb_allowed_ds THEN
wb_logic_charge_allow := TRUE;
DS_button := True;
// not charging currently? Set min. current
ELSE
wb_logic_charge_allow := FALSE;
wb_charge_current := WB_MIN_CURRENT;
END_IF;
//
//
// network switch processing
IF EM340_evse_errstate.q THEN // was error reading from wallbox EM340 ?
em340d_evse.L1W := 0;
em340d_evse.L2W := 0;
em340d_evse.L3W := 0;
em340d_evse.L1V := 0;
em340d_evse.L2V := 0;
em340d_evse.L3V := 0;
em340d_evse.kWsys := 0;
netswitch_state := 'n/a';
// try to recover but not too often (may by permanently switched off)
IF not TP_ERRSTATE.Q THEN
IF wb_allowed_ds and not wb_allowed_fve THEN
DS_button := True;
ELSE
FVE_button := True;
END_IF;
TP_ERRSTATE(in := True, PT := T#60s);
END_IF;
ELSE
// no error, "standard" network switch logic with FVE as priority
TP_ERRSTATE(in := False);
END_IF;
//
//
// networks switch logic "watchdog" - both buttons cannot be triggered, FVE as priority
IF FVE_button THEN
DS_button := False;
END_IF;
//
// launch protect and delay intervals, if appropriate
TP_FVE_protect(IN := FVE_button and netswitch_state <> 'FVE', PT := NETSWITCHPROTECT);
TP_DS_protect(IN := DS_button and netswitch_state <> 'DS', PT := NETSWITCHPROTECT);
TP_FVE_delay(IN := TP_FVE_protect.Q, PT := NETSWITCHDELAY);
TP_DS_delay(IN := TP_DS_protect.Q, PT := NETSWITCHDELAY);
TP_FVE_pulse(IN := TP_FVE_protect.Q and not TP_FVE_delay.Q, PT := NETSWITCHPULSE, Q => EvseFVE); // pulse to to realay
TP_DS_pulse(IN := TP_DS_protect.Q and not TP_DS_delay.Q, PT := NETSWITCHPULSE, Q => EvseDS); // pulse to to realay
//
// switch network switch state and fix current
IF TP_FVE_pulse.Q THEN
netswitch_state := 'FVE';
ELSIF TP_DS_pulse.Q THEN
netswitch_state := 'DS';
END_IF;
// clear buttons/triggers variables for network switch
FVE_button := FALSE;
DS_button := FALSE;
//
//
// slow averaging
average_current_tp_slow(In := False);
IF is_init.Q THEN
wb_avg_soc := gs_bsp_soc;
wb_avg_pannels_wattage := gs_vt_pw;
wb_avg_batt_current_slow := CurrentBatSum;
ELSE
IF not average_current_tp_slow.Q THEN
wb_avg_batt_current_slow := alpha_slow * CurrentBatSum +(1 - alpha_slow) * wb_avg_batt_current_slow;
wb_avg_pannels_wattage := alpha_slow * gs_vt_pw +(1 - alpha_slow) * wb_avg_pannels_wattage;
wb_avg_soc := alpha_fast * gs_bsp_soc +(1 - alpha_fast) * wb_avg_soc;
//
average_current_tp_slow(In := True, PT := AVGCURRENTINTERVAL_SLOW); // launch next current averagizing interval - slow
END_IF;
END_IF;
//
// fast averaging
average_current_tp_fast(In := False);
IF is_init.Q THEN
wb_avg_batt_current_fast := CurrentBatSum;
ELSE
IF not average_current_tp_fast.Q THEN
wb_avg_batt_current_fast := alpha_fast * CurrentBatSum +(1 - alpha_fast) * wb_avg_batt_current_fast;
average_current_tp_fast(In := True, PT := AVGCURRENTINTERVAL_FAST); // launch next current averagizing interval - fast
END_IF;
END_IF;
//
//
//// adaptive regulation
//
//
//
// instant "panic" adaptation when charging over hardlimits?
IF em340d_evse.kwSys > 0 THEN
// panic FVE?
IF netswitch_state = 'FVE' and em340d_out.kwSys > WB_MAXPOWER_FVE_HARDLIMIT THEN
wb_charge_current := WB_MIN_CURRENT;
END_IF;
// panic DS?
IF netswitch_state = 'DS' and em340d.kwSys > WB_MAXPOWER_DS_HARDLIMIT THEN
wb_charge_current := WB_MIN_CURRENT;
END_IF;
END_IF;
//
//
// adapt
ADAPTINTERVAL_fbTick(IN := TRUE);
IF wb_adaptivecurr and wb_logic_charge_allow and not TP_FVE_protect.Q and not TP_DS_protect.Q and ADAPTINTERVAL_fbTick.Q THEN
IF netswitch_state = 'DS' THEN
IF em340d.kwSys > wb_maxpower_ds THEN
wb_charge_current := wb_charge_current - 0.5;
END_IF;
IF em340d.kwSys < wb_maxpower_ds THEN
wb_charge_current := wb_charge_current + 0.5;
END_IF;
ELSIF netswitch_state = 'FVE' THEN
IF em340d_out.kwSys > wb_maxpower_fve or wb_avg_batt_current_fast < wb_targetcurrent_bat THEN
wb_charge_current := wb_charge_current - 0.5;
END_IF;
IF em340d_out.kwSys < wb_maxpower_fve and wb_avg_batt_current_fast > wb_targetcurrent_bat THEN
wb_charge_current := wb_charge_current + 0.5;
END_IF;
END_IF;
END_IF;
//
//
// calculate wb consumption snapshots
wb_today_kwh := em340d_evse.TotKWhPlus - wb_snapshot_kwh;
IF cur_day <> old_day THEN
// midnight
old_day := cur_day;
wb_yesterday_kwh := wb_today_kwh;
wb_snapshot_kwh := em340d_evse.TotKWhPlus;
END_IF;
//
//
// verify limits of charge current
IF wb_charge_current < WB_MIN_CURRENT THEN
wb_charge_current := WB_MIN_CURRENT;
ELSIF wb_charge_current > WB_MAX_CURRENT THEN
wb_charge_current := WB_MAX_CURRENT;
END_IF;
//
//
// mark + or - charge marker?
wb_show_adaptminus(IN :=(wb_charge_current < wb_prevcurrent) and wb_adaptivecurr and em340d_evse.kwSys > 0, PT := T#2000ms);
wb_show_adaptplus(IN :=(wb_charge_current > wb_prevcurrent) and wb_adaptivecurr and em340d_evse.kwSys > 0, PT := T#2000ms);
wb_prevcurrent := wb_charge_current;
//
//
END_PROGRAM
Re: Wallbox samodomo
Tohle: https://wiki.tecomat.cz/clanek/14129-c-ev-0302m
Chodí mi to spolehlivě, ale slabina popsaná v mém předchozím příspěvku zůstává.
Kód jsem mezitím vylepšil .
Re: Wallbox samodomo
A dělá se něco podobného i na 3 fáze?
Re: Wallbox samodomo
Pocet fazi urcuje pocet polu na stykaci. A pocet zapojenych fazi v zasuvce/zastrcce.
9,8 kWp Poly + Tigo, 3x XTM4000, 2x VT65, 1x VT80, 8x Pylon US3000B + paralelne k tomu 15S LiFe 360Ah s Batrium BMS
Re: Wallbox samodomo
Premyslal som ako postavit wallbox, ktory by dokazal dynamicky menit nabijaci prud podla stavu aku. Chcel som nieco jednoduche, co zvladne postavit aj nie-programator.
Modul EVSE wallbox z http://evracing.cz doplneny o wifi modul s esp8266 s nahratym simple evse https://github.com/CurtRod/SimpleEVSE-WiFi
Simple evse wifi modul ma moznost cez API nastavovat nabijaci prud, takze som si spravil v Home assistantovi automatizaciu aby podla napatia na baterii nastavoval nabijaci prud EV, zacina na 6A pri 53V na baterii az po 32A pri napati nad 55V.
Je to zatial iba demo v testovani, uvidime ci sa to osvedci z dlhodobeho hladiska.
Priebeh nabijania: Po skonceni nabijania:
Modul EVSE wallbox z http://evracing.cz doplneny o wifi modul s esp8266 s nahratym simple evse https://github.com/CurtRod/SimpleEVSE-WiFi
Simple evse wifi modul ma moznost cez API nastavovat nabijaci prud, takze som si spravil v Home assistantovi automatizaciu aby podla napatia na baterii nastavoval nabijaci prud EV, zacina na 6A pri 53V na baterii az po 32A pri napati nad 55V.
Je to zatial iba demo v testovani, uvidime ci sa to osvedci z dlhodobeho hladiska.
Priebeh nabijania: Po skonceni nabijania:
+- 24kWp panelov, 55kWh lithia, 2x 5kW Axpert, 3x XTM-4000 a stale je to malo
Re: Wallbox samodomo
Také je možnost přefakturace hostovi ve stejné ceně za kilowatthodinu, za kterou “nakupuješ”, za kterou ti dodává tvůj dodavatel.nextclick píše: ↑úte led 11, 2022 10:58 amAle zpět k tématu mám dotaz: Jak je to s legislativou pokud bych chtěl nabídnout dobíjení hostům, kteří se ke mne přišli ubytovat? Předpokládám že na wallbox musím mít revizi. Ale jak je to s daněma? Není tam nějaká skrytá povinnost, která se nyní jen nevymáhá přesto je tam už teď? Předpokládám že když elektřinu prodám dráž, tak jí jen zahrnu do účta jako položku na faktuře. MOhu vůbec elektřinu prodat?
Takže čistě teoreticky, pokud by jsi měl ubytování jakožto nepodnikatel, třeba pronájem, pouze deník příjmu a výdajů, tak to ani nemusíš zahrnovat do příjmů, jde to mimo.
Ad licence: Kdysi jsem se na to ptal na ERU, mi odepsali myslím, že nikdo nebude zkoumat jestli kilowatt stojí 4,50 nebo 4,65 takže prostě když to zhruba odpovídá nákupní ceně, nejedná se o licencovaný prodeji ale o pouhou přefakturaci a že je to nezajímá. Ale to nebylo v souvislosti s EV ani v souvislosti s FVE, Čistě jen mě zajímalo, jak mohu vykazovat papírově spotřebovanou elektřinu zákazníkem (nájemcem - §9, nebo hostem - §7).
Re: Wallbox samodomo
Tiez som kupil taky stykac. Nemas nahodou nakreslene opacne FVE ma ist na prvy stykač L1,L2,L3,N aj DS na druhy stykač L1,L2,L3,N potom T1,T2,T3,N ide do domu? Ked som meral tak obidve stykace su prepojene T1-T1, T2-T2, T3-T3, N-N.
Re: Wallbox samodomo
To může být, že to má být opačně než ně schématu (nebo je to jedno), nestíhám to teď ověřit, pardon.
-
- Příspěvky: 87
- Registrován: ned črc 11, 2021 9:38 am
- Výkon panelů v FVE [Wp]: 6000
- Kapacita baterie [kWh]: 14
Re: Wallbox samodomo
Chlapi, poradíte do čoho ísť?
Zadanie - WB pre PHEV (Mitsubishi Outlander): 3,7kW, 1f, Type 1, 0-10(5)V.
Reguláciu výkonu bude mať na starosti GBO (PWM->0.10V). Ideálne čo najjednoduchšia voľba bez potreby extenzivneho programovania, minimálna kludova spotreba, info display o stave nabíjania (výkon, počítadlo kWh, chybové hlásenie apod.)
Najbližšie k tomuto zadaniu ma 7,4kW Sampro
https://wifi.sampro.cz/wall-box-32a-t1- ... oregzamdlm, výhodou je že už obsahuje vhodny RCD. Nevýhoda, mozno zbytočný výkon 7,4kW ktorý má (asi) aj vplyv na výslednú cenu(?). Neviem, každopádne by som rád vyberal z viacerých možností. Vopred vďaka!
Zadanie - WB pre PHEV (Mitsubishi Outlander): 3,7kW, 1f, Type 1, 0-10(5)V.
Reguláciu výkonu bude mať na starosti GBO (PWM->0.10V). Ideálne čo najjednoduchšia voľba bez potreby extenzivneho programovania, minimálna kludova spotreba, info display o stave nabíjania (výkon, počítadlo kWh, chybové hlásenie apod.)
Najbližšie k tomuto zadaniu ma 7,4kW Sampro
https://wifi.sampro.cz/wall-box-32a-t1- ... oregzamdlm, výhodou je že už obsahuje vhodny RCD. Nevýhoda, mozno zbytočný výkon 7,4kW ktorý má (asi) aj vplyv na výslednú cenu(?). Neviem, každopádne by som rád vyberal z viacerých možností. Vopred vďaka!
Ostrov. 6kWp/14,4kWh/2x4000kVA (12xCanadian Solar CS3Y490MS, 4xPylontech US3000C, 2xXTM-4000-48, VS-120, RCC-03)