Seite 1 von 1

[V4.1] Zwischenspeichern eines Wertes für den nächsten Aufruf

Verfasst: Fr Nov 22, 2024 11:04 pm
von avater
Mod: abgetrennt zur besseren Auffindbarkeit!

Also, vielleicht ist es wirklich sinnvoller, auf evcc zu setzen.

Aber meine Eingangsfrage bleibt insofern bestehen, als ich für etwas anderes einen Latch brauche - und ich bekomme es nicht hin. Hier mein Versuch, einfach den letzten anstatt dem aktuellen Wert auszugeben:

Code: Alles auswählen

{
    "Level": [
        ["$Wahr","bool",true],
        ["$Eingang","float",100.0],
        ["$Merker1A","float",100.0]
    ],
    "Module": [
	    ["Latch","$Eingang","$Merker1A","$Wahr",0]
    ],
    "Input": [
        ["Eingang","Eingang","$Eingang","c"]
    ],
    "Output": [
        ["Merker1","Vorheriger Wert","$Merker1A","c"]
    ]
}
Es kommt aber immer direkt der Eingangswert wieder raus. Und die Logik sollte laut diesem alten Thread funktionieren: viewtopic.php?t=1394

Was ich nun versuche, ist, aus den letzten zwei Energiewerten (gezählt von einem S0-Zähler) die Momentanleistung zu berechnen. Mit Stoppuhr und Differenzbildung.

Re: [V4.1] Speichern eines Einzelwertes in einer Logik

Verfasst: Sa Nov 23, 2024 8:09 am
von Robert_Mini
Hallo!

Du hast im Latch ein $Wahr. Damit ist die Bedingung für das Übernehmen Eingang auf Ausgang des Latch Moduls immer erfüllt (bei Option 0).

Was du eigentlich willst:
Am Ende der Logikabarbeitung den letzten Wert merken und diesen beim nächsten Aufruf dann weiterverwenden.

D.h. Du brauchst (in der Reihenfolge)
Latch Merker1A => Ausgang zur Anzeige des letzten Wertes
(Eingang-Merker1A)/dt => Leistung
Latch Eingang => Merker1A

Lg
Robert

Re: [V4.1] Speichern eines Einzelwertes in einer Logik

Verfasst: Sa Nov 23, 2024 4:19 pm
von avater
Danke Robert!

Ich kapier es leider nicht. Also die Formel an Punkt 2, die schon, aber den Rest ... :eusa-think:

Gruß
Arne

Re: [V4.1] Speichern eines Einzelwertes in einer Logik

Verfasst: So Nov 24, 2024 12:03 am
von Robert_Mini
Melde mich dazu noch mal, mein Text ist etwas kryptisch, wenn ich selbst nochmal drüber lese.
LG Robert

Re: [V4.1] Zwischenspeichern eines Wertes für den nächsten Aufruf

Verfasst: So Nov 24, 2024 12:14 pm
von Robert_Mini
Hallo Arne!

Anbei ein einfaches Beispiel, was ich gemeint habe.

Am Beginn der Logik wird der letzte Wert auf den Ausgang übernommen, im zweiten Schritt wird der aktuelle Wert auf $Merker1A wieder zwischengespeichert. Beim folgenden Aufruf passiert wieder das gleiche.

Beim ganz ersten Aufruf wird der Initialwert von Merker1A (in dem Fall 77) ausgegeben.

lg
Robert

Code: Alles auswählen

{
    "Level": [
        ["$Wahr","bool",true],
        ["$Eingang","float",100.0],
        ["$Merker1A","float",77.0],
        ["$Ausgang","float",100.0]
    ],
    "Module": [
        // Alten Wert auf den Ausgang ausgeben
	    ["Latch","$Merker1A","$Ausgang","$Wahr",0],
        // Neuen Wert zwischenspeichern
	    ["Latch","$Eingang","$Merker1A","$Wahr",0]
    ],
    "Input": [
        ["Eingang","Eingang","$Eingang","a"]
    ],
    "Output": [
        ["Vorheriger Wert","Vorheriger Wert","$Ausgang","a"],
        ["Merker1","Wert aktuell zwischengespeichert","$Merker1A","a"]
    ]
}

Re: [V4.1] Zwischenspeichern eines Wertes für den nächsten Aufruf

Verfasst: So Nov 24, 2024 1:22 pm
von Sun1453
Cool vielleicht auch was für nen Standard Modul.

Re: [V4.1] Zwischenspeichern eines Wertes für den nächsten Aufruf

Verfasst: Mo Nov 25, 2024 8:57 pm
von avater
Vielen Dank @Robert_Mini!

Ich glaube, der Groschen ist gefallen: Mir war vor deinem Beispiel nicht klar genug, welche Rolle die Reihenfolge der Module spielt (oder auch: dass sie überhaupt eine Rolle spielt). Ich war da gedanklich bei einem Signalfluss in Mopsgeschwindigkeit (oder genauer: Nullzeit). Aber offensichtlich lässt sich ein Ausgangswert (hier also $Ausgang) schon bestimmen, noch ehe die Logik insgesamt fertig ist.

Ist immer noch ungewohnt für mich.

Wäre cool, wenn solche Beispiele auch direkt in der Dokumentation bei den Modulbausteinen wären.

Viele Grüße
Arne