0% encontró este documento útil (0 votos)
52 vistas96 páginas

Estructuras For y Case en LabVIEW

Este documento presenta una introducción a LabVIEW. Cubre temas como estructuras iterativas como For Loop y While Loop, estructuras de control como Case y Sequence, nodos de fórmula y estructuras de tiempo. También explica conceptos como registros de corrimiento y túneles para transferir datos dentro y fuera de bucles. El documento contiene ejemplos prácticos para reforzar los conceptos.

Cargado por

Alan Grajeda
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
52 vistas96 páginas

Estructuras For y Case en LabVIEW

Este documento presenta una introducción a LabVIEW. Cubre temas como estructuras iterativas como For Loop y While Loop, estructuras de control como Case y Sequence, nodos de fórmula y estructuras de tiempo. También explica conceptos como registros de corrimiento y túneles para transferir datos dentro y fuera de bucles. El documento contiene ejemplos prácticos para reforzar los conceptos.

Cargado por

Alan Grajeda
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

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

También podría gustarte