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!
Hi,
ich bin gerade damit angefangen mich mit LabVIEW etwas auseinander zusetzen. Hab also noch nicht soviel Ahnung davon. Nun aber zu meinem Problem.
Für ein kleineres Projekt gebrauche ich eine Menüführung. Als Grundlage hierfür hab ich das "Subpanel Viewer.vi" aus den mitgelieferten Beispielen von LabVIEW genommen. Anstatt des Rings zur Auswahl der Subvis hab ich einzelne Tasten genommen. Das klappt so weit auch ganz gut mein Problem damit ist nur das man weiter die Tasten bedienen kann, wenn ein Subvi ausgeführt wird. Ich hätte das Program gerne so, dass wenn eine Taste gedrückt wird das Subpanel eingefügt wird und die Auswahltasten solange gesperrt sind bis das Subpanel beendet ist.
Du kannst dein Subpanel als modal definieren. So wird nur Subpanel aktiv, alles andere, inclusive Hauptpanel ist nicht zu erreichen. Oder du kannst dein Hauptpanel verstecken.
Wenn es doch sichtbar sein soll, dann würde ich den Vorschlag von Kvasir nehmen und die Buttons deaktivieren.
Erstmal danke für eure Vorschläge.
Die Möglichkeit mit dem Eigenschaftsknoten hab ich auch schon probiert. Ich bin aber daran gescheitert, weil ich nicht klar bestimmen konnte, wenn das Vi beendet ist und wann nicht. Ich hab es auch mit Variablen probiert die in den SubVis gesetzt werden und im Hauptvi die Schalter deaktivieren oder aktivieren. Dies klappte aber auch nicht, da die Ereignisstruktur im Hauptvi die Reihenfolge der Abläufe durcheinander bringt.
Abschließend bleibt noch der Vorschlag das Subpanel als Modal zu definieren. Dies klappte bei mir auch nicht, aber wahrscheinlich hab ich da irgendwas verkehrt gemacht, auf jeden fall hab ich sämtliche Subpanel und später dann auch das Hauptpanel über die Vi-Einstellungen->Fenstererscheinungsbild->Dialog als modal definiert. Ich konnte aber weiterhin zu sämtlichen Zeitpunkten das Hauptpanel bedienen.
Die Sub-Vis modal laufen zu lassen ist das einzig Wahre und es muß funktionieren. Es kann aber nur ein Programm "modal", laufen, Hauptprogramm und Sub-Programm gleichzeitig das kann sich nicht vertragen. Also nur die SUB-VIs "modal" definieren und selbstverständlich darf nur eines davon jeweils geöffnet sein.
Außerdem dringend zu empfehlen: Bei den SUB-VIs das Häkchen "Schließen das Fensters zulassen" wegnehmen. Ansonsten besteht die Gafahr, daß der Bediener, wenn er in das Hauptprogramm zurückkehren möchte, statt des Exit-Buttons das Kreuz rechts oben zum Schließen das Fensters betätigt. Dann kehrt das Programm aber nicht mehr zum Haupmenü zurück, Programmabbruch ist oft nur noch mit Windows -Task-Manager möglich.
Mach doch folgendes:Erzeuge ein Hauptrogramm, welches außer dem Stop-Button nur noch einen Button zum Aufruf eines SU-VIs enthält. Das Sub-VI ist nur eine leere Schleife mit dem Stop-Button. Poste beide VI-s hierher und wir werden sehen, warum die Modal-Eigenschaft nicht wie gewünscht funktioniert.
Also ich hab das Hauptvi als Haupt-Applikationsfenster definiert und den Hacken „bei schließen des Fensters zulassen“ weggemacht. Die beiden Subvi's hab ich jeweils als Dialog definiert und auch hier den Hacken weggemacht bei „schließen des Fenster ...“. Es klappt aber nicht bei mir.
Ich hab auf jeden fall die Vi's angehängt, damit du dir die anschauen kannst und mir hoffentlich verrätst was ich verkehrt gemacht habe.
Das Haupt-vi läuft bei mir nicht, "Load an Run vi" wird nicht gefunden. Aber warum dieser gigantische Aufwand, wenn es wirklich nur darum geht, die Sub-VIs aufzurufen? Warum kommen die Ikons der beiden SUB-VIs im Hauptprogramm überhaupt nicht vor? Kann es vielleicht sein, daß Du einfach nicht wußtest, wie man die Ikons der Sub-VIs in den Hauptblock hereinholt? (Dafür gibt es 3 Möglichkeiten: a) Funktionen --> VI auswählen (ganz unten) b) Das Sub-VI aufrufen und das Ikon rechts oben mit der Maus in das Haupt-VI hineinziehen c) direkt die Datei aus dem Windows-Explorer in das Haupt-VI hineinziehen)
Deine Sub-VIs sind richtig konfiguriert, ich habe dazu ein kleines Haupt-VI gemacht. Hoffentlich gibt es keinen Versionskonflikt, ich habe auf 8.01 aufgeziegelt. Melde Dich gegebenenfalls, dann kompiliere ich es auf 7.1
Erstmal danke. Ich werde es wohl so machen wie du es beschrieben hast.
Wie mann Subvi's einbindet wusste ich schon, aber ich bin wie gesagt von einem Beispiel, dass bei LabVIEW mitgeliefert wird, ausgegangen. Bei den Beispiel "Subpanel Viewer.vi" ist der Unterschied zu deiner Lösung das die anderen Vi's direkt in der gleichen Oberfläche eingebunden werden. Im Prinzip finde ich das schöner, aber nach dem ich soviel Ärger damit gehabt habe werde ich die Idee wohl fallen lassen.