Sei sulla pagina 1di 34

CURSO BASICO DE LABVIEW

1.- INTRODUCCIÓN

LabVIEW constituye un revolucionario sistema de programación gráfica para


aplicaciones que involucren adquisición, control, análisis y presentación de datos. Las
ventajas que proporciona el empleo de LabVIEW se resumen en las siguientes:
• Se reduce el tiempo de desarrollo de las aplicaciones al menos de 4 a 10 veces, ya que
es muy intuitivo y fácil de aprender.
• Dota de gran flexibilidad al sistema, permitiendo cambios y actualizaciones tanto del
hardware como del software.
• Da la posibilidad a los usuarios de crear soluciones completas y complejas.
• Con un único sistema de desarrollo se integran las funciones de adquisición, análisis y
presentación de datos.
• El sistema está dotado de un compilador gráfico para lograr la máxima velocidad de
ejecución posible.
• Tiene la posibilidad de incorporar aplicaciones escritas en otros lenguajes.
LabVIEW es un entorno de programación destinado al desarrollo de aplicaciones,
similar a los sistemas de desarrollo comerciales que utilizan el lenguaje C o BASIC. Sin
embargo, LabVIEW se diferencia de dichos programas en un importante aspecto: los
citados lenguajes de programación se basan en líneas de texto para crear el código fuente
del programa, mientras que LabVIEW emplea la programación gráfica o lenguaje G para
crear programas basados en diagramas de bloques.
Para el empleo de LabVIEW no se requiere gran experiencia en programación, ya que
se emplean iconos, términos e ideas familiares a científicos e ingenieros, y se apoya sobre
símbolos gráficos en lugar de lenguaje escrito para construir las aplicaciones. Por ello
resulta mucho más intuitivo que el resto de lenguajes de programación convencionales.
LabVIEW posee extensas librerías de funciones y subrutinas. Además de las funciones
básicas de todo lenguaje de programación, LabVIEW incluye librerías específicas para la
adquisición de datos, control de instrumentación VXI, GPIB y comunicación serie, análisis
presentación y guardado de datos.
LabVIEW también proporciona potentes herramientas que facilitan la depuración de los
programas .
1
2.- ¿CÓMO TRABAJA LABVIEW?

Los programas desarrollados mediante LabVIEW se denominan Instrumentos Virtuales


(VIs), porque su apariencia y funcionamiento imitan los de un instrumento real. Sin
embargo son análogos a las funciones creadas con los lenguajes de programación
convencionales. Los VIs tienen una parte interactiva con el usuario y otra parte de código
fuente, y aceptan parámetros procedentes de otros VIs.
Todos los VIs tienen un panel frontal y un diagrama de bloques. Las paletas contienen
las opciones que se emplean para crear y modificar los VIs. A continuación se procederá a
realizar una somera descripción de estos conceptos.

A) Panel Frontal

Se trata de la interfaz gráfica del VI con el usuario. Esta interfaz recoge las entradas
procedentes del usuario y representa las salidas proporcionadas por el programa. Un panel
frontal está formado por una serie de botones, pulsadores, potenciómetros, gráficos, etc.
Cada uno de ellos puede estar definido como un control (a) o un indicador (b). Los
primeros sirven para introducir parámetros al VI, mientras que los indicadores se emplean
para mostrar los resultados producidos, ya sean datos adquiridos o resultados de alguna
operación.

b b

b
a
2
B) Diagrama de bloques

El diagrama de bloques constituye el código fuente del VI. En el diagrama de bloques


es donde se realiza la implementación del programa del VI para controlar o realizar
cualquier procesado de las entradas y salidas que se crearon en el panel frontal.
El diagrama de bloques incluye funciones y estructuras integradas en las librerías que
incorpora LabVIEW. En el lenguaje G las funciones y las estructuras son nodos
elementales. Son análogas a los operadores o librerías de funciones de los lenguajes
convencionales.
Los controles e indicadores que se colocaron previamente en el Panel Frontal, se
materializan en el diagrama de bloques mediante los terminales. A continuación se
presenta un ejemplo de lo recién citado:

c
a b

(a) Función.
(b) Terminales (control e indicador).
(c) Estructura.
El diagrama de bloques se construye conectando los distintos objetos entre sí, como si
de un circuito se tratara. Los cables unen terminales de entrada y salida con los objetos
correspondientes, y por ellos fluyen los datos.
LabVIEW posee una extensa biblioteca de funciones, entre ellas, aritméticas,
comparaciones, conversiones, funciones de entrada/salida, de análisis, etc. 3
Las estructuras, similares a las declaraciones causales y a los bucles en lenguajes
convencionales, ejecutan el código que contienen de forma condicional o repetitiva (bucle
for, while, case,...).
Los cables son las trayectorias que siguen los datos desde su origen hasta su destino, ya
sea una función, una estructura, un terminal, etc. Cada cable tiene un color o un estilo
diferente, lo que diferencia unos tipos de datos de otros.

C) Paletas.

Las paletas de LabVIEW proporcionan las herramientas que se requieren para crear y
modificar tanto el panel frontal como el diagrama de bloques. Existen las siguientes
paletas:

Paleta de herramientas (Tools palette)

Se emplea tanto en el panel frontal como en el diagrama de bloques. Contiene las


herramientas necesarias para editar y depurar los objetos tanto del panel frontal como del
diagrama de bloques.

Las opciones que presenta esta paleta son las siguiente:

Operating tool – Cambia el valor de los controles.

Positioning tool – Desplaza, cambia de tamaño y selecciona los objetos.

Labeling tool – Edita texto y crea etiquetas.

Wiring tool – Une los objetos en el diagrama de bloques.

Object Pop-up Menu tool – Abre el menú desplegable de un objeto.

Scroll tool – Desplaza la pantalla sin necesidad de emplear las barras de


desplazamiento.

Breakpoint tool – Fija puntos de interrupción de la ejecución del programa


en VIs, funciones y estructuras. 4
Probe tool – Crea puntos de prueba en los cables, en los que se puede
visualizar el valor del dato que fluya por dicho cable en cada instante.

Color Copy tool – Copia el color para después establecerlo mediante la


siguiente herramienta.

Color tool – Establece el color de fondo y el de los objetos

Paleta de controles (Controls palette)

Se utiliza únicamente en el panel frontal. Contiene todos los controles e indicadores


que se emplearán para crear la interfaz del VI con el usuario.

El menú Controls de la ventana correspondiente al panel frontal contiene las siguientes


opciones:

Numeric – Para la introducción y visualización de cantidades numéricas.

Boolean – Para la entrada y visualización de valores booleanos.

String & Table – Para la entrada y visualización de texto.

List & Ring – Para visualizar y/o seleccionar una lista de opciones.

Array & Cluster – Para agrupar elementos.

Graph – Para representar gráficamente los datos.

Path & RefNum – Para gestión de archivos.

Decorations – Para introducir decoraciones en el panel frontal. No visualizan


datos. 5
User Controls – Para elegir un control creado por el propio usuario.

ActiveX – Para transferir datos y programas de unas aplicaciones a otras dentro de


Windows.

Select a Control – Para seleccionar cualquier control.


Al seleccionar objetos desde el menú Controls estos aparecen sobre el panel frontal,
pueden colocarse donde convenga, y además tienen su propio menú desplegable que
permite la configuración de algunos parámetros específicos de cada tipo de control..

Paleta de funciones (functions palette)

Se emplea en el diseño del diagrama de bloques. La paleta de funciones contiene todos


los objetos que se emplean en la implementación del programa del VI, ya sean funciones
aritméticas, de entrada/salida de señales, entrada/salidad de datos a fichero, adquisición de
señales, temporización de la ejecución del programa,...

Para seleccionar una función o estructura concretas, se debe desplegar el menú


Functions y elegir entre las opciones que aparecen. A continuación se enumeran todas
ellas, junto con una pequeña definición.

Structures – Muestra las estructuras de control del programa, junto con las
variables locales y globales.

Numeric – Muestra funciones aritméticas y constantes numéricas.

Boolean – Muestra funciones y constantes lógicas. 6


String – Muestra funciones para manipular cadenas de caracteres, así como
constantes de caracteres.

Array – Contiene funciones útiles para procesar datos en forma de vectores, así
como constantes de vectores.

Cluster – Contiene funciones útiles para procesar datos procedentes de gráficas y


destinados a ser representados en ellas, así como las correspondientes constantes.

Comparison – Muestra funciones que sirven para comparar números, valores


booleanos o cadenas de caracteres.

Time & Dialog – Contiene funciones para trabajar con cuadros de diálogo,
introducir contadores y retardos, etc.

File I/O – Muestra funciones para operar con ficheros.

Communication – Muestra diversas funciones que sirven para comunicar varios


ordenadores entre sí, o para permitir la comunicación entra distintos programas.

Instrument I/O – Muestra un submenú de VIs, que facilita la comunicación con


instrumentos periféricos que siguen la norma ANSI/IEEE 488.2-1987, y el control del
puerto serie.

Data Acquisition – Contiene a su vez un submenú donde puede elegirse entre


distintas librerías referentes a la adquisición de datos.

Analysis – Contiene un submenú en el que se puede elegir entre una amplia gama
de funciones matemáticas de análisis.

Tutorial – Incluye un menú de VIs que se utilizan en el manual LabVIEW Tutorial.

Advanced – Contiene diversos submenús que permiten el control de la ayuda, de los


VIs, manipulación de datos, procesado de eventos, control de la memoria, empleo de
programas ejecutables o incluidos en librerías DLL, etc.

Instrument drivers – En él se muestran los drivers disponibles de distintos


instrumentos. 7
User Libraries – Muestra as librerías definidas por el usuario. En este caso, la
librería mostrada contiene los drivers de la tarjeta de adquisición de datos de Advantech.

Aplication control – Contiene varias funciones que regulan el funcionamiento de la


propia aplicación en ejecución.

Select a VI – Permite seleccionar cualquier VI para emplearlo como subVI.

8
3.- PROGRAMACIÓN EN LABVIEW

Con el entorno gráfico de programación de LabVIEW se comienza a programar a partir


del panel frontal.
En primer lugar se definirán y seleccionarán de la paleta de controles todos los
controles (entradas que dará el usuario) e indicadores (salidas que presentará en pantalla el
VI) que se emplearán para introducir los datos por parte del usuario y presentar en pantalla
los resultados.
Una vez colocados en la ventana correspondiente al panel frontal todos los objetos
necesarios, debe pasarse a la ventana Diagram (menú Windows > Show Diagram), que es
donde se realiza la programación propiamente dicha (diagrama de bloques). Al abrir esta
ventana, en ella se encuentran los terminales correspondientes a los objetos situados en el
panel frontal, dispuestos automáticamente por LabVIEW.
Se deben ir situando las funciones, estructuras, etc. que se requieran para el desarrollo
del programa, las cuales se unen a los terminales mediante cables.
Para facilitar la tarea de conexión de todos los terminales, en el menú “Help” puede
elegirse la opción “Show Help”, con lo que al colocar el cursor del ratón sobre un elemento
aparece una ventana con información relativa a éste (parámetros de entrada y salida).
Además, si se tiene seleccionado el cursor de cableado, al situar éste sobre un elemento se
muestran los terminales de forma intermitente.

9
4.- EJECUCIÓN DE UN VI

Una vez se ha concluido la programación del VI se debe proceder a su ejecución. Para


ello la ventana activa debe ser el panel frontal (si se está en la ventana del diagrama de
bloques, se debe seleccionar la opción Show Panel del menú Window).
Un a vez situados en el panel frontal, se pulsará el botón de Run, situado en la barra de
herramientas.

Run

El programa comenzará a ejecutarse. Mientras dura la ejecución del mismo, la


apariencia del botón de Run es la que se muestra a continuación:

De este modo el programa se ejecutará una sola vez. Si se desea una ejecución continua,
se pulsará el botón situado a la derecha del de Run (Continuous Run). Si durante el
funcionamiento continuo del programa se vuelve a pulsar el citado botón, se finalizará la
última ejecución del mismo, tras lo cual el programa se parará.

Continuous Run
Para finalizar la ejecución de un programa se puede operar de dos formas. La primera, y
la más aconsejable, es emplear un botón en el panel frontal del VI, cuya pulsación
produzca la interrupción del bucle de ejecución de la aplicación. La segunda forma de
detener la ejecución del VI es pulsando el botón de pausa o el de stop. La diferencia entre
ambos es que si se pulsa stop, la ejecución del programa finaliza inmediatamente, mientras
que si se pulsa pausa, se produce una detención en el funcionamiento del programa,
retomándose su ejecución una vez se vuelve a pulsar el mismo botón.

stop pausa
10
5- PRÁCTICAS DE INICIACIÓN A LABVIEW
Las prácticas de que consta esta introducción a la programación con LabVIEW y los objetivos perseguidos son:

INTRODUCCIÓN A LA PROGRAMACIÓN GRÁFICA CON LABVIEW


Practica 1:
Realización de la suma de 2 números.
Contacto con el entorno de trabajo, panel de control y zona de diagrama.
Concepto de visualizador y control.
Llamadas a la ayuda en linea para las funciones.
Ejecución única y ejecución cíclica.
Practica 2:
Cambio de los controladores numéricos por otros gráficos.
Tipos de datos
Suma de cadenas de caracteres.
Práctica 3:
Ejecución en modo depuración.
Concepto de instrumento virtual (VI)
Creacion de instrumentos virtuales.
Práctica 4
Incorporación de subVI

Práctica 5
Secuencia While-Loop

Práctica 6
Registro de desplazamiento

Práctica 7
Bucles 'For'
Práctica 8
Arrays de elementos
Práctica 9
Gráficas Waveform Chart
Práctica 10
Gráficas Waveform Graph
Práctica 11
Gráficas múltiples

Práctica 12
Gráfico XY
Práctica 13
Fórmula Node
Práctica 14
Estructura Casae

Introducción a la Instrumentación Virtual. Programación en LabVIEW (Ver. 5.5) 12


PRÁCTICA 1ª: REALIZAR LA SUMA DE 2 NÚMEROS

INSERTAR LOS ELEMENTOS EN EL PANEL FRONTAL.


Para ello en el panel frontal insertaremos el elemento Controls/Numeric/DigitalControl. de la paleta "Functions"
Lo haremos 3 veces, una para el elemento A, otra para el B y otra para un tercero que será la suma de ambos
A+B.
• A medida que los vayamos insertando rellenaremos la casilla de etiqueta para cada uno de ellos.
• Durante la ejecución, aumentaremos el valor de A y B mediante el dedo de la barra de herramientas
• Para mover uno de los elementos insertados podemos hacerlo mediante la flecha de la barra de
herramientas, arrastrando el objeto y soltándolo en la posición deseada.

INSERTAR LA OPERACIÓN DE SUMA:


En la ventana de diagrama seleccionar FUNTIONS/Numeric/Add
Distinguiremos entre control e indicador en la parte del diagrama de bloques
Las uniones que relacionan los elementos con la operación se hacen mediante el elemento carrete de hilo de la
paleta de herramientas

Etiqueta

LLAMADAS A LA AYUDA:
Mediante CONTROL+H o seleccionando la opción Show Help del menú HELP
Situándonos sobre cualquier elemento nos informará de su utilidad y que conexiones necesita.

Nombre de la
función seleccionada

EJECUCIÓN DEL PROGRAMA


Para ver el resultado de nuestro programa ejecutamos el programa pulsando con el ratón sobre el botón . Esto
ejecutará el programa una sola vez. Si cambiamos los valores de los controles digitales no veremos el resultado
correcto hasta que lo pulsemos de nuevo
Si pulsamos el botón el programa se ejecutará continuamente, por lo que si cambiamos los valores de los
controles el resultado se refrescara instantáneamente.
Pulsando sobre los botones de abortar o pausa, ( ) , respectivamente, podremos detener la ejecución
definitiva o temporalmente. Para salir de la pausa volveremos a pulsar sobre ese botón.

Introducción a la Instrumentación Virtual. Programación en LabVIEW (Ver. 5.5) 13


Pulsar sobre CONTROL+B borra de nuestro diagrama las uniones defectuosas realizadas mediante el
carrete de hilo, porque no llevan a ningún sitio o porque unan elementos no relacionables.

SUSTITUCIÓN DE CONTROLES E INDICADORES


Sustituiremos o reemplazaremos los controles existentes por otros diferentes, como por ejemplo por
CONTROLS/NUMERIC/Horizontal Pointer Slide.

Obsérvese que solamente cambiamos la parte correspondiente a la interfaz de usuario, no a la funcionalidad.

PRÁCTICA 2: OTRAS OPERACIONES Y CONTROLES

Partiendo de lo aprendido en la práctica 1, realizar las operaciones de suma, resta, multiplicación y división de las
entradas A y B utilizando como salidas para los resultados distintos visualizadores, tanque, agujas, etc.

Para cambiar la escala del depósito al valor 100, basta con sobrescribir el valor máximo con la
herramienta de escritura

Podemos realizar el cambio entre las distintas herramientas, ‘flecha’, ‘mano’, ‘carrete de hilo’ con
la pulsación del tabulador y el espaciador.

Introducción a la Instrumentación Virtual. Programación en LabVIEW (Ver. 5.5) 14


INTRODUCIR FUNCIONES DE COMPARACIÓN:
Las funciones de comparación se encuentran en FUNTIONS/COMPARISON/GREATER.
Introducir Leds como resultado de las comparaciones, CONTROLS/BOOLEAN.

Cambio de colores: podemos modificar las propiedades de color de la mayoría de los elementos del panel de
control con la herramienta pincel

La alineación de las partes de un diagrama y del panel de control se realiza mediante las listas

desplegables de la barra de herramientas.

TIPOS DE DATOS:
Existen 12 representaciones para los controles o indicadores digitales:

• Precisión simple: 32 bits (SGL).


• Precisión doble: 64 bits (DBL).
• Precisión extendida (EXT): números de coma flotante.
• Número entero con signo (I8) de tipo byte (8 bits).
• Número entero sin signo (U8) de tipo byte (8 bits).
• Número entero con signo (I16) de tipo palabra (16 bits).
• Número entero sin signo (U16) de tipo palabra (16 bits).
• Número entero con signo (I32) de tipo entero extendido (32 bits).
• Número entero sin signo (U32) de tipo entero extendido (32 bits).
• Complejos de precisión simple (CSG).
• Complejos de precisión doble (CDB).
• Complejos de precisión extendida (CXT): números complejos de coma flotante.

Los límites, máximo y mínimo, dependen del tipo ; un entero con signo (8 bits) estará entre los valores de -128 a
127.
Precisión: Simple Doble Extendida
Número positivo máximo 3,4 E38 1,7 E308 1,1 E4932
Número positivo mínimo 1,5 E-45 5,0 E-324 1,9 E-4951
Número negativo mínimo -1,5 E-45 -5,0 E-324 -1,9 E-4951
Número negativo máximo -3,4 E38 -1,7 E308 -1,1 E4932

Introducción a la Instrumentación Virtual. Programación en LabVIEW (Ver. 5.5) 15


Para realizar el cambio de la precisión de un dato invocaremos el menú contextual pulsando el botón derecho
cuando estemos sobre él y seleccionando el submenú de REPRESENTATION del menú emergente.

CONCATENACIÓN DE CADENAS ALFANUMÉRICAS FRENTE A SUMA DE NÚMEROS.


La función equivalente a la suma de números es la concatenación de caracteres, que da por resultado una única
cadena formada por otras simples.

Paso A
La concatenación básica corresponde con este ejemplo, donde usamos la función Funcions/strings/concatenate
strings

Paso B
En el ejemplo siguiente concatenamos varios elementos; algunos de los cuales son el resultado de la conversión
de números a cadenas de caracteres.

STRINGS/ADITIONAL../to
fractional

STRINGS/PICK LINE &


APPEND

Para realizar un selector como el de la imagen debemos usar la


propiedad TEXT LABEL en el menú contextual del selector. Una vez
hecho esto, podremos añadir nuevos textos al selector, pulsando en el
menú contextual que aparece en su display sobre las opciones ADD
ITEM BEFORE ó ADD ITEM AFTER.

Introducción a la Instrumentación Virtual. Programación en LabVIEW (Ver. 5.5) 16


PRÁCTICA 3ª: DEPURACIÓN Y CREACIÓN DE SUBVI´S

Tarjeta 2

Insertar la función : FUNCTIONS/TUTORIAL/Demo voltaje Read.VI

Este VI solo funciona si seleccionamos los valores 0 ó 1 en el control Device y el control Chanel dando error en )
NOTA: A partir de aquí si nos interesa

TÉCNICAS DE DEPURACIÓN:

Seleccionando el botón de la ventana de diagrama se ejecutará la aplicación en modo depuración.

Podemos insertar una punta de prueba en cualquier cable del diagrama para visualizar el valor en dicho punto.

• Para crear esta punta de prueba, seleccionamos la herramienta del menú de herramientas, pulsando
con el ratón en aquellos puntos de cable donde deseemos saber el valor de la variable.

• En el momento de ejecución nos aparecerá en el diagrama una ventana con el valor.

Recordemos que para obtener ayuda sobre una determinada función podemos activar la ayuda.
Se la llama mediante CONTROL-H. y al situarnos sobre un elemento nos da la información referida a
el, conexiones y tipos de datos que utiliza.

Introducción a la Instrumentación Virtual. Programación en LabVIEW (Ver. 5.5) 17


CREACIÓN DE SUBVI'S
Son el equivalente a las subrutinas en los lenguajes de programación basados en texto.Con ellos conseguimos una
programación mejor estructurada y por tanto más legible así como evitar la repetición de código. La diferencia
respecto a las tradicionales subrutinas es que un subVI puede ejecutarse de forma autónoma sin necesidad de que
esté incluido en un VI.

Al hacer doble click sobre un subVI se abre el panel de control correspondiente a dicho subprograma.

Para salvar un VI como fichero lo haremos mediante las distintas opciones del menú FILE, SAVE y SAVE AS.
Deberemos poner nosotros la extensión .VI ya que por defecto el programa no añade extensión alguna.

Crear un subVI
Partiendo de un VI como el del ultimo ejemplo, crearemos un subVI para utilizarlo posteriormente en otras
partes de nuestros VI's. Tendremos que definir unas entradas y unas salidas para posteriormente efectuar las
conexiones en el diagrama.

Haciendo doble click ( doble pulsación) sobre el icono de la parte superior derecha del panel de control
podemos editar el dibujo que identificará a nuestro subVI.

Si una vez modificado y dejado como definitivo, pulsamos con el botón derecho y elegimos la opción Show
conector veremos la disposición de conexiones de nuestro subVI.
Pulsar el botón derecho para ver los distintos tipos de patterns (plantillas de conexión) y elegir el que se adapte a
nuestras entradas y salidas; normalmente las entradas estarán a la izquierda y las salidas a la derecha.

En la ventana panel de control seleccionar la posición dentro del pattern y con el carrete de hilo el control
correspondiente de entrada o salida. Si esta seleccionado como entrada o salida habrá cambiado del blanco al gris
en el pattern elegido por nosotros.
Una vez realizadas las conexiones y modificaciones del icono podemos guardarlas.

Introducción a la Instrumentación Virtual. Programación en LabVIEW (Ver. 5.5) 18


PRÁCTICA 4ª: UTILIZACIÓN DE SUBVI'S

Partiendo del subVI que acabamos de crear y que transforma la temperatura en Cº a grados Kelvin , realizar un VI
que visualice una temperatura en grados centígrados en grados K y grados Farenheit.

Introducir el subVI creado en la práctica 3ª


Lo haremos mediante el menú del diagrama ‘Select a VI...’. Lo seleccionaremos de la lista de ficheros y lo
pegaremos en la ventana diagrama de nuestro instrumento virtual.

Como queda claro en el diagrama de bloques: Tª (ºF) = [Tª (ºC) + 32] * 9/5

En vez de crear manualmente un control para cada entrada y un indicador para cada salida, es
posible realizar esta tarea automáticamente:

- Mediante el carrete de hilo, pulsar con el botón derecho sobre la entrada o salida y elegir la
opción create control o create indicator .
- Según el caso el programa crea automáticamente el tipo necesitado incluso con su etiqueta.

Si no hemos puesto la etiqueta a algún elemento deberemos seleccionar el elemento con el botón
derecho y elegir la opción show label; una vez en pantalla introducir el valor deseado.

Siguiendo la ejecución del programa en modo de depuración podemos ver como las funciones esperan de
izquierda a derecha a que se vayan generando los datos que necesitan para completar la operación.

Introducción a la Instrumentación Virtual. Programación en LabVIEW (Ver. 5.5) 19


BUCLE WHILE

Usaremos Whíle Loop cuando queramos que una operación se repita mientras una
determinada condición sea cierta. Su equivalente en lenguaje convencional es:

Do ejecutar subdiagrama
While condición is TRUE

Al igual que For Loop contiene dos terminales:

1.-Terminal condicional: A él conectaremos la condición que hará que se ejecute el


subdiagrama. LabVIEW comprobará el estado de este termina¡ al final de cada
iteración, si su valor es TRUE (verdadero) continuará, pero por el
contrario si su valor es FALSE (falso) detendrá la ejecución.

2.- Terminal de iteración: Indica el número de veces que se ha ejecutado el bucle y que,
como mínimo, siempre será una (¡=O).
Al hacer pop-up tanto en el For Loop como en el Whíle Loop se despliega el siguiente
menú:
(La versión 4.0 presenta además la opción de Ayuda en Línea u Online Help).

• · Show Label: Oculta o visualiza la etiqueta de identificación de¡ Loop y, si no


existe, permite ponerla.

• · Description: Permite añadir comentarios.

• · Replace: Cambia el For Loop o el While Loop por cualquier otra función de la
paleta Structs & Constants.

• · Remove Loop: Borra la estructura While o For pero sin eliminar el subdiagrama de
su interior.

• Add Shift Register: Añade los shift register (registros de desplazamiento).

20
PRÁCTICA 5ª: SECUENCIA WHILE-LOOP
La secuencia While-loop permite repetir las acciones que situemos dentro del bucle hasta que deje de cumplirse
una condición que nosotros establezcamos.

PASO A
Como ejemplo generaremos un número aleatorio entre 0 y 1 mediante la función FUNTIONS/NUMERIC/Ramdom
Number.

La ejecución debe parar cuando el usuario pulse un botón ON/OFF.

Para ello, situaremos la función dentro de un bucle While que se ejecutará como mínimo 1 vez hasta que la
condición procedente del botón sea FALSE.

• Diferenciaremos entre la ejecución única del programa, que se detendrá cuando pongamos en OFF el
botón asociado al control del bucle y la parada en la ejecución mediante el botón de STOP.

Introducción a la Instrumentación Virtual. Programación en LabVIEW (Ver. 5.5) 21


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 permiten transferir los valores del final de una
iteración al principio de la siguiente.

Inicialmente shift register tiene un par de terminales colocados a ambos lados del Loop; el
terminal de la derecha almacena el valor final de la iteración hasta que una nueva hace que
este valor se desplace al terminal de la izquierda, quedando en el de la derecha el nuevo valor.
Un mismo registro de, desplazamiento puede tener más de un terminal en el lado izquierdo;
para añadirlo escogeremos la opción Add Element (añadir elemento) del menú pop-up.
Cuantos más terminales tengamos en el lado izquierdo más valores de iteraciones anteriores
podremos almacenar.

El menú pop-up tiene otros dos comandos:

• Remove element: Borra un terminal de¡ lado izquierdo siempre y cuando el registro de
desplazamiento tenga asociado más de uno.

• Remove Al¡: Borra todo el registro de desplazamiento, tanto los termínales de la


izquierda como el de la derecha.

Un mismo Loop puede tener varios registros de desplazamientos siendo conveniente


inicializarlos, para que los terminales de la izquierda tengan el valor deseado cuando se
produzca la primera iteración. Shift register puede trabajar con cualquier tipo de datos
siempre y cuando los datos que se conecten a cada terminal sean del mismo tipo.

Al finalizar la ejecución de todas las iteraciones el último valor quedará en el terminal de la


derecha; uniéndolo a un indicador del mismo tipo de dato fuera del Loop podremos obtener
su valor.

Pero existe otra posibilidad para pasar datos de forma automática desde el interior de la
estructura al exterior. Cuando un cable atraviesa los límites del Loop, aparece en el borde un
nuevo terminal llamado túnel que hace de conexión entre el interior y el exterior, de forma
que los datos fluyen a través de él después de cada iteración del Loop, pudiendo guardar de
esta manera no sólo el último valor de todas las iteraciones sino también los valores
intermedios. A esta posibilidad que tienen tanto el For como el While de acumular arrays en
sus límites automáticamente se le llama auto-indexing o autoindexado.

LabVIEW habilita por defecto auto-indexing en el For Loop ya que es más frecuente utilizar
esta estructura para crear arrays que no el While Loop, en el cual esta opción está
deshabilitada por defecto y cuya utilización podría provocar

22
PRÁCTICA 6ª: REGISTROS DE DESPLAZAMIENTO

Veremos la aplicación de los registros de desplazamiento (Shit registers) en el cálculo de promedios.

Para evitar que la 1ª


iteración tenga los
registros vacíos

El promedio se
realiza sobre 4
PASO A muestras

Añadir los registros de desplazamiento:


En la zona izquierda del bucle pinchar con el ratón y pulsar el botón derecho; seleccionar Add Shif Register.
Después en la zona derecha pinchar y seleccionar Add Element

Para comprender mejor el efecto del registro de desplazamiento activaremos el modo de depuración, para ver
como evolucionan los valores.

Es importante reseñar la diferencia entre parar un programa correctamente, una vez acabada las acciones
contenidas en un bucle o abortar la ejecución mediante el botón sin ningún control sobre las acciones que
han sido ejecutadas y las que han quedado pendientes.

Introducción a la Instrumentación Virtual. Programación en LabVIEW (Ver. 5.5) 23


FORLOOP

Usaremos For Loop cuando queramos que una operación se repita un número determinado de
veces. Su equivalente en lenguaje convencional es:

For i = 0 to N-1
Ejecuta subdiagrama

Al colocar un For Loop en la ventana Diagram observamos que tiene asociados dos
terminales:

1.- Terminar contador: Contiene el número de veces que se ejecutará el subdiagrama creado
en el interior de la estructura. El valor del contador se fijará externamente (ver también
Arrays en el capítulo 6).

2.- Termina¡ de iteración: Indica el número de veces que se ha ejecutado la estructura: Cero
durante la primera iteración, uno durante la segunda y así hasta N-1.
Ambos terminales son accesibles desde el interior de la estructura, es decir, sus valores
podrán formar parte del subdiagrama pero en ningún caso se podrán modificar.

24
PRÁCTICA 7ª: BUCLE FOR.

Un bucle For (For-loop) permite la ejecución del código que situemos dentro del bucle un número de veces
predeterminada.

Introducción a la Instrumentación Virtual. Programación en LabVIEW (Ver. 5.5) 25


PRÁCTICA 8ª: ARRAYS

PASO A
Construiremos un array que contendrá las 100 tiradas del dado:

• Primero, crear un túnel con autoindexado y luego con el botón derecho crear un control indicador

Los elementos del array se almacenarán en el túnel (punto naranja en el marco de la estructura for-loop) si
tenemos habilitada la opción de autoindexado, si no, sólo el último dato será pasado al exterior del bucle.

Introducción a la Instrumentación Virtual. Programación en LabVIEW (Ver. 5.5) 26


INDICADORES GRAFICOS

En muchas ocasiones es necesario para una mayor comprensión de los resultados obtenidos
representarlos gráficamente. Para ello LabVIEW dispone de cinco tipos de gráficos
accesibles desde el menú Controls de¡ panel Frontal bajo e ítem Graph, divididos en dos
grupos: Los indícadores charl y los indicadores graph.
Un indicador graph o indicador gráfico es una representación bídimensional dE una o mas
gráficas. El graph recibe los datos como un bloque. Un indicador chartc de trazos también

muestra gráficas, pero éste recibe los datos y los muestra puntc por punto o array por array,
reteniendo un cierto número de puntos en pantalla mediante un buffer disponible para ello.

INDICADORES CHART

WAVEFORM CHART

Waveform chart es un tipo especial de indicador numérico que muestra una o mas gráficas,
reteniendo en pantalla un cierto número de datos definido por nosotros mismos. Los nuevos
datos se añaden al lado de los ya existentes, de forma que se pueden comparar entre ellos.

Los datos se pueden pasar uno a uno al chart o mediante arrays, Evidentemente es mucho
conveniente pasar múltiples puntos a la vez ya que de esta manera sólo es necesario redibujar
la gráfica una vez y no una por cada punto (figura 5.1).

Es posible dibujar varias gráficas en un mismo chart, uniendo los datos de cada gráfica en un
cluster de escalares numéricos de forma que cada escalar que contiene el cluster se considera
como un punto de cada una de las gráficas para una misma abcisa. Se puede ahorrar tiempo
uniendo los clusters en arrays y después pasando todo el array a la gráfica.

Figura 5.1

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

27
• Change to Control o Change to Indicator: Dependiendo de si la waveforrn es un control
o un indicador nos permitirá cambiar entre ellas.
• Find Terminal: Muestra el terminal asociado en el Diagrama de bloques.

• Show Label: Permite poner una etiqueta de identificación a la waveform chart y, si ya


existe, la visualiza.

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

• Show Palette: Activa una paleta que permite hacer zooms, desplazar la gráfica 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 elegir entre escala lineal o
logarítmica.

• Show Digital Display: Es un indicador que muestra el último valor que se ha cargado en
pantalla. Hay un indicador por cada gráfica.

• Show Scrolibar: Permite ver los valores anteriores contenidos en el buffer.

• Show X Scale: Visualiza la escala de¡ eje de abcisas.

• Show Y Scale: Visualiza la escala de¡ eje de ordenadas.


• Reinitialize to Default: Actualiza el último punto obtenido al valor por defecto.

28
• Make Current Value Default: Convierte el último punto obtenido en el valor por
defecto.

• Description: Permite añadir comentarios.

• Clear Chart: Borra el contenido de¡ buffer.

• AutoScale X: Ajusta de forma automática el rango de valores de X para una correcta


visualización.

• AutoScale Y: Ajusta de forma automática el rango de valores de Y para una correcta


visualización.

• Update Mode: Permite escoger entre tres modos de visualizar los nuevosstrip chart,
scope chart y sweep chart. El modo strip chart es el modo por defecto y
consiste en que cada nuevo valor se coloca a la derecha del display, mientras
que valores anteriores se desplazan hacia la izquierda. En el modo scope chart
cada nuevo valor se coloca a la derecha de¡ anterior, empezando por el margen
izquierdo del display. Cuando se llega al margen derecho se borra todo el
display y se comienza de nuevo desde la izquierda. El modo scope chart es
mucho más rápido que el modo strip chart ya que no es necesario realizar todo
el proceso de desplazar la pantalla hacia la izquierda para cada nuevo punto.
El modo sweep chart actúa como el modo scope chart, alvo que ahora cuando
se llega al final de la pantalla, ésta no se borra y se S comienza de nuevo desde
el principio, donde una línea vertical se mueve hacia la derecha cada vez que
se añade un nuevo punto.

• Create Attribute Node: Crea un nodo asociado al termina¡ de¡ que procede en el
Diagrama de Bloques.
• Replace: Permite sustituir la waveform chart por cualquiera de los controles e
indicadores del Panel Frontal.

• X Scale and Y Scale: Permite escoger el estilo de la escala, tipo de rejilla, punto inicial,
incremento entre punto y punto, formato y precisión de estos puntos.

• Transpose Array: Cuando se representa más de una gráfica en una misma chart
utilizando arrays, waveform chart interpreta por defecto las filas como gráficas
diferentes. Pero si a nosotros nos interesa que sean las columnas las gráficas
diferentes, utilizaremos este comando para convertir las columnas en filas.

• Stack Plots: Normalmente cuando se representan más de una gráfica todas ellas se
sitúan en un mismo display. Pero puede ocurrir que las escalas de las
ordenadas sean muy diferentes entre ellas o que simplemente nos interese
representarlas por separado, cada una en un display. Para conseguir esto
activaremos el comando Stack Plot de forma que cada gráfica aparecerá con su
propia escala y su propio display. Cuando Stack Plots está activado, en su
lugar aparece el comando Overlay Plot que es el que dibuja todas las
gráficas en un mismo display.

29
PRACTICA 9 : GRAFICOS WAVEFORM CHART
En un gráfico Waveform Chart cada vez que se van mandando nuevos puntos se van
desplazando hacia la izquierda los datos anteriores. Se puede enviar un punto cada vez o un
array de varios puntos.

a) Probar la práctica de la figura ejecutando una sola vez el programa. (NOTA: Se ha


habilitado la opción Enable Indexing en el túnel)

b) Probar la práctica de la figura ejecutando una sola vez el programa (NOTA: No se ha


habilitado la opción Enable Indexing en el túnel)

30
PRACTICA 10 : GRAFICOS WAVEFORM GRAPH
En un gráfico Waveform Graph cada vez que se van mandando nuevos puntos no se
van desplazando hacia la izquierda los datos anteriores, sino que se sustituyen
completamente por los nuevos. No se puede enviar un punto cada vez, se debe enviar
obligatoriamente un array de varios puntos.

a) Probar la práctica de la figura ejecutando una sola vez el programa. (NOTA: Se ha


habilitado la opción Enable Indexing en el túnel)

31
PRACTICA 11 : GRAFICAS MÚLTIPLES
En un gráfico Waveform Graph se pueden representar varias gráficas a la vez. Para ello
se debe usar una función llamada Index& Bundle Cluster Array (Clusters) que es capaz
de unir varios arrays y convertirlos en un objeto que puede mandarse a un gráfico.

a) Probar la práctica de la figura ejecutando una sola vez el programa. (NOTA: Se ha


habilitado la opción Enable Indexing en los túneles)

b) En un gráfico Waveform Chart se debe usar la función Bundle (Cluster) y no se


pueden mandar arrays sino solamente puntos individuales

31
XYGRAPH

En XY Graph un punto X, puede tener varios valores Y, lo que permite, por ejemplo, dibujar
funciones circulares. XY Greph representa una coordenada (Xi, Y,) donde los valores de X no
tienen porque estar equiespaciados como ocurría en las waveform graph.

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

Figura 5.7 Posibles representaciones de una única XY Graph

Al igual que en las waveform graph existe la posibilidad de representar más de una gráfica en
una misma XY Graph (figura 5.8). Pero, en este caso, tan sólo existen dos formatos posibles
derivados de los dos formatos vistos anteriormente para una única gráfica. El primer formato
es un array de gráficas, donde cada gráfica es un cluster de un array X y un array Y. Y el
segundo formato es un array de clusters de gráficas, donde cada gráfica es, a su vez, otro
array de clusters conteniendo un valor X y un valor Y.

32
PRACTICA 12: GRAFICO XY

En un gráfico GraphXY se representan el conjunto de puntos cuyas coordenadas x e y


se almacenan en los arrays X e Y respectivamente.

a) Probar la práctica de la figura ejecutando una sola vez el programa. (NOTA: Se ha


habilitado la opción Enable Indexing en ambos túneles)

b) Representar en el mismo gráfico la función y = Log (x )

Potrebbero piacerti anche