Phoenix Contact EV Charge Controller + Modbus

Alles rund ums Elektroauto-Laden / Ladeboxen / Ladegeräte

Re: Phoenix Contact EV Charge Controller + Modbus

Beitragvon ChristianF » Di 3. Apr 2018, 19:29

Ausser im Auto kannst du den SoC nur in CarNet sehen.
Viele Grüße,
Christian

e-Up seit 2017 und e-golf 300 seit 2018
Überschussladung mit Leistungssteuerung an eigener PV-Anlage
ChristianF
 
Beiträge: 533
Registriert: Di 2. Feb 2016, 20:01

Anzeige

Re: Phoenix Contact EV Charge Controller + Modbus

Beitragvon muena » Do 3. Mai 2018, 12:08

So, unsere Wallbox mit dem Phoenix Charge Controller ist eingetroffen.
Ich habe mir jetzt Gedanken gemacht, wie ich den ansteuern werde. Vielleicht habt ihr dazu noch gute Ergänzungen oder Hinweise:

Mindest Ladeleistung = 1380W
Akku = Batteriespeicher Ladestand
pAuto = Ladeleistung Auto
pPvGrid = Leistung von PV ins Netz
pPvBatt = Leistung von PV in Batteriespeicher


Code: Alles auswählen
Endlosschleife:
   Wenn Akku >= 90% und Zeit < 15:00 Uhr und (pPvGrid + pPvBatt - 500W) >= 1380W:
      pAuto = pPvGrid + pPvBatt - 500W # (>= 500W werden noch in den Batteriespeicher geladen)
   Wenn Akku >= 80% und Zeit < 14:00 Uhr und (pPvGrid + pPvBatt - 1000W) >= 1380W:
      pAuto = pPvGrid + pPvBatt - 1000W # (>= 1000W werden noch in den Batteriespeicher geladen)
   Ansonsten:
      pAuto = pPvGrid oder 1380W wenn pPvGrid < 1380W
      
      
   Wenn pPvGrid >= 1380W und Laden beendet:
      Timer für 5 Minuten starten
      Wenn danach pPvGrid immer noch >= 1380W:
         Laden starten mit pAuto
         
   
   Wenn pPvGrid < 1380W und Auto lädt:
      Timer für 5 Minuten starten
      Wenn danach pPvGrid immer noch < 1380W:
         Laden beenden
   
   10 Sekunden warten


Natürlich kann ich nur Ampere-Schritte einstellen. Dadurch ergeben sich bei uns (KIA lädt nur einphasig...) folgende mögliche Ladeleistungen:
1380W
1610W
1840W
2070W
2300W
2530W
2760W
2990W
3220W
3450W
3680W

Ich muss dann pAuto immer auf die nächstkleinere Ladeleistung abrunden.
muena
 
Beiträge: 4
Registriert: Mo 2. Apr 2018, 00:48

Re: Phoenix Contact EV Charge Controller + Modbus

Beitragvon ChristianF » Do 3. Mai 2018, 12:33

Wenns hilft kann ich dir mein Programm dazu zur Verfügung stellen..
Viele Grüße,
Christian

e-Up seit 2017 und e-golf 300 seit 2018
Überschussladung mit Leistungssteuerung an eigener PV-Anlage
ChristianF
 
Beiträge: 533
Registriert: Di 2. Feb 2016, 20:01

Re: Phoenix Contact EV Charge Controller + Modbus

Beitragvon muena » Do 3. Mai 2018, 12:34

ChristianF hat geschrieben:
Wenns hilft kann ich dir mein Programm dazu zur Verfügung stellen..

Bitte gern :) , mit dem Modbus hab ich mich noch gar nicht beschäftigt...
muena
 
Beiträge: 4
Registriert: Mo 2. Apr 2018, 00:48

Re: Phoenix Contact EV Charge Controller + Modbus

Beitragvon ChristianF » Do 3. Mai 2018, 21:54

Gern. Viel Spass damit.

Variablen und Adressen musst Du natürlich auf Deine Gegebenheiten anpassen.

Code: Alles auswählen
var Ladestrom_verfuegbar, Aktueller_Ladestrom, Neuer_Ladestrom;


schedule("*/30 * * * * *", function () {
  // Wenn der WR im Nachtmodus ist, machen wir hier gar nix.
  if (getState("modbus.0.holdingRegisters.40108_OP-State").val != 2) {
    if (getState("javascript.0.Ladestation.1.Modus").val == 0) {
      // Wenn die Erzeugungslogik zu wenig Ertrag aufweist, sperren wir hier.
      if (getState("javascript.0.SolarEdge.Minimalerzeugung_erreicht").val == true) {
        // Minimalerzeugung ist erreicht, also los..
        if (getState("modbus.2.coils.400_400_Ladefreigabe").val == false) {
          setState("modbus.2.coils.400_400_Ladefreigabe"/*Ladefreigabe*/, true);
          setStateDelayed("modbus.2.coils.400_400_Ladefreigabe"/*Ladefreigabe*/, true, 3000, false);
        }
        // Aktuellen Ladestrom in Variable schreiben
        Ladestrom_verfuegbar = 0;
        Ladestrom_verfuegbar = getState("modbus.2.inputRegisters.120_120_W_L1-N").val + (getState("javascript.0.Stromzaehler.Einspeisung_aktuell").val - getState("javascript.0.Stromzaehler.Netzbezug_aktuell").val);
        Aktueller_Ladestrom = getState("javascript.0.Ladestation.1.Ladestrom_Ueberschussladen").val;
        // Den neuen LS kennen wir noch nicht -> 0
        Neuer_Ladestrom = 0;
        if (Ladestrom_verfuegbar <= 1610) {
          if (Ladestrom_verfuegbar >= 1000 && Ladestrom_verfuegbar <= 1610) {
            // 6A ist Minimum, und da wir immer ein bisschen übrig haben wollen, gehen wir bis unter die Grenze von 7A hoch (1610W)
            Neuer_Ladestrom = 6;
          } else if (false) {
          }
        } else if (Ladestrom_verfuegbar >= 1611 && Ladestrom_verfuegbar <= 1840) {
          Neuer_Ladestrom = 7;
        } else if (Ladestrom_verfuegbar >= 1841 && Ladestrom_verfuegbar <= 2070) {
          Neuer_Ladestrom = 8;
        } else if (Ladestrom_verfuegbar >= 2071 && Ladestrom_verfuegbar <= 2300) {
          Neuer_Ladestrom = 9;
        } else if (Ladestrom_verfuegbar >= 2301 && Ladestrom_verfuegbar <= 2530) {
          Neuer_Ladestrom = 10;
        } else if (Ladestrom_verfuegbar >= 2531 && Ladestrom_verfuegbar <= 2760) {
          Neuer_Ladestrom = 11;
        } else if (Ladestrom_verfuegbar >= 2761 && Ladestrom_verfuegbar <= 2990) {
          Neuer_Ladestrom = 12;
        } else if (Ladestrom_verfuegbar >= 2991 && Ladestrom_verfuegbar <= 3220) {
          Neuer_Ladestrom = 13;
        } else if (Ladestrom_verfuegbar >= 3221 && Ladestrom_verfuegbar <= 3450) {
          Neuer_Ladestrom = 14;
        } else if (Ladestrom_verfuegbar >= 3451 && Ladestrom_verfuegbar <= 3680) {
          Neuer_Ladestrom = 15;
        } else if (Ladestrom_verfuegbar >= 3681 && Ladestrom_verfuegbar <= 3910) {
          Neuer_Ladestrom = 16;
        } else if (Ladestrom_verfuegbar >= 3911 && Ladestrom_verfuegbar <= 4140) {
          Neuer_Ladestrom = 17;
        } else if (Ladestrom_verfuegbar >= 4141 && Ladestrom_verfuegbar <= 4370) {
          Neuer_Ladestrom = 18;
        } else if (Ladestrom_verfuegbar >= 4371 && Ladestrom_verfuegbar <= 4600) {
          Neuer_Ladestrom = 19;
        } else if (Ladestrom_verfuegbar >= 4601) {
          Neuer_Ladestrom = 20;
        }
        // Jetzt wissen wir den neuen Ladestrom! Alt=neu?
        if (Aktueller_Ladestrom != Neuer_Ladestrom) {
          // Oh, was Neues! Gleich an PV_Ladestrom geben!
          console.log((['Ladestrom verändert, wird von ',Aktueller_Ladestrom,' verändert auf ',Neuer_Ladestrom].join('')));
          setState("javascript.0.Ladestation.1.Ladestrom_Ueberschussladen"/*Ladestrom_Ueberschussladen*/, Neuer_Ladestrom, true);
          setState("modbus.2.holdingRegisters.300_Ladestromstaerke", Neuer_Ladestrom);
        } else {
          // Nix Neues, nix zu tun
          console.log((['Ladestrom gleichgeblieben, bleibt bei ',Aktueller_Ladestrom,' (neu wäre ',Neuer_Ladestrom,' gewesen)'].join('')));
        }
      } else {
        // Minimalerzeugung nicht erreicht, also wird nicht nach PV-Überschuss geladen!
        if (getState("modbus.2.coils.400_400_Ladefreigabe").val == true) {
          setState("modbus.2.coils.400_400_Ladefreigabe"/*Ladefreigabe*/, false);
          setStateDelayed("modbus.2.coils.400_400_Ladefreigabe"/*Ladefreigabe*/, false, 3000, false);
        }
      }
    } else {
      // Wir sind nicht im AUTO Modus des Ladereglers, nix zu tun
    }
  } else {
    // Wechselrichter schläft, nix zu tun.
  }
});
Viele Grüße,
Christian

e-Up seit 2017 und e-golf 300 seit 2018
Überschussladung mit Leistungssteuerung an eigener PV-Anlage
ChristianF
 
Beiträge: 533
Registriert: Di 2. Feb 2016, 20:01

Re: Phoenix Contact EV Charge Controller + Modbus

Beitragvon muena » Fr 4. Mai 2018, 07:34

ChristianF hat geschrieben:
Gern. Viel Spass damit.

Variablen und Adressen musst Du natürlich auf Deine Gegebenheiten anpassen.

Code: Alles auswählen
var Ladestrom_verfuegbar, Aktueller_Ladestrom, Neuer_Ladestrom;


schedule("*/30 * * * * *", function () {
  // Wenn der WR im Nachtmodus ist, machen wir hier gar nix.
  if (getState("modbus.0.holdingRegisters.40108_OP-State").val != 2) {
    if (getState("javascript.0.Ladestation.1.Modus").val == 0) {
      // Wenn die Erzeugungslogik zu wenig Ertrag aufweist, sperren wir hier.
      if (getState("javascript.0.SolarEdge.Minimalerzeugung_erreicht").val == true) {
        // Minimalerzeugung ist erreicht, also los..
        if (getState("modbus.2.coils.400_400_Ladefreigabe").val == false) {
          setState("modbus.2.coils.400_400_Ladefreigabe"/*Ladefreigabe*/, true);
          setStateDelayed("modbus.2.coils.400_400_Ladefreigabe"/*Ladefreigabe*/, true, 3000, false);
        }
        // Aktuellen Ladestrom in Variable schreiben
        Ladestrom_verfuegbar = 0;
        Ladestrom_verfuegbar = getState("modbus.2.inputRegisters.120_120_W_L1-N").val + (getState("javascript.0.Stromzaehler.Einspeisung_aktuell").val - getState("javascript.0.Stromzaehler.Netzbezug_aktuell").val);
        Aktueller_Ladestrom = getState("javascript.0.Ladestation.1.Ladestrom_Ueberschussladen").val;
        // Den neuen LS kennen wir noch nicht -> 0
        Neuer_Ladestrom = 0;
        if (Ladestrom_verfuegbar <= 1610) {
          if (Ladestrom_verfuegbar >= 1000 && Ladestrom_verfuegbar <= 1610) {
            // 6A ist Minimum, und da wir immer ein bisschen übrig haben wollen, gehen wir bis unter die Grenze von 7A hoch (1610W)
            Neuer_Ladestrom = 6;
          } else if (false) {
          }
        } else if (Ladestrom_verfuegbar >= 1611 && Ladestrom_verfuegbar <= 1840) {
          Neuer_Ladestrom = 7;
        } else if (Ladestrom_verfuegbar >= 1841 && Ladestrom_verfuegbar <= 2070) {
          Neuer_Ladestrom = 8;
        } else if (Ladestrom_verfuegbar >= 2071 && Ladestrom_verfuegbar <= 2300) {
          Neuer_Ladestrom = 9;
        } else if (Ladestrom_verfuegbar >= 2301 && Ladestrom_verfuegbar <= 2530) {
          Neuer_Ladestrom = 10;
        } else if (Ladestrom_verfuegbar >= 2531 && Ladestrom_verfuegbar <= 2760) {
          Neuer_Ladestrom = 11;
        } else if (Ladestrom_verfuegbar >= 2761 && Ladestrom_verfuegbar <= 2990) {
          Neuer_Ladestrom = 12;
        } else if (Ladestrom_verfuegbar >= 2991 && Ladestrom_verfuegbar <= 3220) {
          Neuer_Ladestrom = 13;
        } else if (Ladestrom_verfuegbar >= 3221 && Ladestrom_verfuegbar <= 3450) {
          Neuer_Ladestrom = 14;
        } else if (Ladestrom_verfuegbar >= 3451 && Ladestrom_verfuegbar <= 3680) {
          Neuer_Ladestrom = 15;
        } else if (Ladestrom_verfuegbar >= 3681 && Ladestrom_verfuegbar <= 3910) {
          Neuer_Ladestrom = 16;
        } else if (Ladestrom_verfuegbar >= 3911 && Ladestrom_verfuegbar <= 4140) {
          Neuer_Ladestrom = 17;
        } else if (Ladestrom_verfuegbar >= 4141 && Ladestrom_verfuegbar <= 4370) {
          Neuer_Ladestrom = 18;
        } else if (Ladestrom_verfuegbar >= 4371 && Ladestrom_verfuegbar <= 4600) {
          Neuer_Ladestrom = 19;
        } else if (Ladestrom_verfuegbar >= 4601) {
          Neuer_Ladestrom = 20;
        }
        // Jetzt wissen wir den neuen Ladestrom! Alt=neu?
        if (Aktueller_Ladestrom != Neuer_Ladestrom) {
          // Oh, was Neues! Gleich an PV_Ladestrom geben!
          console.log((['Ladestrom verändert, wird von ',Aktueller_Ladestrom,' verändert auf ',Neuer_Ladestrom].join('')));
          setState("javascript.0.Ladestation.1.Ladestrom_Ueberschussladen"/*Ladestrom_Ueberschussladen*/, Neuer_Ladestrom, true);
          setState("modbus.2.holdingRegisters.300_Ladestromstaerke", Neuer_Ladestrom);
        } else {
          // Nix Neues, nix zu tun
          console.log((['Ladestrom gleichgeblieben, bleibt bei ',Aktueller_Ladestrom,' (neu wäre ',Neuer_Ladestrom,' gewesen)'].join('')));
        }
      } else {
        // Minimalerzeugung nicht erreicht, also wird nicht nach PV-Überschuss geladen!
        if (getState("modbus.2.coils.400_400_Ladefreigabe").val == true) {
          setState("modbus.2.coils.400_400_Ladefreigabe"/*Ladefreigabe*/, false);
          setStateDelayed("modbus.2.coils.400_400_Ladefreigabe"/*Ladefreigabe*/, false, 3000, false);
        }
      }
    } else {
      // Wir sind nicht im AUTO Modus des Ladereglers, nix zu tun
    }
  } else {
    // Wechselrichter schläft, nix zu tun.
  }
});

Super, vielen Dank! :)

Hast du eine 32A Sicherung und gehst nur bis 20A oder riskierst du 20A bei einer 16A Sicherung? ;)
muena
 
Beiträge: 4
Registriert: Mo 2. Apr 2018, 00:48

Re: Phoenix Contact EV Charge Controller + Modbus

Beitragvon Berndte » Fr 4. Mai 2018, 07:41

20A bei einer 16A Sicherung funktioniert keine 5 Minuten.
Sep 2014: Renault Zoe
Nov 2014: Eigene 43kW Ladesäule
Okt 2015: 2x 43kW und 1x 14kW am Arbeitsplatz
Dez 2015: Kangoo Maxi und Verkauf des letzten Verbrenners -> jetzt 100% elektrisch!
Mär 2016: Reservierung Tesla Modell = mit Nummer 11 in Hamburg
Benutzeravatar
Berndte
 
Beiträge: 6165
Registriert: Sa 30. Aug 2014, 18:46
Wohnort: Oyten (bei Bremen)

Re: Phoenix Contact EV Charge Controller + Modbus

Beitragvon ChristianF » Fr 4. Mai 2018, 09:31

Ich habe einen 20A Automaten, da das Fahrzeug nur einphasig lädt und ab 4,6kW die Schieflastverordnung zuschlägt ;)
Viele Grüße,
Christian

e-Up seit 2017 und e-golf 300 seit 2018
Überschussladung mit Leistungssteuerung an eigener PV-Anlage
ChristianF
 
Beiträge: 533
Registriert: Di 2. Feb 2016, 20:01

Re: Phoenix Contact EV Charge Controller + Modbus

Beitragvon ChristianF » Fr 4. Mai 2018, 12:53

Berndte hat geschrieben:
20A bei einer 16A Sicherung funktioniert keine 5 Minuten.
Das ist so pauschal nicht richtig. Je nach Auslösecharakteristik kann ein deutlich höherer Strom toleriert werden. Beim typischen LS mit Charakteristik B sind das das 1,13-1,45fache des Nennstroms. Es ist also durchaus möglich dass ein B16A bis zu 23A aushält (obwohl das sicherlich nicht gesund ist).
Mehr Infos unter https://de.m.wikipedia.org/wiki/Leitungsschutzschalter
Viele Grüße,
Christian

e-Up seit 2017 und e-golf 300 seit 2018
Überschussladung mit Leistungssteuerung an eigener PV-Anlage
ChristianF
 
Beiträge: 533
Registriert: Di 2. Feb 2016, 20:01

Re: Phoenix Contact EV Charge Controller + Modbus

Beitragvon NoGi » Fr 4. Mai 2018, 13:23

ChristianF hat geschrieben:
Je nach Auslösecharakteristik kann ein deutlich höherer Strom toleriert werden. Beim typischen LS mit Charakteristik B sind das das 1,13-1,45fache des Nennstroms.


Wegen eines Artikels der "paar Euros" Preisklasse würde ich mir keinen Kopf machen
und bei der nächsten Amazon Bestellung einen S201-B20 mitbestellen und einbauen.

-NoGi
LEAF 2. Zero Spring Cloud bestellt 27.12.2017, hab ich am 02.08.2018 abgeholt. :mrgreen:
Leitung : 71m NYY-J 5x6 mm².
HEIDELBERG Wallbox Eco (11kW). Support your local Sheriff :-)
Das Warten ist vorbei, jetzt beginnt der Spass.
Benutzeravatar
NoGi
 
Beiträge: 76
Registriert: So 4. Feb 2018, 12:49
Wohnort: Metropolregion Rhein-Neckar

Anzeige

VorherigeNächste

Zurück zu Ladeequipment

 
  • Ähnliche Themen
    Antworten
    Zugriffe
    Letzter Beitrag
  • Ähnliche Artikel im Blog

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste