Cargar dinámicamente y ejecutar otro VI en paralelo a mi VI principal

Actualizado el Nov 6, 2023

Reportado en

Software

  • LabVIEW Base
  • LabVIEW Full
  • LabVIEW Professional

Detalles del problema

Estoy usando un nodo de llamada por referencia (del inglés Call By Reference Node) para cargar dinámicamente y ejecutar un VI emergente desde mi VI principal. Mientras se está ejecutando el VI emergente, el VI principal no se ejecuta en paralelo y está bloqueado porque parece depender del Call By Reference Node ¿Cómo puedo cargar y ejecutar dinámicamente otro VI en paralelo a mi VI principal sin bloquear su ejecución?

Solución

Cuando se utiliza el Call By Reference Node para ejecutar un VI, el VI no se ejecuta bajo su propia ejecución. El VI principal dependerá del Call By Reference Node y no se ejecutará en paralelo.

LabVIEW 2011 y posteriores:
En LabVIEW 2011, se pueden usar los nodos Start Asynchronous Call Wait On Asynchronous Call para ejecutar fácilmente subVIs en paralelo con el VI principal. Consultar los VIs de llamada asíncrona (del inglés asynchronously calling VIs)para obtener detalles y ejemplos adicionales.
 
LabVIEW 2010 y anteriores:
En LabVIEW 2010 y versiones  anteriores, para cargar y ejecutar dinámicamente un segundo VI en paralelo al VI principal, se debe llamar al VI utilizando un nodo de invocación (del inglés invoke node) con el método Run. Se debe configurar la opción wait until done option a FALSE para eliminar las dependencias de datos de este VI como se muestra en los ejemplos de la comunidad  en la sección de enlaces relacionados. Si se desea mostrar el panel frontal del VI llamado, se debe usar un nodo de propiedad (del inglés property node) con la propiedad Front Panel Open. Esto permitirá que el VI principal continúe ejecutándose en paralelo después de que se esté ejecutando el VI emergente.


También se puede usar los métodos Set Control Value y Get Control Value para pasar datos de un lado a otro entre los VI principales y emergentes.

Los ejemplos de la comunidad en la sección de enlaces relacionados demuestran el uso de nodos, métodos y nodos de propiedad y de invocación para llamar y ejecutar subVIs en paralelo.