28.03.2012, 08:31
|
GerdW
______________
Beiträge: 17.465
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Wie kann ich übergreifend mit einem Main VI sämtliche Sub VI beenden
Hallo KD,
Zitat:Das macht as ganze wieder komplexer´, da ich im Code nichts ändern sollte.
Was ist denn das nun wieder für eine Aussage?
Nichts im Code ändern, aber neue Dinge einführen/unterstützen? Da passt was nicht zusammen...
Zitat:Wie kann ich das machen, wenn ich zB 100 SubVIs habe?
Schon mal von "Arrays" gehört? Und das man auch Arrays of Refs bilden kann?
|
|
|
28.03.2012, 08:32
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
RE: Wie kann ich übergreifend mit einem Main VI sämtliche Sub VI beenden
Skalierbar = Array! Also anstatt nur einer Refnum, merk dir ein Array von Refnums.
Gruß, 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.
|
|
|
28.03.2012, 08:36
|
NWOmason
Simultator
Beiträge: 1.078
Registriert seit: Dec 2010
2012.SP1
2008
EN
93047
Deutschland
|
RE: Wie kann ich übergreifend mit einem Main VI sämtliche Sub VI beenden
(28.03.2012 08:21 )KD schrieb: Wie ich gesehen habe, beziehst du dich über eine Referenz auf das SubVI.
Eine Referenz brauchst natürlich immer. In meinem Beispiel ist diese zur Veranschaulichung statisch. Man kann aber natürlich genauso dynamisch VIs per Referenz laden (zur Laufzeit des Mains).
(28.03.2012 08:21 )KD schrieb: 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.
- Statt einer Refeferenz, Array von Referenzen verwenden
- Zu Sicherheit: Vor dem Abbrechen das VI abfragen, ob es läuft
- Pfade lassen sich dynamisch zur Laufzeit erstellen
- VIs lassen sich dynmisch zur Laufzeit laden
Hier das Konzept zum Referenzarray:
Beste Grüße,
NWO
|
|
|
28.03.2012, 12:51
(Dieser Beitrag wurde zuletzt bearbeitet: 28.03.2012 12:52 von KD.)
|
KD
LV-Anwender
Beiträge: 46
Registriert seit: Aug 2011
11.0.1
2011
DE
Deutschland
|
RE: Wie kann ich übergreifend mit einem Main VI sämtliche Sub VI beenden
Hallo Leute,
ich versuche krampfhaft eine Lösung zu finden, doch ich bin leider schon so ausgebrannt, dass mir nichts mehr einfällt.
Das Problem ist, dass ich zB ein laufendes VI, das bereits ausgeführt wird, beenden möchte via Main VI.
Ich brauche den Aufbau aber so, dass er flexibel bleibt, also nicht nur für ein VI -> da weiß ich, dass ich Referenzen nehmen kann.
Nur wie geht das, dass ich übergreifend für alle VIs, ohne jetzt den Code im Main für jede einzelne SUBVI Datei zu ändern, ein VI beenden kann, das zB sich aufgehängt hat oder nicht mehr reagiert?
Wie könnte ich das lösen?
Danke für eure Hilfe.
Lg David
Ich will ja nichts sagen aber alles was ich bis jetzt gefunden habe, kann ich für meine Applikation nicht gebrauchen, da meine Applikation komplexer ist.
Sorry sonst hätte ich sicher schon eine Lösung parat.
|
|
|
28.03.2012, 13:06
|
GerdW
______________
Beiträge: 17.465
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Wie kann ich übergreifend mit einem Main VI sämtliche Sub VI beenden
Hallo KD;
Zitat:ein VI beenden kann, das zB sich aufgehängt hat oder nicht mehr reagiert?
Du willst ein Programm, das nicht mehr reagiert, programmatisch aus dem subVI heraus reagieren lassen?
Henne-Ei-Problem?
Zitat:Ich will ja nichts sagen aber alles was ich bis jetzt gefunden habe, kann ich für meine Applikation nicht gebrauchen, da meine Applikation komplexer ist.
Die Komplexität ist mir bisher nicht aufgefallen...
|
|
|
28.03.2012, 13:11
|
KD
LV-Anwender
Beiträge: 46
Registriert seit: Aug 2011
11.0.1
2011
DE
Deutschland
|
RE: Wie kann ich übergreifend mit einem Main VI sämtliche Sub VI beenden
Ja es soll so sein, dass ich über das Main das Sub VI beende, sofern dieses nicht mehr reagiert oder zu lange braucht um abgeschlossen zu sein.
|
|
|
28.03.2012, 13:18
(Dieser Beitrag wurde zuletzt bearbeitet: 28.03.2012 13:25 von Achim.)
|
Achim
*****
Beiträge: 4.223
Registriert seit: Nov 2005
20xx
2000
EN
978xx
Deutschland
|
RE: Wie kann ich übergreifend mit einem Main VI sämtliche Sub VI beenden
(28.03.2012 13:11 )KD schrieb: Ja es soll so sein, dass ich über das Main das Sub VI beende, sofern dieses nicht mehr reagiert
Geht nicht! Wie schon erwähnt wurde...Henne-Ei!
(28.03.2012 13:11 )KD schrieb: oder zu lange braucht um abgeschlossen zu sein.
Geht! Aber du musst in deinem bestehenden Code neuen einpflegen, um die Referenzen auf die SubVI's zu erfassen!
(28.03.2012 12:51 )KD schrieb: Nur wie geht das, dass ich übergreifend für alle VIs, ohne jetzt den Code im Main für jede einzelne SUBVI Datei zu ändern, ein VI beenden kann, das zB sich aufgehängt hat oder nicht mehr reagiert?
Rufst du die SubVIs so auf wie im von dir gezeigten Demo? Dann musst du doch nur an den Stellen, wo du den Pfad für das zu öffnende VI angibst, die Referenz an ein Array anhängen und dir irgendwie die Position im Array merken, damit du weißt, welche wann zu verwenden ist.
Aber ganz ohne neuen Code kanns nicht gehen...es sei denn, du kennst Bibi Blocksberg...Hexhex!
A.
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
|
|
|
28.03.2012, 13:27
|
KD
LV-Anwender
Beiträge: 46
Registriert seit: Aug 2011
11.0.1
2011
DE
Deutschland
|
RE: Wie kann ich übergreifend mit einem Main VI sämtliche Sub VI beenden
Hallo NWOmason
danke für den Hinweis.
Hab die Lösung jetzt fürs Problem gefunden.
Danke Danke.....
Noch was: Wenn ich Abort VI verwende, dann ist das ja nicht so die elegante Lösung bzw mit dieser Funktion wird das VI gestoppt oder?
|
|
|
| |