Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
' schrieb:Ich hab zwar Schwierigkeiten die VIs zu schließen (Error: A filename is no longer sufficient because the full name of a VI now includes any owning libraries!)
Und schon isser wieder am Start!:DAlso ich kann die VIs jetzt ohne Fehlermeldung schließen. Allerdings ist das nur dadurch möglich, dass ich statt dem relativen Pfad den absoluten verwenden. Ich hätte aber gerne den relativen Pfad. Weis einer wies geht?
Anzeige
30.06.2009, 11:15 (Dieser Beitrag wurde zuletzt bearbeitet: 30.06.2009 11:20 von IchSelbst.)
' schrieb:Und schon isser wieder am Start!:DAlso ich kann die VIs jetzt ohne Fehlermeldung schließen. Allerdings ist das nur dadurch möglich, dass ich statt dem relativen Pfad den absoluten verwenden. Ich hätte aber gerne den relativen Pfad. Weis einer wies geht?
Aus dem relativen einen absoluten machen.
Der relative Name eines SubVIs bezieht sich ja immer auf ein definiertes Haupt-VI, das selbst in einem absoluten(!) Pfad liegt. Dieses Haupt-VI wird als Applikation bezeichnet. Jetzt nimmst du das Property "Application.Name" (Path?), das den absoluten Pfad liefert, holst hier den Pfad raus und schließt den relativen Pfad des SubVIs an.
Relative Pfade haben den Nachteil, dass sie immer relativ zum aktuellen Pfad sind. Der geht aber ändern, wenn du z.B. "Speichern unter" etc. machst. Und schon findet keiner mehr das SubVI.
Nachtrag:
Meine Ausführungen stimmen glaub ich nicht ganz. Die Applikation in der IDE ist nicht das MainVI - sondern LV.EXE. Wie ich den Unterschied zwischen EXE und IDE gemacht hab, hab ich nicht mehr im Kopf. Und da ich hier kein LV habe, kann ich dir jetzt auch nicht posten wie's geht. Dumm gelaufen.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
' schrieb:Soll es auch so sein, dass zusätzlich zu dem MainVI mehrere gleiche SubVI's gleichzeitig bedient werden sollen? Das würde ich dann über VI-Server realisieren wollen - was ja nicht geht.
Ich hab zu dem Problem ein wenig gegoogelt und bin da auf eine interessante Lösung gestoßen. Sie lautet: Templates. Ich hab das ganze jetzt in meinem Programm realisiert und des funktioniert soweit auch.
Nur habe ich jetzt wieder Probleme beim schließen der einzelnen VIs. Da ja Referenzen erstellt werden und nicht jede gleich heißen kann, ändert sich pro Aufruf der jeweilige name des SubVIs. Ich muss also irgendeine Abfrage reinhauen, die mir verrät, wie das SubVI mit der aktuellen Referenz heißt.
' schrieb:Aus dem relativen einen absoluten machen.
Es gibt unter Pfade die winzig kleine Funktion "Aktueller Pfad des VI". Außerdem gibt es 2 weitere VIs zum Entfernen und Hinzufügen von Pfaden oder Dateinamen. Mit diesen Hilfsmitteln ist es doch ganz simpel, ausgehend von aktuellem VI-Pfad, relativ dazu einen Pfad zu deklarieren.
' schrieb:Es gibt unter Pfade die winzig kleine Funktion "Aktueller Pfad des VI". Außerdem gibt es 2 weitere VIs zum Entfernen und Hinzufügen von Pfaden oder Dateinamen. Mit diesen Hilfsmitteln ist es doch ganz simpel, ausgehend von aktuellem VI-Pfad, relativ dazu einen Pfad zu deklarieren.
Nur funktioniert das leider nicht bei dynamsich erzeugten VIs. Zumindest nicht so, wie ichs versucht hab. Ich hab im Template einfach statt dem absoluten Pfad, die "Aktueller Prad des VI"-Funktion vorgeschaltet.
30.06.2009, 15:15 (Dieser Beitrag wurde zuletzt bearbeitet: 30.06.2009 15:32 von Lucki.)
' schrieb:Nur funktioniert das leider nicht bei dynamsich erzeugten VIs. Zumindest nicht so, wie ichs versucht hab. Ich hab im Template einfach statt dem absoluten Pfad, die "Aktueller Prad des VI"-Funktion vorgeschaltet.
Hier habe ich eine Bildungslücke: Was ist ein "dynamisch erzeugtes VI"? Oder meintest Du "dynamsch aufgerufenes VI"?
Die VIs von LabVIEW, die Pfadeingaben verlangen, verlangen immer absolue Pfadeingaben. Bei Eingabe eines relativen Pfades auf der Bedienoberfläche muß man also immer zuerst aus dem relativen einen absoluten Pfad machen, was aber nicht schwer ist. Wenn Du also versucht, mit einem relativen Pfad direkt ein VI von NI aufzurufen machst Du immer etwas falsch, ob dynamisch erzeugt oder nicht.
Man möchte Dich ja fast beglückwünschen zum neuen Rekord: Dein Thread ist mittlerweile 35 Beträge lang, es geht um Dein Problem, hast aber selbst keinerlei eigenes VI oder wenigstens einen Screenshot gepostet. Beste Voraussetzung also, daß die Unklarheiten nie aufhören und die Diskussion noch bis Betrag #100 so weitergeht.
' schrieb:Dein Thread ist mittlerweile 35 Beträge lang, es geht um Dein Problem, hast aber selbst keinerlei eigenes VI oder wenigstens einen Screenshot gepostet.
Allerdings muss ich dir insofern recht geben, als dass zu den Fällen "Template" und "Schließen" doch wieder mal ein Update sinnvoll wäre. Und wenn nur dafür, dass ich weiß wie's mit den Templates geht.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
' schrieb:... Oder meintest Du "dynamsch aufgerufenes VI"?
Ja!
' schrieb:Man möchte Dich ja fast beglückwünschen zum neuen Rekord: Dein Thread ist mittlerweile 35 Beträge lang, es geht um Dein Problem, hast aber selbst keinerlei eigenes VI oder wenigstens einen Screenshot gepostet. Beste Voraussetzung also, daß die Unklarheiten nie aufhören und die Diskussion noch bis Betrag #100 so weitergeht.
Erstens danke! Zweitens habsch ja mein Projekt hochgeladen, sonst hätte mir IchSelbst keine Lösung schicken könne. Drittens, meine aktuelle Version findet ihr im Angang!
Allerdings muss ich dir insofern recht geben, als dass zu den Fällen "Template" und "Schließen" doch wieder mal ein Update sinnvoll wäre. Und wenn nur dafür, dass ich weiß wie's mit den Templates geht.
Ja, das hatte ich übersehen. Aber dort sind leider kein Pfade etc. in den Bedienelementen als Standardwerte eingetragen, so dass es einige Umstände macht, das zum Laufen zu bringen.
Meiner Erfahrung nach ist der Eigenschaftknoten "VI ausführen" mit Input "false" ein unschöne Methode ein SubVI zu beenden, es ist wie Stop mit dem roten Knopf. Besser ist ein Stop-Bedienelement auf dem Sub-VI, welches mit der Eigenschaft "Elementwert setzen" vom Haup-VI aus ferngesteuert wird - also so, wie ich es im Beispiel gezeigt hatte.