Hallo Leute,
ich habe in meinem Verbrauchsbaustein ein Problem, welches ich aktuell nicht vernünftig umschiffen kann. Evtl. kann mir ein php-Profi einen Tipp geben.
Der Baustein macht beim Testen eigentlich alles richtig, leider werden aber im Realbetrieb Daten "verschluckt".
Ich denke ich bin dem Problem auf die Schliche gekommen. Ich speichere meine Historiendaten in ein KO im JSON Format. Diese KO liegt auch an einem Eingang an.
Der Baustein wird parallel von 5min und Stunden-KO getriggert, d.h. zu jeder vollen Stunde kommen praktisch zwei Impulse gleichzeitig.
Der Baustein fängt wohl mehr oder weniger parallel zu arbeiten an, daher verwenden beide Läufe die gleichen Eingangswerte. Resultat das Ergebnis des Bausteins der zuerst fertig wird geht verloren, da im zweiten nicht bekannt. (oder liege ich hier falsch?)
Kann man da was programmtechnisch dagegen machen? Die Intervall-Trigger könnte ich ja noch mit Verzögerungen entzerren, aber der Baustein wird auch durch Zählererhöhung angetriggert und da kann ich nicht beeinflussen, wann die Events kommen.
Kann ich evtl. mit dem Status des LBS was anfangen und irgendwie warten bis er nicht mehr läuft, also alle 500ms erneut anstarten, bis der Status 0 ist?
Winni
ich habe in meinem Verbrauchsbaustein ein Problem, welches ich aktuell nicht vernünftig umschiffen kann. Evtl. kann mir ein php-Profi einen Tipp geben.
Der Baustein macht beim Testen eigentlich alles richtig, leider werden aber im Realbetrieb Daten "verschluckt".
Ich denke ich bin dem Problem auf die Schliche gekommen. Ich speichere meine Historiendaten in ein KO im JSON Format. Diese KO liegt auch an einem Eingang an.
Der Baustein wird parallel von 5min und Stunden-KO getriggert, d.h. zu jeder vollen Stunde kommen praktisch zwei Impulse gleichzeitig.
Der Baustein fängt wohl mehr oder weniger parallel zu arbeiten an, daher verwenden beide Läufe die gleichen Eingangswerte. Resultat das Ergebnis des Bausteins der zuerst fertig wird geht verloren, da im zweiten nicht bekannt. (oder liege ich hier falsch?)
Kann man da was programmtechnisch dagegen machen? Die Intervall-Trigger könnte ich ja noch mit Verzögerungen entzerren, aber der Baustein wird auch durch Zählererhöhung angetriggert und da kann ich nicht beeinflussen, wann die Events kommen.
Kann ich evtl. mit dem Status des LBS was anfangen und irgendwie warten bis er nicht mehr läuft, also alle 500ms erneut anstarten, bis der Status 0 ist?
Winni
Kommentar