Sei sulla pagina 1di 13

INSTITUTO TECNOLGICO DE CIUDAD JUREZ

MATERIA : INSTRUMENTACIN VIRTUAL MAESTRO : ING. VICTOR TARANGO TAREA : #3 TEMA : PROGRAMACIN DE ESTRUCTURAS
CON SOFTWARE LabVIEW PARA LA INSTRUMENTACIN VIRTUAL.

ALUMNO : DANIEL BARRAZA MARMOLEJO No. CONTROL : 07111324 FECHA : 05 MARZO 2012

1. Objetivo.- Conocer los conceptos de programacin de estructuras del software LabVIEW. 2. Introduccin Terica: 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 Conceptos de programacin Metodologa de programacin Uso de LabVIEW Tipos de datos Controles e indicadores Interconexin de bloques Depuracin de errores Estrucutras de control Estrucutras If, Case y Event

2.10 Estructuras For y While 2.11 Arrays, Clusters

2.1 Conceptos de programacin


LabVIEW es un entorno de programacin destinado al desarrollo de aplicaciones, similar a los sistemas de desarrollo comerciales que utilizan C o BASIC. Sin embargo, LabVIEW se diferencia de dichos programas estos lenguajes de programacin se basan en lneas de texto para crear el cdigo fuente del programa, mientras que LabVIEW emplea la programacin grfica o lenguaje G para crear programas basados en diagramas de bloques.

2.2 Metodologa de programacin


Con el entorno grfico de programacin de LabVIEW se comienza a programar a partir del panel frontal. En primer lugar se definirn y seleccionarn de la paleta de controles todos los controles (entradas que dar el usuario) e indicadores (salidas que presentar en pantalla el VI) que se emplearn para introducir los datos por parte del usuario y presentar en pantalla los resultados. Una vez colocados en la ventana correspondiente al panel frontal todos los objetos necesarios, debe pasarse a la ventana Diagram (men Windows > Show Diagram), que es donde se realiza la programacin propiamente dicha (diagrama de bloques). Al abrir esta ventana, en ella se encuentran los terminales correspondientes a los objetos situados en el panel frontal, dispuestos automticamente por LabVIEW. Se deben ir situando las funciones, estructuras, etc. que se requieran para el desarrollo del programa, las cuales se unen a los terminales mediante cables.

2.3 Uso de LabVIEW


Labview tiene su mayor aplicacin en sistemas de medicin, como monitoreo de procesos y aplicaciones de control, un ejemplo de esto pueden ser sistemas de monitoreo en transportacin, Laboratorios para clases en universidades, procesos de control industrial. Labview es muy utilizado en procesamiento digital de seales (wavelets, FFT, Total Distorsion Harmonic TDH), procesamiento en tiempo real de aplicaciones biomdicas, manipulacin de imgenes y audio, automatizacin, diseo de filtros digitales, generacin de seales, entre otras, etc.

Es usado principalmente por ingenieros y cientficos para tareas como:

Adquisicin de datos y anlisis matemtico Comunicacin y control de instrumentos de cualquier fabricante Automatizacin industrial y programacin de PACs (Controlador de Automatizacin Programable) Diseo de controladores: simulacin, prototipaje rpido, hardware-en-el-ciclo (HIL) y validacin Diseo embebido de micros y chips Control y supervisin de procesos Visin artificial y control de movimiento Robtica Domtica y redes de sensores inalmbricos En 2008 el programa fue utilizado para controlar el LHC, el acelerador de partculas ms grande construido hasta la fecha. Pero tambin juguetes como el Lego Mindstorms o el WeDo lo utilizan, llevando la programacin grfica a nios de todas las edades.

2.4 Tipos de datos


LabVIEW soporta principalmente 4 tipos de datos. Los nmeros enteros o integer.

Los nmeros reales de coma flotante (con decimales) o float/double. Los elementos booleanos o de tipo bit, boolean. Las cadenas de caracteres o string.

Figura 1. Tipos de datos.

Dentro de los enteros, podemos hacer una clasificacin por su tamao en bits, habiendo enteros de 8 bits, de 16, de 32 y de 64 bits. Adems, es posible definirlos tanto con signo (signed, con prefijo I), como sin signo (unsigned, con prefijo U).

Figura 2. Clasificacin de los nmeros enteros segn tamao en bits.

La mayora de las funciones matemticas consideran que tanto sus entradas como la salida son de tipo double. El tipo double es el nmero de coma flotante de doble precisin y se representa con DBL. Los datos de tipo cadena se utilizan para enviar y recibir mensajes de texto entre los distintos mdulos y funciones de una aplicacin. Se utilizan para el envo y recepcin de informacin.

Figura 3. Representacin grfica de las conexiones de los tipos de datos.

2.5 Controles e indicadores


La programacin grfica se basa en la realizacin de operaciones mediante la asignacin de iconos que representen los datos numricos (indicadores) e iconos que representan los procedimientos (controles) que deben realizar los (VI's), con estos iconos y mediante una conexin simple como lo es una lnea recta se enlazan para determinar una operacin y/o una funcin. Indicadores.- Son iconos que representan los diferentes tipos de datos del programa (pueden ser grficos, leds, nmericos, texto).

Figura 4. Indicadores nmericos.

Figura 5. Indicadores LEDs

Figura 6. Indicadores de texto.

Figura 7. Indicadores grficos.

Controles.- Son iconos que representan los procedimientos que deben realizar los VIs.

Figura 8. Controles nmericos.

Figura 9. Botones y switches.

Figura 10. Controles de texto.

2.6 Interconexin de bloques


La herramienta para conectar o de cableado es utilizada para conectarse a los nodos de las funciones. Cuando usted apunte con la herramienta de cableado, apunte con el extremo del cable que cuelga del carrete. Aqu es donde el cable sera colocado. Mientras usted mueve la herramienta de cableado sobre las funciones, observe la vieta amarilla que aparece. Esto le dir el nombre de la terminal al que se esta conectando. Mientras usted mueva la herramienta de cableado encima de una terminal, esta va a mostrar informacin. Esto le ayudara a identificar donde se va a unir el cable. Para mas ayuda con los terminales, haga clic derecho en la funcin y seleccione Visible Items o Objetos Visibles>>Terminals o Terminales. Un dibujo de la funcin ser colocada atrs para revelar las terminales de la conexin. Note los colores - estos corresponden a los tipos de datos utilizados por los terminales del panel frontal. Para ayuda adicional, seleccione Help >> Show Context Help, o presione CTRL+H. Esto mostrara la ventana de ayuda en contexto. A medida que uno mueva el raton (mouse) sobre la funcin, esta ventana le mostrara la funcin, terminales, y una breve descripcin. Utilice esto junto con otras herramientas para ayudarse mientras conecta los cables. Si el cableado no se mira muy bien, haga clic derecho en el cable que se desea arreglar y escoja la opcin de Clean Up Wire o Limpieza del Cable para que automticamente el cable haga su ruta de nuevo.

Figura 11. Cableado de bloques.

2.7 Depuracin de errores


Cuando su VI no es ejecutable, se despliega una flecha quebrada en el botn de correr en la paleta de herramientas. Encontrando los Errores: Para hacer una lista de los errores, haga clic en la flecha quebrada. Para localizar el objeto malo, haga clic en el mensaje del error. Resaltando la Ejecucion: Anima el diagrama y traza el flujo de datos, permitindole ver los valores intermedios. Haga clic en el bombillo incandescente (light bulb) en la barra de herramientas. Probe: Utilizado para ver los valores en los arrays (arreglos) y clusters . Haga clic en los cables con la herramienta Probe o haga clic derecho en el cable para ajustar los probes. Punto de Paro (Breakpoint): Coloca pausas en diferentes lugares del diagrama. Haga clic en los cables o en los objetos con la herramienta de Punto de Paro para colocar los puntos de paro. Utilice el VI Debug Demonstrate del BASICS.LLB para demostrar las opciones y las herramientas.

Figura 12. Eliminacin de errores.

2.8 Estructuras de control


stas controlan el flujo del programa, bien sea mediante la secuenciacin de acciones, ejecucin de bucles, etc. Las estructuras se comportan como cualquier otro nodo en el diagrama de bloques, ejecutando automticamente lo que est programado en su interior una vez tiene disponibles los datos de entrada, y una vez ejecutadas las instrucciones requeridas, suministran los correspondientes valores a los cables unidos a sus salidas. Sin embargo, cada estructura ejecuta su subdiagrama de acuerdo con las reglas especficas que rigen su comportamiento. Un subdiagrama es una coleccin de nodos, cables y terminales situados en el interior del rectngulo que constituye la estructura. El For Loop y el While Loop nicamente tienen un subdiagrama. El Case Structure y el Sequence Structure, sin embargo, pueden tener mltiples subdiagramas, superpuestos como si se tratara de cartas en una baraja, por lo que en el diagrama de bloques nicamente ser posible visualizar al tiempo uno de ellos. Los subdiagramas se construyen del mismo modo que el resto del programa.

2.9 Estructuras If, Case y Event


La estructura Case engloba dos sentencias diferentes de otros lenguajes convencionales.

Figura 13. Estructura Case.

Estructura If en LabVIEW, no existe tal cual, pero tiene un equivalente que seria la estructura Case Structure (Con opcin booleana).

Figura 14. Estructura Case equivalente a la estructura If.

Estructura Case que depende de un valor entero, es el Select Case, el cual tiene dos o ms opciones.

Figura 15. Estructura Select Case

Estructura Event Es una estructura parecida a la estructura Case; nos permite ejecutar una u otra parte de cdigo, en funcin de diferentes eventos relacionados con nuestra aplicacin. Como son: Clicks o movimientos de ratn Ventanas para maximizar o minimizar Pulsacin de teclas del teclado Entre otros eventos Esta estructura permite aadir tantas ventanas como eventos queramos controlar y configurar. Cuando la ejecucin del programa llega al Event Structure, por defecto el programa espera hasta que se d algunos de los eventos programados.

Tambin tiene la posibilidad de programar un evento de Time Out y configurar el tiempo de espera mediante una conexin smbolo. La configuracin de los eventos para cada uno de los casos se realiza mediante el cuadro siguiente.

Figura 16. Editor de eventos.

2.10 Estructuras For y While


Estructura For Loop Es una estructura que se repite un nmero determinado de veces;

Figura 17. Estructura For Loop.

Terminal contador.- es el nmero de veces que se ejecutar el subdiagrama creado en el interior de la estructura. El valor 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.

Estructura While Loop Esta estructura se repetir mientras una condicin se cierta o falsa.

Figura 18. Estructura While Loop.

Terminal condicional.- a l conectaremos la condicin que har que se ejecute el subdiagrama. LabVIEW comprobar el estado de este terminal al final de cada iteracin. Podemos configurar este terminal de manera que pare si la condicin es cierta (Stop If TRUE ) o bien que pare si la condicin es falsa (Continue If TRUE ).

Terminal de iteracin.- indica el nmero de veces que se ha ejecutado el bucle y que, como mnimo, siempre ser una (i=0).

2.11 Arrays, Clusters


Arrays Los arrays son conjuntos de datos o elementos del mismo tipo, accesibles mediante los ndices del propio array. En LabVIEW existen arrays unidimensionales, y tambin los bidimensionales. El array es en realidad una tabla de dos dimensiones, donde los elementos guardados en sus casillas son accesibles mediante los ndices de la tabla, conocidos como filas y columnas. Hay dos formas de inicializar los arrays. La primera es utilizando las funciones especficas de inicializacin de arrays, y la otra, mediante las sentencias repetitivas (for, while). Arrays unidimensionales Los arrays unidimensionales son aquellos que tienen una nica fila y C columnas, es decir son arrays de tamao 1xC. (Hay que seleccionar el Build Array).

Figura 19. Diferentes tipos de Array.

A continuacin se marca ese objeto con el ratn y se extiende hacia abajo dndole el tamao de C columnas, p.e. 3 columnas, figura 4 centro. Seguidamente se generan las tres entradas (desde las 3 entradas del objeto Build Array), es decir, los controles que proporcionarn los valores de los 3 elementos del array, y tambin el indicador que muestra el contenido del array (desde la salida del objeto Build Array), figura 20 derecha.

Figura 20. Creacin de un array unidimensional. A esto, le aadimos una sentencia while para que la aplicacin se ejecute de forma continua. Al ejecutar la aplicacin, se asignan los valores de los elementos del array en los controles correspondientes, figura 21. El array puede ser indexado desde su ndice (elemento de control del array), es decir, cada elemento del array se puede ver desde el su ndice. Como se puede observar en figura 21 izquierda, el ndice comienza en 0, y no en 1.

Figura 21. Array estructurado dentro de un While.

Arrays bidimensionales Se trata de arrays de ms de una fila, con lo que se consiguen arrays de F filas y C columnas, es decir arrays FxC. Como se puede deducir, un array de dos dimensiones es ideal para guardar o representar tablas de datos, ya que la tabla tiene la misma organizacin bidimensional de filas y columnas que el array bidimensional.En cuanto a la inicializacin de estos arrays, tenemos las dos formas explicadas que para los arrays unidimensionales. Por una parte, se pueden inicializar utilizando las funciones Build Array, y por otra, mediante las sentencias de repeticin for. Como hemos podido ver con los arrays de una dimensin, una funcin Build Array crea un array de una nica fila. Pues bien, para crear un array de dos dimensiones, lo que se hace es unir varios arrays de una dimensin en un array mediante otra funcin Build Array. La nica condicin que han de cumplir estos arrays unidimensionales, es que todos ellos tengan el mismo nmero de elementos, es decir, que el mismo nmero de columnas, figura 22.

Figura 22. Array bidimensional. A continuacin, tenemos un ejemplo donde podemos ver cmo se genera un array de nmeros aleatorios de dos dimensiones utilizando dos sentencias de repeticin for, una dentro de la otra, figura 23. La sentencia for interna, tal y como hemos visto en el caso unidimensional, genera cada una de las filas del array, por lo tanto su nmero de iteraciones define el nmero de columnas o elementos de cada fila. Por ello, esto queda fijado mediante un control llamado Columnas. As mismo, la sentencia for externa, permite repetir varias veces lo que ocurre en su interior: generar una fila de array. Entonces, fijando su nmero de iteraciones, se fija el nmero de filas que tendr el array resultante, mediante otro control llamado Filas.

Figura 23. Programa que genera nmeros aleatorios en un array. Clusters Los clusters son tipos de datos compuestos por varios elementos de distintos tipos. Son los equivalentes a las estructuras de datos del lenguaje de programacin C y similares, o a las clases, en los lenguajes de Programacin Orientados a Objetos, como el C++, Java, etc. En LabVIEW, cuando interesa unir varios tipos de datos bajo el mismo nombre, entonces se crea un cluster con ese nombre. Esto, suele ser muy prctico para que en el diagrama, aparezcan muchas menos lneas de conexiones y stas estn agrupadas segn un criterio dado. En el ejemplo que viene a continuacin, se muestra cmo tres tipos de datos distintos (nmero real, nmero entero y cadena de caracteres) que se encuentran en los controles de la izquierda son llevados a la parte derecha del diagrama como una nica unidad, figura 25 derecha. Para aguparlos, se utiliza el objeto Bundle, figura 24 izquierda, que se encuentra en Functions/Programming/Cluster, Class & Variants. En cambio, en el lado derecho, tanto del diagrama como del panel, se encuentran los indicadores que permiten visualizar los valores enviados desde los controles antes mencionados. Para ello, se utiliza el objeto Unbundle, figura 11 dcha., cuya misin es obtener los elementos individuales del grupo que llega a su entrada.

Figura 24. Objeto Bundle.

Figura 25. Ejemplo de un programa utilizando un cluster.

Otra interesante aplicacin de los clusters es la de crear aplicaciones con mens de botones y mquinas de estados. Para crear un men de botones se inserta un objeto cluster desde el panel, desde Controls/Classic/Cluster/Classic Array, Matriz & Cluster. A continuacin se insertan dos botones de tipo OK a los que se les elimina la etiqueta externa, en el cluster. Se edita cada uno de ellos con el botn derecho del ratn y ejecutando Properties y en la ficha Appearance, en Off text, se elimina OK y se escribe + en un caso y - en el otro. En el diagrama, se introduce una sentencia while para controlar la ejecucin de la aplicacin, donde el cluster anterior es introducido en ella, figura 26. A la salida del cluster se conecta un conversor de tipo Cluster to Array, que se encuentra en Functions/Programming/Array. A su vez, la salida de este conversor es llevado a la entrada superior del Search 1D Array, donde su entrada inferior est conectada a una constante booleana de valor true. Asi, este objeto proporciona el ndice del array cuyo elemento ha proporcionado un true, es decir, en este caso, cuyo botn ha sido pulsado. De este modo, si se pulsa el primer botn, la funcin Search 1D Array devuelve un 0, si se pulsa el segundo, devuelve un 1, y as si hubiera ms botones. En cambio, si no se pulsa ningn botn, la funcin devuelve 1. En este sentido, si a la salida de esta funcin conectamos una sentencia de seleccin mltiple, entonces se puede colocar en cada sentencia el cdigo asociado al botn o funcin que se quiera realizar. As, tendriamos una sentencia o estado de reposo para cuando no se pulsa ningn pulsador (-1), otro para la suma de los dos operandos (0), y finalmente para le resta de los operandos (1). Adems del cdigo asociado a cada estado o funcin, se colocar una constante de tipo cadena o string, que ir conectado a la salida de la sentencia para que en el panel se pueda ver el estado en el que se encuentra la aplicacin en todo momento. Dendro de la sentencia while, se aadir un temporizador de 1 segundo para que se puedan ver los resultados en tiempo de ejecucin de la aplicacin.Figura 26.

Figura 26. Ejemplo cluster con botones.

2.12 Fuentes Consultadas


http://www.esi2.us.es/~asun/LCPC06/TutorialLabview.pdf http://sandralabview.blogspot.com/2008/06/definicin.html http://www.etitudela.com/entrenadorcomunicaciones/downloads/labviewtiposdedatos.pdf http://es.wikipedia.org/wiki/LabVIEW http://www3.fi.mdp.edu.ar/electrica/opt_archivos/estructuras.pdf http://cnx.org/content/m18072/latest/

Potrebbero piacerti anche