LabVIEWForum.de
Eventhandling - Bedienelemente außerhalb oder innerhalb? - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Eventhandling - Bedienelemente außerhalb oder innerhalb? (/Thread-Eventhandling-Bedienelemente-ausserhalb-oder-innerhalb)

Seiten: 1 2


Eventhandling - Bedienelemente außerhalb oder innerhalb? - schurzgasschweisser79 - 15.06.2010 15:32

Zitat:Oh nein, das geht überhaupt nicht. Wenn sie ganz außen liegen, dann werden sie nur ein einziges Mal gelesen - endweder bei Start, oder (wenn freischwebend ohne Draht) sogar bei Stop des Programms. Dieser einmal gelesene Wert würde dann auch auf den angeschlossenen Draht übertragen, der Wert dort würde sich nie ändern, da kannst Du das Element bedienen so oft Du willst.
Raff ich net. Wir verstehn uns glaub ich falsch. Ich hab sowas hier gemeint (Sinnigkeit der Sache sei stark in Frage gestelltBig Grin):
Lv09_img2
[attachment=27150]

Was hast du gemeint?


Zitat:Aber: Ein Event, das "länger" dauert, ist sowieso nicht die feine englische Art..."Langer" Code hat nüscht in nem Eventcase verloren! Basta! tongue.gif
Also wenn man eine Messreihe mit Eventhandling starten will, dann startet man in dem Eventcase einfach irgendein anderes paralleles Loop, das die eigentliche "Messarbeit" übernimmt?


Eventhandling - Bedienelemente außerhalb oder innerhalb? - Lucki - 15.06.2010 15:58

' schrieb:Raff ich net. Wir verstehn uns glaub ich falsch. Ich hab sowas hier gemeint (Sinnigkeit der Sache sei stark in Frage gestelltBig Grin):
Das VI ist OK. Ereignisbehandlung ist nicht gleich Lesen. Die Ereignisbehandlung (Hier: Wertänderung boolscher Knöpfe ) findet statt, ohne daß die Knöpfe dazu gelesen werden müssen. Hier werden sie zwar gelesen, aber hinterher, und das ist kein Muß, sondern ist nur dazu da, damit die Knöpfe bei dieser Gelegenheit nach dem Drücken wieder rückgesetzt werden.


Eventhandling - Bedienelemente außerhalb oder innerhalb? - schurzgasschweisser79 - 15.06.2010 19:40

Ich glaub langsam check ichs ein bisschen. Ich versuche mal anhand dem folgendenem Mini-Beispiel zu beschreiben was ich denke kapiert zu haben:

Lv86_img
[attachment=27153]

Also alle Sachen in dem Hauptloop werden anscheinend gelesen, bevor das Eventhandling gestartet wird. Das sieht man besonders gut bei Betätigung des Stopbuttons in diesem Beispiel. Wenn man ihn drückt geht es nicht weiter. Erst bei Auslösen eines Events. Dann wird der Stopbutton gelesen (er ist wieder ungedrückt), die Schleife hängt allerdings jetzt wieder beim nächsten Warten auf Event fest (bevor sie sich beenden kann). Man muss wirklich 2 mal das Event auslösen um das Ding zu stoppen. Wenn man mit einer Stacked Sequenz das Stopterminal nach der Eventstruktur platziert muss man nur einmal das Zahlen ändern Event auslösen.

Zum Zahlenwert:
Schleife läuft, Zahlenwert wird gelesen. Schleife wartet auf Event. Event findet statt. Am Eingang steht aber jetzt leider der alte gelesene Zahlenwert. Deshalb hinkt das ganze immer einen Wert hinterher. Allerdings steht der richtige Zahlenwert immerhin im Eventcase in "NewValue".


Eventhandling - Bedienelemente außerhalb oder innerhalb? - Achim - 16.06.2010 05:39

' schrieb:Also wenn man eine Messreihe mit Eventhandling starten will, dann startet man in dem Eventcase einfach irgendein anderes paralleles Loop, das die eigentliche "Messarbeit" übernimmt?

Jep!

Such mal hier im Forum oder in der NI Developer Zone nach "State Machine" und "Producer-Consumer"....


Eventhandling - Bedienelemente außerhalb oder innerhalb? - dimitri84 - 16.06.2010 07:05

Datenerfassung - Eventgesteuert, geht auch. Hier wurde kurz drüber gesprochen.

Zitat:gemäß dem Beispiel Acq&Graph Voltage-Int Clk-EveryN&DoneEvent.vi



Eventhandling - Bedienelemente außerhalb oder innerhalb? - Lucki - 16.06.2010 08:17

' schrieb:Also alle Sachen in dem Hauptloop werden anscheinend gelesen, bevor das Eventhandling gestartet wird.
Richtig, und nichts ist einfacher als das zu ändern: Die "Sachen" müssen in den Ereigniscase rein

Zitat:Man muss wirklich 2 mal das Event auslösen um das Ding zu stoppen.
Lösung: Stop braucht ein eigenes Event. (Dafür kannst du dir das Event "Timeout" sparen, denn das findet sowieso nicht statt)

Hier dein geändertes Beispiel:
[attachment=27159]