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 

Frage zur Architektur: Statemachine und Wait for Events



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!

09.02.2024, 14:53
Beitrag #1

tuhpon Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Jun 2007

13
2015
DE

85354
Deutschland
Frage zur Architektur: Statemachine und Wait for Events
Hallo Zusammen,

ich hab eine Frage zur Architektur in LabView.

In einem Loop befindet sich eine Case Structure als StateMachine.
Es gibt die States Init, Wait for Events, Action 1 und Action 2.

Das Programm startet im Case Init und geht dann in den State Wait for Events weiter.

   

In dem Case Wait for Events wird auf die Events von Buttons beobachtet. Werden die gedückt wechselt die Statemachine in die Case Action 1 bzw. Action 2. Nach dem Ausführen des Cases gehts wieder zurück in den Zustand Wait for Events. Zusätzlich wird auf das Event "Panel Close?" beobachtet.

In dem Init-Case wird in einer Loop so lang nach Hardware gesucht, bis diese angeschlossen / gefunden wird. Sprich das kann etwas dauern.

   

Jetzt meine Frage:
Wenn ich jetzt im State Init das Programm über den Close(x)-Button das Programm beenden will klappt das natürlich nicht, da ich nicht im State "Wait for Events" vorbeikomme.
Was wäre hierzu eine sinvolle Lössung?
Passt meine grundsätzliche Programmarchitektur?

Vielen Dank
Viele Grüße
Christoph










22.3 .vi  CloseButtonArchitektur.vi (Größe: 13,21 KB / Downloads: 56)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.02.2024, 09:17
Beitrag #2

Hubert R. Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 184
Registriert seit: Jul 2011

2019 64bit
2011
DE


Deutschland
RE: Frage zur Architektur: Statemachine und Wait for Events
Hallo tuhpon,
deine While Schleife wird wahrscheinlich nie beendet.
Siehe hierzu:
https://www.labviewforum.de/Thread-Vergl...ier-Zahlen

Du musst zusätzlich dir in der While Schleife einen zusätzlichen Abbruch (Timeout) erzeugen.

Üblicherweise ist es so, dass die Software (Treiber oder was auch immer) einen Timeout zur Verfügung stellt.

Gruß Hubert


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.02.2024, 11:57
Beitrag #3

tuhpon Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Jun 2007

13
2015
DE

85354
Deutschland
RE: Frage zur Architektur: Statemachine und Wait for Events
Hallo zusammen Smile

Vielen Dank Hubert, für deine Antwort.
Der Timeout ist eine gute Idee und könnte auch für mich interessant sein.

Mir ist klar, das die While-Schleife mit dem Vergleich beim Würfeln so nie beendet wird. Mir ging es mehr um die Herausforderung für die Frage zu illustrieren.

Worum geht es mir?
- Ist es möglich, während der Zeit bis der Timeout erreicht ist das Programm mit dem X (oben Rechts) zu beenden?
- Wie müsste die Architektur hierfür aussehen / geändert werden?

   
   


Aktuelle Herausforderung:
Wenn ich während der Zeit bis zum Timeout den X-Butten zum schließen drücke, passiet bis zum erreichen des Timeout nichts. Nach Ablauf des Timeouts wird dann das Programm jedoch geschlossen.
Sprich der X-Button-Click wird gecacht.
Dieses Verhalten will ich jedoch nicht.
Entweder die App soll sofort (während des Timeouts) geschlossen werden, oder aber das Clicken des X-Buttons soll ignoriert werden.

Danke für eure Unterstützung.

Viele Grüße
Christoph


22.3 .vi  CloseButtonArchitektur.vi (Größe: 29,5 KB / Downloads: 40)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.02.2024, 13:30
Beitrag #4

Woodeye Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 54
Registriert seit: Aug 2010

2024
2009
DE

01774
Deutschland
RE: Frage zur Architektur: Statemachine und Wait for Events
Hallo Christoph,

entgegen der NI Herangehensweise versuche ich Vorgänge, welche nur einmalig abgearbeitet werden müssen, in einer Ereignisstruktur abzuarbeiten. Dies hat für mich den Vorteil, dass ich auch einzelne Programmteile "manuell" starten und sie somit auf Funktion testen kann. Den Klick auf das Kreuzchen würde ich versuchen zu vermeiden, das kann man auch über Fehlerausgaben o.ä. abfangen, hier wieder dein Würfel. Das überarbeitete VI ist im Anhang, vielleicht hilft es ja weiter.


Angehängte Datei(en)
20.0 .vi  CloseButtonArchitektur.vi (Größe: 22,21 KB / Downloads: 45)

Viele Grüße

Harald
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.02.2024, 08:53
Beitrag #5

TpunktN Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 200
Registriert seit: Jul 2011

2021
2011
EN

70***
Deutschland
RE: Frage zur Architektur: Statemachine und Wait for Events
(13.02.2024 11:57 )tuhpon schrieb:  - Wie müsste die Architektur hierfür aussehen / geändert werden?

Guten Morgen Christoph,

wenn dir die Hardwaresuche (wie Hubert schon erwähnt hat) einen Timeout gibt, springst du danach einmal kurz raus und fragst die Events ab um dann weiter zu suchen, spontan fällt mir da das Producer/Consumer Design ein, anbei mal kurz mit der NI Vorlage was zusammengeklickt.

Grüße Timo


Angehängte Datei(en)
18.0 .vi  LVF_ProdCons_ExitWhileSearching_LV18.vi (Größe: 13,99 KB / Downloads: 43)

"Auch aus Steinen, die einem in den Weg gelegt werden, kann man Schönes bauen."
Johann Wolfgang von Goethe
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.02.2024, 17:05
Beitrag #6

Kaya Offline
LVF-Grünschnäbelin
*


Beiträge: 39
Registriert seit: Jul 2023

16
2019
DE


Deutschland
RE: Frage zur Architektur: Statemachine und Wait for Events
Hallo Cristoph,

ich nutze für meine Applikation eine andere Struktur, die so wie ich es verstanden habe Deine Anforderungen erfüllt und ich mit der state machine die gleichen Probleme hatte:

in der äußeren gestapelten Sequenzstruktur wird Starten, Hauptprogramm und Schließen definiert.

Der Button "Exit" wird über eine Ereignisstruktur gesteuert und durch eine zu "Test ein" parallelen Schleife die ganze Zeit ausgelesen. Auch "Test ein" wird über eine while-Schleife ausgelesen, bis sie über "Exit" beendet wird. Weitere Buttons können auf die gleiche Art in parallelen Schleifen eingefügt werden.

Beim Funktionsring können mehrere Abläufe eingefügt werden, die wieder über eine gestapelte Sequenzstruktur in initialisierung, Ablauf und Aufräumen aufgeteilt werden.

Vielleicht hilft es ja. Smile
LG


Angehängte Datei(en)
16.0 .vi  Grundsätzliche Applikationsstruktur.vi (Größe: 15,77 KB / Downloads: 47)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.03.2024, 16:14
Beitrag #7

tuhpon Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Jun 2007

13
2015
DE

85354
Deutschland
RE: Frage zur Architektur: Statemachine und Wait for Events
Hallo Zusammen,

vielen Dank für eure Antworten.
Entschuldigt bitte die verspätete Antwort.

Ich werde aus euren Vorschlägen eine Lösung für mich erarbeiten.

Viele Grüße
Christoph
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Statemachine-Projekt… riu14 18 9.580 15.06.2022 13:44
Letzter Beitrag: jg
  Architektur für sequenziellen Prozess mit Einzelschrittauswahl Lime 1 1.915 29.06.2021 17:59
Letzter Beitrag: GerdW
  Bedienelemente bündeln zum Auslösen eines Events Marcusius 12 7.567 03.09.2019 17:24
Letzter Beitrag: Marcusius
  Wait und Wait-Until, seltsame Effekte, ich verstehs einfach nicht... catbull 3 2.954 24.09.2018 20:56
Letzter Beitrag: Lucki
  Statemachine mit Notifier hulk 5 4.111 14.12.2017 20:02
Letzter Beitrag: Pronet
  Statemachine programmieren… Granit 8 9.515 30.04.2017 16:42
Letzter Beitrag: Granit

Gehe zu: