07.09.2009, 15:00
Beitrag #1
|
tanka
LVF-Grünschnabel
Beiträge: 39
Registriert seit: Jul 2009
8.6
-
de
95541
Deutschland
|
Ereignisstruktur programatisch aufrufen
Moin ihr Landratten.=)
Ich ruf auf einem Frontpanel verschieden SubVIs auf.
In einem solchen SubVI werden dann Änderungen an Bedienelementen mit Hilfe einer Ereignisstruktur detektiert.
Ich möchte nun, dass bei jedem SubVI-Aufruf grundsätzlich ein Ereigniscase einmal durchlaufen wird, und danach ganz normal auf Schalteränderungen wartet.
Irgendwie müsste man wohl das Ereignis programatisch auslösen, aber wie?
Kennt jemand ne Lösungen oder nen guten Tip?
Danke schonmal
tanka
|
|
|
07.09.2009, 15:18
Beitrag #2
|
|
|
08.09.2009, 08:39
Beitrag #3
|
tanka
LVF-Grünschnabel
Beiträge: 39
Registriert seit: Jul 2009
8.6
-
de
95541
Deutschland
|
Ereignisstruktur programatisch aufrufen
Guten Morgen.
Ehrlich gesagt kann ich damit deiner Antwort nur begrenzt etwas anfangen.
Mir stellt sich mal die grundsätzliche Frage, ob ich in meinem Fall eine dynamische Erreignisregistrierung benötige oder nicht.
Wenn möglich würde ich gerne darauf verzichten und meine statische Variante weiterhin benutzen.
Bitte nochmal um Hilfe
Gruß
tanka
|
|
|
08.09.2009, 08:57
Beitrag #4
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
Ereignisstruktur programatisch aufrufen
Rechtsklick auf das Control, dessen Event-Case du aufrufen willst, -> Create -> PropertyNode -> Value (Signaling) auswählen.
Diese PropertyNode am Anfang deines SubIV setzen, der entsprechende ValueChange-Event wird ausgelöst.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
08.09.2009, 09:14
(Dieser Beitrag wurde zuletzt bearbeitet: 14.12.2020 15:49 von Lucki.)
Beitrag #5
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Ereignisstruktur programatisch aufrufen
Kleine Ergänzung: "Wert (signalisierend)" verlangt natürlich einen Eingangswert. Es kommt dabei nicht darauf an, daß sich der Wert wirklich ändert. Ich schließe dort in der Regel eine lokale Variable desselben Elementes an. Dann wird das Ereignis ausgelöst, ohne daß sich der Wert ändert.
|
|
|
08.09.2009, 12:24
(Dieser Beitrag wurde zuletzt bearbeitet: 08.09.2009 12:41 von tanka.)
Beitrag #6
|
tanka
LVF-Grünschnabel
Beiträge: 39
Registriert seit: Jul 2009
8.6
-
de
95541
Deutschland
|
Ereignisstruktur programatisch aufrufen
Hallo.
Ok das mit Wert signalisierend müsste ja soweit klappen, allerdings wird meine For schleife jetzt nicht nur einmal, sondern unendlich viele Male aufgerufen (siehe Anhang). Somit wird das Eintragen neuer Werte im Frontpanel unmöglich und LabVIEW hängt sich mehr oder weniger auf.
WIESO?
|
|
|
08.09.2009, 13:31
Beitrag #7
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
Ereignisstruktur programatisch aufrufen
LV-Datenfluß beachten, klar hast du dir jetzt einen Dauer-Loop gebastelt.
Du setzt in deiner While-Schleife "Einstellungen" per PropertyNode Value(Signaling). Das löst das Event aus. Damit wird die Event-Struktur ausgeführt, die While Schleife läuft wieder an, in der For-Schleife (vollkommen überflüssig übrigens) wird Event per Value(Signaling) ausgelöst, Event-Struktur arbeitet etc. etc. etc.
Sorge einfach für einen sequenziellen Ablauf, z.B. so:
(Das setzen der lokalen Variable parallel zur PropertyNode ist ebenfalls überflüssig).
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
08.09.2009, 14:04
(Dieser Beitrag wurde zuletzt bearbeitet: 08.09.2009 14:05 von tanka.)
Beitrag #8
|
tanka
LVF-Grünschnabel
Beiträge: 39
Registriert seit: Jul 2009
8.6
-
de
95541
Deutschland
|
Ereignisstruktur programatisch aufrufen
optimal, jetzt macht das auch Sinn und funktioniert. Ich war immer in der Annahmen, dass das Programm nach der Ausührung eines Events in der While-Schleife bleibt. Dem ist aber anscheinend jetzt nicht so.
Vielen Dank nochmal.
Gruß tanka
|
|
|
08.09.2009, 14:52
Beitrag #9
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
Ereignisstruktur programatisch aufrufen
' schrieb:optimal, jetzt macht das auch Sinn und funktioniert. Ich war immer in der Annahmen, dass das Programm nach der Ausührung eines Events in der While-Schleife bleibt.
Ja, bleibt es ja auch. Aber schau mal genau, wo du deine (überflüssige) For-Loop platziert hast. Na, schon gesehen? Genau, IN die While-Loop. Und alles in der While-Loop wird bei erneuter Durchführung der Schleife wieder ausgeführt, also deine For-Loop (inkl. Event auslösen), dann bekommt das die Event-Struktur mit, die brav auf ein Event wartet, zack, alles in der While-Schleife ist abgearbeitet, und - da du durch Anschluß der Konstanten eine Dauerschleife daraus gemacht hast - startet wieder alles von vorne.
Setzen, Note 6.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
08.09.2009, 18:54
|
Y-P
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
Beiträge: 12.612
Registriert seit: Feb 2006
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
|
Ereignisstruktur programatisch aufrufen
--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
|
|
|
| |