Instrumentación Virtual con LabVIEW
INTRODUCCIÓN
• Términos de LabVIEW
• Componentes de aplicación de LabVIEW
• Herramientas de programación de LabVIEW
• Crear una aplicación en LabVIEW
¿Qué es LabView?
Es un entorno de programación gráfica usado
para desarrollar aplicaciones de medida, pruebas y control
Diseñado por National Instruments desde 1986
La mejor manera de aprender LabVIEW
es:
PRACTICAR, PRACTICAR,
PRACTICAR
¿ Cuál es el uso básico de LabView en un Sistema de Instrumentación?
Monitorear sensores en un experimento
Procesar los datos y representarlos de forma eficiente
Guardar todos los datos obtenidos en el experimento para realizar el análisis
ADQUISICIÓN DE DATOS (DAQ)
Es el proceso de importar automáticamente datos desde un instrumento o circuito hacia
la computadora
¿Cómo se programa en LabView?
“Se usan íconos gráficos e intuitivos y cables que parecen un diagrama de flujo”
PROGRAMACIÓN GRÁFICA
Contiene los mismos conceptos de programación que se pueden encontrar en la mayoría de los lenguajes tradicionales.
Tipos de datos,
bucles, eventos,
variables
se ejecuta de acuerdo con las reglas del flujo de datos en lugar de serie secuencial de comandos
Beneficios de la programación G
Programación gráfica intuitiva los ingenieros piensan mejor en imágenes
Los datos se originan en la función de adquisición y luego fluyen a las funciones de análisis y almacenamiento a través de los cables.
Panel frontal • Controles = entradas
• Indicadores = salidas
Diagrama de bloque • Programa de acompañamiento
para el panel frontal
• Componentes “cableados”
entre si
Programas de LabVIEW se llaman instrumentos virtuales (VIs)
Un instrumento virtual es:
Una computadora equipada con software y hardware especializados para cumplir las funciones de un instrumento de medición de señales ( temperatura, presión, caudal, entre otras.)
Con los datos obtenidos de la medición, realiza:
Procesamiento
Análisis
Almacenamiento
Despliegue.
Diseñar algoritmos de control
Definido por el usuario
Basados en software
Flexibilidad
Reutilización
Reconfiguración
Tiene funcionalidad fija
Basados en hardware
Instrumento Virtual Instrumento tradicional
VS
Panel frontal de VI Barra de herramientas del panel frontal
Leyenda del
gráfico
Control Booleano
Gráfico de Forma de onda
Icono
Leyenda de
La grafica
Leyenda de
la escala
VI Diagrama de bloque
Cableado de datos
Terminal grafica
SubVI
Estructura While loop
Barra de Herramientas Del diagrama de Bloque
Funcion de dividir
Constante numerico
Funcion de tiempo
Terminal de control booleano
VIs Expreso, VIs y Funciones • VIs Expreso: VIs interactivos con pagina de dialogo
configurable
• VIs estándar: VIs modulares y personalizables mediante
cableado
• Funciones: Elementos fundamentales de operación de
LabVIEW; no hay panel frontal o diagrama de bloque
VI Expreso VI Estandar
Funcion
Paleta de controles y funciones
Paletas de control (Ventana del panel frontal)
Paleta de funciones (Ventana de diagrama de bloque)
Herramienta de operación
Herramienta de posicionamiento
y redimensión
Herramienta de etiquetado
Herramienta de cableado
Herramienta de menú (atajo)
• Paleta flotante
• Utilizado para operar y modificar
objetos en el panel frontal y en el
diagrama de bloques.
Herramienta de desplazamiento
Herramienta de punto de paro
Herramienta de prueba
Herramienta para copia de color
Herramienta para colorear
Paleta de Herramientas
Herramienta de selección automatica
Botón de ejecución (Run)
Botón de ejecución continua (Continuous Run)
Cancelación de ejecución (Abort Execution)
Botón de pausa/continuación
Configuración de textos (Text Settings)
Alineamiento de objetos (Align Objects)
Distribución de objetos (Distribute Objects)
Reordenamiento
Redimensionamiento de objetos de panel frontal (Resize Objects)
Botón de ejecución resaltada (Highlight Execution) Botón de entrada al ciclo (Step Into)
Botón sobre (Step Over) Botón de salida del ciclo (Step Out)
Botones adicionales en el diagrama de la barra de herramientas
Barra de herramientas de Estado
Abra y Ejecute un Instrumento Virtual Buscador de Ejemplos
Terminales de Control
Ventana de Diagrama de Bloques
Ventana de Panel Frontal
Terminales de Indicador
Creando un VI
Creando un VI – Diagrama de Bloques
Consejos Para Conectar – Diagrama de Bloques
“Punto Caliente” de Cableado
Limpiando el Cableado Utilice la Ruta Automática
del Cable
Haga Clic para Seleccionar los Cables
• El diagrama de bloque se ejecuta
dependiendo del flujo de los datos;
el diagrama de bloques NO se
ejecuta de izquierda a derecha
• El nodo se ejecuta cuando los
datos están disponibles para
TODOS los terminales de entrada.
• Los nodos suministran datos a
todos los terminales de salida
cuando termina.
Programando el Flujo de Datos
Opciones de Ayuda Contexto de la Ayuda • Ayuda en línea
• Congelar Ayuda
• Ayuda del Diagrama Simple/Complejo
• Ctrl + H
Referencias en Línea • Todos los menús en línea
• Clic en las funciones del diagrama para tener acceso directo a la información en línea.
Técnicas para Eliminar Errores • Encontrando los Errores
• Resaltar la Ejecución
• Herramienta de Prueba
Haga clic en el botón de “correr” que esta roto; Aparece una ventana mostrando los errores
Haga clic en el botón de ejecución resaltada; el flujo de datos es animado utilizando burbujas. Los valores se despliegan en los cables.
Haga clic con el botón derecho sobre el cable para exhibir la ventana de prueba y así mostrar los datos mientras fluyen por el segmento de cable. También puede seleccionar la herramienta de prueba desde la paleta de herramientas y hacer un clic en el cable.
Todos los controles e indicadores están asociados con un tipo de dato y solo pueden contener uno solo de estos.
Cadenas de Caracteres
• Crear mensajes de texto simples.
• Controlar instrumentos
• Almacenar datos numéricos en disco.
• Indicar o advertir al usuario con ventanas de diálogos.
Datos Booleanos
• Almacena datos como valores de 8 bits.
• Un Booleano puede usarse para representar 0 o 1, o un TRUE o FALSE
• Representan datos digitales
• Funcionan como un control de panel frontal actuando como un interruptor que tiene una acción mecánica
Datos Numéricos
• Números Enteros
• Números de Punto flotante
• Números complejos
Punto de coerción
Indica que dos tipos de datos numéricos diferentes han sido aplicados a una función.
Es preferible, para mejorar el rendimiento de la memoria, hacer una conversión entre tipos de datos
Conversión de datos recomendada
Errores en el manejo de datos dinámicos
Las conexiones rotas aparecen cuando tipos de datos inválidos son unidos
Ejercicio 1 – Convertir de °C a °F
Tips para trabajar en LabVIEW
• Atajos desde el teclado – <Ctrl-H> – Activa/Desactiva la Ventana de Ayuda – <Ctrl-B> – Remueve todos los cables rotos del diagrama de
bloques – <Ctrl-E> – Cambiar entre el Panel Frontal y el Diagrama de
Bloques – <Ctrl-Z> – Deshacer cambios – Undo (también disponible
en el menu de edición)
• Herramientas » Opciones… – Establecer Preferencias en LabVIEW
• Propiedades del VI – Configurar la Apariencia del VI, Documentación, etc.
ESTRUCTURAS BÁSICAS
• Las estructuras se comportan como cualquier otro nodo en el diagrama de bloques, ejecutando automáticamente lo que está programado en su interior.
• 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.
ESTRUCTURAS BÁSICAS
• 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, por lo que en el diagrama de bloques únicamente será posible visualizar uno a la vez.
ESTRUCTURAS BÁSICAS
LabVIEW proporciona estructuras de programación (Functions-Structures) para realizar diferentes procesos; entre dichas estructuras se encuentran: • FOR.- Ejecuta un subdiagrama un número determinado de ocasiones. • WHILE.- Ejecuta un subdiagrama hasta que una condición se cumpla. • CASE STRUCTURE.- Contiene múltiples subdiagramas, de los cuales solo
uno se ejecuta dependiendo de la variable de entrada a la estructura. • SECUENCE STRUCTURE.- Contiene uno o más subdiagramas, los cuales se
ejecutan de manera secuencial. • • MATHSCRIPT • .- Realiza operaciones matemáticas utilizando • variables definidas por el usuario ó de la misma • estructura ( • Mathscript • es similar a Matlab, pero integrado • en LabVIEW)
• Se ejecutará hasta que se cumpla una condición y se entregue el valor booleano de parada (parar cuando sea verdadero es la más utilizada)
• El terminal condicional se ubica en la parte inferior derecha del lazo.
• Puede usar túneles (auto-indexado esta deshabilitado por defecto).
• Usualmente más usado que el For loop porque tiene un mecanismo para abortar la ejecución y el tener la capacidad de detener la ejecución es muy importante en cualquier programa.
WHILE LOOP
WHILE LOOP
WHILE LOOP
• Si se desea cambiar la lógica del terminal de condición
WHILE LOOP
• Armar un VI que cuente la cantidad de iteraciones para alcanzar la igualdad con un número ingresado por el operador
WHILE LOOP
WHILE LOOP - EJERCICIO
• Generación de una onda seno
WHILE LOOP
• Es usado para ejecutar una sección del código un número determinado de veces
• El código que necesita ser ejecutado repetidas veces es ingresado en el lazo.
• El número de iteraciones se especifica en la N del cuadro si es cero el lazo no se ejecutará
• i es un contador ascendente
• Los datos salen del ciclo por un túnel, si este tiene habilitado el indexado saldrá un arreglo si no, saldrá el último valor que entre a él
FOOR LOOP
FOR LOOP
• Es utilizado para crear arreglos y para separarlos, lo que permite trabajar elemento por elemento del array.
• El auto-indexado puede manejar arreglos de más de una dimensión
• Con un lazo dentro de otro se crean arreglos de dos dimensiones donde el lazo interior dará el número de columnas y el de fuera el de filas.
FOR LOOP
FOR LOOP
• Simular el llenado de un tanque utilizando la estructura FOR LOOP
FOR LOOP
•Gráfica de 100 números aleatorios entre 10 y 50
FOR LOOP
• While Loop y Foor Loop es necesario pasar datos entre interacciones
• Shift Registers permiten almacenar los datos que ingresaron a él en un registro.
• Permite retroalimentar los valores para la nueva ejecución
• Consta de un elemento que entrega los datos y otro que permite ingresarle datos al registro.
• Permite inicializarse, si no se lo hace el primer valor será 0 si el registro es de datos numéricos y la próxima ves que se ejecute el programa el primer valor que entregue será el último que llegó al registro
SHIFT REGISTER
SHIFT REGISTER
SHIFT REGISTER
• Están formados por un par de terminales que se adaptan a cualquier tipo de dato y que están localizados a cada lado de los bordes de la estructura
SHIFT REGISTER
SHIFT REGISTER
• El comportamiento del Shift Register con elementos adicionados
SHIFT REGISTER
• Para poder tener acceso a iteraciones anteriores se debe adicionar elementos al registro de desplazamiento.
SHIFT REGISTER – EJEMPLO
• Sumar los números entre 1 y 100
SHIFT REGISTER - EJEMPLO
• Promediar los dos últimos datos aleatorios
• Se encuentra en la paleta de estructuras
• Luce como un cuadro de película cuando se lo posiciona
• Permite una ejecución progresiva en relación al orden establecido
en ella. Los objetos ubicados en el primer cuadro se ejecutaran
primero y así sucesivamente
• Se le pueden añadir cuadros haciendo clic derecho sobre la
estructura e indicando “Add Frame” estos se pueden ubicar antes o
después del cuadro actual
SEQUENCE STRUCTURE
• Se pueden pasar datos de un cuadro a otro usando secuencias locales (disponible en el menú rápido) donde la flecha en ellas indica si el dato esta ingresando en la secuencia o saliendo de ella y su color representa el tipo de dato.
• La secuencia local esta disponible en todos los cuadros
• Los datos salen de la estructura por túneles pero el dato saldrá por ellos solo cuando todos los cuadros culminen
SEQUENCE STRUCTURE
SEQUENCE STRUCTURE
• En la parte superior del marco de cada estructura se encuentra el identificador de diagrama que es utilizado para navegar entre frames.
SEQUENCE STRUCTURE
• Se puede añadir o borrar casos accediendo al menú rápido y seleccionando:
– Add case after o before
– Delete this case
SEQUENCE STRUCTURE
SEQUENCE STRUCTURE
SEQUENCE STRUCTURE
SEQUENCE STRUCTURE
SEQUENCE STRUCTURE
Determinar el tiempo que la PC demora en generar 10000 datos aleatorios
SEQUENCE STRUCTURE
SEQUENCE STRUCTURE - EJEMPLO
• Es una estructura condicional
• Se ejecutará el caso correspondiente a su entrada
• Si el caso no esta especificado se ejecuta el que esta por defecto
CASE STRUCTURE
CASE STRUCTURE
CASE STRUCTURE
CASE STRUCTURE
CASE STRUCTURE
Los datos en todos los túneles de entrada y en el terminal de selección pueden ser accedidos por todos los subdiagramas de casos
Para que un túnel de salida este completo se le debe alimentar desde todos los casos
CASE ESTRUCTURE
A partir de dos entradas numéricas y un control tipo menú con las opciones suma, resta, multiplicación y división, se busca generar una salida enseñe su resultado
CASE ESTRUCTURE - EJEMPLO
CASE ESTRUCTURE - EJEMPLO
CASE ESTRUCTURE - EJEMPLO
CASE STRUCTURE - EJEMPLO
• Calcular la raíz cuadrada de un número. Si la raíz existe se proporcionará un valor. De no existir (número imaginario), aparecerá un mensaje acorde a la situación.
CASE STRUCTURE - EJEMPLO
• Es un contenedor de formulas matemáticas.
• Acepta lenguaje c.
• Las variables de la fórmula deben ser especificadas como entradas o salidas en sus paredes con Add input o Add output para que se creen los terminales para estos datos.
• Todas las entradas deben ser conectadas para que se ejecute.
• Cualquier expresión debe terminar con “;”
• En el Context Help se encuentran las funciones que se puede usar.
• Las operaciones son compiladas internamente y ahorra espacio en el diagrama de bloques.
FORMULE NODE
FORMULE NODE - EJEMPLO
Se realizará en forma convencional y con un nodo de fórmula el cálculo de la Suponiendo conocidos x e y.
2xz yy
FORMULE NODE
SubVIs
•Que es un subVI?
• Elaboración de un icono y un conector para un subVI
•Utilizando un VI como un subVI
Nodos del Diagrama de Bloques
Icono Nodo Expandible Nodo Expandido
• VI de Generador de Funciones
• El mismo VI, visto en tres maneras
diferentes.
• El campo amarillo designa un VI Estándar.
• El campo azul designa un VI Expreso
Top Related