Por: Omar Gurrola
LabVIEW Sesi贸n #6 (03/09/13)
www.proprojects.wordpress.com
Programacion Grafica con LabVIEW Sesion #6 Contenido Introducci贸n: ................................................................................................................................................. 2 Measurement & Automation Explorer (MAX) .............................................................................................. 2 Paneles de Prueba en MAX (Test Panels) ..................................................................................................... 3 Escalas en MAX (NI-DAQmx Scales) .............................................................................................................. 6 Tareas en MAX (NI-DAQmx Task) ................................................................................................................. 8 DAQ en LabVIEW ......................................................................................................................................... 10 Ejercicios ..................................................................................................................................................... 14
Por: Omar Gurrola
LabVIEW Sesión #6 (03/09/13)
www.proprojects.wordpress.com
Introducción: El enfoque de esta sección es:
Aprender a utilizar la aplicación “Measurement & Automation Explorer (MAX)”. Aprender a utilizar los Test Panels para probar la tarjeta. Crear Escala (Scales) en MAX. Crear Tareas (Tasks) en MAX. Manejar DAQmx en LabVIEW para el manejo de adquisición y generación de señales.
Measurement & Automation Explorer (MAX) Es una aplicación de NI que se utiliza para listar, configurar y probar SW y HW para ser utilizado en instrumentación virtual.
Data Neighborhood: Se utiliza para administrar los canales virtuales y tareas para los dispositivos que serán utilizados. Devices and Interfaces: Se utiliza para configurar las tarjetas o interfaces físicas y/o virtuales. Scales: Se utiliza para definir escalas, las escalas son fórmulas que se aplican a las muestras. Software: Muestra información sobre los programas instalados.
Toda la configuración realizada en MAX puede ser exportada e importada desde: File >> Import/Export
Por: Omar Gurrola
LabVIEW Sesión #6 (03/09/13)
www.proprojects.wordpress.com
Paneles de Prueba en MAX (Test Panels) Es una sección dentro de la categoría “Devices and Interfaces” que aparece al dar clic derecho o izquierdo sobre una tarjeta o interface. Sirve para configurar y visualizar diferentes entradas y/o salidas de la tarjeta seleccionada para asegurar que se encuentra funcionando correctamente.
1. Entrada Análoga (Analog Input)
a. Channel Name: Seleccionar el canal que deseamos probar. b. Mode: Seleccionar el modo de adquisición. i. On Demand: En base a la demanda. ii. Finite: Para un número determinado de muestras. iii. Continuos: Continuamente. c. Input Configuration: Configuración de la entrada. i. Differential: Cuando se tiene Voltaje + y Voltaje -. ii. RSE: Modo referenciado, cuando se tiene Voltaje y GND.
Por: Omar Gurrola
d. e. f. g. h.
LabVIEW Sesión #6 (03/09/13)
www.proprojects.wordpress.com
iii. NRSE: Modo no referenciado, cuando solo se tiene Voltaje. Max Input Limit: Voltaje máximo a leer. Min Input Limit: Voltaje mínimo a leer. Rate (Hz): Frecuencia de muestreo. Samples to Read: Cantidad de muestras. Start: Para empezar a muestrear con la configuración establecida.
2. Salida Análoga (Analog Output)
a. Channel Name: Seleccionar el canal que deseamos probar. b. Mode: Seleccionar el modo para generar la señal. i. DC Value: Genera un valor DC. ii. Sinewave Generation: Genera una onda seno. c. Transfer Mechanism: Modo de transferencia. i. DMA: Utilizando Direct Memory Address. ii. Interrupts: Utilizando interrupciones. iii. Programmed I/O. iv. USB Bulk: Utilizando dispositivos USB. d. Max Onput Limit: Voltaje máximo a enviar. e. Min Onput Limit: Voltaje mínimo a enviar. f. Rate (Hz): Frecuencia de transmisión. g. Start: Para empezar a enviar la señal con la configuración establecida.
Por: Omar Gurrola
LabVIEW Sesi贸n #6 (03/09/13)
www.proprojects.wordpress.com
3. Entrada y Salida Digital (Digital I/O).
a. b. c. d.
Select Port: Seleccionar el puerto digital a probar. Select Direction: Configurar cuales bits ser谩n entrada y cuales salida. Select State: Nos muestra el estado del puerto. Start: Para empezar a leer y enviar los bits.
4. Contador/Generador (Counter I/O)
a. Channel Name: Canal que se desea probar. b. Mode: Modo de operaci贸n. i. Pulse Train Generation: Generador de pulsos. ii. Edge Counting: Contador de flancos. c. Edge Source: Origen del flanco. d. Pulse Terminal: Salida de los pulsos.
Por: Omar Gurrola
LabVIEW Sesión #6 (03/09/13)
www.proprojects.wordpress.com
e. Frequency: Frecuencia de los pulsos f. Duty Cycle: Ciclo de trabajo de los pulsos. g. Start: Para empezar a leer o enviar la señal.
Escalas en MAX (NI-DAQmx Scales) Una escala es una fórmula que se aplica a las muestras adquiridas con el objetivo transformar los datos leídos (voltaje, corriente, resistencia, etc.) en datos reales (temperatura, fuerza, etc.). Para crear una escala seguir los siguientes pasos: 1. Clic derecho sobre “Scales >> Create New… >> Scales >> NI-DAQmx Scale”. 2. Seleccionar el tipo de escala, existen cuatro tipos:
a. Lineal (Linear): Cuando la escala es lineal cumple con la fórmula de la recta, donde se puede ajustar el “Slope” y el “Y-Intercept”.
Por: Omar Gurrola
LabVIEW Sesi贸n #6 (03/09/13)
www.proprojects.wordpress.com
b. Rango (Map Ranges): Cuando un rango de valores queremos que sean escalados a otro rango.
c. Polinomial (Polynomial)
Por: Omar Gurrola
LabVIEW Sesión #6 (03/09/13)
www.proprojects.wordpress.com
d. Tabla (Table): Cuando queremos escalar valores específicos.
3. Hay que darle un nombre representativo a la escala. 4. Por ultimo guardamos todos los cambios realizados. 5. La escala ya puede ser utilizada al crear una tarea.
Tareas en MAX (NI-DAQmx Task) Una tarea es un proceso especialmente configurado para adquirir o generar señales para un dispositivo o interface especifico. 1. Tenemos dos opciones para abrir el asistente que nos permitirá crear una tarea: 1) Le damos clic derecho sobre la tarjeta que vamos a utilizar: “NI PCI-6025E “Dev1” >> Create Task”. 2) Le damos clic derecho sobre “Data Neighborhood >> Create New… >> NI-DAQmx Task”. 2. Una vez abierto el asistente debemos seleccionar si deseamos adquirir o generar una señal, para este ejemplo: Adquiriremos una señal (Acquiere Signals). La señal es análoga (Analog Input). Se medirá voltaje (Voltage). Desde la entrada analógica ai0 de la tarjeta “Dev1 (PCI-6025E)”.
Por: Omar Gurrola
LabVIEW Sesión #6 (03/09/13)
www.proprojects.wordpress.com
3. Procedemos a ponerle un nombre, por default se llamara: “MyVoltageTask”. 4. El siguiente paso consiste en configurar los canales: 1) Seleccionar la configuración de las terminales (Terminal Configuration). 2) Seleccionar una escala si así se requiere. 3) Definir el rango de la señal (Max, Min) y seleccionar las unidades. 4) Debemos definir el modo de adquisición (Acqusition Mode). 5) Numero de muestras (Samples to Read). 6) Frecuencia de muestreo (Rate (Hz)). 7) Calibrarse si así se requiere. 8) También se pude adquirir la señal al ocurrir un evento (Triggering).
Por: Omar Gurrola
LabVIEW Sesión #6 (03/09/13)
www.proprojects.wordpress.com
5. Por ultimo le damos en Run para probar que la señal se lea correctamente.
DAQ en LabVIEW Para trabajar DAQ en LabVIEW existen tres tipos de drivers: 1. Traditional NIDAQ: Es utilizado en versiones antiguas de LabVIEW, se conservan por cuestiones de compatibilidad, en la actualidad no se recomienda su uso. 2. VIs Express: Se agruparon varios Vis en un único nodo configurable, aparecieron desde la versión 7. 3. NI-DAQmx: Son los mejores por: 1) Mayor integración con MAX. 2) Multiproceso. 3) Mayor estabilidad. 4) Compatibilidad con LabVIEW 7 en adelante. Para trabajar con DAQmx se debe realizar en la siguiente secuencia: 1. 2. 3. 4.
Crear tarea. Configurar temporización y disparo. Leer o escribir. Limpiar tarea.
Para poder trabajar con los DAQmx debemos entender los siguientes conceptos:
Canales Físicos (Physical Channels): Es una terminal o pin físico en el que puedes leer o escribir una señal o valor digital. Canales Virtuales (Virtual Channels): Es una colección de opciones como: nombre, canal físico, tipo de medición o generación de señal y puede incluir escalas. Este tipo de canales son utilizados en cada medición. Tareas (Tasks): Es una colección de uno o más canales virtuales con su tiempo y demás propiedades. En general una tarea es una medición o generación que deseas realizar. Canal Virtual Global (Global Virtual Channel): Son canales virtuales creados fuera de una tarea y pueden ser utilizados en cualquier aplicación o añadirlo a varias tareas. Si se modifica este tipo de canal, el cambio se refleja en todas las tareas que lo utilizan. Canal Virtual Local (Local Virtual Channel): Son canales virtuales creados dentro de una tarea.
Por: Omar Gurrola
LabVIEW Sesión #6 (03/09/13)
www.proprojects.wordpress.com
Las operaciones que se pueden realizar en LabVIEW con DAQmx se encuentran en la paleta: “Measurement I/O >> NI-DAQmx”
Icono:
Nombre: Task Const
Descripción: Nos permite elegir una tarea predefinida en MAX o crear una en ese momento.
Channel Const
Nos permite elegir un canal global predefinido en MAX o crear uno en ese momento.
Create Channel
Crea un canal dando toda la configuración manualmente.
Read
Leer datos desde una tarea o canal especifico, el formato de la lectura depende de si es análogo o digital.
Write
Escribe datos a una tarea o canal.
Por: Omar Gurrola
LabVIEW Sesión #6 (03/09/13)
Wait Until Done
www.proprojects.wordpress.com
Espera a que la lectura o escritura se complete, se utiliza para asegurar que la tarea ha terminado antes de cerrarla.
Configura el número de muestras que deseamos adquirir o generar (crea un buffer si es necesario). Timing
Las opciones que podemos definir son: muestras por segundo, terminal como reloj, ejecución finita, continua, etc. Configura la forma en que iniciara o detendrá una tarea. Los triggers pueden venir de diferentes formas, tanto analógicas como digitales, internos o externos.
Triggering
Cuando se utiliza el modo Start, la adquisición o generación iniciara cuando se cumpla la condición. Cuando se utiliza el modo Reference, la adquisición o generación se detendrá cuando se cumpla la condición.
Start
Ejecutar una tarea o canal específico para leer o generar una señal. Se requiere en algunas situaciones, en otras no.
Stop
Detiene una tarea o canal.
Clear
Detiene y borra una tarea, liberando todos los recursos que utiliza. No se puede volver a utilizar la tarea después de ser borrada, a menos que sea creada nuevamente. Todas las tareas deben ser borradas al terminar la ejecución del programa.
Por: Omar Gurrola
LabVIEW Sesi贸n #6 (03/09/13)
DAQ Assistant
www.proprojects.wordpress.com
Asistente en forma de VI Express que se utiliza para crear, configurar y ejecutar tareas. Se puede configurar como si fuera MAX. Una vez configurado se puede transformar en una tarea o generar autom谩ticamente su c贸digo.
Por: Omar Gurrola
LabVIEW Sesión #6 (03/09/13)
www.proprojects.wordpress.com
Ejercicios 1. Realizar una aplicación que genere una onda sinodal con el nodo de formula y la mande a una salida análoga, y que al mismo tiempo reciba una señal en la entrada análoga. Grafique ambas señales.
Por: Omar Gurrola
LabVIEW Sesión #6 (03/09/13)
www.proprojects.wordpress.com
2. Realizar un VI para generar una señal sinodal utilizando el nodo de fórmulas dando la amplitud, frecuencia y el número de muestras. Permitir cambiar la escala mínima y máxima de x en la gráfica utilizando el nodo de propiedades. Exportar la señal con DAQ Assistant.
Por: Omar Gurrola
LabVIEW Sesi贸n #6 (03/09/13)
www.proprojects.wordpress.com
3. Realizar un programa que pueda generar las siguientes tipos de ondas: sinoidal, triangular, cuadrada, diente de cierra, de las siguientes tres maneras y exportarlas o leerlas: 3.1. Utilizando la funci贸n Basic Funtion Generator. 3.2. A trav茅s de sus ecuaciones usando el Function Node. 3.3. Utilizando la funci贸n Formula Waveform.
Por: Omar Gurrola
LabVIEW Sesión #6 (03/09/13)
www.proprojects.wordpress.com
4. Realizar un programa que obtenga una temperatura cada tiempo (ms) y que cada 5 muestras obtenga su promedio la vaya graficando. También debe guardar 20 promedios en un archivo junto con su número de muestras.
Por: Omar Gurrola
LabVIEW Sesi贸n #6 (03/09/13)
www.proprojects.wordpress.com
5. Realizar un programa que pueda leer cuatro bits y escribir en otros cuatro bits. Realizar las siguientes funciones: 5.1. Mover las entradas a las salidas (dejarlas pasar). 5.2. OR de las entradas en cada salida. 5.3. AND de las entradas en cada salida. 5.4. XOR de las entradas en cada salida. 5.5. NOT de las entradas en las salidas.
Por: Omar Gurrola
LabVIEW Sesi贸n #6 (03/09/13)
www.proprojects.wordpress.com
6. Realizar un programa para controlar un puerto digital utilizando ocho controles booleanos.