Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1.- INTRODUCCIÓN
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
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:
List & Ring – Para visualizar y/o seleccionar una lista de opciones.
Structures – Muestra las estructuras de control del programa, junto con las
variables locales y globales.
Array – Contiene funciones útiles para procesar datos en forma de vectores, así
como constantes de vectores.
Time & Dialog – Contiene funciones para trabajar con cuadros de diálogo,
introducir contadores y retardos, etc.
Analysis – Contiene un submenú en el que se puede elegir entre una amplia gama
de funciones matemáticas de análisis.
8
3.- PROGRAMACIÓN EN LABVIEW
9
4.- EJECUCIÓN DE UN VI
Run
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:
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
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
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.
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
TIPOS DE DATOS:
Existen 12 representaciones para los controles o indicadores digitales:
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
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
Tarjeta 2
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:
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.
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.
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.
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.
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.
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
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).
• · 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.
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.
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.
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.
• Remove element: Borra un terminal de¡ lado izquierdo siempre y cuando el registro de
desplazamiento tenga asociado más de uno.
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
El promedio se
realiza sobre 4
PASO A muestras
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.
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.
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.
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
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 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.
28
• Make Current Value Default: Convierte el último punto obtenido en el valor por
defecto.
• 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.
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.
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.
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.
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