Discusiones sobre Productos NI

cancelar
Mostrando los resultados de 
Buscar en lugar de 
Quiere decir: 

PWM por USB-6008 en Labview 7.1

Emoticono felizSaludos a todos, mi problema es que necesito controlar 5 servos de un brazo robot que ya tengo armado y quiero sacar las señales PWM por medio de la USB-6008, solo dispongo de Lavbiew 7.1, ya genere las señales pero no tengo la menor idea de como enviarlos, por favor si tienen algun ejemplo les agradecería que me lo colocaran como imágen pues no puedo ver los ejemplos de versiones mas recientes de Labview, gracias por su pronta respuesta ya que debo entregar el proyecto antes del 15 de noviembre Emoticono sorprendido y es requisito para mi graduación de Ingeniería Electrónica.Emoticono triste
0 kudos
Mensaje 1 de 13
8.717 Vistas
Ya has usado antes la tarjeta para enviar señales? Porque no sé si tu duda es cómo enviar cualquier señal. De ser así, necesitas primero instalar el "Measurement and Automation" de la DAQ (el disco de instalación viene con la tarjeta) y, una vez que tengas la tarjeta instalada y la computadora la haya detectado, accesa al programa y define una "Task" para la tarjeta, indicando el tipo de señal de salida, el puerto que vas a utilizar, frecuencia y demás características. Luego, en tu programa de LabView usa la función "DAQmx write" (la encuentras en el menú de funciones para la DAQ que te debe aparecer si ya está instalada) y colócala en el panel. Luego, ahí mismo viene por default un tipo de señal. Da click abajo del ícono (en la flecha) y selecciona el tipo de señal que corresponda al que necesitas. Luego, coloca un "DAQ Task Name Constant" que encuentras en el mismo menú y alámbralo a la conexión de "Task/Channel In" (superior izquierda) y selecciona el nombre que definiste para la Task que ya definiste. Alambra la señal que quieres enviar a la conexión de "Data". Aquí puedes encontrar más información o busca en la ayuda de LabView.
 
 
 
0 kudos
Mensaje 2 de 13
8.704 Vistas
Gracias, ya logre sacar una señal, pero no se si es posible generar un PWM a 50 Hertz booleano ya que debe ser asi para sacarlo por la I/O digital, solo la he podido generar como wafeform pero no creo que se pueda convertir en boolean.Emoticono sorprendido
0 kudos
Mensaje 3 de 13
8.692 Vistas
 

la frecuencia que necesitas no es mucha, y creo que sí es posible hacerlo. En esta liga encuentras explicado cómo hacerlo con una DAQ y vienen los programas ya hechos (descarga el archivo ZIP del final del documento).

 

https://knowledge.ni.com/KnowledgeArticleDetails?id=kA03q000000x1P0CAI&l=en-US

0 kudos
Mensaje 4 de 13
8.684 Vistas
 

Así como te dice Ali84 la mejor forma de sacar el PWM es utilizando los contadores de la tarjeta y DAQmx, sin embargo la tarjeta 6008 no cuenta con estos contadores de salida por lo que tu tendrías que generarlo en el Puerto Digital.

 

 

En el siguiente link puedes encontrar un ejemplo:

 

 

https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z0000019MvkSAE&l=en-US

 

 

La limitante de Usar el método por software es que el tiempo lo da tu programa (el tiempo mínimo de un Loop en un sistema con Windows es de 1ms) y no va a tener tanta precisión como el generado en el contador.

 

 

Saludos

Benjamin C
Principal Systems Engineer // CLA // CLED
0 kudos
Mensaje 5 de 13
8.680 Vistas
Emoticono indiferente¿Que pasaría si utilizo dos tarjetas USB 6008 para tener 4 salidas analógicas?  ¿Será que generando una wafeform a 50 Hz al salir por la daq no pierde mucha definición?  ¿Será que los cambios en el ancho del pulso entre el 5% y el 10% del período se podran notar?Emoticono triste  Estoy hablando de un intervalo de 1ms en el cual necesito leer por lo menos 90 cambios, ya que a 50 Hz el ciclo tarda 20ms y los servos necesitan una señal cuyos pulsos varien entre 1ms y 2ms de ancho (en ese intervalo necesito definir por lo menos 90 grados de rotación).Emoticono sorprendido
0 kudos
Mensaje 6 de 13
8.634 Vistas
¿Que hay si uso las salidas análogas?  ¿Que  tan precisas serán? ¿Sera que se nota el cambio de ancho de pulso en decimas de milisegundos?Emoticono triste
0 kudos
Mensaje 7 de 13
8.633 Vistas
 

Hola Coky aquí el problema es en sí que estás trabajando fuera de las especificaciones de la tarjeta 6008. Esta no cuenta con un reloj interno por software por lo que tanto las salidas y entradas digitales como las analógicas están controladas por software. El control por software lo mas que te puede dar es un loop de 1ms, por lo que en el periodo de 1ms que quieres madamas podrías actualizar la señal 1 vez. La velocidad que puedes alcanzar por software es de 1khz.

 

 

Mas que utilizar dos tarjetas 6008, te recomendaría utilizar una tarjeta más completa por ejemplo una que utilice contadores, o una tarjeta mas rápida como la NI USB 6211, que además cuenta con contadores y te permite trabajar a 250kS/s, y el timing interno es por hardware.

 

 

Otra opción es que a través de tus salidas digitales controles componentes como un 555 y que con este controles tu servo.

 

 

Saludos

Benjamin C
Principal Systems Engineer // CLA // CLED
0 kudos
Mensaje 8 de 13
8.611 Vistas

Saludos,

Al hilo de la pregunta de coky...no sé si podriais echarme un cable...

Me gustaría que la señal digital de un puerto, por ejmplo, el P0.0. se activase o desactivase mediante un boton (tipo booleano) en el panel de usuario.

¿Es posible? como se haria? llevo tiempo y no lo consigo. Son mis primeros pasos con labview así que siento si la pregunta es una tonteria...

Graicas por la ayuda!

0 kudos
Mensaje 9 de 13
5.703 Vistas

Hola joaquinctel para pregutnas nuevas te recomiendo abrior un hilo nuevo, este es del 2007.  Para hacer lo que necesitas te recomiendo que en LabVIEW veas los ejemplos en help >> Find Examples, y ahi puedes buscar de salidas digitales.

Esta manual tambien te puede ser de utilidad:

ational Instruments Latinoamérica - Guía de Aprendizaje "LabVIEW en 6 Horas" Ahora en Español  

Saludos

Benjamin C
Principal Systems Engineer // CLA // CLED
0 kudos
Mensaje 10 de 13
5.699 Vistas