NEWS
Anzahl Summe Liter
-
Hallo,
habe 6 DP mit Liter , möchte das alle zusammengezählt werden und in einen DP geschrieben werden.
Ventil 1-2 funktioniert aber.Das funktioniert so nicht? Wo habe ich da einen Fehler?
Blockly:
-
@sigi234 sagte in Anzahl Summe Liter:
Das funktioniert so nicht?
was genau?
du arbeitest mit Datenpunkten, das läuft asynchron ab.
die DPs (der DP) haben noch nicht die neuen Werte, wenn der zweite Befehl kommtAm besten mit variablen arbeiten und erst zum Schluss in den DP schreiben.
-
@sigi234
Oder vielleicht mit einer kleinen Verzögerung.
Probier mal... -
@dslraser sagte in Anzahl Summe Liter:
Oder vielleicht mit einer kleinen Verzögerung.
Probier mal...Sorry, aber dieses einbauen von kurzen Verzögerungen um aus der "async" Falle zu kommen ist nicht gut. Zum einen hängt die Frage ob / wie es geht davon ab wie schnell der Objektbaum prinzipiell arbeitet, zum anderen hast du dadurch auch andere Probleme.
Insbesondere kann bei Deinem Beispiel das Ergebnis deutlich zu hoch ausfallen. Dazu kommt das du jedes mal wenn sich EIN wert Ändert alle 6 Werte einliest.
das ist nicht gut.
Beim Arbeiten mit Datenpunkten gilt meiner Meinung nach ganz hart:
- Erst lesen
- Dann Rechnen
- Am Ende Schreiben.
Auf dieses Beispiel gemünzt:
Wichtig dabei: Der Baustein "state value" ist keine Variable sondern der Baustein im "Trigger" Bereich der mit "objekt ID" vorbelegt ist. Darin ist immer genau der Wert des DP der den Trigger ausgelöst hat.
Wenn immer nur die Änderung gegenüber dem Vorwert hinzu addiert werden soll geht das auch einfach: (Auch hier ist der Baustein "previous value" der gleiche wie oben - nur statt "state value" auf "previous value" gesetzt. Dieser beinhaltet den Wert des auslösenden DP BEVOR die Änderung den Trigger ausgelöst hat.)
-
@asgothian
Vielen Dank für die Erklärung.