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!
Ein nettes Hallo
Ich habe folgendes Problem und hoffe auf Hilfe von euch :-)
Ich muß eine Kommunikation für ein neues Gerät schreiben dieses habe ich auch soweit getan.
Jedoch ist jetzt folgendes Problem.
Einzelne VI's müssen zur selben Zeit ausgeführt werden weil sie jeweils in einer Schleife sind. Jetzt müßte ich meine Untervi's als Reentrant laufen lassen.
Jedoch finde ich nur unter VI Einstellungen ->Priorität und darunter Unterprogramme.
Ist dieses Richtig ??
Wenn ja ergibt sich noch ein problem denn in einem Unterprogramm muß ich leider eine Schleife ausführen. Um aber jedoch nicht zuviele Systemresourcen zu verschwenden müßen diese ja immer mit min. 1 ms getimt werden. Jedoch lässt dieses die VI-Einstellung -> Unterprogramme nicht zu, bekomme da immer eine Fehlermeldung.
Was heißt denn der Modus "Ablaufvariante Ausführung" ?? Denn dieses kann man ja auch nochmals einstellen.
Hoffe habe mich nicht zu missverständlich ausgedrückt
Meine Meinung ist es müßte Unterprogram und dann noch zusätzlich ablaufvariant sein. Das würde mir dann auch die Sache mit den nicht getimten Schleifen erklären. Zumindest ist das wohl so wenn mann Microcontroller programmiert sagte mir mein Kollege der dieses nur ausschließlich macht.
Bin auf dein Beispiel gespannt :-)
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.
Ja vielen Dank für die Hilfe
Wie gesagt mit dieser Funktion von LabVIEW kannte ich mich nicht aus.
Weißt du denn was der AUsführungsmodus Unterprogramm bedeutet ??
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.