Download - Guia de Ejercicios 2
Instrumentación Avanzada. J. A. Suárez- G. Murcia
1
GUÍA DE EJERCICIOS
Nº 2 INSTRUMENTACIÓN AVANZADA
Estructuras en LabVIEW
PROGRAMACIÓN GRÁFICA
Instrumentación Avanzada. J. A. Suárez- G. Murcia
2
USO DE ESTRUCURAS
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 FunctionsStructures
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.
Terminal de
Iteración
Terminal
CondicionanteTerminal de
Iteración
Terminal
CondicionanteTerminal de
Iteración
Terminal
Condicionante
Instrumentación Avanzada. J. A. Suárez- G. Murcia
3
FOR LOOP
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:
Contador de Ciclos:
indica cuantas
veces se repite el
subdiagrama
Terminal de iteración
Contiene el número de
iteraciones completas
N – Terminal de conteo
i - Terminal de Iteración
For I=0 to N-1
Ejecuta Código
Next I
NOTA: El CERO es indexado y
aparece en la primera iteración
EJECUTA UN
SUBDIAGRAMA UN
DETERMINADO NÚMERO
DE VECES
Si N es cero o
negativo
el ciclo
no se
ejecuta
Contador de Ciclos:
indica cuantas
veces se repite el
subdiagrama
Terminal de iteración
Contiene el número de
iteraciones completas
N – Terminal de conteo
i - Terminal de Iteración
For I=0 to N-1
Ejecuta Código
Next I
NOTA: El CERO es indexado y
aparece en la primera iteración
EJECUTA UN
SUBDIAGRAMA UN
DETERMINADO NÚMERO
DE VECES
Si N es cero o
negativo
el ciclo
no se
ejecuta
Instrumentación Avanzada. J. A. Suárez- G. Murcia
4
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
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.
Auto-Indexed TunnelAuto-Indexed Tunnel
Instrumentación Avanzada. J. A. Suárez- G. Murcia
5
Comprobar lo anterior agregando un nuevo túnel a For:
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.
Instrumentación Avanzada. J. A. Suárez- G. Murcia
6
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.
Instrumentación Avanzada. J. A. Suárez- G. Murcia
7
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
Instrumentación Avanzada. J. A. Suárez- G. Murcia
8
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 700C.
Si estos valores son excedidos mostrar un alerta en placa y pantalla encendiendo un LED.
Instrumentación Avanzada. J. A. Suárez- G. Murcia
9
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
Instrumentación Avanzada. J. A. Suárez- G. Murcia
10
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:
Instrumentación Avanzada. J. A. Suárez- G. Murcia
11
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.