INSTITUCIÓN UNIVERSITARIA ANTONIO JOSÉ CAMACHO FACULTAD DE INGENIERÍA INSTRUMENTACIÓN INTELIGENTE PRACTICA DE LABORATORIO No. 2 ESTRUCTURAS DE CONTROL DE FLUJO MANEJO DE DATOS SERIALES 1. OBJETIVOS a. Reforzar conocimientos sobre el ambiente de desarrollo LabVIEW. b. Desarrollar diferentes ejercicios en los cuales se utilicen algunas estructuras de control de flujo. c. Desarrollar diferentes ejercicios que permitan manipular y manejar nuevas herramientas del ambiente LabVIEW. d. Crear un patrón de señal sencilla para utilizarlo como entrada serie. e. Guardar información en forma de arreglos y teniendo en cuanta los bytes de información. f. Simular la recepción de datos a través del puerto serie. 2. MARCO TEORICO Un programa en cualquier entorno de desarrollo, no se encuentra limitado a una secuencia lineal de instrucciones. Durante su ejecución, puede ser necesario que se bifurque, repetir código o tomar decisiones. LabVIEW, al igual que otros entornos, nos provee con facilidades para crear estructuras de control de flujo, que nos permiten modificar el comportamiento del programa a medida que se ejecuta, dependiendo de las necesidades u decisiones del operador. En la figura 1 se muestra la paleta de estructuras de LabVIEW. Podríamos dividir “informalmente” las estructuras de control en dos grupos. El primero son las estructuras de decisión, las cuales seleccionan, entre un grupo de acciones, aquella que ejecutan por una sola vez si se cumple una condición en particular. La estructura representativa de este tipo dentro de LabVIEW es CASE. El segundo grupo son las estructuras de ciclo, que ejecutan una sola acción un número determinado de veces. Las estructuras de ciclo más utilizadas en LabVIEW son WHILE y FOR. Examinemos con mayor detenimiento algunas de las características de cada uno de estos ciclos. • WHILE (MIENTRAS): Este ciclo ejecuta las acciones contenidas dentro de si al menos una vez. El flujo es controlado por medio de una Figura 1: Paleta de estructuras condición la cual es chequeada en cada iteración y es establecida por medio del icono Loop Condition, con dos posibles opciones: o verdadera [1]. Para modificar el estado de la Repetir si su condición es falsa condición hacemos uso de la herramienta de operación de la Paleta de Herramientas [2]. Adicionalmente, posee un terminal de número de operaciones extraer el número de veces que se ha realizado cierta iteración. , el cual permite FOR (PARA): A diferencia del ciclo WHILE, el ciclo FOR posee un contador que determina el número de iteraciones a realizarse y el cual es modificado por medio del • . Al igual que WHILE, posee un terminal de número de terminal de cuentas iteraciones [1]. CASE (CASO): Esta estructura permite ejecutar dos o varios casos dependiendo del valor de su condición. Los casos son agregados o modificados por medio de la lista desplegable existente en la parte superior . La variable que condiciona los casos se conecta al terminal identificado como . Los casos pueden tomar valores numéricos, boléanos o cadenas. • Adicionalmente durante esta práctica haremos uso de las ventanas de graficación. Estos indicadores numéricos permiten mostrar uno o más gráficos de valores históricos, y son de gran utilidad para la visualización de señales. Para hacer uso de ellos, debemos acceder a Panel Frontal → Paleta de Controles → Express → Graph Indicators, como se muestra en la figura 2. La diferencia entre el Chart y el Graph, es que el primero grafica de manera interactiva o en tiempo de ejecución los datos. El segundo presenta un grupo de valores existentes y no tienen la capacidad de agregar nuevos valores a los ya presentados. Figura 2: Paleta de indicadores gráficos Una de las razones principales por las cuales se utiliza LabVIEW es su capacidad para adquirir y manipular datos provenientes de una gran variedad de instrumentos sensando el mundo real. Cualquiera que sea su aplicación, es necesario recolectar información para ser procesada por un computador, ya sea comandos proveídos por el usuario o datos tomados de los instrumentos. Varias soluciones son disponibles, pero la mejor depende de las desventajas que esta dispuesto a aceptar. Antes de comprar una pieza de hardware, necesita analizar y entender el tipo de señales que esta tratando de medir. Luego, debe determinar si el sistema de adquisición de datos corresponde a un instrumento tradicional, como un multimetro, controlable por medio de software, o por el contrario desea construir un instrumento virtual completo, que adquiera las señales por medio de hardware de adquisición de datos genérico. En este último caso, National Instruments provee una fácil manera de realizar la configuración y adquisición de datos de diferentes fuentes, por medio de la aplicación Measurement & Automation Explorer, también conocida como MAX. Esta aplicación ejerce como Interfase entre la aplicación, en este caso LabVIEW, y el manejador del dispositivo. Para los dispositivos de National Instruments, corresponde al NI-DAQmx, por lo cual este debe estar instalado en su computador para realizar mediciones. 3. PROCEDIMIENTO 3.1 Ejercicio 1: Utilización del ciclo WHILE Este ejercicio fue proporcionado por una fuente anónima. Tiene la ventaja de ser de gran ayuda para posteriores ejercicios. 1. 2. 3. 4. Inicie LabVIEW. Seleccione la opción Blank VI, del recuadro New. Montar el panel frontal y diagrama de bloques que se ilustra en la figura 3. Utilizaremos como indicador gráfico un Graph. El indicador canal es de tipo cadena Los otros son indicadores y controles numéricos. El ciclo WHILE debe expandirlo para poder introducir todos los elementos en él. Su tiempo de ejecución será de 100ms. Genere tres señales sinusoidales con ruido blando con frecuencias de 20Hz, 50Hz y 100Hz, fases de 0°, 45° y 90°, amplitud de 1 y frecuencia de muestreo de 1000Hz. Agregue a cada señal un ruido blanco de amplitud 0.6 y Seed de -1. Las señales sinusoidales se encuentran en el Diagrama de Bloques → Panel de Funciones → 5. 6. 7. 8. Express → Signal Analysis → Simulate Signal. Los parámetros se modifican por medio de la ventana de configuración de los elementos. Para activar el ruido blanco uniforme seleccione la opción Add noise, y en tipo indique Uniform White Noise. Sume las 3 señales sinusoidales a través del elemento de operaciones en el dominio del tiempo, el cual se puede encontrar en Mathematics → Integ&Diff → Time Domain Math. Configúrelo para suma y modo continuo activando Summation y Continuous calculation. Filtre la señal resultante por medio de un filtro IIR Pasabanda de segundo orden (Bandpass) con frecuencias de corte baja 19.5Hz y alta 20.5Hz. El filtro se encuentra en Diagrama de Bloques → Panel de Funciones → Express → Signal Análisis. Ejecute y pruebe el VI para que analice la operación que realiza. Escriba un comentario sobre el diagrama de bloques sobre su funcionamiento y los nombres de los integrantes. Almacene el VI. Figura 3. Ejercicio 1 (Superior) Panel frontal (Inferior) Diagrama de bloques 3.2 Ejercicio 2: Utilización del ciclo FOR 1. 2. 3. Seleccione la opción Blank VI, del recuadro New. Dibuje el diagrama de bloques y panel frontal que se muestran el la figura 4. Utilizaremos como indicador gráfico un Chart. El péndulo lo encuentra en el Diagrama de Bloques → Panel de Funciones → Timing. Active el indicador digital y la leyenda del Chart dando clic derecho sobre ésta para que en Visible Items → Plot Legend y Digital Display. 4. 5. Ejecute y pruebe el VI para que analice la operación que realiza. Escriba un comentario sobre el diagrama de bloques sobre su funcionamiento y los nombres de los integrantes. Almacene el VI. Figura 4. Ejercicio 2 (Superior) Panel frontal (Inferior) Diagrama de bloques 3.3 Ejercicio 3: Utilización de la estructura CASE 1. 2. 3. 4. 5. 6. 7. 8. Seleccione la opción Blank VI, del recuadro New. Dibuje el diagrama de bloques y panel frontal mostrado en la figura 5. Dentro del ciclo WHILE, agregue una estructura CASE. Dentro de la estructura CASE, en la opción TRUE, agregue los siguientes elementos: a. Una Tabla (Controls → Modern → List & Table → Ex Table), b. Funtions → String → Array to spreadsheet string c. Funtions → File I/O → Write to text File. Por fuera del ciclo WHILE ubique un control para un cuadro de dialogo (Funtions → Express → Input → File Dialog). Corra el VI. Cuando aparezca la caja de diálogo Choose or Enter Path or File, seleccione la carpeta en la cual esté trabajando (o coloque el archivo en el escritorio) y llame el archivo prueba.txt. Deje correr el VI y deténgalo cuando desee. Abra el archivo prueba.txt generado. Analice el funcionamiento del programa realizado y recuerde grabarlo de nuevo. Figura 5. Ejercicio 3 (Superior) Panel frontal (Inferior) Diagrama de bloques 3.4 Ejercicio 4: Captura y análisis de datos utilizando la tarjeta de sonido. NOTA: Para este ejercicio es necesario poseer un micrófono, conectado a la tarjeta de sonido de su PC. 1. Inicie LabVIEW. Seleccione la opción Blank VI, del recuadro New 2. Dibuje el panel frontal y de bloques que se presenta en la figura 6. 3. En el Simulate Signal: Fr=50Hz, Fr muestreo=1KHz, Amplitud=6000, No. Señales=100 (automático). 4. Almacene, ejecute y pruebe el VI para que analice la operación que realiza. Escriba un comentario en el diagrama de bloques sobre su funcionamiento y los nombres de los integrantes. Figura 6. Ejercicio 4 (Izquierda) Panel frontal (Derecha) Diagrama de bloques 3.5 Ejercicio 5: Adquirir una señal con DAQ 1. Vamos a configurar una tarjeta de adquisición de datos. Para este procedimiento es necesario que LabVIEW se encuentre cerrado. Acceda a la aplicación Measurement & Automation, ubicada en el grupo de programas de National Instruments en el menú Inicio de Windows 2. A continuación crearemos un dispositivo DAQ simulado. Para esto, de clic derecho en la opción Devices and Interfaces, ubicada en el menú desplegable de la parte izquireda. Seleccione la opción Create New. Al realizar esta operación, se desplegara 3. 4. 5. 6. 7. 8. una ventana para seleccionar los diferentes dispositivos. Seleccione NI-DAQmx Simulated Device y presione Finish. Esta acción desplegara una nueva ventana donde aparecen los posibles dispositivos a simular. Seleccione M-Series DAQ → PCI 6220 y presione OK. Al realizar estos pasos aparecerá como disponible el nuevo dispositivo como PCI-6220: “Dev 1”. Realice las siguientes pruebas sobre el dispositivo simulado: a. Ejecute una auto-prueba del dispositivo. Esta operación se puede realizar dando clic derecho sobre el nombre del dispositivo y seleccionando Self Test o sobre la barra de botones ubicada en la parte superior. Investigue que realiza esta operación. b. Ingrese ahora al Test Panel del dispositivo, al cual se puede acceder ya sea por medio de un clic derecho y seleccionar Test Panels o también por medio de la barra de botones. En este panel seleccione la pestaña Analog Input y luego modifique el modo de captura a Continuous. Presione el botón Start. Observe el resultado y comente. Cierre la aplicación MAX. Inicie LabVIEW. Seleccione la opción Blank VI, del recuadro New Construya el Panel de control y el Diagrama de bloques mostrados en la figura 7. Para localizar el elemento DAQ Assistant, acceda a Diagrama de Bloques → Paleta de Funciones → Express → Input. Realice la configuración de este elemento de la siguiente manera: a. La ventana de configuración le mostrara un menú en la parte derecha. Seleccione de este menú las siguientes opciones Acquire Signal → Analog Input → Votage. b. Aparecera un segundo menú con los dispositivos existentes. Si usted NO ha creado ningún DAQ simulado, este menú aparecerá vacio. Seleccione el canal ai0 del dispositivo PCI 6220. Presione Finalizar. c. A continuación se desplegara una nueva ventana. En esta se realiza la configuración de las tareas a realizar por el dispositivo de adquisición de datos. En la pestaña Configuration, en la sección Timing Settings seleccione los siguientes valores: Acquisition mode = Continuous Samples, Samples to read = 1000, Rate(Hz) = 10k. Presione OK. Almacene, ejecute y pruebe el VI para que analice la operación que realiza. Escriba un comentario en el diagrama de bloques sobre su funcionamiento, las posibles ventajas que tiene el disponer de un dispositivo simulado y los nombres de los integrantes. Figura 7. Ejercicio 5 (Izquierda) Panel frontal (Derecha) Diagrama de bloques 3.6 Ejercicio 6: Análisis de datos y utilización de los VI’s Express 1. Inicie LabVIEW. Seleccione la opción Blank VI, del recuadro New. 2. Construya el Panel de control y el Diagrama de bloques mostrados en la figura 8. Para el elemento Simulate Signal seleccione en la sección de Timing la opción Simulate Acquisition Timing. No modifique ningún otro parámetro. 3. Para el elemento DAQ Assistant, utilice las opciones del punto anterior. 4. Para ubicar el elemento Filter, acceda a Diagrama de Bloques → Paleta de Funciones → Express → Signal Análisis. Configure este elemento de tal manera que el filtro resultante sea IIR Chebyshev de segundo orden pasa bajos, con frecuencia de corte de 300Hz. 5. Almacene, ejecute y pruebe el VI para que analice la operación que realiza. Modifique el filtro a un filtro pasa altas. Ejecute y pruebe el VI para que analice la operación que realiza. Escriba un comentario en el diagrama de bloques sobre su funcionamiento y los nombres de los integrantes. Figura 8. Ejercicio 6 (Superior) Panel frontal (Inferior) Diagrama de bloques 6. Remueva el ciclo WHILE del ejercicio. Para esto, de clic derecho sobre el borde del ciclo y seleccione Remove While Loop. 7. Reemplace el gráfico Chart por un Graph. 8. Haga clic derecho sobre el Graph y en Visible Items active la opción Cursor Legend. 9. Modifique la frecuencia de la señal simulada entre valores de 10Hz a 100Hz. 10. Ejecute el VI y observe la ventana gráfica. Si la señal no es apreciable, es posible que requiera configurar el gráfico con escala automática. Para esto, haga clic derecho sobre la gráfica y seleccione X Scale → Autoscale X. 11. Con los cursores de la gráfica, mida manualmente la frecuencia y la amplitud de la señal. Para crear un cursor haga clic derecho dentro del cuadro de cursores y elija Create Cursor → Free. A continuación aparecerá en la ventana gráfica dos líneas que puede ubicar para fijar un solo punto, el cual aparece su coordenada en la ventana de cursor. Debe añadir otro cursor para establecer las medidas pedidas. Para realizar las medidas, es necesario que el VI este en ejecución. Compruebe los resultados obtenidos en forma manual con los presentados por los indicadores de Amplitud y Frecuencia. 12. Almacene con un nuevo nombre el VI. Escriba un comentario en el diagrama de bloques sobre su funcionamiento y los nombres de los integrantes. TALLER • • • Elabore los ejercicios planteados en el procedimiento, identificando la función que realiza cada uno de ellos. Presente su interpretación junto con el diagrama de bloques y el panel frontal, el cual debe mostrar el nombre de sus creadores. Realizar un VI que emule un secuenciador de luces (mínimo 5 LEDs de color rojo). La velocidad de la secuencia puede ser fijada por el usuario, y además puede indicar el sentido de la misma (de izquierda a derecha o de derecha a izquierda). Construya una aplicación para manipulación de sonido, la cual posea las siguientes características: a. La entrada de audio puede ser adquirida por medio de un micrófono o a través de un archivo WAV. b. Construya como un subVI, al menos dos efectos de sonido. Algunas sugerencias son: Desplazamiento en frecuencia, Agregar ruido blanco, Mezclar dos señales. c. La señal resultante debe ser visible en un gráfico y almacenable en un archivo WAV. d. Por estas especificaciones, la aplicación debe tener al menos botones que permitan: Abrir archivo, grabar archivo, grabar del micrófono, reproducir el sonido, agregar un efecto. Nota: Los informes se entregan en tríos. Se recomienda trabajar con sus compañeros de exposición. Bibliografía [1] Travis, Jeffrey. Kring, Jim. LabVIEW for Everyone: Graphical Programming Made Easy and Fun, Third Edition. Prentince Hall. 2006. [2] Cano, R. Muñoz M. A. Práctica de Laboratorio No. 1: Introducción a la Instrumentación Virtual – Ambiente LabVIEW 8.2. Institución Universitaria Antonio José Camacho. Facultad de Ingeniería. 2008.