From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Discusiones sobre Productos NI

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

Delay en formula node o evitar que un pulso se realice varias veces

¡Resuelto!
Ir a solución

Hola buenas tardes, como puedo hacer un delay en un  formula node?

tengo el problema que al activarse momentáneamente una variable, esta es detectada en más ciclos de lo que deveria, como puedo evitar estos?

 

Espero haberme explicado correctamente.

Gracias

0 kudos
Mensaje 1 de 8
3.195 Vistas

Hola Paico,

 

Tu problema suena a una condición de carrera en tu programación. Éstas son muy comunes cuando se utilizan variables locales/globales; por lo cual te recomiendo revisar tu diagrama de bloques y evitar su uso lo más posible. Una aproximación diferente es utilizar una arquitectura productor/consumidor, que permita enviar datos entre diferentes secciones de tu código, sin que éstos causen condiciones de carrera. Puedes encontrar más información aquí: http://digital.ni.com/public.nsf/allkb/0615A662C8525AED862579820056CEF3?OpenDocument

 

Un saludo!

0 kudos
Mensaje 2 de 8
3.176 Vistas

No, no, bueno espera lo que he leído es que las variables se sobreescriben por no ir sincronizados los ciclos pudiendo perder información, pero eso no es lo que me pasa a mi. El problema es que si tengo tres acciones seguidas que se activan con l a misma variable como el ciclo está muy rápido las acciones se hace con un solo pulso tan rápido que no se ven, yo lo que quiero es que a pesar de haber 3 acciones en serie que se encienden con la misma variable sé enciendan con pulsos diferentes, si puedo luego subiré  un ejemplo del vi.

gracias 

0 kudos
Mensaje 3 de 8
3.167 Vistas

Hola Paico,

 

En ese caso, me parece que hay dos respuestas: En principio no hay un comando de delay como tal disponible en el formula node, por lo que quizá quieras tomar una aproximación diferente al problema. Por otro lado, recomendarte utilizar el express VI de Time Delay para controlar la velocidad del flujo de tu programa.

 

Un saludo!

0 kudos
Mensaje 4 de 8
3.157 Vistas

hola buenos días, mira un ejemplo simplificado de código seria el de la imagen, el cual si funciona pero si utilizo como variable de control la misma en ambos bucles (On) no funciona ya que la activación se hace antes de la desconexión del pulso...

Se que hay estructuras que pueden solventar este problema (aunque no las se utilizar) labview es un programa completísimo pero a veces hacer una pequeña cosa simple se vuelve un jaleo con los bloques.

 

Si tienes alguna sugerencia te lo agradezco

de todas formas gracias por la ayuda 🙂

0 kudos
Mensaje 5 de 8
3.150 Vistas

El objetivo es hacer un menú rotatorio con dos señales, la estructura es tengo dos posibles opciones y al seleccionar una abro otro submenu con tres opciones donde una de ellas es retroceder al menú anterior desactivando el existente. La selección dentro de los menús de haría con una señal y el cambio de opción se realizaría con otra señal, he aquí donde me surge el problema!

0 kudos
Mensaje 6 de 8
3.149 Vistas
Solución
Aceptado por el autor del tema Paico

Vale ya esta todo solucionado. Y la solución es la siguiente, tal vez sea un poco rebuscada por que lo que de la otra forma se hubiera resulto con un delay me a llevado a esto, pero bueno... funciona y parece que bien.

Captura.PNG

 

De todas formas muchas gracias Oscar. 🙂

0 kudos
Mensaje 7 de 8
3.143 Vistas

Hola Paico,

 

Un gusto saber que has solucionado tu problemática. Muchas gracias por compartirnos tu solución.

 

Un saludo!

0 kudos
Mensaje 8 de 8
3.132 Vistas