INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Button entweder drücken oder gedrückt halten



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!

11.03.2013, 09:01
Beitrag #1

Golan Offline
LVF-Grünschnabel
*


Beiträge: 34
Registriert seit: Mar 2011

11.0.1
2011
DE


Deutschland
Button entweder drücken oder gedrückt halten
Hallo,

ich habe letzte Woche ein Projekt zugeteilt bekommen. Bei diesem Projekt wird ein Motor angesteuert und Sensoren eingelesen (was ich noch hinbekomme).
Mein Problem liegt jetzt bei der Vorgabe, dass dies mittels eines Button passieren soll.

Sollte der Button kurz gedrückt werden soll der Motor losfahren bis ein Sensorsignal anliegt was anzeigt dass der Motor seine Position erreicht hat. Wenn man nun den Button gedrückt hält soll der Motor solang weiterfahren (auch über die vorgegebenen Sensorpositionen hinaus) bis der Button wieder losgelassen wird.

Ich bin mir nun hierbei nicht ganz sicher wie ich das realiseren soll bzw. ob das Möglich ist. Bei den Beispielen mit den Eventstrukturen (mit denen ich noch so gut wie keine Erfahrung habe) finde ich immer nur Programme bei denen zwar die Möglichkeit des "Button gedrückt" halten gibt jedoch nicht ersteres (mich fuchst vor allem der Gedanke dass der Button ja im Grunde zwei Funktionen haben soll).

Grüße
Christian

PS: Sorry wegen dem komischen Betreff, mir viel grad nichts besseres ein.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
11.03.2013, 09:09
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Button entweder drücken oder gedrückt halten
Hallo Golan,

du brauchst hier wohl zwei Funktionalitäten:
1. Button gedrückt: Motorfahrt starten
2. Button losgelassen: je nach Zeit zwischen 1. und 2. die weitere Funktion "Sensorsignal abfragen" aktivieren

Für 1. und 2. gibt es eigene Events, in deren Cases du die jeweilige Zeit abfragen und in einem Schieberegister speichern müsstest (damit du in 2. die Zeitdifferenz bestimmen kannst).

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.03.2013, 09:58
Beitrag #3

Golan Offline
LVF-Grünschnabel
*


Beiträge: 34
Registriert seit: Mar 2011

11.0.1
2011
DE


Deutschland
RE: Button entweder drücken oder gedrückt halten
Hallo GerdW,

danke für die rasche Antwort.
Leider hab ich noch ein paar Fragen.

Zu aller erst, im Programm (siehe Screen) kann ich derzeit drücken was ich will, es passiert nichts. Scheinbar bleibt der derzeit bei der Event-Struktur hängen und nicht eimal der Stop-Button wird ausgeführt.

Zudem hätte ich eine Frage bezüglich der Event-Struktur (mangels Erfahrung). Button wird gedrückt und bleibt länger als 700 ms gedrückt, dadurch wird die Sensorabfrage abgeschalten. Wie ist der Ablauf, wird die Event-Struktur immer wieder abgefragt oder wird auf das loslassen des Buttons gedrückt gewartet? (wahrscheinlich ist dann mein derzeitiger Aufbau falsch)

Grüße
Christian


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.03.2013, 10:08 (Dieser Beitrag wurde zuletzt bearbeitet: 11.03.2013 10:09 von GerdW.)
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Button entweder drücken oder gedrückt halten
Hallo Christian,

Zitat:Zu aller erst, im Programm (siehe Screen) kann ich derzeit drücken was ich will, es passiert nichts. Scheinbar bleibt der derzeit bei der Event-Struktur hängen und nicht eimal der Stop-Button wird ausgeführt.
Aus einem Bild kann man schwer den Fehler herauslesen. Vielleicht doch mal das VI anhängen?
Anmerkung dazu: dein Profil ist unvollständig. Da stecken wichtige Informationen für alle Forumsteilnehmer drin, trage diese bitte nach! Post-880-1250020144

Zitat:Zudem hätte ich eine Frage bezüglich der Event-Struktur (mangels Erfahrung). Button wird gedrückt und bleibt länger als 700 ms gedrückt, dadurch wird die Sensorabfrage abgeschalten. Wie ist der Ablauf, wird die Event-Struktur immer wieder abgefragt oder wird auf das loslassen des Buttons gedrückt gewartet? (wahrscheinlich ist dann mein derzeitiger Aufbau falsch)
Eine Eventstruktur wartet auf die konfigurierten Events - damit willst du doch Polling vermeiden...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.03.2013, 12:43 (Dieser Beitrag wurde zuletzt bearbeitet: 11.03.2013 12:44 von Golan.)
Beitrag #5

Golan Offline
LVF-Grünschnabel
*


Beiträge: 34
Registriert seit: Mar 2011

11.0.1
2011
DE


Deutschland
RE: Button entweder drücken oder gedrückt halten
Hallo,
so Profil ist hoffentlich vollständiger Anniemacht_2

Vi ist auch angefügt (ich musste zum speichern zusätzlich eine *.ctl Datei speichern)

Wenn die Event-Struktur wartet bis der Button losgelassen wird muss ich also das abschalten des Sensors und das anfahren des Motors im Event selbst machen?(wobei das dürfte ja nicht sein, da er sonst nicht entscheiden kann ob der Knopf nur kurz oder länger gedrückt wurde).

Grüße
Christian


Angehängte Datei(en)
11.0 .vi  button_event_test.vi (Größe: 11,46 KB / Downloads: 236)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.03.2013, 12:57
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Button entweder drücken oder gedrückt halten
Hallo Christian,

Zitat:ich musste zum speichern zusätzlich eine *.ctl Datei speichern
Das kommt davon, dass du den Button "Rechts" in eine Typdefinition umgewandlet hattest. Warum auch immer...

Ich habe dein VI leicht geändert.
- Andere Events für den Button verwendet: Das Event "Taste gedrückt" bezieht sich auf Tastatureingaben und nicht auf Mausklicks. Stattdessen habe ich "Maustaste gedrückt" und "Maustaste losgelassen" eingestellt...
- Dem Button habe ich ein anderes Schaltverhalten verpasst, er schaltet nun mit der Einstellung "solange gedrückt". Das bisherige Latching ist hier eher störend...


Angehängte Datei(en)
11.0 .vi  button_event_test.vi (Größe: 11,67 KB / Downloads: 264)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
11.03.2013, 13:13
Beitrag #7

Golan Offline
LVF-Grünschnabel
*


Beiträge: 34
Registriert seit: Mar 2011

11.0.1
2011
DE


Deutschland
RE: Button entweder drücken oder gedrückt halten
(11.03.2013 12:57 )GerdW schrieb:  Hallo Christian,

Zitat:ich musste zum speichern zusätzlich eine *.ctl Datei speichern
Das kommt davon, dass du den Button "Rechts" in eine Typdefinition umgewandlet hattest. Warum auch immer...

Ich habe dein VI leicht geändert.
- Andere Events für den Button verwendet: Das Event "Taste gedrückt" bezieht sich auf Tastatureingaben und nicht auf Mausklicks. Stattdessen habe ich "Maustaste gedrückt" und "Maustaste losgelassen" eingestellt...
- Dem Button habe ich ein anderes Schaltverhalten verpasst, er schaltet nun mit der Einstellung "solange gedrückt". Das bisherige Latching ist hier eher störend...

Hallo GerdW,

danke das hilft mir weiter Smile
Bei "Taste gedrückt" bin ich irgendwie davon ausgegangen dass damit der Button gemeint war.

Die Umwanldung des Buttons in eine Typdefinition hab ich nicht gewollt gemacht, der Button war einfach verändert nachdem ich beim Event "Taste losgelassen" hinzugefügt habe.

Ich muss nur noch überprüfen inwieweit das Event keine Problem im restlichen Programm verursacht (dadurch dass es ja immer auf eine Eingabe der Taster wartet).

Danke nochmals für die Hilfe.

Grüße
Christian
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.03.2013, 13:17
Beitrag #8

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Button entweder drücken oder gedrückt halten
Hallo Christian,

Zitat:Die Umwanldung des Buttons in eine Typdefinition hab ich nicht gewollt gemacht, der Button war einfach verändert nachdem ich beim Event "Taste losgelassen" hinzugefügt habe.
Nein, bestimmt nicht...

Zitat:Ich muss nur noch überprüfen inwieweit das Event keine Problem im restlichen Programm verursacht (dadurch dass es ja immer auf eine Eingabe der Taster wartet).
Dafür gibt es ja das Event "TimeOut". Wenn man hier einen vernünftigen Wert vorgibt, blockiert die Schleife auch nicht (völlig)...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.03.2013, 16:04
Beitrag #9

Golan Offline
LVF-Grünschnabel
*


Beiträge: 34
Registriert seit: Mar 2011

11.0.1
2011
DE


Deutschland
RE: Button entweder drücken oder gedrückt halten
Hallo,

bisher klappt alles ziemlich gut, ich hänge nur gerade an einem kleinen Problem. Der Motor soll an einen bestimmten Punkt angefahren werden und mittels eines weiteren Button wird eine Messung vorgenommen. Diese Messung wollte ich nun über eine While-Schleife in der Event-Struktur realisieren (klappt ansich auch) nur ist die Sache, dass wenn während der Messung jemand die anderen Buttons drückt diese danach ausgeführt werden (d.h. jemand drückt auf Motor anfahren Button, fährt der Motor sofort nach der Messung weiter).
Ich habe nun versucht über Eigenschaftsknoten die Buttons zu deaktivieren während die Messung läuft, jedoch kann ich selbst auf einen ausgegrauten und deaktivierten Button drücken und es wird danach ausgeführt. Gibts ne Möglichkeit das anders zu beheben oder soll der Anwender später einfach die Finger von den Buttons lassen, während die Messung läuft Wink

Grüße
Christian

PS: VI ohne die Eigenschaftsknoten


Angehängte Datei(en)
11.0 .vi  buttons_event_test_4.vi (Größe: 18,17 KB / Downloads: 218)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.03.2013, 16:07
Beitrag #10

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Button entweder drücken oder gedrückt halten
Hallo Golan,

Zitat:Diese Messung wollte ich nun über eine While-Schleife in der Event-Struktur realisieren
Das Hauptübel liegt hier begraben...
Grundregel für Eventstrukturen: Events immer so schnell wie möglich abarbeiten!
Durch deine Whileloop wird diese Grundregel gebrochen. Du könntest zwar Workarounds schaffen, aber das ist (mMn) sehr unsauber.

Besser wäre eine Consumer-Producer-Struktur mit parallelen Schleifen. Eine Schleife für die Messung und eine für das UI-Handling (mittels Eventstruktur)...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Event Taste lange gedrückt hansi9990 1 2.799 17.02.2019 12:55
Letzter Beitrag: hansi9990
  Signal für 10 Minuten halten TenaciousTim 24 16.934 20.04.2016 13:49
Letzter Beitrag: BNT
  Reset wenn Save gedrückt baggio2008 9 7.282 24.04.2015 15:32
Letzter Beitrag: baggio2008
  While Schleife läuft nur wenn Taste gedrückt gehalten wird DocBader 7 5.857 20.01.2015 14:43
Letzter Beitrag: GerdW
  Schwellenwert, Wert "halten" Hattorii 3 5.088 18.05.2014 12:23
Letzter Beitrag: Hattorii
  Taste gedrückt Event mit Arrayelementen jh1988 10 9.531 04.09.2013 11:21
Letzter Beitrag: GerdW

Gehe zu: