NEWS
[Gelöst]Batteriespeichersimulation mit AMIS-Daten in Blockly
-
@goetschhofer z.B.
rechte Maustaste auf z.B. den Mathe + Baustein (externe/interne Eingänge) umschalten -
Mit der Funktion externe Eingänge wird es gleich viel übersichtlicher.
Habe heute die Variable: Setze Log Wahr-Funktion eingebaut.
Die Auswahl falsch bewirkt praktisch einen Stopp ?
Bei mir läuft bei Änderung auf falsch und Speichern unten die Info weiter.
Wenn man dies auf falsch setzt, bewirkt dies eine Beschleunigung des Skript ?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 ?
-
@dslraser: Ich verwende gar keine Sonderzeichen oder Leerzeichen in id's.
Wenn Du die id's änderst, dann mußt Du auch alles was dazu gehört ändern. Wenn es so ohne Probleme läuft, dann lasse es jetzt so. Influx und Grafana würde ich immer erst machen, wenn Du ein funktionierendes Blockly hast und auch an den Datenpunkten nichts mehr ändern willst.Das neue Blockly schreibe ich erst in die Influxdb u. Grafana , wenn es den "TÜV" bestanden hat.
Die bestehenden 270+ u. 280- betreffen ja ein anderes Blockly, welches ich für den AMIS-Zähler verwende zur Aufbereitung und dem Schreiben der Datenpunkte.
Ich knüpfte hier in der BAT_SIMU_1 ja nur an diese 2 Punkte (270+ u. 270-) im anderen Blockly an. -
@goetschhofer sagte in Batteriespeichersimulation mit AMIS-Daten in Blockly:
Habe heute die Variable: Setze Log Wahr-Funktion eingebaut.
Die Auswahl falsch bewirkt praktisch einen Stopp ?Bei mir läuft bei Änderung auf falsch und Speichern unten die Info weiter.
fällt Dir was auf ? (die debug Bausteine sind nicht im Maul vom falls/mache...)
Wenn man dies auf falsch setzt, bewirkt dies eine Beschleunigung des Skript ?
nein, sollte keine Unterschied machen, aber wenn Du fertig bist mit dem Blockly kann man das Log so sehr einfach abschalten und muß nicht alle Bausteine deaktivieren oder löschen. Falls man nochmal was probieren möchte, dann schaltet man das Log einfach wieder an. Du könntest auch mehrere Log einbauen (Log_a/Log_b usw.., dann könntest Du auch einzelne "Abschnitte" loggen)
Wenn das Log ewig alle 2 Sekunden mitläuft, dann müllt man sich das Log ja auch irgendwie/irgendwann damit zu, deshalb schalte ich das dann ab, wenn alles läuft so wie es soll.) -
@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.
-
@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 ?)
-
@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