Foros de Electrónica
   Foros de Electrónica > Temas de Interés > Dudas en general

Antiguo 14-ene-2010   #1
 
Fecha de Ingreso: enero-2010
Ubicación: Lugo
Mensajes: 3
encoder incremental labview

Hola: Estoy haciendo un trabajo con un enconder incremental, para medir la velocidad de un eje.

El encoder tiene dos salidas analógicas, y una digital. La frecuencia del motor del eje al que está acoplado el encoder se cambia variando la tensión de alimentación del motor.

A) Debo realizar un programa en Labview para conocer la v. angular del motor, a partir de ese tren de pulsos de frecuencia variable proporcionado por el encóder. Para ello, será necesario determinar la frecuencia de la señal cuadrada, lo cual se ha de hacer teniendo en cuenta los siguientes aspectos:
-Cada una de las salidas proporciona 50 pulsos por cada vuelta del motor.
-Se ha de realizar la medida de la frecuencia del tren de pulsos usando una entrada analógica y también usando la entrada digital PFI0.

B) Modificar el programa para que también se detecte el sentido de giro del motor.

Adjunto una imagen, con el programa que tengo hecho para el apartado A.
La imagen enc_analog es para la medida de la velocidad a partir de una de las salidas analógicas, y creo que funciona.
Lo que no se como hacer es lo de medir la velocidad a partir de la señal digital que adquiero por la PFI0 de la tarjeta, ni tampoco el apartado B.

Para la medida de la de la velocidad angular con la señal digital, subo lo que se me ocurrió hacer: Pongo un bucle while, y hago que cada iteración dure 1ms, entonces, espero a contar 1000 pulsos, y en i tendré almacenado el número de ms que tardó en dar los 1000 pulsos, y eso lo transformo en rev/seg. Lo que ocurre es que esto me funciona bien para una sola medida, porque como el contador no se resetea, no puedo estar midiendo de modo continuado como hago en la analógica, y eso es lo que no consigo hacer. Tendría que meter eso en un nuevo bucle while de modo que no parase nunca, y que antes de dar la medida de la frec, le restase el valor anterior del contador..... pero no sé como hacerlo. Y tampoco sé como que programa debo hacer para detectar el sentido de giro del encóder.


Espero que alguien tenga paciencia para leer esto y ayudarme, porque estoy muy desesperada.

Muchas gracias.



Antía.

Bueno..... por si alguien puede ayudarme se me olvidó decir que estoy trabajando con labview 8.6, y con la tarjeta de adquisición de datos USB 6008 ; y las características de la entrada PFI0 son:


Counter
Number of counters................................ 1
Resolution .............................................. 32 bits
Counter measurements ........................... Edge counting (falling-edge)
Pull-up resistor ....................................... 4.7 kΩ to 5 V
Maximum input frequency..................... 5 MHz
Minimum high pulse width .................... 100 ns
Minimum low pulse width ..................... 100 ns
Input high voltage .................................. 2.0 V
Input low voltage ................................... 0.8 V

A ver si alguien puede ayudarme
Gracias .
Imágenes Adjuntas
Tipo de Archivo: jpg Enc_analog.jpg (17,1 KB (Kilobytes), 16 visitas)
Tipo de Archivo: jpg enc_analogpf.jpg (23,7 KB (Kilobytes), 11 visitas)
Tipo de Archivo: jpg enc_digital.jpg (16,1 KB (Kilobytes), 12 visitas)
Tipo de Archivo: jpg fotomaq.jpg (22,1 KB (Kilobytes), 10 visitas)

Última edición por Antia; 15-ene-2010 a las 13:03 Razón: Mensajes fusionados automáticamente
Antia está desconectado      Responder Citando
Antiguo 15-ene-2010   #2
 
Fecha de Ingreso: enero-2010
Ubicación: Lugo
Mensajes: 3
Respuesta: encoder incremental labview

Esto es lo último que se me ha ocurrido para averiguar la velocidad angular del eje a partir del contador de la tarjeta, PFI0 que cuenta los pulsos de la salida digital del encoder. Pero no se si está bien.

Lo que intento es contar 1000 pulsos, así en la i del while interior tendré guardados los ms que tarda en dar 1000 pulsos; cuando llega a 1000 lo paro, por medio de esa puerta and, y en el siguiente instante, ya no será 1000 con lo que el bucle interior vuelve a empezar, porque se anula la condición de parada, y le realimento el valor del contador anterior, restándoselo para volver a contar 1000 y así sucesivamente; lo que no sé es si la i del bucle interior se pone nuevamente a 0 después de pararlo una vez, y no sé si esta puede ser una solución válida........ porque a mi esto no me tiene pinta de funcionar cuando tenga que probarlo.....

Necesito ayuda

si alguien tiene cualquier idea para el programa que detecte el sentido de giro del encoder a partir de las dos salidas cuadradas ............ lo agradecería muchisimo porque yo esto............. lo veo muy negro.....
Imágenes Adjuntas
Tipo de Archivo: jpg digital.jpg (14,1 KB (Kilobytes), 12 visitas)

Última edición por Antia; 16-ene-2010 a las 12:25 Razón: Mensajes fusionados automáticamente
Antia está desconectado      Responder Citando
Respuesta

Herramientas



Retroceder   Foros de Electrónica > Temas de Interés > Dudas en general


La franja horaria es GMT -5. Ahora son las 20:49.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.3.0 ©2009, Crawlability, Inc.