Ereignisstruktur
Правила форума
In unserem Forum ist es möglich Foren zu verbergen. Für jede Sprache gibt es eine Gruppe:
hide XXX forums
Wenn du also ein Forum in einer Sprache nicht sehen möchtest, dann musst du einfach in die richtige Gruppe(n) eintreten. Das kannst du in den Profileinstellungen machen.
In unserem Forum ist es möglich Foren zu verbergen. Für jede Sprache gibt es eine Gruppe:
hide XXX forums
Wenn du also ein Forum in einer Sprache nicht sehen möchtest, dann musst du einfach in die richtige Gruppe(n) eintreten. Das kannst du in den Profileinstellungen machen.
-
- junior
- Сообщения: 61
- Зарегистрирован: 14 янв 2009, 11:52
- Версия LabVIEW: 8.5
- Контактная информация:
Ereignisstruktur
Hallo zusammen,
bei mir ist mal wieder eine Frage aufgetaucht:
Ich habe ein Programm nach dem State-Machine-Prinzip aufgebaut. In einem Case ist eine Ereignisstruktur. Um diese Ereignisstruktur habe ich eine while-Schleife, damit das Ereignis mehrmals verarbeitet werden kann. Soweit klappt das auch ganz gut. Nur bleibt das Programm an der Stelle in der While-Schleife stecken und geht nicht ins nächste Case. Ist ja eigentlich auch ganz logisch, aber gibt es eine Möglichkeit, dass der nächste Case abgearbeitet wird und das Ereignis trotzdem wiederholt verarbeitet wird. ich hab auch schon probiert die Ereignisstrukur aus dem Case rauszunehmen, aber das funktioniert dann gar nicht mehr...
Kann mir jemand sagen wo mein Fehler liegt oder wie ich aus der while-Schleife ins nächste Case springen kann? Vielen Dank schonmal...
bei mir ist mal wieder eine Frage aufgetaucht:
Ich habe ein Programm nach dem State-Machine-Prinzip aufgebaut. In einem Case ist eine Ereignisstruktur. Um diese Ereignisstruktur habe ich eine while-Schleife, damit das Ereignis mehrmals verarbeitet werden kann. Soweit klappt das auch ganz gut. Nur bleibt das Programm an der Stelle in der While-Schleife stecken und geht nicht ins nächste Case. Ist ja eigentlich auch ganz logisch, aber gibt es eine Möglichkeit, dass der nächste Case abgearbeitet wird und das Ereignis trotzdem wiederholt verarbeitet wird. ich hab auch schon probiert die Ereignisstrukur aus dem Case rauszunehmen, aber das funktioniert dann gar nicht mehr...
Kann mir jemand sagen wo mein Fehler liegt oder wie ich aus der while-Schleife ins nächste Case springen kann? Vielen Dank schonmal...
-
- developer
- Сообщения: 265
- Зарегистрирован: 14 окт 2008, 00:09
- Награды: 1
- Версия LabVIEW: 8.x, 20x
Re: Ereignisstruktur
Hallo, wie soll diese While-Schleife jemals aufhören:
Gruß, Jens
Und gleich mal eine Warnung: Es führt praktisch IMMER zu unlösbaren Problemen, wenn man innerhalb eines VIs mehr als eine Event-Struktur verwendest.Gruß, Jens
-
- junior
- Сообщения: 61
- Зарегистрирован: 14 янв 2009, 11:52
- Версия LabVIEW: 8.5
- Контактная информация:
Re: Ereignisstruktur
Hi,
Dass die while-Schleife nicht aufhört und woran das liegt, das habe ich ja bemerkt. Deshalb war ja meine Frage, wie ich das hinkriegen könnte, dass sie aufhört und das Ereignis trotzdem nochmal bearbeitet werden kann.
Ich habe schon ausprobiert das Stopp-Teil an den Ausgang EOF vom Datei lesen zu hängen, aber des gibt auch ne Endlos-Schleife. Ein extra Button oder so würde ja eig auch gehen, aber ich glaube das verwirrt den Benutzer nur, wenn er noch die Schleife beenden muss um weiter zu kommen...
Aber ich bin grad am lernen, wie das mit einer queued statemachine so funktioniert...in meinem Buch ist da ein glaub ich ganz gutes Beispiel. Vielleicht komm ich ja dann auf ne bessere Lösung.
Grüßle
Dass die while-Schleife nicht aufhört und woran das liegt, das habe ich ja bemerkt. Deshalb war ja meine Frage, wie ich das hinkriegen könnte, dass sie aufhört und das Ereignis trotzdem nochmal bearbeitet werden kann.
Ich habe schon ausprobiert das Stopp-Teil an den Ausgang EOF vom Datei lesen zu hängen, aber des gibt auch ne Endlos-Schleife. Ein extra Button oder so würde ja eig auch gehen, aber ich glaube das verwirrt den Benutzer nur, wenn er noch die Schleife beenden muss um weiter zu kommen...
ich hab doch nur ein ereignis case...?Und gleich mal eine Warnung: Es führt praktisch IMMER zu unlösbaren Problemen, wenn man innerhalb eines VIs mehr als eine Event-Struktur verwendest.
Aber ich bin grad am lernen, wie das mit einer queued statemachine so funktioniert...in meinem Buch ist da ein glaub ich ganz gutes Beispiel. Vielleicht komm ich ja dann auf ne bessere Lösung.
Grüßle
-
- developer
- Сообщения: 265
- Зарегистрирован: 14 окт 2008, 00:09
- Награды: 1
- Версия LabVIEW: 8.x, 20x
Re: Ereignisstruktur
Naja, was soll an dieser Stelle passieren? Wartest du nur auf den einen Mausklick, und dass nur einmal? Dann brauchst du die While Schleife gar nicht, denn die wartet an dieser Stelle, bis eines der programmierten Events eintritt. Und wenn du nur dieses eine Maus-Event hast, dann wartet sie darauf.LauraS писал(а):Hi,
Dass die while-Schleife nicht aufhört und woran das liegt, das habe ich ja bemerkt. Deshalb war ja meine Frage, wie ich das hinkriegen könnte, dass sie aufhört und das Ereignis trotzdem nochmal bearbeitet werden kann.
Ich habe schon ausprobiert das Stopp-Teil an den Ausgang EOF vom Datei lesen zu hängen, aber des gibt auch ne Endlos-Schleife. Ein extra Button oder so würde ja eig auch gehen, aber ich glaube das verwirrt den Benutzer nur, wenn er noch die Schleife beenden muss um weiter zu kommen...
Oder du hängst in das Event eine True-Konstante rein und führst sie weiter an den Schleifen-Abbruch.
Das war als genereller Hinweis gedacht. Was meinst du, wie oft ich schon im LVF (labviewforum.de) solche Sachen gesehen habe:LauraS писал(а):ich hab doch nur ein ereignis case...?Und gleich mal eine Warnung: Es führt praktisch IMMER zu unlösbaren Problemen, wenn man innerhalb eines VIs mehr als eine Event-Struktur verwendest.
Sequenz, um eine Reihenfolge abzuarbeiten, und dann in jedem Sequenzrahmen eine Event-Struktur, weil der User an dieser Stelle genau eine Eingabe machen soll.
Und das geht praktisch immer in die Hose.
Also bitte erst gar nicht anfangen oder probieren! Lies dir hierzu auch am besten mal die Hilfe zur Event-Struktur durch. Da gibt es eine Sektion mit Hinweisen zur Anwendung der Event-Struktur, sollte man unbedingt befolgen!
Gruß, Jens
-
- junior
- Сообщения: 61
- Зарегистрирован: 14 янв 2009, 11:52
- Версия LabVIEW: 8.5
- Контактная информация:
Re: Ereignisstruktur
Hallo zusammen
eine Frage: Gibt es eine Möglichkeit, ohne eine extra Abfrage vor dem Beenden eines Programmes noch ein case abzuarbeiten? Also immer wenn das Programm beendet wird, sollen vorher noch Daten in einer Datei gespeichert werden. Allerdings soll das Ganze ohne Benutzereingabe oder so was passieren. Ich hab überlegt, ob es vielleicht über ein bestimmtes Ereignis möglich ist, hab aber bisher noch nichts konkretes gefunden...kann mir da jemand weiterhelfen?
Geht es vielleicht über das Ereignis "Applikationsinstanz schließen" als Filetereignis oder so?
Danke schon mal im Voraus...
Grüßle
eine Frage: Gibt es eine Möglichkeit, ohne eine extra Abfrage vor dem Beenden eines Programmes noch ein case abzuarbeiten? Also immer wenn das Programm beendet wird, sollen vorher noch Daten in einer Datei gespeichert werden. Allerdings soll das Ganze ohne Benutzereingabe oder so was passieren. Ich hab überlegt, ob es vielleicht über ein bestimmtes Ereignis möglich ist, hab aber bisher noch nichts konkretes gefunden...kann mir da jemand weiterhelfen?
Geht es vielleicht über das Ereignis "Applikationsinstanz schließen" als Filetereignis oder so?
Danke schon mal im Voraus...
Grüßle
- learny
- adviser
- Сообщения: 207
- Зарегистрирован: 23 окт 2008, 17:54
- Версия LabVIEW: 8.5
- Контактная информация:
Re: Ereignisstruktur
Hallo Laura,LauraS писал(а):Hallo zusammen
eine Frage: Gibt es eine Möglichkeit, ohne eine extra Abfrage vor dem Beenden eines Programmes noch ein case abzuarbeiten? Also immer wenn das Programm beendet wird, sollen vorher noch Daten in einer Datei gespeichert werden. Allerdings soll das Ganze ohne Benutzereingabe oder so was passieren. Ich hab überlegt, ob es vielleicht über ein bestimmtes Ereignis möglich ist, hab aber bisher noch nichts konkretes gefunden...kann mir da jemand weiterhelfen?
Geht es vielleicht über das Ereignis "Applikationsinstanz schließen" als Filetereignis oder so?
Danke schon mal im Voraus...
Grüßle
bin zwar noch kein LV-Experte, aber so wie ich deine Frage verstanden habe, könntest du doch auch eine letzte Case-Sequenz einfügen, in der du deine Data-write VI einfügen kannst.
Grüße
أهلا و سهلا بالمستخدمين العرب
-
- junior
- Сообщения: 61
- Зарегистрирован: 14 янв 2009, 11:52
- Версия LabVIEW: 8.5
- Контактная информация:
Re: Ereignisstruktur
Es gibt ja gar keine "letzte" Case Sequenz bevor das Programm nicht beendet wird. Also ich mein das so: das Programm ist ein Prüfprogramm und läuft den ganzen Tag, bzw. solange wie der Arbeitsplatz halt besetzt ist. Und ich möchte jetzt die Daten der Prüfgeräte abspeichern, immer dann wenn das Prüfgerät gewechselt wird (das funktioniert) und bevor das Programm eben beendet wird.bin zwar noch kein LV-Experte, aber so wie ich deine Frage verstanden habe, könntest du doch auch eine letzte Case-Sequenz einfügen, in der du deine Data-write VI einfügen kannst.
Theoretisch könnte ich ja einen Stopp-Button einfügen, aber ich soll in der bisherigen Benutzeroberfläche eigentlich nichts ändern, und vor allem keine zusätzlichen Eingaben, die den/die Arbeiter/in dann verwirren würden.
Deshalb dachte ich, es gibt vielleicht ein Ereignis, das behandelt werden kann, wenn eben jemand das Programm beendet. So wie z.B. die Speicheraufforderung in MS-Word oder so, die ja auch vorm Schließen des Programms aufgerufen wird.
So was möchte ich quasi auch, nur ohne Benutzereingabe.
Grüßle
-
- developer
- Сообщения: 265
- Зарегистрирован: 14 окт 2008, 00:09
- Награды: 1
- Версия LabVIEW: 8.x, 20x
Re: Ereignisstruktur
Hallo,
irgendwie hast du die Antwort schon selber gegeben.
Es gibt in der Event-Structure 4 interessante Events für dich:
die erste hast du schon genannt: Application Instance Close (?) (soll heißen das mit und ohne Fragezeichen).
Wird ausgelöst, wenn du das Programm beendest. Dann machst du halt was.
die anderen beiden sind: This VI: Panel Close (?).
Ob und wie du das jetzt in deine Programm einbauen kannst, kA, denn wie du dein Programm aufgebaut hast, das kann ich nicht hellsehen.
Gruß, Jens
irgendwie hast du die Antwort schon selber gegeben.
Es gibt in der Event-Structure 4 interessante Events für dich:
die erste hast du schon genannt: Application Instance Close (?) (soll heißen das mit und ohne Fragezeichen).
Wird ausgelöst, wenn du das Programm beendest. Dann machst du halt was.
die anderen beiden sind: This VI: Panel Close (?).
Ob und wie du das jetzt in deine Programm einbauen kannst, kA, denn wie du dein Programm aufgebaut hast, das kann ich nicht hellsehen.
Gruß, Jens
-
- junior
- Сообщения: 61
- Зарегистрирован: 14 янв 2009, 11:52
- Версия LabVIEW: 8.5
- Контактная информация:
Re: Ereignisstruktur
Hallo,
also irgendwie komme ich mit den Ereignissen, die du aufgezählt hast, nicht ganz klar.
Applikationsinstanz schließen tritt ja nur dann auf, wenn ich das Projekt schließe, seh ich das richtig? Und wenn ich nachher eine exe-Datei habe, wie ist das dann?
Kann mir hier außerdem jemand erklären wie genau Filterereignisse verarbeitet werden? Also ich verstehe was das ist, nur wie ich die verwende, so dass das Ereignis quasi nur kurz aufgeschoben wird, um noch kurz ein Case abzuarbeiten, das verstehe ich nicht so ganz...
Schon mal im Voraus Danke für jeden Tip!
Grüßle
also irgendwie komme ich mit den Ereignissen, die du aufgezählt hast, nicht ganz klar.
Applikationsinstanz schließen tritt ja nur dann auf, wenn ich das Projekt schließe, seh ich das richtig? Und wenn ich nachher eine exe-Datei habe, wie ist das dann?
Kann mir hier außerdem jemand erklären wie genau Filterereignisse verarbeitet werden? Also ich verstehe was das ist, nur wie ich die verwende, so dass das Ereignis quasi nur kurz aufgeschoben wird, um noch kurz ein Case abzuarbeiten, das verstehe ich nicht so ganz...
Schon mal im Voraus Danke für jeden Tip!
Grüßle
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Ereignisstruktur
Zur 1. Frage: mach keine Sorge, EXE ist dann gleich eine Instanz.
Zur 2. Frage, ich ferstehe nicht ganz was du mit "Filterereignisse" meinst.
Zur 2. Frage, ich ferstehe nicht ganz was du mit "Filterereignisse" meinst.
-
- junior
- Сообщения: 61
- Зарегистрирован: 14 янв 2009, 11:52
- Версия LabVIEW: 8.5
- Контактная информация:
Re: Ereignisstruktur
In meinen Unterlagen und in der Labviewhilfe werden Filterereignisse von Meldeereignissen unterschieden Filterereignisse sind die mit dem Fragezeichen hintendran, also bei denen quasi vor der Handlung noch was passsiert, wenn ich das richtig verstanden habe...
Aber wenn exe eine Instanz ist, dann hat sich die Frage schon erledigt, es funktioniert nämlich seit gerade eben:-)...Vielen Dank!
Aber wenn exe eine Instanz ist, dann hat sich die Frage schon erledigt, es funktioniert nämlich seit gerade eben:-)...Vielen Dank!