LabVIEWForum.de - Datenaustausch Main-Sub Sub-Main

LabVIEWForum.de

Normale Version: Datenaustausch Main-Sub Sub-Main
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich habe in meinem Main ein Rundinstrument mit zwei Zeigern als Anzeigelement.
Zeiger 1 zeigt die Istgeschwindigkeit und Zeiger 2 die Maximalgeschwindigkeit.
Die Maximalgeschwindigkeit wird in einem Sub ermittelt, d.h. mit Hilfe einer Rampenfunktion wird eine bestimmte Geschwindigkeitskurve abgefahren. Über Referenz wird diese im Main angezeigt.

Jetzt mein Problem. Wenn die Geschwindigkeitskurve der Maximalgeschwindigkeit im Sub abgearbeitet wird, befindet sich dieses Sub in einer while-Schleife. Nun soll es möglich sein, dass im Main mit einem Button die Istgeschwindigkeit gleichzeitig verändert werden kann und das Rundinstrument beide verändernden Zeiger anzeigt.

Welche Möglichkeit steht mir hierbei zur Verfügung?
Hi Skywalker,

am "einfachsten": parallel laufende Schleifen verwenden (für Istwert-Kontrolle als auch für subVI-Aufruf)...

Ich verwende gern auch noch mehr (mehr als zwei) parallele Schleifen und FGVs als Datenpuffer...
mhhh.

ich habe schon drei parallel laufende while schleifen.

Mein Ziel soll sein mit jeweils einem Button die Istgeschwindigkeit zu erhöhen und einem anderen zu verringern. Dies läuft im Main ab. Funktioniert auch.
Tritt allerdings ein bestimmtes Ereignis auf, so wird die Maximalgeschwindigkeitskurve "abgefahren", d.h. diese wird abhängig von Weg und Zeit heruntergesetzt. Dies geschieht im Sub. (Funktioniert auch)

Nun soll während des Herabsetzens weiterhin möglich sein, die Istgeschwindigkeit zu verändern. Das klappt nicht, da ich mich in der while-Schleife des Subs befinde.

Habe bereits die Referenz des Buttons übergeben und in der while-Schleife des Subs die Geschwindigkeit verändert. Das funktioniert nur bedingt, da die Geschwindigkeit so lange verändert wird, wie die referenz ein True liefert. Die geschieht aber öfter als ein Schleifendurchlauf, da das Zurücksetzens auf false länger dauert.
Hallo junger Jedi,

"a die Geschwindigkeit so lange verändert wird, wie die referenz ein True liefert. Die geschieht aber öfter als ein Schleifendurchlauf, da das Zurücksetzens auf false länger dauert." ???

Da wird es wohl mal Zeit, VIs zu veröffentlichen...
Hallo,

hab mal ein vereinfachtes Bsp. hochgeladen. Vllt. wird es dann verständlicher.
Zur Zeit arbeite ich mit Referenzen und frage im Sub die Wertänderung der Buttons von false nach true ab. Nur dann wird die Geschwindigkeit erhöht bzw. verringert.

Gruß
Stefan

Lv09_img2
[attachment=27156]
[attachment=27157]
[attachment=27158]
Hallo Stefan,

dein Problem ist, dass du nur 2 parallele Schleife hast. Du hast zwar noch eine Schleife im subVI - aber die läuft nicht parallel, sondern innerhalb der zweiten und blockiert diese dadurch...

Also musst du für wirklich parallel arbeitende Strukturen sorgen. Oder deine Logik überdenken, für mich sieht es eindeutig zu kompliziert aus. Und fehlerträchtig, wenn wirklich auf's gleiche Control von zwei verschiedenen VIs aus zugegriffen werden soll (Race-Condition!)...
Referenz-URLs