LabVIEWForum.de - rekursive VI

LabVIEWForum.de

Normale Version: rekursive VI
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,

folgendes Problem: Ist es irgendwie möglich 2 VIs gegenseitig aufrufen zu lassen?
d.h. VI A ruft im Falle eines bestimmten Cases VI B auf, und
VI B ruft im Falle eines bestimmten Cases VI A auf.
Das bei der Wahl von "falschen" Case-Werten eine Enldosschleife entsteht ist mir durchaus bewusst. Ich kann momentan mein Pb aber nicht anders lösen außer die VIs A & B unter A' & B' erneut zu speichern und A' in B einfügen und B' in A einfügen. Ist aber irgendwo sch.. wenn VIs der gleichen Funktion unter verschiedenen Namen gespeichert sind.

geist07
hast du mal in der hilfe nach rekursion gesucht? da steht bei mir beschrieben wies geht.

LG
Torsten
So z.B..... (ist von der NI-Website)

[attachment=17185]
Lv80_img

Gruß Markus
Zu diesem VI hätte ich auch mal eine Frage, da das im Grunde das gleiche ist, welches ich gerade in dem "Einführung in LabVIEW"-Buch bearbeite.

Warum kann man nicht einfach die Genauigkeit des Indikators ändern? Dann bekomme ich immer den Fehler 1031 mit der Meldung:

LabVIEW: VI Reference type does not match VI connector pane.

Ich hab auch schon die Anschlüsse neu verdrahtet, das VI gespeichert und geschlossen, aber das hilft alles nichts. Ich könnte mir schon vorstellen, dass das mit der Rekursion zu tun hat und da irgendwas sich gegenseitig in die Quere kommt, aber genaueres leider nicht.

Grüßle
S.

P.S.: Mit der Materie des dynamischen Aufrufs von VIs beschäftige ich mich erst 2 Tage, vorher hab ich das immer statisch gemacht. Von daher bin ich da noch etwas grün.
Hört sich so an, als ob der connector pane deines VIs nicht mit der Referenzkonstante am Eingang von "VI-Referenz öffnen" übereinstimmt, da unterschiedliche Datentypen vorliegen. Am einfachsten geht es, indem du im BD das Icon des VIs mit der Maus per Drag&drop in die Konstante ziehst. Ansonsten geht es natürlich auch per Rechtsklick auf die Konstante -> VI-Server Klasse auswählen -> Durchsuchen...
Das VI kann ich leider nicht ins BD ziehen, da sagt das Programm mir immer, dass das VI nicht rekursiv ausgeführt werden kann. Das wäre dann ja auch ein statischer Aufruf des VIs, oder? Und wenn ich das über das Kontextmenü mache, bekomme ich ein leeres Quadrat. In LV 8.5.1 funktioniert das hingegen besser, obwohl mir der rechte Durchblick immer noch fehltSad

Grüßle
S.
Du musst das VI natürlich ablaufinvariant ausführen. VI-Einstellungen -> Ausführung -> ablaufinvariant
Reentrant Execution hab ich auch eingestellt...wollte ich im obigen Thread schon erwähnen.
Dann bleibt nur noch ein Upload deines VIs, denn rätseln können wir noch langeSmile
Habs Freitag leider nicht mehr geschafft, daher nun heute.

Das ist dann jetzt im Grunde zweimal das gleiche Programm, nur einmal für 7.1 und einmal für 8.5.1

Grüßle
S.
Seiten: 1 2
Referenz-URLs