LabVIEWForum.de - Eventstruktur in while-Schleife

LabVIEWForum.de

Normale Version: Eventstruktur in while-Schleife
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
In eine while-Schleife gehört eine Wartenfunktion, um Prozessoressourcen zu schonen.

Wenn ich einen Eventcase in der while-Schleife habe mit einem time-out, sollte dann dennoch in die while-Schleife eine Wartefunktion mit hinein?
Nö, kannst du dir sparen.

Entweder arbeitest du das nächste Event ab, oder die Event-Struktur wartet bei "Timeout ungleich -1" solange, wie am Timeout-Terminal angeschlossen. Das ist dein Wait.

Gruß, Jens
Nein, besser nicht.
Beispiel A: Wortefunktion 1 sec, timout=0
Beispiel B: Keine Wartefunktion, timeout = 1 sec.
In beiden Fällen zählt der Scheifenzähler alle sec um 1 hoch. Der Unterschied ist aber:
B: ein Ereignis wird augenblicklich behandelt
A: Ein Ereignis wird erst behandelt, wenn die momentan anstehende Wartezeit verstrichen ist.
Allerdings: Bei A kommt es bei jedem Ereignis zu einer Unterbrechung der Wartezeit; die Wartezeit ist also nicht 1 sec, sondern maximal 1 sec. Bei A ist es immer eine sec.
Außerdem: Bei A kann nur 1 Ereignis pro sec verarbeitet werde, bei B unbegrenzt viele. Schon deshalb ist A nicht zu empfehlen.
Danke für Eure Antworten, jetzt kapiere ich das erst.

Ich hab noch eine andere Frage. Es heisst ja immer nur eine Eventstruktur, sonst kann wer weis was passieren.

Folgende Frage - wenn ich ein Hauptfrontpanel habe und in diesem Hauptfrontpanel eigene "Unterfrontpanel" anordne (also SubVIs) - z.B. ein Eingabefeld mit einer Tabelle - und diese SubVIs selber zur Bearbeitung schon Event-Cases enthalten und das Haupt-VI dann auch noch eine - ist das dann vergleichbar mit der Situation, dass ich mehrere EventCases in einem Programm hab? Oder bezieht sich die Aussage - nur eine Eventstruktur - nur auf ein VI und nicht auch ncoh auf SubVIs bezogen?
Diese Aussage bezieht sich auf "Pro VI". Du kannst gerne mehrere Event-Strukturen im Projekt verwenden. Aber in einem VI sollte es nur jeweils eine sein (laut LabVIEW-Hilfe pro Schleife, aber auch das geht aus Erfahrung selten gut).

Gruß, Jens
Die Aussage bezieht sich auf "ein VI, eine Eventstruktur".
Hinweis: Das ist eine gut gemeinte und berechtigte Empfehlung. Man kann mehrere Eventstrukturen pro VI nutzen, muss dann aber aufpassen, Events wirklich nur einer Struktur zuzuordnen...
(23.01.2013 15:16 )GerdW schrieb: [ -> ].. muss dann aber aufpassen, Events wirklich nur einer Struktur zuzuordnen ..
Und selbst dabei wäre ich vorsichtig, da ein ausgelöstes Event ja doch irgendwie auch eine höhere Priorität in der Bearbeitung erhält. Sprich: es wird "sofort" ausgeführt. Wenn nun aber zwei unterschiedliche Events in zwei unterschiedlichen Strukturen zeitgleich auftreten, weiß ich nicht genau ob es da zu unerwünschten Effekten kommen kann.
Danke für Eure Antworten.

Ich habe mal ein Bild hier reingestellt und wollte fragen, ob man für ein VI mit Event-Cases dieses Schema so als "Standard-Schema" nehmen sollte?

- Fehler-Case
- in dem Fehler-Case eine while-Schleife
- in der while-Schleife den Event-Case und einen Auswerte-Case
- Event-Case gibt einen einzigen Wert an den Auswerte-Case (am besten als Enum definiert)
- Auswerte-Case macht dann alles, was bei dem Ereignis passieren soll
- Time-Out bei -1, damit while-Schleife solange wartet, bis ein Ereignis eintritt und so lange nix macht
Referenz-URLs