LabVIEWForum.de
Variablenname zusammensetzen und befüllen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: Weitere NI Software (/Forum-Weitere-NI-Software)
+---- Forum: NI TestStand (/Forum-NI-TestStand)
+---- Thema: Variablenname zusammensetzen und befüllen (/Thread-Variablenname-zusammensetzen-und-befuellen)



Variablenname zusammensetzen und befüllen - angry_Nameless - 04.11.2014 13:55

Hallo zusammen,

Ich habe in Teststand 3 Variablen (Container) mit einer riesigen Menge an Daten darunter.
Nun würde ich gerne zur Laufzeit entscheiden, welcher der drei Container befüllt werden soll.

Container2 = FileGlobals.x

Gibt es eine Möglichkeit ähnlich dem Konkatenieren von Strings einen Pfad zur Variable zusammenzusetzen?

Container+"Zahl" = FileGlobals.x ???


(Bei den drei Containern könnte ich das über eine Zusatz-variable mit Case lösen, aber es werden vielleicht noch ein paar mehr Smile )

Den Pfad bekomme ich als Variable des Typs "Pfad" schon zusammengesetzt, aber wie schreibe ich nun den WERT hinein?

Danke für eure Hilfe.


RE: Variablenname zusammensetzen und befüllen - Morpheus - 05.11.2014 12:40

Hallo angry_Nameless

Habe deine Aufgabenstellung nur bedingt verstanden.
Kannst Du mal eine Beispiel-Sequenz hochladen, wie die Variablen, etc. aussehen/zu verarbeiten sind...
Oder die Fragestellung nochmals bildlich darstellen?


(04.11.2014 13:55 )angry_Nameless schrieb:  Den Pfad bekomme ich als Variable des Typs "Pfad" schon zusammengesetzt, aber wie schreibe ich nun den WERT hinein?
Wie ist dies genau zu verstehen?

Gruss
Chris


RE: Variablenname zusammensetzen und befüllen - angry_Nameless - 05.11.2014 14:29

Hallo,

ich bin nicht wirklich gut im Erklären von Problemen. Leider habe ich keine Beispiele, die ich hochladen könnte.

Ich versuche es mal anders:

Stellt euch vor, dass ich ein VI aufrufe und die Rückgabewerte aus dem VI in eine Variable "FileGlobals.A" speichere.
Nun wird die gleiche Sequenz mit dem gleichen VI nochmal aufgerufen. Folglich wird der Wert in "FileGlobals.A" überschrieben.

Ich würde aber gerne die Sequenz mehrfach aufrufen und die in TestStand angegebene Variable "FileGlobals.A" bei jedem Durchlauf ändern.
1. Durchlauf "FileGlobals.A"
2. Durchlauf "FileGlobals.B"
3. D.......


Mein erster Gedanke war, dass ich den Pfad zur Variable "FileGlobals.A" in eine Variable "FileGlobals.Name_Der_Variable" verpacke.

Nur weiss ich nicht wie....

Danke für eure Mühe


RE: Variablenname zusammensetzen und befüllen - Morpheus - 05.11.2014 14:54

Ok, nun hab ich es wohl verstanden. Big Grin
Schau dir mal die angefügte Sequenz an.
Wäre dies auch eine mögliche Lösung für dich?

Idee:
Als Variable einen "Array of Container" verwenden und die Daten in den entsprechenden Container (Array Position) schreiben.

Ablauf:
1. Statement: Hier wird der Index des Arrays gewählt. Bei dir könnte der Wert programmatisch gesetzt werden
2. Statement: Hier wird ein Wert vorgegeben. Bei dieser Sequenz also ein beliebiger String. Aber in der Wahl des Datentyps bist du ja frei...
3. Statement: Hier wird der entsprechende Container basierend auf dem Index (Index des Arrays --> siehe 1. Statement) mit den Daten (siehe 2. Statement) befüllt

Gruss
Chris


RE: Variablenname zusammensetzen und befüllen - angry_Nameless - 06.11.2014 07:18

Guten Morgen,

ich konnte die Sequenz leider nicht öffnen, da ich nur TestStand 4.5.1 installiert habe.

Die Idee mit dem Array hatte ich auch schon.

Kann man keinen Datentyp z.B. "Pfad" dazu nutzen, um einen "Variablennamen" aufzubauen und dann irgendwie auslesen?

Danke für die Hilfe...


RE: Variablenname zusammensetzen und befüllen - Morpheus - 07.11.2014 09:08

(06.11.2014 07:18 )angry_Nameless schrieb:  Kann man keinen Datentyp z.B. "Pfad" dazu nutzen, um einen "Variablennamen" aufzubauen und dann irgendwie auslesen?
Dies geht sicher...

Habe das ganze mit einer String-Variable realisiert (Pfad geht ev. auch).
Vorgehen:
- Variable zusammen setzen und in die String-Variable schreiben (z.B. Locals.Stringvariable = "Locals.Container" + Str(Locals.Containerzähler) + ".String"
- Evaluate(Locals.Stringvariable) = Locals.MeineStringDaten (hier wird der Inhalt von "MeineStringDaten" in die Variable geschrieben, welche sich in Locals.Stringvariable befindet)

Gruss
Chris


RE: Variablenname zusammensetzen und befüllen - angry_Nameless - 10.11.2014 10:51

Vielen Dank...

Das Evaluate war der Schlüssel zum Erfolg.