LabVIEWForum.de - Frage zum Methodenknoten

LabVIEWForum.de

Normale Version: Frage zum Methodenknoten
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hey,

wollte zum Anhang etwas fragen.
Ich habe dieses vi als fertiges Programm von einem Projekt bekommen und wollte es bei mir laufen lassen und in ein bestehendes Programm einbinden. Es befindet sich am Anfang ein TDM Unterprogramm (im Anhang nur als Hinweis dargestellt) welches durch Methoden geöffnet und am Ende geschlossen werden.
Die anderen Methoden verstehe ich nicht so ganz was sie bezwecken sollen?

Will ich das Programm bei mir laufen lassen, kommt die Meldung:

Fehler in "vi ausführen", Behebung durch Änderung in "ablaufvariant".

Was bedeutet das eigentlich und wo kann ich dieses ändern?

Ich hoffe mir kann da jemand Tipps geben.

Viele Grüße

H_S
Diese Einstellung bekommst du wenn du dein TDM Vi öffnest, VI Einstellungen (Strg+I) und da auf Ausführung gehst.
Ich vermute du hast das eine Strct VI Ref verwendet, bei einer "normalen" sollte es auch so gehen, vorrausgesetzt das TDM läuft nicht schon.
Alternativ kannst du vl. auch die Call by Reference Node verwenden bzw. warum nicht ein das VI als normales SubVI einfügen? Immerhin wartet deine Run VI Methode eh bis der Aufruf fertig ist.
Hey,
danke für die Antwort.
Ich habe beim TDM nachgesehen und dort war bereits die Einstellung "ablaufinvariant" gewählt. Das ist komisch das dann trotzdem eine entsprechende Fehlermeldung kommt.
Wenn ich mit der Highlight Funktion näher anschaue kann man sehen, dass bis zur Methode "vi ausführen" kein Fehler gemeldet wird. Erst ab dieser Methode. Also dürfte doch mit dem TDM auch alles richtig sein, so dass ich da nichts mehr verstellen muss oder?

Hier nochmal die vollständige Meldung:
LabVIEW: (Hex 0x4AE) Das VI befindet sich in einem für diese Operation unzulässigen Zustand. Ändern Sie für diese Operation den Ausführungsmodus des VIs auf "ablaufinvariant".
Methodenname: VI ausführen

Leider kann ich in dieser Methode die Einstellung "ablaufinvariant" nicht finden!?

Viele Grüße
H_S
Probiers mal so wie in diesem Screenshot:http://www.labviewforum.de/Thread-Proble...#pid101211
Das 8 bei Open VI Ref sorgt für eine neue VI Instanz. Die muss dann allerdings auch wieder geschlossen werden. Deine Run Methode ist zwar so konfiguriert, das dies geschieht, aber da würde ich dir erstmal empfehlen, das Autodispose auf False zu setzen und nach dem FP.Close ein Close Reference zu hängen.
Nochmal die Frage: Warum legst du das VI nicht einfach so aufs BD mit der SubVI Node Setup Einstellung "Show Frontpanel when called"?
Hey,

so ich habe versucht deine Tipps mit einzubinden.
im Anhang ist nun mein neuer Versuch.
Die ersten Knoten habe ich erstmal beibehalten, da ich das TDM ja öffnen möchte. Hinzugefügt habe ich die Elemente von dem Screenshot Beispiel.

Es kommt jetzt zumindest kein Fehler mehr! Das ist schon mal gut!
Allerdings kann ich das geöffnete TDM nun innerhalb des Programms durch Buttons nicht mehr schließen. Es verharrt im Knoten "vi ausführen" und geht nicht weiter zum "FP.schließen".

Habe ich da noch etwas übersehen oder noch etwas vergessen?

Viele Grüße
H_S
Moin zusammen,

hat jemand zu der beschriebenen Thematik eine Idee wodran das liegen kann oder hat jemand so etwas schon mal gemacht, dass ein TDM geöffnet werden soll und im Frontpanel des TDM's durch Buttons dann das Fenster auch wieder geschlossen werden kann (siehe Methodenknoten 2)? Mit den oben beschriebenen Methodenknoten klappt es "noch" nicht ganz aber ich glaube es fehlt nicht mehr viel...nur was?

Viele Grüße

H_S
Die Run Methode hast du mit "wait until done" == true konfiguriert... also wartet sie bis das VI fertig gelaufen ist (RTFM?). Außerdem hattest du die "falsche" VI Ref auf das FP.open geführt.
Du wolltest wahrscheinlich eher sowas:
[attachment=34024]
Wenn du nicht warten willst bis das Vi fertig ausgeführt wird, dann sollte das "wait until done?" auf false stehen... und der FP.Close und Close Ref gehört dann in das gerufene VI inkl. Auto Dispose Ref auf True.
Die Doku dazu ist leider wichtig, da lohnt es sich sie auch mehrmals zu lesen.
Hey,

das ja cool, es funktioniert jetzt.

Besten Dank! Pipe

Viele Grüße
H_S
Referenz-URLs