Fehler im RoboPro Listenelement II
Verfasst: 16 Mär 2018, 17:10
Liebes fischertechnik Team,
Anders als in
Das führt bestenfalls zu erhöhter Rechenlast, wenn die angeschlossenen Elemente mit dem unveränderten Eintragswert neu evaluiert werden, oder aber dazu, dass angeschlossene Variablen, die zwischenzeitlich modifiziert wurden, wieder zurückgesetzt werden. Das führt zu Fehlverhalten, das nur schwer einzukreisen ist.
Als Workaround sollte man nach Möglichkeit den R-Ausgang von angeschlossenen Elementen mit einem Zuweisungsbefehl entkoppeln.
Ein den Fehler reproduzierendes RoboPro-Beispiel findet sich hier.
Falls RoboPro noch weiterentwickelt wird, wäre ich sehr dankbar für einen Fix dieses Bugs im kommenden RoboPro Update.
Beste Grüße,
Helmut
Anders als in
dokumentiert, schickt ein Listenelement eine Zuweisung über den R-Ausgang nicht nur, wenn sich der gewählte Eintrag ändert, sondern auch beim Senden beliebiger Befehle (Zuweisen, Anhängen, Löschen) an den S-Eingang anderer Instanzen der Liste, wobei die Befehle den aktuell ausgewählten Listeneintrag gar nicht betreffen oder ändern. Folglich führt jede Änderung des Listeninhalts zu einem erneuten Update des R-Ausgangs aller Instanzen einer Liste.RoboPro Hilfe-Kapitel "8.4.5 Liste"
… Ändert sich der I-Eingang oder der Wert des Eintrags, der über den I-Eingang ausgewählt wurde, schickt die Liste den aktuellen Wert des ausgewählten Eintrags an die Elemente, die am R-Ausgang angeschlossen sind. …
Das führt bestenfalls zu erhöhter Rechenlast, wenn die angeschlossenen Elemente mit dem unveränderten Eintragswert neu evaluiert werden, oder aber dazu, dass angeschlossene Variablen, die zwischenzeitlich modifiziert wurden, wieder zurückgesetzt werden. Das führt zu Fehlverhalten, das nur schwer einzukreisen ist.
Als Workaround sollte man nach Möglichkeit den R-Ausgang von angeschlossenen Elementen mit einem Zuweisungsbefehl entkoppeln.
Ein den Fehler reproduzierendes RoboPro-Beispiel findet sich hier.
Falls RoboPro noch weiterentwickelt wird, wäre ich sehr dankbar für einen Fix dieses Bugs im kommenden RoboPro Update.
Beste Grüße,
Helmut