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 

Eventstruktur Frage



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.2006, 18:03 (Dieser Beitrag wurde zuletzt bearbeitet: 03.07.2006 18:04 von Teutates.)
Beitrag #1

Teutates Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 73
Registriert seit: Nov 2004

7.1 Developer Suite inkl. Vision
2004
kA


Deutschland
Eventstruktur Frage
Angenommen ich habe eine Eventstruktur mit diversen Events bezogen auf Buttons usw...
Nun belege ich einen Eventcase zum Beispiel Messung starten mit einem Button dafür und es wird eine
Whileloop initialisiert wie kann ich jetzt trotzdem in diesem Falle im Event die Whileloop durch Benutzerinteraktion abbrechen. Problem ist das die Benutzerschnittstellen erst nach Ende des Eventcases abgefragt werden.

So wie im Bild mit der Property Node gehts ja schon mal nicht weil keine Abfrage des Buttons möglich ist


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
03.07.2006, 18:08
Beitrag #2

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
Eventstruktur Frage
' schrieb:Angenommen ich habe eine Eventstruktur mit diversen Events bezogen auf Buttons usw...
Nun belege ich einen Eventcase zum Beispiel Messung starten mit einem Button dafür und es wird eine
Whileloop initialisiert wie kann ich jetzt trotzdem in diesem Falle im Event die Whileloop durch Benutzerinteraktion abbrechen. Problem ist das die Benutzerschnittstellen erst nach Ende des Eventcases abgefragt werden.

So wie im Bild mit der Property Node gehts ja schon mal nicht weil keine Abfrage des Buttons möglich ist


das macht man am besten mit einer State-Machine, die durch eine Q gesteuert wird und 2 parallelen While-Schleifen. In der einen while-Schleife werden die Buttons über die Event-Struktur abgefragt, in der 2. While-Schleife werden die States aus der Queue abgearbeitet:

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.07.2006, 19:34
Beitrag #3

Teutates Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 73
Registriert seit: Nov 2004

7.1 Developer Suite inkl. Vision
2004
kA


Deutschland
Eventstruktur Frage
Danke schon mal für die Antwort, kannst Du mir ein ganz simples Beispiel geben hab noch nie in der Art was programmiert mit Warteschlangen falls Du Zeit hast. Keine Ahnung so in der Art die eine Whileloop addiert immer eins dazu und der Wert wird angezeigt die Andere fragt den Button Stop ab oder so in Art.
Um den Rest gehts die Sache zu synchronisieren. Wenn nicht auch kein Ding muss ich mich dann mal reinfuchsen.

' schrieb:das macht man am besten mit einer State-Machine, die durch eine Q gesteuert wird und 2 parallelen While-Schleifen. In der einen while-Schleife werden die Buttons über die Event-Struktur abgefragt, in der 2. While-Schleife werden die States aus der Queue abgearbeitet:
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.07.2006, 20:17
Beitrag #4

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Eventstruktur Frage
' schrieb:Problem ist das die Benutzerschnittstellen erst nach Ende des Eventcases abgefragt werden.
Falsch: Das ist nur dann der Fall, wenn Du im Bearbeitunsmenue für das betreffende Ereignis das Häkchen "Frontpanel bis zum Ausführen des Ereignis Case sperren" gesetzt hast. Standardmäßig ist das der Fall. Also einfach das Häckchen wegnehmen und alles läuft so wie Du es Dir wünschst.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.07.2006, 21:26
Beitrag #5

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
Eventstruktur Frage
' schrieb:Danke schon mal für die Antwort, kannst Du mir ein ganz simples Beispiel geben hab noch nie in der Art was programmiert mit Warteschlangen falls Du Zeit hast. Keine Ahnung so in der Art die eine Whileloop addiert immer eins dazu und der Wert wird angezeigt die Andere fragt den Button Stop ab oder so in Art.
Um den Rest gehts die Sache zu synchronisieren. Wenn nicht auch kein Ding muss ich mich dann mal reinfuchsen.

ich hab dir mal eine ganz einfache State-Machine erstellt, die auf Queues (String) basiert. In der oberen While-Schleife läuft die Event-Struktur, die jedesmal etwas in die Q schiebt, wenn ein Event eintritt. In der unteren While-Schleife wird die Q ausgelesen und wenn die Case-Struktur mit dem String was anfangen kann, die entsprechende Aktion ausgeführt.

In dem Beispiel läuft das so: du drückst auf den STOP-Button, die Eventstruktur merkt das und schiebt den String "Stop" in die Q. In der unteren While-Schleife wird der String aus der Q rausgeholt und "verarbeitet", sprich im Case "Stop" wird die untere While-Schleife ebenfalls angehalten.

   

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.07.2006, 22:35
Beitrag #6

Teutates Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 73
Registriert seit: Nov 2004

7.1 Developer Suite inkl. Vision
2004
kA


Deutschland
Eventstruktur Frage
Thanks an alle , werd das mal testen

Gruß
T.

' schrieb:ich hab dir mal eine ganz einfache State-Machine erstellt, die auf Queues (String) basiert. In der oberen While-Schleife läuft die Event-Struktur, die jedesmal etwas in die Q schiebt, wenn ein Event eintritt. In der unteren While-Schleife wird die Q ausgelesen und wenn die Case-Struktur mit dem String was anfangen kann, die entsprechende Aktion ausgeführt.

In dem Beispiel läuft das so: du drückst auf den STOP-Button, die Eventstruktur merkt das und schiebt den String "Stop" in die Q. In der unteren While-Schleife wird der String aus der Q rausgeholt und "verarbeitet", sprich im Case "Stop" wird die untere While-Schleife ebenfalls angehalten.

[attachment=28414:attachment]
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
04.07.2006, 12:28
Beitrag #7

Achim Offline
*****
*****


Beiträge: 4.222
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Eventstruktur Frage
Hi,

das mit der State Machine ist gut! Allerdings sollte man hier keine Strings verwenden, da besteht immer die Gefahr, dass man Schreibfehler macht. Besser wäre es, hier ein Enum als strikte Typdefinition zu erstellen, in dem die unterschiedlichen States ("Cases") definiert werden. Dieses Enum kann man dann direkt an eine Casestruktur anschließen, und es werden dann automatisch die erforderlichen Cases benannt. Mit einem Rechtsklick kann man dann auf der Struktur "Add Case for every value" alle definierten Fälle erzeugen. Ändert man dann den Namen eines Cases im TypDef, wird automatisch auch der entsprechende Case aktualisiert!

Die Enums kann man wie von i2dx gezeigt über ne Queue schicken, aber auch ein Schieberegister in ner Schleife funktioniert. Dann muss man das alles ein klein wenig anders aufbauen, aber man spart sich eine zweite Schleife. Aber das ist alles Geschmackssache...;-)

Gruss
Achim

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.07.2006, 09:11 (Dieser Beitrag wurde zuletzt bearbeitet: 05.07.2006 09:13 von Lucki.)
Beitrag #8

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Eventstruktur Frage
' schrieb:das mit der State Machine ist gut
Ja, die Maschine ist fantastisch, super, nur: in diesem Fall wird nun wirklich mit Kanonen auf Spatzen geschossen. Teutates wollte ganz simpel eine While-Schleife innerhalb eines Ereignis-Cases durch Benutzeraktion abbrechen, und das funktionierte einfach deshalb nicht, weil dazu eine kleines Häkchen im Bearbeitungsmodus diese Ereigniscases, welches das Frontpanel sperrt, hätte entfernt werden müssen:
   
Im Anhang ein Beispiel, wie es funktioniert.


Angehängte Datei(en)
Sonstige .vi  Ereignis.vi (Größe: 12,47 KB / Downloads: 170)
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
  Eventstruktur im SubVI - Datenaustausch TpunktN 5 2.866 01.07.2021 07:15
Letzter Beitrag: Zelos
  Eventstruktur in Sub VI Ingo2 1 3.204 20.07.2015 13:27
Letzter Beitrag: GerdW
  Eventstruktur mit 2 Events Großer_Stein 3 3.757 11.06.2015 10:11
Letzter Beitrag: Großer_Stein
  Eventstruktur lola2014 12 8.526 26.01.2015 16:28
Letzter Beitrag: GerdW
  Wert aus Eventstruktur creo_123 22 13.253 05.11.2013 21:45
Letzter Beitrag: GerdW
  Stop während Eventstruktur am laufen ist haydenfan 5 5.437 05.11.2013 09:50
Letzter Beitrag: haydenfan

Gehe zu: