Beruflich Dokumente
Kultur Dokumente
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
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.
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.
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).
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.
Controles.- Son iconos que representan los procedimientos que deben realizar los VIs.
Estructura If en LabVIEW, no existe tal cual, pero tiene un equivalente que seria la estructura Case Structure (Con opcin booleana).
Estructura Case que depende de un valor entero, es el Select Case, el cual tiene dos o ms opciones.
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.
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.
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).
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.
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.
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.