INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Zustandsautomat aktiv/inaktiv



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

02.04.2013, 12:16
Beitrag #1

Hasenfuss Offline
LVF-Stammgast
***


Beiträge: 331
Registriert seit: Dec 2012

2012
2012
DE



Zustandsautomat aktiv/inaktiv
Ich habe in einer while-Schleife einen Zustandsautomaten mit mehreren case-Fällen. Einer der Case-Fälle heisst Auswahlmenü. Dort befindet sich eine Eventstruktur, die beispielsweise Tastenzustände abfragt und entsprechende andere Zustände des Automaten auslöst. Ist der Zustand eine Funktion fertig - z.B. Gerät einschalten, dann springt der Zustandsautomat wieder in das Auwahlmenü.

Wenn ich mich in dem anderen Modus befinde und eine Taste drücke, dann reagiert der Zustandsautomat sofort, sobald der Case-Auswahlmenü wieder ausgelöst wurde.

Meine Frage dazu - wird, wenn ich einmal eine Eventstruktur gesetzt habe - dieser inaktiv, wenn ich aus dem Zustandsautomaten rausgehe? Vom Gefühl her würde ich sagen - nein, geht nicht - aber dann dürfte die Eventstruktur im Zustand Auswahlmenue nicht sofort ausgelöst werden, wenn ich noch während des Zustands "Gerät einschalten" einen Button auf dem Frontpanel anklicke.

Oder sollte man alle möglichen Tasten "deaktivieren", wenn der Zustandsautomat den Zustand Auswahlmenü verlässt und dann wieder aktivieren?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.04.2013, 12:23
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Zustandsautomat aktiv/inaktiv
Hallo Hasenfuss,

eine Eventstruktur reagiert auf alle konfigurierten Events. Wenn die Eventstruktur gerade nicht ausgeführt wird (weil sie z.B. in einem Case versteckt ist), dann werden die Events in einer Queue zwischengespeichert und abgearbeitet, wenn die Eventstruktur mal wieder aktiv wird. Dies ist dir passiert: "Wenn ich mich in dem anderen Modus befinde und eine Taste drücke, dann reagiert der Zustandsautomat sofort, sobald der Case-Auswahlmenü wieder ausgelöst wurde."

- Nein, die Eventstruktur wird nicht plötzlich/ohne dein Zutun inaktiv...
- Tasten deaktivieren könnte eine (mMn unsaubere) Lösung sein.
- Bessere Lösung: Hilfe zur Eventstruktur lesen, da sind "Regeln" genannt. Eine Eventstruktur sollte man nicht in einer Casestruktru verstecken. Eine Eventstruktur sollte immer sofort auf ein Event reagieren! Deshalb: Parallele Schleife mit Eventstruktur nutzen und Producer-Consumer-Schema verwenden, um "Befehle" an deine Statemachine zu schicken...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.04.2013, 15:00 (Dieser Beitrag wurde zuletzt bearbeitet: 02.04.2013 15:01 von Hasenfuss.)
Beitrag #3

Hasenfuss Offline
LVF-Stammgast
***


Beiträge: 331
Registriert seit: Dec 2012

2012
2012
DE



RE: Zustandsautomat aktiv/inaktiv
Hallo GerdW!

Vielen Dank für Deine Antwort.

Den Ansatz mit der separaten Ereignisstruktur hatte ich auch schon mal verwendet und dann die Ereignisse mittels Queue hinausgeführt.

Ich habe es jetzt so gelöst, dass ich die Queue im Zustand Auswahlmenue auslese. Und wenn ich eine Weile auf Ereignisse nicht reagieren will, dann kann ich einfach die Operation durchführen - Queue leeren, bevor ich in den Zustand Auswahlmenue zurückgehe.

Meinst Du, dass ist so akzeptabel gelöst? Oder hättest Du noch Verbesserungsvorschläge?

Das Beispielprogramm ist in LV 9.0 abgespeichert.


Angehängte Datei(en)
0.0 .zip  Hauptprogramm Ordner.zip (Größe: 21,74 KB / Downloads: 197)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Zustandsautomat oder QMH meta_ir 2 3.674 19.01.2017 08:52
Letzter Beitrag: meta_ir
  Zustandsautomat beenden flizzer82 7 6.113 22.09.2016 09:33
Letzter Beitrag: jg
  Zustandsautomat geht nicht in nächsten Schritt mrgigi 4 4.765 30.09.2015 13:19
Letzter Beitrag: panduci
  Histogramme werden nicht immer aktualisiert, obwohl Autoskalierung aktiv ist dali4u 3 3.709 27.11.2014 16:56
Letzter Beitrag: GerdW
  Flache Sequenz/Zustandsautomat C.R. 3 5.041 20.09.2014 16:05
Letzter Beitrag: Lucki
  Schleife Zustandsautomat ElektroAnne 19 14.135 21.08.2014 16:39
Letzter Beitrag: Lucki

Gehe zu: