30.05.2011, 17:17
Hallo,
mein Aufbau besteht aus einer NI-6221, die in einem PXI-Chassis unter LabVIEW RT von einem Controller 8184 angesteuert wird. Über einen Analogausgang wird einem Servo eine Solldrehzahl vorgegeben; Position und Drehzahl des Servos werden dann über die beiden Counter der 6221 eingelesen (Zweispur-Encoder; dazu kommen noch ein paar Analog-Eingänge). Die Daten werden nach Abschluss der Messung an den angeschlossenen PC geschickt und da weiter ausgewertet.
[attachment=34032]
Dabei habe ich ein Problem mit dem Timing der Signale: Vergleiche ich die direkt über den Counter gemessene Position mit einem zweiten Positionswert, den ich durch Integration der Drehzahl erzeuge, dann eilt der per Counter gemessene Winkel dem per Integration bestimmten Wert nach (wenn also der Servo z.B. aus dem Stillstand anläuft, dann dauert es nach dem Erfassen der Drehzahländerung noch einige Zeit, bis auch eine Winkeländerung aufgezeichnet wird). Der Zeitversatz ist dabei nicht konstant; ich habe innerhalb einer Messung schon Werte zwischen 30 und 170 ms gesehen. Er scheint mir allerdings irgendwie vom Drehzahlgradienten abhängig zu sein.
Ein Vergleich der Analogsignale mit der Drehzahl und dem per Counter gemessenen Winkel zeigt, daß die Drehzahl mit den Analogsignalen "in Phase" ist; der per Counter gemessene Winkel dagegen hinkt den übrigen Signalen hinterher.
Leider ist das Ermitteln des Winkels per Integration der Drehzahl für die Messungen keine Option, da ich die Drehzahl nur als Absolutwert gemessen bekomme - die Drehrichtung kann sich während der Messung jedoch ändern, und der Winkel ist relevant für die Auswertung. Es ist daher erforderlich, den Winkel zeitrichtig mit den anderen Signalen zu messen.
Hat evtl. jemand eine Idee, woran dieser Zeitversatz liegt, bzw. wie er zu beseitigen ist?
Danke schonmal!
mein Aufbau besteht aus einer NI-6221, die in einem PXI-Chassis unter LabVIEW RT von einem Controller 8184 angesteuert wird. Über einen Analogausgang wird einem Servo eine Solldrehzahl vorgegeben; Position und Drehzahl des Servos werden dann über die beiden Counter der 6221 eingelesen (Zweispur-Encoder; dazu kommen noch ein paar Analog-Eingänge). Die Daten werden nach Abschluss der Messung an den angeschlossenen PC geschickt und da weiter ausgewertet.
[attachment=34032]
Dabei habe ich ein Problem mit dem Timing der Signale: Vergleiche ich die direkt über den Counter gemessene Position mit einem zweiten Positionswert, den ich durch Integration der Drehzahl erzeuge, dann eilt der per Counter gemessene Winkel dem per Integration bestimmten Wert nach (wenn also der Servo z.B. aus dem Stillstand anläuft, dann dauert es nach dem Erfassen der Drehzahländerung noch einige Zeit, bis auch eine Winkeländerung aufgezeichnet wird). Der Zeitversatz ist dabei nicht konstant; ich habe innerhalb einer Messung schon Werte zwischen 30 und 170 ms gesehen. Er scheint mir allerdings irgendwie vom Drehzahlgradienten abhängig zu sein.
Ein Vergleich der Analogsignale mit der Drehzahl und dem per Counter gemessenen Winkel zeigt, daß die Drehzahl mit den Analogsignalen "in Phase" ist; der per Counter gemessene Winkel dagegen hinkt den übrigen Signalen hinterher.
Leider ist das Ermitteln des Winkels per Integration der Drehzahl für die Messungen keine Option, da ich die Drehzahl nur als Absolutwert gemessen bekomme - die Drehrichtung kann sich während der Messung jedoch ändern, und der Winkel ist relevant für die Auswertung. Es ist daher erforderlich, den Winkel zeitrichtig mit den anderen Signalen zu messen.
Hat evtl. jemand eine Idee, woran dieser Zeitversatz liegt, bzw. wie er zu beseitigen ist?
Danke schonmal!