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 

Numeric-Control Wert mit Radio-Button presetten



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!

13.08.2012, 09:12
Beitrag #1

Tallyho Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Aug 2012

8.0
2012
EN



Numeric-Control Wert mit Radio-Button presetten
Hallo,

Ich benutze ein VI mit While-Loop um Frequenz Generator Hardware über eine serielle Schnittstelle anzusteueren. Die Schnitstelle und das eigentliche ansteuern funktionieren.

Der Ausgangsparameter wird ganz einfach berechnet: (User-Eingabe x Constant) + Offset.

User-Eingabe ist mittels Numeric Control.

Mit Radio-Buttons selektiert der User einen Frequenz Bereich. Bei anklicken eines Buttons wird einen Preset-Wert in den Numeric Control geladen, und werden Constant und Offset (neu)initialisiert. Der Preset-Wert, Constant, und Offset werden aus einer Datei eingelesen.

Und jetzt wird's (für mich) schwierig... Der Num Control sollte beim anklicken eines Buttons nur 1 mal ge-preset werden - sonnst wird die User-Eingabe dauernd überschrieben. Deshalb habe ich die Radio-Buttons und presetten vom Num Control in einer Event-Structure untergebracht, mit Time-Out Event (ohne Time-Out benimmt es sich genau so wie ohne Event Structure).

Das funktioniert - fast! Beim anklicken eines Buttons werden tatsächlich Num Control, Constant, und Offset korrekt initialisiert. Aber... bei jeder Iteration der While-Loop, in der kein Button angeklickt wird, ist der aktuelle Button-Wert ausserhalb der Event-Structure nicht verfügbar (nur der default Wert = Button 1), und werden Constant und Offset mit dem falschen Wert überschrieben.

Was sollte ich ändern, damit es richtig funktioniert?

VI anbei (einlesen der Datei und COM-Schnittstelle habe ich rausgestrippt).


Angehängte Datei(en)
8.0 .vi  num-control-preset-problem.vi (Größe: 348,04 KB / Downloads: 194)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
13.08.2012, 09:53 (Dieser Beitrag wurde zuletzt bearbeitet: 13.08.2012 09:55 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.412
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Numeric-Control Wert mit Radio-Button presetten
Hallo Tallyho,

Zitat:mit Time-Out Event (ohne Time-Out benimmt es sich genau so wie ohne Event Structure). ... bei jeder Iteration der While-Loop, in der kein Button angeklickt wird, ist der aktuelle Button-Wert ausserhalb der Event-Structure nicht verfügbar (nur der default Wert = Button 1), und werden Constant und Offset mit dem falschen Wert überschrieben.
Genau dieser TimeOutEvent ist dein Problem!
1) "ohne Timeout benimmt es sich wie ohne Event-Struktur" kann ich nicht nachvollziehen. Ohne TimeOut ist es immer noch eine Eventstruktur, die auf registrierte Events reagiert...
2) Im Timeout-Event gibst du leider keinen "richtigen" Wert aus, sondern verwendest "default if unwired". Ändere dieses und dein VI wird bedienbar...
3) Statt eines TimeOut solltest du lieber ein "Stopp-Button"-Event berücksichtigen.
4) Im "Band Selection"-Event solltest du die anderen Anzeigen setzen. Und nur im Event, nicht danach!
5) Tipp: LV speichert Werte in Schieberegistern...
6) Tipp: Es gibt auch "normale" Value-Properties und es gibt auch lokale Variablen, in die man Werte schreiben kann...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.08.2012, 11:51
Beitrag #3

Tallyho Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Aug 2012

8.0
2012
EN



RE: Numeric-Control Wert mit Radio-Button presetten
Hallo Gerd,

danke für die schnelle Antwort!

Deine Vorschläge 1, 2, 4 implementiert. Damit beim Time-Out die alten Werte am Ausgang der Event Structure erscheinen, habe ich dem While-Loop 2 Shift-Register hinzugefügt. Im Time-Out Fall werden die Register Ausgänge einfach 1:1 an die Event Strcuture Ausgänge weitergeleitet. Funktioniert einwandfrei. Vielleicht nicht die sauberste Lösung, aber: if it works, don't fix it!

Dein 3. Punkt verstehe ich nicht ganz. Time-Out ist hier kein Fehlerfall...

Bez. Punkt 6: anfangs habe ich versucht den Num Control mittels "Value" zu pre-setten, aber das hat irgendwie nicht funktioniert - mit "Value(Signal)" ging es dann...

Frank


Angehängte Datei(en)
8.0 .vi  num-control-preset-problem V2.vi (Größe: 348,87 KB / Downloads: 163)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.08.2012, 12:03 (Dieser Beitrag wurde zuletzt bearbeitet: 13.08.2012 12:08 von GerdW.)
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.412
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Numeric-Control Wert mit Radio-Button presetten
Hallo Tallyho,

noch ein paar Anmerkungen:
   
- es ist keine gute Idee, die PropertyNode des Bedienelements "Manual freq input" umzubenennen in "Dial freq input": es verwirrt den Betrachter und ich habe schlechte Erfahrungen damit gemacht (ältere LV-Versionen neigten dann zu Abstürzen)
- ich persönlich halte es für eine schlechte Idee, Zeilenumbrüche im Label eines Controls zu verwenden: der Eintrag in der Eventstruktur wird verstümmelt und man kann dafür immer die Caption verwenden
- es ist Unsinn, sowohl ein TimeOut von 200ms als auch ein zusätzliches LoopIntervall von 200ms vorzugeben. Der TimeOut reicht aus, um die Schleife warten zu lassen
- dieses Wandeln von Array nach DDT und gleich wieder zurück nach Array ist natürlich auch unnötig
- schon mal über die Verwendung von Arrays für deine Anzeigen (Pre, IF, mult, Band) nachgedacht?

Zitat:Deine Vorschläge 1, 2, 4 implementiert.
- Leider nicht. Du setzt die verschiedenen Dinge immer noch nach der Event-Struktur...
- Der Timeout ist immer noch unnötig. Diese Schleife wartet (momentan) nur auf zwei Dinge: Änderung der Bandauswahl und Stopp-Button. Falls die anderen Eingaben auch wichtig sind, mache weitere Events oder erstelle ein Event für mehrere Bedienelemente...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.08.2012, 13:57
Beitrag #5

Tallyho Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Aug 2012

8.0
2012
EN



RE: Numeric-Control Wert mit Radio-Button presetten
Hallo Gerd,

"Manual freq input" gibt es nur in dem vereinfachten VI der Anlage. In dem kompletten VI ist es OK.

Die Zeilenumbrüche werde ich beseitigen.

Die Array --> DDT --> Array Umwandlungen sind da, weil ich in dem vereinfachten VI keine Init-Datei einlese (und die Datei mitschicken müsste), die einzulesenen Werte aber brauche.

Zitat:Der Timeout ist immer noch unnötig.
Timer-Constant = 0 setzten statt X mSek funktioniert. Tatsächlich den Time-Out Event Case entfernen aber nicht.

Zitat:Du setzt die verschiedenen Dinge immer noch nach der Event-Struktur...
Habe den "Manual frequency input" Num Control in einem zusätzlichen Event Case untergebracht (+ 3. Shift Register), und die Stopp-Taste ebenso in einem zusätzlichen Event Case gesteckt.

Und funktioniert immer nochMetal


Angehängte Datei(en)
8.0 .vi  num-control-preset-problem V3.vi (Größe: 350,91 KB / Downloads: 173)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.08.2012, 14:12
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.412
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Numeric-Control Wert mit Radio-Button presetten
Hallo Tallyho,

bei Eventstrukturen ist es (fast) immer schlecht, wenn man "default if unwired"-Ausgänge benutzt...
Der Timeout-Case ist und bleibt unnötig, ebenso die zusätzliche Wartezeit in der Schleife...


Angehängte Datei(en)
8.0 .vi  num-control-preset-problem V3.vi (Größe: 54,69 KB / Downloads: 216)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.08.2012, 14:55
Beitrag #7

Tallyho Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Aug 2012

8.0
2012
EN



RE: Numeric-Control Wert mit Radio-Button presetten
OK, Time-Out Case jetzt auch weg; geht, kein Problem Beer.

Less is more!

Danke Gerd!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.08.2012, 21:50 (Dieser Beitrag wurde zuletzt bearbeitet: 14.08.2012 18:07 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: Numeric-Control Wert mit Radio-Button presetten
Kleiner Tip am Rande:
Diese vielen gleichartigen Strickmuster:
   
lassen sich problemlos durch Cluster mit vordefinierten Werten ersetzen:
   
was noch den Vorteil hätte, dass sich die Werte im Konfig-Tab editieren lassen.

8.0 .vi  Beisp.vi (Größe: 8,67 KB / Downloads: 199)
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
  Software Defined Radio ansteuern MarcelXX 1 2.480 04.02.2019 11:18
Letzter Beitrag: Freddy
  Scale Control with Tab Control GT123 6 5.434 08.12.2016 12:42
Letzter Beitrag: jg
  Wert an naheliegensten Wert aus Array anpassen TSC 17 9.681 26.07.2016 06:59
Letzter Beitrag: TSC
  Aktueller Wert von vorherigem Wert abziehen Semicon 6 6.235 18.06.2014 16:34
Letzter Beitrag: jg
  programatische Änderung eines Numeric Control mit Range frankfurt2222 2 3.070 10.06.2014 11:14
Letzter Beitrag: frankfurt2222
  Ändern der Caption bei Radio-Buttons Tobi.KT 20 12.061 27.01.2014 10:32
Letzter Beitrag: Tobi.KT

Gehe zu: