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!
24.04.2007, 15:55 (Dieser Beitrag wurde zuletzt bearbeitet: 24.04.2007 16:01 von schuggiz.)
ich bin neu bei LabVIEW, deshalb entschuldigt bitte meine wahrscheinlich etwas dumme Frage:
Und zwar versuche ich, einen Schrittmotor und einen Lock-In Verstärker zu bedienen. Dabei verfahre ich meinen Schrittmotor um eine definierte Schrittzahl und lese dann an den vorgegeben Positionen die Amplitude aus. Die ausgegeben Daten sind vom Typ String. So weit, so gut. Die Position des Motors und die Amplitude gebe ich dann in einer Tabelle aus, was auch sehr gut klappt.
Nun aber mein Problem:
Ich möchte diese Daten auch plotten, und zwar die Position des Motors auf der X-Achse und die Amplitude auf der Y-Achse. Das klappt bei mir aber leider nicht. Die Punkte werden immer auf der Position (0,0) dargestellt!
Den wohl wichtigen Teil des Programms habe ich als jpg angehängt, ich hänge aber auch das gesamte Messprogramm an (ich wusste zu Beginn gar nicht, dass man Sub-Vi's erstellen kann, deshalb ist es so groß - peinlich). Dieses gesamte Programm hab ich dann als Sub-VI zusammengefasst und in ein anderes VI eingefügt, um es besser bedienen zu können. Das füge ich dem ganzen auch an.
Mein Ziel ist es, einfach einen Plot zu haben, in dem die Messwerte als Folge von Punkten gezeigt werden und die Achsen sich entsprechend der Minima und der Maxima der Messwerte autoskalieren.
Wenn mir jemand von Euch helfen könnte, wäre das wirklich super!
ich muss mein Problem mal kurz umschreiben:
ich bekomme es inzwischen hin, dass anständig skaliert wird.
Es werden auch der Reihe nach alle Messwerte dargestellt, allerdings wird immer der vorige Wert gelöscht, wenn der aktuelle geschrieben wird....kann mir da jemand helfen?
Danke und tschüß!
schuggiz
24.04.2007, 16:43 (Dieser Beitrag wurde zuletzt bearbeitet: 24.04.2007 16:47 von eg.)
Auf dem XY-Plot wird ein Y-Array über dem X-Array dargestellt, das muss dir klar werden.
Wenn deine Arrays aus jeweils nur einem Element bestehen, dann wird halt nur eine Zahl über einer anderen dargestellt.
Um ständig die Daten zu sammeln, kannst du Build Array VI benutzen. Damit kannst du neue Werte in deine bestehenden Arrays "dazuhängen" und diese Arrays auf den XY-Plot ausgeben.
eg
P.S. oder benutze für den Anfang das Extended XY-Plot, damit geht es leichter.
Das ist jetzt keine Antwort auf Deine Frage, aber das Erste, was mir beim Betrachten Deines VIs aufstieß, war die unendlich ineinandergeschachtelte Menge von Cases auf der linken Seite. Das kann man sehr viel einfacher lösen, entweder so:
(wobei man den Faktor 3 gleich in die Einzelelemente einarbeiten sollte, um sich die Multiplikation zu ersparen)
Oder noch einfacher mit einem einzigen Ring-Bedienelement. Wenns Dich interessiert, zeige ich Dir auch das.
danke erstmal für die Antwort zum XY-Plot.
Ich hab das jetzt so geregelt, wie man im angehängten Bild sehen kann. Das funktioniert auch ganz gut, die Werte werden richtig geplottet und die Achsen richtig skaliert.
Dieses ganze VI hab ich zu einem Sub-VI zusammengefasst (bis auf den Teil mit dem XY-Plot unverändert das Blockdiagramm, das ich oben angefügt hatte) und in ein übergeordnetes Blockdiagramm eingefügt, damit ich das Programm quasi im Standby laufen lassen kann (also wiederholt ausführen) und die Messung nur dann starte, wenn es nötig ist.
Einen XY-Graphen hab ich dann im übergeordneten Blockdiagramm an den entsprechenden Ausgang des Sub-VIs angefügt. Allerdings muss man dann warten, bis die gesamte Messung durch ist, bis die Messwerte geplottet werden. Wenn ich das ändern könnte, wäre das super, weil die Messungen sehr lange dauern und man vorher sehen könnte, wenn etwas nicht stimmt!
Bezüglich der ineinander geschachtelten case-Struktur:
Ich weiss, dass es schlimm aussehen muss. Ich hatte es erstmal versucht, einen Formelknoten einzufügen und das darin mit Source-Code zu lösen. Klappte aber leider nicht. Das war die einzige Lösung, die mir auf die schnelle einfiel. Wenn's mit einem Ring-Bedienelement einfacher geht, dann wäre es echt nett, wenn Du mir das mal zeigen würdest.
Nach meinem Praktikum hinterlasse ich das Programm nämlich auch Leuten, die mit LabVIEW genauso wenig bzw. sogar weniger umgehen können, als ich!
' schrieb:Ich hatte doch schon Extended XY Plot vorgeschlagen, es wird schon alles für dich machen.
eg
Ja, allerdings habe ich das Problem, dass ich den weder in der Hilfe noch in meinen Element- / Funktionspaletten finde. Ich habe die deutsche Version, also gehe ich davon aus, dass er "erweiterter XY Plot" heissen würde. Den finde ich leider nicht. Allerdings, auch wenn ich nur nach XY suche, taucht der extended XY Plot nicht in der Trefferliste auf...
' schrieb:Ja, allerdings habe ich das Problem, dass ich den weder in der Hilfe noch in meinen Element- / Funktionspaletten finde. Ich habe die deutsche Version, also gehe ich davon aus, dass er "erweiterter XY Plot" heissen würde. Den finde ich leider nicht. Allerdings, auch wenn ich nur nach XY suche, taucht der extended XY Plot nicht in der Trefferliste auf...
Sorry, es heisst Express XY Graph und befindet sich gleich neben dem normalen XY Graph. Wenn du ihn gar nich hast, kannst du die Daten auch selber in die Arrays einfügen (mit Build Array und Schieberegister).
ja, den Express XY Plot habe ich. Allerdings schaffe ich es nicht, damit mein Problem zu lösen. Wenn ich (auch den Standard XY Plot) wirklich innerhalb der Schleife, in der die Daten auch in die Tabelle geschrieben werden, innerhalb meines SUB-VI's benutze, dann klappt schreibt er immer den aktuellen Wert in den Graphen, überschreibt aber den vorigen Wert. Dabei habe ich das Element "Array erstellen" vor den Graphen geschaltet, in der Hoffnung, immer das ganze Array als Plot zu sehen.
Wenn ich den Grpahen aus der Schleife heraus nehme, dann plottet er alles, und auch richtig, aber erst nach dem kompletten Messdurchlauf.
Ich füge nochmal mein Sub-VI ein, das obergeordnete VI und einen screenshot des entsprechenden Bereichs. In dem Beispiel habe ich jetzt beide Graphen eingefügt - innerhalb und außerhalb der Schleife.
Vielen Dank für die Hilfe!!!
Gruß
schuggiz
' schrieb:Sorry, es heisst Express XY Graph und befindet sich gleich neben dem normalen XY Graph. Wenn du ihn gar nich hast, kannst du die Daten auch selber in die Arrays einfügen (mit Build Array und Schieberegister).