LabVIEW: Entorno gráfico de programación

- -
- 100%
- +
National Instruments, la empresa desarrolladora y propietaria de LabVIEW, se fundó en 1976 en Austin, Texas. Sus primeros productos eran dispositivos para el bus de instrumentación GPIB. En abril de 1983 comenzó el desarrollo de lo que sería su producto estrella: LabVIEW, que vería la luz en octubre de 1986 con el lanzamiento de LabVIEW 1.0 para Macintosh (los ordenadores más populares en aquella época y que ya disponían de interfaz gráfica) y en 1990 la versión 2. Para Windows habría que esperar a septiembre de 1992. Los principales hitos de LabVIEW pueden verse en la tabla 1-1.
Fecha Hito Abril de 1983 Comienza el desarrollo de LabVIEW Octubre de 1986 LabVIEW 1.0 para Macintosh Enero de 1990 LabVIEW 2.0 Septiembre de 1992 LabVIEW para Windows Octubre de 1992 LabVIEW para Sun Octubre de 1993 LabVIEW 3.0 multiplataforma Abril de 1994 LabVIEW para Windows NT Octubre de 1994 LabVIEW para Power Macintosh Octubre de 1995 LabVIEW para Windows 95 Mayo de 1997 LabVIEW 4.0 Marzo de 1998 LabVIEW 5.0 Febrero de 1999 LabVIEW 5.1, LV para Linux y LV Real-Time Agosto de 2000 LabVIEW 6i Enero de 2002 LabVIEW 6.1 Mayo de 2003 LabVIEW 7 Express, LabVIEW PDA y FPGA Mayo de 2004 LabVIEW 7.1 Mayo de 2005 LabVIEW DSP Junio de 2005 LabVIEW Embedded Octubre de 2005 LabVIEW 8 Agosto de 2006 LabVIEW 8.20 (Edición especial por el 20° aniversario) Agosto de 2007 LabVIEW 8.5 Agosto de 2008 LabVIEW 8.6 Agosto de 2009 LabVIEW 2009 Agosto de 2010 LabVIEW 2010Tabla 1-1. Evolución de las diferentes versiones de LabVIEW.
Como puede verse, en los últimos años se han liberado las nuevas versiones de LabVIEW en agosto, coincidiendo con el evento NI Week. Además, es habitual que aparezca una revisión menor a los 6 meses de la versión principal a modo de Service Pack que corrige bugs.
1.1. Entorno
LabVIEW es una herramienta de programación gráfica. Originalmente este programa estaba orientado para aplicaciones de control de equipos electrónicos usados en el desarrollo de sistemas de instrumentación, lo que se conoce como instrumentación virtual. Por este motivo los programas creados en LabVIEW se guardarán en ficheros llamados VI (Virtual Instrument), y con la misma extensión. De una forma similar, también se da nombre a sus dos ventanas principales: un instrumento real tendrá un Panel Frontal donde estarán sus botones, pantallas, etc. y una circuitería interna. En LabVIEW estas partes reciben el nombre de Panel Frontal y Diagrama de Bloques respectivamente.
Panel Frontal: es la parte que verá el usuario, suele tener fondo gris.
Diagrama de Bloques, es donde se realizará la programación y suele tener fondo blanco.
El Panel Frontal y el Diagrama de Bloques están conectados a través de los terminales (elementos que sirven como entradas o salidas de datos). De la misma forma que un indicador luminoso de la carátula de un instrumento está representado como un diodo en la circuitería interna. En un programa en LabVIEW ese mismo indicador luminoso estará representado como una entrada de tipo booleano en el Diagrama de Bloques, sobre esta entrada el programa o el usuario podrá escribir un valor.
En la figura 1-1 pueden verse las dos ventanas mencionadas antes. En primer término está el Panel Frontal, con fondo gris y dos terminales: uno numérico llamado Meter y otro que simboliza un interruptor, llamado Boolean. En el Diagrama de Bloques también aparecen estos dos elementos bajo los mismos nombres y representados con dos iconos. Una vez que se ejecute este programa, desde el código se escribirá y leerá de estos iconos.

Figura 1-1. Panel Frontal y Diagrama de Bloques
En la parte superior de estas ventanas se sitúa una barra con varias herramientas. En el Diagrama de Bloques esta barra tiene algunas opciones más, como aparece en la figura 1-2.

Figura 1-2. Barra de herramientas





En el lateral derecho tanto del Panel Frontal como del Diagrama de Bloques aparece el icono que representa al VI,

Para colocar funciones en el Diagrama de Bloques y objetos en el Panel Frontal se tienen las paletas o menús flotantes, llamadas paleta de funciones y de controles respectivamente. Además, también se tiene la paleta de herramientas que consta de diferentes utilidades. En la figura 1-3 puede verse un aspecto de estas tres paletas (el aspecto puede modificarse desde Tools > Options > Controls/Functions Palettes).

Figura 1-3. Diferentes paletas de trabajo: funciones, controles y herramientas.
Las paletas de funciones y controles se despliegan haciendo clic con el botón secundario del ratón sobre una zona vacía del Diagrama de Bloques o del Panel Frontal. También pueden dejarse fijas presionando el clip (

Otra ventana muy útil es la de ayuda contextual. Puede abrirse en Help > Show Context Help o desde el atajo CTRL+H. Esta ventana muestra información del objeto que esté situado bajo el cursor, ya sea una función, un VI, un control o un indicador. Además, puede aparecer un enlace a la página de la ayuda relacionada con ese objeto.

Figura 1-4. Ventana de ayuda contextual.
A continuación se muestra la tabla 1-2 con los atajos de teclado más útiles de LabVIEW. Pueden personalizarse en Tools > Options > Menu Shortcuts. Como recomendación personal, podemos decir que tenemos personalizado un atajo de teclado para abrir la paleta de herramientas.
Combinación de teclas Función CTRL + R Ejecuta el programa CTRL + . Aborta la ejecución CTRL + E Conmuta entre la dos ventanas principales CTRL + B Elimina los hilos rotos CTRL + H Muestra u oculta la ayuda contextual CTRL + ? Muestra la ayuda CTRL + C Copia los objetos seleccionados al portapapeles CTRL + X Corta los objetos seleccionados al portapapeles CTRL + V Pega los objetos desde el portapapeles CTRL + Z Deshace la última acción CTRL + SHIFT + Z Rehacer CTRL + S Guarda el VI CTRL + U Ordena de forma automática los objetos del programa TAB Cambia entre las herramientas de la paleta de herramientas CTRL + arrastrar Crea una copia de los objetos seleccionados SHIFT + arrastrar Mueve los objetos solamente en una direcciónTabla 1-2. Atajos de teclado más útiles.
1.2. Menús (paletas)
1.2.1. Menú de herramientas
Mediante la paleta de herramientas se puede seleccionar el instrumento que se desea usar; esto hace cambiar el tipo de cursor del ratón. En la figura 1-5 se puede ver la paleta de herramientas con 11 botones.

Figura 1-5. Paleta de herramientas
Automatic Tool Selection

Operate Value

Position/Size/Select

Edit Text

Connect Wire

Object Shortcut Menu

Scroll Window

Set/Clear Breakpoint

Probe Data

Get Color

Set Color


Figura 1-6. Colores.
1.2.2. Controles
El menú que aparece en el Panel Frontal es el menú de controles, y en él se pueden seleccionar los terminales que servirán para interactuar con el usuario.
Los terminales se dividen en controles e indicadores, aunque a veces se les suele llamar a todos genéricamente controles. Los controles propiamente dichos son las entradas de datos, y los indicadores las salidas. Están clasificados según su estilo en varios submenús: Modern, System y Classic. Dentro de cada submenú hay otros menús que clasifican los controles por el tipo de datos. Los más usados son los que sirven para dibujar gráficas y los de la primera fila del submenú Modern. Éstos, de izquierda a derecha, corresponden a datos de tipo numérico, booleano, textos y tipos compuestos.
Para usar los controles hay que seleccionar un objeto y llevarlo al lugar deseado del Panel Frontal.

Figura 1-7. Paleta de controles.
Los indicadores para gráficas merecen un trato aparte debido a su importancia. En la paleta de gráficas hay varios tipos, siendo los más importantes Waveform Chart y Waveform Graph.

Figura 1-8. Paleta de gráficos.
Los indicadores Waveform Chart se diferencian de los Waveform Graph en que estos últimos dibujan totalmente la gráfica cuando llegan nuevos datos; sin embargo, los Waveform Chart anexan el nuevo dato a los existentes. El número de datos que se muestran puede ajustarse escribiendo sobre los números que aparecen en los ejes o dejar que LabVIEW los ajuste automáticamente (Auto-Scale). En los Waveform Chart también se puede ajustar el número máximo de puntos que se guardan a través de la opción Chart History Length del menú contextual. Mediante los menús contextuales de los elementos de las gráficas se pueden modificar muchos otros aspectos como el color, interpolación, elementos a mostrar, etc.

Figura 1-9. Comparación entre un Waveform Graph y un Waveform Chart.
En la imagen de la figura 1-9 pueden verse ambos indicadores y sus principales diferencias. El código de la parte izquierda repite un bucle 50 veces. En este bucle se genera un número aleatorio por cada iteración, después se crea un arreglo o array con los 50 números y se muestran en un Waveform Graph y un Waveform Chart. En el primero sólo se dibujan 50 puntos, y éstos se sobrescriben cada vez que se ejecuta el programa. En el segundo, los datos nuevos se van colocando después de los antiguos (véase la numeración del eje X). El resultado se muestra después de dos ejecuciones (100 datos generados). En conclusión: puede decirse que el Waveform Chart tiene memoria y el Waveform Graph no. Tanto este programa como el resto de los que aparecen en este libro pueden consultarse desde el CD adjunto.
Una práctica recomendable en todos los controles e indicadores es añadirles un texto que indique la función que realizan en la ventana que aparece al seleccionar en el menú contextual Description and Tip. Este texto se mostrará en la ventana de ayuda contextual cuando el usuario coloque el ratón sobre el terminal.

Figura 1-10. Ventana que permite describir cada terminal.
Sobre todos los controles e indicadores colocados en el Panel Frontal aparece un texto, por ejemplo Numeric, Boolean, Meter, Waveform Chart, etc. Este texto es la etiqueta o Label que sirve para identificar el elemento tanto en el Panel Frontal como en el Diagrama de Bloques, así como en variables, propiedades, referencias o métodos que dependan de ese control. También existe otro texto llamado Caption que sólo puede ser visible en el Panel Frontal. Aunque no es necesario, es conveniente que cada control tenga un Label diferente que describa su función. Si es necesario, en el Panel Frontal se puede usar Caption y tip para presentar una descripción más extensa. Se puede hacer visible o invisible un Label o Caption presionando con el botón derecho sobre el control en el Panel Frontal para ir al menú contextual y después a Visible Items.
Todos los controles e indicadores tienen elementos comunes en su menú contextual, como hacer que tengan un valor por defecto (Data Operations > Make Current Value Default), hacer que sean visibles o no (desde el Diagrama de Bloques Hide/Show Control), etc. Otros elementos del menú dependen del tipo de control, como en los arrays añadir más dimensiones, en los gráficos modificar colores, fuentes, tipos de interpolación, etc.
1.2.2.1. Personalización de controles
Además de los controles disponibles en este menú, se pueden crear otros nuevos mediante la modificación de uno existente. Para ello, primero hay que colocar en el Panel Frontal un control del tipo de datos deseado y después elegir en el menú Edit > Customize Control.

Figura 1-11. Opción para modificar o crear un control
En la parte superior aparece el botón Edit Mode


Cada parte tiene un menú contextual a través del cual se pueden importar/exportar imágenes. Las partes pueden mostrar diferentes gráficos en diferentes momentos. Por ejemplo, un control booleano tiene cuatro gráficos diferentes: estado FALSE, estado TRUE, estado Switch When Released y estado Latch When Released (mientras está presionado el botón). Cuando existe la opción de tener varios gráficos, el menú contextual tendrá la opción Picture Item para seleccionar uno de ellos.

Figura 1-12. Manejo de los elementos que componen un control.
Cuando se coloca un control personalizado en un Panel Frontal no existe ningún vínculo entre el fichero donde el control está definido (*.ctl) y sus instancias empleadas en cada VI donde es usado, se trata de copias independientes. Si una instancia se modifica no afecta al resto.



