Está en la página 1de 83

Curso Basico de LabVIEW

CAPITULO 1 INTRODUCCION

Hoy en da es mas frecuente ver en la industria la utilizacin del PC para la instrumentacin y el control de procesos, ya sea para monitorear variables en el proceso de fabricacin o bien para medir la calidad del producto final. Sobre este contexto se ubica la instrumentacin virtual, es decir la idea de bajo un modulo de software simular tanto en apariencia como en funcionamiento a un instrumento real tal como un osciloscopio o multimetro.

Un instrumento virtual es un modulo de software que simula el panel frontal de instrumento comn y, apoyndose en elementos de hardware accesibles por el PC (tarjetas de adquisicin, tarjetas DSP, instrumentos accesibles va GPIB, VXI, RS-232), realiza una serie de medidas como si se tratase de un instrumento real. Hasta hace poco, la tarea de construccin de un instrumento virtual (en lo sucesivo VI) se llevaba a cabo con paquetes de software que ofrecan una serie de facilidades , como funciones de alto nivel y la incorporacin de elementos grficos, que simplificaban la tarea de programacion y de elaboracin del panel frontal. Sin embargo, el cuerpo del programa segua basado en texto, lo que supona mucho tiempo invertido en detalles de programacion que nada tienen que ver con la finalidad del VI. Con la llegada
4

Curso Basico de LabVIEW

de software de programacion grfica LabVIEW de National Instrument, Visual Designer de Burr Brown o VEE de Hewlet Packard, el proceso de creacin de un VI se ha simplificado notablemente, minimizndose el tiempo de desarrollo de las aplicaciones.

Este curso pretende mostrar las capacidades bsicas de LabVIEW mediante el desarrollo de ejercicios sencillos pero que a la vez formulen el inters de el participante en generar sistemas mas complicados. Debido a que el objetivo del curso es sentar las bases slidas del el entorno de programacion LabVIEW (lenguaje G) existirn algunos temas y detalles que no sern cubiertas en este primer curso.

BIBLIOGRAFIA Puede extenderse la informacin mediante la consulta bibliogrfica de los siguientes libros: - LabVIEW. Programacion grfica para el control de instrumentacin. Antonio Manuel Lzaro. Paraninfo. - LabVIEW. Manual de Programacion y referencia. Nacional Instrument. Manuales del Fabricante.

Curso Basico de LabVIEW

WEB Puede accesarse a la pagina de Internet de National Instrument, donde adems de estar todos los manuales en formato PDF existe dialogo con otros usuarios as como noticias de nuevas funciones y tcnicas de optimizacin, as como un excelente servicio de preguntas y respuestas.

http://www.ni.com

Curso Basico de LabVIEW

C A P I T U L O

D I S E O D E U N A A P L I C A C I O N.

2.1 USO DE LabVIEW En este apartado se discuten los aspectos necesarios para familiarizarse con el uso del LabVIEW, incluyendo las ventanas panel y diagram, mens de LabVIEW y la ventana de jerarqua. Asimismo se discuten otros aspectos necesarios como el uso de los modos edit y run; creacin de objetos; herramientas y obtencin de ayuda.

2.1.1 Ventanas Panel y Diagram Cada VI tiene dos ventanas separadas, pero relacionadas entre si. La ventana Panel contiene el panel frontal de nuestro VI. La ventana Diagram es aquella en la cual se construye el diagrama de bloques. Se puede conmutar entre ambas pantallas con el comando Show Panel/Show Diagram (Mostrar Panel/Mostrar Diagrama) del men Windows (Ventanas). Usando los comandos Tile ( literalmente baldosas; podemos traducir por parcelas), dentro de ese mismo men, podemos posicionar las ventanas Panel y Diagram una al lado de la otra o una encima de la otra.

2.1.2 Mens de LabVIEW La programacion en LabVIEW obliga a utilizar con frecuencia los diferentes mens. La barra de mens de la parte superior de la ventana de un VI contiene diversos mens pull-down (desplegables). Cuando hacemos clic sobre un item o elemento de esta barra, aparece un men por debajo de ella. Dicho men contiene elementos comunes a otras aplicaciones Windows, como open (Abrir), Save (Guardar) y Paste (pegar), y muchas otras particulares de LabVIEW. La siguiente figura muestra la barra de mens para la versin 3.1 cuando la ventana panel esta activa. El men Functions reemplaza al controls cuando la ventana Diagram esta abierta.

Curso Basico de LabVIEW

File (Archivo) Edit (Edicion) Operate (Funcion)

Sus opciones se usan bsicamente para abrir, cerrar, guardar e im primir Vls. Se usa principalmente para organizar el panel frontal y el diagra ma. De bloques y establecer nuestras preferencias. Sus comandos sirven para ejecutar el VI.

Controls Con este menu, podemos aadir controles e indicadores al panel (controles) frontal. Cada opcion dentro de este menu visualizar una paleta con los controles e indicadores para esa opcion. El menu Controls solo esta disponible cuando la ventana panel esta activa. Functions Construimos el diagrama de bloques con este menu. Cada opcion (Funciones) vizualiza una paleta con sus iconos disponibles. El menu Functions solo esta disponible cuando la ventana Diagram esta Activa. Windows Se usa para situar rapidamente las ventanas abiertas y para abrir (Ventanas) ventanas de los diferentes subVls. Text (Texto) Help (Ayuda) Se utiliza para cambiar la fuente, estilo y color del texto.

Presenta ayuda sobre los diferentes iconos y otros aspectos de LabVIEW.

Curso Basico de LabVIEW

En el caso de la versin 4.0, este men ha quedado de la siguiente manera:

Exactamente igual que las ventanas Panel y Diagram. Las funciones de estos comandos respecto a la versin 3.1 son:

File (Archivo) Edit (Edicion) Operate (Funcion)

Misma funcion.

Misma funcion.

Presenta nuevas opciones como pueden ser la impresin cuando acaba la ejecucion.

Project Presenta los niveles de jerarquia, los subVls que lo integran, los (Proyecto) que estan sin abrir, busca Vls, etc. Windows Se utiliza basicamente para mostrar (Show) ventanas, como (ventanas) pueden ser las de informacion, historial, controles/funciones, heramientas, portapapeles, ete. Help (Ayuda) Misma funcion.

El men de LabVIEW que utilizaremos con mas frecuencia es el men pop-up (emergente) de objetos, al cual accedemos situando el cursor sobre el objeto en cuestin y pulsando el botn derecho del ratn. Si la pulsacin se hace sobre un espacio vaco, el men que se obtendr vendr en funcin de la herramienta seleccionada.

Curso Basico de LabVIEW

2.1.3 Ventana de Jerarqua Si se selecciona Show VI Hierarchy ( Mostrar Jerarqua del VI) desde el Men Windows ( men project en la versin 4.0) aparecer una ventana que muestra los Vls y subVls que hay actualmente en memoria. Los Vls principales se muestran en la parte superior de la ventana. Los subVls se muestran con su icono correspondiente por debajo de su VI, con una lnea que los conecta, como indica la figura 2.1.

Si la ventana Help esta activa y movemos el cursor sobre un icono, en dicha ventana aparecer la informacin disponible para ese VI. Se puede hacer doble-clic cualquier icono de la ventana Hierarchy para abrir el VI asociado. La versin 4.0 mejora esta ventana, permitindonos hacer una presentacin vertical u horizontal. NOTA: Esta opcin no esta disponible en la versin de estudiante.

2.1.4 Uso de los modos EDIT (Edicin) y RUN (ejecucin) Podemos crear o cambiar un VI cuando este esta en el modo Edit en el, las herramientas de edicin se habitan, en la pelea del modo Edit, por debajo de la barra del men de ventana, como se indica a continuacin:

10

Curso Basico de LabVIEW

Ver Herramientas en LabVIEW para mas informacin. Cuando estamos listos para probar nuestro VI, hacemos clic sobre botn de modo o seleccionamos Change to Run Mode ( Cambio al modo de ejecucin) desde el men Operate. Haciendo esto complicamos el VI y lo ponemos en el modo Run. En este punto podemos disponer de las opciones de depuracin ejecucin del VI, diferentes modos de ejecucin, impresin de datos, etc. Si lo que queremos es ejecutar el VI desde el modo Edit sin pasar el modo Run, hemos de hacer clic sobre la flecha de ejecucin. Si fuese necesario, LabVIEW compilara primero el VI, despues conmuta al modo Run, ejecuta el VI y vuelve al modo Edit una vez que el VI se ha ejecutado. Este uno de los puntos que ha sufrido una mayor modificacin en la versin 4.0. Los iconos correspondientes a estos modos se indican a continuacin.

Se puede observar que es aqu donde aparece el tratamiento de los diferentes tipos de letras en la versin 3.1 lo hacamos con Text y la alineacin y distribucin de objetos. As mismo vemos que no aparece ninguna herramienta. En la nueva versin se han independizado pasando a tener una ventana propia, a la cual accedemos con Show Tools Palette ( Mostrar paleta de herramientas) del men Windows. Otro aspecto a destacar es el botn Pause ( Pausa).. Al hacer clic en el se para la ejecucin del VI y vamos al diagrama de bloques, parpadeando la siguiente secuencia que se ejecutara.

2.1.5 Creacin de objetos Para elaborar el panel frontal hacemos de situar sobre el los objetos deseados mediante su seleccin desde el men Controls. Creamos
11

Curso Basico de LabVIEW

objetos sobre el diagrama de bloques seleccionndolos desde el men Functions. Por ejemplo, si queremos crear un Knob o botn rotatorio sobre el panel frontal, primero hemos de seleccionarlo desde la paleta Numeric (Numrico) del men Controls, como se indica en la siguiente figura 2.2.

El objeto aparecer en la ventana panel con un rectngulo negro o gris que representa una etiqueta de identificacin o Label. Si queremos usarla en ese mismo momento, introduciremos el texto desde el teclado. Despues de haberlo hecho, cualquiera de las siguientes acciones completa la entrada:

Pulsar < Shift + Enter > Pulsar < Enter> del teclado numrico. Clic sobre el botn Enter en la paleta de herramientas. Clic fuera de la etiqueta.

12

Curso Basico de LabVIEW

La figura 2.3 muestra un ejemplo del resultado de esta accin:

Cuando creamos un objeto sobre el panel frontal, al mismo tiempo se crea el terminar correspondiente sobre el diagrama de bloques. Este terminal se usa tanto para leer desde un control como para enviarlos a un indicador. Si se selecciona Show Diagram (Mostrar Diagrama) desde el men Windows, podremos ver el diagrama correspondiente al panel frontal. Este diagrama contendr terminales para todos los controles e indicadores del panel frontal.

Todos los objetos en LabVIEW tiene asociados mens Pop-up, los cuales podemos obtener pulsando el botn derecho del ratn sobre dicho objeto. Mediante la seleccin de sus diferentes opciones podremos actuar sobre determinados parmetros, como el aspecto o comportamiento de ese objeto. Por ejemplo, si no hubiramos introducido texto en la etiqueta del control anterior, esta habra desaparecido al hacer clic en cualquier otro lado. Para volver a visualizarla tendramos que obtener el men Pop-up de ese control y seleccionar Label del menu Show (figura 2.4).

13

Curso Basico de LabVIEW

En la versin 4.0 el proceso en si es el mismo. La nica diferencia es que no tenemos los mens Controls y Functions en la barra superior, sino que son ventanas flotantes que podemos tener visibles o no. Si no lo estn, utilizaremos la opcin Show Controls Palette (Mostrar paleta de controles) o Show Functions Palette ( Mostrar paleta de funciones) del men Windows. Una vez visibles actuaremos tal y como se ha indicado para la versin 3.1. Otra opcin es hacer clic con el botn derecho del ratn en cualquier rea libre de la pantalla: Aparecer el men Controls o Functions segn estemos en la ventana Panel o Diagram, respectivamente.

2.2

HERAMIENTAS DE LabVIEW

Una herramienta es un modo de funcionamiento especial del ratn. Las Usamos para llevar a cabo funciones especificas de edicin o ejecucin. La herramienta Operating (Funcionamiento mano) maneja los controles del panel frontal (y los indicadores en el modo Edit). Es la nica herramienta disponible en el modo Run. - La herramienta Positioning (Situacin cursor) selecciona, mueve y redimensiona objetos. - La herramienta Labeling (Etiquetado letra) crea y edita textos.
14

Curso Basico de LabVIEW

- La herramienta Wiring (Cableado rollo de cable) enlaza objetos del diagrama de bloques y asigna a los terminales del conector del VI los controles e indicadores del panel frontal.

- La herramienta Coloring (coloracin pincel) colorea diversos objetos y los fondos. Se puede cambiar de herramienta haciendo lo siguiente: - Clic sobre el icono de la herramienta que queremos. - Usando la tecla TAB para seleccionar la siguiente herramienta. - Pulsando la tecla SPACE para cambiar entre la herramienta Operating y positioning cuando la ventana Panel esta activa, y entre las herramientas Wiring y positioning cuando la ventana Diagram es la activa. La versin 4.0 implementa nuevas herramientas y cambia el nombre de las ya existentes: - Operate Value (valor operativo mano con dedo) Misma funcin que Operating. - Position/Size/Select (Situacin / Tamao / Seleccin cursor). Realiza la misma funcin que Positioning. - Edit Text (Edicin de Texto letra). Misma funcin que Labeling. - Connect wire (Conexin de cables rollo de cable). Misma funcin que wiring. - Object Popup (Men pop-up del objeto cursor con caja) Funcin nueva. Despliega el men pop-up asociado al objeto. Tiene el mismo efecto que si pulsamos el botn derecho del ratn sobre el objeto. - Scroll Window (Desplazamiento de la pantalla mano sin dedo). Funcin nueva. Desplaza la pantalla en la direccin que deseamos para ver posibles zonas ocultas. - Set/Clear Breakpoint (Establecer/Quitar puntos de ruptura Stop). Funcin nueva. Permite poner tantos puntos de ruptura como deseemos a lo largo del diagrama de bloques. Cuando durante la ejecucin se llega a uno de ellos, LabVIEW conmuta automticamente al diagrama de bloques. Usamos esta misma herramienta para quitar los puntos. - Pobre Data (Sonda de datos circulo con una P). Funciona como la opcin Pobre de la versin 3.1 (ver apartado 3.3.3 Uso del probe).

15

Curso Basico de LabVIEW

- Get color (Capturar color especie de probeta). Funcin nueva. Permite saber de manera especifica que color tiene un objeto. texto u otros elementos. - Set Color (Colorear pincel). Misma funcin que Coloring.

2.3

AYUDA Y VENTANA DE AYUDA

La ventana Help de LabVIEW ofrece informacin sobre funciones, Constantes, subVls, controles e indicadores. Para visualizarla, escoger Show Help del men Help. Podemos situar la ventana Help en cualquier punto de la pantalla. NOTA: La descripcin de cualquier VI situado en la ventana Help esta limitada a 256 caracteres. Cuando pasamos el cursor sobre una funcin, un VI o subVI (Incluyendo el icono del VI abierto, situado en la parte derecha superior de la ventana del VI), la ventana Help muestra su icono con los cables del tipo de datos apropiado para cada terminal. Las variables de entrada quedan a la izquierda y las de salidas a la derecha. Los nombres de los terminales aparecen junto a cada cable. Si el VI tiene asociada una descripcin, esta se visualizara. Estas descripciones se introducen mediante el dialogo Get Info (Obtener Informacin) del VI. Los nombres de los terminales son las etiquetas o Labels de los correspondientes controles e indicadores del panel frontal. Cuando pasamos el cursor sobre una constante universal, la ventana Help visualiza su valor. Cuando se pasa sobre un control o indicador, se visualiza la descripcin para ese control o indicador en concreto, si existe la informacin. Al poner la herramienta Wiring sobre un cable, la ventana Help visualiza el tipo de dato transportado por ese cable. Asimismo, cuando se mueve la herramienta Wiring sobre el icono del VI, el terminal correspondiente al conector se ilumina en la ventana Help. Tambin podemos usar el comando Lock Help (Bloquear Ayuda) del men Help para mantener una ayuda particular en pantalla, de manera que el

16

Curso Basico de LabVIEW

hecho de mover las diferentes herramientas sobre el diagrama no cambia la visualizacin de la ventana Help. Como era de esperar, tambin la ayuda en la versin 4.0 ha quedado mejorada. Uno de los aspectos mas significativos se aprecia cuando trabajamos con la herramienta Connect Wire. Al situarla sobre una funcin, de su icono sale un pequeo trozo de cada teminal, y no solo esto, sino que queda reflejado en una etiqueta el nombre del terminal al que vamos a realizar la conexin. Todo esto asegura una unin prcticamente sin posibilidad de errores. Un ejemplo puede verse en la siguiente figura:

Otra opcin nueva es la que permite tener una ayuda detallada (Detailed Diagram Help) o sencilla ( Simple Diagram Help).

2.4

EJERCICIOS PRACTICOS

1.- Poner las ventanas Panel y Diagram una al lado de la otra primero, y despues una encima de la otra. La solucin es: Para el primer caso: -Clic en el men Windows. -Tile left and Right.
17

Curso Basico de LabVIEW

Para el segundo caso: -Men Windows. -Tile Up and Down. 2.-Abrir el VI pulse Demo (NO GRABAR en ningn caso) La solucin es: -Men File -Open... -Dos clics en LVSE. -Dos clics en EXAMPLES. -Dos clics en ANALYSIS.LLB -Dos clics en Pulse Demo. No cerrado. 3.- Ver la ayuda del SubVI Recelver. La solucin es: Menu Help. Show Help. Ir al diagrama de bloques (Ctri+F o menu Windows+Show Diagram) Situar el cursor sobre el icono Recelver.

4.- Realizar las siguientes modificaciones en el VI Pulse Demo (NO GRABAR).

Cambiar filter order por Orden del Filtro. Cambiar samples por muestras. Hacer mas grande la grafica. Poner additive nolse en 0,55. Cambiar el color del fondo a rojo.

La solucion es: - Para los dos primeros puntos, seleccionar la herramienta etiqueta. Marcar el texto a cambiar y escribir el nuevo. Hacer clic con el botn derecho en cualquier punto de la pantalla.
18

Curso Basico de LabVIEW

- Para el tercer punto seleccionar la herramienta cursor. Situarse en la esquina superior o inferior derecha. Hacer clic y arrastrar el mouse hasta conseguir el tamao deseado. - Para el cuarto punto seleccionar la herramienta operacin (mano). Situarla sobre la raya amarilla del control y hacer clic. Nos desplazaremos hacia la derecha hasta que en el indicador aparezca 0,55. - Para el quinto punto seleccionar la herramienta color (pincel). Hacer clic con el botn derecho en cualquier punto libre de la pantalla. Aparece la paleta con todos los colores. La pantalla cambia al color sobre el que situamos el cursor. Seleccionar el rojo que mas nos guste y soltar el botn derecho. 5. Ejecutar el VI Pulse Demo, primero desde el modo Edit; despues desde el modo Run y, finalmente, en el modo de ejecucin continua. La solucin es: - Desde el modo Edit - Clic en la flecha. En la grfica obtendremos un pulso con ruido aadido. Desde el modo Run - Clic en lapiz con flecha. - Clic en flecha. Modo de ejecucin continua. - Pasar al modo Run - Clic en flechas en rotacion - Cambiar los valores de los diferentes controles y observar como va variando el resultado obtenido en la grfica. - Para parar hacer clic en stop o flechas en rotacion.

19

Curso Basico de LabVIEW

6. Salir del VI Pulse Demo sin grabar las modificaciones en disco. La solucin es: - Menu File - Close - Ante la pregunta de su queremos guardar los cambios responder No.

7.-Hacer el panel Frontal de la figura 2.6 y grabarlo en disco como C:7LVSE/EJEM1.VI.

La solucin es: - Para A y B: Herramienta cursor. Clic con el botn derecho en zona libre o menu controls. Tomamos de la opcin Numeric el elemento Digital Control. Cuando el control este sobre el panel, y antes de hacer nada mas. Escribir A (o B). Hacer clic en cualquier punto del panel. - Para A+B, A-B, A/B: Una vez en Numeric, Coger Digital Indicator y escribir las etiquetas. - Para A=B, A>B, A<B y B=0. Clic con el botn derecho en zona libre. De la opcin Boolean tomamos Round Led y escribimos las etiquetas. Si alguna etiqueta no estuviese visible, nos situaramos sobre el control o indicador en cuestin y desplegaramos su men Pop-Up. Se toma la opcin Show, y dentro de esta. label. Si el problema fuese una etiqueta escrita incorrectamente, seleccionaramos la herramienta etiqueta, marcaramos la etiqueta errnea y escribiramos el texto correcto. Finalmente, para grabarlo de disco: Menu File. Save. Escribir C:/LVSE/EJEM1.VI Pulsar Enter.

20

Curso Basico de LabVIEW

C A P I T U L O

CREACION DE UN INSTRUMENTO VIRTUAL.

3.1 TIPOS DE DATOS EN LABVIEW. CONTROLES E INDICADORES

LabVIEW ofrece una gran variedad de tipos de datos con los que podemos trabajar respondiendo a las necesidades reales con las que nos encontraremos. Uno de los aspectos mas significativos de LabVIEW es la diferenciacin que efecta en el diagrama de bloques entre los diferentes tipos de controles o indicadores, basada en que cada uno de ellos tiene un color propio. De esta manera, y como consecuencia de una memorizacin o asimilacin practica, nos ser muy facil identificarlos y reconocer inmediatamente si estamos trabajando con el tipo de datos adecuado. Distinguimos los siguientes tipos, los cuales pueden funcionar tanto como controles como indicadores (entre parntesis queda reflejado el color con el que queda representado en el diagrama de bloques): - Boolean (Verde claro) Los tipos de datos booleanos son enteros de 16 bits. E bit mas significativo contiene el valor Booleano. Si el bit 15 se pone al 1, entonces el valor del control o indicador es true (Verdadero) por el contrario, si este bit 15 vale 0, el valor de la variable booleana ser false ( falso). - Numricos: Hay diferentes tipos - Extended ( Naranja) Segn el modelo de ordenador que estemos utilizando los nmeros de coma flotante con precisin extendida presentan el siguiente formato:

Macintosh: 96 bits (formato precisin extendida MC68881- MC68882) Windows: 80 bits (formato precisin extendida 80287) Sun: Formato 128 Bits HP-UX: Son almacenados como los nmeros en coma flotante de doble
21

Curso Basico de LabVIEW

Precisin.

Windows:

- Double (naranja) Los nmeros en coma flotante de doble precisin cumplen con el formato de doble precisin IEEE de 64 bits. Es el valor por defecto de LabVIEW.

- Single ( naranja) Los nmeros en coma flotante de precisin simple cumplen con el formato de precisin simple IEEE de 32 bits.

- Long integer (azul) Los nmeros enteros largos tienen un formato de 32 bits, con o sin signo. - Word integer (azul) Tiene un formato de 16 bits, con o sin signo. - Byte Integer (azul) Tienen un formato de 8 bits, con o sin signo. - Unsigned Long (azul) - Unsigned Word (azul) - Unsigned Byte (azul) - Complex Extended (naranja) - Complex Double (naranja) - Complex Single (naranja) Entero largo sin signo Palabra sin signo Byte sin signo. Numero complejo con precisin extendida Complejo con precisin doble. Complejo con precisin simple.
22

Curso Basico de LabVIEW

- Arrays (depende del tipo de datos que contenga)

LabVIEW almacena el tamao de cada dimensin de un array como long Integer seguido por el dato. El ejemplo que sigue muestra un array unidimensional con nmeros en coma flotante de precisin simple. Los nmeros decimales a la izquierda presentan el desplazamiento donde empieza cada array en la posicin de memoria.

Los arrays booleanos se almacenan de manera diferente a los booleanos escalares. Estos arrays se almacenan como bits empaquetados. El tamao de la dimensin viene dando en bits en lugar de bytes. El bit 0 se guarda en la posicin mas alta de memoria (215), y el bit 15 en la posicin mas baja (20).

- Strings (rosa)

LabVIEW almacena los strings como si fuera un array uni-dimensional de bytes enteros (caracteres de 8 bits).

- Handles Un handle es un puntero que apunta a un bloque de memoria relocalizable. Un handle solo apunta a datos definidos por el usuario. LabVIEW no reconoce que es lo que hay en ese bloque de memoria. Es especialmente util para pasar un bloque de datos por referencia entre nodos de interface de cdigo ( code interface Nodes o CINs). - Paths (verde oscuro) LabVIEW almacena las componentes tipo y numero de un path en palabras enteras, seguidas inmediatamente por las componentes del path. El tipo de path es 0 para un path absoluto y 1 para un path relativo. Cualquier otro valor indicaria que el path no es valido. Cada componente del path es una cadena pascal (P-string), en la cual el primer byte es la longitud de la Pstring (sin incluir el byte de longitud).
23

Curso Basico de LabVIEW

- Clusters (marrn o rosa) Un clusters almacena diferentes tipos de datos de acuerdo a las siguientes normas: Los datos escalares se almacenan directamente en el clusten los arrays, strings, handles y paths se almacenan indirectamente. El cluster almacena un handle que apunta al rea de memoria en la que LabVIEW ha almacenado realmente los datos. Respecto a la versin 4.0 no hay diferencias significativas.

3.2 INTERCONEXION DE BLOQUES Para conectar los terminales se usa la herramienta Wiring (cableado). La figura siguiente muestra dicha herramienta, indicando su punta cursor o hot spot.

Para una mejor explicacin, diremos que este smbolo (1) representa el ratn. En las prximas ilustraciones la flecha al final muestra donde hacer clic mientras que el numero impreso indica cuantas veces hacer clic.

Para unir un terminal a otro hacemos clic con la herramienta Wiring en el primer terminal, desplazaremos la herramienta hasta el segundo terminal y entonces haremos clic sobre ella, tal y como se indica en la figura inferior. Es indiferente el terminal por el que se empiece. El rea del terminal parpadea
24

Curso Basico de LabVIEW

cuando el hot spot se sita correctamente sobre el. Haciendo clic conectamos un cable a esa terminal. Una vez hemos hecho esa primera conexin LabVIEW va dibujando un cable a medida que nos movemos por el diagrama sin necesidad de mantener pulsando el botn del ratn.

Para unirnos a un cable ya existente, realizar la operacin que acabamos de describir, empezando o acabando en el cable existente. Dicho cable parpadea cuando la herramienta Wiring se coloca correctamente. Podemos unir correctamente un terminal fuera de una estructura con otro dentro de esa estructura usando las tcnicas descritas anteriormente. LabVIEW crea un tnel en el limite de la estructura, all donde el cable lo cruza, como se muestra en la siguiente figura ( rectngulo negro de 2):

25

Curso Basico de LabVIEW

Los cables pueden ir horizontal o verticalmente, dependiendo de la direccin en que movemos inicialmente la herramienta Wiring. LabVIEW centra las conexiones sobre las terminales, sin tener en cuenta la posicin exacta del hot spot cuando hacemos clic, como se muestra en la siguiente ilustracin.

Podemos desplazar el cable sin tener que hacer clic. Hacemos clic cuando queramos detener el avance y/o cambiar la direccin de desplazamiento, como se muestra en la siguiente ilustracin.

Tambin podemos cambiar la direccin en aquellos puntos en los que el cable ha de girar pulsando la barra de espacio. Podemos hacer doble clic con la herramienta Wiring para empezar o acabar un cable de conexin en una zona abierta, tal y como se indica a continuacin.

26

Curso Basico de LabVIEW

Cuando los cables se cruzan aparece un pequeo corte en el primer cable que se habia dibujado. Como si el segundo cable pasase por debajo, como se indica a continuacin.

En la versin 4.0 el procedimiento es idntico ( la herramienta Wiring correspondiente a la Connect Wire).

3.3 DEPURACION DE ERRORES

3.3.1 Ejecucin paso a paso. Flujo de datos Para la depuracin de nuestro VI nos interesara realizar la ejecucin de su diagrama de bloques nodo a nodo o paso a paso (single-step mode). Para habitarlo haremos clic en el botn step (of raya) (on pulsante). El smbolo cambia de la lnea plana a la forma de onda cuadrada. Pulsando de nuevo sobre dicho botn en cualquier momento volveremos al modo de ejecucin normal. Cuando el VI esta funcionando en el modo de ejecucin paso a paso aparece el siguiente botn: pulso. Haremos clic sobre el cada vez que queramos que se ejecute un nodo. Una vez finalizada la ejecucin del VI dicho botn desaparece. Si regresamos al modo de ejecucin normal antes que finalice el VI su ejecucin, estando en el modo de paso a paso, el botn desaparece y el VI se ejecuta a velocidad normal. El botn paso a paso solo afecta a la ejecucin de los VI o Sub Vls que estn en el modo de ejecucin single-step. Si un VI en single-step tiene un
27

Curso Basico de LabVIEW

SubVI que tambin esta en ese modo y otro SubVI que esta en el modo de ejecucin normal; el primero se tendr que ejecutar nodo a nodo, mientras que el segundo se ejecutara a velocidad normal. Asimismo, para la depuracin de nuestro VI, nos interesara ver la ejecucin paso a paso de su diagrama de bloques, Para habilitar este modo hacer clic sobre el botn execution highlighting (ejecucin resaltada) foco apagado, que cambia a foco prendido. Hacer clic sobre este botn en cualquier momento para volver al modo de visualizacin normal. Normalmente usaremos el modo de execution highlighting junto con el de ejecucin paso a paso (single-step mode) para poder conservar como se realiza el flujo de datos a travs de los nodos. Este modo de ejecucin reduce mucho las prestaciones de VI. A medida que los datos pasan de un nodo a otro su movimiento se indica por unas burbujas que van recorriendo los cables. Adems, en el modo paso a paso, el siguiente nodo parpadea rpidamente. Todo ello se muestra en la figura 3.2. Podemos compilar el VI sin las opciones de los modos single-step y execution highlighting. Esto reduce los requisitos de memoria y aumenta en 1% aproximadamente el rendimiento de cada VI compilado de esta manera. Para ello usamos la opcin VI setup...(configuracin del VI) del men pop-up del icono del VI en la ventana panel y seleccionamos la opcin que permite ocultar estos botones. La versin 4.0 presenta una serie de cambios que vamos a tratar de explicar poco a poco. Para ello representamos los iconos que aparecen en la barra de mens de la ventana Diagram antes de comenzar al ejecucin.

Como ya sabemos, si queremos hacer la ejecucin normal haremos clic sobre el botn flecha; si lo que queremos es una ejecucin continua, el clic se hara sobre flechas en rotacion para detener completamente la ejecucin y volver al modo edit pulsaramos stop (icono que sustituye a cuando estamos en el modo run).

28

Curso Basico de LabVIEW

Por otro lado, si lo que buscamos es realizar una pausa momentnea ( tan larga como queramos), pulsaremos pausa. Al hacerlo, LabVIEW conmuta al diagrama de bloques (si no estabamos en el), y resalta, parpadeando, la siguiente funcin a ejecutarse. Pulsando sobre el mismo botn, que ahora pasa a llamarse Continue o continuacin y tiene el siguiente aspecto desabilitado, volvemos al modo de ejecucin que tenamos establecido. Podemos observar que el botn de execution highlighting es el mismo que en la versin 3.1, foco apagado y, as mismo su funcin es exactamente la misma. La mayor diferencia entre ambas versiones se da en la ejecucin paso a paso. Si bien en la versin 3.1 tenamos un nico modo, llamando genricamente Single-step, ahora, en la 4.0 tenemos de forma global dos modos distintos. Estos dos modos quedan diferenciados con los iconos flecha que entra y flecha que salta. Si observamos cuidadosamente sus dibujos quiz podamos deducir en que consiste la diferencia. En traflecha que en tenemos una flecha que entra en un objeto, mientras que en flecha que salta se lo salta. As pues, supongamos que tenemos el siguiente diagrama de bloques:

29

Curso Basico de LabVIEW

Gracias al modo de funcionamiento que permite el icono flecha que salta, podemos ir ejecutando paso a paso todo el diagrama menos, por ejemplo, la funcin Case, que se ejecutara a velocidad normal. En caso de que no haya ningn nodo en el que podamos meternos, flecha que entra tanto como flecha que sale realizar la misma funcin:

30

Curso Basico de LabVIEW

En al figura 3.3 podemos observar la diferencia de la que hemos estado hablando. Flecha que entra Indica Step into For Loop (paso al interior del For Loop), mientras que flecha que salta indica Step over For Loop (paso sobre el For Loop).

La figura 3.4 muestra el efecto de pulsar flecha que entra. Si hubisemos pulsado flecha que sale sencillamente habramos saltado todo este bloque.

31

Curso Basico de LabVIEW

Finalmente. El botn flecha que sale detiene la ejecucin paso a paso, es decir, nos devuelve a un modo de ejecucin normal, continuo y/o highlighting.

3.3.2 Vls rotos

Un VI no se pude compilar o ejecutar si esta roto. Los Vis normalmente estn rotos mientras los estamos construyendo hasta que unimos todos los iconos del diagrama de bloques. Si una vez hecho esto continuase roto, lo primero que haramos seria ejecutar la opcin Remove Bad Wires (Quitar cables sueltos) del men edit o Ctrl+B. A menudo esto consigue arreglar el VI. Para averiguar las razones por las que un VI permanece roto haremos clic sobre el botn broken run (ejecucin rota) flecha rota (en la versin 4.0 recibe el nombre de List Errors o Lista de Errores). Aparecer una ventana llamada Error List (Lista de Errores)donde se indican todos los errores ( figura 3.5).

32

Curso Basico de LabVIEW

Igualmente podemos acceder a esta ventana haciendo clic sobre el botn Warning(aviso) del VI o seleccionando Show Error List (Mostrar lista de errores) del men Windows. El botn Warning solo esta visible cuando el VI tiene errores y se dan las siguientes situaciones: Configuracin de LabVIEW para que muestre las advertencias (opcin Show Warnings (Mostrar Avisos) en el dialogo preferences (preferencias)) y activacin de la opcin Show Warnings en la ventana del dialogo Error List. Para localizar un error particular hacer doble clic sobre el texto que lo describe. LabVIEW nos ensea el error mostrando la ventana en cuestin e iluminando el objeto causante del error. Tambin podemos ver los errores y avisos de otros Vis seleccionando sus nombres desde el men pop-up Vis List (Lista de VI) A continuacin se indican algunas de las razones mas comunes por las que un VI puede aparecer roto durante el modo de edicin: - Se ha dejado sin conectar el terminal de una funcin que necesita una entrada. Por ejemplo, debemos conectar todas las entradas de una funcin aritmtica. No podemos dejar funciones sin conectar en el diagrama de bloques mientras hacemos pruebas de nuestro diseo. - El diagrama de bloques contiene un cable roto debido a una incompatibilidad de tipos de datos, perdidas o conexiones sin fin. Debemos eliminar todos estos cables. La forma mas rpida y precisa es mediante el comando Remove Bad Wires (Ctrl+B) del men Edit. - Un subVI esta roto o hemos editado su conector despues de que hayamos situado su icono sobre el diagrama de bloques. - Podemos tener problemas con objetos que hayamos hecho invisibles, deshabilitados o alterados de alguna manera a travs de su Attribute Node (nodos de atributos). Si fuese posible hemos de restablecer el objeto para eliminar el problema.

Otro tipo de error son los errores de rango. Su indicador flecha rota aparece en lugar del botn de ejecucin en los siguientes casos:
33

Curso Basico de LabVIEW

- Configuramos un control en un SubVI para que la ejecucin cuando reciba un valor fuera de rango ( a travs de la opcin Data Range... ( rango de los datos) del control) y el control recibe este valor. - Configuramos un indicador de un SubVI para que pare la ejecucin cuando Intente pasar un valor fuera del rango al VI que lo llama, y el indicador intenta pasar ese valor. - Un operador entra un valor fuera de rango en un control que hemos configurado para que pare la ejecucin si se produce un error, siempre que el VI no este en ese momento ejecutndose. Podemos saber que control o indicador esta fuera de rango por su cambio de apariencia, como se muestra en la figura 3.6. Hay dos mnemnicos que pueden aparecer en la visualizacin de un numero en coma flotante para indicar un fallo en los clculos o resultados sin sentido. NaN (Not A Number, no un numero) es un simbolo que aparece como resultado de determinadas operaciones como, por ejemplo, la raz cuadrada de un numero negativo. Inf (infinito) es otro smbolo especial que aparece, por ejemplo, al dividir por cero. Los datos indefinidos pueden desvirtuar todas las operaciones posteriores. Las operaciones en coma flotante propagan los NaN o +-, los cuales, al ser pasados de forma explcita o implcita en enteros booleanos, se transforman en valores sin sentido. Por ejemplo, dividir por cero devuelve inf, pero convirtiendo este valor a una palabra entera obtenemos el valor 32.767, el cual puede parecer un valor normal. Por ello, antes de hacer la conversion a los tipos enteros, hemos de comprobar los valores en forma flotante intermedios para validar los resultados, a menos que estemos seguros que este tipo de error no ocurren en nuestro VI. A continuacin se presentan algunas tcnicas para la depuracin de un VI que ya funciona pero que no da resultados esperados. - Comprobar que los cables estn conectados a los terminales correctos. Haciendo triple-clic sobre el cable que nos preocupa con la herramienta Positioning, se ilumina todo el cable. Un cable que parece que sale de un terminal puede realmente salir de otro totalmente diferente.

34

Curso Basico de LabVIEW

- Esto ha quedado prcticamente solucionado con la versin 4.0, ya que antes de hacer la conexin una etiqueta flotante nos indica el nombre del terminal que vamos a conectar. - Usar la ventana Help (del menu Help) para asegurarse de que la funcin Esta correctamente conectada. Si determinadas funciones o SubVIs tienen terminales de entrada sin conectar hacia otras funciones o SubVI, asegurarse de que el valor por defecto es el que esperamos que sea realmente. - Usar los puntos de ruptura y ejecucin paso a paso mostrando el flujo de datos para comprobar el VI funciona como lo habamos planeado. Desactivar estos modos cuando no queramos que interfieran con el funcionamiento normal. - Utilizar la opcin Probe (sonda) para comprobar el valor intermedio de las variables. Tambin comprobar los errores de las funciones y SubVIs de la salida, especialmente en el caso de operaciones I/O.

- Observar el comportamiento del VI o SubVI con diferentes valores de entrada. Para los controles numricos en coma flotante podemos probar con los valores NaN y +- Inf adems de los valores normales. - Si el VI funciona mas lentamente de lo que esperbamos, asegurarse de que no haya ningn SubVI que esta en el modo de ejecucin highlighting. As mismo cerrar las ventanas de los SubVIs que no se estn utilizando. - Comprobar las representaciones de los controles sobre panel frontal para ver donde tenemos overflows debido a la conversin de un valor de coma flotante en entero o de un entero en otro menor. - Comprobar el rango de los datos y de error de los controles e indicadores. Podra ser que no actuasen ante un error como habamos presupuesto. - Comprobar los For Loops que de manera inadvertida se ejecuten cero veces y creen un array vaco.

35

Curso Basico de LabVIEW

- Comprobar los While Loops de manera que el hecho de que no se cumpla la condicin de fin no de cmo resultado un desbordamiento de memoria o bucle infinito. - Verificar que inicializamos los registros de desplazamiento de la manera adecuada, a menos que especficamente queramos guardar los datos de una ejecucin a otra. - Comprobar el orden de los elementos de un cluster tanto en su punto de origen como final. Aunque LabVIEW detecta incompatibilidad de tipos de datos y del tamao del cluster en el momento de la edicin , no se detectaran errores con datos del mismo tipo. Usar la opcin Cluster Order del men pop-up para comprobar el orden cluster. - Comprobar el orden de ejecucin de los nodos. Aquellos nodos que no estn unidos a otros pueden ejecutarse en cualquier orden. La disposicin espacial sobre el diagrama de bloques no es sinnimo de orden de ejecucin. Esto es la ejecucin no tiene por que ir de izquierda a derecha o de arriba a bajo como en otros lenguajes de programacion convencionales. - A diferencia de las funciones, los SubVIs sin unir no generan error mientras se esta en el modo edit. Si por equivocacin situamos un SubVI sobre el diagrama de bloques, dicho SubVI se ejecutara cuando lo haga su VI, entorpeciendo la ejecucin y quizs, desvirtuando los resultados. Podemos ocultar un SubVI inadvertidamente de tres maneras: Ponindolo directamente sobre otro nodo o icono, disminuyendo el tamao de una estructura sin mantener el icono a la vista, o ponindolo fuera del rea principal del diagrama de bloques. Podemos usar las tres opciones del men Windows (name of VI`s)s Callers, (name of VI`s)s y Unopened SubVIs) para determinar si existe algun SubVI extrao. Tambin nos puede ayudar la opcin Show VI Hierarchy. A veces deberemos redimensionar y mover las diferentes estructuras de un diagrama de bloques para localizar todos los diferentes iconos extras (en la versin 4.0 estas opciones se encuentran dentro del men Project). - Para completar la depuracin de nuestro VI disponemos de las siguientes herramientas: Ejecucin paso a paso (single-step-mode) visualizacin del flujo de datos (Highlighting execution), visualizacin de valores intermedios (probe) y establecimiento de puntos de ruptura (Breakpoints). Los dos primeros ya han sido vistos en puntos anteriores por lo que ahora se pasaran a tratar los dos ltimos.
36

Curso Basico de LabVIEW

3.3.3 Uso del Probe Probe ( sonda) es una herramienta que podemos utilizar para comprobar los valores intermedios dentro de un VI que es ejecutable pero que genera resultados sospechosos e inesperados. Por ejemplo, podemos tener un diagrama de bloques con un conjunto operaciones una de ellas cuales da un resultado incorrecto. Podramos ir conectando un indicador a la salida de cada una de esas operaciones o bien utilizar la herramienta Probe. La opcin primera de colocar un indicador y realizar su conexin no es precisamente una buena tcnica de depuracin. Consume mucho mas tiempo y nos obliga a disponer elementos sobre el panel frontal y diagrama de bloques que posteriormente tendremos que eliminar. El Probe es similar a un indicador pero mucho mas facil de usar. El siguiente ejemplo (figura 3.7) muestra como acceder a esta herramienta. Estando en el modo run, desplegamos el men pop-up del cable que sale del icono Random Number (0.1= y seleccionamos Probe. Se visualizara una ventana flotante. La primera vez que aparece presenta el valor por defecto. Se actualiza tan pronto como el VI se pone en funcionamiento y pasan los datos a travs de ese cable.

Podemos usar el Probe en unin con la ejecucin paso a paso y flujo de datos para ver los valores con mucha mas facilidad. El probe se debe insertar antes de comenzar la ejecucin para ver los datos. No podemos cambiar el valor de los datos con el Probe, que adems no tiene efecto en la ejecucin del VI. Si creamos diferentes Probes podemos olvidar cual de ellos estn asociado a un cable en concreto. Si desplegamos el men pop-up de un cable
37

Curso Basico de LabVIEW

que tiene asociado un probe. Podemos seleccionar Find Probe (encontrar sonda).Al seleccionar esta opcin la entrada del Probe correspondiente pasa a ser la activa y se ilumina momentneamente. As mismo, si desplegamos el men pop-up de la ventana Probe. Podemos encontrar el cable asociado tomando la opcin Find Wire (encontrar cable=. Al selecionarla el diagrama que contiene dicho cable pasa a ser el activo y el cable queda resaltado. La idea bsica se mantiene en la versin 4.0. La nica diferencia es que ahora disponemos de una herramienta especifica que permite poner un probe directamente sin tener que desplegar el men pop-up del cable. Dicha herramienta es circulo con P, llamada Probe Data (Sonda de Datos).

3.3.4 Estacionamiento de los Puntos de Ruptura

Las diferencias entre las versiones 3.1.y 4.0. Son bastante significativas. En la 3.1 se utilizan. Sobre todo cuando queremos inspeccionar las entradas de un SubVI antes de que este se ejecute. Para establecer un punto de ruptura haremos clic sobre el botn tres puntos, el cual cambia a boton de signo de admiracion. Cuando se invoca este VI se interrumpe la ejecucin del VI principal, de manera que podemos ver los valores que entran al SubVI. Haremos clic sobre este botn en cualquier momento para volver al modo de ejecucin normal. Tambin podemos habitar y deshabilitar el punto de ruptura con la opcin VI Setup del icono del VI en el panel frontal. La versin 4.0 mejora ampliamente este funcionamiento con la nueva herramienta Set/Clear Breakpoint (Establecer/Quitar puntos de ruptura). La idea cambia radicalmente ahora podemos establecer paradas dentro del propio diagrama de bloques, lo cual resulta ser, mas que una utilidad, una absoluta necesidad de primer orden. Imaginemos, si no, un diagrama que comienza con un For Loop que ha de ejecutarse ,mil veces, y sabemos que el problema no se encuentra en el. Si quisiramos hacer una ejecucin single-step o highlighting con la versin 3.1 tendramos dos opciones: pulsar dos veces la tecla de paso a paso o poner en un subVI todo el bloque posterior al For Loop y usar el botn de punto de

38

Curso Basico de LabVIEW

ruptura tal y como se ha visto al principio. Ambas opciones sin realmente molestas. Sin embargo con la versin 4.0 tan solo tendramos que seleccionar la herramienta y hacer clic en el punto que queramos investigar. Al ejecutar el VI, este correr a la velocidad normal hasta llegar a dicho punto, momento en que parara la ejecucin y parpadeara el siguiente bloque a tratarse. Una vez aqu podemos pasar el VI a la ejecucin paso a paso y/o highlighting y buscar los posibles errores. Para quitar un punto de ruptura haremos clic con la misma herramienta sobre el punto a eliminar.

3.4 EJERCICIOS PRACTICOS 1.- Abrir ejem 1.vi y realizar la conexin de los diferentes terminales del diagrama de bloque, de manera que en los indicadores obtengamos el resultado esperado. La solucin es: - Una vez abierto vamos a la ventana Diagram. - Para las funciones A+B, A-B y A/B desplegamos el men Functions o hacemos clic con el botn derecho sobre cualquier rea libre. Vamos a la opcin Arithmetic y cogemos los siguientes iconos.

A+B A-B A*B A/B

Add Subtract Multiply Divide

- Para las funciones A=B, A>B, A<B y B=0, del men Functions vamos a la opcin Comparison y escogemos

A=B A>B A<B

Equal? Greater? Less?


39

Curso Basico de LabVIEW

B=0

Equal?

- Para este ultimo ser necesario introducir la constante de comparacion o (cero). Abrimos el men function y de la opcin Structs & Constants tomamos Numeric Constant, introduciendo un cero. - Utilizando la herramienta rollo de cable realizar las conexiones adecuadas de manera que se obtenga algo parecido a la figura3.8. - Utilizar todas las tcnicas de depuracin de errores para que el VI sea operativo (bsicamente Ctrl+B). - Una vez que sea operativo grabarlo en disco (Ctrl+S).

2.- Comprobar que se obtengan los siguientes resultados: - para A=2yB=-1: A+B=1 A=B OFF - Para A=0yB: A+B=0 A=B ON A-B=0 A>B OFF A*B=0 A<B OFF A/B= Inf B=0 ON A-B=3 A>B ON A*B=-2 A<BOFF A/B= -2 B=0 OFF

Donde OFF significa led apagado y ON led encenido: La solucin es: - Ir al Panel. - Introducir los valores correspondiente en A y B mediante la herramienta mano con dedo - Clic en run flecha - Repetir los pasos con todos los valores que queramos.

40

Curso Basico de LabVIEW

3. Ejecutarlo en el modo single-step y execution highlighting.

La solucin es: Pasar al diagrama de bloques. Clic en lapiz run . Pasamos al modo run Clic en linea . Pasa a pulsante Clic en foco apagado Pasa a foco prendido Clic en Para que se ejecute el siguiente nodo haremos clic en pulso Para parar en cualquier momento podemos hacer clic en stop

4. Si no se hubiesen obtenido los resultados esperados, ver donde se encuentra el problema y corregirlo.

41

Curso Basico de LabVIEW

5. Visualizar las ventanas Probe de los resultados A<B, B=0 y A/B.

La solucin es: - Para los tres casos: Estando en el modo run, situarnos sobre el cable que lleva al indicador que queramos comprobar y desplegar su men pop-up. Toma la opcin Probe de cada uno de ellos.

- Ejecutar el VI tanto en modo normal como single-step y execution highlighting y ver como quedan reflejados los valores en las ventanas Probe.

42

Curso Basico de LabVIEW

C A P I T U L O PROGRAMACION

ESTRUCTURADA

4.1 INTRODUCCION

A la hora de programar, mechas veces es necesario ejecutar un mismo conjunto de sentencias un numero determinado de veces, o que estas se repitan mientras se cumplan ciertas condiciones. Tambin puede ocurrir que queramos ejecutar una u otra sentencia dependiendo de las condiciones fijadas o simplemente forzar que unas se ejecutan siempre antes que otras. Para ello LabVIEW dispone de cuatro estructuras fcilmente diferenciables por su apariencia y disponibles en la opcin Structures del men Function de la ventana Diagram:

4.2 ESTRUCTURAS ITERACTIVAS: FOR LOOP Y WHILE LOOP

FOR LOOP Usaremos For Loop cuando queramos que una operacin se repita un numero determinado de veces. Su equivalente en lenguaje convencional es: For i= to N-1 Ejecuta subdiagrama Al colocar un For Loop en la ventana Diagram observamos que tiene asociados dos terminales:

43

Curso Basico de LabVIEW

1.- Terminal contador: Contiene el numero de veces que se ha ejecutado la estructura. El valor del contador se fijara externamente (ver tambin Arrays en el capitulo 6). 2.- Terminal de interaccin: indica el numero de veces que se ha ejecutado la estructura: Cero durante la primera iteracin, uno durante la segunda y as hasta N-1. Ambos terminales son accesibles desde el interior de la estructura, es decir, sus valores podrn formar parte del subgdiagrama pero en ningn caso se podrn modificar.

WHILE LOOP Usaremos While Loop cuando queramos que una operacin se repita mientras una determinada condicin sea cierta. Su equivalente en lenguaje convencional es: Do ejecutar subdiagrama While condicin is TRUE

44

Curso Basico de LabVIEW

(Aunque esta estructura es mas similar al comando Rrpeat-Until, ya que se repite como mnimo una vez, independientemente del estado de la condicin). Al igual que For Loop contiene dos terminales: 1.- Terminal condicional: A el conectaremos la condicin que har que se ejecute el subdiagrama. LabVIEW comprobara el estado de este terminal al final de cada iteracin, si su valor es TRUE( Verdadero) continuara, pero por el contrario si su valor es FALSE (Falso) detendr la ejecucin. 2.- Terminal de iteracin: indica el numero de veces que se ha ejecutado el bucle y que como mnimo, siempre ser una (i=O).

Al hacer pop-up tanto en el For Loop como en el While Loop se despliega el siguiente men:

(La versin 4.0 presenta adems la opcin de Ayuda en la lnea u On line Help).
45

Curso Basico de LabVIEW

- Show Label: Oculta o visualiza la etiqueta de identificacin del Loop y, si no existe, permite ponerla. - Descripcin: Permite aadir comentarios. - Reemplace: Cambia el For Loop o el While Loop por cualquier otra funcin se la paleta Structs & Constants. - Remove Loop: Borra la estructura While o For pero sin eliminar el subdiagrama de su interior. - Add Shift register: Aade los Shift Register (Registros de desplazamiento).

4.3 REGISTROS DE DESPLAZAMIENTO

Los registros de desplazamiento o Shift register son variables locales, disponibles tanto en el For Loop como en el While Loop, que permite transferir los valores del final de una iteracin al principio de la siguiente. Inicialmente shift register tiene un par de terminales colocados a ambos lados del Loop; el terminal de la derecha almacena el valor final de la iteracin, hasta que una nueva hace que este valor se desplace al terminal de la izquierda, quedando en el de la derecha el nuevo valor. Un mismo registro del desplazamiento puede tener mas de un terminal en el lado izquierdo; para aadirlo escogeremos la opcin Add Element (aadir elemento) del men popup. Cuantos mas terminales tengamos en el lado izquierdo mas valores de iteraciones anteriores podremos almacenar.

El men pop-up tiene otros dos comandos:

46

Curso Basico de LabVIEW

- Remove element: Borra un terminal del lado izquierdo siempre y cuando el registro de desplazamiento tenga asociado mas de uno. - Remove All: Borra todo el registro de desplazamiento, tanto los terminales de la izquierda como el de la derecha.

Un mismo Loop puede tener varios registros de desplazamientos siendo conveniente inicializarlos, para que los terminales de la izquierda tengan el valor deseado cuando se produzca la primera iteracin, Shift register puede trabajar con cualquier tipo de datos siempre y cuando los datos que se conecten a cada terminal sean del mismo tipo. Al finalizar la ejecucin de todas las iteraciones el ultimo valor quedara en el terminal de la derecha; unindolo en un indicador del mismo tipo de dato fuera del Loop podremos obtener su valor. Pero existe otra posibilidad para pasar datos de forma automtica desde el interior de la estructura al exterior. Cuando un cable atraviesa los limites del Loop. Aparece en el borde un nuevo terminal llamado tnel que hace de conexin entre el interior y el exterior, de forma que los datos fluyen a travs de el despues de cada iteracin del Loop, pudiendo guardar de esta manera no solo el ultimo valor de todas las iteraciones sino tambin los valores intermedios. A esta posibilidad que tienen tanto el For como el While de acumular arrays en sus limites automticamente se le llama auto-indexing o autoindexado. LabVIEW habilita por defecto auto-indexing en el For Loop ya que mas frecuente utilizar esta estructura para crear arrays que no el While Loop en el cual esta opcin esta deshabitada por defecto y cuya utilizacin podra provocar problemas de memoria debido a que no sabemos cuantas veces se va a ejecutar. No obstante, haciendo pop-up en el tnel se puede habilitar o deshabitar esta opcin.

4.4 ESTRUCTURAS CASE Y SEQUENCE

47

Curso Basico de LabVIEW

Este tipo de estructuras se diferencia de las iterativas en que puede tener mltiples subdiagramas, de los cuales solamente uno es visible a la vez. En la parte superior de cada estructura existe una pequea ventana que muestra el identificador del subdiagrama que se esta mostrando. A ambos lados de esta ventana existen dos botones que decrementan o incrementan el indicador de forma que podamos ver el resto de subdiagramas.

CASE

Usaremos la estructura Case en aquellas situaciones en las que el numero de alternativas disponibles sean dos o mas. Segn que valor tome el selector dentro de los n valores posibles, se ejecutara en correspondencia uno de los n subdiagramas. La estructura case consta de un terminal llamado selector y un conjunto de subdiagramas, cada uno de los cuales esta dentro de un case o suceso y etiquetado por un identificador del mismo tipo que el selector; este ser booleano o numrico. Si se conecta un valor booleano al selector, la estructura tendr dos Case: False y True. Pero si se conecta un valor numrico la estructura podra tener hasta 214 case. En este caso la estructura Case engloba dos sentencias diferentes de otros lenguajes convencionales:

1.- If condicin true then ejecutar case true else ejecutar case false 2.- Case selector of 1: ejecutar case 1, n: ejecutar case n end Case no cuenta con los registros de desplazamiento de las estructuras iterativas pero si podemos crear los tneles para sacar o introducir datos. Si un case o suceso proporciona un dato de salida a una determinada variable ser necesario que todos los dems tambin lo hagan, si no ocurre de esta manera ser imposible ejecutar el programa.

48

Curso Basico de LabVIEW

SEQUENCE

Esta estructura no tiene su homologa en los diferentes lenguajes convencionales, ya que estos las sentencias se ejecutan en el orden de aparicin pero, como ya sabemos, en LabVIEW una funcin se ejecuta cuando tiene disponible todos los datos de entrada. Se produce de esta manera una dependencia de datos que hace que la funcin que recibe un dato directa o indirectamente de otra se ejecute siempre despues, crendose un flujo de programa.

Pero existen ocasiones en que esta dependencia de datos no existe y es necesario que un subdiagrama se ejecute antes que otro, es en estos casos cuando usaremos la estructura sequence para forzar un determinado flujo de datos. Cada subdiagrama estar contenido en un frame o marco y estos se ejecutara en orden de aparicin: Primero el frame 0 o marco 0, despues el frame 1 y as, sucesivamente, hasta el ultimo.

Al contrario del case, si un frame aporta un dato de salida a una variable los dems no tendrn por que hacerlo. Pero tendremos que tener en cuenta que el dato estar solamente disponible cuando se ejecute el ultimo frame y no cuando se ejecute el frame que transfiere el dato.

49

Curso Basico de LabVIEW

Debido a la similitud de los mens pop-up de la estructuras case Sequence vamos a estudiarlos de forma conjunta indicado en cada caso las posibles diferencias que puedan existir:

- Show Label: Oculta o visualizar la etiqueta de identificacin de la estructura y, si no existe, permite ponerla. - Description: Permite aadir comentarios. - Replace: cambia la estructura case o sequence por cualquier otra funcin de la paleta Structs & constants. - Remove case Structure o Sequence: borra completamente la estructura case o Sequence y todos los subdiagramas menos el que se este visualizando en el momento de la ejecucin de este comando. - Add Sequence Local (aadir secuencia local): Esta opcin esta solo disponible en el men de la estructura Sequence y se utiliza para pasar datos de un frame a otro. Una pequea flecha con la punta hacia el exterior de la estructura indica el frame de origen de la secuencia local, mientras que una flecha apuntando hacia el interior indica que la secuencia local contiene un dato de salida. Todos los frames posteriores al que contiene la secuencia local que origina el dato podrn disponer de l, no siendo as

50

Curso Basico de LabVIEW

para los frames anteriores en los cuales aparecer un cuadrado vaco que indicara que los datos no estn disponibles. - Show case o SHOW Frame: nos permite ir directamente al subdiagrama que queremos visualizar sin tener que pasar por todos los case o frame intermedios que pudiera haber. Al pulsar esta opcin, un men conteniendo todos los identificadores se desplegara y solo tendremos que sealar con el cursor del ratn el que deseamos ver. Si solo hubiese dos subdiagramas nos aparecer directamente el nombre del nico identificador que podemos visualizar, como es el caso del case con selector booleano. - Add Case After o Add Frame After: Este comando inserta un subdiagrama vaco inmediatamente despus del que se est visualizando. - Add Case Before o Add Frame Before: inserta un subdiagrama vaco justo un nivel por encima del que se esta visualizando. - Duplicate case o Duplicate Frame: inserta una copia del subdiagrama visible inmediatamente despues de el. - Make This Case o Make This Frame: mueve un subdiagrama a otra posicin. - Remove Case o Remove Frame: Borra el subdiagrama visible. Este comando no esta disponible si solamente exsiste un Case o un frame.

NOTA: LabVIEW ajusta automticamente los identificadores cuando alguno de los comandos ejecutados provoca una variacin de ellos.

La versin 4.0 presenta una ligera, pero que resulta muy util. Se puede ver en el caso de las estructuras Sequence y Case numrico. En el primer caso, si solo hay una secuencia, no aparece ningn identificador de frame, mientras que si hay mas de uno, se nos indica en cual estamos y cuantos hay. Lo mismo pasa con la estructura Case, solo que, en este caso tendremos, como mnimo, dos posibles estados. Todo ello queda reflejado a continuacin:

51

Curso Basico de LabVIEW

4.5 FORMULA NODE

Formula Node o nodo de formula es una funcin de caractersticas similares a las estructuras vistas anteriormente, disponible en la paleta Structs & Constants del men Functions, pero que, en lugar de contener un subdiagrama, contiene una o mas formulas separadas por un punto y coma. Usaremos Formula Node cuando queramos ejecutar formulas matemticas que serian complicadas de creer utilizando las diferentes herramientas matemticas que LabVIEW incorpora en sus libreras.

Una vez escrita la formula en el interior del rectngulo solo tendremos que aadir los terminales que har la funcin de variables de entrada o de salida, para ello desplegaremos el men pop-up de la estructura y ejecutaremos el comando Add Input (aadir entrada) AddOutput (aadir salida).

52

Curso Basico de LabVIEW

Cada variable, adems, tendr otro men pop-up que permitir definirla como salida si anteriormente era de entrada, o de entrada si en un principio era de salida (Change to Output o cambiar a Salida, Change to Input o cambiar a Entrada=. Tambin podremos eliminarla mediante el comando Remove. No hay limite para el numero de variables o de formulas y nunca podr haber dos entradas o dos salidas con el mismo nombre, aunque una salida si podr tener el mismo nombre que una entrada. Todas las variables de salida debern estar asignadas a una formula por lo menos una vez.

4.6 VARIABLES LOCALES Y GLOBALES Las variables son imprescindibles en cualquier tipo de problemas, ya que permiten almacenar la informacin necesaria para su resolucin. En LabVIEW todos los controles introducidos en el Panel Frontal que generan un terminal en la ventana Diagrama van a ser variables, identificables por el nombre asignado en la etiqueta. Pero puede ocurrir que queramos utilizar el valor de cierta variable en otros subdiagrama o en otro VI o, simplemente, que queramos guardar un resultado intermedio. La forma mas sencilla de hacerlo es generado variables locales y/o globales dependiendo de la aplicacin.

VARIABLES LOCALES En las variables locales los datos se almacenan en algunos de los controles o indicadores existentes en el panel frontal del VI creado, es por eso que estas variables no sirven para intercambiar datos entre VIs. La principal utilidad de estas variables radican en el hecho de que una vez creada la variable local no importa que proceda de un indicador o de un control, ya que se podr utilizar en un mismo Diagrama tanto de entrada como de salida. Las variables locales estn disponibles en el men Structs & Constants de la paleta Function y disponen del siguiente menu Pop-up:

- Change To Read Local o Change To Write Local: Permite escoger entre leer o escribir en el control.

53

Curso Basico de LabVIEW

- Select item: Visualiza una lista con el nombre de todos los controles existentes en el Panel Frontal y de ella escogeremos el control al cual queremos que haga referencia nuestra variable. Es por esto que para poder crear el variable local ser imprescindible que el control tenga asignado un nombre de identificador. Una vez creada la variable local, si en algun momento se cambia el nombre del control origen, ser necesario cambiar tambin el nombre de la variable local ya LabVIEW no actualiza los cambios. - Show Label: Muestra una etiqueta con el nombre del VI al que pertenece la variable local. - Descripcin: Permite aadir comentarios. - Remplace: Sustituye la variable local por cualquier otra funcin.

VARIABLES GLOBALES

Las variables globales son un tipo especial de VI, que nicamente dispone de Panel Frontal, en el cual se define el tipo de datos de la variable y el nombre de identificacin imprescindible para despues podernos referir a ella.

Cuando escogemos la funcin Global del men Structs & constants creamos un nuevo terminal en el diagrama, este terminal corresponde a un VI que inicialmente no contiene ninguna variable. Para poderlas aadir haremos doble clic en el terminal y se habra el panel frontal. Una vez abierto, las variables se definen igual que cualquier control o indicador de un VI normal. Podemos crear un VI para cada variable global o definirlas todas en el mismo, que es la opcin mas indicada para cualquier aplicacin. Cuando terminemos de colocar todas las variables grabaremos el VI y lo cerraremos. Si una vez cerrado queremos aadir nuevas variables, bastara con volverlo a abrir e introducir los cambios necesarios. Para aadir nuevas terminales que hagan referencia a las variables globales creadas, no volveremos a ejecutar la funcin Global ya que esto creara un nuevo VI sino que abriremos el ya existente mediante el comando VI del men Function y seleccionaremos la variable en concreto a travs del comando select item del men pop-up. Adems, este
54

Curso Basico de LabVIEW

mismo men cuenta con otra opcin que nos permite utilizar una variable ya creada para leer datos o para almacenarlos: Se trata del comando Change To Read Global o Changes To Write Global.

4.7 ATTRIBUTE NODE Los attribute nodes o nodos de atributos se pueden considerar como variables que dependen nicamente del terminal a partir del cual se ha creado y que permiten leer o modificar atributos del panel frontal de un control o indicador como, por ejemplo, cambiarlo de color, hacerlo invisible, desactivarlo, leer posiciones de cursores, cambiar escalas, etc . Para crear un attribute node basta con seleccionar la opcin Create Attribute Node del men pop-up de cualquier control del panel Frontal o terminal del Diagrama de bloques ( en la versin 4.0 primero desplegamos el men pop-up del objeto y a continuacin tomamos la opcin Create. Podremos crear un attribute node o variable local=. Una vez creado aparece en el Diagrama un nuevo nodo que puede ser tanto de escritura como de lectura. Una pequea flecha a la izquierda del nodo indica que este es de escritura. Mientras que en una flecha a al derecha indica que es de lectura. Adems los atribute nodes tiene su propio men pop-up como se nuestra a continuacin.

- Change All To Read Change All To Write: Dependiendo de si el nodo es de estructura o de lectura aparecer una opcin u otra que nos permitir cambiar entre ambas. Debido a que un mismo attribute node puede tener mas de un terminal usaremos esta opcin cuando queramos que todos ellos sean de escritura o de lectura. - Find Control: Encuentra el control asociado a dicho attribute node en el panel Frontal - Find Terminal : Encuentra el terminal asociado a dicho attribute node en el diagrama de bloques. - Find Attribute Nodes: Muestra todos los attribute nodes exsistentes en el diagrama que estn asociados a dicho control. - Show Label: Oculta o visualiza la etiqueta identificativa del attribute node

55

Curso Basico de LabVIEW

- Description: Permite aadir comentarios. - Replace: Sustituye el attribute node por cualquier otra funcin. - Change To Read o Change To Write: Cambia a modo de escritura o de lectura nicamente el terminal seleccionado dejando los dems tal y como estaban. - Select Item: Visualiza todos los atributos disponibles para control asociado al attribute node y permite cambiar un atributo por otro diferente. Podemos acceder directamente a esta opcin colocndonos encima del atributo que deseamos cambiar y pulsando el botn izquierdo del ratn. La utilizacin de attribute nodes, as como de variables locales y globales, es muy importante ya que permite resolver de forma muy sencilla problemas de una gran complejidad que, de otra manera, seria prcticamente imposibles de solucionar. Por eso aconseja al programador que se familiarice con el uso de estos tres nodos que le permitirn ahorrar mucho tiempo en un futuro.

C A P I T U L O

ANALISIS Y VISUALIZACION DE DATOS


56

Curso Basico de LabVIEW

5.1 INTRODUCCION

En muchas ocasiones es necesario para una mayor comprensin de los resultados obtenidos representarlos grficamente. Para ello LabVIEW dispone de cinco tipos de grficos accesibles desde el men Controls del Panel Frontal bajo el item Graph, divididos en dos grupos: Los indicadores Chart y los indicadores graph.

Un indicador graph o indicador grfico es una representacin bidimencional de una o mas grficas. El graph recibe los datos como un bloque. Un indicador chart o de trazos tambin muestra grficas, pero esta recibe los datos y los muestra punto por punto o array por array, reteniendo un cierto numero de puntos en pantalla mediante un buffer disponible para ello.

5.2 INDICADORES CHART WAVEFORM CHART Waveform chart es un tipo especial de indicador numrico que muestra una o mas grficas, reteniendo en pantalla un cierto numero de datos definido por nosotros mismos. Los nuevos datos se aaden al lado de los ya existentes, de forma que se puede comparar entre ellos. Los datos se pueden pasar uno a uno al chart o mediante arrays. Evidentemente es mucho conveniente pasar multiples puntos a la vez ya que de esta manera solo es necesario redibujar la grfica una vez y no una por cada punto (figura5.1).

57

Curso Basico de LabVIEW

Es posible dibujar varias grficas en un mismo chart, uniendo los datos de cada grfica en un cluster de escalares numricos de forma que cada escalar que contiene el cluster se considera como un punto de cada una de las graficas para una misma abscisa. Se puede ahorrar tiempo uniendo los clusters en arrays y despues pasando todo array a la grfica.

Desplegando el men pop-up se tiene acceso a las siguientes acciones:

- Change to Control o Change to indicator: Dependiendo de si la waveform es un control o un indicador aparecer una opcin u otra y nos permitir cambiar entre ellas. - Find Terminal: Muestra el terminal asociado en el Diagrama de bloques. - Show Label: Permite poner una etiqueta de identificacion a la Waveform chart y si ya existe, la visualiza. - Show Legend: Permite poner una etiqueta de identificacin a cada una de las grficas. - Show Palette: Activa una paleta que permite hacer zooms, desplaza las grficas de forma rpida, ajustar automticamente la escala de los ejes, cambiar el formato y la precisin de los indicadores numricos y elegir entre escala lineal o logartmica.

58

Curso Basico de LabVIEW

- Show Digital Display: es un indicador que muestra el ultimo valor que se ha cargado en pantalla. Hay un indicador por cada grfica. - Show Scrollbar: Permite ver los valores anteriores contenidos en el buffer. - Show X Scale: Visualiza la escala del eje de abscisas. - Show Y Scale: Visualiza la escala del eje de ordenadas. - Reinitialize to Default: Actualiza el ultimo punto obtenido al valor por defecto. - Make Current Value Default: Convierte el ultimo punto punto obtenido en el valor por defecto. - Description: Permite aadir comentarios. - Clear chart: Borra el contenido del buffer - AutoScale X: Ajusta de forma automtica el rango de valores de X para una correcta visualizacin. - AutoScale Y: Ajusta de forma automtica el rango de valores de Y para una correcta visualizacin. - Update Mode: Permite escoger entre tres modos de visualizar los nuevos datos: Strip chart, scope chart y sweep chart. El modo strip chart es el modo por defecto y consiste en que cada nuevo valor se coloca a la derecha del display, mientras que valores anteriores se desplazan hacia la izquierda, En el modo scope chart cada nuevo valor se coloca a la derecha del anterior, empezando por el margen izquierdo del display. Cuando se llega al margen derecho se borra todo el display y se comienza de nuevo desde la izquierda. El modo scope chart es mucho mas rapido que el modo strip chart ya que no es necesario realizar todo el proceso de desplazar la pantalla hacia la izquierda para cada nuevo punto. El modo sweep chart acta como el modo scope chart, salvo que ahora cuando se llega al final de la pantalla, esta no se borra y se comienza de nuevo desde el principio, donde una lnea vertical se mueve hacia la derecha cada vez que se aade un nuevo punto.

59

Curso Basico de LabVIEW

- Create Attribute Node: Crea un nodo asociado al terminal del que procede en el Diagrama de Bloques. - Replace: Permite sustituir la Waveform chart por cualquiera de los controles e indicadores del Panel Frontal. - X Scale and Y Scale: Permite escoger el estilo de la escala, tipo de rejilla punto inicial, incremento entre punto y punto, formato y precisin de estos puntos. - Transpose Array: Cuando se representa mas de una grfica en una misma chart utilizando arrays, Waveform chart interpreta por defecto de las filas como grficas diferentes. Pero si nosotros nos interesa que sean las columnas las grficas diferentes, utilizaremos este comando para convenir las columnas en filas. - Stack Plots: Normalmente cuando se representan mas de una grfica todas ellas se sitan en un mismo display. Pero puede ocurrir que las escalas de las ordenadas sean muy diferentes entre ellas o que simplemente nos interese representarlas por separados, cada una en un display. Para conseguir esto activaremos el comando Stack Plot de forma que cada grfica aparecer con su propia escala y su propio display. Cuando Stack Plots esta activado, en su lugar aparece el comando Overlay Plot que es el que dibuja todas las grficas en un mismo display. - Chart History Length: Mediante este control podemos fijar el numero de puntos que Waveform chart almacenara en el buffer que, por defecto, seran1024.

INTENSITY CHART

Mediante intensity chart podemos mostrar datos tridimensionales colocando bloques de colores sobre planos cartesianos. Para ello creamos arrays bidimensionales de nmeros donde los ndices de un elemento
60

Curso Basico de LabVIEW

correspondern a las coordenadas X e Y, y el contenido a la coordenada Z, que tendr asociado un color para cada posible valor. Previamente ser necesario definir la escala de colores que vamos a utilizar a travs de los attribute ondees mediante el item Z Scale info: Color Array o Color Table, o a travs de la rampa de colores visualizada junto a la grfica. Evidentemente, la escala de colores que podamos visualizar depender de la resolucin de nuestro monitor. Cada vez que se enve un nuevo conjunto de datos, estos aparecern representados a la derecha de los ya existentes. Intensity chart soporta los tres modos de visualizacin de Waveform chart y tambin dispone de un buffer cuyo tamao es, por defecto, de 128 puntos. Las opciones disponibles para intensity chart son prcticamente las mismas que para Waveform chart. Unicamente, debido a que existe una nueva coordenada, aparecen en el men opciones para sta, como son: - Show Ramp: Visualiza u oculta la rampa de colores. - Show Color Array: Permite fijar los colores de la rampa. - Show Z Scale: Visualiza u oculta la escala Z - AutoScale Z: Ajusta de forma automtica el rango de valores de z a la escala de colores. - Z scale: Permite escoger el estilo de la escala, tipo de rejilla, punto inicial, incremento entre punto y punto, formato y precisin de estos puntos.

5.3 INDICADORES GRAPH

WAVEFORM GRAPH

61

Curso Basico de LabVIEW

Waveform graph representa una serie de valores y equiespaciados dada siempre una distancia delta de X (AX) comenzando a partir de un valor inicial Xo. A un mismo punto X1 solo le puede corresponder un valor de Y1. Cuando se representa una nueva serie de datos, al contrario de lo que ocurra en los indicadores chart, estos datos reemplazan a los ya existentes en lugar de aadirse al lado, y pierden los valores representados con anterioridad. Existen dos posibilidades a la hora de representar una nica grfica en una waveform graph. La primera consiste en unir un array de valores numricos directamente a la graph de forma que esta interpreta cada valor como un nuevo punto comenzando en X=0 e incrementando X en 1 para cada punto. La segunda consiste en crear un cluster en el cual, junto con el array de valores, se indica el valor inicial X0 y el incremento AX. Existe la posibilidad de representar mas de un grfica en una misma waveform graph. Para ello es necesario unir los datos de las diferentes grficas en un formato que LabVIEW sepa interpretar. Utilizar un formato u otro vendar determinado principalmente por las caractersticas de las grficas a mostrar. As, si todas las grficas tienen un mismo escalado X y un mismo numero de puntos, bastara con crear un array bidimensional de valores numricos donde cada fila de datos es una nica grfica. LabVIEW interpretara estos datos como puntos en la grfica comenzando en X=0 e incrementndola en 1. Si nos interesa cambiar el punto inicial o el incremento de x, crearemos un cluster que contendr el array bidimensional y los valores de xo y Ax. Mediante el comandoTranspose Array del men pop-up podemos hacer que LabVIEW interprete las columnas como grficas diferentes en lugar de las filas. Puede ocurrir que el numero de elementos de cada grfica sea diferente.En ese caso es necesario crear un cluster para cada array de datos y despues unir todos los clusters en un array. Esto es necesario debido a que LabVIEW no permite crear arrays de arrays. Al igual que anteriormente si nos interesa que el punto inicial sea diferente de cero o que el incremento sea diferente de 1, crearemos un cluster que contenga el array de clusters de array y los nuevos valores de Xo y Ax.

62

Curso Basico de LabVIEW

Finalmente, si ni el escalado ni el numero de puntos de la grfica es el mismo para todas ellas, lo que haremos ser crear un cluster por cada grfica que contendr un array de datos, un valor Xo y un valor Ax, Y con todos los clusters de las diferentes grficas crearemos un array. Este ltimo formato es el mas completo de todos porque permite fijar un valor Xo y un valor AX diferente para cada grfica.

XY GRAPH En XY Graph un punto X1 puede tener varios valores Y, lo que permite, por ejemplo, dibujar funciones circulares. XY Graph representa una coordenada (x1, Y1) donde los valores de X no tiene porque estar equiespaciados como ocurra en las waveform graph.

Para representar una nica grfica en una XY Graph existen dos posibilidades. La primera consiste en crear un cluster que contenga un array de datos X y un array de datos Y. La segunda consiste en crear un array de clusters, donde cada cluster contiene un valor de X y un valor de Y.

Al igual que en las Waveform graph exsiste la posibilidad de representar mas de una grfica en una misma XY Graph (figura 5.8). Pero, en este caso, tan solo existen dos formatos posibles derivados de los dos formatos vistos anteriormente para una nica grfica. El primer formato es un array de grafica, donde cada grfica es un cluster de un array Y. Y el segundo formato es un array de clusters de grficas, donde cada grfica es, a su vez, otro array de clusters conteniendo un valor X y un valor Y.

63

Curso Basico de LabVIEW

INTENSITY GRAPH

Intensity graph es exactamente igual que intensity chart salvo que intensity graph no retiene valores anteriores, por lo que cuando un nuevo bloque de valores se carga, estos sustituyen a los exsistentes. Los comandos disponibles en los mens pop-up de los indicadores graph tienen las mismas utilidades que los descritos en los indicadores chart, por lo que no se han mencionado en este apartado. Solamente existe una diferncia importante y es que los indicadores graph disponen de cursores que nos permiten movernos por la grfica.

GRAPH CURSORS La paleta de cursores esta disponible desde la opcin Show Cursor Display del menu pop-up (figura 5.9). - Nombre del cursor: Permite introducir una etiqueta de identificacin del cursor. Podemos tener tantos cursores como deseemos.

64

Curso Basico de LabVIEW

- Posicin X, Posicin Y: Indica las coordenadas en la que se encuentra el cursor; en los indicadores intensity graph aparece tambin la coordenada Z.

- Podemos mover el cursor directamente a una posicin correcta introduciendo las coordenadas del punto deseado.

- Selector del cursor: Selecciona el cursor a mover. Se pueden seleccionar a la vez tantos cursores como deseamos. - Control de la apariencia del cursor: Abriendo el men mediante el botn izquierdo del ratn podremos modificar algunas caractersticas del cursor.

- Cursor Style: Selecciona la forma con la que se indica el punto sobre el cual se encuentra el cursor.

- Point Style: Selecciona el estilo del punto que marca la posicin del cursor.
65

Curso Basico de LabVIEW

Color: Selecciona el color del cursor. - Show Name: Muestra el nombre del cursor sobre la grfica. - Bring to Center: Mueve el cursor hasta el centro de la pantalla cambiando las coordenadas de este. - Go to Cursor: Modifica las escalas X e Y de forma que podamos ver el cursor, pero sin cambiar las coordenadas de este. - Control del movimiento del cursor: El candado cerrado indica que el cursor se mover siguiendo la grfica (opciones Lock to plot y Snap to point) mientras que el candado abierto indica que el cursor se movera libremente (opcin Free). Si hubiese ms de una grfica el men nos permitir escoger sobre cual de ellas queremos que se mueva el cursor. El comando Allow Drag, cuando esta activo, permite desplazar la grfica directamente con el puntero del ratn. - Control de la direccin del cursor: mueve los cursores seleccionados punto por punto en la direccin indicada.

5.4 CONCLUSIONES

Ante los diferentes tipos de indicadores se plantea la necesidad de escoger entre uno u otro. Decir cuando se debe utilizar cada uno es muy difcil ya que depende de cada aplicacin y, adems, puesto que en programacion no hay nada imposible, podemos llegar a hacer que una grfica simule el comportamiento de otra; solo hace falta un poco de tiempo y paciencia. Pero si podemos indicar para que es aconsejable cada indicador. Cuanto tengamos datos que dependan del eje de las abscisas y no estn equiespaciados
66

Curso Basico de LabVIEW

podremos utilizar sin mas remedio, un indicador XY Graph. Si los datos dependieran del eje de las abscisas pero estn equiespaciados podremos utilizar un indicador Waveform Graph si queremos que los nuevos datos sustituyan a los anteriores o un indicador Waveform Chart si queremos que los nuevos datos se aadan a continuacin de los ya existentes, como pueden ser en el caso de un electrocardiograma en el interesa ver el comportamiento a lo largo del tiempo y la utilizacin de in indicador Graph supondra la perdida de la informacin. Por ultimo, si tenemos que representar sobre ejes cartesianos funciones de tres variables utilizaremos los indicadores Intensity ya sea Chart Graph. La versin 4.0 presenta mnimas diferencias, como pueden ser la creacin directa de variables locales o la ayuda en la lnea, pero en cuanto a funcionamiento todo lo dicho para la versin 3.1 es totalmente valido. 5.5 EJERCICIOS PRACTICOS

La principal caracterstica de un indicador XY Graph es que un mismo valor de X puede tener varios valores Y, con lo que se puede dibujar todo tipo de funciones. Vamos a disear una aplicacin en la que se vera claramente esta caracterstica. Nuestro objetivo consiste en dibujar un tringulo dadas tres coordenadas (X,Y). Las coordenadas sern introducidas mediante seis controles, tres para las coordenadas X, y tres para las coordenadas Y, de manera que cada par de valores (X,Y) nos definir un punto.
67

Curso Basico de LabVIEW

Con los valores de X creamos un arroya, y con los valores de Y creamos otro, para despues unirlos en un bundle array, el cluster resultante lo conectaremos al nodo de grfica. Todo ello lo introduciremos dentro de una estructura While para que el programa se este ejecutando hasta que nosotros lo detengamos. Podemos comprobar claramente las diferencias existentes entre una XY Graph y una Waveform Graph sustituyendo en el ejemplo anterior una por otra. Para ello colocaremos el cursor del ratn sobre la grfica y pulsaremos el botn derecho una sola vez, para desplegar el men, del que escogeremos la opcin Replace y, dentro de aqu el indicador Waveform Graph. Para que el programa funcione ser necesario tambin cambiar el Bundle del Diagrama de Bloques por un Build Array. Si ahora ejecutamos el programa comprobaremos que en lugar de una sola grfica en forma de tringulo nos aparecen dos grficas cuya nica relacin es el eje de abscisas.

El capitulo anterior no utilizaremos una de las estructuras explicadas, concretamente Formula Node. Podemos aprovechar ahora para utilizarla. Todos sabemos que, conocidos los tres lados de un tringulo, es posible calcular cualquiera de sus ngulos. Imaginemos que queremos calcular el ngulo formado por los lados AB Y AC; bastara con utilizara la conocida formula del seno:

68

Curso Basico de LabVIEW

Que implementada mediante una Formula Node quedara:

Dentro de la Formula Node hemos introducido tambin el calculo de los lados, ya que lo que nosotros conocemos son las coordenadas introduciondola dentro del diseo de la aplicacin original y aadiendo un indicador en el Panel Frontal para visualizar la fase, habremos conseguido nuestro objetivo. 5.6 VOCABULARIO TECNICO - Chart: Indicador de trazos - Cluster: Agrupacin de diferentes elementos en un nico nodo. - Graph: Indicador grfico.
69

Curso Basico de LabVIEW

- Graph cursors: Cursores de los indicadores grficos. - Intensity Chart: Indicador para mostrar trazos tridimensionales - Intensity Graph: Indicador para mostrar un grfico tridimensional. - Overaly Plot: Permite dibujar todas las grficas en un mismo display. - Waveform Chart: indicador que visualiza una grfica punto a punto. - Waveform Graph: Indicador que visualiza una grfica en formato array. - XY Graph: Indicador que visualiza una grfica en funcin de sus coordenadas.

C A P I T U L O

TIPOS DE DATOS ESTRUCTURADOS

6.1 ARRAYS
70

Curso Basico de LabVIEW

Un array es una coleccin de datos todos ellos del mismo tipo. Puede tener una o mas dimensiones y hasta 2 (31) elementos por dimensin, segn la memoria disponible. Un array puede ser de cualquier tipo excepto otro array, chart o graph (ver capitulo 5). Se accede a cada elemento de un array mediante un ndice, el cual es cero base, es decir, va de 0 a N-1 donde N es el numero de elementos. La creacin de arrays de control o indicadores en el panel frontal se hace mediante la combinacin del icono array shell de la planeta Array & Cluster del men controls ( En la versin de estudiante, el icono array de la paleta Array & Graph), con un objeto de datos, que puede ser numrico, booleano o string.

En la figura que sigue se presenta un array shell vaco. Para crear un array hemos de llevar un objeto dentro de la ventana de objetos o situarlo directamente usando el men pop-up.

71

Curso Basico de LabVIEW

Un array de n-dimensiones necesita de n ndices (cero-base) para localizar un elemento. En la figura siguiente hay un array de N columnas por M filas, contenindolo N veces M elementos.

Se pueden aadir dimensiones a un array control o indicador de dos maneras: Desplegando el men de index display ( visualizador del indice= y a continuacin, escogiendo la opcin Add Dimension ( aadir dimensin): o situando el cursor sobre el index display y arrastrando hacia abajo tantas dismensiones como queramos.

Podemos indexar e introducir elementos dentro de los arrays en bordes de las estructuras For Loop y White Loop de manera automtica. Esto es lo que se llama auto-indexing ( autoindexado). La figura inferior presenta un ejemplo de ello; cada iteracin crea el siguiente elemento del array ; una vez que se ha completado, el array pasa al indicador. Observar que el cable se hace mas grueso al cambiar a array.

72

Curso Basico de LabVIEW

Para anular el auto-indexing hemos de desplegar el men sobre el tnel de salida ( el cuadrado negro) y escoger la opcin Disable Indexing (deshabilitar indexado). Al desactivarlos, solo el ultimo valor pasara atraves del tnel.

Si queremos introducir elementos en un array de dos dimensiones podramos usar un For Loop dentro de otro For Loop. El interior crea los elementos de columna, mientras que el exterior crea los elementos de fila.

Si se habilita el auto-indexing sobre el tnel de entrada de un For Loop, LabVIEW toma el tamao del array como el numero de iteraciones; por tanto, no es necesario conectar ningn valor en N. Si lo hubiese, o diversos arrays tuvieran auto-indexing de entrada, se tomara como numero de iteraciones el de menor tamao. Las funciones aritmticas (sumar, restar, multiplicar, dividir, etc.) son polimorficas, es decir sus entradas pueden ser de diferentes tipos. Por ejemplo, podemos sumar un escalar con un array o dos arrays juntos.

73

Curso Basico de LabVIEW

6.1.1 Funciones LabVIEW tiene la paleta Array & Cluster ( Array en la version 4.0) del menu Functions un gran numero de funciones para manipular arrays, Algunas de las mas comunes se describen a continuacin: Array Size (tamao del array): Da el numero de elementos del array.

Build Array (construir array): Concatena arrays o aade elementos extras a un array. La funcin aparece como cuando se pone en el diagrama de bloques. Podemos redimensionarla para incrementar el numero de entradas.

Array Subset ( Subarray de un array): Devuelve una parte de un array a partir de un ndice y longitud determinados.

Index Array (indexar array): Accede a un elemento de un array.

74

Curso Basico de LabVIEW

Esta funcin tambin se puede utilizar para separar una o mas dimensiones de un array bidimensional y crear un subarray del original. Para ello aadir una nueva dimensin y seleccionar el comando Disable Indexing del men pop-up del terminal de ndice:

Podemos extraer subarrays de cualquier combinacin de dimensiones. El siguiente ejemplo muestra como extraer una columna o fila de array a partir de un array de dos dimensiones (figura 6.1).

75

Curso Basico de LabVIEW

6.2 CLUSTERS

Un cluster en LabVIEW es una coleccin ordenada de uno o mas elemento, similar a las estructuras Record del Pascual u otros lenguajes. A diferencia de los arrays, los clusters pueden contener cualquier combinacin de tipos de datos. Se accede a sus elementos Unbundling ( literalmente desenvolvindolos) todos a la vez, en lugar de indexarlos uno a uno. Otro diferencia con los arrays es que los clusters tienen un tamao fijo. Al igual que en el caso de los arrays, los clusters no pueden contener combinacin de indicadores y controles. Creamos un Cluster de indicadores o controles poniendo cualquier combinacin de booleanos, strings, charts, graph, escalares, arrays o, incluso, otros culusters dentro de un cluster Shell, al cual se accede a travs del men Controles del panel frontal. Un cluster shell nuevo tiene un borde redimensional y una etiqueta opcional.

Cuando hacemos pop-up dentro del rea vaca del culster shell aparece el men Controls. Podemos situar cualquier elemento de este men o bien arrastrarlo desde cualquier punto del panel frontal. El cluster pasa a ser indicador o control dependiendo del primer elemento que situemos en su interior. Posteriormente podemos utilizar las opciones Change to Control (cambiar a control) o Change to Indicator (cambiar a indicador) para cambiar todos los elementos a la opcin deseada.

A continuacin se presentan las funciones mas comunes para los clusters: Unbundle (separar): Descompone un cluster en sus elementos individuales.

76

Curso Basico de LabVIEW

Bundle (unir). Une todas las entradas individuales en nico cluster o cambia los valores de los componentes conectados.

Unbundle by Name (separa por nombre): Devulve los elementos del cluster cuyos nombres especificamos. Seleccionamos los elementos a los que queremos acceder haciendo pop-up sobre el nombre de los terminales de salida y seleccionando un nombre de la lista de elementos dentro del cluster.

Bundle by Name (unir por nombre): Reemplaza componentes en un cluster ya existente. Siempre hemos de conectar las entradas del cluster. Si estamos creado un cluster como indicador podemos conectar una variable local de ese indicador. Si el cluster funcionara como control en un SubVI, podemos hacer una copia de ese control sobre el panel frontal del VI y conectar los controles a la entrada el cluster.

6.3 CONTROLES E INDICADORES STRING

77

Curso Basico de LabVIEW

En este apartado se describe como usar los controles e indicadores de string ( cadenas de caracteres). Se puede acceder a estos objetos a travs de la paleta String & Table del men Controls

Un string es una coleccin de caracteres ASCII. No solo se usan como mensajes de texto. En el control de instrumentos pasamos los datos numricos como cadenas de caracteres o strings. A continuacin convertimos esas cadenas en nmeros. As mismo se necesitan strings para almacenar datos numricos en disco.

En la siguiente figura puede verse un control y un indicador de String:

Se puede introducir o cambiar texto en un control string con las herramientas operating o labeling. El texto nuevo o cambiando no pasa al diagrama hasta que se pulsa Enter del teclado numrico, se hace clic en cualquier otra parte del panel o se pulsa el icono Enter de la barra de herramientas. Pulsando la tecla Enter del teclado alfanumrico se consigue un salto de lnea en el string.

78

Curso Basico de LabVIEW

Para entrar una tabulacin en el string se ha de seleccionar la opcin/Codes del men pop-up del string y escribir/t. En la tabla siguiente se listan todos los cdigos de los caracteres no-imprimibles que podemos usar con los strings.

Si necesitamos disminuir el espacio que ocupa un string en el panel frontal, podemos usar la opcin Show Scrollbar ( mostrar barra de desplazamiento) de su men pop-up. LabVIEW presenta un gran numero de funciones para manipular strings. Estas funciones estn disponibles desde la paleta String del men Functions (figuar 6.2)

A continuacin se describen algunas de las funciones mas comunes:

String Length ( longitud de la cadena): Devuelve el numero de caracteres (bytes) en la cadena, que puede ser un escalar, un array ndimensional o un cluster.

79

Curso Basico de LabVIEW

Concatenate Strings (unir cadenas): Concatena todos los strings de entrada en un unico string de salida. String 0 y string 1 son los terminales de entrada por dececto. Se puede aadir tantos como sean necesarios.

String Subset (subcadena de un string): Devuelve un substring del string original comenzando en el valor del offset y con la longitud determinada por length.

To Fractional ( Paso a fracionar=: Convierte un numero en un string de punto flotante con notacion fraccional. El tamao viene determinado por los parmetros width (ancho) y precisin.

From Exponential/Fract/Eng (Convierte desde los formatos exponensial/fraccional/ingenieria): Interpreta los caracteres 0 a 9, signo mas, signo menos, e, E y punto decimal dentro de una cadena y aparte del offset como un numero en formato coma flotante en notacin e ingeniera o formato exponencial o fraccional y devuelve ese numero.
80

Curso Basico de LabVIEW

6.4 FICHEROS DE ENTRADA/SALIDA Las operaciones de entrada/ salida con ficheros nos permiten almacenar y recuperar informacin a y desde un disco. LabVIEW presenta una gran variedad de funciones para tratar diferentes tipos de operaciones con ficheros. Estas funciones se encuentran en planeta File I/O(Entrada salida de ficheros) del men Functions.

Almacenamiento de datos en un Archivo Nuevo Para guardar datos en un archivo de disco nuevo se han de seguir tres pasos: Crear el archivo nuevo, escribir los datos en el archivo y cerrar el archivo. Tambin podemos abrir uno ya existente y aadir la nueva informacin al final de ese fichero o sobre escribir su contenido. Con LabVIEW podemos escribir cualquier tipo de datos en el archivo que hemos abierto. Si otros usuarios o aplicaciones necesitan acceder a el, se deben escribir strings de datos, lo cual crea un fichero ASCII. Si la prioridad esta en la rapidez de acceso y en lo compacto, se debe escribir la informacin con formato binario. Se crea un archivo con formato binario cuando se escriben datos no-string (como un array de enteros) al archivo. Hay dos maneras de crear un archivo: Mediante la programacion a travs del dialog box (ventana de dialogo). En primer mtodo, proporcionaremos el nombre del archivo y del pathname (localizacin del archivo) dentro de VI. El pathname consta del nombre de la unidad (por ejemplo C o A), seguido por los dos puntos, tantas barras inclinadas (/) como subdirectorios haya que separa, y a continuacin el nombre del archivo. Un ejemplo seria C:/ LVSE/TEST1.DAT, donde el nombre del archivo es TEST!:DATA y se encuentra en el directorio LVSE. En el mtodo del dialog
81

Curso Basico de LabVIEW

box, el VI visualiza una ventana que podemos usar para buscar un directorio y escribir el nombre del archivo. En la figura 6.3 se muestran los pasos para grabar una cadena en un fichero:

En el ejemplo anterior, la funcin Open/Create/Replace File (abrir/crear/ reeplazar fichero) crea el archivo C:/LVSET/TEST1.DAT si no existe. Si ya esta creado pide confirmacin para remplazarlo con los nuevos datos. Si el lugar del 2 hubisemos introducido 1, creara siempre un archivo nuevo, eliminado, sin pedir confirmacin los posibles datos existentes en un fichero si existe. Si no esta creado, no lo crea y no graba los datos. Dicha funcin devuelve un numero refnum (numero de referencia). Este parmetro es un identificador de archivo generado cuando se crea un fichero o se abre uno ya existente. Identifica al archivo en las operaciones subsiguientes. Se puede observar que refnum se pasa secuencialmente desde una funcin File I/O a la siguiente. Como ninguna funcin se puede ejecutar hasta que hayan recibido todos sus entradas, el paso del valor refnum fuerza a las funciones del fichero a ejecutarse en el orden adecuado.

Esta funcin crea el fichero que Path Constant (constante de camino de suceso) especifica. Y asigna un parmetro refnum. Por consiguiente, la funcin Write File (escribir en fichero) escribe los datos en el archivo despues de recibir el refnum desde la funcin anterior. Aunque el dato en el ejemplo anterior es un string. Podemos introducir cualquier tipo de datos a la funcin. Si no fuese un string la funcin Write File escribe la forma binaria de los datos al disco. Finalmente. La funcin Close File (cerrar fichero) cierra el fichero despues de recibir el refnum.

NOTA: Estas funciones se encuentran siguiendo los siguientes pasos:


82

Curso Basico de LabVIEW

Functions VI VI.LIB 1FILE.LLB en el caso de la versin de estudiante.

Almacenamiento de datos en un Archivo ya existente

Para guardar informacin en un archivo que ya existe usamos la funcin Open File (abrir fichero) en lugar de la New File. Open File abre un fichero exsistente o sobrescribir la informacin del archivo original. La funcin EOF determina la posicin End-of-File (final de fichero). Este marcador especifica donde escribe los datos la funcin Write File. Si se deja sin conexin EOF, Write File aadira los datos al final del archivo. Si introduciremos por EOF el valor 0, los datos actuales sobrescriban el fichero exsistente (EOF se sita al principio del fichero). El siguiente ejemplo muestra los pasos para grabar nuestros datos sobreescribiendo los existentes en un fichero ya creado.

En el ejemplo anterior, el VI abre el fichero existente C:/LVSE/TEST1.DAT y asigna al fichero un parmetro refnum. El 0 introducido por el terminal pos offset (posicin del desplazamiento) de la funcin Write File aade los datos al comienzo del archivo. La funcin Close File cierra el fichero una vez que Write File finaliza. Recordar que el hecho de pasar el refnum fuerza el funcionamiento secuencial.

Recuperacin de datos desde un Archivo.

Cuando se lee desde un fichero, normalmente abrimos un fichero ya existente, leemos el contenido en forma de stings o cualquier otro tipo de datos, y cerramos el fichero. Los datos se deben leer con el mismo formato con el que se almacenaron. Es decir, si originalmente se guardaron en formato
83

Curso Basico de LabVIEW

ASCII usando tipos de datos de strings, deberemos leerlos como datos de string. El siguiente paso muestra los pasos para leer todo el contenido de un archivo :

La funcin Open File abre el fichero C:/LVSE/TEST1.DAT. Tambin devuelve el numero refnum. La funcin Read File (leer fichero) devuelve todo el archivo. La funcin Close File cierra el fichero.

Visualizacin del Dialog Box

En los ejemplos anteriores especificbamos el nombre del fichero dentro del diagrama de bloques. La funcin File Dialog presenta una ventana que podemos usar para buscar un directorio y escribir el nombre deseado para el archivo. EL siguiente ejemplo muestra los pasos para conseguirlo. Selecto Mode 1 visualiza dentro de la ventana todos los directorios y ficheros, pareciendo los nombres de los ficheros en gris.

Almacenamiento de Resultados (Spreadsheets) En un spreadsheet o tabla de resultados, los tabuladores separan columnas, mientras que los saltos de lnea separan filas. Usamos la funcin Concatenate Strings para insertar un tabulador entre cada alimento y un salto de lnea despues del ultimo elemento.
84

Curso Basico de LabVIEW

El siguiente fragmento de bloque de diagrama crea el fichero de texto que se indica debajo. La funcin Format & Append primero conviene el numero de itraciones y el numero aleatorio en strings. La funcin Concatenate Strings a continuacin inserta un tabulador y un salto de lnea, Mientras que el VI escribe el string formado al fichero.

LabVIEW tambin proporciona VLs para simplificar las operaciones de escritura/lectura con spreadsheets. Las funciones Write to Spreadsheet File y Read From Spreadsheet File dentro del men de funciones Utility son dos mtodos bsicos para escribir y leer desde ficheros con formato spreadsheet.

85

Curso Basico de LabVIEW

Todos estos ejemplos han sido elaborados con la versin de estudiantes. Las versiones 3.1 y 4.0 implementan funciones mas elaboradas que permiten reducir el numero de pasos necesarios.

86

También podría gustarte