LabVIEWForum.de - Architekturen in LabView

LabVIEWForum.de

Normale Version: Architekturen in LabView
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5
Ich habe ein wenig Probleme bei der Erstellung von FGVs bzw. bei der Auslegung wie FGVs explizit zu erstellen sind.




Zum Bleistift:

Ich habe zwei While Schleifen. In der einen Schleife habe ich einen Button, der die zweite While Schleife abarbeiten bzw. beenden soll. Könnt ihr mir dazu mal ein Beispiel anfertigen?
Bei der FGV gibt es eine While-loop, die pro VI-Aufruf einmal durchlaufen wird. Sie hat ein Shiftregister, in dem ein Wert (kann auch eine komplexe Struktur sein) von Durchlauf zu Durchlauf weitergereicht wird. Das Shift-Register darf nicht außerhalb der Schleife initialisiert werden. Um eine neuen Wert in die Schleife zu bringen, muss man in der Schleife eine Case-Struktur haben. Einer der Cases kann nun den Wert eines Controls in die Schleife bringen. Im einfachsten Fall hat man ein Boolean, der die Case-Struktur steuert. Bei "True" wird, z. B. ein Wert eingespeicher, bei "False" der Wert aus der Schleife zurückgegeben.
Ich möchte mich hiermit mal als heimlicher Anwender von globalen Variablen outen. Die FGV's mögen vielleicht eine Femtosekunde schneller sein - wenn überhaupt (Was in LV Version 1 mal zutreffend war, muss für Version 11 nicht mehr stimmen)
Die Nachteile sind, neben der zusätzlichen Handarbeit: Der zusätzliche Set-Eingang zum Einschreiben von Daten, und dass man für jede FGV ein eigenes SubVI erstellen muss. Bei Globalen Variablen kann man alle GVs in einem einzigen Global.vi unterbringen - man hat also weniger SubVI-Salat in einem Projekt.
Der große Vorteil von FGVs ist aber, dass man über das reine Speichern und Lesen hinaus zusätzliche Funktionalitäten mit unterbringen kann. Hier mal ein Beipiel:
Bei Erzeuger-Verbraucher-Strukturen hat man meistens Queues, und die fetten Referenzleitungen zu den einzelnen Queue- Elementen sind ausgesprochen unschön.
Die nachfolgende FGV ist mehr als eine globe Variable dieser Referenz - sie initialisiert sich außerdem automatisch beim ersten Aufruf:
[attachment=41912]
Hmmm. Für jede FGV benötige ich also ein Suv-VI. Ich habe mich jetzt erst einmal auf FGVs festgelegt und möchte damit mal ein bisschen werkeln. Könntet ihr mir mal das Beispiel machen, das ich vorgeschlagen habe?



Ich habe zwei While Schleifen. In der einen Schleife habe ich einen Button, der die zweite While Schleife abarbeiten bzw. beenden soll. Könnt ihr mir dazu mal ein Beispiel anfertigen?



Ich benötige ja trotz FGVs Schieberegister, aber wenn ich möchte, dass zwei Whileschleifen miteinander kommunizieren, dann muss ich es ja irgendwie schaffen, dass diese so gesehen im switch-mode "angehalten" werden, damit eine Kommunikations überhaupt stattfinden kann. Das ist mein größtes Problem.
Ich möcht irgendwann mehrere Buttons in einer einzigen Schleife haben, die mehrere Schleifen "steuern".Das macht mir irgendwie Kopfzerbrechen.
Hallo Wendigo,

so könnte eine einfache FGV zum Speichern eines Bits aussehen:
[attachment=41914]
Es gibt 3 States: init, read und set, wobei "read" der Defaultwert ist. Diese nutze ich z.B. als globale Stopp-Bedingung.

Man kann die FGVs beliebig aufbohren, um mehr Daten zu speichern (z.B. in einem Cluster) oder mehr Fähigkeiten bereitzustellen (z.B. Laden/Speichern der Daten in Dateien)...
Irgendwie bringen mir die bisherigen Beispiele nicht viel bzw. beantworten meine Fragen nicht. Ein Beispiel mit zwei While Schleifen wäre wirklich sehr hilfreich.


EDIT:

-Kann ich eine FGV auf den gleichen Weg wie ein GV erstellen?
-Ersetzten FGVs Schieberegister bei While Schleifen?
Hallo Wendigo,

hier die Anwendung der oben gezeigten FGV:
[attachment=41915]
Das kleine rote "Stop?"-Icon ist diese FGV...

Dieses Minimalbeispiel ist vielleicht nicht die überzeugendste Demo für FGVs, sollte aber deine Frage beantworten! (Vorteil der gezeigten Lösung: Das Icon belegt nur 12*32 pixel und ist damit wesentlich kleiner als ein Global. Wink )

Auch Edit:
Zitat:Kann ich eine FGV auf den gleichen Weg wie ein GV erstellen?
Eine FGV ist ein ganz normales VI und wird wie ein solches erstellt...

Zitat:Ersetzten FGVs Schieberegister bei While Schleifen?
Kommt drauf an. Jedenfalls benötigen sie ihr eigenes...
Das ist doch schon mal was Smile

Könntest du mir noch die FGV selbst zeigen?
Siehe Beitrag 15...
Ich glaube, ich steh gerade auf der Leitung...

Könntest du bitte noch das VI selbst posten?
Seiten: 1 2 3 4 5
Referenz-URLs