Hallo zusammen,
ich hänge gerade an einem scheinbar einfachen Problem. Ich habe eine Ereignisstruktur, die verschiedene Fälle auswählt. In einem Fall möchte ich wiederum eine Ereignisstruktur einbinden. Leider reagiert diese dann auf keine Eingabe mehr.
Im Anhang habe ich ein (sehr vereinfachtes) Beispiel zu diesem Problem (LV 8.6).
Kann man Ereignisstrukturen prinzipiell nicht verschachteln? Oder gibt es da einen Trick?
Viele Grüße
Thomas
Hallo,
mehrere Ereignisstrukturen sollte man wenn, dann nur verwenden, sofern diese nicht gleichzeitig laufen. Was du da versuchst, ist sicher schlecht und so etwas habe ich auch noch nie gesehen. Code, der länger in der Ausführung braucht, sollte auch nicht in eine Ereignisstruktur.
Da bieten sich Melder, Queues o.ä. eher an. Die Ereignisstruktur setzt diese und außerhalb kannst du darauf reagieren und zeitintensive Dinge durchführen.
Was möchtest du denn erreichen?
Das geht garantiert schöner und vermutlich auch mit einer einzigen Ereignisstruktur und ohne Melder/Queues.
Vielleicht kannst du das mit einem Schieberegister lösen, aber ich weiß noch nicht genau, was du erreichen möchtest.
' schrieb:Kann man Ereignisstrukturen prinzipiell nicht verschachteln?
Man kann es prinzipiell schon, zu empfehlen ist es auf gar keinen Fall. Lies dir einmal die Hinweise zur Verwendung der Ereignisstruktur in der LabVIEW-Hilfe durch. U.a. steht da sinngemäß: nicht mehr als eine Ereignis-Struktur pro Schleife. In der Programmierpraxis kann man das verschärfen zu "Nicht mehr als eine Ereignisstruktur pro VI". Alles andere führt in der Regel immer zu Problemen und Ärger, s. deine Frage...
Gruß, Jens
Insbesondere sollten die verschachtelten Strukturen auf keinen Fall auf das gleiche Event reagieren. Das kann nur zu Chaos führen!
Ich habe dein VI etwas angepasst. Meinst du vielleicht sowas?
[
attachment=28993]
Edit: Noch auf die Schnelle bissl was verändert, was das Testen erleichtert:
[
attachment=28992]

Die genannte Regel a) "nicht mehrere Ereignisstrukturen (und schon gar nicht ineinander verschachtelte)" ist eine Empfehlung, und die ist es hier vermutlich nicht, die Dir das Genick bricht. Wichtiger noch sind 2 weitere Regeln:
b) nicht mehrere Mal dasselbe Ereignis in verschiedenen Ereignisstrukturen behandeln
c) in einem Ereigniscase nichts machen, was ewig + 1 Tag dauert.
Hallo zusammen,
danke für die schnellen Antoworten. Ich habe zwar keine doppelten Fälle, aber ich werde es jetzt anders lösen...
Danke für die Hilfe
Thomas
' schrieb:..
Ich habe zwar keine doppelten Fälle
..
"Stopp": Wertänderung ist in beiden Strukturen vorhanden!
Das war nur für das einfache Beispiel. Im anderen Programm war nichts doppelt dabei.
' schrieb:Das war nur für das einfache Beispiel. Im anderen Programm war nichts doppelt dabei.
@Tschac: ja warum hast Du auch nur Deine Glaskugel nicht benutzt? Dann hättest Du das vorher schon gewußt und den Beitrag vor dem Posten als Überflüssig erkannt.
