el 05-21-2018 07:32 PM
Hola.
Me encuentro realizado un programa que permita adquirir una señal por medio de una tarjeta de adquisicion de datos NI DAQ 6215 y a su vez adquirir señal de video simultanea. Tengo cuadros de dialigo y protocolos para almacenar los archivos genados (.lvm y .avi)
El programa aparentemente funciona bien, pero pasado un tiempo se detiene y arroja el error 200279, el cual esta relacionado con la sobreescritura de datos, aparentemente lo solucione eliminando todas las conecciones de ERROR IN y ERROR OUT (es lo que mejor me funciono), pero considero que el inconveniente se da por la relucion de la camara (intente con una camara que adquiere datos en HD y con esta no se lograba mucho, no adquiero mas de un segundo y el programa se detiene, pero al hacerlo con la camara del computador que maneja menor resolucion la adquicon dura aporximadamene 10 segundos), la cual deseo cambiar pero no logro hacerlo.
Adjunto captura del programa implementado.
el 05-23-2018 10:48 AM
Hola jprestrepou94,
Gracias por utilizar los foros de National Instruments. Con respecto a tu pregunta te puedo recomendar dos cosas:
1.- Código en ciclo While
El error que te está apareciendo (-200279) se debe a que estás tratando de leer muestras que ya no están disponibles en tu canal de adquisición, es decir, no estás leyendo los datos suficientemente rápido. Existen dos soluciones comunes. La primera es aumentar el tamaño del buffer y la segunda es leer los datos más rápidamente. Aumentar el buffer podría no ayudar con el problema, sólo retrasarlo, así que la mejor opción es leer más rápido los datos. Por lo que comentas, con una cámara HD tenías problemas en menos de un segundo por que debido a la resolución, tarda más en procesar la imagen, y ya que tienes tu adquisición de DAQ en el mismo ciclo que tu adquisición de visión, está retrasando la adquisición de datos.
En pocas palabras, la primer recomendación es separar en dos ciclos While tu aplicación, uno para la adquisición de DAQ y otra para la adquisición de visión.
2.- Usar funciones de bajo nivel de DAQmx
DAQmx contiene un conjunto de funciones de bajo nivel para mejor control de tu aplicación y mejor desempeño de la misma. Te recomiendo que revises los ejemplos que contiene LabVIEW sobre DAQmx los cuales están programados con estas funciones. Los puedes encontrar en Help>>Find Examples>>Directory Structure>>DAQmx>>(Ejemplo que cumpla con el tipo de adquisición que estás realizando).
Espero sean de ayuda mis recomendaciones en tu aplicación.
¡Éxito!
el 05-23-2018 02:25 PM
Gracias, ya lo logre hacer. Muchas gracias
Hora el problema es otro, cuado los almaceno y trato de reproducir el video en otro programa, este se ve acelerado, y por temas de sincronizacion con las señales que adquiero debe tener la misma duracion, sabes como puedo corregir esto?