Uso de Labview

download Uso de Labview

of 18

description

En este documento se muestran las premisas iniciales para poder utilizar LabView de manera sencilla.

Transcript of Uso de Labview

UNIVERSIDAD DE SONORA

Divisin de IngenieraDepartamento de Ingeniera Industrial

Ingeniera Mecatrnica

Instrumentacin Virtual I

Prctica 1: Contadores con LabVIEW

Martn Francisco Noriega Moreno

Hermosillo, Sonora a 1 de septiembre de 2014

Tabla de contenido

Introduccin3Marco terico4Desarrollo8Conclusiones18Fuentes de consulta18

Introduccin

LabVIEW es un programa muy completo que ofrece un sin fin de posibilidades enfocadas a la generacin de sistemas y tiene como caracterstica principal que la programacin es grfica, permitiendo un trato ms fcil y ameno con el programa.

Mediante esta prctica se cumplirn dos objetivos principales, el primero de ellos es tener un primer contacto con el programa y conocer la forma en la que opera y sus componentes. Entre otros aspectos, se busca conocer las caractersticas y objetos que tiene presente el Diagrama de Bloques y el Panel Frontal.

El segundo objetivo es la creacin de distintos tipos de operadores, comenzando con unos sencillos que van incrementando sin ninguna condicin que finalice ese conteo, para terminar con un contador que simule a un reloj, para ello se contar con 4 contadores que representen los segundos, minutos, horas y das. Mediante estos contadores, se tendr un mejor dominio en componentes de LabVIEW, como lo son estructuras, ya que se utilizarn estructuras WHILE, diversos comparadores e indicadores que plasmarn el resultado final en el Panel Frontal.

Marco terico

Introduccin a LabVIEW

LabVIEW es una aplicacin que se basa en una programacin grfica que ayuda a escalar desde diseos hasta pruebas y desde sistemas pequeos hasta grandes sistemas.

Los programas desarrollados en LabVIEW se llaman Instrumentos Virtuales (VIs), debido a que la apariencia de estos simulan a un instrumento real. Los Vis tienen una parte que interacta con el usuario y otra parte de cdigo fuente.

La interfaz grfica del VI con el usuario se denomina Panel Frontal. En ella se recogen las entradas procedentes del usuario y se representan las salidas proporcionadas por el programa. El panel frontal se forma por botones, pulsadores, potencimetros, grficos, etctera. stos pueden servir como controles o grficos. Los controles sirven para introducir parmetros al VI, mientras que los indicadores se emplean para mostrar los resultados producidos.

En la ilustracin 1, se puede ver un ejemplo del panel frontal de una VI, los controles estn definidos por la letra (a), mientras que los indicadores se muestran con la letra (b).

Ilustracin 1

El Diagrama de Bloques representa el cdigo fuente del VI y en l se realiza la implementacin de programa VI para procesar las entradas y salidas que se crean en el panel frontal. Se incluyen funciones y estructuras que se encuentran en las libreras incorporadas por LabVIEW. Los controles e indicadores que fueron introducidos al Panel Frontal como terminales. El diagrama de bloques est formado por diferentes objetos conectados entre s por medio de cables, que unen a los elementos de entrada y salida.

LabVIEW tiene una innumerable biblioteca de funciones, que incluyen operaciones aritmticas, comparaciones, conversiones, funciones de anlisis, entre otros. Un ejemplo claro son las estructuras, que simulan a los bucles en lenguajes convencionales como el bucle for, while, case, etctera.

En la Ilustracin 2 se puede observar un ejemplo de un diagrama de bloques, dnde una funcin est descrita con la letra (a), las terminales (controles e indicadores) con la letra (b) y una estructura con la letra (c).

Ilustracin 2

Los colores de los cables dependern del tipo de dato que procesan, si las lneas son naranjas se refieren a datos numricos, si son verdes, son datos booleanos y si las lneas son rosas, se procesan cadenas de caracteres.

Dentro de las dos ventanas principales de LabVIEW podremos encontrar dos tipos de paletas que contienen los elementos a utilizar en los VI. La paleta de Controles (Controls Palette) se encuentra en el Panel Frontal y desde ella podremos introducir los controladores e indicadores a la interfaz. La paleta de Funciones (Functions Palette) contiene los objetos que se deben de emplear en el Diagrama de Bloquees ya sean funciones aritmticas, entrada/salida de datos, temporizadores, adquisicin de seales, entre otros.

Elementos utilizados en esta prctica

While LoopNumeric constantWait (ms)SelectLocal VariableNumeric Control

IncrementEqualAndPush buttonRingMultiply

While Loop: El bucle while es equivalente al cdigo siguiente en un lenguaje convencional:Do//Se ejecuta lo que hay en el interior del bloqueWhile terminal condicional is true.

El programa comprueba el valor de lo que se halle conectado al terminal condicional una vez que finaliza el bucle, por lo que se ejecuta al menos una vez. En algunos casos, la terminal condicional puede representarse por un botn de STOP. Si la condicin se cumple, el bucle finaliza, si no se vuelve a repetir hasta que se cumpla la condicin.

El nmero de iteraciones completadas se representa con el cono i ubicado en la parte inferior izquierda y puede ser de utilidad en algunos casos.

Ilustracin 3Wait (ms) function:Provoca que se espere un especfico nmero de milisegundos. Para ello debe de tener conectado un valor en la entrada, que representa el valor a esperar. Es til para diversas estructuras, ya que se debe de esperar el tiempo mencionado para iniciar la iteracin correspondiente.

Select:Tiene 3 valores de entrada, uno de ellos es una condicin, y dos entradas que sern las salidas (una para cuando la condicin es verdadera y otra para cuando es falsa). Si la condicin se cumple, se regresar como salida la entrada T (True), y si la condicin es falsa, la salida es la entrada F (False).

Variable local:Una variable local es de utilidad para leer o escribir en uno de los controles o indicadores del panel frontal en el diagrama de bloques. Es de utilidad ya que cita alguna de las entradas o salidas que tiene el VI y aadir valores finales de una estructura, o leerlos para iniciar la estructura.

Numeric Control:Es un indicador que se introduce desde el panel frontal, y mostrar valores numricos. Dichos valores pueden ser una salida de algn procesamiento de datos en el Diagrama de Bloques, aunque tambin un control numrico sirve como entrada para algn proceso.

La modificacin del Control numrico puede ser dada por el usuario, ya que desde el Panel Frontal se puede introducir un nuevo valor, o por medio de las dos flechas que incluye el control, ir al valor inmediatamente superior o inferior que se despliega en esos momentos.

Increment:Este conector le agrega una unidad a la entrada, provocando que si la entrada es x, la salida ser x+1.

Equal Function:Tiene dos entradas y una salida, esta funcin se encarga de compara las dos entradas y si son iguales, el resultado ser un valor TRUE booleano, mientras que si no son iguales se dar como salida un FALSE booleano. Los valores de entrada deben de ser del mismo tipo, mientras que la salida siempre ser booleana.

And function:Compara dos entradas booleanas o numricas y si ambas entradas son verdaderas, la funcin regresa una salida TRUE, de lo contrario la salida ser FALSE.

Push button:Un Push Button es un elemento que se puede ingresar en el diagrama de bloques y presenta dos estados, pudiendo estar presionado o liberado, al estar presionado, est encendido (1) y al estar liberado est apagado (0). Pueden ser presionados por el usuario o por alguna condicin propia de la VI.

Ring Constant: Este elemento permitir crear una lista de valores que estarn relacionadas con un valor numrico y una etiqueta de caracteres. Si el elemento se convierte en un indicador, LabVIEW va a mostrar en el panel frontal el valor de la etiqueta en lugar del valor numrico. En las propiedades de este indicador se pueden aadir, remover o modificar las etiquetas asociadas a los valores numricos.

Multiply Function:A partir de dos entradas formadas por nmeros o arreglos escalares, se realiza la multiplicacin de ambas entradas y regresa dicho producto.

Desarrollo

El primer paso para comprender el funcionamiento del ciclo While y componentes bsicos de LabVIEW, fue la realizacin de 3 contadores:

Contador que aumenta su valor una unidad.El primer contador realizado va incrementando su valor en 1 por cada iteracin realizada.

Primeramente desde el panel frontal agregamos un control numrico. Despus, ya en el diagrama de bloques, se integr dentro de una estructura While el control numrico, que fue conectado a un increment, y la salida del incremento se vuelve a almacenar en la variable local que representa al Contador, por lo que se despliega en pantalla el incremento correspondiente.

Tambin se agreg un timer que hace que cada iteracin se produzca cada 1000 milisegundos (esto por medio de una variable con valor 1000 que est conectada a la entrada del timer). Finalmente, se cuenta con un botn que detiene el proceso While.

En la Tabla 1, se pueden ver los elementos utilizados para este contador, y en las ilustraciones 4 y 5 se apreciar el programa en el diagrama de bloques y panel frontal, respectivamente.

Tabla 1. Elementos utilizados en el primer contadorWhile LoopNumeric constantWait (ms)IncrementLocal VariableNumeric Control

Ilustracin 4

Ilustracin 5

Contador que aumenta su valor 5 unidades.

Para este contador se utiliz de igual manera un ciclo While, al igual que el contador descrito anteriormente, se utiliz un timer para que la numeracin cambie cada segundo, sin embargo hay una diferencia en la lgica que se utiliza para realizar el incremento de 5 unidades.

Se implement un bloque de multiplicador, en el que sus dos entradas, fueron, en primer caso, una constante numrica con valor 5, y el valor i, que representa las iteraciones que se van realizando dentro del ciclo While. Como salida de esta operacin tenemos la variable local que representa el valor del contador. Es decir, podemos considerar que la relacin de entrada salida es: , dnde se va incrementando una unidad en cada iteracin del ciclo. Adems se incluy un botn para detener las iteraciones.

En la tabla 2 se pueden apreciar los elementos incluidos

Tabla 2. Elementos utilizados en el segundo contadorWhile LoopNumeric constantWait (ms)MultiplyLocal VariableNumeric Control

Ilustracin 6

Ilustracin 7Como dato interesante, se puede observar que la variable que se est incrementando es de diferente tipo para los dos contadores, en el primero, la variable es el contador en s, mientras que en el segundo es la variable , que est dada por el ciclo While y va incrementando su valor en 1 por cada iteracin; por lo que en el primer caso, cuando se inicialice el programa, el contador continuar en el valor que est establecido, mientras que en el segundo, el contador siempre iniciar en cero, ya que la variable se inicializa en 0 cada vez que comienza el programa.

Contador-reloj.

Siguiendo la lgica de los contadores anteriores, en este VI se deben de tener 4 contadores diferentes: el de segundos, minutos, horas y das, con las siguientes condiciones:

Segundos: Podr tener incrementos cuando el botn de encendido est presionado y deber de regresar a cero una vez que ha alcanzado el valor 59. Minutos: No tendr un incremento hasta que el valor del contador de segundos sea igual a 59, as mismo, tendr que regresar a cero una vez que tanto el contador de minutos y segundos llegue a cero. Horas: El incremento se dar cuando los minutos y segundos tengan valor igual a 59. Deber de regresar a cero una vez que los minutos y segundos tengan valor 59 y las horas valor 23. Das: En este contador, se utilizan valores numricos que representan a los das, por lo que el incremento numrico se dar en el momento en el que los minutos y segundos sean igual a 59 y las horas a 23. Se deber de reiniciar la cuenta en cero cuando el valor de das sea igual a 6, el de horas 23 y el de minutos y segundos 59.

Nota importante: Puede resultar extrao que los contadores presenten un incremento cuando el valor de los segundos es 59 (debido a que un minuto tiene 60 segundos), sin embargo, esto se debe a que en el ciclo en el que el segundero muestra 59, se activa la condicin verdadera en el selector, haciendo que en el siguiente ciclo, en lugar de mostrar el 60 cambie a cero y se incremente en 1 los minutos. (Dicha relacin se puede aplicar al incremento de horas y das).

Para su funcionamiento, se dividi el trabajo por mdulos, iniciando con el contador de los segundos e ir incrementndole los contadores hasta llegar al de das.

Los elementos a usar son los siguientes:

Tabla 3. Elementos utilizados en el contador-relojWhile LoopNumeric constantWait (ms)SelectLocal VariableNumeric Control

IncrementEqualAndPush buttonRing

Segundos

Primeramente, se debe de agregar en el Panel Frontal 2 elementos, dos push button y un control numrico. Uno de los push button ser el botn de encendido, que recibe de nombre (ON) y el otro ser el indicador de que se debe de reiniciar el contador de segundos (R. Sec); el control numrico ser el contador para los segundos (Segundos). En la ilustracin 8 se pueden ver los 3 elementos requeridos para esta parte del reloj.

Ilustracin 8

Ahora, en el diagrama de bloques, se crea un ciclo while y dentro de l se hace el diagrama mostrado en la ilustracin 9.

Ilustracin 9El diagrama parte a partir del contador segundos, dicho contador tiene dos ramificaciones, en una hay un incrementor y la otra contina con el valor original, ambas conexiones se conectan a un selector, teniendo como resultado verdadero el incremento y como resultado falsa el valor actual del contador numrico. Lo que determinar al selector si la condicin es falsa o verdadera es el botn de encendido, siendo verdadero si se encuentra encendido.

El valor que sale del selector sigue dos caminos, primeramente se dirige a un comparador de igualdad, que comparar si el valor es igual a 59, de ser as se activa el botn R. Sec. El segundo camino se dirige a un nuevo selector, teniendo como respuesta falsa que contine el mismo valor de entrada a la variable local Segundos (valor del contador), mientras que la respuesta verdadera ser el valor 0. Lo que determinar si se cumple o no la condicin es el valor de encendido o apagado del push button R. Sec.

Es decir, una vez que el botn se encuentre encendido, comenzar a avanzar, siendo verdadero el primer selector (incremento +1) y falso el segundo comparador (mientras no llegue al valor 59 el push button R. Sec permanece apagado) provocando que el valor de segundos sea igual a la salida del primer selector. Cuando el valor llega a 59, se cumple la condicin de igualdad 59=59, activando el push button R. Sec, por lo que en la siguiente iteracin en lugar de aumentar el valor a 60 se regresa a cero.

Adicionalmente, se integra un timer, que har que el cambio numrico de los contadores se efecte cada segundo.

Minutos

Una vez entendida la lgica de funcionamiento de segundos, resultar fcil comprender los otros contadores. Como se pudo observar, la base del reloj son 2 selectores y un comparador de igualdad. Sin embargo, es importante tener listo el mdulo de los segundos, ya que para este contador, se requieren condiciones de simultaneidad con el segundero. En la ilustracin 10 se pueden ver los 2 elementos agregados en el Panel Frontal y en la ilustracin 11 se aprecia el Diagrama de Bloques correspondiente.

Ilustracin 10

Ilustracin 11

En el minutero, tambin se cuentan con dos selectores, uno de ellos determinar el aumento de nmero y el segundo determinar cundo debe de reiniciar el conteo.

En el primer selector, tenemos dos entradas, si la condicin es verdadera se incrementar en uno el contador y si la condicin es falsa seguir el valor actual del contador. Lo que determinar el cambio es cuando el valor del segundero sea igual a 59. Es decir, al momento de que los segundos muestran el valor 59, en la siguiente iteracin, los minutos aumentarn en 1, y los segundos regresarn a su valor 0 (como ya se explic anteriormente).

La salida del selector tiene dos ramificaciones, la primera de ellas es un comparador de igualdad, que ser activado cuando el valor de los minutos sea igual a 59, y a la salida de este comparador se tiene una compuerta AND, que los valores de entrada son el valor de la comparacin y el valor de la comparacin del mdulo anterior (segundos), es decir la condicin del segundero 59=59. Cuando ambas condiciones son falsas (es decir, cuando se tenga en los contadores 59 minutos, 59 segundos), se activar el push button R. Min.

La otra salida del primer selector se dirige a un segundo selector, que tiene como condicin el encendido del push button R. Min, haciendo que si la condicin es verdadera, el valor de minutos se regresa a cero, pero si es falsa contina con el valor asignado en la primera compuerta.

Esto da a entender que el valor de los minutos aumentar en la iteracin que contina cuando se muestra 59 en el contador de los segundos, siempre y cuando no haya un 59 en los minutos, ya que eso provocar que se regresen a cero los minutos en la prxima iteracin.

Horas

El contador de horas representa una estructura muy similar al de minutos, ya que tiene 2 selectores, en el primero se incrementa el valor una unidad si el valor de minutos y segundos es igual a 59. El valor de salida de ese selector se va a un comparador de igualdad, que es activado si las horas son iguales a 23 y en conjunto con una compuerta AND que proviene del mdulo anterior (minutos=59 y segundos=59), haciendo que si se cumplen esas tres condiciones, se active un push button llamado R. Hora.

Hay otra ramificacin de la salida del primer selector que se conecta a otro selector, siendo esa ramificacin la respuesta si la condicin es falsa, si la condicin es verdadera el contador de horas regresa a cero. De la condicin que hablamos es que el botn R. Horas se encuentre encendido (es decir, que horas=23, minutos=59 y segundos=59).

De esta manera, se aumentar el valor de horas a la iteracin siguiente cuando los minutos y segundos se encuentren el 59:59, y el valor de horas se reiniciar a cero a la iteracin siguiente cuando los minutos y segundos valgan 59 y las horas 23 (es decir, en 23:59:59).

En la Ilustracin 12 y 13 se puede ver el diagrama de bloques y panel frontal hasta este punto del programa.

Ilustracin 12

Ilustracin 13

Das

Como paso final para el contador-reloj, est la integracin de los das, dichos das se integran dentro de una Ring Constant, que tiene como funcin asociar ciertos valores numricos con textos.

Para ello, el primer paso es ingresar una Ring Constant al Diagrama de Bloques, hacer clic derecho sobre ella y seleccionar Change to control, esto har un contador en el Panel Frontal.

Acto seguido, volvemos a hacer clic derecho y seleccionamos Properties, eso nos abre una ventana nueva, y ah elegimos la pestaa Edit Items. Como se puede apreciar en la Ilustracin 14, ingresamos la descripcin que deseamos que tenga cada valor, en este caso, se inici desde el valor 0, como Lunes, 1 para Martes, y as sucesivamente hasta llegar al domingo, con el valor 6.

Ilustracin 14La parte del diagrama es idntica a los otros 3 contadores descritos anteriormente, se cuenta con un push button de nombre R. Da, que es activado por medio de una compuerta AND, cuando el valor del contador de da sea igual a 6, el de hora igual a 23, minutos igual a 59 y segundos igual a 59. Se incluyen tambin dos selectores, el primero aumentar en 1 el valor de da si se cumple con la condicin de que la hora sea igual a 23, minutos iguala 59 y segundos igual a 59. Por otra parte hay otro selector que determinar si el contador se debe de reiniciar, eso sucede cuando se encuentra encendido el push button R. Da.

Es decir, el contador da aumentar a la iteracin siguiente cuando los contadores hora-minuto-da se encuentren en los valores 23:59:59, y regresar a 0 (es decir Lunes) a la siguiente iteracin cuando los 4 contadores tengan el valor Domingo (6) 23:59:59.

Por ltimo, se agreg un botn de detencin, al hacer clic derecho en el cono que se encuentra en la parte inferior derecha de la estructura While y elegir Create Control. Ese botn fue conectado al botn de detencin de dicha estructura.

En las Ilustraciones 15 y 16 se puede observar el resultado final de la aplicacin en el Diagrama de Bloques y Panel Frontal.

Ilustracin 15

Ilustracin 16

Conclusiones

Por medio de esta prctica, se pudo conocer la facilidad con la que se elaboran IVs en LabVIEW. Podra decirse que es muy similar a programar en algn otro lenguaje de programacin, ya que partimos desde una estructura While y describimos un proceso dentro de ella.

Los primeros dos contadores creados presentan una estructura muy fcil, que se complic en el reloj-contador, debido a que el nmero de premisas y condiciones necesarias para poder realizarlo son ms especficas.

Es curioso que la lgica interna del programa puede variar de una persona a otra pero el resultado final es similar, algunos pueden optar por muchas condiciones, otros por la utilizacin de pushbutton, y otros por la repeticin de variables locales para las condiciones dadas.

A partir de esta prctica, considero que los pasos primordiales para tener un buen VI es, primeramente, conocer las entradas y salidas, para introducir los indicadores y controles en el Panel Frontal, despus viene la tarea difcil que es idear la lgica para que el VI funcione correctamente. El lado bueno es que LABView permite realizar simulaciones para verificar los lugares en los que el programa comienza a fallar.

Por ltimo, puedo concluir que LabVIEW es un excelente programa que nos permitir simular sistemas a fin de comprender el funcionamiento de una mejor manera y utilizar las tcnicas aprendidas durante el transcurso de nuestra carrera (especialmente en las clases de Programacin) para solucionar problemas por medio de Instrumentos Virtuales.

Fuentes de consulta

Software de Desarrollo de Sistemas NI LabVIEW (s.f). Consultado el 30 de agosto del 2014 en http://www.ni.com/labview/esa/

Tutorial de LabVIEW (s.f.). Consultado el 30 de agosto del 2014 en http://www.esi2.us.es/~asun/LCPC06/TutorialLabview.pdf

Ring Constant (2012). Consultado el 30 de agosto del 2014 en http://zone.ni.com/reference/en-XX/help/371361J-01/glang/ring_constant/

Local Variable (2012). Consultado el 30 de agosto del 2014 en http://zone.ni.com/reference/en-XX/help/371361J-01/glang/local_variable/

Manual de LabVIEW 2012. National Instruments.

7