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 

Einmaliges Cursor-Position lesen



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!

22.03.2011, 12:00
Beitrag #1

GaK Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Mar 2011

8.5
-
DE



Einmaliges Cursor-Position lesen
Aloa!
Ich stehe etwas auf dem Schlauch.. es geht um ein VI, das anhand einer Messdatendatei einen Graphen erstellt (Massenspektrometermessung mit Magnetstrom als X-Achse). Nun soll mit einem Cursor eine X-Position ausgewählt werden, von der man die Masse weiß. Auf Knopfdruck (Boolean False->True) soll nun die X-Achse von diesem Punkt ausgehend umgerechnet werden und der entstandene Graph dargestellt werden. Wenn der Boolean wieder zu False geändert wird, soll der Ursprungsgraph dargestellt werden. Aktuell arbeite ich daher mit einer Case-Struktur, die je nach True/False des Schalters den einen oder den anderen Graphen darstellt. Funktioniert soweit recht gut...

Mein Problempunkt ist nun das Abfragen der aktuellen X-Cursors-Position. Abfragen kann ich sie, wenn ich dann damit allerdings die X-Achse umrechne, ändert sich widerum die X-Position des Cursors, womit erneut die X-Achse angepasst wird usw. ... was dann zu nichts verwertbarem führt. Ich will also beim Knopfdruck (Boolean False->True) einmalig die X-Position des Cursors abfragen und anhand dessen die Achse umrechnen; zumindest ist das aktuell mein Ansatz, bei dem ich allerdings nicht all zu weit komme.

Wenn ich den Schalter auf Latch stelle, sollte ich ja mit einer Case-Struktur die X-Cursor-Position beim Knopfdruck abfragen, dann habe och allerdings ein Problem mit der Case-Struktur des "normaler Graph/umgerechneter Graph" - es gibt also nicht zufällig eine mir bisher entgangene Möglichkeit, einen Schalter im Frontpanel an sich als "beim Drücken schalten" aber nebenbei auch als Latch im Blockdiagramm zu verbinden? Es wäre noch eine Möglichkeit mit zwei Schaltern zu arbeiten, aber das würde ich ungern machen..

Ich habe auch schon probiert, die X-Position einfach in ein Array zu schreiben und nur den ersten Wert auszulesen. Nur entweder überschreibt er dann den ersten Wert kontinuierlich oder wenn ich wieder in die Normaldarstellung wechsele und mit einer anderen Position/Masse umrechnen will führt er das Array weiter fort und ich lese die "alte" Position. Würde es also gehen wäre es auch eine Möglichkeit, einzubauen, das beim wechsel True->False das Array gelöscht wird, da bin ich allerdings auch nicht weiter gekommen.

Sollten meine Ansätze alle zu nichts zu gebrauchen sein freue ich mich natürlich sehr über Inspiration anderer Herangehensweisen *g*

Danke schonmal im Vorraus! Smile
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.03.2011, 12:24
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Einmaliges Cursor-Position lesen
1. Möglichkeit:
Event-Struktur verwenden! Du arbeitest nur etwas ab, wenn auch das Event "Knopf betätigt" erfasst wird.

2. Möglichkeit: Du erfasst den Status-Wechsel des Buttons, d.h. du schaust dauernd nach, ob sich der Zustand geändert hat. Und nur bei Änderung des Zustandes machst du was.

Ein fertiges VI dazu gibt es unter der Palette Signal-Processing -> Point by Point -> Other Functions PtbyPt

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
22.03.2011, 12:46
Beitrag #3

NWOmason Offline
Simultator
*****


Beiträge: 1.078
Registriert seit: Dec 2010

2012.SP1
2008
EN

93047
Deutschland
RE: Einmaliges Cursor-Position lesen
Hallo,

hier mal eine schnell umgesetzte Konzeptidee, wobei ich mal die Y-Werte neu berechnet habe. Aber was man im entsprechenden Case gemacht wird, ist ja egal Wink Ach ja, und ne Reset Funktion ist auch dabei, falls doch mal neu berechnet werden soll Smile

   


8.6 .vi  Umschalten mit Cursor Position.vi (Größe: 14,17 KB / Downloads: 219)


Beste Grüße,
NWO

9 von 10 Stimmen in meinem Kopf sagen: Ich bin nicht verrückt,
die andere summt die Melodie von Tetris
.

NI schrieb:To use the abort button is like using a tree to stop a car!

(20.01.2012 11:02 )NWOmason schrieb:  Getting Started with NI LabVIEW Student Training
http://zone.ni.com/devzone/cda/tut/p/id/7466

Introduction to NI LabVIEW - Learn LabVIEW Basics
http://www.ni.com/gettingstarted/labviewbasics/

Top 5 der Empfehlungen für LabVIEW-Einsteiger
http://www.ni.com/newsletter/51735/de/
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.03.2011, 14:03
Beitrag #4

GaK Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Mar 2011

8.5
-
DE



RE: Einmaliges Cursor-Position lesen
Danke für die schnellen Antworten Smile

Wenn ich die Abfrage des X-Cursor-Punktes in eine Event-Struktur packe funktioniert es zwar, aber ich müsste die Graphenskalierung automatisch lassen (was zoomen, wenn ich nicht was übersehen habe, bei einem wiederholt ausgeführtem VI nicht möglich macht); Atm nutze ich eine ausgeschaltete Auto-Skalierung und einen Latch-Button der mir auf Knopfdruck einmalig die Achsen wieder passend Skaliert.

Bei der Zustandsänderungsabfrage (ich wandle den Boolean in 0/1 um und Frage dort eine Zustandsänderung über beschriebene VI ab, steuere über ausgegebenen Boolean widerum eine Case-Struktur, welche bei True den aktuellen Cursor-Wert übergibt) habe ich das Problem, das ich auch bei False etwas übergeben muss, er also den bei True gesendeten Wert nicht "speichert".

Dein VI kann ich leider nicht öffnen, NWOmason, da mein Labview etwas zu alt ist :/
Und anhand des Screenshots werde ich mit meinem bisherigen Können noch nicht ganz schlau ^^

Aktuell habe ich es ersteinmal so gelöst, das man die aktuelle Cursor-Position angezeigt bekommt und einfach in ein Bedienelement per Hand übertragen muss, der Wert somit aber "fix" ist. Was jedoch keine "perfekte" Lösung ist.

Ich habe nun mal mein VI angehängt, vielleicht findet sich da ja auch ein prinzipieller Denkfehler von mir. Allerdings befürchte ich, das mein Programmierstil eher mau ist, da ich mich seit noch nicht zu langer Zeit rein per Ausprobieren "einarbeite".
Der Anfangskram ist nur dafür da, den Header nach gewissen Kriterien auseinander zu sägen, in bestimmten Feldern anzuzeigen und die Messdaten auszulesen und zu Formatieren (am Ende habe ich dann zwei 1d-Arrays aus Fließkommazahlen, welche in die Case-Struktur übergeben werden).


Angehängte Datei(en)
8.5 .vi  Messdatentransformation.vi (Größe: 69,12 KB / Downloads: 178)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.03.2011, 15:51
Beitrag #5

NWOmason Offline
Simultator
*****


Beiträge: 1.078
Registriert seit: Dec 2010

2012.SP1
2008
EN

93047
Deutschland
RE: Einmaliges Cursor-Position lesen
(22.03.2011 14:03 )GaK schrieb:  Wenn ich die Abfrage des X-Cursor-Punktes in eine Event-Struktur packe funktioniert es zwar, aber ich müsste die Graphenskalierung automatisch lassen (was zoomen, wenn ich nicht was übersehen habe, bei einem wiederholt ausgeführtem VI nicht möglich macht)

Die wiederholte Ausführung benutzt man auch nur zu Debug-Zwecken oder Testen. Im Normalfall hat man _immer_ eine While-Schleife um die relevanten zu wiederholende Programmteile gezogen. Ich persönlich nutze den Button so gut wie niemals.

(22.03.2011 14:03 )GaK schrieb:  Dein VI kann ich leider nicht öffnen, NWOmason, da mein Labview etwas zu alt ist :/
Und anhand des Screenshots werde ich mit meinem bisherigen Können noch nicht ganz schlau ^^

Sorry, da hatte ich mich verschaut, ich dachte deine Version wäre die 8.6. Ich habe es jetzt nochmal weiter runterkonvertiert. Nun sollte es zu öffnen sein.


8.2 .vi  Umschalten mit cursor Position.vi (Größe: 19,3 KB / Downloads: 228)


Dort ist die das Ganze mit einer Eventstruktur umgesetzt. Mit dem Button 'Umschalten' wird der Graph zwischen den ursprünglichen Werten und den neuen Werte umgeschalten. Wird der Button zum ersten mal betätigt, findet eine Neuberechung (im Beispiel der Y-Werte) statt. Dieses lässt sich auch wieder Quitieren und beim nächsten Umschalten des Buttons auf Ture findet eine erneute Neuberechung statt. Der 'Stop'-Botton beendet das Progamm Wink

Beste Grüße,
NWO

9 von 10 Stimmen in meinem Kopf sagen: Ich bin nicht verrückt,
die andere summt die Melodie von Tetris
.

NI schrieb:To use the abort button is like using a tree to stop a car!

(20.01.2012 11:02 )NWOmason schrieb:  Getting Started with NI LabVIEW Student Training
http://zone.ni.com/devzone/cda/tut/p/id/7466

Introduction to NI LabVIEW - Learn LabVIEW Basics
http://www.ni.com/gettingstarted/labviewbasics/

Top 5 der Empfehlungen für LabVIEW-Einsteiger
http://www.ni.com/newsletter/51735/de/
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
  Motorsteuerung (VCP) Erfassung Geschwindigkeit und Position JanM 2 3.300 15.06.2021 07:48
Letzter Beitrag: GerdW
  RPM Messung über Drehgeber Position RobinDR 3 3.861 19.11.2016 16:13
Letzter Beitrag: GerdW
  Polling von Curser-Position in Waveform Graph vermeiden UFPhC 11 9.056 16.10.2014 12:00
Letzter Beitrag: Trinitatis
  Cursor-Position einlesen unbekannt 1 3.628 30.03.2014 17:40
Letzter Beitrag: Trinitatis
  Position Pfeilschaltschläche Enum verschieben Hasenfuss 2 3.932 11.04.2013 15:13
Letzter Beitrag: Hasenfuss
  Hohe Prozessorauslastung nach Festlegen von Fenstergröße/-Position Soean 22 16.039 13.06.2012 14:42
Letzter Beitrag: Soean

Gehe zu: