NI Home > Community > NI Discussion Forums

LabVIEW

Showing results for 
Search instead for 
Do you mean 
Reply
Member
heelklick
Posts: 35
0 Kudos

Problembehandlung mit Ereignisstrucktur

Hi
 
Ich öffne ein VI durch Methodenknoten in einer Ereignisstrucktur. Auf dem geöffneten VI kann ich nun alles nur noch mit Ereignisstruckturen behandeln. Ich kann nicht mehr eine LED durch einen Button zum Leuchten bringen. Funktioniert alles nur noch in einer Ereignisstrucktur.
 
Im angehänten doc ist das obere Bild das VI, welches das untere öffnet.  Im unteren sind 2 LED's. Die in der Ereignisstrucktur reagiert auf den Button-Click. Die LED, die außerhalb ist nicht. Wieso?
Active Participant
becktho
Posts: 1,576
0 Kudos

Re: Problembehandlung mit Ereignisstrucktur

Die Ursache für dieses Verhalten (welches völlig normal ist) liegt im Datenfluss-Prinzip.

Wenn dein zweites VI gestartet wird, startet gleichzeitig der while-Loop und die Zuweisung des Buttons ausserhalb des Loops läuft auch ab. Da diese jedoch in keinem Loop ist, wird sie nur ein einziges mal durchgeführt.

Also mal allgemein ausgedrückt: Wenn du ein VI startest, läuft es exakt einmal. Damit es am laufen bleibt, muss mindestens 1 Loop vorhanden sein (logischerweise ein While-Loop). In diesem Loop kann dann die Applikation programmiert werden. Um das zu verdeutlichen, kannst du einen einfachen Versuch durchführen. Platziere einen Button und eine digitale Anzeige auf einem neuen Front-Panel. Verbinde sie auf dem Block-Diagramm und lass das VI laufen (mit dem normalen Pfeil). Du wirst sehen, dass das VI exakt einmal ausgeführt wird. Nun ändere den Status des Buttons und lass das VI nochmal laufen. Um das ganze nun permanent am Laufen zu halten, platziere einen While-Loop um diese Zuweisung (der optimalerweise eine Zeitverzögerung enthält) und füge einen Button zum Stoppen des Loops ein. Lass das VI nun ein drittes mal laufen. Du wirst sehen, dass es permanent weiterläuft und du den Zustand des Buttons ändern kannst, was dann den Zustand der Anzeige ändert.

Hoffe das macht das ganze klarer, da dieses Prinzip fundamental ist. Bevor du mit Methoden- & Eigenschafts-Knoten programmierst, solltest du das Grundprinzip verstanden haben.

Using LV8.0
--------------------------------------------------------------------
Don't be afraid to rate a good answer... :smileywink:
--------------------------------------------------------------------