You are on page 1of 62

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Instrumentacin Virtual con LabVIEW

ESTRUCTURAS

INSTRUMENTACIN AVANZADA INSTRUMENTACI

INSTRUMENTACIN AVANZADA INSTRUMENTACI

ESTRUCTURAS
WHILE FOR.. CASE SEQUENCE Opciones de seleccin de CASE

Controles Visibles Variables Locales y Globales Personalizar controles

INSTRUMENTACIN AVANZADA INSTRUMENTACI

1.- ENTORNO DE PROGRAMACIN 2.- ESTRUCTURAS 3.-ARRAYS Y CLUSTERS 4.- MATHSCRIPTS Y MATLAB 5.- STRINGS & FILES 6.- GRAFICOS 7.- ADQUISICION DE DATOS

Do While Loop

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Terminal de Iteracin Do While condicion is true Execute Sub diagram Loop

Terminal Condicionante

Ejecuta una rutina hasta que la condicin terminal se cumple.

While Loop revisa la condicin al final del ciclo. El ciclo se ejecuta al menos una vez. El terminal de iteracin contiene el nmero de veces que el ciclo se ha ejecutado.

Blank.vi

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Do While Loop

La primera iteracin inicia en cero

Con Click derecho derecho podemos cambiar la condicin

For Loop
Contador de Ciclos: indica cuantas veces se repite el subdiagrama

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Dos atributos: N Terminal de conteo i - Terminal de Iteracin

A partir de LabVIEW 7, haciendo click sobre WHILE loop en el diagrama de bloques puede cambiarse por FOR loop

Si N es cero o negativo el ciclo no se ejecuta

Terminal de iteracin Contiene el nmero de iteraciones completas

EJECUTA UN SUBDIAGRAMA UN DETERMINADO NMERO DE VECES

For I=0 to N-1 Ejecuta Cdigo Next I

Blank.vi Ejercicio

NOTA: El CERO es indexado y aparece en la primera iteracin

INSTRUMENTACIN AVANZADA INSTRUMENTACI

INDEXADO

Se obtiene el ltimo resultado

Se almacenan en cada una de las celdas de una matriz los resultados parciales

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Shift Registers
Shift registers se utiliza tanto en los WHILE LOOP como en FOR LOOP. Se usan para transferir datos desde una iteracin a la siguiente. Son similares a las variables estticas en los lenguajes de programacin basados en texto. Un Shift register 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.

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Ejercicio: Obtener el penltimo y ltimo resultado del cuadrado de los Ejercicio primeros cinco nmeros naturales.

Ejercicio

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Shift Registers

EJERCICIO VI

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Sentencias de Seleccin: Case Structures


Esta estructura es equivalente a IF/ THEN/ ELSE If condition=TRUE THEN Execute code ELSE Execute Code End If CASE SELECT structures CASE SELECT var var=1, do code1 var=2, do code2 var=3, do code3 otherwise, do code
0 , D e f a u lt
F a ls e

var

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Case Structures

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Opciones de Seleccin para CASE

Ejercicio (booleano-numrico-Ring) Ejercicio (tab control)

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Opcin de Seleccin con TAB CONTROL

Ejercicio

INSTRUMENTACIN AVANZADA INSTRUMENTACI

EJERCICIO VI

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Propiedades de Controles e Indicadores Visible

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Marcando el control y haciendo clic derecho con el mouse seleccionamos: Create->Property Node->Visible

Propiedades node.vi

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Sentencias de secuenciacin
En lenguajes tradicionales basados en texto, el orden de ejecucin lo impone el orden en que las instrucciones estn escritas. En LabVIEW sigue el modelo de Flujo de Datos, (un nodo necesita tener disponibles todos los datos de sus entradas para ejecutarse), por lo tanto no se puede determinar cual es el orden de las tareas a ejecutar. Puede presentarse el caso de nodos independientes, en situacin de ejecutarse simultneamente, pero por manejo de los datos, es necesario fijar el orden de los mismos, es decir establecer una secuencia de ejecucin.

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Sentencias de secuenciacin
Se trata de un tipo de sentencia que garantiza la ejecucin secuencial (uno detrs de otro) de varios mdulos de cdigo. Cuando en el diagrama de LabVIEW son definidos varios mdulos de cdigo, en realidad no se sabe en qu orden van a ser ejecutados, es decir, no se sabe cul de ellos se ejecutar en primer lugar y cul en el ltimo lugar. Hay aplicaciones en las que este orden de ejecucin no es importante, pero en otras es de vital importancia. Por ello, en las aplicaciones donde el orden de ejecucin de los distintos mdulos es crtico, resulta imprescindible utilizar las sentencias de secuenciacin para garantizar esa secuencia de ejecucin de los mdulos.

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Sentencias de secuenciacin
La herramienta de desarrollo de aplicaciones LabVIEW ofrece dos sentencias de secuenciacin. La primera es la Flat Sequence Structure y se encuentra en Functions/Programming/Structures. Cuando es insertada en el diagrama de nuestra aplicacin, aparece con una nica ventana o Frame: es la unidad o elemento donde ir un mdulo dado del cdigo de nuestra aplicacin. Para aadir ms ventanas, se pulsa sobre la ventana con el botn derecho del ratn y se ejecuta Add Frame Before o Add Frame After, para aadir la ventana antes o despus de la actual, respectivamente.

Simulan como fotogramas de una pelcula


Ejercicio

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Ejercicio

INSTRUMENTACIN AVANZADA INSTRUMENTACI

FLAT SEQUENCE
Ejercicio 2.7 Construir un VI que 5 LEDS, que se iluminen en forma cclica de izquierda a derecha:

ejercicio

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Sentencias de secuenciacin
Cuando son necesarias muchas ventanas, porque as lo requiere la aplicacin, aparece el problema del espacio en el diagrama, de tener que desplazar varias pantallas desde el inicio de la secuencia hasta su final. Entonces, lo lgico es sustituir la sentencia Flat Sequence Structure por la sentencia Stacked Sequence Structure, la cual funciona exactamente igual que la anterior, solo Structure que apila las ventanas una encima de otra. Aunque a simple vista no sea posible ver la secuencia, resulta muy prctico su uso cuando el espacio disponible es pequeo.

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Sentencias de secuenciacin

Ejercicio

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Trabajando con Variables Variable Local Variable Global Variable Compartida

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Trabajando con Variables


Muchas veces dentro de la programacin es necesario almacenar el valor de una variable para poder usarla posteriormente. En LabVIEW tambin puede realizarse estas sentencias, almacenando una variable para luego usarla dentro de otro bloque del VI o bien en otro VI. LabVIEW dispone de dos tipos de variables locales y globales y a partir de la versin 8.0 las compartidas.

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Creacin de una Variable Local


Construimos el siguiente VI, utilizando una Flat Sequence Structure

Ejercicio

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Creacin de una Variable Local


A continuacin le agregamos un cuadro a la secuencia, que consistir en una variable local que almacenar el ltimo nmero generado y lo presentar en el PF. La variable local la seleccionamos dentro de Structures :

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Creacin de una Variable Local


A continuacin hay dos pasos fundamentales a realizar: Primero: determinar a que objeto del programa va a estar enlazado Segundo: elegir si va a ser de lectura (read) o escritura (wirte). Para el caso del ejemplo hacer click derecho sobre la variable local y seleccionar Select Item/Numeric y luego Change to Read

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Creacin de una Variable Local

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Creacin de una Variable Local


Finalmente le agregamos un indicador a la variable y ejecutamos el programa, comprobando que este termina con dos indicadores con valores idnticos, es decir el ltimo nmero registrado:

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Creacin de una Variable Global


Las variables locales solo tienen vida dentro de un mismo VI y no pueden ser llamadas desde otro VI. Esto si ocurre con las variables globales. En el ejercicio siguiente se va a utilizar una variable global para almacenar un nmero generado en un VI para ser llevado a otro VI. Para esto primero desde el DB creamos desde Structures la variable global

Ejercicio

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Creacin de una Variable Global


Luego grabamos el VI como Global y cerramos. A continuacin se va a seleccionar la entrada de la variable Global a utilizar, para esto hacemos click derecho en la variable y en Select Item optamos por la entrada 1, verificando que est en modo Write

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Creacin de una Variable Global

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Creacin de una Variable Global


Paso siguiente sin cerrar el actual VI (Variable Global 1), creamos otro VI (Variable Global 2) para rescatar el valor anterior y mostrarlo en pantalla. Para este segundo VI, creamos uno en blanco y llamamos a la variable Global como si se llamase a un SubVI, luego cambiar a lectura y realizar el programa siguiente:

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Creacin de una Variable Global


Ejecutamos Variable Global 2 en modo continuo activando el control booleano y luego ejecutamos el VI anterior (Variable Global 1), y se observar como va cambiando el nmero, es decir el valor generador en el primer VI, es rescatado en el segundo VI

INSTRUMENTACIN AVANZADA INSTRUMENTACI

INSTRUMENTACIN AVANZADA INSTRUMENTACI

SIMULACIN LLENADO Y VACIADO DE UN TANQUE

Vlvula abierta Llenado del tanque

Vlvula cerrada Vaciado del tanque

Aplicacin de Flat Sequence y Variable Local Ejercicio

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Creacin de una Variable Local (Control de la Vlvula apertura-cierre de entrada de lquido)

Haciendo con el mouse clic derecho sobre el control Vlvula vamos a Create y luego Local Variable
Seteado en Write

Ahora lo movemos al primer cuadro de la estructura sequence y le anexamos una constante booleana (verdad).

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Personalizar Controles

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Ejemplo

INSTRUMENTACIN AVANZADA INSTRUMENTACI

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Customizar controles

INSTRUMENTACIN AVANZADA INSTRUMENTACI

A partir del agregado de un botn OK, haciendo clic derecho con el mouse seleccionamos Advanced, y luego customize.

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Importante: Sin en lugar de Picture Item aparece Text Item, debe separarse previamente el texto del control de la imagen. En este caso mover OK por fuera del dibujo.

INSTRUMENTACIN AVANZADA INSTRUMENTACI

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Ejercicios Adicionales

INSTRUMENTACIN AVANZADA INSTRUMENTACI

demo demo

INSTRUMENTACIN AVANZADA INSTRUMENTACI

INSTRUMENTACIN AVANZADA INSTRUMENTACI

INSTRUMENTACIN AVANZADA INSTRUMENTACI

INSTRUMENTACIN AVANZADA INSTRUMENTACI

video

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Ejercicio 2.9

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Graficar un nmero aleatorio con delay variable calibrado en segundos desde el panel frontal

EJERCICIO 2.10

INSTRUMENTACIN AVANZADA INSTRUMENTACI

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Graficar la temperatura actual y la media con dos sensores de temperatura ubicados en dos lugares distintos (cmara 1 y cmara 2)

Ejercicio 2.11

INSTRUMENTACIN AVANZADA INSTRUMENTACI

INSTRUMENTACIN AVANZADA INSTRUMENTACI

Ejercicio 2.12. En un arreglo de 10 LEDS hacer que encienda a travs de un control numrico un determinado LED. De la misma manera con otro control numrico efectuar la operacin de apagado.

Ejercicio 2.12

INSTRUMENTACIN AVANZADA INSTRUMENTACI

INSTRUMENTACIN AVANZADA INSTRUMENTACI

INSTRUMENTACIN AVANZADA INSTRUMENTACI