23.05.2006, 08:29
Beitrag #2
|
A.Berndsen
LVF-Team
Beiträge: 2.437
Registriert seit: Feb 2005
8.2.1 - 2011
2004
DE
724xx
Deutschland
|
Reentrant Funktion in LabVIEW 7.0 deutsch
Hi xtro,
meines Wissens reentrant = ablaufinvariant.
Hab's aber bisher noch nicht gebraucht und auch noch nicht versucht.
Wenn ich mal Zeit habe programmier ich was rekursives, wobei mir
ein ein NI-Techniker mal erzählt hat, dass das nicht geht.
Grüße
Andreas
|
|
|
23.05.2006, 08:47
Beitrag #3
|
|
|
24.05.2006, 07:01
Beitrag #4
|
Svenni
LVF-Gelegenheitsschreiber
Beiträge: 227
Registriert seit: Mar 2005
7.1, 8.0, 8.2, 8.21, 8.5, 8.6, 2009, 2010, 2011, 2012, 2013, 2014
2000
DE
23843
Deutschland
|
Reentrant Funktion in LabVIEW 7.0 deutsch
Hallo,
ich nutze ablaufinvariante SubVI's sehr häufig. In der deutschen Version ist die Einstellung unter Eigenschalten des VI's->Ausführung->Ablaufinvariante Ausführung. Sonsta habe ich nichts geändert. Läuft sehr gut.
Ich nutze es, um sechs Platinen gleichzeitig zu testen.
Hier mal ein paar Schreenshots.
Hoffe, dass die Bildeer etwas helfen.
Gruß
sven
|
|
|
24.05.2006, 07:53
Beitrag #5
|
|
|
24.05.2006, 14:22
Beitrag #6
|
Svenni
LVF-Gelegenheitsschreiber
Beiträge: 227
Registriert seit: Mar 2005
7.1, 8.0, 8.2, 8.21, 8.5, 8.6, 2009, 2010, 2011, 2012, 2013, 2014
2000
DE
23843
Deutschland
|
Reentrant Funktion in LabVIEW 7.0 deutsch
Hallo,
habe mal den Text aus der LabVIEW-Hilfe kopiert. Dort wird die Funktion erklärt.
Zitat:Prioritätslevel "Subroutine"
Das Prioritätslevel Subroutine ermöglicht es einem VI, so effizient wie möglich ausgeführt zu werden. VIs, die mit dieser Priorität laufen, müssen sich die Ausführungszeit nicht mit anderen VIs teilen.
Wenn ein VI auf dem Prioritätslevel Subroutine ausgeführt wird, dann übernimmt es die Steuerung des Threads, in dem es ausgeführt wird und wird im selben Thread wie das aufrufende VI ausgeführt. Selbst dann, wenn das andere VI sich auf dem Prioritätslevel Subroutine befindet, kann kein anderes VI in diesem Thread ausgeführt werden bis das Unterprogramm-VI zu Ende ausgeführt ist. In einer Applikation mit nur einem Thread wird kein anderes VI ausgeführt. Bei Ausführungssystemen bearbeitet der Thread, der die Unterprogramme ausführt, keine anderen VIs. Der zweite Thread des Ausführungssystems kann gemeinsam mit anderen Ausführungssystemen jedoch weiterhin VIs ausführen.
Die Ausführung von VIs mit Unterprogramm-Priorität wird rationalisiert, so dass Bedien- und Anzeigeelemente des Frontpanels nicht aktualisiert werden, wenn das Unterprogramm gerade aufgerufen wird. Das Frontpanel eines VIs mit Unterprogramm-Priorität gibt keine Auskunft über seine Ausführung.
Ein Subroutine-VI kann andere Subroutine-VIs aufrufen, nicht aber ein VI mit einer anderen Priorität. Wenn Sie den Speicherbedarf in einem SubVI minimieren wollen, das einfache Berechnungen ausführt, dann verwenden Sie das Prioritätslevel Subroutine.
Da Unterprogramme nicht mit der Warteschlange interagieren sollen, können sie auch keine andere Funktion aufrufen, mit deren Hilfe LabVIEW sie aus der Schlange herausnehmen könnte. Das bedeutet auch, dass sie die Warten-, GPIB-, VISA- oder Dialogfeld-Funktionen nicht aufrufen können.
Unterprogramme verfügen über ein zusätzliches Feature, das bei zeitkritischen Anwendungen sehr hilfreich sein kann. Wenn Sie ein SubVI mit der rechten Maustaste anklicken und Diese Subroutine übergehen, wenn beschäftigt aus dem Kontextmenü auswählen, übergeht das Ausführungssystem den Aufruf, wenn das Unterprogramm gerade in einem anderen Thread ausgeführt wird. Das kann bei zeitkritischen Schleifen sehr hilfreich sein, bei denen das Ausführungssystem die Operationen übergeht, die das Unterprogramm ausführt und wenn Sie die Verzögerung durch das Warten auf die Beendigung des SubVIs vermeiden möchten. Wenn Sie die Ausführung eines SubVIs übergehen, erhalten alle Ausgänge des SubVIs den Standardwert für das Anzeigeelement auf dem Frontpanel des SubVIs.
Gruß
sven
|
|
|
| |