Discusiones sobre Productos NI

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

Crear waveform escalera usando el valor previo

Estimada comunidad.

 

Me gustaría que me ayudaran con un problema que tengo. Necesito sincronizar la adquisición de cuadros de una cámara  y el movimiento de un laser usando dos espejos galvanométricos, para mover el haz en el eje y utilizo un waveform tipo triángulo el cual se mueve mientras se captura la imagen, el eje x se mantiene quieto durante ese tiempo, al terminar la adquisición de la imagen, ahora el eje Y se mantiene quieto y el eje x se mueve a una nueva posición por lo que utilizo un waveform tipo escalera para este eje. 

 

Hasta ahora ambos waveform los puedo generar y funcionan correctamente sin embargo genero un waveform tan largo como el numero de imágenes que tengo que adquirir (esto debido a la forma del waveform del eje x) dando como resultado que tengo que cargar un par de waveforms muy grandes en la tarjeta de DAQ, utilizo la USB-6341. Lo ideal seria crear un periodo y que se repita dependiendo el numero de imágenes, para el caso del eje Y no existiría problema pero para el caso del eje X no se como hacerlo, lo ideal seria crear un periodo, donde se ponga el tiempo donde el espejo no se mueve por ejemplo en un voltaje de 0 V y después el tiempo en el que se mueve a un nuevo voltaje por ejemplo 1 V, pero el siguiente ciclo ya no debe ser de 0 a 1, si no de 1 a 2 y así sucesivamente.

 

¿Existe alguna forma de hacer lo anterior utilizando el hardware de la tarjeta?, Es decir, que se le pueda indicar al generador de funciones que comience el siguiente ciclo en el ultimo punto y no en el punto inicial. Tengo una platina piezo eléctrica que se mueve de forma parecida al espejo galvo de X y que también controlo con el waveform tipo escalera esta platina la controlo con un driver propio del fabricante y que me permite hacer lo anterior es decir definir el waveform (el tiempo sin moverse y la recta a la nueva posición) y en cada ciclo comienza en ultimo punto, esto ahorra mucho tiempo de carga en el controlador y no me limita a ninguna numero de ciclos. Se que una forma seria usar el VI del ejemplo que permite modificar el waveform (Voltage non-regeneration continous output) mientras el programa corre, pero como lo entiendo este cambio se hace con software y no con hardware y por cuestiones de sincronización necesito que se haga con hardware.

 

Anexo una imagen de como es el waveform que utilizo.

 

Saludos y de antemano gracias.

0 kudos
Mensaje 1 de 5
2.537 Vistas

Hola colega

 

Respecto a lo que estas requiriendo basado en lo que estas queriendo hacer, quisiera saber si estas trabajando con LabVIEW o solo con NI MAX.

 

Saludos

0 kudos
Mensaje 2 de 5
2.498 Vistas

Hola Bcortes

 

Una disculpa por no especificarlo, estoy trabajando en LabVIEW

0 kudos
Mensaje 3 de 5
2.494 Vistas

Podrias poner tu codigo, para tener más idea de que estructura de programación usas y saber que poder recomendarte.

 

Saludos

Roger Garcia, Certified LabVIEW Developer

HTML tutorial

There are two ways to tell somebody thanks: Kudos and Marked Solutions
0 kudos
Mensaje 4 de 5
2.488 Vistas

Anexo los VI que utilizo, el VI ControlFunction crea los dos waveforms que utilizo para controlar los espejos y este se llama en el VI generador de funciones, este programa ademas de hacer el control de los espejos que es lo que comente, genera también señales digitales que utilizo para controlar un par de láseres, y la cámara, por eso uno de esos triggers es el que funciona también para disparar a todos los demás. Los tiempos que se utilizan son de milisegundos los voltajes entre -2 y 2 V. 

 

Por cierto ¿es posible hacer que por ejemplo el VI ControlFunction3 se utilice un EventStructure tal que cargue el Waveform y luego otro evento para que lo genere, de modo que solo necesite cargarlo una vez y utilizarlo cada que lo necesito?.

 

Saludos y gracias.

Descargar todos
0 kudos
Mensaje 5 de 5
2.484 Vistas