LabVIEWForum.de
Warum wird SubVI nach Öffnen nicht ausgeführt? - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Warum wird SubVI nach Öffnen nicht ausgeführt? (/Thread-Warum-wird-SubVI-nach-Oeffnen-nicht-ausgefuehrt)



Warum wird SubVI nach Öffnen nicht ausgeführt? - Lucki - 04.06.2012 10:02

Wenn man das SubVI direkt öffnet (also nicht als SubVI), wird es automatisch ausgeführt, weil das in den VI-Eigenschaften so konfiguriert ist. Das funktioniert auch dann, wenn man das Subvi vom HauptVI aus als Ikon aufruft, wie man das für gewöhnlich macht.
Es funktioniert hingegen nicht, wenn das SubVI über einen Eigenschaftsknoten aufgerufen wird. Es wird dann zwar geöffnet, aber nicht ausgeführt. Daran ändert sich auch dann nichts, wenn ich noch die zusätzliche Eigenschaft "Nach Öffnen ausführen" aufrufe.
Was mache ich falsch? Wie lässt sich das ändern?
Haupt-VI als Graphik:
[attachment=40025]


RE: Warum wird SubVI nach Öffnen nicht ausgeführt? - NWOmason - 04.06.2012 10:28

Bringt denn das Einfügen des 'Run-VI'-InvokeNode etwas? (Kann ich leider grade nicht testen, kein lv11_img)

Beste Grüße,
NWO


RE: Warum wird SubVI nach Öffnen nicht ausgeführt? - macmarvin - 04.06.2012 10:42

Da wirst wohl nicht um die Runmethode drum rumkommen... ist aber auch wichtig, da du dabei die Option für die Reference Lebenzeit setzen kannst.


RE: Warum wird SubVI nach Öffnen nicht ausgeführt? - Lucki - 04.06.2012 14:16

Danke für die Antworten. Ja, mit dem Methodenknotem "VI ausführen" geht es einwandfrei - ich nehme an dass ihr beide genau das meint. Aber was ist "Einstellung der Leben(s)zeit?"
Und warum gibt es die VI-Eigenschaft "Beim Öffnen ausführen", wenn das in der Realität gar nicht funktioniert?

Mit den Methodenknoten und Eigenschaftsknoten für VIs stoße ich als Autodidakt echt an meine Grenzen, da die Hilfe dafür nur spärlich ist, in keinen Buch das richtig behandelt wird und ich die entsprechenden NI-Lehrgänge für die "höheren Semester", in denen das behandelt wird, nicht besucht habe.

Also so geht es genau wie ich es will:
[attachment=40032]


RE: Warum wird SubVI nach Öffnen nicht ausgeführt? - GerdW - 04.06.2012 14:30

Hallo Lucki,

Zitat:Und warum gibt es die VI-Eigenschaft "Beim Öffnen ausführen", wenn das in der Realität gar nicht funktioniert?
Tut's doch, hast du doch selbst oben beschrieben...

Aber:
Du machst hier Zugriffe über den VI-Server. Da funktioniert einiges nicht/anders, als sonst gewohnt - du bist halt etwas näher an der "Hardware" (sozusagen). In diesem Fall: "Run when opened" ist quasi ein Komfort-Feature der Entwicklungsumgebung und auch eher für das MainVI gedacht. Die VIServer-Methode "Open FP" macht genau das, was der Name sagt: das FP öffnen (oder auch schließen). Zum Starten des VIs gibt es eine andere Methode, wie schon beschrieben. Die "Komfort"-Einstellung "Run when opened" führt halt beide Methodenaufrufe nacheinander aus...

Zitat:was ist "Einstellung der Leben(s)zeit?"
Das bezieht sich wohl auf den Eingang "Ref automatisch schließen"...


RE: Warum wird SubVI nach Öffnen nicht ausgeführt? - macmarvin - 04.06.2012 15:02

Ich vermute du willst eigentlich nur das Subpanel2.vi öffnen und laufen lassen.
Das geht wahrscheinlich einfacher (insbesondere beim Exe-Builden) siehe Bild oberer Teil.
[attachment=40033]
Der Eingang Ref automatisch schließen steuert die Zuständigkeit bzw. den Besitzer der VI-Referenz.
Dabei gilt, wenn der Besitzer "idle" geht, wird die Referenz automatisch geschlossen (falls VI FP selbst geschlossen ist).
D.h. für dein ursprüngliches Beispiel:
Wenn das FP.Open nicht da wäre, würde das Subpanel2.vi nach 2 Sekunden hart abgebrochen und die Referenz automatisch geschlossen werden.