Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INGENIERÍA MECATRÓNICA
2022 – 2
INTRODUCCIÓN A LABVIEW
PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ INGENIERÍA MECATRÓNICA
Contenido
1. CONCEPTOS BÁSICOS DE LABVIEW (Laboratory Virtual Instrument Engineering Workbench) 3
1.1 ENTORNO DE LABVIEW 3
1.2 TIPOS DE VARIABLES Y TIPOS DE DATOS 5
1.2.1 CONTROLES E INDICADORES 5
1.2.2 CONSTANTES 6
1.3 PROGRAMACIÓN GRÁFICA (G programming) 8
1.3.1 FLUJO DE DATOS 8
1.3.2 CABLES 8
1.4 HERRAMIENTAS DE PROGRAMACIÓN GRÁFICA 9
1.4.1 PALETA DE HERRAMIENTAS 9
1.4.2 BARRA DE HERRAMIENTAS 9
1.5 ESTRUCTURAS DE PROGRAMACIÓN 9
1.5.1 LAZOS 9
1.5.2 CASOS 11
1.5.3 TÚNELES 11
1.6 SUBVI’S 12
1.7 ALGUNAS FUNCIONES 15
1.7.1 SIMULATE SIGNAL 15
1.7.2 BASIC FUNCTION GENERATOR 16
1.7.3 FILTER 17
1.7.4 SPECTRAL MEASUREMENT 18
1.7.5 MERGE SIGNALS: 18
1.7.6 SPLIT SIGNALS: 19
1.7.7 IN RANGE AND COERCE 19
1.7.8 TO DOUBLE PRECISION FLOAT 19
1.7.9 WAVEFORM CHART Y WAVEFORM GRAPH 19
2. TEOREMA DE MUESTREO DE NYQUIST 20
3. INFORMACION ADICIONAL 21
4. EXPERIENCIA PRÁCTICA 21
4.1 Manejo de LabVIEW 21
4.1.1 Experiencia 1 21
4.1.2 Experiencia 2: 22
4.1.3 Experiencia 3: 24
INTRODUCCIÓN A LABVIEW
OBJETIVOS
● Familiarizar al alumno con el entorno de LabVIEW
● Desarrollar programas en lenguaje gráfico para LabVIEW, utilizando instrucciones
básicas.
MATERIALES
● Software LabVIEW 2019
Después de adquirir, procesar y analizar los datos, LabVIEW es capaz de mostrar la información
de una forma sencilla y exacta. Genera reportes, guarda la información obtenida, publica
reportes en Internet, cuenta con conectividad con bases de datos entre otras funcionalidades.
El entorno de LabVIEW presenta las siguientes partes: Panel Frontal (Front Panel), Ventana del
Diagrama de Bloques (Block Diagram Window), Paleta de Controles (Controls Palette), Paleta de
Funciones (Functions Palette) y la Paleta de Herramientas (Tools Palette) (Ver Figura 1).
A continuación, se definirán las partes antes mencionadas, así como algunos conceptos
necesarios para comprender el entorno:
En el panel frontal de LabVIEW se pueden crear controles e indicadores, que son las terminales
interactivas de entrada y salida del VI, respectivamente. Los controles pueden ser botones,
perillas, etc. Mientras que los indicadores pueden ser un LED o un indicador gráfico. Debe
notarse que como los controles son dispositivos de entrada, son aquellos que suministran de
datos al diagrama de bloques del VI. Por otro lado, los indicadores al ser dispositivos de salida,
muestran los datos que el diagrama de bloques adquiere o genera.
En el diagrama de bloques podemos crear constantes, que son valores numéricos o booleanos
que no se visualizan en el panel frontal y no cambian su valor durante la ejecución del programa.
Los controles e indicadores sirven como entradas y salidas en el panel frontal, respectivamente.
Existen diferentes tipos, que a continuación se detallan:
Numéricos: pueden representar números de varios tipos como un entero o real. Los dos objetos
numéricos comunes son el control numérico y el indicador numérico, como se muestra en
la Figura 3. Los objetos como medidores y perillas también representan datos numéricos.
Booleanos: representa aquellos datos que solamente tienen dos estados posibles, como TRUE
o FALSE u ON y OFF o ‘1’ y ‘0’. Los objetos Booleanos se representan como interruptores,
botones y LEDs como puede observarse en la Figura 4.
1.2.2 CONSTANTES
Son aquellos datos que no cambian durante la ejecución del programa. En la Figura 5 se observa
un ejemplo del uso de una constante en el cálculo del área de un triángulo.
LabVIEW cuenta con varios tipos de datos, y estos se asocian con un tipo de variable específico.
Por ejemplo, las variables booleanas se asocian con un tipo de dato booleano (TRUE o FALSE);
mientras que las variables numéricas se asocian con un tipo de dato numérico (byte entero,
punto flotante, etc.). En la Tabla 1 se muestran de los tipos de Datos numéricos más usados.
Punto flotante
Byte entero
de precisión [–3.40e+38, 3.40e+38] [–128 ,127]
con signo
simple
Punto flotante Word o
[–1.79e+308,
de precisión palabra entero [–32 768, 32 767]
1.79e+308]
doble con signo
Punto flotante [–1.19e+4932,
Entero largo [–2 147 483 648,
de precisión 1.19e+4932
con signo 2 147 483 647]
extendida
Igual que el de punto
Punto flotante
flotante de precisión
de precisión Byte entero sin
simple pero por cada [0, 255]
compleja signo
parte (real e
simple
imaginaria)
Igual que el de punto
Punto flotante
flotante de precisión
de precisión Word entero
doble pero por cada [0, 65 535]
compleja sin signo
parte (real e
doble
imaginaria)
Igual que el de punto
Punto flotante
flotante de precisión
de precisión Entero largo
extendida pero por [0, 4 294 967 295]
compleja sin signo
cada parte (real e
extendida
imaginaria)
Tiempo mínimo:
01/01/1600 00:00:00
Marca de
Tiempo máximo UTC:
tiempo
01/01/3001 00:00:00
UTC
Como ya se mencionó es el tipo de programación usada en el LabVIEW que utiliza los diagramas
de bloques. Para esto tenemos que entender el Flujo de Datos, que se da mediante Cables.
1.3.2 CABLES
Son los encargados de transferir datos entre los diagramas de bloques. Los cables son de
diferentes colores, estilos y grosores dependiendo del tipo de dato que transfiere. Puede ocurrir
que aparezca un cable roto, ver Figura 7, lo que nos indica que el tipo de dato que envía un
bloque es diferente e incompatible con el tipo de dato del bloque de entrada.
En ella encontramos las diferentes herramientas que nos ayudan a interactuar con el entorno
del LabVIEW (ver Figura 8). Se mencionarán algunas herramientas comunes:
Herramienta de Cableado : Nos permite realizar las conexiones entre los bloques de
programación.
1.5.1 LAZOS
Los lazos o bucles de programación permiten ejecutar varias veces un mismo código, pudiéndose
controlar el número de veces que se ejecuta. Existen dos tipos de lazos: lazo While y lazo For. A
continuación, se explica el funcionamiento de cada uno de ellos.
While: Este lazo garantiza la ejecución del código que contiene al menos una vez, ya que la
condición de finalización del lazo se evalúa al final. Posee una terminal de iteración que indica
el número de iteración en que se encuentra el lazo (empieza en cero) y una terminal de
condición a la cual se cablea la condición que detendrá el lazo (valor verdadero (´1´) en la
terminal detiene el lazo).
Figura 11. Ventanas de programación del LabVIEW para el Lazo While, (a) Panel Frontal y (b) Diagrama de Bloques
For Loop: Este lazo posee una terminal de conteo en la cual se indica el número de veces que se
ejecutará el código. Si se cablea el valor cero a la terminal de conteo el código al interior del lazo
no se ejecutará. Al igual que para el lazo While la terminal de iteración empieza en cero.
Adicionalmente es posible configurar el lazo For, Figura 13, para agregar una terminal de
condición, haciendo click derecho sobre el lazo y seleccionando la opción Conditional Terminal.
De esta forma el lazo se ejecutará el número de veces especificado o una vez que se cumpla la
condición de salida, lo que ocurra primero.
1.5.2 CASOS
Se utilizan estructuras condicionales cuando las operaciones a realizar dependen del estado de
una variable. Las estructuras se generan en el panel de bloques:
Figura 14. Ejemplo del uso de estructura condicional. (a) Caso sea verdadero. (b) Caso sea falso
1.5.3 TÚNELES
Los túneles, ver Figura 15, permiten la entrada y salida de información de las estructuras de
programación, como de los lazos While y For. La forma en que los datos salen de una estructura
puede ser configurada al dar click derecho sobre el túnel; sin embargo, LabVIEW crea los túneles
de la siguiente forma por defecto:
● Lazo While: El túnel saca de lazo el último valor (Modo Last Value).
● Lazo For: El túnel saca del lazo un arreglo de valores (Modo Indexing).
Figura 15. Izq. Túnel en modo Last Value. Der. Túnel en modo Auto-indexing.
1.6 SUBVI’S
El conector de un VI está constituido por una serie de terminales que corresponden siempre a
controles o indicadores en el panel frontal. Estos se pueden agregar haciendo clic derecho en el
panel frontal. En la Figura 17, se puede observar como agregar los 2 controladores ‘x’ e ‘y’, y el
indicador ‘Resultado’. De modo que quede como en la Figura anterior.
Para el ejemplo de la Figura 19 se necesitan 2 entradas (‘x’ e ‘y’) y una salida (‘Resultado’). En la
Figura 19.a se muestra las terminales de conexión correspondiente para dicho ejemplo. Luego,
en la Figura 19.b se selecciona el cuadrado superior izquierdo, poniéndose de color negro para
que más adelante, en la Figura 19.c, al seleccionar la entrada ‘x’ se ponga automáticamente de
color naranja. Esto indica que la entrada o salida ha sido correctamente seleccionada.
Finalmente, en la Figura 19.d, se muestra cómo debe de quedar luego de seleccionar todos los
parámetros.
Luego podemos modificar la apariencia del VI o SubVI haciendo doble clic en Icon. Recuerde que
un SubVI se puede agregar al programa a través del panel de Diagrama de Bloques haciendo clic
derecho: Paleta de Funciones (Functions) >> “Select a VI”. Recuerde que para agregar dicho
SubVI primero debe guardarlo con algún nombre.
En la Figura 20 se muestra un ejemplo de un SubVI que ha sido creado y guardado con el fin de
calcular el promedio de 2 números cualesquiera (Izquierda). Luego este mismo SubVI ha sido
agregado en un VI apareciendo con el nombre de ‘Demo LabVIEW’ (Derecha).
Permite crear una función pudiendo manipular todos los parámetros necesarios de la señal.
1.7.3 FILTER
ß Tipo de filtro
ß Frecuencia de Corte
ß Topología
Normalmente las señales se visualizan en el dominio del tiempo (Amplitud vs Tiempo); sin
embargo, muchas veces es de gran ayuda poder observarlas en el dominio de la frecuencia
(Amplitud vs Frecuencia). El análisis en el dominio de la frecuencia permite identificar las
componentes con frecuencias predominantes, lo cual no es posible realizar en el domino del
tiempo. Además, trabajando con una señal en el dominio de la frecuencia es posible aplicar
diferentes filtros para obtener una señal deseada. Spectral Measurement permite observar la
señal en el dominio de la frecuencia usando la transformada de Fourier.
Esta herramienta nos ayuda a juntar señales para visualizarlas en un solo gráfico, así como
ahorrar cables en el “Diagram Block”.
Esta herramienta nos ayuda a separar señales que son enviadas por un solo cable. Esto nos
ayuda en el caso de que en la adquisición de Datos tengamos más de una señal en cada lectura.
In Range and Coerce te permite forzar un valor dentro de un determinado rango y recibir una
señal indicando si está o no en el rango definido.
La diferencia principal entre Waveform Chart y Waveform Graph es que el primero acumula la
data, mientras que el segundo refresca la información mostrada cuando recibe nueva data. Por
ejemplo, un Waveform Chart puede recibir como entrada un escalar o un arreglo unidimensional
e irá mostrando el valor(es) de dicha entrada, así como de todas las entradas anteriores. Por el
contrario, para el caso del Waveform Graph, la entrada debe ser un arreglo unidimensional, es
decir, no puede ser un escalar. Asimismo, todo el arreglo se mostrará en una sola iteración, la
siguiente iteración borrará toda la información y volverá a mostrar el arreglo con los nuevos
valores actualizados.
Al digitalizar una señal analógica se debe tener en cuenta la pérdida de información tanto en sus
valores de amplitud, por la conversión a valores discretos de amplitud, como en componentes
en el tiempo, debido a que se toman muestras periódicas de la señal para la digitalización.
El teorema de muestreo de Nyquist establece que para muestrear correctamente una señal se
necesita una frecuencia de muestreo superior que el doble de la componente de frecuencia
mayor de la señal para poder reconstruirla de forma adecuada, de otra manera, el contenido en
alta frecuencia de la señal va a aparecer dentro del espectro de interés generando ‘aliasing’.
Primero se muestrea la señal sinusoidal con 2Hz (límite de Nyquist), se observa que con las
muestras tomadas se puede regenerar la señal original (Ver Figura 33).
En cambio, si se muestrea por ejemplo a 1.5 Hz (señal inferior a la frecuencia límite), con los
puntos muestreados se regenera una señal completamente distinta a la señal original (señal
punteada), a lo que se le conoce como un ‘alias’ de la señal (Ver Figura 34).
3. INFORMACION ADICIONAL
4. EXPERIENCIA PRÁCTICA
4.1.1 EXPERIENCIA 1
Luego de realizar esto, debe crear un SubVI con el nombre de ‘’EJM PUCP”, ver Figura 36, que
haga lo mismo que la experiencia 1 (Exp 1.2).
4.1.2 EXPERIENCIA 2:
a. Generar una señal sinusoidal que debe ser de 0.1Vp (voltaje pico), 0.2Hz, con
temporización de 1000 muestras por segundo y con posibilidad de modificar el offset
que varié de 3 a 4v. Además, la señal deberá tener ruido blanco de una amplitud de
0.05. Seleccionar el número de muestras en 5000.
b. Filtrar la señal y graficar la señal con ruido y sin ruido usando Waveform Chart.
c. Escalar la señal filtrada para que se muestre en un indicador.
d. Validar los valores óptimos de la señal y usando un botón tipo LED indicar si los
valores están dentro o fuera de rango (Rojo, fuera de rango y Verde, dentro de rango)
4.1.3 EXPERIENCIA 3:
Se debe generar dos señales, una que represente la señal original y otra la señal muestreada
(Utilice los bloques Basic Function Generator). Al crear la señal original, considerar que también
es una señal digital creada por LabVIEW a la cual se le asignará una frecuencia de muestreo (Fs
= 10k). Además, para que las variaciones de fase se actualicen instantáneamente poner una
constante de “True” para la entrada “reset signal”.
El botón de “ON/OFF” del bucle del programa debe ser un botón tipo LED y permitirá iniciar o
pausar el programa.
Probar el sistema para una señal sinusoidal de 10Hz, 1Vp, 1V de Offset. Quitar la auto escala en
el eje X de la gráfica y ajustarla a 0.2.