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.01.2018, 12:10 (Dieser Beitrag wurde zuletzt bearbeitet: 24.01.2018 12:14 von Lucki.)
(22.01.2018 14:20 )nxitimi schrieb: Ziel ist es: Ohne Signalkonvertierung die analoge Signale auszuwerten und interpolieren. Ich brauche sehr hohe Genauigkeit <~ 10 nanometer
Hat jemand Erfahrung wie ich SIN/COS Signal auswerten kann?
Konvertierung auf TTL kommt im Moment nicht in Frage, da zu viele Pins an meine DIO belegt werden.!
Komisch: Ein Encoder mit TTL-Digitalausgang liefert 4 Steps pro Strichabstand. Die Auflösung bei einem Strichabstand von 1mm wäre dann 0.25mm = 250000 nm. Da kann man auch nichts mehr interpolieren.
Bei einem Encoder mit Sin/Cos Ausgang hängt die Auflösung von der Auflösung der analogen AD-Wandler ab. Mit 16bit ADC wäre rein rechnerisch unter den gleichen Bedingungen 5 nm Auflösung möglich.
Wie kann man, bei der geforderten Genauigkeit, überhaupt wachen Sinnes einen Encoder mit TTL-Ausgang ins Gespräch bringen?
Zur Klarstellung: Ich rede hier von Auflösung, nicht von Genauigkeit. Auflösung ist einfach die Wegstrecke für 1 Digit Differenz beim Ausganssignal. Genügend hohe Auflösung ist eine, aber noch lange nicht hinreichende Voraussetzung für eine bestimmte Genauigkeit.
(22.01.2018 14:20 )nxitimi schrieb: Ich habe ein Sensor "LIP 200" gekauft und möchte die Signale erfassen und auswerten um die Position zu bestimmen.
Der Sensor hat 1Vss Schnittstelle. Auf NI-Seite habe ich cDAQ-9137 mit dem NI-9220 Modul. Der NI-Modul kann bis 100 kHz/s/Channel.
(22.01.2018 15:57 )nxitimi schrieb: Das mit dem DAQ Hardware habe ich nicht verstanden? Warum ich kein TTL möchte ist es weil ich kein Platz hab ansonsten wäre es einfacher.
Naja, 2 AI und 2 AO können ja auch bis zu 4 andere DIO ersetzen, Flanken- bzw. Pegeldetektion ist einfacher und schneller als die Analogsignale des Inc-Gebers auszuwerten. Letzteres ist mit den digitalen Ausgängen und fertigen Softwaremodulen (zum Teil in den DAQ FPGA/ASIC gegossen) deutlich einfacher, sicherer und schneller, aber natürlich akademisch weniger anspruchsvoll ...
Prüfstand bedeutet meistens Auswertung in 'Echtzeit' .. schon mal zeitkritische Anwendungen in LabVIEW realisiert?
Wie sind Deine Kenntnisse in Mathe, Hard- und Software ? Wie in Konstruktion , Mechanik? Wieviele Baustellen möchtest Du haben? Wann möchtest Du mit dem Projekt fertig sein?
Haidenhain macht bei dieser Hardware eine 32er (5 bit) Interpolation einer Periode , 'theoretisch' kannst Du da analog mehr rausholen, der Hersteller hat ja auch 1024er ... macht aber sehr wahrscheinlich bei der gegebenen Hardware keinen Sinn. (und bei +-10K sowieso nicht)
Hallo und Danke für dein Feedback!
Natürlich das Vorhaben ist nicht Ohne. Da wir aber im Technologie-Projekte befinden = heißt es Konstruieren, Entwickeln und Programmieren, Zeit und Geld ist kein Thema.
Messen und Auswerten in "RealTime" passiert schon. Natürlich das schwierigste Teil ist Weg und Temperatur (Intern) zu messen aber stück für stück kommt man schon voran. Solche Diskussionen helfen sehr um möglichst alles zu betrachten.
Im Moment ist es wichtig Fehlerquellen zu entdecken und auch mit den Arbeitskollegen und auch mit euch darüber diskutieren. Wir spielen mit den Gedanken auch in Richtung optische Messungen zu gehen und mal sehen was noch kommt . . . .
HIer ist mal eine ungetestete Version einer sincos decoder Auswertung ...
Das Phaseunwrap ist 'zu Fuß' merkt sich dafür aber die aktuelle Phasenlage (Position) hat dafür aber eine Warnung wenn das Phaseunwrap aufgrund zu langsamer Abtastung nicht eindeutig sein könnte. Der Wert von 0,85 hängt vom Rauschen des Eingangssignals ab... , Skalierung ist aus dem Web Prospekt ...
x und y sind I16 Arrays , da die Amplitude keine Rolex spielt, spart das Busdaten.. und der LV-Compiler hat ggf. eine I16 arctan2 Funktion ..
es gibt noch so Dinge wie Heydemannkorrektur (z.B. Zero offset/drift ist blöd ) , Phaseunwrap mit prediction ...
Viel Spass
Tschuess
Henrik
---
'The number you have dialed is imaginary, please turn your phone 90° and dial again....'
(24.01.2018 12:10 )Lucki schrieb: Komisch: Ein Encoder mit TTL-Digitalausgang liefert 4 Steps pro Strichabstand. Die Auflösung bei einem Strichabstand von 1mm wäre dann 0.25mm = 250000 nm. Da kann man auch nichts mehr interpolieren.
Einspruch!
Ein Blick ins Datenblatt des o.g. Wegencoders hätte Dir gezeigt, dass dieser als TTL Ausgang ein 32 fach interpoliertes Signal liefert (bei DEUTLICH kleinerem Strichabstand)
(24.01.2018 12:10 )Lucki schrieb: Bei einem Encoder mit Sin/Cos Ausgang hängt die Auflösung von der Auflösung der analogen AD-Wandler ab. Mit 16bit ADC wäre rein rechnerisch unter den gleichen Bedingungen 5 nm Auflösung möglich.
Was aber keiner macht, selbst Heidenhain nicht. Dafür ist die Kombi Strichplatten und Lesekopf (köpfe) nicht gut genug.
(Die genaue Führung dazwischen ist wohl das Hauptproblem... schon µm auf 400mm ist nicht ohne)
(24.01.2018 12:10 )Lucki schrieb: Wie kann man, bei der geforderten Genauigkeit, überhaupt wachen Sinnes einen Encoder mit TTL-Ausgang ins Gespräch bringen?
Weil der TTL Ausgang schon die geforderte Auflösung bringt!
Tse, tse, das einfach so reinzuschmeißen, ohne in die Specs zu schauen
(24.01.2018 12:10 )Lucki schrieb: Zur Klarstellung: Ich rede hier von Auflösung, nicht von Genauigkeit. Auflösung ist einfach die Wegstrecke für 1 Digit Differenz beim Ausganssignal. Genügend hohe Auflösung ist eine, aber noch lange nicht hinreichende Voraussetzung für eine bestimmte Genauigkeit.
DA bin ich ganz bei Dir
Tschuess
Henrik
---
'The number you have dialed is imaginary, please turn your phone 90° and dial again....'
25.01.2018, 16:57 (Dieser Beitrag wurde zuletzt bearbeitet: 25.01.2018 17:16 von Lucki.)
@Hvo
Ich bezog mich auf nackte Encoder ohne interne oder externe Zusatz-Elektronik. Diese einfachen Encoder gibt es entweder mit analogem Sin/Cos-Ausgang oder mit TTL-Ausgang.
Dein Einwand "..was aber keiner macht" trifft nicht zu: Ich kenne da jemanden, nämlich mich. Die Interpolations-Elektronik von Haidenhain hätte es auch gemacht, war aber erstens langsam, zweiten hätte es mit zusätzlichen Kosten verbundene Interface-Probleme gegeben und drittens war sie teuer. Alternativ kostete die Hardware überhaupt nichts, da die NI-Universalkarte ohnehin für den Messplatz gebraucht wurde und die benötigten Eingänge noch frei waren.
Mit Deinen Einwänden bezüglich der erreichbaren Genauigkeit hast Du ja Recht, aber wieso thematisierst das mir gegenüber, da ich doch ausdrücklich darauf hingewiesen habe, daß ich immer von Auflösung spreche und daß Auflösung nicht in jedem Fall mit Genauigkeit identisch ist?
Zu Deinem VI: Ich habe es noch nicht laufen lassen (Wäre aufwändig, weil die beiden Array-Eingänge keine Standardwerte als Beispiel enthalten)
Für das Entfernen der 2Pi - Sprünge gib es eine Funktion, das muß man nicht händisch machen.
In: Signalverarbeitung/Anpassen/Operationen
Sowie in: Signalverarbeitung/Anpassen/Punkt2Punkt/Signaloperation
(25.01.2018 16:57 )Lucki schrieb: @Hvo
Ich bezog mich auf nackte Encoder ohne interne oder externe Zusatz-Elektronik. Diese einfachen Encoder gibt es entweder mit analogem Sin/Cos-Ausgang oder mit TTL-Ausgang.
Dein Einwand "..was aber keiner macht" trifft nicht zu: Ich kenne da jemanden, nämlich mich. Die Interpolations-Elektronik von Haidenhain hätte es auch gemacht, war aber erstens langsam, zweiten hätte es mit zusätzlichen Kosten verbundene Interface-Probleme gegeben und drittens war sie teuer. Alternativ kostete die Hardware überhaupt nichts, da die NI-Universalkarte ohnehin für den Messplatz gebraucht wurde und die benötigten Eingänge noch frei waren.
Mit Deinen Einwänden bezüglich der erreichbaren Genauigkeit hast Du ja Recht, aber wieso thematisierst das mir gegenüber, da ich doch ausdrücklich darauf hingewiesen habe, daß ich immer von Auflösung spreche und daß Auflösung nicht in jedem Fall mit Genauigkeit identisch ist?
Je nach Strichleiste und Lesekopf (und der Kopplungsgenauigkeit) muss man da sehr Vorsichtig sein.... aber man bekommt beliebig viele Nachkommastellen
(Der Sinus ist nicht immer ein Sinus, das wünscht man sich halt nur)
Und der TS hat ja nicht den nackten Encoder..
(25.01.2018 16:57 )Lucki schrieb: Zu Deinem VI: Ich habe es noch nicht laufen lassen (Wäre aufwändig, weil die beiden Array-Eingänge keine Standardwerte als Beispiel enthalten)
Für das Entfernen der 2Pi - Sprünge gib es eine Funktion, das muß man nicht händisch machen.
In: Signalverarbeitung/Anpassen/Operationen
Sowie in: Signalverarbeitung/Anpassen/Punkt2Punkt/Signaloperation
Warum das 'Händisch' ist hatte ich extra erwähnt, zumindest in der 2012er Version des Phaseunwrap ist bei wiederholtem Aufruf (Daten werden Blockweise gelesen und verarbeitet) kein (rücksetzbarer) Phasenakkumulator drin. Die hat der PtbyPt (ich hab seit LV3.1 nur die Engl. Version), die ich verwendet habe. Es gibt jetzt nur noch 'eine' Warnung, wenn die Rekonstruktion zB wg zu langsamer Abtastung nicht eindeutig ist.
Beispieldaten hatte ich auch keine, ich verwende nur ziemlich Ähnliches zur Demodulation von Heterodyne-Signalen (40MHz Träger, 70MHz Bndw, 200MHz SR). Das war halt schnell mal Copy&Paste damit der TS sieht, was ich verbal beschrieben habe. (Merke gerade, das ich den 'oder First call' im Beispiel vergessen habe ...)
Tschuess
Henrik
---
'The number you have dialed is imaginary, please turn your phone 90° and dial again....'
25.01.2018, 19:26 (Dieser Beitrag wurde zuletzt bearbeitet: 25.01.2018 19:58 von Lucki.)
(25.01.2018 18:46 )HVo schrieb: Der Sinus ist nicht immer ein Sinus, das wünscht man sich halt nur
Ist systematischer Fehler, der mit einer Korrekturfunktion veringert werden kann. Allerdings Encoderabhängig, für Serienproduktion weniger geeignet. (Bei dem von mir verwendeten Heidenhain-Encoder waren die Sin/Cos Outputs allerdings derart präzise, daß ich vermutete, dass solche Korrkturen schon im Encoder selbst gemacht worden waren)
..und der Sinus und Cosinus haben nicht exakt die gleiche Amplitude
Behebbar, aber ebenfalls Encoderabhängig (Bei den von mir verwendeten Heidenhain Encoder ware die Amplituten allerdings exakt gleich)
..und die AD-Wandlung der beiden Spuren erfolgt nicht gleichzeitig, wenn nur ein einziger Wandler mit Multiplexer benutzt wird.
Behebbar durch Neuabtasten der Waveforms (Interpolieren) mit den entsprechenden LV-Funktionen