Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INGENIERÍA MECATRÓNICA
2022 – 2
Contenido
1. Temporización ....................................................................................................................... 3
2. Retroalimentación de información ....................................................................................... 4
3. Arreglos ................................................................................................................................. 5
3.1. Funciones básicas para arreglos.................................................................................... 5
3.1.1. Initialize array ........................................................................................................ 6
3.1.2. Build array ............................................................................................................. 6
3.1.3. Index array............................................................................................................. 6
3.1.4. Array subset .......................................................................................................... 7
3.2. Auto-indexing ................................................................................................................ 7
4. Archivos ................................................................................................................................. 8
4.1. Write to measurement file / Read from measurement file .......................................... 8
4.2. Write to spreadsheet file/ Read from spreadsheet file ................................................ 9
5. Programación secuencial .................................................................................................... 10
5.1. Ejemplo de operaciones con archivos y programación secuencial ............................. 11
6. Adquisición de datos ........................................................................................................... 12
6.1. DAQ USB-6008............................................................................................................. 12
6.1.1. Conectando la DAQ USB – 6008 a la PC .............................................................. 12
6.1.2. NI MAX................................................................................................................. 13
6.1.3. En LabVIEW ......................................................................................................... 14
6.2. MyRIO 1900 ................................................................................................................. 17
6.2.1. Conectando el myRIO 1900 a la PC ..................................................................... 17
6.2.2. MyRIO I/O monitor.............................................................................................. 18
6.2.3. En LabVIEW myRIO .............................................................................................. 20
7. EXPERIENCIA PRÁCTICA....................................................................................................... 24
7.1. Experiencia 1 ............................................................................................................... 24
7.2. Experiencia 2 ............................................................................................................... 24
7.3. Experiencia 3 ............................................................................................................... 25
OBJETIVOS
• Desarrollar programas en lenguaje gráfico para LabVIEW, utilizando intrucciones
avanzadas.
• Adquisición de señales utilizando la tarjeta de adquisición de datos DAQ USB-6008 de
National Instruments a través de NI MAX y LabVIEW
• Adquisición de señales utilizando el dispositivo embebido myRIO 1900 de National
Instruments a través de LabVIEW myRIO.
MATERIALES
• Tarjeta de adquisición de datos DAQ USB-6008
• Dispositivo embebido myRIO 1900
• Software LabVIEW 2019
• Software LabVIEW myRIO
• Software NI MAX
1. TEMPORIZACIÓN
El paso de una iteración a la siguiente es inmediato una vez que ha completado su ejecución.
En algunos casos es deseable poder controlar cada cuanto tiempo se va a ejecutar cada
iteración, por ejemplo, al muestrear una señal. Existen tres funciones para temporización de
lazos, ver Figura 2:
Otra función muy utilizada es la Elapsed Time Express VI, la cual entrega el tiempo transcurrido
y cuenta también con una salida booleana que indica si ya transcurrió un tiempo especificado.
2. RETROALIMENTACIÓN DE INFORMACIÓN
Para poder acceder a valores generados en iteraciones previas de un lazo se utilizan Shift
Registers. Para crearlos dar click derecho en el lazo y seleccionar Add Shift Register. Ver Figura
2.
Una vez que se cablean las terminales del Shift Register, automáticamente se reconocerá el
tipo de dato utilizado. La primera vez que se ejecuta el programa se tomará como valor inicial
el valor por defecto dependiendo del tipo de dato, si se ejecuta nuevamente el programa se
tomará como valor inicial el valor almacenado en el Shift Register. Si se desea resetear el Shift
Register para que cada vez que se ejecute el programa se borre lo almacenado en la ejecución
anterior se debe inicializar el shift register cableando una constante a la terminal de entrada.
Ver Figura 23.
• Numeric: 0
• String: Empty
• Boolean: False
3. ARREGLOS
Los arreglos son una colección de datos de un mismo tipo, pueden ser de una dimensión
(vector) o n-dimensiones (matriz). El índice para la identificación de los elementos de un
arreglo empieza en cero. Tener en cuenta que no se puede crear un arreglo de arreglos.
Esta función crea un arreglo de ‘n’-dimensiones, donde todos los elementos son inicializados
con el valor cableado a la entrada element.
Esta función retorna un elemento a un sub arreglo del arreglo de entrada en el índice indicado.
La Figura 9 muestra el funcionamiento de esta función.
Esta función retorna una porción del arreglo de entrada empezando en el índice (index) y con
la longitud especificada por el parámetro length.
3.2. AUTO-INDEXING
Es una característica que permite procesar todos los elementos de un arreglo durante la
ejecución de un lazo, uno a la vez. Los túneles, ya sean de entrada o salida, deben ser
configurados para habilitar el auto-indexing. Se explicará el funcionamiento con algunos
ejemplos:
El ejemplo de la Figura 12 permite comprender mejor los conceptos vistos hasta el momento.
Impleméntelo y analice su funcionamiento.
4. ARCHIVOS
LabVIEW pone a disposición dos tipos de funciones para manejo de archivos: Funciones de alto
nivel y funciones de bajo nivel. Estas funciones se encuentran en la paleta de funciones, en el
grupo File I/O. Ver Figura 14. Las funciones de alto nivel ejecutan las tres primeras etapas de
las operaciones con archivos, lo cual simplifica mucho la programación; sin embargo,
demandan mayores recursos computacionales, sobre todo cuando se colocan dentro de lazos
como while o for. En este laboratorio se explorará solo el funcionamiento de las funciones de
alto nivel, debido al poco tiempo disponible. Primero se presentan los express VI Write To
Measurement File y Read From Measurement File.
La función Write To Measurement File permite escribir data en un archivo basado en texto
(.lvm), formato binario (.tdm o .tdms) o formato Excel (.xlsx).
La función Write To Spreadsheet File convierte un arreglo de una o dos dimensiones de strings,
enteros con signo, o números de doble precisión a texto (string) y lo escribe a un nuevo
archivo o lo adiciona a uno existente. La función Read From Spreadsheet File lee un número
específico de líneas o filas de un archivo de texto numérico y convierte la información en un
arreglo de números de doble precisión, strings o enteros.
Antes de ver un ejemplo de utilización de las funciones para operaciones con archivos se dará
una breve introducción al concepto de programación secuencial.
5. PROGRAMACIÓN SECUENCIAL
Otra alternativa para garantizar la secuencia de ejecución del código es el uso de la estructura
de secuencia (Flat Sequence Structure), la cual consiste en subdiagramas que se ejecutarán de
forma secuencial, de izquierda a derecha. Cada subdiagrama se ejecutará solo cuando toda la
información de sus entradas esté disponible y una vez finalizada su ejecución la información de
salida estará disponible para el siguiente subdiagrama, ver Figura 17. Algunas desventajas de
esta estructura es que no permite operaciones en paralelo, no se puede detener la ejecución
de la estructura y no fuerzan el chequeo de errores, es decir incluso si se detecta un error
continuará la secuencia.
6. ADQUISICIÓN DE DATOS
La tarjeta de adquisición de datos de National Instruments DAQ USB-6008 (Ver Figura 19) ha sido diseñada para su
uso académico en laboratorios. Las características técnicas de esta DAQ son presentadas en el
Tabla 1:
Al ser una tarjeta de bajo costo posee un multiplexor que ayuda a compartir el amplificador y
el ADC con todos los canales, lo que reduce la velocidad de muestreo en caso se utilicen más
de un canal en simultáneo. Por lo tanto, la máxima frecuencia de adquisición es 10KHz entre el
número de canales ocupados. Por ejemplo, si se utilizan 4 canales, la velocidad resultante será
de 2.5 KHz.
Configuración y Pruebas: La DAQ puede ser configurada y probada utilizando el NI MAX que se
instala con el NI-DAQmx Driver Software. Para realizar pruebas de funcionamiento o realizar
mediciones rápidas.
6.1.2. NI MAX
El NI MAX provee acceso a los productos de National Instruments, para el laboratorio servirá
como una forma de interfaz con la DAQ-USB-6008. A través de este programa se puede revisar
el estado de la DAQ, generar y adquirir señales, crear tareas de medición o generación, etc. Las
señales se pueden adquirir o generar a través del panel de pruebas (Test Panel), o creando
tareas específicas, en las que se pueden grabar configuraciones deseadas, agregar distintos
canales, etc.
Panel de pruebas:
Para acceder al panel de pruebas siga la siguiente ruta dentro del NI MAX: My system ->
Devices and Interfaces -> NI USB-6008 y luego seleccione “Test Panel” de la barra de
herramientas. Aparecerá una ventana como se muestra en la Figura 20.
En este panel, se pueden manejar las entradas/salidas analógicas y digitales, así como el uso
de los contadores de entrada/salida de la DAQ. Puede encontrar mayor información sobre la
configuración de los canales en la sección 6.1.3 En LabVIEW.
Tareas:
6.1.3. EN LABVIEW
En LabVIEW, la forma más simple de utilizar entradas o salidas es empleando los VI DAQ
Assistant.
ADQUISICIÓN DE SEÑALES
Cuando se inserta en el diagrama de bloques el DAQ Assistant (Functions -> Inputs -> DAQ
Assistant), aparecerá el bloque de la Figura 22:
En esta ventana podrá seleccionar si se desea adquirir o generar señales. Por ejemplo, para
adquirir voltaje, seleccionar Acquire Signals → Analog Input → Voltage y luego se presiona
Next. Como se aprecia en la Figura 23.
En la siguiente ventana podrá seleccionar cuál de las entradas analógicas va a utilizar (Ver
Figura 24). Por ejemplo, se selecciona el canal 0: ai0 (Analog Input channel 0).
En la siguiente ventana (Figura 25) se pueden modificar las opciones de tiempo Timing
Settings:
• “1 Sample (On Demand)” para que la tarjeta capture una muestra cada vez que se
repita el bucle en el que se encuentra el bloque
• “1 Sample (Hardware)” para que la temporización la realice la misma DAQ
• “N Samples” para configurar el número de muestras y la frecuencia con la que se van a
actualizar los valores cada vez que se entre al bucle
• “Continuous Samples” para generar una lectura constate a determinada frecuencia y
número de muestras a leer en cada iteración.
GENERACIÓN DE SEÑALES
Utilizando el DAQ Assistant también se puede generar una salida analógica. En este caso se
selecciona Generate Signals → Analog Output →Voltage y posteriormente se selecciona el
puerto de salida, por ejemplo, ao0 (Analog Output 0). Como en la Figura 27.
Luego se configura la salida analógica, escogiendo los máximos y mínimos de voltaje (Ver
Figura 28.a) y luego realizamos la programación para la generación de señales analógicas (Ver
Figura 28.b)
Figura 28. (a) Configuración de la salida analógica. (b) Diagrama de bloques del programa para generar señales
Figura 29) es un sistema embebido para estudiantes utilizado para el diseño de sistemas de
mecatrónicos, robóticos y de control. Las características técnicas de este embebido son
presentadas en el
Tabla 2:
Configuración y Pruebas: El myRIO puede ser probada utilizando el I/O Monitor el cual se
puede ejecutar al iniciar al conectar el dispositivo a la PC por cable USB, permitiendo verificar
de manera rápida el funcionamiento de las entradas y salidas de dispositivo. Para la
configuración de las salidas y entradas del dispositivo se requiere hacer uso del software
LabVIEW myRIO, mediante el cual es posible definir diferentes tareas y operaciones.
El I/O monitor es una herramienta para verificar el correcto estado de funcionamiento de las
entradas y salidas del dispositivo myRIO 1900. A través de este programa se pueden generar y
leer señales analógicas y digitales, así como también probar el uso de la comunicación I2C, SPI
y UART. Para el uso de esta herramienta es necesario seleccionar entre uno de los tres puertos
de conexión que cuenta el dispositivo myRIO, por lo que en la Figura 30 se muestra la
nomenclatura de los conectores disponibles. Para fines del laboratorio solo se trabajará con
el conector C.
Para acceder al panel de pruebas primero se debe seleccionar la tarjeta que se encuentra
conectada a la PC e inmediatamente se abrirá la interfaz de pruebas (ver Figura 31). En la parte
superior de la interfaz se pueden seleccionar las opciones de pruebas disponibles: AIO (Analog
Input/Output), DIO (Digital Input/Output), I2C, SPI, UART, PWM/ENC (Pulse-Width
Modulation/Encoder). Dentro de cada opción, uno debe seleccionar los pines de salida que se
desea probar de acuerdo al conector con el que se desea trabajar. Por ejemplo, en la Figura 31
se muestra la interfaz de prueba las salidas analógicas del conector C.
NOTA: Es importante notar que el conector C del dispositivo myRIO cuenta con entradas
analógicas definidas del tipo diferencial. Por esta razón, a diferencial de la DAQ, si uno desea
realizar mediciones con respecto a tierra debe conectar el pin negativo (-) a la tierra
analógica y de esta manera funcionaría como una medición del tipo RSE.
A diferencia del LabVIEW convencional, el LabVIEW myRIO cuenta con funciones desarrolladas
específicamente para la configuración del dispositivo myRIO. Para poder acceder a estas
funciones, es necesario crear un proyecto del tipo “myRIO Project” antes de crear un nuevo VI.
En la ventana Block Diagram del VI creado se podrá encontrar una carpeta con funciones
específicas para la configuración del myRIO tales como: Analog Input, Analog Output, Digital
Input, Digital Output, Button, Led, Accelerometer, PWM, Encoder, etc.
ADQUISICIÓN DE SEÑALES
La función utilizada para adquirir señales analógicas es Analog Input, se muestra en la Figura
33.
Al ingresar esta función es necesario definir los pines del dispositivo que se utilizarán para la
adquisición de señales mediante el asistente que se observa en la Figura 34. En esta ventana
se debe seleccionar el canal que se usará para la lectura de datos (hay canales para cada
conector del dispositivo) y es posible asignar un nombre a cada canal agregado con el fin de
tener una mejor identificación. La nomenclatura de los canales es por ejemplo C/AI0
(Conector/ Analog Input channel 0).
Asimismo, este asistente de configuración ofrece otras dos pestañas con las opciones “View
Code” y “Connection Diagram”. La segunda pestaña, “View Code”, muestra el código en un
nivel de programación de lenguaje bajo y más complejo, que es simplificado a través de esta
función. La tercera pestaña, ”Connection Diagram”, muestra los pines que pueden ser
utilizados como salidas analógicas para cada uno de los tres conectores del dispositivo.
En la Figura 35 se muestran los pines correspondientes a las salidas analógicas del conector C.
En esta imagen es posible observar que el conector C solo cuenta con salidas analógicas del
tipo diferencial, tal como se explicó anteriormente, por lo que al momento de realizar las
conexiones físicas del dispositivo se debe conectar el pin negativo (AI0-) con la tierra analógica
(AGND).
GENERACIÓN DE SEÑALES
(a) (b)
Figura 37. (a) Generar voltaje con myRIO, (b) Configuración para salidas analógicas
Figura 38. Diagrama de bloques del programa para generar señales usando LabVIEW myRIO
7. EXPERIENCIA PRÁCTICA
7.1. EXPERIENCIA 1
Generar un VI que permita observar una señal en el dominio del tiempo y en la frecuencia a
través de la Transformada Rápida de Fourier (FFT). Se van a tener 3 señales sinusoidales
sumadas, de las que se puede variar la frecuencia y amplitud. Además, cuenta con dos gráficos
para mostrar las señales en el tiempo y en frecuencia. El panel frontal debe ser similar al de la
Figura 39.
Consideraciones: Configurar los generadores de señal para tener 10k muestras por segundo, y
ver resultados cada 5k muestras, de esta forma la ventana de tiempo será de 0.5s. Ajustar las
gráficas para tener una imagen igual a la de la Figura 39.
7.2. EXPERIENCIA 2
Realizar un VI en LabVIEW myRIO para generar una señal sinusoidal por el canal C/AO0 con las
siguientes características:
• Frecuencia: 10.1 Hz
Utilizar el simulador de señales para generar la onda senoidal y configure la salida analógica
C/AO0 a través de la función del myRIO.
También, se debe utilizar una función myRIO para leer la señal analógica a través del puerto
C/AI0, la cual debe ser mostrada en un Waveform Chart.
Aparte de configurar el simulador para generar y leer la señal requerida, se debe agregar una
estructura tipo While para ejecutar el programa de manera indefinida.
Al trabajar con el dispositivo myRIO, se debe tener en cuenta que la frecuencia de muestreo
será igual a la velocidad de ejecución del lazo While, por esta razón para la experiencia se
agrega un bloque Wait Until Next ms Multiple de 10 ms con la finalidad que se ejecute la
lectura de datos 100 veces por segundo. Así, se tendría una frecuencia de muestreo de 100 S/s
o 100 Hz.
7.3. EXPERIENCIA 3
Se desea simular el proceso de adquisición de datos de una señal proporcionada por un sensor
y almacenar la información adquirida en un archivo de texto, el cual posteriormente deberá
ser leído para analizar la información. Por tal motivo, la señal del sensor será representada por
una señal senoidal simulada a través de un simulador de señales (Simulate Signal) y se enviará
por el puesto de la salida analógica de la DAQ. Luego, la señal deberá ser adquirida usando una
entrada analógica de la DAQ.
Debido a que las señales adquiridas por sensores regularmente cuentan con ruido ambiental,
se desea filtrar la señal y grabar un archivo de la señal original y de la señal filtrada.
Posteriormente, se pide leer la data almacenada en los dos archivos y mostrarla en dos
gráficos diferentes. Además, se pide mostrar en un tercer gráfico solo la señal del ruido (señal
original – señal filtrada).
El proceso descrito se debe realizar utilizando una estructura secuencial, para lo cual deben
tomar como referencia el esquema presentado en la Figura 41.
• Amplitud: 1V
• Offset: 2.5V
• Frecuencia: 10 Hz
• Ruido Blanco Gausiano (Desviación estándar: 0.25)
• Muestras por segundo: 1000 (simulate acquisition timing)
• Numero de muestras: 1
Utilizar el bloque Write to Measument File para almacenar la data. Los gráficos resultantes se
presentan en la Figura 42.
Figura 42. (a) Señal original, (b) Señal filtrada, (c) Señal del ruido
Variables locales
Puede detener múltiples bucles While paralelos con un botón de stop pasando el valor del
botón de stop booleano desde el control de su primer bucle a todos los otros bucles utilizando
una variable local para cada bucle adicional. La siguiente figura demuestra la detención de dos
bucles While paralelos mediante una variable local.
‘stop
control’
Variable local
‘stop control’
El bucle superior contiene un stop control. Configure la acción mecánica del stop control
haciendo clic con el botón derecho en el stop control en el front panel y seleccionando
Mechanical Action » Switch When Pressed. Esto permite que todos los bucles lean el
booleano de stop, mientras que el pestillo cuando se presiona se restablecerá a verdadero
cuando se lea el valor, dejando algunos bucles aún en ejecución.
Los dos bucles inferiores contienen una variable local del stop control. La variable local se crea
haciendo clic con el botón derecho en el stop control y seleccionando Create » Local Variable.
Configure la variable local para leer el valor haciendo clic con el botón derecho en la variable
local y seleccionando Change to Read.