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 

anderes Event ausführen, obwohl Hauptevent noch nicht fertig ist



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!

11.02.2010, 16:28
Beitrag #1

fsg4u Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 97
Registriert seit: May 2008

8.6
2008
de

23552
Deutschland
anderes Event ausführen, obwohl Hauptevent noch nicht fertig ist
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


Angehängte Datei(en) Thumbnail(s)
   

Sonstige .vi  2events.vi (Größe: 9,64 KB / Downloads: 439)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.02.2010, 17:22
Beitrag #2

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.700
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
anderes Event ausführen, obwohl Hauptevent noch nicht fertig ist
' 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.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.02.2010, 18:53 (Dieser Beitrag wurde zuletzt bearbeitet: 11.02.2010 19:02 von Lucki.)
Beitrag #3

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
anderes Event ausführen, obwohl Hauptevent noch nicht fertig ist
' 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
Sonstige .vi  2eventsWa.vi (Größe: 11,91 KB / Downloads: 525)

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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.02.2010, 09:10 (Dieser Beitrag wurde zuletzt bearbeitet: 15.02.2010 09:24 von fsg4u.)
Beitrag #4

fsg4u Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 97
Registriert seit: May 2008

8.6
2008
de

23552
Deutschland
anderes Event ausführen, obwohl Hauptevent noch nicht fertig ist
Danke für Eure Anregungen. Könntet ihr mein Beispiel einmal mit Queues realisieren? Das wär klasse.
Danke FSG
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.02.2010, 10:21
Beitrag #5

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.700
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
anderes Event ausführen, obwohl Hauptevent noch nicht fertig ist
' 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.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.02.2010, 12:06
Beitrag #6

fsg4u Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 97
Registriert seit: May 2008

8.6
2008
de

23552
Deutschland
anderes Event ausführen, obwohl Hauptevent noch nicht fertig ist
Habs jetzt über die Occurences gelöst. das klappt ganz gut.
danke fsg
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
15.02.2010, 18:30 (Dieser Beitrag wurde zuletzt bearbeitet: 15.02.2010 18:31 von Lucki.)
Beitrag #7

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
anderes Event ausführen, obwohl Hauptevent noch nicht fertig ist
' 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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.02.2010, 18:44
Beitrag #8

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.700
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
anderes Event ausführen, obwohl Hauptevent noch nicht fertig ist
' 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).

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.02.2010, 10:08
Beitrag #9

fsg4u Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 97
Registriert seit: May 2008

8.6
2008
de

23552
Deutschland
anderes Event ausführen, obwohl Hauptevent noch nicht fertig ist
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!!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: