lab 2 reporte labview 2

Upload: michael-huaracha

Post on 09-Apr-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/8/2019 Lab 2 Reporte Labview 2

    1/19

    REPORTE

    INTRODUCCION TEORICA

    ESTRUCTURAS

    En lapaleta de funciones la primera opcin es la de las estructuras. stas controlan el flujo del programa, biensea mediante la secuenciacin de acciones, ejecucin de bucles, etc.

    Las estructuras se comportan como cualquier otro nodo en el diagrama de bloques, ejecutando automticamentelo que est programado en su interior una vez tiene disponibles los datos de entrada, y una vez ejecutadas lasinstrucciones requeridas, suministran los correspondientes valores a los cables unidos a sus salidas. Sin embargo,cada estructura ejecuta su subdiagrama de acuerdo con las reglas especficas que rigen su comportamiento, yque se especifican a continuacin.

    Un subdiagrama es una coleccin de nodos, cables y terminales situados en el interior del rectngulo queconstituye la estructura. ElFor Loop y el While Loop nicamente tienen un subdiagrama. El Case Structure y elSequence Structure, sin embargo, pueden tener mltiples subdiagramas, superpuestos como si se tratara de cartasen una baraja, por lo que en el diagrama de bloques nicamente ser posible visualizar al tiempo uno de ellos.Los subdiagramas se construyes del mismo modo que el resto del programa

    Las siguientes estructuras se hallan disponibles en el lenguaje G.

    1. ESTRUCTURA CASE

    Al igual que otras estructuras posee variossubdiagramas, que se superponen como si de una baraja de cartas setratara. En la parte superior del subdiagrama aparece el identificador del que se est representando en pantalla. Aambos lados de este identificador aparecen unas flechas que permiten pasar de un subdiagrama a otro.

    En este caso el identificador es un valor que selecciona el subdiagrama que se debe ejecutar en cada momento.

  • 8/8/2019 Lab 2 Reporte Labview 2

    2/19

    La estructura Case tiene al menos dos subdiagramas (True y False). nicamente se ejecutar el contenido deuno de ellos, dependiendo del valor de lo que se conecte alselector.

    2. ESTRUCTURA SEQUENCE

    De nuevo, este tipo de estructuras presenta variossubdiagramas, superpuestos como en una baraja de cartas, demodo que nicamente se puede visualizar una en pantalla. Tambin poseen un identificador del subdiagramamostrado en su parte superior, con posibilidad de avanzar o retroceder a otrossubdiagramas gracias a las flechassituadas a ambos lados del mismo.

    Esta estructura secuencia la ejecucin del programa. Primero ejecutar el subdiagrama de la hoja (frame) N 0,despus el del N 1, y as sucesivamente.

    Para pasar datos de una hoja a otra se pulsar el botn derecho del ratn sobre el borde de la estructura,

    seleccionando la opcinAdd sequence local.

    3. BUCLE For

  • 8/8/2019 Lab 2 Reporte Labview 2

    3/19

    Equivalente al bucleforde los dems lenguajes de programacin. Ejecuta el cdigo dispuesto en su interior unnmero determinado de veces.

    Para pasar valores de una iteracin a otra se emplean los llamadorshift registers. Para crear uno, se pulsar elbotn derecho del ratn mientras ste se halla situado sobre el borde del bucle, seleccionando la opcinAdd ShiftRegister. El shift registerconsta de dos terminales, situados en los bordes laterales del bloque. El terminalizquierdo almacena el valor obtenido en la iteracin anterior. El terminal derecho guardar el datocorrespondiente a la iteracin en ejecucin. Dicho dato aparecer, por tanto, en el terminal izquierdo durante laiteracin posterior.

    Se puede configurar unshift registerpara memorizar valores de varias iteraciones previas. Para ello, con el ratnsituado sobre el terminal izquierdo delshift registerse pulsar el botn derecho, seleccionando a continuacin laopcinAdd Element.

  • 8/8/2019 Lab 2 Reporte Labview 2

    4/19

    4. BUCLE While

    Es el equivalente al bucle while empleado en los lenguajes convencionales de programacin. Su funcionamientoes similar al del buclefor.

    El programa comprueba el valor de lo que se halle conectado al terminal condicional al finalizar el bucle. Por lotanto, el bucle siempre se ejecuta al menos una vez.

    Con esta estructura tambin se pueden emplear los shift registerspara tener disponibles los datos obtenidos eniteraciones anteriores (es decir, para memorizar valores obtenidos). Su empleo es anlogo al de los bucles for,por lo que omitir su explicacin.

    5. NODOS CON FORMULAS

    La estructura denominada Formula Node se emplea para introducir en el diagrama de bloques frmulas de unmodo directo. Resulta de gran utilidad cuando la ecuacin tiene muchas variables o es relativamente compleja.Por ejemplo, se desea implementar la ecuacin:

    y = x2

    + x + 1

    Empleando bloques pertenecientes al lenguaje G quedara:

  • 8/8/2019 Lab 2 Reporte Labview 2

    5/19

    Si se utiliza laformula node, se obtiene:

    Para definir una frmula mediante esta estructura, se actuar del siguiente modo:

    - En primer lugar, se deben definir las variables de entrada y las de salida. Para ello, se pulsa con el botnderecho del ratn sobre el borde de la formula node. A continuacin se seleccionar Add Inputo AddOutput, segn se trate de una entrada o una salida, respectivamente. Aparecer un rectngulo, en el que sedebe escribir el nombre de la variable (se distingue entre maysculas y minsculas). Todas las variables quese empleen deben estar declaradas como entradas o salidas. Las que se empleen como variables intermediasse declararn como salidas, aunque posteriormente no se unan a ningn bloque posterior.

    - Una vez definidas las variables a emplear, se escribirn la o las frmulas en el interior del recuadro (paraello se emplea la labeling tool). Cada frmula debe finalizar con un ;.

    - Los operadores y funciones que se pueden emplear se explican en la ayuda de LabVIEW, y son los que semuestran a continuacin:

    La sintaxis de una expresin incondicional es la siguiente:

    Si el valor lgico de la expresin condicionales true se ejecutar texpresin. Si, por el contrario, fuese false, lo

  • 8/8/2019 Lab 2 Reporte Labview 2

    6/19

    que se aplicar ser fexpresin.

    Como ejemplo considrese el siguiente fragmento de cdigo:

    Se puede implementar este fragmento de cdigo empleando un formula node, tal y como se muestra en lasiguiente figura:

    DESARROLLO:

    Todas las partes se desarrollaron de acuerdo a lo que se especifica en la prctica, siguiendo los pasos indicados.

    Parte 1. Autoajuste

    Este programa genera nmeros aleatorios hasta que el numero generado cumpla la especificacin delnmero deseado que se ha especificado. El terminal de conteo del bucle registrara el nmero deiteraciones antes que el nmero se alcance.

    Abrir un nuevo panel frontal

    Construir el siguiente esquema en el panel frontal . Number to match (funtionsnumeric numeric control ). Current number y #of iterations (funtions --- numeric numericindicador ), para colocar las indicaciones de uso hacer uso de Tool palette edit text .El control Number to Match especfica el nmero al cual se desea alcanzar. El indicadorCurrent Number indica en valor actual del nmero aleatorio. El indicador # of iterationsvisualiza el numero de iteraciones antes de alcanzar al numero deseado.

  • 8/8/2019 Lab 2 Reporte Labview 2

    7/19

    Para configurar las restricciones , de un click derecho en el control Number to match y delmen seleccionar Data Range . La caja de dialogo Data Range aparecera .

    Configurar la caja de dialogo de data range con los siguiente valores

    Despus dar clic en OK

    Dar un clic derecho en el indicadorcurrent number y del men seleccionarFormat &Presicion , aparecer la caja de dialogo de Format &Presicion .En Precisin of typeseleccionar Digits of precision y en digits colocar 0

  • 8/8/2019 Lab 2 Reporte Labview 2

    8/19

    . Dar u clic en OK

    Repetir los dos pasos anteriores para # of iterations Construir el siguiente diagrama de bloques

    Funtions ---numeric--- add , multiply , Round to nearest , increment, Randomnumber(0-1)

    Funtions ---comparison --- not equal ? Dar click derecho sobre Multiply ---create ---constant

  • 8/8/2019 Lab 2 Reporte Labview 2

    9/19

    Y en el valor de la constante poner el numero 10000

    Ubicar el bucle while en Funtions structures Guarde el VI como Auto Match.vi. Para probar el programa en Number to match poner un valor cualquiera y ejecutar el

    VI

    Si se desea visualizar como el VI actualiza el indicador Current number presionar elbotn Highlight Execution que esta en el diagrama de bloques

    Parte 2. Ejemplo de uso de Registros de Desplazamiento VI

    Construir el siguiente esquema en el panel frontal

    X(i) visualizara el valor actual ,X(i-1 )el valor anterior y asi sucesivamente , al final tendremos lo tresvalores anteriores al valor final Construir el siguiente diagrama de bloques

  • 8/8/2019 Lab 2 Reporte Labview 2

    10/19

    Colocar los registros de despalamiento , para crear un registro de desplazamiento de un clickderecho al lado izquierdo o derecho de los bordes de los bucles y seleccionando Add ShiftRegister

    El bucle for se encuentra en Funtions ---Structutes

    Guarde el archivo como Shift Register.vi

    Parte 3. Raz Cuadrada VI

    Construir el siguiente diagrama de bloques

  • 8/8/2019 Lab 2 Reporte Labview 2

    11/19

    Construir el siguiente diagrama de bloques

    La estructura case se encuentra ubicada en Funtions---Structures Square root esta ubicada en Funtons ---numeric Greater of equal to 0? Esta ubicada en Funtions ----- comparison One button dialog esta ubicada en funtions Dialog&user interface ; este boton hara visualizar el

    siguiente mensaje cuando la raz no sea un valor positivo Error...Negative Number , en el terminalde mensaje de one button dialog dar clic derecho sobre mensaje y crear una constante y topear elmensaje anterior

    Guarde el VI como Square Root.vi Cuando se cumpla el caso TRUE la raiz cuadrada se visualizara en el indicador Square root value

    .

    Cuando se cumpla el caso false se visualizara en pantalla lo siguiente , al hacer click en OK en Squreroot value aparece el valor de -99999, constante que se pueso en el caso false al indicador

  • 8/8/2019 Lab 2 Reporte Labview 2

    12/19

    Parte 4. Tiempo de Emparejamiento en un VI

    Este VI calcula el tiempo que tome en generar un numero aleatorio que sea igual al numeroespecificado. Abrir el VI auto match.vi. Modificar el Panel de control como se muestra en la figura

    Cambiar el number to match , current number of iterations a una reoresentacion I32 , para

    esto haga click derecho en cada uno de ellos aparecera un menu selecionar Representation----I32 .

  • 8/8/2019 Lab 2 Reporte Labview 2

    13/19

    Cambiar a time to match a una representation DBL Modificar el diagrama de bloques como sigue :

  • 8/8/2019 Lab 2 Reporte Labview 2

    14/19

    Cambiar el bucle while por una estructura Squence La estructura Squence esta ubicada en Funtions --- Structures

    Dar un clic derecho en el borde de la estructura squence y seleccionar del men emergenteAdd frame after as podremos visualizar la secuencia en la que se encuentra la estructura

    Tick count se encuentra ubicada en Funtions timing . Esta funcin lee el valor actual del relojdel sistema operativo y retorna el valor en milisegundos.

    Guardar el archivo como Time to Match.vi.

    Por lo tanto Tick count que esta fuera de la estructura squence tomara el valor cuando empieze la secuencia , yel tick count que esta dentro (secuencia 1)tomara el valor en la ultima secuencia , entonces el valor del tick countfuera de la estructura y el tick count dentro de la estructura (secuencia 1) se restan y al dividirlo entre 1000obtendremos el tiempo en segundos

    RESULTADOS

    AUTOAJUSTE

  • 8/8/2019 Lab 2 Reporte Labview 2

    15/19

    REGISTROS DE DESPLAZAMIENTO VI:

    RAIZ CUADRADA

    TIEMPO DE EMPAREJAMIENTO EN UN VI

  • 8/8/2019 Lab 2 Reporte Labview 2

    16/19

    PREGUNTAS

    1. Cuales son las diferencias entre un bucle For y un bucle While?

    Un Bucle While es una estructura que repite una seccin de cdigo hasta que se cumpla una condicindeterminada.

  • 8/8/2019 Lab 2 Reporte Labview 2

    17/19

    En cambio , un Bucle For ejecuta una seccin de cdigo un determinado nmero de veces.

    2. Como los datos son transferidos entre las iteraciones de los bucles?

    Para el bucle for:

    El terminal izquierdo almacena el valor obtenido en la iteracin anterior. El Terminal derecho guardar eldato correspondiente a la iteracin en ejecucin. Dicho dato aparecer, por tanto, en el Terminal izquierdodurante la iteracin posterior.

    Se puede configurar un shift registerpara memorizar valores de varias iteraciones previas. Para ello, con elratn situado sobre el terminal izquierdo del shift registe,rse pulsar el botn derecho, seleccionando acontinuacin la opcinAdd Element.

  • 8/8/2019 Lab 2 Reporte Labview 2

    18/19

    Para el bucle while:

    Con esta estructura tambin se pueden emplear losshift registerspara tener disponibles los datos obtenidosen iteraciones anteriores (es decir, para memorizar valores obtenidos). Su empleo es anlogo al de los buclesfor, por lo que omitir su explicacin.

    3. Como se ejecuta una estructura Case?

    Una estructura Case, son dos o mas subdiagramas de manera que solo uno de ellos se ejecuta (el que cumplala condicin) cuando la estructura se ejecuta. Esto depende del valor que cableemos al selector representadocon el simbolo [?]. la estructura se ejecuta solamente un caso a la vez. Un valor de entrada determina cualsubdiagrama se ejecutara.

    El titulo del selector se encuentra en la parte superior de la estructura, contiene el nombre del valor delselector que corresponde en cada caso y puede ser decrementada o incrementada a travs de las flechas decada lado.

    Conecta un valor de entrada, o selector, al terminal del selector para determinar cual caso se ejecutara. Se

    debe de conectar datos del tipo entero, Booleano, cadenas, o tipos enumerados para el terminal del selector.

    Se puede colocar el terminal de seleccin en cualquier lugar del borde izquierdo de la estructura. Si el tipo deselector es Booleano, la estructura poseer solo 2 casos el TRUE y el FALSE. Si el terminal de seleccin esun entero, cadena, o del tipo enumerado, la estructura podr tener muchos casos de ejecucin.

    4. Como se ejecuta una estructura Sequence?

    La estructura Secuencia, que se ilustra como diapositivas o negativos de una pelcula, ejecuta los diagramasde bloques de forma secuencial. En lenguajes de programacin convencionales el cdigo se ejecuta en elorden en que va apareciendo, G utiliza esta estructura para controlar el orden en que los nodos se vanejecutando.

    5. Cuando se utiliza un nodo de formulas, que ocurre si el nombre de la entrada es el mismo que el de

    la salida?

    El nodo Frmula se utiliza para ejecutar frmulas matemticas directamente. Es muy prctico cuando una

    ecuacin es de muchas variables y de otra forma sera muy complicado. Cuando una entrada y salida tienenel mismo nombre el programa no genera error , pero nunca 2 entradas o 2 salidas pueden tener el mismonombre porque se genera error en el programa , pero una salida puede tener el mismo nombre de una entrada

  • 8/8/2019 Lab 2 Reporte Labview 2

    19/19

    CONCLUSIONES

    Los bucles simplifican los algoritmos de programacin

    La estructura case tiene dos o mas subdiagramas si trabaja con datos de tipo booleano y es visibleuno a la vez por lo tanto el subdiagrama que se ejecuta depende de la condicion que esta fuera de laestructura .

    Los nodos de formulas son utiles para ejecutar ecuaciones matematicas , adems no hay problemacuando una entrada tiene el nombre de la salida, y si cuando dos entradas o dos salidas tienen elmismo nombre.