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 

Problem Ereigniststruktur/ Ereignisqueue ?



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!

19.02.2009, 18:23
Beitrag #1

LLEA2 Offline
LVF-Grünschnabel
*


Beiträge: 37
Registriert seit: Jan 2008

8.5
2008
kA

10777
Deutschland
Problem Ereigniststruktur/ Ereignisqueue ?
Hallo zusammen,

ich habe sehr komisches Problem. Ich habe eine StateMachine u.a. mit einem Zustand/Case "manueller Modus" und "Setup". Der Rahmen für den manuellen Modus verfügt über 7 Ereignistrukturen, die jeweils von einer While-Schleife und einem Case-Rahmen umgeben sind. Per globaler Variabel werden die Case-Rahmen und somit die Ereignisttrukturen aktiviert oder deaktiviert, also einfach im False-Case nichts weiter ausgeführt. Die Ereignistrukturen haben jeweils spezifische Ereignisse auf die sie warten und dann einige auf die alle Ereignisstrukturen warten, z.b. das Auslösen des Setup-Buttons, der dann dazu führt, dass alle While-Schleifen beendet werden und in den Setup-Modus der StateMachine gewechselt wird. und anschließend wieder in den manuellen Modus zurückkehrt. Das klappt dann beliebig oft hin und her, wenn die globalen Variabeln schon bei Programmstart auf true stehen und somit bestimmte Ereignistrukturen aktiviert sind. In diesem Fall kann ich beliebig oft Ereignisse abfangen und den entsprechen Code ausführen lassen. Dies geht jedoch nicht, wenn ich während der Laufzeit in den Setup-Modus gehe und dort nachträglich nicht irgendwelche Parameter bereits aktivierter Ereignisrahmen verändere, sondern per Variabel einen weitere Ereignisstruktur aktivierre. Jetzt puffert er die Ereignisse auf eine seltsame Art und Weise zwischen. Ich drücke auf einen Button und das entsprechende Ereignis wird erst ausgelöst, wenn ich 1, 2 oder 3-mal zwischen dem Setup und manuellen Modus wechsele. Im Debugging Modus sieht man das ganz gut, dann werden die Ereignisse nicht nur zeitliche versetzt, sondern auch manchmal durcheinander ausgeführt oder die Ereignistruktur initialisiert sich nach dem Wechsel zurück in den manuellen Modus im zuletzt ausgeführten Ereignisrahmen, z.b. dem des Setup-Buttons und beendet demnach einfach die umliegende While-Schleife. Hat jemand hierfür eine Erklärung oder einen Hinweis. Werden die Ereignisse intern zwischengepuffert. Ich dachte es wird registriert oder verfällt.

Ich hoffe, dass mit jemand von euch weiterhelfen kann.

mfg
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.02.2009, 19:22
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Problem Ereigniststruktur/ Ereignisqueue ?
Verstehe ich richtig, viele Event-Structures in einem VI? Und dann auch noch in mehreren States einer State-Machine?

Überdenke eine Programmstruktur, sowas macht praktisch immer Probleme.

Die Empfehlung aller erfahrenen LV-Programmierer lautet: Nur EINE Event-Struktur pro VI (auch wenn in der LV-Hilfe was von 1 Event-Structure pro Loop steht). Das vermeidet Ärger, so wie du ihn jetzt beschreibst.

Gruß, Jens

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
Antwort schreiben 


Gehe zu: