Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
Ich habe in einem VI eine Ereignisschleife, die aktiv wird, wenn auf der dazugehörigen Schaltfläch die Maus gedrückt wird. Jetzt möchte ich das VI aber als Sub-VI einstzen. Weiß hier zufällig jemand, wie ich das Ereignis 'Maustaste gedrückt' auf einer Schaltfläche des Haupt-VIs in das Sub-Vi übertrage ?
Kann man nicht einfach beim Haupt VI einen Ausgang für den Schalter machen und beim Sub VI einen Eingang? So könntest du es nämlich einfach nur durchziehen!
Schön wäre es, doch so einfach ist es dann doch nicht.
Innerhalb der Ereignis-Schleife befindet sch dann noch einmal eine Ereignis-Schleife, in welcher ich die Abruchbedingung einer while-Schleife abfrage, nämlich Maus auf Schaltfläche freigegeben. Desegen möchte ch wissen, wie ich die Ereignisse in das Sub-VI bekomme, bzw. ob überhaupt!
ich habe dasselbe problem, nur andersrum. ich möchte die daten eines sub-vi's, welches von mehreren Orten aufgerufen werden kann, aufs Haupt-VI übertragen...
Hier jetzt noch einmal ausführlicher mein Problem, vielleicht kann mir dann doch noch jemand weiterhelfen, denn aus der Welt ist das Problem immer noch nicht:
Ich habe ein Frontpanel mit einem Schalter. Eine Ereignis-Schleife wartet jetzt auf das Ereignis "Maustaste über Schaltfläche gedrückt". ist das der fall startet die Schleife. Im inneren dieser Schleife gibt es dann noch Case-unterscheidungen und While-schleifen, aber eben noch eine ereignisgesteuerte Schleife die auf das Ereignis "Maustaste über Schaltfläche freigegeben" reagiert.
Das VI läuft tadellos. Alerdings möchte ich es als SubVI laufen lassen, habe dabei jedoch das Problem, dass mit dem ersten Ereignis das SubVI zwar gestartet wird, jedoch das zweite Ereignis "Maustaste über Schaltfläche freigegeben", was ich zum Beenden des SubVI's benötige nicht mehr an das SubVI senden kann, da das Programm darin feststeckt und das SubVI in einer Endlosschleife vor sich hin läuft und mir das komplett Programm zum Stocken bringt.
Daher nochmal die Frage: Kann ich ein Ereignis überhaupt in ein SubVI leiten, welches sich zu diesem Zeitpunkt in einer While-Schleife befindet, da ich es als Abbruchbedingung brauche??
@bleuer
Wenn du noch Fragen oder Unklarheiten hast, war ich wohl nicht verständlich genug, als wir uns Ende Oktober darüber unterhielten.
Stelle deine Fragen doch hier weiterhin ein, und sage ehrlich, wenn du etwas noch nicht ganz verstanden hast. Ich werde mich bemühen...
Hi A.Bartrow,
nach meinem Wissensstand geht das (noch) nicht.
Ich habe mich aber auch noch nicht mit USER Events beschäftigt, noch weiß ich ob in 7.1 irgendwelche Neuerungen dazu gekommen sind.
Aber du kannst im Toplevel-VI die zwei Events abfragen und diese über eine z.B. Queue "weiterreichen":
- "Maustaste über Schaltfläche gedrückt": sendet über eine Queue die "Start"-Nachricht an dein parallel laufendes Sub-VI
- "Maustaste über Schaltfläche freigegeben": sendet über eine Queue die "Stop"-Nachricht an dein parallel laufendes Sub-VI
Das warten auf eine Nachricht in der Queue verbraucht ebenso keine Prozessorkapazität wie die Event-Structure.
Ich wollte nicht extra einen neuen threat eröffnen, habe aber ein ähnlich gelagertes Problem.
Ich modifiziere ein mit LV6 geschriebenes Programm mit LV7.1.
Ich möchte ein "numeric Control"-Wert an ein Sub-VI übergeben, kann aber weder dessen "Terminal Pattern" noch die "Input" und "Outputs" verändern.
Laut LabVIEW Hilfe und -Manual sollte dies einfach möglich sein. Wie muss ich vorgehen?
ähnlich ist gut gesagt, A.Bartrow will ein Event in einem SubVi abfangen, alle anderen beschäfftigen sich mit Datenhandling unter LabVIEW.
Verstehe ich es richtig, das du alle Terminal Pattern voll hast.
Rechter Click aufs VI-Icon und show connector anwählen.
Nochein rechter click und im sub contexmenü Patterns dir dein gewünschtes Pattern aussuchen.
Aber vorsicht! alle VI aufrufe kontrollieren, ob die Anschlüße noch stimmen.
Deshalb also möglichst immer das gleiche Pattern verwenden mit genug Kapazität für Erweiterungen.
Alternativ per Queue oder Notifier, schlimmstenfalls per globale Variable die Daten übergeben - aber nur wenn du absolut das Pattern nicht verändern, oder die Übergebenen Daten nicht in Clustern sinnvoll strukturieren kannst!!
Oliver Frank schrieb:ähnlich ist gut gesagt, A.Bartrow will ein Event in einem SubVi abfangen, alle anderen beschäfftigen sich mit Datenhandling unter LabVIEW.
Ich denke, daß jenes Kommentar ausdrückt, wie ich mich fühle...ich habe keine Ahnung ;-)
Also, die Pattern habe ich mir Anzeigen lassen, 2 Inputs und 4 Outputs.
Ich brauche noch einen Input, aber ich erhalte bei Rechtsklick auf die Pattern nicht den Menuepunkt "Pattern", um diese zu ändern, noch erhalte ich in der "expanded" Ansicht die Option "insert Input/output", die bleibt grau unterlegt inaktiv.
Mein Problem scheint so einfach zu sein, das ich dafür keine Hilfe finden konnte :-(
gehe oben rechts auf das VI logo (panel!)
--> rechte maustaste --> Show Connector ---> dann wieder auf Pattern rechte maustaste ---> dann auf Pattern ---> und passende Pattern auswählen !
Das wars
hoffe konnte helfen
gruss dennis
Wissen ist das einzige Gut das sich vermehrt, wenn man es teilt!
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!