LabVIEWForum.de
Pfad zum Haupt-VI ermitteln - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Pfad zum Haupt-VI ermitteln (/Thread-Pfad-zum-Haupt-VI-ermitteln)

Seiten: 1 2


Pfad zum Haupt-VI ermitteln - Matze - 19.07.2010 15:08

Hallo zusammen,

ich ermittel folgendermaßen Werte von Eingabeelementen:

[attachment=27973]

Das rufe ich im Haupt-VI auf und muss immer die Pfadkonstante "Pfad des aktuellen VIs" angeben.
Kann ich irgendwie den Pfad zum Haupt-VI ermitteln, sodass ich diesen fest hinterlegen kann?

Das Ganze sollte auch noch funktionieren, wenn das Programm mit dem Application Builder kompiliert wurde.


Pfad zum Haupt-VI ermitteln - oenk - 19.07.2010 15:40

Ja, das geht.
Und zwar so:
snip09


EDIT: und jetzt mit dem richtigen Snippet....


Pfad zum Haupt-VI ermitteln - Matze - 19.07.2010 16:06

Hallo,

herrlich, wie einfach das mit dem Rüberziehen der PNG in das Blockdiagramm ist.

Danke. Ganz kann ich das nicht nachvollziehen. Du nimmst den Pfad des aktuellen VIs (gerade dieses VI möchte ich ja vermeiden) und prüfst, ob die Dateiendung ".exe" ist.
Wenn ja, gibst du das Verzeichnis der Exe zurück?
Das bekommt ich doch auch über das VI "Applikationsverzeichnis" oder nicht?


Pfad zum Haupt-VI ermitteln - Achim - 20.07.2010 06:01

Zur Info:
http://www.labviewforum.de/index.php?s=&am...st&p=102313


Pfad zum Haupt-VI ermitteln - oenk - 20.07.2010 07:22

' schrieb:Danke. Ganz kann ich das nicht nachvollziehen. Du nimmst den Pfad des aktuellen VIs (gerade dieses VI möchte ich ja vermeiden)

Dann hab ich dich wohl nicht ganz verstanden. Du hast in deinem Snippet ein Pfad-Controll verdrahtet und müsstes den Pfad immer von Hand eingeben.

' schrieb:Das bekommt ich doch auch über das VI "Applikationsverzeichnis" oder nicht?
Ja du hast recht, das könnte man auch über das Applikationsverzeichnis machen. Dieser Code-Snippet stammt noch von LV7.1 und wurde in jede neue Applikation via meinem default LV-Framework kopiert. Kannte dieses VI noch gar nicht. Werde demnach mein Framework überarbeiten....


Pfad zum Haupt-VI ermitteln - GerdW - 20.07.2010 17:57

Hallo oenk,

ab LV8.0 könnte dein Snippet so aussehen:
[attachment=28017]

Wo du eh' grad dein Framework überarbeiten willstSmile


Pfad zum Haupt-VI ermitteln - Matze - 20.07.2010 19:02

Gibt das nicht auch nur das Verzeichnis zur Anwendung (= exe-Datei) aus?

In neueren LV-Versionen gibt es das VI "Applikationsverzeichnis" bei den Datei-/Pfadkonstanten.

So, nun aber bitte zurück zur Ausgangsfrage.Wink


Pfad zum Haupt-VI ermitteln - GerdW - 20.07.2010 20:52

Hallo Mechatroniker,

wieso willst du den ganzen Pfad als Konstante hinterlegen? Birgt das nicht ungeahnte Fehlerquellen, sobald dein User auf die Idee kommt, die Exe nicht im vorgesehenen Verzeichnis zu installieren???

Deshalb mein Vorschlag: OpenVIRef gibt dir auch eine Referenz, wenn du nur den Namen des VIs angibst (als String-Konstante). Standardmäßig schaut LV nämlich nach, welche VIs schon im Speicher sind...


Pfad zum Haupt-VI ermitteln - Matze - 20.07.2010 20:58

Stimmt, ich möchte nicht den absoluten Pfad, sondern den relativen. In dem Fall würde das dem VI-Namen entsprechen.
In einigen Programmiersprachen sollten relative Pfade unbedingt vermieden werden, nur bei LabVIEW scheinen die sich immer auf das Anwendungsverzeichnis zu beziehen.

Wenn das geht, wäre es eine Möglichkeit. Ich war mir nur nicht sicher, was passiert, wenn ich eine Exe-Datei habe, da es dann ja keine VIs mehr gibt.
Aber die werden vermutlich irgendwie einkompiliert, damit diese Angabe noch passt.

Lässt sich denn der Name des Haupt-VIs ermitteln, auch aus einem SubVI heraus?

Ich würde mir gerne die Konstante "Pfad des Haupt-VIs" ersparen und direkt in einem SubVI unterbringen.


Pfad zum Haupt-VI ermitteln - GerdW - 20.07.2010 21:03

Hallo Mechatroniker,

"eine Exe-Datei habe, da es dann ja keine VIs mehr gibt."
Falsch, auch in einer Exe hast du weiterhin deine VIs - nur halt ohne Blockdiagramm...

"Lässt sich denn der Name des Haupt-VIs ermitteln, auch aus einem SubVI heraus?"
Dafür gibt es die "Call Chain", zu finden in der Applications Control-Funktionspalette.