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.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Multiples While Loops en un solo Frame

Hola a todos,

 

Tengo un problema relacionado con multi hilos.

 

Dispongo de una aplicación bastante grande donde quiero que se ejecuten concurrentemente unos 15 while loops controlados por temporizadores. La aplicación funiona perfectamente ya que todos los hilos (loops) comienzan al mismo tiempo llevando un tiempo de ciclo propio y LV parece trabajar paralelamente. Los diferentes bucles han de trabajar constantemente sin llegar a pararse en ningún momento. 6 bucles son de comunicación via MB y el resto para procesamiento de datos con un SCADA a tiempo real que ha de refrescar sin apenas latencia (hasta ahora funciona correctamente).

 

El problema es que empieza a ser una locura trabajar de esta manera por el gran número de loops en un solo frame y cada uno empieza a ocupar mucho (en tamaño visual y la cantidad de variables). Me gustaría trabajar con diferentes frames aunque obviamente esto es complicado puesto queson bucles infinitos. Por otro lado, supongo que debería controlar todo el flujo de datos que comienza a ser un desmadre. Ninguno de los loops es maestro sobre el otro y han de ejecutarse de forma autónoma con un tiempo de ciclo fijo (pero infinitos).

 

Os adjunto un ejemplo de la aplicación muy sencillito donde podríais imaginaros que cada uno de los while loops es enorme. Obviamente hay variables que se comparten cosa que me preocupa por las condiciones de carrera aunque de momento no parece que hayan aparecido pero seguro que aparecerán cuando busque algo de velocidad en el programa...

 

Muchas gracias por la ayuda.Smiley Wink

0 Kudos
Message 1 of 3
(2,742 Views)
I hope that this translates well. Parallel loops don't have to be in the same VI. In fact, they typically are not. Put each loop is its own VI and then create a "launcher" that gets all the other VIs up and running.

My blog talks a lot about this structure, but is in English. The link is in my signature.

Mike...

Certified Professional Instructor
Certified LabVIEW Architect
LabVIEW Champion

"... after all, He's not a tame lion..."

For help with grief and grieving.
0 Kudos
Message 2 of 3
(2,710 Views)

Thanks Mike. 

 

Your blog is awesome. I guess I´ll learn so much up there...

 

Congrats

0 Kudos
Message 3 of 3
(2,696 Views)