Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

Problema con displayado de datos / Problem with data display

Hola a todos.

Quisiera consultarles sobre un par de inconvenientes que estoy teniendo con un proyecto.

El proyecto consiste básicamente en muestrear una señal (por medio de un microcontrolador con conversor A/D de 12 bits) a una velocidad de 8 KHZ, transmitir los datos através de la UART del PIC a un módulo de transmisión bluetooth, recibir los datos en una PC (estoy usando un dongle bluetooth que la PC ve como si fuera un puerto serie) y visualizar los datos en tiempo real (o lo mas cercano a ello) en una aplicación (estoy usando un waveform chart).

He logrado lo que comenté anteriormente, aunque se presentan dos cuestiones:

1) por un lado la aplicación muestra los datos con un retardo importante (unos 10 segundos), con lo cual dificulta su seguimiento (la aplicación está configurada para leer y refrescar cada 1ms, el puerto serie está configurado a 115 Kb/s).

2) por otra parte, transcurrido un determinado tiempo de funcionamiento la gráfica (waveform chart) muestra picos que llegan hasta los extremos de la gráfica, lo cuales no son reales (lo he comprobado revisando archivos de logeo que demuestran que los datos se reciben bien).

Como comentario final agrego que estoy usando una versión de prueba (30 días) de labview 2010 y mi PC no es de última generación.

Agradeciendo desde ya sus comentarios, les dejo un saludo cordial.

 

*****************************************************************************************************************************

Hello everyone.

I would consult them on a couple of drawbacks that I am having with a project.

The project consists essentially of sampling a signal (by means of a microcontroller with A / D converter of 12 bits) at a rate of 8 kHz, data transmitted using the PIC UART a bluetooth transmission module, receive the data in PC (I'm using a bluetooth dongle to the PC looks like a serial port) and visualize data in real time (or as close to it) in an application (I'm using a waveform chart).

I have achieved what was previously mentioned, although two questions arise:

1) on one hand the application displays data with a significant delay (about 10 seconds), which makes it difficult to follow (the application is configured to read and refresh every 1ms, the serial port is set to 115 Kb / s).

2) On the other hand, after a certain running time graph (waveform chart) shows peaks that reach the ends of the graph, which are not a true (I've checked reviewing files logeo showing that the data is received well ).

As a final comment I add that I am using a trial version (30 days) labview 2010 and my PC is not art.

Thanking from and your comments, I leave sincerely.

 

 

 

 

 

 

0 Kudos
Message 1 of 5
(4,735 Views)

Hola Adrian_79,

 

Espero que todo vaya muy bien. Hay un par de cosas que quisiera comentar:

  1. Existen partes del código que no veo que se encuentren en uso y que podrían generar algún delay. No creo que sea la solución del problema, simplemente es una observación para que pueda ser tomada en consideración. Específicamente los shift register.
  2. Después del “Scan From String” hay una división entre 1 y luego una división de constantes, la cual se podría poner como una constante.
  3. La variable local de la gráfica puede que se encuentre generando condiciones de carrera, por lo cual te recomendaría que si se encuentra adquiriendo datos, el log lo hagas en otro ciclo. Para esto, podrías intentar utilizar la arquitectura productor/consumidor.
  4. En la parte que mencionas del funcionamiento de la gráfica, no entiendo muy bien cuáles son estos picos que llegan hasta los extremos de la gráfica (valores más exactos). Para esto, tal vez tenés que revisar que no sea información de la configuración del mensaje, por ejemplo, que se encuentre graficando el bit de parada.
  5. Otra recomendación, es crear un shift register para el cable de error en la lectura de VISA.

Creo que con ciertos cambios, el código pueda ser eficiente y se puede analizar mejor con las herramientas de análisis que tiene LabVIEW. Como recomendación general te diría que analizaras la posibilidad de hacer uso de la arquitectura productor/consumidor. También tenés que tomar en cosideración los tiempos del hardware (aunque no van a ser de 10 seg pero pueden contribuir poco a poco). Sería bueno también que veas el Task Manager en tu computadora para ver si no se encuentra haciendo usos de muchos recursos y que pueda hacer que el sistema sea más lento.

Espero toda esta ayuda pueda ser útil,

 

Saludos

Luis C

National Instruments

0 Kudos
Message 2 of 5
(4,704 Views)

Gracias por tu respuesta Luis. Voy a implementar las correcciones que me comentá y luego te comento.

 

Gracias nuevamente y un cordial saludo.

0 Kudos
Message 3 of 5
(4,638 Views)

Estimado Lucas,

quería comentarte que realicé los cambios que me comentaste, adjunto el proyecto para que lo veas.

A pesar de lo anterior, cuando la aplicación loguea los datos recividos en un archivo csv, continúa produciéndose un gran retardo en la visualización y aparecen los "picos" (como saturaciones hasta los extremos de la gráfica). Cuando la aplicación deja de loguear, le toma unos segundos y comienza a mostrar los datos en tiempo real.

Adjunto el proyecto y una imagen donde se muestran los "picos" de los que te hablo. Si tienes alguna sugerencia mas que me puedas dar para mejorar el desempeño de la aplicación, te la agradeceré.

 

Gracias y saludos,

Andrés.

Download All
0 Kudos
Message 4 of 5
(4,482 Views)

Hola Adrian_79,

 

Revisando tu código, me generan un par de dudas. El while loop del centro creo que no es necesario, ya que podríamos cablear el waveform chart en el tercer ciclo antes del build array. Me parece que al hacerlo de esta forma, no vamos a estar desplegando la misma información que guardamos. Por otro lado, sería recomendable poner una función de espera (Wait o Waint until next ms Multiple) para darle tiempo al procesador de realizar otras tareas. Me parece que debido a la forma en que se tiene configurada la tarea, tu computador se va a encontrar muy saturado, podrías revisar en el Task Manager para verificar que esto no sea cierto.

 

Por otro lado, has verificado que el delay no venga por el lado del PIC o que el convertidor de 12 bits esté generando los picos? Estoy consciente de que en el mensaje anterior dijiste que habías revisado lo anterior y que en el log de datos no se ven esos picos, solamente quisiera verificar que de verdad los datos que se muestran sean los reales o que lo mostrado en la gráfica no sea debido a interferencia, una mala conexión o algún otro factor externo. Una última consulta, si disminuye la cantidad de datos a leer, observa un tiempo menor?

 

Saludos

Luis C

National Instruments

 

0 Kudos
Message 5 of 5
(4,434 Views)