Post on 11-Nov-2015
description
transcript
1 Labview
UACJ UACJ
Introduccin a LabVIEW
Universidad Autnoma de Ciudad Jurez
Instituto de Ingeniera y Tecnologa
Cd. Jurez, (Chihuahua), Mxico
M.C. Lidia Hortencia Rascn Madrigal
lrascon@uacj.mx
Seccin II
2 Labview
UACJ 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.
3 Labview
UACJ 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
4 Labview
UACJ 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.
5 Labview
UACJ 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.
6 Labview
UACJ 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.
7 Labview
UACJ UACJ
8 Labview
UACJ UACJ
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.
9 Labview
UACJ UACJ
Repeticiones= 4 Ejecutelo paso a paso. Cul es el valor que se muestra en resultado?
Ejercicio 1 For Loop
10 Labview
UACJ 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
11 Labview
UACJ UACJ
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 forarreg.vi.
Ciclo For Ejercicio 2
12 Labview
UACJ 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.
13 Labview
UACJ 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.
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.
14 Labview
UACJ UACJ
Cul es la diferencia entre el resultado de suma y suma2?
15 Labview
UACJ 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.
16 Labview
UACJ UACJ
El terminal de iteracin es el cuadrado azul
con el smbolo . 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.
17 Labview
UACJ Estructura While Loop
Stop iteraci
n
Se detiene si la condicin es verdadera
18 Labview
UACJ 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.
19 Labview
UACJ Estructura While Loop
20 Labview
UACJ Inicialmente shift register tiene un par de
terminales
21 Labview
UACJ Ejercicio 5 ciclo while
Corra el programa en ejecucin resaltada.
22 Labview
UACJ UACJ
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.
Estructura While Loop y registros
de corrimiento
23 Labview
UACJ UACJ
Qu hace el programa?
24 Labview
UACJ
Iteraccin Shift izq arriba
Shift izq centro
Shift izq abajo
Shift derecha
25 Labview
UACJ
La Tabla 1 muestra los valores que tendr cada
uno de los terminales en cada iteracin.
26 Labview
UACJ UACJ
27 Labview
UACJ UACJ
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.
Ciclo While y tunel
28 Labview
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.
29 Labview
UACJ 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.
30 Labview
UACJ Ejercicio 7
Corra el programa en ejecucin resaltada Guarde el programa ejercicio2
31 Labview
UACJ
Cambiar el formato para que array despliegue un entero y dos decimales
Cambie los lmites de la grafica
32 Labview
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.
33 Labview
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?
34 Labview
UACJ UACJ
1. Realizar un programa para calcular el factorial de un nmero N dado por el usuario.
2. Genere 10 nmeros aleatorios entre 20 y 40
3. Calcular el promedio de 10 nmeros aleatorios entre 20 y 40 al momento que se generan.
Ejercicio 9 Tiempo estimado 20 min
35 Labview
UACJ UACJ
35
36 Labview
UACJ UACJ
36
37 Labview
UACJ UACJ
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.
Ciclos While y for
38 Labview
UACJ 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.
39 Labview
UACJ 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.
40 Labview
UACJ Estructura Case
41 Labview
UACJ
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
Estructura Case
42 Labview
UACJ
Realizar un programa para saber si el nmero A es mayor que B.
43 Labview
UACJ UACJ
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.
Estructura Case
44 Labview
UACJ UACJ
Utilice un contenedor tab control.
Agregue una pestaa y nombrelas nmeros, string y path
45 Labview
UACJ 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.
Qu tipo de dato es el tab control?
46 Labview
UACJ 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.
47 Labview
UACJ 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.
48 Labview
UACJ 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
49 Labview
UACJ 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.
50 Labview
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.
51 Labview
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.
52 Labview
UACJ 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).
53 Labview
UACJ
Cuando hay un dato de salida, slo un frame de la
estructura puede escribir valores en el.
54 Labview
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.
55 Labview
UACJ 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.
56 Labview
UACJ
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.
Estructura FLAT SEQUENCE
57 Labview
UACJ UACJ
Genere 10 nmeros aleatorios entre 0 y 20, smelos y calcule el promedio
Corra el programa paso a paso
58 Labview
UACJ
Modifique el programa anterior para usar una stacked secuence.
Corra el programa en ejecucin resaltada.
Grbelo.
59 Labview
UACJ 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.
60 Labview
UACJ
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.
Estructura EVENT
61 Labview
UACJ 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.
62 Labview
UACJ
En Events se podr elegir el evento concreto asociado a la fuente seleccionada.
Estructura EVENT
63 Labview
UACJ 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.
Estructura EVENT
64 Labview
UACJ
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.
Estructura EVENT
65 Labview
UACJ
Es una estructura que contiene uno o ms subdiagramas correspondientes a eventos definidos
Cuando un evento ocurre, el correspondiente subdiagrama se ejecuta
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
66 Labview
UACJ
Programacin basada en eventos Evento => notificacin asncrona de que ha ocurrido algo.
Interfaz de usuario (mouse click, key press, etc.)
Dispositivo externo (interrupcin, trigger)
Estructura de Eventos
67 Labview
UACJ
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.
Estructura EVENT
68 Labview
UACJ UACJ
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.
Estructura EVENT
69 Labview
UACJ 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.
70 Labview
UACJ UACJ
71 Labview
UACJ UACJ
Modifique las acciones mecnicas de los botones.
72 Labview
UACJ 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.
73 Labview
UACJ UACJ
74 Labview
UACJ 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.
75 Labview
UACJ 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.
76 Labview
UACJ UACJ
Frmula de la desviacin estndar
77 Labview
UACJ UACJ
Crear el diagrama necesario para realizar el clculo de la media (promedio), utilice ciclos y registros de corrimiento.
78 Labview
UACJ 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.
79 Labview
UACJ 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.
80 Labview
UACJ 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 ->
81 Labview
UACJ 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.
82 Labview
UACJ UACJ
Structure -> mathscript
Click derecho sobre el borde agregar entrada y salida
83 Labview
UACJ UACJ
84 Labview
UACJ UACJ
85 Labview
UACJ 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.
86 Labview
UACJ 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.
87 Labview
UACJ UACJ
Coloque un nodo de frmula y resuelva las ecuaciones.
88 Labview
UACJ 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.
89 Labview
UACJ UACJ
90 Labview
UACJ UACJ
Ejecuta una o ms subdiagramas cada interaccin del ciclo en el periodo especificado por el usuario
91 Labview
UACJ UACJ
92 Labview
UACJ 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.
93 Labview
UACJ 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.
94 Labview
UACJ 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 beep.vi.
95 Labview
UACJ 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.
96 Labview
UACJ 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 Thermometer.vi 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.