![]() |
Wertemitgabe Strictly typed VI reference - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Wertemitgabe Strictly typed VI reference (/Thread-Wertemitgabe-Strictly-typed-VI-reference) |
Wertemitgabe Strictly typed VI reference - NoWay - 18.05.2015 08:51 Hallo zusammen. Aus gegebenen Anlass befasse ich mich mit Subpanels und der Anzeige unterschiedlicher VIs. Dazu habe ich mir zwei kleine Beispiel-VIs erstellt. Die Aufgabe ist einfach: Der Caller soll das "LED" VI im Subpanel aufrufen und wieder schließen können. Das allein ist schnell gelöst und überhaupt kein Thema. Knifflig wird es, wenn ich dem LED VI zusätzliche Parameter mit an die Hand geben will, wie z.B. eine IP Adresse oder dergleichen. Mein Versuch ging dahin, dass ich aus der statischen VI Referenz eine "Strictly typed VI Reference" mache. Labview ist dann aber scheinbar nicht mehr in der Lage das VI im Frontpanel anzuzeigen. Es läuft zwar im Speicher, sehen kann man es aber nicht. Was mache ich an dem Punkt falsch, bzw. wie kann ich in einem Subpanel VIs aufrufen und diesen Werte im Vorfeld schon mitgeben? Ich würde gerne den Umweg über eine FGV vermeiden. Edit: Man muss auf die LED klicken um das LED.Vi zu schließen. Das hat funktional keinerlei bedeutung. Mir geht es ausschließlich um die Werteübergabe. RE: Wertemitgabe Strictly typed VI reference - jg - 18.05.2015 09:05 Ja, so geht das nicht, mit "Call by Reference" startest du das VI, das ist quasi so, als ob du direkt ein SubVI im Blockdiagramm platzierst. Aber so geht es: [attachment=53132] Gruß, Jens RE: Wertemitgabe Strictly typed VI reference - NoWay - 18.05.2015 09:22 Ah, sehr schön. Danke Jens. Damit ich richtig verstehe, was da passiert: Statt dem VI einen Wert "mitzugeben" wird das Control des LED.vi über die Referenz angesprochen? RE: Wertemitgabe Strictly typed VI reference - jg - 18.05.2015 09:43 Ja, kann man so sehen. In ![]() [attachment=53133] Gruß, Jens RE: Wertemitgabe Strictly typed VI reference - Trinitatis - 18.05.2015 15:39 (18.05.2015 09:43 )jg schrieb: In Hallo Jens, da muss ich dann aber höllich aufpassen, dass ich aus diesem VI nicht irgendwann mal ein Control lösche und sich so die Indizierung verschiebt, oder? (Ähnlich wie bei Clusterinhalten) Gruß, Marko RE: Wertemitgabe Strictly typed VI reference - GerdW - 18.05.2015 15:45 Hallo Marko, Zitat:da muss ich dann aber höllich aufpassen, dass ich aus diesem VI nicht irgendwann mal ein Control lösche und sich so die Indizierung verschiebt, oder?Wieso? Bevor du diese Funktion nutzt, musst du den "Elementindex" per Propertynode ermitteln. Dies macht man einmalig bei Start des VIs - und man sollte hier nach den "interessanten" (aka benötigten) Controls filtern. Da du dies dynamisch erledigen musst, ist es (an dieser Stelle) egal, ob ein Control gelöscht wurde! Wichtig dabei ist nur, dass auch die Datenarrays angepasst werden: deshalb erstelle ich mir lieber ein Referenzarray anhand der Label der Controls… RE: Wertemitgabe Strictly typed VI reference - jg - 18.05.2015 15:48 Bei meinem ersten Vorschlag musst du ähnlich genau aufpassen, dass du das Control, welches du per Invoke-Node setzt, nicht löscht oder umbenennst. Ansonsten siehe Gerds Vorschlag, es gibt Möglichkeiten, das Problem bei Variante 2 zu umschiffen (vgl. LabVIEW Hilfe). Gruß, Jens |