NEWS
[Gelöst]Batteriespeichersimulation mit AMIS-Daten in Blockly
-
@dslraser said in Batteriespeichersimulation mit AMIS-Daten in Blockly:
fällt Dir was auf ? (die debug Bausteine sind nicht im Maul vom falls/mache...)
Dank für den Hinweis.
Da ist mir wieder ein Flüchtigkeitsfehler passiert.
Diese Frage wollte ich schon lange stellen, wo die debugs reingehören, aber damit ist diese auch vollumfänglich beantwortet. -
@dslraser said in Batteriespeichersimulation mit AMIS-Daten in Blockly:
@goetschhofer sagte in Batteriespeichersimulation mit AMIS-Daten in Blockly:
Die bestehenden 270+ u. 280- betreffen ja ein anderes Blockly
hier sind doch auch solche DP im Blockly drinn.
Die 2 DP 270+ u. 280- stehen im Blockly Amis und diese 2 verwende ich im Blockly BATT_SIMU.
-
@dslraser said in Batteriespeichersimulation mit AMIS-Daten in Blockly:
@goetschhofer sagte in Batteriespeichersimulation mit AMIS-Daten in Blockly:
Ich hatte beim Testen heute das mathematische Pänomen, dass, wenn ich beim Beladen mit Speicherstand_Wh mit null starte (Eingabe in DP), beginnt das Skript nicht den Speicherstand_Wh rechnerisch zu ermitteln, sondern bleibt bei 0 Wh.
Wenn ich als Startwert im DP Speicherstand-Wh nicht null, sondern 1 eingebe, fängt er sofort an zu rechnen u. der Speicherstand_Wh wächst bei Beladen.Könnte dies mit der Zahl Null zusammenhängen ? Beladen Wh z. B. 0,50 Wh + 0 = 0,50 Wh oder
gehört hier eventuell anstatt der Objekt ID Beladen Wh die VARIABLE, Ladeenergie Wh hinein ?Oben steht, das Deine Berechnung erst starten soll wenn größer 0, also passiert bei 0 auch nix. (Oder meinst Du was anderes ?)
Ja, dies ist richtig, dass er erst bei Lade_Energie_Wh >0 starten soll.
Das spannende daran ist, wenn ich den Speicherstand auf 0 setze, beginnt er, obwohl Beladen_Wh >0 ist, den Speicher nicht zu laden.
Wenn ich den Anfangsstand auf 0,001 Wh setze fährt er weg u. lädt den Speicher.Ladeenergie_Wh u. Speicherstand_Wh ist wie folgt definiert: Wenn die Lade_Energie_Wh >0 ist, soll er den neuen Speicherstand_Wh ermitteln.
Habe jetzt auch mal versucht, das Objekt Beladen-Wh im Punkt 4. Ermittlung Speicherstand in Wh durch die Variable Ladeenergie_Wh zu ersetzen, aber bei Anfangsstand Speicherstand 0 Wh fährt er hier auch nicht weg.
Gebe ich als Anfangsstand 0,001 Wh ein fährt er bei beiden weg.
10. BLOCKLY_BAT_SIMU_1_TEST-24.9.2021-11h.txt
Danke
-
@dslraser said in Batteriespeichersimulation mit AMIS-Daten in Blockly:
@goetschhofer sagte in Batteriespeichersimulation mit AMIS-Daten in Blockly:
Ich hatte beim Testen heute das mathematische Pänomen, dass, wenn ich beim Beladen mit Speicherstand_Wh mit null starte (Eingabe in DP), beginnt das Skript nicht den Speicherstand_Wh rechnerisch zu ermitteln, sondern bleibt bei 0 Wh.
Wenn ich als Startwert im DP Speicherstand-Wh nicht null, sondern 1 eingebe, fängt er sofort an zu rechnen u. der Speicherstand_Wh wächst bei Beladen.Könnte dies mit der Zahl Null zusammenhängen ? Beladen Wh z. B. 0,50 Wh + 0 = 0,50 Wh oder
gehört hier eventuell anstatt der Objekt ID Beladen Wh die VARIABLE, Ladeenergie Wh hinein ?Oben steht, das Deine Berechnung erst starten soll wenn größer 0, also passiert bei 0 auch nix. (Oder meinst Du was anderes ?)
Jetzt hätte ich ihm vor Ermittlung des neuen Speicherstandes bei Ausgangssituation Speicherstand 0 noch eine falls Speicherstand>=0 reingedrückt, aber er will nicht.
Bei Start Speicherstand 0 zählt er nicht hoch. Max. Speicherstand checkt er, ebenso bei Entladen und Erreichen Speicherstand 0.
-
@goetschhofer
ich schaue es mir auch gerade mal an (bin jetzt zu Hause) -
Bitte keine Eile, nur wenn es zeitlich leicht geht.
Anbei nochmals den letzten Stand. -
@goetschhofer
Ja, ich muß gleich nochmal weg. Ich melde mich dann später. -
@dslraser said in Batteriespeichersimulation mit AMIS-Daten in Blockly:
@goetschhofer
Ja, ich muß gleich nochmal weg. Ich melde mich dann später.Kein Problem !
-
@dslraser said in Batteriespeichersimulation mit AMIS-Daten in Blockly:
@goetschhofer
Ja, ich muß gleich nochmal weg. Ich melde mich dann später.Ich wollte noch mal höflich nachfragen, ob du schon Zeit hattest nochmals einen kritischen Blick auf mein Blockly zu werfen, bezüglich des Problems, wenn er auf Ladestand 0 ist, dass er dann anschließend beim Beladen nicht hochzählt ?
Sondern nur dann hochzählt, wenn ich einen Mindestladestand händisch von 0,001 eintrage.Ich könnte vielleicht auch noch bei der letzten Entladung, falls er unter null kommt einen Fixwert mit 0,001 hinzurechnen.
Habe auch schon einen Mindestladestand von 0,001 eingegeben, da hat es aber nicht funktioniert.Den SoC-STATE of Charge-% habe ich zwar als Variable oben definiert, aber unten hat er mit dies nicht gerechnet, daher habe ich unten nochmals berechnen lassen. Normal müsste dies auch mit der Variable SoC funktionieren.
Danke im Voraus.
-
@goetschhofer sagte in Batteriespeichersimulation mit AMIS-Daten in Blockly:
Ich wollte noch mal höflich nachfragen, ob du schon Zeit hattest nochmals einen kritischen Blick auf mein Blockly zu werfen
Leider noch nicht.
-
Ich muß mich ehrlich gesagt jedes Mal neu reindenken, weil ich keine solche Anwendung in Betrieb habe.
Also vielleicht nochmal der Reihe nach.
Was muß ich hier in welchen DP zum testen für Werte eintragen. (bleiben wir erstmal beim beladen)Und was muß dann hier passieren bzw. was muß da raus kommen ?
Bitte mal ein Beispiel (z.B. mit 1000 W)
-
@dslraser
Aus Sicht des EVU-Smartmeters steht + für Bezug, - für Einspeisung, daher bei mir anschließende Vorzeichendrehung.
SUMME_170_270+: Bezug 1000 W
SUMME_170_270-: Einspeisung 1000 WAus Sicht des Batteriespeichers steht + für Beladung, - für Entladung, wie Sparbuch.
Im Moment werden lt. Smartmeter 700 W Leistung eingepeist (-) und diese werden virtuell als + auf den Batteriespeicher geladen.
-
wenn Du mit 0 Speicherstand startest, dann wird das hier immer auf 0 zurück gesetzt.
(falls Dein Speicherstand kleiner gleich Min (0), dann setze den Speicherstand auf Min(0)
Jedenfalls ist das kein Fehler, sondern von Dir so programmiert.Wenn Du im Blockly den ganzen Bereich zum entladen deaktivierst und bei 0 Speicherstand startest, dann zählt auch der Speicherstand hoch, weil er dann nicht auf 0 zurück gesetzt wird.
Ich habe die Logs für mich angepasst, sonst kann ich das schlecht lesen.
-
O.k. klingt ziemlich logisch.
Vielen Dank für die Fehler-Detailanalyse.Ich glaube ich muss hier nochmals etwas umbauen u. nacharbeiten, da habe ich bei der Speicherstandermittlung irgendwie den roten Faden verloren.
Hatte ja schon einen DP und eine Variable RECHNERISCHER_SPEICHERSTAND_Wh vorgesehen gehabt, aber dann irgendwie wieder vergessen.
Ich ermittle mir einfach über die Variable Rechnerischer Speicherstand_Wh den Wert aus DP_SPEICHER_STAND-Wh + DP BELADEN Wh + DP Entladen Wh.
Und mit diesem Zwischenwert=Rechnerischer Speicherstand_Wh vergleiche ich mit dem MINWERT=0 oder den MAXWERT=5000.Wenn dieser Rechn. Speicherstand <=MINWERT=0, dann schreibe MINWERT=0.
Wenn dieser Rechn. Speicherstand >=MAXWERT=5000, dann schreibe MAXWERT=5000.Was hältst du davon ?
Ich denke dann dürfte eventuell das Problem mit dem nicht Hochzählen vermieden sein.Danke
-
eigentlich müßte es reichen eine kleine Verzögerung für den entlade Bereich einzubauen. (dann wird nicht zeitgleich der Datenpunkt abgefragt.)
-
Super Idee, dann bräuchte ich nicht mehr wieder mit einer neuen Fals..... Funktion in die Logik eingreifen.
Kann dir auf die Schnelle noch nicht ganz folgen, muss mir dies erst logisch erarbeiten.
Melde mich aber sobald ich das Ganze durchgespielt habe.
Das Thema zeitverzögerter Ablauf wäre nämlich meine nächste Frage gewesen, wieweit man dies hier einbauen soll.
Aber du bist mir zuvorgekommen.Danke
-
Ich habe jetzt deine letzte Version vom 27.9.21 vom Blockly übernommen, denn das ergänzen bei mir wäre zu viel Aufwand geworden und hier hätte ich sicherlich wieder unnötige Fehler eingebaut.
Dein Blockly läuft bei mir fehlerfrei !
Danke
Super finde ich die Struktur beim Debug, sehr übersichtlich u. vor allem, dass man einzelne Teile weg- u. zuschalten kann.Einige kleine Ergänzungen u. Änderungen habe ich noch vorgenommen.
- Ich hatte noch einen Rechenfehler beim Ermitteln der Ladeenergie_Wh u. Entladeenergie_Wh.
Hier hab ich beim SEK_MESS_INTERVALL / gerechnet, anstatt x. Richtig: BELADEN_W/3600 x 2 Sek., da die Werte in 2-Sek. Intervallen geliefert werden.
-
B. Entladen-Punkt 5:Hier hat er mir beim Entladen den SOC nicht in den DP geschrieben, da die Zeile gefehlt hat, diese habe ich offenbar übersehen und jetzt noch ergänzt.
Den Debug dazu habe ich erweitert. -
Bin schon gespannt ob er bei Speicherstand null, nach vollständiger Entleerung von Null aufwärts wieder hochzählt.
15. NACH ÄNDERUNG-DSLRASER_BLOCKLY_BAT_SIMU_1_TEST-29.9.2021-11h38.txt
- Ich hatte noch einen Rechenfehler beim Ermitteln der Ladeenergie_Wh u. Entladeenergie_Wh.
-
@goetschhofer sagte in Batteriespeichersimulation mit AMIS-Daten in Blockly:
Bin schon gespannt ob er bei Speicherstand null, nach vollständiger Entleerung von Null aufwärts wieder hochzählt.
ich auch, schauen wir mal...
-
@dslraser said in Batteriespeichersimulation mit AMIS-Daten in Blockly:
@goetschhofer sagte in Batteriespeichersimulation mit AMIS-Daten in Blockly:
Bin schon gespannt ob er bei Speicherstand null, nach vollständiger Entleerung von Null aufwärts wieder hochzählt.
ich auch, schauen wir mal...
@dslraser
Habe eben noch eine Ergänzung gemacht.
Der maximale Lade- und Entladestand war nicht als Variable definiert.
Soeben als variable eingebaut debug angepasst.
17. NACH ÄNDERUNG-DSLRASER_BLOCKLY_BAT_SIMU_1_TEST-29.9.2021-12h20.txtAnbei nochmals den letzten Stand.
-
Hast Du Dir eigentlich mal den Adapter SourceAnalytix angesehen ?
Ich habe keinen Stromzähler den ich dafür verwenden kann, aber ich habe einige Schalt/Messsteckdosen. Ich habe jetzt mal eine davon mit dem Adapter ausprobiert. Das müßte eigentlich auch für Dich passen.