19.06.2014 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!