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

Hola amigos,

 

Tengo el Vi que adjunto en la imagen que me funciona bien.

Pero tengo un pequeño problema con el escalado del eje de tiempos.Lo tengo configurado como automático y que siempre empiece en un t=0. Ahora bien cuando la captura y por siguiente visualizacion del dato en la pantalla, al llegar al valor máximo de la escala,ésta de forma automática, se va comprimiendo y cambiando el valor del escalado. Ejemplo empieza en 0 y el máximo es 2, pues cuando lleva a 2 automaticamente la escala cambia de 0(mínimo) y 4 (máximo); cuando se alcanza el valor de 4, otra vez vuelve a cambiar y pasa a ser de 0 a 6 y asi suesivamente.

 

Lo que me gustaria conseguir, y no se si podrá que me imagino que sí, es que cuando alcance el calor máximo inicial (2 en el ejemplo descrito), de forma automatica en vez de comprimirse, pues que se desplace toda la escala (incluyendo la imagen representada hasta ese momento). Es decir si inicialmente el rango era de 0 a 2, al alcanzar el valor pues que el escalado pasese por ejemplo de 1 a 3, al llevar a 3 otra vez se desplazase 2 a 4 y asi sucesivamnete.

 

No sé si me explique bien, el caso es que llevo tiempo intentando realizarlo y no veo forma. ¿me pueden echar un idea de como realizarlo?

 

Muchas gracias, por anticipado.

 

F.

0 kudos
Mensaje 1 de 54
5.409 Vistas

Prueba con un nodo de propiedad, el de offset muy probablemente se adapte a tu

necesidad.

Si vemos tu codigo, va a ser más facil ayudarte.

 

 

Saludos.





0 kudos
Mensaje 2 de 54
5.396 Vistas

Gracias por responder.

 

Adjunto en la figura 1 la parte del codigo, donde fijo con el nodo de propiedad solo los limites del eje Y. Esto bien y despues dentro de las propiedades (figura2) tengo colocado en la escala del waveform graph la escala en automatico.

 

Lo que indicas del offset no se muy bien como podria utilizarse ya que el ofsset deberia ser variable para que su valor se renivase cada vez que se rellena de forma completa la pantalla.

Descargar todos
0 kudos
Mensaje 3 de 54
5.381 Vistas

Adjunto el código completo en version 10

0 kudos
Mensaje 4 de 54
5.379 Vistas

dejame ver si te entendí bien,

el eje x de tu grafica es de 0 a 6, cuando llegue al 6,quiere que cambie de 1 a 7, luego de 2 a 8 y asi sucesivamente?





0 kudos
Mensaje 5 de 54
5.371 Vistas

Poner algo asi en tu proyecto decia:

Offset de una Grafica.png

 

Solo tendrias que adaptarlo a tu proyecto, lo cual es bastante sencillo. Creo que vas a tener que quitar el autoescala.

Y agregarle que cuando borres la grafica el offset sea vuelva 0 otra vez y algunos detallitos más, pero basicamente

creo que eso es lo que querias.

 

Saludos, ahi si surge alguna duda o no te funciona, ahi te hecho otra mano.





0 kudos
Mensaje 6 de 54
5.361 Vistas

Efectivamente eso es lo que queria explicar.

0 kudos
Mensaje 7 de 54
5.356 Vistas

Pues aquí es donde creo que me vas a tener que explicar un poco el funcionamineto del codigo que has puesto.

 

Entiendo que lo encerrado dentro del bucle " true" es para aumentar el ofsset de la escala.Así omo su inicalización a 0 cuando se empieza a ejecutar la primera vez.

 

Lo que esta debajo del case true lo unico que entiendo es que lo comparas con el valor de 6(que podria ser otro cualquier) y al ser mayor es cuando se incrementaria el offset- Lo que no entiendo que relacion tiene el tomar como base el valor de "i", Tampoco los 0 en azul a la izquierda fuera del bucle , como su llevada al ciclo while.

Y una ultima cosa lo que hay debajo del inicio del offset para que se utiliza.

 

Gracias por tu tiempo.

0 kudos
Mensaje 8 de 54
5.354 Vistas
Solución
Aceptado por el autor del tema Fer_TACA

Te explico brevemente,

el valor de "i" nomas lo puse como ejemplo, para que estuviera recibiendo datos

cada cierto tiempo, por eso no te preocupes, tu ya recives tus datos del arduino.

 

El 0 en azul nomas es para inicializar la grafica en 0 cuando recien corro el

programa, que en tu caso serian de color naranja por el tipo de dato que

estas utilizando, y lo que esta abajo del offset (lo de la referencia) no lo tomes

en cuenta, solo se puso cuando lo pase a imagen PNG.

 

Algo asi quedaria en tu codigo:

OFFSETgraficaENproyecto.png

 

Ahi revisalo, y me dices si te sirvió,

 

Saludos.





0 kudos
Mensaje 9 de 54
5.343 Vistas

Manuel,

 

mas o menos eso es lo que pretendo, pero como consecuencia de ello, sale otro efecto indeseado y es que cuando le das al boton de empezar a registrar va bien, pero si dices que se parwe la grafica en cualquier momento, como consecuencia de lo implementado el offset sigue cambiando.;

parandose solo si se acciona el boton de borrar grafica. En ese momento, no solo se para el cambio del escalado del eje X si no que se boraran las graficas y el estado del escalado vuelve a 0. Esto correctisimo pero deberia de parar cuando se dejase de querer obtener la grafica.

 

He probado a añadirle un and de la salida de lo que has añadido y del boton de comoenzo. Con eso realiza lo que quiero pero hya un pequeñisimo detalle que no me termina de gustar y es que en este caso, no solo se detiene sino que se cambia a 0 y el maximo. Peor esto es por el valor indicado en el caso"false"

0 kudos
Mensaje 10 de 54
5.340 Vistas