Está en la página 1de 62

INSTRUMENTACI

INSTRUMENTACIN AVANZADA

Instrumentacin Virtual con LabVIEW

ESTRUCTURAS

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

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

Controles Visibles
Variables Locales y Globales
Personalizar controles

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

1.- ENTORNO DE PROGRAMACIN


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

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

Do While Loop

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

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

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

Dos atributos:
N Terminal de conteo

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

A partir de LabVIEW 7, haciendo


click sobre WHILE loop en el
diagrama de bloques puede
cambiarse por FOR loop

i - Terminal de Iteracin

Si N es
cero o
negativo el
ciclo no se
ejecuta

For I=0 to N-1


Ejecuta Cdigo
Next I

Terminal de iteracin
Contiene el nmero de
iteraciones completas

Blank.vi
Ejercicio

EJECUTA UN
SUBDIAGRAMA
UN
DETERMINADO
NMERO DE
VECES

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

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

INDEXADO

Se obtiene el ltimo resultado

Se almacenan en cada una


de las celdas de una matriz
los resultados parciales

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

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.

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

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

Ejercicio

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

Shift Registers

EJERCICIO VI

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

Sentencias de Seleccin: Case Structures


Esta estructura es equivalente a IF/ THEN/ ELSE
If condition=TRUE THEN
Execute code
ELSE
Execute Code
End If

F a ls e

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

var

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

Case Structures

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

Opciones de Seleccin para CASE

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

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

Opcin de Seleccin con TAB CONTROL

Ejercicio

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

EJERCICIO VI

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

Propiedades de Controles e Indicadores


Visible

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

Marcando el control y haciendo


clic derecho con el mouse
seleccionamos:
Create->Property Node->Visible

Propiedades node.vi

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

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.

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

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.

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

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

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

Ejercicio

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

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

ejercicio

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

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,
Structure la cual funciona exactamente igual que la anterior, solo
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.

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

Sentencias de secuenciacin

Ejercicio

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

Trabajando con Variables


Variable Local
Variable Global
Variable Compartida

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

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.

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

Creacin de una Variable Local


Construimos el siguiente VI, utilizando una Flat Sequence Structure

Ejercicio

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

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 :

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

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

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

Creacin de una Variable Local

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

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:

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

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

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

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

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

Creacin de una Variable Global

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

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:

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

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

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

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

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

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).

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

Personalizar Controles

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

Ejemplo

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

Customizar controles

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

A partir del agregado de un botn OK, haciendo clic derecho con el


mouse seleccionamos Advanced, y luego customize.

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

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.

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

Ejercicios
Adicionales

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

demo demo

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

video

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

Ejercicio 2.9

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

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

EJERCICIO 2.10

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

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

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

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

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

INSTRUMENTACI
INSTRUMENTACIN AVANZADA

También podría gustarte