Hallo Yves,
ok das passt nun so zu meinen Beobachtungen und erklärt das aktuelle Verhalten.
Grundsätzlich ist mein Verständnis beim eventbasierten System: E1 und E40/E60 können doch eh nie genau gleichzeitig geändert werden sondern nur nacheinander... Für mich ist das daher kein Problem bzgl. Vorrang solange man eh immer nur auf einen "refresh" reagiert. Der User bzw. die Logik hat es damit eigentlich selbst in der Hand was er macht, das letzte Event gewinnt halt.
Und: Warum berechnest Du nicht einfach auch bei E1 die Position neu? Sollte ja dann dasselbe Ergebnis rauskommen falls sich an den Eingängen nichts geändert hat bzw. wenn sich an anderen Eingängen was (ggf. auch bewusst durch eine andere Vorschalt-Logik!) geändert hat sollten die aktuellen Eingänge doch auch berücksichtigt sein.
Damit wäre E1 / E40/60 auch gleich zu handeln: Alle lösen Neupositionsberechnung direkt aus nur das Schreiben auf die Ausgänge wäre unterschiedlich.
Ich würde folgendes Verhalten in den Raum schmeissen:
- E1 löst komplette Berechnung aus und schreibt immer die Ausgänge. Ob hier nun die Timer berücksichtigt werden oder nicht wäre für mich offen (ich wäre eigentlich für sofortiges schreiben ohne Timer...)
- E2 löst komplette Berechnung aus und schreibt nur bei Änderung ggü. Vorgängerwert die Ausgänge (so hab ich das aus der Hilfe interpretiert, ist aber ja noch nicht implementiert, so wie ich Deine Antwort interpretiere wäre das aber nahe am heutigen E1 Verhalten)
- E40/60 refresh mit 1 löst Berechnung aus und schreibt immer direkt ohne Timer auf die Ausgänge (analog zum Verhalten E40/60=0 wie es in RC3 schon funktioniert)
ok das passt nun so zu meinen Beobachtungen und erklärt das aktuelle Verhalten.
Zitat von starwarsfan
Beitrag anzeigen
Und: Warum berechnest Du nicht einfach auch bei E1 die Position neu? Sollte ja dann dasselbe Ergebnis rauskommen falls sich an den Eingängen nichts geändert hat bzw. wenn sich an anderen Eingängen was (ggf. auch bewusst durch eine andere Vorschalt-Logik!) geändert hat sollten die aktuellen Eingänge doch auch berücksichtigt sein.
Damit wäre E1 / E40/60 auch gleich zu handeln: Alle lösen Neupositionsberechnung direkt aus nur das Schreiben auf die Ausgänge wäre unterschiedlich.
Ich würde folgendes Verhalten in den Raum schmeissen:
- E1 löst komplette Berechnung aus und schreibt immer die Ausgänge. Ob hier nun die Timer berücksichtigt werden oder nicht wäre für mich offen (ich wäre eigentlich für sofortiges schreiben ohne Timer...)
- E2 löst komplette Berechnung aus und schreibt nur bei Änderung ggü. Vorgängerwert die Ausgänge (so hab ich das aus der Hilfe interpretiert, ist aber ja noch nicht implementiert, so wie ich Deine Antwort interpretiere wäre das aber nahe am heutigen E1 Verhalten)
- E40/60 refresh mit 1 löst Berechnung aus und schreibt immer direkt ohne Timer auf die Ausgänge (analog zum Verhalten E40/60=0 wie es in RC3 schon funktioniert)
Kommentar