Vous êtes sur la page 1sur 27

Instrumentacin

Ingeniera Mecatrnica

Prctica 8
Estructuras de programacin en LabVIEW
Objetivo 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

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

Marco terico
Las 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

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

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

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

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

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

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. Cuando
Prctica #8 Estructuras de programacin en LabVIEW
Ing. Mario Alberto Camarillo Ramos

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 o
Prctica #8 Estructuras de programacin en LabVIEW
Ing. Mario Alberto Camarillo Ramos

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 MathScript
La 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

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.

Desarrollo
El 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 se
Prctica #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

Vous aimerez peut-être aussi