28.08.2009, 15:49
(Dieser Beitrag wurde zuletzt bearbeitet: 28.08.2009 15:50 von Novgorod.)
Beitrag #1
|
Novgorod
LVF-Gelegenheitsschreiber
Beiträge: 65
Registriert seit: Oct 2008
2016
2006
EN
0
Sonstige
|
Event durch ein anderes Event triggern
Hiho,
ich habe eine zentrale event-struktur fürs user-interface.. es kommt aber ab und zu mal vor, dass ein event genau das gleiche macht wie ein anderes event, nur mit irgendeinem kleinen zusatz.. durch subvis lässt sich das nur umständlich lösen, weil viel auf inputs und outputs zugegriffen wird, die man alle durchschleifen müsste..
jedenfalls würde es sich doch anbieten, in ein bestimmtes event folgendes zu schreiben: "tu das und das, danach triggere event nr. x" - nur machts LabVIEW da einem nicht so einfach .. alle variablenänderungen o.ä., die man in einem event vornimmt, "vergisst" LabVIEW wieder, sobald das event ausgeführt ist - auf diese weise kann man also nicht anschließend (oder gar rekursiv) ein anderes event triggern..
also, gibts da eine möglichkeit oder muss ich subvis bzw. c&p machen?
|
|
|
28.08.2009, 15:55
(Dieser Beitrag wurde zuletzt bearbeitet: 28.08.2009 15:57 von schrotti.)
Beitrag #2
|
|
|
28.08.2009, 18:43
Beitrag #3
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
Event durch ein anderes Event triggern
' schrieb:jedenfalls würde es sich doch anbieten, in ein bestimmtes event folgendes zu schreiben: "tu das und das, danach triggere event nr. x" -
Dann setzt du PropertyNode "ValueSignaling", und schon springst du in ein anderes ValueChange Event deiner Event-Structure. Oder benutzerdefinierte Events, die kannst du jederzeit selber auslösen.
' schrieb:nur machts LabVIEW da einem nicht so einfach.. alle variablenänderungen o.ä., die man in einem event vornimmt, "vergisst" LabVIEW wieder, sobald das event ausgeführt ist -
Das verstehe ich jetzt nicht, wenn du etwas neu setzt, dann wird das doch nicht "vergessen"?
' schrieb:auf diese weise kann man also nicht anschließend (oder gar rekursiv) ein anderes event triggern..
also, gibts da eine möglichkeit oder muss ich subvis bzw. c&p machen?
s.o.
Oder halt noch besser, schrotti's Vorschlag.
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.
|
|
|
28.08.2009, 18:52
(Dieser Beitrag wurde zuletzt bearbeitet: 28.08.2009 18:55 von Lucki.)
Beitrag #4
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Event durch ein anderes Event triggern
Ich mache auch gelegentlich, und zwar so:
Angnommen, der Eventcase, den Du nach einem anderen Eventcase noch aktivieren willst, ist "Element1, Wertänderung". Dann kommt in den betreffenden Ereigniscase einfach noch das hinein:
Es findet zwar reale keine Wertänderung statt (die wäre ja auch nicht erwünscht), aber das Ereignis wird trotzdem aktiviert.
Gruß Ludwig
Edit: Jens war schneller..
|
|
|
28.08.2009, 19:43
(Dieser Beitrag wurde zuletzt bearbeitet: 28.08.2009 19:43 von Novgorod.)
Beitrag #5
|
Novgorod
LVF-Gelegenheitsschreiber
Beiträge: 65
Registriert seit: Oct 2008
2016
2006
EN
0
Sonstige
|
Event durch ein anderes Event triggern
' schrieb:Ich mache auch gelegentlich, und zwar so:
Angnommen, der Eventcase, den Du nach einem anderen Eventcase noch aktivieren willst, ist "Element1, Wertänderung". Dann kommt in den betreffenden Ereigniscase einfach noch das hinein:
[attachment=48942:wertaenderung.png]
Es findet zwar reale keine Wertänderung statt (die wäre ja auch nicht erwünscht), aber das Ereignis wird trotzdem aktiviert.
Gruß Ludwig
Edit: Jens war schneller..
Hi,
genau das geht bei mir nicht - oder ich geh da falsch ran.. hier ein kleines beispiel:
LV 8.5.1:
event_test.vi (Größe: 19,14 KB / Downloads: 352)
es werden 2 event cases behandelt - der erste event fügt nur eine zeile mit der uhrzeit an, der zweite event schaltet das lämpchen an/aus, soll aber ebenfalls den ersten event triggern und die aktuelle uhrzeit ausgeben..
getriggert wird der erste event durch den entsprechenden boolean button (value change), im zweiten event hab ich wie in deinem beispiel die wertzuweisung für den ersten button eingebaut (property -> value), das wird aber von LabVIEW ignoriert! auch wenn der wert wirklich geändert wird (z.b. mit einem "not" dazwischen), sieht man nur, dass der trigger 1 knopf (mit-)gedrückt wird, aber es wird nicht als event erkannt für den nächsten schleifendurchlauf!
das ist es auch was ich mit dem "vergessen" gemeint habe (etwas unglücklich ausgedrückt) - wenn man in einem event irgendeine variable verändert, die als trigger für ein anderes event benutzt wird, wird diese änderung nicht als event für den nächsten durchlauf hergenommen! (der geänderte wert bleibt natürlich)..
|
|
|
28.08.2009, 19:48
(Dieser Beitrag wurde zuletzt bearbeitet: 28.08.2009 19:49 von eg.)
Beitrag #6
|
eg
LVF-SeniorMod
Beiträge: 3.868
Registriert seit: Nov 2005
2016
2003
kA
66111
Deutschland
|
Event durch ein anderes Event triggern
Am besten machst du dir ein SubVI, das in allen ähnlichen Events aufgerufen wird (der Speicherplatz bleibt ja gleich), bei diesem SubVI machst du alles was bei diesen ähnlichen Events gleich ist (du hast ja geschrieben, dass die fast das gleiche machen sollen). Und den Rest (das was bei den Events unterschiedlich ist) machst du im jeweiligen Event ausserhalb dieses SubVIs.
|
|
|
28.08.2009, 19:55
Beitrag #7
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
Event durch ein anderes Event triggern
Hast du Lucki's und meinen Beitrag genau angeschaut und durchgelesen? Offenbar nicht.
Du musst schon die richtige PropertyNode auswählen:
Value(Signaling), nicht Value. Das (Signaling) bedeutet, das diese Ausführung der PropertyNode als Event im Frontpanel interpretiert wird und somit den entsprechenden Fall in der Event-Structure auslöst.
Dass bei anderen Wertänderungen, z.B. bei Setzen einer lokalen Variablen aus dem Programm heraus KEIN Event ausgelöst wird, ist gut und richtig.
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.
|
|
|
31.08.2009, 13:25
(Dieser Beitrag wurde zuletzt bearbeitet: 31.08.2009 13:30 von Novgorod.)
Beitrag #8
|
|
|
| |