Discusiones sobre Productos NI

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

Corregir escalado de forma automática en waveform graph

¡Resuelto!
Ir a solución

Es que lo que te puse fue solo una base de lo que querias hacer.

Las modificaciones son bastante faciles, no las hice, porque no

se exactamente como funciona tu programa debido a que no lo

puedo correr porque no tengo las librerias de arduino.

 

Aclareme esto:

-Cuando presionas PARAR LA GRAFICA el arduino sigue registrando datos?

-Esos datos ya no seran tomados en cuenta en el Grafica?

-Una vez que paras, ahi manera de continuar donde se quedo graficando? o debe

iniciar desde cero otra vez.

 

Explicame bien como es tu logica y te proporciono un poco más de ayuda.





0 kudos
Mensaje 11 de 54
2.848 Vistas

Gracias por tu interes.

 

Mira el funcionamiento es muy basico.

- El arduino, simpre está tomando muestras.

- Cuando activas el boton de empezar a graficar , se presentan los valores que se adquieren desde ese momento hasta que se pulsa de nuevo y se da la orden de parar el registro.

- En esas condiciones el operario deberia poder revisar los datos obtenidos, incluidos con los cursores si fueran necesarios. Si son correctos y le parecen buenos ya puede, si quiere imprimirlos. Hasta aqui ahora, digamos que funciona.

- Lo normal es que si quiere obtener otra grafica, activase el boton de borrrar grafica, ahora se borra todo lo que hay en pantalla y al volver a registrae se en¡mpieza desde 0. Esto tambien está funcionado.

- Pudiera ser que antes de borrar, quisiese activar otra vez el seguir registrando; bueno pues la pantalla presentará los nuevos datos desde ese momento. Cosa que tambien funciona.

 

Los problemas o defectos que le veo de lo que hay hasta ahora serín:

- el ya basicamnete el explicado que si estas registrando y paras la escala de tiempo  pasa a valer desde 0 al maximo en que se quedó si actúo el offset. es asi por que puse , pra probar una logica "and" entre lo que me comentaste anteriormente y la señal del interrupto de puesta y marcha. Claro cunado esta paro se cumple el "false" y ahí se inicializa el valor a 0.

- Otro defecto que veo es que cuando va actuando el ofsset, la pantalla tambien va cambiando hacia la izquierda, pero se va comprimiendo y lo que deberia de realizar es que si el ofsset se incrementa en 1 entonces toda la pantalla capturda se desplazase 1 tambien todo a la izquierda, borrandose lo capturado desde 0 a 1 en vez de irse comprimiendo.

- Luego tengo una pregunta simple, como tengo puesta una base de tiempo de 500ms, entiendo que el muestreo en la pantalla tambien es de 500ms. Entonces ¿como seria la presentacion de la escala para que lo que se indique sea tambien en segundos?

 

Bueno no se de donde seras pero donde estoy ya es muy tarde y tengo que dejarlo hasta mañana. No obstante tambien podemos seguir, si no te importa este asunto por cualquier otro medio: skype, mail,......

0 kudos
Mensaje 12 de 54
2.844 Vistas

Deja te doy otra ayudadita, por cierto, ¿de donde eres? si es que se puede saber.

 

Si quieres te puedo pasar mi correo, pero yo considero que por aqui es mejor, ya que

si yo no te puedo ayudar, hay varios con más experiencia que yo, que de seguro si

podrán ayudarte. Además, cada vez que alguien escribe alguna respuesta en el foro,

me llega una notificación a mi correo, asi que me entero rapidamente, como si el mensaje

me lo enviaras al correo.

 

 





0 kudos
Mensaje 13 de 54
2.833 Vistas

- Otro defecto que veo es que cuando va actuando el ofsset, la pantalla tambien va cambiando hacia la izquierda, pero se va comprimiendo y lo que deberia de realizar es que si el ofsset se incrementa en 1 entonces toda la pantalla capturda se desplazase 1 tambien todo a la izquierda, borrandose lo capturado desde 0 a 1 en vez de irse comprimiendo.

 

---------------------------------------------------------------------------------------------------------------------------

- En esa parte creo que ya te habia dicho que quitaras el autoScale X, y pusieras el valor que quisieras que saliera,

por ejemplo de 0 a 6, pero quitando el autoScale, con eso se corrige eso.





0 kudos
Mensaje 14 de 54
2.831 Vistas

- Luego tengo una pregunta simple, como tengo puesta una base de tiempo de 500ms, entiendo que el muestreo en la pantalla tambien es de 500ms. Entonces ¿como seria la presentacion de la escala para que lo que se indique sea tambien en segundos?

 

------------------------------------------------------------------------------------------------------------------------

En si, la gráfica en el eje x te gráfica el numero de puntos, asi que si tu haces tu medición cada 1000 ms, te va a presentar la

escala en segundos. Lo otro que talvez te complique un poco más, podria ser poner en menu de la grafica en propiedades->

Scales -> Multiplier = 0.5, y el offset en lugar de ir aumentando de 1 en 1, lo tienes que aumentar de 0.5 en 0.5, y empezar a

a aumentar el offset apartir del doble de lo que tenias pensado, por ejemplo, si ivas a empezar apartir del 6 tendrás que empezar en 12. Puede que te funcione, no estoy muy seguro, pero te podrias complicar bastante.

La otra opción, y la unica que no se ve afectada por tu base de tiempo, es utilizar una grafica XY, y al eje x conectarle algo como lo siguiente, y el eje Y seria tu dato del arduino.

Segundos en ejeX grafica xy.png

 

Talvez exista alguna manera más sencilla, pero por el momento solo se me ocurre esa, o dejalo como lo tienes e indicar que cada muestra se tomo cada segundo. Lo que más te recomendaria es usar la grafica XY.





0 kudos
Mensaje 15 de 54
2.825 Vistas

Retomo el asunto y de acuerdo a lo que me indicas tengo lo siguiente:

 

- Si pongo la escala en automatico, tomo el registro y al alcanzar el numero puesto del offset, la escala, efectivamente va cambiado y la grafica se va desplazando a la izquerda, pero se va comprimiendo y entiendo que es al ir aumnetando el numero del escalado, la resolucion se va haciendo mas pequeña.

- Pero si el escaldo le quiro el auto escale, la grafica se queda donde está y solamnete cambia el escalado de la X.

 

Lo ideal seria como en el primer caso peo que no se fuese comprimiendo sino que se desplazase e incluso que cuando llegase al valor 0, antes de actualizarse con el nuevo offset, pues que la grafica desapareciese. Eso no importaria pues al parar con las herraminetas del zoom se puede llegar a ver toda ella.

 

Antes no dije nada pues ya lo habia realizado pero estaba viendo alguna cos mas.

0 kudos
Mensaje 16 de 54
2.821 Vistas

Manuel_Ruiz escribió:

- Luego tengo una pregunta simple, como tengo puesta una base de tiempo de 500ms, entiendo que el muestreo en la pantalla tambien es de 500ms. Entonces ¿como seria la presentacion de la escala para que lo que se indique sea tambien en segundos?

 

------------------------------------------------------------------------------------------------------------------------

En si, la gráfica en el eje x te gráfica el numero de puntos, asi que si tu haces tu medición cada 1000 ms, te va a presentar la

escala en segundos. Lo otro que talvez te complique un poco más, podria ser poner en menu de la grafica en propiedades->

Scales -> Multiplier = 0.5, y el offset en lugar de ir aumentando de 1 en 1, lo tienes que aumentar de 0.5 en 0.5, y empezar a

a aumentar el offset apartir del doble de lo que tenias pensado, por ejemplo, si ivas a empezar apartir del 6 tendrás que empezar en 12. Puede que te funcione, no estoy muy seguro, pero te podrias complicar bastante.

La otra opción, y la unica que no se ve afectada por tu base de tiempo, es utilizar una grafica XY, y al eje x conectarle algo como lo siguiente, y el eje Y seria tu dato del arduino.

Segundos en ejeX grafica xy.png

 

Talvez exista alguna manera más sencilla, pero por el momento solo se me ocurre esa, o dejalo como lo tienes e indicar que cada muestra se tomo cada segundo. Lo que más te recomendaria es usar la grafica XY.


Aqui, me perdí un podo con la explicacion. Lo que intentaba explicar es que si en la escala X tengo puesto valores de 0 a 6, y el tiempo es repeticion del whilw es 500, ¿entonces el registro obtenido desde el 0 a 6 serian 12 sg ya que la muestra son cada 500msg.?

Respecto a la comunicacion por mi no hay problema es seguir por aquí. Mas que nada lo decia porque a veces me puede ser un poco dificil el hacerme entender al explicar de forma escrita y quizas en conversacion directa fuese mas clarificador.

¡ Ah ! vivo en Pinto-Madrid 

0 kudos
Mensaje 17 de 54
2.820 Vistas

Bueno, siguiendo con las pruebas...................

 

Para que los indcadores de la escala de tiempos, cada tic corresponda con un valor real, al tener el tiempo de muestreo en 500msg, solamnete en el escalado del offset me va basta con colar el factor de multiplicacion en 0,5. Con eso me coincide cada graduacion con el tiempo real que ha transcurrido.

 

De momneto voy a ver otras cuestiones y si veo algo mas iré preguntando. Pues tengo una mas, pero eso es la ultima custion al finalizar el desarrollo y pasarlo para crear el ejecutable.

 

0 kudos
Mensaje 18 de 54
2.819 Vistas

- Cuando activas el boton de empezar a graficar , se presentan los valores que se adquieren desde ese momento hasta que se pulsa de nuevo y se da la orden de parar el registro.

 

-------------------------------------------------------------

 

Segun yo, a lo que veo, eso no se cumple, ya que como el arduino siempre  esta agregando muestras al insert into array,

cuando activas el boton de empezar a graficar, se grafican todas las muestras que se fueron acumulando antes de activar

el boton de empezar a gráficar. Y mientras estan en STOP, tambien sigue acumulando datos, asi que cuando quitas la STOP,

se van agregar todos los datos que se generaron durante el tiempo en STOP.

 

¿Cómo arreglar eso?

 

Yo pondría el case structure del start/stop, aqui:

CambiarCaseStructureStartStop.png

 

Y quedaria de la siguiente manera: VER VI adjunto.

 

Sobre el OFFSET, yo cometí un error, no hace lo que tu querias, lo que tu quieres ese hace con las

propiedades de RANGO, que ya te agrege en el VI.

 

No agrege toda la funcionalidad, solo lo que estaba mal. Y como recomendación, para evitar VIs tan

enormes, yo haria subVIs para cada función de tu VI (Leer datos de arduino, graficar, borrar, guardar, etc etc.)

 





0 kudos
Mensaje 19 de 54
2.814 Vistas

Aqui, me perdí un podo con la explicacion. Lo que intentaba explicar es que si en la escala X tengo puesto valores de 0 a 6, y el tiempo es repeticion del whilw es 500, ¿entonces el registro obtenido desde el 0 a 6 serian 12 sg ya que la muestra son cada 500msg.?

Respecto a la comunicacion por mi no hay problema es seguir por aquí. Mas que nada lo decia porque a veces me puede ser un poco dificil el hacerme entender al explicar de forma escrita y quizas en conversacion directa fuese mas clarificador.

¡ Ah ! vivo en Pinto-Madrid 

----------------------------------------------

No, serían 3 segundos.

 

0 seg -> primera muestra

0.5 seg -> segunda muetra

1 seg -> tercer muestra

1.5 seg -> cuarta muestra

2 seg -> quinta muestra

2.5 seg -> Sexta muestra muetra

3 seg -> Septima muestra

 

 

Que bien, yo soy de México.

 





0 kudos
Mensaje 20 de 54
2.809 Vistas