LabVIEWForum.de
Event Structure mit Boolean True triggern - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Event Structure mit Boolean True triggern (/Thread-Event-Structure-mit-Boolean-True-triggern)



Event Structure mit Boolean True triggern - HotProp - 03.07.2015 19:13

Hallo Werte LabView Gemeinde,

ich hätte ein Frage bezüglich Event Structure's. Und zwar möchte ich (siehe anhängendes Test VI) eine Event Structure mit einem Boolean True Signal Triggern. Nun weiß ich aber nicht genau wie ich das anstellen soll. Das Problem ist, dass wenn ich als Event einen "Value Change" verwende, triggert er mir das Event auch wenn er beim Start des Programms auf False springt. Er bewertet dies quasi bereits als den ersten Value Change. Ich möchte aber dass die Struktur nur ausgeführt wird wenn ein True anliegt!

Hat einer von euch eine Idee wie das in den Griff zu bekommen ist?

Danke für ihre Hilfe

Gruß

HotProp


RE: Event Structure mit Boolean True triggern - GerdW - 03.07.2015 20:48

Hallo HotProp,

Zitat:Das Problem ist, dass wenn ich als Event einen "Value Change" verwende,
Einen ValueChange wovon? Etwa von dem STOPP-Button wie im VI?

Zitat:triggert er mir das Event auch wenn er beim Start des Programms auf False springt.
Wo springt beim Start irgendwas auf FALSE?
Wo wird irgendetwas "getriggert"?

Zitat:Er bewertet dies quasi bereits als den ersten Value Change.
Wenn ich dein VI debugge, sehe ich kein ValueChange-Event…

Zitat:Ich möchte aber dass die Struktur nur ausgeführt wird wenn ein True anliegt!
Von welcher "Struktur" ist jetzt die Rede?
Wenn etwas von einer Bedingung abhängig sein soll, verwendet man üblicherweise eine Case-Struktur: die sehe ich im VI nirgends…

Leider passt deine Problembeschreibung nicht zum gezeigten VI. Bitte formuliere deine Frage so, dass man sie auch versteht… Hmm

Anmerkungen zum VI:
- Deine Eventstruktur hat keinen TimeOut, da ist die parallele Verwendung einer Wait-Funktion eher sinnlos…
- Wozu eine Schleife, wenn es NIE zu einer zweiten Iteration kommen kann? Hmm
- Du willst doch nicht etwa ein Event erzeugen, indem du in die lokale Variable von "Stop" schreibst? So geht das nicht! Bitte einfach mal die LV-Hilfe zur Eventstruktur lesen und dort auf den Link zu "Warnungen und Hinweise zur Arbeit mit Ereignissen in LabVIEW" achten. Und dann den Satz "Ereignisse der Benutzeroberfläche entstehen nur durch einen Bedienschritt seitens des Benutzers." ganz genau überdenken!


RE: Event Structure mit Boolean True triggern - HotProp - 03.07.2015 21:07

(03.07.2015 20:48 )GerdW schrieb:  Hallo HotProp,

Zitat:Das Problem ist, dass wenn ich als Event einen "Value Change" verwende,
Einen ValueChange wovon? Etwa von dem STOPP-Button wie im VI?

Zitat:triggert er mir das Event auch wenn er beim Start des Programms auf False springt.
Wo springt beim Start irgendwas auf FALSE?
Wo wird irgendetwas "getriggert"?

Zitat:Er bewertet dies quasi bereits als den ersten Value Change.
Wenn ich dein VI debugge, sehe ich kein ValueChange-Event…

Zitat:Ich möchte aber dass die Struktur nur ausgeführt wird wenn ein True anliegt!
Von welcher "Struktur" ist jetzt die Rede?
Wenn etwas von einer Bedingung abhängig sein soll, verwendet man üblicherweise eine Case-Struktur: die sehe ich im VI nirgends…

Leider passt deine Problembeschreibung nicht zum gezeigten VI. Bitte formuliere deine Frage so, dass man sie auch versteht… Hmm

Anmerkungen zum VI:
- Deine Eventstruktur hat keinen TimeOut, da ist die parallele Verwendung einer Wait-Funktion eher sinnlos…
- Wozu eine Schleife, wenn es NIE zu einer zweiten Iteration kommen kann? Hmm
- Du willst doch nicht etwa ein Event erzeugen, indem du in die lokale Variable von "Stop" schreibst? So geht das nicht! Bitte einfach mal die LV-Hilfe zur Eventstruktur lesen und dort auf den Link zu "Warnungen und Hinweise zur Arbeit mit Ereignissen in LabVIEW" achten. Und dann den Satz "Ereignisse der Benutzeroberfläche entstehen nur durch einen Bedienschritt seitens des Benutzers." ganz genau überdenken!

OK also das gezeigte VI soll eigentlich nichts anderes machen als über die Feedback-Schleife bis auf 10 Zählen. Dahinter ist ja der Vergleich geschalten welcher False liefert wenn die Bedingung nicht erfüllt ist und True wenn die Bedingung erfüllt ist. Wenn die Bedingung erfüllt ist soll das VI angehalten werden. Dazu ist die Event-Struktur da. als Event ist "Stop button Value Change" eingestellt. D.h. die Idee dahinter ist, dass wenn das Signal von False auf True springt wird diese ausgelöst.

Nun ist es aber so, dass das VI ja auch False als "Value" weitergibt. D.h. die Event-Struktur registriert bereits beim ersten Durchlaufen der Feedbackschleife einen Value Change (von Garnichts auf False eben) und wird somit sofort ausgelöst. D.h. das VI zählt nur bis 2!

Was ich möchte, ist dass die Event-Struktur nur gestartet wird, wenn das Signal von False auf True springt!

Gruß

HotProp


RE: Event Structure mit Boolean True triggern - GerdW - 03.07.2015 21:14

Hallo HotProp,

Zitat:OK also das gezeigte VI soll eigentlich nichts anderes machen als über die Feedback-Schleife bis auf 10 Zählen.
Tut es aber nicht…

Zitat:Dahinter ist ja der Vergleich geschalten welcher False liefert wenn die Bedingung nicht erfüllt ist und True wenn die Bedingung erfüllt ist. Wenn die Bedingung erfüllt ist soll das VI angehalten werden.
Dann schließe doch dort einfach den STOP-Anschluss der While-Loop an…

Zitat:Dazu ist die Event-Struktur da.
Wozu soll die Eventstruktur hier nötig sein?

Zitat: als Event ist "Stop button Value Change" eingestellt. D.h. die Idee dahinter ist, dass wenn das Signal von False auf True springt wird diese ausgelöst.
Tut es aber so nie, wie ich durch Verweis auf die LV-Hilfe schon geschrieben habe!
Es wird nur auf User-Aktionen auf dem FP reagiert! Oder auf spezielle "Value (Sgl)"-Propertynodes…

Zitat:Nun ist es aber so, dass das VI ja auch False als "Value" weitergibt. D.h. die Event-Struktur registriert bereits beim ersten Durchlaufen der Feedbackschleife einen Value Change (von Garnichts auf False eben) und wird somit sofort ausgelöst. D.h. das VI zählt nur bis 2!
Falsch: Es wird nur ein Wert in eine lokale Variable geschrieben!
Falsch: Es wird kein Event registriert!
Falsch: Es wird nicht "sofort" ein Event ausgeführt!
Schau dir dein VI doch einfach mal mit aktiviertem Highlighting an…


RE: Event Structure mit Boolean True triggern - HotProp - 04.07.2015 00:07

(03.07.2015 21:14 )GerdW schrieb:  Hallo HotProp,

Zitat:OK also das gezeigte VI soll eigentlich nichts anderes machen als über die Feedback-Schleife bis auf 10 Zählen.
Tut es aber nicht…

Zitat:Dahinter ist ja der Vergleich geschalten welcher False liefert wenn die Bedingung nicht erfüllt ist und True wenn die Bedingung erfüllt ist. Wenn die Bedingung erfüllt ist soll das VI angehalten werden.
Dann schließe doch dort einfach den STOP-Anschluss der While-Loop an…

Zitat:Dazu ist die Event-Struktur da.
Wozu soll die Eventstruktur hier nötig sein?

Zitat: als Event ist "Stop button Value Change" eingestellt. D.h. die Idee dahinter ist, dass wenn das Signal von False auf True springt wird diese ausgelöst.
Tut es aber so nie, wie ich durch Verweis auf die LV-Hilfe schon geschrieben habe!
Es wird nur auf User-Aktionen auf dem FP reagiert! Oder auf spezielle "Value (Sgl)"-Propertynodes…

Zitat:Nun ist es aber so, dass das VI ja auch False als "Value" weitergibt. D.h. die Event-Struktur registriert bereits beim ersten Durchlaufen der Feedbackschleife einen Value Change (von Garnichts auf False eben) und wird somit sofort ausgelöst. D.h. das VI zählt nur bis 2!
Falsch: Es wird nur ein Wert in eine lokale Variable geschrieben!
Falsch: Es wird kein Event registriert!
Falsch: Es wird nicht "sofort" ein Event ausgeführt!
Schau dir dein VI doch einfach mal mit aktiviertem Highlighting an…

Das VI erfüllt gar keinen tieferen Sinn, da es wie gesagt nur zum Testen ist! Ich brauche das für ein Anderes VI. Und das mit aktiviertem Highlighting hab ich schon gemacht. Und wenn ich das VI ausführe, registriert es wie gesagt bereits zu beginn ein Event.


RE: Event Structure mit Boolean True triggern - GerdW - 04.07.2015 08:47

Hallo HotProp,

Zitat:Und das mit aktiviertem Highlighting hab ich schon gemacht. Und wenn ich das VI ausführe, registriert es wie gesagt bereits zu beginn ein Event.
Falsch: es wird kein Event "registriert".
Wenn du mir immer noch nicht glaubst: pack eine Sonde in die Eventstruktur und schaue, wann der Eventcase ausgeführt wird!


RE: Event Structure mit Boolean True triggern - Kiesch - 06.07.2015 12:19

Das Problem scheitert hier scheints am Verständnis der Eventstruktur:

Die Eventstruktur wartet auf Ausführung und wird erst dann ausgeführt, wenn auch wirklich ein event stattfindet (in deinem Fall gibt es nur ein Stopp event also wird nur beim Stoppen einmal die event struktur ausgeführt).

Da allerdings die Eventstruktur in der Schleife sitzt, heist das, dass die ebenfalls nur dann einmal fertig ausgeführt wird, wenn du stopp drückst.

Das auf zwei gezählt wird, hat damit zu tun, dass du den Rückkopplungsknoten mit 1 initalisierst, vor dem ersten durchlauf der Wert in der Leitung auf 2 erhöht wird und erst die Leitung an den Ausgang weitergeht am besten mal Schritt für Schritt Ausführung machen und vorher an jede Leitung Sonden packen, dann siehst du wann wo Werte anliegen. Im Highlighting Modus sollte mans an sich auch sehen.
Du solltest übrigens eventuell nicht double als Datentyp nehmen und dann vergleichen. Das sollte hier zwar nicht schiefgehen, aber es kann. Hier wäre integer angebracht.

tl;dr; Die Eventstruktur prüft nicht (wie du annimmst) ob ein Event stattgefunden hat, sondern wartet bis eins stattfindet.

*edit* Achja, per Property node ist es möglich ein Event auch vom Blockdiagram zu triggern. Warum du allerdings in deiner kurzen Versuchsanordnung nicht einfach den den Ausgang des Vergleichs weiterverdrahtest erschließt sich mir nicht.