por Antía - 15 Ene 2010, 22:09
-
Perfil básico de usuario
- 15 Ene 2010, 22:09
#202539
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 el contador 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: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.....
Y lo de diseñar un programa para detectar el sentido de giro del encoder, ya no tengo ni idea.
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
Espero que alguien tenga paciencia para leer esto y ayudarme porque estoy muy desesperada.
Muchas gracias.
Antía.
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 el contador 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: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.....
Y lo de diseñar un programa para detectar el sentido de giro del encoder, ya no tengo ni idea.
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
Espero que alguien tenga paciencia para leer esto y ayudarme porque estoy muy desesperada.





Muchas gracias.
Antía.
Regístrese y/o inicie sesión para ver archivos adjuntos.