el 01-04-2011 05:40 PM
Hola:
dos preguntas:
adjunto un vi de un ejemplo que adquiere señales analogicas a alta velocidad por un canal pero...
como lo modifico para que sean dos canales pero tambien a alta velocidad?
La otra pregunta es como puedo hacer para que independientemente de la frecuencia de la señal analogica siempre aparezcan 3 ciclos de señal como mucho en pantalla porque cada vez que adquiero señales de distinta frecuencia aparecen un monton de ciclos al no estar configurado automaticamente. No me refiero a hacer el autoscale en el eje X sino que sin utilizar esta opcion programarlo mediante Vis.
un saludo
aitor
el 01-10-2011 04:14 AM
Hola:
me respondo a mi mismo je jeee.He estado mirando un poco por ni.com y he hecho algunos cambios a mi vi. Tengo una duda. Cuando inicio la adquisicion y le doy a guardar datos me genera el txt con menos datos de los esperados. me explico, si la frecuencia de muestreo es 4000 y leo dos canales, cada canal genera datos 2000 veces por segundo, es decir, Fs=2000/seg. Pues al mirar el txt resulta que si he estado dos segundos adquiriendo, aparecen menos de 1000 datos. Que error cometo?.
Y por ultimo si ven que se puede mejorar esta vi tanto en la parte de adquisicion como en la parte de generacion de datos, pueden modificarla sin problemas y comentarla.
Muchas gracias
Aitor
el 01-11-2011 01:36 AM
Hola Aitor,
Puede que en lugar de añadir los datos al fichero, estés reemplazando su contenido. Te recomiendo que eches un vistazo a la ayuda correspondiente al VI "Write to Text File Function", donde se menciona lo siguiente:
"[...] If you wire a file refnum to the file input, writing begins at the current file position. To append to an existing file, set the file position to the end of the file by using the Set File Position function. [...]"
Te sugeriría usases la mencionada función para asegurarte. Por otra parte, resultaría recomendable cablear la línea de error en las partes correspondientes a la escritura en fichero.
Un saludo,
el 01-11-2011 07:10 AM
Hola
el 01-11-2011 07:12 AM
Hola:
podrias poner un ejemplo?.
si quieres puedes modificar mi vi
Un saludo
Aitor
el 01-14-2011 01:32 AM
Hola Aitor,
He estado revisando tu VI para modificarlo y creo que he encontrado una manera más adecuada para proceder. Te sugiero que eches un vistazo al ejemplo "Write to Text File" que incluye el propio LabVIEW. En él también se escriben los datos procedentes de un array de tipo DBL en un archivo de texto. Para ello se utiliza el VI "Array to Spreadsheet String", que devuelve los datos separados por tabuladores y (creo que) un retorno de carro tras el último valor.
Un saludo,
el 01-18-2011 04:52 AM
Hola:
hice cambios como me comentaste y si tienes a mano una tarjeta puedes comprobar que al generar los dos archivos y parar la adquisicion, no tienen el mismo numero de elementos guardados. No sé por qué sucede porque se supone que adquiero los dos canales a la misma velocidad y los dos txt deberian contener el mismo numero de datos (mismo tamaño de array).
Existe otra forma de guardar datos garantizando que los dos archivos contienen el mismo numero datos?.
Un saludo
Aitor
el 01-18-2011 06:14 AM
Hola:
He puesto un contador de tiempo a la vi para comprobar si adquiria correctamente y efectivamente pasados por ejemplo 10 segundos,el total de muestras por canal es 10000 lo cual cuadra con el hecho de que si la frecuencia de muestreo es 3000 cada canal adquiere a 1000 muestras por segundo. Lo que no hace bien es guardar los datos en los dos archivos ya que cada uno deberia contener 10000 datos pasados los 10 segundos y no es asi. ¿Por qué?
Aitor
el 01-19-2011 04:24 AM
Hola:
He probado otra opcion y resulta que si en vez de adquirir de manera continua adquiero finite samples, los archivos se guardan correctamente, es decir, los dos txt generan igual numero datos como yo queria. Lo que no entiendo es porque cuando genero el while no lo hacen.
Un saludo
Aitor
el 01-19-2011 06:02 AM
Hola:
Es evidente que algo no va bien porque esta misma vi empleando TDMS tambien escribe mal los datos. Comparando los dos TDMS tendrian que guardar igual numero de datos y no es asi. Se me ocurre que el problema puede estar cuando empleo index array para separar los canales y por alguna razon se pierden datos.
Un saludo
Aitor