UACJ
Introduccin a LabVIEW
Seccin II
M.C. Lidia Hortencia Rascn Madrigal
lrascon@[Link]
Universidad Autnoma de Ciudad Jurez
Instituto de Ingeniera y Tecnologa
Cd. Jurez, (Chihuahua), Mxico
Labview
UACJ
Implementar programas utilizando
estructuras cclicas
Desarrollar programas que respondan a los
eventos de usuarios.
Implementar programas con frmulas de
mediana complejidad.
Desarrollar programas que atiendan varios
casos.
Implementar programas con secuencias.
Labview
UACJ
Estructuras Iterativas: For Loop y While Loop
Registros de corrimiento
Tunel autoindexado
Estructuras Case y Sequence
Tipos de datos en estructura Case (booleano, numrico,
enumerado)
Transferencia de datos entre secuencias planas y apiladas
Estructura Event
Nodos de frmula
Estructuras de tiempo
Labview
UACJ
En LabVIEW las
instrucciones
de control son
estructuras que
encierran en su
interior el
cdigo al que
afectan. Se
encuentran en
el men
Programming
> Structures.
Labview
UACJ
Estructura For Loop
Se usa For Loop cuando se quiere que una
operacin se repita un nmero determinado
de veces.
Al colocar un For Loop en la ventana
Diagram observamos que tiene asociados
dos terminales.
Labview
UACJ
Terminal contador: Contiene el nmero de
veces que se ejecutar el subdiagrama
creado en el interior de la estructura. El
valor del contador se fijar externamente.
Terminal de iteracin: Indica el nmero de
veces que se ha ejecutado la estructura:
Cero durante la primera iteracin, uno
durante la segunda y as hasta N-1.
Labview
UACJ
Labview
UACJ
Labview
Para agregar un
registro de
corrimiento oprima
clic derecho, elija
add shift register.
Aparece un cuadro
negro por que no
est ligado a ningun
tipo de dato, al
cablearlo a una
salida toma el tipo
de dato.
8
UACJ
Ejercicio 1 For Loop
Repeticiones=
4
Ejecutelo paso
a paso.
Cul es el valor
que se muestra
en resultado?
Labview
UACJ
El tnel permite obtener los datos
generados en cada iteracin del ciclo y
almacenarlos en el arreglo.
Para colocar el tnel slo alambre la salida
multiply del indicador arreglo.
El tunel est autoindexado por default en el
ciclo for.
Entrega un arreglo en la salida
Labview
10
UACJ
Ciclo For
Ejercicio 2
Ejecutarlo paso a paso para observar como van pasando los valores
a travs del registro de desplazamiento y como es que se va
formando el arreglo. Salvarlo como [Link].
Labview
11
UACJ
Realizar un
programa para
sumar los nmeros
del 0 al 10.
Utilice los registros
de corrimiento en el
ciclo for.
Corra el programa
en ejecucin
resaltada.
Labview
12
UACJ
Agregue un indicador
suma2 y muestre el
resultado en un tunel
que no este
autoindexado.
Modifique el
programa para
mostrar en un
arreglo todos los
nmeros sumados.
Labview
Para conectar un
tunel que no este
autoindexado, cablee
la salida al indicador,
por default est
autoindexado,
oprima clic derecho
sobre el tunel y elija
disable indexing
Grabe el programa
como ejercicio 4.
13
UACJ
Cul es la diferencia
entre el resultado de
suma y suma2?
Labview
14
UACJ
Usar While Loop cuando se quiera que una
operacin se repita mientras una determinada
condicin sea cierta.
El bucle WHILE repetir el cdigo de su interior
hasta que se cumpla una condicin, la cual es
evaluada en cada iteracin.
Labview
15
UACJ
Labview
El terminal de iteracin es el cuadrado azul
con el smbolo <<i>>. El valor de este
terminal es un nmero entero que se va
incrementando en una unidad por cada
iteracin del bucle.
La condicin de stop es el terminal verde de
la esquina inferior derecha de la imagen. A
este terminal se podr conectar bien un
valor booleano, bien un cluster de error.
16
UACJ
iteraci
n
Estructura While Loop
Stop
Se detiene si la condicin es verdadera
Labview
17
UACJ
Los registros de desplazamiento o shift register
son variables locales, disponibles tanto en el For
Loop como en el While Loop, que permiten
transferir los valores del final de una iteracin al
principio de la siguiente.
Labview
18
UACJ
Labview
Estructura While Loop
19
UACJ
Labview
Inicialmente shift register tiene un par de
terminales
20
UACJ
Ejercicio 5 ciclo while
Corra el
programa en
ejecucin
resaltada.
Labview
21
Estructura While Loop y registros
UACJ
de corrimiento
Labview
Un mismo Loop puede tener varios registros de
desplazamiento siendo conveniente
inicializarlos, para que los terminales de la
izquierda tengan el valor deseado cuando se
produzca la primera iteracin.
click derecho sobre shift register > add element.
Al finalizar la ejecucin de todas las iteraciones
el ltimo valor quedar en el terminal de la
derecha; unindolo a un indicador del mismo
tipo de dato fuera del Loop podremos obtener
su valor.
22
UACJ
Qu hace el
programa?
Labview
23
UACJ
Iteraccin Shift izq Shift izq Shift izq Shift
arriba
centro abajo
derecha
Labview
24
UACJ
La Tabla 1 muestra los valores que tendr cada
uno de los terminales en cada iteracin.
Labview
25
UACJ
Labview
26
UACJ
Ciclo While y tunel
Labview
Existe otra posibilidad para pasar datos de
forma automtica desde el interior de la
estructura al exterior.
Cuando un cable atraviesa los lmites del
Loop, aparece en el borde un nuevo
terminal llamado tnel que hace de
conexin entre el interior y el exterior, de
forma que los datos fluyen a travs de l
despus de cada iteracin del Loop,
pudiendo guardar de esta manera no slo el
ltimo valor de todas las iteraciones sino
tambin los valores intermedios.
27
UACJ
1)
Ejercicio prctico para el uso
de registros de corrimiento
2)
Abrir un nuevo VI y crear el
siguiente panel frontal. El cual
tiene 4 indicadores digitales.
Labview
28
UACJ
2) Abra el diagrama de bloques y agregue una estructura
While. Incremente 5 al valor actual.
3) Agregue un registro de corrimiento, Clic derecho en el
borde del ciclo while.
4) Coloque el cursor sobre el registro de corrimiento y
agregue tres elementos ms.
5) Alambre la entrada y la salida a la funcin add. En la
otra entrada cree una constante con valor 5.
6) Coloque valor inicial de cero a los registros de
corrimiento.
7) Alambre del ciclo el valor actual y los tres valores
anteriores. Agregue una temporizacin de 1 segundo.
Labview
29
UACJ
Ejercicio 7
Corra el
programa
en ejecucin
resaltada
Guarde el
programa
ejercicio2
Labview
30
UACJ
Cambie los lmites
de la grafica
Cambiar el formato
para que array
despliegue un entero
y dos decimales
Labview
31
UACJ
En el programa anterior
reemplace el for por
un while.
Corra el programa,
verifique el consumo
del procesador.
Cambie a cero la
contante del wait
corra el programa y
verifique el consumo
del procesador.
Labview
32
UACJ
Reemplace el wait por
wait until next.
Verifique el
procesador.
Cul es la diferencia
entre las dos
estructuras de
tiempo?
Un while siempre lleva una estructura de tiempo,
por qu? cundo?
Labview
33
UACJ
1.
2.
3.
Labview
Ejercicio 9
Tiempo estimado 20 min
Realizar un programa para calcular el
factorial de un nmero N dado por el
usuario.
Genere 10 nmeros aleatorios entre
20 y 40
Calcular el promedio de 10 nmeros
aleatorios entre 20 y 40 al momento
que se generan.
34
UACJ
Labview
35
35
UACJ
Labview
36
36
UACJ
Ciclos While y for
Con los ciclos se puede:
reemplazar un for loop con un While
loop,
remover el ciclo sin afectar el
subdiagrama interior.
poner un punto de paro (set Breakpoint)
o
agregar registros de corrimiento (add
shift register).
enviar datos atravs de tunel.
obtener datos por medio de tunel o shift
register.
Labview
37
UACJ
Este tipo de estructuras se diferencia de las
iterativas en que puede tener mltiples
subdiagramas, de los cuales solamente uno es
visible a la vez.
En la parte superior de cada estructura existe una
pequea ventana que muestra el identificador del
subdiagrama que se est mostrando.
Labview
38
UACJ
Usaremos la estructura Case en aquellas
situaciones en las que el nmero de alternativas
disponibles sean dos o ms. Segn qu valor
tome el selector dentro de los n valores posibles,
se ejecutar en correspondencia uno de los n
subdiagramas.
Labview
39
UACJ
Labview
Estructura Case
40
UACJ
Estructura Case
la estructura Case engloba dos sentencias diferentes de
otros lenguajes convencionales:
En el caso de conectar un boleano al selector, slo se
tendrn dos casos: verdadero o falso como se muestra
en la figura
Labview
41
UACJ
Realizar un
programa
para saber
si el nmero
A es mayor
que B.
Labview
42
UACJ
Estructura Case
2) Tambin pueden conectarse otros tipos de
datos, en este caso actuar como un
SWITCH... CASE. Pueden conectarse al
selector datos booleanos, numricos
(incluidos enum y ring), strings y clusters de
error.
Se pueden pasar datos a los subdiagramas
del CASE a travs de tneles.
Por ltimo tambin hay que decir que se
puede cambiar el orden de los
subdiagramas desde la opcin Rearrange
Cases ... del men contextual.
Labview
43
UACJ
Utilice un
contenedor tab
control.
Agregue una
pestaa y
nombrelas
nmeros, string y
path
Labview
44
UACJ
Compare los nmeros A y B
para saber cual es mximo
y el mnimo.
En la pestaa string
compare string y string2
para saber la mxima y la
mnima.
En la pestaa path compare
dos rutas de archivo para
saber la mxima y la
mnima.
Labview
Qu tipo de dato es el tab control?
45
UACJ
En la paleta de controles -> modern ->
ring&enum -> enum.
Clic derecho en el control ->Edit item ->
escribir la lista de opciones.
Los controles enumerados permiten elegir
una entre varias opciones, usted puede
colocar un texto para describir la accin y el
control le asinga un nmero a cada opcin.
Labview
46
UACJ
Crear un VI que sume, reste, multiplique y divida
dos nmeros A y B. Adems calcule la raz
cuadrada del nmero A. El usuario debe elegir la
opcin que quiere realizar. Utilizar un case
numrico y un control enumerado para las
opciones:
1 Suma
C=A+B
2 Multiplica C=A*B
3 Divide
C=A / B
4 Resta
C= A -B
5 Raz cuadrada de A.
Agregue un ciclo while y un botn de stop.
Labview
47
UACJ
Aplicacin de case para validar errores.
En el ejercicio anterior valide los posibles
errores.
1. En el calculo de la raz cuadrada del nmero
A, verifique si el nmero es negativo,
despliegue un mensaje de error, si es positivo
calcule la raz.
2. En la divisin valide la divisin por cero.
Guarde el programa. Ejercicio12
Labview
48
UACJ
Las estructuras de tipo SEQUENCE sirven precisamente
para disponer el orden de ejecucin del cdigo que esta
en su interior.
Las estructuras SEQUENCE tambin tienen fotogramas o
frames ordenados, en el interior de cada frame se situar
una seccin de cdigo.
Hay dos tipos de SEQUENCE: STACKED SEQUENCE y
FLAT SEQUENCE.
Labview
49
UACJ
tiene un men en la parte superior donde se indica
la numeracin del frame que se muestra, el nmero
total de frames que contiene y adems da la opcin
de situarse en otro.
Labview
50
UACJ
El men contextual
puede desplegarse
presionando con el
botn secundario del
ratn en el borde de la
estructura, este men
permite crear frames
antes y despus del
mostrado, adems de
otras opciones.
Labview
51
UACJ
Son variables que pasan datos entre los diferentes
marcos (frames) de la estructura de secuencia.
Usted puede crear variables de secuencia en los
bordes de un marco. Los datos conectados a una
variable de secuencia estarn disponibles en los
marcos subsecuentes.
Tambin pueden pasarse y recibirse datos desde
una estructura SEQUENCE al exterior a travs de
tneles, representados mediante un pequeo
cuadrado en el borde de la estructura (variable
de decuencia).
Labview
52
UACJ
Cuando hay un dato de salida, slo un frame de la
estructura puede escribir valores en el.
Labview
53
UACJ
El siguiente ejemplo muestra una estructura
de secuencia con tres marcos. Una variable
de secuencia en el marco1 que pasa el valor
que regresa un SubVI. Recuerde que el VI
slo despliega una secuencia a la vez.
Labview
54
UACJ
Funciona de igual forma, slo que es ms visual,
los frames se ven uno a continuacin del
siguiente, el orden de ejecucin ser de izquierda
a derecha. En este caso no hay Sequence Local y
los datos podrn cablearse directamente desde
un frame a otro a travs de tneles.
Labview
55
UACJ Estructura FLAT SEQUENCE
Labview
En la figura puede verse una estructura FLAT SEQUENCE
con dos frames, en el primero se genera un nmero
aleatorio y se pasa al segundo frame a travs de un tnel.
56
UACJ
Genere 10 nmeros aleatorios entre 0 y 20,
smelos y calcule el promedio
Corra el programa paso a paso
Labview
57
UACJ
Labview
Modifique el programa anterior para usar
una stacked secuence.
Corra el programa
en ejecucin
resaltada.
Grbelo.
58
UACJ
Al igual que la estructura CASE tienen varios
subdiagramas y un men en la parte superior
para cambiar el evento que se muestra.
La diferencia con CASE es que EVENT detiene la
ejecucin del hilo del programa hasta que ocurre
la condicin o evento, es decir, congela el
programa hasta que ocurre un evento.
Labview
59
UACJ
Estructura EVENT
En la esquina superior
izquierda tiene un
terminal llamado Event
Timeout que se usa en el
evento por defecto: el
Timeout.
El cdigo del diagrama
para el evento timeout se
ejecutar cuando pase el
nmero de milisegundos
indicados en el terminal
Event Timeout.
Labview
60
UACJ
Para aadir ms subdiagramas hay que proceder de igual
manera que con CASE.
Para definir un evento primero hay que especificar su
fuente en Event Sources, los eventos de las secciones
Application y This VI estn predefinidos y son acciones
tpicas, como cerrar la ventana, presionar una tecla, etc.
Panes se activa cuando el Panel Frontal se divide en varias
partes, Splitters slo se activa cuando hay uno de estos
elementos en el Panel Frontal y finalmente Controls
muestra una lista de todos los controles que hay en el VI.
Labview
61
UACJ
Estructura EVENT
En Events
se podr
elegir el
evento
concreto
asociado a la
fuente
seleccionada
.
Labview
62
Estructura EVENT
UACJ
En la parte izquierda de cada subdiagrama de la
estructura EVENT se sita Event Data Node que
aporta informacin sobre la fuente del evento
Si se observa con detalle la figura puede verse que
hay eventos marcados con una flecha roja que
acaban en una interrogacin y otros con el mismo
nombre pero con una flecha verde y sin
interrogacin. Los que tienen la flecha roja son
llamados filtros.
Labview
63
UACJ
Estructura EVENT
Los filtros se ejecutan
antes que la accin
asociada al evento,
pudiendo, entre
otras cosas,
desactivarlo. Cuando
se selecciona un filter
event aparecer un
nodo en la parte
derecha del
diagrama llamado
Event Filter Node.
Labview
64
UACJ
Es una estructura que contiene uno o ms subdiagramas
correspondientes a eventos definidos
Cuando un evento
subdiagrama se ejecuta
ocurre,
el
correspondiente
Espera
hasta que un evento ocurre o un tiempo limite
(time-out) ocurre, por default el time-out es -1 (never
times-out)
El
programador define que condiciones constituyen un
evento cuando implementa el subdiagrama
De gran utilidad para implementar interfaces de usuario
Labview
65
UACJ
Estructura de Eventos
Programacin basada en eventos
Evento => notificacin asncrona de que ha ocurrido algo.
Interfaz de usuario (mouse click, key press, etc.)
Dispositivo externo (interrupcin, trigger)
Labview
66
Estructura EVENT
UACJ
Labview
No usar un EVENT dentro de otro.
Si un EVENT se inserta dentro de un
WHILE y ste acaba mediante un botn
(un botn de stop), se debe insertar el
botn dentro del subdiagrama asociado
al cambio de valor de dicho botn.
67
UACJ
Estructura EVENT
Los cambios de valor en controles de forma
programada no generan eventos (en eventos
registrados de forma esttica), slo se generan
cuando se realiza el cambio de valor mediante la
interfaz de usuario.
Labview
68
UACJ
Abra el ejercicio 13 flat secuence
Agregue un botn llmelo calcular
Agregue una estructura de eventos alrededor
del cdigo.
Edite el evento para que se active cuando el
usuario oprima el botn calcular.
Grabe el programa evento 1.
Pruebe el programa.
Labview
69
UACJ
Labview
70
UACJ
Modifique las acciones mecnicas de los
botones.
Labview
71
UACJ
Agregue un ciclo while
Un botn llamado salir
Agregue un evento y progrmelo al botn
salir, cuando el botn cambie.
Coloque una constante verdadera y cable sta
al botn stop del while.
Labview
72
UACJ
Labview
73
UACJ
Implementar un panel frontal con controles
para recibir 10 datos numricos que
corresponden a las dimensiones de longitud
de una pieza.
Los valores son {10.24, 11.04, 10.95, 10.83,
10.97, 11.02, 10.76, 10.67, 11.00, 10.98 }
Calcular la desviacin estndar de los valores
adquiridos.
Labview
74
UACJ
Abrir un nuevo panel principal seleccionando
New VI del men de inicio.
Cree un panel frontal con los controles e
indicadores que se muestran en la figura 1.
Coloque un contenedor de arreglos en el
panel frontal y arrastre dentro de l un
control numrico, coloque los indicadores
media y desviacin estndar, tambin
agregue los controles calcular salir.
Utilice la frmula de la desviacin estndar.
Labview
75
UACJ
Frmula de la
desviacin
estndar
Labview
76
UACJ
Labview
Crear el diagrama
necesario para
realizar el clculo
de la media
(promedio),
utilice ciclos y
registros de
corrimiento.
77
UACJ
Cuando conecta un arreglo a un ciclo for, los datos
pasan uno por uno cada vez que se ejecuta cada
iteraccin. No es necesario cablear N ya que el ciclo
se ejecuta tantas veces como el tamao del arreglo.
Calcular el valor de la
desviacin estndar de
los 10 nmeros, utilizando
la frmula.
Guardar y probar el
programa.
Labview
78
UACJ
Conecte el botn calcular utilizando la estructura event.
Guarde y Pruebe el programa.
Conecte el botn salir a la estructura de eventos, para que se
ejecute cuando el valor cambie.
Coloque un ciclo while para que el programa de repita, coloque una
constante verdadera dentro del caso salir y conctela a la terminal
stop if true del ciclo while.
Labview
79
UACJ
Recuerde que los botones no deben cablearse.
Modifique las propiedades mecnicas de los botones para que se
restablezcan cada vez que se opriman.
Guarde el programa y prubelo.
Una vez que este seguro(a) que el programa funciona cambie su
apariencia al ejecutarlo, utilice file -> vi property ->
Labview
80
UACJ
Mathscript
Se puede crear un nodo mathscript para
evaluar un script que creas en la ventana de
labview mathscript.
Usa la sintaxis de matlab.
Labview
81
UACJ
Structure -> mathscript
Click derecho sobre el
borde agregar entrada y
salida
Labview
82
UACJ
Labview
83
UACJ
Labview
84
UACJ
Evala frmulas matemticas y expresiones
similares a C en el diagrama de bloques.
Puedes usar: abs, acos, asin, cos, exp, int,
log, masx, min, rand, etc.
Ver formula node sintaxis.
Labview
85
UACJ
Resuelva la siguiente ecuacin para valores
de x del 0 al 10.
Y1=x^3-x^2+5;
Y2=m*x+b;
Guarde los resultados de y1 y y2 en un
arreglo y grafiquelos.
Labview
86
UACJ
Coloque un nodo de frmula y resuelva las
ecuaciones.
Labview
87
UACJ
Agregar un ciclo for para generar x.
Crear los controles para m y b
Crear el arreglo array -> build array
Coloque la grfica waveform
Grabe el programa
Ejecute el cdigo paso a paso.
Labview
88
UACJ
Labview
89
UACJ
Ejecuta una o ms subdiagramas cada
interaccin del ciclo en el periodo
especificado por el usuario
Labview
90
UACJ
Labview
91
UACJ
Calcule el sueldo de los empleados de una
fabrica, en base a las horas trabajadas.
Si trabaja ms de 40 horas a la semana
calcule las horas de tiempo extra como el
1.50 del sueldo base por hora.
Pida al usuario las horas trabajadas por da y
el sueldo base por hora.
Calcule el sueldo para cada empleado y el
total de sueldos a pagar por semana.
Labview
92
UACJ
Una frutera le solicita realizar un
programa para la venta de las frutas, el
dueo del local quiere llevar un registro de
las ventas diarias.
Registre las ventas por cliente en un archivo
de texto.
Realice el anlisis del caso (anlisis de
requerimientos), dibuje las pantallas
necesarias, elabore un diagrama de flujo,
elabore el diagrama.
Labview
93
UACJ
Ejercicio 1.- Construya un VI que genere nmeros
aleatorios entre 0 y 10, uno cada segundo, agregue
un control para darle la oportunidad al usuario de
modificar el tiempo en que se genere cada nmero.
Calcule y despliegue el promedio de los cuatro
ltimos nmeros generados. Cada vez que el
numero generado sea mayor que 5 el programa lo
indique con un led, o utilice la funcin [Link].
Labview
94
UACJ
Ejercicio 2.- Utilice un ciclo for para generar un arreglo
de 100 numero aleatorios entre 0 y 50, determine el
numero mximo y el mnimo del arreglo generado;
despliegue los datos en el panel frontal. Agregue un
botn para indicarle al programa cada vez que quiera
generar un nuevo arreglo.
Ejercicio 3- Construya un VI que tenga 3 leds. Cuando
el VI se ejecute, el primer led se debe encender por un
segundo, despus el segundo led se debe encender pos
2 segundos, y despus el tercer led se debe encender
por 3 segundos.
Labview
95
UACJ
Ejercicio 4 Construya un VI que genere nmeros aleatorios entre
0 y 10, uno cada segundo, los vaya mostrando en una grfica de
punto (WaveForm Chart), agregue un control para darle la
oportunidad al usuario de modificar el tiempo en que se genere
cada nmero. Calcule y despliegue el promedio de los nmeros
generados. El programa debe terminar cuando el nmero
generado sea mayor a 8.
Ejercicio 5 Utilice la funcin Digital [Link] para simular
lecturas de un termmetro. El instrumento creado debe
permitirle al usuario: especificar el nmero de muestras,
establecer un valor mximo de temperatura, cuando dicho valor
se sobre- pase el instrumento debe de indicarlo con un led. El
instrumento deber graficar cada lectura del termmetro, e ir
desplegando en un indicador el promedio de la temperatura
adquirida en cada muestra.
Labview
96