Programación en LabVIEW - Grupo de TecnologÃa Electrónica
Programación en LabVIEW - Grupo de TecnologÃa Electrónica
Programación en LabVIEW - Grupo de TecnologÃa Electrónica
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
INTRODUCCIÓN A LA INSTRUMENTACIÓN VIRTUAL.<br />
PROGRAMACIÓN EN LABVIEW.<br />
Ignacio Mor<strong>en</strong>o Velasco<br />
Pedro L. Sánchez Ortega
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 2
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
INDICE<br />
1.- INTRODUCCIÓN A LOS SISTEMAS DE ADQUISICIÓN 5<br />
2.- SOFTWARE 7<br />
CONCEPTO DE INSTRUMENTO VIRTUAL .......................................................................................... 7<br />
Estructura <strong>de</strong>l software .................................................................................................................... 7<br />
Programa <strong>de</strong> aplicación ........................................................................................................................................7<br />
SOFTWARE CONTROLADOR DE DISPOSITIVO ................................................................................. 8<br />
3.- PRACTICAS DE INICIACIÓN A LABVIEW 9<br />
Práctica 1ª: Realizar la suma <strong>de</strong> 2 números ................................................................................... 10<br />
Insertar los elem<strong>en</strong>tos <strong>en</strong> el panel frontal. ......................................................................................................10<br />
Insertar la operación <strong>de</strong> suma: ..........................................................................................................................10<br />
Llamadas a la AYUDA:......................................................................................................................................10<br />
Ejecución <strong>de</strong>l programa .....................................................................................................................................10<br />
Sustitución <strong>de</strong> controles e indicadores.............................................................................................................11<br />
Práctica 2: Otras operaciones y controles ...................................................................................... 11<br />
Introducir funciones <strong>de</strong> comparación: ............................................................................................................12<br />
Tipos <strong>de</strong> datos: ....................................................................................................................................................12<br />
Concat<strong>en</strong>ación <strong>de</strong> cad<strong>en</strong>as alfanuméricas fr<strong>en</strong>te a suma <strong>de</strong> números. .......................................................13<br />
paso a ....................................................................................................................................................................13<br />
paso b...............................................................................................................¡Error! Marcador no <strong>de</strong>finido.<br />
Práctica 3ª: adquisición y procesami<strong>en</strong>to básicos.......................................................................... 14<br />
Técnicas <strong>de</strong> <strong>de</strong>puración:.....................................................................................................................................14<br />
Creación <strong>de</strong> SubVI's ...........................................................................................................................................15<br />
Práctica 4ª: Utilización <strong>de</strong> subVI's.................................................................................................. 16<br />
Práctica 5ª: Secu<strong>en</strong>cia While-loop.................................................................................................. 16<br />
paso a ....................................................................................................................................................................16<br />
paso b....................................................................................................................................................................17<br />
Práctica 6ª: registros <strong>de</strong> <strong>de</strong>splazami<strong>en</strong>to ....................................................................................... 18<br />
paso a ....................................................................................................................................................................18<br />
paso b....................................................................................................................................................................18<br />
Práctica 7ª: Bucle For. .................................................................................................................... 19<br />
Práctica 8ª: MATRICES. .................................................................................................................. 20<br />
paso a ....................................................................................................................................................................20<br />
paso b....................................................................................................................................................................20<br />
Práctica 9: tipos <strong>de</strong> gráficos ........................................................................................................... 21<br />
Práctica 10: Nudo fórmula.............................................................................................................. 22<br />
Práctica 11: Estructura CASE.......................................................................................................... 22<br />
Opción múltiple <strong>de</strong> la estructura case..............................................................................................................22<br />
4.- ADQUISICIÓN DE DATOS. 23<br />
Conceptos básicos <strong>de</strong> adquisición <strong>de</strong> datos (a/d) .......................................................................... 23<br />
Velocidad <strong>de</strong> muestreo.......................................................................................................................................23<br />
Resolución............................................................................................................................................................24<br />
Rango ....................................................................................................................................................................25<br />
Práctica 12: adquisición <strong>de</strong> datos ................................................................................................... 26<br />
Paso A: uso <strong>de</strong> la función "AI Acquire waveform simu.VI" .......................................................................27<br />
Paso B: Escalado <strong>de</strong> tiempos. ...........................................................................................................................27<br />
Paso C: análisis <strong>en</strong> frecu<strong>en</strong>cia............................................................................................................................29<br />
Paso D: Escalado <strong>de</strong> frecu<strong>en</strong>cia........................................................................................................................29<br />
Ejercicios..................................................................................................................................... 30<br />
RESOLUCIÓN ESPECTRAL ........................................................................................................................30<br />
ALIASING ..........................................................................................................................................................30<br />
Env<strong>en</strong>tanado........................................................................................................................................................30<br />
PRÁCTICA 13: filtrado .................................................................................................................... 31<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 3
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
5.- BUS GPIB. 32<br />
Introducción al bus GPIB................................................................................................................ 32<br />
Historia.................................................................................................................................................................32<br />
Características mecánicas y eléctricas ..............................................................................................................32<br />
Funcionami<strong>en</strong>to ..................................................................................................................................................33<br />
IEEE 488-2..........................................................................................................................................................35<br />
HS488 ...................................................................................................................................................................35<br />
Programación con <strong>LabVIEW</strong> ........................................................................................................... 36<br />
Conexión labview-dispositivo GPIB ...............................................................................................................36<br />
Envío <strong>de</strong> comandos............................................................................................................................................36<br />
Recepción <strong>de</strong> respuestas ................................................................................................................ 37<br />
Obt<strong>en</strong>ción <strong>de</strong> datos <strong>de</strong> la cad<strong>en</strong>a <strong>de</strong> respuesta <strong>de</strong> un instrum<strong>en</strong>to:............................................................38<br />
Aplicaciones EN RED ....................................................................................................................... 39<br />
Servidor remoto <strong>de</strong> comandos GPIB..............................................................................................................39<br />
Aplicaciones <strong>de</strong> distribución <strong>de</strong> señal <strong>en</strong> red..................................................................................................40<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 4
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
1.- INTRODUCCIÓN A LOS SISTEMAS DE ADQUISICIÓN<br />
El esquema g<strong>en</strong>eral <strong>de</strong> una cad<strong>en</strong>a <strong>de</strong> medida cuya misión es la adquisición <strong>de</strong> datos pue<strong>de</strong> ser el sigui<strong>en</strong>te:<br />
Este esquema g<strong>en</strong>eral o alguna <strong>de</strong> sus variaciones lo <strong>en</strong>contraremos <strong>en</strong> múltiples <strong>en</strong>tornos <strong>de</strong> los que cabe<br />
<strong>de</strong>stacar dos: uno será el <strong>de</strong> los procesos industriales y el otro será el <strong>de</strong> <strong>en</strong>sayos y test que <strong>en</strong>globaremos bajo la<br />
d<strong>en</strong>ominación <strong>de</strong> <strong>en</strong>torno <strong>de</strong> laboratorio.<br />
ENTORNO INDUSTRIAL<br />
En un proceso industrial existirán varios s<strong>en</strong>sores que suministran información, conv<strong>en</strong>i<strong>en</strong>tem<strong>en</strong>te<br />
acondicionada, al elem<strong>en</strong>to controlador <strong>de</strong>l sistema. El elem<strong>en</strong>to controlador, que estará basado <strong>en</strong> algún<br />
microprocesador, recibirá la información <strong>de</strong> los s<strong>en</strong>sores directam<strong>en</strong>te o mediante un proceso <strong>de</strong> comunicación.<br />
A<strong>de</strong>más <strong>de</strong> la pres<strong>en</strong>tación <strong>de</strong> dicha información <strong>en</strong> la forma <strong>de</strong>seada (g<strong>en</strong>eralm<strong>en</strong>te gráfica) el elem<strong>en</strong>to<br />
controlador dará las ord<strong>en</strong>es oportunas a los actuadores para mant<strong>en</strong>er el proceso funcionando d<strong>en</strong>tro <strong>de</strong> los<br />
márgnes previstos.<br />
S<strong>en</strong>sor Acondicionador Transmisión <strong>de</strong> datos pres<strong>en</strong>tación<br />
Perturbaciones<br />
<strong>en</strong> el sistema<br />
SISTEMA<br />
Controlador<br />
actuador<br />
acondicionador<br />
Transmision <strong>de</strong> ord<strong>en</strong>es<br />
ENTORNO DE LABORATORIO<br />
Para la instrum<strong>en</strong>tación virtual o los procesos <strong>de</strong> laboratorio, la información pue<strong>de</strong> v<strong>en</strong>ir dada no sólo por<br />
s<strong>en</strong>sores, sino también por otros sistemas <strong>de</strong> medida (osciloscopios, multímetros, etc.) con capacidad <strong>de</strong><br />
comunicación. Parti<strong>en</strong>do <strong>de</strong> la información recogida po<strong>de</strong>mos cambiar las condiciones <strong>de</strong> la prueba,<br />
modificando parámetros <strong>de</strong> los aparatos (g<strong>en</strong>eradores <strong>de</strong> funciones, fu<strong>en</strong>tes <strong>de</strong> alim<strong>en</strong>tación) .<br />
Pres<strong>en</strong>tación,<br />
Procesado,<br />
Control<br />
Aparatos <strong>de</strong> medida<br />
excitaciones<br />
BUS<br />
Sistemas <strong>de</strong><br />
Adquisición<br />
actuadores<br />
SISTEMA BAJO<br />
PRUEBA<br />
s<strong>en</strong>sores<br />
usuario<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 5
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
En un <strong>en</strong>torno como el <strong>de</strong>scrito, la t<strong>en</strong>d<strong>en</strong>cia actual es que sea un software especializado qui<strong>en</strong> se <strong>en</strong>cargue <strong>de</strong>l<br />
control <strong>de</strong>l sistema, coordinando el funcionami<strong>en</strong>to <strong>de</strong> los distintos elem<strong>en</strong>tos.<br />
Uno <strong>de</strong> estos programas software es LabView <strong>de</strong> la multinacional National Instrum<strong>en</strong>ts. Labview permite<br />
recoger, analizar y monitorizar los datos d<strong>en</strong>tro <strong>de</strong> un <strong>en</strong>torno <strong>de</strong> programación gráfico <strong>en</strong> el que se <strong>en</strong>samblan<br />
objetos llamados instrum<strong>en</strong>tos virtuales (Vis) para formar el programa <strong>de</strong> aplicación con el que interactuará el<br />
usuario y que se d<strong>en</strong>omina instrum<strong>en</strong>to virtual.<br />
A<strong>de</strong>más <strong>de</strong> lo que es la propia repres<strong>en</strong>tación <strong>de</strong> los datos <strong>en</strong> los paneles interactivos que funcionan como si se<br />
tratara <strong>de</strong> instrum<strong>en</strong>tación real, permite múltiples opciones <strong>de</strong> manejo <strong>de</strong> datos, como su almac<strong>en</strong>ami<strong>en</strong>to <strong>en</strong><br />
disco y compartirlos <strong>en</strong> red o con otras aplicaciones. La interacción con otras aplicaciones se podrá realizar<br />
mediante llamadas a librerías <strong>de</strong> <strong>en</strong>lace dinámico (DLL: Dinamic Link Library) e intercambio dinámico <strong>de</strong> datos<br />
(DDE: Dynamic Data Exchange) <strong>en</strong> modo local o mediante TCP/IP <strong>en</strong> conexiones remotas. Siempre buscando<br />
in<strong>de</strong>p<strong>en</strong>d<strong>en</strong>cia <strong>de</strong> la plataforma <strong>en</strong> la que hayamos realizado nuestra aplicación.<br />
La capacidad <strong>de</strong> comunicación con otros sistemas será una cualidad importante <strong>en</strong> cualquier equipo ó sistema.<br />
A<strong>de</strong>más <strong>de</strong> la comunicación mediante interfaces comunes como el RS-232 o 485, podremos utilizar otros<br />
estándares más específicos <strong>de</strong> instrum<strong>en</strong>tación como el IEEE-488 más conocido como GPIB , el VXI o <strong>en</strong><br />
<strong>en</strong>tornos industriales mas específicos el CAN.<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 6
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
2.- SOFTWARE<br />
CONCEPTO DE INSTRUMENTO VIRTUAL<br />
A difer<strong>en</strong>cia <strong>de</strong> un instrum<strong>en</strong>to real, que po<strong>de</strong>mos t<strong>en</strong>er <strong>en</strong> cualquier laboratorio o planta <strong>de</strong> procesos, y que<br />
queda perfectam<strong>en</strong>te <strong>de</strong>finido por unos mandos <strong>de</strong> control y unos elem<strong>en</strong>tos <strong>de</strong> repres<strong>en</strong>tación, un instrum<strong>en</strong>to<br />
virtual estará ligado al concepto <strong>de</strong> software. Este software se ejecutará <strong>en</strong> un ord<strong>en</strong>ador que t<strong>en</strong>drá alojado unos<br />
elem<strong>en</strong>tos hardware concretos, tarjetas <strong>de</strong> adquisición <strong>de</strong> datos (analógicos y digitales), tarjetas <strong>de</strong> interfaz con los<br />
buses <strong>de</strong> instrum<strong>en</strong>tación y unos canales <strong>de</strong> control también analógicos y digitales.<br />
Nuestro instrum<strong>en</strong>to virtual permitirá manejar ese hardware mediante una interfaz gráfica <strong>de</strong> usuario (IGU) que<br />
se asemejará al panel <strong>de</strong> mandos <strong>de</strong> los aparatos habituales (Osciloscopio, multímetro, etc.)<br />
Mediante le repres<strong>en</strong>tación <strong>en</strong> pantalla <strong>de</strong> los elem<strong>en</strong>tos gráficos <strong>de</strong> visualización y control que servirán <strong>de</strong><br />
interfaz con el usuario, este observará los estados <strong>de</strong> las <strong>en</strong>tradas seleccionadas <strong>en</strong> la pantalla e interactuará con<br />
las salidas directam<strong>en</strong>te o mediante la ejecución <strong>de</strong> las rutinas que halla programado.<br />
ESTRUCTURA DEL SOFTWARE<br />
• Básicam<strong>en</strong>te, el software se <strong>en</strong>cargará <strong>de</strong> comunicar la interfaz <strong>de</strong> usuario <strong>de</strong>l ord<strong>en</strong>ador con el hardware<br />
<strong>de</strong> adquisición <strong>de</strong> datos dotando a la aplicación <strong>de</strong> la funcionalidad requerida.<br />
• Po<strong>de</strong>mos realizar una separación <strong>de</strong> las capas o partes <strong>de</strong>l software: Programa <strong>de</strong> aplicación, controladores<br />
<strong>de</strong> dispositivo (drivers) y librerías <strong>de</strong> aplicación (API’s).<br />
PROGRAMA DE APLICACIÓN<br />
El programa <strong>de</strong> aplicación, también llamado instrum<strong>en</strong>to virtual, consta <strong>de</strong> dos partes: interfaz <strong>de</strong> usuario y<br />
funcionalidad <strong>de</strong> la aplicación:<br />
IGU (Interfaz Gráfica <strong>de</strong> usuario)<br />
• Permite la interacción <strong>de</strong> la aplicación con el usuario.<br />
• Básicam<strong>en</strong>te consta <strong>de</strong> controles e indicadores para visualización e introducción <strong>de</strong> datos.<br />
• La mayoría <strong>de</strong> <strong>en</strong>tornos <strong>de</strong> programación dispon<strong>en</strong> <strong>de</strong> librerías <strong>de</strong> controles e indicadores creados que<br />
evitan una gran cantidad <strong>de</strong> trabajo al usuario.<br />
Funcionalidad <strong>de</strong> la aplicación<br />
• Una <strong>de</strong> las funciones básicas será la <strong>de</strong> obt<strong>en</strong>er datos <strong>de</strong>l hardware <strong>de</strong> forma transpar<strong>en</strong>te al usuario.<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 7
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
• La funcionalidad <strong>de</strong>l programa incluye tratami<strong>en</strong>to <strong>de</strong> señal, control <strong>de</strong>l flujo <strong>de</strong> programa, control <strong>de</strong><br />
errores, etc…<br />
• Pue<strong>de</strong> implem<strong>en</strong>tarse <strong>en</strong> l<strong>en</strong>guajes basados <strong>en</strong> texto (Visual Basic, C++, LabWindows/CVI, etc.) o pue<strong>de</strong><br />
utilizar l<strong>en</strong>guaje gráfico como LabWiew, Snap Master, DasyLab, HP-VEE, Visual Designer <strong>de</strong> Burr<br />
Brown, etc..<br />
Nuestro estudio se c<strong>en</strong>trará <strong>en</strong> la programación bajo el <strong>en</strong>torno <strong>de</strong> programación gráfica LabView.<br />
PROGRAMACIÓN GRÁFICA<br />
Los procesos programables se <strong>de</strong>finirán mediante un l<strong>en</strong>guaje gráfico <strong>en</strong> vez <strong>de</strong> un l<strong>en</strong>guaje ori<strong>en</strong>tado a líneas <strong>de</strong><br />
código como estamos acostumbrados normalm<strong>en</strong>te.<br />
En este tipo <strong>de</strong> programación las funciones son bloques que se interconectan <strong>en</strong>tre sí, intercambiando la<br />
información.<br />
SOFTWARE CONTROLADOR DE DISPOSITIVO<br />
El acceso al hardware ya no se realiza mediante llamadas directas a sus registros, si no que los fabricantes<br />
proporcionan una capa intermedia que aisla al programador <strong>de</strong> <strong>de</strong>talles hardware. Esta capa intermedia facilita la<br />
comunicación <strong>en</strong>tre el hardware y nuestro <strong>en</strong>torno <strong>de</strong> programación. Suele implem<strong>en</strong>tarse mediante DLLs, por<br />
lo que se necesita una versión específica para cada sistema operativo. (p. ej. Win16 y Win32).<br />
GUI<br />
NI-DAQ Configuration<br />
utility<br />
Registro <strong>de</strong><br />
Windows<br />
NI-DAQ.DLL<br />
DAQ.DRV<br />
TARJETA DAQ<br />
Todas las tarjetas ofrec<strong>en</strong> estas librerías como complem<strong>en</strong>to software. Es tan importante la<br />
docum<strong>en</strong>tación como la variedad y flexibilidad <strong>de</strong> las librerías.<br />
P. EJ. NI-DAQ DE NATIONAL INSTRUMENTS<br />
• nidaq32.dll: Ocupa más <strong>de</strong> 2 MB y conti<strong>en</strong>e ci<strong>en</strong>tos <strong>de</strong> funciones para el manejo <strong>de</strong> tarjetas <strong>de</strong> NI.<br />
• nidaqcfg.dll: Librería para la configuración <strong>de</strong> los dispositivos conectados.<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 8
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
3.- PRÁCTICAS DE INICIACIÓN A LABVIEW<br />
Las prácticas <strong>de</strong> que consta esta introducción a la programación con <strong>LabVIEW</strong> y los objetivos perseguidos son:<br />
INTRODUCCIÓN A LA PROGRAMACIÓN GRÁFICA CON LABVIEW<br />
Practica 1:<br />
Realización <strong>de</strong> la suma <strong>de</strong> 2 números.<br />
Contacto con el <strong>en</strong>torno <strong>de</strong> trabajo, panel <strong>de</strong> control y zona <strong>de</strong> diagrama.<br />
Concepto <strong>de</strong> visualizador y control.<br />
Llamadas a la ayuda <strong>en</strong> linea para las funciones.<br />
Ejecución única y ejecución cíclica.<br />
Practica 2:<br />
Cambio <strong>de</strong> los controladores numéricos por otros gráficos.<br />
Tipos <strong>de</strong> datos<br />
Suma <strong>de</strong> cad<strong>en</strong>as <strong>de</strong> caracteres.<br />
Práctica 3:<br />
Ejecución <strong>en</strong> modo <strong>de</strong>puración.<br />
Concepto <strong>de</strong> instrum<strong>en</strong>to virtual (VI)<br />
Creacion <strong>de</strong> instrum<strong>en</strong>tos virtuales.<br />
Práctica 4<br />
Incorporación <strong>de</strong> subVI<br />
Jerarquía <strong>de</strong> programa.<br />
Práctica 5<br />
Secu<strong>en</strong>cia While-Loop<br />
Gráficas<br />
Práctica 6<br />
Registro <strong>de</strong> <strong>de</strong>splazami<strong>en</strong>to<br />
'Bundle'<br />
Práctica 7<br />
Bucles 'For'<br />
Práctica 8<br />
Arrays <strong>de</strong> elem<strong>en</strong>tos<br />
Práctica 9<br />
Gráficas Chart y graph<br />
Práctica 10<br />
Nodo fórmula<br />
Práctica 11<br />
Estructuras 'case'<br />
ADQUISICIÓN DE DATOS<br />
Práctica 12<br />
Simulación <strong>de</strong> adquisición <strong>de</strong> datos<br />
Escalado <strong>de</strong> tiempos<br />
Gráficas <strong>en</strong> función <strong>de</strong> la frecu<strong>en</strong>cia<br />
Analizador <strong>de</strong> espectro<br />
Práctica 13<br />
Filtrado<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 9
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
PRÁCTICA 1ª: REALIZAR LA SUMA DE 2 NÚMEROS<br />
INSERTAR LOS ELEMENTOS EN EL PANEL FRONTAL.<br />
Para ello <strong>en</strong> el panel frontal insertaremos el elem<strong>en</strong>to Controls/Numeric/DigitalControl. <strong>de</strong> la paleta "Functions"<br />
Lo haremos 3 veces, una para el elem<strong>en</strong>to A, otra para el B y otra para un tercero que será la suma <strong>de</strong> ambos<br />
A+B.<br />
• A medida que los vayamos insertando rell<strong>en</strong>aremos la casilla <strong>de</strong> etiqueta para cada uno <strong>de</strong> ellos.<br />
• Durante la ejecución, aum<strong>en</strong>taremos el valor <strong>de</strong> A y B mediante el <strong>de</strong>do <strong>de</strong> la barra <strong>de</strong> herrami<strong>en</strong>tas<br />
• Para mover uno <strong>de</strong> los elem<strong>en</strong>tos insertados po<strong>de</strong>mos hacerlo mediante la flecha <strong>de</strong> la barra <strong>de</strong><br />
herrami<strong>en</strong>tas, arrastrando el objeto y soltándolo <strong>en</strong> la posición <strong>de</strong>seada.<br />
INSERTAR LA OPERACIÓN DE SUMA:<br />
En la v<strong>en</strong>tana <strong>de</strong> diagrama seleccionar FUNTIONS/Numeric/Add<br />
Distinguiremos <strong>en</strong>tre control e indicador <strong>en</strong> la parte <strong>de</strong>l diagrama <strong>de</strong> bloques<br />
Las uniones que relacionan los elem<strong>en</strong>tos con la operación se hac<strong>en</strong> mediante el elem<strong>en</strong>to carrete <strong>de</strong> hilo <strong>de</strong> la<br />
paleta <strong>de</strong> herrami<strong>en</strong>tas<br />
Etiqueta<br />
LLAMADAS A LA AYUDA:<br />
Mediante CONTROL+H o seleccionando la opción Show Help <strong>de</strong>l m<strong>en</strong>ú HELP<br />
Situándonos sobre cualquier elem<strong>en</strong>to nos informará <strong>de</strong> su utilidad y que conexiones necesita.<br />
Nombre <strong>de</strong> la<br />
función seleccionada<br />
EJECUCIÓN DEL PROGRAMA<br />
Para ver el resultado <strong>de</strong> nuestro programa ejecutamos el programa pulsando con el ratón sobre el botón . Esto<br />
ejecutará el programa una sola vez. Si cambiamos los valores <strong>de</strong> los controles digitales no veremos el resultado<br />
correcto hasta que lo pulsemos <strong>de</strong> nuevo<br />
Si pulsamos el botón el programa se ejecutará continuam<strong>en</strong>te, por lo que si cambiamos los valores <strong>de</strong> los<br />
controles el resultado se refrescara instantáneam<strong>en</strong>te.<br />
Pulsando sobre los botones <strong>de</strong> abortar o pausa, ( ) , respectivam<strong>en</strong>te, podremos <strong>de</strong>t<strong>en</strong>er la ejecución<br />
<strong>de</strong>finitiva o temporalm<strong>en</strong>te. Para salir <strong>de</strong> la pausa volveremos a pulsar sobre ese botón.<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 10
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
Pulsar sobre CONTROL+B borra <strong>de</strong> nuestro diagrama las uniones <strong>de</strong>fectuosas realizadas mediante el<br />
carrete <strong>de</strong> hilo, porque no llevan a ningún sitio o porque unan elem<strong>en</strong>tos no relacionables.<br />
SUSTITUCIÓN DE CONTROLES E INDICADORES<br />
Sustituiremos o reemplazaremos los controles exist<strong>en</strong>tes por otros difer<strong>en</strong>tes, como por ejemplo por<br />
CONTROLS/NUMERIC/Horizontal Pointer Sli<strong>de</strong>.<br />
Obsérvese que solam<strong>en</strong>te cambiamos la parte correspondi<strong>en</strong>te a la interfaz <strong>de</strong> usuario, no a la funcionalidad.<br />
PRÁCTICA 2: OTRAS OPERACIONES Y CONTROLES<br />
Parti<strong>en</strong>do <strong>de</strong> lo apr<strong>en</strong>dido <strong>en</strong> la práctica 1, realizar las operaciones <strong>de</strong> suma, resta, multiplicación y división <strong>de</strong> las<br />
<strong>en</strong>tradas A y B utilizando como salidas para los resultados distintos visualizadores, tanque, agujas, etc.<br />
Para cambiar la escala <strong>de</strong>l <strong>de</strong>pósito al valor 100, basta con sobrescribir el valor máximo con la<br />
herrami<strong>en</strong>ta <strong>de</strong> escritura<br />
Po<strong>de</strong>mos realizar el cambio <strong>en</strong>tre las distintas herrami<strong>en</strong>tas, ‘flecha’, ‘mano’, ‘carrete <strong>de</strong> hilo’ con<br />
la pulsación <strong>de</strong>l tabulador y el espaciador.<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 11
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
INTRODUCIR FUNCIONES DE COMPARACIÓN:<br />
Las funciones <strong>de</strong> comparación se <strong>en</strong>cu<strong>en</strong>tran <strong>en</strong> FUNTIONS/COMPARISON/GREATER.<br />
Introducir Leds como resultado <strong>de</strong> las comparaciones, CONTROLS/BOOLEAN.<br />
Cambio <strong>de</strong> colores: po<strong>de</strong>mos modificar las propieda<strong>de</strong>s <strong>de</strong> color <strong>de</strong> la mayoría <strong>de</strong> los elem<strong>en</strong>tos <strong>de</strong>l panel <strong>de</strong><br />
control con la herrami<strong>en</strong>ta pincel<br />
La alineación <strong>de</strong> las partes <strong>de</strong> un diagrama y <strong>de</strong>l panel <strong>de</strong> control se realiza mediante las listas<br />
<strong>de</strong>splegables<br />
<strong>de</strong> la barra <strong>de</strong> herrami<strong>en</strong>tas.<br />
TIPOS DE DATOS:<br />
Exist<strong>en</strong> 12 repres<strong>en</strong>taciones para los controles o indicadores digitales:<br />
• Precisión simple: 32 bits (SGL).<br />
• Precisión doble: 64 bits (DBL).<br />
• Precisión ext<strong>en</strong>dida (EXT): números <strong>de</strong> coma flotante.<br />
• Número <strong>en</strong>tero con signo (I8) <strong>de</strong> tipo byte (8 bits).<br />
• Número <strong>en</strong>tero sin signo (U8) <strong>de</strong> tipo byte (8 bits).<br />
• Número <strong>en</strong>tero con signo (I16) <strong>de</strong> tipo palabra (16 bits).<br />
• Número <strong>en</strong>tero sin signo (U16) <strong>de</strong> tipo palabra (16 bits).<br />
• Número <strong>en</strong>tero con signo (I32) <strong>de</strong> tipo <strong>en</strong>tero ext<strong>en</strong>dido (32 bits).<br />
• Número <strong>en</strong>tero sin signo (U32) <strong>de</strong> tipo <strong>en</strong>tero ext<strong>en</strong>dido (32 bits).<br />
• Complejos <strong>de</strong> precisión simple (CSG).<br />
• Complejos <strong>de</strong> precisión doble (CDB).<br />
• Complejos <strong>de</strong> precisión ext<strong>en</strong>dida (CXT): números complejos <strong>de</strong> coma flotante.<br />
Los límites, máximo y mínimo, <strong>de</strong>p<strong>en</strong>d<strong>en</strong> <strong>de</strong>l tipo ; un <strong>en</strong>tero con signo (8 bits) estará <strong>en</strong>tre los valores <strong>de</strong> -128 a<br />
127.<br />
Precisión: Simple Doble Ext<strong>en</strong>dida<br />
Número positivo máximo 3,4 E38 1,7 E308 1,1 E4932<br />
Número positivo mínimo 1,5 E-45 5,0 E-324 1,9 E-4951<br />
Número negativo mínimo -1,5 E-45 -5,0 E-324 -1,9 E-4951<br />
Número negativo máximo -3,4 E38 -1,7 E308 -1,1 E4932<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 12
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
Para realizar el cambio <strong>de</strong> la precisión <strong>de</strong> un dato invocaremos el m<strong>en</strong>ú contextual pulsando el botón <strong>de</strong>recho<br />
cuando estemos sobre él y seleccionando el subm<strong>en</strong>ú <strong>de</strong> REPRESENTATION <strong>de</strong>l m<strong>en</strong>ú emerg<strong>en</strong>te.<br />
CONCATENACIÓN DE CADENAS ALFANUMÉRICAS FRENTE A SUMA DE NÚMEROS.<br />
La función equival<strong>en</strong>te a la suma <strong>de</strong> números es la concat<strong>en</strong>ación <strong>de</strong> caracteres, que da por resultado una única<br />
cad<strong>en</strong>a formada por otras simples.<br />
Paso A<br />
La concat<strong>en</strong>ación básica correspon<strong>de</strong> con este ejemplo, don<strong>de</strong> usamos la función Funcions/strings/concat<strong>en</strong>ate<br />
strings<br />
Paso B<br />
En el ejemplo sigui<strong>en</strong>te concat<strong>en</strong>amos varios elem<strong>en</strong>tos; algunos <strong>de</strong> los cuales son el resultado <strong>de</strong> la conversión<br />
<strong>de</strong> números a cad<strong>en</strong>as <strong>de</strong> caracteres.<br />
STRINGS/ADITIONAL../to<br />
fractional<br />
STRINGS/PICK LINE &<br />
APPEND<br />
Para realizar un selector como el <strong>de</strong> la imag<strong>en</strong> <strong>de</strong>bemos usar la<br />
propiedad TEXT LABEL <strong>en</strong> el m<strong>en</strong>ú contextual <strong>de</strong>l selector. Una vez<br />
hecho esto, podremos añadir nuevos textos al selector, pulsando <strong>en</strong> el<br />
m<strong>en</strong>ú contextual que aparece <strong>en</strong> su display sobre las opciones ADD<br />
ITEM BEFORE ó ADD ITEM AFTER.<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 13
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
PRÁCTICA 3ª: ADQUISICIÓN Y PROCESAMIENTO BÁSICOS<br />
La adquisición aunque simulada correspon<strong>de</strong>ría con un esquema hardware don<strong>de</strong> un s<strong>en</strong>sor está conectado a uno<br />
<strong>de</strong> los canales <strong>de</strong> una <strong>de</strong> las tarjetas <strong>de</strong> adquisición <strong>de</strong> datos disponibles <strong>en</strong> el ord<strong>en</strong>ador. El esquema sería el<br />
sigui<strong>en</strong>te:<br />
Ord<strong>en</strong>ador <strong>de</strong> Control Tarjeta 1<br />
S<strong>en</strong>sor<br />
Tarjeta 2<br />
Insertar la función : FUNCTIONS/TUTORIAL/Demo voltaje Read.VI<br />
Este VI solo funciona si seleccionamos los valores 0 ó 1 <strong>en</strong> el control Device y el control Chanel dando error <strong>en</strong><br />
cualquier otro caso. (i.e. Device 0 = Tarjeta 1, Device 1 = Tarjeta 2).<br />
TÉCNICAS DE DEPURACIÓN:<br />
Seleccionando el botón<br />
<strong>de</strong> la v<strong>en</strong>tana <strong>de</strong> diagrama se ejecutará la aplicación <strong>en</strong> modo <strong>de</strong>puración.<br />
Po<strong>de</strong>mos insertar una punta <strong>de</strong> prueba <strong>en</strong> cualquier cable <strong>de</strong>l diagrama para visualizar el valor <strong>en</strong> dicho punto.<br />
• Para crear esta punta <strong>de</strong> prueba, seleccionamos la herrami<strong>en</strong>ta <strong>de</strong>l m<strong>en</strong>ú <strong>de</strong> herrami<strong>en</strong>tas, pulsando<br />
con el ratón <strong>en</strong> aquellos puntos <strong>de</strong> cable don<strong>de</strong> <strong>de</strong>seemos saber el valor <strong>de</strong> la variable.<br />
• En el mom<strong>en</strong>to <strong>de</strong> ejecución nos aparecerá <strong>en</strong> el diagrama una v<strong>en</strong>tana con el valor.<br />
Recor<strong>de</strong>mos que para obt<strong>en</strong>er ayuda sobre una <strong>de</strong>terminada función po<strong>de</strong>mos activar la ayuda.<br />
Se la llama mediante CONTROL-H. y al situarnos sobre un elem<strong>en</strong>to nos da la información referida a<br />
el, conexiones y tipos <strong>de</strong> datos que utiliza.<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 14
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
CREACIÓN DE SUBVI'S<br />
Son el equival<strong>en</strong>te a las subrutinas <strong>en</strong> los l<strong>en</strong>guajes <strong>de</strong> programación basados <strong>en</strong> texto.Con ellos conseguimos una<br />
programación mejor estructurada y por tanto más legible así como evitar la repetición <strong>de</strong> código. La difer<strong>en</strong>cia<br />
respecto a las tradicionales subrutinas es que un subVI pue<strong>de</strong> ejecutarse <strong>de</strong> forma autónoma sin necesidad <strong>de</strong> que<br />
esté incluido <strong>en</strong> un VI.<br />
Al hacer doble click sobre un subVI se abre el panel <strong>de</strong> control correspondi<strong>en</strong>te a dicho subprograma.<br />
Para salvar un VI como fichero lo haremos mediante las distintas opciones <strong>de</strong>l m<strong>en</strong>ú FILE, SAVE y SAVE AS.<br />
Deberemos poner nosotros la ext<strong>en</strong>sión .VI ya que por <strong>de</strong>fecto el programa no aña<strong>de</strong> ext<strong>en</strong>sión alguna.<br />
Crear un subVI<br />
Parti<strong>en</strong>do <strong>de</strong> un VI como el <strong>de</strong>l ultimo ejemplo, crearemos un subVI para utilizarlo posteriorm<strong>en</strong>te <strong>en</strong> otras<br />
partes <strong>de</strong> nuestros VI's. T<strong>en</strong>dremos que <strong>de</strong>finir unas <strong>en</strong>tradas y unas salidas para posteriorm<strong>en</strong>te efectuar las<br />
conexiones <strong>en</strong> el diagrama.<br />
Haci<strong>en</strong>do doble click ( doble pulsación) sobre el icono <strong>de</strong> la parte superior <strong>de</strong>recha <strong>de</strong>l panel <strong>de</strong> control<br />
po<strong>de</strong>mos editar el dibujo que id<strong>en</strong>tificará a nuestro subVI.<br />
Si una vez modificado y <strong>de</strong>jado como <strong>de</strong>finitivo, pulsamos con el botón <strong>de</strong>recho y elegimos la opción Show<br />
conector veremos la disposición <strong>de</strong> conexiones <strong>de</strong> nuestro subVI.<br />
Pulsar el botón <strong>de</strong>recho para ver los distintos tipos <strong>de</strong> patterns (plantillas <strong>de</strong> conexión) y elegir el que se adapte a<br />
nuestras <strong>en</strong>tradas y salidas; normalm<strong>en</strong>te las <strong>en</strong>tradas estarán a la izquierda y las salidas a la <strong>de</strong>recha.<br />
En la v<strong>en</strong>tana panel <strong>de</strong> control seleccionar la posición d<strong>en</strong>tro <strong>de</strong>l pattern y con el carrete <strong>de</strong> hilo el control<br />
correspondi<strong>en</strong>te <strong>de</strong> <strong>en</strong>trada o salida. Si esta seleccionado como <strong>en</strong>trada o salida habrá cambiado <strong>de</strong>l blanco al gris<br />
<strong>en</strong> el pattern elegido por nosotros.<br />
Una vez realizadas las conexiones y modificaciones <strong>de</strong>l icono po<strong>de</strong>mos guardarlas.<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 15
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
PRÁCTICA 4ª: UTILIZACIÓN DE SUBVI'S<br />
Parti<strong>en</strong>do <strong>de</strong>l subVI que acabamos <strong>de</strong> crear y que muestra la temperatura <strong>en</strong> grados Fahr<strong>en</strong>heit, realizar un VI<br />
que visualice la temperatura <strong>en</strong> grados c<strong>en</strong>tígrados.<br />
Introducir el subVI creado <strong>en</strong> la práctica 3ª<br />
Lo haremos mediante el m<strong>en</strong>ú <strong>de</strong>l diagrama ‘Select a VI...’. Lo seleccionaremos <strong>de</strong> la lista <strong>de</strong> ficheros y lo<br />
pegaremos <strong>en</strong> la v<strong>en</strong>tana diagrama <strong>de</strong> nuestro instrum<strong>en</strong>to virtual.<br />
OPCIONAL:<br />
Añadir un<br />
indicador <strong>de</strong><br />
grados Kelvin<br />
ºK = ºC + 273<br />
Como queda claro <strong>en</strong> el diagrama <strong>de</strong> bloques: Tª (ºC) = [Tª (ºF) - 32] * 5/9<br />
En vez <strong>de</strong> crear manualm<strong>en</strong>te un control para cada <strong>en</strong>trada y un indicador para cada salida, es<br />
posible realizar esta tarea automáticam<strong>en</strong>te:<br />
- Mediante el carrete <strong>de</strong> hilo, pulsar con el botón <strong>de</strong>recho sobre la <strong>en</strong>trada o salida y elegir la<br />
opción create control o create indicator .<br />
- Según el caso el programa crea automáticam<strong>en</strong>te el tipo necesitado incluso con su etiqueta.<br />
Si no hemos puesto la etiqueta a algún elem<strong>en</strong>to <strong>de</strong>beremos seleccionar el elem<strong>en</strong>to con el botón<br />
<strong>de</strong>recho y elegir la opción show label; una vez <strong>en</strong> pantalla introducir el valor <strong>de</strong>seado.<br />
Sigui<strong>en</strong>do la ejecución <strong>de</strong>l programa <strong>en</strong> modo <strong>de</strong> <strong>de</strong>puración po<strong>de</strong>mos ver como las funciones esperan <strong>de</strong><br />
izquierda a <strong>de</strong>recha a que se vayan g<strong>en</strong>erando los datos que necesitan para completar la operación.<br />
Un SubVI pue<strong>de</strong> llamar a múltiples VI’s dando lugar a una jerarquía que po<strong>de</strong>mos visualizar gráficam<strong>en</strong>te. Para<br />
ello existe la opción show VI hierarchy <strong>de</strong>l m<strong>en</strong>ú Project.<br />
PRÁCTICA 5ª: SECUENCIA WHILE-LOOP<br />
La secu<strong>en</strong>cia While-loop permite repetir las acciones que situemos d<strong>en</strong>tro <strong>de</strong>l bucle hasta que <strong>de</strong>je <strong>de</strong> cumplirse<br />
una condición que nosotros establezcamos.<br />
PASO A<br />
Como ejemplo g<strong>en</strong>eraremos un número aleatorio <strong>en</strong>tre 0 y 1 mediante la función FUNTIONS/NUMERIC/Ramdom<br />
Number. El resultado lo repres<strong>en</strong>taremos mediante una gráfica <strong>en</strong> el panel <strong>de</strong> control: CONTROL/GRAPH/Wave<br />
form Chart.<br />
La ejecución <strong>de</strong>be parar cuando el usuario pulse un botón ON/OFF.<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 16
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
La función ti<strong>en</strong>e como <strong>en</strong>trada un valor <strong>en</strong> milisegundos.<br />
El valor máximo que llega <strong>de</strong>l selector es 10, por tanto<br />
retardo máximo = 10 * 100 mseg = 1 segundo.<br />
OPCIONAL:<br />
Forzar el<br />
ord<strong>en</strong> <strong>de</strong><br />
ejecución<br />
mediante una<br />
estructura<br />
sequ<strong>en</strong>ce<br />
Para ello, situaremos la función d<strong>en</strong>tro <strong>de</strong> un bucle While que se ejecutará como mínimo 1 vez hasta que la<br />
condición proced<strong>en</strong>te <strong>de</strong>l botón sea FALSE.<br />
El número <strong>de</strong> <strong>de</strong>cimales que aparec<strong>en</strong> <strong>en</strong> el visualizador pue<strong>de</strong> ser modificado mediante la propiedad asociada<br />
FORMAT & PRECISSION <strong>de</strong> su m<strong>en</strong>ú contextual.<br />
• Difer<strong>en</strong>ciaremos <strong>en</strong>tre la ejecución única <strong>de</strong>l programa, que se <strong>de</strong>t<strong>en</strong>drá cuando pongamos <strong>en</strong> OFF el<br />
botón asociado al control <strong>de</strong>l bucle y la parada <strong>en</strong> la ejecución mediante el botón <strong>de</strong> STOP.<br />
PASO B<br />
Po<strong>de</strong>mos incluir un retardo <strong>en</strong>tre la g<strong>en</strong>eración <strong>de</strong> uno y otro punto mediante la función FUNTIONS/Time &<br />
Dialog/Wait Until Next ms Multiple, tal y como pue<strong>de</strong> verse <strong>en</strong> la sigui<strong>en</strong>te figura:<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 17
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
PRÁCTICA 6ª: REGISTROS DE DESPLAZAMIENTO<br />
Veremos la aplicación <strong>de</strong> los registros <strong>de</strong> <strong>de</strong>splazami<strong>en</strong>to (Shit registers) <strong>en</strong> el cálculo <strong>de</strong> promedios.<br />
Para evitar que la 1ª<br />
iteración t<strong>en</strong>ga los<br />
registros vacíos<br />
El promedio se<br />
realiza sobre 4<br />
muestras<br />
PASO A<br />
Añadir los registros <strong>de</strong> <strong>de</strong>splazami<strong>en</strong>to:<br />
En la zona izquierda <strong>de</strong>l bucle pinchar con el ratón y pulsar el botón <strong>de</strong>recho; seleccionar Add Shif Register.<br />
Después <strong>en</strong> la zona <strong>de</strong>recha pinchar y seleccionar Add Elem<strong>en</strong>t<br />
Para compr<strong>en</strong><strong>de</strong>r mejor el efecto <strong>de</strong>l registro <strong>de</strong> <strong>de</strong>splazami<strong>en</strong>to activaremos el modo <strong>de</strong> <strong>de</strong>puración, para ver<br />
como evolucionan los valores.<br />
Es importante reseñar la difer<strong>en</strong>cia <strong>en</strong>tre parar un programa correctam<strong>en</strong>te, una vez acabada las acciones<br />
cont<strong>en</strong>idas <strong>en</strong> un bucle o abortar la ejecución mediante el botón sin ningún control sobre las acciones que<br />
han sido ejecutadas y las que han quedado p<strong>en</strong>di<strong>en</strong>tes.<br />
PASO B<br />
Para visualizar simultaneam<strong>en</strong>te la grafica corresponi<strong>en</strong>te a la media y al valor original; lo haremos mediante la<br />
opción FUNTIONS/CLUSTER/BUNDLE.<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 18
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
PRÁCTICA 7ª: BUCLE FOR.<br />
Un bucle For (For-loop) permite la ejecución <strong>de</strong>l código que situemos d<strong>en</strong>tro <strong>de</strong>l bucle un número <strong>de</strong> veces<br />
pre<strong>de</strong>terminada.<br />
Po<strong>de</strong>mos copiar trozos <strong>de</strong> programa <strong>de</strong> un VI a otro<br />
(seleccionar - copiar - pegar). Se recomi<strong>en</strong>da copiar<br />
esta parte <strong>de</strong>s<strong>de</strong> el VI anterior.<br />
Cambiar el color, grosor y tipo <strong>de</strong> trazo <strong>de</strong> las gráficas:<br />
Todas las propieda<strong>de</strong>s<br />
<strong>de</strong>l trazado están<br />
accesibles <strong>en</strong> el m<strong>en</strong>ú<br />
contextual <strong>de</strong> la<br />
ley<strong>en</strong>da<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 19
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
PRÁCTICA 8ª: MATRICES.<br />
PASO A<br />
Construiremos una matriz que cont<strong>en</strong>drá las 100 tiradas <strong>de</strong>l dado:<br />
• Primero, insertar <strong>en</strong> el panel frontal un array CONTROL/ARRAY & CLUSTER/Array.<br />
• Después introducir d<strong>en</strong>tro <strong>de</strong>l control array un visualizador numérico.<br />
Los elem<strong>en</strong>tos <strong>de</strong>l array se almac<strong>en</strong>arán <strong>en</strong> el túnel (punto negro <strong>en</strong> el marco <strong>de</strong> la estructura for-loop) si<br />
t<strong>en</strong>emos habilitada la opción <strong>de</strong> autoin<strong>de</strong>xado, sino sólo el último dato será pasado al exterior <strong>de</strong>l bucle.<br />
En el m<strong>en</strong>ú contextual <strong>de</strong> este punto<br />
(tunel) se activa/<strong>de</strong>sactiva la opción<br />
<strong>de</strong> autoin<strong>de</strong>xado (“Enable in<strong>de</strong>xing”)<br />
PASO B<br />
Añadir un gráfico CONTROLS/GRAPH/Wave form Graph para la visualización gráfica <strong>de</strong>l array. Quedará como se<br />
muestra <strong>en</strong> el panel y diagrama sigui<strong>en</strong>tes:<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 20
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
PRÁCTICA 9: TIPOS DE GRÁFICOS<br />
Comparar la difer<strong>en</strong>cia <strong>en</strong>tre los gráficos CHART y los GRAPH, calculando la media, máximo y mínimo <strong>de</strong> las<br />
temperarturas g<strong>en</strong>eradas aleatoriam<strong>en</strong>te por el subVI d<strong>en</strong>ominado Digital Thermometer.vi <strong>de</strong> la librería Tutorial.<br />
También pue<strong>de</strong> usarse el VI<br />
creado anteriorm<strong>en</strong>te que<br />
<strong>de</strong>vuelve la temperatura <strong>en</strong> grados<br />
c<strong>en</strong>tígrados.<br />
• Observar la difer<strong>en</strong>cia <strong>en</strong> el grosor <strong>de</strong>l cable <strong>de</strong>l array que sale <strong>de</strong>l bucle FOR.<br />
• Las funciones para <strong>en</strong>contrar el máximo y el mínimo <strong>de</strong>l array se <strong>en</strong>cu<strong>en</strong>tran <strong>en</strong> FUNTIONS/ARRAY/Array<br />
Max & min<br />
• Para calcular la media lo haremos mediante la función FUNTIONS/ANALISIS/Probability & Statistics/Mean<br />
• Para hacer el BUNDLE mas gran<strong>de</strong> <strong>de</strong> forma que permita conectar más elem<strong>en</strong>tos, situamos el puntero <strong>en</strong><br />
alguna <strong>de</strong> las esquinas y estiramos hacia abajo.<br />
T<strong>en</strong>er <strong>en</strong> cu<strong>en</strong>ta que incluimos 2 tipos <strong>de</strong> gráficos, Graph y Chart. Para dar s<strong>en</strong>tido temporal al eje x<br />
<strong>de</strong> la gráfica se <strong>de</strong>be realizar un bundle con tres elem<strong>en</strong>tos: la matriz <strong>de</strong> puntos, su separación <strong>en</strong> el<br />
tiempo y el orig<strong>en</strong>. Como hemos fijado pausas <strong>de</strong> 250 ms <strong>en</strong>tre muestras <strong>en</strong>tonces <strong>de</strong>lta X es 0'25<br />
(segundos). Xo establece el orig<strong>en</strong> <strong>de</strong>l eje x, <strong>en</strong> este caso 0.<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 21
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
PRÁCTICA 10: NUDO FÓRMULA.<br />
Permite incorporar a un VI fórmulas matemáticas <strong>de</strong>finidas por el usuario.<br />
Lo insertamos con FUNTIONS/STRUCTURES/FORMULA NODO<br />
Para añadir <strong>en</strong>tradas o salidas lo haremos pulsando con el botón <strong>de</strong>recho <strong>de</strong>l ratón <strong>en</strong> el marco <strong>de</strong>l nodo fórmula<br />
y seleccionando add input o add output..<br />
Las fórmulas incluidas (todas las que necesitemos para calcular las salidas) <strong>de</strong>b<strong>en</strong> terminar <strong>en</strong> punto y coma (;).<br />
Los resultados <strong>de</strong> cada fórmula dan lugar a una matriz unidim<strong>en</strong>sional. La unión <strong>de</strong> esas dos matrices da lugar a<br />
una matriz <strong>de</strong> 2 dim<strong>en</strong>siones. Esa conversion se realiza mediante la función FUNTIONS/ARRAY/BUILD ARRAY<br />
OPCIONAL:<br />
Hallar el valor RMS<br />
<strong>de</strong> la función<br />
s<strong>en</strong>oidal mediante<br />
el VI<br />
Functions/analysis<br />
/probability and<br />
statistics/RMS<br />
Un ejemplo mas completo y vistoso <strong>de</strong>l uso <strong>de</strong> la estructura formula-no<strong>de</strong> pue<strong>de</strong> verse <strong>en</strong> la zona <strong>de</strong><br />
ejemplos, Examples/G<strong>en</strong>eral/Graphs/g<strong>en</strong>graph.llb <strong>en</strong> el instrum<strong>en</strong>to virtual llamado bouncing cube.vi<br />
PRÁCTICA 11: ESTRUCTURA CASE<br />
Esta estructura <strong>de</strong> programación permite que se ejecute una porción <strong>de</strong> código u otra según se cumpla o no una<br />
condición impuesta por el usuario.<br />
La función <strong>de</strong> sonido<br />
'Beep.vi' se <strong>en</strong>cu<strong>en</strong>tra <strong>en</strong><br />
Funtions/advanced.<br />
Para evitar que pite <strong>de</strong> forma continua, cambiar la constante <strong>de</strong> comparación a un valor 0,999<br />
OPCIÓN MÚLTIPLE DE LA ESTRUCTURA CASE.<br />
Aunque <strong>en</strong> el ejemplo sólo exist<strong>en</strong> el caso verda<strong>de</strong>ro y falso, pued<strong>en</strong> ponerse tantos casos como se necesit<strong>en</strong>:<br />
• Para añadir un caso más, ya sea antes o <strong>de</strong>spués <strong>de</strong>beremos seleccionar pulsando con el boton <strong>de</strong>recho <strong>de</strong>l<br />
ratón <strong>en</strong> el bor<strong>de</strong> Add case before ó Add case After respectivam<strong>en</strong>te.<br />
• Evid<strong>en</strong>tem<strong>en</strong>te la <strong>en</strong>trada al selector ya no podrá ser binaria, sino que <strong>de</strong>berá correspon<strong>de</strong>r a un número<br />
<strong>en</strong>tero.<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 22
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
4.- ADQUISICIÓN DE DATOS.<br />
CONCEPTOS BÁSICOS DE ADQUISICIÓN DE DATOS (A/D)<br />
VELOCIDAD DE MUESTREO<br />
Teorema <strong>de</strong> Nyquist<br />
Establece que para po<strong>de</strong>r reconstruir una señal muestreada, la velocidad <strong>de</strong> muestreo fs <strong>de</strong>be ser al m<strong>en</strong>os el<br />
doble <strong>de</strong> la mayor <strong>de</strong> las compon<strong>en</strong>tes <strong>de</strong> la señal muestreada:<br />
fs ≥ 2 * fmax<br />
En la práctica se toma al m<strong>en</strong>os <strong>en</strong>tre 3 y 5 veces mayor que la frecu<strong>en</strong>cia máxima. Como explicaremos <strong>en</strong> el<br />
próximo punto, esto evita que las frecu<strong>en</strong>cias superiores cercanas a la máxima produzcan aliasing.<br />
Ej.: Las señales <strong>de</strong> audio recogidas por un micrófono y convertidas a señal eléctrica ti<strong>en</strong><strong>en</strong><br />
(i<strong>de</strong>alm<strong>en</strong>te) compon<strong>en</strong>tes <strong>de</strong> hasta 20 KHz. Para digitalizar esta información y po<strong>de</strong>r reconstruirla<br />
<strong>de</strong>spués se <strong>de</strong>be muestrear a una velocidad mayor <strong>de</strong> 40 Kmuestras/s. (Los Compact Disc lo hac<strong>en</strong><br />
a la velocidad normalizada <strong>de</strong> 44,8 Kmuestras/s)<br />
Aliasing (solapami<strong>en</strong>to)<br />
EN EL DOMINIO DEL TIEMPO:<br />
Señal muestreada a frecu<strong>en</strong>cia superior a la <strong>de</strong> Nyquist.<br />
Señal muestreada a frecu<strong>en</strong>cia inferior a la <strong>de</strong> Nyquist, aparece el aliasing: Al reconstruir la señal se obti<strong>en</strong>e otra frecu<strong>en</strong>cia<br />
inferior.<br />
En la imag<strong>en</strong> inferior, si la señal original fuera <strong>de</strong> 3 KHz, ¿Qué frecu<strong>en</strong>cia observaríamos tras<br />
reconstruir la señal muestreada?<br />
EN EL DOMINIO DE LA FRECUENCIA:<br />
Supongamos una señal <strong>de</strong> interés f 1 y otra interfer<strong>en</strong>te f 2 como pued<strong>en</strong> verse <strong>en</strong> la sigui<strong>en</strong>te figura:<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 23
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
Cuando una señal <strong>de</strong> frecu<strong>en</strong>cia f x se muestrea a una velocidad f s , su espectro aparece reflejado <strong>en</strong> f x -f s /2 como<br />
pue<strong>de</strong> apreciarse <strong>en</strong> la sigui<strong>en</strong>te figura:<br />
Solapami<strong>en</strong>to<br />
En este caso, al muestrear la señal f 1 , el espectro reflejado f 1 -f s /2 queda a la izquierda <strong>de</strong>l orig<strong>en</strong> <strong>de</strong> frecu<strong>en</strong>cias,<br />
por lo que no hay problema. Sin embargo al muestrear la señal f 2 su espectro reflejado f 2 -f s /2, se solapa con f 1<br />
confundiéndose con él. De esta forma, la señal f 2 interfiere con la señal útil f 1 .<br />
Ejemplo: señal cuadrada <strong>de</strong> 500 Hz:<br />
Únicam<strong>en</strong>te nos fijaremos <strong>en</strong> un ancho <strong>de</strong> banda limitado a 2 KHz, por lo que i<strong>de</strong>alm<strong>en</strong>te, a<strong>de</strong>más <strong>de</strong> la<br />
fundam<strong>en</strong>tal sólo <strong>de</strong>bería existir un armónico a 1500 Hz.<br />
• En la primera imag<strong>en</strong> la señal es muestreada a fs=4KHz y no se ha filtrado. Observamos aliasing <strong>de</strong> los<br />
armónicos superiores.<br />
• En la segunda imag<strong>en</strong>, fs=4KHz y previam<strong>en</strong>te al muestreo se realizado un filtrado paso-bajo con<br />
frecu<strong>en</strong>cia <strong>de</strong> corte <strong>de</strong> 2 KHz que ha eliminado muchos <strong>de</strong> los picos <strong>de</strong>bidos al aliasing.<br />
• En la tercera imag<strong>en</strong>, a<strong>de</strong>más <strong>de</strong>l filtrado se ha subido fs= 8 KHz eliminando los picos. El armónico <strong>de</strong> 1000<br />
Hz es <strong>de</strong>bido a la imperfección <strong>de</strong> la señal cuadrada.<br />
El filtrado <strong>de</strong>be ser previo al muestreo (i.e. filtrado analógico). Después <strong>de</strong>l muestreo, el aliasing no<br />
pue<strong>de</strong> eliminarse; la señal alias no pue<strong>de</strong> separarse <strong>de</strong> la señal útil mediante ningún tipo <strong>de</strong> filtro,<br />
pués cae <strong>en</strong> su ancho <strong>de</strong> banda.<br />
RESOLUCIÓN<br />
Se refiere al increm<strong>en</strong>to mínimo <strong>de</strong> t<strong>en</strong>sión <strong>de</strong>tectable, que coincidirá con el valor <strong>de</strong>l bit m<strong>en</strong>os significativo<br />
(LSB). Sin embargo, <strong>en</strong> tarjetas <strong>de</strong> adquisición <strong>de</strong> datos la resolución suele expresarse como el número <strong>de</strong> bits <strong>de</strong>l<br />
conversor A/D.<br />
Una resolución <strong>de</strong> 12 bits <strong>de</strong> un conversor A/D indica que es capaz <strong>de</strong> repres<strong>en</strong>tar 4096<br />
combinaciones binarias, es <strong>de</strong>cir, 1 parte <strong>en</strong>tre 4096 (2 12 =4096).<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 24
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
LSB (LEAST SIGNIFICANT BIT)<br />
Cuando hablamos <strong>de</strong> conversores A/D, el valor <strong>de</strong>l bit m<strong>en</strong>os significativo recibe el nombre <strong>de</strong> LSB.<br />
Rango Rango<br />
1 LSB = = (Voltios)<br />
nº<br />
cu<strong>en</strong>tas n º bits<br />
2<br />
Si t<strong>en</strong>emos <strong>en</strong> cu<strong>en</strong>ta que antes <strong>de</strong>l conversor A/D casi siempre hay un amplificador, <strong>de</strong>bemos incluir su<br />
ganancia <strong>en</strong> el cálculo <strong>de</strong>l LSB.<br />
Rango<br />
1LSB<br />
=<br />
n º bits<br />
Ganancia ⋅ 2<br />
don<strong>de</strong> el nº <strong>de</strong> bits se refiere al conversor A/D, y el rango a la difer<strong>en</strong>cia <strong>en</strong>tre el valor máximo y mínimo <strong>de</strong><br />
t<strong>en</strong>sión admitido <strong>en</strong> la <strong>en</strong>trada.<br />
P.ej. 12 bits 10V <strong>en</strong> 4096 niveles 1 LSB = 2'44 mV (Ganancia=1)<br />
Hallar la resolución <strong>de</strong> un conversor <strong>de</strong> 16 bits<br />
RANGO<br />
Como pue<strong>de</strong> verse <strong>en</strong> la sigui<strong>en</strong>te tabla, el rango <strong>de</strong> <strong>en</strong>trada vi<strong>en</strong>e <strong>de</strong>terminado por la ganancia seleccionada.<br />
Tabla 1: Configuraciones <strong>de</strong> <strong>en</strong>trada para la serie PCI E <strong>de</strong> National Instrum<strong>en</strong>ts<br />
Observar <strong>en</strong> la tabla que:<br />
• Don<strong>de</strong> dice precision <strong>de</strong>bería <strong>de</strong>cir resolution. La precisión máxima coinci<strong>de</strong> con el valor <strong>de</strong> 1/2 LSB, pero<br />
no siempre es así <strong>de</strong>bido a t<strong>en</strong>siones <strong>de</strong> offset, ruido, <strong>de</strong>rivas térmicas, etc.<br />
• El producto Ganancia * Rango <strong>de</strong> <strong>en</strong>trada es constante: Rango configurado = Ganancia * Rango <strong>de</strong> <strong>en</strong>trada.<br />
Configuración<br />
El rango <strong>de</strong> las señales <strong>de</strong> <strong>en</strong>trada pue<strong>de</strong> ser UNIPOLAR o BIPOLAR<br />
• UNIPOLAR: el rango <strong>de</strong> t<strong>en</strong>sión <strong>de</strong> <strong>en</strong>trada está <strong>en</strong>tre 0 y un valor positivo<br />
• BIPOLAR: el rango <strong>de</strong> t<strong>en</strong>sión <strong>de</strong> <strong>en</strong>trada está <strong>en</strong>tre un valor negativo y un valor positivo<br />
Se pue<strong>de</strong> programar la polaridad y el rango <strong>de</strong> forma que cada canal t<strong>en</strong>ga una configuración propia.<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 25
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
Hay que seleccionar el rango (Polaridad y ganancia) <strong>de</strong> forma que se ajuste al máximo al rango <strong>de</strong> la señal a medir<br />
Rango<br />
obt<strong>en</strong>i<strong>en</strong>do así la MAYOR RESOLUCIÓN posible. (1 LSB =<br />
Voltios)<br />
N<br />
Ganancia ⋅2<br />
Rango dinámico<br />
Expresa la difer<strong>en</strong>cia máxima <strong>de</strong> magnitud que pue<strong>de</strong> haber <strong>en</strong>tre dos señales <strong>de</strong> <strong>en</strong>trada <strong>de</strong> forma que ambas<br />
puedan medirse. Suele expresarse <strong>en</strong> <strong>de</strong>cibelios (dB).<br />
Ejemplo: DAQ 12 bits, 10 V<br />
Máx. t<strong>en</strong>sión medible: 10 V<br />
Mín. t<strong>en</strong>sión medible: 1 LSB = 10V/2 12 = 2'44 mV<br />
Rango dinámico = 20 log10 (10 V/[10V/2 12 ]) = 20 log10 (2 12 ) = 72 dB<br />
• Cada bit <strong>de</strong> resolución aña<strong>de</strong> 6 dB (teóricos) al rango dinámico (20 log 10 2 = 6)<br />
Ejemplo: máquina rotativa<br />
En una máquina rotativa, hay una frecu<strong>en</strong>cia que <strong>de</strong>termina la velocidad <strong>de</strong> rotación <strong>de</strong>l eje y otras<br />
compon<strong>en</strong>tes pequeñas que pued<strong>en</strong> <strong>de</strong>latar un <strong>de</strong>terioro <strong>de</strong> los cojinetes. La relación <strong>en</strong>tre las<br />
compon<strong>en</strong>tes pequeñas y la principal <strong>de</strong>termina el mínimo rango dinámico. Las compon<strong>en</strong>tes pequeñas<br />
aum<strong>en</strong>tan con el uso, <strong>de</strong> forma que un mayor rango dinámico <strong>de</strong>l sistema <strong>de</strong> medida pue<strong>de</strong> significar una<br />
<strong>de</strong>tección más temprana.<br />
En la figura pue<strong>de</strong> verse:<br />
• En trazo claro con un rango dinámico <strong>de</strong> 72 dB (12 bits) una pequeña compon<strong>en</strong>te <strong>de</strong>bida a una<br />
vibración <strong>de</strong> 200 Hz pasa <strong>de</strong>sapercibida.<br />
• En trazo oscuro con un rango dinámico <strong>de</strong> 90 dB (15 bits) se pue<strong>de</strong> observar dicha compon<strong>en</strong>te.<br />
PRÁCTICA 12: ADQUISICIÓN DE DATOS<br />
FUNCIONES RELACIONADAS CON LA ADQUISICIÓN.<br />
<strong>LabVIEW</strong> posee una biblioteca completa para el acceso al hardware <strong>de</strong> adquisición <strong>de</strong> datos. Esta biblioteca está<br />
subdividida <strong>en</strong> funciones básicas y avanzada según su complejidad.<br />
Para nuestra práctica, trabajaremos con un VI <strong>de</strong> simulacion d<strong>en</strong>tro <strong>de</strong> la biblioteca DAQ-ALUMN.LLB <strong>de</strong>l<br />
directorio don<strong>de</strong> se <strong>en</strong>cu<strong>en</strong>tra instalado el programa LABVIEW.<br />
Las difer<strong>en</strong>tes señales que t<strong>en</strong>emos para cada canal son las sigui<strong>en</strong>tes:<br />
• Canal 0 S<strong>en</strong>oidal <strong>de</strong> 1 KHz 2 voltios <strong>de</strong> Amlitud<br />
• Canal 1 Onda cuadrada <strong>de</strong> 50 Hz. 4 voltios <strong>de</strong> amplitud<br />
• Canal 2 Señal <strong>en</strong> di<strong>en</strong>te <strong>de</strong> sierra 100 Hz. 1 voltios <strong>de</strong> amplitud<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 26
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
• Canal 3 Señal triangular <strong>de</strong> 750 Hz. 0.125 voltios <strong>de</strong> amplitud<br />
• Canal 4 señal s<strong>en</strong>oidal 1 KHz 2 voltios <strong>de</strong> amplitud con ruido <strong>de</strong> 0,25 voltios<br />
• Canal 5 señal s<strong>en</strong>oidal 1 KHz 2 voltios <strong>de</strong> amplitud con ruido <strong>de</strong> 0,50 voltios<br />
• Canal 6 señal ruido <strong>de</strong> 0,5 voltios<br />
• Canal 7 señal s<strong>en</strong>oidal 1 KHz 0,5 voltios <strong>de</strong> amplitud con ruido <strong>de</strong> 0,5 voltios<br />
Para el correcto funcionami<strong>en</strong>to <strong>de</strong> este VI, la señal <strong>de</strong> muestreo <strong>de</strong>be ser mayor <strong>de</strong> 1000 Hz, <strong>de</strong> lo<br />
contrario no podremos observar señal alguna.<br />
PASO A: USO DE LA FUNCIÓN "AI ACQUIRE WAVEFORM SIMU.VI"<br />
La función necesaria se llama AI Acquire waveform simu.VI, que aunque es<br />
una simulación se aproxima mucho a la situación real (Por ejemplo nos<br />
dará error si seleccionamos mal el canal.)<br />
PASO B: ESCALADO DE TIEMPOS.<br />
En esta segunda parte <strong>de</strong>l ejercicio apr<strong>en</strong><strong>de</strong>remos a escalar el eje X <strong>de</strong> la gráfica, para que nos muestre tiempo <strong>en</strong><br />
vez <strong>de</strong> muestras.<br />
Utilizar los cursores para <strong>de</strong>terminar los tiempos y frecu<strong>en</strong>cias <strong>de</strong> la señal visualizada<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 27
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
Las opciones <strong>de</strong> cursores se<br />
obti<strong>en</strong><strong>en</strong> <strong>de</strong>l m<strong>en</strong>ú contextual <strong>de</strong><br />
la gráfica.<br />
OPCIONAL:<br />
Guardar los datos adquiridos <strong>en</strong> un fichero con formato <strong>de</strong> hoja <strong>de</strong> cálculo:<br />
El VI que hemos añadido se <strong>en</strong>cu<strong>en</strong>tra <strong>en</strong> el grupo <strong>de</strong> funciones File I/O<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 28
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
PASO C: ANÁLISIS EN FRECUENCIA<br />
En esta tercera parte <strong>de</strong>l ejercicio realizaremos las sigui<strong>en</strong>tes tareas:<br />
• Intercalar un subVI <strong>de</strong> análisis que realiza el espectro <strong>de</strong> amplitud. (Librería: Analisys/Measurem<strong>en</strong>t)<br />
• Meter el grueso <strong>de</strong>l programa d<strong>en</strong>tro <strong>de</strong> un bucle While controlado por un botón <strong>de</strong> paro (Acción<br />
mecánica Latch Wh<strong>en</strong> Released)<br />
Cambiar el número <strong>de</strong> muestras y la velocidad <strong>de</strong> muestreo (sample rate) mediante controles tipo pot<strong>en</strong>ciómetro<br />
observando su efecto sobre la señal visualizada.<br />
Observar el tipo <strong>de</strong> acción mecánica para el botón APAGAR.<br />
La función se <strong>en</strong>cu<strong>en</strong>tra <strong>en</strong><br />
Analisys/Measurem<strong>en</strong>t<br />
PASO D: ESCALADO DE FRECUENCIA<br />
De forma análoga a lo que se hizo para el eje <strong>de</strong> tiempos, hay que escalar el eje X <strong>de</strong> la gráfica <strong>de</strong>l espectro para<br />
que muestre la frecu<strong>en</strong>cia <strong>en</strong> Hz. Observar las difer<strong>en</strong>cias respecto al anterior diagrama:<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 29
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
EJERCICIOS<br />
Mostrar y explicar al profesor el resultado <strong>de</strong> las sigui<strong>en</strong>tes cuestiones:<br />
• Comprobar mediante los cursores <strong>de</strong> la gráfica temporal que la frecu<strong>en</strong>cia <strong>de</strong> la señal se correspon<strong>de</strong> con<br />
la que aparece <strong>en</strong> el espectro.<br />
RESOLUCIÓN ESPECTRAL<br />
Se trata <strong>de</strong> averiguar <strong>de</strong> forma experim<strong>en</strong>tal la relación que <strong>de</strong>fine la resolución espectral ∆f, para lo cual:<br />
1. Seleccionar el canal 0.<br />
2. Dejar fs constante (cumpli<strong>en</strong>do Nyquist) y variar el nº <strong>de</strong> muestras N (P. ej. 128, 256, 512). ¿Qué ocurre<br />
con el espectro?. Hallar ∆f numéricam<strong>en</strong>te.<br />
3. Dejar el nº <strong>de</strong> muestras constante (P. ej. 256) y variar fs cumpli<strong>en</strong>do Nyquist. ¿Qué ocurre con el<br />
espectro?. Hallar ∆f numéricam<strong>en</strong>te.<br />
4. A partir <strong>de</strong> los datos recogidos establecer la ecuación que <strong>de</strong>fine ∆f <strong>en</strong> función <strong>de</strong> fs y N.<br />
ALIASING<br />
• Configurar el VI <strong>de</strong> forma que pueda observarse el f<strong>en</strong>óm<strong>en</strong>o <strong>de</strong>l aliasing.<br />
ENVENTANADO<br />
Con este ejercicio, trataremos <strong>de</strong> ver el efecto <strong>de</strong> realizar la FFT sobre un número no <strong>en</strong>tero <strong>de</strong> periodos <strong>de</strong> la<br />
señal muestreada. Este efecto pue<strong>de</strong> paliarse mediante el uso <strong>de</strong> v<strong>en</strong>tanas <strong>de</strong> alisado previas a la FFT.<br />
Observar el espectro <strong>de</strong> amplitud:<br />
• ¿Qué suce<strong>de</strong> cuando la velocidad <strong>de</strong> muestreo es un múltiplo <strong>en</strong>tero <strong>de</strong> la frecu<strong>en</strong>cia <strong>de</strong> la señal medida<br />
(i.e. f s = n · f m ) y a<strong>de</strong>más el número <strong>de</strong> muestras por periodo es un número <strong>en</strong>tero?.<br />
• ¿Qué suce<strong>de</strong> cuando no se dan estas circunstancias?<br />
10,0<br />
7,5<br />
5,0<br />
2,5<br />
0,0<br />
-2,5<br />
-5,0<br />
-7,5<br />
-10,0<br />
0 25 75 125 175 225 275 325 375 425<br />
ms<br />
10,0<br />
7,5<br />
5,0<br />
2,5<br />
0,0<br />
-2,5<br />
-5,0<br />
-7,5<br />
-10,0<br />
0 25 75 125 175 225 275 325 375 425<br />
ms<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 30
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
5,0<br />
4,5<br />
4,0<br />
3,5<br />
3,0<br />
2,5<br />
2,0<br />
1,5<br />
1,0<br />
0,5<br />
0,0<br />
0 25 50 75 100 125 150 175 200 225 250<br />
Hz<br />
5,0<br />
4,5<br />
4,0<br />
3,5<br />
3,0<br />
2,5<br />
2,0<br />
1,5<br />
1,0<br />
0,5<br />
0,0<br />
0 25 50 75 100 125 150 175 200 225 250<br />
Hz<br />
PRÁCTICA 13: FILTRADO<br />
El proceso más evid<strong>en</strong>te <strong>de</strong> filtrado es el promediado. La relación Señal/Ruido que se obti<strong>en</strong>e<br />
mediante esta técnica es:<br />
N<br />
N<br />
out<br />
in<br />
=<br />
1<br />
nº<br />
muestras<br />
Por ejemplo un promediado <strong>de</strong> 4 muestras reduce a la mitad la pot<strong>en</strong>cia <strong>de</strong> ruido <strong>en</strong> la salida.<br />
Observar que para reducir a la cuarta parte dicha relacion t<strong>en</strong>dríamos que usar un promediado <strong>de</strong><br />
16 muestras<br />
Intercalar un filtro <strong>en</strong>tre el array <strong>de</strong> señal y la gráfica <strong>de</strong> forma que podamos eliminar todo el ruido posible <strong>de</strong> la<br />
señal <strong>de</strong>l canal 4. Para ello:<br />
• Crear una estructura case que permita elegir al usuario si <strong>de</strong>sea filtrar o no la señal.<br />
• D<strong>en</strong>tro <strong>de</strong>l caso “True” incorporar un filtro Butterworth (se <strong>en</strong>cu<strong>en</strong>tra <strong>en</strong> el grupo <strong>de</strong> funciones<br />
Analysis/Filters/Butterworth filter.vi)<br />
• Crear automáticam<strong>en</strong>te los controles necesarios para configurar el filtro: tipo, ord<strong>en</strong>, frecu<strong>en</strong>cia superior<br />
<strong>de</strong> corte, frecu<strong>en</strong>cia inferior <strong>de</strong> corte.<br />
En el filtro <strong>de</strong>be cumplirse 0
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
5.- BUS GPIB.<br />
INTRODUCCIÓN AL BUS GPIB<br />
HISTORIA<br />
• En 1965 la empresa Hewlett Packard crea la interfaz <strong>de</strong> bus HP-IB (Hewlett Packard Interface Bus) para<br />
conectar instrum<strong>en</strong>tos programables a sus ord<strong>en</strong>adores.<br />
• Debido a sus v<strong>en</strong>tajas se populariza <strong>de</strong> tal forma que <strong>en</strong> 1975 se estandariza como IEEE 488-1975<br />
(Aunque es más conocido como GPIB -G<strong>en</strong>eral Purpose Interface Bus-)<br />
• En 1987 evoluciona dando paso al ANSI/IEEE 488.2, por lo que el anterior IEEE 488-1975 pasa a<br />
d<strong>en</strong>ominarse ANSI/IEEE 488.1<br />
CARACTERÍSTICAS MECÁNICAS Y ELÉCTRICAS<br />
Se trata <strong>de</strong> un bus paralelo, formado por 8 líneas <strong>de</strong> datos, 3 líneas <strong>de</strong> protocolo, 5 <strong>de</strong><br />
gestión, 7 <strong>de</strong> masa y 1 apantallami<strong>en</strong>to. T<strong>en</strong>emos por tanto un cable <strong>de</strong> 24<br />
conductores.<br />
Permite la conexión <strong>de</strong> dispositivos <strong>en</strong> estrella, o <strong>en</strong> linea:<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 32
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
• Utiliza niveles TTL y lógica negada.<br />
• Velocida<strong>de</strong>s <strong>de</strong> transfer<strong>en</strong>cia <strong>de</strong> hasta 1 MB/s.<br />
• Hasta 15 dispositivos conectados al bus.<br />
• Separación máxima <strong>de</strong> 4 m <strong>en</strong>tre dos dispositivos cualesquiera <strong>de</strong>l bus. Longitud total <strong>de</strong>l cable <strong>de</strong> hasta<br />
20 m<br />
FUNCIONAMIENTO<br />
Los dispositivos conectados al bus se comunican <strong>en</strong>tre ellos mediante m<strong>en</strong>sajes<br />
Tipos <strong>de</strong> m<strong>en</strong>sajes<br />
• Dep<strong>en</strong>di<strong>en</strong>tes <strong>de</strong>l dispositivo: Llamados datos a secas, conti<strong>en</strong><strong>en</strong> información específica <strong>de</strong> los dispositivos<br />
como pued<strong>en</strong> ser resultados <strong>de</strong> una medida, estado <strong>de</strong> un aparato, instrucciones <strong>de</strong> configuración, etc.<br />
• De gestión: También llamados m<strong>en</strong>sajes <strong>de</strong> comando, realizan funciones como inicializar el bus,<br />
direccionar dispositivos, etc.<br />
Roles <strong>de</strong> los dispositivos<br />
Los dispositivos conectados al bus pued<strong>en</strong> adoptar uno o varios <strong>de</strong> los roles <strong>de</strong>finidos: Hablante, escuchador y<br />
controlador.<br />
ESCUCHADOR (LISTENER)<br />
Capaz <strong>de</strong> recibir datos <strong>de</strong> la interfaz cuando esté direccionado (habilitado) por el controlador. Pue<strong>de</strong> haber hasta<br />
14 escuchadores activos simultaneam<strong>en</strong>te <strong>en</strong> el bus. Dispositivos escuchadores pued<strong>en</strong> ser por ejemplo una<br />
impresora, un g<strong>en</strong>erador <strong>de</strong> funciones, etc..<br />
HABLANTE (TALKER)<br />
Un hablante, cuando se le ha direccionado, <strong>en</strong>vía m<strong>en</strong>sajes a uno o varios escuchadores que recib<strong>en</strong> los datos.<br />
Por ejemplo un osciloscopio pue<strong>de</strong> actuar como hablante y como escuchador. Sólo pue<strong>de</strong> haber un hablante<br />
activo sobre la interfaz.<br />
CONTROLADOR<br />
Gestiona el flujo <strong>de</strong> información <strong>en</strong> el bus <strong>en</strong>viando comandos a todos los dispositivos. El controlador es capaz<br />
<strong>de</strong> direccionar (habilitar) a un hablante que quiera <strong>en</strong>viar un m<strong>en</strong>saje a varios escuchadores, permiti<strong>en</strong>do una<br />
operación <strong>de</strong> transfer<strong>en</strong>cia <strong>de</strong> datos. Él mismo pue<strong>de</strong> ejercer <strong>de</strong> emisor o receptor.<br />
Se podría configurar un bus sin dispositivo controlador y <strong>en</strong> el que hubiera un dispositivo con<br />
capacidad únicam<strong>en</strong>te <strong>de</strong> hablante y varios con capacidad únicam<strong>en</strong>te <strong>de</strong> escucha.<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 33
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
La función <strong>de</strong> controlador la suele realizar un dispositivo conectado al ord<strong>en</strong>ador (Tarjeta ISA, PCI, PCMCIA,<br />
etc.) que habitualm<strong>en</strong>te ti<strong>en</strong>e a<strong>de</strong>más capacidad <strong>de</strong> hablante y escuchador.<br />
En sistemas con varios controladores sólo uno pue<strong>de</strong> estar actuando como tal. El controlador activo pue<strong>de</strong> pasar<br />
el mando <strong>de</strong>l bus a otro controlador que se halle inactivo.<br />
Lineas según su función<br />
LINEAS DE DATOS<br />
Son 8 y se d<strong>en</strong>ominan DIO1-DIO8<br />
• El estado <strong>de</strong> la linea <strong>de</strong> gestión ATN (se verá más a<strong>de</strong>lante) <strong>de</strong>termina si la información pres<strong>en</strong>te <strong>en</strong> el bus<br />
<strong>de</strong> datos correspon<strong>de</strong> a un dato o a un comando.<br />
• Todos los comandos y la mayoría <strong>de</strong> datos utilizan el código ASCII <strong>de</strong> 7 bits, <strong>de</strong> forma que la linea DIO8<br />
se utiliza como paridad.<br />
LINEAS DE PROTOCOLO<br />
Estas tres lineas controlan <strong>de</strong> forma asíncrona la transfer<strong>en</strong>cia <strong>de</strong> bytes <strong>de</strong> m<strong>en</strong>sajes <strong>en</strong>tre dispositivos,<br />
garantizando que se realiza sin errores.<br />
• DAV (DAta Valid):. Es activada por el controlador cuando <strong>en</strong>vía comandos y por el hablante cuando <strong>en</strong>vía<br />
m<strong>en</strong>sajes <strong>de</strong> datos. Indica cuando la señales <strong>de</strong> datos son estables (válidas) <strong>de</strong> forma que puedan ser<br />
interpretadas <strong>de</strong> forma fiable por los escuchadores.<br />
• NRFD (Not Ready For Data): Un escuchador activa esta linea cuando no está preparado para la recepción<br />
<strong>de</strong> datos. T<strong>en</strong>drá valor falso cuando todos los receptores direccionados estén listos para recibir datos. Se<br />
realiza la función OR cableada <strong>de</strong> las salidas NRFD <strong>de</strong> lo escuchadores direccionados. Si<strong>en</strong>do necesario que<br />
todos estén preparados (todas las salidas NRFD a falso) para que la línea NRFD se ponga a falso.<br />
• NDAC (No Data ACcepted): En estado verda<strong>de</strong>ro indica que algún escuchador direccionado no ha aceptado<br />
todavía los datos <strong>en</strong>viados. Un estado falso indica que todos los receptores activos han aceptado los datos.<br />
Nuevam<strong>en</strong>te se realiza la función OR cableada <strong>de</strong> todas las salidas NDAC <strong>de</strong> los receptores activos.<br />
En la sigui<strong>en</strong>te figura pue<strong>de</strong> verse la secu<strong>en</strong>cia <strong>de</strong> control <strong>de</strong> transfer<strong>en</strong>cia <strong>de</strong> datos o handshake.<br />
LINEAS DE GESTIÓN<br />
Estas cinco lineas gestionan el flujo <strong>de</strong> datos e información <strong>de</strong>l bus.<br />
• ATN (ATt<strong>en</strong>tioN): El controlador activa ATN a verda<strong>de</strong>ro cuando usa las lineas <strong>de</strong> datos para <strong>en</strong>viar<br />
comandos y la pone a falso para permitir que un hablante <strong>en</strong>víe datos.<br />
• IFC (Interface Clear): El controlador activa esta linea para inicializar el bus interrumpi<strong>en</strong>do el proceso que<br />
se estaba realizando. Se <strong>de</strong>shabilita al hablante y a los escuchadores activos, quedando todos inactivos. El<br />
controlador asume el mando <strong>de</strong>l bus. Todos los dispositivos <strong>de</strong>b<strong>en</strong> respon<strong>de</strong>r a esta línea <strong>en</strong> cualquier<br />
instante.<br />
• REN (Remote Enabled): El controlador activa esta linea para poner los dispositivos direccionados <strong>en</strong> modo<br />
<strong>de</strong> programación remota. Cuando no está activada los dispositivos se <strong>en</strong>cu<strong>en</strong>tran <strong>en</strong> modo <strong>de</strong> control<br />
local.<br />
• SQR (Service Request): Cualquier dispositivo pue<strong>de</strong> activar esta linea para pedir servicio al controlador.<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 34
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
• EOI (End Or Id<strong>en</strong>tify): Ti<strong>en</strong>e dos funciones; el hablante activa esta linea para indicar el último byte <strong>de</strong> un<br />
dato a los receptores activos. Con ATN a "1", la activación <strong>de</strong> esta línea indica que el controlador realiza<br />
un son<strong>de</strong>o paralelo.<br />
IEEE 488-2<br />
• Vi<strong>en</strong>e a paliar los problemas que arrastra el estándar <strong>de</strong>s<strong>de</strong> el veterano IEEE 488.1.<br />
• Se manti<strong>en</strong>e la compatibilidad con IEEE 488.1, pero los b<strong>en</strong>eficios <strong>de</strong>l nuevo estándar sólo se obti<strong>en</strong><strong>en</strong><br />
cuando se ti<strong>en</strong>e un sistema totalm<strong>en</strong>te compatible IEEE 488.2<br />
• Normaliza el l<strong>en</strong>guaje <strong>de</strong> programación <strong>de</strong> los dispositivos incorporanto el estándar SCPI.<br />
SCPI (Standar Commands for Programmable Intrum<strong>en</strong>ts)<br />
Una <strong>de</strong> las cosas que no <strong>de</strong>fine el estándar IEEE 488.1 es la estructura y sintaxis <strong>de</strong>l l<strong>en</strong>guaje que se usa para<br />
programar los dispositivos, lo que provoca que p. ej. un programa elaborado para un osciloscopio no funcione<br />
con un osciloscopio <strong>de</strong> otra marca. Esto aum<strong>en</strong>ta el trabajo <strong>de</strong> los programadores y por tanto los costes <strong>de</strong><br />
<strong>de</strong>sarrollo y mant<strong>en</strong>imi<strong>en</strong>to. Po<strong>de</strong>mos comparar el problema con el caso <strong>de</strong> las lineas telefónicas: puedo<br />
establecer una comunicación con China por que las lineas son compatibles, pero si no conozco el idioma, no<br />
lograré que el hablante y el escuchador se <strong>en</strong>ti<strong>en</strong>dan. SCPI vi<strong>en</strong>e a solv<strong>en</strong>tar esa dificultad idiomática <strong>en</strong>tre<br />
instrum<strong>en</strong>tos <strong>de</strong>fini<strong>en</strong>do un estructura y sintaxis común <strong>de</strong>l l<strong>en</strong>guaje.<br />
HS488<br />
Es una propuesta <strong>de</strong> la compañia National Instrum<strong>en</strong>ts para la mejora <strong>de</strong> las velocida<strong>de</strong>s <strong>de</strong> transmisión <strong>de</strong> la<br />
norma 488. Entre dos dispositivos compatibles HS488 separados por 2 metros <strong>de</strong> cable se pued<strong>en</strong> alcanzar <strong>de</strong><br />
hasta 8 MB/s. En un sistema con 15 dispositivos y 15 metros <strong>de</strong> cable la velocidad pue<strong>de</strong> alcanzar 1’5 MB/s<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 35
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
PROGRAMACIÓN CON LABVIEW<br />
CONEXIÓN LABVIEW-DISPOSITIVO GPIB<br />
Las sigui<strong>en</strong>tes figuras ilustran la conexión que permite controlar un instrum<strong>en</strong>to GPIB mediante el software<br />
<strong>LabVIEW</strong> cargado <strong>en</strong> nuestro ord<strong>en</strong>ador.<br />
<strong>LabVIEW</strong><br />
Libreria <strong>de</strong> funciones<br />
GPIB<br />
(Gpib-32.dll, etc)<br />
Red <strong>de</strong><br />
instrum<strong>en</strong>tos<br />
GPIB<br />
Drivers hardware<br />
(gpibpci.sys, etc)<br />
Tarjeta <strong>de</strong><br />
interfaz GPIB<br />
Ord<strong>en</strong>ador <strong>de</strong> Control<br />
1ª Tarjeta interfaz GPIB<br />
2ª Tarjeta interfaz GPIB<br />
bus GPIB<br />
Instrum<strong>en</strong>to GPIB<br />
HM 8130<br />
ENVÍO DE COMANDOS<br />
En este apartado veremos como <strong>en</strong>viar ord<strong>en</strong>es por el bus GPIB al g<strong>en</strong>erador <strong>de</strong> funciones Hameg HM-8130<br />
mediante LabView.<br />
Las funciones relativas al bus GPIB se <strong>en</strong>cu<strong>en</strong>tran <strong>en</strong> Functions/Instrum<strong>en</strong>t I-O/GPIB<br />
Debemos conocer previam<strong>en</strong>te la dirección <strong>de</strong>l bus asignada a nuestro aparato. Po<strong>de</strong>mos verla directam<strong>en</strong>te<br />
según la la configuración <strong>de</strong> los microinterruptores que se <strong>en</strong>cu<strong>en</strong>tran es su parte trasera. A<strong>de</strong>más nos lo muestra<br />
<strong>en</strong> su display cada vez que <strong>en</strong>c<strong>en</strong><strong>de</strong>mos el aparato.<br />
Se utiliza el gestor <strong>de</strong> errores por si no<br />
hubiera instrum<strong>en</strong>to alguno conectado y<br />
para visualizar el resto <strong>de</strong> los errores.<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 36
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
Entre los comandos que admite el g<strong>en</strong>erador <strong>de</strong> funciones HM-8130 t<strong>en</strong>emos por ejemplo:<br />
SIN G<strong>en</strong>era a la salida la onda s<strong>en</strong>oidal <strong>de</strong> los valores seleccionados<br />
OT0 Desactiva y OT1 activa la salida <strong>de</strong> señal.<br />
OF0 Desactiva la t<strong>en</strong>sión <strong>de</strong> Offset <strong>en</strong> la salida y OF1 la activa.<br />
DFR Visualiza la frecu<strong>en</strong>cia.<br />
DAM Visualiza la amplitud<br />
LK1 Bloquea la botonera <strong>de</strong>l g<strong>en</strong>erador para impedir su manejo <strong>en</strong> modo local. LK0 lo <strong>de</strong>sbloquea.<br />
Otros comandos que precisan adjuntar un dato son por ejemplo:<br />
FRQ:dato<br />
AMP:dato<br />
OFS:dato<br />
Sitúa la frecu<strong>en</strong>cia <strong>de</strong> la señal <strong>en</strong> el valor <strong>de</strong> ‘dato’ (Hz).<br />
Sitúa la amplitud <strong>de</strong> salida según ‘dato’ (Voltios).<br />
Sitúa la t<strong>en</strong>sión <strong>de</strong> Offset al valor expresado por ‘dato’ (Voltios).<br />
Los comandos <strong>de</strong>l g<strong>en</strong>erador pued<strong>en</strong> concat<strong>en</strong>arse para formar una única cad<strong>en</strong>a <strong>de</strong> comandos y <strong>en</strong>viarse a la<br />
vez. Cada comando <strong>de</strong>be acabar con punto y coma “;”.Por ejemplo:<br />
LK1;TRM;RMP;FRQ:0;AMP:2,000E-2;OT1;OF0;<br />
RECEPCIÓN DE RESPUESTAS<br />
La comunicación con los instrum<strong>en</strong>tos implica la recepción <strong>de</strong> respuestas tras el <strong>en</strong>vío <strong>de</strong> comandos <strong>de</strong><br />
interrogación. Por ejemplo para saber la frecu<strong>en</strong>cia actual <strong>de</strong> la señal g<strong>en</strong>erada.<br />
El subVI G<strong>en</strong>eral Error Handler mostrará <strong>en</strong> pantalla los errores producidos <strong>en</strong> la comunicación pro el bus <strong>en</strong> caso<br />
<strong>de</strong> producirse. y asegura (al unir la salida <strong>de</strong> la acción <strong>de</strong> escritura con la <strong>de</strong> lectura) la correcta secu<strong>en</strong>cia; no hay<br />
ninguna duda <strong>de</strong> que primero se producirá la escritura <strong>de</strong>l comando <strong>de</strong> interrogación, <strong>en</strong> espera <strong>de</strong> la respuesta y<br />
posteriorm<strong>en</strong>te la lectura <strong>de</strong> la misma.<br />
Originalm<strong>en</strong>te<br />
ADDRESS STRING<br />
Originalm<strong>en</strong>te<br />
DATA<br />
La conexión pue<strong>de</strong><br />
realizarse por <strong>de</strong>trás<br />
<strong>de</strong>l VI, <strong>en</strong>gañando<br />
<strong>en</strong> apari<strong>en</strong>cia.<br />
Realizar seguimi<strong>en</strong>to<br />
<strong>de</strong> la conexión<br />
Se <strong>en</strong>cu<strong>en</strong>tra <strong>en</strong> el grupo<br />
<strong>de</strong> funciones Time &<br />
Dialog<br />
Entre los comandos <strong>de</strong> interrogación que ofrec<strong>en</strong> respuesta por parte <strong>de</strong>l g<strong>en</strong>erador <strong>de</strong> funciones están:<br />
FRQ? Devuelve la frecu<strong>en</strong>cia actual<br />
AMP? Voltaje actual a la salida<br />
OFS? T<strong>en</strong>sión <strong>de</strong> Offset.<br />
ID? Id<strong>en</strong>tificación <strong>de</strong>l aparato.<br />
VER? Versión <strong>de</strong>l equipo.<br />
STA? Estado <strong>de</strong>l equipo.<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 37
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
OBTENCIÓN DE DATOS DE LA CADENA DE RESPUESTA DE UN INSTRUMENTO:<br />
El instrum<strong>en</strong>to <strong>de</strong>volverá como respuesta a nuestra interrogación una cad<strong>en</strong>a <strong>de</strong> caracteres que <strong>de</strong>beremos tratar<br />
para obt<strong>en</strong>er la información <strong>de</strong> interés. Para ello trocearemos la respuesta, <strong>en</strong> cad<strong>en</strong>as <strong>de</strong> caracteres y números,<br />
para su posterior utilización.<br />
La función se <strong>en</strong>cu<strong>en</strong>tra <strong>en</strong><br />
FUNTIONS/strings/additional string to number<br />
En g<strong>en</strong>eral es interesantre para el usuario que la interfaz <strong>de</strong> nuestro VI se parezca lo más posible al panel frontal<br />
<strong>de</strong>l instrum<strong>en</strong>to real. Colocaremos mandos para todas las funciones que necesitemos controlar.<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 38
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
Por razones didácticas, hemos añadido un visualizador <strong>de</strong> la cad<strong>en</strong>a que se <strong>en</strong>viará al instrum<strong>en</strong>to.<br />
El diagrama <strong>de</strong> bloques que <strong>de</strong>bemos implem<strong>en</strong>tar es el sigui<strong>en</strong>te:<br />
1ª<br />
La función se <strong>en</strong>cu<strong>en</strong>tra <strong>en</strong><br />
String/concat<strong>en</strong>ate<br />
strings<br />
2ª<br />
La función se <strong>en</strong>cu<strong>en</strong>tra <strong>en</strong><br />
String/select & app<strong>en</strong>d<br />
3ª<br />
4ª<br />
La función se <strong>en</strong>cu<strong>en</strong>tra <strong>en</strong><br />
String/Aditional.../to <strong>de</strong>cimal<br />
Realizar el programa por partes, visualizando el resultado <strong>de</strong> cada una <strong>de</strong> ellas (<strong>de</strong> 1ª a 4ª) según se<br />
incorporan nuevas funciones. Por último añadir el sub VI <strong>de</strong> escritura <strong>en</strong> el bus GPIB.<br />
APLICACIONES EN RED<br />
Po<strong>de</strong>mos ver otras aplicaciones como son las relativas al control <strong>de</strong> instrum<strong>en</strong>tación no directam<strong>en</strong>te conectada<br />
a nuestro ord<strong>en</strong>ador.<br />
SERVIDOR REMOTO DE COMANDOS GPIB<br />
Por ejemplo es posible controlar un dispositivo GPIB <strong>de</strong>s<strong>de</strong> cualquier puesto <strong>de</strong> una red <strong>de</strong> ord<strong>en</strong>adores. Un<br />
ord<strong>en</strong>ador conti<strong>en</strong>e la tarjeta <strong>de</strong> interfaz GPIB, pero el control lo po<strong>de</strong>mos realizar <strong>de</strong>s<strong>de</strong> otro ord<strong>en</strong>ador, que<br />
sería el que cont<strong>en</strong>ga el programa <strong>de</strong> aplicación.<br />
Los datos llegarían al aparato a controlar mediante el ord<strong>en</strong>ador que ti<strong>en</strong>e la tarjeta <strong>de</strong> bus, que actuaría como un<br />
servidor <strong>de</strong> datos; estos serían <strong>en</strong>viados por el ord<strong>en</strong>ador que ti<strong>en</strong>e el programa <strong>de</strong> control y que actuaría como<br />
un cli<strong>en</strong>te.<br />
Este intercambio <strong>de</strong> datos se hace mediante la tecnología cli<strong>en</strong>te-servidor d<strong>en</strong>tro <strong>de</strong> las re<strong>de</strong>s <strong>de</strong> ord<strong>en</strong>adores, y<br />
permite la conexión remota, incluso vía telefónica <strong>en</strong>tre distintos equipos <strong>de</strong> distintas características siempre y<br />
cuando cumplan con el protocolo <strong>de</strong> comunicación.<br />
Conexión para manejar el g<strong>en</strong>erador <strong>de</strong> funciones con comandos GPIB <strong>de</strong>s<strong>de</strong> otro PC. El ord<strong>en</strong>ador que no<br />
ti<strong>en</strong>e la tarjeta controladora es el que g<strong>en</strong>era los comandos <strong>de</strong> control. Ambos ord<strong>en</strong>adores se comunican<br />
mediante la red ethernet <strong>en</strong> el protocolo TCP-IP.<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 39
PRÁCTICAS DE INSTRUMENTACIÓN ELECTRÓNICA<br />
3º I.T.I.E.<br />
Red Ethernet <strong>de</strong>l laboratorio (cable UTP).<br />
Red <strong>de</strong><br />
instrum<strong>en</strong>tos<br />
GPIB<br />
CLIENTE DE COMANDOS.<br />
Ord<strong>en</strong>ador que recibe<br />
los comandos <strong>de</strong> la red ethernet,<br />
vía TCP-IP<br />
y los <strong>en</strong>vía al instrum<strong>en</strong>to<br />
mediante la tarjeta GPIB.<br />
Tarjeta controladora<br />
bus GPIB<br />
Instrum<strong>en</strong>to GPIB<br />
HM 8130<br />
SERVIDOR DE COMANDOS<br />
Ord<strong>en</strong>ador que <strong>en</strong>vía<br />
las cad<strong>en</strong>as <strong>de</strong> control GPIB.<br />
El VI mostrará <strong>en</strong> el panel<br />
una carátula similar a la <strong>de</strong>l<br />
Instrum<strong>en</strong>to a controlar.<br />
APLICACIONES DE DISTRIBUCIÓN DE SEÑAL EN RED<br />
Cli<strong>en</strong>te <strong>de</strong> la adquisición <strong>de</strong> señal.<br />
Uno <strong>de</strong> los ord<strong>en</strong>adores, el que ti<strong>en</strong>e la tarjeta <strong>de</strong> adquisición, manda a los otros, mediante TCP-IP por la red<br />
ethernet, la señal capturada.<br />
Red Ethernet <strong>de</strong>l laboratorio.<br />
CLIENTE DE SEÑAL.<br />
Ord<strong>en</strong>ador que recibe<br />
la señal capturada por<br />
la tarjeta situada <strong>en</strong> otro ord<strong>en</strong>ador,<br />
vía TCP-IP,<br />
y los repres<strong>en</strong>ta <strong>en</strong> pantalla.<br />
CLIENTE DE SEÑAL.<br />
Ord<strong>en</strong>ador que recibe<br />
la señal capturada por<br />
la tarjeta situada <strong>en</strong> otro ord<strong>en</strong>ador,<br />
vía TCP-IP,<br />
y los repres<strong>en</strong>ta <strong>en</strong> pantalla.<br />
SERVIDOR DE SEÑAL<br />
Ord<strong>en</strong>ador que <strong>en</strong>vía<br />
la señal capturada a<br />
la red <strong>de</strong> ord<strong>en</strong>adores.<br />
Tarjeta Adquisición.<br />
Lab-PC-1200<br />
La red ethernet <strong>de</strong>l laboratorio pue<strong>de</strong> ser ampliada a internet, ya que <strong>en</strong> el laboratorio asignamos unas direcciones<br />
IP ficticias.<br />
S<strong>en</strong>sor<br />
Introducción a la Instrum<strong>en</strong>tación Virtual. Programación <strong>en</strong> <strong>LabVIEW</strong> (Ver. 5.5) 40