83
Curso Basico de LabVIEW 4 C A P I T U L O 1 I N T R O D U C C I O N Hoy en día es mas frecuente ver en la industria la utilización del PC para la instrumentación y el control de procesos, ya sea para monitorear variables en el proceso de fabricación o bien para medir la calidad del producto final. Sobre este contexto se ubica la instrumentación 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 común y, apoyándose en elementos de hardware accesibles por el PC (tarjetas de adquisición, tarjetas DSP, instrumentos accesibles vía GPIB, VXI, RS-232), realiza una serie de medidas como si se tratase de un instrumento real. Hasta hace poco, la tarea de construcción de un instrumento virtual (en lo sucesivo VI) se llevaba a cabo con paquetes de software que ofrecían una serie de facilidades , como funciones de alto nivel y la incorporación de elementos gráficos, que simplificaban la tarea de programacion y de elaboración del panel frontal. Sin embargo, el cuerpo del programa seguía basado en texto, lo que suponía mucho tiempo invertido en detalles de programacion que nada tienen que ver con la finalidad del VI. Con la llegada

Curso lab view

Embed Size (px)

DESCRIPTION

labview

Citation preview

Page 1: Curso lab view

Curso Basico de LabVIEW

4

C A P I T U L O 1

I N T R O D U C C I O N

Hoy en día es mas frecuente ver en la industria la utilización del PCpara la instrumentación y el control de procesos, ya sea para monitorearvariables en el proceso de fabricación o bien para medir la calidad delproducto final. Sobre este contexto se ubica la instrumentación virtual, esdecir la idea de bajo un modulo de software simular tanto en apariencia comoen funcionamiento a un instrumento real tal como un osciloscopio omultimetro.

Un instrumento virtual es un modulo de software que simula el panelfrontal de instrumento común y, apoyándose en elementos de hardwareaccesibles por el PC (tarjetas de adquisición, tarjetas DSP, instrumentosaccesibles vía GPIB, VXI, RS-232), realiza una serie de medidas como si setratase de un instrumento real.

Hasta hace poco, la tarea de construcción de un instrumento virtual (enlo sucesivo VI) se llevaba a cabo con paquetes de software que ofrecían unaserie de facilidades , como funciones de alto nivel y la incorporación deelementos gráficos, que simplificaban la tarea de programacion y deelaboración del panel frontal. Sin embargo, el cuerpo del programa seguíabasado en texto, lo que suponía mucho tiempo invertido en detalles deprogramacion que nada tienen que ver con la finalidad del VI. Con la llegada

Page 2: Curso lab view

Curso Basico de LabVIEW

5

de software de programacion gráfica LabVIEW de National Instrument,Visual Designer de Burr Brown o VEE de Hewlet Packard, el proceso decreación de un VI se ha simplificado notablemente, minimizándose el tiempode desarrollo de las aplicaciones.

Este curso pretende mostrar las capacidades básicas de LabVIEWmediante el desarrollo de ejercicios sencillos pero que a la vez formulen elinterés de el participante en generar sistemas mas complicados.

Debido a que el objetivo del curso es sentar las bases sólidas del elentorno de programacion LabVIEW (lenguaje G) existirán algunos temas ydetalles que no serán cubiertas en este primer curso.

BIBLIOGRAFIA

Puede extenderse la información mediante la consulta bibliográfica de lossiguientes libros:

- LabVIEW. Programacion gráfica para el control de instrumentación.Antonio Manuel Lázaro. Paraninfo.

- LabVIEW. Manual de Programacion y referencia. NacionalInstrument. Manuales del Fabricante.

Page 3: Curso lab view

Curso Basico de LabVIEW

6

WEB

Puede accesarse a la pagina de Internet de National Instrument, dondeademás de estar todos los manuales en formato PDF existe dialogo con otrosusuarios así como noticias de nuevas funciones y técnicas de optimización, asícomo un excelente servicio de preguntas y respuestas.

http://www.ni.com

Page 4: Curso lab view

Curso Basico de LabVIEW

7

C A P I T U L O 2

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 familiarizarsecon el uso del LabVIEW, incluyendo las ventanas panel y diagram, menús deLabVIEW y la ventana de jerarquía. Asimismo se discuten otros aspectosnecesarios como el uso de los modos edit y run; creación de objetos;herramientas y obtención de ayuda.

2.1.1 Ventanas Panel y Diagram

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

2.1.2 Menús de LabVIEW

La programacion en LabVIEW obliga a utilizar con frecuencia losdiferentes menús. La barra de menús de la parte superior de la ventanade un VI contiene diversos menús pull-down (desplegables). Cuandohacemos clic sobre un item o elemento de esta barra, aparece un menúpor debajo de ella. Dicho menú contiene elementos comunes a otrasaplicaciones Windows, como open (Abrir), Save (Guardar) y Paste(pegar), y muchas otras particulares de LabVIEW. La siguiente figuramuestra la barra de menús para la versión 3.1 cuando la ventana panelesta activa. El menú Functions reemplaza al controls cuando la ventanaDiagram esta abierta.

Page 5: Curso lab view

Curso Basico de LabVIEW

8

File Sus opciones se usan básicamente para abrir, cerrar, guardar e im(Archivo) primir Vls.

Edit Se usa principalmente para organizar el panel frontal y el diagra(Edicion) ma. De bloques y establecer nuestras preferencias.

Operate Sus comandos sirven para ejecutar el VI.(Funcion)

Controls Con este menu, podemos añadir 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 Se utiliza para cambiar la fuente, estilo y color del texto.(Texto)

Help Presenta ayuda sobre los diferentes iconos y otros aspectos de(Ayuda) LabVIEW.

Page 6: Curso lab view

Curso Basico de LabVIEW

9

En el caso de la versión 4.0, este menú ha quedado de la siguiente manera:

Exactamente igual que las ventanas Panel y Diagram. Las funciones deestos comandos respecto a la versión 3.1 son:

File Misma funcion.(Archivo)

Edit Misma funcion.(Edicion)

Operate Presenta nuevas opciones como pueden ser la impresión cuando(Funcion) 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 Misma funcion.(Ayuda)

El menú de LabVIEW que utilizaremos con mas frecuencia es el menúpop-up (emergente) de objetos, al cual accedemos situando el cursor sobre elobjeto en cuestión y pulsando el botón derecho del ratón. Si la pulsación sehace sobre un espacio vacío, el menú que se obtendrá vendrá en función de laherramienta seleccionada.

Page 7: Curso lab view

Curso Basico de LabVIEW

10

2.1.3 Ventana de Jerarquía

Si se selecciona Show VI Hierarchy ( Mostrar Jerarquía del VI) desde elMenú Windows ( menú project en la versión 4.0) aparecerá una ventana quemuestra los Vls y subVls que hay actualmente en memoria. Los Vlsprincipales se muestran en la parte superior de la ventana. Los subVls semuestran con su icono correspondiente por debajo de su VI, con una línea quelos conecta, como indica la figura 2.1.

Si la ventana Help esta activa y movemos el cursor sobre un icono, endicha ventana aparecerá la información disponible para ese VI.

Se puede hacer doble-clic cualquier icono de la ventana Hierarchy paraabrir el VI asociado.

La versión 4.0 mejora esta ventana, permitiéndonos hacer unapresentación vertical u horizontal.

NOTA: Esta opción no esta disponible en la versión de estudiante.

2.1.4 Uso de los modos EDIT (Edición) y RUN (ejecución)

Podemos crear o cambiar un VI cuando este esta en el modo Edit en el,las herramientas de edición se habitan, en la pelea del modo Edit, pordebajo de la barra del menú de ventana, como se indica a continuación:

Page 8: Curso lab view

Curso Basico de LabVIEW

11

Ver Herramientas en LabVIEW para mas información.

Cuando estamos listos para probar nuestro VI, hacemos clic sobre botónde modo o seleccionamos Change to Run Mode ( Cambio al modo deejecución) desde el menú Operate. Haciendo esto complicamos el VI y loponemos en el modo Run. En este punto podemos disponer de las opciones dedepuración ejecución del VI, diferentes modos de ejecución, impresión dedatos, etc.

Si lo que queremos es ejecutar el VI desde el modo Edit sin pasar elmodo Run, hemos de hacer clic sobre la flecha de ejecución. Si fuesenecesario, LabVIEW compilaría primero el VI, despues conmuta al modoRun, 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 modificación en laversión 4.0. Los iconos correspondientes a estos modos se indican acontinuación.

Se puede observar que es aquí donde aparece el tratamiento de losdiferentes tipos de letras en la versión 3.1 lo hacíamos con Text y la alineacióny distribución de objetos. Así mismo vemos que no aparece ningunaherramienta. En la nueva versión se han independizado pasando a tener unaventana propia, a la cual accedemos con Show Tools Palette ( Mostrar paletade herramientas) del menú Windows.

Otro aspecto a destacar es el botón Pause ( Pausa).. Al hacer clic en else para la ejecución del VI y vamos al diagrama de bloques, parpadeando lasiguiente secuencia que se ejecutara.

2.1.5 Creación de objetos

Para elaborar el panel frontal hacemos de situar sobre el los objetosdeseados mediante su selección desde el menú Controls. Creamos

Page 9: Curso lab view

Curso Basico de LabVIEW

12

objetos sobre el diagrama de bloques seleccionándolos desde el menúFunctions. Por ejemplo, si queremos crear un Knob o botón rotatoriosobre el panel frontal, primero hemos de seleccionarlo desde la paletaNumeric (Numérico) del menú Controls, como se indica en la siguientefigura 2.2.

El objeto aparecerá en la ventana panel con un rectángulo negro o gris querepresenta una etiqueta de identificación o Label. Si queremos usarla en esemismo momento, introduciremos el texto desde el teclado. Despues de haberlohecho, cualquiera de las siguientes acciones completa la entrada:

- Pulsar < Shift + Enter >- Pulsar < Enter> del teclado numérico.- Clic sobre el botón Enter en la paleta de herramientas.- Clic fuera de la etiqueta.

Page 10: Curso lab view

Curso Basico de LabVIEW

13

La figura 2.3 muestra un ejemplo del resultado de esta acción:

Cuando creamos un objeto sobre el panel frontal, al mismo tiempo secrea el terminar correspondiente sobre el diagrama de bloques. Este terminalse 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. Estediagrama contendrá terminales para todos los controles e indicadores del panelfrontal.

Todos los objetos en LabVIEW tiene asociados menús Pop-up, loscuales podemos obtener pulsando el botón derecho del ratón sobre dichoobjeto. Mediante la selección de sus diferentes opciones podremos actuarsobre determinados parámetros, como el aspecto o comportamiento de eseobjeto.

Por ejemplo, si no hubiéramos introducido texto en la etiqueta delcontrol anterior, esta habría desaparecido al hacer clic en cualquier otro lado.Para volver a visualizarla tendríamos que obtener el menú Pop-up de esecontrol y seleccionar Label del menu Show (figura 2.4).

Page 11: Curso lab view

Curso Basico de LabVIEW

14

En la versión 4.0 el proceso en si es el mismo. La única diferencia esque no tenemos los menús Controls y Functions en la barra superior, sino queson ventanas flotantes que podemos tener visibles o no. Si no lo están,utilizaremos la opción Show Controls Palette (Mostrar paleta de controles) oShow Functions Palette ( Mostrar paleta de funciones) del menú Windows.Una vez visibles actuaremos tal y como se ha indicado para la versión 3.1.

Otra opción es hacer clic con el botón derecho del ratón en cualquierárea libre de la pantalla: Aparecerá el menú Controls o Functions segúnestemos en la ventana Panel o Diagram, respectivamente.

2.2 HERAMIENTAS DE LabVIEW

Una herramienta es un modo de funcionamiento especial del ratón. LasUsamos para llevar a cabo funciones especificas de edición o ejecución.

La herramienta Operating (Funcionamiento mano) maneja los controlesdel panel frontal (y los indicadores en el modo Edit). Es la única herramientadisponible en el modo Run.

- La herramienta Positioning (Situación cursor) selecciona, mueve yredimensiona objetos.

- La herramienta Labeling (Etiquetado letra) crea y edita textos.

Page 12: Curso lab view

Curso Basico de LabVIEW

15

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

- La herramienta Coloring (coloración pincel) colorea diversos objetos y losfondos.

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 herramientasWiring y positioning cuando la ventana Diagram es la activa.

La versión 4.0 implementa nuevas herramientas y cambia el nombre de lasya existentes:

- Operate Value (valor operativo mano con dedo) Misma función queOperating.

- Position/Size/Select (Situación / Tamaño / Selección cursor). Realiza lamisma función que Positioning.

- Edit Text (Edición de Texto letra). Misma función que Labeling.- Connect wire (Conexión de cables rollo de cable). Misma función que

wiring.- Object Popup (Menú pop-up del objeto cursor con caja) Función nueva.

Despliega el menú pop-up asociado al objeto. Tiene el mismo efecto que sipulsamos el botón derecho del ratón sobre el objeto.

- Scroll Window (Desplazamiento de la pantalla mano sin dedo). Funciónnueva. Desplaza la pantalla en la dirección que deseamos para ver posibleszonas ocultas.

- Set/Clear Breakpoint (Establecer/Quitar puntos de ruptura Stop). Funciónnueva. Permite poner tantos puntos de ruptura como deseemos a lo largodel diagrama de bloques. Cuando durante la ejecución se llega a uno deellos, LabVIEW conmuta automáticamente al diagrama de bloques.Usamos esta misma herramienta para quitar los puntos.

- Pobre Data (Sonda de datos circulo con una P). Funciona como la opciónPobre de la versión 3.1 (ver apartado 3.3.3 Uso del probe).

Page 13: Curso lab view

Curso Basico de LabVIEW

16

- Get color (Capturar color especie de probeta). Función nueva. Permitesaber de manera especifica que color tiene un objeto. texto u otroselementos.

- Set Color (Colorear pincel). Misma función que Coloring.

2.3 AYUDA Y VENTANA DE AYUDA

La ventana Help de LabVIEW ofrece información sobre funciones,Constantes, subVls, controles e indicadores. Para visualizarla, escoger ShowHelp del menú Help. Podemos situar la ventana Help en cualquier punto de lapantalla.

NOTA: La descripción de cualquier VI situado en la ventana Help estalimitada a 256 caracteres.

Cuando pasamos el cursor sobre una función, un VI o subVI(Incluyendo el icono del VI abierto, situado en la parte derecha superior de laventana del VI), la ventana Help muestra su icono con los cables del tipo dedatos apropiado para cada terminal. Las variables de entrada quedan a laizquierda y las de salidas a la derecha. Los nombres de los terminales aparecenjunto a cada cable. Si el VI tiene asociada una descripción, esta se visualizara.Estas descripciones se introducen mediante el dialogo Get Info (ObtenerInformación) del VI.

Los nombres de los terminales son las etiquetas o Labels de loscorrespondientes controles e indicadores del panel frontal.

Cuando pasamos el cursor sobre una constante universal, la ventanaHelp visualiza su valor. Cuando se pasa sobre un control o indicador, sevisualiza la descripción para ese control o indicador en concreto, si existe lainformación.

Al poner la herramienta Wiring sobre un cable, la ventana Helpvisualiza el tipo de dato transportado por ese cable. Asimismo, cuando semueve la herramienta Wiring sobre el icono del VI, el terminalcorrespondiente al conector se ilumina en la ventana Help.

También podemos usar el comando Lock Help (Bloquear Ayuda) delmenú Help para mantener una ayuda particular en pantalla, de manera que el

Page 14: Curso lab view

Curso Basico de LabVIEW

17

hecho de mover las diferentes herramientas sobre el diagrama no cambia lavisualización de la ventana Help.

Como era de esperar, también la ayuda en la versión 4.0 ha quedadomejorada. Uno de los aspectos mas significativos se aprecia cuandotrabajamos con la herramienta Connect Wire. Al situarla sobre una función, desu icono sale un pequeño trozo de cada teminal, y no solo esto, sino que quedareflejado en una etiqueta el nombre del terminal al que vamos a realizar laconexión. Todo esto asegura una unión prácticamente sin posibilidad deerrores. Un ejemplo puede verse en la siguiente figura:

Otra opción nueva es la que permite tener una ayuda detallada (DetailedDiagram Help) o sencilla ( Simple Diagram Help).

2.4 EJERCICIOS PRACTICOS

1.- Poner las ventanas Panel y Diagram una al lado de la otra primero, ydespues una encima de la otra.

La solución es:

Para el primer caso:-Clic en el menú Windows.-Tile left and Right.

Page 15: Curso lab view

Curso Basico de LabVIEW

18

Para el segundo caso:-Menú Windows.-Tile Up and Down.

2.-Abrir el VI pulse Demo (NO GRABAR en ningún caso)

La solución 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 solución 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 (NOGRABAR).

- 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 botón derecho encualquier punto de la pantalla.

Page 16: Curso lab view

Curso Basico de LabVIEW

19

- Para el tercer punto seleccionar la herramienta cursor. Situarse en laesquina superior o inferior derecha. Hacer clic y arrastrar el mouse hastaconseguir el tamaño deseado.

- Para el cuarto punto seleccionar la herramienta operación (mano). Situarlasobre la raya amarilla del control y hacer clic. Nos desplazaremos hacia laderecha hasta que en el indicador aparezca 0,55.

- Para el quinto punto seleccionar la herramienta color (pincel). Hacer cliccon el botón derecho en cualquier punto libre de la pantalla. Aparece lapaleta con todos los colores. La pantalla cambia al color sobre el quesituamos el cursor. Seleccionar el rojo que mas nos guste y soltar el botónderecho.

5. Ejecutar el VI Pulse Demo, primero desde el modo Edit; despues desde elmodo Run y, finalmente, en el modo de ejecución continua.

La solución es:

- Desde el modo Edit

- Clic en la flecha. En la gráfica obtendremos un pulso con ruido añadido.Desde el modo Run

- Clic en lapiz con flecha.

- Clic en flecha.

Modo de ejecución continua.

- Pasar al modo Run

- Clic en flechas en rotacion

- Cambiar los valores de los diferentes controles y observar como vavariando el resultado obtenido en la gráfica.

- Para parar hacer clic en stop o flechas en rotacion.

Page 17: Curso lab view

Curso Basico de LabVIEW

20

6. Salir del VI Pulse Demo sin grabar las modificaciones en disco.

La solución 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 comoC:7LVSE/EJEM1.VI.

La solución es:

- Para A y B: Herramienta cursor. Clic con el botón derecho en zona libre omenu controls. Tomamos de la opción Numeric el elemento DigitalControl. 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 yescribir las etiquetas.

- Para A=B, A>B, A<B y B=0. Clic con el botón derecho en zona libre. Dela opción Boolean tomamos Round Led y escribimos las etiquetas.

Si alguna etiqueta no estuviese visible, nos situaríamos sobre el control oindicador en cuestión y desplegaríamos su menú Pop-Up. Se toma laopción Show, y dentro de esta. label. Si el problema fuese una etiquetaescrita incorrectamente, seleccionaríamos la herramienta etiqueta,marcaríamos la etiqueta errónea y escribiríamos el texto correcto.Finalmente, para grabarlo de disco:

- Menu File.- Save.- Escribir C:/LVSE/EJEM1.VI- Pulsar Enter.

Page 18: Curso lab view

Curso Basico de LabVIEW

21

C A P I T U L O 3

CREACION DE UN INSTRUMENTO VIRTUAL.

3.1 TIPOS DE DATOS EN LABVIEW. CONTROLES EINDICADORES

LabVIEW ofrece una gran variedad de tipos de datos con los quepodemos trabajar respondiendo a las necesidades reales con las que nosencontraremos. Uno de los aspectos mas significativos de LabVIEW es ladiferenciación que efectúa en el diagrama de bloques entre los diferentes tiposde controles o indicadores, basada en que cada uno de ellos tiene un colorpropio. De esta manera, y como consecuencia de una memorización oasimilación practica, nos será muy facil identificarlos y reconocerinmediatamente si estamos trabajando con el tipo de datos adecuado.Distinguimos los siguientes tipos, los cuales pueden funcionar tanto comocontroles como indicadores (entre paréntesis queda reflejado el color con elque queda representado en el diagrama de bloques):

- Boolean (Verde claro)

Los tipos de datos booleanos son enteros de 16 bits. E bit mas significativocontiene el valor Booleano. Si el bit 15 se pone al 1, entonces el valor delcontrol o indicador es true (Verdadero) por el contrario, si este bit 15 vale0, el valor de la variable booleana será false ( falso).

- Numéricos: Hay diferentes tipos

- Extended ( Naranja)

Según el modelo de ordenador que estemos utilizando los números decoma flotante con precisión extendida presentan el siguiente formato:

Macintosh: 96 bits (formato precisión extendida MC68881- MC68882) Windows: 80 bits (formato precisión extendida 80287) Sun: Formato 128 Bits HP-UX: Son almacenados como los números en coma flotante de doble

Page 19: Curso lab view

Curso Basico de LabVIEW

22

Precisión.

Windows:

- Double (naranja)

Los números en coma flotante de doble precisión cumplen con el formatode doble precisión IEEE de 64 bits. Es el valor por defecto de LabVIEW.

- Single ( naranja)

Los números en coma flotante de precisión simple cumplen con el formatode precisión simple IEEE de 32 bits.

- Long integer (azul)

Los números 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) Entero largo sin signo

- Unsigned Word (azul) Palabra sin signo

- Unsigned Byte (azul) Byte sin signo.

- Complex Extended (naranja) Numero complejo con precisión extendida

- Complex Double (naranja) Complejo con precisión doble.

- Complex Single (naranja) Complejo con precisión simple.

Page 20: Curso lab view

Curso Basico de LabVIEW

23

- Arrays (depende del tipo de datos que contenga)

LabVIEW almacena el tamaño de cada dimensión de un array como longInteger seguido por el dato. El ejemplo que sigue muestra un arrayunidimensional con números en coma flotante de precisión simple. Losnúmeros decimales a la izquierda presentan el desplazamiento donde empiezacada array en la posición de memoria.

Los arrays booleanos se almacenan de manera diferente a los booleanosescalares. Estos arrays se almacenan como bits empaquetados. El tamaño de ladimensión viene dando en bits en lugar de bytes. El bit 0 se guarda en laposición mas alta de memoria (215), y el bit 15 en la posición mas baja (20).

- Strings (rosa)

LabVIEW almacena los strings como si fuera un array uni-dimensional debytes 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 noreconoce que es lo que hay en ese bloque de memoria. Es especialmenteutil para pasar un bloque de datos por referencia entre nodos de interfacede código ( code interface Nodes o CINs).

- Paths (verde oscuro)

LabVIEW almacena las componentes tipo y numero de un path en palabrasenteras, seguidas inmediatamente por las componentes del path. El tipo depath es 0 para un path absoluto y 1 para un path relativo. Cualquier otrovalor indicaria que el path no es valido. Cada componente del path es unacadena pascal (P-string), en la cual el primer byte es la longitud de la P-string (sin incluir el byte de longitud).

Page 21: Curso lab view

Curso Basico de LabVIEW

24

- Clusters (marrón o rosa)

Un clusters almacena diferentes tipos de datos de acuerdo a las siguientesnormas: Los datos escalares se almacenan directamente en el clusten losarrays, strings, handles y paths se almacenan indirectamente. El clusteralmacena un handle que apunta al área de memoria en la que LabVIEW haalmacenado realmente los datos.

Respecto a la versión 4.0 no hay diferencias significativas.

3.2 INTERCONEXION DE BLOQUES

Para conectar los terminales se usa la herramienta Wiring (cableado). Lafigura siguiente muestra dicha herramienta, indicando su punta cursor o hotspot.

Para una mejor explicación, diremos que este símbolo (1) representa elratón. En las próximas ilustraciones la flecha al final muestra donde hacer clicmientras que el numero impreso indica cuantas veces hacer clic.

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

Page 22: Curso lab view

Curso Basico de LabVIEW

25

cuando el hot spot se sitúa correctamente sobre el. Haciendo clic conectamosun cable a esa terminal. Una vez hemos hecho esa primera conexiónLabVIEW va dibujando un cable a medida que nos movemos por el diagramasin necesidad de mantener pulsando el botón del ratón.

Para unirnos a un cable ya existente, realizar la operación que acabamosde describir, empezando o acabando en el cable existente. Dicho cableparpadea cuando la herramienta Wiring se coloca correctamente.

Podemos unir correctamente un terminal fuera de una estructura conotro dentro de esa estructura usando las técnicas descritas anteriormente.LabVIEW crea un túnel en el limite de la estructura, allí donde el cable locruza, como se muestra en la siguiente figura ( rectángulo negro de 2):

Page 23: Curso lab view

Curso Basico de LabVIEW

26

Los cables pueden ir horizontal o verticalmente, dependiendo de ladirección en que movemos inicialmente la herramienta Wiring. LabVIEWcentra las conexiones sobre las terminales, sin tener en cuenta la posiciónexacta del hot spot cuando hacemos clic, como se muestra en la siguienteilustración.

Podemos desplazar el cable sin tener que hacer clic. Hacemos cliccuando queramos detener el avance y/o cambiar la dirección dedesplazamiento, como se muestra en la siguiente ilustración.

También podemos cambiar la dirección en aquellos puntos en los que elcable ha de girar pulsando la barra de espacio. Podemos hacer doble clic conla herramienta Wiring para empezar o acabar un cable de conexión en unazona abierta, tal y como se indica a continuación.

Page 24: Curso lab view

Curso Basico de LabVIEW

27

Cuando los cables se cruzan aparece un pequeño corte en el primercable que se habia dibujado. Como si el segundo cable pasase por debajo,como se indica a continuación.

En la versión 4.0 el procedimiento es idéntico ( la herramienta Wiringcorrespondiente a la Connect Wire).

3.3 DEPURACION DE ERRORES

3.3.1 Ejecución paso a paso. Flujo de datos

Para la depuración de nuestro VI nos interesara realizar la ejecución desu diagrama de bloques nodo a nodo o paso a paso (single-step mode). Parahabitarlo haremos clic en el botón step (of raya) (on pulsante). El símbolocambia de la línea plana a la forma de onda cuadrada. Pulsando de nuevosobre dicho botón en cualquier momento volveremos al modo de ejecuciónnormal.

Cuando el VI esta funcionando en el modo de ejecución paso a pasoaparece el siguiente botón: pulso. Haremos clic sobre el cada vez quequeramos que se ejecute un nodo. Una vez finalizada la ejecución del VI dichobotón desaparece. Si regresamos al modo de ejecución normal antes quefinalice el VI su ejecución, estando en el modo de paso a paso, el botóndesaparece y el VI se ejecuta a velocidad normal.

El botón paso a paso solo afecta a la ejecución de los VI o Sub Vls queestén en el modo de ejecución single-step. Si un VI en single-step tiene un

Page 25: Curso lab view

Curso Basico de LabVIEW

28

SubVI que también esta en ese modo y otro SubVI que esta en el modo deejecución normal; el primero se tendrá que ejecutar nodo a nodo, mientras queel segundo se ejecutara a velocidad normal.

Asimismo, para la depuración de nuestro VI, nos interesara ver laejecución paso a paso de su diagrama de bloques, Para habilitar este modohacer clic sobre el botón execution highlighting (ejecución resaltada) focoapagado, que cambia a foco prendido. Hacer clic sobre este botón encualquier momento para volver al modo de visualización normal.Normalmente usaremos el modo de execution highlighting junto con el deejecución paso a paso (single-step mode) para poder conservar como se realizael flujo de datos a través de los nodos. Este modo de ejecución reduce mucholas prestaciones de VI.

A medida que los datos pasan de un nodo a otro su movimiento seindica por unas burbujas que van recorriendo los cables. Además, en el modopaso a paso, el siguiente nodo parpadea rápidamente. Todo ello se muestra enla figura 3.2.

Podemos compilar el VI sin las opciones de los modos single-step yexecution highlighting. Esto reduce los requisitos de memoria y aumenta en1% aproximadamente el rendimiento de cada VI compilado de esta manera.Para ello usamos la opción VI setup...(configuración del VI) del menú pop-updel icono del VI en la ventana panel y seleccionamos la opción que permiteocultar estos botones.

La versión 4.0 presenta una serie de cambios que vamos a tratar deexplicar poco a poco. Para ello representamos los iconos que aparecen en labarra de menús de la ventana Diagram antes de comenzar al ejecución.

Como ya sabemos, si queremos hacer la ejecución normal haremos clicsobre el botón flecha; si lo que queremos es una ejecución continua, el clic seharía sobre flechas en rotacion para detener completamente la ejecución yvolver al modo edit pulsaríamos stop (icono que sustituye a cuandoestamos en el modo run).

Page 26: Curso lab view

Curso Basico de LabVIEW

29

Por otro lado, si lo que buscamos es realizar una pausa momentánea (tan larga como queramos), pulsaremos pausa. Al hacerlo, LabVIEW conmutaal diagrama de bloques (si no estabamos en el), y resalta, parpadeando, lasiguiente función a ejecutarse. Pulsando sobre el mismo botón, que ahora pasaa llamarse Continue o continuación y tiene el siguiente aspecto desabilitado,volvemos al modo de ejecución que teníamos establecido.

Podemos observar que el botón de execution highlighting es el mismoque en la versión 3.1, foco apagado y, así mismo su función es exactamentela misma.

La mayor diferencia entre ambas versiones se da en la ejecución paso apaso. Si bien en la versión 3.1 teníamos un único modo, llamandogenéricamente Single-step, ahora, en la 4.0 tenemos de forma global dosmodos distintos. Estos dos modos quedan diferenciados con los iconos flechaque entra y flecha que salta. Si observamos cuidadosamente sus dibujosquizá podamos deducir en que consiste la diferencia. En traflecha que entenemos una flecha que entra en un objeto, mientras que en flecha que saltase lo “salta”. Así pues, supongamos que tenemos el siguiente diagrama debloques:

Page 27: Curso lab view

Curso Basico de LabVIEW

30

Gracias al modo de funcionamiento que permite el icono flecha quesalta, podemos ir ejecutando paso a paso todo el diagrama menos, porejemplo, la función Case, que se ejecutara a velocidad normal.

En caso de que no haya ningún nodo en el que podamos “meternos”,flecha que entra tanto como flecha que sale realizar la misma función:

Page 28: Curso lab view

Curso Basico de LabVIEW

31

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

La figura 3.4 muestra el efecto de pulsar flecha que entra. Sihubiésemos pulsado flecha que sale sencillamente habríamos saltado todoeste bloque.

Page 29: Curso lab view

Curso Basico de LabVIEW

32

Finalmente. El botón flecha que sale detiene la ejecución paso a paso,es decir, nos devuelve a un modo de ejecución normal, continuo y/ohighlighting.

3.3.2 Vls rotos

Un VI no se pude compilar o ejecutar si esta roto. Los Vis normalmenteestán rotos mientras los estamos construyendo hasta que unimos todos losiconos del diagrama de bloques. Si una vez hecho esto continuase roto, loprimero que haríamos seria ejecutar la opción Remove Bad Wires (Quitarcables sueltos) del menú edit o Ctrl+B. A menudo esto consigue arreglar elVI.

Para averiguar las razones por las que un VI permanece roto haremosclic sobre el botón broken run (ejecución rota) flecha rota (en la versión 4.0recibe el nombre de List Errors o Lista de Errores). Aparecerá una ventanallamada Error List (Lista de Errores)donde se indican todos los errores ( figura3.5).

Page 30: Curso lab view

Curso Basico de LabVIEW

33

Igualmente podemos acceder a esta ventana haciendo clic sobre el botónWarning(aviso) del VI o seleccionando Show Error List (Mostrar lista deerrores) del menú Windows. El botón Warning solo esta visible cuando el VItiene errores y se dan las siguientes situaciones: Configuración de LabVIEWpara que muestre las advertencias (opción Show Warnings (Mostrar Avisos)en el dialogo preferences (preferencias)) y activación de la opción ShowWarnings en la ventana del dialogo Error List.

Para localizar un error particular hacer doble clic sobre el texto que lodescribe. LabVIEW nos enseña el error mostrando la ventana en cuestión eiluminando el objeto causante del error. También podemos ver los errores yavisos de otros Vis seleccionando sus nombres desde el menú pop-up VisList (Lista de VI)

A continuación se indican algunas de las razones mas comunes por lasque un VI puede aparecer roto durante el modo de edición:

- Se ha dejado sin conectar el terminal de una función que necesita unaentrada. Por ejemplo, debemos conectar todas las entradas de una funciónaritmética. No podemos dejar funciones sin conectar en el diagrama debloques mientras hacemos pruebas de nuestro diseño.

- El diagrama de bloques contiene un cable roto debido a unaincompatibilidad de tipos de datos, perdidas o conexiones sin fin. Debemoseliminar todos estos cables. La forma mas rápida y precisa es mediante elcomando Remove Bad Wires (Ctrl+B) del menú Edit.

- Un subVI esta roto o hemos editado su conector despues de que hayamossituado su icono sobre el diagrama de bloques.

- Podemos tener problemas con objetos que hayamos hecho invisibles,deshabilitados o alterados de alguna manera a través de su Attribute Node(nodos de atributos). Si fuese posible hemos de restablecer el objeto paraeliminar el problema.

Otro tipo de error son los errores de rango. Su indicador flecha rotaaparece en lugar del botón de ejecución en los siguientes casos:

Page 31: Curso lab view

Curso Basico de LabVIEW

34

- Configuramos un control en un SubVI para que la ejecución cuando recibaun valor fuera de rango ( a través de la opción Data Range... ( rango de losdatos) del control) y el control recibe este valor.

- Configuramos un indicador de un SubVI para que pare la ejecución cuandoIntente pasar un valor fuera del rango al VI que lo llama, y el indicadorintenta pasar ese valor.

- Un operador entra un valor fuera de rango en un control que hemosconfigurado para que pare la ejecución si se produce un error, siempre queel VI no este en ese momento ejecutándose.

Podemos saber que control o indicador esta fuera de rango por su cambiode apariencia, como se muestra en la figura 3.6.

Hay dos mnemónicos que pueden aparecer en la visualización de unnumero en coma flotante para indicar un fallo en los cálculos o resultadossin sentido. NaN (Not A Number, no un numero) es un simbolo queaparece como resultado de determinadas operaciones como, por ejemplo, laraíz cuadrada de un numero negativo. Inf (infinito) es otro símboloespecial que aparece, por ejemplo, al dividir por cero.

Los datos indefinidos pueden desvirtuar todas las operacionesposteriores. Las operaciones en coma flotante propagan los NaN o +-, loscuales, al ser pasados de forma explícita o implícita en enteros booleanos,se transforman en valores sin sentido. Por ejemplo, dividir por cerodevuelve inf, pero convirtiendo este valor a una palabra entera obtenemosel valor 32.767, el cual puede parecer un valor normal. Por ello, antes dehacer la conversion a los tipos enteros, hemos de comprobar los valores enforma flotante intermedios para validar los resultados, a menos queestemos seguros que este tipo de error no ocurren en nuestro VI.

A continuación se presentan algunas técnicas para la depuración de unVI que ya funciona pero que no da resultados esperados.

- Comprobar que los cables están conectados a los terminales correctos.Haciendo triple-clic sobre el cable que nos preocupa con la herramientaPositioning, se ilumina todo el cable. Un cable que parece que sale de unterminal puede realmente salir de otro totalmente diferente.

Page 32: Curso lab view

Curso Basico de LabVIEW

35

- Esto ha quedado prácticamente solucionado con la versión 4.0, ya que antes de hacer la conexión 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 funciónEsta correctamente conectada.

- Si determinadas funciones o SubVIs tienen terminales de entrada sinconectar hacia otras funciones o SubVI, asegurarse de que el valor por defectoes el que esperamos que sea realmente.

- Usar los puntos de ruptura y ejecución paso a paso mostrando el flujo dedatos para comprobar el VI funciona como lo habíamos planeado.Desactivar estos modos cuando no queramos que interfieran con elfuncionamiento normal.

- Utilizar la opción Probe (sonda) para comprobar el valor intermedio de lasvariables. También comprobar los errores de las funciones y SubVIs de lasalida, especialmente en el caso de operaciones I/O.

- Observar el comportamiento del VI o SubVI con diferentes valores deentrada.Para los controles numéricos en coma flotante podemos probar con losvalores NaN y +- Inf además de los valores normales.

- Si el VI funciona mas lentamente de lo que esperábamos, asegurarse deque no haya ningún SubVI que esta en el modo de ejecución highlighting.Así mismo cerrar las ventanas de los SubVIs que no se estén utilizando.

- Comprobar las representaciones de los controles sobre panel frontal paraver donde tenemos overflows debido a la conversión de un valor de comaflotante en entero o de un entero en otro menor.

- Comprobar el rango de los datos y de error de los controles e indicadores.Podría ser que no actuasen ante un error como habíamos presupuesto.

- Comprobar los For Loops que de manera inadvertida se ejecuten ceroveces y creen un array vacío.

Page 33: Curso lab view

Curso Basico de LabVIEW

36

- Comprobar los While Loops de manera que el hecho de que no se cumplala condición de fin no de cómo resultado un desbordamiento de memoria obucle infinito.

- Verificar que inicializamos los registros de desplazamiento de la maneraadecuada, a menos que específicamente queramos guardar los datos de unaejecución a otra.

- Comprobar el orden de los elementos de un cluster tanto en su punto deorigen como final. Aunque LabVIEW detecta incompatibilidad de tipos dedatos y del tamaño del cluster en el momento de la edición , no sedetectarían errores con datos del mismo tipo. Usar la opción ClusterOrder… del menú pop-up para comprobar el orden cluster.

- Comprobar el orden de ejecución de los nodos. Aquellos nodos que noestén unidos a otros pueden ejecutarse en cualquier orden. La disposiciónespacial sobre el diagrama de bloques no es sinónimo de orden deejecución. Esto es la ejecución no tiene por que ir de izquierda a derecha ode arriba a bajo como en otros lenguajes de programacion convencionales.

- A diferencia de las funciones, los SubVIs sin unir no generan errormientras se esta en el modo edit. Si por equivocación situamos un SubVIsobre el diagrama de bloques, dicho SubVI se ejecutara cuando lo haga suVI, entorpeciendo la ejecución y quizás, desvirtuando los resultados.Podemos ocultar un SubVI inadvertidamente de tres maneras: Poniéndolodirectamente sobre otro nodo o icono, disminuyendo el tamaño de unaestructura sin mantener el icono a la vista, o poniéndolo fuera del áreaprincipal del diagrama de bloques. Podemos usar las tres opciones delmenú Windows (name of VI`s)s Callers, (name of VI`s)´s y UnopenedSubVIs) para determinar si existe algun SubVI extraño. También nospuede ayudar la opción Show VI Hierarchy. A veces deberemosredimensionar y mover las diferentes estructuras de un diagrama debloques para localizar todos los diferentes iconos extras (en la versión 4.0estas opciones se encuentran dentro del menú Project).

- Para completar la depuración de nuestro VI disponemos de las siguientesherramientas: Ejecución paso a paso (single-step-mode) visualización delflujo de datos (Highlighting execution), visualización de valoresintermedios (probe) y establecimiento de puntos de ruptura (Breakpoints).Los dos primeros ya han sido vistos en puntos anteriores por lo que ahorase pasaran a tratar los dos últimos.

Page 34: Curso lab view

Curso Basico de LabVIEW

37

3.3.3 Uso del Probe

Probe ( sonda) es una herramienta que podemos utilizar para comprobarlos valores intermedios dentro de un VI que es ejecutable pero que generaresultados sospechosos e inesperados. Por ejemplo, podemos tener undiagrama de bloques con un conjunto operaciones una de ellas cuales da unresultado incorrecto. Podríamos ir conectando un indicador a la salida de cadauna de esas operaciones o bien utilizar la herramienta Probe. La opciónprimera de colocar un indicador y realizar su conexión no es precisamente unabuena técnica de depuración. Consume mucho mas tiempo y nos obliga adisponer elementos sobre el panel frontal y diagrama de bloques queposteriormente tendremos que eliminar.

El Probe es similar a un indicador pero mucho mas facil de usar. Elsiguiente ejemplo (figura 3.7) muestra como acceder a esta herramienta.Estando en el modo run, desplegamos el menú pop-up del cable que sale delicono Random Number (0.1= y seleccionamos Probe. Se visualizara unaventana flotante. La primera vez que aparece presenta el valor por defecto. Seactualiza tan pronto como el VI se pone en funcionamiento y pasan los datos através de ese cable.

Podemos usar el Probe en unión con la ejecución paso a paso y flujo dedatos para ver los valores con mucha mas facilidad. El probe se debe insertarantes de comenzar la ejecución para ver los datos. No podemos cambiar elvalor de los datos con el Probe, que además no tiene efecto en la ejecución delVI.

Si creamos diferentes Probes podemos olvidar cual de ellos estánasociado a un cable en concreto. Si desplegamos el menú pop-up de un cable

Page 35: Curso lab view

Curso Basico de LabVIEW

38

que tiene asociado un probe. Podemos seleccionar Find Probe (encontrarsonda).Al seleccionar esta opción la entrada del Probe correspondiente pasa aser la activa y se ilumina momentáneamente. Así mismo, si desplegamos elmenú pop-up de la ventana Probe. Podemos encontrar el cable asociadotomando la opción Find Wire (encontrar cable=. Al selecionarla el diagramaque contiene dicho cable pasa a ser el activo y el cable queda resaltado.

La idea básica se mantiene en la versión 4.0. La única diferencia es queahora disponemos de una herramienta especifica que permite poner un probedirectamente sin tener que desplegar el menú pop-up del cable. Dichaherramienta 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 entradasde un SubVI antes de que este se ejecute.

Para establecer un punto de ruptura haremos clic sobre el botón trespuntos, el cual cambia a boton de signo de admiracion. Cuando se invocaeste VI se interrumpe la ejecución del VI principal, de manera que podemosver los valores que entran al SubVI. Haremos clic sobre este botón encualquier momento para volver al modo de ejecución normal.

También podemos habitar y deshabilitar el punto de ruptura con laopción VI Setup… del icono del VI en el panel frontal.

La versión 4.0 mejora ampliamente este funcionamiento con la nuevaherramienta Set/Clear Breakpoint (Establecer/Quitar puntos de ruptura). Laidea cambia radicalmente ahora podemos establecer paradas dentro del propiodiagrama de bloques, lo cual resulta ser, mas que una utilidad, una absolutanecesidad de primer orden.

Imaginemos, si no, un diagrama que comienza con un For Loop que hade ejecutarse ,mil veces, y sabemos que el problema no se encuentra en el. Siquisiéramos hacer una ejecución single-step o highlighting con la versión 3.1tendríamos dos opciones: pulsar dos veces la tecla de paso a paso o poner enun subVI todo el bloque posterior al For Loop y usar el botón de punto de

Page 36: Curso lab view

Curso Basico de LabVIEW

39

ruptura tal y como se ha visto al principio. Ambas opciones sin realmentemolestas.

Sin embargo con la versión 4.0 tan solo tendríamos que seleccionar laherramienta y hacer clic en el punto que queramos investigar. Al ejecutar elVI, este correrá a la velocidad normal hasta llegar a dicho punto, momento enque parara la ejecución y parpadeara el siguiente bloque a tratarse. Una vezaquí podemos pasar el VI a la ejecución paso a paso y/o highlighting y buscarlos posibles errores.

Para quitar un punto de ruptura haremos clic con la misma herramientasobre el punto a eliminar.

3.4 EJERCICIOS PRACTICOS

1.- Abrir ejem 1.vi y realizar la conexión de los diferentes terminales deldiagrama de bloque, de manera que en los indicadores obtengamos elresultado esperado.

La solución es:

- Una vez abierto vamos a la ventana Diagram.

- Para las funciones A+B, A-B y A/B desplegamos el menú Functions ohacemos clic con el botón derecho sobre cualquier área libre. Vamos a laopción Arithmetic y cogemos los siguientes iconos.

A+B AddA-B SubtractA*B MultiplyA/B Divide

- Para las funciones A=B, A>B, A<B y B=0, del menú Functions vamos a laopción Comparison y escogemos

A=B Equal? A>B Greater? A<B Less?

Page 37: Curso lab view

Curso Basico de LabVIEW

40

B=0 Equal?

- Para este ultimo será necesario introducir la constante de comparacion o(cero). Abrimos el menú function y de la opción Structs & Constantstomamos Numeric Constant, introduciendo un cero.

- Utilizando la herramienta rollo de cable realizar las conexiones adecuadasde manera que se obtenga algo parecido a la figura3.8.

- Utilizar todas las técnicas de depuración de errores para que el VI seaoperativo (básicamente 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=3 A*B=-2 A/B= -2 A=B OFF A>B ON A<BOFF B=0 OFF

- Para A=0yB:

A+B=0 A-B=0 A*B=0 A/B= Inf A=B ON A>B OFF A<B OFF B=0 ON

Donde OFF significa led apagado y ON led encenido:

La solución 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.

Page 38: Curso lab view

Curso Basico de LabVIEW

41

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

La solución 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 encuentrael problema y corregirlo.

Page 39: Curso lab view

Curso Basico de LabVIEW

42

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

La solución es:

- Para los tres casos: Estando en el modo run, situarnos sobre el cable quelleva al indicador que queramos comprobar y desplegar su menú pop-up.Toma la opción Probe de cada uno de ellos.

- Ejecutar el VI tanto en modo normal como single-step y executionhighlighting y ver como quedan reflejados los valores en las ventanasProbe.

Page 40: Curso lab view

Curso Basico de LabVIEW

43

C A P I T U L O 4

PROGRAMACION ESTRUCTURADA

4.1 INTRODUCCION

A la hora de programar, mechas veces es necesario ejecutar un mismoconjunto de sentencias un numero determinado de veces, o que estas serepitan mientras se cumplan ciertas condiciones. También puede ocurrir quequeramos ejecutar una u otra sentencia dependiendo de las condiciones fijadaso simplemente forzar que unas se ejecutan siempre antes que otras.

Para ello LabVIEW dispone de cuatro estructuras fácilmentediferenciables por su apariencia y disponibles en la opción Structures delmenú Function de la ventana Diagram:

4.2 ESTRUCTURAS ITERACTIVAS: FOR LOOP Y WHILE LOOP

FOR LOOP

Usaremos For Loop cuando queramos que una operación se repita unnumero 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 tieneasociados dos terminales:

Page 41: Curso lab view

Curso Basico de LabVIEW

44

1.- Terminal contador: Contiene el numero de veces que se ha ejecutadola estructura. El valor del contador se fijara externamente (ver también Arraysen el capitulo 6).

2.- Terminal de interacción: indica el numero de veces que se haejecutado la estructura: Cero durante la primera iteración, uno durante lasegunda y así hasta N-1.

Ambos terminales son accesibles desde el interior de la estructura, esdecir, sus valores podrán formar parte del subgdiagrama pero en ningún casose podrán modificar.

WHILE LOOP

Usaremos While Loop cuando queramos que una operación se repitamientras una determinada condición sea cierta. Su equivalente en lenguajeconvencional es:

Do ejecutar subdiagrama While condición is TRUE

Page 42: Curso lab view

Curso Basico de LabVIEW

45

(Aunque esta estructura es mas similar al comando Rrpeat-Until, ya quese repite como mínimo una vez, independientemente del estado de lacondición).

Al igual que For Loop contiene dos terminales:

1.- Terminal condicional: A el conectaremos la condición que hará quese ejecute el subdiagrama. LabVIEW comprobara el estado de este terminal alfinal de cada iteración, si su valor es TRUE( Verdadero) continuara, pero porel contrario si su valor es FALSE (Falso) detendrá la ejecución.

2.- Terminal de iteración: indica el numero de veces que se ha ejecutadoel bucle y que como mínimo, siempre será una (i=O).

Al hacer pop-up tanto en el For Loop como en el While Loop sedespliega el siguiente menú:

(La versión 4.0 presenta además la opción de Ayuda en la línea u Online Help).

Page 43: Curso lab view

Curso Basico de LabVIEW

46

- Show Label: Oculta o visualiza la etiqueta de identificación del Loop y, sino existe, permite ponerla.

- Descripción: Permite añadir comentarios.

- Reemplace: Cambia el For Loop o el While Loop por cualquier otrafunción se la paleta Structs & Constants.

- Remove Loop: Borra la estructura While o For pero sin eliminar elsubdiagrama de su interior.

- Add Shift register: Añade 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 permitetransferir los valores del final de una iteración al principio de la siguiente.

Inicialmente shift register tiene un par de terminales colocados a amboslados del Loop; el terminal de la derecha almacena el valor final de laiteración, hasta que una nueva hace que este valor se desplace al terminal de laizquierda, quedando en el de la derecha el nuevo valor. Un mismo registro deldesplazamiento puede tener mas de un terminal en el lado izquierdo; paraañadirlo escogeremos la opción Add Element (añadir elemento) del menú pop-up. Cuantos mas terminales tengamos en el lado izquierdo mas valores deiteraciones anteriores podremos almacenar.

El menú pop-up tiene otros dos comandos:

Page 44: Curso lab view

Curso Basico de LabVIEW

47

- Remove element: Borra un terminal del lado izquierdo siempre y cuando elregistro 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 siendoconveniente inicializarlos, para que los terminales de la izquierda tengan elvalor deseado cuando se produzca la primera iteración, Shift register puedetrabajar con cualquier tipo de datos siempre y cuando los datos que seconecten a cada terminal sean del mismo tipo.

Al finalizar la ejecución de todas las iteraciones el ultimo valor quedaraen el terminal de la derecha; uniéndolo en un indicador del mismo tipo de datofuera del Loop podremos obtener su valor.

Pero existe otra posibilidad para pasar datos de forma automática desde elinterior de la estructura al exterior. Cuando un cable atraviesa los limites delLoop. Aparece en el borde un nuevo terminal llamado túnel que hace deconexión entre el interior y el exterior, de forma que los datos fluyen a travésde el despues de cada iteración del Loop, pudiendo guardar de esta manera nosolo el ultimo valor de todas las iteraciones sino también los valoresintermedios. A esta posibilidad que tienen tanto el For como el While deacumular arrays en sus limites automáticamente se le llama auto-indexing oautoindexado.

LabVIEW habilita por defecto auto-indexing en el For Loop ya que masfrecuente utilizar esta estructura para crear arrays que no el While Loop en elcual esta opción esta deshabitada por defecto y cuya utilización podríaprovocar problemas de memoria debido a que no sabemos cuantas veces se vaa ejecutar. No obstante, haciendo pop-up en el túnel se puede habilitar odeshabitar esta opción.

4.4 ESTRUCTURAS CASE Y SEQUENCE

Page 45: Curso lab view

Curso Basico de LabVIEW

48

Este tipo de estructuras se diferencia de las iterativas en que puede tenermúltiples subdiagramas, de los cuales solamente uno es visible a la vez. En laparte superior de cada estructura existe una pequeña ventana que muestra elidentificador del subdiagrama que se esta mostrando. A ambos lados de estaventana existen dos botones que decrementan o incrementan el indicador deforma que podamos ver el resto de subdiagramas.

CASE

Usaremos la estructura Case en aquellas situaciones en las que elnumero de alternativas disponibles sean dos o mas. Según que valor tome elselector dentro de los n valores posibles, se ejecutara en correspondencia unode los n subdiagramas.

La estructura case consta de un terminal llamado selector y un conjuntode subdiagramas, cada uno de los cuales esta dentro de un case o suceso yetiquetado por un identificador del mismo tipo que el selector; este serábooleano o numérico. Si se conecta un valor booleano al selector, la estructuratendrá dos Case: False y True. Pero si se conecta un valor numérico laestructura podra tener hasta 214 case.

En este caso la estructura Case engloba dos sentencias diferentes deotros lenguajes convencionales:

1.- If condición 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 estructurasiterativas pero si podemos crear los túneles para sacar o introducir datos. Si uncase o suceso proporciona un dato de salida a una determinada variable seránecesario que todos los demás también lo hagan, si no ocurre de esta maneraserá imposible ejecutar el programa.

Page 46: Curso lab view

Curso Basico de LabVIEW

49

SEQUENCE

Esta estructura no tiene su homologa en los diferentes lenguajesconvencionales, ya que estos las sentencias se ejecutan en el orden deaparición pero, como ya sabemos, en LabVIEW una función se ejecuta cuandotiene disponible todos los datos de entrada. Se produce de esta manera unadependencia de datos que hace que la función que recibe un dato directa oindirectamente de otra se ejecute siempre despues, creándose un flujo deprograma.

Pero existen ocasiones en que esta dependencia de datos no existe y esnecesario que un subdiagrama se ejecute antes que otro, es en estos casoscuando usaremos la estructura sequence para forzar un determinado flujo dedatos. Cada subdiagrama estará contenido en un frame o marco y estos seejecutara en orden de aparición: Primero el frame 0 o marco 0, despues elframe 1 y así, sucesivamente, hasta el ultimo.

Al contrario del case, si un frame aporta un dato de salida a una variablelos demás no tendrán por que hacerlo. Pero tendremos que tener en cuenta queel dato estará solamente disponible cuando se ejecute el ultimo frame y nocuando se ejecute el frame que transfiere el dato.

Page 47: Curso lab view

Curso Basico de LabVIEW

50

Debido a la similitud de los menús pop-up de la estructuras caseSequence vamos a estudiarlos de forma conjunta indicado en cada caso lasposibles diferencias que puedan existir:

- Show Label: Oculta o visualizar la etiqueta de identificación de laestructura y, si no existe, permite ponerla.

- Description: Permite añadir comentarios.

- Replace: cambia la estructura case o sequence por cualquier otra funciónde la paleta Structs & constants.

- Remove case Structure o Sequence: borra completamente la estructura caseo Sequence y todos los subdiagramas menos el que se este visualizando enel momento de la ejecución de este comando.

- Add Sequence Local (añadir secuencia local): Esta opción esta solodisponible en el menú de la estructura Sequence y se utiliza para pasardatos de un frame a otro. Una pequeña flecha con la punta hacia el exteriorde la estructura indica el frame de origen de la secuencia local, mientrasque una flecha apuntando hacia el interior indica que la secuencia localcontiene un dato de salida. Todos los frames posteriores al que contiene lasecuencia local que origina el dato podrán disponer de él, no siendo así

Page 48: Curso lab view

Curso Basico de LabVIEW

51

para los frames anteriores en los cuales aparecerá un cuadrado vacío queindicara que los datos no están disponibles.

- Show case o SHOW Frame: nos permite ir directamente al subdiagramaque queremos visualizar sin tener que pasar por todos los case o frameintermedios que pudiera haber. Al pulsar esta opción, un menú conteniendotodos los identificadores se desplegara y solo tendremos que señalar con elcursor del ratón el que deseamos ver. Si solo hubiese dos subdiagramas nosaparecerá directamente el nombre del único identificador que podemosvisualizar, como es el caso del case con selector booleano.

- Add Case After o Add Frame After: Este comando inserta un subdiagramavacío inmediatamente después del que se está visualizando.

- Add Case Before o Add Frame Before: inserta un subdiagrama vacío justoun nivel por encima del que se esta visualizando.

- Duplicate case o Duplicate Frame: inserta una copia del subdiagramavisible inmediatamente despues de el.

- Make This Case o Make This Frame: mueve un subdiagrama a otraposición.

- Remove Case o Remove Frame: Borra el subdiagrama visible. Estecomando no esta disponible si solamente exsiste un Case o un frame.

NOTA: LabVIEW ajusta automáticamente los identificadores cuando algunode los comandos ejecutados provoca una variación de ellos.

La versión 4.0 presenta una ligera, pero que resulta muy util. Se puedever en el caso de las estructuras Sequence y Case numérico. En el primer caso,si solo hay una secuencia, no aparece ningún identificador de frame, mientrasque si hay mas de uno, se nos indica en cual estamos y cuantos hay. Lo mismopasa con la estructura Case, solo que, en este caso tendremos, como mínimo,dos posibles estados. Todo ello queda reflejado a continuación:

Page 49: Curso lab view

Curso Basico de LabVIEW

52

4.5 FORMULA NODE

Formula Node o nodo de formula es una función de característicassimilares a las estructuras vistas anteriormente, disponible en la paleta Structs& Constants del menú Functions, pero que, en lugar de contener unsubdiagrama, contiene una o mas formulas separadas por un punto y coma.Usaremos Formula Node cuando queramos ejecutar formulas matemáticas queserian complicadas de creer utilizando las diferentes herramientas matemáticasque LabVIEW incorpora en sus librerías.

Una vez escrita la formula en el interior del rectángulo solo tendremosque añadir los terminales que hará la función de variables de entrada o desalida, para ello desplegaremos el menú pop-up de la estructura yejecutaremos el comando Add Input (añadir entrada) AddOutput (añadirsalida).

Page 50: Curso lab view

Curso Basico de LabVIEW

53

Cada variable, además, tendrá otro menú pop-up que permitirá definirlacomo salida si anteriormente era de entrada, o de entrada si en un principio erade salida (Change to Output o cambiar a Salida, Change to Input o cambiar aEntrada=. También 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 sipodrá tener el mismo nombre que una entrada. Todas las variables de salidadeberán 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, yaque permiten almacenar la información necesaria para su resolución.

En LabVIEW todos los controles introducidos en el Panel Frontal quegeneran un terminal en la ventana Diagrama van a ser variables, identificablespor el nombre asignado en la etiqueta. Pero puede ocurrir que queramosutilizar el valor de cierta variable en otros subdiagrama o en otro VI o,simplemente, que queramos guardar un resultado intermedio. La forma massencilla de hacerlo es generado variables locales y/o globales dependiendo dela aplicación.

VARIABLES LOCALES

En las variables locales los datos se almacenan en algunos de los controles oindicadores existentes en el panel frontal del VI creado, es por eso que estasvariables no sirven para intercambiar datos entre VI´s. La principal utilidad deestas variables radican en el hecho de que una vez creada la variable local noimporta que proceda de un indicador o de un control, ya que se podrá utilizaren un mismo Diagrama tanto de entrada como de salida.

Las variables locales están disponibles en el menú Structs & Constantsde la paleta Function y disponen del siguiente menu Pop-up:

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

Page 51: Curso lab view

Curso Basico de LabVIEW

54

- Select item: Visualiza una lista con el nombre de todos los controlesexistentes en el Panel Frontal y de ella escogeremos el control al cualqueremos que haga referencia nuestra variable. Es por esto que para podercrear el variable local será imprescindible que el control tenga asignado unnombre de identificador. Una vez creada la variable local, si en algunmomento se cambia el nombre del control origen, será necesario cambiartambién el nombre de la variable local ya LabVIEW no actualiza loscambios.

- Show Label: Muestra una etiqueta con el nombre del VI al que pertenece lavariable local.

- Descripción: Permite añadir comentarios.

- Remplace: Sustituye la variable local por cualquier otra función.

VARIABLES GLOBALES

Las variables globales son un tipo especial de VI, que únicamentedispone de Panel Frontal, en el cual se define el tipo de datos de la variable yel nombre de identificación imprescindible para despues podernos referir aella.

Cuando escogemos la función Global del menú Structs & constantscreamos un nuevo terminal en el diagrama, este terminal corresponde a un VIque inicialmente no contiene ninguna variable. Para poderlas añadir haremosdoble clic en el terminal y se habría el panel frontal. Una vez abierto, lasvariables 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 opción mas indicada para cualquier aplicación. Cuando terminemosde colocar todas las variables grabaremos el VI y lo cerraremos. Si una vezcerrado queremos añadir nuevas variables, bastara con volverlo a abrir eintroducir los cambios necesarios. Para añadir nuevas terminales que haganreferencia a las variables globales creadas, no volveremos a ejecutar la funciónGlobal ya que esto crearía un nuevo VI sino que abriremos el ya existentemediante el comando VI del menú Function y seleccionaremos la variable enconcreto a través del comando select item del menú pop-up. Además, este

Page 52: Curso lab view

Curso Basico de LabVIEW

55

mismo menú cuenta con otra opción que nos permite utilizar una variable yacreada para leer datos o para almacenarlos: Se trata del comando Change ToRead Global o Changes To Write Global.

4.7 ATTRIBUTE NODE

Los attribute nodes o nodos de atributos se pueden considerar como variablesque dependen únicamente del terminal a partir del cual se ha creado y quepermiten leer o modificar atributos del panel frontal de un control o indicadorcomo, por ejemplo, cambiarlo de color, hacerlo invisible, desactivarlo, leerposiciones de cursores, cambiar escalas, etc . Para crear un attribute node bastacon seleccionar la opción Create Attribute Node del menú pop-up de cualquiercontrol del panel Frontal o terminal del Diagrama de bloques ( en la versión4.0 primero desplegamos el menú pop-up del objeto y a continuacióntomamos la opción Create. Podremos crear un attribute node o variable local=.Una vez creado aparece en el Diagrama un nuevo nodo que puede ser tanto deescritura como de lectura. Una pequeña flecha a la izquierda del nodo indicaque este es de escritura. Mientras que en una flecha a al derecha indica que esde lectura. Además los atribute nodes tiene su propio menú pop-up como senuestra a continuación.

- Change All To Read Change All To Write: Dependiendo de si el nodo esde estructura o de lectura aparecerá una opción u otra que nos permitirácambiar entre ambas. Debido a que un mismo attribute node puede tenermas de un terminal usaremos esta opción cuando queramos que todos ellossean de escritura o de lectura.

- Find Control: Encuentra el control asociado a dicho attribute node en elpanel Frontal

- Find Terminal : Encuentra el terminal asociado a dicho attribute node en eldiagrama de bloques.

- Find Attribute Nodes: Muestra todos los attribute nodes exsistentes en eldiagrama que están asociados a dicho control.

- Show Label: Oculta o visualiza la etiqueta identificativa del attribute node

Page 53: Curso lab view

Curso Basico de LabVIEW

56

- Description: Permite añadir comentarios.

- Replace: Sustituye el attribute node por cualquier otra función.

- Change To Read o Change To Write: Cambia a modo de escritura o delectura únicamente el terminal seleccionado dejando los demás tal y comoestaban.

- Select Item: Visualiza todos los atributos disponibles para control asociadoal attribute node y permite cambiar un atributo por otro diferente. Podemosacceder directamente a esta opción colocándonos encima del atributo quedeseamos cambiar y pulsando el botón izquierdo del ratón.

La utilización de attribute nodes, así como de variables locales yglobales, es muy importante ya que permite resolver de forma muy sencillaproblemas de una gran complejidad que, de otra manera, seria prácticamenteimposibles de solucionar. Por eso aconseja al programador que se familiaricecon el uso de estos tres nodos que le permitirán ahorrar mucho tiempo en unfuturo.

C A P I T U L O 5

ANALISIS Y VISUALIZACION DE DATOS

Page 54: Curso lab view

Curso Basico de LabVIEW

57

5.1 INTRODUCCION

En muchas ocasiones es necesario para una mayor comprensión de losresultados obtenidos representarlos gráficamente. Para ello LabVIEW disponede cinco tipos de gráficos accesibles desde el menú Controls del Panel Frontalbajo el item Graph, divididos en dos grupos: Los indicadores Chart y losindicadores graph.

Un indicador graph o indicador gráfico es una representaciónbidimencional de una o mas gráficas. El graph recibe los datos como unbloque. Un indicador chart o de trazos también muestra gráficas, pero estarecibe los datos y los muestra punto por punto o array por array, reteniendoun cierto numero de puntos en pantalla mediante un buffer disponible paraello.

5.2 INDICADORES CHART

WAVEFORM CHART

Waveform chart es un tipo especial de indicador numérico que muestrauna o mas gráficas, reteniendo en pantalla un cierto numero de datos definidopor nosotros mismos. Los nuevos datos se añaden 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 quede esta manera solo es necesario redibujar la gráfica una vez y no una por cadapunto (figura5.1).

Page 55: Curso lab view

Curso Basico de LabVIEW

58

Es posible dibujar varias gráficas en un mismo chart, uniendo los datosde cada gráfica en un cluster de escalares numéricos de forma que cada escalarque contiene el cluster se considera como un punto de cada una de las graficaspara una misma abscisa. Se puede ahorrar tiempo uniendo los clusters enarrays y despues pasando todo array a la gráfica.

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

- Change to Control o Change to indicator: Dependiendo de si la waveformes un control o un indicador aparecerá una opción 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 Waveformchart y si ya existe, la visualiza.

- Show Legend: Permite poner una etiqueta de identificación a cada una delas gráficas.

- Show Palette: Activa una paleta que permite hacer zooms, desplaza lasgráficas de forma rápida, ajustar automáticamente la escala de los ejes,cambiar el formato y la precisión de los indicadores numéricos y elegirentre escala lineal o logarítmica.

Page 56: Curso lab view

Curso Basico de LabVIEW

59

- Show Digital Display: es un indicador que muestra el ultimo valor que seha cargado en pantalla. Hay un indicador por cada gráfica.

- 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 pordefecto.

- Make Current Value Default: Convierte el ultimo punto punto obtenido enel valor por defecto.

- Description: Permite añadir comentarios.

- Clear chart: Borra el contenido del buffer

- AutoScale X: Ajusta de forma automática el rango de valores de X parauna correcta visualización.

- AutoScale Y: Ajusta de forma automática el rango de valores de Y parauna correcta visualización.

- Update Mode: Permite escoger entre tres modos de visualizar los nuevosdatos: Strip chart, scope chart y sweep chart. El modo strip chart es elmodo por defecto y consiste en que cada nuevo valor se coloca a la derechadel display, mientras que valores anteriores se desplazan hacia la izquierda,En el modo scope chart cada nuevo valor se coloca a la derecha delanterior, empezando por el margen izquierdo del display. Cuando se llegaal margen derecho se borra todo el display y se comienza de nuevo desde laizquierda. El modo scope chart es mucho mas rapido que el modo stripchart ya que no es necesario realizar todo el proceso de desplazar lapantalla hacia la izquierda para cada nuevo punto. El modo sweep chartactúa como el modo scope chart, salvo que ahora cuando se llega al finalde la pantalla, esta no se borra y se comienza de nuevo desde el principio,donde una línea vertical se mueve hacia la derecha cada vez que se añadeun nuevo punto.

Page 57: Curso lab view

Curso Basico de LabVIEW

60

- Create Attribute Node: Crea un nodo asociado al terminal del que procedeen el Diagrama de Bloques.

- Replace: Permite sustituir la Waveform chart por cualquiera de loscontroles e indicadores del Panel Frontal.

- X Scale and Y Scale: Permite escoger el estilo de la escala, tipo de rejillapunto inicial, incremento entre punto y punto, formato y precisión de estospuntos.

- Transpose Array: Cuando se representa mas de una gráfica en una mismachart utilizando arrays, Waveform chart interpreta por defecto de las filascomo gráficas diferentes. Pero si nosotros nos interesa que sean lascolumnas las gráficas diferentes, utilizaremos este comando para convenirlas columnas en filas.

- Stack Plots: Normalmente cuando se representan mas de una gráfica todasellas se sitúan en un mismo display. Pero puede ocurrir que las escalas delas ordenadas sean muy diferentes entre ellas o que simplemente nosinterese representarlas por separados, cada una en un display. Paraconseguir esto activaremos el comando Stack Plot de forma que cadagráfica aparecerá con su propia escala y su propio display. Cuando StackPlots esta activado, en su lugar aparece el comando Overlay Plot que es elque dibuja todas las gráficas en un mismo display.

- Chart History Length: Mediante este control podemos fijar el numero depuntos que Waveform chart almacenara en el buffer que, por defecto,seran1024.

INTENSITY CHART

Mediante intensity chart podemos mostrar datos tridimensionalescolocando bloques de colores sobre planos cartesianos. Para ello creamosarrays bidimensionales de números donde los índices de un elemento

Page 58: Curso lab view

Curso Basico de LabVIEW

61

corresponderán 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 través de losattribute ondees mediante el item Z Scale info: Color Array o Color Table, o através de la rampa de colores visualizada junto a la gráfica. Evidentemente, laescala de colores que podamos visualizar dependerá de la resolución denuestro monitor.

Cada vez que se envíe un nuevo conjunto de datos, estos apareceránrepresentados a la derecha de los ya existentes. Intensity chart soporta los tresmodos de visualización de Waveform chart y también dispone de un buffercuyo tamaño es, por defecto, de 128 puntos. Las opciones disponibles paraintensity chart son prácticamente 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 automática el rango de valores de z a laescala de colores.

- Z scale: Permite escoger el estilo de la escala, tipo de rejilla, punto inicial,incremento entre punto y punto, formato y precisión de estos puntos.

5.3 INDICADORES GRAPH

WAVEFORM GRAPH

Page 59: Curso lab view

Curso Basico de LabVIEW

62

Waveform graph representa una serie de valores y equiespaciados dadasiempre una distancia delta de X (AX) comenzando a partir de un valor inicialXo. A un mismo punto X1 solo le puede corresponder un valor de Y1. Cuandose representa una nueva serie de datos, al contrario de lo que ocurría en losindicadores chart, estos datos reemplazan a los ya existentes en lugar deañadirse al lado, y pierden los valores representados con anterioridad.

Existen dos posibilidades a la hora de representar una única gráfica enuna waveform graph. La primera consiste en unir un array de valoresnuméricos directamente a la graph de forma que esta interpreta cada valorcomo un nuevo punto comenzando en X=0 e incrementando X en 1 para cadapunto.

La segunda consiste en crear un cluster en el cual, junto con el array devalores, se indica el valor inicial X0 y el incremento AX.

Existe la posibilidad de representar mas de un gráfica en una mismawaveform graph. Para ello es necesario unir los datos de las diferentes gráficasen un formato que LabVIEW sepa interpretar. Utilizar un formato u otrovendar determinado principalmente por las características de las gráficas amostrar. Así, si todas las gráficas tienen un mismo escalado X y un mismonumero de puntos, bastara con crear un array bidimensional de valoresnuméricos donde cada fila de datos es una única gráfica. LabVIEWinterpretara estos datos como puntos en la gráfica comenzando en X=0 eincrementándola en 1. Si nos interesa cambiar el punto inicial o el incrementode x, crearemos un cluster que contendrá el array bidimensional y los valoresde xo y Ax.

Mediante el comandoTranspose Array del menú pop-up podemos hacerque LabVIEW interprete las columnas como gráficas diferentes en lugar de lasfilas.

Puede ocurrir que el numero de elementos de cada gráfica seadiferente.En ese caso es necesario crear un cluster para cada array de datos ydespues unir todos los clusters en un array. Esto es necesario debido a queLabVIEW no permite crear arrays de arrays. Al igual que anteriormente si nosinteresa que el punto inicial sea diferente de cero o que el incremento seadiferente de 1, crearemos un cluster que contenga el array de clusters de arrayy los nuevos valores de Xo y Ax.

Page 60: Curso lab view

Curso Basico de LabVIEW

63

Finalmente, si ni el escalado ni el numero de puntos de la gráfica es elmismo para todas ellas, lo que haremos será crear un cluster por cada gráficaque contendrá un array de datos, un valor Xo y un valor Ax, Y con todos losclusters de las diferentes gráficas crearemos un array. Este último formato esel mas completo de todos porque permite fijar un valor Xo y un valor AXdiferente para cada gráfica.

XY GRAPH

En XY Graph un punto X1 puede tener varios valores Y, lo que permite,por ejemplo, dibujar funciones circulares. XY Graph representa unacoordenada (x1, Y1) donde los valores de X no tiene porque estarequiespaciados como ocurría en las waveform graph.

Para representar una única gráfica en una XY Graph existen dosposibilidades. La primera consiste en crear un cluster que contenga un array dedatos X y un array de datos Y. La segunda consiste en crear un array declusters, donde cada cluster contiene un valor de X y un valor de Y.

Al igual que en las Waveform graph exsiste la posibilidad derepresentar mas de una gráfica en una misma XY Graph (figura 5.8). Pero, eneste caso, tan solo existen dos formatos posibles derivados de los dos formatosvistos anteriormente para una única gráfica. El primer formato es un array degrafica, donde cada gráfica es un cluster de un array Y. Y el segundo formatoes un array de clusters de gráficas, donde cada gráfica es, a su vez, otro arrayde clusters conteniendo un valor X y un valor Y.

Page 61: Curso lab view

Curso Basico de LabVIEW

64

INTENSITY GRAPH

Intensity graph es exactamente igual que intensity chart salvo que intensitygraph no retiene valores anteriores, por lo que cuando un nuevo bloque devalores se carga, estos sustituyen a los exsistentes.

Los comandos disponibles en los menús pop-up de los indicadoresgraph tienen las mismas utilidades que los descritos en los indicadores chart,por lo que no se han mencionado en este apartado. Solamente existe unadiferncia importante y es que los indicadores graph disponen de cursores quenos permiten movernos por la gráfica.

GRAPH CURSORS

La paleta de cursores esta disponible desde la opción Show CursorDisplay del menu pop-up (figura 5.9).

- Nombre del cursor: Permite introducir una etiqueta de identificación delcursor. Podemos tener tantos cursores como deseemos.

Page 62: Curso lab view

Curso Basico de LabVIEW

65

- Posición X, Posición Y: Indica las coordenadas en la que se encuentra elcursor; en los indicadores intensity graph aparece también la coordenada Z.

- Podemos mover el cursor directamente a una posición correctaintroduciendo las coordenadas del punto deseado.

- Selector del cursor: Selecciona el cursor a mover. Se pueden seleccionar ala vez tantos cursores como deseamos.

- Control de la apariencia del cursor: Abriendo el menú mediante el botónizquierdo del ratón podremos modificar algunas características del cursor.

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

- Point Style: Selecciona el estilo del punto que marca la posición del cursor.

Page 63: Curso lab view

Curso Basico de LabVIEW

66

Color: Selecciona el color del cursor.

- Show Name: Muestra el nombre del cursor sobre la gráfica.

- Bring to Center: Mueve el cursor hasta el centro de la pantalla cambiandolas coordenadas de este.

- Go to Cursor: Modifica las escalas X e Y de forma que podamos ver elcursor, pero sin cambiar las coordenadas de este.

- Control del movimiento del cursor: El candado cerrado indica que elcursor se moverá siguiendo la gráfica (opciones Lock to plot y Snap topoint) mientras que el candado abierto indica que el cursor se moveralibremente (opción Free). Si hubiese más de una gráfica el menú nospermitirá escoger sobre cual de ellas queremos que se mueva el cursor. Elcomando Allow Drag, cuando esta activo, permite desplazar la gráficadirectamente con el puntero del ratón.

- Control de la dirección del cursor: mueve los cursores seleccionados puntopor punto en la dirección indicada.

5.4 CONCLUSIONES

Ante los diferentes tipos de indicadores se plantea la necesidad deescoger entre uno u otro. Decir cuando se debe utilizar cada uno es muy difícilya que depende de cada aplicación y, además, puesto que en programacion nohay nada imposible, podemos llegar a hacer que una gráfica simule elcomportamiento de otra; solo hace falta un poco de tiempo y paciencia. Pero sipodemos indicar para que es aconsejable cada indicador. Cuanto tengamosdatos que dependan del eje de las abscisas y no están equiespaciados

Page 64: Curso lab view

Curso Basico de LabVIEW

67

podremos utilizar sin mas remedio, un indicador XY Graph. Si los datosdependieran del eje de las abscisas pero están equiespaciados podremosutilizar un indicador Waveform Graph si queremos que los nuevos datossustituyan a los anteriores o un indicador Waveform Chart si queremos que losnuevos datos se añadan a continuación de los ya existentes, como pueden seren el caso de un electrocardiograma en el interesa ver el comportamiento a lolargo del tiempo y la utilización de in indicador Graph supondría la perdida dela información. Por ultimo, si tenemos que representar sobre ejes cartesianosfunciones de tres variables utilizaremos los indicadores Intensity ya sea ChartGraph.

La versión 4.0 presenta mínimas diferencias, como pueden ser la creacióndirecta de variables locales o la ayuda en la línea, pero en cuanto afuncionamiento todo lo dicho para la versión 3.1 es totalmente valido.

5.5 EJERCICIOS PRACTICOS

La principal característica de un indicador XY Graph es que un mismo valorde X puede tener varios valores Y, con lo que se puede dibujar todo tipo defunciones. Vamos a diseñar una aplicación en la que se vera claramente estacaracterística. Nuestro objetivo consiste en dibujar un triángulo dadas trescoordenadas (X,Y). Las coordenadas serán introducidas mediante seiscontroles, tres para las coordenadas X, y tres para las coordenadas Y, demanera que cada par de valores (X,Y) nos definirá un punto.

Page 65: Curso lab view

Curso Basico de LabVIEW

68

Con los valores de X creamos un arroya, y con los valores de Y creamosotro, para despues unirlos en un bundle array, el cluster resultante loconectaremos al nodo de gráfica. Todo ello lo introduciremos dentro de unaestructura While para que el programa se este ejecutando hasta que nosotros lodetengamos.

Podemos comprobar claramente las diferencias existentes entre una XYGraph y una Waveform Graph sustituyendo en el ejemplo anterior una porotra. Para ello colocaremos el cursor del ratón sobre la gráfica y pulsaremos elbotón derecho una sola vez, para desplegar el menú, del que escogeremos laopción Replace y, dentro de aquí el indicador Waveform Graph. Para que elprograma funcione será necesario también cambiar el Bundle del Diagrama deBloques por un Build Array. Si ahora ejecutamos el programacomprobaremos que en lugar de una sola gráfica en forma de triángulo nosaparecen dos gráficas cuya única relación 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 triángulo, es posiblecalcular cualquiera de sus ángulos. Imaginemos que queremos calcular elángulo formado por los lados AB Y AC; bastara con utilizara la conocidaformula del seno:

Page 66: Curso lab view

Curso Basico de LabVIEW

69

Que implementada mediante una Formula Node quedara:

Dentro de la Formula Node hemos introducido también el calculo de loslados, ya que lo que nosotros conocemos son las coordenadas introduciondoladentro del diseño de la aplicación original y añadiendo un indicador en elPanel Frontal para visualizar la fase, habremos conseguido nuestro objetivo.

5.6 VOCABULARIO TECNICO

- Chart: Indicador de trazos

- Cluster: Agrupación de diferentes elementos en un único nodo.

- Graph: Indicador gráfico.

Page 67: Curso lab view

Curso Basico de LabVIEW

70

- Graph cursors: Cursores de los indicadores gráficos.

- Intensity Chart: Indicador para mostrar trazos tridimensionales

- Intensity Graph: Indicador para mostrar un gráfico tridimensional.

- Overaly Plot: Permite dibujar todas las gráficas en un mismo display.

- Waveform Chart: indicador que visualiza una gráfica punto a punto.

- Waveform Graph: Indicador que visualiza una gráfica en formato array.

- XY Graph: Indicador que visualiza una gráfica en función de suscoordenadas.

C A P I T U L O 6

TIPOS DE DATOS ESTRUCTURADOS

6.1 ARRAYS

Page 68: Curso lab view

Curso Basico de LabVIEW

71

Un array es una colección de datos todos ellos del mismo tipo. Puedetener una o mas dimensiones y hasta 2 (31) elementos por dimensión, según lamemoria disponible. Un array puede ser de cualquier tipo excepto otro array,chart o graph (ver capitulo 5). Se accede a cada elemento de un arraymediante un índice, el cual es cero base, es decir, va de 0 a N-1 donde N es elnumero de elementos.

La creación de arrays de control o indicadores en el panel frontal sehace mediante la combinación del icono array shell de la planeta Array &Cluster del menú controls ( En la versión de estudiante, el icono array de lapaleta Array & Graph), con un objeto de datos, que puede ser numérico,booleano o string.

En la figura que sigue se presenta un array shell vacío. Para crear unarray hemos de llevar un objeto dentro de la ventana de objetos o situarlodirectamente usando el menú pop-up.

Page 69: Curso lab view

Curso Basico de LabVIEW

72

Un array de n-dimensiones necesita de n índices (cero-base) paralocalizar un elemento. En la figura siguiente hay un array de N columnas porM filas, conteniéndolo N veces M elementos.

Se pueden añadir dimensiones a un array control o indicador de dosmaneras: Desplegando el menú de index display ( visualizador del indice= y acontinuación, escogiendo la opción Add Dimension ( añadir dimensión): osituando el cursor sobre el index display y arrastrando hacia abajo tantasdismensiones como queramos.

Podemos indexar e introducir elementos dentro de los arrays en bordesde las estructuras For Loop y White Loop de manera automática. Esto es loque se llama auto-indexing ( autoindexado). La figura inferior presenta unejemplo de ello; cada iteración crea el siguiente elemento del array ; una vezque se ha completado, el array pasa al indicador. Observar que el cable se hacemas grueso al cambiar a array.

Page 70: Curso lab view

Curso Basico de LabVIEW

73

Para anular el auto-indexing hemos de desplegar el menú sobre el túnelde salida ( el cuadrado negro) y escoger la opción Disable Indexing(deshabilitar indexado). Al desactivarlos, solo el ultimo valor pasara atravesdel túnel.

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

Si se habilita el auto-indexing sobre el túnel de entrada de un For Loop,LabVIEW toma el tamaño del array como el numero de iteraciones; por tanto,no es necesario conectar ningún valor en N. Si lo hubiese, o diversos arraystuvieran auto-indexing de entrada, se tomaría como numero de iteraciones elde menor tamaño.

Las funciones aritméticas (sumar, restar, multiplicar, dividir, etc.) sonpolimorficas, es decir sus entradas pueden ser de diferentes tipos. Por ejemplo,podemos sumar un escalar con un array o dos arrays juntos.

Page 71: Curso lab view

Curso Basico de LabVIEW

74

6.1.1 Funciones

LabVIEW tiene la paleta Array & Cluster ( Array en la version 4.0) delmenu Functions un gran numero de funciones para manipular arrays, Algunasde las mas comunes se describen a continuación:

Array Size (tamaño del array): Da el numero de elementos del array.

Build Array (construir array): Concatena arrays o añade elementosextras a un array. La función aparece como cuando se pone en el diagramade bloques. Podemos redimensionarla para incrementar el numero de entradas.

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

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

Page 72: Curso lab view

Curso Basico de LabVIEW

75

Esta función también se puede utilizar para separar una o masdimensiones de un array bidimensional y crear un subarray del original. Paraello añadir una nueva dimensión y seleccionar el comando Disable Indexingdel menú pop-up del terminal de índice:

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

Page 73: Curso lab view

Curso Basico de LabVIEW

76

6.2 CLUSTERS

Un cluster en LabVIEW es una colección ordenada de uno o maselemento, similar a las estructuras Record del Pascual u otros lenguajes. Adiferencia de los arrays, los clusters pueden contener cualquier combinaciónde tipos de datos. Se accede a sus elementos Unbundling ( literalmente“desenvolviéndolos”) todos a la vez, en lugar de indexarlos uno a uno. Otrodiferencia con los arrays es que los clusters tienen un tamaño fijo. Al igual queen el caso de los arrays, los clusters no pueden contener combinación deindicadores y controles.

Creamos un Cluster de indicadores o controles poniendo cualquiercombinación de booleanos, strings, charts, graph, escalares, arrays o, incluso,otros culusters dentro de un cluster Shell, al cual se accede a través del menúControles del panel frontal. Un cluster shell nuevo tiene un borderedimensional y una etiqueta opcional.

Cuando hacemos pop-up dentro del área vacía del culster shell apareceel menú Controls. Podemos situar cualquier elemento de este menú o bienarrastrarlo desde cualquier punto del panel frontal. El cluster pasa a serindicador o control dependiendo del primer elemento que situemos en suinterior. Posteriormente podemos utilizar las opciones Change to Control(cambiar a control) o Change to Indicator (cambiar a indicador) para cambiartodos los elementos a la opción deseada.

A continuación se presentan las funciones mas comunes para losclusters: Unbundle (separar): Descompone un cluster en sus elementosindividuales.

Page 74: Curso lab view

Curso Basico de LabVIEW

77

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

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

Bundle by Name (unir por nombre): Reemplaza componentes en uncluster ya existente. Siempre hemos de conectar las entradas del cluster. Siestamos creado un cluster como indicador podemos conectar una variablelocal 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 yconectar los controles a la entrada el cluster.

6.3 CONTROLES E INDICADORES STRING

Page 75: Curso lab view

Curso Basico de LabVIEW

78

En este apartado se describe como usar los controles e indicadores destring ( cadenas de caracteres). Se puede acceder a estos objetos a través de lapaleta String & Table del menú Controls

Un string es una colección de caracteres ASCII. No solo se usan comomensajes de texto. En el control de instrumentos pasamos los datos numéricoscomo cadenas de caracteres o strings. A continuación convertimos esascadenas en números. Así mismo se necesitan strings para almacenar datosnuméricos 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 lasherramientas operating o labeling. El texto nuevo o cambiando no pasa aldiagrama hasta que se pulsa Enter del teclado numérico, se hace clic encualquier otra parte del panel o se pulsa el icono Enter de la barra deherramientas. Pulsando la tecla Enter del teclado alfanumérico se consigue unsalto de línea en el string.

Page 76: Curso lab view

Curso Basico de LabVIEW

79

Para entrar una tabulación en el string se ha de seleccionar la opción/Codes delmenú pop-up del string y escribir/t. En la tabla siguiente se listan todos loscódigos de los caracteres no-imprimibles que podemos usar con los strings.

Si necesitamos disminuir el espacio que ocupa un string en el panelfrontal, podemos usar la opción Show Scrollbar ( mostrar barra dedesplazamiento) de su menú pop-up.

LabVIEW presenta un gran numero de funciones para manipularstrings. Estas funciones están disponibles desde la paleta String del menúFunctions (figuar 6.2)

A continuación se describen algunas de las funciones mas comunes:

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

Page 77: Curso lab view

Curso Basico de LabVIEW

80

Concatenate Strings (unir cadenas): Concatena todos los strings de entrada enun unico string de salida. String 0 y string 1 son los terminales de entrada pordececto. Se puede añadir tantos como sean necesarios.

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

To Fractional ( Paso a fracionar=: Convierte un numero en un string de puntoflotante con notacion fraccional. El tamaño viene determinado por losparámetros width (ancho) y precisión.

From Exponential/Fract/Eng (Convierte desde los formatosexponensial/fraccional/ingenieria): Interpreta los caracteres 0 a 9, signo mas,signo menos, e, E y punto decimal dentro de una cadena y aparte del offsetcomo un numero en formato coma flotante en notación e ingeniería o formatoexponencial o fraccional y devuelve ese numero.

Page 78: Curso lab view

Curso Basico de LabVIEW

81

6.4 FICHEROS DE ENTRADA/SALIDA

Las operaciones de entrada/ salida con ficheros nos permiten almacenary recuperar información a y desde un disco. LabVIEW presenta una granvariedad 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 trespasos: Crear el archivo nuevo, escribir los datos en el archivo y cerrar elarchivo. También podemos abrir uno ya existente y añadir la nuevainformación al final de ese fichero o sobre escribir su contenido.

Con LabVIEW podemos escribir cualquier tipo de datos en el archivoque hemos abierto. Si otros usuarios o aplicaciones necesitan acceder a el, sedeben escribir strings de datos, lo cual crea un fichero ASCII. Si la prioridadesta en la rapidez de acceso y en lo compacto, se debe escribir la informacióncon formato binario. Se crea un archivo con formato binario cuando seescriben datos no-string (como un array de enteros) al archivo.

Hay dos maneras de crear un archivo: Mediante la programacion através del dialog box (ventana de dialogo). En primer método,proporcionaremos el nombre del archivo y del pathname (localización delarchivo) dentro de VI. El pathname consta del nombre de la unidad (porejemplo C o A), seguido por los dos puntos, tantas barras inclinadas (/) comosubdirectorios haya que separa, y a continuación el nombre del archivo. Unejemplo seria C:/ LVSE/TEST1.DAT, donde el nombre del archivo esTEST!:DATA y se encuentra en el directorio LVSE. En el método del dialog

Page 79: Curso lab view

Curso Basico de LabVIEW

82

box, el VI visualiza una ventana que podemos usar para buscar un directorio yescribir el nombre del archivo.

En la figura 6.3 se muestran los pasos para grabar una cadena en unfichero:

En el ejemplo anterior, la función Open/Create/Replace File(abrir/crear/ reeplazar fichero) crea el archivo C:/LVSET/TEST1.DAT si noexiste. Si ya esta creado pide confirmación para remplazarlo con los nuevosdatos. Si el lugar del “2” hubiésemos introducido “1”, crearía siempre unarchivo nuevo, eliminado, sin pedir confirmación los posibles datos existentesen un fichero si existe. Si no esta creado, no lo crea y no graba los datos.Dicha función devuelve un numero refnum (numero de referencia). Esteparámetro es un identificador de archivo generado cuando se crea un fichero ose abre uno ya existente. Identifica al archivo en las operacionessubsiguientes. Se puede observar que refnum se pasa secuencialmente desdeuna función File I/O a la siguiente. Como ninguna función se puede ejecutarhasta que hayan recibido todos sus entradas, el paso del valor refnum fuerza alas funciones del fichero a ejecutarse en el orden adecuado.

Esta función crea el fichero que Path Constant (constante de camino desuceso) especifica. Y asigna un parámetro refnum. Por consiguiente, lafunción Write File (escribir en fichero) escribe los datos en el archivo despuesde recibir el refnum desde la función anterior. Aunque el dato en el ejemploanterior es un string. Podemos introducir cualquier tipo de datos a la función.Si no fuese un string la función Write File escribe la forma binaria de los datosal disco. Finalmente. La función Close File (cerrar fichero) cierra el ficherodespues de recibir el refnum.

NOTA: Estas funciones se encuentran siguiendo los siguientes pasos:

Page 80: Curso lab view

Curso Basico de LabVIEW

83

Functions VI… VI.LIB 1FILE.LLB en el caso de la versión de estudiante.

Almacenamiento de datos en un Archivo ya existente

Para guardar información en un archivo que ya existe usamos la funciónOpen File (abrir fichero) en lugar de la New File. Open File abre un ficheroexsistente o sobrescribir la información del archivo original. La función EOFdetermina la posición End-of-File (final de fichero). Este marcador especificadonde escribe los datos la función Write File. Si se deja sin conexión EOF,Write File añadiría los datos al final del archivo. Si introduciremos por EOF elvalor 0, los datos actuales sobrescriban el fichero exsistente (EOF se sitúa alprincipio del fichero).

El siguiente ejemplo muestra los pasos para grabar nuestros datossobreescribiendo los existentes en un fichero ya creado.

En el ejemplo anterior, el VI abre el fichero existenteC:/LVSE/TEST1.DAT y asigna al fichero un parámetro refnum. El 0introducido por el terminal pos offset (posición del desplazamiento) de lafunción Write File añade los datos al comienzo del archivo. La función CloseFile cierra el fichero una vez que Write File finaliza. Recordar que el hecho depasar el refnum fuerza el funcionamiento secuencial.

Recuperación de datos desde un Archivo.

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

Page 81: Curso lab view

Curso Basico de LabVIEW

84

ASCII usando tipos de datos de strings, deberemos leerlos como datos destring.

El siguiente paso muestra los pasos para leer todo el contenido de unarchivo :

La función Open File abre el fichero C:/LVSE/TEST1.DAT. Tambiéndevuelve el numero refnum. La función Read File (leer fichero) devuelve todoel archivo. La función Close File cierra el fichero.

Visualización del Dialog Box

En los ejemplos anteriores especificábamos el nombre del ficherodentro del diagrama de bloques. La función File Dialog presenta una ventanaque podemos usar para buscar un directorio y escribir el nombre deseado parael archivo. EL siguiente ejemplo muestra los pasos para conseguirlo. SelectoMode 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 separancolumnas, mientras que los saltos de línea separan filas. Usamos la funciónConcatenate Strings para insertar un tabulador entre cada alimento y un saltode línea despues del ultimo elemento.

Page 82: Curso lab view

Curso Basico de LabVIEW

85

El siguiente fragmento de bloque de diagrama crea el fichero de textoque se indica debajo. La función Format & Append primero conviene elnumero de itraciones y el numero aleatorio en strings. La función ConcatenateStrings a continuación inserta un tabulador y un salto de línea, Mientras que elVI escribe el string formado al fichero.

LabVIEW también proporciona VLs para simplificar las operaciones deescritura/lectura con spreadsheets. Las funciones Write to Spreadsheet File yRead From Spreadsheet File dentro del menú de funciones Utility son dosmétodos básicos para escribir y leer desde ficheros con formato spreadsheet.

Page 83: Curso lab view

Curso Basico de LabVIEW

86

Todos estos ejemplos han sido elaborados con la versión de estudiantes.Las versiones 3.1 y 4.0 implementan funciones mas elaboradas que permitenreducir el numero de pasos necesarios.