Está en la página 1de 14

Documentacin complementaria para las prcticas de o a LabView

Asignatura de Sistemas de Percepcin (DTE) o Curso 20072008

1.

Instrumentacin virtual o

Un instrumento virtual simula el panel frontal y el funcionamiento de un instrumento real. Se basa en un ordenador, el software de instrumentacin virtual y elementos o de adquisicin de datos tales como tarjetas de adquisicin de datos o instrumentos exo o ternos que se comunican mediante buses de propsito general o de instrumentacin con o o el ordenador. El software de instrumentacin virtual permite realizar un programa que o simula en la pantalla del ordenador el panel frontal de un instrumento real as como la funcionalidad de ese instrumento.

2.

LabView

LabView es una herramienta de programacin grca y modular utilizada para crear o a instrumentacin virtual. Los programas creados mediante LabView son los instrumeno tos virtuales o VI (virtual instrument) que tienen un panel frontal y un diagrama de bloques (gura 1). La interfase de usuario del instrumento se realiza en la ventana del panel frontal y la funcionalidad del instrumento se programa en la ventana de diagrama de bloques. A travs del panel frontal el usuario interacta con el instrumento virtual e u mediante interruptores, controles deslizantes, grcos y otros tipos de controles e india cadores proporcionados por LabView. Utiliza un lenguaje de programacin grco, el o a lenguaje G, basado en bloques funcionales que se transeren datos de distintos tipos. Los bloques se seleccionan de un men tipo paleta, con funciones que van desde las aritmtiu e cas a funciones avanzadas de adquisicin, control y rutinas de anlisis. Incluye tambin o a e herramientas de depuracin, de ayuda, ejecucin resaltada, paso a paso, probetas y puno o tos de ruptura para trazar y supervisar la ejecucin del ujo de datos. LabView permite o la creacin de aplicaciones profesionales con un m o nimo de programacin. o Las tarjetas de adquisicin de datos suelen traer, adems de los drivers, instrumentos o a virtuales para LabView que permiten hacer de interfase con el hardware.

3.

Panel frontal

Los elementos del panel frontal son los controles e indicadores. Los controles son las entradas del instrumento virtual, sobre las que acta el usuario mediante el ratn, u o y los indicadores son las salidas del instrumento que permiten al usuario conocer los resultados en la pantalla del ordenador. Los controles e indicadores se insertan en el panel frontal seleccionndolos desde la a paleta de controles (gura 2(a)) 1

Figura 1: Panel frontal y diagrama de bloques de un instrumento virtual en LabView

(a)

(b)

Figura 2: Paleta de controles del panel frontal 2(a) y paleta de funciones del diagrama de bloques 2(b) Nota: Si la paleta de controles no est visible se puede mostrar con Windows Show a Controls Palette. Tambin se puede mostrar pulsando el botn derecho del ratn en una e o o zona libre del panel frontal.

4.

Diagrama de bloques

El funcionamiento del instrumento virtual se programa en el diagrama de bloques con el lenguaje grco G. En el diagrama de bloques tendremos terminales y nodos a conectados mediante cables. Los terminales son en general puntos donde se puede conectar un cable. Dos tipos de bloques slo pueden tener un terminal: o Terminales correspondientes a los controles e indicadores del panel frontal. El usuario introduce valores en los controles y tras la ejecucin del VI los resultados se o muestran en los indicadores. Constantes. Constantes creadas por el usuario o constantes predenidas accesibles 2

en la paleta de funciones. Los nodos son los elementos que realizan la ejecucin en el diagrama de bloques, o pueden tener ms de un terminal: a Funciones SubVIs Estructuras Nodos de Frmula o Nodos de Interfase de Codigo Nodos de atributo Los tres ultimos son conceptos avanzados que no se van a explicar en este manual. Los tres primeros se explican posteriormente. Estos bloques se cablean virtualmente unos con otros para transferirse los datos. La ejecucin del VI est dirigida por los datos, a medida que estos estn disponibles los o a a bloques funcionales realizan operaciones con los datos y proporcionan resultados para otros bloques.

5.

Tableta de herramientas

Esta tableta est disponible tanto en el panel frontal como en el diagrama de bloques, a las distintas herramientas se indican en la gura 3 son las siguientes:
Posicionado/tamao/seleccin Operacin Cableado Men contextual Puntos de ruptura Seleccin de color Edicin de texto Desplazamiento(Scroll) Toma de color Probeta

Figura 3: Paleta de herramientas

Operacin: Cambia el valor de un control o selecciona el texto de un control. o Posicionado/tama o/seleccin: Selecciona objetos y permite cambiar su posicin o n o o tamao. n Edicin de texto: Para editar texto o crear etiquetas o Cableado: Para conectar terminales y nodos en el diagrama de bloques. Men contextual: Se obtiene un men personalizado para cada objeto. Equivalente a u u botn derecho. o 3

Desplazamiento: Desplaza la ventana como con las barras de desplazamiento. Puntos de ruptura: Pone puntos de ruptura en VIs, funciones y estructuras. Probeta de datos: Puntos de prueba en cables. Toma de color: Toma el color de un objeto para pegarlo con la herramienta de seleccin o de color. Seleccin de color: Asigna el color del fondo y el primer plano de los objetos. o

6.

Controles e indicadores del panel frontal

Los controles permiten al usuario, en tiempo de ejecucin del VI, introducir datos, o parmetros, opciones, etc., son pues las entradas al VI. Los indicadores permiten conocer a resultados de la ejecucin del VI ya sea de forma numrica, grca, textual, etc., son las o e a salidas del VI. Estos objetos tienen un terminal correspondiente en el diagrama de bloques. La etiqueta propia (label ) es la misma en el terminal que en su objeto. Nota: Si se pincha fuera de la etiqueta antes de introducir el texto, sta desaparee ce. Se la vuelve a mostrar pulsando el botn derecho dentro del control y seleccionando o Show Label. Se pueden tener controles e indicadores de todos los tipos que aparecen en la paleta de controles, entre ellos vamos a ver los siguientes: Numricos e Booleanos De cadena de caracteres (string) Enumerados Arrays Clusters Grcos a

6.1.

Controles numricos e

Entre otros, los controles e indicadores numricos (gura 4) pueden ser digitales, de e cursor deslizante, rotatorios y enumerados. Estos ultimos son un caso especial y se ven en un apartado aparte. Se puede cambiar entre otros aspectos la representacin y el formato en el men o u contextual del objeto. Representacin: Los datos numricos, en general, pueden ser enteros, de coma otante o e y complejos. Los datos enteros pueden ser con o sin signo y de 8, 16 y 32 bits (byte, word y long). Los datos en coma otante y los complejos pueden ser de precisin o simple, doble y extendida. Formato: Se puede elegir la presentacin numrica o temporal, el nmero de d o e u gitos decimales y el tipo de notacin. o 4

Figura 4: Controles numricos. e

6.2.

Controles booleanos

Son botones, LEDs e interruptores. El tipo de datos de estos controles es booleano, slo tiene dos valores: verdadero (true, on) y falso (false, o ). o El valor de los botones sin pulsar y de los interruptores abajo es falso (o ). 6.2.1. Conguracin de la accin mecnica de los controles booleanos o o a

Se reere al comportamiento del control booleano ante la accin del ratn. El comporo o tamiento puede ser el t pico de un interruptor, o el de un pulsador con o sin enclavamiento. La accin, adems, puede ser debida a la pulsacin del botn o a su liberacin. Hay 6 o a o o o tipos de acciones mecnicas posibles para los controles booleanos del panel frontal. Estas a acciones se seleccionan mediante el men contextual. u En los esquemas de los iconos de la gura 5 la primera l nea (m) expresa la accin del o botn primario del ratn segn que se pulse o se libere, la segunda l o o u nea (v) representa el cambio en el valor booleano del control, y la tercera l nea ilustra el comportamiento del control. El comportamiento de los pulsadores con enclavamiento est relacionado con a el funcionamiento de LabView, as el enclavamiento permite asegurar que el valor del control es le do (RD de read ) antes de que el pulsador vuelva a su posicin inicial. o Le signica que el valor pasa al terminal o nodo que sigue. do

Figura 5: Accin mecnica de los controles booleanos. o a Siguiendo el orden de los iconos, las acciones mecnicas son las siguiente: a Switch When Pressed: Se trata de un interruptor cuyo valor cambia cada vez que se pulse el botn del ratn. o o Switch When Released: En este interruptor la accin se produce cuando se libera o el botn del ratn. o o 5

Switch Until Released: El comportamiento es el de un pulsador, cambiando el valor desde que se pulsa el botn del ratn hasta que se suelta. o o Latch When Pressed: Es un pulsador con enclavamiento, cuando se pulsa el botn o del ratn el valor cambia pero no vuelve hasta que el valor del control es le o do por primera vez desde su enclavamiento. Latch When Released: En este pulsador el enclavamiento se produce al soltar el botn del ratn. Tambin vuelve a su valor por defecto cuando es le o o e do por primera vez desde su enclavamiento. Latch Until Released: El pulsador se enclava al pulsarse el botn del ratn, pero o o se libera con la primera lectura despus de soltar el botn del ratn. e o o

6.3.

Controles de cadena de caracteres

Las cadenas de caracteres (string) son colecciones de caracteres en cdigo ASCII. o

6.4.

Controles enumerados

Se trata de listas enumeradas. Cada posicin de la lista se rellena con texto y le o corresponde un nmero entero, empezando por 0. Este valor numrico se puede ver u e mostrando el display digital (Men contextual Show Digital Display). Dentro u del diagrama de bloques el terminal del control es un nmero entero con el valor de la u posicin seleccionada desde el panel frontal. o

6.5.

Arrays

Un array es una coleccin ordenada de datos, todos ellos del mismo tipo. El nmero o u de datos es variable. Puede tener una o ms dimensiones y hasta 231 1 elementos por a dimensin (si hay memoria). Para acceder a cada dato se utiliza un o ndice por cada dimensin. Los o ndices empiezan en 0. En el panel frontal se puede utilizar un array como control o como indicador. Primero se inserta el array (ver gura 6) y, a continuacin, se inserta un control o un indicador o del tipo deseado. Todos los elementos del array sern controles o todos indicadores. a

Figura 6: Arrays en el panel frontal

6.6.

Clusters

Coleccin de datos heterognea. Los elementos pueden ser de distinto tipo pero todos o e deben ser controles o todos indicadores. 6

Figura 7: Formato de un grco Waveform Chart. a Un cluster de control o indicador se inserta en el panel frontal de forma similar a un array. 6.6.1. Gestin de errores o

Un tipo de cluster predenido se utiliza para el manejo de errores. Los cluster error in y error out permiten transmitir los posibles errores de un subVI a otro. Estos cluster estn constituidos por tres componentes: a Un valor booleando indica la presencia o ausencia de error. Un valor numrico entero se corresponde con el nmero de error. e u Una cadena de caracteres permite conocer el origen del error.

6.7.

Indicadores grcos a

De los cinco tipos de grcos se explican los grcos Waveform Chart, Waveform a a Graph y XY Graph. 6.7.1. Waveform Chart

Permite representar grcos de datos numricos equiespaciados. El grco se reprea e a senta punto por punto. Los nmeros escalares que llegan al indicador son la coordenada u Y del grco mientras que la coordenada X de cada punto se calcula automticamente a a desde un valor inicial X0 (por defecto 0) y se incrementa con dX (por defecto 1). El men contextual del grco permite autoescalar las coordenadas X e Y , modicar u a los valores por defecto de X0 y dX, cambiar el formato y precisin del grco y las o a opciones de la rejilla del grco (gura 7). a

6.7.2.

Waveform Graph

Se trata de un indicador grco de datos numricos equiespaciados. A diferencia del a e Waveform Chart, este no tiene memoria, no se representa punto por punto sino como un bloque. Para representar un grco el dato que llega debe ser un array. Cada elemento del a array ser la coordenada Y del punto. Los puntos quedan representados en el mismo a orden que estn en el array empezando por el de menor a ndice. La coordenada X del primer punto (X0 ) se incrementa desde el valor del primer elemento del array con cada punto en la cantidad dX. El men contextual del Waveform Graph permite las mismas opciones que el Waveu form Chart. Para representar ms de un grco, en lugar de un array unidimensional, se debe a a enviar un array bidimensional donde cada la es un grco distinto, como en la gura 8. a

Figura 8: Dos grcas en un Waveform Graph. a

6.7.3.

XY Graph

Es un indicador grco para datos numricos. Igual que el Waveform Graph reprea e senta los datos como bloques, pero a diferencia de ste, no necesitan ser equiespaciados. e Se deben proporcionar las coordenadas X e Y de cada punto en forma de dos vectores unidos en un cluster.

Figura 9: Funcin de Lissajous mediante un XY Graph. o 8

7.

Programacin del diagrama de bloques o

En la ventana de diagrama de bloques se insertan nodos, terminales y constantes, y se cablean mediante la herramienta de cableado. Los terminales aparecen automticamente al insertar un control o un indicador en el a panel frontal. Los nodos y constantes se insertan de la paleta de funciones. Los nodos pueden ser estructuras, funciones y subVIs. Las estructuras tienen una funcionalidad similar a la de un lenguaje textual de alto nivel. Entre estas estructuras estn los bucles for y while y las estructuras case. a En este apartado se ven tambin algunas de las funciones disponibles que realizan e operaciones con los distintos tipos de datos. La programacin modular en LabView se realiza mediante los SubVIs. Estos se ven o en el apartado 8 Para la programacin se tiene en cuenta el funcionamiento de la ejecucin en LabView: o o 1. Un nodo slo se ejecuta cuando tiene todos los datos disponibles. o 2. Durante la ejecucin de un nodo el cambio en sus entradas no le afecta. o 3. Un nodo no proporciona datos a sus salidas hasta que no termina su ejecucin. o

7.1.

Bucle While

Estructura repetitiva de bucle While (While Loop) que se ejecuta mientras la condicin de salida sea cierta. o Tiene dos terminales, el terminal de condicin y el terminal de iteracin. El subdiao o grama del bucle While se sigue ejecutando mientras el valor que le llega al terminal de condicin sea cierto. El terminal de iteracin indica el nmero de iteracin en la que se o o u o encuentra, empezando en 0. Un bucle While inicia su ejecucin cuando todos los datos de entrada estn disponio a bles. Estos datos entran a travs de tneles en la primera iteracin. Cuando el valor que e u o llega al terminal de iteracin es falso termina el bucle y se proporcionan resultados a su o salida. Nota: Como todo Nodo del diagrama de bloques su ejecucin se produce cuando los o datos a su entrada estn disponibles. Durante su ejecucin aunque cambien la entradas a o estas no tienen efecto. Los resultados de salida slo se proporcionan despus de la ultima o e iteracin, durante la ejecucin no proporciona resultados fuera del bucle While. Aplicao o cin: Un botn de Stop debe estar dentro del bucle While lo mismo que un indicador de o o valores para cada iteracin. o

7.2.

Bucle For

Una estructura de bucle For (For Loop) ejecuta el subdiagrama que se encuentra en su interior un nmero de veces predeterminado. u El bucle For tiene dos terminales: El terminal N (terminal de cuenta) indica el nmero de veces que se repetir la u a ejecucin. Se puede cablear un dato de tipo entero desde el exterior de la estructura o hasta este terminal o bien utilizar las caracter sticas de autoindexado. 9

El terminal de iteracin i proporciona un valor entero con el nmero de iteracin o u o actual que se est ejecutando. Va desde 0 hasta N 1. a Adems de estos terminales, datos externos pueden entrar a travs de tneles (siempre a e u antes de la primera ejecucin) y salir a travs de tneles despus de que se ha ejecutado o e u e N veces el bucle.

7.3.

Autoindexado

Son dos caracter sticas conjuntas de un bucle que permiten indexar y acumular arrays automticamente en sus l a mites. El autoindexado se aplica a los tneles de entrada y u salida del bucle. En los tneles de entrada permite extraer de uno en uno los elementos de un array u (empezando por el de menor ndice). En este caso no es necesario cablear el terminal N. En los tneles de salida es posible acumular valores para formar un array que se u proporciona al nal de la ultima iteracin. Los elementos escalares se acumulan secuen o cialmente en arrays de dimensin 1, los arrays de dimensin 1 se acumulan en arrays de o o dimensin 2, etctera. o e Mediante el men contextual de un tnel se puede activar o desactivar su autoindeu u xado. Esto es independiente para cada tnel. Si el tnel de salida tiene el autoindexado u u desactivado slo sale del bucle el valor de la ultima iteracin. o o Esta caracter stica es propia tambin de los bucles While. En los bucles For el autoe indexado est activado por defecto mientras que en los bucles While est desactivado. a a Nota: El nmero de veces que se ejecuta un bucle ser el menor de los posibles: el u a que indica el terminal de cuenta, o el del menor array que entra por un tunel con el autoindexado activado.

7.4.

Registros de desplazamiento

Los registros de desplazamiento (Shift Register) se pueden utilizar en los bucles while y for. Tienen utilidad para calcular valores medios y construir ltros digitales o mquinas de estados. a Para aadir un registro de desplazamiento se selecciona con el men contextual del n u bucle en los lados izquierdo o derecho. El valor de la iteracin actual se puede guardar conectndolo a la entrada del registro o a en el lado derecho del bucle. Los valores de iteraciones previas se obtienen de las salidas del registro en el lado izquierdo del bucle, tal como se ilustra en la gura 10.

7.5.

Estructura case

Una estructura case permite ejecutar condicionalmente uno de entre varios subdiagramas. El diagrama que se ejecuta corresponder al valor que llega al terminal selector. a El tipo de datos que puede llegar al selector puede ser booleano, entero, enumerado o de cadena de caracteres. Por defecto el tipo de datos del selector es booleano y slo se puede seleccionar entre o dos subdiagramas.

10

Figura 10: Valor medio de la iteracin actual y las dos anteriores. o Si se quiere seleccionar entre ms de dos subdiagramas se puede, por ejemplo, cambiar a los valores del selector a datos enteros. Para conseguir esto se cablea un valor entero al selector, el valor falso se convierte en 0 y valor por defecto, y el valor verdadero pasa a ser 1. Para aadir ms casos se selecciona un valor (preferiblemente el mayor disponible) n a y se pincha en Add case del men contextual. u Siempre se ejecuta un unico subdiagrama por ello es necesario que a todos los posibles valores del selector les corresponda un subdiagrama utilizando si es necesario un caso por defecto. Para un conjunto de valores se utilizar por ejemplo: 2..7. a 7.5.1. T neles u

Los datos de entrada pasan a cada subdiagrama a travs de tneles. Estos datos se e u toman antes de la ejecucin del subdiagrama seleccionado. Los datos de salida del caso o seleccionado salen a travs de tneles una vez que se ha ejecutado. e u Los tneles de entrada no necesitan estar conectados dentro de cada subdiagrama u pero s los tneles de salida. u

7.6.

Funciones y constantes numricas e

Se incluyen constantes, denibles por el usuario, de tipo numrico y enumerado y e constantes predenidas en la subpaleta Additional Numeric Constant. 7.6.1. Polimorsmo de las funciones

La misma funcin numrica acta sobre distintos tipos, dimensiones o representacioo e u nes: Sobre nmeros escalares (enteros, de coma otante y complejos). u Arrays de tipo numrico. e Cluster de tipo numrico. e Cuando los datos de entrada son de distinto tipo, en general, el resultado tiene el tipo de mayor anchura.

11

7.7.

Funciones Booleanas

Operaciones lgicas sobre datos booleanos, entre otras (gura 11) estn las operacioo a nes de and, or, or exclusivo y negacin lgica. o o

Figura 11: Funciones booleanas.

7.8.

Funciones de cadenas de caracteres

Operaciones sobre cadenas de caracteres.

7.9.

Arrays en el diagrama de bloques

Los arrays se han denido como colecciones de datos ordenadas, todos del mismo tipo. Se pueden crear arrays directamente en el diagrama de bloques: Como un array constante. Mediante la funcin de inicializacin de array (Initialize Array)que permite inio o cializar un array con todos los elementos iguales al de entrada. Mediante la funcin Build Array. o Mediante un bucle for (o uno while) aprovechando las caracter sticas de autoindexado. Adems de las funciones numricas que, debido a las caracteristicas de polimorsmo, a e pueden operar sobre datos de tipo array, existen otras funciones espec cas que operan sobre todo el array. Por ejemplo: Array Size proporciona el nmero de elementos en cada dimensin de un array. u o Build Array concatena elementos o arrays para construir un array. Transpose 2D array permite pasar las a columnas transponiendo as un array bidimensional.

7.10.

Funciones sobre clusters

Los clusters son colecciones heterogneas de datos. Si todos los datos son del mismo e tipo se pueden utilizar las funciones lo mismo que con arrays. Adems existen funciones espec a cas: 12

Las funciones Bundle y Bundle By Name sirven para crear cluster a partir de sus componentes. Por el contrario las funciones Unbundle y Unbundle By Name proporcionan los componentes individuales de un cluster. Hay adems dos funciones que a permiten convertir entre array y cluster (para cluster con todos los elementos del mismo tipo). Tambin existe la posibilidad de crear un cluster constante insertando dentro del e marco las distintas constantes componentes del cluster, como en la gura 12

Figura 12: Cluster de constantes.

7.11.

Funciones de tiempo y dilogo a


y las de gestin o

Entre otras estn la funcin que produce un retraso de tiempo a o de error .

7.12.

Funciones de entrada y salida de cheros

Estas funciones permiten el manejo de cheros de texto y binarios para almacenar datos o su recuperacin, y para la comunicacin con otras aplicaciones. o o El acceso completo a un chero para su lectura o escritura requiere el uso de varias funciones. Una alternativa es el uso de SubVis proporcionados por LabViw para el acceso a cheros con un formato determinado. Por ejemplo, Read From Spreadsheet File y Write To Spreadsheet File permiten el acceso a cheros con formato legible fcila mente por Programas de Hojas de Clculo. Son chero de texto formados por columnas a separadas por tabulaciones (por defecto) y las separadas por nales de l nea.

Figura 13: Write To Spreadsheet File.

8.

SubVIs
La programacin modular en LabView se realiza mediante el uso de SubVIs. o

Un SubVI es un instrumento virtual con su propio panel frontal y su propio diagrama de bloques que est preparado para utilizarse dentro del diagrama de bloques de otro VI. a

13

Para poder usar un VI dentro de otro VI, es necesario denir las entradas y salidas del SubVI. Las entradas sern controles y las salidas indicadores. Entradas y salidas se a deben asignar a terminales del conector del icono (ver gura 14. Nota: Los controles o indicadores que no se asignen no sern entradas o salidas del a SubVI.

Figura 14: Asignacin de controles e indicadores al conector. o El icono se puede disear para que sea ms fcil su identicacin en el diagrama de n a a o bloques del VI donde se inserte el SubVI. Se utiliza el editor de iconos pinchando dos veces desde el panel frontal. Este editor dispone de algunas de las herramientas t picas de los programas de diseo grco. n a Nota: Conviene conservar el borde exterior del icono para ver ms fcilmente su a a delimitacin cuando se utilice en el diagrama de bloques. o Nota: para cambiar las propiedades de la letra se hace doble clic en el icono A de la paleta de herramientas tal como se indica en la gura 15.

Figura 15: Paleta de herramientas del Editor de Iconos. Un subVI se utiliza como un nodo ms dentro de un diagrama de bloques. Se inserta a desde la paleta de funciones seleccionndolo mediante el dilogo de chero que se abre. a a Para guiarse en el cableado es conveniente abrir la ayuda (Show Help del men Help). u

14