Discusiones sobre Productos NI

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

Problema con osciloscopio en labview 2010

Estoy haciendo de poryecto un osciloscopio con una daq comunicado a través de del PC por puerto serie COM10.

Creía que tenía todo programado bien pero al conectarle en la gráfica chart waveform no me representa nada.

Yo lo que hago es adquitir a traves del ADC unas 512 muestras de las cuales enviaré por la UART al pc ,luego con labview mi intención es solo usar unas 100 muestras de ahi que tenga un bucle while desde 1 hasta 100.Esto se refresca cada 0,5 segundos en mi DAQ

 

Pero ya os digo que no me funciona la representación.Soy novato con el labview y estoy a una semana de tener q entregar el proyecto

 

¿Algunó me puede decir q hago mal?¿o xq no me funciona el boton stop?

 

Muchas gracias  a todos por vuestro tiempo

0 kudos
Mensaje 1 de 14
4.447 Vistas

El ciclo que usted maneja para registrar 100 muestras se ejecuta infinitamente, ya que nunca cumple la condición de paro, si observa siempre esta sumando "1" a un "0" por lo tanto no cumple la condición, por este motivo el botón de Stop general  no funciona ya que su programa se encuentra en un loop. la forma mas optima de corregir esto es ejecutar un ciclo “for” , con un túnel autoindexado.  ( ver imagen )  . Alli el “random number” debe ser reemplazado con el vi de lectura que usted este utilizando y tal vez manejar algun retardo para asegurar el proceso.

for autoindexado.png

El túnel autoindexado le permite guardar las 100 muestras en un array que sera visualizado en el “Waveform Graft”.

 

En general su código debe estar un poco mas organizado y corregir algunas cosas por ejemplo hay algunos ciclos innecesarios y hay algunas referencias que no se estan cerrando.  Recomiendo el siguiente enlace para saber mas acerca de la comunicación serie con LabVIEW.

http://www.ni.com/white-paper/7907/es

 

Saludos y espero tenga avances en su proyecto.



Ing. Jonathan E. Cruz Ortiz

ENERGÍA PROACTIVA S.A.S

Cel : (+57) 3173669343 - (+57) 3124451894

0 kudos
Mensaje 2 de 14
4.436 Vistas

muchas gracias por tu ayuda pero no comprendo lo que me quieres decir con que hay algunos ciclos que no se cierra

 

¿puedes ponerme algún ejemplo?¿y que sobran algunas cosas?

 

Gracias por tu tiempo

 

0 kudos
Mensaje 3 de 14
4.423 Vistas

Lo que quiere decir es que los bucles while dentro del bucle grande no van a terminar nunca ya que las condiciones de salida no se cumplen nunca. Por ejemplo:

 

Untitled.png

 

 

No se va a cumplir nunca que 1 sea mayor que 100 y por tanto el bucle se va a ejecutar infinitamente. Esto hace que los datos nunca salgan de aquí y por eso no van a aparecer en el waveform Chart. El cable de error (el verde) aparte de para sacar los posibles errores que pueda haber, sirve para marcar un orden de ejecución, es decir, como primero tienes el bucle while, hasta que no se termina dicho ciclo no se va a ejecutar lo que haya después. Por eso no te funciona el botón de stop.

 

También he visto algún que otro error. Por ejemplo:

 

Untitled1.png

 

Si no conectas ninguna señal a esto, no te va a medir nada, ni el valor eficaz, ni la amplitud...

 

 

Si eres nuevo con LabVIEW, te doy varios consejos:

-Intenta hacer el diagrama de bloques lo más compacto posible, de forma que se pueda ver entero en la pantalla sin tener que estar moviendo la barra lateral

-Todo lo que no uses, elimínalo. Tienes un waveform Graph que no usas, varios trues and falses que tampoco. Todo eso quítalo.

- Si algo no te sale como debería salir, para hallar donde está el error lo mejor que puedes hacer es poner indicadores de error (error out) para saber donde está fallando el diagrama. Otra cosa que puedes hacer es ejecutarlo marcando "highlight execution" (la casilla con una bombilla). Ésto hará que se ejecute más despacio de manera que puedas ver paso por paso lo que va haciendo el diagrama.

 

Yo lo primero que haría es comprobar que está bien configurado y que efectivamente está adquiriendo datos, con un indicador después del nodo de propiedad "Bytes at port" y después intentaría arreglar el resto del diagrama.

 

Espero haberte ayudado un poco, suerte!

0 kudos
Mensaje 4 de 14
4.375 Vistas

esto es lo que saque en claro de lo que me has comentado.he intentado variar algunas cosas pero esto no se me ejecuta

 

No se si es xq los datos no llegan bien o  por que no se usar bien la visa de escritura y de mandar datos

 

Gracias por tu ayuda

0 kudos
Mensaje 5 de 14
4.370 Vistas

Untitled4.png

 

 

 

-No entiendo muy bien para qué pones este bucle. ¿has probado a quitarlo? Los valores no cambian, son estáticos por lo que no es necesario que esté dentro de un bucle. y como además has puesto la condición de salida en false no va a terminar nunca puede que sea por eso el error.

 

-Tampoco entiendo muy bien para que pones esto si luego no usas la salida (X) para nada.

 

Untitled5.png

 

 

 

 

Lo que te dije antes, es poner un indicador en la salida del nodo de propiedad de "Bytes at port". Me refiero a lo siguiente:

 

Untitled6.png

Al ejecutarlo, si está adquiriendo valores, ese indicador tendrá que tener algún valor.

 

-También tienes puesto un breakpoint en el bucle while externo (el que tiene un borde rojo) Prueba a quitarlo.

 

Prueba a ver qué tal funciona con esos cambios

 

 

 

 

 

0 kudos
Mensaje 6 de 14
4.367 Vistas

Lo habia puesto por que en mi osciloscopio tengo que enviar dos escalas al microcontrolador en una variable de 8bits.

Como al cursor le doy unos valores binarios lo que me interesaba era sacar esos datos de forma numerica en unos indicadores.

Lo metí dentro de un bucle para que siempre que girara el dato la escala se variará y supuse que metiendolo en un bucle conseguiria hacerlo funcionar

 

Si quieto el punto de ruptura del while grande¿no dejarría de funcionar el boton stop?

He cambiado el buclde while pequeño por un for que vaya desde 0 a 100

 

 

 

 

0 kudos
Mensaje 7 de 14
4.362 Vistas

se me olvido adjuntar el archivo

 

0 kudos
Mensaje 8 de 14
4.356 Vistas

Con esta nueva configuración, ¿Qué es lo que obtienes?

Yo no lo puedo probar aquí, así que no sé qué es lo que falla.

Con el diagrama de bloques, marca la casilla de la bombilla (highlight execution) y ejecútalo y así verás paso a paso lo que hace y donde puede estar el fallo.

 

Yo me refería a quitar el breakpoint, no el bucle while entero. Con esta nueva configuración, el bucle de arriba parará con el botón de stop pero el de abajo se va a ejecutar sin parar.

 

 

0 kudos
Mensaje 9 de 14
4.342 Vistas

Te adjunto un ejemplo por si te pudiera servir. Si quieres que un bucle se ejecute 100 veces lo mejor es unas un FOR con N=100 o un while con la siguiente condición de salida:

Untitled9.png

 

0 kudos
Mensaje 10 de 14
4.328 Vistas