0% encontró este documento útil (0 votos)
335 vistas158 páginas

LabVIEW Core 1 Exercise Guide

Cargado por

Julio Cesar
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
335 vistas158 páginas

LabVIEW Core 1 Exercise Guide

Cargado por

Julio Cesar
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

LabVIEWTM Core 1

Ejercicios

Versión del software actual 2012


Edición de Agosto 2012
Número de parte 325291D-0154

Copyright
© 1993–2012 National Instruments. Todos los derechos reservados.
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
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


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>.
• Contrato de licencia de usuario final se localiza en el directorio <National Instruments>\Shared\MDF\Legal\License.
• Revise <National Instruments>\_Legal [Link] para más información legal sobre los instaladores desarrollados con productos de NI.

Marcas comerciales
LabVIEW, National Instruments, NI, [Link], 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 [Link]/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 [Link] en el
soporte del mismo, o el Aviso sobre las Patentes de National Instruments (National Instruments Patent Notice) en [Link]/patents.
Información del producto y soporte técnico mundial
[Link]

Oficinas internacionales
Visite [Link]/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 [Link]/info e introduzca el código de información feedback.
Explorando LabVIEW
1
Complete los ejercicios en esta lección para reforzar los conceptos que aprendió en la lección 1 de LabVIEW Core 1.

Ejercicio
Ejercicio 1-1 Concepto: Explorando un VI
Ejercicio 1-2 Concepto: Localizando controles, funciones y VIs
Ejercicio 1-3 Concepto: Usando la herramienta de selección.
Ejercicio 1-4 Concepto: Flujo de datos

LabVIEW Core 1 Ejercicios © National Instruments | 1-1


Lección 1 Explorando LabVIEW [Link] | 1-2

Ejercicio 1-1 Concepto: Explorando un VI

Objetivo
En grupo, identificar las partes de un VI existente.

Descripción
Ha recibido un VI de un empleado que registra los segundos que tarda un avión en llegar a un aeropuerto y convierte el tiempo en una combinación de
horas/minutos/segundos. Debe evaluar este VI para ver si funciona como se esperaba y poder mostrar el tiempo restante hasta que llegue el avión.

1. Abra Flight [Link] en el directorio <Exercises>\LabVIEW Core 1\Exploring A VI.

2. Abra Seconds [Link] de la ventana Project Explorer.

3. En el panel frontal, identifique estos elementos: ¿Cuántos de cada ítem puede encontrar?

 Controles
 Indicadores
 Etiquetas libres
 botón Run
 Icono
 Panel de conectores
4. Para mostrar el panel frontal y el diagrama de bloques a la vez presione <Ctrl-T> o seleccione Window»Tile Up and Down o Window»Tile Left and Right.

Consejo Para cambiar entre la ventana del panel frontal y el diagrama de bloques sin cerrar las ventanas, presione <Ctrl-E>.
5. En el diagrama de bloques, identifique estos elementos. ¿Cuántos de cada ítem puede encontrar?

 Controles
 Indicadores
 Constantes
 Etiquetas libres
6. Use la ayuda contextual para aprender más sobre los ítems en el diagrama de bloques.

 Pulse <Ctrl-H> para abrir la ventana Context Help o seleccione Help»Show Context Help.
 Mueva la ventana Context Help a una zona cómoda que no oculte parte del diagrama de bloques.
 Coloque su cursor sobre cada uno de los cables de diferentes colores para ver que tipo de dato representan.
 El contenido de la ventana Context Help cambia para mostrar información sobre el objeto sobre el que está el ratón.
7. Obtenga ayuda detallada y vea ejercicios para la función Quotient & Remainder.

 Coloque su cursor sobre la función Quotient & Remainder. Lea la ventana Context Help y haga clic en la liga Detailed Help para lanzar LabVIEW Help y
aprenda más acerca de esta función.

 Haga clic en la enlace Example en el tema de LabVIEW Help de Quotient & Remainder.
 Haga clic en el botón Open Example al final de la ventana de ayuda para abrir un ejemplo que use la función Quotient & Remainder.
 Examine el ejemplo y luego ciérrelo cuando haya terminado.

LabVIEW Core 1 Ejercicios © National Instruments | 1-3


Lección 1 Explorando LabVIEW [Link] | 1-4

8. Refiérase a las figuras 1-1 y 1-2 para verificar que haya configurado todos los ítems correctamente.
Figura 1-1. Elementos del panel frontal

3 4 5

1 Indicadores 2 Control 3 Botón Run 4 Panel de conectores 5 Icono


Figura 1-2. Elementos del diagrama de bloques

3
5

1 Etiqueta libre 2 Control 3 Indicadores 4 Constantes de cadena de caracteres 5 Constantes numéricas

LabVIEW Core 1 Ejercicios © National Instruments | 1-5


Lección 1 Explorando LabVIEW [Link] | 1-6

9. Pruebe el VI Seconds Breakdown utilizando los valores de la tabla 1-1.

 Escriba el valor de entrada en el control Total Time in Seconds.


 Haga clic en el botón Run.
 Compare en cada entrada las salidas dadas con las salidas de la tabla 1-1. Si el VI funciona correctamente, deben coincidir.
Tabla 1-1. Testing Values for Seconds [Link]

Entrada Indicador numérico Indicador LED Indicador de cadena de caracteres


0 segundos 0 hours, 0 minutes, 0 seconds Off Delay less than 1 hour

60 segundos 0 hours, 1 minute, 0 seconds Off Delay less than 1 hour

3600 segundos 1 hour, 0 minutes, 0 seconds On Delay 1 hour or longer

3.665 segundos 1 hour, 1 minute, 5 seconds On Delay 1 hour or longer

10. Salve y cierre el VI y el proyecto LabVIEW.

Fin del ejercicio 1-1


Ejercicio 1-2 Concepto: Localizando controles, funciones y VIs

Objetivo
Aprenda a usar las paletas y buscar controles, funciones y VIs.

Descripción
1. Abra un proyecto LabVIEW en blanco.

 Haga clic en el botón Create Project en la ventana de LabVIEW Getting Started y luego haga clic en Blank Project.
 Haga clic en Finish.
2. Cree un VI en blanco y añádalo al proyecto.

 Haga clic con el botón derecho en My Computer en la ventana Project Explorer y seleccione New»VI en el menú contextual.
3. Seleccione View»Controls Palette del menú de la ventana del panel frontal del VI.

4. Explore la paleta Controls.

 Haga clic en el botón Customize y seleccione Change Visible Palettes.


 Seleccione las siguientes paletas para añadirlas a las paleta Controls y haga clic en el botón OK. No deseleccione ninguna paleta.

– Silver

– Control Design & Simulation

– Signal Processing

 Note que las tres paletas que seleccionó ahora aparecen en la ventana Controls.

LabVIEW Core 1 Ejercicios © National Instruments | 1-7


Lección 1 Explorando LabVIEW [Link] | 1-8

5. Explore la paleta Controls.


Use las paletas para localizar controles y funciones cuando quiera explorar las opciones disponibles o cuando no está seguro del nombre de un control o una
función que necesite.
 Haga clic en el botón Search.
 Teclee string control en el cuadro de búsqueda.
 Haga clic en el resultado de búsqueda String Control (Silver) y arrástrelo a la ventana del panel frontal para colocar el objeto.
6. Abra el diagrama de bloques y haga clic con el botón derecho en cualquier lugar en el diagrama de bloques para mostrar la paleta Functions.
 Haga clic en el pin en la esquina superior izquierda para mantener la paleta abierta.

Consejo Puede personalizar la paleta Functions igual como personaliza la paleta Controls.

7. Explore la paleta Functions.


 Ubique funciones trigonométricas.
– Haga clic en el botón Search.
– Busque el término cosine.
– En los resultados de la búsqueda, haga doble clic en Cosine <<Trigonometric Functions>> para mostrar la función en la paleta.
 Ubique funciones E/S de archivos
– Busque el término file i/o.
– Haga doble clic en File I/O en los resultados de la búsqueda para mostrar la paleta File I/O.
– Arrastre la función Write to Text File de la paleta al diagrama de bloques.
8. Practique usando la función Quick Drop.
Use la función Quick Drop cuando sabe el nombre de la función o VI que quiere utilizar.

 Presione <Ctrl-Space> para abrir el cuadro de diálogo Quick Drop.


 Teclee Bundle By Name y haga doble clic en Bundle By Name en los resultados de la búsqueda. El cursor cambia a una mano con la función Bundle By
Name.
 Haga clic en el diagrama de bloques para colocar la función Bundle By Name.
 Abra el cuadro de diálogo Quick Drop de nuevo.

 Busque la función Wait Until Next ms Multiple.


 Haga doble clic en la función en los resultados de la búsqueda y coloque la función en el diagrama de bloques.
9. Practique usando la función de búsqueda global.

 Escriba Random en la barra de búsqueda situada en la esquina superior derecha del diagrama de bloques.

Nota Mientras está escribiendo, la búsqueda global automáticamente busca coincidencias en la Ayuda de LabVIEW y en las paletas de LabVIEW.
También busca material en línea relacionado con su búsqueda.

 Mueva el ratón sobre el primer resultado en la sección Palette, Random Number (0-1). Usted ahora ve las siguientes tres opciones:
– Drop—le permite introducir inmediatamente esta función en el diagrama de bloques

– Find—localiza la función en la paleta Functions

– Help—abre el tema de ayuda para esta función.

 Haga clic en cada una de estas opciones para observar los diferentes comportamientos.
10. Practique accediendo a funciones similares.

 Coloque una función Add en el diagrama de bloques.


 Haga clic con el botón derecho en la función Add y observe que dispone de una paleta Numeric del menú contextual.
 Practique colocando funciones desde la paleta Numeric en el diagrama de bloques.
11. Cierre el VI y el proyecto LabVIEW. No necesita guardar estos archivos.

Fin del ejercicio 1-2

LabVIEW Core 1 Ejercicios © National Instruments | 1-9


Lección 1 Explorando LabVIEW [Link] | 1-10

Ejercicio 1-3 Concepto: Usando la herramienta de selección.

Objetivo
Familiarizarse con la herramienta de selección automática y la paleta Tools en LabVIEW.

Descripción
Durante este ejercicio completará tareas en un panel frontal y en un diagrama de bloques parcialmente creado. Estas tareas aportan experiencia para usar la selección
automática de herramientas.

1. Abra Using [Link] en el directorio <Exercises>\LabVIEW Core 1\Using Temperature.

2. Abra el Using [Link] desde la ventana Project Explorer.

3. Seleccione View»Tools Palette para mostrar la ventana Tools.

Consejo Presione <Shift> y haga clic con el botón derecho en el panel frontal para abrir la paleta Tools temporalmente.

Por defecto, LabVIEW selecciona herramientas por usted basado en el contexto de su cursor. Usted puede deshabilitar la herramienta de selección automática
haciendo clic en el botón Automatic Tool Selection en la ventana Tools.
La figura 1-3 muestra un ejemplo del panel frontal tras las modificaciones a realizar. En los pasos 4–8 puede incrementar el tamaño de un gráfico tipo “waveform
chart”, renombrar el control numérico, cambiar el valor del control numérico y mover la perilla.
Figura 1-3. Panel frontal del VI Using Temperature

LabVIEW Core 1 Ejercicios © National Instruments | 1-11


Lección 1 Explorando LabVIEW [Link] | 1-12

4. Expanda el gráfico tipo “waveform graph” horizontalmente con la herramienta de posicionamiento.

 Mueva el cursor al borde derecho del gráfico tipo “waveform chart” hasta que vea los nodos de cambio de tamaño alrededor del gráfico.
 Mueva el cursor al nodo de cambio de tamaño de la parte central izquierda hasta que el cursor cambie a una doble flecha, como se ve en la figura 1-4.
Figura 1-4. Cambiar el tamaño del gráfico Waveform Chart

 Arrastre el punto de reposicionamiento hasta que el gráfico Waveform Chart tenga el tamaño deseado.
5. Renombre el gráfico Waveform Chart usando la herramienta de etiquetado.

 Haga doble clic en la palabra Chart. LabVIEW resalta la palabra y automáticamente selecciona la herramienta de etiquetado en la ventana Tools.

 Escriba el texto Temperature Chart.


 Complete la entrada haciendo clic en el botón Enter Text de la barra de herramientas o haciendo clic fuera del control.

 Note que LabVIEW automáticamente retorna a la herramienta de posicionamiento en la ventana Tools. La herramienta de posicionamiento es la herramienta
predeterminada. Si LabVIEW no cambia de nuevo a la herramienta de posicionamiento, haga clic en el botón Automatic Tool Selection en la ventana Tools
para habilitar la herramienta de selección automática.
6. Cambie el control Numeric a Number of Measurements usando la herramienta de etiquetado.

 Haga doble clic en la palabra Numeric.

 Escriba el texto Number of Measurements.


 Complete la entrada haciendo clic en el botón Enter Text de la barra de herramientas o haciendo clic fuera del control.

7. Cambie el valor del control Number of Measurements a 100 usando la herramienta de etiquetado.

 Mueva el cursor al interior del control Number of Measurements.


 Cuando el cursor cambie al icono de la herramienta de etiquetado, haga clic con el botón del ratón.

 Escriba el texto 100.


 Complete la entrada pulsando la tecla <Intro> en el teclado numérico, haciendo clic en el botón Enter Text de la barra de herramientas o haciendo clic fuera
del control.

8. Cambie el valor de la perilla Delay Multiplier usando la herramienta de operaciones.

 Mueva el cursor a la perilla.


 Cuando el cursor cambie al ícono de la herramienta de operaciones, haga clic con el botón del ratón y arrastre al valor deseado.

 Configure el valor en 1.
9. Cambie el color de la perilla Delay Multiplier usando la herramienta de color.

 Haga clic en el cuadrado de fondo en el botón Set Color y seleccione un color.

 Cuando el cursor cambie a un pincel, haga clic en la perilla Delay Multiplier.

LabVIEW Core 1 Ejercicios © National Instruments | 1-13


Lección 1 Explorando LabVIEW [Link] | 1-14

 Haga clic en el botón Automatic Tool Selection de nuevo para encender la herramienta de selección automática.
10. Intente cambiar el valor, el tamaño y el nombre de objetos hasta que se familiarice con estas herramientas.

11. Abra el diagrama de bloques del VI.

La figura 1-5 muestra un ejemplo del diagrama de bloques tras las modificaciones a realizar. Los pasos 12–13 le muestran como actualizar el diagrama de bloques
para mover el terminal Number of Measurements y cablear el terminal al terminal de contaje del bucle For.
Figura 1-5. Diagrama de bloques de Using Temperature VI

12. Mueva el terminal Number of Measurements con la herramienta de posicionamiento.

 Mueva el cursor al terminal Number of Measurements.


 Mueva el cursor sobre el terminal hasta que el cursor cambie a una flecha.

 Haga clic y arrastre el terminal a la nueva ubicación como se muestra en la figura 1-5.
13. Cablee el terminal Number of Measurements al terminal de contaje para el bucle For utilizando la herramienta de cableado.

 Mueva el cursor al terminal Number of Measurements.


 Mueva el cursor a la derecha del terminal hasta que el cursor cambie a un carrete de cable.

 Haga clic para iniciar el cable.


 Mueva el cursor al terminal de contaje (N) del bucle For.

 Haga clic en el terminal de contaje para terminar el cable.


14. Intente mover otros objetos, eliminar cables y volver a cablearlos y cablear objetos y cables hasta que se familiarice con estas herramientas.

15. Limpiar automáticamente el diagrama de bloques entero.

 Haga clic en el botón Clean Up Diagram en la barra de herramientas de LabVIEW.

 Presione <Ctrl-Z> para deshacer la limpieza.

Consejo También pude seleccionar objetos específicos para limpiar, como cables o nodos individuales. <Shift>-haga clic para seleccionar múltiples
objetos y luego haga clic en el botón Clean Up. LabVIEW limpia solo los objetos que usted seleccione y no el diagrama de bloques completo. Configure
como LabVIEW limpia objetos seleccionando Tools»Options del menú, haciendo clic en la categoría Block Diagram y cambiando las opciones en la
sección Block Diagram Cleanup.

16. Cambie el texto booleano del botón Stop.

Nota Los controles e indicadores booleanos tienen etiquetas de texto booleanas además de sus etiquetas de control. Las etiquetas de texto booleanas
cambian dependiendo del valor del control o indicador. La etiqueta para el control o indicador no cambia dependiendo del valor del control o indicador.

LabVIEW Core 1 Ejercicios © National Instruments | 1-15


Lección 1 Explorando LabVIEW [Link] | 1-16

 Haga clic con el botón derecho en el terminal Stop Button y seleccione Properties en el menú contextual. Configure las propiedades como se muestra en la
figura 1-6.
Figura 1-6. Cambiando el texto booleano por el control Stop

1 Etiqueta de control—Este texto identifica la terminal de un control booleano para propósitos de programación. Este texto no aparece en el panel frontal a menos
que seleccione Visible.
2 Texto booleano—Este texto aparece solo en el panel frontal y por defecto aparece en el centro del control booleano.

 Haga clic en el botón OK para cerrar el cuadro de diálogo.


 Haga clic con el botón derecho en la terminal Stop Button y seleccione Find Control en el menú contextual. Note que la etiqueta del control es Stop Button
y el texto del botón es End.

Consejo También puede hacer doble clic en el terminal Stop Button para encontrar el botón de control en el panel frontal.
17. Haga clic en el botón Run para ejecutar el VI.

El tiempo necesario para ejecutar este VI equivale a Number of Measurements por Delay Multipler. Cuando termine de ejecutarse el VI, los datos aparecerán
en el gráfico Temperature Chart.

18. Cierre el VI y haga clic en el botón Don’t Save - All. No necesita guardar el VI.

Fin del ejercicio 1-3

LabVIEW Core 1 Ejercicios © National Instruments | 1-17


Lección 1 Explorando LabVIEW [Link] | 1-18

Ejercicio 1-4 Concepto: Flujo de datos

Objetivo
Comprender cómo el flujo de datos determina el orden de ejecución en un VI.

Discusiones de flujo de datos—Actividad grupal


En grupo, discutan cómo el flujo de datos determina el orden de ejecución. Puede encontrar las respuestas a las preguntas en la sección Discusiones de flujo de
datos—Respuestas.

Nota Los nodos son objetos del diagrama de bloques que tienen entradas o salidas y realizan operaciones cuando se ejecuta un VI.

Usando la figura 1-7, responda las preguntas 1 hasta 5.

1. ¿Qué función se ejecuta primero? ¿Hay alguna dependencia entre la función File Dialog y el VI Express Simulate Signal?

2. ¿Qué función se ejecuta la última?

3. Debido a que un cable verde conecta la función File Dialog al VI TDMS File Viewer, puede el VI TDMS File Viewer ejecutarse antes que la función TDMS
Close?

4. ¿Cuántos nodos deben ejecutarse antes que la función TDMS Write pueda ejecutarse?
5. ¿Un diagrama de bloques bien diseñado debería fluir en una dirección en particular?
Figura 1-7. Ejemplo de diagrama de bloques

6. En la figura 1-8, qué VI Express se ejecuta de último?


Figura 1-8. Diagrama de bloques—Ejemplo simple de adquirir, analizar y presentar

LabVIEW Core 1 Ejercicios © National Instruments | 1-19


Lección 1 Explorando LabVIEW [Link] | 1-20

7. En la figura 1-9 un cable de error (mostrado en amarillo) conecta los VIs Express. ¿Qué VI Express se ejecuta de último?
Figura 1-9. Diagrama de bloques—Ejemplo simple de AAP con cable de error.
8. En la figura 1-10, ¿Qué VI Express Tone Measurements se ejecuta de último?
Figura 1-10. Diagrama de bloques—Ejemplo de filtro

Discusiones de flujo de datos—Respuestas


1. Cualquiera de los dos puede ejecutarse primero, ya sea la función File Dialog o el VI Express Simulate Signal. No hay dependencia de datos entre los dos nodos
por lo tanto cualquiera puede ejecutarse primero o se pueden ejecutar simultáneamente.

2. El último nodo en ejecutarse es el VI Simple Error Handler.

Nota Los terminales no son consideradas nodos.

3. NO. El VI TDMS File Viewer no puede ejecutarse antes que la función TDMS Close por que el cable amarillo de error conectando la función TDMS Close y el
VI TDMS File Viewer fuerza dependencia de datos. Recuerde, los datos para cada una de las entradas deben estar disponibles antes que el nodo pueda ejecutarse.
Por lo tanto, el VI TDMS File Viewer debe recibir datos desde ambos el cable verde booleano y el cable amarillo de error antes que el VI pueda ejecutarse.

4. Tres nodos deben ejecutarse antes que la función TDMS Write pueda ejecutarse: File Dialog, TDMS Open y Simulate Signal. La función TDMS Write también
depende de la constante de cadena de caracteres Simulated Signal pero esa entrada es instantánea.

LabVIEW Core 1 Ejercicios © National Instruments | 1-21


Lección 1 Explorando LabVIEW [Link] | 1-22

5. Sí. Un diagrama de bloques bien diseñado, típicamente fluye de izquierda a derecha. Esto hace más fácil ver el flujo de los datos en el diagrama de bloques. Sin
embargo, no asuma que la ejecución sea de izquierda a derecha o de arriba a abajo cuando no hay dependencia de datos.

6. Cualquiera de los dos puede ejecutarse el último, ya sea el VI Express Statistics o el VI Express Write to Measurement File. El VI Express DAQ Assistant no
puede ejecutarse el último porque ambos el VI Express Statistics y el VI Express Write to Measurement File son dependientes de la señal de datos de la salida
del VI Express DAQ Assistant.

Nota En LabVIEW, el orden de ejecución de los mismos no está determinado por el orden secuencial de los comandos sino por el flujo de datos. Por lo
tanto, es posible tener operaciones simultáneas.

7. El VI Express Write to Measurement File se ejecuta el último. Tiene una dependencia de datos en ambos el VI Express DAQ Assistant y VI Express Statistics.

8. Cualquiera de los dos VIs Express Tone Measurement puede ejecutarse el último. Aunque el VI Express Tone Measurements 2 tiene una dependencia extra en
el VI Express Filter, el VI Express Filter puede ejecutarse antes que el VI Express Tone Measurements 1 permitiendo que el VI Express Tone Measurements 2
se ejecute antes que el VI Express Tone Measurements 1. A pesar de que parece que el VI Express Tone Measurements 1 podría ejecutarse primero, sin una
dependencia de datos explicita no hay forma de saber definitivamente que se ejecutará primero.

Fin del ejercicio 1-4


Resolución de problemas y depuración de VIs
2
Complete el ejercicio en esta lección para reforzar los conceptos que aprendió en la lección 2 de LabVIEW Core 1.

Ejercicio
Ejercicio 2-1 Concepto: Depuración

LabVIEW Core 1 Ejercicios © National Instruments | 2-1


Lección 2 Resolución de problemas y depuración de VIs [Link] | 2-2

Ejercicio 2-1 Concepto: Depuración

Objetivo
Use las herramientas de depuración de LabVIEW.

Descripción
Los VIs en este ejercicio verifican la validez de un triángulo y luego calculan el área. Para que un triángulo sea válido, los tres lados deben tener un tamaño mayor a
cero. El subVI en este ejercicio usa la fórmula de Heron para calcular el área de un triángulo. Usted puede usar este método cuando conoce los tamaños de los tres
lados del triángulo.

Fórmula de Heron

A = ss – as – bs – c

donde


a+b+c
s = --------------------
2

Los valores predeterminados que usará para depurar y probar este VI son Side A = 6, Side B = 8, Side C = 10. Por lo tanto los valores correctos son los siguientes:

6 + 8 + 10
s = ------------------------ = 12
2

A = 12  6  4  2 = 24

Puede usar estos cálculos como referencia mientras depura el VI.

Complete las siguientes secciones para identificar y solucionar problemas en modo de edición y en modo de ejecución. Use la ejecución paso a paso y el resaltado de
la ejecución para revisar el VI. Use puntos de interrupción y sondas para determinar si los cálculos son correctos y descubrir dónde se origina un error.
Errores en modo de edición
Ubique y corrija errores que no permiten que el VI se ejecute.

1. Abra y examine el VI Area and validity of a triangle

 Abra [Link] en el directorio <Exercises>\LabVIEW Core 1\Debugging.


 Abra Area and Validity of a Triangle VI desde la ventana Project Explorer.
Figura 2-1. Panel frontal del VI Area and Validity of Triangle

 Note que el botón Run de la barra de herramientas aparece roto, indicando que el VI está roto y no puede ejecutarse.

2. Examine el diagrama de bloques del VI Area and Validity of Triangle mostrado en la figura 2-2.

LabVIEW Core 1 Ejercicios © National Instruments | 2-3


Lección 2 Resolución de problemas y depuración de VIs [Link] | 2-4

Este VI toma valores de entrada para cada uno de los tres lados del triángulo, pasa los valores a un subVI que determina el área y revisa que los valores ingresados
son válidos para un triángulo.
Figura 2-2. Diagrama de bloques del VI Area and Validity of Triangle

3. Busque y solucione cada error.

 Haga clic en el botón Run roto para ver la ventana Error list, que enumera todos los errores.
 Seleccione una descripción de error en la ventana Error list. La sección Details describe el error y en algunos casos recomienda cómo corregirlo.
 Haga clic en el botón Help para ver un tema de LabVIEW Help que describa el error en detalle e incluya instrucciones paso a paso para corregirlo.
 Haga clic en el botón Show Error o haga doble clic en la descripción del error para resaltar la zona del diagrama de bloques o del panel frontal que contenga
el error.

 Use la ventana Error list para solucionar cada error.

Nota Haga doble clic en el subVI Area of a Triangle para abrirlo. En el VI Area of a Triangle, note que la fórmula para calcular el área de un triángulo
requiere la suma de los lados dividido entre 2. Haga clic con el botón derecho en la entrada y de la función de división y seleccione Create»Constant e
ingrese un valor de 2.

4. Guarde ambos VIs.


Errores en modo de ejecución
Identifique y corrija errores que causan que el VI se comporte inesperadamente y devuelva respuestas incorrectas.

1. Pruebe el VI.

 Abra el panel frontal haciendo clic en él o seleccionando Window»Show Front Panel.


 Use los valores predeterminados para cada lado. Estos valores son medidas válidas para un triángulo.
 Ejecute el VI.
 Note que a pesar los números que ingrese son válidos, el LED no está iluminado y el indicador Area of a Triangle muestra NaN.
2. Anime el flujo de datos a través del diagrama de bloques.

 Abra el diagrama de bloques.


 Haga clic en el botón Highlight Execution en la barra de herramientas para habilitar el resaltado de la ejecución.

 Haga clic en el botón Retain Wire Values en la barra de herramientas para que pueda ver el último valor que pasó por el cable.

 Ejecute el VI.
Note como los datos fluyen por los cables. A la salida de cada nodo, puede ver que el valor de los datos se muestra momentáneamente. Debido a que el botón
Retain Wire Values está habilitado, puede ver el último valor en el cable.

LabVIEW Core 1 Ejercicios © National Instruments | 2-5


Lección 2 Resolución de problemas y depuración de VIs [Link] | 2-6

3. Sondeo de los valores en los cables.

 Haga clic con el botón derecho en cada una de las entradas de la función Compound Arithmetic y seleccione Probe. Esto muestra la ventana de visualización
de sondas.

 Note que uno de los valores de un cable es False como se muestra en la figura 2-3.
Figura 2-3. Cables de sondas
 Dado que está comprobando que los valores de los tres lados del triángulo son positivos, el valor de entrada o la lógica son incorrectos. Los valores de entrada
eran todos números positivos, eso significa que la lógica es incorrecta.

Note que el nodo que devuelve un valor de False es una función Less than Zero? pero esta sección del código debería estar revisando si el valor es mayor
que cero.

 Haga clic con el botón derecho en la función Less than Zero? y seleccione Replace»Comparison Palette»Greater than Zero?.
4. Pruebe el VI.

 Ejecute el VI.

 Note que todos los valores de las sondas son True.


 Abra el panel frontal. Note que el Valid Triangle? LED está iluminado pero el indicador Area of Triangle aun devuelve NaN.
 El área del triángulo es calculada en el subVI, así que debe continuar depurando en el subVI Area of a Triangle.
5. Continúe depurando el subVI.

 Abra el diagrama de bloques del VI Area and Validity of a Triangle.


 Haga clic en el botón Step Into para iniciar la ejecución paso a paso del VI. La ejecución resaltada muestra el flujo de datos en el diagrama de bloques de un
nodo a otro. Los nodos parpadean para indicar que están listos para ejecutarse.

 Haga clic en el botón Start Single Stepping después de cada nodo para revisar todo el diagrama de bloques. Cada vez que haga clic en el botón Step Over,
se ejecutará el nodo actual y se pausará en el siguiente nodo.

 Cuando llegue al subVI, haga clic en el botón Step Into para abrir el diagrama de bloques del subVI Area of Triangle. El subVI está pausado.
 Encienda las opciones de resaltado de ejecución y retener los valores de los cables en el subVI.

LabVIEW Core 1 Ejercicios © National Instruments | 2-7


Lección 2 Resolución de problemas y depuración de VIs [Link] | 2-8

 Haga clic con el botón derecho en la función e Square Root y seleccione Breakpoint»Set Breakpoint como se muestra en la figura 2-4.
Figura 2-4. Establezca puntos de interrupción

1 El punto de interrupción detiene el VI luego que el nodo Square Root se ejecuta y antes que el valor sea enviado al indicador Area of Triangle.

6. Haga clic en el botón rojo de pausa para continuar la ejecución del VI.

 El VI continua ejecutándose hasta el punto de interrupción y luego se pausa de nuevo.


7. Examine los valores en los cables,=.

 Mueva el cursor sobre el cable de entrada de la función Square Root. Debería ver una etiqueta de ayuda con un valor de –576. No se puede tomar la raíz
cuadrada de un número negativo, lo cual es la razón por la que el indicador Area of Triangle devuelve NaN.

Consejo Si no puede ver la ayuda, puede hacer clic en el cable para abrir la ventana de visualización de sondas para ver los valores.

 Coloque el puntero sobre otros cables o use la ventana de visualización de sondas para examinar otros valores intermedios.
 Note que el valor en el cable (S-B) es también un número negativo. Si mira más de cerca, notará que las entradas de la función de resta están invertidas.
 Haga clic en el botón Abort para detener el VI.
 Cambie las entradas de la función de resta (S-B) y guarde el VI.

Consejo Presione <Ctrl> y haga clic en una de las entradas para intercambiarlas. Cuando presione <Ctrl> y coloca el cursor sobre una entrada, puede
ver como este cambia.
8. Guarde el VI.

9. Pruebe el VI Area of Triangle.

 Ejecute de nuevo el VI.


 Revise los valores intermedios mientras el VI se ejecuta o coloque el cursor sobre los cables luego de pausarlo en el punto de interrupción y verifique que los
valores devueltos están correctos. La función de raíz cuadrada debe devolver un valor de 24.

 Haga clic con el botón derecho en el punto de interrupción y seleccione Breakpoint»Clear Breakpoint.
 Apague el resaltado de la ejecución en los VIs Area of Triangle y Area and Validity of a Triangle.
 Guarde ambos VIs.

Prueba
1. Pruebe el VI Area and Validity of a Triangle usando los valores para Side A, Side B y Side C en la tabla 2-1. Para cada grupo de valores, el VI debe devolver el
valor mostrado en la columna Area.

Tabla 2-1. Valores de prueba de Area and Validity of a Triangle

Side A Side B Side C Area


24 30 18 216
12 12 12 62.35
15 20 25 150

2. Guarde y cierre el VI tras terminar las pruebas.

Fin del ejercicio 2-1

LabVIEW Core 1 Ejercicios © National Instruments | 2-9


Implementación de un VI
3
Complete los ejercicios en esta lección para reforzar los conceptos que aprendió en la lección 3 de LabVIEW Core 1.

Ejercicio
Ejercicio 3-1 VI Temperature Warnings
Ejercicio 3-2 VI Auto Match
Ejercicio 3-3 Concepto: Bucles While frente a bucles For
Ejercicio 3-4 VI Temperature MonitorI—Temperatura media
Ejercicio 3-5 VI Temperature Monitor—Grafique múltiples temperaturas
Ejercicio 3-6 VI Temperature Warnings—con gestión de errores

LabVIEW Core 1 Ejercicios © National Instruments | 3-1


Lección 3 Implementación de un VI [Link] | 3-2

Ejercicio 3-1 VI Temperature Warnings

Objetivo
Crear y documentar un VI sencillo.

Escenario
Debe crear una parte de un proyecto mayor. El desarrollador principal le proporciona las entradas del VI, el algoritmo y las posibles salidas. Su tarea es crear y
documentar un VI en función de un diseño dado.

Diseño
Use el siguiente diagrama de flujo y la lista de entradas/salidas para crear un VI que muestre advertencias de temperatura. Este VI forma parte del proyecto de la
estación meteorológica de temperatura estudiado durante el curso.
Diagrama de flujo
El diagrama de flujo en la figura 3-1 ilustra el diseño por flujo de datos.
Figura 3-1. Diagrama de flujo del VI Temperature Warnings

Current Temp
>= Max Temp? No

Yes

Warning Text =
Warning Text =
Heatstroke
No Warning
Warning

Current Temp
No
<= Min Temp?

Yes

Warning Text = Pass current value


Freeze Warning of Warning Text

Warning
Text = No No
Warning?

Yes

Warning ? = False Warning ? = True

LabVIEW Core 1 Ejercicios © National Instruments | 3-3


Lección 3 Implementación de un VI [Link] | 3-4

Entradas y salidas
La siguiente tabla describe las entradas y salidas para este ejercicio.

Tabla 3-1. Entradas y salidas del VI Temperature Warnings

Tipo Nombre Propiedades

Control numérico Temperatura Actual Doble precisión y coma flotante


Control numérico Temperatura máxima Doble precisión y coma flotante
Control numérico Temperatura mínima Doble precisión y coma flotante
Indicador de cadena de Warning Text Tres valores potenciales: Heatstroke Warning, No Warning, Freeze Warning
caracteres
Indicador LED redondo Warning? —

Implementación
Complete los siguientes pasos para crear un panel frontal similar al de la figura 3-2. El usuario introduce la temperatura actual, la máxima y la mínima. A continuación,
el panel frontal muestra la cadena de caracteres de advertencia y el LED booleano de advertencia.

1. Cree un proyecto LabVIEW nuevo y añada un VI nuevo al proyecto.

 Seleccione File»New del menú de LabVIEW y luego seleccione Project»Empty Project del árbol Create New.

 Guarde el proyecto nuevo como <Exercises>\LabVIEW Core 1\Weather Warnings\Weather [Link].


 Haga clic con el botón derecho en My Computer en la ventana Project Explorer y seleccione New»VI para abrir un VI nuevo.

 Guarde el VI como Temperature [Link] en el directorio <Exercises>\LabVIEW Core 1\Weather Warnings.


2. Cree el panel frontal de la figura 3-2.

Nota Use controles e indicadores de la paleta Silver.

Figura 3-2. Panel frontal del VI Temperature Warnings

1
4

2
3

1 Control numérico—Haga clic con el botón derecho y seleccione Representation»DBL para confirmar que el control numérico es de doble precisión.
2 Cree copias del control numérico Current Temperature presionando y sosteniendo la tecla <Ctrl> y arrastrando el control Current Temperature.
3 Indicador de cadena de caracteres—Cambie el tamaño del indicador para que pueda contener cadenas de caracteres más largas.
4 LED redondo

Consejo Este subVI podría utilizarse para Fahrenheit, Kelvin u otra escala de temperatura, siempre que todas las entradas utilicen la misma escala. Por
lo tanto, no es necesario añadir unidades de escala a las etiquetas.

LabVIEW Core 1 Ejercicios © National Instruments | 3-5


Lección 3 Implementación de un VI [Link] | 3-6

3. Cree el diagrama de bloques de la figura 3-3.


Figura 3-3. Diagrama de bloques del VI Temperature Warnings

1 4 6

2 3 5

1 Greater or Equal?—Compara valores de entrada y devuelve un valor TRUE si Current Temperature es mayor o igual a Max Temperature.
2 Less or Equal?—Compara valores de entrada y devuelve un valor TRUE si Current Temperature es menor o igual a Max Temperature.
3 Constante de cadena de caracteres—Cree constantes de cadena de caracteres para Heatstroke Warning, Freeze Warning y No Warning.
4 Select—Devuelve la cadena de caracteres Heatstroke Warning si Current Temperature es mayor o igual a Max Temperature; de otra forma devuelve la
cadena de caracteres No Warning.
5 Select—Devuelve la cadena de caracteres Freeze Warning si Current Temperature es menor o igual a Min Temperature; de otra forma devuelve la cadena
de caracteres No Warning.
6 Not Equal?—Devuelve un valor TRUE al indicador Warning? si el valor Warning Text es diferente a No Warning.

4. Modifique la descripción y consejo asociados con el indicador Warning Text para cambiar el contenido de la ventana Context Help.

 Pulse <Ctrl-H> para abrir la ventana Context Help, de ser necesario.


 Seleccione Window»Show Front Panel para abrir el panel frontal del VI.
 Mueva el ratón sobre el indicador Warning Text.
 Lea el contenido de la ventana Context Help.
 Haga clic con el botón derecho en el indicador Warning Text y seleccione Description and Tip.

 Escriba Muestra la cadena de caracteres indicando Heatstroke Warning, Freeze Warning o No Warning dependiendo de las
condiciones del clima en el cuadro de texto “Warning Text” Description.

Nota El texto que ingrese en la caja de texto “Warning Text” Tip es mostrado en una etiqueta de ayuda. Las ayudas son breves descripciones que
aparecen cuando mueve el cursor sobre un control o indicador mientras se ejecuta un VI.

 Haga clic en el botón OK.


 Mueva el ratón sobre el indicador Warning Text.
 Compruebe que el contenido de la ventana Context Help cambió para coincidir con el texto que escribió en el cuadro de diálogo Description and Tip.
5. Documente el diagrama de bloques usando etiquetas propietarias y etiquetas libres.

 Presione <Ctrl-E> para cambiar al diagrama de bloques.


 Añada etiquetas propietarias y etiquetas libres en el diagrama como se muestra en la figura 3-4.
Las etiquetas propietarias son propiedad de un objeto específico. Usted puede esconder las etiquetas propietarias y moverlas pero no puede copiarlas o
borrarlas independientemente de sus propietarios.

LabVIEW Core 1 Ejercicios © National Instruments | 3-7


Lección 3 Implementación de un VI [Link] | 3-8

Figura 3-4. Diagrama de bloques del VI Temperature Warnings

2
4

1 Etiquetas propietarias—Haga clic con el botón derecho en una función y seleccione Visible Items»Label en el menú contextual para mostrar la etiqueta
propietaria para esa función.
2 Mueva la etiqueta—Haga clic en la etiqueta propietaria de la función Greater or Equal? con la herramienta de posicionamiento y muévala abajo de la función.
3 Función de mover—Use la herramienta de posicionamiento para mover la función. Note que la etiqueta propietaria se mueve con la función.
4 Etiqueta propietaria—Haga clic con el botón derecho en el cable y seleccione Visible Items»Label en el menú contextual. Mueva la etiqueta con la herramienta
de posicionamiento.
5 Etiqueta libre—Haga doble clic en un área libre del diagrama de bloques y use la herramienta de etiquetado para crear comentarios en el código.

6. Documente las propiedades del VI, ofreciendo una descripción general del VI, una lista de entradas y salidas, su nombre y la fecha en que se creó el VI. Para
accesar el cuadro de diálogo VI Properties, seleccione File»VI Properties y seleccione Documentation del menú desplegable Category.

7. Guarde el VI.
Prueba
1. Pruebe el VI introduciendo un valor para Current Temperature, Max Temperature y Min Temperature y ejecutando el VI para cada configuración.

La tabla 3-2 muestra la cadena esperada Warning Text y Warning? Valor booleano de cada configuración de valores de entrada.

Nota El rango de temperatura en la tabla es solo un ejemplo de temperaturas seleccionadas para indicar advertencias de congelamiento o golpe de calor.

Tabla 3-2. Probar valores para el VI Temperature Warnings

Temperatura Actual Temperatura máxima Temperatura mínima Warning Text Warning?


30 30 10 Heatstroke Warning Verdadero
25 30 10 No Warning Falso
10 30 10 Freeze Warning Verdadero

¿Qué ocurre si el valor de su entrada de temperatura máxima es menor que la temperatura mínima? ¿Qué podría esperar que ocurriese? Va a aprender a manejar
situaciones como esta en el ejercicio 3-6.

2. Salve y cierre el VI y el proyecto LabVIEW.

Fin del ejercicio 3-1

LabVIEW Core 1 Ejercicios © National Instruments | 3-9


Lección 3 Implementación de un VI [Link] | 3-10

Ejercicio 3-2 VI Auto Match

Objetivo
Usar un bucle While y un terminal de iteración y pasar datos por un túnel.

Escenario
Cree un VI que genere continuamente números aleatorios entre 0 y 1.000 hasta que genere un número que coincida con el que seleccione el usuario. Determine cuántos
números aleatorios generó el VI antes de que el número coincidiera.

Diseño
Use el siguiente diagrama de flujo y la lista de entradas/salidas para crear el VI de este ejercicio.
Diagrama de flujo
El diagrama de flujo en la figura 3-5 ilustra el diseño por flujo de datos.
Figura 3-5. Diagrama de flujo de Auto Match

Generate a
Random Number No
Between 0 and 1

Multiply by 1000

Add 1 to
Round to Nearest Display Value = Number
Yes Iteration
Integer Value to User to Match?
Terminal

Display Number
of Iterations

LabVIEW Core 1 Ejercicios © National Instruments | 3-11


Lección 3 Implementación de un VI [Link] | 3-12

Entradas y salidas
La siguiente tabla describe las entradas y salidas para este ejercicio.

Tabla 3-3. Entradas y salidas del VI Auto Match

Tipo Nombre Propiedades

Control numérico Number to Match Doble precisión, coma flotante entre 0 y 1000, convertir al número natural más
cercano, valor predeterminado = 50
Indicador numérico Current Number Doble precisión y coma flotante
Indicador numérico Number of Iterations Número entero

Implementación
1. Cree y guarde un proyecto en blanco como Auto [Link] en el directorio <Exercises>\LabVIEW Core 1\Auto Match.

2. Cree un VI nuevo en el proyecto y guárdelo como Auto [Link] en el mismo directorio del proyecto.
3. Construya el panel frontal de la figura 3-6.
Figura 3-6. Panel frontal del VI Auto Match

1 Configure el valor predeterminado del control Number to Match en 50—Ingrese 50 en el control Number to Match y luego haga clic con el botón derecho en
el control y seleccione Data Operations»Make Current Value Default.
2 Configure el indicador Number of Iterations para que su salida sea un entero largo con signo—Haga clic con el botón derecho en el indicador y seleccione
Representation»I32.

4. Configure las propiedades del control Number to Match para que el tipo de dato sea un número entero sin signo de 32-bits, el intervalo de datos sea de 0 a 1000,
el valor de incremento sea 1 y los dígitos de precisión sean 0.

 Haga clic con el botón derecho en el control Number to Match y seleccione Representation»U32 en el menú contextual.

LabVIEW Core 1 Ejercicios © National Instruments | 3-13


Lección 3 Implementación de un VI [Link] | 3-14

 Haga clic con el botón derecho en el control Number to Match y seleccione Data Entry en el menú contextual. Establezca las propiedades en las pestañas
Data Entry y Display Format como se muestra en la figura 3-7.
Figura 3-7. Propiedades numéricas de Number to Match

1 2

1 Number to Match—Propiedades Data Entry 2 Number to Match—Propiedades Display Format


5. Establezca el tipo de datos del indicador Current Number a un número entero sin signo de 32-bits y establezca los dígitos de precisión de la salida de Current
Number a 0.

 Haga clic con el botón derecho en el indicador Current Number y seleccione Representation»U32 en el menú contextual.
 Haga clic con el botón derecho en el indicador Current Number y seleccione Display Format. Configure las propiedades como se muestra en la figura 3-8.
Figura 3-8. Propiedades de formato del indicador Current Number

LabVIEW Core 1 Ejercicios © National Instruments | 3-15


Lección 3 Implementación de un VI [Link] | 3-16

6. Cree el diagrama de bloques de la figura 3-9.


Figura 3-9. Diagrama de bloques del VI Auto Match

1 2 9

3 4 5 6 7 8

1 La función Random Number (0-1)—produce un número aleatorio entre el 0 y el 1.


2 Multiply—multiplica el número aleatorio por la entrada y para producir un número aleatorio entre el 0 e y.
3 Numeric Constant—Haga clic con el botón derecho en la entrada y de la función Multiply y seleccione Create»Constant. Ingrese un valor de 1000. Debido
a que la función Random Number (0-1) genera un número en coma flotante de doble precisión entre 0 y 1, multiplicar el número por 1000 produce un rango de
números entre 0 y 1000.
4 Round To Nearest—Esta función redondea el número aleatorio al número entero más cercano.
5 Equal?—Compara el número aleatorio con Number to Match y devuelve FALSE si los números no son iguales. De lo contrario, devolverá TRUE.
6 Bucle While—Repite el algoritmo hasta que la función Equal? devuelve un TRUE por que la función Equal? está cableada a la terminal condicional, la cual
está configurada para detenerse con un valor TRUE.
7 Terminal de iteraciones—Cada vez que se ejecute el bucle, la terminal de iteración aumentará en uno.
8 Incremento—Suma 1 a la cuenta del bucle While por que las iteraciones empiezan en 0.
9 Puntos de coerción—Puntos de coerción rojos aparecen en los nodos del diagrama de bloques cuando conecta un cable de tipo numérico a una terminal de
un tipo numérico diferente. En este caso, la salida de Round To Nearest es un coma flotante de doble precisión pero Current Number es un número entero.

Consejo Los puntos de coerción pueden causar que un VI use más memoria durante su ejecución, así que trate de mantener los tipos de datos consistentes
en los VIs que cree.
7. Actualice el VI para eliminar los puntos de coerción.

 Haga clic con el botón derecho en el cable la función Round To Nearest y seleccione Insert»Numeric Palette»Conversion»To Unsigned Long Integer
como se muestra en la figura 3-10. Esto inserta la función To Unsigned Long Integer en el cable.
Figura 3-10. Insertando la función To Unsigned Long Integer en el cable

LabVIEW Core 1 Ejercicios © National Instruments | 3-17


Lección 3 Implementación de un VI [Link] | 3-18

8. Note que convertir la salida de la función Round To Nearest elimina todos los puntos de coerción en el diagrama de bloques, como se muestra en la figura 3-11.
Figura 3-11. VI Auto Match Completo

9. Abra el panel frontal.

10. Haga clic con el botón derecho en el indicador Current Number y seleccione Advanced»Synchronous Display.

Nota Si se habilita la visualización sincrónica, cada vez que el diagrama de bloques envíe un valor al indicador Current Number, el diagrama de bloques
deja de ejecutarse hasta que el panel frontal haya actualizado el valor del indicador. En este ejercicio activa la visualización síncrona, de modo que puede
ver el indicador Current Number actualizándose repetidamente en el panel frontal. Normalmente la visualización síncrona se deshabilita para aumentar
la velocidad de ejecución, ya que habitualmente no necesita ver cada valor actualizado de un indicador en el panel frontal.

11. Guarde el VI.

Prueba
1. Cambie el número en Number to Match a un número que se encuentre en el rango de datos, que es de 0 a 1000 con un incremento de 1.

2. Ejecute el VI.

3. Cambie el valor de Number to Match y ejecute el VI de nuevo. Current Number se actualiza en cada iteración del bucle porque se encuentra dentro de él. Number
of iterations se actualiza al completarse porque se encuentra fuera del bucle.
4. Para ver cómo el VI actualiza los indicadores, habilite el resaltado de ejecución.

 En el diagrama de bloques, haga clic en el botón Highlight Execution para habilitar el resaltado de ejecución. El resaltado de la ejecución muestra el
movimiento de datos en el diagrama de bloques desde un nodo a otro para que pueda ver cada número según lo genera el VI.

5. Ejecute el VI y observe el flujo de datos.

6. Apague el resaltado de la ejecución para terminar la ejecución del VI rápidamente.

7. Intente hacer coincidir un número que se encuentre fuera del rango de datos.

 Cambie el valor Number to Match a un número que se encuentre fuera del rango, 0 – 1000.
 Ejecute el VI.
 Note que LabVIEW coacciona el valor fuera del rango al valor más cercano en el rango de datos que especifique en el paso 4 de la sección Implementación.
8. Cierre el VI.

Fin del ejercicio 3-2

LabVIEW Core 1 Ejercicios © National Instruments | 3-19


Lección 3 Implementación de un VI [Link] | 3-20

Ejercicio 3-3 Concepto: Bucles While frente a bucles For

Objetivo
Comprender cuándo se usa un bucle While y cuándo uno For.

Descripción
En los siguientes escenarios, decida si usar un bucle While o For.

Escenario 1
Adquiere datos de presión en un bucle que se ejecuta una vez cada segundo durante un minuto.

1. Si usa un bucle While, ¿qué condición necesita para detener el bucle?

2. Si usa un bucle For, ¿cuántas iteraciones necesita ejecutar el bucle?

3. ¿Resulta más fácil implementar un bucle For o un bucle While?

Escenario 2
Adquiere datos de presión hasta que ésta es mayor o igual que 1.400 psi.

1. Si usa un bucle While, ¿qué condición necesita para detener el bucle?

2. Si usa un bucle For, ¿cuántas iteraciones necesita ejecutar el bucle?

3. ¿Resulta más fácil implementar un bucle For o un bucle While?


Escenario 3
Adquiere datos de presión y temperatura hasta que ambos valores son estables durante dos minutos.

1. Si usa un bucle While, ¿qué condición necesita para detener el bucle?

2. Si usa un bucle For, ¿cuántas iteraciones necesita ejecutar el bucle?

3. ¿Resulta más fácil implementar un bucle For o un bucle While?

Escenario 4
Genera una rampa de tensión que comienza en cero, aumentando incrementalmente en 0,5 V cada segundo, hasta que la tensión de salida es igual a 5 V.

1. Si usa un bucle While, ¿qué condición necesita para detener el bucle?

2. Si usa un bucle For, ¿cuántas iteraciones necesita ejecutar el bucle?

3. ¿Resulta más fácil implementar un bucle For o un bucle While?

LabVIEW Core 1 Ejercicios © National Instruments | 3-21


Lección 3 Implementación de un VI [Link] | 3-22

Respuestas
Escenario 1
Adquiere datos de presión cada segundo durante un minuto.

1. Bucle While: Time = 1 minute


2. Bucle For: 60 iteraciones
3. Ambos son posibles.

Escenario 2
Adquiere datos de presión hasta que ésta sea 1.400 psi.
1. Bucle While: Pressure = 1400 psi
2. Bucle For: Desconocido
3. Un bucle While. Aunque puede añadir un terminal condicional a un bucle For, debe cablear un valor al terminal de contaje. Sin más información, no conoce el
valor apropiado para cablear al terminal de contaje.

Escenario 3
Adquiere datos de presión y temperatura hasta que ambos valores son estables durante dos minutos.

1. Bucle While: Bucle While: [(Última Temperatura = Temperatura Previa) durante 2 minutos o más] y [(Última presión = Presión Previa) durante 2 minutos o más]
2. Bucle For: Desconocido
3. Un bucle While. Aunque puede añadir un terminal condicional a un bucle For, debe cablear un valor al terminal de contaje. Sin más información, no conoce el
valor apropiado para cablear al terminal de contaje.

Escenario 4
Genera una rampa de tensión que comienza en cero, aumentando incrementalmente en 0,5 V cada segundo, hasta que la tensión de salida es igual a 5 V.

1. Bucle While: Voltaje = 5 V


2. Bucle For: 11 iteraciones (incluyendo los dos puntos finales, cuente los valores para cada valor – 0, 0.5, 1.0, 1.5, ... 4.5, 5.0.)
3. Ambos son posibles.

Fin del ejercicio 3-3


Ejercicio 3-4 VI Temperature MonitorI—Temperatura media

Objetivo
Usar un bucle While y registros de desplazamiento para hallar el promedio de datos.

Escenario
El VI Temperature Monitor adquiere y muestra la temperatura. Modifique el VI para hallar el promedio de las cinco últimas mediciones de temperatura y mostrar el
promedio móvil en el gráfico tipo “waveform chart”.

Diseño
La figura 3-12 y la figura 3-13 muestran el panel frontal y el diagrama de bloques del VI Temperature Monitor.
Figura 3-12. Panel frontal del VI Temperature Monitor

LabVIEW Core 1 Ejercicios © National Instruments | 3-23


Lección 3 Implementación de un VI [Link] | 3-24

Figura 3-13. Diagrama de bloques del VI Temperature Monitor

Para modificar este VI, debe conservar los valores de temperatura de las cuatro iteraciones anteriores de el bucle While y hallar el promedio de los valores. Para lograr
esto, modifique este VI de esta manera:

• Use un registro de desplazamiento con elementos adicionales para conservar los datos de las cuatro iteraciones anteriores.

• Inicialice el registro de desplazamiento con una lectura desde el sensor de temperatura simulado.

• Calcule y registre gráficamente sólo la temperatura media.

Implementación
1. Pruebe el VI.

 Abra Temperature [Link] en el directorio <Exercises>\LabVIEW Core 1\Temperature Monitor.


 Abra Temperature Monitor VI desde la ventana Project Explorer.
 Ejecute el VI. Observe la variación en la lectura de la temperatura simulada.
2. Detenga el VI haciendo clic en el botón Stop en el panel frontal.
3. Modifique el VI para reducir el número de picos de temperatura.

 Abra el diagrama de bloques.


 Modifique el diagrama de bloques como en la figura 3-14.
Figura 3-14. Diagrama de bloques del VI Temperature Monitor—Temperatura media

1 3 4

1 Registros de desplazamiento—Múltiples registros de desplazamiento recolectan múltiples lecturas de temperatura. Haga clic con el botón derecho en el borde
del bucle While y seleccione Add Shift Register. Arrastre el nodo inferior de cambio de tamaño del registro de desplazamiento para mostrar cuatro registros
de desplazamiento.
2 Cree una copia del VI Thermometer (Demo)—Presione <Ctrl> mientras arrastra el subVI afuera del bucle While para crear una copia. El VI Thermometer (Demo)
devuelve una medida de temperatura e inicializa los registros de desplazamiento izquierdos antes de que se inicie el bucle.
3 Compound Arithmetic—Devuelve la suma de la temperatura actual y las cuatro lecturas anteriores de la temperatura. Cambie el tamaño de la función para
tener cinco terminales.
4 Divide—Devuelve el promedio de las cinco últimas lecturas de temperatura.

4. Guarde el VI.

LabVIEW Core 1 Ejercicios © National Instruments | 3-25


Lección 3 Implementación de un VI [Link] | 3-26

Prueba
1. Ejecute el VI.

Durante cada iteración en el bucle While, el VI Thermometer toma una medida de temperatura. El VI añade este valor a las cuatro últimas mediciones almacenadas
en los terminales izquierdos del registro de desplazamiento. El VI divide el resultado entre cinco para averiguar la media de las cinco mediciones (la medida actual
más las cuatro anteriores). El VI muestra el promedio en el gráfico tipo “waveform chart”. Observe que el VI inicializa el registro de desplazamiento con una
medida de temperatura.

2. Detenga el VI haciendo clic en el botón Stop en el panel frontal y guarde el VI.

3. Salve y cierre el VI y el proyecto LabVIEW.

Fin del ejercicio 3-4


Ejercicio 3-5 VI Temperature Monitor—Grafique múltiples temperaturas

Objetivo
Representar varios conjuntos de datos en un solo gráfico tipo “waveform chart” y personalizar su vista.

Escenario
Modifique el VI del ejercicio 3-4 para representar la temperatura actual y el promedio móvil en el mismo gráfico. Además, el usuario debe poder examinar una parte
de la curva mientras los datos se están adquiriendo.

Diseño
La figura 3-15 muestra el panel frontal del VI Temperature Monitor existente y la figura 3-16 muestra el diagrama de bloques.
Figura 3-15. Panel frontal del VI Temperature Monitor

Para que el usuario pueda examinar una parte de la curva mientras los datos se están adquiriendo, muestre la leyenda escalas y la paleta del gráfico tipo “waveform
chart”. Asimismo, expanda la leyenda para mostrar curvas adicionales.

LabVIEW Core 1 Ejercicios © National Instruments | 3-27


Lección 3 Implementación de un VI [Link] | 3-28

Para modificar el diagrama de bloques de la figura 3-16, debe modificar el terminal del gráfico para aceptar varios datos. Use una función Bundle para combinar la
temperatura media y la actual en un cluster y cablearlo al terminal del gráfico Temperature History.
Figura 3-16. Diagrama de bloques original del VI Temperature Monitor

Implementación
1. Abra el VI Temperature Monitor creado en el ejercicio 3-4.

 Abra Temperature [Link] en el directorio <Exercises>\LabVIEW Core 1\Temperature Monitor.


 Abra Temperature [Link] de la ventana Project Explorer.
2. Modifique el diagrama de bloques para que parezca a la figura 3-17.
Figura 3-17. Diagrama de bloques del VI Temperature Monitor—Graficando múltiples temperaturas

1 Bundle—Pasa la temperatura actual y la media al terminal de gráfico Temperature History.

LabVIEW Core 1 Ejercicios © National Instruments | 3-29


Lección 3 Implementación de un VI [Link] | 3-30

3. Modifique el panel frontal para que parezca a la figura 3-18.


Figura 3-18. Panel frontal del VI Temperature Monitor—Graficando múltiples temperaturas

1 Muestra ambas gráficas en la leyenda de las curvas—Use la herramienta de posicionamiento para cambiar el tamaño de la leyenda de curvas para mostrar dos
objetos. Haga doble clic en la etiqueta para editar los nombres. El orden de las curvas que aparecen en la leyenda de curvas es el mismo que el de los elementos
cableados a la función Bundle del diagrama de bloques.
2 Cambie el tipo de gráfica de Current Temperature—Use la herramienta operacional para seleccionar la curva en la leyenda de curvas. Haga clic en en el ícono
de la curva, seleccione Common Plots del menú y escoja la curva que quiere.
3 Muestra la paleta Graph—Haga clic con el botón derecho en el gráfico Temperature History y seleccione Visible Items»Graph Palette.
4 Muestra la leyenda de escala—Haga clic con el botón derecho en el gráfico Temperature History y seleccione Visible Items»Scale Legend.

4. Guarde el VI.
Prueba
1. Ejecute el VI. Use las herramientas de la leyenda de escalas y la paleta de gráfico para examinar los datos que genere.

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

3. Cierre el VI y el proyecto tras terminar.

Fin del ejercicio 3-5

LabVIEW Core 1 Ejercicios © National Instruments | 3-31


Lección 3 Implementación de un VI [Link] | 3-32

Ejercicio 3-6 VI Temperature Warnings—con gestión de errores

Objetivo
Modificar un VI para utilizar una estructura Case y tomar una decisión software.

Escenario
Ha creado un VI en el que el usuario introduce una temperatura, una temperatura máxima y una mínima. Se genera una cadena de caracteres de advertencia en función
de la relación de las entradas. No obstante, una situación podría hacer que el VI funcionara incorrectamente. Por ejemplo, el usuario podría introducir una temperatura
máxima inferior a la temperatura mínima. Modifique el VI para generar otra cadena de caracteres que alerte al usuario del error: Upper Limit < Lower Limit
Configure el indicador Warning? en TRUE para indicar el error.

Diseño
Modifique el diagrama de flujo creado para el VI Temperature Warnings original como en la figura 3-19.
Figura 3-19. Diagrama de flujo de Temperature Warnings modificado

Output
M
Min
inTTeem
mpp>= No CMuirnreTnetmTpem>=
p No Current Temp No No Warning
Max Temp MMaaxxTT eemmpp Min Temp and
FALSE

Yes Yes Yes

Output Output
Heatstroke Freeze Warning
Create Error
Warning and and
TRUE TRUE

Output
Upper Limit
< Lower Limit
and TRUE
El diagrama de bloques original del VI Temperature Warnings aparece en la figura 3-20. Debe añadir una estructura Case al VI Temperature Warnings para ejecutar
el código si la temperatura máxima es menos o igual que la temperatura mínima. De otra manera, el VI no ejecuta el código. En su lugar, el VI genera una nueva
cadena de caracteres y el indicador Warning? está establecido como TRUE.
Figura 3-20. Diagrama de bloques original del VI Temperature Monitor

Implementación
1. Abra Weather [Link] en el directorio <Exercises>\LabVIEW Core 1\Weather Warnings.

2. Abra Temperature [Link] de la ventana Project Explorer. Creó el VI Temperature Warnings en el ejercicio 3-1.

LabVIEW Core 1 Ejercicios © National Instruments | 3-33


Lección 3 Implementación de un VI [Link] | 3-34

3. Coloque un cluster Error In y Error Out en el panel frontal como se muestra en la figura 3-21.
Figura 3-21. Panel frontal del VI Temperature Warnings con clusters de error
4. Abra el diagrama de bloques y cree espacio para añadir la estructura Case.

 Seleccione las terminales de los controles Current Temperature, Max Temperature, Min Temperature y Error In.

Consejo Para seleccionar más de un elemento, pulse la tecla <Shift> mientras selecciona los elementos.

 Mientras los terminales siguen seleccionados, use la tecla de flecha izquierda del teclado para mover los controles a la izquierda.

Consejo Mantenga pulsada la tecla <Mayús> para mover los objetos en incrementos de cinco píxeles.

Consejo Presione la tecla <Ctrl> y use la herramienta de posicionamiento para arrastrar una región del tamaño que quiera insertar.

 Seleccione las terminales de los indicadores Warning?,Warning Text y Error Out.


 Alinee las terminales haciendo clic en el botón Align Objects»Left Edges en la barra de herramientas de LabVIEW.
 Mientras los terminales siguen seleccionados, use la tecla de flecha derecha del teclado para mover los indicadores a la derecha.
5. Modifique el diagrama de bloques para que sea similar los mostrados en la figura 3-22, figura 3-23 y figura 3-24. Este VI forma parte del proyecto de la estación
meteorológica de temperatura.

LabVIEW Core 1 Ejercicios © National Instruments | 3-35


Lección 3 Implementación de un VI [Link] | 3-36

Figura 3-22. Diagrama de bloques del VI Temperature Warnings—No error, caso False

4 3

1 Less?—Compara el Max Temperature y Min Temperature. Asegúrese que la función Less? este fuera de la estructura Case.
2 Estructura Case—No incluya las terminales Current Temperature, Max Temperature, Min Temperature, Error In, Warning?, Warning Text o Error Out
en la estructura Case debido a que estos controles e indicadores son usados en ambos casos.
3 Establezca los casos True y False—Con el caso True visible, haga clic con el botón derecho en el borde de la estructura Case y seleccione Make this Case
False.
4 Etructura Case—Cablee la terminal Error In a el terminal selectora para crear los casos No Error y Error. Por defecto, la estructura Case tiene casos True y
False. Estos casos cambian a Error y No Error solo después de cablear Error In a la terminal selectora.
Figura 3-23. VI Temperature Warnings—No Error, caso True

1 Caso True—Si Max Temperature es menor que Min Temperature, el caso True se ejecuta. Haga clic en la etiqueta del selector de caso para escoger el caso True.
2 Constante True—Cuando el caso True se ejecuta, el LED Warning? se ilumina.
3 Constante de cadena de caracteres—Si Max Temperature es menor que Min Temperature, la advertencia Upper Limit < Lower Limit se muestra en
el panel frontal. Ingrese el texto en la constante de cadena de caracteres.

LabVIEW Core 1 Ejercicios © National Instruments | 3-37


Lección 3 Implementación de un VI [Link] | 3-38

6. Cree el caso Error en la estructura Case externa para que este VI pueda ser usado como un subVI.
Figura 3-24. VI Temperature Warnings—Caso Error

7. Guarde el VI.

Prueba
1. Cambie al panel frontal del VI.

2. Cambie el tamaño del indicador Warning Text para que pueda contener la nueva cadena de caracteres.

3. Pruebe el VI introduciendo un valor de la tabla 3-4 en los controles Current Temperature,Max Temperature y Min Temperature y ejecutando el VI para
cada configuración.
La tabla 3-4 muestra la cadena esperada Warning Text y Warning? Valor booleano de cada configuración de datos.

Tabla 3-4. Probar valores para el VI Determine Warnings

Temperatura Actual Temperatura máxima Temperatura mínima Warning Text Warning?


30 30 10 Heatstroke Warning Verdadero
25 30 10 No Warning Falso
10 30 10 Freeze Warning Verdadero
25 20 30 Upper Limit < Lower Limit Verdadero

4. Pruebe el caso Error. Para usar este VI como subVI, el VI debe ser capaz de gestionar un error entrando al VI. Prueba el caso Error para asegurarse que este VI
puede emitir la información que recibe.

 En el panel frontal, use la herramienta operacional para hacer clic en el indicador booleano status dentro del cluster Error In para que el indicador cambie
a rojo e ingrese 7 en el control code.

 Ejecute el VI. La información de error que ingresó pasa por caso Error en el VI y es la salida en el cluster Error Out.
 Muestre el diagrama de bloques, seleccione el caso No Error, resaltado de ejecución y luego ejecute el VI de nuevo para ver el error pasar por el caso Error.
 En el panel frontal, haga clic con el botón derecho en el borde de el cluster Error Out y seleccione Explain Error para mostrar información acerca del error
que fue devuelto.

5. Guarde y cierre el VI.

Fin del ejercicio 3-6

LabVIEW Core 1 Ejercicios © National Instruments | 3-39


4
Desarrollo de aplicaciones modulares
Complete el ejercicio en esta lección para reforzar los conceptos que aprendió en la lección 4 de LabVIEW Core 1.

Ejercicio
Ejercicio 4-1 VI Temperature Warnings—Como subVI

LabVIEW Core 1 Ejercicios © National Instruments | 4-1


Lección 4 Desarrollo de aplicaciones modulares [Link] | 4-2

Ejercicio 4-1 VI Temperature Warnings—Como subVI

Objetivo
Crear el icono y panel de conectores para un VI de modo que pueda utilizar el VI como un subVI.

Escenario
Ha creado un VI que determina una cadena de caracteres de advertencia en función de las entradas existentes. Cree un icono y panel de conectores de modo que pueda
utilizar el VI como un subVI.

Diseño
El VI Temperature Warnings contiene las siguientes entradas y salidas:

Tabla 4-1. Entradas y salidas del VI Temperature Warnings

Entradas Salidas

Current Temperature Warning Text


Max Temperature Warning?
Min Temperature —
Error In Error Out

Use el panel de conectores estándar para garantizar espacio para una futura expansión.

Implementación
1. Abra Weather [Link] en el directorio <Exercises>\LabVIEW Core 1\Weather Warnings.

2. Abra Temperature Warnings VI desde la ventana Project Explorer. Creó el VI Temperature Warnings en el ejercicio 3-1 y lo modificó en el ejercicio 3-6.
3. Conecte las entradas y salidas al conector como en la figura 4-1.
Figura 4-1. Conexiones del panel de conectores para el VI Temperature Warnings

1 2

1 Panel de conectores—Localizado en la esquina superior derecha de la ventana del VI, el panel de conectores muestra terminales potenciales para el VI. El
panel de conectores mostrado aquí muestra el patrón de terminales estándar. Puede hacer clic con el botón derecho en el panel de conectores y seleccionar
Patterns para escoger diferentes diseños de terminales.
2 Conexiones—La ventana Context Help muestra las conexiones del VI.

 Con la herramienta de cableado, haga clic en el terminal superior derecho del panel de conectores.
 Haga clic en el control del panel frontal correspondiente, Current Temperature.
Observe que el terminal del panel de conectores se rellena con un color para coincidir con el tipo de datos del control conectado a él.

 Haga clic en la terminal del panel de conectores abajo de la terminal Current Temperature.
 Haga clic en el control del panel frontal correspondiente, Max Temperature.
 Siga cableando el panel de conectores hasta que todos los controles e indicadores estén cableados y la ventana Context Help coincida con la mostrada en la
figura 4-1.

LabVIEW Core 1 Ejercicios © National Instruments | 4-3


Lección 4 Desarrollo de aplicaciones modulares [Link] | 4-4

4. Cree un icono.

 Haga clic con el botón derecho en el icono y seleccione Edit Icon.


 Use las herramientas en el cuadro de diálogo Icon Editor para crear un ícono. Haga el icono tan sencillo o complejo como desee, pero debe ser representativo
de la función del VI. La figura 4-2 muestra un ejemplo sencillo de un icono para este VI.
Figura 4-2. Ejemplo de ícono de advertencia

Consejo Haga doble clic en la herramienta de selección para seleccionar el gráfico existente. Pulse la tecla <Suprimir> para eliminar el gráfico. A
continuación, haga doble clic en la herramienta de rectángulo para crear automáticamente un borde para el icono.

Consejo Haga doble clic en la herramienta de texto para modificar las fuentes. Puede seleccionar Small Fonts si desea fuentes de tamaño inferior a 9
puntos.
Consejo Seleccione la ficha Glyphs y filtre los símbolos con la palabra clave warning. Después arrastre un símbolo de advertencia a su icono.

5. Haga clic en OK cuando haya terminado para cerrar el cuadro de diálogo Icon Editor.

6. Guarde y cierre el VI.

Prueba
Pruebe el VI Temperature Warnings como un subVI.

1. Añada archivos al proyecto LabVIEW Weather Warnings como se muestra en la figura 4-3.
Figura 4-3. Proyecto Weather Warnings

 Añada una carpeta de relleno automático al proyecto LabVIEW Weather Warnings. LabVIEW continuamente monitorea carpetas de relleno automático y
actualiza la carpeta en la ventana Project Explorer de acuerdo a los cambios hechos en el proyecto y en el disco.

– Haga clic con el botón derecho en My Computer en el proyecto Weather Warnings y seleccionar Add»Folder (Auto-populating) en el menú contextual.

– Navegue a <Exercises>\LabVIEW Core 1\Shared Files y haga clic en el botón Select Folder.

La carpeta Shared Files contiene archivos compartidos que puede usar en este y otros ejercicios.

LabVIEW Core 1 Ejercicios © National Instruments | 4-5


Lección 4 Desarrollo de aplicaciones modulares [Link] | 4-6

 Añada SubVI [Link] al proyecto.


– Haga clic con el botón derecho en My Computer y seleccione Add»File desde el menú contextual.

– Navegue a <Exercises>\LabVIEW Core 1\Weather Warnings\Test VIs\SubVI [Link] y haga clic en Add File.

2. Abra el VI SubVI Tester y complete el diagrama de bloques como se muestra en la figura 4-4.
Figura 4-4. Diagrama de bloques del subVI Test

1 2

1 Thermometer (Demo)—Localice este VI en la carpeta Shared Files en la ventana Project Explorer, arrástrelo al diagrama de bloques y cabléelo como se
muestra. Este VI genera ejemplos de valores de temperatura.
2 Temperature Warnings—Debido a las modificaciones hechas al VI Temperature Warnings, puede usarlo como un subVI. Cablee el VI Temperature Warnings
usando la conexiones que creó.
3 Enum Constant—Haga clic con el botón derecho en la entrada Units (0:Celsius) del VI Thermometer (Demo) y seleccione Create»Constant. Crear la
constante enum del VI Thermometer (Demo) automáticamente rellena el enum con las opciones apropiadas. Use la herramienta operacional para seleccionar
Celsius.
4 Or—Use la función Or para detener el VI si el usuario haga clic en el botón Stop o si el VI Temperature Warnings devuelve un error en el cluster Error Out.

3. En el panel frontal del VI SubVI Tester, ingrese los valores de prueba para los controles Max Temperature y Min Temperature.

4. Ejecute el VI.

El VI Thermometer (Demo) genera ejemplos de temperatura, las cuales son mostradas por el VI SubVI Tester en el indicador Thermometer.
5. Note como la cadena de caracteres en el indicador Warning Text cambia mientras la temperatura sube o baja.

6. Cuando termine de probar, guarde y cierre el VI.

Fin del ejercicio 4-1

LabVIEW Core 1 Ejercicios © National Instruments | 4-7


Creando y aprovechando estructuras
5
Complete los ejercicios en esta lección para reforzar los conceptos que aprendió en la lección 5 de LabVIEW Core 1.

Ejercicio
Ejercicio 5-1 Concepto: Manipulando Arrays
Ejercicio 5-2 Concepto: Clusters
Ejercicio 5-3 Concepto: Definiciones tipo

LabVIEW Core 1 Ejercicios © National Instruments | 5-1


Lección 5 Creando y aprovechando estructuras [Link] | 5-2

Ejercicio 5-1 Concepto: Manipulando Arrays

Objetivo
Manipular arrays con varias funciones de LabVIEW.

Descripción
Recibe un VI y debe mejorarlo para varios fines. El panel frontal de este VI está hecho. Complete el diagrama de bloques para practicar diferentes técnicas para
manipular arrays.
Implementación
1. Abra Manipulating [Link] en el directorio <Exercises>\LabVIEW Core 1\Manipulating Arrays.

2. Abra el VI Array Manipulation de la ventana Project Explorer. El panel frontal, mostrado en la figura 5-1, ya está creado para usted.
Figura 5-1. Panel frontal del VI Array Manipulation

LabVIEW Core 1 Ejercicios © National Instruments | 5-3


Lección 5 Creando y aprovechando estructuras [Link] | 5-4

3. Abra el diagrama de bloques y complete cada uno de los casos que corresponde a las pestañas en el panel frontal como en las figuras 5-2 hasta 5-8.
Figura 5-2. VI Array ManipulationI—Caso Concatenate Channels

2 1

1 Build Array—Expanda este nodo para aceptar dos entradas y luego haga clic con el botón derecho y seleccione Concatenate inputs en el menú contextual.
2 Cablee las salidas de las ondas sinusoidal y cuadrada a la función Build Array para crear un array de 1D con ambas curvas.

4. Cambie al panel frontal y pruebe el caso Concatenate Channels.

 En el panel frontal, haga clic en la pestaña Concatenate Channels.


 Ejecute el VI y note que la onda sinusoidal está concatenada con la onda cuadrada.
5. Detenga el VI.

6. Cambie al diagrama de bloques y seleccione el caso Add/Subtract Channels.


7. Complete el caso Add/Subtract Channels como en la figura 5-3 y la figura 5-4.
Figura 5-3. VI Array Manipulation—Caso True Add/Subtract Channels

1 2

1 Subtract?—Cablee este a la terminal selectora de caso para que el caso correcto se ejecute cuando haga clic en el botón Subtract? en el panel frontal.
2 Estructura Case—Coloque la función Subtract en el caso True, para que el VI reste los elementos del array cuando el botón Subtract? en el panel frontal es
presionado.
Figura 5-4. VI Array Manipulation—Caso False Add/Subtract Channels

1 Cuando el valor del control booleano Subtract? es False, el array de elementos es añadido.

LabVIEW Core 1 Ejercicios © National Instruments | 5-5


Lección 5 Creando y aprovechando estructuras [Link] | 5-6

Nota Este caso demuestra la funcionalidad polimórfica añadiendo y restando elementos del array.

8. Cambie al panel frontal y pruebe el caso Add/Subtract Channels.

 En el panel frontal, haga clic en la pestaña Add/Subtract Channels.


 Ejecute el VI.
 Haga clic en el botón Subtract? y observe el comportamiento de restar la onda cuadrada de la onda sinusoidal.
9. Detenga el VI.

10. Cambie al diagrama de bloques y seleccione el caso Select a Channel.


11. Complete el caso Select a Channel como en la figura 5-5.
Figura 5-5. VIArray Manipulation—Select a Channel

1 2

1 Build Array—Combina las ondas sinusoidal y cuadrada en un array de 2D.


2 Index Array—Extrae columna 0 o 1 del array de 2D. La salida de esta función es un array de 1D y es la curva que seleccionó con el control Select Channel.
La curva es mostrada en el gráfico tipo Waveform Graph Single Channel of Data y el indicador Single Channel of Data Array.
3 Select Channel—Cablee a la entrada row de la función Index Array.
4 Array Size—Debido a que está usando un array de 1D, esta función devuelve un valor escalar.

Nota El caso Select a Channel usa un nodo de propiedad para cambiar el color de la gráfica. Aprenderá sobre nodos de propiedad en LabVIEW Core 2.

12. Cambie al panel frontal y pruebe el caso Select a Channel.

 En el panel frontal, haga clic en la pestaña Select a Channel.


 Ejecute el VI.
 Cambie entre Channel 0 y Channel 1y note los diferentes valores mostrados en el indicador Single Channel of Data Array.

LabVIEW Core 1 Ejercicios © National Instruments | 5-7


Lección 5 Creando y aprovechando estructuras [Link] | 5-8

13. Detenga el VI.

14. Cambie al diagrama de bloques y seleccione el caso Waveform Data.

15. Complete el diagrama de bloques de Waveform Data como en la Figura 5-6.

El tipo de dato de forma de onda es un tipo especial de cluster que contiene información adicional del tiempo de forma de onda.
Figura 5-6. VIArray Manipulation—Waveform Data

1 Add—Usa el valor del control Offset para modificar el valor de la forma de onda en el tipo de dato de forma de onda. Note que el valor del controlOffset debe
ser coaccionado para ser usado con el tipo de dato de forma de onda.

Nota Polimorfismo es la habilidad de VIs y funciones de adaptarse automáticamente para aceptar diferentes tipos de datos, incluyendo arrays, escalares
y formas de onda. VIs y funciones son polimórficos en diferentes grados.

16. Cambie al panel frontal y pruebe el caso Waveform Data.


 En el panel frontal, haga clic en la pestaña Waveform Data.
 Ejecute el VI.
 Cambie el valor del control Offset y note la onda cuadrada moverse en el gráfico Waveform Data.
17. Detenga el VI.

18. Cambie al diagrama de bloques y seleccione el caso All Data Channel.

19. Complete el caso All Data Channel como en la figura 5-7.


Figura 5-7. VI Array Manipulation—All Data

2 3 4

1 Add—Modifica los mismos datos en un array añadiendo el valor de Channel 1 Offset a cada elemento del array.
2 Bucle For—Extrae cada elemento del array usando auto indexado para que la función Add en el bucle For pueda sumar un valor escalar.
3 Build Array—Toma los dos arrays de 1D y construye un array de 2D. Cada array de 1D se convierte en una fila en el array de 2D.
4 Array Size—Devuelve un array de 1D donde cada elemento muestra el tamaño de cada dimensión. En este ejercicio, debe tener 2 elementos de datos para
cada número de las filas y columnas.
5Los indicadores All Data Channel y Data Channel Array muestran la misma información.

Nota La funcionalidad polimórfica de las funciones de LabVIEW le permite realizar la misma operación en cada elemento sin extraer elementos del
array, como lo hace con las dos funciones Add en el caso All Data Channel.

LabVIEW Core 1 Ejercicios © National Instruments | 5-9


Lección 5 Creando y aprovechando estructuras [Link] | 5-10

20. Cambie al panel frontal y pruebe el caso All Data Channel.

 En el panel frontal, haga clic en la pestaña All Data Channel.


 Ejecute el VI.
 Cambie el valor del control Channel 1 Offset y observe el comportamiento.
21. Detenga el VI.

22. Cambie al diagrama de bloques y seleccione el caso Waveform Subset.


23. Complete el caso Waveform Subset como en la figura 5-8.
Figura 5-8. VI Array Manipulation—Waveform Subset

2 1

1 Array Subset—Extrae un subgrupo de un array existente. En este ejercicio, use esta función para acercarse a un subgrupo de la forma de onda que generó.
2 Constante Numérica—Estas constantes especifican que la función extrae las primeras dos columnas empezando por el elemento 0.
3 Start Value—Establece el índice de inicio. El valor predeterminado está configurado para empezar en el elemento 0.
4 Length—Establece el número de elementos por extraer. El valor predeterminado está configurado para dar una salida de 1000 elementos.

24. Cambie al panel frontal y pruebe el caso Waveform Subset.


 En el panel frontal, haga clic en la pestaña Waveform Subset.
 Ejecute el VI.
 Cambie el valor de los controles deslizadores Start Value y Length y note que en el gráfico tipo waveform Subset Data el eje x empieza en cero y finaliza
en el número de elementos del nuevo array. El eje x empieza en cero por que el VI crea un array nuevo y el gráfico no sabe donde los datos estaban localizados
en el array original.

25. Detenga el VI.

LabVIEW Core 1 Ejercicios © National Instruments | 5-11


Lección 5 Creando y aprovechando estructuras [Link] | 5-12

Use el NI Example Finder para aprender más acerca de los arrays.


Use NI Example Finder para explorar o buscar ejemplos instalados en su ordenador o en NI Developer Zone en [Link]/zone. Los VIs de ejemplos pueden
mostrarle como usar funciones específicas y conceptos de programación como arrays y polimorfismo.

Complete los siguientes pasos para usar el NI Example Finder para localizar VIs de ejemplos para demostrar diferentes formas de usar la función Array.

1. Seleccione Help»Find Examples para iniciar NI Example Finder.

2. Haga clic en la pestaña Search e ingrese la palabra array.

3. Haga clic en el botón Search para encontrar VIs usando el teclado.

4. Haga clic en uno de los ejemplos en los resultados de la búsqueda y lea la descripción.

5. Haga doble clic en un VI de ejemplo para abrirlo.

6. Lea los comentarios en el panel frontal y en el diagrama de bloques para aprender más acerca de los que este ejemplo demuestra.

7. Ejecute el ejemplo, examine los diferentes casos y haga clic en el botón Stop para salir.

8. Cierre los VIs y el NI Example Finder tras terminar.

Fin del ejercicio 5-1


Ejercicio 5-2 Concepto: Clusters

Objetivo
Cree un cluster conteniendo los datos que serán pasados a través de la aplicación y en el proceso, crea código escalable y legible.

Descripción
Cree un cluster que contiene los datos usados por el VI Temperature Warnings que creó en la lección 3. Modifique el VI Temperature Warnings para recibir y devolver
datos en la forma del mismo cluster como en la figura 5-9. El VI modificado funciona de una manera más modular con otros subVIs en toda la aplicación.
Figura 5-9. Panel frontal del VI Temperature Warnings con clusters

LabVIEW Core 1 Ejercicios © National Instruments | 5-13


Lección 5 Creando y aprovechando estructuras [Link] | 5-14

1. Abra Weather [Link] en el directorio <Exercises>\LabVIEW Core 1\Weather Warnings.

2. Abra Temperature Warnings VI desde la ventana Project Explorer.

3. Coloque los controles e indicadores existentes en un cluster llamado Weather Data como en la figura 5-10.
Figura 5-10. Cree el cluster

1 3

1 Cluster—Use el control Cluster de la paleta Silver y cambie la etiqueta a Weather Data.


2 Seleccione los controles e indicadores para incluir en el cluster. <Shift>-haga clic para seleccionar múltiples objetos.
3 Arrastre los controles e indicadores dentro del cluster Weather Data.
4. Cambie el tamaño del cluster para que todos los elementos sea visibles y ordénelos verticalmente como en la figura 5-11.
Figura 5-11. Cambie el tamaño del cluster de controles

1 Cambie el tamaño del cluster automáticamente—LabVIEW puede reordenar y cambiar el tamaño del cluster por usted. Haga clic con el botón derecho en el
borde del cluster Weather Data y seleccione AutoSizing»Arrange Vertically.

LabVIEW Core 1 Ejercicios © National Instruments | 5-15


Lección 5 Creando y aprovechando estructuras [Link] | 5-16

5. Reordene los objetos en el cluster como en la figura 5-12


Figura 5-12. Reordene el cluster

1 Haga clic con el botón derecho en el borde del cluster y seleccione Reorder Controls in Cluster.
2 Haga clic en los números negros para alternar el orden de los objetos en el cluster.
3 Haga clic en el botón Confirm para guardar los cambios.
6. Modifique el VI para recibir y devolver datos de cluster.
Figura 5-13. Temperature Warnings—Clusters Weather Data In y Weather Data Out

1
2

1 Weather Data—<Ctrl>-haga clic en el cluster Weather Data y arrástrelo para crear una copia. Cambie el nombre de la copia Weather Data In.
2 Weather Data—Haga clic con el botón derecho en el cluster original y seleccione Change to Indicator. Cambie el nombre del indicador Weather Data Out.
3 Cablee el panel de conectores—Cablee el control Weather Data In a la esquina superior izquierda del conector. Cablee Weather Data Out a la esquina superior
derecha.

LabVIEW Core 1 Ejercicios © National Instruments | 5-17


Lección 5 Creando y aprovechando estructuras [Link] | 5-18

7. Modifique el diagrama de bloques como en la figura 5-14 para extraer datos del cluster de entrada.

 Mueva el cluster Weather Data In a la izquierda, afuera de las estructuras Case.


 Mueva el cluster Weather Data Out a la derecha, afuera de las estructuras Case.
Figura 5-14. Diagrama de bloques de Temperature Warnings con clusters

1 Unbundle By Name—Cablee el control Weather Data In y expanda la función Unbundle by Name para mostrar tres elementos. Cablee las salidas de la función
Unbundle by Name a los cables rotos en el orden mostrado. Debido a que usted movió controles e indicadores individuales a un solo cluster, debe usar la función
Unbundle by Name para cablear controles e indicadores internos independientemente de cada uno.
2 Bundle By Name—Cablee el cluster Weather Data In alrededor de la estructura Case al cluster de entrada de la función Bundle by Name. Muestre dos
elementos y use la herramienta operacional para seleccionar los elementos Warning? y Warning Text. Conecte los cables rotos a las entradas de la función
Unbundle By Name como se muestra.

Nota Si el orden de los elementos en las funciones Unbundle by Name y Bundle By Name es diferente que el que usted desea, puede usar la herramienta
operacional para cambiar el orden.

8. Guarde y cierre el VI Temperature Warnings.


Prueba
1. Use el VI SubVI Tester para probar el VI Temperature Warnings modificado como un subVI.

 En el diagrama de bloques, borre los indicadores Thermometer, Warning? y Warning Text y cualquier otro cable roto. Presione <Ctrl-B> para limpiar
todos los cables rotos.

 Modifique el VI SubVI Tester para trabajar con el VI Temperature Warnings que ahora usa clusters como en la figura 5-15.
Figura 5-15. Diagrama de bloques del VI SubVI Tester modificado para trabajar con el VI Temperature Warnings modificado.

1 Weather Data—Haga clic con el botón derecho en la salida Weather Data Out del VI Temperature Warnings y seleccione Create»Indicator. Cablee la salida
al borde del bucle While, haga clic con el botón derecho en el túnel y seleccione Replace with Shift Register en el menú contextual. El registro de
desplazamiento almacena los datos del cluster de una iteración a la siguiente.
2 Constante—Haga clic con el botón derecho en el registro de desplazamiento y seleccione Create constant para inicializar los valores. Cambie el nombre de
la constante Initialize Weather.
3 Bundle By Name—Cablee la constante del registro de desplazamiento Initialize Weather al cluster de entrada de la función Bundle by Name. Expanda la
función Bundle By Name a tres elementos.

LabVIEW Core 1 Ejercicios © National Instruments | 5-19


Lección 5 Creando y aprovechando estructuras [Link] | 5-20

 Disponga el panel frontal de la figura 5-16.


Figura 5-16. Panel frontal del VI SubVI Tester modificado con clusters

 Ingrese valores en los controles Max Temperature y Min Temperature.


 Ejecute el VI y verifique que el indicador Weather Data muestre los valores correctos.
2. Guarde y cierre el VI.

Fin del ejercicio 5-2


Ejercicio 5-3 Concepto: Definiciones tipo

Objetivo
Mejorar la escalabilidad de su aplicación usando definiciones tipo compuestas de clusters de controles personalizados, indicadores y constantes de un tipo de dato
particular.

Escenario
Como desarrollador de LabVIEW, usted puede encontrar situaciones donde necesite definir sus propios tipos de datos personalizados en la forma de clusters y enums.
Un reto asociado a usar tipos de datos personalizados es que puede que necesite cambiarlos más tarde en el desarrollo. Además, puede que los tenga que cambiar tras
haberlos usado en VIs. Por ejemplo, usted crea copias de un tipo de datos personalizado y los usa como controles, indicadores o constantes en uno o en más VIs.
Luego se da cuenta de que el tipo de datos personalizado necesita ser cambiado. Necesita añadir, eliminar o cambiar los objetos en el tipo de datos cluster o el enum.

Como desarrollador debe hacerse las siguientes preguntas:

• ¿Qué pasará a las copias de los tipos de datos personalizados usados en los VIs que ya están guardados?

• ¿Deberían las copias mantenerse sin cambios o deberían actualizarse para reflejar los cambios en el original?

Usualmente, se desea que todas las copias de tipo de datos personalizados se actualicen si cambia el tipo de datos personalizado original. Para lograr esto, se necesita
que las copias de los tipos de datos personalizados estén asociadas a una definición tipo, la cual se define de la siguiente manera:

Definición tipo—Una copia maestra de tipo de datos personalizado que puede ser utilizada por múltiples VIs.

Implementación
En este ejercicio, se modifica el VI Temperature Warnings que fue revisado en el ejercicio 5-2 de manera tal que los cambios hechos en el tipo de datos personalizado
Weather Data se propaguen a través de la aplicación.

Una vez completada, la aplicación Weather Station monitoriza información de temperatura y de viento. Este ejercicio modifica el VI Temperature Warnings. En el
ejercicio Reto, se modifica el VI Windspeed Warnings.

1. Abra Weather [Link] en el directorio <Exercises>\LabVIEW Core 1\Weather Warnings.

2. Abra Temperature Warnings VI desde la ventana Project Explorer.

LabVIEW Core 1 Ejercicios © National Instruments | 5-21


Lección 5 Creando y aprovechando estructuras [Link] | 5-22

3. Experimente cambiando un cluster existente.

 Coloque un File Path Control (Silver) en el cluster Weather Data In.


 Note que el VI Temperature Warnings está roto. Esto es debido a que los clusters Weather Data In y Weather Data Out ya no son del mismo tipo de datos.
 Abra el diagrama de bloques y note el cable roto conectado a la terminal Weather Data Out.
 Presione <Ctrl-Z> para deshacer la adición del control File Path.
4. Cree una definición tipo.

 Haga clic con el botón derecho en el borde del control Weather Data In y seleccione Make Type Def.
 En el diagrama de bloques la terminal Weather Data In ahora tiene un triángulo negro en la esquina indicando que está conectada a una definición tipo.
 Haga clic con el botón derecho en el borde del control Weather Data In y seleccione Open Type Def para mostrar la ventana Custom Control Editor como
en la figura 5-17.
La ventana parece el panel frontal de un VI pero no tiene diagrama de bloques.
Figura 5-17. Ventana Custom Control Editor

1 El tipo de control es un Type Def, el cual mantiene el enlace entre el archivo y las copias del control personalizado usados en VIs.

 Guarde el control personalizado como Weather [Link] en el directorio <Exercises>\LabVIEW Core 1\Weather Warnings y cierre la ventana
editora de controles.

 En el diagrama de bloques del VI Temperature Warnings, note el punto de coerción en la terminal del indicador Weather Data Out. Esto indica que el
indicador no está ligado a la definición tipo.

LabVIEW Core 1 Ejercicios © National Instruments | 5-23


Lección 5 Creando y aprovechando estructuras [Link] | 5-24

5. Asocie el indicador Weather Data Out a la definición tipo.

 Haga clic con el botón derecho en el borde del indicador Weather Data Out en el panel frontal y seleccione Replace»Select a Control en el menú contextual.

 Busque y seleccione el archivo Weather [Link] que acaba de crear.

Nota Ya no puede añadir o remover elementos del cluster de controles e indicadores en el panel frontal. Debe abrir la definición tipo y añadir o remover
el elemento de la ventana editora de controles.

 Guarde el VI Temperature Warnings.


6. Edite la definición tipo Weather Data para incluir información de unidad.

 Haga clic con el botón derecho en el borde del control Weather Data In y seleccione Open Type Def.
 Modifique el panel frontal como en la figura 5-18.
Figura 5-18. Definición tipo Weather Data con unidades de temperatura

1 Enum (Silver)—Coloque el enum en el cluster y nómbrelo Units. Haga clic con el botón derecho en el enum y seleccione Edit Items. Cree un ítem para
Celsius y Fahrenheit.
 Guarde la definición tipo Weather Data y la ventana editora de controles.

LabVIEW Core 1 Ejercicios © National Instruments | 5-25


Lección 5 Creando y aprovechando estructuras [Link] | 5-26

 Note que el control Weather Data In y el indicador Weather Data Out en el VI Temperature Warnings ha sido actualizado con los cambios hechos a la
definición tipo Weather Data. Organice el panel frontal del VI como en la figura 5-19.
Figura 5-19. VI Temperature Warnings con controles e indicadores Type Def

7. Guarde el VI Temperature Warnings.


Prueba
1. Use el VI SubVI Tester para probar el VI Temperature Warnings modificado como subVIs.

 Abra el VI SubVI Tester desde la ventana Project Explorer.


 En el panel frontal, haga clic con el botón derecho en el cluster Weather Data Out y seleccione Replace»Select a Control en el menú contextual.

 Seleccione el archivo Weather [Link] en el directorio <Exercises>\LabVIEW Core 1\Weather Warnings.


 En el diagrama de bloques del VI SubVI Tester, elimine los siguientes ítems:
• Inicialice la constante Weather cableada al registro de desplazamiento izquierdo

• Cualquier cable roto. Presione <Ctrl-B> para limpiar todos los cables rotos.

LabVIEW Core 1 Ejercicios © National Instruments | 5-27


Lección 5 Creando y aprovechando estructuras [Link] | 5-28

 Modifique el VI SubVI Tester para trabajar con el VI Temperature Warnings que ahora usa definiciones tipo como en la figura 5-20.
Figura 5-20. Diagrama de bloques modificado del VI SubVI Tester para probar el subVI Temperature Warnings

1 3 2

1 Inicialice el registro de desplazamiento—Haga clic con el botón derecho en el registro de desplazamiento y seleccione Create»Constant para inicializar el
registro de desplazamiento. Haga clic con el botón derecho en el cluster y seleccione View Cluster as Icon.
2 Bundle By Name—Expanda el nodo para mostrar cuatro elementos. Use la herramienta operacional para seleccionar Units.
3 Cablee la constante Units (0:Celsius) al elemento Units de la función Bundle By Name.
 Disponga el panel frontal de la figura 5-21.
Figura 5-21. Panel frontal del VI SubVI Tester modificado con Type Def

 Ingrese valores en los controles Max Temperature y Min Temperature.


2. Ejecute el VI y verifique que los valores mostrados en el indicador Weather Data Out son correctos.

3. Guarde y cierre el VI.

Reto
En este ejercicio reto, se modifica el VI Windspeed Warnings para aumentar la aplicación Weather Station. Luego se modifica el VI Windspeed Warnings como un
subVI.

1. Añada el VI Windspeed Warning al proyecto Weather Station.

 En ventana Project Explorer, haga clic con el botón derecho en My Computer y seleccione Add»File desde el menú contextual.

LabVIEW Core 1 Ejercicios © National Instruments | 5-29


Lección 5 Creando y aprovechando estructuras [Link] | 5-30

 Navegue al fichero <Exercises>LabVIEW Core 1\Weather Warnings\Support VIs y seleccione Windspeed [Link].
2. Abra el VI Windspeed Warnings.

3. Copie el cluster Weather Data In del VI Temperature Warnings al VI Windspeed Warnings.

4. Haga clic con el botón derecho en el cluster Weather Data In y seleccione Open Type Def en el menú contextual.

5. Modifique la definición tipo Weather Data con controles de velocidad de viento como en la figura 5-22.
Figura 5-22. Controles e indicadores de la definición tipo del VI Windspeed Warnings
6. Modifique el diagrama de bloques del VI Windspeed Warnings para usar la nueva definición tipo Weather Data en lugar de controles e indicadores individuales,
como en la figura 5-23.
Figura 5-23. VI Windspeed Warnings usando definiciones tipo

LabVIEW Core 1 Ejercicios © National Instruments | 5-31


Lección 5 Creando y aprovechando estructuras [Link] | 5-32

7. Modifique el VI SubVI Tester para trabajar con el VI Windspeed Warnings, como en la figura 5-24.
Figura 5-24. Diagrama de bloques modificado del VI SubVI Tester para probar el subVI TWindspeed Warnings

8. Ejecute el VI SubVI Tester y verifique que los valores mostrados en el indicador Weather Data Out son correctos.

9. Salve y cierre el VI y el proyecto.

Fin del ejercicio 5-3


6
Administrando archivos
Complete los ejercicios en esta lección para reforzar los conceptos que aprendió en la lección 6 de LabVIEW Core 1.

Ejercicio
Ejercicio 6-1 Concepto: VI Spreadsheet Example
Ejercicio 6-2 VI Temperature Monitor—Registro de datos

LabVIEW Core 1 Ejercicios © National Instruments | 6-1


Lección 6 Administrando archivos y recursos hardware [Link] | 6-2

Ejercicio 6-1 Concepto: VI Spreadsheet Example

Objetivo
Guardar un array 2D en un fichero de texto para que una aplicación de hoja de cálculo pueda acceder al fichero y explorar cómo mostrar datos numéricos en una tabla.

Descripción
Complete los pasos siguientes para examinar un VI que guarda arrays numéricos en un fichero con un formato al que puede acceder con una hoja de cálculo.

1. Abra Spreadsheet [Link] en el directorio <Exercises>\LabVIEW Core 1\Spreadsheet Example.

2. Abra el Spreadsheet [Link] desde la ventana Project Explorer.

El VI Spreadsheet Example genera datos sinusoidales, cosenoidales y ruido para 128 puntos. Luego el VI almacena esta información en un array de 2D que es
de 128 filas × 3 columnas. El indicador Table en la figura 6-1 muestra los datos de tres columnas (Sine, Noise, and Cosine) para las primeras 14 filas del array.
El indicador Waveform Graph muestra las curvas de cada columna. Finalmente, el VI Spreadsheet Example guarda la información en un archivo de registro.
Figura 6-1. Panel frontal del VI Spreadsheet Example
3. Ejecute el VI.

4. Guarde el archivo, cuando se le indique, como [Link] en el directorio <Exercises>\LabVIEW Core 1\Spreadsheet Example y haga clic en el
botón OK. Este archivo se examinará más tarde.

5. Abra y examine el diagrama de bloques de este VI.


Figura 6-2. Diagrama de bloques del VI Spreadsheet Example

• VI Sine Pattern—Devuelve un array numérico de 128 elementos que contienen un patrón sinusoidal. La constante 90.0, en la segunda copia del VI Sine
Pattern, especifica la fase del modelo sinusoidal la cual genera el modelo cosenoidal.

• VI Uniform White Noise—Devuelve un array numérico de 128 elementos que contienen un patrón de ruido.

• La función Build Array—Crea el siguiente array 2D a partir del array sinusoidal, array de ruido y array cosenoidal.

Array sinusoidal …
Array de ruido …
Array cosenoidal …

LabVIEW Core 1 Ejercicios © National Instruments | 6-3


Lección 6 Administrando archivos y recursos hardware [Link] | 6-4

• La función Transpose 2D Array—Reordena los elementos del array 2D para que el elemento [i,j] se convierta en el elemento [j,i], de este modo.

S N C

… … …

• El VI Write To Spreadsheet File—Convierte el array 2D en una cadena de caracteres de hoja de cálculo y escribe la cadena de caracteres en un archivo. La
cadena de caracteres tiene el siguiente formato, donde una flecha () indica una tabulación y un símbolo de párrafo (¶) indica el final de un carácter de línea.

S N C
  ¶

  ¶
  ¶
… … …

  ¶

• La función Number To Fractional String—Convierte un array de valores numéricos en un array de cadenas de caracteres que se muestra en la tabla.

6. Cierre el VI. No guarde los cambios.

Nota Este ejemplo almacena sólo tres arrays en el fichero. Para incluir más arrays, aumente el número de entradas en la función Build Array.
7. Abra el fichero [Link] con un procesador de texto, una aplicación de hoja de cálculo o un editor de texto y vea su contenido.

 Abra un procesador de texto, una aplicación de hoja de cálculo o un editor de texto, como el Bloc de notas o WordPad.

 Abra [Link]. Los datos de la forma de onda sinusoidal aparecen en la primera columna, los datos de la forma de onda aleatoria aparecen en la segunda
columna y los datos de la forma de onda cosenoidal aparecen en la tercera columna.

8. Salga del procesador de texto o de la aplicación de hoja de cálculo y vuelva a LabVIEW.

Fin del ejercicio 6-1

LabVIEW Core 1 Ejercicios © National Instruments | 6-5


Lección 6 Administrando archivos y recursos hardware [Link] | 6-6

Ejercicio 6-2 VI Temperature Monitor—Registro de datos

Objetivo
Modificar un VI para crear un fichero ASCII usando el flujo continuo de datos a disco.

Descripción
Ha recibido un VI que representa la temperatura actual y la media de las tres últimas temperaturas. Modifique el VI para registrar la temperatura actual en un fichero
ASCII.

Implementación
1. AbraTemperature [Link] en el directorio <Exercises>\LabVIEW Core 1\Temperature Monitor.

2. AbraTemperature [Link] de la ventana Project Explorer. Este VI fue creado en el ejercicio 3-5
3. Modifique el diagrama de bloques como en la figura 6-3.
Figura 6-3. Diagrama de bloques del VI Temperature Monitor with Logging

1 3 2 4 5 6 7

1 Open/Create/Replace File—Crea o reemplaza un archivo existente por el registro de datos. Haga clic con el botón derecho en la entrada operation y
seleccione Create»Constant. Configure la constante en replace or create.
2 Format Into String—Cambia el formato de la temperatura a una cadena de caracteres. Expanda el nodo para que acepte dos entradas.
3 End of Line Constant—Añade una constante de final-de-línea después de cada trozo de datos para que los valores sean separados en líneas.
4 Write to Binary File—Escribe datos binarios en un archivo.
5 Or—Detiene el VI cuando un error ocurre o cuando el botón Stop Button es presionado.
6 Close File—Cierra el archivo de registro de datos o lo reemplaza cuando el VI comienza a ejecutarse.
7 Simple Error Handler—Indica si ocurrió algún error. Si un error ocurrió, este VI devuelve una descripción del error y opcionalmente muestra un cuadro de
diálogo.

LabVIEW Core 1 Ejercicios © National Instruments | 6-7


Lección 6 Administrando archivos y recursos hardware [Link] | 6-8

4. Configure la función Format Into String como en la figura 6-4.


Figura 6-4. Configurando la función Format Into String

1
2

1 Format Into String—Haga doble clic en la función Format Into String para abrir el cuadro de diálogo Edit Format String.
2 Use specified precision—Coloque una marca en la casilla de verificación e ingrese un 3 en el cuadro de texto para especificar que los datos tienen una
precisión coma flotante de tres dígitos.
3 Corresponding format string—Este cuadro de texto automáticamente se actualiza basado en la configuración que especifique. Tras hacer clic en el botón OK
en el cuadro de diálogo, el diagrama de bloques se actualiza para mostrar el formato de la cadena de caracteres.
4 Botón Help—Haga clic en el botón Help para más información acerca de elementos más específicos de formato, como %3f y opciones de configuración de la
función Format Into String.

5. Pruebe el VI.

 Ejecute el VI.
 Dé al fichero de texto un nombre y una ubicación.
 Haga clic en el botón Stop luego que el VI haya estado ejecutándose por algunas muestras.
 Abra el fichero de texto creado y explórelo.
6. Cierre el VI y el fichero de texto tras terminar.
Reto
Objetivo 1: Crear un archivo de registro con un solo encabezado
Para mejorar la utilización del archivo de registro, se le pide incluir un encabezado al inicio del archivo de registro como en la figura 6-5.
Figura 6-5. Archivo de registro con encabezado del VI Temperature Monitor

Modifique el VI Temperature Monitor para incluir el encabezado Current Temperature.


Consejo:

• Debido a que el encabezado se escribe solo una vez al archivo de texto, se debe escribir al encabezado por fuera del bucle While.

• Use las funciones en la paleta Strings para manipular y dar formato a una cadena de caracteres para usarla en un procesador de texto o en una aplicación de
hoja de cálculo.

LabVIEW Core 1 Ejercicios © National Instruments | 6-9


Lección 6 Administrando archivos y recursos hardware [Link] | 6-10

Objetivo 2: Cree un archivo de registro con dos columnas y encabezados


Modifique el VI para escribir ambas la temperatura actual y la temperatura promedio al archivo de registro. Separe las columnas de los datos con un caracter de
tabulación y coloque el encabezado al inicio de cada columna como en la figura 6-6.
Figura 6-6. Archivo de registro con encabezados y dos columnas del VI Temperature Monitor

1 2

1 Columnas tabuladas en un editor de texto. 2 Columnas tabuladas en una aplicación de hoja de cálculo.

Consejo:

• Use una función Format Into String expandida para convertir y cambiar el formato de los datos a cadenas de caracteres.

Fin del ejercicio 6-2


Usando algoritmos de máquinas de estado y secuenciales
7
Complete el ejercicio en esta lección para reforzar los conceptos que aprendió en la lección 7 de LabVIEW Core 1.

Ejercicio
Ejercicio 7-1 VI State Machine

LabVIEW Core 1 Ejercicios © National Instruments | 7-1


Lección 7 Usando algoritmos de máquinas de estado y secuenciales [Link] | 7-2

Ejercicio 7-1 VI State Machine

Objetivo
Crear un VI que implemente una máquina de estados usando una definición de tipo enum.

Escenario
Debe diseñar un VI para una máquina de estados de interfaz de usuario. El VI adquiere una temperatura cada medio segundo, analiza cada temperatura para determinar
si es demasiado alta o baja y alerta al usuario si hay peligro de golpe de calor o congelación. El programa registra los datos si hay una advertencia. Si el usuario no
ha hecho clic en el botón de parada, se repetirá todo el proceso. La máquina de estados también debe permitir la expansión, ya que pueden añadirse procesos en el
futuro.

Diseño
Use el siguiente diagrama de flujo y la lista de estados para crear el VI de este ejercicio.
Diagrama de flujo
El diagrama de flujo en la figura 7-1 ilustra el diseño por flujo de datos.
Figura 7-1. Diagrama de flujo del VI Temperature Warnings

Initialize

Acquistion

Time Elapsed = TRUE


and
Stop = FALSE

Warning = TRUE
Analysis

Data log

Time Elapsed = FALSE


and
Stop = FALSE
Time
Check
Warning = FALSE

Stop = TRUE

LabVIEW Core 1 Ejercicios © National Instruments | 7-3


Lección 7 Usando algoritmos de máquinas de estado y secuenciales [Link] | 7-4

Transiciones de estado
La siguiente tabla describe los estados de esta máquina de estados.

Estado Descripción Siguiente estado


Adquisición Establece el tiempo en cero, adquiera datos del sensor de Análisis
temperatura
Análisis Lee los controles del panel frontal y determina el nivel de alerta Registro de datos si ocurre una alarma, comprobar el
tiempo si no hay alarmas
Registro de datos Registrar los datos en un archivo ASCII delimitado con Comprobar el tiempo
tabulaciones
Comprobar el tiempo Comprobar si el tiempo es superior o igual a 0,5 segundos Adquisición si ha transcurrido el tiempo, comprobar el
tiempo si no ha transcurrido el tiempo

Implementación
1. Abra Weather [Link] en el directorio <Exercises>\LabVIEW Core 1\Weather Station.

2. Abra Weather Station [Link] de la ventana Project Explorer.


La figura 7-2 muestra el panel frontal del VI Weather Station UI que se proporcionó. Modifique el diagrama de bloques para crear una máquina de estados para
la aplicación Weather Station.
Figura 7-2. Ventana del panel frontal del VI Weather Station UI

LabVIEW Core 1 Ejercicios © National Instruments | 7-5


Lección 7 Usando algoritmos de máquinas de estado y secuenciales [Link] | 7-6

La figura 7-3 muestra el punto de partida del diagrama de bloques para el VI Weather Station UI. Edite el diagrama de bloques para implementar una máquina
de estados para la aplicación Weather Station.
Figura 7-3. Inicio del diagrama de bloques del VI Weather Station UI

1 Use estos controles e indicadores para programar diferentes casos.

3. Cree una nueva definición tipo para controlar la aplicación Weather Station.

 Abra el diagrama de bloques y cree una constante Enum a la izquierda del bucle While.

 Escriba Acquisition en la constante.


 Haga clic con el botón derecho en la constante y seleccione Edit Items en el menú contextual.
 Añada los ítems mostrados en la figura 7-4 y haga clic en OK.
Figura 7-4. Estados de la definición tipo Weather Station

 Haga clic con el botón derecho en la constante enum en el diagrama de bloques y seleccione Make Type Def.
4. Modifique la nueva definición tipo y añádala al proyecto Weather Station.

 Haga clic con el botón derecho en la constante enum y seleccione Open Type Def.

 Cambie la etiqueta en el control Enum a States.


 Guarde la definición tipo como Weather Station [Link] en el directorio <Exercises>\LabVIEW Core 1\Weather
Station\Supporting Files.

LabVIEW Core 1 Ejercicios © National Instruments | 7-7


Lección 7 Usando algoritmos de máquinas de estado y secuenciales [Link] | 7-8

 Cierre la ventana Control Editor.


 En ventana Project Explorer, note que el Weather Station [Link] ha sido agregado a su carpeta Supporting Files debido a que esa carpeta es una carpeta
auto-populada.

5. Controle la máquina de estados con un enum definición tipo y actualice el marco como en la figura 7-5.
Figura 7-5. Diagrama de bloques del VI Weather Station UI

1 3

1 Registro de desplazamiento—Haga clic con el botón derecho en el bucle While y seleccione Add Shift Register.
2 Definición tipo constante enum—Haga clic con el botón derecho y seleccione Visible Items»Label. Cambie la etiqueta a Beginning State. Cablee la
constante Beginning State al registro de desplazamiento para inicializar el registro de desplazamiento al estado Acquisition. Cablee el registro de
desplazamiento al selector de casos de la estructura Case.
3 Agregue más casos—Haga clic con el botón derecho en la estructura Case y seleccione Add Case for Every Value para añadir un caso por cada elemento
del enum.
4 Weather Data In—Arrastre el Weather [Link] de la ventana Project Explorer al diagrama de bloques para crear una constante de cluster definición tipo.
Haga clic con el botón derecho en el cluster y seleccione View Cluster As Icon.
5 Registro de desplazamiento—Coloque un registro de desplazamiento en el bucle While y cablee la constante Weather Data In a él.

Nota Luego que termina de cablear el caso Acquisition en el paso 6, algunos túneles están vacios debido a que no todos los casos han sido cableados aún.
6. Complete el estado Acquisition como en la figura 7-6.
Figura 7-6. Estado Acquisition VI Weather Station UI

1 2 3 4

1 Thermometer o Thermometer (Demo)—Arrastre uno de estos VIs de la carpeta Shared Files en la ventana Project Explorer al diagrama de bloques. Arrastre
el VI Thermometer si tiene hardware y arrastre el VI Thermometer (Demo) si no tiene hardware.
2 Temperature History—Mueva este indicador al estado Acquisition de la estructura Case.
3 Bundle By Name—Cablee la salida Temperature Value del VI Thermometer a la entrada Current Temperature.
4 Next State enum—<Ctrl>-haga clic en enum Beginning State y arrastre una copia al caso Acquisition. Cambie el nombre de esta copia de la definición tipo
Weather Station States a Next State. Establezca el enum en Analysis y cabléelo a través de un túnel en la estructura Case al registro de desplazamiento
en el bucle While.
5 Constante True—Cree una constante True y cabléela a través de la estructura Case al registro de desplazamiento Elapsed Time. La constante True reinicia
el contador Elapsed Time cada vez que el VI ejecuta el caso Acquisition.

LabVIEW Core 1 Ejercicios © National Instruments | 7-9


Lección 7 Usando algoritmos de máquinas de estado y secuenciales [Link] | 7-10

7. Complete el caso Analysis como en la figura 7-7.


Figura 7-7. VI Weather Station UI—Caso Analysis

1 2 3 4 7 5

1 Upper Limit y Lower Limit—Mueva estos controles numéricos fuera del bucle While.
2 Bundle By Name—Reemplace los ítems Max Temperature y Min Temperature con los valores de los controles Upper Limit y Lower Limit. La función Bundle
By Name hace posible cablear los valores Upper Limit y Lower Limit a la entrada Weather Data In del VI Temperature Warnings.
3 Temperature Warnings—Arrastre el VI Temperature Warnings de la carpeta Supporting Files en la ventana Project Explorer.
4 Unbundle By Name—Devuelve el valor de un ítem específico de un cluster.
5 Select—Determina cual estado se ejecutará a continuación dependiendo si ocurre una alerta o no.
6 Weather Station States—Cablee dos copias de la definición tipo Weather Station States a la función Select. Puede crear estas copias del enum Beginning
State.
6 Warning—Mueva este indicador de afuera del bucle While.
8. Complete el caso Data Log como en la figura 7-8.
Figura 7-8. VI Weather Station UI—Caso Data Log

1 2 3 4

5 6

1 Unbundle By Name—Devuelve el valor de un ítem específico de un cluster.


2 Constant Tab—Inserta una tabulación en la cadena de caracteres. El archivo de registro que creó contiene tabulaciones entre valores.
3 Constante End of Line—Inserta un valor de fin de línea específico de la plataforma al final de la cadena de caracteres. El archivo de registro que creó usa
constantes de fin de línea para insertar cortes entre los datos
4 Format Into String—Expanda el nodo para aceptar ocho entradas.
5 Write to Text File—Escribe el texto que le acaba de de dar formato a un archivo de registro.
6 Next State—Crea una copia del enum Weather Station States, la etiqueta Next State y establece el siguiente estado como Time Check.

LabVIEW Core 1 Ejercicios © National Instruments | 7-11


Lección 7 Usando algoritmos de máquinas de estado y secuenciales [Link] | 7-12

9. Complete el caso Time Check como en la figura 7-9.


Figura 7-9. VI Weather Station UI—Caso Time Check

1 2 4

3 5

1 Next State—Cablee dos copias de la definición tipo Weather Station States a la función Select.
2 Select—Determina cual estado se ejecutará a continuación dependiendo si el tiempo ha pasado o no.
3 Stop Button—Mueva la terminal Stop Button de afuera del bucle While. Cablee la terminal Stop Button a la función Or afuera de la estructura Case.
4 Cable Next State—Cablee el túnel del cable Next State al registro de desplazamiento.
5 Use predeterminados si no están cableados—Haga clic con el botón derecho en estos túneles y seleccione Use Default If Unwired.

10. Guarde y cierre el VI.


Prueba
1. Ejecute el VI.

 Dé un nombre al archivo de registro cuando se lo indique.


 Ingrese los valores de los controles Upper Limit y Lower Limit y observe el comportamiento del VI. ¿Se comporta como se esperaba?
2. Detenga el VI.

3. Busque el archivo Weather Warning [Link] y ábralo.

4. Note los cambios en los valores superiores e inferiores y la colocación de las tabulaciones y cortes de líneas.

5. Cierre el archivo de registro.

6. Salve y cierre el VI y el proyecto.

Fin del ejercicio 7-1

LabVIEW Core 1 Ejercicios © National Instruments | 7-13


Resolviendo desafíos de flujo de datos usando variables
8
Complete el ejercicio en esta lección para reforzar los conceptos que aprendió en la lección 8 de LabVIEW Core 1.

Ejercicio
Ejercicio 8-1 VI Weather Station UI con variables locales

LabVIEW Core 1 Ejercicios © National Instruments | 8-1


Lección 8 Resolviendo desafíos de flujo de datos usando variables [Link] | 8-2

Ejercicio 8-1 VI Weather Station UI con variables locales

Objetivo
Usar una variable local para escribir en un control y leer desde él.

Escenario
Tiene un proyecto de LabVIEW que implementa una estación meteorológica de temperatura. La estación meteorológica adquiere una temperatura cada medio
segundo, analiza cada temperatura para determinar si es demasiado alta o baja y alerta al usuario si hay peligro de golpe de calor o congelación. El VI registra los
datos si hay una alarma.

Dos controles del panel frontal determinan los puntos de ajuste: el límite superior de temperatura y el inferior. Sin embargo, nada impide al usuario configurar un
límite inferior que sea mayor que el límite superior.

Use una variable local para establecer el límite inferior menor que el límite superior si el usuario configura un límite inferior que sea mayor que el límite superior.

Diseño
Su tarea es modificar el VI que creó en el ejercicio 7-1 para que el límite inferior sea menor que el límite superior cuando sea necesario.

Definiciones de estados
La siguiente tabla describe los estados de la máquina de estados.

Estado Descripción Siguiente estado

Adquisición Establece el tiempo en cero, adquiera datos del sensor de Análisis


temperatura
Análisis Lee los controles del panel frontal y determina el nivel de alerta Registro de datos si ocurre una alarma, comprobar el tiempo si no hay
alarmas
Estado Descripción Siguiente estado

Registro de datos Registrar los datos en un archivo ASCII delimitado con Comprobar el tiempo
tabulaciones
Comprobar el Comprobar si el tiempo es superior o igual a 0,5 segundos Adquisición si ha transcurrido el tiempo, comprobar el tiempo si no ha
tiempo transcurrido el tiempo

El cambio del valor del control de límite de temperatura inferior debe suceder después de que el usuario haya introducido el valor pero antes de que el valor determine
el nivel de alarma. Por lo tanto, realice modificaciones en el VI en el estado Adquisición o Análisis o coloque un nuevo estado entre ambos.

Antes de determinar qué opción usar, observe el contenido de los estados Adquisición y Análisis:

 Abra Weather [Link] en el directorio <Exercises>\LabVIEW Core 1\Weather Station.


 Abra Weather Station [Link] de la ventana Project Explorer.
 Revise el contenido de los estados Adquisición y Análisis, que corresponden con los casos Acquisition y Analysis de la estructura Case.

Opciones de diseño
Tiene tres opciones de diseño distintas para modificar este proyecto.

Opción Descripción Ventajas/Inconvenientes

1 Inserte una estructura Case en el estado Adquisición para Mal diseño: El estado de adquisición tiene otra tarea añadida, en lugar
reiniciar los controles antes de que una variable local escriba los de centrarse sólo en la adquisición.
valores en el cluster.
2 Inserte un nuevo estado en la máquina de estados que Capacidad de control cuando ocurre el estado
compruebe los controles y los reinicie si es necesario.
3 Modifique el subVI Determine Warnings para restablecer los Fácil de implementar porque la funcionalidad ya se encuentra
controles. parcialmente. Sin embargo, si se usa la funcionalidad actual, siempre se
pierde un conjunto de datos al reiniciar el control de límite inferior.

Este ejercicio implementa la Opción 2 como solución.

LabVIEW Core 1 Ejercicios © National Instruments | 8-3


Lección 8 Resolviendo desafíos de flujo de datos usando variables [Link] | 8-4

Nuevas definiciones de estado para la opción 2


Lea los controles de límite superior e inferior en el estado Range Check, en lugar del estado Analysis. La tabla 8-1 describe los estados en la máquina de estados
nueva. Los estados Acquisition, Analysis, Data Log y Time Check ya habían sido implementados. En este ejercicio, se agregará el estado Range Check. El VI lee los
controles upper Limit y Lower Limit en el estado Range Check, en lugar del estado Analysis. El estado Range Check también reinicia el control Lower Limit menor
que el límite superior si el control Upper Limit es menor que el límite menor.

Tabla 8-1. Descripciones de los estados para Opción 2


Estado Descripción Siguiente estado

Adquisición Adquirir datos desde el sensor de temperatura en el canal Comprobación de rango


AI0 y leer los controles del panel frontal
Comprobación de rango Leer los controles del panel frontal y configurar el límite Análisis
inferior a 1 menos que el límite superior si éste es inferior
que el límite inferior
Análisis Determinar el nivel de alarmas Registra los datos si hay una advertencia.
Comprobar el tiempo si no hay ninguna advertencia
Registro de datos Registrar los datos en un archivo ASCII delimitado con Comprobar el tiempo
tabulaciones
Comprobar el tiempo Comprobar si el tiempo es superior o igual a 0,5 segundos Adquisición si el tiempo ha pasado
Comprobar el tiempo si el tiempo no ha pasado
Implementación
1. Si Weather [Link] no está abierto aún, ábralo desde el directorio <Exercises>\LabVIEW Core 1\Weather Station.

2. Añada el estado Range Check a la máquina de estados.

 Abra Weather Station [Link] de la ventana Project Explorer.


 Haga clic con el botón derecho en el control States y seleccione Edit Items en el menú contextual.
 Inserte un elemento y modifíquelo como en la tabla 8-2. No añada una lista vacía.
Tabla 8-2. Control enumerado de estado

Elemento Indicador digital

Adquisición 0
Comprobación de rango 1
Análisis 2
Registro de datos 3
Comprobar el tiempo 4

 Guarde y cierre el control.


 Abra Weather Station [Link] de la ventana Project Explorer.
 En el diagrama de bloques del VI Weather Station UI, haga clic con el botón derecho en la estructura Case de la máquina de estados y seleccione Add Case
for Every Value en el menú contextual. Como el control enumerado tiene un nuevo valor, aparecerá un nuevo caso en la estructura Case.

LabVIEW Core 1 Ejercicios © National Instruments | 8-5


Lección 8 Resolviendo desafíos de flujo de datos usando variables [Link] | 8-6

3. Establezca el enum Next State en el caso Acquisition a Range Check como en la figura 8-1.
Figura 8-1. VI Weather Station UI con variables locales—Estado Acquisition completo
4. Complete el caso Analysis como en la figura 8-2.
Figura 8-2. VI Weather Station UI con variables locales—Estado Analysis completo

1 Borre la función Bundle By Name y conecte el cable Weather Data directamente al VI Temperature Warnings. Presione <Ctrl-B> para borrar los cables rotos de
los controles Upper Limit y Lower Limit.
2 Mueva los controles Upper Limit y Lower Limit fuera del bucle While.

5. Complete el caso Range Check True como en la figura 8-3.

LabVIEW Core 1 Ejercicios © National Instruments | 8-7


Lección 8 Resolviendo desafíos de flujo de datos usando variables [Link] | 8-8

Cuando el valor del control Upper Limit es menor que o igual que el valor del control Lower Limit, use una variable local para escribir un valor, límite superior
-1, al control Lower Limit.
Figura 8-3. VI Weather Station UI con variables locales—Caso Range Check True

3 4 5 6 7

1 Estructura Case—Coloque una estructura Case dentro del caso Range Check.
2 Mueva los controles Upper Limit y Lower Limit fuera del caso Range Check.
3 Less or Equal?—Compara los valores de los límites superior e inferior. Debido a que la función Less or Equal? está cableada al selector de casos de la
estructura Case interna, cuando el límite superior es menor o igual al límite inferior, el caso True se ejecuta.
4 Decrement—Subtrae 1 del valor del control Upper Limit para que el caso True escribe un valor menor al control Lower Limit.
5 Variable local Lower Limit—Haga clic con el botón derecho en el control Lower Limit y seleccione Create»Local Variable. Coloque la variable local en el caso
True.
6 Bundle by Name—Expanda la función para mostrar dos elementos y use la herramienta operacional para seleccionar los elementos correctos del cluster.
7 Next State—Cree una copia del control type def Weather Station States y establezca el siguiente estado en Analysis.
6. Complete el caso Range Check False como en la figura 8-4.

Si el valor del control Upper Limit es menor o igual que el valor del control Lower Limit, el caso False se ejecuta y los valores son pasados, sin cambios, a
través del cluster de temperatura.
Figura 8-4. VI Weather Station UI con variables locales—Caso Range Check False

7. Cierre el VI y el proyecto.

LabVIEW Core 1 Ejercicios © National Instruments | 8-9


Lección 8 Resolviendo desafíos de flujo de datos usando variables [Link] | 8-10

Prueba
1. Ejecute el VI.

 Ingrese el nombre del archivo de registro cuando se le indique.


 Escriba un valor en el control Upper Limit que sea inferior al valor del control Lower Limit. ¿Actúa el VI como esperaba?
2. Detenga el VI tras terminar.

3. Cierre el VI y el proyecto.

Fin del ejercicio 8-1


Técnicas de E/S de fichero
9
Ejercicios
Ejercicio 9-1 Crear rutas de archivos y carpetas
Ejercicio 9-2 Escribir múltiples canales con encabezados sencillos

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


Lección 9 Técnicas de E/S de fichero [Link] | 9-2

Ejercicio 9-1 Crear rutas de archivos y carpetas

Objetivo
Modificar un VI con el fin de crear programáticamente una carpeta si esta no existe o reemplazarla si ya existe.

Implementación
1. Abra el proyecto Create folder and [Link] en el directorio <Exercises>\LabVIEW Core 1\Create folder and file.

2. Haga clic con el botón derecho en Create folder and [Link] en la ventana del Project Explorer y seleccione Explore. Observe los archivos en la carpeta y
observe que no hay ninguna carpeta llamada Logged Data.

3. Abra el VI Create Data [Link] desde la ventana Project Explorer.


4. Examine el diagrama de bloques como en la Figura 4-1.
Figura 4-1. Diagrama de bloques del VI Create Data File — Inicio

1 2 3 4

6 7

1 Application Directory — Retorna la ruta al directorio que contiene la aplicación. Esto es útil porque está utilizando un subVI para crear el archivo de datos.
2 Build Path — Añade “Logged Data” al nombre de la ruta del archivo.
3 Create Folder — Si la carpeta Logged Data no existe, esta función la crea.
4 Build Path — Esta instancia de la función Build Path añade el nombre de archivo auto generado Acquired Data <Date><Time>.txt a la ruta del archivo.
5 Open/Create/Replace File — Reemplaza o crea el archivo.
6 Format Date/Time String — Genera una cadena de caracteres que contiene la fecha y la hora actual.
7 Format Into String — Concatena las cadenas de caracteres para crear el nombre del archivo.

5. Utilice la ayuda contextual y la ayuda detallada para la función Format Date/Time String y para identificar el significado de los códigos de formato relacionados
con el tiempo utilizados en este VI.

 Abra la función Context Help si aún no está abierta.


 Posicione el cursor sobre la función Format Date/Time String y haga clic en el enlace Detailed Help en la ventana de Context Help.

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


Lección 9 Técnicas de E/S de fichero [Link] | 9-4

 Lea la ayuda de la función Format Date/Time String, para comprender el significado de los siguientes códigos:
• %b

• %d

• %y

• %H

• %M

6. Ejecute el Vi para comprobar la funcionalidad.

 Habilite la opción “Highlighting Execution”


 Ejecutar el VI una vez y ver el flujo de datos en el diagrama de bloques.

 Abra el directorio <Exercises>\LabVIEW Core 1\Create folder and file y note que una nueva carpeta llamada Logged Data ha sido creada
y contiene un archivo vacío. Compruebe que el nombre del archivo incluye los componentes de fecha y hora, usando los códigos utilizados en el VI.

7. Ejecute el VI nuevamente.

 Note que un error ocurre en la función Create Folder.


 Abra el panel frontal, haga clic con el botón derecho en la salida del cluster de error y seleccione Explain Error. El código de error 10 (Duplicate Path) es
retornado, debido a que la carpeta ya existe.

8. Modifique el código para verificar que la carpeta Logged Data ya existe, como en la figura 4-2.

9. Solamente si la carpeta no existe, cree una. Por lo tanto, se encierra la función Create Folder en la estructura Case. Se utiliza la salida del VI Check if File or
Folder Exists para llamar condicionalmente a la función Create Folder.
10. Modifique el diagrama de bloques para crear condicionalmente la carpeta.
Figura 4-2. Diagrama de bloques del VI Create Data File — Completo

1 2

1 VI Check if File or Folder Exists — Comprueba si el archivo o la carpeta existen y envía la información a la función Create Folder.
2 Estructura Case — Añada una estructura Case alrededor de la función Create Folder y haga clic en el borde de la estructura Case y seleccione Make this Case
False. Esta carpeta es creada solo si no existe.
 Cablee la referencia y los cables de error a través del caso True.
11. Guarde el VI y ejecútelo nuevamente. Note que se crea el nuevo archivo .txt y que el VI no retorna ningún error.

Fin del ejercicio 9-1

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


Lección 9 Técnicas de E/S de fichero [Link] | 9-6

Ejercicio 9-2 Escribir múltiples canales con encabezados sencillos

Objetivo
Construir VIs coherentes, modulares y de fácil lectura que le permitan a la aplicación tener escalabilidad y ser de fácil mantenimiento.

Los arrays en LabVIEW almacenan canales en filas y los archivos de texto típicamente almacenan el canal de datos en columnas (por ejemplo, Excel usualmente
almacena datos en columnas)

Utilice las funciones de LabVIEW para convertir fácilmente arrays numéricos en cadenas de caracteres.

Implementación
1. Abra Write Multiple Channels with Simple [Link] desde el directorio <Exercises>\LabVIEW Core 1\File IO
-MultiChannel with Header.

2. Abra Write Multiple Channels with Simple [Link] desde la ventana Project Explorer, y abra el diagrama de bloques.
Este Vi utiliza varios subVIs para hacer más modular y más legible el código. En este ejercicio se completará el VI Format File Property y el VI MultiChannel
Write.
Figura 4-3. Diagrama de bloques del VI Write Multiple Channels with Simple Header.

2 3

1 VI Format File Property — Se utilizan cuatro copias de este VI para agregar fecha, hora, nombre del operador, y número de serie UUT a la cabecera del archivo.
2 VI Create Data File — Como se vió en el ejercicio 9-1, este VI crea y guarda un archivo programáticamente.
3 VI MultiChannel Write

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


Lección 9 Técnicas de E/S de fichero [Link] | 9-8

3. En el diagrama de bloques del VI Write Multiple Channels with Simple Header, haga doble clic en el subVI Format File Property y modifique el diagrama de
bloques como se muestra en la figura 4-4.
Figura 4-4. Diagrama de bloques del VI Format File

1 2 3

1 Constante tabulación
2 Constante de final de línea
3 Format Into String — Haga doble clic en el nodo para abrir el cuadro de diálogo Edit String Format y seleccione Format string (abc) del menú desplegable
Selected operation (example)
 Haga clic en el botón Add New Operation tres veces para añadir tres operaciones más del tipo Format string a la lista Current format sequence.
 Haga clic en OK para cerrar el cuadro de diálogo.
 Observe que la función Format Into String ahora tiene cuatro entradas que corresponden a las cuatro operaciones que han añadido.

Nota Cuando se añaden operaciones a la secuencia de formato en el cuadro de diálogo Edit Format String, LabVIEW añade un espacio entre cada uno
de forma predeterminada. Se pueden eliminar los espacios en la sección Corresponding format string del cuadro de diálogo.

4. Cierre y guarde el VI Format File Property.


5. En el diagrama de bloques del VI Write Multiple Channels with Simple Header, haga doble clic en el subVI MultiChannel Write y complete el caso No Error,
como se muestra en la figura 4-5.
Figura 4-5. Diagrama de bloques del subVI MultiChannel Write

1 2

1 Transpose 2D Array — Debido a que LabVIEW almacena datos del array en las filas de forma predeterminada, esta función transpone el array para escribir los
datos en columnas.
2 Array to Spreadsheet String — Convierte el array a una tabla en forma de cadenas de caracteres.
3 Write to Text File — Escribe una cadena de caracteres o un array de cadenas de caracteres a líneas en un archivo.

6. Guarde y cierre el VI MultiChannel Write.

Prueba
1. Ejecute el VI Write Multiple Channels with Simple Header y cree un nuevo archivo de datos.

Este VI utiliza el VI Create Data File usado en el ejercicio 9-1, para programáticamente crear un directorio de Logged Data y el archivo de datos en el mismo
directorio que contiene la aplicación.

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


Lección 9 Técnicas de E/S de fichero [Link] | 9-10

2. Añada el directorio Logged Data a su proyecto.

 En la ventana del proyecto “Write Multiple Channels with Simple Header “, haga clic con el botón derecho en en My Computer y seleccione Add»Folder
(Auto-populating).

 Navegue a <Exercises>\LabVIEW Core 1\File IO - MultiChannel with Header\Logged Data y haga clic en el botón Select Folder.

 Abra el directorio Logged Data de la ventana de LabVIEW Project Explorer y note que contiene el archivo que se creó cuando se ejecutó el VI Save
Multiple Channels with Simple Header.

 Abra y examine el archivo generado en el directorio Logged Data.


3. Lea el archivo de datos.

 Ejecute el VI Read Multiple Channels with Simple Header.

 Navegue a <Exercises>\LabVIEW Core 1\File IO - MultiChannel with Header\Logged Data y seleccione el archivo de datos que acaba
de crear.

4. Guarde y cierre todos los VIs. Guarde y cierre el proyecto Write Multiple Channels with Simple Header.

También podría gustarte