LabVIEWForum.de
Unterschied Aufruf in SubVI oder direkt in Hauptprogramm - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Unterschied Aufruf in SubVI oder direkt in Hauptprogramm (/Thread-Unterschied-Aufruf-in-SubVI-oder-direkt-in-Hauptprogramm)



Unterschied Aufruf in SubVI oder direkt in Hauptprogramm - Newcomer - 12.07.2006 09:46

Hallöchen!

Ich hab folgendes Problem: ich berechne Daten in for- und flat-sequence-Schleifen und gebe diese auf dem Frontpanel aus. Wenn ich meine for- und flat-sequence-Schleifen direkt in meinem Hauptprogramm (while-Schleife) hab funktioniert alles. Wenn ich jedoch meine for- und flat-sequence-Schleifen in einem sub-VI hab (welches ich aber auch in der while-Schleife aufrufe) zeigt er mir die Daten kurz auf dem Frontpanel an und danach zeigt er dann immer nur noch Nullen an.
Wie kann ich das vermeiden und was ist der Unterschied zwischen den beiden Aufruf-Arten?

Danke schonmal!


Unterschied Aufruf in SubVI oder direkt in Hauptprogramm - Achim - 12.07.2006 10:46

Hi,

es gibt prinzipiell keinen Unterschied zwischen beiden Aufrufarten!

Mach mal die Highlight-Funktion an (Lampe), und schau dir (evtl. mit Sonden) an, was genau passiert!

Ansonsten: Poste mal dein VI! Evtl. wird was falsch initialisiert, evtl. rufst du ein VI mehrmals auf, ohne es als "ausführungs-invariant" gespeichert zu haben...tausend Möglichkeiten...

Gruss
Achim

PS: Ne Sequence ist definitiv keine "Schleife", sondern ne Struktur!


Unterschied Aufruf in SubVI oder direkt in Hauptprogramm - Newcomer - 13.07.2006 07:46

Hab die gleichen Einstellungen wie bei anderen SubVI's die auch Ausgaben haben, jedoch haben die keine Schleifen...
Hab mir den Datenfluss mal angeschaut, finde aber nix wo ich ansetzen kann...
Kann leider mein VI nich hochladen und ins Forum stellen, hatte gestern schon das Problem und heut klappt's auch net....
Aber vielleicht hast du ja so noch nen Tipp?

MfG


Unterschied Aufruf in SubVI oder direkt in Hauptprogramm - Newcomer - 13.07.2006 10:26

[attachment=2590]

So, hab's jetz endlich geschafft mein VI hochzuladen.
Hier ist also nun der Übeltäter, aber bitte nicht auf "Linienführung" etc. achten :-)


Unterschied Aufruf in SubVI oder direkt in Hauptprogramm - Kvasir - 13.07.2006 11:30

Poste doch auchmal deine Variante mit Vi / SubVi.

Was mir allerdings auffällt:

Du brauchst weder deine For Schleife noch die flat Sequence Struktur.

- Statt einer For Schleife, die 0 oder 1x rennt nimm doch einfach eine Case Struktur

- Die Abarbeitung deiner Berechnung wird durch Drähte vorgegeben. Du brauchst in deinem Fall die Sequenz nicht.


Unterschied Aufruf in SubVI oder direkt in Hauptprogramm - Achim - 13.07.2006 11:45

Hi,

mir fällt auch noch was auf: Warum steuerst du die Ausgänge Boolean2 und Boolean4 über den Umweg "Case" an? Bei Case=TRUE gibst du TRUE weiter, ebenso wie bei Case=FALSE der Wert FALSE übergeben wird...da kannst du doch direkt deinen Wert anschließen!

Wie Kvasir schon gesagt hat: Poste mal auch das HauptVI

Gruss
Achim


Unterschied Aufruf in SubVI oder direkt in Hauptprogramm - Newcomer - 13.07.2006 11:56

Ja, das mit der Case-Struktur war nur zum Testen, hab ich schon geändert.
Die for-Schleife statt der Case-Struktur hab ich genommen weil ich möchte dass die Berechnung wirklich nur einmal stattfindet...
Mein Haupt-VI ist nen bissl zu groß um es hier ins Netz zu stellen, der Teil den ich jetz als Sub-VI hab sieht ja da eh 100%ig genauso aus.
Ich hatte das so gemacht dass ich den Teil markiert und dann mit Create SubVI das SubVi draus gebildet hab. Da kommt aber auch ne Meldung dass ich Indikatoren in einer Case-Abfrage habe und dass es zu Veränderungen kommen kann.... Wie kann ich das vermeiden?


Unterschied Aufruf in SubVI oder direkt in Hauptprogramm - Achim - 13.07.2006 12:09

hah...

ich glaube, ich weiß woran es liegt...dein hinweis mit der schleife isses...

wenn die schleife null mal ausgeführt wird, das vi aber mehrfach aufgerufen wird (in der umgebenden while schleife...), was meinst du, was in den ausgängen für werte abgelegt werden? gar keine! und folglich wird auch nur kurz was angezeigt, nämlich beim ersten ausrechnen!

das musst du abfangen! z.B. in dem du den alten wert mit ins subvi führst und diesen in der case-struktur (ersatz für deine for-schleifen) durchschleifst, wenn keine berechnung stattfinden soll/darf!

ich wette...

gruss
achim


Unterschied Aufruf in SubVI oder direkt in Hauptprogramm - Newcomer - 13.07.2006 12:26

Hey süpi, es klappt!
DANKESCHÖN!