INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Event Structure mit Boolean True triggern



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!

03.07.2015, 19:13
Beitrag #1

HotProp Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: May 2015

2014
2014
DE_EN



Event Structure mit Boolean True triggern
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


Angehängte Datei(en)
14.0 .vi  EventTest.vi (Größe: 10,45 KB / Downloads: 255)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
03.07.2015, 20:48 (Dieser Beitrag wurde zuletzt bearbeitet: 03.07.2015 20:53 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Event Structure mit Boolean True triggern
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!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.07.2015, 21:07
Beitrag #3

HotProp Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: May 2015

2014
2014
DE_EN



RE: Event Structure mit Boolean True triggern
(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
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.07.2015, 21:14 (Dieser Beitrag wurde zuletzt bearbeitet: 03.07.2015 21:16 von GerdW.)
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Event Structure mit Boolean True triggern
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…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.07.2015, 00:07
Beitrag #5

HotProp Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: May 2015

2014
2014
DE_EN



RE: Event Structure mit Boolean True triggern
(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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.07.2015, 08:47 (Dieser Beitrag wurde zuletzt bearbeitet: 04.07.2015 08:47 von GerdW.)
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Event Structure mit Boolean True triggern
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!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.07.2015, 12:19 (Dieser Beitrag wurde zuletzt bearbeitet: 06.07.2015 12:22 von Kiesch.)
Beitrag #7

Kiesch Offline
LVF-Stammgast
***


Beiträge: 412
Registriert seit: Mar 2009

2019, 2018, 2016
2009
DE

04519
Deutschland
RE: Event Structure mit Boolean True triggern
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.

Zitat:Märchen und Geschichten werden erzählt am Lagerfeuer, technischen Fakten werden mitgeteilt (oder so). (Genauso wie Software nicht auf einem Server "herumliegt", die ist dort installiert.)
*Zitat: IchSelbst*
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Event Triggern über boolean Anzeige simcum 6 3.573 25.02.2023 14:57
Letzter Beitrag: simcum
  Mittelwert VI mit Boolean-Ausgang BlackEagle 6 5.469 18.01.2020 15:10
Letzter Beitrag: Lucki
  Boolean als globale Variable ares2013 12 11.368 06.09.2019 13:57
Letzter Beitrag: GerdW
  Boolean durch Array bedienen Gellerpa 3 5.079 07.06.2018 20:10
Letzter Beitrag: hansi9990
  Event Case Ignoriert Tastendruck wenn in Gegenwart eines anderen "Leeren" Event Case Ksanto 8 8.261 23.10.2017 09:08
Letzter Beitrag: Ksanto
  Nur Werte in Array wenn Case True PreVIEW 10 10.594 10.02.2017 15:25
Letzter Beitrag: Dalle

Gehe zu: