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 

Eingabefeld löschen nach Eingabe



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!

26.01.2015, 18:32 (Dieser Beitrag wurde zuletzt bearbeitet: 26.01.2015 18:34 von Gesetzt.)
Beitrag #1

Gesetzt Offline
LVF-Grünschnabel
*


Beiträge: 45
Registriert seit: Jan 2015

2013
2014
kA



Eingabefeld löschen nach Eingabe
Hallo,

Im Grunde sollte es sich um ein einfaches Problem handeln. Ich will einen Befehl eingeben, dieser soll ausgeführt werden, aber beim nächsten Durchlauf soll das Texteingabefeld wieder leer sein, damit der gleiche Befehl nicht nochmal mitgenommen wird. Das gleiche Problem habe ich bei den 2 Cases die ich über Schalter steuern will.
Ich betätige den Schalter, dadurch wird der Befehl mitgenommen, aber ich muss den Schalter manuell wieder ausstellen, damit der Befehl nicht zweimal mitgenommen wird. Ich hätte mir vorgestellt den "True Status" zwischenzuspeichern, sobald man den Schalter drückt( dieser springt automatisch wieder zurück, das kann man umstellen hab ich gesehen), weiß aber leider nicht genau wie man das realisieren kann.

Hoffentlich kann mir jemand helfenSmile.

Mit freundlichen Grüßen

Edit: Anhang vergessen^^

Gesetzt


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.01.2015, 18:39
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Eingabefeld löschen nach Eingabe

Akzeptierte Lösung

Einfache Lösung für deine Buttons: Verwende den Schaltmodus "Latch when Released" anstatt "Switch when..."

Mögliche Lösung für deinen String: Nach VISA Write einen leeren String in eine "lokale Variable" des Strings schreiben.

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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.01.2015, 20:02 (Dieser Beitrag wurde zuletzt bearbeitet: 02.02.2015 09:55 von Lucki.)
Beitrag #3

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Eingabefeld löschen nach Eingabe
Der Vorschlag von Jens löst Dein Problem, so wie Du gefragt hast. Wenn aber kein neues Kommando eingegeben wird, dann wird nicht etwas Nichts an das Gerät gesendet, sondern es werden ununterbrochen Zeilenendezeichen gesendet - mit maximaler Baudrate. Vielleicht soll das so sein, aber vorstellen kann ich mirs nicht.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.01.2015, 11:12
Beitrag #4

Gesetzt Offline
LVF-Grünschnabel
*


Beiträge: 45
Registriert seit: Jan 2015

2013
2014
kA



RE: Eingabefeld löschen nach Eingabe
Hallo,

Vielen Dank schonmal für die Antworten. Ich kann Labview erst nächste wieder benutzen, bin aber bei einigen Dingen nicht sicher, ob ich sie verstanden habe.

Die Lösung mit der lokalen Variable verstehe ich nicht ganz, hab bis jetzt noch nichts damit gemacht in Labview. Also: Ich setze das Texteingabefeld als lokale Variable, sodass die Eingabe dort gespeichert wird. Nach VISA Write wird dann die lokale Variable des Eingabefeldes mit einem leeren String befüllt? Hab ich das richtig verstanden? Wenn ja, wie stelle ich denn sicher, dass die lokale Variable genau nach VISA Write hineingeschrieben wird?


Mit freundlichen Grüßen

Gesetzt
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.01.2015, 11:20 (Dieser Beitrag wurde zuletzt bearbeitet: 27.01.2015 11:20 von GerdW.)
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 17.398
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Eingabefeld löschen nach Eingabe
Hallo Gesetzt,

Zitat:wie stelle ich denn sicher, dass die lokale Variable genau nach VISA Write hineingeschrieben wird?
THINK DATAFLOW!

Du musst per DATAFLOW sicherstellen, dass dieser Schreibzugriff erst nach dem VISAWrite erfolgt: packe eine flache Sequenz um deine lokale Variable und schließe den ErrorCluster, der aus dem VISAWrite herauskommt, am Rahmen dieser Sequenz an.

DATAFLOW: Eine Struktur/Funktion wird erst dann ausgeführt, wenn alle benötigten Inputs vorhanden sind!

Zitat:Ich setze das Texteingabefeld als lokale Variable, sodass die Eingabe dort gespeichert wird.
Du erzeugst eine lokale Variable deines Stringinputs.
THINK DATAFLOW: LabVIEW speichert Daten nicht in "Variablen", sondern in Drähten und Schieberegistern.
Lokale Variablen erlauben das Beschreiben von Controls und das Lesen von Indicatoren - und erzeugen (fast) immer Datenkopien der entsprechenden Daten.

Zitat:Nach VISA Write wird dann die lokale Variable des Eingabefeldes mit einem leeren String befüllt?
Ja, man schreibt in die lokale Variable und darüber in das Control…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.02.2015, 09:21 (Dieser Beitrag wurde zuletzt bearbeitet: 02.02.2015 09:25 von Gesetzt.)
Beitrag #6

Gesetzt Offline
LVF-Grünschnabel
*


Beiträge: 45
Registriert seit: Jan 2015

2013
2014
kA



RE: Eingabefeld löschen nach Eingabe
Hallo,

Ich habe versucht die Tipps mal umzusetzen. Das Eingabefeld wird auch ordnungsgemaess geloescht, aber wenn ich wahrend dem Programmablauf einen neuen Befehl in das Eingabefeld eingebe wird dieser nicht mitgeholt beim naechsten Durchlauf, sondern der alte. Woran liegt das?

Mit freundlichen Gruessen

Gesezt


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.02.2015, 09:26
Beitrag #7

GerdW Offline
______________
LVF-Team

Beiträge: 17.398
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Eingabefeld löschen nach Eingabe
Hallo Gesetzt,

Zitat:wenn ich wahrend dem Programmablauf einen neuen Befehl in das Eingabefeld eingebe wird dieser nicht mitgeholt beim naechsten Durchlauf, sondern alte.
Solche Sachen kann mit mit Highlight-Debugging und Sonden wunderbar selbst herausfinden. Hast du das versucht?
Wie soll ich das anhand deines Bildes machen?

Hinweise:
- Du arbeitest mit einem TermChar. Lass also bitte das BytesAtPort weg und frage eine ausreichende Anzahl Zeichen ab! (Hier könnte eine Fehlerursache liegen!)
- Sende keinen leeren Befehl zum Gerät - es sei denn, dieses verlangt danach…
- Verstecke NIE die Labels von Terminals im Blockdiagramm!
- Wie schnell läuft deine Schleife momentan?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.02.2015, 10:20 (Dieser Beitrag wurde zuletzt bearbeitet: 02.02.2015 14:03 von Lucki.)
Beitrag #8

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Eingabefeld löschen nach Eingabe
Wie Gerd schon sagte: Mit der Funktion bytes on Board hebelst Du die wunderbere Steuerung über TermChar wieder aus!
Deinem Bild nach ist klar, dass Du bei einem Schleifendurchlauf nicht die Antwort auf die Eingabe erhältst:
Mit "Senden" wird nur der Ausgabepuffer gefüllt, dass dauert 0 µs. Danach fragst Du ohne Warrtezeit ab, wie viele Bytes im Empfangspuffer sind. Zu diesem Zeitpunkt ist aber der Befehl noch nicht mal vollständig gesendet worden, von irgendeiner Antwort kann da noch gar keine Rede sein. Es ist nichts im Empfangspuffer - und wenn doch, dann deshalb, weil es nicht der erste Schleifendurchlauf war und sich die schließlich eingegangene Antwort aus dem vorangegangenem Schleifendurchlauf im Empfangspuffer befindet.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.02.2015, 20:09
Beitrag #9

Gesetzt Offline
LVF-Grünschnabel
*


Beiträge: 45
Registriert seit: Jan 2015

2013
2014
kA



RE: Eingabefeld löschen nach Eingabe
Hallo,

Danke für die ganzen Anregungen.

Also ich habe die String-Control jetzt geändert, sodass jedes mal der aktuelle Wert abgeholt wird. Das mit BytesAtPort werde ich aendern, auch wenn ich den Zusammenhang mit dem TermChar nicht verstehe( Vllt kann das jemand kurz erläutern?). Das mit dem leeren String ist eher eine Notlösung.

Natürlich würde ich es gerne so machen, dass der ganze Kram mit Visa Write nur ausgefuehrt wird, falls entweder einer der Schalter auf True steht, oder ein String eingegeben wurde. Meine Idee: Den Status von den Schaltern über ein logisches "Oder" verknüpfen. Zusätzlich müsste halt noch überprüft werden, ob etwas im Eingabefeld steht, also quasi wieder True oder False. Da weiß ich leider nicht, wie das mit Labview möglich ist. Das könnte quasi so aussehen: If "Empty String" then false else True. Die 3 könnte man dann über ein weiteres "Oder" verknüpfen und an eine Case Structure führen. Soviel zu meiner Idee. Das ganze sollte wenn möglich dann auch alle 500 ms überprüft werden.

Zusatzfrage dazu: Wenn ich jetzt den Befehl mit Enter bestätige, dann muss das ganze wieder in einer lokalen Variable gespeichert werden, oder merkt Labview sich automatisch die Eingabe bis abgefragt wird?

Mit freundlichen Grüßen

Gesetzt
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.02.2015, 20:37
Beitrag #10

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Eingabefeld löschen nach Eingabe
Also so z.B.:
   
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.
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
  Mehrfache Eingabe in Windows Konsole Roxor 4 3.394 04.04.2019 14:04
Letzter Beitrag: Roxor
  Passwort Eingabe 911tom 21 10.509 21.03.2017 07:44
Letzter Beitrag: GerdW
  Eingabe String nach einen bestimmten Format bearbeiten galilio 18 9.723 27.01.2017 10:58
Letzter Beitrag: jg
  Eingabe in String-Eingabefeld behalten GrEeHoRn 5 7.098 28.02.2014 11:04
Letzter Beitrag: GrEeHoRn
  Taste während Eingabe checken Hasenfuss 2 3.834 25.04.2013 17:51
Letzter Beitrag: Hasenfuss
  Ausgabe mit Eingabe "verknüpfen" PAK 2 3.815 05.07.2012 16:56
Letzter Beitrag: Y-P

Gehe zu: