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!
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
Anzeige
10.02.2008, 20:23 (Dieser Beitrag wurde zuletzt bearbeitet: 10.02.2008 20:23 von A.Berndsen.)
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
event-struktur
In was kann denn ein boolscher Wert (für Deine Ereigneisstruktur) gewandelt werden?
Ansonsten geht es mir wie Andreas.....
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
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
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
' 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.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
' schrieb:Nachtrag: Jetzt ist mir einer mit einer Lösung zuvorgekommen. Naja, auch nicht schlimm.
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.
.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.
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
' schrieb:Habe heute halt meinen guten hilfsbereiten Tag.
Na guck, es hat doch was genützt. Der Anwender hat was zusammenbekommen.
' 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.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).