LabVIEWForum.de - event-struktur

LabVIEWForum.de

Normale Version: event-struktur
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
hi,

ich habe eine event-struktur die auf ein boolschen wert oder auf alles, in was dieser gewandelt werden kann, ragieren soll. jetzt hab ich mal das teilweise hilfreiche Benutzerhandbuch bemüht und versucht das mit der dynamischen ereignisregistrierung an der event-struktur zu lösen. aber ich ab keine ahnung wie man die paar dinger zusammenschließen muss, die beispiele die es gibt sind ja leider immer so groß und unübersichtlich, hat da jemand was kleines, was verständliches, irgend etwas wofür man kein experte sein muss? danke
Ich hab keinen blassen Dunst was Du jetzt wirklich wissen möchtest!Hmm

Laß mal etwas differenzierter hören was Dich interessiert.

"dynamische Ereignisregistrierung" oder "kombinieren von mehreren Ereignissen in einem Ereignis-Case" oder ... ?

Gruß
Andreas
In was kann denn ein boolscher Wert (für Deine Ereigneisstruktur) gewandelt werden? Hmm
Ansonsten geht es mir wie Andreas.....Hmm

Gruß Markus

' schrieb:hi,

ich habe eine event-struktur die auf ein boolschen wert oder auf alles, in was dieser gewandelt werden kann, ragieren soll. jetzt hab ich mal das teilweise hilfreiche Benutzerhandbuch bemüht und versucht das mit der dynamischen ereignisregistrierung an der event-struktur zu lösen. aber ich ab keine ahnung wie man die paar dinger zusammenschließen muss, die beispiele die es gibt sind ja leider immer so groß und unübersichtlich, hat da jemand was kleines, was verständliches, irgend etwas wofür man kein experte sein muss? danke
ok, war wirklich nicht gut erklärt.

dann wirds jetzt aber leider ein bisschen länger.
- ich habe eine Dateneingansbox die mir für die digitalen eingänge 0 oder 1 ausgibt.
- dann habe ich eine event-struktur die zur zeit noch auf jede menge schalter auf dem frontpanel reagiert.
- jetzt soll die event-struktur zusätzlich in einigen cases auf die digitalen eingäne der dateneingangsbox reagieren (das kommt daher, das die funktionen auf dem frontpanel teilweise auch mit schaltern an der dateneingangsbox simuliert werden)
- na ja, und wie oben schon gesagt hab ich das mit "dynamischer ereignisregistrierung" probiert aber icrgendwie funzt das nicht, ichh bin auch eider kein experte, deswegen fallen mir auch nicht mehr irklich viele andere sachen ein.
falls ihr mir hier helfen klnnt, bitte kurze, übersichtliche beispiele, nicht so ausgefallene..........danke
Wenn ich dich richtig verstanden habe, etwa so.

Gruss
Roland
Ich fasse nochmal zusammen:

' schrieb:- ich habe eine Dateneingansbox die mir für die digitalen eingänge 0 oder 1 ausgibt.
Du hast also eine Box mit Eingängen am PC hängen. Diese Eingänge ließt du z.B. über ein DAQmx-Read-VI ein.

Zitat:jetzt soll die event-struktur zusätzlich in einigen cases auf die digitalen eingäne der dateneingangsbox reagieren (das kommt daher, das die funktionen auf dem frontpanel teilweise auch mit schaltern an der dateneingangsbox simuliert werden)
Hier gibt es mehrere Möglichkeiten: Die "einige Cases" bestehen bereits. In den Ablauf innerhalb dieser bestehenden Cases sollen nun die oben erwähnten Eingangssignale eingebunden werden. Das wäre einfach: Einfach ein DAQmx-Read rein und weiterverarbeiten. Hierfür ist kein Benutzerereignis notwendig.
Die zweite Möglichkeit für "einige Cases" wären neue Cases - die eben über ein Benutzerereignis angesteuert werden sollen. Hierzu müsste aber auch jemand (also z.B. ein SubVI etc.) vorhanden sein, der ein Ereignis generieren kann (zuerst einmal generieren, noch nicht registrieren). Ein Ereignis auf der Basis von digitalen Eingängen könnte eine Flanke am Eingang sein. Ein Pegel kann strukturell gesehen kein Ereignis auslösen. Theoretisch kann man im Timeoutcase den Eingang pollend abfragen und bei Änderung ein Event generieren.
Es gibt auch die Möglichkeit, in Folge einer Pegeländerung des Eingangssignales (z.B. im Timeoutcase) einen bestehenden Case aufzurufen. Hierzu reicht es aber aus, das Property "Wert(signalisierend)" des FP-Elementes zu verwenden, das dem Case zugeordnet ist.

Zitat:hab ich das mit "dynamischer ereignisregistrierung" probiert
Welche der beiden Möglichkeiten willst du denn verwenden? Nur für die zweite - Reaktion bei Pegeländerung des Eingangssignales - wäre ein Benutzerereignis sinnvoll.


Nachtrag: Jetzt ist mir einer mit einer Lösung zuvorgekommen. Naja, auch nicht schlimm.
' schrieb:Nachtrag: Jetzt ist mir einer mit einer Lösung zuvorgekommen. Naja, auch nicht schlimm.

Wub_anim tschuldigung IchSelbst, wollte ich nicht, wenn du schon so ausführlich beschreibst.
Habe heute halt meinen guten hilfsbereiten Tag.
Sollte mich eigentlich meinen eigenen Problemen, (nicht LV) widmen, hier fällts mir einfacher.

Gruss
Roland, der heute nichts mehr sagt.
danke erst einmal für die antworten, ich hab hier mal was gebastelt, funktioniert auch so wie es soll, nur weiß ich nicht wieso ,weil ich das einfach durch ausprobieren zum laufen bekommen hab, aber wirklich elegant ist das wahrscheinlich nicht................................. mag mir das jemand erklären und ne vielleicht bessere lösung geben??? danke
das programm hier ist übrigens nur zum ausprobieren, mein richtiges programm ist viel zu groß um das hier zu zeigen.........................
' schrieb:Habe heute halt meinen guten hilfsbereiten Tag.
Na guck, es hat doch was genützt. Der Anwender hat was zusammenbekommen. Smile


' schrieb:ich hab hier mal was gebastelt, funktioniert auch so wie es soll, nur weiß ich nicht wieso ,weil ich das einfach durch ausprobieren zum laufen bekommen hab,
So wie's prinzipiell sein soll, hast du es auch gemacht:
- Oben Links nach dem SubVI DBitIn wird ein Ereignis definiert (spricht der Handle, das ist der Draht, eines Ereignisses bereitgestellt). Das Ereignis hat den Datentyp "Boolscher Wert"
- Dieses Ereignis wird dann mit dem Eigenschaftsknoten "Ereignis registrieren" registriert. Der Handle für die Registrierung geht auf den Eventcase. Jetzt kennt der Eventcase alle die Ereignisse, die in dem Knoten "Ereignis registrieren" zusammengefasst sind. Tritt jetzt also eines dieser Ereignisse auf, wird die entsprechende Evant-Case-Sequenz ausgeführt.
- Nach dem Evantcase wird die Registierung wieder gelöscht - was prinzipiell richtig ist.
- Dann hast du - im True-Case der If-Anweisung - ein Ereignis ausgelöst. Alleine eben durch die Benutzung des entsprechenden VIs.
- Nach der If-Anweisung hast du dann einen Ereignishandle wieder gelöscht - was auch prinzipiell richtig ist.

Also im allgemeinen ist das Vorgehen richtig.

Jetzt machst du folgendes: Die vier Elemente "Ereignis definieren", "Ereignis registrieren", "Definition löschen" und "Registrierung löschen" ziehst du nach außerhalb der While-Schleife. Wobei du aber die Drähte genau so wie sie jetzt sind beibehalten musst. D.h. durch vier Drähte geht hinterher die While-Schleife durch! Den einzigen Draht, der nicht verbunden wird, ist der Boolsche Eingang an "Ereignis definieren". Da benutzt du eine ganz norme True/False-Konstante.
Seiten: 1 2
Referenz-URLs