Danke für die Hilfe!
Es funktioniert jetzt und ich kann beide Cursor Positionen auslesen.
Nehme mich deiner Tipps an und versuche sie Umzusetzen!
Mfg Teddy-HO
Hallo nochmal,
nun habe ich das nächste Problem was ich nicht alleine gebacken bekomme.
Da ich ja nun die beiden Cursor Positionieren kann und auch die Position auslesen kann. nun möchte ich einen Teil meines Graphen der Zwischen den beiden Cursorn liegt auslesen und mit den Daten in diesem Bereich Arbeiten.
Als erstes muß ich die Daten von dem Aktiven Plot lesen. diese kommen in einem Array an. ich will einen Teil aus diesem Array auslesen. Ich weiß das ich dazu einen Start und einen End Index bestimmen muß, diese will ich aus den X Koordinaten der Cursor holen.
Ich habe das versucht aber bisher ohne Erfolg.
Hat jemand eine Gute Idee wie ich das Problem lösen kann???
Mfg Teddy-HO
Anbei noch mein VI damit Ihr seht was ich meine.
Hallo Teddy,
die Kunst, mit LabVIEW zu programmieren, besteht nicht darin, möglichst wenig BD-Fläche zu belegen. Eher soll man auf den ersten Blick erkennen, was ein VI anstellt - was bei StackedSequences nicht gegeben ist...
Tipp:
Die Property Cursor.Index gibt dir den aktuellen ArrayIndex des Punktes...
Hallo GerdW,
ja ich weiß das, das mit den StackedSequences nicht optimal ist um gleich alles auf einen Blick zusehen. Bin aber auf Grund von Vorlagen und Platzmagel leider zu solchen Dingen gezwungen, sorry!
Ich habe das mit Cursor.Index probiert klappt aber leider nicht so wie erwartet bekomme leider keine Positionsdaten um die Daten aus dem Array zu lesen von meinem Aktiven Plot.
Muß ich das Array nochmal nach dem Start Punkt Durchsuchen den mir der erste Cursor ausgibt oder reicht es wenn ich das TeilArray mit den Jeweiligen Punkten aus den Cursorn auslese?(so wie ich es jetzt habe, bekomme dort aber keine Daten)
Mfg Teddy-HO
Hallo Teddy,
ich kann dein VI nicht debuggen, da mir subVIs und Daten fehlen.
Deshalb nur mal ein "Refactoring" - ohne Sequenzen und einigem anderen Kleinkram...
Danke schön hab ein paar änderungen von Dir mit Übernommen.
So ich hab mal die Sub VI´s aufgelöst und schick Dir noch mal nen paar daten für die Darstellung vlt. Hilft dir das, dann das Programm zum laufen zu bekommen.
Mfg Teddy-HO
Hallo Teddy,
Cursor.Index gibt natürlich nur dann einen (sinnvollen) Wert, wenn der Cursor an einen Plot gebunden ist... Bei einem freien Cursor kann dir LabVIEW ja nicht irgendeinen Indexwert präsentieren!
Habs mir auch mal kurz angesehen. Du darfst, wenn es um den Programmierstil geht, nicht alles tierisch ernst nehmen, was dir hier empfohlen wird. Jeder hat da andere Vorlieben. Ich benutze auch nach Möglichkeit die flache Sequenz statt der gestapelten - vor allem wenn ich hier ein Bild poste. Das VI dabei immer noch auf einer Seite unterzubringen, sollte allerdings die höhere Priorität haben - um diesen Preis würde ich nicht von der gestapelten auf die flache Sequenz übergehen.
Die fortgschrittenste Programmstruktur überhaupt sind die State-machines, und dort ist, wie überheupt bei Cases, die "Stapelung" auch nicht zu vermeiden. Ebenso bei Ereignisstrukturen. Und keiner regt sich da auf, dass das schlecht sei und LV deswegen geändert werden müsse. Nur bei Verwendung gestapelter Sequenzen fängt die Meute hier häufig an zu bellen - komisch.
Na jetzt gebe ich doch auch mal meinen Senf dazu. Also ich finde die gestapelte Sequenz auch alles andere als unsinnvoll. Besonders wenn man bei Programmstart einmal eine Initialisierung machen möchte finde ich das ganze sehr praktisch. Sind wir mal erlich, den Mist den man am Anfang einmal macht schaut sich hinterher eh keiner mehr an, weils ja um das eigentliche Programm geht. Also von daher finde ich es auch nicht verkehrt. Wie Lucki auch schon sagte, bei der Case oder bei events ist es ja auch nichts anders. Ich kann mir dein VI leider auch nicht anschauen aber oftmals sollte man auch schauen ob eine Sequenz überhaupt nötig ist, vielleicht kann man ja auch durch weiterreichen eines Error-Clusters eine sequenzielle Abarbeitung erzwingen? Also auf so etwas würde ich da schon eher achten.
Gruß
Daniel
Mein Senf:
wenn eine Sequenzstruktur wie hier nur dazu da ist, möglichst viel auf eine Bildschirmseite zu quetschen (!), wird's bedenklich. Und wenn durch die Sequenzstruktur auch noch Arbeit doppelt und dreifach gemacht wird (in jedem Frame die gleiche Abfrage nochmals!), ist sie auch nicht hilfreich. Und wenn man dann noch Textlabels verbaut, um Seuqenzlokals zu beschriften anstatt einfach die Drähte selbst zu belabeln (wie in LV2010 möglich) wird die Sache auch nicht übersichtlicher und platzsparender.
Außerdem:
Cases und Events verwenden Cases mit Klarnamen...