LabVIEWForum.de - Set Value Methode

LabVIEWForum.de

Normale Version: Set Value Methode
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2

alan

Hallo Zusammen,

ich möchte dass mein Labview Programm folgenden Code versteht und bearbeitet:

set#labelname#wert .... setzt den Wert des Bedienelemets auf den entsprechenden Wert

Ich habe bereits etwas konstruiert (siehe Bild); leider fünktioniert diese Konstruktion bislang nur, wenn ich Bedienelemete setze, die vom Typ String sind. Ist es z.B. ein numerisches Element, das ich setzen möchte, gibt es immer eine Fehlermeldung. Auch nach Einsetzen der Funktion "to Variant" funktioniert es nicht.

Ich hab jetzt ne ganze Zeit recherchiert aber keine Lösung gefunden. Bin auch noch ziemlich unerfahren im Umgang mit Labview. Kann hier vielelicht jemand weiterhelfen?

LG
Hallo alan,

Zitat:Ist es z.B. ein numerisches Element, das ich setzen möchte, gibt es immer eine Fehlermeldung.
Ein numerisches Element mag eben keine Strings…
Es erwartet Zahlen!

Zitat:Auch nach Einsetzen der Funktion "to Variant" funktioniert es nicht.
Auch wenn du den String in ein Variant verpackst, bleibt es ein String…

Zitat:weiterhelfen?
Typ des zu setzenden Control abfragen und dann entsprechend nach Zahl (oder Bool) wandeln…

alan

Danke für Deine Antwort. Weisst Du zufällig auch wie ich den Datentyp bekomme, wenn ich nur den Labelnamen habe?
Hallo alan,

alle Control-Referenzen des VIs abfragen, mit diesen dann den Namen/Label und Typ bestimmen…

alan

meinst du mit Referenzen der Controls auslesen folgendes (siehe Bild)? Wie komm ich dann an den Typ der Referenzen? Sorry sind wahrscheinlich blöde Fragen.
Hallo alan,

fast richtig. Statt eine Referenz auf das Label auszulesen, reicht es aus, das Label selbst (bzw. dessen Text) zu lesen…
Und jedes Control hat die Eigenschaften "Class-ID" und "Class-Name"…

Und wenn du Tabs und Cluster verwendest, musst du natürlich noch die Hierarchien beachten!

alan

Hallo nocheinmal,

ich habe jetzt Deinen Vorschlag versucht umzusetzen. Klappt aber nicht wirklich. Muss ich denn wirklich für jede ClassID einen Fall schaffen (sind immerhin 56!) oder lassen sich die Klassen irgendwie zu Datentypen zusammenfassen?

LG
alan
Hallo alan,

Zitat:ich habe jetzt Deinen Vorschlag versucht umzusetzen. Klappt aber nicht wirklich.
"Klappt aber nicht" ist keine übliche Fehlermeldung von LabVIEW.
Was genau funktioniert denn nicht?

Zitat:Muss ich denn wirklich für jede ClassID einen Fall schaffen (sind immerhin 56!) oder lassen sich die Klassen irgendwie zu Datentypen zusammenfassen?
Du solltest zumindest die Datentypen unterstützen, die in deinem VI vorkommen. Sind das alle 56 (?) möglichen?

alan

naja es soll flexibel sein, dh auch bei anderen VIs funktionieren. Und der erste "einfache" Fall, den ich ausprobierte, war gleich als Klasse digital ausgegeben (ist eigentlich n einfacher Word-Typ und ich hatte numeric erwartet). Und dann habe ich Probleme aus den Cases herauszukommen: gibt es datentypunabhängige Tunnel?

Gibt es nicht vielleicht ne einfachere Lösung für mein Problem?
Hallo alan,

Zitat:Und der erste "einfache" Fall, den ich ausprobierte, war gleich als Klasse digital ausgegeben (ist eigentlich n einfacher Word-Typ und ich hatte numeric erwartet).
NumericControls sind von der Klasse "digital": So steht es in der LabVIEW-Hilfe (diese Übersicht nach "digital (p)" durchsuchen: "Numeric" ist die Oberklasse von "Digital", umfasst aber noch mehr…)!

Zitat:Und dann habe ich Probleme aus den Cases herauszukommen: gibt es datentypunabhängige Tunnel?
Entweder Variants - oder man verpackt seine Daten in einem String. Oder in einem Cluster bestehend aus Typangabe und Variant.

THINK DATAFLOW!
Dazu gehört auch, dass der Datentyp eines Drahtes während des Editierens deines VIs eindeutig bekannt sein muss!
Seiten: 1 2
Referenz-URLs