programación en labview basica - en español

Upload: phdmmg

Post on 14-Apr-2018

255 views

Category:

Documents


1 download

TRANSCRIPT

  • 7/27/2019 Programacin en LabView basica - En Espaol

    1/248

    Instituto gfghf

    CUJAEAutomtica y Computacin

    Instituto Superior Politcnico

    "Jos Antonio Echeverra",CUJAE, Marianao, Ciudad

    Habana, Apdo. Postal 19390,

    260 6778 , 260-2055/ FAX: 267 29 64

    PROGRAMACIN EN LABVIEW. PROGRAMACIN EN LENGUAJE G . TIPOS DE DATOSSIMPLES Y COMPLEJOS. ESTRUCTURAS DE CONTROL DE FLUJO. TRABAJO CONFICHEROS, TRABAJO CON TARJETAS DE ADQUISICIN DE DATOS, PUERTO SERIE YPARALELO, TCP-IP Y DDE.

    Monografa elaborada por Dr. Valery Moreno Vega y Msc. Adel Fernndez Prieto para el cursode Instrumentacin Virtual dictado dentro de la asignatura Automtica III en la carrera deAutomtica de la Facultad de Ingeniera Elctrica del ISPJAE.

    Direcciones de Contacto:Email:[email protected] y [email protected]: 2663342, 2602055.

    1ra Versin Revisada en Abril 2005.

    mailto:[email protected]:[email protected]:[email protected]:[email protected]
  • 7/27/2019 Programacin en LabView basica - En Espaol

    2/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    Indices

    ndice 1

    Introduccin 2

    Tema I Conceptos bsicos 4Tema II LabVIEW bsico 9

    Tema III Tipos de datos simples 29

    Tema IV Contro l de flu jo de programa en LabVIEW. Estructuras repetitivas. 55

    Tema V Ms estructuras de cont rol de flujo. 79

    Tema VI Tipos de datos complejos. arreglos y clusters 95

    Tema VII Contro les forma de onda. implementacin de func iones en LabVIEW 117

    Tema VIII Trabajo con ficheros 142

    Tema IX. Tarjetas de adquisicin de datos (PCL-818L). 161

    Tema X Trabajo con puerto serie en LabVIEW 200

    Tema XI Trabajo con puerto paralelo en LabVIEW 213

    Tema XII Comunicacin TCP-IP en LabVIEW 221

    Tema XIII Comunicacin DDE 235

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 1

  • 7/27/2019 Programacin en LabView basica - En Espaol

    3/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    Introduccin:

    En esta monografa el lector encontrar una introduccin a algunos temas relacionados con lainstrumentacin virtual y especficamente sobre la herramienta de programacin LabVIEW.Los temas abordados comprenden:

    1. LabVIEW bsicoa. Los Instrumentos virtuales.b. Los conceptos de control e indicador.c. El ambiente de desarrollo.d. Tipos de datos simples.e. Estructuras de control de flujo.f. Tipos de datos complejos.g. Confeccin de funciones (subVI).h. Trabajo con ficheros.

    2. LabVIEW avanzadoa. Trabajo con tarjetas de adquisicin de datos.b. Trabajo con puerto serie y paralelo.c. Trabajo con TCP-IP.

    d. Trabajo con DDE.

    El primer tema es necesario como introduccin a cualquier lenguaje de programacin, y en elmismo se abordan los conceptos en que se basa la programacin grfica.

    Es de destacar que en la programacin grfica todo esta muy ligado a la iconografa con quese representan los diferentes elementos. Un lector que est acostumbrado a los lenguajes porcomandos, llega a identificarse con las palabras claves que forman determinado lenguaje, porejemplo: un for, int, switch en C++, sin embargo, con LabVIEW este concepto cambia, paraahora asociar una forma o icono en vez de un conjunto de caracteres con las palabras claves.

    LabVIEW es un lenguaje de programacin construido sobre la base de objetos, sin embargo noes posible construir nuevos objetos, como pudiera hacerse con otros lenguajes como C++,

    Java, Pascal etc, es por ello que la manera de construir aplicaciones es a travs de unametodologa de programacin estructurada, utilizando como recurso la implementacin defunciones, que en este caso se denominan SubVI.

    El presente trabajo comienza con una breve explicacin de los conceptos bsicos relacionadoscon esta herramienta de trabajo, para luego exponer la totalidad de los temas medianteejercicios resueltos, que el lector puede realizar desde su computadora personal o laboratorio.De esta manera se introducen los tipos de datos, las sentencias de control de flujo y labiblioteca de funciones bsica y especializada, a travs de ejemplos. Tambin a lo largo deestos temas se proponen ejercicios como estudio independiente.

    El segundo tema que aqu hemos denominado como LabVIEW avanzado, no incluye ni muchomenos todos los temas que por este nombre pudieran estar. Simplemente nos a parecido que

    se salen del modulo bsico de esta herramienta. Es de destacar que el trabajo con las tarjetasde adquisicin de datos se realiza basado en la PCL-818L, esta es solo una, de muchsimasvariantes que existen actualmente en el mercado, sin embargo, el estudio detallado que sehace de la misma, y la metodologa de diseo de su controlador, nos parece un punto departida prctico que puede ser utilizado por los interesados para generalizarlo a tarjetas deotros fabricantes.

    Quedan fuera temas tan interesantes como el estudio de las funciones de anlisis matemtico,el uso de filtros para seales de entrada. Adems, el estudio de los DataSockets que se basanen el protocolo TCP-IP. Tambin el trabajo con OLE/Active X y la conexin con Bases de Datosprofesionales.

    Sin embargo, ya el volumen de esta edicin es suficiente mente largo. Es de destacar que su

    estructura esta completa, siguiendo una secuencia donde lo aprendido sirve de base a lo quese aprende y donde ningn concepto queda fuera de lo que se ha abordado anteriormente.

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 2

  • 7/27/2019 Programacin en LabView basica - En Espaol

    4/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    Esta edicin un poco abre una primera puerta a la escasez de bibliografa que existe alrededordel Lenguaje de programacin LabVIEW. Sabemos que estos lenguajes son susceptibles deactualizaciones, pero tambin el hecho de que los temas abordados son los suficientementebsicos, incluyendo aquellos que se denominaron como avanzados, nos da suficiente paz,como para pensar que este volumen se pueda utilizar por algunos aos, no diez o veinte, pero

    si hasta tres aos.

    Esperamos disfrute y encuentre til esta monografa. Es ese el deseo de los autores.

    Los autores.

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 3

  • 7/27/2019 Programacin en LabView basica - En Espaol

    5/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    TEMA I Conceptos Bsicos

    Primeramente antes de entrar en que es el LabView vamos a conocer nuevos conceptosacerca de la Instrumentacin Virtual. Semnticamente virtual es algo aparente, que no es realpero que se comporta como tal. En la actualidad se manejan trminos como los de

    instrumentacin virtual, laboratorio virtual, ambientes virtuales, y realidad virtual. No se debeconfundir laboratorio virtual con instrumento virtual aunque existe una estrecha relacin. Sehabla de laboratorio virtual cuando se simula un proceso o sistema que se parece y secomporta como un proceso o sistema real, para poder observar su comportamiento. Se hablade instrumento virtual cuando se emplea la computadora para realizar funciones de uninstrumento clsico pudiendo agregarle al instrumento otras funciones a voluntad. A pesar deesta pequea diferencia, un laboratorio con instrumentos virtuales es un laboratorio virtual.

    En el campo de la instrumentacin quien introdujo por primera vez el termino virtual fue lacompaa National Instrument en 1986, al elaborar un programa que de manera simple ygrfica permitiera simular un instrumento en una PC, con lo cual dio origen al concepto deinstrumento virtual; definido como un instrumento que no es real, corre en una computadora ytiene funciones definidas por programacin. El instrumento tradicional ya est definido, con

    capacidades de entrada/salida de seales y una interfaz de usuario fija. El fabricante define lafuncionalidad del instrumento, el usuario no puede cambiarla. Dada la arquitectura abierta delos PCs y las estaciones de trabajo, la funcionalidad de los instrumentos virtuales esta definidapor el usuario. Adems, la capacidad de procesamiento de los instrumentos virtuales essuperior a la de instrumentos estndares, debido a la rpida evolucin de la tecnologa de losPCs y de las estaciones de trabajo como resultado de las grandes inversiones que se efectanen la industria.

    En 1986 National Instruments introdujo LabView 1.0 con el propsito de proveer unaherramienta de software que permitiera a los ingenieros desarrollar sistemas a la medida desus necesidades, del mismo modo que la hoja de clculo permita a los hombres de negociosanalizar datos financieros. Este nombre LabView viene de las siglas en ingles LaboratoryVirtual Instrument Engineering Workbench.

    La versin del LabView 6.1 y los requerimientos mnimos son:1. 32 MB de RAM y 65 MB de HD / Parcial, 300MB Completa.2. Incluye Windows NT 4.0 o superior

    Que es el LabView?.

    El LabView es un programa para el desarrollo de aplicaciones de propositos generales, talescomo el C, el Basic, el Pascal.

    Herramientas de Desarrollo de Software

    Ambiente dedesarrollo

    Lenguaje deProgramacin

    +

    Figura1: Esquema general

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 4

  • 7/27/2019 Programacin en LabView basica - En Espaol

    6/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    Ambiente de Desarrollo

    odo ambiente de desarrollo testa formado por los siguientes elementos. Es importante que se

    epuracin s de ruptura.

    .

    variables

    Fac a

    bservar el estado de las pantallas que estamos desarrollando.

    enguaje de Programacin.

    abVIEW usa el lenguaje de programacin grfico Lenguaje G. Las posibilidades son

    Sentencias (Grficos) de control de Flujo y repetitivas.

    n de funciones. Trabajo con los eventos y

    p

    didas para cualquier tarea de programacin.

    lgo muy caracterstico de LabVIEW y es por ello que se considera una herramienta para el

    Tarjetas de adquisicin de datos

    a (Puerto serie y paralelo). Arquitectura VISA.

    atos.

    y otros).

    Cmo se trabaja con el LabVIEW?

    os programas en LabVIEW son llamados Instrumentos Virtuales (y son salvados con la

    os programas de LabVIEW constan de un panel frontal y un diagrama de bloques. En el panel

    Tbusque y se practiquen con frecuencia ya que esto permite que el desarrollo de lasaplicaciones se realice con mayor rapidez y calidad.

    D Punto

    Ejecucin paso a paso

    Ventana de seguimiento a

    ilid des de desarrollo

    Panel frontal: Para o

    Paletas de funciones y controles para adicionar a nuestro proyecto.

    Herramientas para alinear los controles y funciones.

    L

    Lnormalmente las mismas que presenta cualquier lenguaje de programacin:

    Posibilidad de declaracin de variables.

    Modularidad a travs de la confecci

    ropiedades de los controles y variables.

    Incluye bibliotecas de funciones exten

    Basado en objetos pero no permite nuevas declaraciones. Mecanismos de conexin con lenguaje C y C++ y DLL.

    Adesarrollo de instrumentos virtuales, es su extensa biblioteca de funciones especializada en laadquisicin, acceso a buses de campo, procesamiento matemtico y procesamiento de seales

    Bus GPIB.

    Entrada/ Salid

    Anlisis de seales.

    Almacenamiento de d

    Comunicacin (TCP-IP, UDP

    Matemticas.

    Lextensin .VI).

    L

    frontal se disea la interfaz con el usuario, viene a ser la cara del VI y en el diagrama debloques se programa en lenguaje G el funcionamiento del VI.

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 5

  • 7/27/2019 Programacin en LabView basica - En Espaol

    7/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    Programas de LabView (*.vi)

    Panel Frontal Diagrama Bloques+

    Lenguaje G

    Diseo de interfaz Cara delinstrumento virtual

    El Panel Frontal

    l panel frontal de un VI es una combinacin de controles e indicadores. Los controles son

    indicadores al panel frontal se seleccionan estos de la paleta de

    os controles:

    Eaquellos elementos que entregan datos al diagrama en bloques desde el panel frontal porentrada desde teclado o con el mouse, simulan los dispositivos de entrada de datos del VI ypasan los datos al diagrama en bloque del VI. Los indicadores son aquellos elementos que

    entregan datos al panel frontal desde el diagrama en bloques para ser visualizados en eldisplay, simulan los dispositivos de salida de datos del VI que toman los datos desde eldiagrama en bloque del VI.Para adicionar controles ocontroles que se encuentra en una ventana flotante y a la cual se accede a travs de accionarel botn derecho del ratn sobre el panel frontal. A los controles e indicadores se les puedecambiar el tamao, la forma, y la posicin, adems cada control o indicador tiene un pop-upmen en el cual se pueden cambiar varios atributos o seleccionar diferentes opciones.

    Los al diagrama en bloques por mediacin del teclado o el ratn, Entregan dat

    Simulan dispositivos de entrada de datos del VI

    Los indicadores Muestran datos en el panel frontal desde el diagrama en bloques para ser visualizados

    s

    Simulan los dispositivos de salida de datos del VI.

    Lgica del programa

    El Diagrama en Bloque

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 6

  • 7/27/2019 Programacin en LabView basica - En Espaol

    8/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    La ventana Diagrama almacena el diagrama en bloques del VI, el cdigo fuente grficonstrumento Virtual.

    funcionales denominados nodos,conectndose o unindose entre s segn sea el objetivo.

    rias para el VI y controlanflujo de la ejecucin del VI.

    Tipos de

    os de Datos en LabViewI32 32 (4 bytes) -2147483648 hasta 2147483647

    (Lenguaje G) del I

    Se construye este diagrama con bloques

    Estos nodos realizan todas las funciones especficas necesael

    Datos en LabView

    Tabla 3.1 TipLongWord I16 sta 3276716 (2 bytes) -32768 haByte I8 8 (1 bytes) -128 hasta 127Long Unsigned U32 32 (4 bytes) 0 hasta 4294967295Word Unsigned 6U1 16 (2 bytes) 0 hasta 65535Byte Unsigned U8 8 (1 bytes) 0 hasta 255Extended EXT 96 (12 bytes) +515-1.00E507 hasta 9.00EDouble DBL asta 1.70E+30864 (8 bytes) -5.00E-324 hSingle SGL 32 (4 bytes) -1.40E-45 hasta 3.40E+38Complex Extended )CXT 192 (24 bytes -1.00E507 hasta 9.00E+515Complex Double 8CDB 128 (16 bytes) -5.00E-324 hasta 1.70E+30Complex Single CSG 64 (8 bytes) -1.40E-45 hasta 3.40E+38Cadena(String) abc 1 byte/caracter Conjunto de Caracteres ascii.Arreglos(Array) [...] Segn el tipo de los elementos del arregloGrupos (Cluster)PathDevice

    Cmo se declaran los tipos de variables numricas ?

    rontal, LabView pone un terminalcorrespondiente a este control o indicador en el diagrama en bloque.

    les fuente y los

    rminal fuente a varios terminales destino.

    Cuando se pone un control o indicador en el panel f

    Este terminal desaparece solo cuando se borra el control o indicador.Los enlaces o alambres son los caminos de los datos entre los terminaterminales destino.

    No se permite enlazar dos terminales fuentes ni dos terminales destinos, y si sepermite enlazar un te

    RepresentacinonfiguracinC

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 7

  • 7/27/2019 Programacin en LabView basica - En Espaol

    9/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    Variables locales

    Las variables locales permiten hacer lecturas y escrituras sobre el control o indicador al cualest asociado.

    // esto es Cint a = 0 ; //declaracina = x +y *z; // escrituram = a* c; // lectura

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 8

  • 7/27/2019 Programacin en LabView basica - En Espaol

    10/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    TEMA II LabVIEW Bsico

    Familiarizarse con el entorno de trabajo de LabView, la pantalla de diseo opanel frontal, y la pantalla o ventana de flujo de programa.

    Conocer los principales indicadores y botones y las acciones ms comunesde los mismos.

    Conocer las teclas de acceso directo y las principales opciones de la ayuda yde la ejecucin del programa.

    Ejercicio 1:

    Elabore un programa en LabView que permita conectar a un termmetro y un tanque doscontroles de sintona de manera tal que cuando varen su valor el nuevo adquirido se refleje enlos indicadores tipo termmetro y en el tipo tanque.

    Solucin:

    Cuando se ejecuta LabView por primera vez aparece una pantalla similar a la siguiente:

    En esa pantalla podemos seleccionar varias opciones entre las cuales estn el abrir un nuevoIntrumento Virtual (New VI), abrir uno ya existente, buscar ejemplos, demos, tutoriales, etc.

    Para crear un nuevo programa (VI) damos clic en el botn . Acontinuacin aparece una ventana simular a la que se presenta a continuacin:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 9

  • 7/27/2019 Programacin en LabView basica - En Espaol

    11/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    La primera pantalla que aparece es el panel frontal o ventana de diseo de la aplicacinmientras que la que aparece en segundo plano es la ventana de flujo de programa o dediagrama. Recuerde que puede conmutar entre uno y otro. Comprubelo con la combinacinCtrl+E. Muchas veces es conveniente organizar las dos ventanas de forma tal que se dividan lapantalla cada una en una mitad. Esto facilita el desarrollo del programa. Para lograr dichadistribucin LabView dispone de la combinacin Ctrl+T (tambin se puede realizar mediante laopcin del men Windows/Tile Left and Right). Una vez que se realiza esta accin se obtiene lasiguiente distribucin:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 10

  • 7/27/2019 Programacin en LabView basica - En Espaol

    12/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    Ya estamos listo para comenzar a darle solucin al ejercicio.

    Primero seleccionemos los controles que podremos. Para ello seleccionamos mediante un clic

    la ventana izquierda (panel frontal) y a continuacin damos clic derecho. Debe aparecer unmen emergente llamado controls. Seleccionamos en controls la primera de las opciones,

    que se llama numerics y se representa en el men controls con el smbolo . Apareceralgo similar a:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 11

  • 7/27/2019 Programacin en LabView basica - En Espaol

    13/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    Observe que en ambas ventanas, la de Controls y la Numeric, en el caption de las mismas

    aparece el nombre de la ventana precedido de una especie de tachuela, o sea, . Estesmbolo aparece aqu porque si queremos dejar la ventana fija (para evitar que cada vez quese quiera poner un nuevo control tengamos que dar clic derecho y buscar la opcin que nosinteresa) podemos hacerlo cambiando el estado de la tachuela dando clic encima de ella.Como en esta aplicacin vamos a ubicar ms de un control y algunos indicadores, dejemos fijala ventana de Numeric. Si se procede a ubicar el puntero del mouse en la tachuela queaparece justo antes de numeric en el caption de la ventana del mismo nombre se observa quedicha tachuela cambia de posicin o forma:

    y si en ese momento damos clic obtenemos:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 12

  • 7/27/2019 Programacin en LabView basica - En Espaol

    14/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    Los controles tipo sintona son los que se identifican por knob y dial. Son los primeros queaparecen en la tercera fila de la pantalla anterior. Para incorporarlos a nuestro panel frontalsimplemente los seleccionamos (el tipo de cursor debe ser el de seleccin que se coment enconferencia) que es el que por defecto debemos tener en estos momentos. Si no es ese el quetenemos podemos cambiarlo visualizando la ventana de herramientas (opcin windows/ShowTools Palette) y seleccionando el mencionado tipo de cursor. El procedimiento se muestra enlas dos ventanas siguientes (el cursor seleccionado aparece hundido en comparacin con elresto:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 13

  • 7/27/2019 Programacin en LabView basica - En Espaol

    15/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    Continuando con la idea original de insertar los controles en el panel frontal, seleccionamos losde tipo sintona (1ero y segundo de la tercera fila) en la paleta o ventana numeric mostrada enlas figuras precedentes. La seleccin se realiza dando clic encima del de inters y colocndoloen el panel frontal (de la forma usual con que se hace esto en lenguajes visuales como el C++Builder).Despus de realizada la operacin las pantallas deben tener una apariencia como sigue (se

    muestra el segmento de inters de las ventanas):

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 14

  • 7/27/2019 Programacin en LabView basica - En Espaol

    16/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    y:

    Note que a medida que se introducen los controles en el panel frontal en la pantalla dediagrama (figura anterior) van apareciendo variables asociadas a los controles. Dichasvariables se identifican con un nombre (el mismo del control, de manera que si se cambia en el

    control se cambia en la pantalla de diagrama). En dependencia del tipo de elemento numricoque se seleccione las variables declaradas sern de escritura (fijan valores) o de lectura(reciben valores). En este caso los controles del panel frontal tienen variables de escritura. Es

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 15

  • 7/27/2019 Programacin en LabView basica - En Espaol

    17/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    fcil identificar cuando una variable es de lectura o escritura pues LabView nos lo indica conuna especie de saeta, que indica la direccin del flujo de los datos. En el ejemplo anterior

    ambas variables estn representadas con los smbolos . Note que en dicho smboloaparece la saeta indicando salida, o sea, escritura.En el smbolo anterior tambin se puede leer la cadena DBL que nos dice de que tipo de datoses esa variable. Cuando se estudien los tipos de datos simples veremos que este tipo (que pordefecto tienen los controles) es el tipo Double. Los tipos de datos que se definen por defectopueden cambiarse. Para ello seleccionamos la variable en la pantalla de diagrama y damos clicderecho. En el men emergente que aparece buscamos la opcin Representation:

    Note que hay varios tipos de datos. El que actualmente est seleccionado aparece encerradoen un recuadro azul como en la figura anterior. Si se quiere seleccionar otro basta conseleccionarlo con clic izquierdo. Observe que en dependencia de la variable se podrseleccionar para ella distintas representaciones o tipos de datos, pero no todos. En este casohay varios tipos de datos que aparecen en gris (los ltimos), indicndonos que no se admitenesos tipos para el actual elemento o control.Hagamos un cambio, y del tipo DBL por defecto que tiene llevmoslo a U8 que es un tipo dedato entero corto sin signo (8 bits, de 0 a 255 como posibles valores). Para ello seleccionamosen el men de representation el elemento identificado como U8. Los cambios se manifiestanen la pantalla de diagrama cambiando el color de la variable para indicar el otro tipo (cada tipotiene un color). Debemos obtener:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 16

  • 7/27/2019 Programacin en LabView basica - En Espaol

    18/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    Note que en el panel frontal la escala del control tambin cambi para adaptarse al nuevo tipode variable (por ejemplo, no tiene valores decimales pues es el control es de tipo entero).De igual forma (clic derecho sobre el control) la apariencia del control en el panel frontal y de suescala se puede modificar, as como algunas de sus propiedades. En las figuras que aparecena continuacin se ponen algunos ejemplos:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 17

  • 7/27/2019 Programacin en LabView basica - En Espaol

    19/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 18

  • 7/27/2019 Programacin en LabView basica - En Espaol

    20/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    Otras opciones incluyen escalas logartmicas (Mapping), espaciado arbitrario o uniforme, etc.El control tambin se puede redimensionar, o sea, el tamao y posicin inicial que aparece enel panel frontal son atributos que se pueden modificar en tiempo de diseo. Cada control loindica de una manera fcil de identificar, usualmente mediante un rectngulo que encierra alcontrol o parte de este durante el movimiento del mouse sobre el elemento. A continuacin semuestra un ejemplo:

    Note que se han sealado cuatro esquinas. Moviendo el puntero delmouse para cualquiera de esas esquinas se puede modificar el radiode la circunferencia que representa el botn de sintona. El resto delos elementos del control, excepto la etiqueta (en este caso Dial),se redimensionan al redimensionarse la circunferencia.

    A continuacin se representa al mismo elemento redimensionado.

    Hasta este punto se han situado en la pantalla los elementos grficos que harn la funcin decontroles. Ahora corresponde seleccionar los indicadores que mostrarn su valor de acuerdo

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 19

  • 7/27/2019 Programacin en LabView basica - En Espaol

    21/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    a los controles. Estos indicadores estn situados en la misma paleta, o sea en la paleta decontroles numricos. En este caso utilizaremos el indicador Tank y el thermometer, que seseleccionan de la siguiente manera:

    Para luego obtener el siguiente diseo:

    Para terminar y como se ha mencionado en los talleres, debemos colocar un botn que permitaa los usuarios terminara la aplicacin. Para ello debemos seleccionar este control de la paletade funciones numricas. Esto se realiza de la siguiente forma:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 20

  • 7/27/2019 Programacin en LabView basica - En Espaol

    22/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    El diseo final del Panel Frontal queda:

    Ahora corresponde trabajar en la ventana del diagrama en bloques. Para ello podemos utilizarlas teclas de acceso rpido (Ctrl+E). En esta ventana debemos utilizar el lenguaje deprogramacin G para establecer la lgica de nuestra aplicacin. Antes de comenzar tenemoslas cinco variables que corresponden a los cinco controles que hemos colocado en la pantalla.El cdigo luce de la siguiente forma:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 21

  • 7/27/2019 Programacin en LabView basica - En Espaol

    23/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    El primer cdigo G que debemos programar es el necesario para comenzar y terminar laaplicacin. Para ello se tiene el control Stop Button representado por la variable booleana

    stop (verde ), en la ventana del diagrama. Mientras esta variable sea verdadera se debeejecutar nuestro programa. En caso contrario debe terminar la aplicacin. Esta situacin semodela en programacin a travs de un ciclo while.

    Para incorporar un ciclo while a nuestra aplicacin se selecciona en la paleta de funciones el

    boton: y luego se busca la opcin while loop.

    Una vez que se seleccione, debe irse a la pantalla del diagrama. Ahora el cursor de laaplicacin cambia para indicarle que usted debe seleccionar el rea que ocupar el ciclo, estose realiza arrastrando el ratn de manera que seleccione el rea necesaria, como ilustra lasiguiente pantalla.

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 22

  • 7/27/2019 Programacin en LabView basica - En Espaol

    24/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    Al finalizar se obtiene la siguiente estructura de programa G:

    Para finalizar el programa solo nos resta realizar las asignaciones correspondientes. Es fcildarse cuenta de que las variables que corresponden a los controles deben ser asignadas a las

    variables que representan a los indicadores. Para ello debemos utilizar el cursor que sepuede obtener utilizando la tecla (Tab) o seleccionndolo directamente en la paleta deherramientas tools Palette. Una vez conectados el cdigo queda como sigue:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 23

  • 7/27/2019 Programacin en LabView basica - En Espaol

    25/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    Note que el flujo de los datos va desde el control hacia el indicador y note tambin que la

    representacin grfica de ambas variables pese a ser del mismo tipo de datos no es igual: Elborde es ms grueso en los controles que en los indicadores, as como la flecha es de salidaen los primeros y de entrada en los segundos.

    Finalmente debemos conectar el control booleano a la condicin de salida del ciclo do..While

    . Para ello debemos utilizar un negador ya que el botn por defecto est en falso. Para ellose utilizan los operadores boolenos que se encuentran en la paleta de funciones segn semuestra debajo:

    Al conectarlos queda de la siguiente forma:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 24

  • 7/27/2019 Programacin en LabView basica - En Espaol

    26/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    Con ello queda resuelto el problema planteado. Sin embargo ahora debemos correr laaplicacin, para ello se debe utilizar la barra de botones colocada en la ventana del diagrama:

    El botn permite ejecutar la aplicacin, mientras qu el botn permite terminar deejecutar la aplicacin.

    Para realizar una pausa debemos utilizar el botn , luego podemos utilizar los botones

    para ejecutar paso a paso la aplicacin. El primero ejecuta instruccin porinstruccin, entrando en las funciones si las hubiera, mientras que el segundo si encontrarauna funcin, la ejecuta como si fuera un solo paso. El tercer tipo de botn termina la ejecucinpaso a paso.

    Un botn muy interesante es que ejecuta la aplicacin de manera continua perointroduciendo una demora entre instruccin e instruccin para que pueda depurarse laaplicacin. Adems se puede observar los valores asignados a las variables y funciones ascomo los valores devueltos por estas.

    Si quisiramos utilizar una ventana de depuracin se debe situar el ratn en una de lasconexiones o asignaciones relacionadas con la variable que se debe depurar y dar clicderecho: A continuacin seleccionar la opcin Probe como se muestra a continuacin:

    Luego se ve el valor de la variable en una ventana contextual como la siguiente:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 25

  • 7/27/2019 Programacin en LabView basica - En Espaol

    27/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    Si en el paso anterior a este hubiramos seleccionado la opcin Set Breakpoint entonces elcdigo se ve de la siguiente forma:

    Y la aplicacin se ejecutar hasta este punto, interrumpindose antes de realizar la asignacin.

    El segundo ejercicio que se propone para este laboratorio permitir conocer losdiferentes tipos de botones que existen en el Labview. Una vez realizado el mismo sedeber conocer cuando uti lizar uno u otro en dependencia de la aplicacin.

    Como toda aplicacin esta debe comenzar con la realizacin del cdigo necesario paraejecutar y terminar la aplicacin. Para ello debe colocar un botn booleano de salida y realizarel cdigo siguiente:

    Ahora completamos la interfaz de la aplicacin (Panel de Control) con los seis tipos de botonesque se pueden colocar en LabView, adems colocaremos seis leds que nos indicarn lamanera en que funcionan estos tipos de botones. La interfaz debe quedar de la siguientemanera:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 26

  • 7/27/2019 Programacin en LabView basica - En Espaol

    28/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    Luego usted debe programar la opcin Mechanical Action de los tipos de controles volanos,segn se indica en el texto. Para ello debe dar clic derecho sobre el botn de la siguientemanera:

    Luego en la ventana del cdigo se asigna a cada botn un led que estar encendido solocuando el valor del botn es verdadero. Esto queda as:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 27

  • 7/27/2019 Programacin en LabView basica - En Espaol

    29/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    El funcionamiento de los tres primeros botones es muy parecido. En el primer caso el led seencender si se presione el botn, y permanecer en ese estado hasta que se vuelva apresionar el botn. El segundo caso es idntico pero en este caso cambiar cuando se deje depresionar el botn. En el tercer caso se encender el led mientras se tenga presionado elbotn.

    Los siguientes tipos de botones tienen relacin con el tiempo que demora el Labview en leer elcambio de estado de los botones. En el cuarto caso, inmediatamente despus que se presioneel ratn sobre el botn este cambiar de estado y permanecer en l hasta tanto el Labviewpueda leer el cambio de estado. Luego se retornar al estado anterior. La quinta variante es

    muy parecida pero en este caso el botn no cambiar de estado hasta que se deje depresionar el ratn.La sexta variante funciona de manera que el botn cambia de estado con solo presionar elbotn y permanece encendido todo el tiempo en que se tiene presionado el ratn sobre lebotn. Una vez que se suelte el ratn, el botn permanecer en este estado hasta tanto ellabview sea capaz de notarlo, luego se retornar al estado anterior.

    Para poder entender bien el funcionamiento de los diferentes tipos de botones, sobre todo los

    tres ltimos, es necesario que ejecute la aplicacin utlizando la herramienta de depuracinque hace que el Labview lea con mayor lentitud los controles. Esto hace que se puedaobservar claramente cuando es que se produce la lectura del estado de los botones por ellabview.

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 28

  • 7/27/2019 Programacin en LabView basica - En Espaol

    30/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    TEMA III Tipos de Datos s imples

    Familiarizarse con el entorno de trabajo de LabView, la pantalla de diseo opanel frontal, y la pantalla o ventana de flujo de programa.

    Conocer los tipo de datos pr incipales: numricos, booleanos y de cadena. Conocer los operadores y funciones bsicas para el trabajo con los tipos de

    datos simples.

    Ejercicio 1:

    Elabore un programa en LabView que permita indicar el nivel de un tanque en un elementogrfico de Labview. El valor del nivel vara entre 0 y 100 unidades y debe obtenerse a travs deuna funcin aleatoria. El programa debe indicar un estado de alarma cuando el nivel sobrepaseun valor de referencia que los usuarios deben establecer. El estado de alarma se indicar pormedio del color del elemento grfico seleccionado: Azul: estado normal, Rojo: estado dealarma.

    Solucin:

    Cuando se ejecuta LabView por primera vez aparece una pantalla similar a la siguiente:

    En esa pantalla podemos seleccionar varias opciones entre las cuales estn el abrir un nuevoIntrumento Virtual (New VI), abrir uno ya existente, buscar ejemplos, demos, tutoriales, etc.

    Para crear un nuevo programa (VI) damos clic en el botn . Acontinuacin aparece una ventana simular a la que se presenta a continuacin:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 29

  • 7/27/2019 Programacin en LabView basica - En Espaol

    31/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    La primera pantalla que aparece es el panel frontal o ventana de diseo de la aplicacinmientras que la que aparece en segundo plano es la ventana de flujo de programa o dediagrama. Recuerde que puede conmutar entre uno y otro. Comprubelo con la combinacinCtrl+E.

    Pasos de la solucin

    1. Primero seleccionemos los controles que pondremos. Para ello seleccionamos mediante unclic la ventana izquierda (panel frontal) y a continuacin damos clic derecho. Debe aparecer unmen emergente llamado controls. Seleccionamos en controls la primera de las opciones,

    que se llama numerics y se representa en el men controls con el smbolo .Aparecer algo similar a:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 30

  • 7/27/2019 Programacin en LabView basica - En Espaol

    32/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    Como se puede observar el elemento Tank es el ms indicado para representar el nivel quees requerido en el ejercicio. Para colocarlo en el panel frontal del instrumento virtual queestamos diseando, debemos seleccionarlo en la paleta de controles y luego soltarlo en elpanel frontal.

    El resultado es el siguiente:

    Existen varias propiedades que podemos variar para este control. Para ello debemos dar clicderecho sobre el control y seleccionar por ejemplo la opcin de mostrar el indicador digital,como se muestra en la figura siguiente:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 31

  • 7/27/2019 Programacin en LabView basica - En Espaol

    33/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    2. Segn el enunciado del problema debemos colocar la escala del tanque entre los valores de

    0 y 100 unidades. Para ello debemos seleccionar el cursor en la paleta de herramientas o

    pulsar la tecla tab, hasta que el cursor en la pantalla quede de la siguiente manera: .Una vez que se tiene seleccionado este cursor se da doble-clic sobre el mximo valor de laescala del indicador tank, se cambia la escala de 10 a 100 y se presiona la tecla enter. Esto

    se realiza de la siguiente manera:

    Paso 1 Paso 2

    3. El otro elemento grfico necesario para resolver este ejercicio es un control numrico paraestablecer la referencia de la alarma. De la misma manera que se seleccion el elementoTank ahora debemos seleccionar un control digital:

    Luego la pantalla queda como sigue:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 32

  • 7/27/2019 Programacin en LabView basica - En Espaol

    34/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    Obsrvese que el nombre del control queda seleccionado, si en este momento se utiliza el

    teclado, se puede cambiar directamente el encabezado del control. En este caso debemoscolocar el nombre: referencia de nivel.

    4. Para terminar la interfaz de usuario se debe colocar un botn booleano que permitaterminar la ejecucin de un programa. Esto se realiza en la paleta de controles seleccionando

    los elemento booleanos para luego escoger Stop Button:

    La interfaz final queda como sigue:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 33

  • 7/27/2019 Programacin en LabView basica - En Espaol

    35/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    Ya estamos en condiciones de programar, en base a los elementos grficos seleccionadospara nuestra interfaz, la lgica que dar solucin a nuestro ejercicio. Para ello pasamos

    directamente a la ventana del diagrama (Ctrl+E).

    6. El primer cdigo G que debemos programar es el necesario para comenzar y terminar laaplicacin. Para ello se tiene el control Stop Button representado por la variable booleana

    stop (verde ), en la ventana del diagrama. Mientras esta variable sea verdadera se debeejecutar nuestro programa. En caso contrario debe terminar la aplicacin. Esta situacin semodela en programacin a travs de un ciclo while.

    Para incorporar un ciclo while a nuestra aplicacin se selecciona en la paleta de funciones el

    boton: y luego se busca la opcin while loop.

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 34

  • 7/27/2019 Programacin en LabView basica - En Espaol

    36/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    7. Una vez que se seleccione, debe irse a la pantalla del diagrama. Ahora el cursor de laaplicacin cambia para indicarle que usted debe seleccionar el rea que ocupar el ciclo, esto

    se realiza arrastrando el ratn de manera que seleccione el rea necesaria, como ilustra lasiguiente pantalla.

    Al finalizar se obtiene la siguiente estructura de programa G:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 35

  • 7/27/2019 Programacin en LabView basica - En Espaol

    37/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    8. El ciclo tiene dos variable implcitas: la iteracin representada por y la condicin de

    salida, representada por . Si negamos la variable booleana y la conectamos a la condicinde salida, se construye la lgica necesaria para la ejecucin y salida del programa.

    Para negar la variable booleana stop debemos utilizar los operadores booleanos que se

    seleccionan en la paleta de funciones como sigue:

    9. All debemos seleccionar como nuestra la figura, el operdor Not. Y colocarlo en nuestraventana del diagrama de la siguiente forma:

    Antes de conectarlos Despus de conectarlos

    10. El tipo de datos que representa a nuestro tanque y al controlador de referencia es por

    defecto Double . Pero esto se puede cambiar de la misma manera que se hizo en ellaboratorio anterior.

    Antes de seguir debemos verificar que la variable Tank est configurada como indicador y lavariable referencia de nivel est configurada como control.(Recordar la simbologa)

    11. Segn el enunciado del ejercicio el tanque debe recibir el valor de nivel de una funcinaleatoria. En el caso de labview esta funcin se encuentra entre las funciones numricas y sepuede escoger como sigue:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 36

  • 7/27/2019 Programacin en LabView basica - En Espaol

    38/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    12. Esta funcin brinda un valor aleatorio de tipo double entre 0 y 1. Sin embargo nuestraaplicacin requiere que el nivel vara entre 0-100. Para ello debemos multiplicar la salida deesta funcin por el valor entero 100. Con ello se logra nuestro objetivo. La funcin demultiplicacin se encuentra en la misma paleta de funciones numrica y se representa por el

    smbolo: que recibe dos valores y devuelve la multiplicacin de ambos. Adems de esta

    propia paleta debe utilizarse una constante numrica entera que contenga el valor 100que ser el otro elemento necesario.

    Despus de colocar estas funciones y variables se obtiene el siguiente diagrama:

    13. Ahora debemos conectar los elementos segn la lgica a seguir. En nuestro caso quedacomo sigue:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 37

  • 7/27/2019 Programacin en LabView basica - En Espaol

    39/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    En cada iteracin del ciclo el resultado de la funcin aleatoria se multiplica por 100 y este valorse asigna a la variable que representa al control tanque.

    14. Ahora debemos comparar el valor del tanque con la referencia entrada por el usuario. Sieste valor es mayor que la referencia se cambiar el color del tanque a rojo, sino, el tanqueser de color azul.

    Para ello es necesario una funcin de comparacin, que se puede encontrar en la paleta defunciones Comparison:

    Ahora la pantalla queda como sigue:

    Para modificar el color del tanque debemos utilizar la propiedad FillColor que seselecciona de la siguiente manera:

    15. De clic derecho sobre la variable Tank y seleccione la opcin Create, a continuacinseleccione la opcin Property Node segn se muestra a continuacin:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 38

  • 7/27/2019 Programacin en LabView basica - En Espaol

    40/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    En la pantalla del diagrama se muestra el siguiente cdigo:

    16. En este caso la propiedad de la variable tankque se muestra por defecto es Visible, sinembargo si damos clic derecho sobre ella y seleccionamos la opcin Properties y luego laopcin Fill Color entonces nuestra propiedad se convierte en la que buscamos. El cdigo es elque sigue:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 39

  • 7/27/2019 Programacin en LabView basica - En Espaol

    41/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    17. Si se observa detenidamente podemos ver que la propiedad Fill Color de la variableTank es de lectura, sin embargo se necesita variar la misma en dependencia del resultado dela comparacin del valor y la referencia. Para cambiar esta propiedad a escritura debemos darclic derecho sobre la misma y seleccionar la opcin Change To Write. Con ello el resultado

    grafico es de a .

    18. Para continuar nuestra aplicacin es necesario un bloque de toma de decisin (bloque if-then-else) que permita escribir un color u otro en dependencia del resultado de la comparacin.Este bloque puede encontrarse en la paleta de funciones, especficamente en la paleta

    Comparison la funcin Select esta instruccin retorna el valor conectado en t o fen dependencia del valor de s. Si s es verdadero retorna t, en caso contrario retorna f. ty fpueden ser de cualquier tipo de dato. Al colocarlo en nuestro diagrama de bloque, podemospresionar Ctrl+H para obtener la ayuda contextual que se muestra debajo. El diagrama G ahoraluce como sigue:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 40

  • 7/27/2019 Programacin en LabView basica - En Espaol

    42/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    El valor que debe retornar la funcin Select debe ser Rojo, si la condicin es verdadera y Azulsi es falsa. Para ello es necesario utilizar constantes enteras que representen los coloresdeseados.

    19. Esto es posible utilizando la paleta de funciones y escogiendo dos constantes Color BoxConstant, una para el rojo y otra para el azul. La manera de hacerlo se muestra abajo.

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 41

  • 7/27/2019 Programacin en LabView basica - En Espaol

    43/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    El cdigo queda como sigue:

    20. Por defecto el color que toman es negro, para cambiar esto debemos tomar el cursorEn la paleta de herramientas y presionar sobre la constante para escoger el color deseado.Esto se realiza de la manera mostrada arriba.

    El cdigo queda como sigue:

    Sin conexin Con conexin

    21. La aplicacin est casi lista, ahora debemos ejecutarla, para ello presionamos el botn de

    men y si se quiere ejecutar en modo de depuracin se pueden escoger las variantes ya

    estudiadas. .

    Al ejecutarla podemos percibir la rapidez con que varia el nivel, para que sea ms efectiva lasimulacin se puede introducir un bloque de demosra dentro del ciclo iterativo.

    22. Para ello debemos ir a la paleta de funciones y utilizar la funcin Wait Until Next msMultiple y colocar una constante de demora de 500 ms. Como se muestra a continuacin.

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 42

  • 7/27/2019 Programacin en LabView basica - En Espaol

    44/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    Ejercicio 2

    Elabore un programa en Labview que: dado el nombre y la edad de una persona. Elabore unacadena de salida que diga lo siguiente: Usted se llama: nombre y naci en el ao: YYYY dondelas cadenas subrayadas son: el nombre y la resta del ao actual con la edad respectivamente.

    Para disear la interfaz de usuario de este programa debemos utilizar 1 controles de cadenapara entrar el nombre, 1 control numrico de tipo entero sin signo, de 8 bytes, ya que la edadsiempre es positiva y nunca mayor que 256 que es el entero ms pequeo que se puededeclarar y 1 indicador de cadena para la salida. Adems debemos colocar un control booleanoque permita terminar la ejecucin del programa.

    Los pasos para construir la interfaz son los siguientes:

    1. Abrir un nuevo VI, tal y como lo hicimos en los ejercicios anteriores.2. Adicionar un control de cadena.

    Seleccin del control Panel Frontal

    3. Adicionar un control numrico.

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 43

  • 7/27/2019 Programacin en LabView basica - En Espaol

    45/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    Seleccin del control Panel Frontal

    4. Cambiar el tipo de dato asociado con el control numrico.

    6. Adicionar un indicador de cadena.

    Seleccin del control Panel Frontal

    7. Adicionar un control booleano.

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 44

  • 7/27/2019 Programacin en LabView basica - En Espaol

    46/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    Seleccin del control Panel Frontal

    Ya estamos en condiciones de programar, en base a los elementos grficos seleccionadospara nuestra interfaz, la lgica que dar solucin a nuestro ejercicio. Para ello pasamosdirectamente a la ventana del diagrama (Ctrl+E).

    6. El primer cdigo G que debemos programar es el necesario para comenzar y terminar laaplicacin. Para ello se tiene el control Stop Button representado por la variable booleana

    stop (verde ), en la ventana del diagrama. Mientras esta variable sea verdadera se debeejecutar nuestro programa. En caso contrario debe terminar la aplicacin. Esta situacin semodela en programacin a travs de un ciclo while.

    Para incorporar un ciclo while a nuestra aplicacin se selecciona en la paleta de funciones el

    boton: y luego se busca la opcin while loop.

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 45

  • 7/27/2019 Programacin en LabView basica - En Espaol

    47/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    7. Una vez que se seleccione, debe irse a la pantalla del diagrama. Ahora el cursor de laaplicacin cambia para indicarle que usted debe seleccionar el rea que ocupar el ciclo, esto

    se realiza arrastrando el ratn de manera que seleccione el rea necesaria, como ilustra lasiguiente pantalla.

    Al finalizar se obtiene la siguiente estructura de programa G:

    8. El ciclo tiene dos variable implcitas: la iteracin representada por y la condicin de

    salida, representada por . Si negamos la variable booleana y la conectamos a la condicinde salida, se construye la lgica necesaria para la ejecucin y salida del programa.

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 46

  • 7/27/2019 Programacin en LabView basica - En Espaol

    48/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    Para negar la variable booleana stop debemos utilizar los operadores booleanos que seseleccionan en la paleta de funciones como sigue:

    9. All debemos seleccionar como nuestra la figura, el operdor Not. Y colocarlo en nuestraventana del diagrama de la siguiente forma:

    Antes de conectarlos Despus de conectarlos

    10. La cadena de salida que queremos formar debe ser construida a partir de las variables queya declaramos y de un conjunto de cadenas constantes. Una de ellas debe almacenar el valorUsted se llama: otra el valor Y naci en el ao: para ellos se va a la paleta de funciones yse busca la paleta readicionada con el tratamiento de cadenas. A continuacin se muestra sulocalizacin:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 47

  • 7/27/2019 Programacin en LabView basica - En Espaol

    49/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    11. Se colocan dos controles del tipo y se selecciona el cursor en la paleta deherramientas se utiliza la tecla tab, hasta que el cursor en la pantalla quede de la siguiente

    manera: para introducir el valor de las constantes como muestra la figura.

    12. En este caso debemos concatenar cada una de las cadenas en el orden mostrado en lafigura anterior. Adems, hay que restarle al valor de la edad el ao actual para obtener el aode nacimiento y este resultado aadirlo a las cadenas. Para ello se puede utilizar la funcinFormat Into String que se encuentra:

    13. Esta funcin retorna una cadena de caracteres que esta formada por cada uno de loselementos que se le pasan como parmetros. Estos parmetros pueden ser de cualquier tipode dato simple (DBL, SGL, EXT, U8, U16, U32, I8, I16, I32) sin embargo el formato debe ser

    especificado de manera similar a como lo hace la funcin de C printf o sea : %d para enteros,%f para nmeros con coma, %s para cadenas. En nuestro caso el formato ser: %s%s%s%d,ya que son tres cadenas y un valor entero (el ao). Para ello debe introducirse en el cdigo denuestro programa una constante de la misma forma que se realiz en el paso 11 y se inicializa

    as: %s%s%s%d para luego conectarla a la funcin segn se muestra a continuacin:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 48

  • 7/27/2019 Programacin en LabView basica - En Espaol

    50/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    14. Como se observa esta funcin solo tiene una posible conexin de entrada pero eso es solopor el momento. Usted debe pararse justo en la base de la funcin y esperar a que cambie eltipo de cursor. Cuando esto suceda, debe presionar el botn izquierdo del ratn y arrastrarhasta tener exactamente cuatro entradas que deben coincidir con los tipos de datosseleccionados con anterioridad. El diagrama queda as:

    15. Para obtener el ao debemos introducir una constante numrica entera para almacenar el

    valor del ao actual 2002 y un operador de resta desde la paleta de funciones numricas. Alefectuar la resta del ao menos la edad se tiene el ao de nacimiento.

    16 Ahora solo nos resta conectar las funciones con las variables para terminar. Para ejecutar e

    programa, presionamos el botn de men y si se quiere ejecutar en modo de depuracin

    se pueden escoger las variantes ya estudiadas. .

    Ejercicio 3

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 49

  • 7/27/2019 Programacin en LabView basica - En Espaol

    51/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    Se desea construir un programa que permita desglosar una fecha introducida bajo el formatoDD/MM/YYYY. El programa debe mostrar el da en un indicador de cadena; el mes, por sunombre, en un ComboBox y el ao en un indicador de cadena.

    1. Para realizar este ejercicio es necesario utilizar un control de cadena para introducir lafecha. Debemos utilizar los dos indicadores que mostrarn el da y el ao. Estos controles

    se deben introducir de la misma manera que se hizo en el ejercicio anterior (pasos 2 y 6).Como en los ejemplos anteriores se debe colocar un control booleano que sirva parafinalizar la aplicacin. El resultado debe ser como se muestra a continuacin.

    2. Para mostrar el mes por su nombre debemos utilizar un indicador de tipo enumerado Enumque se encuentra en la paleta de controles bajo el botn Ring & Enum

    3. Al introducir el elemento Enum, este toma la propiedad de control. Sin embargo, el uso quese le va dar es como indicador. Es por ello que se debe dar clic derecho sobre l y seleccionar

    la opcin Change To Indicator. Ahora estamos listos para introducir cada uno de los docemeses del ao. Para ello se selecciona el cursor en la paleta de herramientas o se utiliza la

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 50

  • 7/27/2019 Programacin en LabView basica - En Espaol

    52/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    tecla tab hasta que el cursor en la pantalla quede de la siguiente manera . Luego secoloca el cursor dentro del indicador y se introduce el primer nombre enero, para introducirotro mes se da clic derecho sobre el control y se selecciona la opcin Add Item After. De estamanera se entran todos los nombres de los meses.

    `

    La figura que se muestra encima es el panel frontal correspondiente a nuestro programa.

    En estos momentos estamos listos para programar el cdigo que de solucin a nuestro

    problema. Para ello debemos movernos hacia la pantalla del diagrama (Ctrl+E).Al igual que los ejercicios anteriores debemos programar en primer lugar el cdigo G que nospermita terminar la ejecucin de nuestro programa. Los pasos son similares a los vistosanteriormente y finalmente debe quedar de la siguiente forma:

    Es de sealar que la variable correspondiente al indicador de tipo Enum es entera y cada mestiene un nmero entero asociado. Para enero ser el 0, febrero el 1 y as sucesivamente.

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 51

  • 7/27/2019 Programacin en LabView basica - En Espaol

    53/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    4. Para desglosar la fecha es necesario encontrar el carcter / que limita el da del mes, y el

    mes del ao. La funcin Search/Split String que se encuentra en la paleta de funcionespermite encontrar un carcter especfico dentro de una cadena. Esta funcin necesita comoparmetros la cadena donde debe buscar, el carcter que se quiere encontrar y eldesplazamiento a partir del inicio de la cadena donde se comenzar la bsqueda. La funcin

    retorna tres valores. La subcadena que se forma hasta el carcter que se busca, la subcadenaa partir del carcter que se busca (incluyendo el carcter buscado) y el ndice o desplazamientodonde se encontr el carcter.

    El resultado de aplicar esta funcin a la cadena que contiene la fecha es el siguiente:

    Si la fecha es: 12/01/2005

    Subcadena hasta el carcter /: 12Subcadena restante: /01/2005

    5. Para tomar el mes es necesario eliminar el primer carcter / de la cadena restante/01/2005y volver aplicar la funcin anterior. Para ello se puede utilizar la funcin String

    Subset que recibe como parmetros una cadena, la cantidad de caracteres que se

    quieren tomar y el desplazamiento o ndice a partir de donde se tomara la subcadena.

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 52

  • 7/27/2019 Programacin en LabView basica - En Espaol

    54/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    6. El resultado de aplicar esta funcin a la cadena /01/2005 es: 01/2005. Ahora se deberepetir el paso 4 para obtener el mes. Sin embargo este resultado se debe mostrar en el controlEnum. Como se dijo esta es una variable de tipo entera, por lo que debemos convertir elresultado de la funcin, que es una cadena con el nmero del mes, a un valor numrico entero.Para ello el labview cuenta con funciones de conversin de tipos. En nuestro caso esto se

    realiza con la funcin Decimal String To Number . El diagrama queda como sigue:

    Para obtener el ao se debe repertir el paso 5. con lo cual se elimina el carcter /y seobtiene el ao. El diagrama final queda as:

    Para ejecutar e programa, presionamos el botn de men y si se quiere ejecutar en modo

    de depuracin se pueden escoger las variantes ya estudiadas. . Al correr elprograma se puede percibir que el mes que se obtiene est desplazado en uno con el quesera el correcto. Eso es as por que en la variable de tipo Enum el mes de enero tiene

    asignado el valor 0, este mes no existe. Para resolver este problema, despus de la conversinde cadena a nmero se debe restar una unidad. El diagrama queda de la siguiente manera:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 53

  • 7/27/2019 Programacin en LabView basica - En Espaol

    55/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 54

  • 7/27/2019 Programacin en LabView basica - En Espaol

    56/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    TEMA IV Control de Flujo de programa en LabVIEW. Estructuras repetit ivas.

    Lazos de contro l de programa (While y For). Shift Registers (Registros de Desplazamiento). Nodo frmula. Visualizacin grfica de datos.

    Ejercicio 1:

    Realice un programa que permita encontrar el mximo de 100 nmeros generadosaleatoriamente. Represente grficamente los nmeros generados.

    Desarrollo:

    El ejercicio una vez terminado debe conducir a una representacin en Lenguaje G como la quese muestra a continuacin en la ventana de diagrama o cdigo del LabView:

    Veamos como desarrollar paso a paso dicho ejercicio. Primero, una explicacin de lo que senos pide.Se necesitan generar 100 nmeros aleatorios, lo que implica utilizar un generador de nmerosaleatorios y un lazo de control de programa o repeticin que permita que ese generador denmeros aleatorios nos entregue 100 de dichos nmeros.Cada vez que se nos entregue un nmero, o sea, con cada iteracin del bucle o lazo, se debecomparar el nmero generado con el nmero mximo hasta ahora generado. Eso nos indicaque debemos realizar una comparacin que busque el mximo y almacenarlo para compararen cada iteracin con el nuevo nmero.

    Se nos pide que representemos grficamente dichos nmeros por lo que debemos agregar ungrfico a nuestro diseo encargado de plotear en cada iteracin el nmero aleatorio a procesar.Como descomponer entonces con LabView dichas operaciones?

    1. Primero debemos crear el lazo de control o bucle. Para ello seleccionamos de la paletade funciones del LabView las funciones de estructuras y dentro de ella la del ciclo For.El ciclo for es el escogido porque en este caso necesitamos repetir la operacin decomparacin en la bsqueda de un mximo 100 veces, invariablemente. Siestuviramos sujetos a alguna condicin entonces deberamos de haber seleccionadoun lazo condicional, o sea, un While. La siguiente figura ilustra como hacer la seleccin:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 55

  • 7/27/2019 Programacin en LabView basica - En Espaol

    57/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    2. Una vez que se ha puesto el ciclo for debemos definir el alcance del mismo. Serecuerda que un ciclo for en LabView siempre va desde 0 hasta N-1, siendo N el valora definir. Aqu queremos realizar las operaciones 100 veces por lo que debemos definirpara N un valor de 100. Esto se realiza creando una constante y conectndola con N.Es muy sencillo, la siguiente figura ilustra como hacerlo. El men que all aparece seobtiene dando clic derecho encima de N:

    3. Cuando la constante se crea, aparece con valor 0. Debemos cambiar dicho valor yponer 100, como se muestra en la siguiente figura:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 56

  • 7/27/2019 Programacin en LabView basica - En Espaol

    58/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    4. Necesitamos ahora generar un nmero aleatorio y compararlo con algn mximo. Porsupuesto, el primer nmero aleatorio no tiene referencia de comparacin, pero como

    debemos comparar dentro del ciclo for, basta con compararlo con el menor valorposible que se pudiera generar, en este caso 0, con lo cual garantizamos que el primernmero aleatorio siempre ser el primer mximo contra el cual comparar despus lossucesivos que se generarn. LabView presenta un componente que realiza lacomparacin entre dos fuentes o nmeros, y devuelve el mnimo valor de entre los dosy el mximo. La siguiente figura muestra como seleccionar dicho componente(Functions/Comparison/Max & Min):

    Se inserta en la ventana de diagrama dentro del ciclo for:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 57

  • 7/27/2019 Programacin en LabView basica - En Espaol

    59/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    5. Necesitamos ahora encontrar alguna funcin que genere nmeros aleatorios. LabViewtiene un componente en Functions/Numeric/Random Number (0-1):

    Si quisiramos generar un nmero aleatorio en un rango diferente podemos multiplicar elnmero generado con esta funcin por el valor mximo que queremos generar. Puedemodificar el ejercicio como estudio independiente ahora intentando buscar el mximo de 100nmeros aleatorios en el rango de 0-50.Una vez introducidos en el diagrama el generador de nmeros aleatorios y la funcin quedevuelve el mximo entre dos nmeros debemos entonces buscar la forma de almacenar elmximo que resulta de cada iteracin para compararlo con el nmero generado en la siguienteiteracin. Si se analiza bien esto lo que necesitamos es comparar el nmero generado en laiteracin i (denotemos por n(i) a dicho nmero) con el mximo que result de la iteracin i-1.Esta es una de las funciones que puede brindarnos el registro de desplazamiento o shiftregister de LabView.

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 58

  • 7/27/2019 Programacin en LabView basica - En Espaol

    60/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    El shift register desde el punto de vista de la programacin es una estructura tipo arregloasociada con lazos de control o bucles de programa como el for y el while y que almacenavalores anteriores producidos en dichos lazos. As, por ejemplo, si obtenemos como resultadode una iteracin i un valor v(i) al final de dicha iteracin, al comienzo de la prxima al iincrementarse en uno, dicho valor se almacena como v(i-1). Dos iteraciones hacia delante serv(i-2) y as sucesivamente. La siguiente tabla ilustra dicho concepto con ejemplos numricos:

    Iteracin V(i) V(i-1) V(i-2) V(i-3) V(i-4) V(i-5)0 5 - - - - -1 3 5 - - - -2 0.7 3 5 - - -3 1 0.7 3 5 - -4 -1 1 0.7 3 5 -5 0 -1 1 0.7 3 56 2 0 -1 1 0.7 3

    y as sucesivamente....

    6. Para adicionar Shift Registers con LabView se selecciona la estructura for y se da clic

    derecho sobre ella. El siguiente men aparece:

    Al seleccionar de dicho men la ltima opcin, Add Shift Register (Adicionar registro dedesplazamiento) se inserta en el diagrama como se muestra en la siguiente figura:

    7. Antes de realizar las conexiones entre los elementos debemos adems seleccionaralgn componente que nos permita visualizar grficamente los nmeros aleatorios que

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 59

  • 7/27/2019 Programacin en LabView basica - En Espaol

    61/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    se van generando. Para ello nos vamos al panel frontal y con clic derecho visualizamosel siguiente men:

    Al seleccionar la opcin Controls/Graph/Waveform Chart obtenemos un grfico como el que serepresenta en la pantalla frontal de la siguiente figura, donde tambin se representa elcontenido de la ventana de diagrama hasta este momento:

    8. A continuacin se realizan las conexiones entre los elementos. La salida del generadorde nmeros aleatorios se conecta al bloque de comparacin de nmeros, y a la entradadel control grfico. El shift register de la derecha debe almacenar el ltimo valor delmximo calculado y que se obtiene como salida del mdulo de comparacin. Lasiguiente figura muestra las conexiones a realizar:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 60

  • 7/27/2019 Programacin en LabView basica - En Espaol

    62/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    9. Una vez realizadas estas conexiones el ejercicio est prcticamente concluido. Note

    que la primera vez que se compara en el bloque de comparacin se hace entre unprimer nmero aleatorio y el valor del shift register. Ya se explic como funciona el shiftregister y debemos notar que antes de concluir la primera iteracin no tenemos unvalor con el cual comenzar para el shift register que adquiere uno al final de cadaiteracin. Eso nos indica que tenemos que inicializarlo, darle un valor inicial con elcual empezar y evaluar la iteracin 0 . Note adems que cuando se llega a la ltimaiteracin el valor actual que contiene el shift register es el del ltimo mximo calculado,y por tanto el valor que debemos reportar como resultado. Es por ello que entoncesdebemos crear un indicador para visualizar el ltimo mximo y una constante paradefinir la condicin inicial del shift register. Las figuras que se muestran a continuacinilustran como hacerlo. Los mens que all aparecen se obtienen al dar clic derechoencima de los shift registers.

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 61

  • 7/27/2019 Programacin en LabView basica - En Espaol

    63/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    El resultado final se muestra en la siguiente figura. Note que el valor inicial del shift register es

    0.00 pues es el mnimo que puede tomar el nmero aleatorio y no afectar la seleccin delprimer mximo.

    10. Antes de ejecutar el programa es conveniente modificar algunos parmetros delgrfico, en particular los relacionados con los ejes, que debemos modificar parapermitir la auto escala. Las figuras a continuacin muestran la manera de hacerlo(siempre clic derecho en el objeto para obtener el men):

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 62

  • 7/27/2019 Programacin en LabView basica - En Espaol

    64/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    11. Finalmente salvamos el ejercicio y lo ejecutamos. Un ejemplo de ejecucin se muestraen la siguiente figura:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 63

  • 7/27/2019 Programacin en LabView basica - En Espaol

    65/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    Por ltimo, sealar que si queremos que el grfico se represente ms lentamente podemosincluir una demora (Functions/Time & Dialog/ Wait Until Next ms Multiple) o seleccionar elindicador de ejecucin paso a paso. La siguiente figura muestra como quedara el ejerciciopara una demora de 50 milisegundos:

    En la figura anterior tambin se a insertado otro indicador, llamado max(x,y). Que funcintendra?

    Ejercicio 2:En este ejercicio se propone realizar la descomposicin de la fecha introducida en un controltipo Edit (Edicin) de una manera ms eficiente (comparada con la primera solucin a esteejercicio que ya se vio en una gua anterior), haciendo uso de los shift registers.

    Desarrollo:

    En clases anteriores se ofreci una solucin al problema de desglose de una fecha en sus

    componentes de da, mes y ao. Aquella solucin introduca algunos componentes para elprocesamiento de cadenas que se encuentran dentro de las funciones de LabView. En dicha

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 64

  • 7/27/2019 Programacin en LabView basica - En Espaol

    66/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    solucin los componentes se repetan, pero hay una forma ms eficiente de resolverlohaciendo uso de los shift registers. La solucin final se ofrece en la siguiente figura:

    Se recuerda la funcin y terminales de los dos elementos principales involucrados:

    Antes de pasar a una explicacin ms o menos detallada de como construir la solucin en lapantalla de diagrama veamos algunos razonamientos de como proceder con los shift registers:

    1. Se quiere dividir una cadena que representa la fecha en sus tres elementosconstitutivos, o sea, el da, el mes y el ao que la conforman.

    2. La operacin siempre es la misma: se extrae de la cadena una subcadena querepresenta un componente de la fecha (o el da, o el mes o el ao) y se elimina de la

    subcadena que resulta de extraer dicho componente el separador /.3. El proceso se repite 3 veces.

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 65

  • 7/27/2019 Programacin en LabView basica - En Espaol

    67/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    El punto 3 nos indica que podemos utilizar un lazo condicional, o sea, un while, pues siempredentro del while se har lo mismo (punto 2). La subcadena que representa el componenteextrado debe almacenarse para brindar los resultados finales. Como entonces utilizar los shiftregisters? Quiz una manera en que podemos verlo es representando el proceso, para unafecha ejemplo, a travs de las iteraciones. La siguiente tabla lo ilustra:

    Cadena inicial Iteracin Componenteresultante

    Subcadenadespus deextrado elcomponente

    Subcadenadespus deextraer elseparador (/)

    8/02/2005 0 8 /02/2005 02/200502/2005 1 02 /2005 20052005 2 2005

    Como se puede apreciar por cada iteracin se obtiene un componente resultante, primero elda, despus el mes y por ltimo el ao. Si denotamos por c(i) al componente resultante sepuede ver que despus de la iteracin 2 c(i)=2005, c(i-1)=02 y c(i-2)=8. Dicha secuencia es laque precisamente nos pueden brindar los shift register si creamos los suficientes en el

    diagrama como para almacenar los valores c(i-2), c(i-1) y c(i). Necesitamos adems de unaiteracin a otra almacenar la subcadena resultante despus de extraer el separador que ser lanueva cadena inicial con la cual trabajar en la prxima iteracin. Veamos pues como hacerlo.

    1. Primero debemos de crear el lazo condicional while en nuestra aplicacin:

    2. Debemos ahora definir la condicin de parada. Queremos que el lazo funcionemientras la iteracin no sea mayor que dos, por tanto, la condicin de ejecucin del

    while debe ser i

  • 7/27/2019 Programacin en LabView basica - En Espaol

    68/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    3. En el panel Frontal debemos insertar un control de tipo String para poder teclear lafecha que se quiere descomponer (Controls/String & Path/String Control):

    Note que en la siguiente figura el control generado en el panel frontal tiene asociado unavariable que debemos ubicar fuera del lazo while pues es la cadena inicial que hay quedescomponer.

    4. Insertamos ahora en la ventana de diagrama el componente Search/Split String

    (Functions/String/Aditional String Functions/Search Split String):

    5. Una vez introducido dicho componente se crea el primer shift register, que tendr lafuncin de almacenar la subcadena resultante despus de cada iteracin. En lasiguiente figura aparece representado. A la funcin de dividir (Split) cadenas se leasigna en cada iteracin la cadena inicial (ver tabla pgina 13) que est almacenada enel shift register (por ejemplo, si en la iteracin que acaba de concluir qued 02/2005ese valor se almacena en el shift register de la derecha y cuando se incrementa i parainiciar una nueva iteracin esa cadena (ahora, despus de incrementada i es elresultado de la iteracin i-1) LabView la pasa o ubica en el shift register de la izquierdapara que sea usada en la iteracin i).

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 67

  • 7/27/2019 Programacin en LabView basica - En Espaol

    69/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    Como ya mencionamos anteriormente, los shift register tienen que tener un valor inicial, paraque sea el valor con el cual comienza a trabajar la iteracin 0. En este caso el valor inicial es lacadena inicial introducida en el edit, o sea, la fecha completa que se quiere dividir. En la figuraanterior se mostr la conexin que inicializa al shift register.

    6. Una vez introducido este registro de desplazamiento hay que completar las entradasdel modulo de divisin de cadena. Para ello se agregan dos constantes en la entrada, yse le dan, respectivamente, valores de / (que es el separador) y 0. Dichos valores leindican al Labview que la cadena que tiene en su entrada y que ser dividida en dos secomenzar a explorar desde el primer elemento (elemento 0) hasta detectar el carcter/.

    Esta funcin tiene dos salidas, la primera es la subcadena encontrada antes del carcter quedivide la cadena de entrada en dos cadenas (en nuestro ejemplo /). La segunda salida es lacadena que se encuentra desde el separador hasta el final. Note que incluye al separador.Las dos salidas sern de utilidad, la que est delante del separador es el componente de lafecha que estamos separando (da, mes o ao) y la segunda la que hay que seguir separando.Que hacer con la primera? Hay que almacenarla pues de lo contrario en la prxima iteracintendr otra componente resultante de la comparacin que cambiar la salida de la funcinSearch/Split String.

    7. Para ello debemos utilizar un nuevo shift register, en este caso, uno que tendr la

    funcin de los componentes resultantes. La siguiente figura indica la forma deinsertarlo:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 68

  • 7/27/2019 Programacin en LabView basica - En Espaol

    70/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    8. Que conectar al shift register que no aparece conectado en la figura anterior?Recuerde que ser el encargado de almacenar la cadena que en la prxima iteracinservir de inicio para buscar el nuevo componente de la fecha. Note adems que no sepuede conectar directamente a la salida de la primera funcin (Search/Split Function)pues esa salida incluye todava el separador (ver tabla pg. 13) y hay que eliminarlo.Para ello se usa la funcin que se representa en la siguiente figura(Functions/String/String Subset)

    Tambin se pudo utilizar una segunda funcin split, pero la que se ha escogido es la msrepresentativa de lo que se quiere hacer puesto que recibe a su entrada una cadena ydevuelve la subcadena que se encuentra desde la posicin k hasta la l, donde k y l son otrasentradas de la funcin. Nosotros queremos tomar la cadena que sale de la funcinSearch/Split... y quitarle el separador, o sea, quedarnos con el subconjunto o subcadena quese encuentra desde la posicin 1 (en la posicin 0 est el separador hasta el final):

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 69

  • 7/27/2019 Programacin en LabView basica - En Espaol

    71/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    9. Ahora si podemos conectar la salida de esta funcin String Subset al shift register de

    su derecha:

    10. Hasta aqu lo que est programado funciona bien pero no nos permite visualizar todoslos resultados. El resultado se obtiene en el shift register que en la figura anterior noest conectado. Que componente se obtiene ah despus de concluida la ltima (i=3)iteracin? La respuesta es que se obtiene el valor del shift register asociado (el de la

    parte derecha a su mismo nivel) en la iteracin i-1. Cual es ese valor? Del ejemplo dela Tabla en la Pgina 13 podemos ver que es el ao. Note que al final de la ltimaiteracin el valor del shift register asociado de la derecha era . Conectemos entoncesun indicador tipo string al shift register no conectado hasta ahora (clic derecho, en elmen que aparece seleccionar Create/Indicator). Cambiando el nombre del indicadorpor el de ao obtenemos:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 70

  • 7/27/2019 Programacin en LabView basica - En Espaol

    72/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    11. Eso nos permite visualizar el ao. Pero y el mes? Si el ao fue el valor resultante en laiteracin i-1, es de suponer que el mes es el valor resultante en la iteracin i-2. Peroese valor no lo tenemos almacenado. Hay que almacenarlo. Crear elementos del shiftregister para las iteraciones i-2, i-3, i-4,.... es fcil . Solo hay que agregar un elementoal shift register ya creado. La siguiente figura muestra como hacerlo. El men queaparece en ella se obtiene con clic derecho sobre el shift register de la derecha (elconectado al indicador de ao):

    El resultado:

    12. Debemos agregar otro nivel, (el de i-3) para el componente da de la fecha:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 71

  • 7/27/2019 Programacin en LabView basica - En Espaol

    73/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    A cada nivel creado se le asocia el indicador de cadena correspondiente, de la misma formaque se hizo con el ao:

    13. Antes de concluir debemos realizar una operacin ms. Hay 3 elementos en el registrode desplazamiento asociado con el ao, el mes y el da que no han sido inicializados.Que valor les corresponde? Aqu en realidad no tiene importancia el valor que le demospues solo estn conectados (los elementos del shift register) y por lo tanto el valor queal concluir el while mostrarn sern los componentes de la cadena fecha. Sinembargo, es una prctica sana inicializarlos, y por eso se har, dndole un valor inicialde que indicar cadena vaca. La siguiente figura muestra como hacerlo:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 72

  • 7/27/2019 Programacin en LabView basica - En Espaol

    74/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    La constante de cadena vaca se encuentra definida en la biblioteca de funciones de LabViewFunctions/String/Empty String constant.En la ventana o panel frontal nuestro diseo sera ms o menos as. Para probar que nuestroprograma se ejecuta debemos antes de ejecutarlo darle un valor inicial a la fecha que sedescompondr, editando en el control Fecha el valor:

    Despus de una ejecucin, y para esa cadena se obtiene:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 73

  • 7/27/2019 Programacin en LabView basica - En Espaol

    75/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    Ejercicio 3:

    Realice un programa en LabView que permita grficar la funcin seno hasta que se oprima elbotn parar.

    Desarrollo:

    Este ejercicio nos permitir conocer como trabajar con el Nodo Frmula. Que se nos pide?Graficar la funcin seno(x) hasta que se oprima un botn. Eso nos indica que debemos ubicarun lazo o bucle de repeticin condicional, o sea, un while. La condicin de parada del while laproducir el clic sobre un botn. Dentro del while debemos de estar evaluando, para cadaiteracin a la funcin seno(x). Que valor le damos a x? Podemos usar el mismo valor de laiteracin i. El nico problema es que el seno(x) espera el valor en radianes por lo que hay queconvertir el valor de i a dicha unidad, y despus calcular el seno. Este es un caso tpico en queun nodo frmula nos simplifica mucho el trabajo. Veamos la solucin.

    1. Primero comenzamos creando el ciclo while y un botn (ya se sabe como hacerlo declases anteriores):

    En la figura anterior aparece nuevo el elemento negado, que conecta al botn con la condicinde ejecucin del while. En clases anteriores vimos que se poda tambin cambiar la condicinde ejecucin del while con clic en ella: aparece un circulo rojo. En versiones anteriores a la 6.0no exista dicha posibilidad.

    2. Despus de introducido el while se crea el nodo frmula segn se muestra en la

    siguiente figura:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 74

  • 7/27/2019 Programacin en LabView basica - En Espaol

    76/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    3. Una vez creado el nodo frmula tenemos que indicar cuales sern las variables deentrada de dicho nodo y cuales las de salida. Comenzando por las de entrada seadicionan de la siguiente manera (el men aparece al dar clic derecho en el nodofrmula):

    4. A dicha entrada le damos el valor de nx:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 75

  • 7/27/2019 Programacin en LabView basica - En Espaol

    77/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    5. Ahora debemos editar dentro del nodo frmula el contenido de lo que se quierecalcular. Para este caso son 3 lineas. Note la similitud entre C++ o Matlab y el lenguajeque admite el nodo frmula. Dicho nodo es compatible con ANSI C.

    6. La frmula convierte de grados a radianes y calcula el seno. El valor calculado lodevuelve en la variable y, que hay que declararla como salida del nodo de la mismaforma que la entrada pero ahora seleccionando la opcin Add Output. Una vez hechoesto se realiza la conexin entre el indicador de iteracin i y la variable de entrada nx.La siguiente figura muestra como debe quedarnos la aplicacin hasta este momento enla ventana de diagrama:

    7. La salida, que se produce en cada iteracin, podemos conectarla a un componentepara plotear grficos de la misma manera a como lo hicimos en el ejercicio 1:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 76

  • 7/27/2019 Programacin en LabView basica - En Espaol

    78/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    La salida y del nodo frmula se conecta al grfico:

    La figura que se muestra a continuacin es el resultado de la ejecucin del programa:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 77

  • 7/27/2019 Programacin en LabView basica - En Espaol

    79/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 78

  • 7/27/2019 Programacin en LabView basica - En Espaol

    80/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    TEMA V Mas estructuras de control de flujo.

    Dominar la estructura de cont rol CASE. (if-then-else switch[C++] ) Dominar la estructura Secuence para secuenciar el flujo de programa

    (alternativa a la programacin por nodos). Dominar la estructura de manejo de eventos.

    Ejercicio 1:

    Elabore un programa en LabView que permita calcular la raz cuadrada a un nmero real. Elprograma debe analizar si valor introducido es menor que cero (situacin de error) e indicar alusuario por medio de un cuadro de mensaje la situacin.

    Solucin:

    Como toda aplicacin esta debe comenzar con la realizacin del cdigo necesario paraejecutar y terminar la aplicacin. Para ello debe colocar un botn booleano de salida y realizarel cdigo siguiente:

    Ahora debemos disear la interfaz de usuario de nuestra aplicacin. Para ello simplementecolocamos un control numrico digital que reciba por parte del usuario el valor al cual se lecalcular la raz cuadrada. Adems, debemos colocar un indicador (tambin digital en estecaso) para visualizar el resultado de la operacin.

    Esto queda de la siguiente manera:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 79

  • 7/27/2019 Programacin en LabView basica - En Espaol

    81/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    Ya estamos listos para programar en Cdigo G la lgica de nuestra aplicacin. Por lo tantoutilizando (Ctrl+E) vamos a la pantalla del diagrama en bloques, que luce de la siguiente forma:

    La operacin de clculo de la raz cuadrada implica realizar una operacin de comprobacinantes de efectuarla, y esto depende del valor del nmero. Si este es positivo se puede hacer,sino debe indicarse un mensaje. Vase que existe una condicin mediante la cual se bifurca elflujo de programa. Para ello es necesario utilizar una estructura clsica del tipo IF-THEN-ELSE,que el caso de labVIEW se denomina Case Structure y se puede obtener segn se indica enlas figuras siguientes:

    Dr . Val ery Moreno Vega y Msc. Adel Fer nndez Pr i eto. 80

  • 7/27/2019 Programacin en LabView basica - En Espaol

    82/248

    Depar t amento de Aut omt i ca y Computaci n 18/ 11/ 2006

    Esta estructura est representada por un marco y un titular que representa el

    rea donde se programa el cdigo asociado a la condicin de

    true: y el cdigo asociado a la condicin de false: . Note que ustedpuede conmutar entre uno y otro segn desee utilizando las flechas, y que los elementos decdigo para uno u otro son diferentes.

    Segn nuestra lgica, si el valor numrico es positivo, se realiza la operacin de raz, esto seconsigue utilizando las funciones numricas como se muestra a continuacin:

    Dr . Val ery Moreno Vega