TUTORIAL LABVIEW JUAN CAMILO SANCHEZ COD 2420051027

Transcripción

TUTORIAL LABVIEW JUAN CAMILO SANCHEZ COD 2420051027
TUTORIAL LABVIEW
JUAN CAMILO SANCHEZ COD 2420051027
Presentado a:
Prof. Luis Hernando Días.
UNIVERSIDAD DE IBAGUE
FACULTAD DE INENIERIA
PROGRAMA INGENIERIA ELECTRONICA
PROYECTOS
IBAGUE
2011
TABLA DE CONTENIDO
RESUMEN
0.1.1 INTRODUCCIÓN
0.1.2 MARCO TEÒRIC0
1. CONOCIENDO LABVIEW.
1.1 Que es labview?
1.2
COMPONENTES
1.2.1 Panel frontal
1.2.2 Diagrama de bloques
1.3
PALETAS
1.3.1 Paletas de herramienta
1.3.2 paletas de control
1.3.3 paletas de función
1.4
BARRA DE HERRAMIENTAS DE ESTADO
2. CREAR UN IV
2.1. ABRIR Y EECUTAR UN IV
2.2. CREANDO UN INSTUMENTO VIRTUAL
2.2.1 CONECTAR DIAGRAMAS DE BLOQUES
2.2.2 CABLEAR OBJETOS AUTOMATICAMENTE
2.3. FLUJO DE DATOS
2.4 USO DE AYUDAS
3.1
ESTRUCTURAS Y EJEMPLO
3.1. ESTRUCTURAS
3.1.1 CASE ESTRUCTURE
3.1.2 SEQUENCE ESTRUCTURE
3.1.3 FOR LOOP
3.1.4 WHILE LOOP
3.2 VARIABLES LOCALES Y GLOBALES
3.2.1 VARIABLES LOCALES
3.2.2 VARIABLES GLOBALES
3.3 ERRORES
3.4 TIPS
3.5 EJEMPLO
CAPITULO 1
1. CONOCIENDO LABVIEW
1.1 Qué es LabVIEW?
LabVIEW (Laboratory Virtual Instrument Engineering Workbench) es un lenguaje de
programación gráfico para el diseño de sistemas de adquisición de datos, instrumentación y
control. Labview permite diseñar interfaces de usuario mediante una consola interactivo
basado en software. Usted puede diseñar especificando su sistema funcional, su diagrama
de bloques o una notación de diseño de ingeniería. Labview es a la vez compatible con
herramientas de desarrollo similares y puede trabajar con programas de otra área de
Aplicación, como por ejemplo Matlab. Tiene la ventaja de que permite una fácil integración
con hardware, específicamente con tarjetas de medición, adquisición y procesamiento de
datos (incluyendo adquisición de imágenes).
Los Programas en LabVIEW son llamados instrumentos virtuales (VIs).
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.
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.
1.2 Componentes
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 descripción de estos conceptos.
Panel frontal: Cómo el usuario interacciona con el VIs.
Diagrama de bloque: El código que controla el programa.
Paletas: Medios para conectar un VI con otros VIs.
1.2.1 PANEL FRONTAL
El panel frontal es la interface del usuario con el VI. Usted construye el panel frontal con
controles e indicadores, que son las entradas y salidas que interactúan con las terminales del
VI, respectivamente. Los controles son botones, botones de empuje, marcadores y otros
componentes de entradas. Los indicadores son las graficas, luces y otros dispositivos. Los
controles simulan instrumentos de entradas de equipos y suministra datos al diagrama de
bloques del VI. Los indicadores simulan salidas de instrumentos y suministra datos que el
diagrama de bloques adquiere o genera.
En esta imagen, el switch de poder (encendido o apagado) es un control booleano.
Un valor booleano contiene ambos un valor verdadero o falso. El valor es falso hasta que el
switch se presione. Cuando el switch se presiona, el valor se convierte en verdadero. El
indicador del historial de temperatura es una grafica de forma de onda. Esta muestra valores
múltiples. En este caso, la grafica señalara grados F versus tiempo (seg.).
1.2.2 DIAGRAMA DE BLOQUES
El diagrama de bloque contiene el código fuente grafico. Los objetos del panel frontal
aparecen como terminales en el diagrama de bloque. Adicionalmente, el diagrama de
bloque contiene funciones y estructuras incorporadas en las bibliotecas de LabVIEW VI.
Los cables conectan cada uno de los nodos en el diagrama de bloques, incluyendo controles
e indicadores de terminal, funciones y estructuras.
En este diagrama de bloque, el subVI Temp llama a la subrutina la cual obtiene una
temperatura desde una tarjeta de adquisición de datos (DAQ). Esta temperatura es graficada
junto con el valor average de la temperatura en la grafica de forma de onda Temperature
History. El switch de poder (Power) es un control booleano en el panel frontal el cual va a
detener la ejecución de la estructura mientras ( While Loop). La estructura mientras (While
Loop) también contiene una función de tiempo para controlar que tan frecuentemente la
estructura se repite.
Los controles e indicadores que se colocaron previamente en el Panel Frontal, se
materializan en el diagrama de bloques mediante los terminales.
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.
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.
1.3 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:
1.3.1 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.
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
1.3.2 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.
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.
1.3.3 Paleta de funciones (functions palette)
Use la paleta de funciones (Functions), para construir un diagrama de bloque. La
paleta de funciones esta disponible solamente en el diagrama de bloque. Seleccione
Window»Show Functions Palette o haga un click derecho en el espacio de trabajo
del diagrama de bloque para desplegar la paleta de funciones. Usted también puede
desplegar la paleta de funciones dando un click derecho en una área abierta del
diagrama de bloques. Para desaparecer la paleta de funciones presione el botón en la
parte superior izquierda de la paleta.
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.
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
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í.
Instrument I/O –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 de 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 .
Advanced – Contiene diversos submenús que permiten
el control de la ayuda, de losVIs, manipulación de datos,
Instrument drivers – En él se muestran los drivers disponibles de distintos
instrumentos.
User Libraries – Muestra las librerías definidas por el usuario.
.
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
1.4 BARRA DE HERRAMIENTAS DE ESTADO
Botón d (Run) para ejecutar el VI. Mientras el VI se esta ejecutando, el botón de ejecución
aparecerá con una flecha negra si es que el VI es un VI principal, lo que significa que no ha
sido llamado por otro VI y por lo tanto este no es un VI.
Botón (Continuous Run) para ejecutar el VI hasta que el botón de cancelación de
ejecución o de pausa sea presionado. Usted también puede pulsar este botón nuevamente
para deshabilitar la ejecución continua.
Botón (Abort Execution) aparece. Presione este botón para detener el VI inmediatamente.
Botón de pausa (Pause) para detener momentáneamente la ejecución de un VI. Cuando
usted presiona el botón de Pausa, LabVIEW señala la posición donde usted detuvo la
ejecución en el diagrama de bloque. Pulse el botón de Pausa nuevamente para que el VI
continué ejecutándose.
Menú Configuración de Textos (Text Settings) para cambiar el tipo de fuente (letra) del
VI, incluyendo el tamaño, estilo y color.
Menú Alineamiento de Objetos (Align Objects) para alinear objetos con respecto a los
ejes, incluyendo eje vertical, superior, izquierdo, etc.
Menú Distribución de Objetos (Distribute Objects) para espaciar objetos uniformemente,
incluyendo espacios vacíos, compresiones, etc.
Menú Reordenamiento (Reorder) cuando tenga objetos superpuestos unos con otros y
usted quiera definir cual esta enfrente de quien y cual atrás. Seleccione uno de los objetos
con la herramienta de posicionamiento y seleccione entre Move Forward (mover hacia
adelante), Move Backward (mover hacia atrás), Move to Front (mover al frente) y Move
to Back (mover hacia atrás).
Botón de ejecución resaltada (Highlight Execution) para ver el flujo de información en el
diagrama de bloques. Pulse el botón nuevamente para detener este tipo de ejecución
resaltada.
Botón de entrada al ciclo (Step Into) para entrar un paso adentro de un ciclo, un SubVI,
etc. Entrando un paso a la vez adentro de un VI le permite introducirse en la VI nodo a
nodo. Cada nodo se resalta para señalar cuando esta listo para ejecutarse. Al entrar un paso
adentro de un nodo usted esta listo para caminar paso a paso adentro del nodo.
Botón de sobre (Step Over) para posicionarse encima de un ciclo, un SubVI, etc. Al
posicionarse encima del nodo, usted ejecuta el nodo sin entrar paso a paso adentro del
nodo.
Botón de Salida del ciclo (Step Over) para salirse de un ciclo, SubVI, etc.
CAPITULO 2
CREAR UN INSTRUMENTO VIRTUAL
2.1 ABRIR Y EJECUTAR UN VI
1. Seleccione Start » Programs » National Instruments » LabVIEW 7.0 » LabVIEW para
lanzar LabVIEW. Aparece la ventana de dialogo de LabVIEW.
2. Seleccione Find Examples del menú de ayuda (Help). La ventana de dialogo que aparece
da la lista y enlaces a todos los VIs de ejemplo de LabVIEW.
3. Usted puede buscar ejemplo por categorías, o puede utilizar palabras claves en su
búsqueda. Haga clic en la viñeta de búsqueda (Search) para abrir el buscador de palabras
claves.
4. En la caja de Enter Keyword(s) escriba Signal
5. Una lista de temas relacionados aparecerá en la ventana de ejemplos (examples).
Haga doble-clic en signals, esto generara una lista de ejemplos en el lado derecho.
6. Haga clic en cualquier programa para ver una descripción detallada del ejemplo. Haga
doble clic sobre Signal Generation and Processing.vi para lanzar el ejemplo. Esto abrirá el
panel frontal del VI Signal Generation and Processing vi. Examine el VI y ejecútelo.
Cambie las frecuencias y tipos de señales de entradas y note como el despliegue de las
graficas cambia. Cambie la ventana de procesamiento de señales (Signal Processing
Window) y opciones de filtrado (Filter options). Después de que haya examinado el VI y
las diferentes opciones que puede cambiar, pare el VI presionando el botón de paro (Stop
button).
Nota Usted también puede abrir un VI al hacer clic en el botón de Open VI y
navegar a labview\examples\apps\demos.llb\Signal Generation and Processing.vi.
2.2 CREANDO UN VI
Cuando usted crea un objeto en el panel frontal, una terminal es creada en el diagrama de
bloques. Estas terminales le dan acceso a los objetos del panel frontal del código creado
mediante el diagrama de bloque.
Cada terminal contiene información útil referente al objeto al cual corresponde en el
panel frontal. Por ejemplo, el color y los símbolos proporcionan el tipo de dato. Números
de punto flotante y de doble-precisión, son representados con terminales anaranjadas y las
letras DBL. Las terminales booleanas son verdes y son representadas por las letras TF.
En general, las terminales anaranjadas deben unirse (cablearse) con las terminales
anaranjadas, verdes con verdes, y así sucesivamente. Esta no es una regla que no se puede
romper; por ejemplo LabVIEW permitirá al usuario conectar una terminal azul (valor
entero) a una terminal anaranjada (valor fraccional). Pero en la mayoría de casos, busque
mejor una igualdad en colores.
Los controles tienen una flecha en el lado derecho y tienen un borde grueso. Los
indicadores tienen una flecha en el lado izquierdo y un borde fino. Reglas lógicas pueden
ser aplicadas al conectar en LabVIEW: Cada cable debe tener una (pero solo una) fuente (o
control), y cada cable puede tener varios destinos (o indicadores).
El programa en esta diapositiva toma datos de A y B y pasa valores a una función de
adición y a una función de resta. Los resultados son mostrados en los indicadores
apropiados.
2.2.1 CONECTAR DIAGRAMAS DE BLOQUES
Además de los terminales del panel frontal, el diagrama de bloques contiene funciones.
Cada función puede tener múltiples terminales de entradas y salidas. La conexión de estas
terminales es una parte muy importante de la programación en LabVIEW.
Una vez que usted tenga cierta experiencia programado en LabVIEW, la conexión de
cables se le hará mas fácil. Primero puede que necesite ayuda. En seguida se le muestra
algunas recomendaciones para comenzar:
La herramienta para conectar o de cableado es utilizada para conectarse a los nodos de las
funciones. Cuando usted apunte con la herramienta de cableado, apunte con el extremo del
cable que cuelga del carrete. Aquí es donde el cable será colocado.
Mientras usted mueve la herramienta de cableado sobre las funciones, observe la viñeta
amarilla que aparece. Esto le dirá el nombre de la terminal al que se esta conectando.
Mientras usted mueva la herramienta de cableado encima de una terminal, esta va a mostrar
información. Esto le ayudara a identificar donde se va a unir el cable.
Para mas ayuda con los terminales, haga clic derecho en la función y seleccione Visible
Items o Objetos Visibles>>Terminals o Terminales. Un dibujo de la función será
colocada atrás para revelar las terminales de la conexión. Note los colores - estos
corresponden a los tipos de datos utilizados por los terminales del panel frontal.
Para ayuda adicional, seleccione Help >> Show Context Help, o presione CTRL+H. Esto
mostrara la ventana de ayuda en contexto. A medida que uno mueva el raton (mouse) sobre
la función, esta ventana le mostrara la función, terminales, y una breve descripción. Utilice
esto junto con otras herramientas para ayudarse mientras conecta los cables.
Si el cableado no se ve muy bien, haga clic derecho en el cable que se desea arreglar y
escoja la opción de Clean Up Wire o Limpieza del Cable para que automáticamente el
cable haga su ruta de nuevo.
El cableado es muy flexible en LabVIEW. Experimente con combinaciones de clics y/o
teclas cuando este cableando. Aquí hay algunas de las características mas a menudo
utilizadas.
El hacer un simple, doble, y triple clic en el cable selecciona el cable para moverlo o para
borrarlo.
El hacer un clic mientras se esta cableando hace un doblez en el cable.
Haciendo clic derecho o presionando el botón Esc mientras se esta cableando cancela la
operación de cableado.
No se preocupe por el color de los cables. LabVIEW seleccionará automáticamente el cable
correcto y adecuado para cada situación.
2.2.2 Cablear los Objetos Automáticamente
LabVIEW cablea automáticamente los objetos a medida que usted los coloca en el
diagrama de bloque. También puede cablear automáticamente objetos que ya están
colocados en el diagrama de bloque. LabVIEW conecta la terminal que mejor combina
(match) y deja las terminales que no combinan (match) sin conectar. A medida que usted
mueve un objeto seleccionado cerca de otros objetos en el diagrama de bloque, LabVIEW
dibuja cables temporales para mostrarle conexiones validas. Cuando usted suelta el botón
del mouse para poner el objeto en el diagrama de bloque, LabVIEW conecta
automáticamente los cables. Cambie al cableado automático presionando el espaciador
(spacebar) mientras mueve un objeto utilizando la herramienta de posicionamiento
(Positioning tool). Puede ajustarlas opciones del cableado automático seleccionando Tools
>> Options y seleccionando Block Diagram de el menú superior principal.
2.3 FLUJO DE DATOS
LabVIEW sigue un modelo de flujo de datos para correr los VIs. Un nodo del diagrama de
bloque se ejecuta cuando todas sus entradas están disponibles. Cuando un nodo completa la
ejecución, suministra datos a sus terminales de salida y pasa los datos de salida al siguiente
nodo en la trayectoria del flujo de datos. Visual Basic, C++, JAVA y otros lenguajes de
programación basados en texto, siguen un modelo de control de flujo de la ejecución de un
programa. En flujo de control, el orden secuencial de los elementos del programa determina
el orden de ejecución de un programa.
Considere el diagrama de bloque que se encuentra arriba. Este suma dos números y luego
resta 50 del resultado de la suma. En este caso, el diagrama de bloque se ejecuta de
izquierda a derecha, no porque los objetos están puestos en ese orden, sino porque una de
las entradas de la función de resta no es valida hasta que la función de suma o adición haya
terminado su ejecución y pasado los datos a la función de resta. Recuerde que un nodo se
ejecuta solamente cuando tiene datos disponibles en todas sus terminales de entrada, y
suministra datos a sus terminales de salidas solamente cuando termina su ejecución.
En el código de la derecha, considere cual segmento del código se ejecutara primero la
suma, el número aleatorio, o la función de división. No se puede saber porque las entradas a
las funciones de suma y división están disponibles al mismo tiempo, y la función de
Número aleatorio no tiene entradas. En una situación en donde un segmento del código se
debe ejecutar antes que otro, y no existe dependencia de datos entre las funciones, utilice
una estructura de Secuencia para forzar el orden de la ejecución.
2.4 USO DE AYUDAS
Utilice la ventana de Context Help (Ayuda Contextual) y LabVIEW Help (Ayuda de
LabViEW) para ayudarle a construir o editar los VIs. Refiérase a la ayuda de LabVIEW y a
los manuales para mas información.
Ventana de Ayuda Contextual (Context Help Window ) Para desplegar la ventana de
Context Help, seleccione Help>>Show Context Help o presione las teclas <Ctrl-H>.
Cuando mueva el cursor sobre el panel frontal y los objetos del diagrama de bloque, la
ventana de Context Help despliega el icono de los subVIs, funciones, constantes, controles
e indicadores, con cables adjuntos a cada una de sus terminales. Cuando mueva el cursor
sobre la caja de opciones de dialogo, la ventana de Context Help despliega descripciones de
esas opciones.
En la ventana, las conexiones requeridas están en negrilla, las conexiones recomendadas en
texto normal, y las conexiones opcionales están poco claras o no aparecen. Arriba se
presenta un ejemplo de la ventana de Context Help.
Haga un clic en el botón de Simple/Detailed Context Help localizado en la esquina inferior
izquierda de la ventana de Context Help para distinguir entre la ayuda contextual simple y
detallada. El modo simple enfatiza las conexiones importantes.
Las terminales opcionales son mostradas por segmentos de cables, informándole de
la existencia de otras conexiones.
Haga clic en el botón de Lock Context Help para congelar el contenido actual de la ventana
de la Context Help. Cuando los contenidos están congelados, el mover el cursor sobre otros
objetos no cambia los contenidos de la ventana. Para descongelar la ventana, haga clic
nuevamente en el botón. Usted también puede tener acceso a esta opción desde el menú de
ayuda (Help).
Haga clic en el botón de More Help (mas ayuda) para desplegar el tema correspondiente en
LabVIEW Help, el cual describe el objeto en forma detallada.
LabVIEW Help (Ayuda de LabVIEW) Puede acceder a LabVIEW Help ya sea haciendo
clic en el botón de More Help en la ventana de Context Help, seleccionando Help»VI,
Function, & How-To Help, haciendo clic en la oración Click here for more help en la
ventana de Context Help o presionando <Ctrl-?>.
La LabVIEW Help contiene descripciones detalladas de casi todos los menús,
herramientas, VIs y funciones. También incluye instrucciones paso-a-paso para la
utilización de muchas características de LabVIEW y enlaces al Tutorial de LabVIEW,
versiones en PDF de todos los manuales y Notas de Aplicación de LabVIEW, además de
recursos de soporte técnico en el sitio web de National Instruments.
CAPITULO 3
3.1 ESTRUCTURAS
Las estructuras se comportan como cualquier otro nodo en el diagrama de bloques,
ejecutando automáticamente lo que está programado en su interior una vez tiene
disponibles los datos de entrada, y una vez ejecutadas las instrucciones requeridas,
Suministran los correspondientes valores a los cables unidos a sus salidas. Sin embargo,
Cada estructura ejecuta su subdiagrama de acuerdo con las reglas específicas que rigen su
Comportamiento, y que se especifican a continuación.
Un subdiagrama es una colección de nodos, cables y terminales situados en el interior del
rectángulo que constituye la estructura. El For Loop y el While Loop únicamente tienen un
subdiagrama. El Case Structure y el Sequence Structure, sin embargo, pueden tener
múltiples subdiagramas, superpuestos como si se tratara de cartas en una baraja, por lo que
en el diagrama de bloques únicamente será posible visualizar al tiempo uno de ellos. Los
subdiagramas se construyes del mismo modo que el resto del programa Las siguientes
estructuras se hallan disponibles en el lenguaje G.
3.1.1 Case Structure
Al igual que otras estructuras posee varios subdiagramas, que se superponen como si de
una baraja de cartas se tratara. En la parte superior del subdiagrama aparece el identificador
del que se está representando en pantalla. A ambos lados de este identificador aparecen
unas flechas que permiten pasar de un subdiagrama a otro.
En este caso el identificador es un valor que selecciona el subdiagrama que se debe ejecutar
en cada momento.
La estructura case consta de un terminal llamado selector y un conjunto de subdiagramas,
cada uno de los cuales esta dentro de un case o suceso y etiquetado por un identificador del
mismo tipo que el selector; este será booleano o numérico. Si se conecta un valor booleano
al selector, la estructura tendrá dos Case: False y True. Pero si se conecta un valor numérico
la estructura podra tener hasta 214 case.
En este caso la estructura Case engloba dos sentencias diferentes de otros 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
Case no cuenta con los registros de desplazamiento de las estructuras iterativas pero si
podemos crear los túneles para sacar o introducir datos. Si un case 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 manera será imposible ejecutar el programa.
3.1.2 Sequence Structure
Este tipo de estructuras presenta varios subdiagramas, superpuestos como en una baraja de
cartas, de modo que únicamente se puede visualizar una en pantalla.
También poseen un identificador del sudiagrama mostrado en su parte superior, con
posibilidad de avanzar o retroceder a otros subdiagramas gracias a las flechas situadas a
ambos lados del mismo.
Esta estructura no tiene su homologa en los diferentes lenguajes convencionales, ya que
estos las sentencias se ejecutan en el orden de aparición pero, como ya sabemos, en
LabVIEW una función se ejecuta cuando tiene disponible todos los datos de entrada. Se
produce de esta manera una dependencia de datos que hace que la función que recibe un
dato directa o indirectamente de otra se ejecute siempre despues, creándose un flujo de
programa.
Pero existen ocasiones en que esta dependencia de datos no existe y es necesario que un
subdiagrama se ejecute antes que otro, es en estos casos cuando usaremos la estructura
sequence para forzar un determinado flujo de datos. Cada subdiagrama estará contenido en
un frame o marco y estos se ejecutara en orden de aparición: Primero el frame 0 o marco 0,
despues el frame 1 y así, sucesivamente, hasta el ultimo.
Al contrario del case, si un frame aporta un dato de salida a una variable los demás no
tendrán por que hacerlo. Pero tendremos que tener en cuenta que el dato estará solamente
disponible cuando se ejecute el ultimo frame y no cuando se ejecute el frame que transfiere
el dato.
3.1.3 For Loop
Es el equivalente al bucle for en los lenguajes de programación convencionales.
Ejecuta el código dispuesto en su interior un número determinado de veces.
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= to N-1
Ejecuta subdiagrama
Al colocar un For Loop en la ventana Diagram observamos que tiene asociados dos
terminales:
1.- Terminal contador: Contiene el número de veces que se ha ejecutado la estructura. El
valor del contador se fijara externamente (ver también Arrays en el capitulo 6).
2.- Terminal de interacció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 subgdiagrama pero en ningún caso se podrán modificar.
Para pasar valores de una iteración a otra se emplean los llamador shift registers. Para crear
uno, se pulsará el botón derecho del ratón mientras éste se halla situado sobre el borde del
bucle, seleccionando la opción Add Shift Register. El shift register consta de dos
terminales, situados en los bordes laterales del bloque. El terminal izquierdo almacena el
valor obtenido en la iteración anterior. El terminal derecho guardará el dato correspondiente
a la iteración en ejecución. Dicho dato aparecerá, por tanto, en el terminal izquierdo durante
la iteración posterior.
3.1.4 While Loop
Es el equivalente al bucle while empleado en los lenguajes convencionales de
programación. Su funcionamiento es similar al del bucle for.
Usaremos While 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
(Aunque esta estructura es más similar al comando Rrpeat-Until, ya que se repite como
mínimo una vez, independientemente del estado de la condición).
Al igual que For Loop contiene dos terminales:
1.- Terminal condicional: A el conectaremos la condición que hará que se ejecute el
subdiagrama. LabVIEW comprobara el estado de este terminal al final de cada iteración, si
su valor es TRUE( Verdadero) continuara, pero por el contrario si su valor es FALSE
(Falso) detendrá la ejecución.
2.- Terminal de iteración: indica el numero de veces que se ha ejecutado el bucle y que
como mínimo, siempre será una (i=O).
3.2 VARIABLES LOCALES Y GLOBALES
Las variables son imprescindibles en cualquier tipo de problemas, ya que permiten
almacenar la información necesaria para su resolución.
En LabVIEW todos los controles introducidos en el Panel Frontal que generan un terminal
en la ventana Diagrama van a ser variables, identificables por el nombre asignado en la
etiqueta. Pero puede ocurrir que queramos utilizar el valor de cierta variable en otros
subdiagrama o en otro VI o, simplemente, que queramos guardar un resultado intermedio.
La forma mas sencilla de hacerlo es generado variables locales y/o globales dependiendo de
la aplicación.
3.2.1 VARIABLES LOCALES
En las variables locales los datos se almacenan en algunos de los controles o indicadores
existentes en el panel frontal del VI creado, es por eso que estas variables no sirven para
intercambiar datos entre VI´s. La principal utilidad de estas variables radican en el hecho de
que una vez creada la variable local no importa que proceda de un indicador o de un
control, ya que se podrá utilizar en un mismo Diagrama tanto de entrada como de salida.
Las variables locales están disponibles en el menú Structs & Constants de la paleta
Function y disponen del siguiente menu Pop-up:
- Change To Read Local o Change To Write Local: Permite escoger entre leer o escribir en
el control.
Select item: Visualiza una lista con el nombre de todos los controles existentes en el Panel
Frontal y de ella escogeremos el control al cual queremos que haga referencia nuestra
variable. Es por esto que para poder crear el variable local será imprescindible que el
control tenga asignado un nombre de identificador. Una vez creada la variable local, si en
algún momento se cambia el nombre del control origen, será necesario cambiar también el
nombre de la variable local ya LabVIEW no actualiza los cambios.
- Show Label: Muestra una etiqueta con el nombre del VI al que pertenece la
variable local.
- Descripción: Permite añadir comentarios.
- Remplace: Sustituye la variable local por cualquier otra función.
3.2.2 VARIABLES GLOBALES
Las variables globales son un tipo especial de VI, que únicamente dispone de Panel Frontal,
en el cual se define el tipo de datos de la variable y el nombre de identificación
imprescindible para despues podernos referir a ella.
Cuando escogemos la función Global del menú Structs & constants creamos un nuevo
terminal en el diagrama, este terminal corresponde a un VI que inicialmente no contiene
ninguna variable. Para poderlas añadir haremos doble clic en el terminal y se habría el
panel frontal. Una vez abierto, las variables se definen igual que cualquier control o
indicador de un VI normal.
Podemos crear un VI para cada variable global o definirlas todas en el mismo, que es la
opción mas indicada para cualquier aplicación. Cuando terminemos de colocar todas las
variables grabaremos el VI y lo cerraremos. Si una vez cerrado queremos añadir nuevas
variables, bastara con volverlo a abrir e introducir los cambios necesarios. Para añadir
nuevas terminales que hagan referencia a las variables globales creadas, no volveremos a
ejecutar la función Global ya que esto crearía un nuevo VI sino que abriremos el ya
existente mediante el comando VI del menú Function y seleccionaremos la variable en
concreto a través del comando select item del menú pop-up. Además, este mismo menú
cuenta con otra opción que nos permite utilizar una variable ya creada para leer datos o para
almacenarlos: Se trata del comando Change To Read Global o Changes To Write Global.
3.3 ERRORES
Cuando su VI no es ejecutable, se despliega una flecha quebrada en el botón de correr en la
paleta de herramientas.
Encontrando los Errores: Para hacer una lista de los errores, haga clic en la flecha
quebrada. Para localizar el objeto malo, haga clic en el mensaje del error.
Resaltando la Ejecucion: Anima el diagrama y traza el flujo de datos, permitiéndole ver
los valores intermedios.
Haga clic en el bombillo incandescente (light bulb) en la barra de herramientas.
Probe: Utilizado para ver los valores en los arrays (arreglos) y clusters .
Haga clic en los cables con la herramienta Probe o haga clic derecho en el cable para
ajustar los PROBES.
Punto de Paro (Breakpoint): Coloca pausas en diferentes lugares del diagrama.
Haga clic en los cables o en los objetos con la herramienta de Punto de Paro para colocar
los puntos de paro.
Utilice el VI Debug Demonstrate del BASICS.LLB para demostrar las opciones y las
herramientas
3.4 TIPS
LabVIEW tiene muchas teclas de atajo que hacen el trabajo más fácil. Las más comunes se
listan en la diapositiva.
Mientras la Herramienta de Selección Automática (Automatic Selection Tool) es genial
para escoger la herramienta que usted desearía utilizar en LabVIEW, a veces hay casos
cuando usted desea controles manuales. Utilice la tecla Tab para cambiar entre las cuatro
herramientas mas comunes (Operate Value (valor de operacion), Position/Size/Select,
(Posición/Tamaño/Selección), Edit Text (editar texto), Set Color on Front Panel (establecer
color en panel frontal), Connect wire on Block Diagram (conectar cable en el diagrama de
bloque)). Una vez que se ha terminado con la selección de herramientas, puede presionar
<Shift-Tab> para activar la Herramienta de Selección Automática.
En el dialogo de Herramientas >> Opciones, hay muchas opciones configurables para el
Panel Frontal, Diagrama de Bloque, Colores, Impresión y mucho mas.
Similar a las opciones de LabVIEW, se pueden configurar propiedades especificas del VI al
ir a File >> VI Properties Ahí se puede documentar el VI, cambiar la apariencia de la
ventana, y personalizarlos de varias maneras.
3.5 EJEMPLO: CONSTRUCCIÓN DE UN VI
Se mostrará cómo construir una aplicación mediante el empleo del entorno de
programación que proporciona LabVIEW.
Panel frontal
En primer lugar, se debe construir el panel frontal deseado, que en este ejemplo debe tener
el siguiente forma:
Proceso a seguir:
1. Abrir un panel frontal nuevo.
2. Colocar un "vertical switch" (paleta Boolean), cuyo nombre será Enable. Su finalidad
será finalizar la adquisición.
3. Emplear la Labeling Tool para crear una etiqueta libre para ON y OFF. Utilizar la
Coloring Tool para hacer que el borde de dicha etiqueta sea transparente. La T en el borde
inferior izquierdo de la paleta de colores hace transparente un objeto.
4. Colocar el gráfico (waveform chart), situado en la paleta Graph. Su nombre será Random
Signal. El gráfico representará valores aleatorios en tiempo real.
5. El gráfico tiene un display digital que muestra el último dato. Pulsar el botón derecho del
ratón situado sobre el gráfico, y seleccionar Digital Display del submenú Show. Asimismo
se deberá deseleccionar Legend y Palette del mismo submenú.
6. Empleando la Labeling Tool, pulsar dos veces con el botón izquierdo del ratón sobre el
10.0 en el eje Y del gráfico, introducir 1.0 y pulsar fuera del gráfico. Así se habrá cambiado
el fondo de escala.
7. Colocar un knob (paleta Numeric), cuyo nombre será Loop Delay (sec) Este control
determinará la velocidad de ejecución del bucle. Pulsar sobre él con el botón derecho del
ratón y deseleccionar Digital Display del submenú Show.
8. Empleando la Labeling Tool, pulsar dos veces con el botón izquierdo del ratón sobre el
10.0 de la escala, introducir 2.0 y pulsar fuera del control para introducir el nuevo valor.
Diagrama de bloques
El siguiente es el aspecto que presentará el diagrama de bloques una vez finalizada su
construcción:
1. Abrir el diagrama de bloques (menú Window, opción Show Diagram).
2. Colocar el While Loop (subpaleta Structures de la paleta de funciones). Dicha estructura,
como todas las demás es de tamaño ajustable.
3. Seleccionar la función Random Number (0-1) de la subpaleta Numeric del menú de
funciones.
4. Seleccionar la función Wait until Next ms Multiple de la subpaleta Time & Dialog del
menú de funciones.
5. Seleccionar la función de multiplicación de la subpaleta Numeric, del menú de funciones,
así como una constante numérica, introduciendo el valor 1000 en lugar de 0, que es el que
aparece por defecto.
6. Colocar los cables tal y como se muestra en la figura anterior, empleando para ello la
Wiring Tool.
7. Volver al panel frontal. Con la Operating Tool poner el interruptor en su posición ON.
Ejecutar el programa pulsando el botón run.
La frecuencia de ejecución de las iteraciones del bucle While es la indicada en el panel
frontal con el control Loop Delay (sec). Es decir, se generará y representará un valor
aleatorio cada periodo de tiempo (en segundos) seleccionado.
8. Para finalizar la ejecución del bucle, colocar el interruptor en la posición de OFF. De ese
modo la condición de ejecución del bucle While será falsa, por lo que se detendrá a la
siguiente iteración.

Documentos relacionados