Sei sulla pagina 1di 62

INSTRUMENTACIÓ

INSTRUMENTACIÓN AVANZADA

Instrumentación Virtual con LabVIEW

ESTRUCTURAS
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

ESTRUCTURAS

WHILE
FOR..
CASE
SEQUENCE
Opciones de selección de CASE

Controles Visibles
Variables Locales y Globales
Personalizar controles
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

1.- ENTORNO DE PROGRAMACIÓN


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

Do While Loop

Terminal
Terminal de Condicionante
Iteración

Do While condicion is true Ejecuta una rutina hasta


Execute Sub diagram que la condición terminal
Loop se cumple.

•While Loop revisa la condición al final del ciclo.


•El ciclo se ejecuta al menos una vez.
•El terminal de iteración contiene el número de veces que el ciclo se ha
ejecutado.
Blank.vi
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

Do While Loop

La primera iteración
inicia en cero

Con Click derecho


derecho podemos
cambiar la condición
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

For Loop
Contador de Ciclos:
Dos atributos: A partir de LabVIEW 7, haciendo
indica cuantas veces
se repite el click sobre “WHILE loop” en el
subdiagrama N – Terminal de conteo diagrama de bloques puede
cambiarse por “FOR loop”
i - Terminal de Iteración

EJECUTA UN
Si N es SUBDIAGRAMA
cero o UN
negativo el DETERMINADO
ciclo no se Terminal de iteración NÚMERO DE
ejecuta Contiene el número de VECES
iteraciones completas

For I=0 to N-1 NOTA: El CERO es


Ejecuta Código indexado y aparece en
Blank.vi
Next I la primera iteración
Ejercicio
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA
INDEXADO

Se obtiene el último resultado

Se almacenan en cada una


de las celdas de una matriz
los resultados parciales
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

Shift Registers
“Shift registers” se utiliza tanto en los WHILE LOOP como en
FOR LOOP.
Se usan 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 “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Ó
INSTRUMENTACIÓN AVANZADA

Ejercicio:
Ejercicio Obtener el penúltimo y último resultado del cuadrado de los
primeros cinco números naturales.

Ejercicio
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

“Shift Registers”

EJERCICIO VI
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

Sentencias de Selección: Case Structures


Esta estructura es equivalente a IF/ THEN/ ELSE

If condition=TRUE THEN F a ls e

Execute code
ELSE
Execute Code
End If
CASE SELECT structures
0 , D e f a u lt
CASE SELECT var
var=1, do code1
var=2, do code2 var

var=3, do code3
otherwise, do code
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

Case Structures
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

Opciones de Selección para CASE

Ejercicio (booleano-numérico-Ring)

Ejercicio (tab control)


INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

Opción de Selección con TAB CONTROL

Ejercicio
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

EJERCICIO VI
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

Propiedades de Controles e Indicadores


Visible
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

Marcando el control y haciendo


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

Propiedades node.vi
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

Sentencias de secuenciación

En lenguajes tradicionales basados en texto, el orden de


ejecución lo impone el orden en que las instrucciones están
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
situación de ejecutarse simultáneamente, pero por manejo de
los datos, es necesario fijar el orden de los mismos, es decir
establecer una secuencia de ejecución.
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

Sentencias de secuenciación

•Se trata de un tipo de sentencia que garantiza la ejecución secuencial (uno


detrás de otro) de varios módulos de código.
•Cuando en el diagrama de LabVIEW son definidos varios módulos de
código, en realidad no se sabe en qué orden van a ser ejecutados, es decir, no
se sabe cuál de ellos se ejecutará en primer lugar y cuál en el último lugar.
Hay aplicaciones en las que este orden de ejecución no es importante, pero en
otras es de vital importancia. Por ello, en las aplicaciones donde el orden de
ejecución de los distintos módulos es crítico, resulta imprescindible utilizar las
sentencias de secuenciación para garantizar esa secuencia de ejecución de los
módulos.
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

Sentencias de secuenciación
La herramienta de desarrollo de aplicaciones LabVIEW ofrece dos
sentencias de secuenciación. La primera es la Flat Sequence Structure y se
encuentra en Functions/Programming/Structures. Cuando es insertada en el
diagrama de nuestra aplicación, aparece con una única ventana o Frame: es
la unidad o elemento donde irá un módulo dado del código de nuestra
aplicación. Para añadir más ventanas, se pulsa sobre la ventana con el botón
derecho del ratón y se ejecuta Add Frame Before o Add Frame After, para
añadir la ventana antes o después de la actual, respectivamente.

Simulan como
fotogramas de
una película
Ejercicio
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

Ejercicio
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA
FLAT SEQUENCE
Ejercicio 2.7
Construir un VI que 5 LED´S, que se iluminen en forma cíclica de izquierda a derecha:

ejercicio
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

Sentencias de secuenciación
Cuando son necesarias muchas ventanas, porque así lo requiere la aplicación,
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 lógico 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 práctico su uso cuando el espacio disponible es
pequeño.
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

Sentencias de secuenciación

Ejercicio
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

Trabajando con Variables


Variable Local
Variable Global
Variable Compartida
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

Trabajando con Variables

Muchas veces dentro de la programación es necesario almacenar el valor


de una variable para poder usarla posteriormente.
En LabVIEW también 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 versión 8.0 las compartidas.
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

Creación de una Variable Local


Construimos el siguiente VI, utilizando una Flat Sequence Structure

Ejercicio
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

Creación de una Variable Local


A continuación le agregamos un cuadro a la secuencia, que consistirá en una
variable local que almacenará el último número generado y lo presentará en
el PF. La variable local la seleccionamos dentro de Structures :
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

Creación de una Variable Local


A continuación 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Ó
INSTRUMENTACIÓN AVANZADA

Creación de una Variable Local


INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

Creación 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 idénticos, es
decir el último número registrado:
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

Creación 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 número generado en un VI para ser llevado a otro VI.
Para esto primero desde el DB creamos desde Structures la variable global

Ejercicio
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

Creación de una Variable Global


Luego grabamos el VI como Global y cerramos.
A continuación 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Ó
INSTRUMENTACIÓN AVANZADA

Creación de una Variable Global


INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

Creación 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Ó
INSTRUMENTACIÓN AVANZADA

Creación 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 número, es decir
el valor generador en el primer VI, es rescatado en el segundo VI
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

SIMULACIÓN LLENADO Y VACIADO DE UN TANQUE

Válvula abierta – Llenado del tanque Válvula cerrada – Vaciado del tanque

Aplicación de Flat Sequence y Variable Local

Ejercicio
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

Creación de una Variable Local (Control de la Válvula apertura-cierre de


entrada de líquido)

Haciendo con el mouse clic derecho sobre el control Válvula 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Ó
INSTRUMENTACIÓN AVANZADA

Personalizar Controles
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

Ejemplo
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

Customizar controles
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

A partir del agregado de un botón OK, haciendo clic derecho con el


mouse seleccionamos Advanced, y luego customize.
INSTRUMENTACIÓ
INSTRUMENTACIÓN 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Ó
INSTRUMENTACIÓN AVANZADA
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

Ejercicios
Adicionales
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

demo demo
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

video
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

Ejercicio 2.9
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

Graficar un
número aleatorio
con delay
variable
calibrado en
segundos desde
el panel frontal

EJERCICIO 2.10
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

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

Ejercicio 2.11
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

Ejercicio 2.12.
En un arreglo de 10 LEDS hacer que encienda a
través de un control numérico un determinado
LED.
De la misma manera con otro control numérico
efectuar la operación de apagado.

Ejercicio 2.12
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA
INSTRUMENTACIÓ
INSTRUMENTACIÓN AVANZADA

Potrebbero piacerti anche