INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Zweites, dynamisch aufgerufenes SubVI startet nicht



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!

18.03.2014, 10:18
Beitrag #1

Belimo Offline
LVF-Grünschnabel
*


Beiträge: 34
Registriert seit: Jul 2011

2010
2010
kA



Music Zweites, dynamisch aufgerufenes SubVI startet nicht
Hallo miteinander!
Der Titel sagt es schon, ich rufe aus meinem HauptVI über Referenz öffnen nacheinander 2 Unterprogramme auf (Lüfterregelung und Heizerregelung).

   

In der Sequenz werden nacheinander die VIs aufgerufen, gestartet und ihr Status in "Hidden" bzw. "nicht sichtbar" gesetzt. Klicke ich zur Laufzeit im HauptVI
auf eine Schaltfläche, so wird in der Ereignisstruktur der SubVI Status auf Standart gesetzt und dadurch im Vordergrund aufgerufen.
Das Klappt für die "Lüfter"-Steuerung sehr gut. (Schaltfläche geklickt, VI erscheint ausgeführt)
Wenn ich die Schaltfläche für das 2. aufgerufene VI anklicke "Heizer.VI erscheint das Frontpanel, leider jedoch unausgeführt. Versuch ich es über das "Ausführen" ICON
von Labview zu starten, so bricht es wieder ab... Woran könnte das liegen?

   

Wenn ich zu beginn zuerst "Heizer.vi" aufrufe und dann "Lüfter.vi" wird entsprechend "Lüfter.vi" nicht ausgeführt. :Sad
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
18.03.2014, 10:28 (Dieser Beitrag wurde zuletzt bearbeitet: 18.03.2014 10:29 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.427
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Zweites, dynamisch aufgerufenes SubVI startet nicht
Hallo Belimo,

erstmal vorneweg: es gibt nicht ohne Grund spezielle Pfad-Befehle, da muss man nicht mit dubiosen fehlerträchtigen String-Operationen rumwerkeln…

Zitat:Standart
Wenigstens Abschreiben sollte funktionieren, oder willst du hier irgendwelche Kunst verkaufen? Big Grin

Zitat:Wenn ich die Schaltfläche für das 2. aufgerufene VI anklicke "Heizer.VI erscheint das Frontpanel, leider jedoch unausgeführt. Versuch ich es über das "Ausführen" ICON von Labview zu starten, so bricht es wieder ab... Woran könnte das liegen?
Wenn irgendwas nicht funktioniert, sollte es Fehlermeldungen geben. Hast du da was für uns?
Sind die Referenzen gültig?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.03.2014, 10:39
Beitrag #3

Belimo Offline
LVF-Grünschnabel
*


Beiträge: 34
Registriert seit: Jul 2011

2010
2010
kA



RE: Zweites, dynamisch aufgerufenes SubVI startet nicht
Hey,
tut mir leid das passiert mir ab und zu mit "standard" Big Grin
Gut die Pfad Befehle kann ich bei gelegenheit nochmal ersetzen, dass stimmt.
Bei ansetzen eines Fehlerknotens hinter dem Methodenknoten "VI ausführen"
wird kein Fehler angezeigt. Die Referenzen werden für jedes SubVI ja in einer Globalen Variable
eingefügt. Kann da irgendwas durcheinander geraten Das Labview nicht mehrere Referenzen (auch wenn unter anderem Namen)
speichern kann?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.03.2014, 10:43
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.427
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Zweites, dynamisch aufgerufenes SubVI startet nicht
Hallo Belimo,

Zitat:Kann da irgendwas durcheinander geraten Das Labview nicht mehrere Referenzen (auch wenn unter anderem Namen)
speichern kann?
Nein, das kann es nicht sein. Du kannst sehr wohl (beliebige) Referenzen in globalen Variablen speichern…

Zitat:Versuch ich es über das "Ausführen" ICON von Labview zu starten, so bricht es wieder ab... Woran könnte das liegen?
Wie sieht dein subVI denn überhaupt aus?
Was bedeutet "bricht es wieder ab"?
Ist das subVI fehlerfrei? Hat es irgendwelche Abbruchbedingungen?

Bisher mangels VIs nur Glas1

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.03.2014, 10:56
Beitrag #5

Belimo Offline
LVF-Grünschnabel
*


Beiträge: 34
Registriert seit: Jul 2011

2010
2010
kA



RE: Zweites, dynamisch aufgerufenes SubVI startet nicht
ich hab mal mein VI angehangen Smile


Angehängte Datei(en)
0.0 .zip  1.zip (Größe: 239,51 KB / Downloads: 206)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.03.2014, 11:20 (Dieser Beitrag wurde zuletzt bearbeitet: 18.03.2014 11:23 von GerdW.)
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.427
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Zweites, dynamisch aufgerufenes SubVI startet nicht
Hallo Belimo,

das Problem ist hier die unnötige Verwendung von TimedWhileLoops!

Dummerweise hast du die subVIs durch Kopieren erzeugt. Damit hat die Kopie bei der TWL den exakt gleichen Namensbezeichner für die TWL übernommen - und LabVIEW kann nun einmal keine zwei TWL mit exakt dem gleichen Namen laufen lassen…

- Verzichte bei dieser Anwendung auf TWL, sie bringen keinen Vorteil und nur unnötigen Overhead.
- Eine Event-Struktur in einer TWL ist schlichtweg Blödsinn!
- Versuche die globalen Variablen zu reduzieren, das läuft früher oder später auf RaceConditions hinaus!
- (Stacked)Sequenzen erhöhen nicht die Lesbarkeit eines VIs!
- Warum bindest du die VIs nicht wirklich als subVI ein, sondern rufst sie per VIServer auf? Was soll hier der Vorteil sein?

Lesson learned:
VIs anhängen erläutert Probleme viel besser als "bricht wieder ab"… Big Grin

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
18.03.2014, 11:26 (Dieser Beitrag wurde zuletzt bearbeitet: 18.03.2014 11:28 von Belimo.)
Beitrag #7

Belimo Offline
LVF-Grünschnabel
*


Beiträge: 34
Registriert seit: Jul 2011

2010
2010
kA



RE: Zweites, dynamisch aufgerufenes SubVI startet nicht
Die TWL musst ich nehmen, da es sonst arge Probleme mit der Synchronisation meines Host mit dem cRIO system gibt.
Das bedeutet, als ich vorher normale While loops hatte und dann z.B. auf "Lüfter einschalten" geklickt habe, dauerte es eine Ewigkeit
eh der simple "True" befehl mit der SharedVariable an den digitalen Output ging... Sad hab lange mit den Variablen Eigenschaften rumprobiert,
(RT FIFO, Puffer etc.) aber nichts hat geholfen Sad bis ich dann die TWL auf dem Host verwendet hab.
Würd die gern beibehalten, gibts da trotzdem noch ne Möglichkeit?
achso, ja das reine "reinziehen" des SubVIs ginge natürlich auch. Wusste nicht ob das im Hintergrund weiterlaufen und erscheinen/verschwinden dann so gut funktionert
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.03.2014, 12:20
Beitrag #8

GerdW Offline
______________
LVF-Team

Beiträge: 17.427
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Zweites, dynamisch aufgerufenes SubVI startet nicht

Akzeptierte Lösung

Hallo Belimo,

in deinem Beispiel sind nirgends SVs zu sehen…

Zitat:Das bedeutet, als ich vorher normale While loops hatte und dann z.B. auf "Lüfter einschalten" geklickt habe, dauerte es eine Ewigkeit eh der simple "True" befehl mit der SharedVariable an den digitalen Output ging...
Ich kann mir jetzt keinen Grund ausdenken, warum das mit einer TWL besser funktionieren sollte als mit einer normalen WhileLoop.
Oder halt:
Hast du irgendwo in deinem Programm eine Schleife (z.B. irgendeine Polling-Loop) laufen, die viel CPU-Last erzeugt? Dann ist natürlich die CPU ausgelastet und arbeitet andere Sachen nicht im gewünschten Takt ab. TWLs sind höher priorisiert und können dann evtl. doch ausgeführt werden… Also eher mal die "normalen" Schleifen kontrollieren und alle mit einer Wartezeit versehen!

Zitat:Wusste nicht ob das im Hintergrund weiterlaufen und erscheinen/verschwinden dann so gut funktionert
Dieses ständige (Un)Sichtbar-Schalten würde ich im subVI (und nur dort) erledigen. Nur eine Instanz, die sich darum kümmert, und zwar abhängig von irgendwelchen Settings, die du da in den globalen Variablen speicherst…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.03.2014, 12:30
Beitrag #9

Belimo Offline
LVF-Grünschnabel
*


Beiträge: 34
Registriert seit: Jul 2011

2010
2010
kA



RE: Zweites, dynamisch aufgerufenes SubVI startet nicht
Danke Gerd fürs weiterhelfen!
Das mit dem "Warten" in einer normalen While Schleife hat ich gerad auch nochmal probiert und klappt gut.
Das Problem mit dem "nicht ausführen besteht leider weiterhin, aber ich werd das jetzt so machen wie du
vorgeschlagen hast. (VI im HauptVI als SubVI behandeln und dann die sichtbarkeit im SubVI klären)
Vielen Dank!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.03.2014, 12:31 (Dieser Beitrag wurde zuletzt bearbeitet: 18.03.2014 12:50 von GerdW.)
Beitrag #10

GerdW Offline
______________
LVF-Team

Beiträge: 17.427
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Zweites, dynamisch aufgerufenes SubVI startet nicht

Akzeptierte Lösung

Hallo Belimo,

Zitat:Das Problem mit dem "nicht ausführen besteht leider weiterhin

Ich wiederhole:
Zitat:Dummerweise hast du die subVIs durch Kopieren erzeugt. Damit hat die Kopie bei der TWL den exakt gleichen Namensbezeichner für die TWL übernommen - und LabVIEW kann nun einmal keine zwei TWL mit exakt dem gleichen Namen laufen lassen…
Wie wäre es damit, die TWL mit einem anderen Namen zu versehen? Hmm
Falls dir das nicht klar sein sollte, verweise ich mal auf die LabVIEW-Hilfe

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Aufgerufene SubVI nicht bedienbar L@BTR0N 2 3.718 02.03.2020 13:39
Letzter Beitrag: L@BTR0N
  LabVIEW startet nicht mehr Fredy 8 6.443 08.12.2017 15:40
Letzter Beitrag: Fredy
  Werte aus SubVI werden nicht aktualisiert McButch 24 11.736 13.10.2016 14:20
Letzter Beitrag: jg
  XML dynamisch parsen? C.Maier 3 4.188 11.10.2016 10:30
Letzter Beitrag: C.Maier
  While Schleife durchläuft ein zweites mal nach beenden p4tti 5 4.374 15.09.2016 10:34
Letzter Beitrag: jg
  3 Arrays dynamisch verändern hubem14 7 4.833 13.09.2016 11:45
Letzter Beitrag: GerdW

Gehe zu: