Probleme mit Drehgeber - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Probleme mit Drehgeber (/Thread-Probleme-mit-Drehgeber) |
RE: Probleme mit Drehgeber - GerdW - 02.07.2012 10:33 Hallo Benny, Zitat:ob ich das mit dem Startbuttom zum Programmstart richtig gelöst habe?Jein. Wie oft pro Sekunde willst du denn den Startknopf abfragen? Millionen male? In jede UI-Schleife gehört eine Wartezeit. Üblicherweise in der Größenordnung von 100ms... Zitat:ein Dropdown menü mit den Werten 2 und 50. Wie kann man dies machen?Genau so: mit einem Dropdown-Menü aka "Ring". Nimm einen Menüring und trage die zwei Optionen 2 und 50 ein! ("Sequentielle Werte" ausschalten...) Gut, dass du das mit dem "Kopieren" schon selbst entfernt hast Noch ein Tipp: Deine CTR-Messung liefert immer genau einen Messwert, leider verpackt in einem Array. Du könntest also direkt nach der CTR-Abfrage ein IndexArray verwenden und dann mit Skalaren weiterrechnen. Außerdem ist die ArraySum-Funktion dann weniger verwirrend für den Betrachter - falsch ist sie ja nicht, da nur ein einziges Arrayelement addiert wird... RE: Probleme mit Drehgeber - Ben187ny - 31.07.2012 20:33 Hallo, da bin ich nochmal. Habe jetzt mein Projekt aufgebaut und die ersten Testläufe gemacht. Da gab es dann gleich ein paar Probleme. Ich habe in dem Programm zwei Berechnungsverfahren für den zurückgelegten Weg einmal für 50mm und einmal für 2mm Schritte. Beim Testlauf habe ich bemerkt das bei der 50mm Version der Weg korrekt berechnet wird aber bei der 2mm Version zeigt er komischerweise immer nur ca. die hälfte des Weges an. Das Wäre das erste problem und habe viel probiert aber nichts hat geholfen. Das zweite Problem ist, dass beim hochzählen des Weges immer der erste 50mm oder 2mm Schritt nicht mitgezählt wird. Das sieht so aus, dass bis 50mm hoch zählt wird und der Zähler dann auf 0 springt statt auf eins und dann fängt er erst zu zählen an. Könnte doch jetzt theoretisch einfach das Ring also 50 oder 2 einmal je nach Berechnungsverfahren dazu zählen oder? Im Anhang ist auch nochmal das VI. Bis auf die beiden Sachen funktioniert auch alles soweit. Ich wollte aber gerne noch eine statistische Auswertung einfügen und zwar wollte ich die berechneten Höhendifferenzen in einem Array speichern. Aus diesen Werten würde ich dann gerne einmal den Mittelwert sowie den gleitenden Mittelwert über 50 Werte bilden und die Standartabweichung sowie aus diesen berechneten Werten noch ein paar anderen Berechnungen. Aber leider scheitert es schon daran nach jeder Berechnung das Array zu entleeren. Wäre sehr nett wenn du mir nochmals helfen könntest GerdW, würde dafür auch was springen lassen. Vielen Dank schonmal Mit freundlichen Grüßen Ben187ny RE: Probleme mit Drehgeber - GerdW - 31.07.2012 20:49 Hallo Benny, - Deine Wegberechnung sollte auch so funktionieren, da ein Eingangs-Array sowieso nur einen Wert enthält: [attachment=40906] - Deine Korrekturfunktion sollte auch so funktionieren: [attachment=40907] (Wobei man den Term "5-x" auch gleich in die Polynomberechnung integrieren könnte...) - Dein Array für die Statistik wird aus den autoindizierenden Ausgängen der While-Loop gebildet, ich wüsste nicht, warum irgendwas da nicht gelöscht werden sollte... - Dein Array für die Statistik wird aus den Wegen und den korrigierten Höhen zusammengesetzt. Ich weiß nicht, ob danach noch irgendeine Statistik sinnvoll ist... Zitat:Aber leider scheitert es schon daran nach jeder Berechnung das Array zu entleeren.Wozu willst du das überhaupt? RE: Probleme mit Drehgeber - Ben187ny - 31.07.2012 21:06 Vielen vielen Dank erstmal, ich baue ja sowas wie ein kleines Messfahrzeug und damit möchte ich ein paar Fahrbahnen mit durch messen. Jetzt müsste ich doch nach jeder Berechnung das Array wieder entleeren um eine neue Berechnung durchführen zu können oder? als ich die Messung durchgeführt hatte ging alles beim ersten mal, hatte ein histogramm gebildet und da sah alles gut aus. dann bei der zweiten Berechnung waren noch die Messwerte aus der ersten Messung mit im Histogram, wo ja eigentlihc nur die Daten aus der zweiten messung sein sollten. Eigentlich bräuchte ich für die statistische Berechnung auch nur die Höhenwerte. Als nur ein 1d-array oder? Mit diesem Array was sagen wir mal 1800 Messwerte hat möchte ich nun von den ersten 38 Höhenwerten den Mittelwert bilden. Damit dann die Standardabweichung und daraus die Wurzel ziehen und zum Schluss mit dem Ergebnis der Wurzel eine berechnung durchführen. Das ganze soll dann halt so oft wiederholt werden bis die 1800 messwerte durchgerechnet sind. Es sollten auch jeweils die Ergebnisse der Berechnungen gespeichert werden. Und wie ich oben schon geschrieben habe, scheitert die Berechnung beim 2mm Verfahren immer weil irgendwie nur die hälfte des Weges raus kommt. RE: Probleme mit Drehgeber - GerdW - 01.08.2012 07:55 Hallo Benny, Zitat:Eigentlich bräuchte ich für die statistische Berechnung auch nur die Höhenwerte. Als nur ein 1d-array oder?Und warum verknüpfst du dann die Werte der Wegmessung mit den Werten der Höhenmessung hier: [attachment=40908] ??? Du hast doch dieses BuildArray da hineinprogrammiert... Zitat:hatte ein histogramm gebildet und da sah alles gut aus. dann bei der zweiten Berechnung waren noch die Messwerte aus der ersten Messung mit im HistogramWarum das so sein sollte, lässt sich nicht erkennen. Tipp: Die Histogramm-Funktion bietet schon einen Ausgang "Histogrammgraph" an, aber es kann natürlich nicht schaden, noch einmal selbst den Graph mit Bundle zusammenzusetzen... Tipp2: Ruhig mal einen Blick auf die Kontexthilfe riskieren... Zitat:Mit diesem Array was sagen wir mal 1800 Messwerte hat möchte ich nun von den ersten 38 Höhenwerten den Mittelwert bilden. Damit dann die Standardabweichung und daraus die Wurzel ziehen ... Das ganze soll dann halt so oft wiederholt werden bis die 1800 messwerte durchgerechnet sind.So sieht das aus, wenn man es wortwörtlich umsetzt: [attachment=40910] Was mit den restlichen 14 Werten passiert, musst du selbst wissen... Zitat:scheitert die Berechnung beim 2mm Verfahren immer weil irgendwie nur die hälfte des Weges raus kommt.Da hilft wohl nur Debugging am lebenden Objekt, um herauszufinden, warum die Schleife dann zu früh abbricht... RE: Probleme mit Drehgeber - Ben187ny - 01.08.2012 08:19 Hi, danke für die Antwort. Hatte das Programm gestern Abend auch noch ein wenig verändert und dann hat sich das array auch nach jedem Programmstart zurück gesetzt. Dadurch funktioniert jetzt auch der XY-Graph für das Profil von der Fahrbahn. Das einzige Problem was ich noch habe ist jetzt die Erfassung der Strecke mit dem 2mm Verfahren. Er zeigt ja immer nur ca. die hälfte des Weges an aber bei der 50mm Variante den ganzen. Kann das eventuell was mit der Rate vom Messgerät zu tun haben? Habe auch das Problem das bei der Messung des zurückgelegten Weges die ersten 50mm oder 2mm nicht mit eingerechnet werden. Er zählt den ersten Wert sagen wir bis 50mm hoch und anstatt dann auf 1 zu springen springt er auf 0 und beginnt dann erst mit den folgenden Werten hoch zu zählen. Muss ich da irgend einen Start Wert ändern? Im Anhang nochmal das neue Programm RE: Probleme mit Drehgeber - GerdW - 01.08.2012 08:25 Hallo Benny, Zitat:Er zählt den ersten Wert sagen wir bis 50mm hoch und anstatt dann auf 1 zu springen springt er auf 0 und beginnt dann erst mit den folgenden Werten hoch zu zählen. Muss ich da irgend einen Start Wert ändern?Klare Fragen sind mir doch die liebsten... Wer ist "Er"? Ich kenne nur "Es" Wer springt wohin? Warum nicht auf eine 2 springen? Falls du von dem ersten CTR-Read reden solltest: vielleicht bringt es ja was, dort nur einen einzigen CTR-Wert abzufragen, so wie du es in der Schleife doch auch schon machst... RE: Probleme mit Drehgeber - Ben187ny - 01.08.2012 08:36 Hi, sorry das ein "bisschen" blöd geschrieben. Ich meine eigentlich die Berechnung des zurückgelegten Weges, diesen berechne ich indem ich den Ring Wert (50 oder 2) mit der Anzahl der Schleifendurchgänge multipliziere. Hier liegt wohl auch das Problem, da wohl die Schleife die erste Iteration mit 0 kennzeichnet und somit die ersten 50mm oder 2mm weg fallen. Wie kann ich dies am besten beheben? Noch ein kleines Problem: Der Höhenunterschied soll ja berechnet werden wenn der Counter über 50mm oder 2mm ist. Der Drehgeber liefert 1024 Impulse pro umdrehung, also 0,124mm pro Impuls. Jetzt wird eigentlich immer ein Höhenwert ausgegeben wenn der Weg = 2,08 mm ist, was wohl der erste größere Wert über 2 ist. Nun passiert es aber öfter das er erst bei 2,3mm einen Höhenwert ausliesst. Woran kann das wohl liegen? Danke schon mal RE: Probleme mit Drehgeber - GerdW - 01.08.2012 08:44 Hallo Benny, Zitat:da wohl die Schleife die erste Iteration mit 0 kennzeichnet und somit die ersten 50mm oder 2mm weg fallen. Wie kann ich dies am besten beheben?Einfach ein "+1" dazwischen? LabVIEW zählt, wie jede seriöse Programmiersprache, Schleifeniterationen (und Arrayindizes) bei Null beginnend... RE: Probleme mit Drehgeber - Ben187ny - 02.08.2012 09:38 Hallo, habe nochmal eine Frage. Und zwar konnte ich bisher das Problem mit der Wegerfassung immer noch nicht lösen. Die Wegerfassung in der 50mm Variante funktioniert einwandfrei. Bei der 2mm Variante wird nicht der ganze Weg erfasst oder es gehen Signale verloren. Habe schon mit dem Hersteller von Drehgeber und Messgerät telefoniert und diese haben ihre Produkte ausgeschlossen. Nun müsste also der Fehler in LabVIEW zu finden sein. Könnten evtl. Messwerte verloren gehen wenn z.b. die While-Schleife die 2mm Weg berechnet hat und dann das Signal dafür raus gibt. Dann dauert es doch bestimmt ein paar millisek. bis die Schleife wieder neu startet oder? Was wäre mit den Messwerten die in dieser Zeit auftreten? Vielen Dank schon mal Mfg |