LabVIEWForum.de
anderes Event ausführen, obwohl Hauptevent noch nicht fertig ist - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: LVOOP (/Forum-LVOOP)
+---- Thema: anderes Event ausführen, obwohl Hauptevent noch nicht fertig ist (/Thread-anderes-Event-ausfuehren-obwohl-Hauptevent-noch-nicht-fertig-ist)



anderes Event ausführen, obwohl Hauptevent noch nicht fertig ist - fsg4u - 11.02.2010 16:28

Moin moin,

Einfaches Szenario
Frontpanel 2 Buttons
Auf beiden Frontpanels liegt ein event.
Ich möchte nun, dass ich mit dem einen event das andere ausführen kann.
Leider wird das zweite event erst ausgeführt, wenn das erste zu Ende ist.
Wie kann man es machen, dass das zweite event direkt ausgeführt wird, wenn es gerufen wird?
Quasi eine Funktion aufrufen, aber KEIN Subvi.

Hoffentlich habt ihr ne Idee. Das wär toll
Ciao FSG

LabVIEW version ist 8.6


anderes Event ausführen, obwohl Hauptevent noch nicht fertig ist - IchSelbst - 11.02.2010 17:22

' schrieb:Frontpanel 2 Buttons
Auf beiden Frontpanels liegt ein event.
Wacko
Ein Event liegt nicht auf einem Frontpanel. Mit einem Bedienelement am Frontpanel kann man einen Event auslösen. Genauso, wie mit dem Property "Wert(signalisierend)".

Zitat:Ich möchte nun, dass ich mit dem einen event das andere ausführen kann.
Vom Vorgehen, innerhalb des einen Events einen anderen ausführen zu sollen, solange der eine noch nicht abgearbeitet ist, rate ich dringend ab. Ein solches Vorgehen wirft prinzipielle Probleme auf.

Ich sag jetzt einfach mal so:
Eine Event-Struktur ist nicht in der Lage, zweimal, also parallel, ausgeführt zu werden. Parallel? :wald:Parallel hieße ein zweiter Datenfluß. Da die Eventstruktur aber nur einmal dasteht, kann sie auch nur einmal ausgeführt werden.

Zitat:Wie kann man es machen, dass das zweite event direkt ausgeführt wird, wenn es gerufen wird?
Mach eine Queue:
Mach eine parallele While-Schleife, die den Code des zweiten Events enthält und der nur ausgeführt wird, wenn in der Queue ein entsprechender Befehl steht. Im ersten und im zweiten Event verschickt du eine Meldung per Queue an diese parallele While-Schleife. Eine parallele While-Schleife, gesteuert durch eine Queue, kann als "Event-Sequenz" interpretiert werden.


anderes Event ausführen, obwohl Hauptevent noch nicht fertig ist - Lucki - 11.02.2010 18:53

' schrieb:Ich möchte nun, dass ich mit dem einen event das andere ausführen kann.
Leider wird das zweite event erst ausgeführt, wenn das erste zu Ende ist.
Bei Drücken von Taste 1 sollen also Code 1 + 2 parallel ausgeführt werden, bei Drücken von Taste 2 nur Code 2. Das ist ein legitimer Wunsch, aber so wie Du es versuchst hast geht es nicht.
Wie Ichselbst schon sagte, ist eine einzelne Ereignisstruktur - mit mehreren Ereigniscases - nicht in der Lage, zwei Ereignsisse parallel auszuführen. Andererseits wird oft der Wunsch bestehen, daß jedes anstehendes Ereignis möglichst sofort ausgeführt wird. Damit das tatsächlich der Fall ist, gibt es diese einfache Regel: In die Ereigniscases darf nichts reinkommen, was Zeit beansprucht. Damit ist gewährleistet, daß die Ereignisstruktur kurz nach einem Ereignis schon wieder in Wartestellung für ein neues Ereignis ist.
Der Code, der Zeit beansprucht, muß also ausgelagert werden, am besten in eine parallele unabhängige Schleife. Das Ereignis selbst sendet nur eine Mitteilung an diese Schleife, daß sie 1 Mal abgearbeitet werden soll.
Beispiel:
Lv86_img[attachment=24379]
Und übrigens: Das ist sowieso ein guter Programmierstil: Ein Schleife für das Hauptprogramm und parallel dazu eine weitere Schleife nur für die Ereignisbehandlung.


anderes Event ausführen, obwohl Hauptevent noch nicht fertig ist - fsg4u - 15.02.2010 09:10

Danke für Eure Anregungen. Könntet ihr mein Beispiel einmal mit Queues realisieren? Das wär klasse.
Danke FSG


anderes Event ausführen, obwohl Hauptevent noch nicht fertig ist - IchSelbst - 15.02.2010 10:21

' schrieb:Danke für Eure Anregungen. Könntet ihr mein Beispiel einmal mit Queues realisieren? Das wär klasse.
Ich würde sagen, wir mach das andersherum: Du baust dir zur Übung die Queue selbst ein, hilfst dir dabei selbst mit der Onlinehilfe und den Onlinemustern, und stellst dann das VI hier ein - falls etwas nicht so geht wie gedacht.


anderes Event ausführen, obwohl Hauptevent noch nicht fertig ist - fsg4u - 15.02.2010 12:06

Habs jetzt über die Occurences gelöst. das klappt ganz gut.
danke fsg


anderes Event ausführen, obwohl Hauptevent noch nicht fertig ist - Lucki - 15.02.2010 18:30

' schrieb:Habs jetzt über die Occurences gelöst. das klappt ganz gut.
Ja, ich hatte es im Beispiel ja auch so gemacht. Aber vielleicht sollte man erwähnen, daß NI von der Verwendung von Occurences abrät. Man soll statt dessen Melder verwenden. Ich vermute, daß der Grund der ist, daß in der Version LabVIEW 2020 :mellow:die Occurences abgeschafft werden sollen.


anderes Event ausführen, obwohl Hauptevent noch nicht fertig ist - IchSelbst - 15.02.2010 18:44

' schrieb:Ich vermute, daß der Grund der ist, daß in der Version LabVIEW 2020 :mellow:die Occurences abgeschafft werden sollen.
Occurrences sind nicht abbrechbar und können daher das Gesamtsystem lahmlegen (Deadlock).


anderes Event ausführen, obwohl Hauptevent noch nicht fertig ist - fsg4u - 16.02.2010 10:08

moin. Danke für die Hinweise. Bin dann selber auch auf die Notfications gekommen. Da kann ich direkt noch ne Nachricht mitschicken.
Das find ich am besten.
Danke für Eure Tipps. Nun läuft alles so, wie ich es gern hätte!!