INSTITUCIÓN UNIVERSITARIA ANTONIO JOSÉ CAMACHO FACULTAD DE INGENIERÍA INSTRUMENTACIÓN INTELIGENTE PRACTICA DE LABORATORIO No. 1 INTRODUCCIÓN A LA INSTRUMENTACIÓN VIRTUAL AMBIENTE LABVIEW 8.2 1. OBJETIVOS Realizar una descripción del ambiente de trabajo LabVIEW 8.2 estableciendo sus principales características. Desarrollar programas sencillos que permita la familiarización con el paquete de Instrumentación Virtual. Conocer las capacidades para programación modular existentes en LabVIEW a través de la creación de subrutinas o subvi. Aprender sobre el manejo de estructuras de datos como arreglos y clústeres en LabVIEW. 2. MARCO TEORICO LabVIEW, acrónimo de Laboratory Virtual Instrument Engineering Workbench, es entorno de programación en el cual puedes crear aplicaciones, denominadas Instrumentos Virtuales (Virtual Instruments VI), usando una notación gráfica, denominada por algunos de manera afectiva como G, la cual consiste en conectar nodos funcionales a través de cables por los cuales fluyen los datos. En este sentido es diferente de lenguajes como Java, C++ y MATLAB, donde la programación se realiza a través de texto. LabVIEW permite desarrollar programas multiplataforma que funcionen de igual manera en ambientes Windows, Mac OS X o Linux, crear aplicaciones para plataformas embedidas y móviles como Windows CE, Palm OS, FPGAs, DSPs y Microprocesadores [1]. LabVIEW fue lanzado por National Instruments en 1986 como resultado de una investigación para minimizar el tiempo de desarrollo de sistemas de instrumentación. En la actualidad, la última versión disponible es la 8.50 la cual está disponible a partir de otoño del 2007. Su uso no se ha limitado al diseño de sistemas de instrumentación, sino también de sistemas de control, de procesamiento de señales e imágenes, bioingeniería, simulación y prototipado, entre otros. La expansión de LabVIEW se debe principalmente a que los sistemas de Instrumentación Virtual son soluciones de bajo costo, tanto en hardware como tiempo de desarrollo, y de gran flexibilidad. Otras características que hacen de LabVIEW una poderosa herramienta son: Capacidad de trabajar con diferentes interfases de comunicación para la adquisición y manipulación de datos (Puerto Serie/Paralelo, GPIB, PXI, VXI, TCP/IP, Bluetooth, USB, OPC, entre otras); programación estructurada que permite crear sub-vis lo cual permite la rápida reutilización de código, e interacción con otras aplicaciones como MATLAB, Simulink, ActiveX y DLLs. En este laboratorio, trabajaremos con la versión 8.2 de LabVIEW. Cada VI posee dos partes claramente diferenciables: el Panel Frontal, en el cual se encuentran los denominados controles (entradas) y los indicadores (salidas), y es a su vez la ventana de visualización de procesos o sucesos; y el Diagrama de Bloques, donde se lleva a cabo la programación por medio de la conexión de los elementos del panel frontal con elementos funcionales. Las figuras 1 y 2 muestran el aspecto del Panel Frontal y del Diagrama de Bloques respectivamente, y algunos de sus componentes.
Figura 1. Panel Frontal de LabVIEW 8.2 Figura 2. Ventana de Diagrama de Bloques del LabVIEW 8.2 Para el desarrollo en cada una de las partes del VI, contamos con una paleta de desarrollo que toma diferente función si estamos trabajando con el Panel Frontal o con el Diagrama de Bloques y que para hacerse visible, debemos hacer clic con el botón derecho sobre el área de trabajo. Cuando nos encontramos en el Panel Frontal, la paleta toma el nombre de Paleta de Controles, la cual se muestra en la figura 3, y que nos permite seleccionar los diferentes elementos de entrada/salida los cuales dependen del tipo de sistema o dato a manejar. Algunos ejemplos son: Numeric: Contiene controles e indicadores de tipo numérico. Bolean: contiene indicadores y controles para el manejo de datos boléanos (cierto/falso, 1/0). Figura 2. Paleta de Controles Cluster: contiene controles e indicadores para el manejo de datos numéricos, boléanos, de caracteres, cadenas, etc. Graph: contiene diferentes elementos para la graficación en el tiempo y frecuencia.
Para el caso del diagrama de bloques, la paleta toma el nombre de Paleta de funciones, que podemos observar en la figura 4. Esta paleta nos permite seleccionar diferentes opciones para la manipulación de los datos, entre las que podemos mencionar: Structures: contiene ciclos de secuencia como While, For, Case, etc. Numeric: contiene funciones como suma, resta, multiplicación, división, incremento, valor absoluto, etc. File I/O: contiene funciones como abrir/crear/remplazar archivos, cerrar archivos, escribir en archivo, etc. Comparison: contiene funciones de comparación como >, <, >=, <=, etc. Instrument I/O: donde se encuentran las Figura 4. Paleta de Funciones funciones de programación de entrada/salida para dispositivos GPIB, puerto serial, entre otros. Mathematics: con funciones de integración, derivación, filtros, interpolación, entre otras. Express: posee funciones de configuración de dispositivos de adquisición de datos, manipulación y análisis de señales, etc. Adicionalmente, LabVIEW 8.2 cuenta con la Paleta de Herramientas, la cual podemos observar en la figura 5. Esta paleta nos permite seleccionar el modo de operación del cursor, lo que nos hace posible realizar una serie de operaciones de edición como mover, copiar, unir, nombrar, cambiar de tamaño o color, a los elementos que se encuentren en el panel frontal o la ventana de diagrama de bloques. Las funciones de cada elemento de la paleta se resumen en la tabla 1. Adicionalmente, la función de selección automática de herramienta, permite que seleccione la herramienta adecuada al acercar el cursor a un área específica del elemento. Esta se activa por medio del botón superior de la barra de herramientas y se conoce que esta activo por medio del indicador verde. Figura 5. Paleta de herramientas Herramienta de operación Herramienta de posicionamiento o movimientos pequeños Herramienta para insertar texto Herramienta para realizar conexiones Herramienta de menú (atajo) Herramienta para desplazamientos grandes Herramienta de punto de parada Herramienta de testeo o prueba Herramienta para copiar color de elementos Herramienta para colorear Tabla 1. Funciones de los elementos de la barra de herramientas Finalmente, en la parte superior central de las ventanas de LabVIEW se encuentra la Barra de Herramientas, la cual se muestra en la figura 6. Esta conformada por botones que te permite controlar la ejecución del VI, además de la configuración del texto, la alineación y distribución de los objetos. Las funciones de cada elemento de la barra se resumen en la tabla 2.
Figura 6. Barra de Herramientas de Estado Botón de ejecución (RUN) Botón de ejecución continua (Continuos RUN) Cancelación de ejecución (evite utilizarlo) Parada de ejecución Configuración de texto Alineamiento de objetos Distribución de objetos Botón de ejecución resaltada Botón de entrada/salida a ciclos Botón de reordenamiento de objetos Tabla 2. Funciones de los elementos de la barra de herramientas de estado Al igual que otros entornos de programación, para obtener el máximo provecho de LabVIEW, es indispensable hacer uso de la jerarquía de programación, la cual permite realizar pequeños programas reutilizables que elaboren algunas tareas sencillas y recurrentes [1]. Con este objetivo, LabVIEW hace uso de instrumentos virtuales (VI) preexistentes como rutinas dentro de otro instrumento, a los cuales se les conoce como subvis. Los subvis, además de proporcionar modularidad, ayudan a reducir la memoria requerida por los instrumentos y de simplificar los diagramas de bloques a medida que los programas se vuelven más complejos. Para hacer uso de un VI preexistente como un subvis, es necesario, además de definir su funcionalidad a través de su respectivo diagrama de bloques y panel frontal, identificarlo por medio de un icono y un conector, los cuales son visibles tanto en el diagrama de bloques como en el panel frontal y están ubicados en la esquina superior derecha de estas ventanas. El icono es la representación gráfica de un VI dentro de un diagrama de bloques y puede contener texto e imágenes. Los conectores muestran los terminales disponibles para la transferencia de datos desde y hacia el subvi. Para observar el conector debemos dar clic derecho sobre el icono en el panel frontal para desplegar el menú contextual y seleccionar Show Connector, como se muestra en la figura 6. Para editar el icono debemos seleccionar el modo de edición, también asequible por medio del menú contextual. Este modo despliega una interfase similar a la existente en varios programas de edición gráfica. Para modificar el conector podemos seleccionar entre un grupo de patrones o agregar terminales a medida que sea necesario. En la figura 7 se muestran algunos ejemplos de patrones existentes. Figura 6. Icono del VI y forma de seleccionar el conector. En resumen, podemos identificar los pasos necesarios para crear y utilizar un subvi: 1. Construir el subvi definiendo su diagrama de bloques y panel frontal. 2. Crear un icono que represente su funcionalidad. 3. Crear el conector. 4. Asignar los terminales del conector a elementos de entrada y salida. 5. Almacenar el subvi. 6. Introducir el subvi en el programa de jerarquía superior. Figura 7. Patrones de conectores existentes.
Además de programación modular, LabVIEW también nos permite hacer uso de estructuras de datos, a las que denominaremos arreglos o clústeres. Los arreglos (array en ingles) son estructuras que agrupan datos del mismo tipo de manera organizada, usualmente como vectores, matrices o subespacios, dependiendo del número de dimensiones que posea las cuales están restringidas en LabVIEW hasta 2 31-1, obviamente teniendo en cuenta la capacidad de la memoria de nuestro computador. Los arreglos pueden contener datos numéricos, boléanos, rutas, cadenas, de formas de onda e inclusive clusters. Su uso es indispensable cuando se requiere trabajar con una colección de datos similares, cuando se realizan cálculos repetitivos, para almacenar información obtenida de formas de ondas o generada por medio de ciclos. Un cluster en cambio agrupa elementos que pueden ser de igual o diferente formato. Un cluster requiere que sus elementos sean únicamente de entrada o de salida (solo puede tener indicadores o controles). 3. PROCEDIMIENTO LabVIEW, al igual que otros entornos de programación requiere para su aprendizaje la práctica continua y la elaboración de ejercicios de dificultad creciente. A continuación realizaremos algunos ejercicios a manera de introducción, los cuales pretenden ambientar al estudiante con las diversas herramientas del entorno. Ejercicio 1: Creación de un VI El siguiente VI (programa) permita establecer automáticamente la suma y resta de dos números (A y B) ingresados por el usuario, llevando a cabo los siguientes pasos: 2. Ubíquese en el Panel Frontal. Si la paleta de controles no se encuentra visible, haga clic derecho para que aparezca. 3. Una vez en la paleta de funciones, seleccione dos controles numéricos (de la sección Num Ctrls) y dos indicadores numéricos (de la sección Num Inds). Para ubicarlos en el panel, arrástrelos y ubíquelos en la posición deseada. Observe como en la ventana de diagrama de bloques también aparece el elemento seleccionado. 4. Etiquete los controles como A y B. Etiquete los indicadores como A+B y A-B. 5. En el diagrama de bloques, deben aparecer de igual forma dos controles y dos indicadores. Para indicar la operación que realizaremos con ellos, utilizamos la Paleta de funciones, seleccionamos Mathematics/Numeric (Si no es visible, despliegue la paleta con la flecha ubicada en la parte inferior). Busque el icono de adición y de sustracción y ubíquelos sobre la ventana. 6. Realice las conexiones como se muestra en la figura 7. 7. Ejecute y pruebe el VI en modo continuo. Pruebe diferentes valores de A y B y observe los resultados mostrados en (A+B) y (A-B). Guarde su programa. Figura 8. Ejercicio 1 (Izquierda) Panel frontal (Derecha) Diagrama de bloques Ejercicio 2: Conversión de ºC a ºF
2. Seleccione y ubique un control numérico (Panel frontal Paleta de controles Express Num Ctrls Control numérico) 3. Seleccione y ubique un indicador numérico (Panel frontal Paleta de controles Express Num Inds Indicador numérico) 4. Escriba en el panel frontal: VI que permite convertir ºC en ºF (Para activar la herramienta de texto use la paleta de herramientas, si esta no es visible, vaya al menú View Tool Palette) 5. Seleccione y ubique un nodo de suma (Diagrama de bloques Paleta de funciones Mathematics Numeric Suma). 6. Seleccione y ubique un nodo de multiplicación (Diagrama de bloques Paleta de funciones Mathematics Numeric Multiplicación). 7. Sobre el nodo de suma (add), haga clic derecho y seleccione la opción de crear constante. Igual haga con el icono de multiplicación. 8. Realice las conexiones como se muestra en la figura 8. 9. Ejecute y pruebe el VI en modo continuo. Pruebe diferentes valores de Centígrados y observe los resultados mostrados en Fahrenheit. Guarde su programa. Figura 9. Ejercicio 2 (Izquierda) Panel frontal (Derecha) Diagrama de bloques Ejercicio 3: Configuración de alarma visible en la figura 9 y realice las conexiones que allí se muestran. 3. Ejecute y pruebe el VI en modo continuo. Mueva el control denominado bomba y apreciando lo que ocurre en el tanque y la alarma. Guarde su programa. Figura 10. Ejercicio 3 (Izquierda) Panel frontal (Derecha) Diagrama de bloques Ejercicio 4: Nodo de fórmula en la figura 10 y realice las conexiones que allí se muestran. 3. Ejecute y pruebe el VI en modo continuo. Guarde su programa.
Figura 11. Diagrama de bloques y panel frontal para ejercicio 4 Ejercicio 5: Creación y uso de un subvi Para realizar este ejercicio necesitamos realizar dos VIs. El primero de ellos será utilizado como subvi, para lo cual se deben seguir los siguientes pasos. en la figura 12 y realice las conexiones que allí se muestran. 3. Ingrese al editor de iconos, ya sea por medio del menú contextual o haciendo doble clic sobre el icono. Modifique el icono de acuerdo a sus preferencias. Presione OK para guardar los cambios. Observe como el icono cambia en las ventanas de Panel y Diagrama. 4. Cambie el icono por el conector por medio de la opción en el menú contextual Show Connector. Seleccionar el patrón de dos entradas y una salida (elemento en la fila 1, columna 4 de la figura 7). 5. Conecte el conector del subvi a los indicadores y controladores correspondientes, en nuestro caso Límite inferior y Límite Superior como entradas y Salida como una salida. 6. Pruebe el programa y analice su funcionamiento. Escriba un comentario en el diagrama de conexiones que indique su funcionamiento. 7. Almacene el VI. Figura 12. Ejercicio 5, subvi (Izquierda) Panel frontal (Derecha) Diagrama de bloques Rutinas para creación del VI (programa principal): en la figura 13 y realice las conexiones que allí se muestran. Para introducir el subvi que creamos anteriormente, ingrese al diagrama de bloques y dentro de la paleta de funciones y seleccione Select VI. En el cuadro de dialogo que aparece, seleccione el subvi. Podrá notar que ahora, pegado al cursor, aparece una caja que tiene como icono que creaste para el subvi. Realice las conexiones de entrada y/o salidas de éste como se muestra en la figura 7. 3. Pruebe el programa y analice su funcionamiento. Escriba un comentario en el diagrama de conexiones que indique su funcionamiento. 4. Almacene el VI.
Figura 13. Ejercicio 1, principal (Izquierda) Panel frontal (Derecha) Diagrama de bloques Ejercicio 6: Utilización de arreglos en la figura 14 y realice las conexiones que allí se muestran. 3. Para que los arreglos tengan el número de elementos que aparece en la figura, introduzca en ellos un indicador, máquelo y expándalo hasta obtener el número de elementos que necesita. 4. Pruebe el programa y analice su funcionamiento. Escriba un comentario en el diagrama de conexiones que indique su funcionamiento. 5. Almacene el VI. Figura 14. Ejercicio 6 (Superior) Panel frontal (Inferior) Diagrama de bloques Ejercicio 7: Utilización de Clusters en la figura 15 y realice las conexiones que allí se muestran. Nótese que la salida es un cluster de clústeres.
3. Pruebe el programa y analice su funcionamiento. Escriba un comentario en el diagrama de conexiones que indique su funcionamiento. 4. Almacene el VI Figura 15. Ejercicio 7 (Superior) Panel frontal (Inferior) Diagrama de bloques 4. TALLER Implemente cada uno de los ejercicios de esta guía. Explique brevemente su funcionamiento. Realice un VI que represente un voltímetro con las siguientes especificaciones mínimas: a. Se represente a través de un arreglo de tres dígitos una entrada de voltaje. Cada dígito solo puede contener un número. b. La entrada de voltaje puede ser simulada a través de un control de entrada de datos. c. El voltímetro debe tener una perilla para seleccionar las siguientes escalas de voltaje: 100mV, 1V y 10V. d. Se genere una alarma cuando la entrada de voltaje exceda la escala de voltaje en la cual se encuentra el voltímetro. (La indicación debe ser en color rojo y pequeña) e. Debe tener además la opción de indicar cuando un valor de voltaje es negativo. f. Cualquiera de las opciones propuestas, realizarla como un subvi que utilice el programa principal. Nota: Los informes se entregan en parejas. Se recomienda trabajar con sus compañeros de exposición. Fecha de entrega 14 de Marzo de 2008. Bibliografía [1] Travis, Jeffrey. Kring, Jim. LabVIEW for Everyone: Graphical Programming Made Easy and Fun, Third Edition. Prentince Hall. 2006.