el 12-13-2012 10:02 AM
Buenas tardes.
Estamos empezando a "cacharrear" con la tarjeta PCI-6122. Queremos leer de dos canales a la máxima frecuencia de muestreo (500000 S/s) durante 3 días.
Hemos partido del ejemplo ContAcqVoltageSamples_IntClk. Hemos modificado dicho ejemplo y estamos almacenando en un archivo las muestras disponibles (AvailableSamplesPerChannel) y las totales (TotalSamplesAcquiredPerChannel). Llegado un momento salta la excepcion 200279. En principio creíamos que era por problemas en la realción velocidad de escruitrua/lectura, pero pensamos que está relacionado con el tipo de buffer utilizado. Leyendo todo el foro, parece que la solución es un buffer circular.
¿Podría alguien indicarnos como configurar en C# el buffer para que sea circular?
Gracias de antemano.
el 03-13-2013 07:57 AM
Hola engamu
Respecto a error -200279 que te aparece dejame mencionarte los siguiente, esperando que esto te pueda ayudar y/aclarar.
LabVIEW es un lenguaje de flujo de datos, lo que significa que un VI puede ejecutarse tan pronto obtenga todas sus entradas requeridas, sin importar su posición en el diagrama de bloques. En algunos casos, es necesario usar los cables de error como entrada de un VI para asegurar que no se ejecutará antes de otro VI. Si un cable de error se conecta del VI A al VI B, entonces B no tendrá todas sus entradas requeridas hasta que A se ejecute y el cluster de error se pase de A a B.
En una adquisición DAQmx continua, los datos son escritos en un buffer de donde DAQmx Read VI subsecuentemente obtiene las lecturas. Los datos son escritos al buffer desde el tiempo en que DAQmx Start Task VI se ejecuta, hasta que DAQmx Stop Task VI o DAQmx Clear Task VI se ejecuta. Entre el tiempo en que DAQmx Start se ejecuta y la primera lectura de DAQmx Read se lleva a cabo, el buffer comienza a llenarse con los datos. Si el intervalo es muy largo, el buffer se llenará totalmente y los primeros datos se sobrescribirán antes que DAQmx Read los adquiera del buffer, causando el error -200279.
Lo anterior ocurre frecuentemente cuando los datos están siendo escritos a un archivo seleccionado desde Open File Dialog. Si las líneas de error no se usan para asegurar que DAQmx Start Task VI se ejecute después de Open File Dialog, entonces las mediciones se apilarán mientas se selecciona el archivo y el buffer será sobrescrito.
Para resolver este problema, conecta un cable de la salida de error de Open File VI a la entrada de error de DAQmx Start Task VI. Esto asegura que ninguna medición se escriba en el buffer hasta que el archivo sea escogido, y tu tarea esté lista para empezar a leer dichas mediciones en el buffer.
saludos
el 03-19-2013 04:32 AM
Muchas gracias por tu respuesta Felipe, pero como se indica en el asunto, la duda es en C#.
el 03-19-2013 06:33 AM
Hola Engamu
Ya que no te sirvio lo que te envié te recomiendo publicar tu duda en el foro de .NET languages de National Instruments, acá te dejo el link:
http://forums.ni.com/t5/Measurement-Studio-for-NET/bd-p/232
Saludos
el 03-19-2013 06:38 AM
Hola Felipe.
La duda también esta publicada en el foro de .NET languages de National Instruments, pero nadie ha respondido:
http://forums.ni.com/t5/Measurement-Studio-for-NET/C-circular-buffer/td-p/2255638
Un saludo, Enrique.
03-19-2013 07:07 AM - editado 03-19-2013 07:07 AM
Enrique
Me puedes decir de que pais eres ??
Lo que pasa es que algunos paises del cono sur, región a la cual yo doy soporte, tienen asistencia telefonia gratuita con cualquier asunto relacionado con productos Ni entre ellos .NET y lo que responden estas preguntas son expertos de NI que le hacen un seguimiento a tu caso hasta encontrar solución, esto no será gratuitamente para siempre pero por el momento si lo es.