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 

Verhalten von Ereignisstrukturen



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!

29.05.2012, 14:38 (Dieser Beitrag wurde zuletzt bearbeitet: 29.05.2012 14:41 von Takuro.)
Beitrag #1

Takuro Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 122
Registriert seit: May 2011

2010 SP1
2011
DE

31177
Deutschland
Verhalten von Ereignisstrukturen
Hallo,

ich räume gerade mein Programm auf. Bisher habe ich mich vor Ereignisstrukturen gedrückt, alles irgendwie umgangen. Nun habe ich Schieberegister und Drähte, die über 10 Bildschirme breit miteinander verbunden sind und nur in jedem 50000 Schleifendurchlauf mal benutzt werden. Daher möchte ich diese jetzt durch lokale Variabeln und Ereignisstrukturen ersetzten.

Wenn ich das richtig verstanden habe, dann wird jeweils nur ein Element aus den vielen Ereignissen verarbeitet. Also wenn Ich Button 1 - 5 in einer Ereignisstruktur unterbringe, welche in einer Schleife sitzt, würde jeweils nur ein Klick verarbeitet werden, der Erste.

Was passiert mit den anderen Klicks? Wird beim nächsten Schleifendurchlauf dann das zweite Eregniss abgearbeitet? Ergibt sich sozusagen ein Puffer?

Noch irgendwelche Hinweise/Tutorials, was ich bei Ereignissen beachten muss?

Ich überlege, ob ich die Verzögerung der While-Schleife, welche um die Ereignisstruktur ist, nicht entfernen kann und dies über die Timeout-Zeit der Ereignisstruktur steuere. Der einzige Unterschied wäre doch, dass bei einem Ereignis die While Schleife schnell ein zweites Mal ausgeführt wird. Löst das vllt schon das Problem mit dem Puffer?

Grüße,

Takuro

Neu, aber motiviert. Nehme immer gern Verbesserungsvorschläge an!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
29.05.2012, 14:55
Beitrag #2

Soean Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 140
Registriert seit: Sep 2010

2012
2009
EN


Deutschland
RE: Verhalten von Ereignisstrukturen
Du solltest generell versuchen mit so wenigen lokalen Variablen wie möglich auszukommen. Um was für ein Programm handelt es sich? Ist eine Event-Structure wirklich sinnvoll? Hast auch einmal in Erwägung gezogen, dein auf mehrere Bildschimgrößen verteiltes Programm in einer State-Machine unter zu bringen?

Gruß,

Soean
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.05.2012, 15:12
Beitrag #3

chrissyPu Offline
LVF-Stammgast
***


Beiträge: 467
Registriert seit: Jun 2006

2014 PDS
2006
DE_EN

64283
Deutschland
RE: Verhalten von Ereignisstrukturen
Hi,
Die Beschreibung von 10 Bildschirmseiten lässt sich bei mir auch die Fußnägel hochrollen, aber um Deine Frage zu beantworten:

Es gibt eine Ereignis-Queue, wenn ich also für fünf Buttons Ereignisse definiere und davon drei drücke, werden die auch nacheinander abgearbeitet. Auf diese Ereignis-Queue kann man meines Wissens nach und auch nach Auskunft eines NI-Trainers NICHT zugreifen, sprich, wenn ich gedrückt habe, läuft das ganze auch entsprechend durch. Abhilfe kann man mit der Kombination "Frontpanel-Aktivitäten während Event-Ausführung deaktivieren" (Haken im Event-Konfigurationsmenü recht weit unten, meine ich) und entsprechenden Aktivierungen und Deaktivierungen der Knöpfe im Event-Case realisieren.

Zu den Tipps und Erfahrungen nur folgendes:
- Den Anschluss des Bedienelements möglcihst in den Event-Case reinpacken, wo das auch bearbeitet wird - das macht das ganze ein bisschen zuverlässiger, wenn man mit Click-Events arbeitet. Parallele, nicht deterministische Programmabarbeitung in LV und so...
- Ich persönlich bin großer Fan von State-Machines mit einem Event-Case, der die entsprechende Programfunktion steuert und halt für jede Funktion einen eigenen State hat. Könnte Deine 10 Bildschirmseiten auflösen Wink und dann kann man sich auch tatsächlich das Wait in der While-Schleife sparen. Falls die einzelnen Programmteile an sich recht simpel sind (also nur von einer Konfiguration abhängen) und man diese ggf. auch mehrfach nutzen möchte, sind Queued State Machines eine coole Sache, weil man dann einfach mehrere Dinge nacheinander programmieren kann und m.E. die Fehlerbehandlung einfacher zu machen ist, weil man an jeder STelle an jede Stelle des Programms springen kann, ohne sich die vorherigen Zustände merken zu müssen. Geht in der State Machine nur kompliziert...

Grüße und viel Spaß,

ch
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.05.2012, 16:11 (Dieser Beitrag wurde zuletzt bearbeitet: 29.05.2012 16:13 von Lucki.)
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
RE: Verhalten von Ereignisstrukturen
Die fortschrittlichste Architektur überhaupt - von ch schon angedeuted - ist die Event-driven queued State-machine, siehe hier. Wenn Du alles noch mal überarbeitest, würde ich an Deiner Stelle so etwas machen.
Wenn man sich mit dem Backen kleinerer Brötchen begnügt, gibt es erst mal drei Möglichkeiten, wie man die Event-Struktur platziert:
1) in einer Schleife parallel zur Haupschleife (Timout = -1, unendlich)
2) In der Hauptschleife (wenn Wait in der Hauptschleife erforderlich, dann als Timout der Eventstruktur).
2a) Das ganze Hauptprogramm im Timeout-case der Eventstruktur ausführen
2b) Das Hauptprogramm außerhalb außerhalb der Event-Struktur ausführen, Timeout-Case bleibt leer.

Jedes hat sein Vor-und Nachteile bzw. Eigenheiten. Meine eigenen Preferenzen entsprechen der genannten Reihenfolge.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.05.2012, 16:51
Beitrag #5

Takuro Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 122
Registriert seit: May 2011

2010 SP1
2011
DE

31177
Deutschland
RE: Verhalten von Ereignisstrukturen
Es handelt sich um die Steurung eines Messstandes. Im Groben das Ansprechen und Abfragen von 2 Analysatoren, mehrere Sensoren in einem Reaktor, Steuerung von 3 Volumenströmen und Beleuchtung. Dazu halt Datensicherung und entsprechende Automatisierung der Anlage. Sprich anmachen, diverse Messparametersätze vorgeben und dann in 2 Wochen wiederkommen.

Das ganze läuft in Schleife, in der noch ein Case Fall sitzt, welcher nur aktiv wird, wenn die Messung gestartet wird. Die Parametereingabe usw läuft bisher parallel zum Case Fall in der Schleife. (Ich hoffe es ist so klar, sonst mach ich nochmal ne Skizze)

Ich steure im Case Fall nun über eine weitere Schleife die MEssung: Kontrolle der Volumenströme, Verarbeitung der MEssdaten usw.

Das ganze besteht halt schon aus Recht vielen Drähten. Und da ich immer fleißig den Aufräumenbutton nutze, der mich aber nicht mag, hab ich nun auch einige Leerräume dazwischen. Deswegen 10 Seiten. Deswegen nutze ich auch lokale Variabeln. Wenn ich ganz am Anfang der Messung etwas in die Header Dateischreibe und diesen Wert aber zum Rechnen für jeden Messwertsatz brauche, ist das sonst ein gewirr von Drähten. Hatte ich am Anfang, extrem unfreundlich zu lesen.

Und nun versuche ich halt weiter das zu vereinfachen und Übersichtlicher zu gestalten. Ich "kenne" zwar die Begriffe Staemaschine, Ereignisstruktur usw, hab aber null Ahnung davon. Dieses Prijekt ist leider auch mein erstes, sonst bin ich als Chemiker eher wenig damit bewandert...

Ich werde morgen mal den Link durcharbeiten. Falls noch jemand Erleuchtungen hat, gerne her damit. Smile

Danke schonmal,

Takuro

Neu, aber motiviert. Nehme immer gern Verbesserungsvorschläge an!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.05.2012, 07:26
Beitrag #6

Soean Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 140
Registriert seit: Sep 2010

2012
2009
EN


Deutschland
RE: Verhalten von Ereignisstrukturen
Offtopic2 Danke für den Link Lucki
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30.05.2012, 08:52 (Dieser Beitrag wurde zuletzt bearbeitet: 30.05.2012 08:55 von Takuro.)
Beitrag #7

Takuro Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 122
Registriert seit: May 2011

2010 SP1
2011
DE

31177
Deutschland
RE: Verhalten von Ereignisstrukturen
(29.05.2012 16:11 )Lucki schrieb:  Die fortschrittlichste Architektur überhaupt - von ch schon angedeuted - ist die Event-driven queued State-machine, siehe hier. Wenn Du alles noch mal überarbeitest, würde ich an Deiner Stelle so etwas machen.

Guten Morgen,

Wenn ich deinen Link richtig verstanden habe (sehr informativ und gut geschrieben!), dann eignet sich die State-Machine gut, wenn man mehrere verschiedene Abläufe hat, die alle in unterschiedlicher Reihenfolge mit unterschiedlichem Abstand aufgerufen werden können. Es kann also sein, dass der erste Task noch nicht fertig bearbeitet ist, während der zweite schon angewählt wird usw.

Dies ist bei mir jedoch nicht der Fall. Ich dachte bisher, ich nutze hier bewusst keine Puffer (ein Queue), da ich die parallele Datenverarbeitung von Labview nutzen möchte. Im Prinzip ist es mir völlig wurscht, ob er erst Analysator a oder b abfragt, wichtig ist nur, dass er jeden einmal anspricht bevor er einen das zweite Mal anspricht.

Könnt ihr mit diesen Informationen sagen, ob meine Einschätzung richtig ist, dass hier die State-Machine nicht sinnvoll ist? (Ich habe eine Übersicht angefügt.)

Bisher habe ich mich entschieden, die einzelnen Buttontätigkeiten vor der Messung durch eine Eventstruktur zu ersetzen, der Teil mit der Labelbeschriftung ist bereits in eine gewandert. Die Messprozedur kommt dann in das Event für den Button "Messung starten". Die Messung ansich bleibt aber dann parallel.

Ich hoffe auf Input. Smile Auf das VI hat sicher keiner Lust. Big Grin

Grüße,


Angehängte Datei(en) Thumbnail(s)
   

Neu, aber motiviert. Nehme immer gern Verbesserungsvorschläge an!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.05.2012, 10:37
Beitrag #8

M Nussbaumer Offline
Zarathustra
****


Beiträge: 654
Registriert seit: Sep 2009

2009 SP1
2009
EN

6300
Schweiz
RE: Verhalten von Ereignisstrukturen
(30.05.2012 08:52 )Takuro schrieb:  Ich hoffe auf Input. Smile Auf das VI hat sicher keiner Lust. Big Grin

Grüße,

Darf ich mir das VI mal ansehen? Big Grin Interessiert mich schon wie man auf 10 Bildschirmgrössen kommt und deine Fragen lassen sich auch besser beantworten mit einem praktischen Beispiel.

Gruss Marc
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.05.2012, 10:49
Beitrag #9

Takuro Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 122
Registriert seit: May 2011

2010 SP1
2011
DE

31177
Deutschland
RE: Verhalten von Ereignisstrukturen
Ich lad nur mal das Main VI hoch, die ganzen SubVis wären dann doch ein paar viele...

Man sieht ja trotzdem die Struktur.


Angehängte Datei(en)
10.0 .vi  Messstand.vi (Größe: 102,17 KB / Downloads: 372)

Neu, aber motiviert. Nehme immer gern Verbesserungsvorschläge an!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.05.2012, 11:32
Beitrag #10

M Nussbaumer Offline
Zarathustra
****


Beiträge: 654
Registriert seit: Sep 2009

2009 SP1
2009
EN

6300
Schweiz
RE: Verhalten von Ereignisstrukturen
(30.05.2012 10:49 )Takuro schrieb:  Ich lad nur mal das Main VI hoch, die ganzen SubVis wären dann doch ein paar viele...

Man sieht ja trotzdem die Struktur.

Ist passwortgeschütztBlush Aber versteh ich das grundsätzlich richtig, du stellst in den verschiedenen Tabs deine Messwerte dar welche durch unabhängige (Datenmässig) Messungen erfasst wurden?

Gruss Marc
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
  Instanzen identischer SubVi's, Verhalten unerklärbar studmt 5 4.957 22.07.2015 22:11
Letzter Beitrag: studmt
  komisches Verhalten bei Verbindung mit Netzwerkpanels Lucius2 5 5.503 20.03.2014 13:11
Letzter Beitrag: Lucius2
  Unterschiedliches Verhalten bei Eingabe Hand vs. Maus Peter04 2 4.041 11.09.2010 12:12
Letzter Beitrag: Peter04
  Ereignisstrukturen verschachteln haiopei 12 11.124 26.08.2010 13:21
Letzter Beitrag: TSC
  FP verhalten gottfried 4 4.917 27.01.2010 17:13
Letzter Beitrag: gottfried
  Seltsames VI Verhalten abrissbirne 6 6.415 16.01.2009 13:34
Letzter Beitrag: rolfk

Gehe zu: