06.12.2006, 10:31
Beitrag #1
|
fidel
LVF-Gelegenheitsschreiber
Beiträge: 247
Registriert seit: Aug 2006
8.00 // 8.2.1 // 8.5
2006
de
76185
Deutschland
|
True False - Buttons
Hallo,
ich hoffe eine triviale Frage.
wie kann ich meinem True/False Knopf beibringen das er nachdme er gedrückt wurde IMMER wieder in seinen Ursprungs-Status bzw Optik zurückspringt ?
Im Moment ist es so, dass ich einen Knopf drücke, die Aktion getätigt wird, aber der Knopf dann quasi bis zum nächsten Kontakt als gedrückt visualisiert wird.
Mit freundlichen Grüßen
fidel
|
|
|
06.12.2006, 10:36
Beitrag #2
|
eg
LVF-SeniorMod
Beiträge: 3.868
Registriert seit: Nov 2005
2016
2003
kA
66111
Deutschland
|
True False - Buttons
Rechtsklick->Mechanikal Action->Latch When Released
|
|
|
06.12.2006, 10:51
Beitrag #3
|
fidel
LVF-Gelegenheitsschreiber
Beiträge: 247
Registriert seit: Aug 2006
8.00 // 8.2.1 // 8.5
2006
de
76185
Deutschland
|
True False - Buttons
Hallo eugen,
exakt diese Einstellung habe ich bereits.
jedoch ist noch dem drücken trotz gleicher Farbfahl bei aktiv/passiv immer noch minimal zu sehen, dass der Knopf zuvor gedrückt wurde.
gruss
fidel
' schrieb:Rechtsklick->Mechanikal Action->Latch When Released
|
|
|
06.12.2006, 11:00
Beitrag #4
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
True False - Buttons
<div align="left">Nachtrag zu Eugens Beitrag:
Damit Latch when Released funktioniert, darf man keine lokale Variable des Buttons anlegen! Ansonsten geht die Einstellung wieder automatisch auf Switch...
MfG, Jens</div>
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.
|
|
|
06.12.2006, 11:16
Beitrag #5
|
VDB
LVF-Stammgast
Beiträge: 426
Registriert seit: Oct 2005
2010-2011
1997
kA
52134
Deutschland
|
True False - Buttons
' schrieb:<div align="left">Nachtrag zu Eugens Beitrag:
Damit Latch when Released funktioniert, darf man keine lokale Variable des Buttons anlegen! Ansonsten geht die Einstellung wieder automatisch auf Switch...
MfG, Jens</div>
Das ist nicht ganz richtig, bei Booleans mit Latch kann man gar keine lokale Variabelen anlegen, das Programm lässt sich dann nicht mehr ausführen.
Zu dem Darstellungsproblem:
LV ändert die Darstellung erst wenn das Control im Diagram abgefragt wird. Wie häufig liesst Du das Control den ein? Eine Änderung wird man ja immer sehen, man braucht ja eine Rückmeldung das der Button gedruckt wurde. Du kannst allerdings noch bei dem Property Colors(4) alles auf einer Farbe setzen um die dunkle Grautöne beim umschalten auszublenden.
Gruß
VDB
|
|
|
06.12.2006, 12:19
Beitrag #6
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
True False - Buttons
Also es gibt 2 Möglichkeiten, daß der Knopf von selbst wieder herausspringt:
1.) Latch-Verhalten: Der Knopf springt heraus, wenn er vom Programm abgefragt wurde, was sicherstellt, daß die Aktion auch ausgeführt wird. Zu Bevorzugen ist "Latch beim loslassen". Denn wenn Du "Latch beim Drücken" auswählst, dann funktioniert das zwar auch, aber wenn der Schalter bereits in der gleichen Millisekunde abgefragt wird, in der er gedrückt würde, dann denkt der Bediener: "Dieser Scheißknopp lässt sich ja gar nicht drücken" (oder so was in der Art).
2.) "Bis zum Loslassen schalten" Funktioniert genau wie ein Klingelknopf und ist vermutlich das was Du willst. Ist aber nicht sehr zu empfehlen, denn falls der Schalter während des Drücken noch nicht abgefragt wurde, dann passiert überhaupt nichts, und wenn er zu lange gedrückt wurde, dann wird er u.U. mehrfach als "true" abgefragt, was auch fatale Folgen haben kann.
|
|
|
06.12.2006, 15:25
Beitrag #7
|
|
|
06.12.2006, 16:17
(Dieser Beitrag wurde zuletzt bearbeitet: 06.12.2006 16:29 von Lucki.)
Beitrag #8
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
True False - Buttons
' schrieb:Was man auch noch beachten sollte für eine Latch-Funktion, ist, dass im Blockdiagramm das Control vom Schalter INNERHALB der Endlosschleife liegen muss. Irgendwo, aber drin.
Weil sonst springt der Zustand nicht zurück, da der Schalter einmal abgearbeitet wurde und fertig.
<div align="left">Da kann ich Dir nur bedingt zustimmen. Der Schalter springt doch nach der ersten Abfrage bereits zurück. Und wenn er außerhalb von einer Endlosschleife liegt, dann springt er nicht nur nicht zurück, sondern er hat überhaupt Null Wirkung, da er von Programm nicht abgefragt wird. (Ja, man könnte den Schalter außerhalb der Schleife platzieren und innerhalb der Schleife über lokale Variablen abfragen - dann macht Deine Warnung einen Sinn, aber wozu sollte man das so machen?)
Du hast aber ganz und gar recht, wenn es um Ereignisstrukturen geht - und sicherlich meintest Du das. Dort hat man das Problem, daß das Ereignis bei der Bedienung eintritt, der Schalter also funktioniert, ohne daß der Schalter dazu abgefragt werden muß. Es besteht dann die Möglichkeit, daß man den Schalter, der ja gar keinen Anschluß mehr braucht, irgendwo weit weg von Tatort platziert. Das funktioniert dann zwar immer noch, aber der Schalter setzt sich nicht mehr von selbst zurück - dazu ist eine Abfrage erforderlich. Um das zu erreichen, sollte er in dem betreffenden Ereigniscase platziert sein, oder wenigstens in der Schleife mit der Ereignisstruktur.</div>
|
|
|
07.12.2006, 11:27
Beitrag #9
|
Joe
LVF-Gelegenheitsschreiber
Beiträge: 110
Registriert seit: Oct 2004
8.20
2004
kA
Deutschland
|
True False - Buttons
' schrieb:Ja, man könnte den Schalter außerhalb der Schleife platzieren und innerhalb der Schleife über lokale Variablen abfragen - dann macht Deine Warnung einen Sinn, aber wozu sollte man das so machen?
Ich hatte diesen Fehler in meiner Anfängerzeit häufiger gemacht, weil ich die Controls in einem ersten Frame immer initialisiert hatte und dann nur mit lokalen Variablen in der Endlosschleife gearbeitet habe.
Bis ich auch mal einen Button hatte, der ums Verrecken nicht wieder zurückspringen wollte.
Seither programmiere ich das anders und es funktioniert auch.
Aus diesem Grund wollte ich es lieber mal erwähnt haben, da erfahrene Programmierer an solche Dinge oft gar nicht mehr denken, weil man sowas ja eh nicht tut.
|
|
|
| |