NI Home > Community > NI Discussion Forums

Discusiones sobre Productos NI

Responder
Member
Lou_5486
Mensajes publicados: 22
0 kudos
Solución aceptada

Ventana emergente sin detener adquisición

Hola a todos!

Tengo un VI que adquiere y genera datos. Cuando pulso un botón me sale un subVI, en forma de ventana emergente, con algunos comentarios sobre el programa, a modo de ayuda.

El problema es que al ejecutarse el subVI me detiene la adquisición, ¿es posible hacer que salga la ventana emergente y que no se detenga la adquisición en ningún momento?

 

Gracias de antemano.

 

Atentamente,

 

Lou

Member
jrafa
Mensajes publicados: 156

Re: Ventana emergente sin detener adquisición

Puedes hacer la adquisición desde un hilo y la llamada a la ventana desde otro. También puedes hacer una llamada no bloqueante con VI Server. Y por último, quizás puedas usar la ventana de ayuda contextual.

Member
Lou_5486
Mensajes publicados: 22
0 kudos

Re: Ventana emergente sin detener adquisición

Podrías extender un poco tu explicación, por favor. Es que aún soy un poco cateta en el tema de programar.

 

Gracias

Member
jrafa
Mensajes publicados: 156

Re: Ventana emergente sin detener adquisición

Supongo que partimos de algo como lo siguiente:

inicio.png

Aquí la adquisición de bloquea hasta que se cierra la ventana emergente porque tanto la ventana como la adquisición están dentro de la iteración del bucle. Hasta que no finalizan todas las tareas del bucle no se pasa a la siguiente iteración.

 

Para evitarlo podemos tener dos bucles en paralelo.

hilos.png

Donde la adquisición es independiente de la ventana. El segundo bucle puede estar esperando a cerrar la ventana, pero el primero puede continuar.

 

También se podría hacer todo dentro del mismo bucle si se realiza una llamada no bloqueante. Para esto hay que utilizar VI Server y se indica que el VI principal no espere hasta que el subVI finalice.

VI Server.png

 

Y para acabar, puedes añadir una descripción a algunos controles del panel frontal y utilizar la ventana de ayuda contextual para que los muestre.

 

contextHelp.png

Member
Lou_5486
Mensajes publicados: 22
0 kudos

Re: Ventana emergente sin detener adquisición

Muchas gracias!

 

Esto es exactamente lo que quería.

 

Una última pregunta, ¿cual utilizarías tu para que el rendimiento del CPU no se resienta?

 

Saludos,

 

Lou

Member
jrafa
Mensajes publicados: 156
0 kudos

Re: Ventana emergente sin detener adquisición

Si la aplicación lo permite, yo utilizaría la ventana contextual porque no tendría que programar nada. Las otras dos opciones son muy parecidas. De ellas yo probaría primero con la de dos hilos porque, a priori, es un poco más sencilla. De todas formas dependerá de tu aplicación y cómo se puede integrar mejor.

 

Sobre el rendimiento, depende más de qué hagan los VIs y no tanto de como se abran sus ventanas. Al hilo de esto, he puesto funciones de Wait para en los bucles para evitar que la ejecución de estos lleve al PC a utilizar una cpu al 100%. Una opción mejor hubiera sido utilizar eventos. Estos métodos se pueden utilizar en tu subVI para que no consuma mucho tiempo de cpu.