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 

Dieses Thema hat akzeptierte Lösungen:

In Ereignisstruktur "gefangen"?



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!

27.02.2015, 15:55
Beitrag #1

tsa Offline
LVF-Grünschnabel
*


Beiträge: 23
Registriert seit: Feb 2015

2015
2015
DE


Deutschland
In Ereignisstruktur "gefangen"?
Hallo liebes Labviewforum!

Ich würde Hilfestellung bei folgendem Problem benötigen:

Ich habe ein einfaches Programm mit 3 Buttons: Messung Start, Stop, Einstellungen

"Start" und "Einstellungen" Wertänderungen werden von einer Ereignisstruktur behandelt. Bei Druck auf Einstellungen erscheint ein Dialog (derzeit modal).

Das Problem ist nun folgendes: Beim drücken auf Messung start wird eine Whileschleife in der Ereignisstruktur gestartet, die kontinuierlich Messdaten aufzeichnet. Wenn ich nun Einstellungen ändern möchte, ist das erst möglich nachdem die Whileschleife mit dem Stop Button beendet wurde, also die ereignisstruktur verlassen wurde und die Wertänderung vom Einstellungsbutton aus der Queue abgearbeitet wird.

Ich habe schon an eine Ereignisstruktur in der Messwhileschleife gedacht, allerdings wird das dann stark unübersichtlich, außerdem müsste dann beim Beenden der Whileschleife die Wertänderung des Einstellungenklicks nicht bearbeitet werden, sonst würde ja nach Druck auf Stop direkt nocheinmal der Einstellungsdialog kommen.

Wie ist das am besten lösbar? Gleichzeitig sollte die Messung weiterlaufen, wenn der Dialog offen ist.

Besten Dank und schönes Wochenende,
tsa
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
27.02.2015, 15:59
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: In Ereignisstruktur "gefangen"?
Hallo tsa,

Zitat:Beim drücken auf Messung start wird eine Whileschleife in der Ereignisstruktur gestartet, die kontinuierlich Messdaten aufzeichnet.
Schlecht. Die Events in einer Eventstruktur sollten schnell (innerhalb von Millisekunden) abgearbeitet werden. Siehe Hilfe zur Eventstruktur!

Zitat:Wenn ich nun Einstellungen ändern möchte, ist das erst möglich nachdem die Whileschleife mit dem Stop Button beendet wurde, also die ereignisstruktur verlassen wurde und die Wertänderung vom Einstellungsbutton aus der Queue abgearbeitet wird.
THINK DATAFLOW! Das nächste Event kann erst abgearbeitet werden, nachdem der aktuelle Eventcase fertig ist…

Zitat:Ich habe schon an eine Ereignisstruktur in der Messwhileschleife gedacht
Das macht die Sache nicht besser: auch hier muss die Eventstruktur darauf warten, dass sie an die Reihe kommt…

Zitat:Wie ist das am besten lösbar?
Parallele Schleifen für UI-Handling und Messung!

Zitat:Gleichzeitig sollte die Messung weiterlaufen, wenn der Dialog offen ist.
Dann erst recht parallele Schleifen!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.02.2015, 16:10 (Dieser Beitrag wurde zuletzt bearbeitet: 27.02.2015 16:11 von tsa.)
Beitrag #3

tsa Offline
LVF-Grünschnabel
*


Beiträge: 23
Registriert seit: Feb 2015

2015
2015
DE


Deutschland
RE: In Ereignisstruktur "gefangen"?
(27.02.2015 15:59 )GerdW schrieb:  
Zitat:Wie ist das am besten lösbar?
Parallele Schleifen für UI-Handling und Messung!

Zitat:Gleichzeitig sollte die Messung weiterlaufen, wenn der Dialog offen ist.
Dann erst recht parallele Schleifen!

Ich nehme einfach mal an, dass damit zwei parallele Whileschleifen gemeint sind! Die Sache ist die, dass in der Messschleife auch die Aktualisierung des Anzeigegraphen passiert, und der braucht die Informationen, welche im Dialog in der anderen Whileschleife gesetzt wurden. Die Frage ist nun, wie bring ich die Informationen in die andere Whileschleife rüber? Mir fallen jetzt auf die schnelle Variablen ein, welche jedoch von allen Labview benutzern die ich bis jetzt kennen lernen durfte absolut verteufelt werden, weil sie nicht dem Datenflussprinzip entsprechen.

Bezüglich seperate UI und Messbehandlung, ist damit gemeint, durch den Druck auf Messung start im Ereigniscase nur eine Art Flag zu setzen, welche dann die Messwhileschleife anwirft? Auch das wäre eine verletzung des Datenflussprinzips

Gruß tsa
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.02.2015, 16:14
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: In Ereignisstruktur "gefangen"?
Hallo tsa,

Zitat:Ich nehme einfach mal an, dass damit zwei parallele Whileschleifen gemeint sind!
Ja.

Zitat:Die Frage ist nun, wie bring ich die Informationen in die andere Whileschleife rüber?
Von mir aus auch lokale Variablen, aber schön ist das nicht. Und sobald du dein MainVI in zwei subVIs teilst, kannst du keine lokalen Variablen mehr nehmen…
Es gibt da:
- globale Variablen (nicht viel besser als lokale)
- Melder
- Queues
- FGVs aka ActionEngines

Zitat:Bezüglich seperate UI und Messbehandlung, ist damit gemeint, durch den Druck auf Messung start im Ereigniscase nur eine Art Flag zu setzen, welche dann die Messwhileschleife anwirft? Auch das wäre eine verletzung des Datenflussprinzips
Wieso sollte es den DATAFLOW beleidigen, wenn du für dein Flag einen Melder verwendest?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.02.2015, 16:27
Beitrag #5

tsa Offline
LVF-Grünschnabel
*


Beiträge: 23
Registriert seit: Feb 2015

2015
2015
DE


Deutschland
RE: In Ereignisstruktur "gefangen"?
(27.02.2015 16:14 )GerdW schrieb:  Wieso sollte es den DATAFLOW beleidigen, wenn du für dein Flag einen Melder verwendest?

Ich muss mir das mit dem Melder genauer anschauen, aber das klingt doch nach einer Variable, die z.B. von False auf True umgeschalten wird und damit zB ne Schleife anwirft Blush
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.02.2015, 19:00
Beitrag #6

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: In Ereignisstruktur "gefangen"?

Akzeptierte Lösung

(27.02.2015 16:27 )tsa schrieb:  Ich muss mir das mit dem Melder genauer anschauen, aber das klingt doch nach einer Variable, die z.B. von False auf True umgeschalten wird und damit zB ne Schleife anwirft Blush
Kann man so sehen, bloß dass ein Notifier beim VI "Wait on Notification" das Warten auf ein Ereignis übernimmt. So müsste man selber dauernd pollen, um eine Wertänderung zu erkennen.

Gruß, Jens

P.S.: Vorlagen sind unter File->New...->From Template->Frameworks->Design Patterns zu finden, z.B. Master/Slave oder Producer/Consumer.

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
03.03.2015, 08:42 (Dieser Beitrag wurde zuletzt bearbeitet: 03.03.2015 09:27 von tsa.)
Beitrag #7

tsa Offline
LVF-Grünschnabel
*


Beiträge: 23
Registriert seit: Feb 2015

2015
2015
DE


Deutschland
RE: In Ereignisstruktur "gefangen"?
(27.02.2015 19:00 )jg schrieb:  P.S.: Vorlagen sind unter File->New...->From Template->Frameworks->Design Patterns zu finden, z.B. Master/Slave oder Producer/Consumer.

Hallo Jens, Danke für den Hinweis mit den Vorlagen, ich habe das ganze jetzt mit Queues gelöst, offensichtlich kann die Queue Datenleitung Informationen in gerade laufende Whileschleifen "einschleusen" :-)

Anbei ein Screenshot des Schaltbilds, falls jemand ein ähnliches Problem hat.
Die untere Verbraucherschleife führt sozusagen eine Messung durch (erhöht Wert um 1), wenn der Button "Enqueue Element" gedrückt wird, öffnet sich ein Dialog wo eine Zahl ausgewählt werden kann (z.B. 1000)
Die Messung in der Verbraucherschleife läuft weiter, sobald der modale Dialog geschlossen wird, wird die ausgewählte Zahl zur Messung hinzuaddiert!

Viele Grüße,
tsa


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.03.2015, 09:04
Beitrag #8

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: In Ereignisstruktur "gefangen"?
Hallo tsa,

du kannst auf GetQueueStatus verzichten, wenn du den TimeOut des Dequeue auswerten würdest…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.03.2015, 09:28
Beitrag #9

tsa Offline
LVF-Grünschnabel
*


Beiträge: 23
Registriert seit: Feb 2015

2015
2015
DE


Deutschland
RE: In Ereignisstruktur "gefangen"?
(03.03.2015 09:04 )GerdW schrieb:  du kannst auf GetQueueStatus verzichten, wenn du den TimeOut des Dequeue auswerten würdest…

Hallo GerdW, vielen Dank für den Hinweis, habs im Schaltbild ausgebessert! :-)
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
  Serielle Ereignisstruktur-Variablen in Ereignisstruktur übergeben Hummingbird 15 15.720 02.11.2011 16:13
Letzter Beitrag: Hummingbird

Gehe zu: