Detectando un Evento en un SubVI Desde un TopLevel VI.



Hardware: PXI/CompactPCI>>Controllers

Problema:

Tengo una estructura de eventos en un subVI y quiero detectar el evento desde un VI de nivel superior. ¿Es esto posible?

Solución:

Como en LabVIEW 7.0, es posible detectar los eventos del panel frontal que ocurren en un VI desde su subVI. El vínculo entre los VIs es una referencia del objeto del panel frontal que disparará el evento. Para detectar un evento del panel frontal que ocurre en un subVI desde un VI de nivel superior, se debe realizar lo siguiente:

En el Sub VI:

1. Seleccione un control Refnum para cada evento que necesite ser modificado, de clic derecho en el panel frontal y seleccione Modern»Refnum.

2. De clic derecho en el diagrama de bloques y seleccione Measurement I/O»DAQmx - Data Acquisition»DAQmx Advanced»DAQmx Events»Events para colocar una función de Registro de Eventos.

3. Registre todos los eventos a ser monitoreados conectando cada control refnum a la función Registro de Eventos y selecciona el evento a ser monitoreado. (Por ejemplo, Value Change como se muestra en la Figura 1).


Figura 1: Registro de Eventos en un Sub VI

4. Navegue hacia Programming»Structures y coloque una estructura de eventos en el diagrama de bloques a la derecha de la función Registro de Eventos.

5. Habilite la terminal de evento dinámico en la estructura evento dando clic derecho en la estructura y seleccionado Show Dynamic Event Terminals.



Figura 2: Show Dynamic Event Terminals.

6. Conecta la function Register For Events a la terminal Dinamic Event y edita el evento en cada caso. Selecciona el control y evento a ser monitoreado bajo la fuente dinámica.




Figura 3: Cuadro de diálogo Edit Events

7. Navegue hacia Measurement I/O»DAQmx - Data Acquisition»DAQmx Advanced»DAQmx Events»Events y coloque la function  Unregister For Events después de la estructura de eventos y cablea la terminal de salida del evento dinámico a la función Unregister For Events.


Figura 4: Arquitectura del Sub VI

En el VI de nivel superior.

8. Crea una referencia en panel frontal. Da clic derecho en el control y selecciona Create»Reference.

9. Coloca el SubVI dentro del VI de nivel superior.

10. Transfiere la referencia desde el VI superior al SubVI. Conecta el control de referencia a la correspondiente entrada del control de referencia creado en el SubVI.

 
Figura 5: Top-Level VI con control de referencia

Nota: Esto no es posible en versiones anteriores de LV 7.0 debido a que se requiere del registro de eventos dinámicos, el cual se introdujo en ésta versión.

 

Para observar un ejemplo, refiérase al programa anexo.


Nota: En LabVIEW 8.0 o superior, refiérase para más información al tema Using Events in LabVIEW dentro de la ayuda de LabVIEW (Help, el vínculo se indica a continuación).
Para LabVIEW 7.1 o inferior, refiérase al Manual de Usuario de LabVIEW.

 
 


Ligas Relacionadas:
LabVIEW Help: Using Events in LabVIEW

LabVIEW Help: Dynamically Registering Events
Product Manual: LabVIEW User Manual – April 2003

Developer Zone Tutorial: Event-Driven Programming in LabVIEW
Developer Zone Tutorial: A Powerful New Tool for UI Programming-User Interface Event Programming
KnowledgeBase 2FTC5LYA. How Can I Wait for Activity on the Front Panel of Another VI?
KnowledgeBase 47CJ8NUI: Registering Multiple Events Using Event Structures
KnowledgeBase 2P5ENOFP: Can I Use Multiple Event Structures To Handle The Same Event In LabVIEW?

Archivos Adjuntos:


Example.zip - Example.zip


Día del Reporte: 12/31/2003
Última Actualización: 06/18/2009
Identificación del Documento: 34UBL0RF