SubVI öffnen u. bearbeiten während Main wartet - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: SubVI öffnen u. bearbeiten während Main wartet (/Thread-SubVI-oeffnen-u-bearbeiten-waehrend-Main-wartet) |
SubVI öffnen u. bearbeiten während Main wartet - DHBW-Student - 21.02.2011 18:11 Guten Tag, ich bin Elektrotechnik Student und muss nun einen Prüfstand für Injektoren mit Labview 2009 BASE automatisieren. Ich bin Labview Anfänger und habe mich seit diesem Jahr intensiv in Labview hineingearbeitet. Allerdings habe ich nun ein Problem, bei dem ich Hilfe benötige. Ich habe ein Hauptprogramm welches als Zustandsautomat aufgebaut ist. Hier gibt es einen Zustand, welcher ein SubVI mit dessen Frontpanel aufrufen soll. Das SubVI (ebenfalls ein Zustandsautomat) soll nun bearbeitet werden bis es in den Zustand kommt, indem das SubVI geschlossen werden soll. Das Hauptprogramm so lange warte bis das SubVI bearbeitet und geschlossen ist. Außerdem muss dem SubVI ein Boolscher Wert übergeben werden. Aus dem Buch "Einführung in Labview; Georgi, Metin" habe ich eine Anregung gefunden. Allerdings gibt es noch ein Problem mit der Referenz beim schließen und das Frontpanel wird nicht angezeigt. Anbei habe ich ein Minimalbeispiel angehängt. Ich hoffe nun dass ihr mir helfen könnt. Gruß Michael RE: SubVI öffnen u. bearbeiten während Main wartet - aptiva - 21.02.2011 18:45 Durch das Sub-VI ein Fehlercluster durchschleifen, dessen Ausgang erst beschrieben wird, wenn die letzte Befehl beendet wurde. Damit müsste es funktionieren. Hier mein Vorschlag: [attachment=32406] [attachment=32407] Du musst vor allem hierbei nicht das Sub-VI über eine Referenz öffnen, sondern du kannst direkt das Sub-VI im Hauptprogramm öffnen RE: SubVI öffnen u. bearbeiten während Main wartet - DHBW-Student - 21.02.2011 22:33 Erstmal vielen Dank für den schnellen Lösungsansatz. Da das SubVI als Zustandsautomat aufgebaut ist stellt sich mir dann noch die Frage wie ich aus dem Zustand "VI schließen" hinaus komme, sodass das Vi automatisch beendet wird und den Rückgabewert (Fehler) übergibt. Anbei ein Bild, von der Struktur des Automaten. Gruß Michael RE: SubVI öffnen u. bearbeiten während Main wartet - NWOmason - 22.02.2011 07:34 (21.02.2011 22:33 )DHBW-Student schrieb: Da das SubVI als Zustandsautomat aufgebaut ist stellt sich mir dann noch die Frage wie ich aus dem Zustand "VI schließen" hinaus komme, sodass das Vi automatisch beendet wird und den Rückgabewert (Fehler) übergibt. Hallo Michael, indem du im Zustand "Vi schließen" die While Schleife beendest. Am besten wohl mit einer True-Konstante in diesem Zustand und False-konstanten in den anderen Zuständen. Den Tunnel am Case dann mit deiner Abbruchbedingung für die While-Schleife verodern -> Das Vi wird dann nur im Zustand "Vi schließen" beendet. Dannach beendet sich dein Sub-Vi und kehrt zum Aufrufer zurück. Ich hoffe, ich konnte es verständlich erklären. Beste Grüße, NWO RE: SubVI öffnen u. bearbeiten während Main wartet - DHBW-Student - 23.02.2011 10:11 Vielen Dank für die schnelle Hilfe. Der Ablauf macht jetzt das was er sollte. Bis zum nächsten Problem Gruß Michael RE: SubVI öffnen u. bearbeiten während Main wartet - Lucki - 23.02.2011 11:23 Das Studium von voluminösen Lehrbüchern über Labviev sollte aber nicht dazu führen, daß die Aufgabe unnötig kompliziert angegangen wird. Das scheint mir hier der Fall zu sein. Das Main-VI hält defaultmäßig bei jedem Aufruf eines Sub-Vis solange an, bis dieses beendet ist. Wenn man das will, ist kein Herumopern mit VI-Referenzen erforderlich, der normale Aufruf über das Ikon ist da genau richtig. Nicht default ist lediglich, daß sich das FP des Sub-VI bei Aufruf öffnen soll. Das erreicht man mit Rechtsklick auf das Sub-VI-Ikon --> Sub-VI-Einstellungen --> Frontpanel beim Aufruf anzeigen -->nach Abarbeitung schließen, falls ursprünglich geschlossen. Was noch zu empfehlen ist: In den Eigenschaften des SUB-VIs das Schließen des Fensters (über Kreuz rechts oben) verhindern (oder das Schließen als Ereignis behandeln und damit das VI regulär beenden). Sonst kann es zum Hängenbleiben kommen. [attachment=32437] [attachment=32438] |