Capítulo 1

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 19

CAPTULO

INTRODUCCIN A LA INSTRUMENTACIN VIRTUAL

1.1 1.2 1.3 1.4 1.5

LA INSTRUMENTACIN VIRTUAL PROGRAMACIN GRFICA. ENTORNO LabVIEW SISTEMAS DE MEDIDA EQUIPAMIENTO BSICO DE LABORATORIO PROGRAMAR EN LabVIEW Y PASCAL

LabVIEW 7.1 PROGRAMACIN GRFICA PARA EL CONTROL DE INSTRUMENTACIN

1.1

LA INSTRUMENTACIN VIRTUAL

Cuando se habla de instrumentos de medida, es normal pensar en una carcasa rgida, en la que destaca su panel frontal lleno de botones, leds y dems tipos de controles y visualizadores. En la cara oculta del panel estn los contactos de esos controles que los unen fsicamente con la circuitera interna. Esta circuitera interna se compone de circuitos integrados y otros elementos que procesan las seales de entrada en funcin del estado de los controles, devolviendo el resultado a los correspondientes visualizadores del panel frontal. Qu entendemos por instrumento virtual? Un instrumento virtual es un mdulo software que simula el panel frontal de instrumento que antes hemos comentado y, apoyndose en elementos hardware accesibles por el computador (tarjetas de adquisicin, tarjetas DSP, instrumentos accesibles va GPIB, VXI, RS-232, USB, ethernet), realiza una serie de medidas como si se tratase de un instrumento real. De este modo, cuando se ejecuta un programa que funciona como instrumento virtual o VI (Virtual Instrument), el usuario o usuaria ve en la pantalla de su computador un panel cuya funcin es idntica a la de un instrumento fsico, facilitando la visualizacin y el control del aparato. A partir de los datos reflejados en el panel frontal, el VI debe actuar recogiendo o generando seales, como lo hara su homlogo fsico. El control de instrumentacin por computador no resulta nuevo; incluso el uso del PC en sistemas de medida se usaba en los setenta mediante la interface de bus IEEE 488 o GPIB (General Purpose Interface Bus). Pero ha sido en los noventa cuando los procesadores de 16 y 32 bits se han incorporado a equipos asequibles, consiguiendo altas velocidades y grandes capacidades de memoria. Esta popularizacin de computadores de altas prestaciones ha trado consigo un fuerte desarrollo de potentes paquetes software que simplifican la creacin de aplicaciones.

1.2

PROGRAMACIN GRFICA. ENTORNO LabVIEW

Hasta hace poco, la tarea de construccin de un VI se llevaba a cabo con paquetes software que ofrecan una serie de facilidades, como funciones de alto nivel y la incorporacin de elementos grficos, que simplificaban la tarea de programacin y de elaboracin del panel frontal. Sin embargo, el cuerpo del programa se segua basando en texto, lo que supona mucho tiempo invertido en detalles de programacin que nada tienen que ver con la finalidad de un VI. Con la llegada del software de programacin grfica LabVIEW de National Instruments,

INTRODUCCIN A LA INSTRUMENTACIN VIRTUAL

Visual Designer de Burr Brown o VEE de Agilent Technology, el proceso de creacin de un VI se ha simplificado notablemente, minimizndose el tiempo de desarrollo de las aplicaciones. Cuando se crea un VI en LabVIEW trabajamos con dos ventanas: una en la que se implementar el panel frontal (figura 1.1) y otra que soportar el nivel de programacin (figura 1.2). Para la creacin del panel frontal se dispone de una librera de controles e indicadores de todo tipo y la posibilidad de crear ms, diseados por el propio usuario.

Tempeauie Chat
900

Off

Figura 1.1

Panel frontal de un instrumento virtual que visualiza la temperatura.

Cuando un control es pegado desde la librera en el panel frontal se acaba de crear una variable cuyos valores vendrn determinados por lo que el usuario ajuste desde el panel; inmediatamente, aparece un terminal en la ventana de programacin representndolo. El nivel de programacin del VI consistir en conectar estos terminales a bloques funcionales (p.ej., un comparador), hasta obtener un resultado que deseemos visualizar, por ejemplo un led de alarma. Los bloques funcionales son iconos con entradas y salidas que se conectan entre s mediante cables ficticios por donde fluyen los datos, constituyendo el nivel de programacin del VI. Podemos comparar la ventana de programacin con una placa de circuito impreso, donde los terminales del panel frontal se cablean a bloques funcionales (circuito integrado) que se interconectan para generar los datos que se desean visualizar. A su vez, estos circuitos integrados contienen bloques circuitales conectados entre s, al igual que un icono est formado por la interconexin de otros iconos. La programacin grfica permite disear un VI de manera intuitiva, vertiendo las ideas directamente a un diagrama de bloques, como se hara sobre una pizarra.

LabVIEW 7.1 PROGRAMACIN GRFICA PARA EL CONTROL DE INSTRUMENTACIN

Temperature Chart
[_D5 |

Warning

Power
TF

Figura 1.2

Diagrama de bloques de un instrumento virtual.

1.3

SISTEMAS DE MEDIDA

El usuario de un sistema automtico de medida debe ser capaz de: Definir el procedimiento de test. Seleccionar los instrumentos implicados en el test. Supervisar la ejecucin del test. Proporcionar los parmetros iniciales del test. Analizar los resultados.

Estas caractersticas se consiguen mediante una plataforma hardware (computador compatible) y un software, todo ello a travs de una interface grfica con el usuario (GUI: Grfica/ User Interface). El software de control de los diferentes instrumentos podra ser especfico para cada procedimiento de test diferente, con los consiguientes problemas de desarrollo y mantenimiento de la aplicacin. La solucin es un software que se adapte fcilmente a las diferentes necesidades de medida; estamos, pues, hablando de un programa orientado a objeto.

INTRODUCCIN A LA INSTRUMENTACIN VIRTUAL

El sistema de software empleado construye una coleccin de objetos reutilizables que representan a instrumentos fsicos, procedimientos de test, actividades de procesado de datos y elementos de interface grfico, pudindose construir nuevas clases de objetos a partir de los ya existentes. Un dr/Verde un instrumento de laboratorio a travs de la interface paralela IEEE-488 (GPIB) ha de ofrecer la interfaz grfica (GUI: Grafcal User Interface) que simule el panel frontal del instrumento fsico. Esto significa que desde la pantalla del computador debe controlarse el instrumento de una manera similar a como se hara manualmente. Los controles que aparezcan en la pantalla se manejarn mediante el ratn del PC; y el funcionamiento debe ser igual al del instrumento (figura 1.3). Este c/nVerdebe, por tanto, aprovechar los comandos GPIB disponibles, para implementar las funciones existentes en modo manual. Luego ser necesario realizar un programa que funcione como driver del instrumento fsico existente en el laboratorio.

TEST OF LINEAR CIRCUITS VIRTUAL EsSTRUMENT

Figura 1.3 Panel frontal del instrumento virtual capaz de caracterizar circuitos lineales mediante seales de excitacin unifrecuencial y multifrecuencial (TesCiLIV).

La versatilidad de disponer de un software de programacin grfica, el LabVIEW en nuestro caso, nos ha permitido emplear las diferentes funciones de los instrumentos de laboratorio accesibles va GPIB. A dichos drivers de instrumento se les han aadido algunas de las libreras propias del paquete de software y, de

LabVIEW 7.1 PROGRAMACIN GRFICA PARA EL CONTROL DE INSTRUMENTACIN

este modo, hemos realizado diferentes instrumentos virtuales, dndoles el nombre de virtual, pues de hecho fsicamente no disponemos de ellos. As surge la idea de disponer de una herramienta para la grabacin de formas de onda en el generador de seal, donde se pretende aprovechar al mximo la funcin de generacin de formas de onda definidas por el usuario. A partir de esta idea, se construye un VI, al que se le aaden prestaciones, con el fin de concentrar en un solo instrumento virtual muchas de las funciones tiles para trabajar con seales elctricas; un instrumento virtual capaz de adquirir, procesar, analizar y generar seales elctricas de diversa ndole (figura 1.4), VI que gestiona varios elementos hardware, aprovechando las ventajas de cada uno para conseguir la mxima flexibilidad y prestaciones. Integrndose en un entorno de instrumentacin controlada mediante bus GPIB, se puede acceder a cualquiera de las funciones del instrumental disponible (generador de funciones, multmetro, fuente de alimentacin...), controlando, adems, una tarjeta de adquisicin y generacin de seales analgicas. Sistemas de medida aparecen en infinidad de campos de la ingeniera: procesado de seal, qumica analtica instrumental, electrnica de potencia, mecnica, etc. Conociendo el sistema fsico donde se deben realizar las medidas o sobre qu magnitudes se debe actuar, podremos realizar nuestro instrumento virtual tan slo con colocar los transductores correctos y una adaptacin de seales a las placas de adquisicin. Para poder disear instrumentacin virtual se hace necesario conocer algunas materias que no son propiamente programacin. De este modo introdu-

|ADQUISICIN|
Oicilottnpt*

SALIDA;

Ofhel

Operados

modulo

Eaventanada

Fillrido

Figura 1.4

Diagrama de bloques del instrumento multifuncin virtual.

INTRODUCCIN A LA INSTRUMENTACIN VIRTUAL

oiremos en diferentes captulos del libro algunas nociones sobre adquisicin y procesado de datos, que no son necesarias para poder emplear los instrumentos virtuales de las aplicaciones presentadas en el presente texto, pero que constituyen el conocimiento terico-prctico indispensable para poder disear otras aplicaciones basadas en la misma filosofa. De este modo, en el captulo 9, destinado al control de instrumental mediante computador, se dedica una parte importante a profundizar en el bus GPIB. En el captulo 10 presentamos las comunicaciones de tipo serie con aplicaciones RS-232. Los sistemas de adquisicin empleando tarjetas y el posterior procesado de la informacin aparece en el captulo 8. El texto pretende dar la suficiente informacin al estudiante de ingeniera para introducirse en el mundo de la instrumentacin avanzada. A lo largo del texto se cubren diferentes materias desde la programacin orientada a objeto hasta el procesado digital de seal, con los cuales poder disear instrumentacin virtual. No es nuestro objetivo convertirnos en especialistas de todo, pero s tener un buen conocimiento, ofrecindole al lector o lectora la posibilidad de completar sus conocimientos con la bibliografa propuesta. 1.4 EQUIPAMIENTO BSICO DE LABORATORIO

Para la consecucin de nuestros objetivos se dispone del instrumental existente en un laboratorio general de instrumentacin electrnica. Cada puesto de trabajo consta del siguiente equipamiento: Generador de funciones programable con conexin GPIB. Fuente de alimentacin programable con conexin GPIB. Osciloscopio digital con conexin GPIB. Multmetro digital con conexin GPIB. Tarjeta interface GPIB PCI-GPIB National Instruments. Tarjeta adquisicin de datos 6062 National Instruments. Computador compatible Pentium III. El listado anterior de instrumentos es orientativo e independiente del fabricante; la nica condicin en el caso de instrumental de laboratorio es que sea controlable por el computador personal mediante los protocolos RS-232, GPIB, USB, ethernetoVXI. Y para el caso de las tarjetas de adquisicin se hace necesario, si no empleamos las de National Instruments, la programacin mediante lenguaje C del driver de gestin de dicha tarjeta y su posterior insercin en LabVIEW a travs de un CIN (Cocte Interface Node) empleando WATCOM, un compilador de 32 bits con el cual est desarrollado LabVIEW.

LabVIEW 7.1 PROGRAMACIN GRFICA PARA EL CONTROL DE INSTRUMENTACIN

La configuracin y el conexionado al dispositivo bajo prueba (D.U.T., Device Under Test) de algunos de los equipos mencionados anteriormente estn esquematizados en la figura 1.5. Generalmente los ejemplos de aplicacin se han realizado con este equipamiento, aunque presentaremos algunos basados en otros equipos de distintos fabricantes pero con prestaciones parecidas.

Mull moler

Waveform Generator

Figura 1.5 Configuracin de equipos utilizados como instrumentacin virtual para la obtencin de la funcin de transferencia del dispositivo bajo prueba.

Generador de funciones Se trata de un generador de funciones de propsito general que combina sintetizados generador de barrido y forma de onda arbitraria en un nico aparato. Adems de las cinco formas de onda tipo puede generar funciones definidas por el usuario a travs de su memoria de 1.024 puntos en ambos ejes. La entrada de datos, lectura y edicin puede hacerse mediante la interface IEEE-488, que permite la transferencia de formas de onda almacenadas en los osciloscopios digitales. Todos los datos de la funcin arbitraria se almacenan en una memoria no voltil, para poder utilizarlos de un modo continuado. Otra de sus caractersticas es el generador de barrido integrado con dos rangos de frecuencia, donde la frecuencia inicial, la final y la duracin del barrido son fcilmente ajustables desde el panel frontal. Posee, adems, entradas separadas para modulacin externa de amplitud, disparo/rfaga y puerta (gate). Todas sus funciones son programables para el uso en sistemas automticos de medida a travs de las interfaces opcionales IEEE-488 o RS-232.

INTRODUCCIN A LA INSTRUMENTACIN VIRTUAL

Multmetro digital Multmetro digital de 61/2 dgitos, de alta calidad. Su combinacin de caractersticas de equipo de laboratorio con las propias de un sistema automtico de medida hace de l un equipo muy flexible. Adems de las caractersticas tpicas de un multmetro incorpora operaciones matemticas integradas y prestaciones flexibles como sistema automtico de medida. Dentro de estas ltimas cabe destacar: Tarjeta de interace GPIB y de RS-232. Intervalos de lectura de hasta 1.000 lecturas por segundo. Comprobacin de limite con seales de pasa/falla. Fuente de alimentacin programable La fuente de alimentacin ofrece caractersticas avanzadas que hacen de ella un equipo adaptable a sistemas automticos de medida. Incorpora una tarjeta de interface GPIB que le permite conectarse a cualquier dispositivo compatible con este estndar. Adems, ofrece posibilidades como la proteccin contra sobrecorrientes o la limitacin de tensin. Todas las funciones disponibles desde su panel frontal pueden tambin realizarse de forma remota mediante la interface GPIB. Osciloscopio digital El osciloscopio ofrece una serie de prestaciones en medida y visualizacin de seales: Anchura de banda de 100 MHz, principal de 2 ns/div y bases de tiempo retardado. Configuracin automtica del panel frontal. Medidas automticas y mediante cursores de frecuencia, tiempo y voltaje. Almacenamiento de formas de onda. Grabacin y llamada de 16 configuraciones del panel frontal. Deteccin de pico. Adems de estas funciones incorpora una tarjeta de interface GPIB que le permite la comunicacin con cualquier otro dispositivo conectado a este bus. De este modo, si se cuenta con el software adecuado, es posible obtener las formas de onda existentes en la pantalla del computador. Tarjeta de interface GPIB de National Instruments PCI/GPIB La placa PCI-GPIB es una tarjeta de interface IEEE-488 para IBM PC, y computadores compatibles. Est construida basndose en el circuito integrado de diseo especfico (ASIC) NAT4882 que integra la interface completa con el PC. El

10

LabVIEW 7.1 PROGRAMACIN GRFICA PARA EL CONTROL DE INSTRUMENTACIN

NAT4882 realiza las funciones de controlador, talker y listener del estndar IEEE488, as como todas las funciones de controlador descritas en la recomendacin IEEE-488.2. La incorporacin de este ASIC permite ejecutar por hardware operaciones que antes slo eran posibles realizar por software, lo que ha incrementado la eficiencia del driver software GPIB, la capacidad completa como controlador IEEE-488.2 y caractersticas mejoradas debido al uso del NAT4882 ASIC. NAT4882ASIC. Completamente compatible IEEE-488.2. Compatible con el controlador NEC (JPD7210 y TMS9914A. Integra unos 10 dispositivos incrementando la eficiencia. Velocidad de transferencia de datos de hasta 7,7 Mbps usando HS488. Mxima transferencia de datos 7,7 Mbps usando IEEE 488.1. Caractersticas hardware.

Tamao reducido de tarjeta. Compatible con placas basadas en el TMS9914A. Transferencia de datos va bus PCI. Tarjeta de adquisicin de datos PC/60245 PCI6024E es una tarjeta de bajo coste, multifuncin de E/S para seales analgicas, digitales y de temporizacin, destinada a computadores PC y compatibles. Sus caractersticas principales de describen a continuacin. Conversor analgico-digital de 12 bits. 16 canales simples u 8 diferenciales. Ganancia programable. Frecuencia mxima de muestreo de 200 kS/s. Proteccin contra sobretensin de 40 V.

Dos DAC de 12 bits con doble buffer. Salida 10 V. Doble buffer multifuncin. 8 lneas E/S digitales. Configurares para entradas, salidas o transferencias bidireccionales. Compatibilidad TTL. 2 contadores/temporizadores up/down de 24 bits. Clock base de 20 Mhz a 100 kHz. Mxima frecuencia de entrada 20 MHz. Generacin de interrupciones. Acceso DMA.

INTRODUCCIN A LA INSTRUMENTACIN VIRTUAL

11

Computador PC compatible Pentium III La configuracin mnima del computador PC compatible ser un Pentium III con 128 Mbyte de memoria RAM; la placa controladora de vdeo, de 4 Mbyte de RAM y el disco duro con unos 500 Mb libres, placa de vdeo, puertos serie y paralelo, tarjeta de comunicacin con red Ethernet. Se dispondr adems de 2 slots PCI en los que van conectadas la tarjeta de interface GPIB y la de adquisicin de datos. El software consta del sistema operativo Windows, sobre el que instalamos los paquetes de programacin grfica para el control de instrumentacin LabVIEW versin 7.1. Otras alternativas de las que tambin disponemos son ios programas de control de instrumentacin orientados a comandos Labwindows/CVI e ITGII de HP, y los compiladores Borland C++, WatcomC 10, Visual C y VisualBasic. 1.5 PROGRAMAR EN LabVIEW Y PASCAL

Programar una aplicacin en LabVIEW por su carcter de tipo grfico puede parecer muy diferente a hacerlo en cualquier otro lenguaje de alto nivel. Pero veremos en este apartado que los planteamientos generales deben ser los mismos sea cual sea el lenguaje escogido; en concreto realizamos alguna comparacin con el lenguaje PASCAL. Un programa siempre se basar en la construccin de un algoritmo y el empleo de unas estructuras de datos. Por algoritmo entendemos la descripcin exacta del orden determinado en que se ha de ejecutar un sistema de operaciones para resolver todos los problemas de un mismo tipo. Caractersticas de los algoritmos son, pues, finitud, definibilidad (de todas las acciones a realizar paso a paso y sin ambigedad), generalidad (todos los problemas de un determinado tipo) y efectividad (funcionamiento correcto en todos los casos). La implementacin del algoritmo nos lleva a codificar cada una de las acciones que lo constituyen a instrucciones de un lenguaje determinado, en nuestro caso LabVIEW, teniendo de este modo un programa en LabVIEW. En el siguiente apartado vamos a analizar los diferentes tipos de datos asociados a tas variables. 1.5.1 Tipo de dato

El conjunto de valores que puede asumir una variable es tan importante para su caracterizacin que se le llama tipo de la variable. Todas las variables globales, variables a las que se pude acceder o llamar desde cualquier parte del

12

LabVIEW 7.1 PROGRAMACIN GRFICA PARA EL CONTROL DE INSTRUMENTACIN

programa, deben expresarse en el encabezamiento de los mismos. Siendo la expresin en PASCAL: var v:T .donde v es el identificador de la nueva variable y Tsu tipo; todas las variables que aparecen en un programa debern tener un nombre (identificador), y un tipo de dato asociado y solamente uno. Al elegir los controles e indicadores para LabVIEW tendremos asociados sus tipos de datos. En el captulo 3 se tratar con ms profundidad el tema. CLASES DE DATOS Tenemos dos clases de datos: los estructurados y los no estructurados (es decir, no divisibles en componentes); a estos ltimos se les suele llamar escalares. Ventajas de usar tipos de datos La primera es que, al declarar el tipo de dato antes de usar una variable, el compilador podr detectar los errores de empleo de operadores errneos sobre una variable determinada. Esto es muy til si el programador no ha tenido cuidado o el programa es muy largo. La segunda ventaja es que facilita el diseo del compilador. Cada tipo de dato se representa dentro de la memoria del computador en un formato determinado. Si los identificadores de tipos cambiasen durante la ejecucin del programa, la reserva de espacio de memoria se complicara y la ejecucin del programa se hara ms lenta. La facilidad de implementacin en un computador (facilidad de diseo del compilador) fue uno de los objetivos que se buscaba al disear el lenguaje PASCAL, lo cual requiere que todos los tipos de datos estn formalmente declarados antes de su uso. Con ello, cuando el compilador traduce el programa, puede efectuar todas las provisiones necesarias para la reserva de espacio de memoria para cada variable del programa. Una ventaja adicional ya mencionada es que el compilador podr igualmente verificar la correccin sintctica de las expresiones en el momento de su traduccin, evitando errores en el momento de la ejecucin del programa. Este proceso agiliza la ejecucin. Hay lenguajes que no requieren ninguna declaracin de tipos de datos durante la ejecucin. Sin embargo, los intrpretes o compiladores de tales lenguajes tienden a ser ms complicados de construir. En LabVIEW es automtica la asignacin del tipo de dato al escoger el control o indicador. En la seccin 7.5 de Optimizacin del programa, del captulo 7 se hace una comparacin del tamao que ocupan en memoria diferentes tipos de datos.

INTRODUCCIN A LA INSTRUMENTACIN VIRTUAL

13

Las principales reglas que se aplican a los tipos de datos en PASCAL tambin son vlidas en LabVIEW: Cada variable slo puede pertenecer a un tipo de dato. El tipo de cada variable debe declararse antes de que la variable se use. Cada tipo de datos admite slo determinados operadores. TIPO ESCALAR La forma general de una definicin de tipo en PASCAL es type t = 7donde t es el nuevo identificador y T la descripcin del tipo. Un tipo escalar se describe enumerando sus valores type da = (lunes, martes..., domingo). En la definicin se especifican en orden todos sus posibles valores. Algunos tipos de datos escalares son de uso tan frecuente que se les encuentra en todos los sistemas de cmputo. Estos tipos, llamados tipos estndar, no necesitan definirse en el programa, pues se asume que el procesador los conoce. Incluyen los valores lgicos, los nmeros enteros, reales y un conjunto de caracteres que pueden ser impresos, es decir, Boolean, Integer, Real y Char. Las propiedades ms caractersticas de los tipos de datos escalares o elementales son; la indivisibilidad de sus valores y la existencia de una relacin de orden entre ellos (excepto en REALES, donde el predecesor y el sucesor de un determinado valor no se pueden determinar con exactitud). TIPO ESTRUCTURADO No tiene sentido hacer referencia al i-simo dgito o componente de un entero, pero s se puede hablar del i-simo dgito de la representacin decimal de un entero, el cual no es un entero sino una sucesin de caracteres. En este caso, resulta conveniente poder referirse a la representacin del nmero en forma global aunque conste de dgitos individuales. El conjunto de valores o variables reunidos bajo un nico nombre colectivo se dice que est estructurado. Las estructuras de datos son colecciones de datos organizados de una forma determinada. Se construyen a partir de los tipos de datos elementales que ya hemos visto. Luego, con estos nuevos tipos de datos se pueden crear otros an ms complejos, cuyos datos elementales son las estructuras complejas creadas segn los tipos de datos elementales. Los tipos estructurados de LabVIEW los analizamos en el captulo 6. Una coleccin de datos, cuya organizacin se caracteriza por las funciones de acceso que se usan para almacenar y acceder a los elementos individuales de datos, es una estructura de datos. Para las estructuras de datos incorporadas (las suministradas por el lenguaje de programacin, el array..., por ejemplo), puede que el programador nunca conozca cmo se hace este acceso (es transparente, no se ve). Para

14

LabVIEW 7.1

PROGRAMACIN GRFICA PARA EL CONTROL DE INSTRUMENTACIN

una estructura de datos no suministrada en el lenguaje (la pila), el programador especifica un conjunto de procedimientos y funciones que realizan las funciones de acceso. El modo de codificacin de funciones y procedimientos de acceso debe ser irrelevante para las personas que usen el programa. De este modo tenemos tres formas distintas de examinar una estructura de datos: Nivel abstracto o lgico. En este nivel dibujamos la organizacin y especificamos los procedimientos y funciones generales de acceso. Nivel de implementacin. Examinaremos cmo generar los procedimientos y funciones. Se examinarn las distintas formas en que se pueden implementar las estructuras de datos. Nivel de aplicacin. La implementacin podra cambiarse sin que afectara al uso de la estructura de datos. Consecuentemente, esta estructura y sus funciones de acceso podran ser usadas por otras aplicaciones con propsitos diferentes.

1.5.2

Programacin estructurada y modular

PROGRAMACIN ESTRUCTURADA Es nuestro objetivo obtener programas lo ms claros, simples y fiables posible. Un criterio que podemos aplicar consiste en intentar que el texto del programa (estructura esttica) nos d una idea clara de la evolucin seguida por el programa cuando se ejecuta (estructura dinmica). A tal fin limitaremos el conjunto de estructuras a: Secuencial. Condicional. Iterativa. Cualquier programa lo construiremos a partir de estas tres estructuras (vase captulo 4). Cada accin, si no es elemental, puede a su vez descomponerse en otras que s lo sean (diseo Top-Down). La estructura secuencial Un proceso ser secuencial cuando conste de una serie de acciones elementales, que se ejecutarn en el orden en que se han escrito.

INTRODUCCIN A LA INSTRUMENTACIN VIRTUAL

15

As, para realizar el proceso pan con tomate las acciones que realizaremos sern: lnicio_Secuencia Accin 1 Cortar una rebanada de pan. Accin 2 Partir el tomate en dos mitades. Accin 3 Restregar el tomate en el pan. Accin 4 Poner aceite sobre el pan untado en tomate. Fin_Secuencia La estructura condicional La emplearemos cuando dos acciones alternativas y excluyentes dependan de una condicin. En lenguaje natural diremos SI hace sol ENTONCES ir a la playa SI NO me quedo en casa. IF hace sol THEN ir a la playa ELSE me quedo en casa. La condicional mltiple puede ser generada a partir de IF encadenado o mediante la instruccin CASE. CASE <nombre variable selectora> OF caso 1: acciones a realizar; caso 2,caso 3: acciones a realizar; OTHERWISE acciones a realizar
END;

La variable selectora debe ser un tipo ordinal (cada elemento tiene sucesor y predecesor y slo uno). La estructura repetitiva o iterativa Mientras haya luz recoge las sillas del jardn Pon las patatas en la cazuela hasta que est llena Copia cien veces la leccin

16

LabVIEW 7.1

PROGRAMACIN GRFICA PARA EL CONTROL DE INSTRUMENTACIN

son acciones que implican la repeticin sistemtica de un proceso (recoger una silla, poner una patata, copiar una leccin), pero existen diferencias entre ellas. El primer caso se implementa en PASCAL como WHILE \DO; repetimos la accin mientras la condicin sea cierta. Si es falsa, de entrada no se ejecutar nunca. El segundo caso se implementa en PASCAL como REPEAT \ UNTIL; repetimos la accin hasta que la condicin se cumpla. Si al empezar ya es cierta la condicin, la accin o acciones se ejecutarn como mnimo una vez. El tercer caso se implementa en PASCAL como FOR \ TO \ DO; repetimos la accin o acciones tantas veces como nos indique una variable contador. Tambin es posible construirla mediante FOR \ DOWNTO \ DO, donde la variable contador en lugar de incrementarse se decrementa. LabVIEW dispone de las estructuras WHILE LOOP y FOR LOOP. PROGRAMACIN MODULAR La programacin modular es un mtodo de diseo y tiende a dividir el problema total en aquellas partes que poseen personalidad propia, diseo TopDown. Frecuentemente debe repetirse una cierta secuencia de sentencias en varios lugares dentro de un programa. Para ahorrar al programador el tiempo y el esfuerzo necesarios para recopilar estas sentencias, muchos lenguajes de programacin ofrecen una posibilidad de subrutina (subprograma). Este mecanismo posibilita asignar un nombre libremente elegido a una secuencia de sentencias y entonces utilizar este nombre como una abreviatura en cualquier parte en que aparezca esta secuencia de sentencias. La definicin de la abreviatura se llama declaracin de procedimiento o declaracin de funcin. Su utilizacin en el programa se denomina llamada de procedimiento o llamada de funcin. Su nombre debe seguir la misma construccin que para las variables. En PASCAL el procedimiento sirve como instrumento para abreviar el texto y, ms significativamente, como un medio para hacer particiones y estructurar un programa en componentes cerrados y lgicamente coherentes. La particin es esencial en la comprensin de un programa, particularmente si es tan complejo que el texto tenga una longitud tal que sea imposible recorrerlo de un vistazo. La estructura en subrutinas es indispensable tanto para la documentacin como para la verificacin del programa. As, es deseable a menudo formular una secuencia

INTRODUCCIN A LA INSTRUMENTACIN VIRTUAL

17

de sentencias como un procedimiento, aun cuando esta secuencia se presente solamente una vez y entonces no exista la motivacin de acortar el texto. De este modo un subprograma es una parte autnoma del programa que realiza una misin o funcin definida, la cual puede ser invocada por otras partes del programa siempre que se necesite para desarrollar esa funcin. Cuando cierta secuencia de sentencias aparece en varios lugares del programa en forma no idntica pero muy similar, de tal modo que la diferencia entre las ocurrencias individuales puedan eliminarse por la sustitucin sistemtica de identificadores o expresiones, entonces escribiremos una nica secuencia de sentencias donde las entidades que se sustituirn se llamarn parmetros del procedimiento o funcin. Si una secuencia particular de operaciones se aplica a diferentes operandos en diferentes partes del programa, la secuencia se formula como un procedimiento, y los operandos devienen parmetros. Los identificadores introducidos en el encabezamiento del procedimiento para denotar los operandos se llaman parmetros formales (definidos tras el subprograma, entre parntesis). Los objetos que sustituyen a los parmetros formales se llaman parmetros actuales, y se especifican en cada llamada a procedimiento. El tipo del parmetro actual est determinado por el tipo del parmetro formal, como est especificado en el encabezamiento del procedimiento. La correspondencia se establece por la posicin que ocupa cada uno. El pase de parmetros puede ser de dos tipos: por valor (entrada) y por variable (salida). Valor (entrada): el parmetro formal toma el valor del actual, realizando el subprograma las acciones pertinentes con este valor pero no afectar al valor del parmetro actual. Variable (salida): en la cabecera aparece el smbolo VAR delante del parmetro, el cual representar el resultado de un subprograma. Afecta al valor de los parmetros actuales. Un procedimiento puede ser referenciado simplemente escribiendo su nombre seguido de una lista opcional de parmetros. Los parmetros deben ir encerrados entre parntesis y, si hay ms de uno, separados por comas. Cuando se efecta una llamada a procedimiento, el control se transfiere automticamente al comienzo del mismo, transfiriendo en su caso los datos entre cada parmetro actual (incluido dentro de la referencia al procedimiento) y su parmetro formal correspondiente (definido dentro del propio procedimiento). Los parmetros actuales reemplazan a los formales, creando as un mecanismo de intercambio de informacin entre

18

LabVIEW 7.1 PROGRAMACIN GRFICA PARA EL CONTROL DE INSTRUMENTACIN

el procedimiento y su punto de referencia. Cuando se han ejecutado todas las acciones del procedimiento se devuelve el control automticamente a la sentencia inmediatamente posterior a la referencia al procedimiento. Ejemplo 1.1 Pase por valor

Program muestra (input,output) VAR a,b : integer; c,d : real; Procedure FLASH (x:integer,y:real); begin (*se procesan los valores de x e y *) end; begin (*programa principal*) Flash (a,c); (*primero de tipo entero y segundo de tipo real*) Flash (b,d); end. Toda llamada al procedimiento debe llevar dos parmetros actuales, el primero de los cuales debe ser de tipo entero y el segundo real. As lo indica el encabezamiento del procedimiento. Ejemplo 1.2 Pase por variable

Program muestra (input.output); VAR a,b : integer; c,d : real; Procedure Flash (VAR x:integer;VAR y:real); begin
end;

begin (*programa principal*) Flash (a,c); Flash (b,d); end. Los parmetros actuales a o c sustituyen a los formales x,y. Si el valor de x o y se altera dentro del procedimiento, se producir la correspondiente alteracin del valor de a o c en el bloque principal. Los parmetros actuales concuerdan

INTRODUCCIN A LA INSTRUMENTACIN VIRTUAL

19

con los formales en nmero y tipo, pero tienen que ser variables, no pueden ser constantes o expresiones; permiten la transferencia de informacin en ambos sentidos. Se recomienda hacer figurar siempre en la lista de parmetros formales todos los identificadores usados en el bloque interno de un procedimiento o funcin. Se debe evitar el uso de identificadores ya utilizados en otro bloque. Aunque sea vlido usar identificadores con nombres idnticos a identificadores globales ello suele originar errores. Con estructura semejante al procedimiento, la funcin slo devuelve un valor de tipo simple (integer, real, char, boolean, declarados, string, subrango y pointer) a su punto de referencia. Se referencia especificando su nombre dentro de una expresin como si fuera una variable ordinaria de tipo simple. El nombre de la funcin viene seguido por uno o mas parmetros actuales encerrados entre parntesis y separados por coma. Los parmetros actuales pueden ser variables, constantes o expresiones de cualquier tipo adems de los simples. Ejemplo 1.3 Program Ecuacin

VAR NUM1,NUM2,NUM3,NUM4: integer FUNCTION TRINOMIO (a,b,c,x:integer):integer begin Trinomi:=a*SQR(x)+b*x+c end; begin (*Program principal*) z:=trinomio (NUM,NUM2,NUM3,NUM4) end. El identificador que representa el nombre de la funcin debe tener asignado un valor del tipo apropiado. Pueden asignarse valores al nombre de la funcin en dos o ms puntos dentro del bloque, pero tras una asignacin no se puede alterar posteriormente con otra. En LabVIEW, la utilizacin de subprogramas simplifica la programacin (captulo 7). No existe diferencia de funciones y procedimientos. Un subVI se puede ejecutar sin necesitar de ejecutar toda la aplicacin. Algo impensable en PASCAL, donde un procedimiento necesita ejecutarse dentro del programa. El pase de parmetros se hace a travs de los terminales de conexin del bloque, donde aparece un determinado nmero de terminales definidos en la creacin del icono correspondiente del subVI, donde los parmetros de entrada seran el pase por valor del PASCAL y los de salida, el pase por variable. Otra estructura de inters en LabVIEW es el Formula Node, equivalente function de PASCAL.

También podría gustarte