LabVIEWForum.de
SubVi in TopLevelVI einfügen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Module (/Forum-LabVIEW-Module)
+---- Forum: LabVIEW FPGA (/Forum-LabVIEW-FPGA)
+---- Thema: SubVi in TopLevelVI einfügen (/Thread-SubVi-in-TopLevelVI-einfuegen)

Seiten: 1 2


SubVi in TopLevelVI einfügen - cRio - 30.12.2011 15:43

Hallo
Hätte eine allgemeine Frage bezüglich SubVis auf dem FPGA:
Habe mir ein SubVi erstellt, dass ich ins TopLevelVI einfüge. Im SubVi sind mehrere lokale Variablen, wobei einige lok Variablen, also deren aktueller Wert, auch an Ausgänge aus dem SubVi weitergegeben werden. D.h. ich habe nach erstellen des SubVis mir ein Symbol dafür erstellt und beim festlegen der Ein-/ausgänge lokVariablen auf die Ausgänge gelegt. Füge ich nun das SubVi ins TopLevelVI ein, und verbinde dort die Ausgänge des SubVI Icons mit Anzeigeelemente, wird mir nichts angezeigt. Das SubVI für sich selbst funktioniert aber.
LokVariablen können zwar nur von EINEM VI gelesen/beschrieben werden, aber kann deswegen den momentanen Wert der lokVariable nicht "nach draussen" weitergeben, also aus dem SubVI heraus ans TopLevelVI?
Hab zu Testzwecken mal eine solche lokVariable in eine globale gewandelt, da auf globale ja von jedem VI aus zugegriffen werden kann. Aber auch dann ist sozusagen kein Wert des SubVI nach draussen ans TopLevel VI gedrungen und mir angezeit worden.
Überseh ich irgendwas?

Grüße


RE: SubVi in TopLevelVI einfügen - GerdW - 31.12.2011 14:55

Hallo cRIO,

Zitat:Überseh ich irgendwas?
THINK DATAFLOW!!!

Ohne dein (sub)VI zu sehen: da ist sicher eine Schleife drin und das subVI läuft vor sich hin - ohne den Datenfluss zum MainVI freizugeben...

Zitat:beim festlegen der Ein-/ausgänge lokVariablen auf die Ausgänge gelegt.
Das glaube ich nicht. Wie soll das gehen? Du hast sicherlich Indicator und Controls mit den Ein-/Ausgängen verbunden...


RE: SubVi in TopLevelVI einfügen - cRio - 02.01.2012 10:54

Ja du hast recht, Indicators und Controls liegen auf den Ein-/Ausgängen, und von denen gibts wiederum lok. Variablen um an mehreren Stellen darauf zuzugreifen.

Ok, wie stelle ich es an, dass mein SubVi auch die Daten/den Datenfluss ans MainVi freigibt?


RE: SubVi in TopLevelVI einfügen - GerdW - 02.01.2012 10:59

Hallo cRIO,

Zitat:wie stelle ich es an, dass mein SubVi auch die Daten/den Datenfluss ans MainVi freigibt?
Meinst du nicht auch, dass du viel bessere Hinweise bekommst, wenn du uns dein Main- und SubVI mal zeigst?
Sonst können wir immer nur die Glas1 bemühen: keine (Endlos-)Schleifen im subVI verwenden...

Zitat:von denen gibts wiederum lok. Variablen um an mehreren Stellen darauf zuzugreifen.
Das lässt RaceCondituions befürchten - warum keine Drähte? Aber du wolltest uns ja sowieso dein subVI zeigen...


RE: SubVi in TopLevelVI einfügen - unicorn - 02.01.2012 13:12

Eine Möglichkeit die aktuellen Werte von Controls und Indicators des Sub-VI zu sehen ist, das Sub-VI in einem SubPanel auf der Oberfläche des Haupt-VI anzuzeigen. Die Werte selbst sind damit aber noch nicht im Hauptprogramm verfügbar.


RE: SubVi in TopLevelVI einfügen - GerdW - 02.01.2012 13:14

Hallo Unicorn,

Subpanels halte ich bei FPGA-VIs für Overkill...


RE: SubVi in TopLevelVI einfügen - unicorn - 02.01.2012 13:18

Gut,..

... habe leider erst nach dem Absenden des Kommentars gesehen, dass es speziell um FPGA ging.


RE: SubVi in TopLevelVI einfügen - cRio - 09.01.2012 09:32

So Urlaub ist vorbei...sorry für die Verspätung.
Ja du hast natürlich mal wieder recht GerdW! Selbstverständlich wollte ich das VI noch reinpacken :-)
Man kanns ja mal auf dem DevComputer testen, dann sieht man auf dem Frontpanel des SubVI die Anzeigen wie erwartet. aber auf dem MainVI sieht man nix. Und an dem Punkt wäre ich euch für eure konstruktive Kritik sehr dankbar!


RE: SubVi in TopLevelVI einfügen - GerdW - 09.01.2012 09:34

Hallo cRIO,

1) laut deinem Profil hast du nur LV2010, hängst aber trotzdem LV2011-VIs hier an...
2) Auf Arbeit habe ich kein LV2011 zur Verfügung, müsstest also nochmal auf LV2010 runterkonvertieren und erneut anhängen...


RE: SubVi in TopLevelVI einfügen - eb - 09.01.2012 09:51

wie befürchtet,

das SubVI beinhaltet 2 WhileSchleifen die ständig laufen. Dadurch wird das SubVI niemals beendet und es werden keine Werte "hochgegeben". Wozo sind die schleifen? Warum nicht die äußeren Schleifen des SubVI's entfernen und da, wo du ShiftRegister hast einen Feedback-Knoten einsetzen. Dann kann das SubVI erstmal so bleiben und wird dennoch ständig ausgeführt, weil ja das Test.vi ne eigene Schleife hat.

Und versuche bitte den exzessiven Einsatz von Sequenzen zu vermeiden. -> "Think Dataflow" wie es immer so schön heißt.
Außerdem, lokale Variablen durch Drähte ersetzen, wo es geht.
wenn du etwas schreibst wie "(High/Low) gleich gegenüber vorherigem Rechenschritt ?", dann klingt das verdammt nach einem Shiftregister/Feedback-Knoten...


bis dann
Gruß