práctica #8 estructuras de programación en labview

Upload: moi37

Post on 11-Jul-2015

806 views

Category:

Documents


3 download

TRANSCRIPT

Instrumentacin Ingeniera Mecatrnica

Prctica 8 Estructuras de programacin en LabVIEWObjetivo de la prctica Al terminar esta prctica, el discente ser capaz de: Conocer las diferencias entre un ciclo FOR y un ciclo While, conocer cmo los registros de corrimiento obtienen el valor de iteraciones anteriores, conocer cmo se ejecuta la estructura CASE, conocer cmo se ejecuta la estructura SECUENCE, conocer cmo se utiliza la funcin MATHSCRIPT y, generar programas utilizando las diferentes estructuras antes mencionadas.

Material: Computadora con LabVIEW Profesional adelante (preferentemente 8.6) versin 8.0 en

IntroduccinEn esta prctica se crearn VIs sencillos para incorporar las estructuras de programacin en LabVIEW. Dichas estructuras son FOR, WHILE, CASE, SECUENCE y MATSCRIPT.

Marco tericoLas estructuras son representaciones grficas de los casos que se presentan en lenguajes de programacin de texto. Se utiliza una estructura en el diagrama a bloques para repetir segmentos de cdigo para ejecutar cdigo bajo alguna condicin o en un orden especfico.

Prctica #8 Estructuras de programacin en LabVIEW Ing. Mario Alberto Camarillo Ramos

1

Instrumentacin Ingeniera Mecatrnica

Como los elementos anteriores (prctica #6), las estructuras cuentan con terminales que permiten la conexin entre ellas y otros elementos dentro del diagrama a bloques. Al tener informacin en estas terminales las estructuras se ejecutarn inmediatamente y generarn informacin de salida cuando termine su ejecucin. Cada estructura cuenta con un borde (orilla) particular, y puede ser redimensionado para abarcar alguna parte del cdigo que se desee ejecutar, claro, de acuerdo a la funcin de cada estructura. El cdigo dentro de una estructura de programacin se le conoce como subdiagrama. Las terminales que proveen informacin hacia dentro y fuera de la estructura se les conoce como tneles. Un tnel es una conexin en el borde (orilla) de la estructura. LabVIEW proporciona estructuras de programacin (FunctionsStructures) para realizar diferentes procesos; entre dichas estructuras se encuentran: FOR.- Ejecuta un subdiagrama un nmero determinado de ocasiones. WHILE.- Ejecuta un subdiagrama hasta que una condicin se cumpla. CASE STRUCTURE.- Contiene mltiples subdiagramas, de los cuales solo uno se ejecuta dependiendo de la variable de entrada a la estructura. SECUENCE STRUCTURE.- Contiene uno o ms subdiagramas, los cuales se ejecutan de manera secuencial. MATHSCRIPT.- Realiza operaciones matemticas utilizando variables definidas por el usuario de la misma estructura (Mathscript es similar a Matlab, pero integrado en LabVIEW).

Prctica #8 Estructuras de programacin en LabVIEW Ing. Mario Alberto Camarillo Ramos

2

Instrumentacin Ingeniera Mecatrnica

El ciclo FOR

Figura 1.- Estructura para un ciclo FOR

Un ciclo FOR ejecuta predeterminado de ocasiones.

un

subdiagrama

un

nmero

El valor en la terminal de conteo (loop count) indica cuntas ocasiones se repetir el subdiagrama. Es posible asignar un valor conectando un valor desde afuera de la estructura al cono N. La terminal de iteraciones (i) proporciona el nmero de iteraciones realizadas. Las iteraciones siempre empezarn en cero, es decir, durante la primer iteracin la terminal proporcionar un cero y llegar hasta N-1 iteraciones. Ambas terminales (de conteo e iteracin) son palabras enteras con signo. Si se conectara una variable de punto decimal a la entrada de conteo, LabVIEW la redondea y la obliga a que se encuentre en el rango. Un dato importante es que si se empieza con un nmero negativo o cero en la terminal de conteo, el subdiagrama no se ejecutar.

El ciclo While

Figura 2.- Estructura para un ciclo WHILE

Prctica #8 Estructuras de programacin en LabVIEW Ing. Mario Alberto Camarillo Ramos

3

Instrumentacin Ingeniera Mecatrnica

El ciclo WHILE ejecuta un subdiagrama hasta que una condicin es cumplida, es decir, mientras se cumpla la condicin. Dicha condicin se encuentra en la terminal Loop condition, el cual es un valor booleano (verdadero o falso). El comportamiento predeterminado para la terminal es Stop if True, donde el subdiagrama se ejecuta hasta que la terminal reciba un valor VERDADERO. Cuando una terminal de condicin es configurada como Continue if True, el ciclo WHILE ejecuta el subdiagrama hasta que la terminal reciba un valor FALSO. Debido a que la estructura revisa el valor presente en la terminal despus de ejecutar cada iteracin, el ciclo WHILE se ejecuta por lo menos una vez, lo cual es igual que un DO-WHILE en los lenguajes de texto convencionales.

Figura 3.- Controles para la terminal condicionante

Cabe sealar que si la terminal conecta a un valor, el VI no operar.

condicionante

no

se

Es posible crear un subdiagrama para revisar si existe un error o no utilizando la terminal condicionante de una estructura WHILE. Cuando se conecta un cluster de error a dicha terminal, solamente los valores de VERDADERO o FALSO pasan a la terminal.

La terminal de iteraciones proporciona el nmero de iteraciones completadas; siempre empieza en cero y regresa a cada inicio de la iteracin el valor de cero. Si se desea pasar informacin desde la primer iteracin a la siguiente, es necesario colocar registros de corrimiento.

Prctica #8 Estructuras de programacin en LabVIEW Ing. Mario Alberto Camarillo Ramos

4

Instrumentacin Ingeniera Mecatrnica

Registros (ciclos)

de

corrimiento

en

estructuras

Figura 4.- Registros de corrimiento en estructuras FOR y WHILE

Se utilizan los registros de corrimiento dentro de ciclos FOR y WHILE para transferir valores de una iteracin a la otra. El comportamiento de los registros de corrimiento es similar al de las variables STATIC en los lenguajes de programacin convencionales. Un registro de corrimiento aparece como un par de terminales que se oponen unas con otras en los extremos verticales de la estructura (FOR o WHILE). La terminal de la derecha contiene un smbolo semejante a un tringulo (o flecha) que apunta hacia arriba y almacena informacin despus de que se termina una iteracin. LabVIEW transfiere la informacin que se encuentre en esta terminal a la siguiente iteracin. Para crear un registro de corrimiento es necesario colocarse sobre el borde de la estructura y presionar el botn derecho del ratn y seleccionar Add Shift Register.

Figura 5.- Creando un registro de corrimiento

Prctica #8 Estructuras de programacin en LabVIEW Ing. Mario Alberto Camarillo Ramos

5

Instrumentacin Ingeniera Mecatrnica

Un registro de corrimiento transfiere cualquier tipo de dato y automticamente cambia el tipo de dato del primer objeto que se encuentre conectado al mismo. La clase de dato que se encuentre conectada a la terminal de cada uno de los registros de corrimiento debe ser del mismo tipo. Es posible crear mltiples registros de corrimiento en una estructura (ciclo), adems de poder tener ms de una terminal izquierda (entrada) para retener ms de un solo valor. Despus de que el ciclo se ejecuta, el ltimo valor guardado en el registro de corrimiento permanece en la terminal de la derecha. Si esta terminal se conecta hacia fuera de la estructura, esa conexin transferir el ltimo dato de la iteracin en curso. Si no se inicializa el registro, el ciclo utiliza el valor que se encontraba al final del mismo o se utiliza el valor predeterminado si nunca se ha ejecutado.

Estructuras de Casos (CASE Structures)

Figura 6.- Estructura CASE boolena

Una estructura CASE tiene uno o ms subdiagramas, o casos. Solamente un subdiagrama est visible y la estructura ejecuta solo un caso a la vez. Un dato de entrada determina cul subdiagrama se ejecutar. Esta estructura es similar al SWITCH o IF-THEN, IF-ELSE IF, IF-ELSE, de los lenguajes de programacin tradicionales. En la parte superior de la estructura se encuentra la etiqueta del selector de casos. Esta etiqueta contiene los valores para los cuales cambiar cada subdiagrama, aplicando as cada caso. Las flechas a los costados indican los casos subsecuentes o anteriores; la flecha hacia abajo indica qu casos estn presentes en la estructura.

Prctica #8 Estructuras de programacin en LabVIEW Ing. Mario Alberto Camarillo Ramos

6

Instrumentacin Ingeniera Mecatrnica

La estructura CASE puede tener diferentes tipos de entradas, siendo estas booleanas (verdadero o falso), enteras (dato numrico), cadenas de carateres (cdigo ASCII) o del tipo enumerado. Es necesario colocar un caso para cuando no se encuentre informacin pertinente en la entrada (caso predeterminado o default). Si no se hiciera esto, es responsabilidad del creador del VI sealar cada entrada para todos los casos. Por ejemplo, si existe una entrada entera de control donde se buscan los casos 1, 2 y 3, se debe especificar un caso predeterminado para cuando la entrada sea 4 o cualquier otro nmero entero.

Figura 7.- Casos numricos enteros

Figura 8.- Casos con cadenas de caracteres

Figura 9.- Casos enumerados

Se pueden crear mltiples tneles de entradas y salidas para una estructura CASE. Las entradas estarn disponibles para todos los casos, aunque los casos no necesiten utilizar todas. Si embargo, se debe definir cada salida para cada caso. CuandoPrctica #8 Estructuras de programacin en LabVIEW Ing. Mario Alberto Camarillo Ramos

7

Instrumentacin Ingeniera Mecatrnica

se cree una salida (tnel) en un caso, dicha salida estar presente para todos los casos. Si una salida no est conectada, todos los tneles aparecen como cuadros blancos. Es posible definir diferentes fuentes de informacin para el mismo tnel en cada caso, pero el tipo de dato debe ser compatible para cada uno de ellos. En ocasiones es prctico utilizar el botn derecho del ratn en el tnel en cuestin y seleccionar Use Default If Unwired para utilizar el valor predeterminado para todos los tneles sin conectar.

Figura 10.- Seleccin de valor predeterminado en un tnel

Estructuras de secuencia (Stacked Sequence Structure)

Figura 11.- Estructura de secuencia

Una estructura de secuencia contiene uno o ms subdiagramas, o tramas, las cuales se ejecutan de manera secuencial (recordar que en LabVIEW se ejecuta el cdigo en paralelo). La etiqueta de la trama en la parte superior es muy parecida a la estructura CASE. La etiqueta de tramas contiene un nmero en el centro y flechas hacia la derecha e izquierda, las cuales permiten revisar cul subdiagrama se ejecut oPrctica #8 Estructuras de programacin en LabVIEW Ing. Mario Alberto Camarillo Ramos

8

Instrumentacin Ingeniera Mecatrnica

realizar. A diferencia de la estructura CASE, no es posible introducir valores a la trama; cada vez que se elimina, agrega o reestructuran las tramas, LabVIEW ajusta automticamente el nmero de ellas. Una estructura de secuencia comienza desde la trama 0, luego la 1, despus la 2, y as sucesivamente hasta que la ltima trama se ejecute. La estructura de secuencia no termina su ejecucin o proporciona informacin hasta que la ltima trama termina. Cabe sealar que no existir ejecucin hasta que todas las entradas (tneles) de la primer trama cuenten con informacin. Si se desea pasar informacin de una trama a la otra, es necesario crear una terminal local para que la informacin procesada pueda acceder a la siguiente trama.

Figura 12.- Tneles locales para pasar informacin de trama a trama

En general, se utiliza una estructura de secuencia para controlar la ejecucin de los subdiagramas donde la informacin debe ser procesada antes que otro evento. Un nodo o terminal que recibe informacin depende de otro nodo para completar su ejecucin y as sucesivamente.

Estructura MathScriptLa estructura MATHSCRIPT es una funcin til para ejecutar operaciones matemticas en el diagrama a bloques. No es necesario tener acceso a cdigo externo o aplicaciones adicionales, adems de no tener que utilizar funciones aritmticas para crear ecuaciones complejas. No solo es menos compleja la creacin de ecuaciones, tambin es posible utilizar

Prctica #8 Estructuras de programacin en LabVIEW Ing. Mario Alberto Camarillo Ramos

9

Instrumentacin Ingeniera Mecatrnica

funciones conocidas en otros programas relativos a matemticas (polyfit por ejemplo). MATHSCRIPT es muy similar a Matlab, por lo que es posible crear cdigo (script) e importarlo a LabVIEW. Cabe sealar que MATHSCRIPT solamente acepta variables de doble precisin (64 bits) por lo que ser necesario (si as lo amerita) convertir variables de otro tipo a las requeridas. Es posible declarar variables dentro de la estructura o fuera. El colocar entradas o salidas de la estructura MATHSCRIPT es opcional, pero, si alguna es colocada, debe estar conectada a algn parmetro de entrada o funcin de salida.

Figura 13.- Entradas y salidas en MATHSCRIPT

Para empezar a ejercitar los conocimientos adquiridos, se realizarn cuatro VIs, uno por cada estructura de programacin.

DesarrolloEl primer VI a realizar se llamar Nmero de iteraciones, el cual contar las iteraciones que necesita LabVIEW para obtener un nmero que se le ha solicitado. Para lograr el objetivo de este VI se utilizarn funciones que generarn nmeros aleatorios hasta que se obtenga el valor requerido.

Prctica #8 Estructuras de programacin en LabVIEW Ing. Mario Alberto Camarillo Ramos

10

Instrumentacin Ingeniera Mecatrnica

1) Abra un nuevo Panel Frontal. 2) Genere en el Panel Frontal la figura 14. No se preocupe por los valores en los controles e indicadores, estos son valores que se asignarn despus. Recuerde asignar nombres a los dos indicadores y al control numrico.

Figura 14.- Panel frontal para Nmero de iteraciones

a) Nmero para simulacin es un control numrico y especifica el nmero al cual se desea llegar. El indicador numrico Nmero actual seala el nmero que se ha procesado. El indicador numrico Nmero de iteraciones proporciona las ocasiones en que el ciclo se ha ejecutado. b) Para asegurarse que el usuario no introducir un dato que no corresponda con el formato de incremento (entero), se forzar a LabVIEW a tomar un valor entero. Para esto ser necesario colocarse sobre el control numrico Nmero para simulacin y presionar el botn derecho del ratn y seleccionar properties. c) Dentro de este men, se escoger el submen Data Entry donde se especificarn los nmeros mximos y mnimos que se esperan del usuario. As como obligar a la entrada a ser entera. Modifique los valores y opciones como se muestra en la figura 15 (no presione el botn OK).

Prctica #8 Estructuras de programacin en LabVIEW Ing. Mario Alberto Camarillo Ramos

11

Instrumentacin Ingeniera Mecatrnica

Figura 15.- Modificacin de parmetros de entrada

d) Despus de realizar la modificacin, se establecer una referencia para el control numrico. Dentro del men de propiedades, escoja Documentation y redacte la descripcin del control numrico (figura 16). Presione el botn OK.

Figura 16.- Descripcin del control numrico Nmero para simulacin

e) Coloque el cursor sobre el indicador numrico Nmero actual, presione el botn derecho del ratn y seleccione la opcin Description and Tip. Redacte lo sealado en la figura 17.

Prctica #8 Estructuras de programacin en LabVIEW Ing. Mario Alberto Camarillo Ramos

12

Instrumentacin Ingeniera Mecatrnica

Figura 17.- Descripcin del indicador Nmero actual

f) Repita el inciso e) pero ahora sobre el indicador Nmero de iteraciones y redacte la informacin de la figura 18.

Figura 18.- Descripcin del indicador Nmero de iteraciones

3) Para asignar el valor de 50 como predeterminado, es necesario colocarse sobre el control numrico Nmero para simulacin y asignar el valor 50; presionar el botn derecho del ratn y seleccionar Data operations Make Current Value Default.

Figura 19.- Asignando valor predeterminado al control numrico

Prctica #8 Estructuras de programacin en LabVIEW Ing. Mario Alberto Camarillo Ramos

13

Instrumentacin Ingeniera Mecatrnica

4) Terminado lo correspondiente al Panel Frontal, genere el diagrama a bloques de la figura 20.

Figura 20.- Diagrama a bloques del VI Nmero de iteraciones

a) Coloque la funcin Random Number (0-1) que se encuentra en FunctionsProgrammingNumeric. Esta funcin producir un nmero aleatorio entre 0 y 1. b) Utilice una funcin de multiplicacin (FunctionsProgrammingNumeric) para multiplicar el nmero aleatorio por 1000 (recuerde cmo crear constantes de la prctica #6, paso 6). c) Coloque la funcin Round To Nearest que se encuentra en FunctionsProgrammingNumeric. Esta funcin redondea el nmero aleatorio multiplicado por 1000 al entero ms cercano. d) Ubique la funcin Equal? en FunctionsProgrammingComparison y colquela en el diagrama a bloques. Esta funcin compara el nmero aleatorio con el Nmero para simulacin y genera un TRUE (booleano) si es igual; si no lo es, produce un False. e) Utilice una estructura WHILE y coloque todo el diagrama a bloques dentro del ciclo WHILE (FunctionsProgrammingStructuresWhile loop.Prctica #8 Estructuras de programacin en LabVIEW Ing. Mario Alberto Camarillo Ramos

14

Instrumentacin Ingeniera Mecatrnica

f) Coloque la funcin Increment (FunctionsProgrammingNumeric) y conecte el cono de iteraciones con la funcin (pase a travs del borde de la estructura). Despus conecte la salida de la funcin con el indicador numrico Nmero de iteraciones. Esta funcin se agrega al cdigo porque el ciclo WHILE comienza sus iteraciones en cero. El cuadro azul que aparece en el borde de la estructura es un tnel. Los tneles proporcionan informacin desde y hacia las estructuras. La informacin sale de la estructura cuando el ciclo termina. Cuando se cuenta con un tnel hacia la estructura (entrada), el ciclo se ejecuta solamente cuando existe informacin en el tnel. 5) Guarde el VI con el nombre de Nmero de iteraciones. 6) Colquese en el Panel Frontal (Ctrl+E) y cambie el valor de 50 en Nmero para simulacin. 7) Ejecute el VI (Ctrl+R o la flecha). Cambie el nmero a otro y realice 5 ejecuciones con ese nmero. 8) Para observar cmo LabVIEW llega a este resultado, es recomendable utilizar la opcin Highlight Execution que se encuentra en el diagrama a bloques, en la forma de un foco.

Figura 21.- Highlight Execution para observar el paso de la informacin

9) Presione Ctrl+T para colocar ambas ventanas juntas y ejecute el VI. Posiblemente sea lenta la ejecucin, por lo que deber presionar el botn rojo de paro para detener la misma.

Prctica #8 Estructuras de programacin en LabVIEW Ing. Mario Alberto Camarillo Ramos

15

Instrumentacin Ingeniera Mecatrnica

Figura 22.- Ejecucin lenta del VI

10) Despus de detener el VI, asigne al control numrico valores que se encuentren fuera del rango de simulacin. 11) Cierre el VI.

En esta parte de la prctica se utilizar un registro de corrimiento en conjunto con una estructura FOR para tener acceso a informacin de iteraciones previas.

12) Genere el Panel frontal de la figura 23 (recuerde que son indicadores numricos).

Figura 23.- Panel frontal Registro de Corrimiento

Prctica #8 Estructuras de programacin en LabVIEW Ing. Mario Alberto Camarillo Ramos

16

Instrumentacin Ingeniera Mecatrnica

13) Genere el Diagrama a Bloques de la figura 24.

Figura 24.- Diagrama a Bloques para registro de corrimiento

a) Utilice la funcin de suma (ADD) que se encuentra en FunctionsProgrammingNumeric. b) Genere constantes numricas para el registro de corrimiento y el ciclo FOR (FunctionsProgrammingStructures) y asigne el valor de 0 y 10 como se muestra en la figura 24. c) Para crear un registro de corrimiento, coloque el cursor en el borde del ciclo FOR y presione el botn derecho del ratn. Seleccione Add Shift Register.

Figura 25.- Colocando un registro de corrimiento en la estructura FOR

d) Al crear el registro de corrimiento se genera una entrada y una salida. Como sePrctica #8 Estructuras de programacin en LabVIEW Ing. Mario Alberto Camarillo Ramos

17

Instrumentacin Ingeniera Mecatrnica

desea tomar la informacin solo de una salida, es necesario crear elementos adicionales. Por lo que deber colocarse sobre el registro de corrimiento de entrada, presionar el botn derecho del ratn y seleccionar Add Element. Realizar la operacin dos veces para tener los tres nodos de entrada.

Figura 26.- Creando elementos adicionales para el registro de corrimiento

14) Guarde el VI como Registro de corrimiento. 15) Presione Ctrl+T. Active Highlight Execution del Diagrama a Bloques y ejecute el VI. 16) Modifique la constante para el registro de corrimiento y para la suma a 1. Ejecute el VI. 17) Cierre el VI (no guarde los cambios).

En el siguiente VI se har uso de la estructura CASE, aplicando a un simple proceso de calcular la raz cuadrada de un nmero. Si la raz existe se proporcionar un valor. De no existir (nmero imaginario), aparecer un mensaje acorde a la situacin.

Prctica #8 Estructuras de programacin en LabVIEW Ing. Mario Alberto Camarillo Ramos

18

Instrumentacin Ingeniera Mecatrnica

18) Genere el Panel Frontal de la figura 27 (un control y un indicador numrico).

Figura 27.- Panel Frontal para Raz Cuadrada

19) Produzca el siguiente Diagrama a Bloques:

Figura 28.- Caso verdadero Raz Cuadrada

a) Coloque una estructura de casos para los eventos (FunctionsProgrammingStructures). b) Utilice la funcin Greater or equal to 0? para evaluar si el nmero es mayor o igual a cero, recordando que el cero tiene raz cuadrada (FunctionsProgrammingComparision), y conecte la salida a la entrada de la estructura CASE. c) Coloque la funcin para realizar la raz cuadrada dentro del caso verdadero (FunctionsProgrammingNumericSquare Root). d) Se crear un mensaje para el usuario indicando que la operacin es vlida. Para ello se utilizar la funcin One Button Dialog (FunctionsProgrammingDialog &Prctica #8 Estructuras de programacin en LabVIEW Ing. Mario Alberto Camarillo Ramos

19

Instrumentacin Ingeniera Mecatrnica

User Interface) y se crear una constante de caracteres con la leyenda de la figura 28. Esta funcin cuenta con dos entradas, la seleccin ser Message. Recuerde que para crear constantes directas a las funciones debe colocarse sobre el nodo en cuestin (Message), presionar el botn derecho del ratn y seleccionar CreateConstant (deber ser de color rosa-morado la constante).

20) Genere el subdiagrama para el caso falso.

Figura 29.- Caso falso Raz Cuadrada

a) Coloque el cursor sobre la etiqueta TRUE de la estructura CASE y presione el botn izquierdo del ratn. Elija la opcin FALSE. b) Coloque el cursor sobre el tnel asignado al indicador numrico Raz cuadrada y presione el botn derecho del ratn. Genere una constante numrica (CreateConstant) y asigne el valor de -999,999.Prctica #8 Estructuras de programacin en LabVIEW Ing. Mario Alberto Camarillo Ramos

20

Instrumentacin Ingeniera Mecatrnica

c) Realice agregar (Button como se

el paso d) de la seccin 19 para un mensaje. Ahora se aadir uno ms name OK) y el texto cambiar a muestra en la figura 29.

21) Guarde el VI con el nombre de Raz Cuadrada. 22) Dirija la atencin al Panel Frontal y ejecute el VI para los siguientes valores: 0, 2, y -1. 23) Cierre el VI.

En el siguiente VI se har uso del Stacked Sequence Structure para determinar cunto tiempo le toma a LabVIEW (en milisegundos) igualar un nmero.

24) Abra el VI Nmero de iteraciones que realiz al inicio de la prctica. 25) Agregue un indicador numrico adicional como se muestra en la figura 30.

Figura 30.- Indicador adicional Tiempo de procesamiento (ms)

26) Guarde el VI utilizando la opcin SAVE AS como Tiempo de procesamiento. Si aparece una pantalla como la de la

Prctica #8 Estructuras de programacin en LabVIEW Ing. Mario Alberto Camarillo Ramos

21

Instrumentacin Ingeniera Mecatrnica

figura 31, seleccione CopySubstitute copy for original, presione Continue y guarde el VI en el lugar asignado para las prcticas.

Figura 31.- Guardando un VI con otro nombre

27) Seleccione el Diagrama a Bloques. Utilice la estructura de secuencia apilada (FunctionsProgrammingStructuresStacked Sequence Structure) para incluir todo el cdigo del VI. 28) Coloque el cursor sobre la parte superior de la estructura y presione el botn derecho del ratn. Seleccione la opcin Add Frame After para agregar una trama a la actual.

Figura 32.- Agregando una trama a la secuencia

29) Ahora tendr una trama vaca con el nmero 1 en etiqueta superior. Genere el siguiente subdiagrama.Prctica #8 Estructuras de programacin en LabVIEW Ing. Mario Alberto Camarillo Ramos

la

22

Instrumentacin Ingeniera Mecatrnica

Figura 33.- Trama para procesar tiempo de ejecucin

a) Utilice el reloj Tick Counts (ms) para saber cunto tiempo (en milisegundos) ha transcurrido desde el inicio de la ejecucin (FunctionsProgrammingTimingTick Counts ms). Recuerde que el indicador adicional puede ser obstruido por la primer trama. Si no es posible encontrarlo, regrese a la trama 0, corte y pegue en la trama 1. 30) Guarde el VI. 31) Ejecute el VI con los siguientes valores: 1, 700, 751. Para cada valor deber ejecutar el VI en tres ocasiones. Observe el indicador de tiempo. 32) Cierre el VI.

Por ltimo, se utilizar la estructura MATHSCRIPT para crear ecuaciones sencillas de conversin para temperatura. En este ejercicio se utilizar el VI creado en la prctica #6 (Convertidor Fahrenheit a centgrados). 33) Abra un nuevo VI. 34) Genere el siguiente Panel Frontal

Prctica #8 Estructuras de programacin en LabVIEW Ing. Mario Alberto Camarillo Ramos

23

Instrumentacin Ingeniera Mecatrnica

Figura 34.- Convertidor de temperaturas

a) Utilice el termmetro como indicador (ControlsModernNumericThermometer). b) Para obtener el valor numrico del termmetro adems del visual, coloque el cursor sobre el indicador de temperatura y presione el botn derecho del ratn. Seleccione Visible itemsDigital Display.

Figura 35.- Agregando indicadores digitales a los termmetros

c) Recuerde que para cambiar el aspecto de las etiquetas, primero se selecciona la etiqueta y despus se utiliza el botn Application Font, que se encuentra al lado del cono PAUSA.

Prctica #8 Estructuras de programacin en LabVIEW Ing. Mario Alberto Camarillo Ramos

24

Instrumentacin Ingeniera Mecatrnica

35) Genere el siguiente diagrama a bloques.

Figura 36.- Diagrama a Bloques del VI con MATHSCRIPT

a) Utilice la estructura MATHSCRIPT y escriba dentro de ella las siguientes ecuaciones: C=(F-32)/1.8; K=C-273.15; Debe colocar el punto y coma para sealar el final de la ecuacin. b) Coloque el cursor sobre la orilla izquierda de la estructura MATHSCRIPT y presione el botn derecho del ratn, seleccione Add Input y escriba la letra F. Para las salidas haga lo mismo pero ahora del lado derecho de la estructura, coloque C y K (remtase a la figura 13 si no recuerda cmo). c) Presione el botn derecho del ratn para tener acceso a la paleta de funciones. Seleccione Select a Vi y abra el subVI creado en la prctica anterior (Convertidor Fahrenheit a centgrados) y colquelo sobre la estructura MATHSCRIPT.

Prctica #8 Estructuras de programacin en LabVIEW Ing. Mario Alberto Camarillo Ramos

25

Instrumentacin Ingeniera Mecatrnica

Figura 37.- Utilizando un subVI

d) Conecte como se sugiere en la figura 36. e) Utilice una estructura WHILE para que el cdigo se repita hasta encontrar un evento que lo detenga (FunctionsProgrammingStructures) f) Coloque el cursor sobre la terminal condicionante, presione el botn derecho del ratn y seleccione create control (revise la figura 3 si no recuerda cmo). 36) Modifique el Panel Frontal para que tenga la siguiente presentacin:

Figura 38.- Panel Frontal con botn de paro

37) Guarde el VI con el nombre Convertidor de temperaturas. 38) Ejecute el VI. 39) Asigne los siguientes valores: 32, 78, 90, 120, y 0.

Prctica #8 Estructuras de programacin en LabVIEW Ing. Mario Alberto Camarillo Ramos

26

Instrumentacin Ingeniera Mecatrnica

Tarea:Con la informacin adquirida en esta prctica, genere un VI en el cual sea posible convertir grados Fahrenheit a Centgrados y Kelvin. Dicho VI deber proporcionar una opcin para cuando se desee observar la conversin de grados Centgrados y Kelvin por separado (es decir, solo uno a la vez). Se recomienda utilizar un interruptor para sealar cul temperatura se est convirtiendo en el momento de la seleccin, adems de asignar el nombre para cada temperatura en el interruptor (ControlsModernBooleanVertical Toggle Switch).

Preguntas

1) Cules son las diferencias entre una estructura WHILE y una FOR? 2) Cmo se transfiere la informacin entre las iteraciones de un ciclo? 3) Cmo se ejecuta una estructura CASE? 4) Cmo se ejecuta una estructura Stacked Sequence? 5) Cuando se utiliza la estructura MATHSCRIPT,qu sucede si una entrada tiene el mismo nombre que una salida?

Prctica #8 Estructuras de programacin en LabVIEW Ing. Mario Alberto Camarillo Ramos

27