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!
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
Anzeige
31.12.2011, 14:55 (Dieser Beitrag wurde zuletzt bearbeitet: 31.12.2011 14:57 von GerdW.)
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?
02.01.2012, 10:59 (Dieser Beitrag wurde zuletzt bearbeitet: 02.01.2012 11:01 von GerdW.)
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 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...
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.
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!
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...
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...