GUÍA DE EJERCICIOS Nº 2 INSTRUMENTACIÓN AVANZADA Estructuras en LabVIEW PROGRAMACIÓN GRÁFICA 1
USO DE ESTRUCURAS Instrumentación Avanzada. J. A. Suárez- G. Murcia While Loop Es una estructura similar a la utilizada en otros lenguajes (do While Loop), en la que una rutina se repite hasta que la condición impuesta se cumple. Para colocar un While Loop en el DB lo seleccionamos desde Functions Structures Terminal de Iteración Terminal Condicionante While Loop ejecuta el subdiagrama hasta que la condición terminal reciba un específico valor booleano. Por defecto el terminal condicional se detiene si es verdad Sop if True y haciendo clic sobre el mismo puede cambiarse a continuar si es verdad Continue is True. El contador de la iteración siempre arrancará desde cero. Ejercicio 2.1. Armar un VI que cuente la cantidad de iteraciones para alcanzar la igualdad con un número ingresado por el operador: En el panel frontal quedará esta presentación: El diagrama de bloques será el siguiente: Se ha introducido la función Increment (+1), para contar el número real de iteraciones, dado que como se ha dicho se inician en cero. 2
FOR LOOP Contador de Ciclos: indica cuantas veces se repite el subdiagrama N Terminal de conteo i - Terminal de Iteración Si N es cero o negativo el ciclo no se ejecuta Terminal de iteración Contiene el número de iteraciones completas EJECUTA UN SUBDIAGRAMA UN DETERMINADO NÚMERO DE VECES For I=0 to N-1 Ejecuta Código NOTA: El CERO es indexado y aparece en la primera iteración Next I En For Loop la rutina se ejecuta un número determinado de veces, impuesto por el contador de ciclos N (borde superior izquierdo). Ejercicio 2.2 Simular el llenado de un tanque utilizando la estructura FOR LOOP. Ejercicio 2.3 Ejecutar una aplicación VI que genere 100 números aleatorios y los muestre en un gráfico (Waveform Chart). Diagrama de Bloques: 3
Panel Frontal: Opciones de Waveform Chart Desde el menú propiedades (con clic derecho): Update Mode: Strip Chart Desde el menú Plot efectuar los siguientes cambios: Con la paleta Tools efectuar el cambio de color de fondo (negro a blanco) de la pantalla. Ejercicio 2.4. Multiplicar los primeros 10 números naturales por una constante igual a 10. Obtener el resultado de cada producto entre intervalos de un segundo. Generación de un Array Se puede usar tanto la secuencia FOR como WHILE LOOP para generar un array. Esto es llamado autoindexado y se logra a través de un túnel en el borde de la estructura. Ejercicio 2.5 De ejercicio anterior, obtener en un array los resultados de las operaciones realizadas en cada iteración Auto-Indexed Tunnel Si en el túnel con clic derecho pasamos a Disable Indexing, aparecerá el cableado de salida quebrado. Si apoyamos el cursor con Create habilitamos un nuevo indicador numérico, que solo entregará el último resultado de la iteración. 4
Comprobar lo anterior agregando un nuevo túnel a For: Instrumentación Avanzada. J. A. Suárez- G. Murcia Ejercicio 2.6 Obtener el resultado en un array de los cuadrados de los números de 0 a 10 y graficarlos. SHIFT REGISTERS Shift registers (SR) se utiliza tanto en los WHILE LOOP como en FOR LOOP. Se utilizan para transferir datos desde una iteración a la siguiente. Son similares a las variables estáticas en los lenguajes de programación basados en texto. Un SR se crea haciendo click sobre el borde derecho o izquierdo del loop y seleccionando Add Shift registers desde el menú emergente. Los datos a cablear en los terminales de cada SR deben ser del mismo tipo. 5
Ejercicio 2.7: Obtener el penúltimo y último resultado del cuadrado de los primeros cinco números naturales utilizando la propiedad de Shift Registers. CASE STRUCTURE Esta estructura es equivalente a IF/ THEN/ ELSE de los lenguajes tradicionales de texto. If condition=true then Ejecute el código 1 ELSE Ejecute el código 2 Endif Ejercicio 2.8 A partir de la estructura CASE, realice la aplicación siguiente: Cuando el pulsador está en OFF debe aparecer Pulsador en OFF y el LED en color rojo. Cuando el pulsado está en ON debe aparecer la leyenda Pulsador en ON y el LED cambiar a color verde. 6
Ejercicio 2.9 Ingresar dos números x e y y realizar mediante un control booleano combinado con una estructura CASE la suma o resta de los mismos. Ejercicio 2.10 Ejecute una aplicación para obtener la raíz cuadrada de un número. Si el número ingresado es menor que cero debe aparecer un diálogo de advertencia: Error ha ingresado un número negativo. Ejercicio 2.11 Desarrolle una aplicación para obtener a partir de dos números ingresados las cuatro operaciones matemáticas (suma, resta, multiplicación y división) utilizando como menú un control del tipo RING. Repita el ejercicio reemplazando el control RING por uno del tipo TAB 7
Ejercicio 2.12 Desarrolle una aplicación que adquiera la lectura de la temperatura desde una termocupla (simulada con la entrada analógica de la placa USB) y muestre el valor en pantalla. Controle el valor mínimo y máximo desde el panel frontal entre 300 y 700 C. Si estos valores son excedidos mostrar un alerta en placa y pantalla encendiendo un LED. 8
ESTRUCTURAS EN LABVIEW EJERCICIOS SEGUNDA PARTE Ejercicio 2.13 Simular un proceso en donde una variable analógica (simulada con la placa USB) sube gradualmente hasta alcanzar el valor 100. A partir de aquí y transcurridos 10s la variable se ajusta a un valor doble, transcurridos otros 10s vuelve a duplicarse y dentro de otros 10s se reduce a la mitad. Durante todo el proceso debe encenderse un LED indicador de Proceso Iniciado. Ejercicio 2.14 Construir un señalizador luminoso de cuatro LEDs que se iluminen en forma cíclica de izquierda a derecha. Utilice la placa adquisidora para comprobar su funcionamiento real. Ejercicio 2.15 Construir un VI que simule el llenado y vaciado de un tanque. El nivel del tanque debe controlarse desde el panel frontal. Debe incorporarse el control de apertura y cierre de la válvula. Válvula abierta Llenado del tanque Válvula cerrada Vaciado del tanque 9
Ejercicio 2.16 Construir un VI, en cuyo panel frontal se simule el arranque de una torre de enfriamiento (ventilador en movimiento/led encendido) y la detención con un pulsador de tarjeta USB. Ejercicio 2.17 Simular y registrar las variaciones de tensión en una instalación eléctrica a partir de la adquisición de datos de la entrada analógica de la placa USB. La tensión debe ser graficada en sus valores: actual, mínimo y máximo (valores extremos). El panel frontal debe tener el siguiente aspecto: 10
Ejercicio 2.18 Construir un VI con el siguiente aspecto en el panel frontal: Debe controlar el encendido a voluntad del operador de tres motores, mediante el uso de la estructura Event. Los LEDs deben quedar encendidos (tanto en el panel frontal como en la Placa USB PIC18F2550) una vez que el motor entró en funcionamiento. Ejercicio 2.19 Desarrollar la una aplicación que controle el encendido y corte de dos motores a voluntad del operador, con un panel frontal similar al siguiente: Los LEDs (Panel Frontal y Placa USB) deben quedar iluminados toda vez que el motor arranque y apagado cuando está fuera de servicio. Ejercicio 2.20 Construir un VI donde puedan simularse las cuatro operaciones matemáticas, utilizando la estructura Event. Una vez iniciado la ejecución del programa, al introducir los números en las variables a y b debe actualizarse el resultado. 11