|
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:
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
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.
|