LabVIEWForum.de - Eventstruktur ausführen

LabVIEWForum.de

Normale Version: Eventstruktur ausführen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich arbeite zur Zeit an meiner Studienarbeit und bin Labview- Anfänger, habe bis jetzt nur ein paar kleine Programme "gebaut". (Anmerkung: Das Forum ist ne super Hilfe!)
Teil meines Projekts ist die Ansteuerung und Auslesung von IR- Lichtschranken. Zu beginn möchte ich eine "Initialisierung" durchführen, das heißt, ich will dem Programm übergeben, welche analogen IOs es zur Ansteuerung nutzen soll (ich arbeite mit einem real time, PXI- System).
Ich möchte den Lichtschrankentypen, den Treiber (das ist der analoge Ausgang) und den beim Messen auszulesenen Eingang übergeben. Wenn ich alle drei Variabelen gewählt habe, möchte ich mit einem einfachen boolschen- Taster die Werte "einloggen". Ich habe dazu die Eventstruktur gewählt. Mein problem ist, das die Struktur keine Reaktion zeigt, wenn ich den Taster betätige. Wenn ich ein Timeout vorgegebe funktioniert alles super.
Was mache falsch, bzw. was muss ich beachten?

Danke im Voraus!

Gruß Vrijdag
Könnte es sein, dass du mehr als 1 Event-Struktur innerhalb deines VIs hast?
Das sollte man auf ALLE Fälle vermeiden, da es in der Regel nur zu Problemen führt.
Lies dir die Informationen zur Verwendung der Event-Struktur in der Hilfe durch.

Gruß, Jens
Vielen Dank für die schnelle Hilfe!
Problem gelöst!

Gruß Vrijdag
Unabhängig davon (für mich zum Verständnis ^^): Die Eventstruktur ist doch hier gekapselt in der While Schleife und andere Eventstrukturen sollten doch maximal parrallel dazu ausgeführt werden.

DANN sollten doch normal zwei Eventstrukturen sich auch nicht gegenseitig in die Quere kommen können, oder?
(02.04.2012 09:30 )Kiesch schrieb: [ -> ]DANN sollten doch normal zwei Eventstrukturen sich auch nicht gegenseitig in die Quere kommen können, oder?

Offenbar doch...eine wartet auf die andere...und dann ist Stillstand!

NIE NIE NIE zwie Eventstrukturen in ein Diagramm! Zu was sollte das auch notwendig sein? Jede Eventstruktur kann doch beliebig viele Events von beliebig vielen Quellen erfassen! Wenn das nicht ins eigene Programm passt...dann MUSS MUSS MUSS die Programmstruktur grundlegend überdacht werden! BASTA!
Und eine Eventstruktur die 200 Events handhabt die aus 10 verschiedenen Kategorien stammen ist dann übersichtlich und wartbar? Ich glaube eher nicht.

Ich hab schon Probleme mit 20 Events und will die sinnvoll auf Teilbehandlungen aufteilen die ich Kapseln kann. Ich finde es da auch schon nicht wirklich sinnvoll, wenn ich events die Nutzerfeedback an ein Diagramm handhaben sollen in einen Struktur zu packen mit Events die mir Umstellungen an der Anzeige im Programm erlauben (Anpassung Display) und dem dann noch Events hinzufügen die auf Eingaben reagieren und die verarbeiten (lassen).

Deswegen ja auch die Frage (da ich das aktuell genau so gelöst habe und das lieber auf mehrere parrellele Strukturen aufteilen würde): Geht das - ja oder nein...

Ich würd mir nämlich ungern die Arbeit machen und am Ende funktioniert es nicht.

p.S:
Zitat:Zu was sollte das auch notwendig sein?
"Notwendig" ist es natürlich nicht, erhöht aber Übersichtlichkeit und Wartbarkeit. Oder kämst du auf die Idee die gleiche Aussage bezüglich Case Strukturen zu treffen?
(04.04.2012 10:26 )Kiesch schrieb: [ -> ]Und eine Eventstruktur die 200 Events handhabt die aus 10 verschiedenen Kategorien stammen ist dann übersichtlich und wartbar? Ich glaube eher nicht.
Da gebe ich dir recht! Aber ich kann mir beim besten Willen keine Applikation vorstellen, die derart viele Events innerhalb einer Schleife abarbeiten müsste. Darum auch mein Hinweis auf das generelle Überdenken des Programm-Aufbaus!

(04.04.2012 10:26 )Kiesch schrieb: [ -> ]Deswegen ja auch die Frage (da ich das aktuell genau so gelöst habe und das lieber auf mehrere parrellele Strukturen aufteilen würde): Geht das - ja oder nein...
Ich würd mir nämlich ungern die Arbeit machen und am Ende funktioniert es nicht.
Ja es geht! Und du kannst das natürlich machen...die Gefahr ist halt sehr hoch, das man unabsichtlich Abhängigkeiten einbaut! Das hab ich schon einige Male erleben müssen. Und das dann zu debuggen...auch NI rät davon ab! Such mal in der Hilfe nach Caveats and Recommendations when Using Events in LabVIEW


Zitat:Oder kämst du auf die Idee die gleiche Aussage bezüglich Case Strukturen zu treffen?
Klar, mehr als 20 (?) Cases in einer Struktur sind übel...sowas hab ich früher auch verbrochen. Das schreit dann aber nach ner Verlagerung in SubVIs, die Gruppen von "gleichartigen" Cases behandeln. Das ist mit Eventstrukturen halt nicht möglich, und somit ist da eine saubere Trennung kaum möglich.
Hallo,

Zitat:Und eine Eventstruktur die 200 Events...
Ok, das habe ich noch nicht geschafft.
Was mir dabei unglaublich hilft, ist das Anlegen von benutzerdefinierten Events. Dann kann man z.B. für alle UI-Elemente ein Wertänderungs-Event registrieren, das dann in einem einzigen Case der Eventstruktur abgearbeitet wird. Das gleiche dann für ähnlich gelagerte Sachen wie MouseOver-Effekte, Rechtsklick-Menüs für alle Graphen, etc.
(04.04.2012 12:06 )GerdW schrieb: [ -> ]Was mir dabei unglaublich hilft, ist das Anlegen von benutzerdefinierten Events. Dann kann man z.B. für alle UI-Elemente ein Wertänderungs-Event registrieren, das dann in einem einzigen Case der Eventstruktur abgearbeitet wird.

Ja, das klingt gut! Ich hab das bisher noch nie so gemacht...einfach, weil ich "so viele" Events noch nicht hatte...hm, doch, einmal...und das war dann tatsächlich richtig scheiße zu handhaben...da muss ich Kiesch dann doch noch mal (ein bisschen) Recht geben!

Hast du mal ein kleines Demo, wie du das machst? Das wär prima...

Danke!
A.
Hallo Achim,

so sieht der relevante Ausschnitt meines aktuellen Projekts aus:
[attachment=39356]
(Ich hoffe, die Icons sind selbsterklärend Smile )
Die so erzeugte "Referenz" geht dann an den Eingang für benutzerdefinierte Ereignisse der Eventstruktur, woraufhin ein entsprechender Eintrag in der Eventauswahl erscheint.
Referenz-URLs