Discusiones sobre Productos NI

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

Como mejorar el funcionamiento del programa?

Hola que tal?

 

El programa me funciona bien, pero hay detalles que no se como mejorarlos.

 

El problema esta en el Timeout del "Event Structure". El "Event Structure" esta para que preste atencion a los cambios de valores (Change Value) de los botones "Ok absorsion blanco", "Ok zero", y "Ok longitud de onda". 

 

Si cambia de valor del boton "Ok absorcion blanco", le asigna el valor "1" a "numero de trama".

Si cambia de valor del boton "Ok zero", le asigna el valor "2" a "numero de trama".

Si cambia de valor del boton "Ok longitud de onda", le asigna el valor "3" a "numero de trama".

Pero si no cambia ningun valor, le quiero asignar el valor "0" a "numero de trama". Para este evento, le asigne una cantidad al "timeout" del Event structure.

 


Al colocar una cantidad en el timeout, me retarda todo el funcionamiento. Como puedo evitar eso??? Adjunto el programa para que lo puedan ver.

 

 

Muchas gracias!!

 

 

 

0 kudos
Mensaje 1 de 6
3.725 Vistas

AGREGO: 

 

Pero a la vez, ese problema, me da una ventaja!:  Como el micro envia tramas por puerto en serie al soft, envia y una vez que llego se borra enseguida. AL tener ese retardo, cuando llega la trama, queda esa misma trama "congelada" y logro ver lo que me envia el micro.

 

Osea que, si arreglo el retardo, se me complica la recepcion de datos. Como puedo hacer que se guarde el dato HASTA que el micro envia otro dato nuevo???

 

 

Muchas gracias!!

0 kudos
Mensaje 2 de 6
3.715 Vistas

Goncar87 usted podría mejorar su código en varios items:

 

1. Usted puede utilizar menos variables locales ( siempre que se pueda se debe cablear antes que utilizar variables locales ).

 

2. Debería investigar acerca de estructuras de programación como “ Productor consumidor” o mejorar el uso de la estructura de eventos que usted ya esta utilizando, ya que la forma como usted la usa, no es la adecuada porque cuando usted usa código por fuera de la estructura de eventos su ejecución va a depender de si ocurren o no los eventos en la estructura, así haga uso del timeout ( Vea el Timeout como si fuera otro evento solo que se va ejecutar cada cierta cantidad de tiempo ) pero mientras no se haya cumplido ese tiempo o no se haya activado algún evento, el código por fuera de la estructura va a estar congelado, en su caso las lectura del puerto, es por eso que se utiliza otro tipos de topologias de programacion o ingresar todo el codigo que no es afectado por lo eventos en el caso "Timeout"

 

3. El uso de dos estructuras de eventos en diferente ciclo no se usa, Siempre se utiliza una sola es un solo ciclo y los otros ciclos se dejan para que cumpla otra funciones.

 

En cuanto a mantener un dato para que usted pueda visualizarlo, con la ayuda de Shift Register usted soluciona esto ( adjunto hay un ejemplo ).

 

mantener valor.png

 

Usted actualiza el valor cada vez que presiones el boton , y este valor se mantendra hasta que se actualice nuevamente.



Ing. Jonathan E. Cruz Ortiz

ENERGÍA PROACTIVA S.A.S

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

Mensaje 3 de 6
3.701 Vistas

1- OK.

 

2- Que es productor consumidor? No se mucho de topologia de programacion. Como se aplica?

 

 

No entiendo el metodo para mantener un valor,

 


Jokelnice escribió:

 

En cuanto a mantener un dato para que usted pueda visualizarlo, con la ayuda de Shift Register usted soluciona esto ( adjunto hay un ejemplo ).

 

 



Yo tengo que mantener un valor que se recibe por puerto en serie. Con el shift register, me va a ir sumando el valor que no es lo que estoy buscando. O estoy confundido?

 

Muchas gracias!

0 kudos
Mensaje 4 de 6
3.694 Vistas

Aqui algo de informacion acerca de Productor/consumidor http://www.ni.com/white-paper/3023/enEn cuanto a mantener el valor, revisa el siguiente ejemplo.

 

Mantener valor puerto serie.png

 

El ejemplo lee por el puerto serie si hay datos en el puerto, si no mantiene el dato anterior gracias al shift register y se mantiene en el indicador "read buffer".

 



Ing. Jonathan E. Cruz Ortiz

ENERGÍA PROACTIVA S.A.S

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

Mensaje 5 de 6
3.688 Vistas

Muchisimas gracias!!!!!. Ahora voy a leer lo del productor/consumidor.

0 kudos
Mensaje 6 de 6
3.683 Vistas