29.01.2008, 10:46
Beitrag #1
|
der Philipp ausm Wald
LVF-Neueinsteiger
Beiträge: 8
Registriert seit: Jan 2005
8.2
2005
kA
90762
Deutschland
|
Sub-VI über Button im Hauptpanel abbrechen
Hallo zusammen
bestimmt wieder eine ganz einfache Lösung, aber ich komm einfach nicht drauf:
Das Problem:
Ich hab ein Sub-VI, das eine Schleife beinhaltet, mit der ein Positioniertisch schrittweise verfahren wird, bis eine bestimmte Abbruchbedingung erreicht ist. Bis dahin funktioniert alles.
Es gibt außerdem eine zweite Abbruchbedingung, eine Stopp-Taste. Wenn ich bei laufendem Sub-VI im Sub-VI-Frontpanel diese Taste drücke, bricht die Schleife ordnungsgemäß ab und das Sub-VI wird beendet wie gewünscht.
Auf dem Frontpanel des Haupt-Vis gibt es eine entsprechende Stopp-Taste. Bei laufendem Sub_VI passiert alerdings überhaupt nichts, wenn man sie drückt. Ist auch irgendwie nachvollziehbar, weil die Taste ja außerhalb des Prozesses liegt, der gerade abläuft.
es gibt aber doch bestimmt eine Möglichkeit das zu ändern, oder? Wäre super, wenn mir da jemand helfen kann...
Grüße,
Philipp
In Übereinstimmung mit der Prophezeiung...
|
|
|
29.01.2008, 11:00
Beitrag #2
|
eg
LVF-SeniorMod
Beiträge: 3.868
Registriert seit: Nov 2005
2016
2003
kA
66111
Deutschland
|
Sub-VI über Button im Hauptpanel abbrechen
Es kommt darauf an, wie dein SubVI ausgeführt wird. Wenn es im Hauptprozess des HauptVIs gestartet ist, dann ist dein HauptVI solange blokiert bis das SubVI in der Ausführung ist.
Die einfachste unschöne Lösung wäre aus dem SubVI die While-Schleife enfernen und statt dessen im HauptVI die While-Schleife um das SubVI machen.
Andere Möglichkeit das SubVI parallel zum HauptVI laufen lasseen, da gibt es viele Lösungen das SubVI aus dem HauptVI zu beenden. Die einfachste in diesem Fall wäre eine Globale Variable oder die Referenzübergabe an SubVI.
|
|
|
29.01.2008, 14:54
Beitrag #3
|
der Philipp ausm Wald
LVF-Neueinsteiger
Beiträge: 8
Registriert seit: Jan 2005
8.2
2005
kA
90762
Deutschland
|
Sub-VI über Button im Hauptpanel abbrechen
hm, schade
dann klappt das wohl doch nicht...
aber danke für die schnelle Antwort
In Übereinstimmung mit der Prophezeiung...
|
|
|
29.01.2008, 16:30
(Dieser Beitrag wurde zuletzt bearbeitet: 29.01.2008 21:33 von jg.)
Beitrag #4
|
|
|
29.01.2008, 19:27
(Dieser Beitrag wurde zuletzt bearbeitet: 29.01.2008 19:34 von Lucki.)
Beitrag #5
|
|
|
29.01.2008, 21:43
(Dieser Beitrag wurde zuletzt bearbeitet: 30.01.2008 13:10 von jg.)
Beitrag #6
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
Sub-VI über Button im Hauptpanel abbrechen
In Abwandlung des Bsp von Frank: Man kann auch im SubVI per Event-Structure auf das Betätigen des Stopp-Button im Main-VI reagieren. Im SubVI sieht das so aus:
main.vi (Größe: 9,34 KB / Downloads: 648)
sub.vi (Größe: 13,41 KB / Downloads: 550)
MfG, Jens
EDIT: Im SubVI ist ein kleiner Bug, bitte Beitrag weiter unten beachten.
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
29.01.2008, 23:51
(Dieser Beitrag wurde zuletzt bearbeitet: 05.03.2015 13:58 von Lucki.)
Beitrag #7
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Sub-VI über Button im Hauptpanel abbrechen
' schrieb:In Abwandlung des Bsp von Frank: Man kann auch im SubVI per Event-Structure auf das Betätigen des Stopp-Button im Main-VI reagieren. Im SubVI sieht das so aus:
Melde Kritik an:
Es ging doch darum, mit einem Knopf auf dem Hauptvi das gerade aktive Subvi zu stoppen, und zwar nur das, also nicht das Programm insgesamt. Für dieses Stoppen des Subvi hast Du überhaupt keinen Knopf auf dem Haupvi. Und ein Subvi vom Haupt-Vi aus zu starten, oder vom Sub-vi selbst das Subvi zu beenden, oder vom Haupvi aus das ganze Programm zu beenden, was hier alles demonstriert wird - das sind ja alles ganz elementare Sachen und das war doch wirklich nicht die Frage.
Zitat:Es gibt außerdem eine zweite Abbruchbedingung, eine Stopp-Taste. Wenn ich bei laufendem Sub-VI im Sub-VI-Frontpanel diese Taste drücke, bricht die Schleife ordnungsgemäß ab und das Sub-VI wird beendet wie gewünscht. Auf dem Frontpanel des Haupt-Vis gibt es eine entsprechende Stopp-Taste. Bei laufendem Sub_VI passiert alerdings überhaupt nichts, wenn man sie drückt. Ist auch irgendwie nachvollziehbar, weil die Taste ja außerhalb des Prozesses liegt, der gerade abläuft.
Also ich verstehe das so, daß ein Vorschlag gesucht ist, wie man das ändert...
|
|
|
30.01.2008, 13:08
Beitrag #8
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
Sub-VI über Button im Hauptpanel abbrechen
' schrieb:Melde Kritik an:
Es ging doch darum, mit einem Knopf auf dem Hauptvi das gerade aktive Subvi zu stoppen, und zwar nur das, also nicht das Programm insgesamt. Für dieses Stoppen des Subvi hast Du überhaupt keine Kopf auf dem Haupvi. Und ein Subvi von Hauptvi aus zu starten, oder vom Sub-vi selbst das Subvi zu beenden, oder vom Haupvi aus das ganze Programm zu beenden, was hier alles demonstriert wird - das sind ja alles ganz elementare Sachen und das war doch wirklich nicht die Frage.
Also ich verstehe das so, daß ein Vorschlag gesucht ist, wie man das ändert...
@Lucki: Jetzt bist du aber sehr kleinlich mit deiner Kritik (auch wenn du im Detail recht hast), aber das zu ändern, ist ja keine große Sache.
Schwamm drüber.
Jetzt aber noch was Wichtiges: Ich habe in meinem Beispiel beim Sub-VI vergessen, am Ende das registrierte Event wieder abzumelden:
Hier eine korregierte Version mit 2 Stop-Buttons im Main-VI (Recht so, Lucki ?)
main.vi (Größe: 13,09 KB / Downloads: 840)
sub1.vi (Größe: 13,76 KB / Downloads: 747)
Ich finde das Beispiel deshalb schön, da es komplett Event-gesteuert ist. Der Stop-Sub-VI Button kann auch als Latch-Button definiert bleiben, da man über die Referenz direkt das Value-Change Event im SubVI mitbekommt.
MfG, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
30.01.2008, 14:49
(Dieser Beitrag wurde zuletzt bearbeitet: 30.01.2008 14:50 von Lucki.)
Beitrag #9
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Sub-VI über Button im Hauptpanel abbrechen
' schrieb:@Lucki: Jetzt bist du aber sehr kleinlich mit deiner Kritik (auch wenn du im Detail recht hast), aber das zu ändern, ist ja keine große Sache.
Schwamm drüber.
Entschuldigung und danke, mir war selbst beim Nachlesen aufgefallen, daß die Detailverliebtheit in meiner Kritik einen peinlichen Beigeschmack hat...
Zitat:Hier eine korregierte Version mit 2 Stop-Buttons im Main-VI (Recht so, Lucki?)
Nicht nur recht, ich bin echt begeistert und ziehe meine umständlichere Version zurück. Ich hätte nicht gedacht, daß sich das so elegant machen läßt.
Ich hatte übrigens mit der Schwierigkeit zu kämpfen, daß das aufgerufene Sub-VI die Schleife im Main blockierte, obwohl das gar keine Ausgänge hat, auf deren Daten hätte gewartet werden müssen. Keine Ahnung woran das liegt. Ich mußte notgedrungen eine zweite unabängige Schleife für das SubVI machen, um die Blockade zu umgehen. Bei Dir funktioniert es aber. Weißt Du darüber etwas? Ich poste auch gern mal das nicht funktionierende Programm.
|
|
|
03.02.2008, 14:13
(Dieser Beitrag wurde zuletzt bearbeitet: 03.02.2008 14:13 von mctommson.)
|
|
|
| |