LabVIEWForum.de - Eventereignis in Statemachine....

LabVIEWForum.de

Normale Version: Eventereignis in Statemachine....
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

in einem vorhandenen Programm, welches als Statemachine aufgebaut ist, muss ich eine
Funktion einbauen, welche eventgesteuert ist.
Das Event habe ich in einer eigenen Case eingebaut.
Nun habe ich das Problem, dass ich
1. so gut wie keine Erfahrung mit Eventsteuerung habe und
2. der (Event)-Code zwar wunderbar funktioniert, aber ich aus der aktuellen Case nicht mehr herauskomme
und so das Programm steht.
Die Eventstruktur hat drei Rahmen, 1x für Mousedown, 1x für Doubleclick und der letzte beinhaltet nur eine Stopptaste.
Foto kann ich momentan nicht hochladen.

Gibt es einen Trick, dass die Eventsteuerung ein Signal auswirft, dass auf die nächste Case weiterläuft?

Gruß Franz
Hi

also wenn ich dich richtig verstehe hast du ein Vi mit einer state machine und in einem State hast du eine Event Struktur?

ich hab das mal skizziert...

[attachment=50246]
die Eventstruktur wird einfach im Timeout warten... nehm ich mal an...
also wenn du das so machst was ich nicht machen würde musst du der statemachine auch mitteilen zu welchem Zeitpunkt die den state wechseln soll... bzw. es gleich anders machen...



z.b. so..

[attachment=50247]

ist jetzt nur ein Beispiel ich kenne ja deinen Code nicht...Glas2

T
Wie toaran schon andeutet, gibt es hauptsächlich zwei Mglichkeiten eine Eventstruktur in das Programm einzubinden:
a) in einer Parallel laufenden While-Schleife. Dann kann timout=inf sein (= nicht angeschlossen) , da die Schleife nichts anderes zu tun hat als auf Ereignisse zu warten.
b) in der Hauptschleife. Denn muß Timeout angeschlossen sein. Der Timeout-Wert ersetzt dan das normal in fast jeder Schleife befindliche Wait.

Über das nicht angeschlossene Timeout stolpert übrigens fast Jeder, der das erste Mal mit Events experimentiert.
(11.07.2014 13:08 )Lucki schrieb: [ -> ]...
a) in einer Parallel laufenden While-Schleife. Dann kann timout=inf sein (= nicht angeschlossen) , da die Schleife nichts anderes zu tun hat als auf Ereignisse zu warten..

da muss man allerdings aufpassen, wenn es sich bei dem VI z.B. um ein Dialog-Sub-VI handelt, das nämlich leicht hängenbleiben kann, wenn man es beendet, ohne dafür zu sorgen, dass auch die auf ein user-Event wartende Schleife beendet wird.

Gruß, Marko
(13.07.2014 11:10 )Trinitatis schrieb: [ -> ]da muss man allerdings aufpassen, wenn es sich bei dem VI z.B. um ein Dialog-Sub-VI handelt, das nämlich leicht hängenbleiben kann, wenn man es beendet, ohne dafür zu sorgen, dass auch die auf ein user-Event wartende Schleife beendet wird.
Richtig. Habe da kürzlich hier ein kleines Beispiel gepostet, bei dem man das Sub-Vi nicht anders als ordnungsgemäß beenden kann.
Hallo,

ich hab für mich eine brauchbare Lösung.
Damit ich aus der Eventcase komme, habe ich den Timeout behandelt.
Nun läuft vorerst die Sache.
Vielen Dank für die Hilfe.

Gruß Franz
(15.07.2014 07:28 )Alpenpower schrieb: [ -> ]Nun läuft vorerst die Sache.

... ein bedenklicher Satz.Big Grin


Gruß, Marko
Referenz-URLs