26.09.2006, 16:35
<div align="left">Hallo Achim,
Die Referenzen, die mit der SubVI verdrahtet sind, werden beim Programmstart bzw. dem ersten Aufruf der SubVI übergeben. Sonst würden wir die Ergebnisse nicht auf der Anzeige der MainVI sehen! Danach läuft die Schleife alle 500ms.
Die Typkonvertierung ist also zwingend. Zumindest bei dieser Variante. Vielleicht gibt es noch weitere, aber so geht es nicht.
Frage: Wie soll man ohne einen Zeiger auf den Speicherbereich des Anzeigeinstruments der MainVI aus einer SubVI heraus direkt Ergebnisse dort anzeigen!?
Anbei das Programm mit den erläuterten Änderungen.
Grüße,
Stefan
[attachment=3415]
[attachment=3416]</div>
Zitat:@ Stefan:Dort wird die Referenz (Adresse) des Kontroll- bzw. Anzeigeinstruments der MainVI übergeben. Damit die zu repräsentierenden Werte aus der SubVI in den gewünschten Speicherbereich geschrieben werden können. (Ist analog zur Zeigerübergabe bei einem Funktionsaufruf in C. Die Funktion muss wissen, auf welchem Speicherbereich sie arbeiten soll!)
Irgendwie hab ich's nicht geblickt! Was bringt die Verdrahtung ins SubVÌ?
Zitat:Wenn im SubVI die Schleife läuft, wird das HauptVI, welches das SubVI enthält, auf jeden Fall so lange angehalten, bis das SubVI beendet ist. D.h. es werden vom HauptVI keine Eingaben ins SubVI übernommen!Nicht ganz... es gibt da noch eine Waitfunktion von 500ms die auch der MainVI Prozessorzeit erlaubt. allerdings wird davon im Hauptprogramm kein Gebrauch gemacht ...
Die Referenzen, die mit der SubVI verdrahtet sind, werden beim Programmstart bzw. dem ersten Aufruf der SubVI übergeben. Sonst würden wir die Ergebnisse nicht auf der Anzeige der MainVI sehen! Danach läuft die Schleife alle 500ms.
Zitat:Kleiner Tip: Wenn du die Referenz des "stop from mainVI" mit gedrückter Strg-Taste vom Blockdiagramm des HauptVI aufs Frontpanel des SubIV ziehst, erhälst du eine "strict refnum" (sichtbar am Sternchen auf dem FP) und du kannst dir die "Variant to Data"-Wandlung sparen!Danke für den Tip, allerdings ändert das in diesem Fall nichts an unserem Problem, da mit dieser Drag&Drop-Operation auch gleichzeitig ein neues Bedienelement erzeugt wird und somit auch eine neue Referenz. ...Und man sieht wieder nichts im Anzeigeinstrument der MainVI!
Die Typkonvertierung ist also zwingend. Zumindest bei dieser Variante. Vielleicht gibt es noch weitere, aber so geht es nicht.
Frage: Wie soll man ohne einen Zeiger auf den Speicherbereich des Anzeigeinstruments der MainVI aus einer SubVI heraus direkt Ergebnisse dort anzeigen!?
Anbei das Programm mit den erläuterten Änderungen.
Grüße,
Stefan
[attachment=3415]
[attachment=3416]</div>