Zwei Spannungen auslesen, einmal oft und einmal seltener
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!
Zwei Spannungen auslesen, einmal oft und einmal seltener
Hallo,
ich hab mal wieder ne "blöde" Frage. Hab grad mit dem schonmal geposteten Ringspeicher herumexperimentiert, allerdings komm ich da mit den Datentypen überhaupt nicht klar. Beim Queue-Status lesen bekomme ich als Ausgang immer ein elements / waveform out. Damit komm ich dann allerdings nicht mehr weiter weil dieses "1-D Array von" da irgendwie stört. Bevor ich da ewig rumprobiere, frage ich lieber. Ist das mit den Queues verkehrt oder kann man den Ringspeicher in meinem Fall so bauen?
Andere Möglichkeit: Man kann ja die Sampleanzahl des Signals auslesen, aber ein VI zur Begrenzung der Sampleanzahl scheint es nicht zu geben?! Über das VI "Signalattribut festlegen" geht es ja nicht. Das hatte ich mir gedacht, allerdings belehrte die Hilfe mich eines Besseren. Gibt es da doch irgendwie eine Möglichkeit die Signallänge zu begrenzen und alte Daten zu löschen?
danke fürs Durchlesen.
Gruß
Steffen
02.04.2009, 21:02 (Dieser Beitrag wurde zuletzt bearbeitet: 03.04.2009 19:47 von jg.)
Zwei Spannungen auslesen, einmal oft und einmal seltener
Moin, moin.
Danke für die Vorlage, hab mal grad reingeillert.
Mit der Abtastrate in Verbindung mit dem Faktor (hier 2) bestimme ich die Größe des Arrays. Die Null stellt den Anfangszustand bei jedem Programmstart dar. Das Verschieben und Einfügen verstehe ich auch, nur das Umkehren will mir noch nicht so recht in den Sinn.
Obwohl, ist das vllt. um das Signal hinten anzuhängen anstatt vorne? Wenn ja dann ist bei mir während des Schreibens der Groschen gefallen. Falls nicht, muss ich doch nochmal nachdenken.
Jetzt wird dann alles im Array gelöscht was an der 2001. Stelle steht, stell ich den Faktor auf 3 dann halt 3001. Stelle. Somit hab ich 2s Signalverlauf bei 1kS/s Abtastrate. Errechnet wird die Geschwindigkeit aber trotzdem bei jedem Schleifendurchlauf, genial.
Naja, dann muss ich jetzt mal schauen ob die Erfassung des Sensors klappt. Der schickt komischerweise nur 0,04V Signal raus. Dann noch ein paar Sicherungen einbauen, damit nix schiefgehen kann. Ich bin gespannt.
Danke nochmal jedenfalls, du warst mir eine sehr große Hilfe.
gruß
Steffen
03.04.2009, 19:46 (Dieser Beitrag wurde zuletzt bearbeitet: 04.04.2009 07:53 von jg.)
Zwei Spannungen auslesen, einmal oft und einmal seltener
' schrieb:Obwohl, ist das vllt. um das Signal hinten anzuhängen anstatt vorne?
Genau richtig erkannt! Ich will immer die neuen Werte hinten anhängen. Dazu muss natürlich das Array vorher nach vorne verschoben werden. Nachdem es dafür keine eingebaute Funktion in LV gibt, habe ich getrickst - Array drehen, hinterer Teil nach vorne (also eigentlich vorderer Teil nach hinten), wieder drehen. Wobei mir gerade auffällt, ich habe im letzten Upload noch einen Fehler eingebaut.
Zwei Spannungen auslesen, einmal oft und einmal seltener
Der Fehler war, dass ich im ersten Upload erst am Anfang die neuen Daten eingefügt habe und dann wieder das Array gedreht habe. Somit wurden die neuen Daten aber in der falschen Abfolge eingefügt.
Jetzt sieht es so aus: Array drehen -- hinterer Teil nach vorne -- Array drehen -- neue Daten (in korrekter Reihenfolge) am Ende einfügen.
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!
Zwei Spannungen auslesen, einmal oft und einmal seltener
Prinzipiell finde ich die Benutzung einer Queue als Ringpuffer, insbesondere seit dem Lossy Enqueue von 8.6, ein schönes und sinnvolles Pattern.
Wenn wie hier bockweise ersetzt werden soll, ist allerdings die "klassische" Variante Array in Schieberegister schon sinnvoller.
Warum Du allerdings die Arrays dauernd drehts verstehe ich nicht ganz.
Zwei Spannungen auslesen, einmal oft und einmal seltener
' schrieb:Warum Du allerdings die Arrays dauernd drehts verstehe ich nicht ganz.
, auf die Idee, mal eine negative Zahl an "Rotate 1D Array" anzuschließen, war ich auf die Schnelle nicht gekommen. Sehr gut, diese Lösung! Wobei ich meine, mal irgendwann auf LAVA gelesen zu haben, dass so einige Array-Funktionen wie z.B. "Reverse Array" gar keine neue Kopie im Speicher erstellen, weswegen diese Funktion auch bei großen Arrays quasi keine Zeit kostet. Dein Screenshot impliziert zwar etwas anderes, ist jetzt aber egal...
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!
Zwei Spannungen auslesen, einmal oft und einmal seltener
So, ich mal wieder. Das mit den Arrays hab ich mal angepasst, ob es so richtig ist weiß ich allerdings nicht. Irgendwie kommt da immer Null raus bei der Geschwindigkeit.
Den Regler hab ich auch mal versetzt. Mir ist aufgefallen dass ich ja den Abstand auf Null regeln will und nicht die Servos auf Neutralstellung. Was mich allerdings noch etwas fragend dastehen lässt, ist es bei der Berechnung des Spannungswertes im Regler nicht so, dass ich die Anteile zum Ist-Wert dazurechnen muss und nicht zum Sollwert?
gruß
Steffen
Sorry, ich weiß nicht so recht ob das hierrein passt oder ob ich da wieder einen extra Thread brauch.