LabVIEWForum.de - SubVi-Probleme

LabVIEWForum.de

Normale Version: SubVi-Probleme
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hi,

am besten ist, ich schildere einfach mein Problem:

Mein Main-VI startet ein Sub-VI. Das Sub-VI wird nur so lang ausgeführt bis es ein Wert X aus der DAQ-Schnittstelle erreicht ist. Danach gehts im Main-VI weiter.
Bis dahin alles wunderbar. Starte ich aber mein Main-VI erneut, interessiert mein SUB-VI aber überhaupt nich mehr ob der Wert X erreicht ist. Er wurde schon einmal erreicht und gut. Es beendet sich automatisch obwohl der Wer X nicht erreicht ist!
Warum das???

Ich vermute das irgendwo in einem (Puffer)Speicher der Wert noch gespeichert ist.
Wenn man ein normales VI startet und ein LED wird dabei angeschaltet, bleibt es ja auch leuchten wenn man das VI neu startet. (außer man setzt es manuell zurück) Ich denke das ist die selbe Ursache oder?!?
Standardwerte hab ich schon definiert, das bringt nix.
Auch "VI bei jedem Aufruf neustarten" bringt keine Abhilfe.

Kann mir jemand sagen wie ich es schaffe, das bei jedem Aufruf mein Sub-VI auch wirklich schaut ob der Wert X erreicht ist?

PS: wenn man das Main-VI beendet und neustartet funktioniert es wieder. Aber eben nicht wenn man es schon mal ausgeführt hatte und wieder startet.

Gruß

Martin
Hallo, Martin,

soll ich jetzt hellsehen oder was?? Keine Ahnung, wie dein Code aussieht und wo dein Fehler liegen könnte.

Beachte mal Punkt 2 & 3 der Forenregeln.

MfG, Jens
Hast du in deiner Datenerfassung ein nicht-initialisiertes Schieberegister verwendet? Ich schätze mal, ja...

Ein nicht initialisiertes Schieberegister ist sowas wie ne Variable, d.h. das Schieberegister behält seinen Wert, bis das VI komplett aus dem Speicher verschwindet! Das ist oft sehr nützlich, hier aber nicht...am besten einfach ne Konstante am Schieberegister-Eingang (also vor der Schleife) anschließen!

A.
' schrieb:Hast du in deiner Datenerfassung ein nicht-initialisiertes Schieberegister verwendet? Ich schätze mal, ja...

Ein nicht initialisiertes Schieberegister ist sowas wie ne Variable, d.h. das Schieberegister behält seinen Wert, bis das VI komplett aus dem Speicher verschwindet! Das ist oft sehr nützlich, hier aber nicht...am besten einfach ne Konstante am Schieberegister-Eingang (also vor der Schleife) anschließen!

A.


Das klingt gut. Leider weiß ich nich genau was du meinst.
Hab mein Sub-VI mal drangehängt. Aber nach öffnen der DAQ habe ich nen Schleifentunnel, kein Schieberegister.
Könntest du dein Lösungsvorschlag genauer erklären? So recht verstehen tu ich den nich...Sad


martin
Hallo,

schon ein wenig besser, aber für vollständige Analyse immer noch recht dünn.

Schieberegister verwendest du nicht, ist es also nicht. Gleich Screenshot oder noch besser VI hochgeladen, und Achim hätte sich seine Anwort sparen können.

Auch ich muss weiterhin raten: Was ist denn mit diesem Stop-Button? Ist das mglw. ein Übergabeparameter aus deinem Main-VI, so dass deine SubVI beim 2. Aufruf gleich gestoppt wird?

Ansonsten, lade deine VI's hoch! (Ich habe langsam keine Lust aufs Raten, dafür sind die Rätsel-Threads da).

MfG, Jens

EDIT: P.S.: Und erzähl am besten auch noch, welche DAQ-Hardware du verwendest.
Wenn du auf den Stop Button klickst, bleibt er dann in der Position oder kommt wieder zurück?
Sorry ich weiss nicht, wie ich es besser sagen kann. Eigenlich wollte ich fragen welchen Mechanical Action hat der Button.

eg
Also,

hier wird ein PXI 6115.

im großen vi ist der aufruf für kalli_tophifi gleich am anfang in ner casestruktur (BBBTOP-HIFI). (wobei ich nich glaube das dieses vi helfen wird)
und der stop-button wird regulär gar nich genutzt. er is einfach nur ne möglichkeit manuell zu stoppen. (latch wenn gedrückt; an<->aus) wie nen lichtschalter. keine variable oder so...

ich hab die vi´s für lv8.0 gespeichert das es keine Probleme gibt. ausführen könnt ihr sie wahrscheinlich trotzdem nich weil sub-vi´s fehlen

und es ist noch einiges dran zu tun ich weiß....


gruß


martin
Krass!! Wieviel m<sup>2</sup> hat denn das VI?? O
Ein Tip meinerseits (und wohl der meisten hier im Forum):
Ein VI sollte NIE größer als eine Bildschirmgröße sein. Den Rest einfach in SubVIs packen. Und eine Statemachine würde (nach dem ersten Überfliegen) bei Dir auch echt was bringen.
Zu Deinem eigentlichen Problem kann ich Dir gerade nicht weiterhelfen, weil ich relativ wenig Zeit habe.... Heute Abend kann ich aber evtl. mal drüberschauen.

Gruß Markus

' schrieb:und es ist noch einiges dran zu tun ich weiß....
' schrieb:und es ist noch einiges dran zu tun ich weiß....


Wie ich oben schon sagte...zu groß!

Räum erst mal auf, d.h. mach SubVI's.......und vor allem: GRADE LINIEN:excl:und keine Umwege....ich bin nicht bereit, mich da durchzuwurschteln...

Und noch ein Tipp: Anstatt auf dem FrontPanel schon mordsmäßig Bedienungshinweise zu schreiben, solltest du dich erst mal dem eigentlichen Problem widmen...erst die Pflicht...dann die Kür!
.... und noch was. Programmier' doch von links nach rechts, dann blickt man auch besser durch.

Gruß Markus
Seiten: 1 2
Referenz-URLs