# encoder incremental labview



## Antia (Ene 14, 2010)

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.

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 .


----------



## Antia (Ene 15, 2010)

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.....

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.....


----------



## Spark88 (Ago 2, 2010)

Conseguiste resolver el problema?

Yo estoy exactamente en la misma situacion y no se como resolverlo.


----------



## leonardo1969 (Ago 2, 2010)

Te comento, yo recien estoy leyendo esto de labview porque quiero hacer un proyecto de medir la velocidad de un volante, que de acuerdo a la  velocidad y la masa inercial, mediria la potencia que entrega un motor, el proyecto seria para medir potencia de motores, un banco de pruebas inercial, primero que nececito para medir la velocidad e introducir los datos a la computadora, lo que nececito es una pequeña ayuda como para comensar la investigacion.Desde ya gracias


----------



## Spark88 (Ago 3, 2010)

Que estas utilizando para leer los datos del sensor?

Yo estoy utilizando el DAQ 6008 y creo que he conseguido crear un programa que lea pulsos y luego con unas cuentas pasarlo a rpm.

Cuelgo el archivo para que lo tengas y si lo mejoras tambien me lo podias decir vale?


----------



## leonardo1969 (Ago 3, 2010)

Yo recien estoy leyendo, y la verdad entiendo poco del tema, donde conseguiste la targeta, yo soy de ARGENTINA, que sensor estas utilizando, como para comensar.
Estube buscando en google, y hay mucha informacion de de esta targeta y me vendria bien, lo yo necesito es algo parecido, en base a las rpm  y el momento inercial se calcula la potencia y el torque que entrega el motor.
Te agradesco la informacion.


----------



## Spark88 (Ago 4, 2010)

La tarjeta la compre por Internet a National Instruments y estoy usando un sensor inductivo de Telemecanique XS618B1. Todavía no se si va a funcionar... en unos días lo probaré.

La verdad es que no te recomiendo la 6008 ya que es una tarjeta mas que nada para aprender y casi todas son mas potentes, pero si lo que quieres es gastar poco dinero, con esto creo que podrías resolver tu problema.


----------



## leonardo1969 (Ago 4, 2010)

El sensor lo conosco, lo que no se si el sensor cuantas rpm puede captar, ya que usa en prosesos donde no se requier captar muchas rpm.Lo de la targeta voy a ver que consigo.


----------



## Spark88 (Ago 4, 2010)

Pues yo lo voy a usar para medir a unas 4000 rpm máximo y se pueden poner 14 dientes en la rueda.


----------



## Spark88 (Ago 5, 2010)

Te informo de que el circuito no funciona, lo he probado con el sensor y no mide.

En lugar de medir, creo que esta funcionando como generador de pulsos. Con el sensor desconectado y LabView sin correr, es decir, simplemente con el DAQ conectado al ordenador, hay una tensión de 5V entre la patilla PFI0 y GND. Osea que por ahora no hay solución ha nuestro problema.


----------



## martik1 (Ago 11, 2010)

Yo tengo un programa que mide RPM con la tarjeta 6008, pero tengo un problema la variar el voltaje de entrada se demora mucho en estabilizarse. 

Les dejo le programa y agradezco cualquier ayuda! gracias


----------



## Atreides (Ago 13, 2010)

Para averiguar el sentido de giro del motor el encoder debería ofrecerte dos salidas con los pulsos desfasados 90º. Con estas dos señales solo tienes que programar un "codificador de cuadratura". Buscando con ese nombre hay multitud de información.


----------



## martiniko (Oct 1, 2010)

Hola buenas tardes,

Soy un alumno de la escuela de ingenieros industriales de Madrid y necesito ayuda para instrumentar unas practicas.

El objetivo sería medir la velocidad de la siguiente rueda con un sensor de efecto hall que es el siguiente:

http://www.meder.com/fileadmin/meder/pdf/en/Products/Reed_Sensors/Reed_Sensor_MK04_E.pdf

La rueda en cuestión, para hacer a la idea es esta.












Las conexiones a la bornera de la tarjeta PCI-1710 lo veo claro, a una entrada digital. pero no manejo el labview para que me convierta el pulso en velocidad en rpm, que es el objetivo.

También decir que la practica está montada con un ordenador viejo donde está el labview 6.0, por que otros formatos no los lee.

Si me podeis ayudar con el labview os estaré muy agradecidos.

Muchisimas gracias de antemano,

Martin.

ahi va la foto que antes no he podido adjuntar.


----------



## ellogu (Nov 30, 2010)

martik1 dijo:


> Yo tengo un programa que mide RPM con la tarjeta 6008, pero tengo un problema la variar el voltaje de entrada se demora mucho en estabilizarse.
> 
> Les dejo le programa y agradezco cualquier ayuda! gracias



disculpa martik me gustaria que me apoyaras de como armar la circuiteria del programa que mide rpm ya que necesito medir las revoluciones de un motor de cd


----------



## jormones (Jul 25, 2011)

ellogu dijo:


> disculpa martik me gustaria que me apoyaras de como armar la circuiteria del programa que mide rpm ya que necesito medir las revoluciones de un motor de cd



Si estas utilizando el 6008 puedes realizar la lectura del periodo (1/f) y con esto calcular las revoluciones por minuto.

slds


----------

