27.11.2008, 15:00
(Dieser Beitrag wurde zuletzt bearbeitet: 27.11.2008 15:01 von Lucki.)
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Start/Stop Button zurücksetzen
' schrieb:Wenn es mit einer Eventstruktur eleganter ist, dann würde ich dies auch gerne mit dieser lösen.
Anbei ist mein bisheriger Ansatz zu finden. Jedoch ist mir schleierhaft, wie ich die Stop-Funktion einbauen kann, da ich bei dem Button nicht weiß, wie ich das true/false abfangen kann. Wenn ich das ganze in zwei Buttons aufteilen würde, wäre es kein Problem, aber halt nicht das was ich suche.
Ich war etwas zu großmäulig, mit der Eventstruktur ist es sicherlich eleganter, aber von der Programmier-Schreibarbeit wird es auch nicht einfacher.
Man kann bei der Eventrucktur bei jedem Case das Häkchen "Frontpanel sperren, wenn Event ausgeführt wird" setzen oder wegnehmen. Funktioniert nur nicht so wie ich dachte: Zwar wird das FP gesperrt, d.h es passiert beim Anklicken von irgendetwas in dieser Zeit nichts. Wenn aber das Event vorbei ist, dann wird der Klick nachträglich noch ausgeführt! Und was das Merkwürdigste ist - und hier würde ich schon von einem BUG in LV sprechen: Eine Deaktivierung des Elements während dieser Zeit ändert an diesem Verhalten nichts!.
Es funktioniert nur, wenn das Fronpanel nicht gesperrt wird und die Taste während der Ausführungszeit deaktiviert wird. Mein ursprünglicher Gedanke war aber gerade, mittels Eventstruktur die Verwendung der Eigenschaftsknoten zur Sperrung des Elementes zu vermeiden.
Vielleicht schaut sich ein Experte das Vi mal an und kann sagen wie es einfacher geht. Die Forderung ist: Wenn während der Ausführungszeit des Cases (3 sec) an der Start-Stop-Taste herumgefummelt wird, soll das nichts bewirken.
So geht es, aber wie gesagt wieder mit Eigenschaftsknoten:
startstop.vi (Größe: 12,87 KB / Downloads: 250)
|
|
|
27.11.2008, 15:56
|
IchSelbst
LVF-Guru
Beiträge: 3.697
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
Start/Stop Button zurücksetzen
' schrieb:Und was das Merkwürdigste ist - und hier würde ich schon von einem BUG in LV sprechen: Eine Deaktivierung des Elements während dieser Zeit ändert an diesem Verhalten nichts!.
Das sind keine Bugs, sondern gewöhnungsbedürftig implementierte Features. Der Klick wird nicht am deaktivierten Element gemerkt, sondern an sich im Hintergrund. Ist das Frontpanel gesperrt, so bleibt der Klick solange unbearbeitet, bis das FP wieder aktiviert wird. Dumm nur, dass vor dem FP aktivieren das Element aktiviert wird. Dann wird der Klick also bei aktivem Element bearbeitet.
Das geht ja alles noch viel weiter:
Man kann auf unsichtbare (!) Reiter klicken, und dann auf einen Button auf der unsichtbaren Karte - beides wird ausgeführt.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
27.11.2008, 16:09
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Start/Stop Button zurücksetzen
' schrieb:...
Das geht ja alles noch viel weiter:
Man kann auf unsichtbare (!) Reiter klicken, und dann auf einen Button auf der unsichtbaren Karte - beides wird ausgeführt.
Danke für die Amtwort. Glücklicherweise funktioniert ja alles normal, wenn man das FP nicht sperrt. So bin ich ohne zu Testen überzeugt, daß auch der unsichbare Reiter wie gewünsacht klickmäßig unbeachtet bleibt, wenn man das FP während der Ausführung des Ereignis-Cases nicht sperrt.
|
|
|
28.11.2008, 14:27
|
freezer
LVF-Grünschnabel
Beiträge: 27
Registriert seit: Oct 2008
8.6
2008
de
80331
Deutschland
|
Start/Stop Button zurücksetzen
Hallo,
ich glaube, dass ich mich falsch ausgedrückt habe.
Im Prinzip geht es mir um das folgende: Ich Steuer ein Gerät an. Hierzu klicke ich auf Start und es wird die Ansteuerung vorgenommen, welche auch mal 30 Sekunden oder mehr dauern kann. Nun kann es sein, dass der Bediener diese Ansteuerung zwischendurch abbrechen möchte. In diesem Fall muss das Gerät jedoch nochmals angesteuert werden. Man soll also während des Vorgangs auf Stop klicken können und es wird etwas ausgeführt.
Danke jedoch schonmal für die interessante Diskussion, ich habe einiges gelernt.
Gruß
freezer
|
|
|
28.11.2008, 15:27
|
IchSelbst
LVF-Guru
Beiträge: 3.697
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
Start/Stop Button zurücksetzen
' schrieb:Im Prinzip geht es mir um das folgende: Ich Steuer ein Gerät an. Hierzu klicke ich auf Start und es wird die Ansteuerung vorgenommen, welche auch mal 30 Sekunden oder mehr dauern kann. Nun kann es sein, dass der Bediener diese Ansteuerung zwischendurch abbrechen möchte. In diesem Fall muss das Gerät jedoch nochmals angesteuert werden. Man soll also während des Vorgangs auf Stop klicken können und es wird etwas ausgeführt.
Ich empfehle für Steuerungsaufgaben eine Entkopplung zwischen FP (also Button klicken etc) und Steuerung.
Klickt einer am FP auf Start, wird der Startbefehl per Queue an ein parallel laufendes SubVI, das die komplette Steuerung macht, gesandt. Das SubVI macht jetzt einen Steuerungsdurchlauf. Nach dem Duchlauf wird die Queue gelöscht. Der Anwender kann also klicken was er will, in Prinzip entscheidet das SubVI, welcher Button tatsächlich ausgeführt wird. Wenn er zwischendrinn auf Stopp drückt, wird auch der Befehl per Queue an das SubVI gesandt - und die Steuerung bleibt stehen.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
01.12.2008, 18:50
|
freezer
LVF-Grünschnabel
Beiträge: 27
Registriert seit: Oct 2008
8.6
2008
de
80331
Deutschland
|
Start/Stop Button zurücksetzen
' schrieb:Ich empfehle für Steuerungsaufgaben eine Entkopplung zwischen FP (also Button klicken etc) und Steuerung.
Klickt einer am FP auf Start, wird der Startbefehl per Queue an ein parallel laufendes SubVI, das die komplette Steuerung macht, gesandt. Das SubVI macht jetzt einen Steuerungsdurchlauf. Nach dem Duchlauf wird die Queue gelöscht. Der Anwender kann also klicken was er will, in Prinzip entscheidet das SubVI, welcher Button tatsächlich ausgeführt wird. Wenn er zwischendrinn auf Stopp drückt, wird auch der Befehl per Queue an das SubVI gesandt - und die Steuerung bleibt stehen.
Danke für den Hinweis. Ich habe mich nun doch dafür entschieden einfach einen separaten Stop-Button zu verwenden. Dieser reicht im Prinzip auch aus. Durch den Thread habe ich jedoch eine Menge gelernt, danke nochmal!
|
|
|
| |