LabView - Construcción de arrays

 
Vista:

Construcción de arrays

Publicado por Near (76 intervenciones) el 29/09/2010 12:53:37
Tengo una aplicación que toma datos de una tarjeta de adquisición.
Me gustaría almacenar esos datos en un array. El problema es que todos los datos se sobreescriben en la misma posición.
¿Alguien podria decirme como hacer para que se almacenarán en distintas posiciones?
La idea es registrar todos los datos de la señal y mientras sigue muestreando hacer una serie de operaciones (basicamente es calcular la velocidad de descenso de una señal)

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Construcción de arrays

Publicado por eZ (194 intervenciones) el 29/09/2010 16:46:30
Que version de LabVIEW tienes?
Estas utilizando los VI's de DAQmx o estas utilizando los VI's nativos de adquisición?

Puedes subir el código o una foto de ella a Megaupload o Rapidshare?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Construcción de arrays

Publicado por Near (76 intervenciones) el 01/10/2010 09:19:26
Estoy usando la version 8.6

Aun no he añadido los bloques de adquisicion, pero mi idea era usar los nativos porque sinceramente, no se muy bien usar los DAQmx.

Aun no tengo nada en el programa. Estoy haciendo pruebas antes de elaborarlo. Solo tenia un valor que se decrementaba con el tiempo al que le conecte un build array y esto a su vez a un array 1D. Lo que ocurria es que todos los valores se acumulaban en el primer valor (se sobreescribian en cada ciclo)

Supongo que habra que añadir otro bloque para cambiar el indece del array pero no se como hacerlo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Construcción de arrays

Publicado por Near (76 intervenciones) el 01/10/2010 12:32:41
Tras enredar un poco he podido crear un array como queria... no se si habre sido un poco enrevesado. Aqui adjunto una imagen.

http://img716.imageshack.us/img716/3547/arrayb.jpg

¿Es una forma adecuada?
¿Puede hacerse de forma mas simple?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Construcción de arrays

Publicado por eZ (194 intervenciones) el 01/10/2010 16:00:21
Si se puede hacer de una manera mas simple... sin embargo este bloque seria necesario solo para tu simulación... Es decir, no con la intención de utilizarlo con los datos que adquieras de la tarjeta de adquisicion... Porque en realidad no necesitas este tipo de procesamiento
Como te explique en la respuesta anterior... Obtener x numero de mediciones es posible con tan solo un node de DAQmx... una vex obtenido tu arreglo (de 1 o 2 dimensiones segun selecciones) entonces procesas los datos (segun lo que quieras hacer con ellos)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Construcción de arrays

Publicado por eZ (194 intervenciones) el 01/10/2010 15:56:19
Definitivamente es mejor que utilices los DAQmx... aunque no creas son mas faciles de utilizar

ahora que entiendo que es una simulación... comprendo porque tu valor siempre se sobreescribia en tu arreglo... el detalle es que no estas manejando los indices en tu simulación

Volviendo a los VI's de adquisición

Para obtener un x numero de mediciones solo basta con utilizar un solo nodo... y los VI's de DAQmx son como te repito mas intuitivos que los DAQ
Solo asegurate que tu dispositivo (hardware) sea compatible con los drivers de DAQmx... busca en la pagina oficial de NI si tu dispositivo es compatible
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Construcción de arrays

Publicado por Near (76 intervenciones) el 04/10/2010 09:48:10
Una duda sobre los DAQmx...

Has dicho que sirven para tomar un número determinado de datos... pero, ¿podrían muestrear hasta que yo parase el programa? (es decir, un número indeterminado de datos)

Y otra cosa... ¿pueden usarse para muestrear varias señales?

La idea de los arrays es para controlar la velocidad de descenso de una de las señales, pero la idea final es muestrear al menos dos señales más.

Gracias de nuevo. Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Construcción de arrays

Publicado por eZ (194 intervenciones) el 04/10/2010 15:42:32
En el sentido estricto de la palabra, si se puede obtener datos hasta que el usuario le indique que ya no lo haga

Tu labor como programador es entender que es lo que quieres medir y para que... de ahi entonces puedes buscar la manera de hacerlo buscando siempre la manera optima.

Es decir... puedes estar midiendo una señal indicandole que es multiple (que adquiera "y" muestras por "x" tiempo) Teoricamente si le pides que haga muchisimas muestras en un periodo largisimo de tiempo (hasta que el usuario lo detenga... puede ser que lo detenga en apenas unos segundos o "x" horas)... Tu arreglo que contendra los datos puede llegar a ser tan grande, lo que constituye consumo de memoria. Omitir este tipo de cosas resultara en un sistema inestable que puede colapsarse por motivos de memoria.

<< ¿pueden usarse para muestrear varias señales? >>

Cada señal debe de ir asignada a una entrada de la DAQ. Para medirla solo necesitas especificar en donde fue conectada la señal en tu Hardware(DAQ)
En resumen: Puedes adquirir tantas señales como recursos tenga tu DAQ
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Dudas DAQmx

Publicado por Near (76 intervenciones) el 06/10/2010 10:04:29
Me he decantado por probar los bloques DAQmx, por lo tanto ya he empezado a tener dudas...

Estoy usando una tarjeta de adquisicion de datos PCI, es el modelo CB-50LP. Mi idea es muestrear dos o tres señales analógicas.

He seleccionado la opción "Analog 2D DBL Nchan NSamp" aunque no se la diferencia con la opcion "waveform"

A parte de eso no se como se configura la entrada task/channels... le conecto un "DAQmx task name" y lo configuro para que halla dos canales o entradas.

Conectando la salida "data" a un "waveform chart" no consigo ver los dos canales. Lo que aparecen son dos señales iguales correspondientes a un único canal.

¿Alguna idea de que ocurre?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Dudas DAQmx

Publicado por eZ (194 intervenciones) el 07/10/2010 05:30:16
Para crear los tasks / channels hay varias formas, aqui te va una

Abre el Measurement & Automation Explorer (MAX)
Generalmente lo coloca un shortcut en el escritorio

En la parte de Configuracion... encontrara un elemento llamado Data Neighborhood...Dale click derecho...Se abrira un menu... selecciona Create new...Se abre una ventana nueva:
Para el caso de un task... selecciona NI-DAQmx task
Para el caso de DAQmx channel... selecciona NI-DAQmx Global Virtual Channel
Para saber la diferencia acerca de estos, consulta la documentacion que ahi se te proporciona.

Como tienes que seleccionar una, escoge por esta ocasion la segunda, presiona el boton NEXT... selecciona si deseas adquirir señal o generarla>> selecciona el tipo señal a adquirir o generar>>Asignale el recurso por el cual vas a adquirir/generar>>por ultimo presiona Finish

Ahora desde LabVIEW conecta la entrada "task/channel in" una constante tipo channel
Presiona sobre la flecha tipo drop menu de la constante tipo channel y ahi veras el recien creado canal

Repite este proceso por cada señal a adquirir
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Dudas DAQmx

Publicado por Near (76 intervenciones) el 07/10/2010 13:16:31
Gracias por la información.

Haré algunas pruebas siguiendo tus indicaciones.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar