Hallo,
ich habe ein Vi geschrieben.
Das Vi bekommt 2 Arrays "übergeben". Diese Arrays werden unter anderem in mehreren "For Loop-Schleifen" und "Cases" verarbeitet.
Zwischen den Schleifen findet eine Variablenübergabe mit "lokalen Variablen" statt.
Dieses Vi funktioniert auch soweit.
Jetzt möchte ich daraus ein SubVi machen.
Wenn ich die Fuktion im Menü "Edit" "Create SubVi" nutze, dann werden die lokalen Vaiablen in References umgewandelt.
Wie bleiben die lokalen Vaiablen erhalten? Denn die Variablen werden nur in diesem Vi benutzt.
MFG
Bernd
Hallo bernd1,
ich würde einfach keine lokalen Variablen benutzen. Ansonsten wird Dir nichts anderes übrig bleiben als die Referenzen wieder durch neuerstellte Variablen zu ersetzen.
Gruss,
Marko
Hallo,
das Problem liegt einfach darin, daß Du wahrscheinlich vor dem Erstellen des Sub-VIs die lokalen Variablen mit markiert hast.
Wenn Du nur die Sub-VIs und Operatoren des Algorithmus' markierst (ggf. mußt Du die lokalen Variablen weiter auseinander ziehen) und dann im Menü Edit ein Sub-VI erstellst, bleiben die Variablen im übergeordneten VI erhalten und es werden im neu erstellten Sub-VI neue Bedienelemente angelegt.
@marker
Hallo,
gibt es denn eine andere Lösung die Zwischenwerte, die ich in den ersten Schleifen ermittelt habe, separat abzuspeichern und dann an die anderen Schleifen zu übergeben?
Um etwas konkreter zu werden:
Ich habe 2 for Schleifen, die 2 2-dim Array in 3 1-dim Arrays nach einer bestimmten Vorgabe splitten(neu zusammensetzt).
Diese 3 1-dim Arrays habe ich als lokale Variablen, weil dann diese in 3 unterschiedlichen for-Schleifen berechnet werden.
Wie kann ich also die Übergabe noch erreichen?
Denn das ganze will ich als SubVi haben, weil ih diese Prozedur meheremale vollziehen muß, und mein Bildschirm nur noch überfrachtet aussieht. Eine Zoom-Funktion gibt es ja leider nicht in LabVIEW.
Falls keine Idee mehr parat, schade, aber deenoch Danke für die Hilfe!
Gruß
Bernd
@s200rs
Hallo,
ich verstehe jetzt nicht die Durchführung:
Soll ich alles markieren, außer die Variablen und dann im Menü "Create SubVi" anklicken?
Danke für die Hilfe!
Gruß
Bernd
Zitat:gibt es denn eine andere Lösung die Zwischenwerte, die ich in den ersten Schleifen ermittelt habe, separat abzuspeichern und dann an die anderen Schleifen zu übergeben?
Hi!
Du hast in LV die Möglichkeit, bei Schleifen Schieberegister einzusetzen. Schau dir am besten mal die Bilder von mir und Eugen in
diesem Thread an.
Lg Stefan
@oppossom
Hallo,
danke für die Antwort.
Jedoch helfen hier nach meiner Ansicht Schieberegister nicht weiter, da ich ja 2 Schleifen habe und nicht nur eine.
Kann mich aber auch irren (bitte dann um Hilfe), da ich in LV neu bin.
Gruß
Bernd
Könntest du vielleicht mal dein SubVi hochladen. Um ehrlich zu sein versteh ich nicht ganz, wie dein Programm nun genau aussieht
Bin mir sicher, dass wir dann schnell eine Lösung finden
Zitat: ich verstehe jetzt nicht die Durchführung:
Soll ich alles markieren, außer die Variablen und dann im Menü "Create SubVi" anklicken?
Genau so hab ich das gemeint.
Das Bildchen sollte es erklären
@s200rs
Hallo,
danke für die Bildchen. Die Lösung klappt soweit.
Ist zwar nicht ganz so, wie ich es mir vorgestellt habe (lokale Variable soll innerhalb des SubVi stehen ohne "Conector"), aber ich nehme auch das.
Vielen Dank für die Mühe!
Gruß
Bernd