Beruflich Dokumente
Kultur Dokumente
Autnoma de Puebla
Facultad de Ciencias de la
Electrnica
Instrumentacin
II
Reporte de prcticas en
LabView 8
Integrantes:
Prefacio
En el presente Reporte de prcticas en LabView 8, se muestra con detalle la elaboracin
de todas las prcticas del curso de Instrumentacin II, hemos realizado las practicas en
LabView 8, esto debido a que es mejor realizarlos en una versin mas reciente para
aprovechar todas las utilidades de este Software.
Se han desarrollado dichas prcticas de tal manera que quien acceda a este Documento
se le facilite la lectura, esto para una rpida comprensin y una familiarizacin con
dicho Software, se han puesto muchas imgenes que te ayudarn a entender mejor lo
que se est realizando.
A lo largo de este reporte se muestran diversos ejercicios realizados como prcticas y
que cada uno de ellos tiene un vnculo al VI (Instrumento Virtual) al que se refiere el
ejercicio y que a su vez se ha adjuntado en este CD.
Notars que existen muchas palabras en ingls renegridas, esto indica que son propiedad
de LabView, que quiero decir con esto?, lo que quiero decir es que se son parte del
programa como nombres de controles, funciones, paletas, cajas de dialogo, etc.
Recomiendo para un mejor aprendizaje que los ejercicios los realices antes de ver la
solucin , esto debido a que se te desarrollar la capacidad de programar en un lenguaje
grfico como lo es LabView; y es importante que puedas modificar los ejercicios
encontrando otras alternativas que pueden ser varias y que te ayudarn para generar
VIs muy complejos.
Invito tambin que explores los contenidos del CD ya que posee mucho material de
ayuda como diapositivas, Manuales e incluso presentaciones interactivas en flash que te
ayudarn de mucho en tu camino por este curso.
Angel Salom Bayln
Iniciando LabView
La ventana Getting Started que se muestra en la figura aparece cada vez que t inicias
LabView
5.
En el men propiedades cambia los nombres para que el panel frontal y el diagrama a
bloques queden como las siguientes figuras:
Personalizando un VI
En el siguiente ejercicio abrirs un VI en blanco y aadirs VIs Express y estructuras en
el diagrama de bloques para construir un nuevo VI. Tu construirs un VI que genere una
seal, reduzca el nmero de muestras en la seal y despliegue los resultados en una
tabla en el panel frontal.
Abriendo un VI en blanco
En la ventana Getting Started da clic en el link Blank VI, o presiona <Ctrl+n> y
automticamente se abrir un nuevo VI en blanco.
3. Despus de que tu leas da clic en el cuadro gris Place on the block diagram,
automticamente el VI Express aparecer sobre el cursor, Muvelo hacia el
diagrama a bloques.
4. Pon el VI Express en el diagrama de bloques a la derecha del Simulate Signal
Express.
5. Configura el VI Sample Compression Express para reducir la seal en un
factor de 25, da clic en el botn OK y cierra la caja de dialogo.
6. Alambra la salida Sine del VI Simulate Signal Express a la entrada Signals del
VI Sample Compression Express.
El monitor de temperatura VI
El objetivo de este ejercicio es el de utilizar el ciclo While y las grficas de barrido para
adquirir y mostrar datos, por defecto nosotros no hemos seguido todos los pasos que se
mostraban en el libro, esto debido a que no tenamos el VI del termmetro al que hacia
referencia, as que construimos uno que nos funcionase parecidamente y que cumpliera
con nuestros objetivos antes descritos.
2. Haga clic con el botn derecho del Mouse sobre la grfica y seleccione la opcin
Data Operations>>Clear Graph desde el men, esta opcin borra los datos del
display y hace un reset a la grfica.
Seal aleatoria VI
Mediante el siguiente ejercicio usted podr adicionar temporizacin a una grfica de
barrido utilizando una constante numrica, construir un VI que genere nmeros
aleatorios y los muestre en una grfica a manera de osciloscopio (Scope).
El Auto match VI
En el siguiente ejercicio aprenders a pasar datos fuera del ciclo While a travs de un
tnel. Para esto crears un VI que genere nmeros aleatorios hasta que alguno de los
generados sea igual a aun nmero especfico. La Terminal de conteo mantiene la cuenta
del nmero de iteraciones que ocurren antes que ambos sean iguales.
10. Para ver como el VI actualiza los indicadores, habilite la ejecucin animada. En
el diagrama de bloque haga clic en el botn Hightlight Execution mostrado a la
izquierda para habilitar la ejecucin animada. De este modo se puede apreciar el
flujo de datos a travs del diagrama de bloques y se puede ver cada nmero que
es generado.
11. Cambie el nmero en Number to match a un valor que est fuera del rango, el
cual esta entre 0 y 10000 con incrementos de 1.
Fig. 45 Ejecutando el VI con un nmero que est fuera del rango elegido.
12. Ejecute el VI. LabView obliga el valor fuera del rango al valor ms cercano que
se encuentre dentro del rango.
13. Cierre el VI.
Registro de desplazamiento
En el siguiente ejercicio aprenders a utilizar registros de desplazamiento para acceder a
valores de iteraciones previas.
Diagrama de bloques
Cree el siguiente diagrama de bloques:
Para adicionar un nuevo elemento de registro damos clic derecho sobre el elemento de
registro y seleccionamos Add Element, repetimos el proceso para crear los que
necesitemos.
Haga clic sobre el botn Hightlight Execution, mostrado a la izquierda, para habilitar
la ejecucin animada.
Ejecute el VI y observe las burbujas que se mueven a lo largo de los cables. Si las
burbujas se estn moviendo muy rpido haga clic en los botones Pause y Step Over
mostrados a la izquierda para hacer mas lenta la ejecucin.
En cada iteracin del ciclo While, el VI enva los valores previos a las terminales
izquierdas del registro de desplazamiento. Cada iteracin del ciclo agrega 5 a los datos
actuales, X(i). Este valor se desplaza a la terminal izquierda, X(i-1), al inicio de la
siguiente iteracin. Los valores de la izquierda se desplazan hacia abajo a travs de las
terminales.
Este VI solo guarda los ltimos tres valores. Para hacer que almacene mas valores
agrega ms elementos de registro a la izquierda haciendo clic derecho sobre la Terminal
izquierda y seleccionando Add Element del men.
Guarde el VI como Registro de desplazamiento.vi en una localidad accesible.
El promedio aleatorio VI
En el siguiente ejercicio usted podr construir dos nmeros aleatorios en una grfica de
barrido. Una de las seales deber ser aleatoria y la otra el promedio de los ltimos
cuatro puntos aleatorios.
5. Seleccione los iconos que se encuentran fuera del ciclo While como se muestra
en la figura.
Personalizando la grfica
Haga clic en el botn derecho del Mouse sobre la grfica de barrido y seleccione la
opcin Visible tems>>Scale Legend para desplegar la leyenda tal y como se ve en la
figura en blanco y negro.
Personalizando el VI
Realiza lo mismo que en el ejercicio anterior para personalizar la grfica, cambia los
nombres de las etiquetas, para cambiar el tipo de graficado da clic derecho sobre la
leyenda superior en la que quieres personalizar.
Si t quieres tambin puedes agregar un tiempo de retardo, dado que ya puedes hacerlo
con la funcin Wait o con la funcin Wait Until Next Until ms.
2. Cree una nueva estructura While y dentro del While coloque una estructura de
nodo de formula, esta estructura se encuentra en la paleta Structures ya antes
vista. Sitese sobre la frontera de la estructura nodo de formula y haga clic
derecho, seleccione Add input y coloque el nombre una de las variable o
controles del programa, haga lo mismo para las dems entradas (variables o
controles) en el nodo de formula. Tambin haciendo clic derecho en la frontera
izquierda del nodo de formula cree una salida mediante la opcin Add output y
colquele el nombre de V0.
Tambin es necesario definir como salida todas las variables intermedias que se usan en
el proceso, como Rth, VTH, IE, VBE, IB. Si se desea, se puede crear un indicador para
estas variables para observarlas en el panel frontal (interfaz con el usuario), haciendo
clic derecho sobre la frontera del nodo de formula, sobre la salida y seleccionando
create indicator.
Por ultimo conecte mediante un negador el control general a la condicin del ltimo
While que cre, como se muestra en la figura.
Las resistencias estn en KOhm y las corrientes en mA. En el panel frontal y situndose
sobre el control haga clic derecho seleccione la opcin Format & Precisin, cambie los
dgitos de precisin a tres para lograr ingresar el valor de Rz.
En este programa no se necesita condicionar el nmero de iteraciones a un nmero
finito, ya que el resultado de la iteracin (Vo) cambia segn se realiza el proceso,
tambin usted en cualquier momento puede cambiar algn valor de los elementos y
observar inmediatamente como cambia la salida. Para que el programa funcione
continuamente mantenga encendido el botn de control.
Programacin estructurada
En el siguiente ejerci la aplicacin consiste en encender 12 LEDs de forma correlativa,
estando en cada momento un solo LED encendido y pudiendo escoger entre empezar a
encenderlos por la izquierda o por la derecha.
2. Dentro del Array damos clic derecho, nuevamente aparecer la paleta Controls,
ahora seleccionamos la subpaleta Bolean y en ella el icono square led y lo
colocamos DENTRO del Array.
Creo que no hay problema para seleccionar los componentes excepto los iconos
amarillos que ves ah, el que est fuera de la estructura For es un Initialize Array que
nos va a servir para que apague todos los LEDs cuando se ejecute y as pueda seguir la
estructura For, ac hemos elegido una dimensin de 12 ya que son 12 LEDs los que
tenemos que apagar; para seleccionar este icono damos clic derecho en el diagrama de
bloques y seleccionamos la subpaleta Array para despus elegir el icono Initialize
Array.
Los componentes amarillos por as decirlo que se encuentran dentro de la estructura For
se llaman Replace Array subset y sirven en nuestro caso para apagar y encender LEDs
segn vaya corriendo el ciclo For; el Replace Array subset lo elegimos en la paleta
Functions, ah seleccionamos la subpaleta Array y cliqueamos en el icono Replace
Array subset (Para obtener mas informacin acerca de este componente podemos
desplegar la ayuda contextual, y para una ayuda mas detallada daremos clic en el link
Detailed Help).
La manera en que funciona el diagrama de bloques es la siguiente:
Como ya explicamos el primer bloque donde se encuentra el Initialize Array va
a servir para apagar todos los LEDs, el registro que se encuentra dentro del For
va iniciar en 0.
La constante que se encuentra alambrada con la N del ciclo For es 12 ya que el
proceso se repetir 12 veces
El primer Replace Array subset apaga el LED que esta encendido.
El segundo Replace Array subset enciende un nuevo LED.
La funcin de el registro final es la de guardar el resultado para la siguiente
iteracin
Al correr el VI notars que solo se alcanza a apreciar que el ltimo led se enciende, esto
es por que el ciclo For se repite muy rpido que es imposible observarlo.
Despus de correr el VI nos damos cuenta que efectivamente los LEDs corren de
Izquierda a derecha como nos lo habamos planteado y ahora si podemos apreciarlos,
una observacin importante que hago al insertar este componente de espera es que con
este vamos a correr el VI con el mismo tiempo en cualquier otra maquina por que
ustedes saben la velocidad con que corre cada VI depende de la maquina en la que haya
sido ejecutado.
Corre el VI y notars que se detiene cuando tu presionas el botn Stop, claro est que
no se detendr instantneamente ya que tiene que llegar hasta el ltimo LED.
Guarda el VI.
En el case 1 construiremos el siguiente arreglo, este es para que los LEDs corran de
Derecha a izquierda.
Hasta aqu se han cumplido los objetivos de este ejercicio, pero podemos hacerlo mas
difcil generando otra opcin en donde los LEDs corran de Izquierda a derecha y de
Derecha a izquierda simultneamente, esto lo haremos en el siguiente objetivo, en
donde emplearemos el uso de variables globales y Property Node.
Ahora debemos hacer que cuando prefiramos la opcin dos los LEDs corran de
Izquierda a derecha y despus se seleccione la opcin 1 que correr a los LEDs de
Derecha a Izquierda y as sucesivamente, pero necesitamos una variable de control que
nos indique cuando los LEDs se encienden en una direccin determinada, para facilitar
las cosas usaremos una variable global como CONTROL y una variable local que haga
referencia a la variable men.
Fuera de la estructura While ser necesario inicializar las variables adecuadas para
evitar situaciones extraas, en nuestro caso escogeremos el valor inicial 0 para la
variable global CONTROL y un valor de 1 para la variable local men, aunque
cualquier combinacin hubiera sido vlida.
Los siguientes componentes los pondremos fuera del ciclo While como ya se haba
previsto.
Para crear un Property Node damos clic derecho en el control que se encuentra en el
panel frontal y le damos Create> Property Node> Disabled como se muestra a
continuacin.
Seleccione
el
indicador
de
desplazamiento
ubicado
en
la
paleta
Controls>>Modern>>Numeric>>Pointer Slide, estos sern utilizados para poder
determinar los valores de X y Y. Se utilizaran para determinar los puntos del triangulo.
Diagrama de Bloques
Seleccione Window>>Show Diagram para visualizar el diagrama a bloques
Para la conexin en diagramas a bloques crearemos un array para los valores de X y
otro para los de Y, para despus unirlos en un bundle array y el valor resultante lo
conectaremos a la grafica.
Para poder crear los arrays de X, lo buscamos en search como build array.
array
se
encuentra
Fig. 12 VI en ejecucin
BC ( AC AB ) 2
4 AC AB
Panel Frontal.
Cree un nuevo VI y disee el siguiente panel frontal.
solo
Diagrama de Bloques.
Seleccione Window>>Show Diagram para visualizar el diagrama a bloques
La conexin de diagrama a bloques debe tener un aspecto similar a este:
Para calcular el valor intermedio de A3. Primero obtenemos su longitud con la funcin
Array Size (functions >> All Functions >> Array). Lo decrementamos en una unidad
y lo dividimos por dos. De esta manera obtenemos la posicin intermedia. Finalmente
usamos la funcin Index Array con esa posicin y obtenemos el valor intermedio para
mostrarlo en V3.
Por ultimo multiplicamos los valores intermedio de V3 y medio de VM5.
Llenar el array A1 con los valores 1, 2, 3 y el array A2 con los valores 4, 5, 6 y 7.
Comprobar que se obtienen los mismos resultados.
Fig. 22 VI en ejecucin
Ejercicio 2
Dibujar la funcin seno entre 0 y 360 grados con 1000 puntos.
Debemos usar un For Loop y arrays en el eje de las abcisas debemos tener
representados los valores de x, y en el de ordenadas los de sen (x).
Panel Frontal
Cree un nuevo VI y disee el siguiente panel frontal.
Diagrama de Bloques
Seleccione Window>>Show Diagram para visualizar el diagrama a bloques
Ya que queremos el seno entre 0 y 360 grados con 1000 puntos
Dividir 2 rad (360) entre 100.
El valor obtenido va siendo multiplicado por 1,2,3.1000 por medio de las iteraciones
El valor de la multiplicacin entra en la funcin sin & cos Functions >> Numeric >>
Trigonometrics.
Guardar los valores en un bundle tanto x como seno en los lmites de for loop.
La conexin de diagrama a bloques debe tener un aspecto similar a este:
Ejercicio 3
Construir un instrumento virtual que convierta un nmero en string, el cual se ha de
concatenar con otros dos strings para formar una nica cadena de salida. Tambin
determinar la longitud de la cadena final.
Panel Frontal.
Cree un nuevo VI y disee el siguiente panel frontal.
Cadena Final seleccionamos Controls >> String & Path >> String Indicator.
Diagrama de Bloques.
Seleccione Window>>Show Diagram para visualizar el diagrama a bloques o
<Ctrl+E>.
Convertir un numero a string tomando la funcin Format Into String Functions >>
String.
Con la funcin Concatnate strings (Functions >> String) uniremos las tres cadenas,
que se introducen en la cadena de variable final
Para determinar la longitud de la cadena utilizamos un String Lenght (Functions
Strings).
Ejercicio 4
Modificar el VI Seno.vi de manera que los resultados se guarden en una tabla
(spreadsheet). Cada vez que se ejecute el VI ha de aparecer una ventana de dialogo que
pregunte el nombre del archivo en donde se desean guardar los datos. Visualizar el
resultado con un editor (Bloc de notas).
Diagrama de Bloques
Abra el VI seno.vi
Ir al diagrama a bloques <Ctrl+E>.
Seleccionamos la funcin Write to Spreadsheet ubicada en Functions >>
Programming >> File I/O.
Ejercicio 5
Hacer un VI que muestre en una grafica, la informacin almacenada en una tabla de
resultados, especialmente la generada anteriormente (seno.txt).
Panel Frontal.
Colocar un XY Graph (Controls >> Modern >> Graph >> XY Graph) esta servir
para mostrar el resultado.
Diagrama a bloques.
En la creacin del diagrama a bloques utilizaremos:
La funcin Read From Spreadsheet (Functions >> Programming >> File I/O).
Utilizaremos un Index Array (Functions >> Programming >> Array). Para separar
los datos que estn en un array de dos dimensiones.
Fig. 44 Panel frontal al momento de ejecutar el VI, ntese que nos pide abrir el archivo
Programacin Modular
Ejercicio 1
Crear un VI que represente en una grafica el sen(x) o el cos(x) entre dos limites y con
un numero de puntos determinados por el usuario.
El panel frontal ha de constar con tres controles digitales un booleano y la grafica.
Panel frontal.
Cree un nuevo VI y disee el siguiente panel frontal.
Para crear lim sup, lim inf y num ptos, desplegamos del men Controls >> Modern >>
numeric, seleccionando de ah Numeric Control.
Los elementos bolanos nombrados del usuario stop y sin cos se encuentran ubicados
en: (Controls >> Modern >> Boolean)
Seleccione una grafica de barrido en la paleta Controls>>Modern>>XY Graph esta
nos mostrara el triangulo.
Guardamos el VI como Seno & Cos.vi
Diagrama de Bloques
Restamos los lmites para calcular el intervalo y lo dividimos por el nmero de puntos.
Con un For Loop (Functions >> Programming >> Structures) creamos el array de
valores de x para los cuales calcularemos el seno o el coseno de la funcin.
El control Booleano sin/cos determina si queremos ver el coseno o el seno.
El diagrama a bloques queda de la siguiente manera.
Ejercicio 2
Crear un icono y conector para el VI Seno & Cos.vi
El conector tendr cuatro terminales de entrada y una de salida.
Modificando el VI
Abrimos el VI Seno & Cos.vi.
Vamos al panel frontal y desplegamos el men pop-up del icono del vi (en la esquina
superior derecha).Tomamos la opcin Edit Icon.
Esto abrir una nueva ventana aqu disearemos el icono que amas nos agrade. Para la
rpida distincin.
Clic en el control lim sup clic en el primer rectngulo de la izquierda. Este quedara de
color naranja.
Hacer lo mismo con los otros tres controles.
La grafica se ala terminal de la derecha.
Para observar las conexiones abrimos la ventana de ayuda <Ctrl.+H> y situamos el
cursor sobre el icono y observamos.
Ejercicio 3
Crear un VI que represente en una grafica el sen(x), el cos(x) o la tg(x) entre dos lmites
y con un nmero de puntos determinado
Este debe de contar con un VI principal al que llamaremos s&c&t.vi en el que solo
elegiremos la opcin deseada.
Una vez pulsada la opcin anterior pasaremos a otra pantalla que nos pedir los limites
y numero de puntos esta ser un sub vi lo llamaremos Limites.vi
Al pulsar el botn aceptar y en otra pantalla obtendremos la grafica (ser otro subVI
llamado grafica).
Pulsando el botn Fin volveremos al panel de VI principal.
Para calcular los puntos usaremos el VI Sin&Cos.vi
Panel de control.
Cree un nuevo VI y disee el siguiente panel frontal.
SENO, COSENO, TANGENTE y SALIR son botones Bolanos (Controls >> Modern
>> Boolean)
Guardamos este como s&c&t.vi.
Para crear lim sup, lim inf y num ptos, desplegamos del men Controls >> Modern >>
numeric, seleccionando de ah Numeric Control.
Aceptar es un botn booleano (Controls >> Modern >> Boolean)
Guardamos como Limites.vi
Cree un nuevo VI.
Disee el siguiente panel frontal
Utilizando un Sequence para obligar a presentar los resultados y despus entre al ciclo
While Loop
Los DBL X y F(x) son array que los podemos declarar como elementos ocultos con
Hide Indicator.
Una vez hecho esto solo resta crear el icono y conector un posible resultado seria
Al igual que en caso anterior los indicadores no aparecen. Entonces en el men pop-up
seleccionar (Hide Indicator), para ocultar el indicador.
Crear el icono
El resultado puede ser el siguiente.
Fig. 1 Icono
Elaboracin de VI principal
Primero poner un While Loop se ejecuta mientras salir es False
Disear una OR-lgica de tres entradas, de manera que cuando no hay ninguna funcin
pulsada el resultado se falso.
Por el contrario si alguna fuese cierta entraramos a la opcin True de la estructura case.
Dentro de esta estructura pondremos un sequence para controlar la ejecucin.
Pedir los lmites y numero de puntos, Calcular los puntos correspondientes ala funcin
seleccionada y representar estos puntos en la grafica
Ponemos otra estructura case que determine si la funcin deseada es seno, coseno, o
tangente. Utilizaremos el instrumento sin&cos.vi para obtener los puntos. El case esta
controlado por el botn Tan de manera que si es falso se calcula el seno o el coseno
mientras que es cierto se calcula la tangente.
Si pensamos que Tan es falso. Como vemos en la figura de arriba en sin&cos. Vi entra
el valor de control cos si este es cierto se calcula el coseno
Si Tan es cierto hemos de calcular la tangente. Sabiendo que se puede calcular como la
divisin del sen entre el cos.
Los valores devueltos por sin&cos.vi se desempaquetan en un (unbundle) y se dividen
volvindose a empaquetar en un (bundle)
Una vez que sale del bundle esta lista para su envi a la grafica.vi, correspondiente ala
ultima secuencia.
Se utilizan 3 Waveform graph (Controls >> Modern >> Graph) para mostrar la seal
de entrada y las dos de salida (aproximacin y diferencia).
Diagrama de Bloques.
La seal de entrada ser un senoidal con ruido proporcionada por un Simlate Signal
ubicada en Functios >> Express >> Input.
Un Delay Values (Functions >> Express >> Signal Manipulation) ya que este
retardara la seal en un tiempo de ejecucin.
X(n) es una seal impulso unitario conformado por 1000 muestras, de las cuales todas
sern 0 excepto la primera que tiene valor de 1.
X(n) y Y(n) debern mostrarse en una grfica y los controles numricos debern ir
dentro de la imagen mostrada. No se deber usar VIs que generen formas de onda
dinmicas.
Fig. 12 Creacin del Property Node que limpiara la grfica cada vez que se ejecute el VI
Despus en el diagrama de bloques creamos una constante 0 para que se borren los
datos cuando se inicialice el VI.
A continuacin se muestran los resultados que muestra el filtro FIR cuando se corre
como instrumento virtual con los valores de h0 a h4 de 5, 7 ,9, 7, 5 segn corresponda.
Fig. 14 Simulacin del filtro FIR, como se puede apreciar la salida son las constantes del filtro.
Fig. 15 Corriendo el VI con la opcin Hightlight Execution, ah se puede apreciar la generacin del
impulso.
Fig. 17 Segunda secuencia que incluye la generacin del impulso, as como el filtro FIR
Conclusiones
LabView es un programa muy amigable ya que utiliza la programacin en G, tambin
llamada programacin Grfica, lo que facilita el aprendizaje y el manejo dicho software.
A lo largo del desarrollo de las prcticas se tuvieron algunos inconvenientes que no me
es preciso mencionarlos ya que se pudieron resolver oportunamente con ayuda del
profesor del curso.
El curso estuvo aceptable nos gustaron las clases en el centro de computo, dado que
pudimos familiarizarnos con el software y aprender prcticamente lo que leamos en los
apuntes de LabView.