Está en la página 1de 46

TM

LabVIEW Core 2

io ts
Ejercicios

ut en
n
ib m
tr u
is tr
Versión del software actual 2012
Edición de Agosto 2012

D s
Número de parte 325293D-0154
LabVIEW Core 2 Manual de Ejercicios

r In
Copyright
© 1993–2012 National Instruments. Todos los derechos reservados.
fo al
En virtud de las leyes de copyright y de protección de los derechos de autor, esta publicación no puede reproducirse ni transmitirse en ninguna forma, electrónica o mecánica, incluidas las fotocopias,
grabación, almacenamiento en un sistema de recuperación de información, o traducción, en su totalidad o en parte, sin el consentimiento previo por escrito de National Instruments Corporation.
National Instruments respeta los derechos de propiedad intelectual de otros, y solicitamos a nuestros usuarios que hagan lo mismo. El software de NI está protegido por el derecho de autor y las normas
ot on

de la propiedad intelectual. Aunque el software de NI puede utilizarse para reproducir software u otro material perteneciente a otros, el software de NI sólo podrá utilizarse para reproducir material que
pueda reproducir conforme a los términos de cualquier licencia aplicable u otra restricción legal.

Contrato de licencia de usuario final y avisos legales a terceros


N ti

El contrato de licencia de usuario final (‘EULA’) y avisos legales a terceros se puede encontrar en las siguientes localidades:
• Los avisos se localizan en los directorios <National Instruments>\_Legal Information y <National Instruments>.
a

• Contrato de licencia de usuario final se localiza en el directorio <National Instruments>\Shared\MDF\Legal\License.


• Revise <National Instruments>\_Legal Information.txt para más información legal sobre los instaladores desarrollados con productos de NI.
N

Marcas comerciales
LabVIEW, National Instruments, NI, ni.com, el logotipo corporativo de National Instruments, y el logotipo del aguila son marcas propiedad de National Instruments Corporation. Por favor, consulte
Trademark Information en la página ni.com/trademarks para información sobre otras marcas de National Instruments.
Otros nombres de productos y de empresas mencionados aquí son marcas o nombres comerciales de sus respectivas empresas.

Patentes
Para obtener información sobre las patentes que protegen los productos o la tecnología de National Instruments, consulte el apartado: Help»Patents en su software, el archivo patents.txt en el
soporte del mismo, o el Aviso sobre las Patentes de National Instruments (National Instruments Patent Notice) en ni.com/patents.
N
a
N ti
ot on
fo al
r In
D s
is tr
tr u
ib m
ut en
io ts
n
io ts
ut en
n
ib m
tr u
is tr
D s
r In
fo al
ot on
N ti
a

Información del producto y soporte técnico mundial


ni.com
N

Oficinas internacionales
Visite ni.com/niglobal para acceder a las páginas web de las oficinas internacionales, las cuales incluyen información actualizada de contacto, teléfonos de soporte técnico, direcciones de email y
eventos actuales.

Oficinas centrales de National Instruments Corporation


11500 North Mopac Expressway Austin, Texas 78759-3504 USA Tel: 512 683 0100

Para realizar comentarios a National Instruments sobre la documentación, consulte la página web de National Instruments Web ni.com/info e introduzca el código de información feedback.
N
a
N ti
ot on
fo al
r In
D s
is tr
tr u
ib m
ut en
io ts
n
Más allá del flujo de datos
1

io ts
ut en
Ejercicios

n
Ejercicio 1-1 Concepto: Comparación de colas con variables locales

ib m
Ejercicio 1-2 Concepto: Comparando diseños de estructura Event con diseños de sondeo.

tr u
is tr
D s
r In
fo al
ot on
N ti
a
N

LabVIEW Core 2 Manual de Ejercicios © National Instruments | 1-1


Lección 1 Más allá del flujo de datos ni.com | 1-2

Ejercicio 1-1 Concepto: Comparación de colas con variables locales

io ts
Objetivo
En este ejercicio se ejecutará y examinará un VI de patrón de diseño productor/consumidor que transfiere datos generados por el bucle productor a cada bucle

ut en
consumidor utilizando variables y colas.

n
Descripción

ib m
Las secciones siguientes describen cómo el VI Queues vs Local Variables hace lo siguiente.

tr u
• Creación de una cola

is tr
• Colas de datos que genera el bucle productor.

• Extracción de datos en el bucle consumidor.

D s
• Espera a que la cola se vacíe antes de salir del VI.

r In
• Utiliza las variables locales para leer y mostrar datos del bucle productor.
fo al
ot on
N ti
a
N
1. Abra Queues vs Local Variables.vi en el directorio <Exercises>\LabVIEW Core 2\Queues versus Local Variables.

2. Haga doble clic en Queues vs Local Variables.vi en la ventana del Project Explorer para abrir el VI. El panel frontal de este VI aparece en la figura 1-1.

io ts
Figura 1-1. Panel frontal del VI Queues vs Local Variables

ut en
n
ib m
tr u
is tr
D s
r In
fo al
ot on
N ti
a
N

3. Ejecute el VI. El bucle productor genera datos y los transfiere a cada bucle consumidor mediante una variable local y una cola. Observe el comportamiento del
VI cuando los bucles consumidores se ajustan a la misma velocidad que el bucle productor.

4. Detenga el VI.

LabVIEW Core 2 Manual de Ejercicios © National Instruments | 1-3


Lección 1 Más allá del flujo de datos ni.com | 1-4

5. Abra y examine el diagrama de bloques de este VI. Las siguientes secciones describen las partes de este diagrama de bloques con más detalle.
Figura 1-2. Diagrama de bloques del VI Queues vs Local Variables

io ts
ut en
n
ib m
tr u
is tr
D s
r In
fo al
ot on
N ti
a
N
Creación de una cola
Crear la cola con el código que se muestra en la Figura 1-3. Este código se encuentra a la izquierda del bucle productor.

io ts
Figura 1-3. Creando la cola

ut en
1

n
2

ib m
3

tr u
1 Max queue size — Establece el número máximo de elementos que puede contener la cola.
2 La constante numérica Data Type — cableada a la entrada element data type de la función Obtain Queue, especifica el tipo de datos que desea que contenga

is tr
la cola.
3 Obtain Queue — Crea la cola y define el tipo de datos.

D s
r In
Introduccion en cola de datos que genera el bucle productor
fo al Figura 1-4. Poniendo en cola datos que el bucle productor genera
ot on

1
N ti
a
N

1 Enqueue Element — Agrega cada elemento de datos, que el VI Generate Sine genera en el bucle productor a la parte posterior de la cola.

LabVIEW Core 2 Manual de Ejercicios © National Instruments | 1-5


Lección 1 Más allá del flujo de datos ni.com | 1-6

Extracción de datos de la cola del bucle productor dentro de la cola del bucle consumidor
Figura 1-5. Extracción de datos en el bucle consumidor

io ts
ut en
n
2
1

ib m
tr u
is tr
1 Dequeue Element — Elimina un elemento de la parte delantera de la cola y se envía el elemento de datos al “waveform chart” de la cola del bucle consumidor.

D s
2 Get Queue Status — Indica cuántos elementos permanecen en la cola. Para procesar estos datos, debe ejecutar la cola del bucle consumidor más rápido que
el bucle productor, o seguir procesando una vez que se haya detenido el bucle productor.

r In
fo al
ot on
N ti
a
N
Espera hasta que se vacíe la cola
Figura 1-6. Espera hasta que se vacíe la cola

io ts
ut en
1

n
2 5

ib m
4
3

tr u
is tr
D s
r In
fo al
ot on

1 While Loop — Espera a que la cola se vacíe antes de salir del VI. Haga referencia a este bucle While como Queue Wait Loop.
2 Get Queue Status — Retorna información acerca de el estado actual de la cola, como el número de datos que contiene actualmente.
3 Equal To 0? — Cableada a la condición de parada del Queue Wait Loop comprueba si la cola está vacía.
N ti

4 Release Queue — Libera y limpia las referencias de la cola.


5 Simple Error Handler — Reporta un error dado al final de la ejecución.
a
N

LabVIEW Core 2 Manual de Ejercicios © National Instruments | 1-7


Lección 1 Más allá del flujo de datos ni.com | 1-8

Local Variable Consumer Loop


El bucle productor genera datos de onda sinusoidal y los escribe en una variable local, mientras que el bucle Local Variable Consumer Loop lee periódicamente los

io ts
datos de la onda sinusoidal desde la misma variable local.
Figura 1-7. Local Variable Consumer Loop

ut en
n
ib m
tr u
is tr
D s
1

1
r In
Update Counters — Actualiza los contadores para muestras duplicadas o perdidas.
fo al
Prueba
ot on

Local Variable Consumer Loop


1. Cambie al panel frontal del VI Queues vs Local Variables.
N ti

2. Ejecute el VI.
a

3. Seleccione diferentes velocidades para el bucle Local Variable Consumer Loop y observe el gráfico del Local Variable Consumer Loop y los resultados generados
N

en el indicador Missing Samples o el indicador Duplicated Samples.

 Asegúrese de que se selecciona Same as Producer Loop en Loop Speed y observe el gráfico del bucle productor y el gráfico del bucle Local Variable
Consumer Loop. Puede ocurrir una condición de carrera a raíz de puntos omitidos o datos duplicados.
 Seleccione 2x del menú desplegable del control Loop Speed y observe el gráfico del bucle Local Variable Consumer Loop. Ocurre una condición de carrera
porque los datos se consumen más rápidamente de lo que se producen, lo que hace que la variable local lea el mismo valor varias veces.

io ts
 Seleccione 1/2 as Producer del menú desplegable del control Loop Speed y observe el gráfico de el bucle Local Variable Consumer Loop. Ocurre una
condición de carrera porque los datos se producen más rápidamente de lo que se consumen. Los datos cambian antes de que la variable local pueda leerlos.

ut en
 Seleccione las opciones restantes del menú desplegable del control Loop Time y observe la recuperación de los datos.

n
4. Detenga el VI.

ib m
La transferencia de datos entre dos bucles paralelos no sincronizados utilizando variables locales produce una condición de carrera. Esto ocurre cuando el bucle
productor está escribiendo un valor en una variable local, mientras que el bucle Local Variable Consumer Loop lee periódicamente el valor desde la misma

tr u
variable local. Como los bucles paralelos no están sincronizados, el valor puede escribirse antes de que se haya leído o viceversa, lo que produce la inanición de
datos o el exceso de datos.

is tr
Queue Consumer Loop

D s
1. Ejecute el VI.

r In
2. Seleccione la velocidad del tiempo del bucle Queue Consumer Loop y observe la gráfica tipo “waveform graph” de este bucle y los resultados generados en el
indicador Samples in Queue. fo al
 Asegúrese de que el Loop Speed seleccionado es Same as Producer; observe el valor del indicador Samples in Queue. El valor debe permanecer en cero.
Por lo tanto, con las colas no perderá datos cuando los bucles productor y consumidor se estén ejecutando a la misma velocidad.
ot on

 Seleccione 2x en el menú desplegable del control Loop Speed y observe el valor del indicador Samples in Queue. El valor debe permanecer en cero. Por lo
tanto, con las colas no perderá datos cuando el bucle consumidor se esté ejecutando más rápidamente que el productor.

 Seleccione 1/2 as Producer en el menú desplegable del control Loop Speed y observe el valor del indicador Samples in Queue. Los puntos de datos se
N ti

acumularán en la cola. Tendrá que procesar los elementos acumulados en la cola antes de llegar al tamaño máximo de ésta para no perder datos.
a

 Seleccione las opciones restantes del menú desplegable del control Loop Time y observe la sincronización de la transferencia de datos entre el bucle
productor y el bucle consumidor utilizando colas.
N

LabVIEW Core 2 Manual de Ejercicios © National Instruments | 1-9


Lección 1 Más allá del flujo de datos ni.com | 1-10

3. Detenga el VI.

Cuando el bucle productor y el bucle Queue Consumer Loop se ejecutan a la misma velocidad, no cambiará el número de elementos de la cola. Cuando el bucle

io ts
Queue Consumer Loop se ejecuta más lentamente, la cola se llena rápidamente y el bucle productor debe esperar a que el bucle Queue Consumer Loop elimine
los elementos. Cuando el bucle Queue Consumer Loop se ejecuta más rápidamente, la cola se vacía rápidamente y el bucle consumidor debe esperar para insertar
nuevos elementos. Así, las colas sincronizan la transferencia de datos entre los dos bucles paralelos independientes y se evita la pérdida o duplicación de datos.

ut en
4. Cierre el VI. No guarde los cambios.

n
Fin del ejercicio 1-1

ib m
tr u
is tr
D s
r In
fo al
ot on
N ti
a
N
Ejercicio 1-2 Concepto: Comparando diseños de estructura Event con diseños de sondeo.

io ts
Objetivo
Convertir una aplicación basada en sondeo en una aplicación basada en eventos

ut en
Descripción

n
En primer lugar se observa el comportamiento de un VI de sondeo.

ib m
A continuación, modifique el VI de sondeo para crear un VI más eficiente basado en eventos y observe los cambios en el comportamiento.

tr u
Por último, añada diferentes tipos de eventos al VI.

is tr
La tabla 1-1 enumera los eventos que se implementan en el VI UI Event Handler.

D s
Tabla 1-1. Eventos de la interfaz de usuario

r In
Eventos Descripción de eventos

“Stop”: Value Change fo al Detener el bucle While.

“Time Check”: Value Change Muestra una marca de tiempo cuando se hace clic en el botón Time Check.
“Pane”: Mouse Down Muestra las coordenadas del punto del panel frontal donde se hace clic.
ot on

Panel Close? Controla el evento en el que el usuario intenta cerrar el VI en ejecución haciendo clic en el botón cerrar de la
ventana.
N ti

“Stop”: Mouse Enter Produce un sonido cuando se mueve el cursor sobre el botón Stop.
a

Observando el comportamiento del VI basado en sondeo


N

1. Abrir y ejecutar el VI

 Abra el archivo Events.lvproj en el directorio <Exercises>\LabVIEW Core 2\Events y abra el VI Polling.vi.

LabVIEW Core 2 Manual de Ejercicios © National Instruments | 1-11


Lección 1 Más allá del flujo de datos ni.com | 1-12

2. Examinar el rendimiento de un VI de sondeo mediante el administrador de tareas de Windows.

 Presione las teclas <Ctrl-Alt-Delete> y seleccione Administrador de tareas desde el menú.

io ts
 Haga clic en la pestaña Performance en la ventana del Administrador de tareas

ut en
 Ejecute el VI.

 Observe lo alto que es el uso del CPU.

n
ib m
 Detenga el VI y observe cómo el uso del CPU cae.

3. Abra el diagrama de bloques, habilite “execution highlighting”, y ejecute de nuevo el VI.

tr u
4. Tenga en cuenta la frecuencia en la que el terminal Time Check envía los datos a la estructura Case y con qué frecuencia el bucle While itera.

is tr
5. Detenga el VI y desactive “execution highlighting”

D s
r In
Modificación del VI de sondeo para utilizar eventos en lugar de sondeo
1. Guarde el VI como UI Event Handler.vi para poder modificarlo.

 Seleccione Open additional copy y añada la copia al proyecto.


fo al
2. Cierre el VI Polling.vi
ot on

3. Abra el diagrama de bloques de Events.vi y mueva el terminal Stop y el terminal de Time Check fuera del bucle While. Mueva estos terminales hacia el evento
apropiado más adelante en este ejercicio.
N ti

4. Eliminar la estructura Case y limpiar los cables rotos.


a

5. Coloque una estructura Event dentro del bucle While entre el terminal de itereción y el terminal condicional.
N

6. Haga clic con el botón derecho en la estructura Event y seleccione Edit Events Handled by This Case en el menú contextual.
7. Configure el evento como en la figura 1-8.
Figura 1-8. Configuranto el evento “Stop”: Value Change Event

io ts
ut en
n
ib m
tr u
2

is tr
1

D s
r In
fo al
ot on
N ti
a

1 Haga clic en Stop en el panel de Event Sources.


2 Haga clic en Value Change en el panel de Events.
N

8. Haga clic en OK para cerrar el cuadro de diálogo.

LabVIEW Core 2 Manual de Ejercicios © National Instruments | 1-13


Lección 1 Más allá del flujo de datos ni.com | 1-14

9. Ponga una constante True dentro del nuevo evento “Stop”: Value Change y cableelo al terminal condicional del bucle While como en la figura 1-9.
Figura 1-9. Estructura Event con “Stop”: Value Change Event

io ts
ut en
n
ib m
1

tr u
is tr
D s
1 NewVal event data — Redimensiona la lista de elementos de datos de eventos para que sólo una muestra aparezca. Haga clic en el elemento y seleccione

r In
NewVal.

Observando el comportamiento de un VI manejado por eventos


fo al
1. Ejecute el VI.

2. Tenga en cuenta que el indicador Iteración no se incrementa.


ot on

3. Vaya al diagrama de bloques y habilite Execution Highlighting.

4. Tenga en cuenta que el bucle While se está ejecutando en su primera iteración. La estructura Event está esperando un evento.
N ti

5. Deshabilite “execution highlighting” y vaya de vuelta al panel frontal.


a

6. Haga clic en el botón Stop para detener el VI.


N

7. Tenga en cuenta que el VI detiene la ejecución, aunque el botón Stop esté desconectado.

8. Observe que el botón Stop se mantiene presionado a pesar de que la acción mecánica se ajusta a Latch When Released. La razón de que el botón se mantenga
presionado es porque el VI dejó de funcionar después de hacer clic en el botón.
9. Reinicie el botón Stop haciendo clic en él nuevamente.

10. Arrastre el terminal del botón Stop dentro del evento “Stop”: Value Change event, como en la figura 1-10.

io ts
Figura 1-10. “Evento Stop”: Value Change con un botón terminal Stop

ut en
n
ib m
tr u
is tr
D s
r In
11. Ejecute el VI y haga clic en Stop nuevamente.

12. Tenga en cuenta que en este momento el VI se detiene y el botón se reinicia.


fo al
ot on
N ti
a
N

LabVIEW Core 2 Manual de Ejercicios © National Instruments | 1-15


Lección 1 Más allá del flujo de datos ni.com | 1-16

Programando el evento “Time Check”: Value Change


1. Agregar un nuevo caso a la estructura de eventos y crear un evento “Check Time”: Value Change, como en la figura 1-11.

io ts
 Haga clic con el botón derecho en la estructura Event y seleccione Add Event Case.
Figura 1-11. Estructura Event con evento “Time Check”: Value Change

ut en
n
ib m
1

tr u
3

is tr
4

D s
1

r In
En la ventana Edit Events, seleccione Time Check en el panel Event Sources y seleccione Value Change en el panel Events.
fo al
2 Mueva el terminal de Time Check fuera del bucle While en “Time Check”: Value Change evento.
3 Get Date/Time In Seconds — Crea una estampa de tiempo en memoria.
ot on

4 Indicator — Muestra la salida current time (tiempo actual) de la función Get Date/Time In Seconds.

2. Ejecute el VI.
N ti

3. Haga clic en el botón Time Check para ver el tiempo actual en el indicador current time.
a

4. Abra el Administrador de tareas de windows y observe que el uso de CPU se ha reducido al utilizar eventos en lugar de sondeo.
N

5. Detenga el VI.
Adición de más eventos Notifier para el VI
1. Añadir un nuevo caso a la estructura de eventos Mouse Down como se muestra en la figura 1-12.

io ts
Figura 1-12. Estructura Event con el evento “Pane”: Mouse Down

ut en
1

n
ib m
2

tr u
is tr
D s
1 En la ventana Edit Events, seleccione Panes»Pane en el panel Event Sources y seleccione Mouse»Mouse Down en el panel Events.

r In
2 Coords event data — Haga clic en el event data node y seleccione Coords»All Elements.
3 Coords indicator — Haga clic con el botón derecho en la salida del elemento de datos del evento Coords y seleccione Create»Indicator en el menú contextual.
fo al
2. Ejecute el VI.

3. Haga clic en diferentes partes del panel frontal.


ot on

 Observe que el indicador Coords muestra las coordenadas de cada punto en el que se hace clic.

 Observe que los otros eventos siguen comportándose como antes.


N ti

4. Detenga el VI.
a
N

LabVIEW Core 2 Manual de Ejercicios © National Instruments | 1-17


Lección 1 Más allá del flujo de datos ni.com | 1-18

Agregar eventos de filtro para el VI


1. Añadir un nuevo caso a la estructura de eventos y crear un evento Panel Close? como se muestra en la figura 1-13.

io ts
Figura 1-13. Estructura Event con el evento “Panel Close?”

ut en
1

n
4

ib m
5

tr u
3

is tr
2

D s
r In
1 En la ventana Edit Events, seleccione <This VI> en el panel Event Sources y seleccione Panel Close? en el panel Events.
2 Nodo event data — Haga clic en el nodo Event Data y seleccione Source en el menú.
3
fo al
Funciones Two Button Dialog y Not — Cablee la salida T button? a la función Not y cablee la función Not al event filter node “Discard?”
4 Constante de cadena de caracteres — Cablee Are you sure you want to close the window? a la entrada de message.
5 Constantes de cadenas de caracteres Yes y No — Cablee Yes a la entrada de T button name (“OK”) y cablee No a la entrada F button name (“Cancel”).
ot on

2. Guarde y cierre el VI.

3. Haga clic en la “X” en la parte superior derecha de la ventana del panel frontal.
N ti

4. Note que haciendo clic en el botón No, se cancela el evento y se retorna al VI.
a

5. Haga clic en el botón Yes para detener y cerrar el VI.


N

6. Detenga el VI si es necesario.
Reto
1. Si usted tiene una tarjeta de sonido, añadir un evento que produce un sonido cuando el cursor está sobre el botón Stop.

io ts
Consejo Utilice Quick Drop para encontrar Beep.vi.

ut en
Fin del ejercicio 1-2

n
ib m
tr u
is tr
D s
r In
fo al
ot on
N ti
a
N

LabVIEW Core 2 Manual de Ejercicios © National Instruments | 1-19


N
a
N ti
ot on
fo al
r In
D s
is tr
tr u
ib m
ut en
io ts
n
Control de la interfaz de usuario
3

io ts
ut en
Ejercicios

n
Ejercicio 3-1 Visualización de temperatura y límites

ib m
Ejercicio 3-2 Personalización de la Ventana del VI
Ejercicio 3-3 Uso de subVIs

tr u
is tr
D s
r In
fo al
ot on
N ti
a
N

LabVIEW Core 2 Manual de Ejercicios © National Instruments | 3-1


Lección 3 Control de la interfaz de usuario ni.com | 3-2

Ejercicio 3-1 Visualización de temperatura y límites

io ts
Objetivo
Use Nodos de Propiedad para cambiar las propiedades de los objetos del panel frontal programáticamente.

ut en
Escenario

n
Complete un VI que registre la temperatura en un gráfico tipo “waveform chart”. Durante la ejecución, el VI realiza las siguientes tareas:

ib m
• Desactivar y activar los controles en el inicio y la finalización de la ejecución.

tr u
• Configurar el valor x del gráfico tipo “chart” con el valor que define el usuario.

is tr
• Borrar el gráfico tipo “waveform chart” para que inicialmente no contenga datos.

D s
• Reto: Cambiar el color de una curva si los datos superan cierto valor.

r In
Diseño
Se debe construir este VI en cuatro etapas, incluyendo un desafío.
fo al
Parte 1 — Deshabilitar controles
ot on

Parte 2 — Habilitar controles

Parte 3 — Limpiar el gráfico


N ti

Parte 4 — Desafío: Cambiar el color del contenido del gráfico


a
N
Implementación

io ts
Parte 1 — Deshabilitar controles
1. Abra el VI Temperature Limit.vi situado en el directorio <Exercises>\LabVIEW Core 2\Temp Limit - Ctl Props.

ut en
Figura 3-1. Panel frontal de Temperature Limit

n
ib m
tr u
is tr
D s
r In
fo al
ot on

2. Ejecute el VI y luego haga clic en el botón Start Acquisition.

 Tenga en cuenta que mientras que el VI se ejecuta, los controles siguen habilitados. Se pueden cambiar los valores de los controles, mientras que el VI se
ejecuta.
N ti

 Haga clic en el botón Stop.


a

3. Modificar el diagrama de bloques como se muestra en la figura 3-2 para desactivar los controles cuando el VI se ejecuta.
N

LabVIEW Core 2 Manual de Ejercicios © National Instruments | 3-3


Lección 3 Control de la interfaz de usuario ni.com | 3-4

Figura 3-2. VI Temperature Limit — Deshabilitar controles desde el diagrama de bloques

io ts
ut en
n
1

ib m
tr u
is tr
2 3

D s
5

1
r In
Nodo de propiedad Delta t (ms) — Haga clic con el botón derecho en el control Delta t (ms) y seleccione Create»Property Node»Disabled. Haga clic con el
fo al
botón derecho en el nodo de propiedad y seleccione Change All to Write.
2 Nodo de propiedad High Limit — En el caso Timeout del estructura event, haga clic con el botón derecho en el control High Limit y seleccione Create»Property
Node»Disabled.
ot on

 Coloque el nodo de propiedad fuera del bucle While, para que pueda moverse dentro de “Start”: Value Change.
 Haga clic con el botón derecho en el nodo de propiedad y seleccione Change All to Write.
N ti

3 Nodo de propiedad Temperature — En el caso Timeout de la estructura event, haga clic con el botón derecho en el indicador Temperature y seleccione Create»
Property Node»X Scale» Offset and Multiplier»Multiplier.
a

 Coloque el nodo de propiedad fuera del bucle While, para que pueda moverse dentro de “Start”: Value Change.
 Haga clic con el botón derecho en el nodo de propiedad y seleccione Change All to Write.
N

 Mueva el nodo de propiedad High Limit dentro de “Start”: Value Change.


4 To Double Precision Float — Convierte la entrada I32 del control Delta t (ms) a un número de precisión doble.
5 Haga clic con el botón derecho en el nodo de propiedad de Delta t (ms) y seleccione Create»Constant, configúrelo a Disabled and Grayed Out.
Prueba
1. Ejecute el VI y luego haga clic en el botón Start Acquisition. Los controles Delta t (ms) y High Limit están dehabilitados y atenuados.

io ts
2. Detenga el VI.

ut en
3. Ejecute nuevamente el VI, haga clic en el botón Start Acquisition y note que los controles aún estás dehabilitados.

Parte 2 — Habilitar controles

n
ib m
Se quieren deshabilitar los controles mientras el VI se ejecuta, sin embargo, se desea habilitarlos de nuevo la próxima vez que se ejecute el VI.
1. Modificar el diagrama de bloques como se muestra en la figura 3-3 para habilitar los controles cuando el VI se ejecuta.

tr u
Figura 3-3. VI Temperature Limit — Habilitar los controles desde el diagrama de bloques

is tr
D s
r In
1
fo al
2
ot on
N ti
a

1 Cree una copia de los nodos de propiedad de Delta t (ms) y High Limit y arrástrelos a la izquierda, fuera del bucle While.
N

2 Cree una constante para habilitar los controles.

LabVIEW Core 2 Manual de Ejercicios © National Instruments | 3-5


Lección 3 Control de la interfaz de usuario ni.com | 3-6

Prueba
1. Ejecute el VI y observe que los controles se activan de nuevo antes de hacer clic en el botón Start Acquisition.

io ts
2. Establezca diferentes valores para los controles y haga clic en el botón “Start Acquisition”. Tenga en cuenta que los datos que se muestran en el gráfico comienzan
a partir de donde se detuvo la última vez que se ejecutó el VI.

ut en
Parte 3 — Limpiar el gráfico

n
Se desea borrar el contenido del gráfico cada vez que ejecute el VI.

ib m
1. Modificar el diagrama de bloques como se muestra en la figura 3-4 para borrar los datos antiguos del gráfico cada vez que ejecute el VI.

tr u
Figura 3-4. VI Temperature Limit — Eliminar los datos del gráfico desde el diagrama de bloques

is tr
D s
r In
fo al
ot on

2
N ti
a

1 Nodo de propiedad Temperature — Crear una copia del nodo de propiedad Temperature y arrastrarlo a la izquierda del bucle While.
N

 Haga clic en el nuevo nodo de propiedad y seleccione History Data.


2 Haga clic con el botón derecho en la entrada History y seleccione Create»Constant. Esto crea un cluster con valores 0 para inicializar el gráfico de temperatura
a 0 cuando el VI comienza a ejecutarse.
Prueba
1. Ejecute el VI, haga clic en el botón Start Acquisition y deje el VI ejecutarse unos segundos, luego haga clic en el botón Stop.

io ts
2. Ejecute el VI nuevamente. Observe que el gráfico está limpio antes de hacer clic en el botón Start Acquisition y que se escriben nuevos datos en este.

ut en
Parte 4 — Desafío: Cambiar el color del contenido del gráfico
Modificar el VI para que la trama de datos en el gráfico cambie de color cuando se excede el límite máximo.

n
ib m
Fin del ejercicio 3-1

tr u
is tr
D s
r In
fo al
ot on
N ti
a
N

LabVIEW Core 2 Manual de Ejercicios © National Instruments | 3-7


Lección 3 Control de la interfaz de usuario ni.com | 3-8

Ejercicio 3-2 Personalización de la Ventana del VI

io ts
Objetivo
Modificar los atributos de un VI usando Nodos de Propiedad y Nodos de Invocación.

ut en
Escenario

n
Puede configurar las propiedades de aspecto de un VI estáticamente usando la página de propiedades del VI. Sin embargo, las interfaces de usuario robustas a menudo

ib m
deben modificar el aspecto de un panel frontal mientras se ejecuta el programa.

Modificar el VI Temperature Limit para presentar el siguiente aspecto y comportamiento cuando el VI se ejecuta:

tr u
is tr
• Esconder la barra de herramientas

• Esconder la barra de menús

D s
• Esconder las barra de desplazamiento

r In
• Moverse al centro de la pantalla

• Escribir datos a un archivo Excel


fo al
Diseño
ot on

Propiedades
Use las siguientes propiedades y métodos de la clase VI:
N ti

• ShowMenuBar — Cuando esta propiedad tiene un valor False, la barra de menús no se muestra en el VI.
a

Figura 3-5. Barra de menús del VI


N
• Tool Bar Visible — Cuando esta propiedad tiene un valor False, la barra de herramientas no se muestra en el VI.
Figura 3-6. VI barra de herramientas

io ts
ut en
Métodos
A diferencia de las propiedades, un método tiene un efecto cada vez que lo llame. Por lo tanto, debe llamar a métodos sólo cuando desee realizar una acción. Por

n
ejemplo, si llama al método Fp.Center usando cada iteración de un bucle, el VI se centra continuamente, impidiendo que lo mueva el usuario. Puede usar una estructura

ib m
Case para controlar la llamada al método en una determinada iteración de un bucle. Use el siguiente método de la clase VI:

tr u
• Center: cada vez que llame a este método, el VI se mueve al centro de la pantalla.

is tr
Consejo Use la ventana Context Help para ver descripciones de cada propiedad y método.

D s
r In
fo al
ot on
N ti
a
N

LabVIEW Core 2 Manual de Ejercicios © National Instruments | 3-9


Lección 3 Control de la interfaz de usuario ni.com | 3-10

Después de implementar los cambios en el VI, al ejecutar el VI Temperature Limit, este debe moverse hacia el centro de la pantalla y tener un aspecto similar a la
figura 3-7.

io ts
Figura 3-7. Panel frontal del VI Temperature Limit con apariencia personalizada

ut en
n
ib m
tr u
is tr
D s
r In
fo al
ot on

Implementación
Parte 1 — Configurar las propiedades de apariencia
N ti

1. Abra el VI “Temperature Limit.vi” situado en el directorio <Exercises>\LabVIEW Core 2\Temp Limit - Methods.
a

2. Modifique el diagrama de bloques como en la figura 3-8 para ocultar las barras de desplazamiento, la barra de menús y la de herramientas y centrar el panel frontal
cuando el VI se encuentre en ejecución.
N
Figura 3-8. VI Temperature Limit — Métodos del diagrama de bloques

io ts
ut en
n
ib m
tr u
2 1 3 4

is tr
D s
1 Property Node — Haga clic con el botón derecho en el nodo de propiedad y seleccione Link to»Pane»Pane.

r In
 Haga clic con el botón derecho y seleccione Change All to Write.
 Expanda el nodo para mostrar dos propiedades y configúrelas a Horizontal Scroll Bar Visibility y Vertical Scrollbar Visibility.
2 Constante Off While Running — Haga clic con el botón derecho en una de las entradas del nodo de propiedad Pane y seleccione Create»Constant.
fo al
3 Nodo de propiedad — Haga clic con el botón derecho en el nodo de propiedad y seleccione Select Class»VI Server»VI»VI.
 Haga clic con el botón derecho y seleccione Change All to Write.
ot on

 Expanda el Nodo de Propiedad para mostrar dos propiedades.


 Haga clic en la propiedad superior y seleccione Front Panel Window»Show Menu Bar.

N ti

Haga clic en la propiedad inferior y seleccione Tool Bar»Visible.


 Cuando se conecta una constante False para cada una de las propiedades, la barra de menús y barra de herramientas se ocultarán cuando el VI se ejecuta.
a

4 Nodo de Invocación — Haga clic en el método y seleccione Front Panel»Center. Usted debe cablear la referencia del nodo de propiedad antes de configurar
este método.
N

Nota Note que las propiedades de visibilidad de la barra de desplazamiento se aplican a la clase Pane, no a la clase del VI. El panel frontal se puede
dividir en varios paneles utilizando la barra de división horizontal o barra de división vertical. Cada panel puede tener sus propias barras de desplazamiento.

LabVIEW Core 2 Manual de Ejercicios © National Instruments | 3-11


Lección 3 Control de la interfaz de usuario ni.com | 3-12

3. Guarde el VI.

Prueba

io ts
1. Ejecute el VI.

ut en
2. Verifique que las barras de desplazamiento, barra de herramientas y barra de menús no se muestran, y que la ventana del panel frontal está centrada en la pantalla,
cuando el VI se encuentra en ejecución.

n
3. Detenga el VI.

ib m
Parte 2 — Exportar datos

tr u
Agregue un método para exportar datos del gráfico temperature a Excel.

is tr
1. Modificar el diagrama de bloques como se muestra en la figura 3-9 para exportar los datos mostrados en el gráfico Temperature a Excel.

D s
Figura 3-9. VI Temperature Limit — Diagrama de bloques para exportar a excel

r In
fo al
ot on

1
N ti
a
N

1 Nodo de Invocación Temperature — Haga clic con el botón derecho en el indicador Temperature y seleccione Create»Invoke Node»Export Data to Excel.

2. Guarde el VI.
Prueba
1. Ejecute el VI.

io ts
2. Haga clic en Stop. Para que el método de exportar los datos a excel cree un archivo temportal de Excel con los datos del gráfico con la forma de onda. Vea los
datos en el archivo de Excel.

ut en
3. Guarde y cierre el VI.

n
Fin del ejercicio 3-2

ib m
tr u
is tr
D s
r In
fo al
ot on
N ti
a
N

LabVIEW Core 2 Manual de Ejercicios © National Instruments | 3-13


Lección 3 Control de la interfaz de usuario ni.com | 3-14

Ejercicio 3-3 Uso de subVIs

io ts
Objetivo
Use referencias de control para crear un subVI que modifique propiedades de gráficos tipo “graph” o “chart”.

ut en
Escenario

n
Crear subVIs para el VI Temperature Limit que le permitan manejar algunas de las funciones que ha habilitado en el ejercicio 3-1 y en el ejercicio 3-2.

ib m
Implementación

tr u
1. Abra el VI “Temperature Limit.vi” desde el proyecto Temperature Limit situado en el directorio <Exercises>\LabVIEW Core 2\Temp Limit - SubVIs.

is tr
2. El diagrama de bloques, como el de la figura 3-10 incluye código para:

D s
• Ocultar las barras de desplazamiento mientras se ejecuta

r In
• Configurar propiedades de diálogos
fo al
ot on
N ti
a
N
• Habilitar nuevamente los controles cuando se detiene el VI
Figura 3-10. Temperature Limit — SubVI

io ts
ut en
n
ib m
tr u
is tr
D s
r In
fo al
ot on
N ti
a
N

LabVIEW Core 2 Manual de Ejercicios © National Instruments | 3-15


Lección 3 Control de la interfaz de usuario ni.com | 3-16

En este ejercicio, se modificará el diagrama de bloques para utilizar subVIs y utilizar referencias de control. La figura 3-11 describe los subVIs que creará y utilizará
para hacer el VI Temperature Limit más modular y escalable.

io ts
Figura 3-11. VI Temperature Limit — Diagrama de bloques

ut en
1 2

n
ib m
tr u
is tr
D s
r In
1 SubVI Set Scroll Bar State — Oculta las barras de desplazamiento cuando se ejecuta el VI.
fo al
2 SubVI Set Dialog Properties — Oculta la barra de herramientas y de menú cuando se ejecuta el VI.
3 VI Set Enable State on Multiple Controls — Configura todos los controles en el array de entrada con el valor del estado Enable.
ot on

3. Crear el subVI Set Scroll Bar State.

 En el VI Temperature Limit, resalte el código mostrado en la figura 3-12 y seleccione Edit»Create SubVI.
N ti

Figura 3-12. Destacando el código Scroll Bar State


a
N

4. Abra el subVI.
 Haga doble clic en el icono del subVI en el diagrama de bloques para abrir y modificar el panel frontal del subVI que se acaba de crear, como en la figura 3-13.
Figura 3-13. Panel frontal del subVI Set Scroll Bar State

io ts
2

ut en
n
ib m
tr u
1

is tr
D s
r In
fo al
ot on
N ti

1 Indicador de salida Pane Ref — cree una copia del control Pane Ref. Haga clic con el botón derecho en la copia y seleccione Change to Indicator y cambie la
etiqueta.
a

2 Asigne la salida del indicador Pane Ref a la salida del terminal superior derecho del panel de conectores. Las conexiones para los otros controles e indicadores
ya deben estar creadas.
N

LabVIEW Core 2 Manual de Ejercicios © National Instruments | 3-17


Lección 3 Control de la interfaz de usuario ni.com | 3-18

5. Modifique el diagrama de bloques del subVI Set Scroll Bar State como se muestra en la figura 3-14.
Figura 3-14. Diagrama de bloques del subVI Set Scroll Bar State

io ts
ut en
n
ib m
tr u
is tr
6. Cablee la referencia y los cables de error a través del caso error en la estructura.

D s
7. Cree un icono significativo para el subVI y guárdelo como Set Scroll Bar State.vi en el directorio <Exercises>\LabVIEW Core 2\
Temp Limit - SubVI.

r In
8. Cree el subVI Set Dialog Properties.

9. En el VI Temperature Limit, resalte el código mostrado en la figura 3-15 y seleccione Edit»Create SubVI.
fo al
Figura 3-15. Destacando el código Set Dialog Properties
ot on
N ti
a
N
10. Abra el subVI que acaba de crear y modifique el panel frontal como se muestra en la figura 3-16.
Figura 3-16. Panel frontal del subVI Set Dialog Properties

io ts
2

ut en
n
ib m
tr u
1

is tr
D s
r In
fo al
ot on

1 Indicador de salida VI Ref — Cree una copia del control VI Ref. Haga clic con el botón derecho en la copia y seleccione Change to Indicator y cambie la
N ti

etiqueta.
2 Asigne la salida del indicador VI Ref a la salida del terminal superior derecha del panel de conectores. Las conexiones para los otros controles e indicadores
a

ya deben estar creadas.


N

LabVIEW Core 2 Manual de Ejercicios © National Instruments | 3-19


Lección 3 Control de la interfaz de usuario ni.com | 3-20

Figura 3-17. Diagrama de bloques del subVI Set Dialog Properties

io ts
ut en
n
ib m
1

tr u
1 Función Not — Invertir la lógica del botón Enable Dialog Properties cableándolo al nodo de propiedad para mostrar la barra de menús y barra de herramientas

is tr
11. Cablee la referencia y los cables de error a través del caso error en la estructura.

D s
12. Cree un icono significativo para el subVI y guárdelo como Set Dialog Properties.vi en el directorio <Exercises>\LabVIEW Core 2\

r In
Temp Limit - SubVI.

13. Agregue el VI “Set Enable State on Multiple Controls” al diagrama de bloques del VI Temperature Limit.
fo al
 El VI Set Enable State on Multiple Controls se proporciona en el proyecto de Temperature Limit.
ot on
N ti
a
N
 Arrastre dos copias del VI desde la ventana Project Explorer al diagrama de bloques de Temperature Limit y complete el diagrama de bloques como se
muestra en la Figura 3-18.

io ts
Figura 3-18. Diagrama de bloques completo de Temperature Limit

ut en
n
ib m
tr u
is tr
3

D s
r In
1

1 VI Server References — Cree referencias para el control Delta t (ms), el control High Limit, y el control botón Start.
 Haga clic con el botón derecho en cada control y seleccione Create»Reference.
fo al
 El control High Limit está en el evento Timeout.
2 Build Array — Expanda el nodo para que acepten tres entradas.
ot on

3 SubVI Set Enable State on Multiple Controls — Cree una copia del subVI y la constante Disabled State y coloquelos en el “Start”: Value Change.

Prueba
N ti

1. Ejecute el VI Temperature Limit y verifique que se comporta según lo esperado.


a

2. Guarde y cierre todos los VIs y el proyecto Temperature Limit .


N

Fin del ejercicio 3-3

LabVIEW Core 2 Manual de Ejercicios © National Instruments | 3-21


N
a
N ti
ot on
fo al
r In
D s
is tr
tr u
ib m
ut en
io ts
n

También podría gustarte