8-Multihilo Semáforos LabVIEW



Vamos a aprender a utilizar otras herramientas de LabVIEW para sincronizar acciones, estas herramientas se llaman semáforos “Semaphore”.
Con “Obtain Semaphore reference” inicializamos la herramienta.




Con esta herramienta mandamos la orden a “Acquire Semaphore”, si uno de estos recibe la señal desde “Obtain Semaphore reference” el resto tendrán que esperar a que termine.



Cuando la señal llega a “Release Semaphore” , otro “Acquire Semaphore” podrá comenzar.




Para cerrar la herramienta utilizamos “Release Semaphore Reference”.






El VI que vamos a utilizar para comprender el funcionamiento de esta herramienta es el siguiente:




El indicador estará continuamente  oscilando entre +1000 y -1000, un semáforo se encargará de que llegue a +1000 y solo cuando haya completado este incremento comenzara a descender hasta -1000 con otro semáforo.


Lo primero que haremos va a ser poner en 0 el indicador y poner en “False” el pulsador de STOP.




A continuación entramos en un  “Flat Sequence” e iniciamos la herramienta de los semáforos.



En primer lugar se ejecutará el “While Loop” que está en la parte superior, dentro de este “While Loop” se cerrará el semáforo para entrar en un “Flat Sequence”.

 En el interior del “Flat Sequence” tendremos otro “While Loop” encargado de incrementar nuestro indicador hasta 1000, utilizaremos una función “OR” para que se detenga en el momento que ha llegado a 1000 ó si pulsamos el botón de STOP.

Una vez salimos del “Flat Sequence” el semáforo queda abierto para que se pueda ejecutar otra acción regulada por esta herramienta.






Con el semáforo superior finalizado pasamos al de la parte inferior que es igual que el anterior con la única diferencia de que decrementa el indicador hasta llegar a -1000.


Cuando finaliza regresa al semáforo anterior.

Video del programa (He reducido +1000/-1000 a +5/-5 para poder ver la ejecución).




                                               DESCARGA VI