SlideShare una empresa de Scribd logo
1 de 265
Descargar para leer sin conexión
CURSO BÁSICO DE LABVIEW 6i 
GERMÁN ANDRÉS HOLGUÍN LONDOÑO 
Profesor Auxiliar, Facultad de Ingeniería Eléctrica 
SANDRA MILENA PÉREZ LONDOÑO 
Docente Especial, Facultad de Ingeniería Eléctrica 
ÁLVARO ÁNGEL OROZCO GUTIÉRREZ 
Profesor Asociado, Facultad de Ingeniería Eléctrica 
UNIVERSIDAD TECNOLÓGICA DE PEREIRA
ISBN: 958-8065-33-X 
Facultad de Ingeniería Eléctrica 
Universidad Tecnológica de Pereira 
Impreso en Pereira, 2002.
TABLA DE CONTENIDO 
1. AMBIENTE DE DESARROLLO DE LabVIEW....................................................5 
1.1 OBJETIVO ....................................................................................................5 
1.2 DESCRIPCIÓN .............................................................................................5 
1.3 Panel Frontal.................................................................................................7 
1.4 Diagrama de bloques....................................................................................8 
1.5 Paleta de herramientas .................................................................................9 
1.6 Paleta de controles .....................................................................................11 
1.7 Paleta de funciones.....................................................................................14 
1.8 Barras de LabVIEW ....................................................................................18 
1.8.1 Barra de Menús....................................................................................18 
1.8.2 Barra de Herramientas del Panel Frontal .............................................22 
1.8.3 Barra de Herramientas del Diagrama ...................................................24 
1.9 Técnicas de cableado .................................................................................26 
1.10 Técnicas de Edición de diagramas............................................................29 
1.11 Técnicas de Navegación...........................................................................30 
1.12 Tipos de cables.........................................................................................32 
1.13 Tipos de datos numéricos .........................................................................33 
1.14 Tipos de Terminales..................................................................................34 
1.15 Ayudas de depuración ..............................................................................35 
1.16 AMBIENTE DE DESARROLLO INTEGRADO de LabVIEW.....................36 
1.16.1 Ejecución de LabVIEW.......................................................................36 
1.16.2 Paletas y ventanas de LabVIEW........................................................39 
1.16.3 Ubicación de los objetos.....................................................................41 
1.16.4 Edición de objetos del panel...............................................................47 
1.16.5 Cambiar el tamaño de los objetos ......................................................50 
1.16.6 Ejecución de una aplicación ...............................................................52
Curso Básico de LabVIEW 6i 
2 
1.16.7 Guardar un VI .....................................................................................53 
EJERCICIO 1.1 CREACIÓN DE UN NUEVO VI...............................................55 
1.17 EJERCICIOS PROPUESTOS...................................................................62 
2. ESTRUCTURAS...............................................................................................63 
2.1 OBJETIVO ..................................................................................................63 
2.2 DESCRIPCIÓN ...........................................................................................63 
2.3 Estructura “While Loop” ..............................................................................64 
EJERCICIO 2.1 Simulación de la lectura de una temperatura..........................66 
EJERCICIO 2.2 Generación de una onda seno................................................69 
2.4 Estructura “For Loop” ..................................................................................71 
EJERCICIO 2.3 Gráfica de 100 números aleatorios entre 10 y 50 ..................72 
EJERCICIO 2.4 SUMAR los números enteros entre 1 y 100...........................74 
EJERCICIO 2.5 promediAR los últimos dos datos aleatorios ..........................77 
2.5 Estructura “SEQUENCE” .............................................................................78 
EJERCICIO 2.6 Medir el tiempo que el pc tarda..............................................80 
2.6 Estructura “Case”.......................................................................................83 
EJERCICIO 2.7 Menú de opciones..................................................................85 
2.7 Estructura “Formula Node”.........................................................................92 
EJERCICIO 2.8 Utilización de los nodos de fórmula......................................93 
EJERCICIO 2.9 Realizar el ejercicio 1.1 con un nodo de fórmula...................95 
EJERCICIO 2.10 ejercicio 2.7 con un nodo de fórmula....................................96 
EJERCICIO 2.11 La ecuación cuadrática.........................................................98 
2.8 acciones mecánicas de los controles booleanos ......................................101 
2.8.1 Switch When Pressed ........................................................................103 
2.8.2 Switch When Released ......................................................................104 
2.8.3 Switch Until Released.........................................................................107 
2.8.4 Latch When Pressed ..........................................................................108 
2.8.5 Latch When Released ........................................................................110 
2.8.6 Latch Until Released ..........................................................................111 
EJERCICIO opcional 2.12 Aplicación de una estructura de secuencia..........112
Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 
3 
2.9 EJERCICIOS PROPUESTOS...................................................................117 
3. ARREGLOS Y CLUSTERS. ...........................................................................118 
3.1 OBJETIVO ................................................................................................118 
3.2 ARREGLOS..............................................................................................118 
EJERCICIO 3.1 De un arreglo 1D, generar las salidas REQUERIDAS..........132 
EJERCICIO 3.2 Extraer datos de un arreglo 2D.............................................135 
3.3 CLUSTERS...............................................................................................138 
EJERCICIO 3.3 Utilización de los clusters......................................................143 
3.4 EJERCICIOS PROPUESTOS...............................................................146 
4. GRAFICADORES...........................................................................................147 
4.1 OBJETIVO ................................................................................................147 
4.2 DESCRIPCIÓN .........................................................................................147 
4.3 GRAFICADOR WAVEFORM CHART.......................................................150 
EJERCICIO 4.1 Gráfico de escalares waveform chart....................................151 
EJERCICIO 4.2 Gráfico de vectores con waveform chart...............................155 
4.4 Tipo de Dato WDT ....................................................................................158 
EJERCICIO 4.3 waveform data type con waveform chart...............................161 
EJERCICIO 4.4 MúLTIPLES GRÁFICAS EN UN waveform chart ..................163 
EJERCICIO 4.5 cluster de escalares EN UNA waveform chart ......................165 
4.5 GRAFICADOR WAVEFORM GRAPH ......................................................167 
EJERCICIO 4.6 waveform graph utilizando datos WDT .................................169 
Ejercicio 4.7 waveform graph a partir de un cluster ........................................172 
Ejercicio 4.8 múltiples gráficos........................................................................173 
4.6 GRAFICADOR XY GRAPH.......................................................................175 
Ejercicio 4.9 XY Graph....................................................................................176 
EJERCICIO 4.10 Múltiples Gráficos en un XY Graph.....................................179 
4.7 EJERCICIOS PROPUESTOS...................................................................181 
5. SUBVIS, VARIABLES LOCALES Y GLOBALES............................................182 
5.1 ObjetivoS ..................................................................................................182 
5.2 SubVIs ......................................................................................................182
Curso Básico de LabVIEW 6i 
4 
5.3 Edición del Icono.......................................................................................184 
5.4 Los Conectores.........................................................................................187 
5.5 UTILIZACIÓN DE UN SUBVI....................................................................191 
EJERCICIO 5.1 Filtrado de una señal.............................................................193 
EJERCICIO 5.2 Menús en los Paneles frontales............................................201 
EJERCICIO 5.3 Cargar el panel frontal de un subVI durante la ejecución......204 
5.6 VARIABLES LOCALES.............................................................................210 
EJERCICIO 5.4 Graficar datos de distinta fuente en un mismo chart.............211 
5.7 VIARIABLES GLOBALES.........................................................................218 
Ejercicio 5.5 Variables Globales......................................................................221 
5.8 ejercicios propuestos.............................................................................223 
6. CADENAS Y ARCHIVOS. ..............................................................................224 
6.1 OBJETIVO ................................................................................................224 
6.2 CADENAS.................................................................................................224 
Ejercicio 6.1 CONCATENACIÓN, CONVERSIÓN Y BÚSQUEDA..................238 
EJERCICIO 6.2 DATOS DE UN MEDIDOR...................................................240 
6.3 ARCHIVOS ...............................................................................................243 
Funciones......................................................................................................244 
6.3.1 Escribir Datos en un Archivo .............................................................249 
Ejercicio 6.3 guardar datos en un archivo ascii...............................................249 
Ejercicio 6.4 CONSTRUIR UN ARCHIVO TIPO TAB DELIMITER..................251 
6.3.2 Leer un archivo...................................................................................254 
Ejercicio 6.5 RECUPERACION DE DATOS DE UN ARCHIVO ASCII............254 
Ejercicio 6.6 ESCRIBIR UN ARCHIVO BINARIO............................................256 
Ejercicio 6.7 RECUPERACIÓN DE datos de UN ARCHIVO BINARIO...........258 
6.4 Funciones de alto nivel para el manejo de archivos..................................259 
6.5 Ejercicios propuestos ................................................................................261
1. AMBIENTE DE DESARROLLO DE LabVIEW. 
1.1 OBJETIVO 
Estudiar los conceptos fundamentales, la terminología empleada y los métodos 
básicos de utilización del sistema de desarrollo LabVIEW. 
1.2 DESCRIPCIÓN 
LabVIEW (Laboratory Virtual Instrument Engineering Workbench) es un 
sistema de desarrollo basado en programación gráfica orientado a desarrollar 
aplicaciones para instrumentación que integra una serie de librerías para 
comunicación con instrumentos electrónicos como GPIB, RS232 o RS485 con 
tarjetas de adquisición de datos, sistemas de adquisición y acondicionamiento 
como VXI o SCXI, comunicaciones en redes TCP/IP, UDP, o en los estándares de 
software COM, OLE, DDE, DLL o ActiveX para Windows, así como AppleEvents 
para MacOS o PIPE para UNIX. 
Los programas realizados en LabVIEW se llaman instrumentos virtuales “VIs”, ya 
que tienen la apariencia de los instrumentos reales, sin embargo, poseen 
analogías con funciones provenientes de lenguajes de programación 
convencionales.
Curso Básico de LabVIEW 6i 
6 
Las principales características de los VIs se pueden describir como: 
Los VIs contienen una interface interactiva de usuario, la cual se llama panel 
frontal, ya que simula el panel de un instrumento físico. Se puede entrar datos 
usando el teclado o el ratón y tener una visualización de los resultados en la 
pantalla del computador. El Panel Frontal es la interface hombre-máquina de un 
VI. 
Los VIs reciben instrucciones de un diagrama de bloques construido en lenguaje G 
el cual suministra una solución gráfica a un problema de programación. El 
diagrama de bloques es el código fuente de un VI. 
Los VIs usan una estructura hereditaria y modular que permite realizar programas 
por niveles o hacer programas con otros programas o subprogramas. Un VI 
contenido en otro VI es denominado subVI. Todo VI se puede convertir en subVI 
sin ningún tipo de cambio en su estructura. 
Con estas características LabVIEW permite dividir un programa en una serie de 
tareas las cuales son divisibles nuevamente hasta que una aplicación complicada 
se convierte en una serie de subtareas simples. Todos los anteriores conceptos 
están de acuerdo con las concepciones modernas de la programación modular. 
Además LabVIEW puede ser usado con poca experiencia en programación pues 
utiliza metodologías familiares a técnicos, ingenieros, doctores y la comunidad 
científica en general. 
Cada VI de LabVIEW cuenta con dos interfaces: panel frontal y diagrama de 
bloques. Éstas cuentan con paletas que contienen los objetos necesarios para 
implementar y desarrollar tareas. La figura 1.1. muestra estas interfaces dentro de 
un entorno Windows.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 
7 
Figura 1.1. Interfaces de un VI. 
1.3 PANEL FRONTAL 
Es la interface gráfica que simula el panel de un instrumento real, permite la 
entrada y salida de datos, puede contener pulsadores, perillas, botones, gráficos y 
en general controles e indicadores. Figura 1.2. 
Los controles son objetos que sirven para entrar datos al programa y pueden ser 
manipulados por el usuario. Los controles son variables de entrada. 
Los indicadores sirven para presentar los resultados entregados por el programa y 
no pueden ser manipulados por el usuario. Los indicadores son variables de 
salida.
Curso Básico de LabVIEW 6i 
8 
Figura 1.2. Panel Frontal de una aplicación. 
1.4 DIAGRAMA DE BLOQUES 
El diagrama de bloques contiene el código fuente gráfico del VI, posee funciones y 
estructuras que relacionan las entradas con las salidas creadas en el panel frontal. 
En un diagrama se distinguen: Terminales, que representan los controles e 
indicadores del panel. Funciones y SubVIs, que realizan tareas específicas. 
Estructuras y Cables que determinan el flujo de los datos en el programa. En 
general, cualquiera de estas partes del diagrama de un VI se denomina NODO. 
El diagrama de bloques de la figura 1.3 muestra el código fuente correspondiente 
al panel de la figura 1.2.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 
9 
Figura 1.3. Diagrama de Bloques de una aplicación. 
1.5 PALETA DE HERRAMIENTAS 
Contiene las herramientas necesarias para editar y depurar los objetos tanto del 
panel frontal como del diagrama de bloques. Figura 1.4. 
Figura 1.4. Paleta de Herramientas. 
Operación 
Asigna valores a los controles del panel frontal, se encuentra
Curso Básico de LabVIEW 6i 
10 
disponible cuando se corre y edita la aplicación. Cuando edita 
objetos basados en texto o números, cambia el icono del 
puntero por el que se muestra. 
Posición 
Selecciona, mueve y redimensiona objetos. La herramienta 
cambia el icono del puntero cuando pasa por encima de objetos 
que pueden modificar su tamaño. 
Etiquetado 
Crea y edita textos tanto en el panel frontal como en el 
diagrama de bloques. El icono del puntero asociado a esta 
herramienta es el que se muestra. 
Cableado 
Se utiliza para generar la estructura lógica de eventos mediante 
la conexión de los terminales de cada objeto. Los cables 
determinan el flujo de los datos. 
Menú desplegable 
Permite obtener el menú de opciones de un objeto. Esta 
misma función se puede realizar haciendo un clic derecho del 
ratón sobre el objeto. 
Desplazamiento 
Mueve todos los objetos dentro de la ventana activa.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 
11 
Punto de quiebre 
Detiene la ejecución del programa en el punto del diagrama 
donde se ponga. Se utiliza con fines de depuración. 
Punto de prueba 
Se pone sobre algún cable de conexión para verificar de forma 
temporal el valor que fluye a través de éste. 
Capturar color 
Obtiene el color del objeto que se señale. 
Colorear 
Cambia los colores de objetos y fondos. 
1.6 PALETA DE CONTROLES 
Se utiliza únicamente en el panel frontal y contiene los objetos necesarios para 
crear una interface de entrada y salida de datos (controles e indicadores). 
Esta paleta se obtiene de la barra de menús con la opción Window>>Show 
Controls Palette, o haciendo clic derecho sobre el panel frontal. La paleta de 
controles se muestra en la figura 1.5.
Curso Básico de LabVIEW 6i 
12 
Figura 1.5. Paleta de Controles. 
Existen submenús correspondientes a toolkits que sólo aparecen cuando se han 
instalado. Los toolkits son herramientas adicionales de software con fines 
específicos y especializados que se suministran como productos por separado. 
Cada submenú de la paleta contiene controles e indicadores respectivos de una 
clase de objetos. Por ejemplo, la figura 1.5b muestra los submenús más 
importantes:
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 
13 
Controles e Indicadores Numéricos. 
Controles e Indicadores Booleanos 
Controles e Indicadores String y Path. 
Controles e Indicadores 
Array&Cluster. 
Gráficas. 
Controles de Diálogo.
Curso Básico de LabVIEW 6i 
14 
Figura 1.5b. Submenús de la paleta de controles. 
En la parte superior de las paletas hay tres herramientas como se muestra en la 
figura 1.6 que de izquierda a derecha sirven para: subir un nivel de submenú, 
buscar una función en la paleta y personalizar el contenido de la paleta 
respectivamente. 
Figura 1.6. Herramientas de las paletas y submenús. 
1.7 PALETA DE FUNCIONES 
Se usa únicamente en el diagrama de bloques y contiene todos los objetos para 
crear y editar el código fuente. 
Esta paleta se obtiene de la barra de menús con la opción Window>>Show 
Functions Palette, o haciendo clic derecho en el diagrama. La paleta de 
controles se muestra en la figura 1.7. 
Esta paleta también puede ser personalizada haciendo uso de la herramienta 
mostrada en la figura 1.6. 
Además, los submenús correspondientes a los toolkits no estarán presentes hasta 
que se hayan adquirido e instalado.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 
15 
Figura 1.7. Paleta de Funciones. 
Cada submenú de la paleta contiene funciones para distintas tareas. 
La figura 1.7b muestra los submenús más importantes: 
Estructuras.
Curso Básico de LabVIEW 6i 
16 
Funciones para Clusters. 
Funciones Booleanas. 
Funciones de Cadena. 
Funciones de Arreglos. 
Funciones Numéricas.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 
17 
Funciones de Comparación. 
Comunicaciones. 
Funciones de Archivo. 
Adquisición de Datos. 
Control de Instrumentos. 
Funciones para Gráficos 3D, Polares, 
Imágenes y Sonido.
Curso Básico de LabVIEW 6i 
18 
Matemáticas. 
Funciones Avanzadas. 
Figura 1.7b. Submenús de la paleta de funciones. 
1.8 BARRAS DE LABVIEW 
1.8.1 Barra de Menús 
La barra de menús que presenta LabVIEW en la parte superior de un VI contiene 
diversos menús desplegables que cumplen diferentes funciones: 
Figura 1.8. Barra de menús. 
Menú File: Contiene entre otras las opciones convencionales del ambiente 
Windows (abrir, cerrar, guardar, imprimir, salir).
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 
19 
Crea un nuevo VI 
Crear un nuevo componente de LabVIEW 
Abre un VI existente 
Cierra la ventana activa 
Cierra todas las ventanas 
Guarda el VI activo 
Guarda el VI activo con otro nombre 
Guarda todos los VIs abiertos 
Guarda el VI activo con opciones 
Devuelve un VI a la última versión guardada 
Configura la página para impresión 
Ejecuta el asistente para impresión 
Imprime la ventana activa 
Abre las propiedades del VI activo 
Muestra un menú con los VIs abiertos recientemente 
Sale de LabVIEW 
Figura 1.9. Menú FILE. 
Menú Edit: Permite realizar las acciones de edición como copiar, cortar, pegar, 
deshacer, rehacer, borrar, importar y manipular componentes de LabVIEW. 
Deshace las últimas acciones 
Rehace las acciones deshechas 
Corta los objetos seleccionados y los envía al portapapeles 
Copia los objetos seleccionados y los envía al portapapeles 
Pega el contenido del portapapeles en la ventana activa 
Borra los objetos seleccionados 
Ejecuta el asistente de búsqueda de objetos y componentes 
Muestra los resultados de la búsqueda 
Ejecuta el editor de controles e indicadores 
Escala los objetos al redimensionar el panel frontal 
Permite definir el orden de los objetos del panel frontal 
Pone en el portapapeles un archivo gráfico. 
Remueve los cables con errores 
Crea un subVI del diagrama de bloques seleccionado 
Permite crear un menú personalizado para el VI activo 
Figura 1.10. Menú EDIT.
Curso Básico de LabVIEW 6i 
20 
Menú Operate: Contiene las opciones necesarias para controlar la operación de 
los VIs. 
Ejecuta el VI activo 
Aborta la ejecución del VI activo 
Suspende la ejecución de un VI cuando es invocado 
Imprime el panel frontal cuando el VI se termina de ejecutar 
Genera un registro cuando el VI se termina de ejecutar 
Muestra las opciones del generador de registros 
Predetermina los valores actuales de los objetos 
Hace que los objetos regresen a su valor predeterminado 
Conmuta entre los modos edición y ejecución 
Figura 1.11. Menú OPERATE. 
Menú Tools: Contiene herramientas para la configuración de LabVIEW, de los 
proyectos y de los SubVIs. 
Accede al Explorador de componentes de NI 
Permite buscar o importar drivers para instrumentos 
Configura los canales y ejecuta el asistente de soluciones 
Compara el código y la jerarquías de VIs 
Accede las funciones de control de código fuente 
Permite documentar los cambios del VI activo 
Permite cambiar el nombre de usuario actual de LabVIEW 
Ejecuta las opciones de compilación 
Accede al explorador de librerías de VIs 
Edita o crea una librería de VIs LLB 
Navegador de Bases de Datos del SQL toolkit 
Diseñador para control difuso del FuzzyLogic toolkit 
Herramientas del Internet toolkit 
Herramientas de publicación en Web 
Herramientas Avanzadas de LabVIEW 
Accede las opciones de configuración de LabVIEW 
Figura 1.12. Menú TOOLS.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 
21 
Menú Browse: Contiene opciones que permiten observar aspectos del VI activo y 
toda su jerarquía. 
Muestra la ventana de Jerarquía de un VI 
Muestra una lista de VIs que llaman al VI activo como un subVI 
Muestra una lista de los subVIs que componen el VI activo 
Muestra una lista de los subVIs del VI activo que no están abiertos 
Muestra una lista de tipos definidos del VI activo que no están abiertos 
Busca puntos de quiebre en el VI actual 
Figura 1.13. Menú BROWSE. 
Menú Window: Permite configurar la apariencia de las paletas y ventanas. 
Conmuta entre el panel frontal y el diagrama de bloques 
Muestra la paleta de funciones en el diagrama o controles en el panel 
Muestra la paleta de herramientas 
Muestra el contenido del portapapeles 
Muestra la lista de errores del VI activo 
Arregla las ventanas abiertas a la derecha e izquierda 
Arregla las ventanas abiertas arriba y abajo 
Maximiza la ventana activa 
Muestra una lista de las ventanas abiertas 
Figura 1.14. Menú WINDOW. 
Menú Help: Presenta la ayuda en línea, los manuales de referencia, la 
documentación impresa, los recursos de web, enlaces en Internet y los archivos 
de ayuda de cada toolkit instalado.
Curso Básico de LabVIEW 6i 
22 
Muestra la ventana de ayuda básica de VIs funciones y controles 
Fija el contenido de la ventana de ayuda básica 
Accede a la documentación electrónica completa de LabVIEW 
Carga la versión PDF del conjunto de manuales de LabVIEW 
Abre el archivo de ayuda HLP del VI activo 
Accede al buscador de ejemplos de LabVIEW 
Permite acceder los recursos de web de National Instruments 
Muestra la información de referencia de un mensaje de error 
Ayuda del toolkit FlexMotion 
Ayuda del toolkit de procesamiento de imágenes 
Ayuda del toolkit para desarrollo en Internet 
Ayuda de los VIs de adquisición de imagen 
Ayuda del toolkit SQL 
Ayuda del toolkit ValueMotion 
Muestra entre otros la versión y el número de serie de LabVIEW 
Figura 1.15. Menú HELP. 
1.8.2 Barra de Herramientas del Panel Frontal 
La barra de herramientas permite la ejecución, depuración y organización de los 
VIs. 
Esta localizada debajo de la barra de menús y se muestra en la figura 1.16. 
Figura 1.16. Barra de herramientas.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 
23 
Ejecutar 
Botón para correr la aplicación, su forma varía de acuerdo al nivel 
jerárquico donde se ejecute. 
Botón Ejecutar cuando se corre una aplicación a nivel 
superior. 
Botón Ejecutar cuando se corre una aplicación a nivel inferior 
Botón Ejecutar cuando hay problemas con el código que 
impiden correr la aplicación. Haciendo clic sobre él se pueden 
localizar las causas del problema. 
Ejecutar continuamente 
Botón para ejecutar la aplicación repetidamente hasta que sea 
presionado de nuevo o se presione abortar. 
Apariencia del botón cuando un VI se está ejecutando 
continuamente. 
Abortar ejecución 
Aborta la ejecución de una aplicación. 
Apariencia del botón Abortar cuando un VI se está 
ejecutando.
Curso Básico de LabVIEW 6i 
24 
Pausar 
Botón para pausar la aplicación. Si se presiona nuevamente la 
ejecución continuará. 
Apariencia del botón Pausar cuando un VI está pausando. 
Fuentes 
Menú para seleccionar tipos de letra 
en objetos y textos. 
Alineación 
Permite alinear objetos tanto en el panel frontal como en el 
diagrama. 
Distribución 
Permite distribuir uniformemente objetos tanto en el panel frontal 
como en el diagrama. 
Reorganización 
Permite reorganizar la posición de los objetos tanto en el panel 
frontal como en el diagrama. 
1.8.3 Barra de Herramientas del Diagrama 
Esta barra contiene además de los mismos botones de la barra del panel frontal 
las herramientas de depuración.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 
25 
La figura 1.17 muestra la barra de herramientas del diagrama de bloques. 
Figura 1.17. Barra de herramientas del diagrama. 
Depuración 
Botón para observar el flujo de datos en el diagrama de bloques. 
Apariencia del botón cuando un VI está en modo de 
depuración. 
Paro a la entrada 
En modo depuración sirve para generar un paro a la entrada de un 
nodo. 
Paro sobre 
En modo depuración sirve para saltar un nodo. 
Paro a la salida 
En modo depuración sirve para salir de un nodo. 
Advertencia 
Si está habilitado aparece al lado izquierdo de la barra de 
herramientas indicando que existen observaciones al código fuente 
pero que no impiden la ejecución del VI.
Curso Básico de LabVIEW 6i 
26 
Entrar 
Botón que aparece cuando se editan textos o números y sirve para 
dar entrada a los datos. Esta función se puede cumplir también con la 
tecla <INTRO>. 
1.9 TÉCNICAS DE CABLEADO 
El código fuente de un programa en LabVIEW se define con la interconexión 
gráfica de los objetos que lo componen. A continuación se muestra las técnicas 
de alambrado para la construcción de un VI. 
1. Para comenzar a alambrar entre dos terminales se debe seleccionar la 
herramienta de cableado de la paleta de herramientas. Para enlazar los 
objetos del diagrama de bloques se coloca el puntero sobre el origen, cuando 
el origen parpadee se hace un clic sobre él, luego se lleva el puntero hasta el 
destino y cuando parpadee se hace otro clic sobre él. 
Figura 1.18. Objetos cableados. 
2. Si se realiza un doble clic sobre el elemento origen sin llegar hasta el elemento 
destino el cable será temporal.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 
27 
Figura 1.19. Cable temporal. 
3. Para cambiar la dirección de un cable mientras se construye se utiliza la barra 
espaciadora. 
Figura 1.20. Cambio de dirección en cableado. 
4. Para remover los cables malos, utilice <control+B>, o seleccione el menú 
Edit>>Remove Broken Wires. 
5. Para resaltar porciones del cableado: 
• Con un solo clic 
Figura 1.21. Selección simple de cableado.
Curso Básico de LabVIEW 6i 
28 
• Con doble clic 
Figura 1.22. Selección de un tramo de cableado. 
• Con triple clic 
Figura 1.23. Selección de todo un cable. 
LabVIEW 6i posee la capacidad de alambrar automáticamente los objetos a 
medida que se van colocando, conectando los terminales que mejor concuerden 
con el tipo de dato que se este manejando. Se puede activar o desactivar el 
alambrado automático utilizando la barra espaciadora mientras se acomodan 
objetos en el diagrama.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 
29 
1.10 TÉCNICAS DE EDICIÓN DE DIAGRAMAS 
Cada objeto en LabVIEW posee un menú de opción que permite configurar su 
funcionamiento facilitando las tareas de edición. 
Este menú se puede acceder haciendo clic derecho sobre el objeto, sea un 
terminal, una estructura o un subVI, como se muestra en la figura 1.24. 
Figura 1.24. Menú de opciones de un subVI. 
Además existen métodos abreviados y herramientas para realizar tareas 
específicas comunes en la edición de VIs. 
Algunas de estos métodos y herramientas son: 
1. Cuando se necesite crear una constante, un control o un indicador desde el 
diagrama de bloques para un objeto, función o nodo, hacer clic sobre el mismo 
y seleccionarlo del menú que se presenta.
Curso Básico de LabVIEW 6i 
30 
2. Para visualizar la lista de errores cometidos durante la edición del diagrama, 
seleccionar el botón List Error que aparece en la barra de menús 
reemplazando el botón de ejecución. 
3. Para rotar rápidamente entre los elementos de la paleta de herramientas se 
puede utilizar la tecla <Tab>. 
4. Para rotar entre la herramienta de posición y la herramienta de operación en el 
panel frontal, utilizar la barra espaciadora. En el diagrama la barra espaciadora 
rota entre la herramienta de posición y la de cableado. 
5. Para duplicar objetos usando la herramienta de posición, se debe señalar el 
objeto y oprimir la tecla <control> para arrastrarlo hasta el sitio deseado. 
6. Para reemplazar un objeto, se hace clic con el botón derecho sobre el mismo y 
del menú que aparece seleccionar Replace. 
1.11 TÉCNICAS DE NAVEGACIÓN 
En la edición de los VIs es necesario localizar objetos como textos, gráficos, 
funciones, subVIs entre otros. Para tal efecto es recomendable utilizar las 
siguientes técnicas de navegación: 
1. Para encontrar un terminal, un control, una variable local o un atributo de nodo 
asociado con un objeto, hacer clic derecho sobre el control y seleccionar Find.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 
31 
Figura 1.25. Opción Find. 
2. Para encontrar texto y objetos en memoria, seleccionar Edit>>Find o hacer 
<Control + F>. 
Figura 1.26. Menú Find. 
3. Para abrir un subVI desde la ventana de diagramación, hacer doble clic sobre 
él.
Curso Básico de LabVIEW 6i 
32 
4. Para guardar el trabajo elija la opción del menú File>>Save. Si no se 
especifica una extensión, LabVIEW adicionará “.vi”. 
1.12 TIPOS DE CABLES 
En lenguaje G, es posible identificar los tipos de datos por la forma, tamaño y color 
de sus terminales y cables. 
Entre controles e indicadores se pueden manejar datos escalares y arreglos de 
una o más dimensiones. 
Cuando el dato es escalar, la característica del cableado se muestra en la figura 
1.27. 
Figura 1.27. Cable con dato escalar. 
Se observa la diferencia de contorno entre un indicador y un control. 
Cuando los datos pertenecen a un arreglo de una dimensión, el cableado se torna 
un poco más grueso. 
Figura 1.28. Cable con dato arreglo.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 
33 
Para arreglos bidimensionales, el cable es doble. 
Figura 1.29. Cable con arreglo bidimensional. 
Cada control e indicador numérico encierra el tipo de dato que tiene asignado. Por 
ejemplo DBL significa que es de precisión doble. 
El color del cable es indicativo del tipo de dato. Por ejemplo Naranja es para 
números de punto flotante, Azul para enteros, Verde para booleanos, Fucsia para 
cadenas, etc. 
1.13 TIPOS DE DATOS NUMÉRICOS 
Al igual que en otros lenguajes de programación los datos numéricos son de 
diferentes tipos según su naturaleza y el tamaño que ocupan en memoria.
Curso Básico de LabVIEW 6i 
34 
TIPO COLOR BITS RANGO 
EXP REAL-Extendido Naranja 128 ±1.19e+4932 
DBL REAL-Doble Naranja 64 ±1.79e+308 
SGL REAL-Simple Naranja 32 ±3.4e+38 
I32 Entero-LONG Azul 32 ±2147483647 
I16 Entero-WORD Azul 16 -32768..+32.67 
I8 Entero-BYTE Azul 8 -128..+127 
U32 NATURAL Azul 32 0..4294’967.295 
U16 NATURAL Azul 16 0..65.535 
U8 NATURAL Azul 8 0..255 
CXT 
COMPLEJO Naranja 2*128 2*±1.19e+4932 
CBD COMPLEJO Naranja 2*64 2*±1.79e+308 
CSG COMPLEJO Naranja 2*32 2*±3.4e+38 
Figura 1.30. Representaciones Numéricas. 
1.14 TIPOS DE TERMINALES 
Todos los controles e indicadores que sean ubicados en el panel frontal de 
LabVIEW generarán un terminal en la ventana de diagramación.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 
35 
Figura 1.31. Terminales. 
Los terminales son objetos del diagrama de bloques que representan un control o 
un indicador del panel frontal. Toman el color respectivo de la variable que 
manejan. Por medio de ellos se obtienen los datos de los controles y se envían 
datos a los indicadores. Un terminal de control se diferencia de uno de indicador 
en que los primeros poseen un bordo doble mientras los segundos uno sencillo. 
1.15 AYUDAS DE DEPURACIÓN 
Cuando se ejecuta un VI es importante visualizar los resultados intermedios que 
se están generando. Para conseguir esto se utiliza un nodo de prueba o Probe 
que es similar a un indicador pero temporal y en una ventana flotante. 
Haciendo clic con el botón derecho sobre el cable y seleccionando Probe, aparece 
la ventana como se indica en la figura 1.32.
Curso Básico de LabVIEW 6i 
36 
Figura 1.32. Nodo de Prueba. 
El número 1 que aparece sobre el cable indica el número de la ventana flotante 
Probe, donde se está mostrando temporalmente el dato que pasa por el cable. En 
este caso, el dato del indicador llamado “Gráfico”. 
1.16 AMBIENTE DE DESARROLLO INTEGRADO DE LABVIEW 
En estas páginas se desarrollarán paso por paso actividades orientadas al 
entendimiento del IDE (Integrated Development Environment) de LabVIEW y a la 
familiarización con la terminología y técnicas de programación del sistema de 
desarrollo. 
1.16.1 Ejecución de LabVIEW 
La ejecución de LabVIEW, depende del sistema operativo en que se esté 
trabajando y de la forma en como haya sido instalado. Generalmente la 
instalación permite iniciar el programa de una de las siguientes formas:
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 
37 
Windows 
95,98,Me, 
NT,2000 
De no encontrar un acceso directo a LabVIEW en el escritorio, 
puede buscarlo en el menú de inicio por: 
Programas >> National Instruments >> LabVIEW 6 >> LabVIEW. 
MacOS 
68x, 
PowerPC 
Debe existir un acceso directo en la “Lanzadera" o “Launcher”. De 
lo contrario se debe buscar el archivo ejecutable LabVIEW en la 
carpeta LabVIEW. 
SunOS, 
UNIX, 
LINUX, 
HP-UX... 
Debe ejecutar un ambiente gráfico como openWin o CDE; o de 
forma remota con alguna aplicación cliente X. 
La ruta por defecto asignada al ejecutable durante la instalación es 
/opt/lv51/LabVIEW 
El programa tarda unos segundos en cargar y por defecto comienza su ejecución 
con la ventana de inicio que se muestra la figura 1.33. 
Esta ventana se puede obviar seleccionando la opción “Do not show this window 
when launching”, que aparece en ella misma.
Curso Básico de LabVIEW 6i 
38 
Figura 1.33. Ventana de inicio de LabVIEW. 
Las opciones de esta ventana de inicio son: 
New VI Permite crear un nuevo VI. Si se hace clic en su menú desplegable 
permite crear algún otro nuevo componente de LabVIEW. 
Open VI Abre un VI o un componente ya existente. Su menú desplegable 
muestra una lista de los componentes abiertos recientemente. 
DAQ 
Solutions 
Permite acceder a la configuración de canales o al asistente de 
soluciones de adquisición de datos. 
Search 
Examples 
Permite buscar ejemplos tanto en la base de datos instalada como 
en los recursos disponibles en Internet. 
LabVIEW 
Tutorial 
Tutorial en línea de LabVIEW.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 
39 
Exit Salir de LabVIEW 
El recuadro Quick Tip, muestra sugerencias cortas de gran utilidad en el 
desarrollo de aplicaciones. Para mostrar otras sugerencias se debe presionar 
NEXT. 
Durante la ejecución de LabVIEW se puede regresar a esta ventana cuando se 
cierra todos los VIs. Aquí la ventana de inicio podrá ser configurada en modo 
corto o largo como se muestra en la figura 1.34. 
Figura 1.34. Modos corto y largo de la ventana de inicio. 
1.16.2 Paletas y ventanas de LabVIEW 
La paleta de controles aparece únicamente en el panel frontal. Para su llamado 
existen dos formas: 
Paleta Flotante Haciendo clic derecho en algún lugar del panel frontal. 
Ventana Utilizando el menú Window>>Show Controls Palette.
Curso Básico de LabVIEW 6i 
40 
Las paletas flotantes desaparecen al hacer un clic en cualquier parte o al 
seleccionar uno de sus objetos. 
Si se desea convertir la paleta flotante en ventana se hace clic sobre la tachuela 
que aparece en la esquina superior izquierda. 
Esto es también válido para la paleta de funciones que se obtiene únicamente en 
la ventana de diagramación. 
Figura 1.35. Paleta de controles flotante y como ventana. 
Para cambiar rápidamente entre las ventanas de diagrama y de panel frontal 
existen varias técnicas. 
Menús En el panel frontal se escoge el menú: 
Window>>Show Diagram. 
Teclado <CONTROL> + E
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 
41 
Ventanas Utilizando el método de Windows para cambio de 
ventanas <ALT> + <TAB>. 
Barra de Tareas Directamente haciendo clic en la ventana 
correspondiente de la barra de tareas de Windows. 
La paleta de herramientas es común a las dos ventanas y se puede obtener de 
dos formas: 
Ventana En el menú Window>>Show Tools Palette. 
Paleta flotante Con el método <SHIFT> + <clic derecho> 
1.16.3 Ubicación de los objetos 
Dentro de las paletas de controles y funciones existen submenús que pueden 
contener objetos u otros submenús. 
Para tomar un objeto basta con hacer un clic sobre él en la paleta correspondiente 
y luego otro clic en el lugar del panel o del diagrama donde se desee colocar. 
Este procedimiento se puede observar en la secuencia de figuras 1.36, 1.37 y 
1.38.
Curso Básico de LabVIEW 6i 
42 
Figura 1.36. Clic sobre el objeto en la paleta de controles. 
Figura 1.37. Otro clic en el lugar del panel deseado.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 
43 
Al hacer un nuevo clic el objeto habilita automáticamente la opción de colocar una 
etiqueta o nombre que lo identifique. Es posible escribir una etiqueta para el 
objeto o dejar que LabVIEW la asigne por defecto. 
Figura 1.38. Objeto puesto y etiquetado. 
A este control le corresponde un terminal en el diagrama de bloques como se 
observa en la figura 1.39. 
Figura 1.39. Terminal. 
La ubicación de objetos en el diagrama tomados de la paleta de funciones es igual 
a la del panel frontal. 
Esto se observa en la secuencia de figuras 1.40 a 1.42.
Curso Básico de LabVIEW 6i 
44 
Figura 1.40. Clic sobre el objeto Multiplicación. 
Figura 1.41. Función en el lugar deseado. 
Figura 1.42. Objeto puesto y listo para cablear.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 
45 
Este es el momento para utilizar las técnicas de cableado ya expuestas. Con la 
herramienta de cableado, se hace un clic en el punto de origen y luego otro clic en 
el punto de destino. La figura 1.43 muestra la secuencia de cableado. 
Figura 1.43. Secuencia de cableado. 
En el diagrama de bloques es posible crear directamente constantes, controles e 
indicadores a partir de las funciones que requieren entradas y salidas. Este 
procedimiento se muestra en la figura 1.44. 
Figura 1.44. Creación de una constante. 
Para editar el valor de la constante se utiliza la herramienta de texto y se hace 
doble clic sobre el texto o número a editar. La secuencia de edición de un valor 
numérico se observa en la figura 1.45.
Curso Básico de LabVIEW 6i 
46 
Figura 1.45. Edición de valores numéricos. 
Para introducir texto es conveniente utilizar el botón enter (Figura 1.46) que se 
ubica a la izquierda de la barra de herramientas. La función de este botón puede 
ser cumplida también con la tecla <INTRO> del teclado numérico extendido. 
Recuérdese que <INTRO> es diferente de <ENTER> que está en el teclado 
convencional, aunque en muchos programas y tareas de Windows se pueden usar 
indistintamente. En LabVIEW <INTRO> y <ENTER> son equivalentes sólo 
cuando se usan para entrar datos de variables numéricas y de ruta (path). 
Figura 1.46. Entrada de texto. 
El anterior procedimiento es también válido para crear controles e indicadores. El 
nuevo terminal tendrá su respectivo indicador en el panel frontal. Figura 1.47.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 
47 
Figura 1.47. Creación de un indicador. 
Cuando un control o indicador ha sido creado desde el panel su etiqueta será la 
que corresponda a la entrada o salida con la que se creó. 
1.16.4 Edición de objetos del panel 
Para asignar un rótulo a cada objeto se utiliza la herramienta de texto, haciendo 
doble clic sobre el rótulo (Label) existente: 
La forma convencional de colocar los rótulos es sin embargo hacerlo en el 
momento de crear los controles o indicadores. 
Si por alguna razón el objeto no posee rótulo se debe seleccionar Visible Items 
>> Label del menú del objeto.
Curso Básico de LabVIEW 6i 
48 
Figura 1.48. Asignación de un rótulo. 
Para cambiar el color del panel o de cualquier objeto se toma la herramienta de 
colorear y se aplica color a los objetos que se desee haciendo clic derecho sobre 
ellos y seleccionando el color deseado. 
Figura 1.49. Edición del color de fondo del panel frontal. 
Para editar cualquier texto se debe seleccionar con la herramienta de texto y luego 
escoger Font Dialog en el menú de fuentes de la barra de herramientas. Esto 
mostrará el menú de la figura 1.50.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 
49 
Figura 1.50. Cuadro de diálogo para edición de fuentes. 
Otra forma de editar los tipos de letra es haciendo uso directo del menú de fuentes 
de la barra de herramientas. 
Figura 1.51. Menú de fuentes en la barra de herramientas. 
En este menú se puede modificar el tamaño (Size), el estilo (Style), la alineación
Curso Básico de LabVIEW 6i 
50 
(Justify) y el Color (Color) de las fuentes asociadas a cada objeto. Como ejemplo 
se han modificado las fuentes para obtener la figura 1.52. 
Figura 1.52. Etiquetas en negrita y valores numéricos centrados. 
1.16.5 Cambiar el tamaño de los objetos 
Para cambiar el tamaño de un objeto se debe acercar la herramienta de posición a 
uno de los bordos del objeto y arrastrar el ratón hasta la nueva posición deseada. 
La selección de la herramienta de texto se muestra en la figura 1.53. 
Cuando el objeto está listo para ser cambiado de tamaño, toma el aspecto que se 
puede observar en el objeto “CONTROL 1” en la figura 1.54.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 
51 
Figura 1.53. Herramienta de posición/tamaño/selección. 
Figura 1.54. Ubicación en un bordo del objeto. 
La figura 1.55 muestra como se debe arrastrar el ratón hasta donde se desee 
modificar el tamaño del objeto. 
La figura 1.56 muestra la modificación de tamaño realizada sobre los dos objetos 
del panel.
Curso Básico de LabVIEW 6i 
52 
Figura 1.55. Arrastre del ratón hasta el nuevo tamaño deseado. 
Figura 1.56. Nuevo tamaño de los objetos. 
1.16.6 Ejecución de una aplicación 
LabVIEW permite ejecutar una aplicación de dos formas.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 
53 
RUN: Permite ejecutar la aplicación en modo normal. 
RUN CONTINUOSLY: Permite ejecutar la aplicación una y otra vez. 
Este último método es utilizado únicamente en el proceso de edición y depuración. 
Figura 1.57. Ejecución de un VI. 
ABORT EXUCUTION: Aborta la ejecución del programa. 
Cuando un VI se ejecuta en modo continuo se puede abortar su ejecución con 
ABORT EXUCUTION. Sin embargo, lo más conveniente es cambiar al modo de 
ejecución normal presionando de nuevo RUN CONTINUOSLY para que la 
ejecución se detenga normalmente. 
1.16.7 Guardar un VI 
Desde cualquiera de las dos ventanas se puede seleccionar File>>Save. Se 
podrá entonces ver la ventana de la figura 1.58.
Curso Básico de LabVIEW 6i 
54 
Figura 1.58. Cuadro de diálogo para guardar un VI. 
Dependiendo del sistema operativo, cambiará esta ventana y las condiciones para 
asignar nombre a los VIs. No se debe guardar trabajos personales en las carpetas 
de instalación de LabVIEW. Se recomienda utilizar otras carpetas para almacenar 
el trabajo. 
Si no se escribe una extensión al archivo en el momento de guardar, LabVIEW 
utilizará VI como extensión por defecto. 
Es posible guardar varios VI en un solo archivo. Esto se denomina una librería de 
VIs. Para crear una librería de VI se selecciona “New VI Library” de la ventana 
guardar. Las librerías de VIs poseen extensión llb.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 
55 
EJERCICIO 1.1 CREACIÓN DE UN NUEVO VI 
Consideré la realización de un programa que permita obtener la corriente que 
circula a través de un circuito eléctrico resistivo dado, para diferentes valores de 
resistencias y alimentación, figura 1.59. 
• En un editor gráfico como paint, haga el siguiente dibujo y guárdelo en un 
archivo tipo bmp o wmf del tamaño deseado. También puede copiarlo en el 
portapapeles. 
Figura 1.59. Circuito propuesto del ejercicio 1.1. 
• Ejecute LabVIEW. 
• Seleccione New VI, para crear un VI nuevo. 
• Pegue el dibujo que realizó en el panel frontal del VI de la siguiente forma: 
Si lo copió en el portapapeles debe seleccionar del menú principal Edit>>Paste. 
Si tiene el dibujo en un archivo, antes de pegar deberá seleccionar Edit>>Import 
Picture from File. 
La figura 1.60 muestra el dibujo realizado ya ubicado en el panel frontal de un VI.
Curso Básico de LabVIEW 6i 
56 
Figura 1.60. Dibujo en el panel frontal. 
• De la paleta de controles, obtenga un indicador y cuatro controles 
numéricos. Póngalos de forma similar al panel de la figura 1.61. 
Figura 1.61. Controles e indicadores sobre el dibujo en el panel frontal. 
• Obtenga el valor de I, en función de las demás variables.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 
57 
El valor de I en función de V, R1, R2 y R3, es: 
( R2R3 
R1 
R3 
) 
R2 R3 
V 
R2R3 
R2 R3 
I 
+ + 
= + 
Ecuación 1.1. I en función de las demás variables. 
• Ponga las funciones aritméticas necesarias en el diagrama para lograr 
evaluar la función obtenida en la ecuación 1.1. Figura 1.62. 
Figura 1.62. Codificación en G de la ecuación 1.1. 
• Ejecute el programa: 
En la barra de herramientas aparece el icono de RUN , que permite ejecutar el 
programa una vez. 
• Varíe los valores de las resistencias o de la fuente y observe como cambia 
la respuesta “I” cada vez que corre el programa.
Curso Básico de LabVIEW 6i 
58 
• Corra continuamente el programa utilizando RUN CONTINUOSLY . 
Correr continuamente el programa permitirá observar como cambia la salida a 
medida que se realicen cambios en la entrada. 
• Presione nuevamente RUN CONTINUOSLY para detener la ejecución. 
• En el diagrama de bloques presione Highlight Execution y corra el 
programa utilizando RUN . 
Esto permitirá que observe una animación de cómo fluyen los datos durante la 
ejecución del VI. 
Ahora se desea reemplazar la fuente de voltaje DC por una de AC y las 
resistencias por impedancias. 
Para hacer un análisis en régimen permanente del nuevo circuito se deben 
reemplazan los números reales por números complejos. 
Esto se permite mediante el cambio de representación de cada control e indicador, 
haciendo clic con el botón derecho del ratón en cada uno y seleccionando la 
opción Representation>>CDB del menú de cada objeto. 
La figura 1.63 muestra el menú de un control y la forma de cambiar su 
representación.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 
59 
Figura 1.63. Cambio de representación del control R1. 
Una vez realizados todos los cambios se podrá observar el panel de la figura 1.64. 
Figura 1.64. Indicadores y controles complejos.
Curso Básico de LabVIEW 6i 
60 
La única diferencia en el diagrama de bloques es la representación de los 
terminales. Figura 1.65. 
Este cambio se hace automáticamente al cambiar la representación de los 
controles e indicadores en el panel frontal. 
Figura 1.65. Diagrama con terminales complejos. 
No es necesario hacer ninguna modificación para que el programa opere con 
números complejos. Esto se debe a las características de polimorfismo y 
sobrecarga de las funciones de LabVIEW. 
Para obtener más información acerca de las funciones, como por ejemplo la forma 
de operación y las características de polimorfismo y sobrecarga se puede utilizar 
la ventana de ayuda. 
La ventana de ayuda se obtiene con el método de teclado <CONTROL + H> y 
tiene la apariencia de la figura 1.66. 
Esta ventana mostrará ayuda acerca de la función sobre la que se encuentre el 
cursor en cada instante.
Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 
61 
Figura 1.66. Ventana de ayuda. 
• Corra el programa de nuevo y observe los resultados. 
• Guarde el VI en su carpeta de trabajo y ciérrelo. 
FIN EJERCICIO 1.1
Curso Básico de LabVIEW 6i 
62 
1.17 EJERCICIOS PROPUESTOS 
1) Crear un panel de control idéntico al de la figura 1.67. 
Figura 1.67. Ejercicio propuesto 1. 
2) Hacer un programa en LabVIEW que evalúe la función y = 3x2 + 4x - 9 en 
cualquier valor de x. 
3) Codificar en G la expresión booleana S = AB.CD + AB.CD + ADBC + AC.BD. 
4) Crear un VI que genere un número aleatorio entre 1 y 100.
2. ESTRUCTURAS. 
2.1 OBJETIVO 
Estudiar las estructuras de programación utilizadas por LabVIEW para definir 
secuencias, decisiones y ciclos. Además, estudiar el nodo de fórmula del lenguaje 
G. 
2.2 DESCRIPCIÓN 
Una estructura en general es un nodo que controla el flujo de los datos de un 
programa en G. LabVIEW cuenta, en orden, con las siguientes estructuras. 
1. Sequence. 
2. Case. 
3. For Loop. 
4. While Loop. 
5. Formula Node. 
Las estructuras se encuentran en la paleta de funciones como se muestra en la 
figura 2.1.
Curso Básico de LabVIEW 6i 
64 
Figura 2.1. Estructuras. 
Para efectos de estudio se comenzará con las estructuras cíclicas que son While 
Loop y For Loop. 
2.3 ESTRUCTURA “WHILE LOOP” 
La estructura While Loop es un ciclo que repite el subdiagrama que contiene hasta 
que una condición determinada se cumpla. En G está representada por el marco 
que se muestra en la figura 2.2. 
Figura 2.2. Estructura While Loop.
Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 
65 
Por defecto las instrucciones contenidas en el ciclo se repetirán mientras que al 
terminal de condición llegue un valor verdadero. Si se desea cambiar la lógica del 
terminal de condición, es decir, que el ciclo se repita mientras que a este llegue un 
valor falso, basta con hacer clic derecho en dicho terminal y seleccionar la opción 
Stop If True como se muestra en la figura 2.3. Si el terminal de condición no se 
cablea, el VI no se podrá ejecutar. 
Figura 2.3. Terminal de condición de la estructura While Loop. 
El terminal de iteración determina el número de veces que se ha ejecutado el ciclo 
y puede ser utilizado para visualización o para alguna operación dentro de la 
estructura. Este terminal varía desde 0 hasta N-1 donde N es el número de 
iteraciones realizadas por el ciclo. 
La estructura While Loop del lenguaje G es equivalente a DO..WHILE en C/C++ o 
a REPEAT..UNTIL en Pascal.
Curso Básico de LabVIEW 6i 
66 
Se debe tener en cuenta que el subdiagrama contenido en la estructura While 
Loop se ejecutará por lo menos una vez. 
EJERCICIO 2.1 SIMULACIÓN DE LA LECTURA DE UNA TEMPERATURA 
La figura 2.4 muestra el panel frontal y el diagrama de bloques para una 
simulación simple de la lectura de una temperatura. 
Figura 2.4. Simulación de lectura de temperatura. 
El programa se ejecutará hasta que el usuario presione el botón de paro. 
Como se desea que el ciclo se detenga sólo cuando se presione el botón de paro, 
entonces se debe cambiar la lógica por defecto del terminal de condición. 
El subVI que simula la lectura de temperatura se encuentra en la paleta de 
funciones en el submenú Tutorial y se llama “Digital Thermometer.vi”.
Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 
67 
Si se desea agregar una espera para el VI no se ejecute tan rápido, se puede 
utilizar la función Wait, que se encuentra en la paleta de funciones en el submenú 
Time&Dialog. Esta función produce la espera especificada en milisegundos. 
La figura 2.5 muestra su utilización en el diagrama para lograr una espera de 250 
milisegundos en cada iteración. 
Figura 2.5. Función Wait en un ciclo. 
Una forma fácil de obtener una gráfica de los valores de temperatura leídos por el 
subVI de simulación, es con el indicador “Waveform chart” localizado en la paleta 
de controles en el submenú Graph como se muestra en la figura 2.6. 
Figura 2.6. Waveform Chart.
Curso Básico de LabVIEW 6i 
68 
El estudio detallado de este graficador será realizará más adelante. Por ahora 
basta decir que este control permite acumular datos escalares y graficarlos. 
Reemplazando el termómetro en el panel de la figura 2.4 por la gráfica se obtiene 
el panel de la figura 2.7. 
Figura 2.7. Gráfica de datos de temperatura. 
El diagrama conserva el mismo aspecto ya que el terminal para la gráfica es igual 
al del termómetro. 
FIN EJERCICIO 2.1
Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 
69 
EJERCICIO 2.2 GENERACIÓN DE UNA ONDA SENO 
Se desea generar continuamente una onda seno y verla en un graficador Chart 
hasta que se presione el botón de paro. 
Las figuras 2.8 y 2.9 muestran el panel frontal y el diagrama de esta aplicación. 
Figura 2.8. Panel frontal para generar onda seno. 
Figura 2.9. Diagrama para generar onda seno.
Curso Básico de LabVIEW 6i 
70 
La función seno tomada de la paleta de funciones numéricas recibe el argumento 
en radianes, por tanto, el terminal de iteraciones utilizado para generar un punto 
cada grado debió ser multiplicado por π/180. 
La velocidad con que se genera los datos es controlada por la función Wait. 
FIN EJERCICIO 2.2
Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 
71 
2.4 ESTRUCTURA “FOR LOOP” 
La estructura For Loop es un ciclo que repite el subdiagrama que contiene un 
número definido de veces. En G está representada por el marco que se muestra 
en la figura 2.10. 
Figura 2.10. Estructura For Loop. 
El terminal de iteración indica el número de veces que se ha ejecutado el ciclo. 
Varía desde 0 hasta N-1 donde N es el número total de iteraciones que realiza el 
ciclo. 
El control de iteraciones contiene el número de veces que se ejecutará el 
subdiagrama contenido en el ciclo. 
En C/C++ es análogo a 
for(i=0, i<N, i++). 
{ 
} 
end
Curso Básico de LabVIEW 6i 
72 
EJERCICIO 2.3 GRÁFICA DE 100 NÚMEROS ALEATORIOS ENTRE 10 Y 50 
Como se conoce el número exacto de veces que se debe repetir la tarea se utiliza 
una estructura For Loop. 
La función random genera un número aleatorio entre 0 y 1. Por tanto se debe 
ajustar su rango al solicitado. Una forma fácil de hacerlo es multiplicar el número 
generado por 40 y sumarle 10. En general si el rango solicitado es [a,b] entonces 
el número aleatorio es N = R(b-a)+a, donde R es la salida de la función random. 
Para graficar los 100 números generados se utiliza una gráfica Chart. 
La figura 2.11 muestra el panel y el diagrama que dan solución a este ejercicio. 
Figura 2.11. Gráfica de 100 números aleatorios. 
De nuevo, si se desea que el VI se ejecute más lento, se debe adicionar la función 
Wait. 
FIN EJERCICIO 2.3
Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 
73 
Es muy frecuente que en las estructuras While Loop y For Loop sea necesario 
pasar datos entre iteraciones. Para ello se utilizan los “shift registers”. 
Éstos se encuentran en el menú de las estructuras y se obtienen como se muestra 
en la figura 2.12. 
Figura 2.12. Adición de un Shift register. 
Los “shift registers” o registros de desplazamiento están formados por un par de 
terminales que se adaptan a cualquier tipo de dato y que están localizados a cada 
lado de los bordes de la estructura como se muestra en la figura 2.13. 
Figura 2.13. Localización de un registro de desplazamiento. 
La secuencia de comportamiento de un registro de desplazamiento se muestra en 
la figura 2.14.
Curso Básico de LabVIEW 6i 
74 
Figura 2.14. Comportamiento de un registro de desplazamiento. 
El terminal derecho almacena el dato una vez concluya la iteración y le entrega el 
dato al terminal de la izquierda para que sea utilizado en la próxima iteración. 
En la primera iteración el sistema podría tomar un número no deseado, por tanto 
se debe inicializar, desde afuera, con un valor conveniente del mismo tipo de la 
variable utilizada. 
EJERCICIO 2.4 SUMAR LOS NÚMEROS ENTEROS ENTRE 1 Y 100 
Este ejercicio busca encontrar un valor S = 1 + 2 + 3 +...+ 98 +99 +100. 
Para realizar esta suma se utiliza una estructura For Loop.
Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 
75 
Figura 2.15. Sumatoria de 1 a 100. 
Como el terminal de iteración comienza desde 0, se debe realizar 101 iteraciones 
para que el último número de la sumatoria sea el 100. 
Esto significa que en realidad la suma realizada por este ejercicio es: 
S = 0 + 1 + 2 + 3 +...+ 98 +99 +100 
Lo que no afecta el resultado deseado. 
FIN EJERCICIO 2.4
Curso Básico de LabVIEW 6i 
76 
Para poder tener acceso a iteraciones anteriores se debe adicionar elementos al 
registro de desplazamiento. Para adicionarlos, se hace clic derecho sobre uno de 
los terminales y se selecciona Add Element, como se muestra en la figura 2.16. 
Figura 2.16. Adición de elementos al registro de desplazamiento. 
El comportamiento del registro de desplazamiento con elementos adicionados se 
ilustra en la figura 2.17. 
Figura 2.17. Comportamiento de elementos en los registros de desplazamiento. 
Todos los elementos que se adicionen al registro de desplazamiento también 
deben ser inicializados, de lo contrario se correrá el riesgo de tener valores no 
deseados.
Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 
77 
EJERCICIO 2.5 PROMEDIAR LOS ÚLTIMOS DOS DATOS ALEATORIOS 
Para el ejercicio 2.3, se requiere calcular el promedio de los últimos 2 datos 
aleatorios que se han generado. 
Figura 2.18. Promedio de últimos 2 datos generados. 
Se han sumado y dividido por 2 los datos correspondientes a las últimas dos 
iteraciones. 
FIN EJERCICIO 2.5
Curso Básico de LabVIEW 6i 
78 
2.5 ESTRUCTURA “SEQUENCE” 
La estructura sequence tiene la apariencia de la figura 2.19 y permite ejecutar 
varios subdiagramas de manera ordenada y controlada por el programador. En 
los lenguajes de programación convencionales basados en código de líneas no se 
requiere y por lo tanto no existe una estructura análoga. 
Esta estructura posee varios subdiagramas denominados “frames” que se 
ejecutan en estricto orden y sólo es visible uno a la vez. 
Figura 2.19. Apariencia de estructuras sequence. 
En la parte superior del marco de cada estructura se encuentra el identificador de 
diagrama que es utilizado para navegar entre frames. Ver la figura 2.20. 
Figura 2.20. Identificador de diagrama.
Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 
79 
Por defecto la estructura sequence posee un solo frame y no tiene identificador de 
diagrama. Para adicionar, borrar, mover o duplicar frames se puede acceder al 
menú de la estructura desde alguno de sus lados. Ver figura 2.21. 
Figura 2.21. Menú de la estructura sequence. 
En este menú es posible seleccionar alguna de las siguientes opciones: 
Add Sequence Local: Utilizado para pasar un dato desde un frame a otro 
posterior. Esta opción genera un terminal en el borde de la 
estructura como en la figura 2.22. 
Add Frame After: Adiciona un frame después del actual. 
Add Frame Before: Adiciona un frame antes del actual. 
Duplicate Frame: Genera una copia exacta del frame actual en un nuevo 
frame. 
Delete Frame: Elimina el frame actual. Sólo se habilita cuando la 
secuencia posee dos o más frames. 
Remove Sequence: Se utiliza para remover la estructura sequence. Este 
procedimiento eliminará todos los objetos de los frames que 
no estén visibles.
Curso Básico de LabVIEW 6i 
80 
Figura 2.22. Elementos de la estructura SEQUENCE. 
EJERCICIO 2.6 MEDIR EL TIEMPO QUE EL PC TARDA EN GENERAR 10000 
DATOS ALEATORIOS 
Para la solución de este ejercicio se utiliza una sola estructura sequence con tres 
frames como se enseña en la figura 2.23.
Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 
81 
Figura 2.23. Frames 0, 1 y 2. 
En el frame cero es necesario tomar un tiempo de referencia y enviarlo al frame 
dos donde se tomará un nuevo valor para restarle el tomado en el frame cero. 
Esta diferencia será el tiempo que tomó el computador en realizar la tarea. 
La función Tick Count se encuentra en la paleta de funciones en el 
submenú Time&Dialog y devuelve un valor de tiempo en milisegundos 
contados a partir de un instante de referencia no controlable por el 
usuario. El valor devuelto por esta función es U32, por lo tanto se debe 
tener cuidado al usarla porque saltará de 2^32-1 a 0. 
Nótese que el dato entregado por la función tick count en el frame cero es enviado 
al frame uno a través de una secuencia local.
Curso Básico de LabVIEW 6i 
82 
Para poder utilizar un dato después de la ejecución de la estructura basta con 
alambrarlo a una de las paredes como se puede ver en la figura 2.24. 
Figura 2.24. Salida de datos de un sequence. 
El paso de un dato entre la parte interna y externa de una estructura se denomina 
túnel y puede ser de entrada o de salida dependiendo del sentido del flujo de los 
datos. 
FIN EJERCICIO 2.6
Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 
83 
2.6 ESTRUCTURA “CASE” 
La estructura Case posee varios subdiagramas denominados casos (cases) de los 
cuales sólo se ejecuta uno. 
Esta estructura tiene la apariencia de la figura 2.25. 
Figura 2.25. Estructura case. 
Al igual que en la estructura sequence sólo es visible un subdiagrama a la vez. 
Esta estructura es una fusión de las estructuras IF y CASE o SWITCH de los 
lenguajes de programación convencionales. 
Figura 2.26. Case booleano en LabVIEW. 
IF (condición) { 
caso CIERTO 
} 
ELSE { 
caso FALSO 
}
Curso Básico de LabVIEW 6i 
84 
Dependiendo del tipo de variable asociada al terminal de selección la estructura se 
comportará como un IF o como un CASE. Si el valor cableado es booleano la 
estructura tendrá dos casos FALSE y TRUE, pero si es numérico o cadena la 
estructura podrá tener desde 2 hasta 216-1 casos. 
Figura 2.27. Case numérico en LabVIEW. 
switch (variable) { 
case constante1: 
{ caso1 } 
break; 
case constante2: 
{ caso2 } 
break; 
. 
. 
default: 
{ casoX defecto } 
} 
La estructura CASE también posee un menú que se obtiene haciendo clic derecho 
sobre uno de sus bordes. En este menú se encuentra opciones como adicionar, 
eliminar, duplicar, mover y organizar casos. 
Figura 2.28. Menú de la estructura case.
Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 
85 
Cuando la variable de selección no es booleana LabVIEW exige que alguno de los 
casos de la estructura case sea definido como el caso por defecto. 
Figura 2.29. Caso declarado por defecto. 
EJERCICIO 2.7 MENÚ DE OPCIONES 
A partir de dos entradas numéricas y un control tipo menú con las opciones suma, 
resta, multiplicación y división, se busca generar una salida que enseñe su 
resultado. 
En el Panel Frontal: 
Para resolver este ejercicio es necesario utilizar un control tipo menú, que son 
comúnmente utilizados para seleccionar una opción entre varias posibles. 
Los controles tipo menu ring se encuentran en la paleta de controles en el 
submenú Ring&Enum y son de tipo numérico U16. Para editar un control de menú 
se debe tomar la herramienta de texto.
Curso Básico de LabVIEW 6i 
86 
Figura 2.30. Selección y edición de un control menu ring. 
El control menu ring posee también un menú al que se accede haciendo clic 
derecho sobre éste. En él se pueden seleccionar acciones como adicionar, 
remover o deshabilitar ítems. El menú de este control se muestra en la figura 
2.31. 
Figura 2.31. Menú del control menu ring.
Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 
87 
Se adicionan los ítems Sumar, Restar, Multiplicar y Dividir. El aspecto del control 
menu ring desplegado se muestra en la figura 2.32. 
Figura 2.32. Menú desplegado. 
De acuerdo con la figura 2.32 este control tomará el valor de 0 cuando se 
seleccione SUMAR, 1 para RESTAR, 2 para MULTIPLICAR y 3 para DIVIDIR. 
Ahora se puede crear los otros elementos. Dos controles numéricos y un 
indicador numérico. 
El panel frontal terminado se muestra en la figura 2.33. 
Figura 2.33. Panel frontal completo. 
En el diagrama de bloques: 
El terminal del control de menú se utilizará para cablear el terminal de selección de 
una estructura case como se muestra en la figura 2.34.
Curso Básico de LabVIEW 6i 
88 
Figura 2.34. Estructura Case controlado por un menu ring. 
Como el control posee 4 posibles opciones, se debe adicionar los casos 2 y 3. El 
caso 0 será el caso por defecto. 
Figura 2.35. Adición de casos.
Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 
89 
Ahora se debe colocar las funciones en los respectivos casos, por ejemplo, la 
función suma en el subdiagrama del caso cero, la resta en el uno y así 
sucesivamente. 
Figura 2.36. Subdiagrama cero. 
Los datos en todos los túneles de entrada y en el terminal de selección pueden ser 
accedidos por todos los subdiagramas de casos. 
Para que un túnel de salida este completo se le debe alimentar desde todos los 
casos que posea la estructura. La figura 2.37 muestra dos túneles de salida en 
una misma estructura case uno de los cuales no está completo. 
Figura 2.37. Túneles de salida de un case.
Curso Básico de LabVIEW 6i 
90 
Observe en la figura 2.37 que aún existe un túnel de salida incompleto. Esto 
significa que en alguno o en varios de los casos no visibles aún éste no ha sido 
alimentado. Esto se ve por ejemplo en la figura 2.38. 
Figura 2.38. Caso 1 con túnel incompleto. 
Se debe tener cuidado al completar los túneles, pues frecuentemente sucede que 
el cableado no se realiza exactamente sobre el túnel sino que se generan túneles 
nuevos que podrían estar superpuestos y aparentar ser uno sólo. 
Se recomienda asegurarse que el túnel al que cablea sea el correcto. Ver 
técnicas de cableado en el capítulo uno. 
La figura 2.39 muestra el caso 3 con el túnel ya completo.
Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 
91 
Figura 2.39. Caso 3 con túnel de salida completado. 
Por último, se debe recordar que el programa debe correr por si mismo sin la 
ayuda del botón de correr continuamente. Para ello se anexa una estructura While 
Loop que encierre toda la operación. 
Figura 2.40. Diagrama completo. 
FIN EJERCICIO 2.7
Curso Básico de LabVIEW 6i 
92 
2.7 ESTRUCTURA “FORMULA NODE” 
Un nodo de fórmula es una caja redimensionable donde se alojan fórmulas 
matemáticas y lógicas para su evaluación. Los nodos de fórmula tienen la 
apariencia de la figura 2.41. 
Figura 2.41. Nodo de Fórmula. 
Los terminales de entrada y salida son variables numéricas, escalares y reales 
que se generan adicionándolas desde el menú de la estructura como se muestra 
en la figura 2.42. 
Figura 2.42. Menú de los nodos de fórmula. 
La sintaxis interna de los nodos de fórmula es similar a la de C. 
Asignación = 
Condición ? : 
or ||
Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 
93 
xor ^ 
and && 
not ! 
Relacional == != > < >= <= 
Aritméticas + - * / ** 
Las funciones aceptadas dentro del nodo de fórmula son: 
abs acos acosh asin asinh atan atanh ceil cos cosh cot csc exp 
expm1 floor getexp getman int intrz ln lnp1 log log2 max min mod 
rand rem sec sign sin sinh sqrt tan tanh 
Dentro del nodo de fórmula se pueden adicionar comentarios encerrándolos 
dentro de un par slash-asterisco así: (/*comentario*/) como se muestra en la figura 
2.41. 
EJERCICIO 2.8 UTILIZACIÓN DE LOS NODOS DE FÓRMULA 
Se realizará en forma convencional y con un nodo de fórmula el cálculo de 
Y 
Z = X + 
Y 
2 
suponiendo conocidos X y Y. Esta operación en forma convencional 
tendría la apariencia de la figura 2.43. 
Figura 2.43. Cálculo de Z en forma convencional.
Curso Básico de LabVIEW 6i 
94 
Con la utilización del nodo de fórmula la apariencia del diagrama sería como en la 
figura 2.44. 
Figura 2.44. Cálculo de Z con un nodo de fórmula. 
CUIDADO: El operador ( ^ ) que en versiones previas de LabVIEW era el operador 
de la exponenciación ahora es el operador booleano XOR. El nuevo operador de 
la exponenciación es ( ** ), como se muestra en la figura 2.44. 
En los casos que se requiera evaluar fórmulas matemáticas extensas el nodo de 
formula es evidentemente más apropiado. 
FIN EJERCICIO 2.8
Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 
95 
EJERCICIO 2.9 REALIZAR EL EJERCICIO 1.1 CON UN NODO DE FÓRMULA 
La figura 1.62 muestra la codificación en G de la ecuación 1.1. 
Esta misma codificación se puede realizar con un nodo de fórmula como se 
muestra en la figura 2.45. 
Figura 2.45. Ecuación 1.1 con nodo de formula. 
Nótese que aunque es posible realizar cálculos intermedios para simplificar la 
sintaxis de las ecuaciones se debe agregar una salida por cada asignación que se 
realice. Por ejemplo, en la figura 2.45 se utiliza P para realizar un cálculo 
intermedio pero se debe agregar como salida así no se utilice. 
FIN EJERCICIO 2.9
Curso Básico de LabVIEW 6i 
96 
Los nodos de fórmula se pueden utilizar también con expresiones de decisión. En 
programación es común encontrar la estructura IF THEN ELSE: 
C/C++ PASCAL 
IF (condición) { 
(caso verdadero) 
} 
ELSE { 
(caso falso) 
} 
IF (condición) THEN 
BEGIN 
(caso verdadero) 
END; 
ELSE 
BEGIN 
(caso falso) 
END; 
END; 
Sin embargo, y aunque la estructura case ofrece una solución, en algunos 
lenguajes como en C es posible utilizar el operador ?, cuando se desea realizar la 
asignación de un valor, para simplificar la estructura así: 
salida = (condición) ? (caso verdadero) : (caso falso) ; 
Al igual que la estructura IF el uso del operador ? también es anidable. 
salida=(condición1)?(caso1):(condición2)?(caso2):(condicion3)?(caso3):(caso4); 
El nodo de fórmula de LabVIEW acepta la sintaxis del operador ?. 
EJERCICIO 2.10 EJERCICIO 2.7 CON UN NODO DE FÓRMULA 
Se puede escribir con sólo una línea de código dentro del nodo de fórmula así: 
C = (M = 0) ? A + B : ( M = 1 ) ? A - B : ( M = 2 ) ? A * B : A / B ;
Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 
97 
El aspecto que tendría en G se muestra en la figura 2.46. 
Figura 2.46. Ejercicio 2.7 con nodo de fórmula. 
FIN EJERCICIO 2.10
Curso Básico de LabVIEW 6i 
98 
LabVIEW también ofrece una alternativa para estructuras tipo IF sin anidamiento 
que consistan simplemente en determinar si se utiliza un dato u otro. Esto es 
realizado por la función Select, que se muestra en la figura 2.47 y que se puede 
encontrar en la paleta de funciones en el submenú comparition. 
Figura 2.47. Función Select. 
Obsérvese que “CONDICIÓN” es booleano y determina que dato será asignado a 
la salida. La salida y los datos a asignar pueden ser cualquier tipo de variable 
válida de LabVIEW. 
EJERCICIO 2.11 LA ECUACIÓN CUADRÁTICA 
Para resolver la ecuación a X 2 + b X + c = 0, se requiere de tres controles 
numéricos reales para a, b y c, y de dos indicadores complejos para mostrar las 
raíces encontradas. 
El panel frontal se muestra en la figura 2.48.
Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 
99 
Figura 2.48. Panel frontal para la ecuación cuadrática. 
Se sabe que X1 y X2 están dadas por la ecuación 2.1. 
X - b 2 
b - 4 a c 
4 a 
2 a 
2 
1,2 = ± 
Ecuación 2.1. Raíces de la ecuación cuadrática. 
Una solución en G para esta ecuación se muestra en la figura 2.49. 
Figura 2.49. Solución de la ecuación cuadrática.
Curso Básico de LabVIEW 6i 
100 
Se utiliza un nodo de fórmula para calcular los términos más útiles. 
En LabVIEW la función raíz cuadrada no permite un argumento negativo. Por lo 
tanto se utiliza la función >=0 para determinar el signo del discriminante y luego la 
función Select para escoger el resultado corregido de la raíz cuadrada. 
FIN EJERCICIO 2.11
Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 
101 
2.8 ACCIONES MECÁNICAS DE LOS CONTROLES BOOLEANOS 
Los controles booleanos pueden ser personalizados con seis diferentes tipos de 
acciones mecánicas, permitiendo así obtener mayor control sobre las tareas a 
desarrollar y lograr que los paneles frontales de los instrumentos virtuales puedan 
parecerse más a los instrumentos físicos. 
Para cambiar la acción mecánica de un control booleano se debe seguir los 
siguientes pasos: 
1. Seleccionar el control booleano apropiado de acuerdo con su aplicación. 
2. Del menú del control, seleccionar “Mechanical Action”. 
3. Escoger la acción mecánica requerida. 
En la figura 2.50 se observa las acciones mecánicas de un control booleano. 
Figura 2.50. Acciones Mecánicas.
Curso Básico de LabVIEW 6i 
102 
Algunos controles booleanos vienen predefinidos por LabVIEW con algún tipo de 
acción mecánica, ya que fueron diseñados para desempeñar una tarea específica. 
Los controles “STOP” y “CANCEL” pueden ser un buen ejemplo de ello. La figura 
2.51 muestra el control booleano “STOP” con su respectiva acción mecánica. 
Figura 2.51. Botón STOP con acción mecánica predefinida. 
Las acciones mecánicas se dividen en dos tipos: Switch y Latch. 
Los Switch son mecanismos que retornan al estado inicial una vez el usuario lo 
decida. Se muestran en la figura 2.52. 
Switch when pressed Switch when released Switch until released 
Figura 2.52. Acciones Mecánicas tipo Switch.
Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 
103 
Los Latch son mecanismos que retornan al estado inicial cuando el valor sea leído 
por el VI o cuando el usuario así lo determine. Son mostrados en la figura 2.53. 
Latch When Pressed Latch When Release Latch Until Released 
Figura 2.53. Acciones Mecánicas tipo Latch. 
2.8.1 Switch When Pressed 
Este mecanismo permite que los controles booleanos se comporten de manera 
similar al interruptor de control de una lámpara. Es decir la variable booleana sólo 
cambia de estado cuando el control es presionado por el usuario. Ver figura 2.54. 
Figura 2.54. Switch When Pressed. 
En la figura 2.54 la acción del clic 
del ratón se muestra a través de la 
letra “m” y la respuesta del control 
o variable booleana es “v”. 
Nótese que cuando en ratón es 
presionado la variable booleana 
cambia de estado y permanece así 
aunque el botón del ratón sea 
liberado.
Curso Básico de LabVIEW 6i 
104 
La figura 2.55 muestra un VI donde el interruptor está funcionando como un Switch 
When Pressed. Al ejecutar este VI se podrá observar como la salida sólo cambia 
de estado cuando el usuario lo decida. 
Se debe recordar que el botón STOP posee una acción mecánica predefinida. 
Figura 2.55. Control booleano trabajando como un Switch When Pressed. 
2.8.2 Switch When Released 
Este mecanismo actúa sobre la variable sólo cuando el clic del ratón es liberado. 
El control volverá a su estado anterior sólo cuando el usuario decida volver a 
accionarlo.
Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 
105 
Figura 2.56. Switch When Released. 
Nótese que la variable “v” NO 
cambia de estado cuando se 
presiona el botón de ratón. Sólo 
lo hace cuando el botón es 
liberado y permanece en su 
nuevo estado hasta que el 
usuario decida volver a presionar 
y soltar el botón del ratón. 
En las figuras 2.57 a 2.59 se muestra la manera de actuar de Switch When 
Released al tratar de controlar una salida. 
La figura 2.57 muestra el control booleano configurado con acción mecánica 
Switch When Released. Su estado inicial es OFF. 
Figura 2.57. Control booleano trabajando como un Switch When Released.
Curso Básico de LabVIEW 6i 
106 
En la figura 2.58 el control ha sido accionado a través de un clic, pero el botón del 
ratón no ha sido liberado, por lo anterior, la salida no ha cambiado su estado. 
Nótese la posición del control. 
Figura 2.58. Control accionado a través de un clic del ratón. 
El botón del ratón no ha sido liberado. 
En la figura 2.59 se ha liberado el botón del ratón y por lo tanto la salida ha 
cambiado su estado. 
Figura 2.59. Clic del ratón liberado.
Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 
107 
2.8.3 Switch Until Released 
Cambia el valor de control mientras el botón del ratón es presionado. La figura 
2.60 muestra el comportamiento de un control booleano configurado con esta 
acción mecánica. 
Figura 2.60. Switch Until Released. 
Al presionar el botón “m” del ratón 
la variable “v” cambia de estado, 
pero sólo permanecerá así hasta 
que el botón del ratón “m” sea 
liberado. 
Esta acción mecánica simula el 
funcionamiento de un pulsador. 
Por ejemplo el pulsador que 
controla un timbre. 
La figura 2.61 muestra un VI que al ejecutarse permite observar el funcionamiento 
de la acción mecánica Switch Until Released.
Curso Básico de LabVIEW 6i 
108 
Figura 2.61. Control booleano trabajando como un Switch Until Released. 
2.8.4 Latch When Pressed 
Este mecanismo cambia el valor del control cuando el usuario hace un clic sobre 
el control booleano, este retiene su valor hasta que el VI lo lea, una vez sea leído 
el control vuelve a su valor por defecto, incluso si el usuario todavía tiene 
presionado el botón del ratón. Esta acción es especial para truncar la acción de 
un While Loop. 
La figura 2.62 muestra el comportamiento de la acción.
Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 
109 
Figura 2.62. Latch When Pressed. 
“m” muestra el comportamiento 
del botón del ratón. 
“v” muestra el comportamiento de 
la variable booleana. 
“RD” muestra las lecturas que el 
VI hace a la variable booleana. 
En la figura 2.63 se muestra un VI que al ejecutarse permite observar el 
comportamiento de esta acción mecánica. 
Figura 2.63. Control booleano trabajando como un Latch When Pressed.
Curso Básico de LabVIEW 6i 
110 
2.8.5 Latch When Released 
Este mecanismo de acción trabaja de manera similar al Latch When Pressed, con 
la diferencia de que el control actúa únicamente cuando el usuario libera el clic del 
ratón. El objeto booleano retendrá su valor hasta que el VI lo pueda leer. 
Esta acción trabaja de manera similar a las cajas de botones o sistemas de 
botones utilizados en algunos sistemas de control. También es muy utilizado para 
detener ciclos While y para los botones en cuadros de diálogo. 
La figura 2.64 muestra el comportamiento de la acción. 
Figura 2.64. Latch When Released. 
“m” muestra el comportamiento 
del botón del ratón. 
“v” muestra el comportamiento 
de la variable booleana. 
“RD” muestra las lecturas que el 
VI hace a la variable booleana. 
En la figura 2.65 se muestra un VI que al ejecutarse permite observar el 
comportamiento de esta acción mecánica.
Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 
111 
Figura 2.65. Control booleano trabajando como un Latch When Released. 
2.8.6 Latch Until Released 
El mecanismo de acción cambia el valor del control haciendo un clic sobre éste y 
retiene el valor hasta que el VI lo lee o el usuario lo libera, dependiendo de que 
fuera lo último que ocurrió. 
La figura 2.66 muestra el comportamiento de la acción. 
Figura 2.66. Latch Until Released. 
“m” muestra el comportamiento 
del botón del ratón. 
“v” muestra el comportamiento de 
la variable booleana. 
“RD” muestra las lecturas que el 
VI hace a la variable booleana.
Curso Básico de LabVIEW 6i 
112 
En la figura 2.67 se muestra un VI que al ejecutarse permite observar el 
comportamiento de esta acción mecánica. 
Figura 2.67. Control booleano trabajando como un Latch Until Released. 
Importante: Los controles booleanos que utilizan las acciones tipo Latch no 
pueden generar variables locales. 
EJERCICIO OPCIONAL 2.12 APLICACIÓN DE UNA ESTRUCTURA DE 
SECUENCIA A LA MEDICIÓN DE ENERGÍA 
Un transductor de potencia activa instantánea está conectado a una carga 
eléctrica. Se requiere calcular la energía consumida por la carga en un intervalo 
de tiempo definido por el operador a través de un botón de paro. 
La energía esta definida según la ecuación 2.2.
Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 
113 
E ( t ) = 
P ( t ) 
dt 
Σ 
∫ 
− 
= − − 
= 
1 
0 
1 
2 
1 
*( ) 
N 
i 
i i 
t 
t 
E Pi T T 
Ecuación 2.2. Energía. 
La Figura 2.68 muestra el diagrama de bloques que realiza la tarea solicitada. 
Del identificador de diagrama de la estructura sequence se puede observar que 
esta posee tres frames (0, 1 y 2) de los cuales sólo es visible el cero. Los otros 
dos frames se ven en las figuras 2.70 y 2.71 respectivamente. 
Figura 2.68. Diagrama de bloques. 
La estructura while es utilizada únicamente para dar continuidad a la ejecución y 
esperar la orden de PARO. 
Para calcular la energía es necesario tomar un tiempo de referencia entregado por 
la función Tick Count antes de realizar cualquier otra tarea.
Curso Básico de LabVIEW 6i 
114 
La función que simula la tarea de recoger los datos enviados por un dispositivo de 
adquisición se muestra en la figura 2.69 y se puede encontrar en la paleta de 
funciones en el submenú Tutorial. 
Figura 2.69. Función que lee el sensor. 
La salida de esta función está en Voltios y se supondrá que el transductor 
conectado al canal 0 del dispositivo de adquisición 1 especifica un factor de 10000 
W/V, por lo que se debe multiplicar por 10000 para llevar la salida a W y luego 
dividir por 1000 para llevarla a kW. Desde luego, también se puede simplemente 
multiplicar por 10. 
Figura 2.70. Segundo frame de la secuencia. 
De la ecuación 2.2 se sabe que el consumo de energía en la primera iteración es 
E0=P0*(T0-T-1), donde T-1 es el tiempo de referencia de la rutina y T0 el tiempo 
tomado para el cálculo de la energía en la primera iteración. La diferencia (Ti+1-Ti) 
es el intervalo de tiempo transcurrido entre iteraciones (Tiempo-Ciclo). Como Tick 
Count tiene su salida en milisegundos se debe dividir por 1000 para llevarla a 
segundos y por 3600 para llevarla a horas. Esto se puede realizar con una sola 
división por 3600000.
Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 
115 
El tiempo de referencia para cada nuevo ciclo es el tiempo calculado en la 
iteración anterior, por lo que es necesario generar un shift register para calcular la 
variable Tiempo-Ciclo. 
Figura 2.71. Tercer frame de la secuencia. 
Con el fin de poder acumular los valores de energía de cada lapso de tiempo, es 
decir la suma de los Ei, es necesario contar con un segundo shift register, que se 
debe inicializar en cero. Obsérvese lo necesario de estos elementos para contar 
con una historia acumulativa de esta variable energía. 
Cuando se desea que un graficador Chart muestre varias curvas distintas, 
simultáneamente, se debe generar un Cluster para lo cual es necesaria la función 
bundle. Esta función se explicará en detalle más adelante y se puede encontrar 
en Functions>>Cluster>>Bundle. 
Figura 2.72. Varias gráficas en un mismo chart. 
El panel frontal de esta aplicación se observa en la figura 2.73.
Curso Básico de LabVIEW 6i 
116 
Figura 2.73. Panel Frontal para el ejercicio 2.12. 
Obsérvese que el indicador de Energía total sólo se actualizará hasta que se 
presione el botón de detener, ya que se encuentra localizado por fuera del ciclo. 
Para efectos de simulación es conveniente modificar la escala de tiempo para 
observar resultados más rápidamente. Por ejemplo, se puede reemplazar la 
constante 3600000 del frame 1 por 3600 para que 1 hora real sea 1 segundo de 
simulación. 
FIN EJERCICIO OPCIONAL 2.12
Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 
117 
2.9 EJERCICIOS PROPUESTOS 
1. Se requiere una variable de iteración para una estructura For Loop que se 
comporte según: 
a) For ( i = 0; i <= 50; i = i+2 ) 
b) For ( i = 7; i < 10; i = i+0.01 ) 
c) For ( i = 100; i >= 10; i = i-5 ) 
2. Utilizando “Digital Thermometer.vi”, escribir un programa que genere una 
alarma cuando la temperatura leída esté por encima de un valor máximo 
permitido o por debajo de un valor mínimo permitido. 
3. Hacer que un While se comporte como un For. Es decir que se detenga en 
un número definido de iteraciones o cuando el usuario presione parar. 
4. Resolver la ecuación cuadrática utilizando únicamente un nodo de fórmula. 
Optimizar el código del nodo a sólo 4 instrucciones. Recordar que el nodo 
de formula no puede operar con complejos, por lo que las salidas serán las 
partes reales e imaginarias de las raíces. 
5. Hacer que una estructura While Loop se comporte como un WHILE..DO y 
no como un DO..WHILE. Esto es, que la condición de ejecución del ciclo 
sea revisada al inicio de cada iteración y no al final.
3. ARREGLOS Y CLUSTERS. 
3.1 OBJETIVO 
Estudiar los arreglos y los clusters de LabVIEW, su utilidad y las principales 
herramientas para su utilización y manejo. 
3.2 ARREGLOS 
Un arreglo es una colección ordenada de variables del mismo tipo. Puede tener 
una o varias dimensiones y hasta 231-1 elementos por dimensión. 
Para crear un control o indicador tipo arreglo se debe seguir estos pasos: 
1. Poner en el Panel Frontal un contenedor de arreglos. Este se encuentra en la 
paleta de controles en el submenú Array&Cluster >>Array, como se observa 
en la figura 3.1. 
2. Poner dentro del contenedor un control o un indicador del tipo de dato que se 
desee el arreglo. No es posible poner dentro del contenedor ni gráficas ni 
contenedores de arreglos.
Facultad de Ingeniería Eléctrica. Universidad Tecnológica de Pereira 
119 
Figura 3.1. Paleta de controles Array&Cluster. 
La figura 3.2 muestra la secuencia descrita para crear un arreglo de controles 
numéricos. 
Figura 3.2. Secuencia de creación de un arreglo numérico. 
Los elementos de los arreglos están ordenados desde la posición 0 hasta la 
posición N-1 donde N es el tamaño del arreglo. 
La figura 3.3 muestra un arreglo booleano de 6 elementos.
Curso Básico de LabVIEW 6i 
120 
En general : 
A[ i ] = [ a0, a1, a2 , ... , ai , ... , aN-1 ]; 
Figura 3.3. Organización de los elementos. 
En la esquina superior izquierda del contenedor de arreglos se observa un control 
numérico denominado indicador de índice (index display). Con él se puede 
controlar qué elemento del arreglo se visualizará en la primera posición del 
contenedor. Además con la herramienta de posición se puede redimensionar el 
número de elementos visibles. La figura 3.4 muestra un mismo arreglo numérico 
de 4 elementos en diferentes presentaciones. 
Figura 3.4. Arreglo numérico en diferentes presentaciones. 
Como se puede observar, el tamaño del arreglo es independiente de la 
presentación que el usuario dé a este. Cuando el tamaño visualizado es mayor
Facultad de Ingeniería Eléctrica. Universidad Tecnológica de Pereira 
121 
que el tamaño del arreglo, o que el número de elementos restantes, las posiciones 
no utilizadas estarán deshabilitadas y se mostrarán atenuadas (grayed-out), como 
en los casos P1, P3 y P4 de la figura 3.4. 
Con la herramienta de posición también es posible redimensionar el index display 
con el objetivo de agregar dimensiones al arreglo. Por defecto los arreglos son de 
una dimensión pero es posible adicionar múltiples dimensiones. 
La figura 3.5 muestra la secuencia para crear un arreglo numérico de dos 
dimensiones. En este caso el primer index display es para las filas y el segundo 
para las columnas. 
Figura 3.5. Adición de una dimensión al arreglo. 
El solo hecho de adicionar un elemento al index display es suficiente para obtener 
un arreglo de dos dimensiones. Luego, si se desea, se puede ampliar el área 
visible del arreglo con la herramienta de posición como se muestra en la figura 3.5.
Curso Básico de LabVIEW 6i 
122 
La figura 3.6 muestra dos posibles presentaciones de un arreglo numérico de dos 
dimensiones de tamaño 3x4 (3 filas y 4 columnas). 
Figura 3.6. Dos presentaciones de un arreglo 2D 3x4. 
En la ventana de diagramación un arreglo posee un terminal único. Se distinguen 
de los terminales de escalares en los corchetes que encierran el tipo de dato. 
Estos corchetes se hacen más gruesos para arreglos de 2 dimensiones. La figura 
3.7 muestra terminales de arreglo para varios tipos de datos. 
Figura 3.7. Terminales de arreglo.
Facultad de Ingeniería Eléctrica. Universidad Tecnológica de Pereira 
123 
En el menú Array de la paleta de funciones se puede encontrar todas las 
funciones necesarias para manipular los arreglos. La figura 3.8 enseña la paleta 
de funciones de arreglos. 
Figura 3.8. Funciones de arreglos. 
A continuación se describe las funciones de esta paleta. 
Array Size: 
Figura 3.9. Función Array Size. 
Retorna el tamaño N del arreglo de entrada. Si este es de n dimensiones, la 
salida será un vector de n elementos donde cada uno mostrará el tamaño de cada 
dimensión.
Curso Básico de LabVIEW 6i 
124 
Index Array: 
Figura 3.10. Función Index Array. 
Retorna el elemento indicado de un arreglo. Se debe adicionar tantos elementos 
de índice como dimensiones tenga el arreglo. 
La salida de esta función también puede ser un arreglo cuando se cablean sólo 
algunos de los índices. 
Replace Array Subset: 
Figura 3.11. Función Replace Array Subset. 
Reemplaza el elemento indicado en los terminales de índice por el elemento que 
este cableado al terminal new element/subarray. Se debe agregar tantos 
terminales de índice como dimensiones tenga el arreglo.
Facultad de Ingeniería Eléctrica. Universidad Tecnológica de Pereira 
125 
Si se desea reemplazar varios elementos, es decir una porción de arreglo, basta 
con cablear el nuevo arreglo al terminal new element/subarray y establecer los 
índices correspondiente a la porción de arreglo a reemplazar. 
Si no se cablea una dimensión, la función reemplazará todos los elementos en 
esta dimensión comenzado en la posición 0. 
El nuevo elemento o arreglo debe ser del mismo tipo y dimensión del arreglo 
inicial. 
Al igual que la mayoría de funciones en LabVIEW, es polimórfica y puede trabajar 
con arreglos de cualquier tipo y dimensión. 
Insert Into Array: 
Figura 3.12. Función Insert Into Array. 
Inserta un arreglo o un elemento en la posición especificada por el terminal de 
índice. Cuando no se cablea este terminal, el arreglo o elemento se inserta al final 
del arreglo de entrada. 
Delete From Array: 
Figura 3.13. Función Delete From Array.
Curso Básico de LabVIEW 6i 
126 
Elimina un elemento o arreglo del arreglo de entrada. Además de devolver el 
arreglo editado, también devuelve la porción de arreglo eliminada. 
Initialize Array: 
Figura 3.14. Función Initialize Array. 
Retorna un arreglo de n dimensiones, donde todos los elementos serán 
inicializados con el valor y tipo de dato cableado en element. 
Se debe adicionar tantos elementos de índice como dimensiones se desee en la 
salida. 
Build Array: 
Figura 3.15. Función Build Array. 
Construye un arreglo de n dimensiones con los elementos de entrada que pueden 
ser de n o de n-1 dimensiones.
Facultad de Ingeniería Eléctrica. Universidad Tecnológica de Pereira 
127 
Cuando todas las entradas poseen dimensión n, la salida será de dimensión n+1. 
Ahora bien, si se desea que la salida sea un arreglo de dimensión n conformado 
por la concatenación de todas las entradas, entonces se debe seleccionar 
Concatenate Inputs del menú de la función. 
Array Subset: 
Figura 3.16. Función Array Subset. 
Retorna una porción del arreglo de entrada (sub-arreglo). 
index(0) indica la posición de inicio y length el número de elementos que tendrá el 
sub-arreglo. LabVIEW adicionará tantos elementos de índice como dimensiones 
tenga el arreglo de entrada. 
Rotate 1D Array: 
Figura 3.17. Función Rotate 1D Array.
Curso Básico de LabVIEW 6i 
128 
Envía los últimos n elementos de un arreglo al principio del mismo. Si n es un 
número negativo, se rotarán los primeros n elementos al final del arreglo. Si n es 
0, N ó -N el vector de salida es igual al de entrada. 
Reverse 1D Array: 
Figura 3.18. Función Reverse 1D Array. 
Reordena todas las posiciones del arreglo desde el último elemento hasta el 
primero. 
Search 1D Array: 
Figura 3.19. Función Search 1D Array. 
Busca element dentro de un arreglo de una dimensión comenzando desde start 
index y retorna la posición donde se encontró. De no hallar ninguna coincidencia 
retorna " - 1 ".
Facultad de Ingeniería Eléctrica. Universidad Tecnológica de Pereira 
129 
Split 1D Array: 
Figura 3.20. Función Split 1D Array. 
Divide el arreglo de entrada en el elemento index regresando dos sub-arreglos 
como se muestra en la figura 3.20. 
Sort 1D Array: 
Figura 3.21. Función Sort 1D Array. 
Ordena un arreglo de forma ascendente si es numérico o alfabéticamente si es 
tipo cadena. 
Array Max & Min: 
Figura 3.22. Función Array Max & Min. 
Retorna los valores máximo y mínimo de un arreglo numérico con sus respectivas 
posiciones.
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view
Lab view

Más contenido relacionado

La actualidad más candente

Características estáticas y dinámicas de los instrumentos de medición
Características estáticas y dinámicas de los instrumentos de mediciónCaracterísticas estáticas y dinámicas de los instrumentos de medición
Características estáticas y dinámicas de los instrumentos de mediciónbrian lucena
 
Manual de programacion PLC Crouzet Millenium
Manual de programacion PLC Crouzet MilleniumManual de programacion PLC Crouzet Millenium
Manual de programacion PLC Crouzet MilleniumJosé Luis Lozoya Delgado
 
Fundamentos incertidumbre
Fundamentos incertidumbreFundamentos incertidumbre
Fundamentos incertidumbreWadid Cantillo
 
ingeniería de control
ingeniería de control ingeniería de control
ingeniería de control RRcarlaRR
 
Tema 8 Tipos de Errores_ICI_Equipo PLC
Tema 8 Tipos de Errores_ICI_Equipo PLCTema 8 Tipos de Errores_ICI_Equipo PLC
Tema 8 Tipos de Errores_ICI_Equipo PLCUDO Monagas
 
Tutorial sim electricidad_electromecanica
Tutorial sim electricidad_electromecanicaTutorial sim electricidad_electromecanica
Tutorial sim electricidad_electromecanicaIng. Electromecanica
 
Sensores y transductores
Sensores  y transductoresSensores  y transductores
Sensores y transductoresAlee Tr
 

La actualidad más candente (11)

Características estáticas y dinámicas de los instrumentos de medición
Características estáticas y dinámicas de los instrumentos de mediciónCaracterísticas estáticas y dinámicas de los instrumentos de medición
Características estáticas y dinámicas de los instrumentos de medición
 
Proteus
ProteusProteus
Proteus
 
Manual de programacion PLC Crouzet Millenium
Manual de programacion PLC Crouzet MilleniumManual de programacion PLC Crouzet Millenium
Manual de programacion PLC Crouzet Millenium
 
Error y fuente de error
Error y fuente de errorError y fuente de error
Error y fuente de error
 
Fundamentos incertidumbre
Fundamentos incertidumbreFundamentos incertidumbre
Fundamentos incertidumbre
 
Protocolo hart
Protocolo hartProtocolo hart
Protocolo hart
 
ingeniería de control
ingeniería de control ingeniería de control
ingeniería de control
 
Tema 8 Tipos de Errores_ICI_Equipo PLC
Tema 8 Tipos de Errores_ICI_Equipo PLCTema 8 Tipos de Errores_ICI_Equipo PLC
Tema 8 Tipos de Errores_ICI_Equipo PLC
 
Tutorial sim electricidad_electromecanica
Tutorial sim electricidad_electromecanicaTutorial sim electricidad_electromecanica
Tutorial sim electricidad_electromecanica
 
PLC y Electroneumática: Cadesimu
PLC y Electroneumática: Cadesimu PLC y Electroneumática: Cadesimu
PLC y Electroneumática: Cadesimu
 
Sensores y transductores
Sensores  y transductoresSensores  y transductores
Sensores y transductores
 

Destacado

L circuitos electricos problemas resueltos julio usaola garcia
L circuitos electricos problemas resueltos julio usaola garciaL circuitos electricos problemas resueltos julio usaola garcia
L circuitos electricos problemas resueltos julio usaola garciaAlberto Escamilla
 
Tutorial DaNI Labview 2012
Tutorial DaNI Labview 2012 Tutorial DaNI Labview 2012
Tutorial DaNI Labview 2012 dave
 
Trifasicos
TrifasicosTrifasicos
Trifasicosyuelse
 
Ejercicios Matlab
Ejercicios MatlabEjercicios Matlab
Ejercicios Matlabdecm32
 
Practica pid labview
Practica pid labviewPractica pid labview
Practica pid labviewPablo Lopez
 
Integracion de LabVIEW, SolidWorks y Lego Mindstorms para diseño de Brazo Mec...
Integracion de LabVIEW, SolidWorks y Lego Mindstorms para diseño de Brazo Mec...Integracion de LabVIEW, SolidWorks y Lego Mindstorms para diseño de Brazo Mec...
Integracion de LabVIEW, SolidWorks y Lego Mindstorms para diseño de Brazo Mec...Giovanni Mendoza
 
Ejercicios lab view
Ejercicios lab viewEjercicios lab view
Ejercicios lab viewgato4048
 
Introduccion Lab View Seis Horas
Introduccion Lab View   Seis HorasIntroduccion Lab View   Seis Horas
Introduccion Lab View Seis HorasVicente Torres
 
Introducción a simulink
Introducción a simulinkIntroducción a simulink
Introducción a simulinkyuelse
 
Prácticas labview
Prácticas labviewPrácticas labview
Prácticas labviewlizluvzmcr
 
Solución de Ecuaciones Diferenciales en Simulink
Solución de Ecuaciones Diferenciales en SimulinkSolución de Ecuaciones Diferenciales en Simulink
Solución de Ecuaciones Diferenciales en SimulinkJair Ospino Ardila
 
Libro Labview 8.2
Libro Labview 8.2Libro Labview 8.2
Libro Labview 8.2Andy Medina
 
Guia rapida de matlab (comandos basicos, graficacion y programacion)
Guia rapida de matlab (comandos basicos, graficacion y programacion)Guia rapida de matlab (comandos basicos, graficacion y programacion)
Guia rapida de matlab (comandos basicos, graficacion y programacion)morones.om
 
Practica 2 Funciones de Comparación en LabView
Practica 2 Funciones de Comparación en LabViewPractica 2 Funciones de Comparación en LabView
Practica 2 Funciones de Comparación en LabViewSaul Olaf Loaiza Meléndez
 

Destacado (20)

L circuitos electricos problemas resueltos julio usaola garcia
L circuitos electricos problemas resueltos julio usaola garciaL circuitos electricos problemas resueltos julio usaola garcia
L circuitos electricos problemas resueltos julio usaola garcia
 
Motor dc control maxonmotor
Motor dc control maxonmotorMotor dc control maxonmotor
Motor dc control maxonmotor
 
Tutorial DaNI Labview 2012
Tutorial DaNI Labview 2012 Tutorial DaNI Labview 2012
Tutorial DaNI Labview 2012
 
Trifasicos
TrifasicosTrifasicos
Trifasicos
 
Ejercicios Matlab
Ejercicios MatlabEjercicios Matlab
Ejercicios Matlab
 
Ejercicios De Matlab
Ejercicios De MatlabEjercicios De Matlab
Ejercicios De Matlab
 
Practica pid labview
Practica pid labviewPractica pid labview
Practica pid labview
 
Integracion de LabVIEW, SolidWorks y Lego Mindstorms para diseño de Brazo Mec...
Integracion de LabVIEW, SolidWorks y Lego Mindstorms para diseño de Brazo Mec...Integracion de LabVIEW, SolidWorks y Lego Mindstorms para diseño de Brazo Mec...
Integracion de LabVIEW, SolidWorks y Lego Mindstorms para diseño de Brazo Mec...
 
Ejercicios lab view
Ejercicios lab viewEjercicios lab view
Ejercicios lab view
 
Introduccion Lab View Seis Horas
Introduccion Lab View   Seis HorasIntroduccion Lab View   Seis Horas
Introduccion Lab View Seis Horas
 
Laplace
LaplaceLaplace
Laplace
 
Principios de labview
Principios de labviewPrincipios de labview
Principios de labview
 
Ejercicios propuesto de labview
Ejercicios  propuesto  de labviewEjercicios  propuesto  de labview
Ejercicios propuesto de labview
 
6.6 catalogo 2014 alfaomega
6.6 catalogo 2014 alfaomega6.6 catalogo 2014 alfaomega
6.6 catalogo 2014 alfaomega
 
Introducción a simulink
Introducción a simulinkIntroducción a simulink
Introducción a simulink
 
Prácticas labview
Prácticas labviewPrácticas labview
Prácticas labview
 
Solución de Ecuaciones Diferenciales en Simulink
Solución de Ecuaciones Diferenciales en SimulinkSolución de Ecuaciones Diferenciales en Simulink
Solución de Ecuaciones Diferenciales en Simulink
 
Libro Labview 8.2
Libro Labview 8.2Libro Labview 8.2
Libro Labview 8.2
 
Guia rapida de matlab (comandos basicos, graficacion y programacion)
Guia rapida de matlab (comandos basicos, graficacion y programacion)Guia rapida de matlab (comandos basicos, graficacion y programacion)
Guia rapida de matlab (comandos basicos, graficacion y programacion)
 
Practica 2 Funciones de Comparación en LabView
Practica 2 Funciones de Comparación en LabViewPractica 2 Funciones de Comparación en LabView
Practica 2 Funciones de Comparación en LabView
 

Similar a Lab view

Tutorial de computacion basica ii
Tutorial de computacion basica iiTutorial de computacion basica ii
Tutorial de computacion basica iiArelitateamo
 
Tfg victor rodriguez_ferrero
Tfg victor rodriguez_ferreroTfg victor rodriguez_ferrero
Tfg victor rodriguez_ferreroFelipe Herrera
 
Tfg victor rodriguez_ferrero
Tfg victor rodriguez_ferreroTfg victor rodriguez_ferrero
Tfg victor rodriguez_ferrerojhon3647
 
ESTACION TRANSFORMADORA.pdf
ESTACION TRANSFORMADORA.pdfESTACION TRANSFORMADORA.pdf
ESTACION TRANSFORMADORA.pdfAnaMaria175684
 
94548395 atp-b1-guia
94548395 atp-b1-guia94548395 atp-b1-guia
94548395 atp-b1-guiaarequipa_juan
 
Automatización de una Línea de Extrusión para fabricación de ladrillos
Automatización de una Línea de Extrusión para fabricación de ladrillosAutomatización de una Línea de Extrusión para fabricación de ladrillos
Automatización de una Línea de Extrusión para fabricación de ladrillosPedro Chavez
 
Avanzado excel
Avanzado excelAvanzado excel
Avanzado excelrfms07
 
61470227 mplab
61470227 mplab61470227 mplab
61470227 mplabrexmersxa7
 
Pic problemas resueltos
Pic problemas resueltos Pic problemas resueltos
Pic problemas resueltos GM Lamo
 
Estudio de Impacto Ambiental Definitivo Ex - Post MOCOLÍ
Estudio de Impacto Ambiental Definitivo Ex - Post  MOCOLÍEstudio de Impacto Ambiental Definitivo Ex - Post  MOCOLÍ
Estudio de Impacto Ambiental Definitivo Ex - Post MOCOLÍSambito
 
Tutorial de computación básica II
Tutorial de computación básica IITutorial de computación básica II
Tutorial de computación básica IIdenisse sancho
 
Cálculos de elementos de transformadores
Cálculos de elementos de transformadoresCálculos de elementos de transformadores
Cálculos de elementos de transformadorescamilo padilla
 

Similar a Lab view (20)

Curso lab view6i
Curso lab view6iCurso lab view6i
Curso lab view6i
 
Tutorial de computacion basica ii
Tutorial de computacion basica iiTutorial de computacion basica ii
Tutorial de computacion basica ii
 
Contenido
Contenido Contenido
Contenido
 
Tfg victor rodriguez_ferrero
Tfg victor rodriguez_ferreroTfg victor rodriguez_ferrero
Tfg victor rodriguez_ferrero
 
Tfg victor rodriguez_ferrero
Tfg victor rodriguez_ferreroTfg victor rodriguez_ferrero
Tfg victor rodriguez_ferrero
 
ESTACION TRANSFORMADORA.pdf
ESTACION TRANSFORMADORA.pdfESTACION TRANSFORMADORA.pdf
ESTACION TRANSFORMADORA.pdf
 
LIBRO LANCHA SOLAR A ESCALA REAL
LIBRO LANCHA SOLAR A ESCALA REALLIBRO LANCHA SOLAR A ESCALA REAL
LIBRO LANCHA SOLAR A ESCALA REAL
 
94548395 atp-b1-guia
94548395 atp-b1-guia94548395 atp-b1-guia
94548395 atp-b1-guia
 
Automatización de una Línea de Extrusión para fabricación de ladrillos
Automatización de una Línea de Extrusión para fabricación de ladrillosAutomatización de una Línea de Extrusión para fabricación de ladrillos
Automatización de una Línea de Extrusión para fabricación de ladrillos
 
Avanzado excel
Avanzado excelAvanzado excel
Avanzado excel
 
Pic
PicPic
Pic
 
MICROCONTROLADORES.
MICROCONTROLADORES.MICROCONTROLADORES.
MICROCONTROLADORES.
 
61470227 mplab
61470227 mplab61470227 mplab
61470227 mplab
 
Pic problemas resueltos
Pic problemas resueltos Pic problemas resueltos
Pic problemas resueltos
 
Pic gama-media
Pic gama-mediaPic gama-media
Pic gama-media
 
Sintonizacion PID
Sintonizacion PID Sintonizacion PID
Sintonizacion PID
 
Estudio de Impacto Ambiental Definitivo Ex - Post MOCOLÍ
Estudio de Impacto Ambiental Definitivo Ex - Post  MOCOLÍEstudio de Impacto Ambiental Definitivo Ex - Post  MOCOLÍ
Estudio de Impacto Ambiental Definitivo Ex - Post MOCOLÍ
 
1.memoria
1.memoria1.memoria
1.memoria
 
Tutorial de computación básica II
Tutorial de computación básica IITutorial de computación básica II
Tutorial de computación básica II
 
Cálculos de elementos de transformadores
Cálculos de elementos de transformadoresCálculos de elementos de transformadores
Cálculos de elementos de transformadores
 

Más de ford81

Matlab
MatlabMatlab
Matlabford81
 
Matlab basico
Matlab basicoMatlab basico
Matlab basicoford81
 
Matlab aplicacione s
Matlab aplicacione sMatlab aplicacione s
Matlab aplicacione sford81
 
Fi0708 ejercicios
Fi0708 ejerciciosFi0708 ejercicios
Fi0708 ejerciciosford81
 
Curso matlab
Curso matlabCurso matlab
Curso matlabford81
 
Curso de lab view seis horas
Curso de lab view seis horas Curso de lab view seis horas
Curso de lab view seis horas ford81
 
Apuntesmatlab
ApuntesmatlabApuntesmatlab
Apuntesmatlabford81
 
Tipos de sensores
Tipos de sensoresTipos de sensores
Tipos de sensoresford81
 
Teroria de sensores
Teroria de sensoresTeroria de sensores
Teroria de sensoresford81
 
Sensores
SensoresSensores
Sensoresford81
 
Robotica
RoboticaRobotica
Roboticaford81
 
Presentacion
PresentacionPresentacion
Presentacionford81
 
Practica5elcaanalogica
Practica5elcaanalogicaPractica5elcaanalogica
Practica5elcaanalogicaford81
 
Manejo de sensores
Manejo de sensoresManejo de sensores
Manejo de sensoresford81
 
Inst indus-circuitos_elect
Inst  indus-circuitos_electInst  indus-circuitos_elect
Inst indus-circuitos_electford81
 
Contactores y actuadores
Contactores y actuadoresContactores y actuadores
Contactores y actuadoresford81
 
Carrocería del carro electico
Carrocería del carro electicoCarrocería del carro electico
Carrocería del carro electicoford81
 

Más de ford81 (17)

Matlab
MatlabMatlab
Matlab
 
Matlab basico
Matlab basicoMatlab basico
Matlab basico
 
Matlab aplicacione s
Matlab aplicacione sMatlab aplicacione s
Matlab aplicacione s
 
Fi0708 ejercicios
Fi0708 ejerciciosFi0708 ejercicios
Fi0708 ejercicios
 
Curso matlab
Curso matlabCurso matlab
Curso matlab
 
Curso de lab view seis horas
Curso de lab view seis horas Curso de lab view seis horas
Curso de lab view seis horas
 
Apuntesmatlab
ApuntesmatlabApuntesmatlab
Apuntesmatlab
 
Tipos de sensores
Tipos de sensoresTipos de sensores
Tipos de sensores
 
Teroria de sensores
Teroria de sensoresTeroria de sensores
Teroria de sensores
 
Sensores
SensoresSensores
Sensores
 
Robotica
RoboticaRobotica
Robotica
 
Presentacion
PresentacionPresentacion
Presentacion
 
Practica5elcaanalogica
Practica5elcaanalogicaPractica5elcaanalogica
Practica5elcaanalogica
 
Manejo de sensores
Manejo de sensoresManejo de sensores
Manejo de sensores
 
Inst indus-circuitos_elect
Inst  indus-circuitos_electInst  indus-circuitos_elect
Inst indus-circuitos_elect
 
Contactores y actuadores
Contactores y actuadoresContactores y actuadores
Contactores y actuadores
 
Carrocería del carro electico
Carrocería del carro electicoCarrocería del carro electico
Carrocería del carro electico
 

Lab view

  • 1.
  • 2. CURSO BÁSICO DE LABVIEW 6i GERMÁN ANDRÉS HOLGUÍN LONDOÑO Profesor Auxiliar, Facultad de Ingeniería Eléctrica SANDRA MILENA PÉREZ LONDOÑO Docente Especial, Facultad de Ingeniería Eléctrica ÁLVARO ÁNGEL OROZCO GUTIÉRREZ Profesor Asociado, Facultad de Ingeniería Eléctrica UNIVERSIDAD TECNOLÓGICA DE PEREIRA
  • 3. ISBN: 958-8065-33-X Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira Impreso en Pereira, 2002.
  • 4. TABLA DE CONTENIDO 1. AMBIENTE DE DESARROLLO DE LabVIEW....................................................5 1.1 OBJETIVO ....................................................................................................5 1.2 DESCRIPCIÓN .............................................................................................5 1.3 Panel Frontal.................................................................................................7 1.4 Diagrama de bloques....................................................................................8 1.5 Paleta de herramientas .................................................................................9 1.6 Paleta de controles .....................................................................................11 1.7 Paleta de funciones.....................................................................................14 1.8 Barras de LabVIEW ....................................................................................18 1.8.1 Barra de Menús....................................................................................18 1.8.2 Barra de Herramientas del Panel Frontal .............................................22 1.8.3 Barra de Herramientas del Diagrama ...................................................24 1.9 Técnicas de cableado .................................................................................26 1.10 Técnicas de Edición de diagramas............................................................29 1.11 Técnicas de Navegación...........................................................................30 1.12 Tipos de cables.........................................................................................32 1.13 Tipos de datos numéricos .........................................................................33 1.14 Tipos de Terminales..................................................................................34 1.15 Ayudas de depuración ..............................................................................35 1.16 AMBIENTE DE DESARROLLO INTEGRADO de LabVIEW.....................36 1.16.1 Ejecución de LabVIEW.......................................................................36 1.16.2 Paletas y ventanas de LabVIEW........................................................39 1.16.3 Ubicación de los objetos.....................................................................41 1.16.4 Edición de objetos del panel...............................................................47 1.16.5 Cambiar el tamaño de los objetos ......................................................50 1.16.6 Ejecución de una aplicación ...............................................................52
  • 5. Curso Básico de LabVIEW 6i 2 1.16.7 Guardar un VI .....................................................................................53 EJERCICIO 1.1 CREACIÓN DE UN NUEVO VI...............................................55 1.17 EJERCICIOS PROPUESTOS...................................................................62 2. ESTRUCTURAS...............................................................................................63 2.1 OBJETIVO ..................................................................................................63 2.2 DESCRIPCIÓN ...........................................................................................63 2.3 Estructura “While Loop” ..............................................................................64 EJERCICIO 2.1 Simulación de la lectura de una temperatura..........................66 EJERCICIO 2.2 Generación de una onda seno................................................69 2.4 Estructura “For Loop” ..................................................................................71 EJERCICIO 2.3 Gráfica de 100 números aleatorios entre 10 y 50 ..................72 EJERCICIO 2.4 SUMAR los números enteros entre 1 y 100...........................74 EJERCICIO 2.5 promediAR los últimos dos datos aleatorios ..........................77 2.5 Estructura “SEQUENCE” .............................................................................78 EJERCICIO 2.6 Medir el tiempo que el pc tarda..............................................80 2.6 Estructura “Case”.......................................................................................83 EJERCICIO 2.7 Menú de opciones..................................................................85 2.7 Estructura “Formula Node”.........................................................................92 EJERCICIO 2.8 Utilización de los nodos de fórmula......................................93 EJERCICIO 2.9 Realizar el ejercicio 1.1 con un nodo de fórmula...................95 EJERCICIO 2.10 ejercicio 2.7 con un nodo de fórmula....................................96 EJERCICIO 2.11 La ecuación cuadrática.........................................................98 2.8 acciones mecánicas de los controles booleanos ......................................101 2.8.1 Switch When Pressed ........................................................................103 2.8.2 Switch When Released ......................................................................104 2.8.3 Switch Until Released.........................................................................107 2.8.4 Latch When Pressed ..........................................................................108 2.8.5 Latch When Released ........................................................................110 2.8.6 Latch Until Released ..........................................................................111 EJERCICIO opcional 2.12 Aplicación de una estructura de secuencia..........112
  • 6. Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 3 2.9 EJERCICIOS PROPUESTOS...................................................................117 3. ARREGLOS Y CLUSTERS. ...........................................................................118 3.1 OBJETIVO ................................................................................................118 3.2 ARREGLOS..............................................................................................118 EJERCICIO 3.1 De un arreglo 1D, generar las salidas REQUERIDAS..........132 EJERCICIO 3.2 Extraer datos de un arreglo 2D.............................................135 3.3 CLUSTERS...............................................................................................138 EJERCICIO 3.3 Utilización de los clusters......................................................143 3.4 EJERCICIOS PROPUESTOS...............................................................146 4. GRAFICADORES...........................................................................................147 4.1 OBJETIVO ................................................................................................147 4.2 DESCRIPCIÓN .........................................................................................147 4.3 GRAFICADOR WAVEFORM CHART.......................................................150 EJERCICIO 4.1 Gráfico de escalares waveform chart....................................151 EJERCICIO 4.2 Gráfico de vectores con waveform chart...............................155 4.4 Tipo de Dato WDT ....................................................................................158 EJERCICIO 4.3 waveform data type con waveform chart...............................161 EJERCICIO 4.4 MúLTIPLES GRÁFICAS EN UN waveform chart ..................163 EJERCICIO 4.5 cluster de escalares EN UNA waveform chart ......................165 4.5 GRAFICADOR WAVEFORM GRAPH ......................................................167 EJERCICIO 4.6 waveform graph utilizando datos WDT .................................169 Ejercicio 4.7 waveform graph a partir de un cluster ........................................172 Ejercicio 4.8 múltiples gráficos........................................................................173 4.6 GRAFICADOR XY GRAPH.......................................................................175 Ejercicio 4.9 XY Graph....................................................................................176 EJERCICIO 4.10 Múltiples Gráficos en un XY Graph.....................................179 4.7 EJERCICIOS PROPUESTOS...................................................................181 5. SUBVIS, VARIABLES LOCALES Y GLOBALES............................................182 5.1 ObjetivoS ..................................................................................................182 5.2 SubVIs ......................................................................................................182
  • 7. Curso Básico de LabVIEW 6i 4 5.3 Edición del Icono.......................................................................................184 5.4 Los Conectores.........................................................................................187 5.5 UTILIZACIÓN DE UN SUBVI....................................................................191 EJERCICIO 5.1 Filtrado de una señal.............................................................193 EJERCICIO 5.2 Menús en los Paneles frontales............................................201 EJERCICIO 5.3 Cargar el panel frontal de un subVI durante la ejecución......204 5.6 VARIABLES LOCALES.............................................................................210 EJERCICIO 5.4 Graficar datos de distinta fuente en un mismo chart.............211 5.7 VIARIABLES GLOBALES.........................................................................218 Ejercicio 5.5 Variables Globales......................................................................221 5.8 ejercicios propuestos.............................................................................223 6. CADENAS Y ARCHIVOS. ..............................................................................224 6.1 OBJETIVO ................................................................................................224 6.2 CADENAS.................................................................................................224 Ejercicio 6.1 CONCATENACIÓN, CONVERSIÓN Y BÚSQUEDA..................238 EJERCICIO 6.2 DATOS DE UN MEDIDOR...................................................240 6.3 ARCHIVOS ...............................................................................................243 Funciones......................................................................................................244 6.3.1 Escribir Datos en un Archivo .............................................................249 Ejercicio 6.3 guardar datos en un archivo ascii...............................................249 Ejercicio 6.4 CONSTRUIR UN ARCHIVO TIPO TAB DELIMITER..................251 6.3.2 Leer un archivo...................................................................................254 Ejercicio 6.5 RECUPERACION DE DATOS DE UN ARCHIVO ASCII............254 Ejercicio 6.6 ESCRIBIR UN ARCHIVO BINARIO............................................256 Ejercicio 6.7 RECUPERACIÓN DE datos de UN ARCHIVO BINARIO...........258 6.4 Funciones de alto nivel para el manejo de archivos..................................259 6.5 Ejercicios propuestos ................................................................................261
  • 8. 1. AMBIENTE DE DESARROLLO DE LabVIEW. 1.1 OBJETIVO Estudiar los conceptos fundamentales, la terminología empleada y los métodos básicos de utilización del sistema de desarrollo LabVIEW. 1.2 DESCRIPCIÓN LabVIEW (Laboratory Virtual Instrument Engineering Workbench) es un sistema de desarrollo basado en programación gráfica orientado a desarrollar aplicaciones para instrumentación que integra una serie de librerías para comunicación con instrumentos electrónicos como GPIB, RS232 o RS485 con tarjetas de adquisición de datos, sistemas de adquisición y acondicionamiento como VXI o SCXI, comunicaciones en redes TCP/IP, UDP, o en los estándares de software COM, OLE, DDE, DLL o ActiveX para Windows, así como AppleEvents para MacOS o PIPE para UNIX. Los programas realizados en LabVIEW se llaman instrumentos virtuales “VIs”, ya que tienen la apariencia de los instrumentos reales, sin embargo, poseen analogías con funciones provenientes de lenguajes de programación convencionales.
  • 9. Curso Básico de LabVIEW 6i 6 Las principales características de los VIs se pueden describir como: Los VIs contienen una interface interactiva de usuario, la cual se llama panel frontal, ya que simula el panel de un instrumento físico. Se puede entrar datos usando el teclado o el ratón y tener una visualización de los resultados en la pantalla del computador. El Panel Frontal es la interface hombre-máquina de un VI. Los VIs reciben instrucciones de un diagrama de bloques construido en lenguaje G el cual suministra una solución gráfica a un problema de programación. El diagrama de bloques es el código fuente de un VI. Los VIs usan una estructura hereditaria y modular que permite realizar programas por niveles o hacer programas con otros programas o subprogramas. Un VI contenido en otro VI es denominado subVI. Todo VI se puede convertir en subVI sin ningún tipo de cambio en su estructura. Con estas características LabVIEW permite dividir un programa en una serie de tareas las cuales son divisibles nuevamente hasta que una aplicación complicada se convierte en una serie de subtareas simples. Todos los anteriores conceptos están de acuerdo con las concepciones modernas de la programación modular. Además LabVIEW puede ser usado con poca experiencia en programación pues utiliza metodologías familiares a técnicos, ingenieros, doctores y la comunidad científica en general. Cada VI de LabVIEW cuenta con dos interfaces: panel frontal y diagrama de bloques. Éstas cuentan con paletas que contienen los objetos necesarios para implementar y desarrollar tareas. La figura 1.1. muestra estas interfaces dentro de un entorno Windows.
  • 10. Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 7 Figura 1.1. Interfaces de un VI. 1.3 PANEL FRONTAL Es la interface gráfica que simula el panel de un instrumento real, permite la entrada y salida de datos, puede contener pulsadores, perillas, botones, gráficos y en general controles e indicadores. Figura 1.2. Los controles son objetos que sirven para entrar datos al programa y pueden ser manipulados por el usuario. Los controles son variables de entrada. Los indicadores sirven para presentar los resultados entregados por el programa y no pueden ser manipulados por el usuario. Los indicadores son variables de salida.
  • 11. Curso Básico de LabVIEW 6i 8 Figura 1.2. Panel Frontal de una aplicación. 1.4 DIAGRAMA DE BLOQUES El diagrama de bloques contiene el código fuente gráfico del VI, posee funciones y estructuras que relacionan las entradas con las salidas creadas en el panel frontal. En un diagrama se distinguen: Terminales, que representan los controles e indicadores del panel. Funciones y SubVIs, que realizan tareas específicas. Estructuras y Cables que determinan el flujo de los datos en el programa. En general, cualquiera de estas partes del diagrama de un VI se denomina NODO. El diagrama de bloques de la figura 1.3 muestra el código fuente correspondiente al panel de la figura 1.2.
  • 12. Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 9 Figura 1.3. Diagrama de Bloques de una aplicación. 1.5 PALETA DE HERRAMIENTAS Contiene las herramientas necesarias para editar y depurar los objetos tanto del panel frontal como del diagrama de bloques. Figura 1.4. Figura 1.4. Paleta de Herramientas. Operación Asigna valores a los controles del panel frontal, se encuentra
  • 13. Curso Básico de LabVIEW 6i 10 disponible cuando se corre y edita la aplicación. Cuando edita objetos basados en texto o números, cambia el icono del puntero por el que se muestra. Posición Selecciona, mueve y redimensiona objetos. La herramienta cambia el icono del puntero cuando pasa por encima de objetos que pueden modificar su tamaño. Etiquetado Crea y edita textos tanto en el panel frontal como en el diagrama de bloques. El icono del puntero asociado a esta herramienta es el que se muestra. Cableado Se utiliza para generar la estructura lógica de eventos mediante la conexión de los terminales de cada objeto. Los cables determinan el flujo de los datos. Menú desplegable Permite obtener el menú de opciones de un objeto. Esta misma función se puede realizar haciendo un clic derecho del ratón sobre el objeto. Desplazamiento Mueve todos los objetos dentro de la ventana activa.
  • 14. Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 11 Punto de quiebre Detiene la ejecución del programa en el punto del diagrama donde se ponga. Se utiliza con fines de depuración. Punto de prueba Se pone sobre algún cable de conexión para verificar de forma temporal el valor que fluye a través de éste. Capturar color Obtiene el color del objeto que se señale. Colorear Cambia los colores de objetos y fondos. 1.6 PALETA DE CONTROLES Se utiliza únicamente en el panel frontal y contiene los objetos necesarios para crear una interface de entrada y salida de datos (controles e indicadores). Esta paleta se obtiene de la barra de menús con la opción Window>>Show Controls Palette, o haciendo clic derecho sobre el panel frontal. La paleta de controles se muestra en la figura 1.5.
  • 15. Curso Básico de LabVIEW 6i 12 Figura 1.5. Paleta de Controles. Existen submenús correspondientes a toolkits que sólo aparecen cuando se han instalado. Los toolkits son herramientas adicionales de software con fines específicos y especializados que se suministran como productos por separado. Cada submenú de la paleta contiene controles e indicadores respectivos de una clase de objetos. Por ejemplo, la figura 1.5b muestra los submenús más importantes:
  • 16. Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 13 Controles e Indicadores Numéricos. Controles e Indicadores Booleanos Controles e Indicadores String y Path. Controles e Indicadores Array&Cluster. Gráficas. Controles de Diálogo.
  • 17. Curso Básico de LabVIEW 6i 14 Figura 1.5b. Submenús de la paleta de controles. En la parte superior de las paletas hay tres herramientas como se muestra en la figura 1.6 que de izquierda a derecha sirven para: subir un nivel de submenú, buscar una función en la paleta y personalizar el contenido de la paleta respectivamente. Figura 1.6. Herramientas de las paletas y submenús. 1.7 PALETA DE FUNCIONES Se usa únicamente en el diagrama de bloques y contiene todos los objetos para crear y editar el código fuente. Esta paleta se obtiene de la barra de menús con la opción Window>>Show Functions Palette, o haciendo clic derecho en el diagrama. La paleta de controles se muestra en la figura 1.7. Esta paleta también puede ser personalizada haciendo uso de la herramienta mostrada en la figura 1.6. Además, los submenús correspondientes a los toolkits no estarán presentes hasta que se hayan adquirido e instalado.
  • 18. Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 15 Figura 1.7. Paleta de Funciones. Cada submenú de la paleta contiene funciones para distintas tareas. La figura 1.7b muestra los submenús más importantes: Estructuras.
  • 19. Curso Básico de LabVIEW 6i 16 Funciones para Clusters. Funciones Booleanas. Funciones de Cadena. Funciones de Arreglos. Funciones Numéricas.
  • 20. Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 17 Funciones de Comparación. Comunicaciones. Funciones de Archivo. Adquisición de Datos. Control de Instrumentos. Funciones para Gráficos 3D, Polares, Imágenes y Sonido.
  • 21. Curso Básico de LabVIEW 6i 18 Matemáticas. Funciones Avanzadas. Figura 1.7b. Submenús de la paleta de funciones. 1.8 BARRAS DE LABVIEW 1.8.1 Barra de Menús La barra de menús que presenta LabVIEW en la parte superior de un VI contiene diversos menús desplegables que cumplen diferentes funciones: Figura 1.8. Barra de menús. Menú File: Contiene entre otras las opciones convencionales del ambiente Windows (abrir, cerrar, guardar, imprimir, salir).
  • 22. Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 19 Crea un nuevo VI Crear un nuevo componente de LabVIEW Abre un VI existente Cierra la ventana activa Cierra todas las ventanas Guarda el VI activo Guarda el VI activo con otro nombre Guarda todos los VIs abiertos Guarda el VI activo con opciones Devuelve un VI a la última versión guardada Configura la página para impresión Ejecuta el asistente para impresión Imprime la ventana activa Abre las propiedades del VI activo Muestra un menú con los VIs abiertos recientemente Sale de LabVIEW Figura 1.9. Menú FILE. Menú Edit: Permite realizar las acciones de edición como copiar, cortar, pegar, deshacer, rehacer, borrar, importar y manipular componentes de LabVIEW. Deshace las últimas acciones Rehace las acciones deshechas Corta los objetos seleccionados y los envía al portapapeles Copia los objetos seleccionados y los envía al portapapeles Pega el contenido del portapapeles en la ventana activa Borra los objetos seleccionados Ejecuta el asistente de búsqueda de objetos y componentes Muestra los resultados de la búsqueda Ejecuta el editor de controles e indicadores Escala los objetos al redimensionar el panel frontal Permite definir el orden de los objetos del panel frontal Pone en el portapapeles un archivo gráfico. Remueve los cables con errores Crea un subVI del diagrama de bloques seleccionado Permite crear un menú personalizado para el VI activo Figura 1.10. Menú EDIT.
  • 23. Curso Básico de LabVIEW 6i 20 Menú Operate: Contiene las opciones necesarias para controlar la operación de los VIs. Ejecuta el VI activo Aborta la ejecución del VI activo Suspende la ejecución de un VI cuando es invocado Imprime el panel frontal cuando el VI se termina de ejecutar Genera un registro cuando el VI se termina de ejecutar Muestra las opciones del generador de registros Predetermina los valores actuales de los objetos Hace que los objetos regresen a su valor predeterminado Conmuta entre los modos edición y ejecución Figura 1.11. Menú OPERATE. Menú Tools: Contiene herramientas para la configuración de LabVIEW, de los proyectos y de los SubVIs. Accede al Explorador de componentes de NI Permite buscar o importar drivers para instrumentos Configura los canales y ejecuta el asistente de soluciones Compara el código y la jerarquías de VIs Accede las funciones de control de código fuente Permite documentar los cambios del VI activo Permite cambiar el nombre de usuario actual de LabVIEW Ejecuta las opciones de compilación Accede al explorador de librerías de VIs Edita o crea una librería de VIs LLB Navegador de Bases de Datos del SQL toolkit Diseñador para control difuso del FuzzyLogic toolkit Herramientas del Internet toolkit Herramientas de publicación en Web Herramientas Avanzadas de LabVIEW Accede las opciones de configuración de LabVIEW Figura 1.12. Menú TOOLS.
  • 24. Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 21 Menú Browse: Contiene opciones que permiten observar aspectos del VI activo y toda su jerarquía. Muestra la ventana de Jerarquía de un VI Muestra una lista de VIs que llaman al VI activo como un subVI Muestra una lista de los subVIs que componen el VI activo Muestra una lista de los subVIs del VI activo que no están abiertos Muestra una lista de tipos definidos del VI activo que no están abiertos Busca puntos de quiebre en el VI actual Figura 1.13. Menú BROWSE. Menú Window: Permite configurar la apariencia de las paletas y ventanas. Conmuta entre el panel frontal y el diagrama de bloques Muestra la paleta de funciones en el diagrama o controles en el panel Muestra la paleta de herramientas Muestra el contenido del portapapeles Muestra la lista de errores del VI activo Arregla las ventanas abiertas a la derecha e izquierda Arregla las ventanas abiertas arriba y abajo Maximiza la ventana activa Muestra una lista de las ventanas abiertas Figura 1.14. Menú WINDOW. Menú Help: Presenta la ayuda en línea, los manuales de referencia, la documentación impresa, los recursos de web, enlaces en Internet y los archivos de ayuda de cada toolkit instalado.
  • 25. Curso Básico de LabVIEW 6i 22 Muestra la ventana de ayuda básica de VIs funciones y controles Fija el contenido de la ventana de ayuda básica Accede a la documentación electrónica completa de LabVIEW Carga la versión PDF del conjunto de manuales de LabVIEW Abre el archivo de ayuda HLP del VI activo Accede al buscador de ejemplos de LabVIEW Permite acceder los recursos de web de National Instruments Muestra la información de referencia de un mensaje de error Ayuda del toolkit FlexMotion Ayuda del toolkit de procesamiento de imágenes Ayuda del toolkit para desarrollo en Internet Ayuda de los VIs de adquisición de imagen Ayuda del toolkit SQL Ayuda del toolkit ValueMotion Muestra entre otros la versión y el número de serie de LabVIEW Figura 1.15. Menú HELP. 1.8.2 Barra de Herramientas del Panel Frontal La barra de herramientas permite la ejecución, depuración y organización de los VIs. Esta localizada debajo de la barra de menús y se muestra en la figura 1.16. Figura 1.16. Barra de herramientas.
  • 26. Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 23 Ejecutar Botón para correr la aplicación, su forma varía de acuerdo al nivel jerárquico donde se ejecute. Botón Ejecutar cuando se corre una aplicación a nivel superior. Botón Ejecutar cuando se corre una aplicación a nivel inferior Botón Ejecutar cuando hay problemas con el código que impiden correr la aplicación. Haciendo clic sobre él se pueden localizar las causas del problema. Ejecutar continuamente Botón para ejecutar la aplicación repetidamente hasta que sea presionado de nuevo o se presione abortar. Apariencia del botón cuando un VI se está ejecutando continuamente. Abortar ejecución Aborta la ejecución de una aplicación. Apariencia del botón Abortar cuando un VI se está ejecutando.
  • 27. Curso Básico de LabVIEW 6i 24 Pausar Botón para pausar la aplicación. Si se presiona nuevamente la ejecución continuará. Apariencia del botón Pausar cuando un VI está pausando. Fuentes Menú para seleccionar tipos de letra en objetos y textos. Alineación Permite alinear objetos tanto en el panel frontal como en el diagrama. Distribución Permite distribuir uniformemente objetos tanto en el panel frontal como en el diagrama. Reorganización Permite reorganizar la posición de los objetos tanto en el panel frontal como en el diagrama. 1.8.3 Barra de Herramientas del Diagrama Esta barra contiene además de los mismos botones de la barra del panel frontal las herramientas de depuración.
  • 28. Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 25 La figura 1.17 muestra la barra de herramientas del diagrama de bloques. Figura 1.17. Barra de herramientas del diagrama. Depuración Botón para observar el flujo de datos en el diagrama de bloques. Apariencia del botón cuando un VI está en modo de depuración. Paro a la entrada En modo depuración sirve para generar un paro a la entrada de un nodo. Paro sobre En modo depuración sirve para saltar un nodo. Paro a la salida En modo depuración sirve para salir de un nodo. Advertencia Si está habilitado aparece al lado izquierdo de la barra de herramientas indicando que existen observaciones al código fuente pero que no impiden la ejecución del VI.
  • 29. Curso Básico de LabVIEW 6i 26 Entrar Botón que aparece cuando se editan textos o números y sirve para dar entrada a los datos. Esta función se puede cumplir también con la tecla <INTRO>. 1.9 TÉCNICAS DE CABLEADO El código fuente de un programa en LabVIEW se define con la interconexión gráfica de los objetos que lo componen. A continuación se muestra las técnicas de alambrado para la construcción de un VI. 1. Para comenzar a alambrar entre dos terminales se debe seleccionar la herramienta de cableado de la paleta de herramientas. Para enlazar los objetos del diagrama de bloques se coloca el puntero sobre el origen, cuando el origen parpadee se hace un clic sobre él, luego se lleva el puntero hasta el destino y cuando parpadee se hace otro clic sobre él. Figura 1.18. Objetos cableados. 2. Si se realiza un doble clic sobre el elemento origen sin llegar hasta el elemento destino el cable será temporal.
  • 30. Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 27 Figura 1.19. Cable temporal. 3. Para cambiar la dirección de un cable mientras se construye se utiliza la barra espaciadora. Figura 1.20. Cambio de dirección en cableado. 4. Para remover los cables malos, utilice <control+B>, o seleccione el menú Edit>>Remove Broken Wires. 5. Para resaltar porciones del cableado: • Con un solo clic Figura 1.21. Selección simple de cableado.
  • 31. Curso Básico de LabVIEW 6i 28 • Con doble clic Figura 1.22. Selección de un tramo de cableado. • Con triple clic Figura 1.23. Selección de todo un cable. LabVIEW 6i posee la capacidad de alambrar automáticamente los objetos a medida que se van colocando, conectando los terminales que mejor concuerden con el tipo de dato que se este manejando. Se puede activar o desactivar el alambrado automático utilizando la barra espaciadora mientras se acomodan objetos en el diagrama.
  • 32. Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 29 1.10 TÉCNICAS DE EDICIÓN DE DIAGRAMAS Cada objeto en LabVIEW posee un menú de opción que permite configurar su funcionamiento facilitando las tareas de edición. Este menú se puede acceder haciendo clic derecho sobre el objeto, sea un terminal, una estructura o un subVI, como se muestra en la figura 1.24. Figura 1.24. Menú de opciones de un subVI. Además existen métodos abreviados y herramientas para realizar tareas específicas comunes en la edición de VIs. Algunas de estos métodos y herramientas son: 1. Cuando se necesite crear una constante, un control o un indicador desde el diagrama de bloques para un objeto, función o nodo, hacer clic sobre el mismo y seleccionarlo del menú que se presenta.
  • 33. Curso Básico de LabVIEW 6i 30 2. Para visualizar la lista de errores cometidos durante la edición del diagrama, seleccionar el botón List Error que aparece en la barra de menús reemplazando el botón de ejecución. 3. Para rotar rápidamente entre los elementos de la paleta de herramientas se puede utilizar la tecla <Tab>. 4. Para rotar entre la herramienta de posición y la herramienta de operación en el panel frontal, utilizar la barra espaciadora. En el diagrama la barra espaciadora rota entre la herramienta de posición y la de cableado. 5. Para duplicar objetos usando la herramienta de posición, se debe señalar el objeto y oprimir la tecla <control> para arrastrarlo hasta el sitio deseado. 6. Para reemplazar un objeto, se hace clic con el botón derecho sobre el mismo y del menú que aparece seleccionar Replace. 1.11 TÉCNICAS DE NAVEGACIÓN En la edición de los VIs es necesario localizar objetos como textos, gráficos, funciones, subVIs entre otros. Para tal efecto es recomendable utilizar las siguientes técnicas de navegación: 1. Para encontrar un terminal, un control, una variable local o un atributo de nodo asociado con un objeto, hacer clic derecho sobre el control y seleccionar Find.
  • 34. Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 31 Figura 1.25. Opción Find. 2. Para encontrar texto y objetos en memoria, seleccionar Edit>>Find o hacer <Control + F>. Figura 1.26. Menú Find. 3. Para abrir un subVI desde la ventana de diagramación, hacer doble clic sobre él.
  • 35. Curso Básico de LabVIEW 6i 32 4. Para guardar el trabajo elija la opción del menú File>>Save. Si no se especifica una extensión, LabVIEW adicionará “.vi”. 1.12 TIPOS DE CABLES En lenguaje G, es posible identificar los tipos de datos por la forma, tamaño y color de sus terminales y cables. Entre controles e indicadores se pueden manejar datos escalares y arreglos de una o más dimensiones. Cuando el dato es escalar, la característica del cableado se muestra en la figura 1.27. Figura 1.27. Cable con dato escalar. Se observa la diferencia de contorno entre un indicador y un control. Cuando los datos pertenecen a un arreglo de una dimensión, el cableado se torna un poco más grueso. Figura 1.28. Cable con dato arreglo.
  • 36. Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 33 Para arreglos bidimensionales, el cable es doble. Figura 1.29. Cable con arreglo bidimensional. Cada control e indicador numérico encierra el tipo de dato que tiene asignado. Por ejemplo DBL significa que es de precisión doble. El color del cable es indicativo del tipo de dato. Por ejemplo Naranja es para números de punto flotante, Azul para enteros, Verde para booleanos, Fucsia para cadenas, etc. 1.13 TIPOS DE DATOS NUMÉRICOS Al igual que en otros lenguajes de programación los datos numéricos son de diferentes tipos según su naturaleza y el tamaño que ocupan en memoria.
  • 37. Curso Básico de LabVIEW 6i 34 TIPO COLOR BITS RANGO EXP REAL-Extendido Naranja 128 ±1.19e+4932 DBL REAL-Doble Naranja 64 ±1.79e+308 SGL REAL-Simple Naranja 32 ±3.4e+38 I32 Entero-LONG Azul 32 ±2147483647 I16 Entero-WORD Azul 16 -32768..+32.67 I8 Entero-BYTE Azul 8 -128..+127 U32 NATURAL Azul 32 0..4294’967.295 U16 NATURAL Azul 16 0..65.535 U8 NATURAL Azul 8 0..255 CXT COMPLEJO Naranja 2*128 2*±1.19e+4932 CBD COMPLEJO Naranja 2*64 2*±1.79e+308 CSG COMPLEJO Naranja 2*32 2*±3.4e+38 Figura 1.30. Representaciones Numéricas. 1.14 TIPOS DE TERMINALES Todos los controles e indicadores que sean ubicados en el panel frontal de LabVIEW generarán un terminal en la ventana de diagramación.
  • 38. Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 35 Figura 1.31. Terminales. Los terminales son objetos del diagrama de bloques que representan un control o un indicador del panel frontal. Toman el color respectivo de la variable que manejan. Por medio de ellos se obtienen los datos de los controles y se envían datos a los indicadores. Un terminal de control se diferencia de uno de indicador en que los primeros poseen un bordo doble mientras los segundos uno sencillo. 1.15 AYUDAS DE DEPURACIÓN Cuando se ejecuta un VI es importante visualizar los resultados intermedios que se están generando. Para conseguir esto se utiliza un nodo de prueba o Probe que es similar a un indicador pero temporal y en una ventana flotante. Haciendo clic con el botón derecho sobre el cable y seleccionando Probe, aparece la ventana como se indica en la figura 1.32.
  • 39. Curso Básico de LabVIEW 6i 36 Figura 1.32. Nodo de Prueba. El número 1 que aparece sobre el cable indica el número de la ventana flotante Probe, donde se está mostrando temporalmente el dato que pasa por el cable. En este caso, el dato del indicador llamado “Gráfico”. 1.16 AMBIENTE DE DESARROLLO INTEGRADO DE LABVIEW En estas páginas se desarrollarán paso por paso actividades orientadas al entendimiento del IDE (Integrated Development Environment) de LabVIEW y a la familiarización con la terminología y técnicas de programación del sistema de desarrollo. 1.16.1 Ejecución de LabVIEW La ejecución de LabVIEW, depende del sistema operativo en que se esté trabajando y de la forma en como haya sido instalado. Generalmente la instalación permite iniciar el programa de una de las siguientes formas:
  • 40. Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 37 Windows 95,98,Me, NT,2000 De no encontrar un acceso directo a LabVIEW en el escritorio, puede buscarlo en el menú de inicio por: Programas >> National Instruments >> LabVIEW 6 >> LabVIEW. MacOS 68x, PowerPC Debe existir un acceso directo en la “Lanzadera" o “Launcher”. De lo contrario se debe buscar el archivo ejecutable LabVIEW en la carpeta LabVIEW. SunOS, UNIX, LINUX, HP-UX... Debe ejecutar un ambiente gráfico como openWin o CDE; o de forma remota con alguna aplicación cliente X. La ruta por defecto asignada al ejecutable durante la instalación es /opt/lv51/LabVIEW El programa tarda unos segundos en cargar y por defecto comienza su ejecución con la ventana de inicio que se muestra la figura 1.33. Esta ventana se puede obviar seleccionando la opción “Do not show this window when launching”, que aparece en ella misma.
  • 41. Curso Básico de LabVIEW 6i 38 Figura 1.33. Ventana de inicio de LabVIEW. Las opciones de esta ventana de inicio son: New VI Permite crear un nuevo VI. Si se hace clic en su menú desplegable permite crear algún otro nuevo componente de LabVIEW. Open VI Abre un VI o un componente ya existente. Su menú desplegable muestra una lista de los componentes abiertos recientemente. DAQ Solutions Permite acceder a la configuración de canales o al asistente de soluciones de adquisición de datos. Search Examples Permite buscar ejemplos tanto en la base de datos instalada como en los recursos disponibles en Internet. LabVIEW Tutorial Tutorial en línea de LabVIEW.
  • 42. Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 39 Exit Salir de LabVIEW El recuadro Quick Tip, muestra sugerencias cortas de gran utilidad en el desarrollo de aplicaciones. Para mostrar otras sugerencias se debe presionar NEXT. Durante la ejecución de LabVIEW se puede regresar a esta ventana cuando se cierra todos los VIs. Aquí la ventana de inicio podrá ser configurada en modo corto o largo como se muestra en la figura 1.34. Figura 1.34. Modos corto y largo de la ventana de inicio. 1.16.2 Paletas y ventanas de LabVIEW La paleta de controles aparece únicamente en el panel frontal. Para su llamado existen dos formas: Paleta Flotante Haciendo clic derecho en algún lugar del panel frontal. Ventana Utilizando el menú Window>>Show Controls Palette.
  • 43. Curso Básico de LabVIEW 6i 40 Las paletas flotantes desaparecen al hacer un clic en cualquier parte o al seleccionar uno de sus objetos. Si se desea convertir la paleta flotante en ventana se hace clic sobre la tachuela que aparece en la esquina superior izquierda. Esto es también válido para la paleta de funciones que se obtiene únicamente en la ventana de diagramación. Figura 1.35. Paleta de controles flotante y como ventana. Para cambiar rápidamente entre las ventanas de diagrama y de panel frontal existen varias técnicas. Menús En el panel frontal se escoge el menú: Window>>Show Diagram. Teclado <CONTROL> + E
  • 44. Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 41 Ventanas Utilizando el método de Windows para cambio de ventanas <ALT> + <TAB>. Barra de Tareas Directamente haciendo clic en la ventana correspondiente de la barra de tareas de Windows. La paleta de herramientas es común a las dos ventanas y se puede obtener de dos formas: Ventana En el menú Window>>Show Tools Palette. Paleta flotante Con el método <SHIFT> + <clic derecho> 1.16.3 Ubicación de los objetos Dentro de las paletas de controles y funciones existen submenús que pueden contener objetos u otros submenús. Para tomar un objeto basta con hacer un clic sobre él en la paleta correspondiente y luego otro clic en el lugar del panel o del diagrama donde se desee colocar. Este procedimiento se puede observar en la secuencia de figuras 1.36, 1.37 y 1.38.
  • 45. Curso Básico de LabVIEW 6i 42 Figura 1.36. Clic sobre el objeto en la paleta de controles. Figura 1.37. Otro clic en el lugar del panel deseado.
  • 46. Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 43 Al hacer un nuevo clic el objeto habilita automáticamente la opción de colocar una etiqueta o nombre que lo identifique. Es posible escribir una etiqueta para el objeto o dejar que LabVIEW la asigne por defecto. Figura 1.38. Objeto puesto y etiquetado. A este control le corresponde un terminal en el diagrama de bloques como se observa en la figura 1.39. Figura 1.39. Terminal. La ubicación de objetos en el diagrama tomados de la paleta de funciones es igual a la del panel frontal. Esto se observa en la secuencia de figuras 1.40 a 1.42.
  • 47. Curso Básico de LabVIEW 6i 44 Figura 1.40. Clic sobre el objeto Multiplicación. Figura 1.41. Función en el lugar deseado. Figura 1.42. Objeto puesto y listo para cablear.
  • 48. Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 45 Este es el momento para utilizar las técnicas de cableado ya expuestas. Con la herramienta de cableado, se hace un clic en el punto de origen y luego otro clic en el punto de destino. La figura 1.43 muestra la secuencia de cableado. Figura 1.43. Secuencia de cableado. En el diagrama de bloques es posible crear directamente constantes, controles e indicadores a partir de las funciones que requieren entradas y salidas. Este procedimiento se muestra en la figura 1.44. Figura 1.44. Creación de una constante. Para editar el valor de la constante se utiliza la herramienta de texto y se hace doble clic sobre el texto o número a editar. La secuencia de edición de un valor numérico se observa en la figura 1.45.
  • 49. Curso Básico de LabVIEW 6i 46 Figura 1.45. Edición de valores numéricos. Para introducir texto es conveniente utilizar el botón enter (Figura 1.46) que se ubica a la izquierda de la barra de herramientas. La función de este botón puede ser cumplida también con la tecla <INTRO> del teclado numérico extendido. Recuérdese que <INTRO> es diferente de <ENTER> que está en el teclado convencional, aunque en muchos programas y tareas de Windows se pueden usar indistintamente. En LabVIEW <INTRO> y <ENTER> son equivalentes sólo cuando se usan para entrar datos de variables numéricas y de ruta (path). Figura 1.46. Entrada de texto. El anterior procedimiento es también válido para crear controles e indicadores. El nuevo terminal tendrá su respectivo indicador en el panel frontal. Figura 1.47.
  • 50. Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 47 Figura 1.47. Creación de un indicador. Cuando un control o indicador ha sido creado desde el panel su etiqueta será la que corresponda a la entrada o salida con la que se creó. 1.16.4 Edición de objetos del panel Para asignar un rótulo a cada objeto se utiliza la herramienta de texto, haciendo doble clic sobre el rótulo (Label) existente: La forma convencional de colocar los rótulos es sin embargo hacerlo en el momento de crear los controles o indicadores. Si por alguna razón el objeto no posee rótulo se debe seleccionar Visible Items >> Label del menú del objeto.
  • 51. Curso Básico de LabVIEW 6i 48 Figura 1.48. Asignación de un rótulo. Para cambiar el color del panel o de cualquier objeto se toma la herramienta de colorear y se aplica color a los objetos que se desee haciendo clic derecho sobre ellos y seleccionando el color deseado. Figura 1.49. Edición del color de fondo del panel frontal. Para editar cualquier texto se debe seleccionar con la herramienta de texto y luego escoger Font Dialog en el menú de fuentes de la barra de herramientas. Esto mostrará el menú de la figura 1.50.
  • 52. Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 49 Figura 1.50. Cuadro de diálogo para edición de fuentes. Otra forma de editar los tipos de letra es haciendo uso directo del menú de fuentes de la barra de herramientas. Figura 1.51. Menú de fuentes en la barra de herramientas. En este menú se puede modificar el tamaño (Size), el estilo (Style), la alineación
  • 53. Curso Básico de LabVIEW 6i 50 (Justify) y el Color (Color) de las fuentes asociadas a cada objeto. Como ejemplo se han modificado las fuentes para obtener la figura 1.52. Figura 1.52. Etiquetas en negrita y valores numéricos centrados. 1.16.5 Cambiar el tamaño de los objetos Para cambiar el tamaño de un objeto se debe acercar la herramienta de posición a uno de los bordos del objeto y arrastrar el ratón hasta la nueva posición deseada. La selección de la herramienta de texto se muestra en la figura 1.53. Cuando el objeto está listo para ser cambiado de tamaño, toma el aspecto que se puede observar en el objeto “CONTROL 1” en la figura 1.54.
  • 54. Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 51 Figura 1.53. Herramienta de posición/tamaño/selección. Figura 1.54. Ubicación en un bordo del objeto. La figura 1.55 muestra como se debe arrastrar el ratón hasta donde se desee modificar el tamaño del objeto. La figura 1.56 muestra la modificación de tamaño realizada sobre los dos objetos del panel.
  • 55. Curso Básico de LabVIEW 6i 52 Figura 1.55. Arrastre del ratón hasta el nuevo tamaño deseado. Figura 1.56. Nuevo tamaño de los objetos. 1.16.6 Ejecución de una aplicación LabVIEW permite ejecutar una aplicación de dos formas.
  • 56. Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 53 RUN: Permite ejecutar la aplicación en modo normal. RUN CONTINUOSLY: Permite ejecutar la aplicación una y otra vez. Este último método es utilizado únicamente en el proceso de edición y depuración. Figura 1.57. Ejecución de un VI. ABORT EXUCUTION: Aborta la ejecución del programa. Cuando un VI se ejecuta en modo continuo se puede abortar su ejecución con ABORT EXUCUTION. Sin embargo, lo más conveniente es cambiar al modo de ejecución normal presionando de nuevo RUN CONTINUOSLY para que la ejecución se detenga normalmente. 1.16.7 Guardar un VI Desde cualquiera de las dos ventanas se puede seleccionar File>>Save. Se podrá entonces ver la ventana de la figura 1.58.
  • 57. Curso Básico de LabVIEW 6i 54 Figura 1.58. Cuadro de diálogo para guardar un VI. Dependiendo del sistema operativo, cambiará esta ventana y las condiciones para asignar nombre a los VIs. No se debe guardar trabajos personales en las carpetas de instalación de LabVIEW. Se recomienda utilizar otras carpetas para almacenar el trabajo. Si no se escribe una extensión al archivo en el momento de guardar, LabVIEW utilizará VI como extensión por defecto. Es posible guardar varios VI en un solo archivo. Esto se denomina una librería de VIs. Para crear una librería de VI se selecciona “New VI Library” de la ventana guardar. Las librerías de VIs poseen extensión llb.
  • 58. Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 55 EJERCICIO 1.1 CREACIÓN DE UN NUEVO VI Consideré la realización de un programa que permita obtener la corriente que circula a través de un circuito eléctrico resistivo dado, para diferentes valores de resistencias y alimentación, figura 1.59. • En un editor gráfico como paint, haga el siguiente dibujo y guárdelo en un archivo tipo bmp o wmf del tamaño deseado. También puede copiarlo en el portapapeles. Figura 1.59. Circuito propuesto del ejercicio 1.1. • Ejecute LabVIEW. • Seleccione New VI, para crear un VI nuevo. • Pegue el dibujo que realizó en el panel frontal del VI de la siguiente forma: Si lo copió en el portapapeles debe seleccionar del menú principal Edit>>Paste. Si tiene el dibujo en un archivo, antes de pegar deberá seleccionar Edit>>Import Picture from File. La figura 1.60 muestra el dibujo realizado ya ubicado en el panel frontal de un VI.
  • 59. Curso Básico de LabVIEW 6i 56 Figura 1.60. Dibujo en el panel frontal. • De la paleta de controles, obtenga un indicador y cuatro controles numéricos. Póngalos de forma similar al panel de la figura 1.61. Figura 1.61. Controles e indicadores sobre el dibujo en el panel frontal. • Obtenga el valor de I, en función de las demás variables.
  • 60. Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 57 El valor de I en función de V, R1, R2 y R3, es: ( R2R3 R1 R3 ) R2 R3 V R2R3 R2 R3 I + + = + Ecuación 1.1. I en función de las demás variables. • Ponga las funciones aritméticas necesarias en el diagrama para lograr evaluar la función obtenida en la ecuación 1.1. Figura 1.62. Figura 1.62. Codificación en G de la ecuación 1.1. • Ejecute el programa: En la barra de herramientas aparece el icono de RUN , que permite ejecutar el programa una vez. • Varíe los valores de las resistencias o de la fuente y observe como cambia la respuesta “I” cada vez que corre el programa.
  • 61. Curso Básico de LabVIEW 6i 58 • Corra continuamente el programa utilizando RUN CONTINUOSLY . Correr continuamente el programa permitirá observar como cambia la salida a medida que se realicen cambios en la entrada. • Presione nuevamente RUN CONTINUOSLY para detener la ejecución. • En el diagrama de bloques presione Highlight Execution y corra el programa utilizando RUN . Esto permitirá que observe una animación de cómo fluyen los datos durante la ejecución del VI. Ahora se desea reemplazar la fuente de voltaje DC por una de AC y las resistencias por impedancias. Para hacer un análisis en régimen permanente del nuevo circuito se deben reemplazan los números reales por números complejos. Esto se permite mediante el cambio de representación de cada control e indicador, haciendo clic con el botón derecho del ratón en cada uno y seleccionando la opción Representation>>CDB del menú de cada objeto. La figura 1.63 muestra el menú de un control y la forma de cambiar su representación.
  • 62. Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 59 Figura 1.63. Cambio de representación del control R1. Una vez realizados todos los cambios se podrá observar el panel de la figura 1.64. Figura 1.64. Indicadores y controles complejos.
  • 63. Curso Básico de LabVIEW 6i 60 La única diferencia en el diagrama de bloques es la representación de los terminales. Figura 1.65. Este cambio se hace automáticamente al cambiar la representación de los controles e indicadores en el panel frontal. Figura 1.65. Diagrama con terminales complejos. No es necesario hacer ninguna modificación para que el programa opere con números complejos. Esto se debe a las características de polimorfismo y sobrecarga de las funciones de LabVIEW. Para obtener más información acerca de las funciones, como por ejemplo la forma de operación y las características de polimorfismo y sobrecarga se puede utilizar la ventana de ayuda. La ventana de ayuda se obtiene con el método de teclado <CONTROL + H> y tiene la apariencia de la figura 1.66. Esta ventana mostrará ayuda acerca de la función sobre la que se encuentre el cursor en cada instante.
  • 64. Facultad de Ingeniería Eléctrica, Universidad Tecnológica de Pereira 61 Figura 1.66. Ventana de ayuda. • Corra el programa de nuevo y observe los resultados. • Guarde el VI en su carpeta de trabajo y ciérrelo. FIN EJERCICIO 1.1
  • 65. Curso Básico de LabVIEW 6i 62 1.17 EJERCICIOS PROPUESTOS 1) Crear un panel de control idéntico al de la figura 1.67. Figura 1.67. Ejercicio propuesto 1. 2) Hacer un programa en LabVIEW que evalúe la función y = 3x2 + 4x - 9 en cualquier valor de x. 3) Codificar en G la expresión booleana S = AB.CD + AB.CD + ADBC + AC.BD. 4) Crear un VI que genere un número aleatorio entre 1 y 100.
  • 66. 2. ESTRUCTURAS. 2.1 OBJETIVO Estudiar las estructuras de programación utilizadas por LabVIEW para definir secuencias, decisiones y ciclos. Además, estudiar el nodo de fórmula del lenguaje G. 2.2 DESCRIPCIÓN Una estructura en general es un nodo que controla el flujo de los datos de un programa en G. LabVIEW cuenta, en orden, con las siguientes estructuras. 1. Sequence. 2. Case. 3. For Loop. 4. While Loop. 5. Formula Node. Las estructuras se encuentran en la paleta de funciones como se muestra en la figura 2.1.
  • 67. Curso Básico de LabVIEW 6i 64 Figura 2.1. Estructuras. Para efectos de estudio se comenzará con las estructuras cíclicas que son While Loop y For Loop. 2.3 ESTRUCTURA “WHILE LOOP” La estructura While Loop es un ciclo que repite el subdiagrama que contiene hasta que una condición determinada se cumpla. En G está representada por el marco que se muestra en la figura 2.2. Figura 2.2. Estructura While Loop.
  • 68. Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 65 Por defecto las instrucciones contenidas en el ciclo se repetirán mientras que al terminal de condición llegue un valor verdadero. Si se desea cambiar la lógica del terminal de condición, es decir, que el ciclo se repita mientras que a este llegue un valor falso, basta con hacer clic derecho en dicho terminal y seleccionar la opción Stop If True como se muestra en la figura 2.3. Si el terminal de condición no se cablea, el VI no se podrá ejecutar. Figura 2.3. Terminal de condición de la estructura While Loop. El terminal de iteración determina el número de veces que se ha ejecutado el ciclo y puede ser utilizado para visualización o para alguna operación dentro de la estructura. Este terminal varía desde 0 hasta N-1 donde N es el número de iteraciones realizadas por el ciclo. La estructura While Loop del lenguaje G es equivalente a DO..WHILE en C/C++ o a REPEAT..UNTIL en Pascal.
  • 69. Curso Básico de LabVIEW 6i 66 Se debe tener en cuenta que el subdiagrama contenido en la estructura While Loop se ejecutará por lo menos una vez. EJERCICIO 2.1 SIMULACIÓN DE LA LECTURA DE UNA TEMPERATURA La figura 2.4 muestra el panel frontal y el diagrama de bloques para una simulación simple de la lectura de una temperatura. Figura 2.4. Simulación de lectura de temperatura. El programa se ejecutará hasta que el usuario presione el botón de paro. Como se desea que el ciclo se detenga sólo cuando se presione el botón de paro, entonces se debe cambiar la lógica por defecto del terminal de condición. El subVI que simula la lectura de temperatura se encuentra en la paleta de funciones en el submenú Tutorial y se llama “Digital Thermometer.vi”.
  • 70. Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 67 Si se desea agregar una espera para el VI no se ejecute tan rápido, se puede utilizar la función Wait, que se encuentra en la paleta de funciones en el submenú Time&Dialog. Esta función produce la espera especificada en milisegundos. La figura 2.5 muestra su utilización en el diagrama para lograr una espera de 250 milisegundos en cada iteración. Figura 2.5. Función Wait en un ciclo. Una forma fácil de obtener una gráfica de los valores de temperatura leídos por el subVI de simulación, es con el indicador “Waveform chart” localizado en la paleta de controles en el submenú Graph como se muestra en la figura 2.6. Figura 2.6. Waveform Chart.
  • 71. Curso Básico de LabVIEW 6i 68 El estudio detallado de este graficador será realizará más adelante. Por ahora basta decir que este control permite acumular datos escalares y graficarlos. Reemplazando el termómetro en el panel de la figura 2.4 por la gráfica se obtiene el panel de la figura 2.7. Figura 2.7. Gráfica de datos de temperatura. El diagrama conserva el mismo aspecto ya que el terminal para la gráfica es igual al del termómetro. FIN EJERCICIO 2.1
  • 72. Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 69 EJERCICIO 2.2 GENERACIÓN DE UNA ONDA SENO Se desea generar continuamente una onda seno y verla en un graficador Chart hasta que se presione el botón de paro. Las figuras 2.8 y 2.9 muestran el panel frontal y el diagrama de esta aplicación. Figura 2.8. Panel frontal para generar onda seno. Figura 2.9. Diagrama para generar onda seno.
  • 73. Curso Básico de LabVIEW 6i 70 La función seno tomada de la paleta de funciones numéricas recibe el argumento en radianes, por tanto, el terminal de iteraciones utilizado para generar un punto cada grado debió ser multiplicado por π/180. La velocidad con que se genera los datos es controlada por la función Wait. FIN EJERCICIO 2.2
  • 74. Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 71 2.4 ESTRUCTURA “FOR LOOP” La estructura For Loop es un ciclo que repite el subdiagrama que contiene un número definido de veces. En G está representada por el marco que se muestra en la figura 2.10. Figura 2.10. Estructura For Loop. El terminal de iteración indica el número de veces que se ha ejecutado el ciclo. Varía desde 0 hasta N-1 donde N es el número total de iteraciones que realiza el ciclo. El control de iteraciones contiene el número de veces que se ejecutará el subdiagrama contenido en el ciclo. En C/C++ es análogo a for(i=0, i<N, i++). { } end
  • 75. Curso Básico de LabVIEW 6i 72 EJERCICIO 2.3 GRÁFICA DE 100 NÚMEROS ALEATORIOS ENTRE 10 Y 50 Como se conoce el número exacto de veces que se debe repetir la tarea se utiliza una estructura For Loop. La función random genera un número aleatorio entre 0 y 1. Por tanto se debe ajustar su rango al solicitado. Una forma fácil de hacerlo es multiplicar el número generado por 40 y sumarle 10. En general si el rango solicitado es [a,b] entonces el número aleatorio es N = R(b-a)+a, donde R es la salida de la función random. Para graficar los 100 números generados se utiliza una gráfica Chart. La figura 2.11 muestra el panel y el diagrama que dan solución a este ejercicio. Figura 2.11. Gráfica de 100 números aleatorios. De nuevo, si se desea que el VI se ejecute más lento, se debe adicionar la función Wait. FIN EJERCICIO 2.3
  • 76. Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 73 Es muy frecuente que en las estructuras While Loop y For Loop sea necesario pasar datos entre iteraciones. Para ello se utilizan los “shift registers”. Éstos se encuentran en el menú de las estructuras y se obtienen como se muestra en la figura 2.12. Figura 2.12. Adición de un Shift register. Los “shift registers” o registros de desplazamiento están formados por un par de terminales que se adaptan a cualquier tipo de dato y que están localizados a cada lado de los bordes de la estructura como se muestra en la figura 2.13. Figura 2.13. Localización de un registro de desplazamiento. La secuencia de comportamiento de un registro de desplazamiento se muestra en la figura 2.14.
  • 77. Curso Básico de LabVIEW 6i 74 Figura 2.14. Comportamiento de un registro de desplazamiento. El terminal derecho almacena el dato una vez concluya la iteración y le entrega el dato al terminal de la izquierda para que sea utilizado en la próxima iteración. En la primera iteración el sistema podría tomar un número no deseado, por tanto se debe inicializar, desde afuera, con un valor conveniente del mismo tipo de la variable utilizada. EJERCICIO 2.4 SUMAR LOS NÚMEROS ENTEROS ENTRE 1 Y 100 Este ejercicio busca encontrar un valor S = 1 + 2 + 3 +...+ 98 +99 +100. Para realizar esta suma se utiliza una estructura For Loop.
  • 78. Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 75 Figura 2.15. Sumatoria de 1 a 100. Como el terminal de iteración comienza desde 0, se debe realizar 101 iteraciones para que el último número de la sumatoria sea el 100. Esto significa que en realidad la suma realizada por este ejercicio es: S = 0 + 1 + 2 + 3 +...+ 98 +99 +100 Lo que no afecta el resultado deseado. FIN EJERCICIO 2.4
  • 79. Curso Básico de LabVIEW 6i 76 Para poder tener acceso a iteraciones anteriores se debe adicionar elementos al registro de desplazamiento. Para adicionarlos, se hace clic derecho sobre uno de los terminales y se selecciona Add Element, como se muestra en la figura 2.16. Figura 2.16. Adición de elementos al registro de desplazamiento. El comportamiento del registro de desplazamiento con elementos adicionados se ilustra en la figura 2.17. Figura 2.17. Comportamiento de elementos en los registros de desplazamiento. Todos los elementos que se adicionen al registro de desplazamiento también deben ser inicializados, de lo contrario se correrá el riesgo de tener valores no deseados.
  • 80. Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 77 EJERCICIO 2.5 PROMEDIAR LOS ÚLTIMOS DOS DATOS ALEATORIOS Para el ejercicio 2.3, se requiere calcular el promedio de los últimos 2 datos aleatorios que se han generado. Figura 2.18. Promedio de últimos 2 datos generados. Se han sumado y dividido por 2 los datos correspondientes a las últimas dos iteraciones. FIN EJERCICIO 2.5
  • 81. Curso Básico de LabVIEW 6i 78 2.5 ESTRUCTURA “SEQUENCE” La estructura sequence tiene la apariencia de la figura 2.19 y permite ejecutar varios subdiagramas de manera ordenada y controlada por el programador. En los lenguajes de programación convencionales basados en código de líneas no se requiere y por lo tanto no existe una estructura análoga. Esta estructura posee varios subdiagramas denominados “frames” que se ejecutan en estricto orden y sólo es visible uno a la vez. Figura 2.19. Apariencia de estructuras sequence. En la parte superior del marco de cada estructura se encuentra el identificador de diagrama que es utilizado para navegar entre frames. Ver la figura 2.20. Figura 2.20. Identificador de diagrama.
  • 82. Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 79 Por defecto la estructura sequence posee un solo frame y no tiene identificador de diagrama. Para adicionar, borrar, mover o duplicar frames se puede acceder al menú de la estructura desde alguno de sus lados. Ver figura 2.21. Figura 2.21. Menú de la estructura sequence. En este menú es posible seleccionar alguna de las siguientes opciones: Add Sequence Local: Utilizado para pasar un dato desde un frame a otro posterior. Esta opción genera un terminal en el borde de la estructura como en la figura 2.22. Add Frame After: Adiciona un frame después del actual. Add Frame Before: Adiciona un frame antes del actual. Duplicate Frame: Genera una copia exacta del frame actual en un nuevo frame. Delete Frame: Elimina el frame actual. Sólo se habilita cuando la secuencia posee dos o más frames. Remove Sequence: Se utiliza para remover la estructura sequence. Este procedimiento eliminará todos los objetos de los frames que no estén visibles.
  • 83. Curso Básico de LabVIEW 6i 80 Figura 2.22. Elementos de la estructura SEQUENCE. EJERCICIO 2.6 MEDIR EL TIEMPO QUE EL PC TARDA EN GENERAR 10000 DATOS ALEATORIOS Para la solución de este ejercicio se utiliza una sola estructura sequence con tres frames como se enseña en la figura 2.23.
  • 84. Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 81 Figura 2.23. Frames 0, 1 y 2. En el frame cero es necesario tomar un tiempo de referencia y enviarlo al frame dos donde se tomará un nuevo valor para restarle el tomado en el frame cero. Esta diferencia será el tiempo que tomó el computador en realizar la tarea. La función Tick Count se encuentra en la paleta de funciones en el submenú Time&Dialog y devuelve un valor de tiempo en milisegundos contados a partir de un instante de referencia no controlable por el usuario. El valor devuelto por esta función es U32, por lo tanto se debe tener cuidado al usarla porque saltará de 2^32-1 a 0. Nótese que el dato entregado por la función tick count en el frame cero es enviado al frame uno a través de una secuencia local.
  • 85. Curso Básico de LabVIEW 6i 82 Para poder utilizar un dato después de la ejecución de la estructura basta con alambrarlo a una de las paredes como se puede ver en la figura 2.24. Figura 2.24. Salida de datos de un sequence. El paso de un dato entre la parte interna y externa de una estructura se denomina túnel y puede ser de entrada o de salida dependiendo del sentido del flujo de los datos. FIN EJERCICIO 2.6
  • 86. Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 83 2.6 ESTRUCTURA “CASE” La estructura Case posee varios subdiagramas denominados casos (cases) de los cuales sólo se ejecuta uno. Esta estructura tiene la apariencia de la figura 2.25. Figura 2.25. Estructura case. Al igual que en la estructura sequence sólo es visible un subdiagrama a la vez. Esta estructura es una fusión de las estructuras IF y CASE o SWITCH de los lenguajes de programación convencionales. Figura 2.26. Case booleano en LabVIEW. IF (condición) { caso CIERTO } ELSE { caso FALSO }
  • 87. Curso Básico de LabVIEW 6i 84 Dependiendo del tipo de variable asociada al terminal de selección la estructura se comportará como un IF o como un CASE. Si el valor cableado es booleano la estructura tendrá dos casos FALSE y TRUE, pero si es numérico o cadena la estructura podrá tener desde 2 hasta 216-1 casos. Figura 2.27. Case numérico en LabVIEW. switch (variable) { case constante1: { caso1 } break; case constante2: { caso2 } break; . . default: { casoX defecto } } La estructura CASE también posee un menú que se obtiene haciendo clic derecho sobre uno de sus bordes. En este menú se encuentra opciones como adicionar, eliminar, duplicar, mover y organizar casos. Figura 2.28. Menú de la estructura case.
  • 88. Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 85 Cuando la variable de selección no es booleana LabVIEW exige que alguno de los casos de la estructura case sea definido como el caso por defecto. Figura 2.29. Caso declarado por defecto. EJERCICIO 2.7 MENÚ DE OPCIONES A partir de dos entradas numéricas y un control tipo menú con las opciones suma, resta, multiplicación y división, se busca generar una salida que enseñe su resultado. En el Panel Frontal: Para resolver este ejercicio es necesario utilizar un control tipo menú, que son comúnmente utilizados para seleccionar una opción entre varias posibles. Los controles tipo menu ring se encuentran en la paleta de controles en el submenú Ring&Enum y son de tipo numérico U16. Para editar un control de menú se debe tomar la herramienta de texto.
  • 89. Curso Básico de LabVIEW 6i 86 Figura 2.30. Selección y edición de un control menu ring. El control menu ring posee también un menú al que se accede haciendo clic derecho sobre éste. En él se pueden seleccionar acciones como adicionar, remover o deshabilitar ítems. El menú de este control se muestra en la figura 2.31. Figura 2.31. Menú del control menu ring.
  • 90. Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 87 Se adicionan los ítems Sumar, Restar, Multiplicar y Dividir. El aspecto del control menu ring desplegado se muestra en la figura 2.32. Figura 2.32. Menú desplegado. De acuerdo con la figura 2.32 este control tomará el valor de 0 cuando se seleccione SUMAR, 1 para RESTAR, 2 para MULTIPLICAR y 3 para DIVIDIR. Ahora se puede crear los otros elementos. Dos controles numéricos y un indicador numérico. El panel frontal terminado se muestra en la figura 2.33. Figura 2.33. Panel frontal completo. En el diagrama de bloques: El terminal del control de menú se utilizará para cablear el terminal de selección de una estructura case como se muestra en la figura 2.34.
  • 91. Curso Básico de LabVIEW 6i 88 Figura 2.34. Estructura Case controlado por un menu ring. Como el control posee 4 posibles opciones, se debe adicionar los casos 2 y 3. El caso 0 será el caso por defecto. Figura 2.35. Adición de casos.
  • 92. Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 89 Ahora se debe colocar las funciones en los respectivos casos, por ejemplo, la función suma en el subdiagrama del caso cero, la resta en el uno y así sucesivamente. Figura 2.36. Subdiagrama cero. Los datos en todos los túneles de entrada y en el terminal de selección pueden ser accedidos por todos los subdiagramas de casos. Para que un túnel de salida este completo se le debe alimentar desde todos los casos que posea la estructura. La figura 2.37 muestra dos túneles de salida en una misma estructura case uno de los cuales no está completo. Figura 2.37. Túneles de salida de un case.
  • 93. Curso Básico de LabVIEW 6i 90 Observe en la figura 2.37 que aún existe un túnel de salida incompleto. Esto significa que en alguno o en varios de los casos no visibles aún éste no ha sido alimentado. Esto se ve por ejemplo en la figura 2.38. Figura 2.38. Caso 1 con túnel incompleto. Se debe tener cuidado al completar los túneles, pues frecuentemente sucede que el cableado no se realiza exactamente sobre el túnel sino que se generan túneles nuevos que podrían estar superpuestos y aparentar ser uno sólo. Se recomienda asegurarse que el túnel al que cablea sea el correcto. Ver técnicas de cableado en el capítulo uno. La figura 2.39 muestra el caso 3 con el túnel ya completo.
  • 94. Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 91 Figura 2.39. Caso 3 con túnel de salida completado. Por último, se debe recordar que el programa debe correr por si mismo sin la ayuda del botón de correr continuamente. Para ello se anexa una estructura While Loop que encierre toda la operación. Figura 2.40. Diagrama completo. FIN EJERCICIO 2.7
  • 95. Curso Básico de LabVIEW 6i 92 2.7 ESTRUCTURA “FORMULA NODE” Un nodo de fórmula es una caja redimensionable donde se alojan fórmulas matemáticas y lógicas para su evaluación. Los nodos de fórmula tienen la apariencia de la figura 2.41. Figura 2.41. Nodo de Fórmula. Los terminales de entrada y salida son variables numéricas, escalares y reales que se generan adicionándolas desde el menú de la estructura como se muestra en la figura 2.42. Figura 2.42. Menú de los nodos de fórmula. La sintaxis interna de los nodos de fórmula es similar a la de C. Asignación = Condición ? : or ||
  • 96. Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 93 xor ^ and && not ! Relacional == != > < >= <= Aritméticas + - * / ** Las funciones aceptadas dentro del nodo de fórmula son: abs acos acosh asin asinh atan atanh ceil cos cosh cot csc exp expm1 floor getexp getman int intrz ln lnp1 log log2 max min mod rand rem sec sign sin sinh sqrt tan tanh Dentro del nodo de fórmula se pueden adicionar comentarios encerrándolos dentro de un par slash-asterisco así: (/*comentario*/) como se muestra en la figura 2.41. EJERCICIO 2.8 UTILIZACIÓN DE LOS NODOS DE FÓRMULA Se realizará en forma convencional y con un nodo de fórmula el cálculo de Y Z = X + Y 2 suponiendo conocidos X y Y. Esta operación en forma convencional tendría la apariencia de la figura 2.43. Figura 2.43. Cálculo de Z en forma convencional.
  • 97. Curso Básico de LabVIEW 6i 94 Con la utilización del nodo de fórmula la apariencia del diagrama sería como en la figura 2.44. Figura 2.44. Cálculo de Z con un nodo de fórmula. CUIDADO: El operador ( ^ ) que en versiones previas de LabVIEW era el operador de la exponenciación ahora es el operador booleano XOR. El nuevo operador de la exponenciación es ( ** ), como se muestra en la figura 2.44. En los casos que se requiera evaluar fórmulas matemáticas extensas el nodo de formula es evidentemente más apropiado. FIN EJERCICIO 2.8
  • 98. Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 95 EJERCICIO 2.9 REALIZAR EL EJERCICIO 1.1 CON UN NODO DE FÓRMULA La figura 1.62 muestra la codificación en G de la ecuación 1.1. Esta misma codificación se puede realizar con un nodo de fórmula como se muestra en la figura 2.45. Figura 2.45. Ecuación 1.1 con nodo de formula. Nótese que aunque es posible realizar cálculos intermedios para simplificar la sintaxis de las ecuaciones se debe agregar una salida por cada asignación que se realice. Por ejemplo, en la figura 2.45 se utiliza P para realizar un cálculo intermedio pero se debe agregar como salida así no se utilice. FIN EJERCICIO 2.9
  • 99. Curso Básico de LabVIEW 6i 96 Los nodos de fórmula se pueden utilizar también con expresiones de decisión. En programación es común encontrar la estructura IF THEN ELSE: C/C++ PASCAL IF (condición) { (caso verdadero) } ELSE { (caso falso) } IF (condición) THEN BEGIN (caso verdadero) END; ELSE BEGIN (caso falso) END; END; Sin embargo, y aunque la estructura case ofrece una solución, en algunos lenguajes como en C es posible utilizar el operador ?, cuando se desea realizar la asignación de un valor, para simplificar la estructura así: salida = (condición) ? (caso verdadero) : (caso falso) ; Al igual que la estructura IF el uso del operador ? también es anidable. salida=(condición1)?(caso1):(condición2)?(caso2):(condicion3)?(caso3):(caso4); El nodo de fórmula de LabVIEW acepta la sintaxis del operador ?. EJERCICIO 2.10 EJERCICIO 2.7 CON UN NODO DE FÓRMULA Se puede escribir con sólo una línea de código dentro del nodo de fórmula así: C = (M = 0) ? A + B : ( M = 1 ) ? A - B : ( M = 2 ) ? A * B : A / B ;
  • 100. Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 97 El aspecto que tendría en G se muestra en la figura 2.46. Figura 2.46. Ejercicio 2.7 con nodo de fórmula. FIN EJERCICIO 2.10
  • 101. Curso Básico de LabVIEW 6i 98 LabVIEW también ofrece una alternativa para estructuras tipo IF sin anidamiento que consistan simplemente en determinar si se utiliza un dato u otro. Esto es realizado por la función Select, que se muestra en la figura 2.47 y que se puede encontrar en la paleta de funciones en el submenú comparition. Figura 2.47. Función Select. Obsérvese que “CONDICIÓN” es booleano y determina que dato será asignado a la salida. La salida y los datos a asignar pueden ser cualquier tipo de variable válida de LabVIEW. EJERCICIO 2.11 LA ECUACIÓN CUADRÁTICA Para resolver la ecuación a X 2 + b X + c = 0, se requiere de tres controles numéricos reales para a, b y c, y de dos indicadores complejos para mostrar las raíces encontradas. El panel frontal se muestra en la figura 2.48.
  • 102. Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 99 Figura 2.48. Panel frontal para la ecuación cuadrática. Se sabe que X1 y X2 están dadas por la ecuación 2.1. X - b 2 b - 4 a c 4 a 2 a 2 1,2 = ± Ecuación 2.1. Raíces de la ecuación cuadrática. Una solución en G para esta ecuación se muestra en la figura 2.49. Figura 2.49. Solución de la ecuación cuadrática.
  • 103. Curso Básico de LabVIEW 6i 100 Se utiliza un nodo de fórmula para calcular los términos más útiles. En LabVIEW la función raíz cuadrada no permite un argumento negativo. Por lo tanto se utiliza la función >=0 para determinar el signo del discriminante y luego la función Select para escoger el resultado corregido de la raíz cuadrada. FIN EJERCICIO 2.11
  • 104. Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 101 2.8 ACCIONES MECÁNICAS DE LOS CONTROLES BOOLEANOS Los controles booleanos pueden ser personalizados con seis diferentes tipos de acciones mecánicas, permitiendo así obtener mayor control sobre las tareas a desarrollar y lograr que los paneles frontales de los instrumentos virtuales puedan parecerse más a los instrumentos físicos. Para cambiar la acción mecánica de un control booleano se debe seguir los siguientes pasos: 1. Seleccionar el control booleano apropiado de acuerdo con su aplicación. 2. Del menú del control, seleccionar “Mechanical Action”. 3. Escoger la acción mecánica requerida. En la figura 2.50 se observa las acciones mecánicas de un control booleano. Figura 2.50. Acciones Mecánicas.
  • 105. Curso Básico de LabVIEW 6i 102 Algunos controles booleanos vienen predefinidos por LabVIEW con algún tipo de acción mecánica, ya que fueron diseñados para desempeñar una tarea específica. Los controles “STOP” y “CANCEL” pueden ser un buen ejemplo de ello. La figura 2.51 muestra el control booleano “STOP” con su respectiva acción mecánica. Figura 2.51. Botón STOP con acción mecánica predefinida. Las acciones mecánicas se dividen en dos tipos: Switch y Latch. Los Switch son mecanismos que retornan al estado inicial una vez el usuario lo decida. Se muestran en la figura 2.52. Switch when pressed Switch when released Switch until released Figura 2.52. Acciones Mecánicas tipo Switch.
  • 106. Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 103 Los Latch son mecanismos que retornan al estado inicial cuando el valor sea leído por el VI o cuando el usuario así lo determine. Son mostrados en la figura 2.53. Latch When Pressed Latch When Release Latch Until Released Figura 2.53. Acciones Mecánicas tipo Latch. 2.8.1 Switch When Pressed Este mecanismo permite que los controles booleanos se comporten de manera similar al interruptor de control de una lámpara. Es decir la variable booleana sólo cambia de estado cuando el control es presionado por el usuario. Ver figura 2.54. Figura 2.54. Switch When Pressed. En la figura 2.54 la acción del clic del ratón se muestra a través de la letra “m” y la respuesta del control o variable booleana es “v”. Nótese que cuando en ratón es presionado la variable booleana cambia de estado y permanece así aunque el botón del ratón sea liberado.
  • 107. Curso Básico de LabVIEW 6i 104 La figura 2.55 muestra un VI donde el interruptor está funcionando como un Switch When Pressed. Al ejecutar este VI se podrá observar como la salida sólo cambia de estado cuando el usuario lo decida. Se debe recordar que el botón STOP posee una acción mecánica predefinida. Figura 2.55. Control booleano trabajando como un Switch When Pressed. 2.8.2 Switch When Released Este mecanismo actúa sobre la variable sólo cuando el clic del ratón es liberado. El control volverá a su estado anterior sólo cuando el usuario decida volver a accionarlo.
  • 108. Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 105 Figura 2.56. Switch When Released. Nótese que la variable “v” NO cambia de estado cuando se presiona el botón de ratón. Sólo lo hace cuando el botón es liberado y permanece en su nuevo estado hasta que el usuario decida volver a presionar y soltar el botón del ratón. En las figuras 2.57 a 2.59 se muestra la manera de actuar de Switch When Released al tratar de controlar una salida. La figura 2.57 muestra el control booleano configurado con acción mecánica Switch When Released. Su estado inicial es OFF. Figura 2.57. Control booleano trabajando como un Switch When Released.
  • 109. Curso Básico de LabVIEW 6i 106 En la figura 2.58 el control ha sido accionado a través de un clic, pero el botón del ratón no ha sido liberado, por lo anterior, la salida no ha cambiado su estado. Nótese la posición del control. Figura 2.58. Control accionado a través de un clic del ratón. El botón del ratón no ha sido liberado. En la figura 2.59 se ha liberado el botón del ratón y por lo tanto la salida ha cambiado su estado. Figura 2.59. Clic del ratón liberado.
  • 110. Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 107 2.8.3 Switch Until Released Cambia el valor de control mientras el botón del ratón es presionado. La figura 2.60 muestra el comportamiento de un control booleano configurado con esta acción mecánica. Figura 2.60. Switch Until Released. Al presionar el botón “m” del ratón la variable “v” cambia de estado, pero sólo permanecerá así hasta que el botón del ratón “m” sea liberado. Esta acción mecánica simula el funcionamiento de un pulsador. Por ejemplo el pulsador que controla un timbre. La figura 2.61 muestra un VI que al ejecutarse permite observar el funcionamiento de la acción mecánica Switch Until Released.
  • 111. Curso Básico de LabVIEW 6i 108 Figura 2.61. Control booleano trabajando como un Switch Until Released. 2.8.4 Latch When Pressed Este mecanismo cambia el valor del control cuando el usuario hace un clic sobre el control booleano, este retiene su valor hasta que el VI lo lea, una vez sea leído el control vuelve a su valor por defecto, incluso si el usuario todavía tiene presionado el botón del ratón. Esta acción es especial para truncar la acción de un While Loop. La figura 2.62 muestra el comportamiento de la acción.
  • 112. Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 109 Figura 2.62. Latch When Pressed. “m” muestra el comportamiento del botón del ratón. “v” muestra el comportamiento de la variable booleana. “RD” muestra las lecturas que el VI hace a la variable booleana. En la figura 2.63 se muestra un VI que al ejecutarse permite observar el comportamiento de esta acción mecánica. Figura 2.63. Control booleano trabajando como un Latch When Pressed.
  • 113. Curso Básico de LabVIEW 6i 110 2.8.5 Latch When Released Este mecanismo de acción trabaja de manera similar al Latch When Pressed, con la diferencia de que el control actúa únicamente cuando el usuario libera el clic del ratón. El objeto booleano retendrá su valor hasta que el VI lo pueda leer. Esta acción trabaja de manera similar a las cajas de botones o sistemas de botones utilizados en algunos sistemas de control. También es muy utilizado para detener ciclos While y para los botones en cuadros de diálogo. La figura 2.64 muestra el comportamiento de la acción. Figura 2.64. Latch When Released. “m” muestra el comportamiento del botón del ratón. “v” muestra el comportamiento de la variable booleana. “RD” muestra las lecturas que el VI hace a la variable booleana. En la figura 2.65 se muestra un VI que al ejecutarse permite observar el comportamiento de esta acción mecánica.
  • 114. Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 111 Figura 2.65. Control booleano trabajando como un Latch When Released. 2.8.6 Latch Until Released El mecanismo de acción cambia el valor del control haciendo un clic sobre éste y retiene el valor hasta que el VI lo lee o el usuario lo libera, dependiendo de que fuera lo último que ocurrió. La figura 2.66 muestra el comportamiento de la acción. Figura 2.66. Latch Until Released. “m” muestra el comportamiento del botón del ratón. “v” muestra el comportamiento de la variable booleana. “RD” muestra las lecturas que el VI hace a la variable booleana.
  • 115. Curso Básico de LabVIEW 6i 112 En la figura 2.67 se muestra un VI que al ejecutarse permite observar el comportamiento de esta acción mecánica. Figura 2.67. Control booleano trabajando como un Latch Until Released. Importante: Los controles booleanos que utilizan las acciones tipo Latch no pueden generar variables locales. EJERCICIO OPCIONAL 2.12 APLICACIÓN DE UNA ESTRUCTURA DE SECUENCIA A LA MEDICIÓN DE ENERGÍA Un transductor de potencia activa instantánea está conectado a una carga eléctrica. Se requiere calcular la energía consumida por la carga en un intervalo de tiempo definido por el operador a través de un botón de paro. La energía esta definida según la ecuación 2.2.
  • 116. Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 113 E ( t ) = P ( t ) dt Σ ∫ − = − − = 1 0 1 2 1 *( ) N i i i t t E Pi T T Ecuación 2.2. Energía. La Figura 2.68 muestra el diagrama de bloques que realiza la tarea solicitada. Del identificador de diagrama de la estructura sequence se puede observar que esta posee tres frames (0, 1 y 2) de los cuales sólo es visible el cero. Los otros dos frames se ven en las figuras 2.70 y 2.71 respectivamente. Figura 2.68. Diagrama de bloques. La estructura while es utilizada únicamente para dar continuidad a la ejecución y esperar la orden de PARO. Para calcular la energía es necesario tomar un tiempo de referencia entregado por la función Tick Count antes de realizar cualquier otra tarea.
  • 117. Curso Básico de LabVIEW 6i 114 La función que simula la tarea de recoger los datos enviados por un dispositivo de adquisición se muestra en la figura 2.69 y se puede encontrar en la paleta de funciones en el submenú Tutorial. Figura 2.69. Función que lee el sensor. La salida de esta función está en Voltios y se supondrá que el transductor conectado al canal 0 del dispositivo de adquisición 1 especifica un factor de 10000 W/V, por lo que se debe multiplicar por 10000 para llevar la salida a W y luego dividir por 1000 para llevarla a kW. Desde luego, también se puede simplemente multiplicar por 10. Figura 2.70. Segundo frame de la secuencia. De la ecuación 2.2 se sabe que el consumo de energía en la primera iteración es E0=P0*(T0-T-1), donde T-1 es el tiempo de referencia de la rutina y T0 el tiempo tomado para el cálculo de la energía en la primera iteración. La diferencia (Ti+1-Ti) es el intervalo de tiempo transcurrido entre iteraciones (Tiempo-Ciclo). Como Tick Count tiene su salida en milisegundos se debe dividir por 1000 para llevarla a segundos y por 3600 para llevarla a horas. Esto se puede realizar con una sola división por 3600000.
  • 118. Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 115 El tiempo de referencia para cada nuevo ciclo es el tiempo calculado en la iteración anterior, por lo que es necesario generar un shift register para calcular la variable Tiempo-Ciclo. Figura 2.71. Tercer frame de la secuencia. Con el fin de poder acumular los valores de energía de cada lapso de tiempo, es decir la suma de los Ei, es necesario contar con un segundo shift register, que se debe inicializar en cero. Obsérvese lo necesario de estos elementos para contar con una historia acumulativa de esta variable energía. Cuando se desea que un graficador Chart muestre varias curvas distintas, simultáneamente, se debe generar un Cluster para lo cual es necesaria la función bundle. Esta función se explicará en detalle más adelante y se puede encontrar en Functions>>Cluster>>Bundle. Figura 2.72. Varias gráficas en un mismo chart. El panel frontal de esta aplicación se observa en la figura 2.73.
  • 119. Curso Básico de LabVIEW 6i 116 Figura 2.73. Panel Frontal para el ejercicio 2.12. Obsérvese que el indicador de Energía total sólo se actualizará hasta que se presione el botón de detener, ya que se encuentra localizado por fuera del ciclo. Para efectos de simulación es conveniente modificar la escala de tiempo para observar resultados más rápidamente. Por ejemplo, se puede reemplazar la constante 3600000 del frame 1 por 3600 para que 1 hora real sea 1 segundo de simulación. FIN EJERCICIO OPCIONAL 2.12
  • 120. Facultad de Ingeniería Eléctrica Universidad Tecnológica de Pereira 117 2.9 EJERCICIOS PROPUESTOS 1. Se requiere una variable de iteración para una estructura For Loop que se comporte según: a) For ( i = 0; i <= 50; i = i+2 ) b) For ( i = 7; i < 10; i = i+0.01 ) c) For ( i = 100; i >= 10; i = i-5 ) 2. Utilizando “Digital Thermometer.vi”, escribir un programa que genere una alarma cuando la temperatura leída esté por encima de un valor máximo permitido o por debajo de un valor mínimo permitido. 3. Hacer que un While se comporte como un For. Es decir que se detenga en un número definido de iteraciones o cuando el usuario presione parar. 4. Resolver la ecuación cuadrática utilizando únicamente un nodo de fórmula. Optimizar el código del nodo a sólo 4 instrucciones. Recordar que el nodo de formula no puede operar con complejos, por lo que las salidas serán las partes reales e imaginarias de las raíces. 5. Hacer que una estructura While Loop se comporte como un WHILE..DO y no como un DO..WHILE. Esto es, que la condición de ejecución del ciclo sea revisada al inicio de cada iteración y no al final.
  • 121. 3. ARREGLOS Y CLUSTERS. 3.1 OBJETIVO Estudiar los arreglos y los clusters de LabVIEW, su utilidad y las principales herramientas para su utilización y manejo. 3.2 ARREGLOS Un arreglo es una colección ordenada de variables del mismo tipo. Puede tener una o varias dimensiones y hasta 231-1 elementos por dimensión. Para crear un control o indicador tipo arreglo se debe seguir estos pasos: 1. Poner en el Panel Frontal un contenedor de arreglos. Este se encuentra en la paleta de controles en el submenú Array&Cluster >>Array, como se observa en la figura 3.1. 2. Poner dentro del contenedor un control o un indicador del tipo de dato que se desee el arreglo. No es posible poner dentro del contenedor ni gráficas ni contenedores de arreglos.
  • 122. Facultad de Ingeniería Eléctrica. Universidad Tecnológica de Pereira 119 Figura 3.1. Paleta de controles Array&Cluster. La figura 3.2 muestra la secuencia descrita para crear un arreglo de controles numéricos. Figura 3.2. Secuencia de creación de un arreglo numérico. Los elementos de los arreglos están ordenados desde la posición 0 hasta la posición N-1 donde N es el tamaño del arreglo. La figura 3.3 muestra un arreglo booleano de 6 elementos.
  • 123. Curso Básico de LabVIEW 6i 120 En general : A[ i ] = [ a0, a1, a2 , ... , ai , ... , aN-1 ]; Figura 3.3. Organización de los elementos. En la esquina superior izquierda del contenedor de arreglos se observa un control numérico denominado indicador de índice (index display). Con él se puede controlar qué elemento del arreglo se visualizará en la primera posición del contenedor. Además con la herramienta de posición se puede redimensionar el número de elementos visibles. La figura 3.4 muestra un mismo arreglo numérico de 4 elementos en diferentes presentaciones. Figura 3.4. Arreglo numérico en diferentes presentaciones. Como se puede observar, el tamaño del arreglo es independiente de la presentación que el usuario dé a este. Cuando el tamaño visualizado es mayor
  • 124. Facultad de Ingeniería Eléctrica. Universidad Tecnológica de Pereira 121 que el tamaño del arreglo, o que el número de elementos restantes, las posiciones no utilizadas estarán deshabilitadas y se mostrarán atenuadas (grayed-out), como en los casos P1, P3 y P4 de la figura 3.4. Con la herramienta de posición también es posible redimensionar el index display con el objetivo de agregar dimensiones al arreglo. Por defecto los arreglos son de una dimensión pero es posible adicionar múltiples dimensiones. La figura 3.5 muestra la secuencia para crear un arreglo numérico de dos dimensiones. En este caso el primer index display es para las filas y el segundo para las columnas. Figura 3.5. Adición de una dimensión al arreglo. El solo hecho de adicionar un elemento al index display es suficiente para obtener un arreglo de dos dimensiones. Luego, si se desea, se puede ampliar el área visible del arreglo con la herramienta de posición como se muestra en la figura 3.5.
  • 125. Curso Básico de LabVIEW 6i 122 La figura 3.6 muestra dos posibles presentaciones de un arreglo numérico de dos dimensiones de tamaño 3x4 (3 filas y 4 columnas). Figura 3.6. Dos presentaciones de un arreglo 2D 3x4. En la ventana de diagramación un arreglo posee un terminal único. Se distinguen de los terminales de escalares en los corchetes que encierran el tipo de dato. Estos corchetes se hacen más gruesos para arreglos de 2 dimensiones. La figura 3.7 muestra terminales de arreglo para varios tipos de datos. Figura 3.7. Terminales de arreglo.
  • 126. Facultad de Ingeniería Eléctrica. Universidad Tecnológica de Pereira 123 En el menú Array de la paleta de funciones se puede encontrar todas las funciones necesarias para manipular los arreglos. La figura 3.8 enseña la paleta de funciones de arreglos. Figura 3.8. Funciones de arreglos. A continuación se describe las funciones de esta paleta. Array Size: Figura 3.9. Función Array Size. Retorna el tamaño N del arreglo de entrada. Si este es de n dimensiones, la salida será un vector de n elementos donde cada uno mostrará el tamaño de cada dimensión.
  • 127. Curso Básico de LabVIEW 6i 124 Index Array: Figura 3.10. Función Index Array. Retorna el elemento indicado de un arreglo. Se debe adicionar tantos elementos de índice como dimensiones tenga el arreglo. La salida de esta función también puede ser un arreglo cuando se cablean sólo algunos de los índices. Replace Array Subset: Figura 3.11. Función Replace Array Subset. Reemplaza el elemento indicado en los terminales de índice por el elemento que este cableado al terminal new element/subarray. Se debe agregar tantos terminales de índice como dimensiones tenga el arreglo.
  • 128. Facultad de Ingeniería Eléctrica. Universidad Tecnológica de Pereira 125 Si se desea reemplazar varios elementos, es decir una porción de arreglo, basta con cablear el nuevo arreglo al terminal new element/subarray y establecer los índices correspondiente a la porción de arreglo a reemplazar. Si no se cablea una dimensión, la función reemplazará todos los elementos en esta dimensión comenzado en la posición 0. El nuevo elemento o arreglo debe ser del mismo tipo y dimensión del arreglo inicial. Al igual que la mayoría de funciones en LabVIEW, es polimórfica y puede trabajar con arreglos de cualquier tipo y dimensión. Insert Into Array: Figura 3.12. Función Insert Into Array. Inserta un arreglo o un elemento en la posición especificada por el terminal de índice. Cuando no se cablea este terminal, el arreglo o elemento se inserta al final del arreglo de entrada. Delete From Array: Figura 3.13. Función Delete From Array.
  • 129. Curso Básico de LabVIEW 6i 126 Elimina un elemento o arreglo del arreglo de entrada. Además de devolver el arreglo editado, también devuelve la porción de arreglo eliminada. Initialize Array: Figura 3.14. Función Initialize Array. Retorna un arreglo de n dimensiones, donde todos los elementos serán inicializados con el valor y tipo de dato cableado en element. Se debe adicionar tantos elementos de índice como dimensiones se desee en la salida. Build Array: Figura 3.15. Función Build Array. Construye un arreglo de n dimensiones con los elementos de entrada que pueden ser de n o de n-1 dimensiones.
  • 130. Facultad de Ingeniería Eléctrica. Universidad Tecnológica de Pereira 127 Cuando todas las entradas poseen dimensión n, la salida será de dimensión n+1. Ahora bien, si se desea que la salida sea un arreglo de dimensión n conformado por la concatenación de todas las entradas, entonces se debe seleccionar Concatenate Inputs del menú de la función. Array Subset: Figura 3.16. Función Array Subset. Retorna una porción del arreglo de entrada (sub-arreglo). index(0) indica la posición de inicio y length el número de elementos que tendrá el sub-arreglo. LabVIEW adicionará tantos elementos de índice como dimensiones tenga el arreglo de entrada. Rotate 1D Array: Figura 3.17. Función Rotate 1D Array.
  • 131. Curso Básico de LabVIEW 6i 128 Envía los últimos n elementos de un arreglo al principio del mismo. Si n es un número negativo, se rotarán los primeros n elementos al final del arreglo. Si n es 0, N ó -N el vector de salida es igual al de entrada. Reverse 1D Array: Figura 3.18. Función Reverse 1D Array. Reordena todas las posiciones del arreglo desde el último elemento hasta el primero. Search 1D Array: Figura 3.19. Función Search 1D Array. Busca element dentro de un arreglo de una dimensión comenzando desde start index y retorna la posición donde se encontró. De no hallar ninguna coincidencia retorna " - 1 ".
  • 132. Facultad de Ingeniería Eléctrica. Universidad Tecnológica de Pereira 129 Split 1D Array: Figura 3.20. Función Split 1D Array. Divide el arreglo de entrada en el elemento index regresando dos sub-arreglos como se muestra en la figura 3.20. Sort 1D Array: Figura 3.21. Función Sort 1D Array. Ordena un arreglo de forma ascendente si es numérico o alfabéticamente si es tipo cadena. Array Max & Min: Figura 3.22. Función Array Max & Min. Retorna los valores máximo y mínimo de un arreglo numérico con sus respectivas posiciones.