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 

Statemachine mit Event-Struktur



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.11.2011, 18:47
Beitrag #1

BeFu Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 84
Registriert seit: Jun 2006

2011
2006
DE_EN

96450
Deutschland
Statemachine mit Event-Struktur
Hallo Allerseits,

heute versuchte ich meinem Kollegen zu zeigen, wie man in LabVIEW eine ereignisgesteuerte (EVENT) Zustandsmaschine (Statemachine) programmiert, siehe beigefuegtes Beispiel (LV2011).

1. Die Zustandsmaschine startet mit CASE "Montag".
2. Jetzt druecken wir NEXT, loesen also ein EVENT aus. Das EVENT wird im CASE "Montag" ausgewertet und in den CASE "Dienstag" gesprungen.
3. Die dortige EVENT-Structure muesste jetzt auf ein neues EVENT (unendlich lange) warten. Das ist jedoch nicht der Fall; es wird sofort in den CASE "Mittwoch" weiter geleitet.
4. Dort verweilt das Programm bis zum Abbruch mit entsprechndem LabVIEW-Button, da wir dort noch keine weitere Auswertungen programmiert haben.

Kann es sein, dass das EVENT NEXT-Button noch aktiv ist, also irgendwie geloescht werden muss. Wir haben die BOOLEAN-Werte der Buttons nach erfolgtem EVENT zurueck gesetzt.

Wir hoffen auf Eure Loesungsvorschlaege.

Schoene Gruesse,

BeFu & Kollege :-)


Angehängte Datei(en)
11.0 .vi  TESTStateMachineLeerlauf.vi (Größe: 21,7 KB / Downloads: 964)

Das Ziel ist der Weg
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.11.2011, 18:53 (Dieser Beitrag wurde zuletzt bearbeitet: 02.11.2011 18:56 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Statemachine mit Event-Struktur
Hallo BeFu,

"never, never ever, in no way" mehr als eine Eventstruktur pro VI nutzen - vor allem, wenn diese auch noch auf das gleiche Event lauschen sollen... Einfach mal die Hilfe öffnen und den Eintrag "Warnungen" durchlesen! Rtmfx

Wo wir das schon mal geklärt haben:
- Warum Event "Maus losgelassen" statt des viel klareren "ValueChange"?
- Wozu in jedem Case eine Eventstruktur, die alle auf die gleichen Eingaben lauschen? Einmal auf Eingaben lauschen und die entsprechenden Aktionen durchführen. Dies ist doch der Sinn einer StateMachine: Aktionen auswerten/bearbeiten und damit Zustandswechsel auslösen... Du musst die Aktionen nicht innerhalb eines States abfragen, dies kann/(sollte) außerhalb geschehen. Innerhalb musst du nur auswerten!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.11.2011, 08:14
Beitrag #3

BeFu Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 84
Registriert seit: Jun 2006

2011
2006
DE_EN

96450
Deutschland
RE: Statemachine mit Event-Struktur
Danke GerdW,

fuer Deine schnelle Antwort.
Du hast Recht; nur im CASE 'Leerlauf' muss auf die Ausloesung von EVENT gewartet werden.
Nun stehe ich jedoch vor dem Problem, dass ich nicht weiss, wie ich auf die einzelnen ENUM-Elemente in den EVENT 'Next' und 'Back' zugreife, so dass ich auf den entsprechenden Wochentag richtig wechsle. Lediglich das ENUM-Element fuer das EVENT 'Stop' kann ich haendisch auf 'Ende' setzen, siehe beigefuegtes VI (LV2011).
Ich bin fuer jeden Loesungsvorschlag dankbar.
Schoende Gruesse,

BeFu
P.S.: In den von Dir genannten Links mit NI Hilfe habe ich nix hilfreiches gefunden.


Angehängte Datei(en)
11.0 .vi  TestStateMachine02.vi (Größe: 11,74 KB / Downloads: 465)

Das Ziel ist der Weg
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.11.2011, 08:42
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Statemachine mit Event-Struktur
Hallo BeFu,

du wertest die User-Aktionen außerhalb der Case-Struktur aus!!! AUSSERHALB!!!

In der Case-Struktur hast du dann 2 Eingänge: einmal der aktuelle Zustand ("Wochentag") und einmal die User-Aktion ("Next", "Back", "Quit"). Und diese zwei Eingänge in dem jeweiligen Case auszuwerten, sollte wirklich nicht das Problem sein (WENN AktuellerZustand=Dienstag UND Aktion=Next DANN NeuerZustand=Mittwoch)...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.11.2011, 13:28
Beitrag #5

BeFu Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 84
Registriert seit: Jun 2006

2011
2006
DE_EN

96450
Deutschland
RE: Statemachine mit Event-Struktur
(03.11.2011 08:42 )GerdW schrieb:  Hallo BeFu,

du wertest die User-Aktionen außerhalb der Case-Struktur aus!!! AUSSERHALB!!!

In der Case-Struktur hast du dann 2 Eingänge: einmal der aktuelle Zustand ("Wochentag") und einmal die User-Aktion ("Next", "Back", "Quit"). Und diese zwei Eingänge in dem jeweiligen Case auszuwerten, sollte wirklich nicht das Problem sein (WENN AktuellerZustand=Dienstag UND Aktion=Next DANN NeuerZustand=Mittwoch)...

Danke GerdW,

fuer Deine Hinweise, im Besonderen, dass die Auwertung der USER-Aktionen ausserhalb der CASE-Struktur erfolgen muss.

Beigefuegt findest Du / findet Ihr die von mir - dank den Hinweisen von GerdW - gefundene Loesung. Gerne koennt Ihr eventuelle Verbesserungen posten.

Schoende Gruesse,

BeFu


Angehängte Datei(en) Thumbnail(s)
   

11.0 .vi  TestStateMachine03.vi (Größe: 25,81 KB / Downloads: 465)

Das Ziel ist der Weg
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.11.2011, 13:02 (Dieser Beitrag wurde zuletzt bearbeitet: 05.11.2011 13:03 von Lucki.)
Beitrag #6

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Statemachine mit Event-Struktur
Nachbemerkung
Die "Event Driven State Machine" verwendet Queues und ist eine der besten Programmstrukturen überhaupt:
   
Der Titel des Threads verspricht etwas, was dann nicht gehalten wird. Denn mit dieser Struktur haben die hier im Thread gezeigten VIs wenig zu tun.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Asynchrone VIs mit Event Struktur sofort beenden Kiesch 4 9.585 26.04.2024 10:29
Letzter Beitrag: Kiesch
  Frage zur Architektur: Statemachine und Wait for Events tuhpon 6 4.486 18.03.2024 16:14
Letzter Beitrag: tuhpon
  Statemachine-Projekt… riu14 18 12.418 15.06.2022 13:44
Letzter Beitrag: jg
  Event Struktur Problem ache 9 5.108 17.09.2020 14:10
Letzter Beitrag: jg
  Statemachine mit Notifier hulk 5 4.852 14.12.2017 20:02
Letzter Beitrag: Pronet
  Event Case Ignoriert Tastendruck wenn in Gegenwart eines anderen "Leeren" Event Case Ksanto 8 8.251 23.10.2017 09:08
Letzter Beitrag: Ksanto

Gehe zu: