Discusiones sobre Productos NI

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

Pausar ejecución de un Vi y reanudarla

Hola,

 

Estoy realizando un proyecto en el que tengo dos Vi principales. La aplicación requiere que estos dos Vi se comuniquen, ya que en el primer Vi realizo la configuración de diferentes equipos y en el segundo Vi realizo medidas de un circuito electrónico que tengo montado. La comunicación entre Vi la realizo medianto queues ( no sé si hay alguna otra forma de realizarla).

 

Mi problema es el siguiente. En el primer Vi se realizan diferentes bloques de configuraciones; es decir, se realiza un primer bloque de configuraciones (se configuran todos los equipos) y seguidamente se realizan las medidas del circuito, seguidamente se realiza un segundo bloque de configuraciones y sus correspondientes medidas, y así hasta el número de configuraciones que haya insertado el usuario. Esto significa que una vez se hayan realizado las configuraciones en el primer Vi, debería parar la ejecución de éste (para no pasar a la siguiente configuración), comunicarme con el segundo Vi y realizar las medidas. Una vez que se hayan finalizado las medidas, volver al primer Vi y seguir ejecutando desde dónde se había pausado la ejecución (se realizaría el segundo bloque de configuraciones).

 

Me gustaría saber si hay alguna forma de realizar este mecanismo. Si es posible pausar la ejecución de un Vi principal en un punto, ir a otro Vi a realizar otra ejecución y volver al Vi principal y volver a ejecutarse desde el punto de la pausa. 

 

Muchas gracias de antemano!

0 kudos
Mensaje 1 de 2
4.688 Vistas

Hola Luisi, 

 

creo que podría intentar con una estructura de Queue Message handler (QMH) que es una forma un poco más avanzada del Productor/Consumidor con eventos, dejando el Productor con eventos para manejar las configuraciones desde la Interfaz de Usuario, y enviar esta información por un "mensaje", con la orden y los datos al consumidos o los consumidores. 

 

Si esto no le sirve, podría intentar abrir y cerrar VIs programáticamente usando el VI Server, y guardando la información de configuraciones en variables globales para ser usados en distintos VIs (recuerde dejar todo en un proyecto de LabVIEW .lvproj). La forma como hacer esto, lo puede encontrar en los siguientes enlaces:

 

Programmatically Open a VI from within Another VI

 

How Do I Programmatically Open and Close a VI Within Another VI?

 

How Can I Dynamically Load and Run Another VI in Parallel to My Main VI?

 

Espero haber sido de ayuda.

Patricio Cortes | NI Cono Sur
0 kudos
Mensaje 2 de 2
4.505 Vistas