el 07-30-2011 03:25 PM
Hola amigos es la primera vez que escribo, siempre he encontrado soluciones a mis problemas en los diferentes foros, pero esta vez no tengo idea del porque no me almacena los datos de la gráfica que genero y el porque la gráfica no es la que espero.
El problema es el siguiente recibo una señal analógica en el PIC18F2550 estoy trabajando a 4 MHz, Esta señal la convierto a digital con 10 bits de resolución y la envio mediante el modulo USART del PIC a 9600 Baudios.
Dentro de la sesión VISA en LABVIEW configuro los parametros de entrada de la señal mediante VISA al correr el pic y la coversión ingresando una señal senoidal de 1 Vp-p a 1 KHz me despliega una señal pero parece que le falta muestreo por que se despliega pero no de forma correcta. me podrian ayudar para saber si estoy configurando mal la sesión VISA, ya he probado con diferentes Baudios a 19600, 38400 y hasta el PIC lo he puesto a trabajar a 20 MHZ pero parece no funcionar, estoy trabajando a una conversión de FOSC/2 pero lo he modificado a FOSC/4 y FOSC/8.
El otro problemita que tengo si ALguien me puede ayudar es el que en el momento de hacer funcionar el PIC, en LABVIEW se despliega la señal pero cuando deja de tranajar el PIC la señal se borra y no la puedo analizar que es mi proposito final. He intentado con arreglos y mandar los datos a un TXT, pero nada
Por Favor me estoy quedando sin posibles causas de mis errores si alguien me puede ayudar se lo agradecería bastante.
Anexo una imagen del problema y mi archivo creado en LABVIEW
Saludos Dan.
el 08-09-2011 10:40 AM
Hola DAN,
En tu codigo veo que inicializas y cierras la sesion de Visa en tu ciclo while, mi recomendacion es que inicialices primero la sesion visa fuera de tu ciclo while y la cierras al terminar tu ciclo, esto para mejorar el rendimiento y no tener que reiniciarla cada vez que quieras leer datos, ya que se pueden perder algunos datos por el tiempo que toma reiniciar la sesion. Prueba utilizar la funcion express de "write to measurement file" para guardar tus datos.
Saludos,
el 08-19-2011 04:43 PM
Hola DAN
En tu codigo tambien asegurate que el microcontrolador este mandando el caracter de terminacion. Hay alguna razon por la cual lo estes utilizando?, podrias omitirlo. LabVIEW presente programas ejemplos muy buenos para el uso de VISA, prueba estos para realizar una sencilla comunicacion con tu microcontrolador y asi validar que se envian y reciben datos, el ejemplo lo puedes encontrar en Help->find examples->Hardware Input and Output->Serial-> Basic Serial Write and Read.vi
Al momento de guardar tus datos utilizando la funcion de Write to Spreadsheet File, debes poner una contante de True para que añada nuevos datos en el archivo, si no conectas algo, la opcion por defecto es False y reemplaza todos los datos que tengas en el archivo o bien crea uno nuevo.
Tambien aqui te dejo un sencillo ejemplo acerca de como utilizar esta funcion
https://decibel.ni.com/content/docs/DOC-7138
Comentame los resultados y estoy al pendiente de tu problema
Saludos.
el 11-22-2013 12:58 AM
Hola que tal Jaime Peña, me sirvió mucho tu comentario para almacenar las lecturas de las graficas en archivos de texto.
Anteriormente estaba graficando 6 canales del ADC de 12 bits de un MSP430 mandando una cadena de 24 caracteres +1 de terminación a 9600 bauds, estos los separaba en 6 gráficas y a su vez los almacenaba con el "write to measurement file" que mencionabas.
El problema es que a 9600 bauds solo podia tener 38 muestras por segundo, ese es un muy grande problema para mi, Así que configuré el puerto a 115200 para tener 460 muestras por segundo y lo que pasó es que me empezó a marcar error de que no habia terminado de leer un caracter cuando ya le habia llegado otro.
Entonces probé quitando la parte de "write to measurement file" que tenia instalado en cada grafica y el "vi" funciona sin problemas. Ahora mi detalle es ¿CÓMO ALMACENO LOS DATOS DE LAS GRÁFICAS?. Si conocieras de algún método para guardar los datos que tenga la grafica hasta que yo finalice el programa te lo agradeceria mucho.
De antemano muchas gracias y saludos
ATTE
Antony MoCe
el 11-25-2013 05:38 PM
Hola Antony;
Te recomendaría ocupar una arquitectura de productor/consumidor; en esta arquitectura se usan dos ciclos independientes; en el lazo productor puedes hacer el envío de caracteres y en el consumidor el guardado de datos; la comunicación o envío de los mismos se haría idealmente mediante queues para evitar la pérdida de los mismos.
Aquí un sencillo ejemplo
Espero te sea útil
Saludos