LabVIEWForum.de
Wie kann ich übergreifend mit einem Main VI sämtliche Sub VI beenden - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Wie kann ich übergreifend mit einem Main VI sämtliche Sub VI beenden (/Thread-Wie-kann-ich-uebergreifend-mit-einem-Main-VI-saemtliche-Sub-VI-beenden)

Seiten: 1 2


Wie kann ich übergreifend mit einem Main VI sämtliche Sub VI beenden - KD - 27.03.2012 15:06

Hallo LV Gemeinde,

ich suche nach einer Möglichkeit, mit der ich über ein Main VI, das einige Sub VIs aufruft, diese SubVIs abbrechen kann.
Die SubVIs werden vom Main VI über Methodenknoten aufgerufen und sollen, falls sich ein SubVI mal aufhängen sollte, über
das Main VI beendet werden können.

Die einfachste Möglichkeit wäre, dies über eine globale Variable oder FGV zu tun, doch diese Varianten kommen nicht infrage.

Gibt es bessere Arten, dieses Problem zu lösen?

Danke im Voraus für eure Hilfe.


Lg David


RE: Wie kann ich übergreifend mit einem Main VI sämtliche Sub VI beenden - GerdW - 27.03.2012 15:12

Hallo David,

Zitat:Die einfachste Möglichkeit wäre, dies über eine globale Variable oder FGV zu tun, doch diese Varianten kommen nicht infrage. Gibt es bessere Arten, dieses Problem zu lösen?
- Wieso kommt eine globale Variable nicht in Frage?
- Was willst du noch besseres als eine FGV?


RE: Wie kann ich übergreifend mit einem Main VI sämtliche Sub VI beenden - KD - 27.03.2012 15:16

Hallo
erstmals danke für die schnelle Antwort.

Ja warum will ich keine globale variable und FGV verwenden?
Ich habe beide Varianten bereits ausprobiert, funktioniert ja auch gut.
Doch meine Teammitglieder glauben, das ist eine alte Vorgehensweise. Wobei ich sagen muss,
dass diese mehr C Programmer sind und nicht viel mit LV zu tun haben.

Gibt es eine andere Art der Programmierung, die villeicht professioneller ist?

Lg David


RE: Wie kann ich übergreifend mit einem Main VI sämtliche Sub VI beenden - NWOmason - 27.03.2012 15:17

Hallo David

(27.03.2012 15:06 )KD schrieb:  Die einfachste Möglichkeit wäre, dies über eine globale Variable oder FGV zu tun, doch diese Varianten kommen nicht infrage.

Warum kommt das nicht in Frage?

(27.03.2012 15:06 )KD schrieb:  Gibt es bessere Arten, dieses Problem zu lösen?

Über bessere (als FGV) lässt sich streiten, das kommt immer auf die generelle Implementierung an.

Möglichkeiten, die mir spontan sonst einfallen:
- Queues/Melder
- User Events
- Harter Abbruch (AbortVi)

Beste Grüße,
NWO


RE: Wie kann ich übergreifend mit einem Main VI sämtliche Sub VI beenden - jg - 27.03.2012 15:21

(27.03.2012 15:16 )KD schrieb:  Wobei ich sagen muss, dass diese mehr C Programmer sind und nicht viel mit LV zu tun haben.
Weshalb hörst du auf C-Programmierer? Vor allem, wenn sie von LV keine Ahnung haben?

Gruß, Jens


RE: Wie kann ich übergreifend mit einem Main VI sämtliche Sub VI beenden - KD - 27.03.2012 15:37

Hallo Leute

wenn ich jetzt Abort VI verwende, kann ich das übergreifend auf alle SubVIs verwendet?
Idee wäre ja, dass wenn ich im Main den Button Abort betätige, dann sollen ja alle SubVIs, die gerade im RUN Modus sind,
beendet werden.

Ich habe das mit FGVs auch schon gemacht. Gibt es da ein Beispiel oder hat jemand eine Idee, wie ich das umsetzen kann?
Wenn ich Events nehme, brechen die dann die Sub VIs ab?

Im Anhang habe ich mal folgendes für euch:

Das Main, das ein SubVI aufruft, das im Leerlauf einer Whileloop ausgeführt wird.
Über den Abbrechen Button soll das SubVI beendet werden.

Wie kann ich das machen, ohne glob Var. zu verwenden?


Lg David


RE: Wie kann ich übergreifend mit einem Main VI sämtliche Sub VI beenden - NWOmason - 27.03.2012 19:49

(27.03.2012 15:37 )KD schrieb:  wenn ich jetzt Abort VI verwende, kann ich das übergreifend auf alle SubVIs verwendet?
Idee wäre ja, dass wenn ich im Main den Button Abort betätige, dann sollen ja alle SubVIs, die gerade im RUN Modus sind,
beendet werden.

Natürlich. Per Event auf 'Value Change' des Abort-Buttons reagieren und alle SubVIs beenden.


(27.03.2012 15:37 )KD schrieb:  Ich habe das mit FGVs auch schon gemacht. Gibt es da ein Beispiel oder hat jemand eine Idee, wie ich das umsetzen kann?

Du hast es schon mit FGVs gemacht? Funktioniert es? Wozu brauchst du noch ein Beispiel?

(27.03.2012 15:37 )KD schrieb:  Wenn ich Events nehme, brechen die dann die Sub VIs ab?

Wenn du im SubVI ein Event auslösen lässt, dass dieses dann beendet, dann JA!

(27.03.2012 15:37 )KD schrieb:  Wie kann ich das machen, ohne glob Var. zu verwenden?

Wie gesagt, ganz hart mit AbortVI. Sonst mit den bereits erwähnten Methoden Wink

Beste Grüße,
NWO


RE: Wie kann ich übergreifend mit einem Main VI sämtliche Sub VI beenden - KD - 28.03.2012 07:46

Guten Morgen,

zu deiner Aussage: "Natürlich. Per Event auf 'Value Change' des Abort-Buttons reagieren und alle SubVIs beenden"Könntest du mir da ein Beipiel zeigen wie das aussieht?

Danke wäre echt super.

Lg David


RE: Wie kann ich übergreifend mit einem Main VI sämtliche Sub VI beenden - NWOmason - 28.03.2012 08:15

(28.03.2012 07:46 )KD schrieb:  Könntest du mir da ein Beipiel zeigen wie das aussieht?

Bitteschön:

[attachment=39264]

[attachment=39267][attachment=39266]

Beste Grüße,
NWO


RE: Wie kann ich übergreifend mit einem Main VI sämtliche Sub VI beenden - KD - 28.03.2012 08:21

Danke für das hilfreiche Beispiel.

Wie ich gesehen habe, beziehst du dich über eine Referenz auf das SubVI.

Nur kleine Preisfrage: Wie kann ich das machen, wenn ich zB 100 SubVIs habe?
Und es muss flexibel gestaltet sein, also ich muss das main für 10,30,50 oder 150,.... SubVIS ausführen können.
Das macht as ganze wieder komplexer´, da ich im Code nichts ändern sollte.

Lg David