Está en la página 1de 10

Implementacin de un VI

Ejercicio 3-2

Objetivo

ni.com

3-10

VI Auto Match

N
Pr atio
oh
n
ibi al
da Ins
su tru
dis me
tri nts
bu
ci
n

Leccin 3

Usar un bucle While y un terminal de iteracin y pasar datos por un tnel.

Escenario

Cree un VI que genere continuamente nmeros aleatorios entre 0 y 1.000 hasta que genere un nmero que coincida con el que seleccione el usuario. Determine cuntos
nmeros aleatorios gener el VI antes de que el nmero coincidiera.

Diseo

Use el siguiente diagrama de flujo y la lista de entradas/salidas para crear el VI de este ejercicio.

Diagrama de flujo
El diagrama de flujo en la figura 3-5 ilustra el diseo por flujo de datos.

N
Pr atio
oh
n
ibi al
da Ins
su tru
dis me
tri nts
bu
ci
n

Figura 3-5. Diagrama de flujo de Auto Match

Generate a
Random Number
Between 0 and 1

No

Multiply by 1000

Round to Nearest
Integer Value

Display Value
to User

= Number
to Match?

Yes

Add 1 to
Iteration
Terminal

Display Number
of Iterations

LabVIEW Core 1 Ejercicios

National Instruments

| 3-11

Leccin 3

Implementacin de un VI

ni.com

Entradas y salidas

N
Pr atio
oh
n
ibi al
da Ins
su tru
dis me
tri nts
bu
ci
n

La siguiente tabla describe las entradas y salidas para este ejercicio.


Tabla 3-3. Entradas y salidas del VI Auto Match

Tipo

Nombre

Propiedades

Control numrico

Number to Match

Doble precisin, coma flotante entre 0 y 1000, convertir al nmero natural ms


cercano, valor predeterminado = 50

Indicador numrico

Current Number

Doble precisin y coma flotante

Indicador numrico

Number of Iterations

Nmero entero

Implementacin

1. Cree y guarde un proyecto en blanco como Auto Match.lvproj en el directorio <Exercises>\LabVIEW Core 1\Auto Match.
2. Cree un VI nuevo en el proyecto y gurdelo como Auto Match.vi en el mismo directorio del proyecto.

3-12

3. Construya el panel frontal de la figura 3-6.

N
Pr atio
oh
n
ibi al
da Ins
su tru
dis me
tri nts
bu
ci
n

Figura 3-6. Panel frontal del VI Auto Match

Configure el valor predeterminado del control Number to Match en 50Ingrese 50 en el control Number to Match y luego haga clic con el botn derecho en
el control y seleccione Data OperationsMake Current Value Default.

Configure el indicador Number of Iterations para que su salida sea un entero largo con signoHaga clic con el botn derecho en el indicador y seleccione
RepresentationI32.

4. Configure las propiedades del control Number to Match para que el tipo de dato sea un nmero entero sin signo de 32-bits, el intervalo de datos sea de 0 a 1000,
el valor de incremento sea 1 y los dgitos de precisin sean 0.

Haga clic con el botn derecho en el control Number to Match y seleccione RepresentationU32 en el men contextual.

LabVIEW Core 1 Ejercicios

National Instruments

| 3-13

Leccin 3

Implementacin de un VI

ni.com

3-14

Haga clic con el botn derecho en el control Number to Match y seleccione Data Entry en el men contextual. Establezca las propiedades en las pestaas
Data Entry y Display Format como se muestra en la figura 3-7.

N
Pr atio
oh
n
ibi al
da Ins
su tru
dis me
tri nts
bu
ci
n

Figura 3-7. Propiedades numricas de Number to Match

Number to MatchPropiedades Data Entry

Number to MatchPropiedades Display Format

5. Establezca el tipo de datos del indicador Current Number a un nmero entero sin signo de 32-bits y establezca los dgitos de precisin de la salida de Current
Number a 0.

N
Pr atio
oh
n
ibi al
da Ins
su tru
dis me
tri nts
bu
ci
n

Haga clic con el botn derecho en el indicador Current Number y seleccione RepresentationU32 en el men contextual.
Haga clic con el botn derecho en el indicador Current Number y seleccione Display Format. Configure las propiedades como se muestra en la figura 3-8.
Figura 3-8. Propiedades de formato del indicador Current Number

LabVIEW Core 1 Ejercicios

National Instruments

| 3-15

Leccin 3

Implementacin de un VI

ni.com

3-16

6. Cree el diagrama de bloques de la figura 3-9.

N
Pr atio
oh
n
ibi al
da Ins
su tru
dis me
tri nts
bu
ci
n

Figura 3-9. Diagrama de bloques del VI Auto Match


1

La funcin Random Number (0-1)produce un nmero aleatorio entre el 0 y el 1.

Multiplymultiplica el nmero aleatorio por la entrada y para producir un nmero aleatorio entre el 0 e y.

Numeric ConstantHaga clic con el botn derecho en la entrada y de la funcin Multiply y seleccione CreateConstant. Ingrese un valor de 1000. Debido
a que la funcin Random Number (0-1) genera un nmero en coma flotante de doble precisin entre 0 y 1, multiplicar el nmero por 1000 produce un rango de
nmeros entre 0 y 1000.

Round To NearestEsta funcin redondea el nmero aleatorio al nmero entero ms cercano.

Equal?Compara el nmero aleatorio con Number to Match y devuelve FALSE si los nmeros no son iguales. De lo contrario, devolver TRUE.

Bucle WhileRepite el algoritmo hasta que la funcin Equal? devuelve un TRUE por que la funcin Equal? est cableada a la terminal condicional, la cual
est configurada para detenerse con un valor TRUE.

Terminal de iteracionesCada vez que se ejecute el bucle, la terminal de iteracin aumentar en uno.

IncrementoSuma 1 a la cuenta del bucle While por que las iteraciones empiezan en 0.

Puntos de coercinPuntos de coercin rojos aparecen en los nodos del diagrama de bloques cuando conecta un cable de tipo numrico a una terminal de
un tipo numrico diferente. En este caso, la salida de Round To Nearest es un coma flotante de doble precisin pero Current Number es un nmero entero.

Consejo Los puntos de coercin pueden causar que un VI use ms memoria durante su ejecucin, as que trate de mantener los tipos de datos consistentes
en los VIs que cree.

7. Actualice el VI para eliminar los puntos de coercin.

Haga clic con el botn derecho en el cable la funcin Round To Nearest y seleccione InsertNumeric PaletteConversionTo Unsigned Long Integer

N
Pr atio
oh
n
ibi al
da Ins
su tru
dis me
tri nts
bu
ci
n

como se muestra en la figura 3-10. Esto inserta la funcin To Unsigned Long Integer en el cable.

Figura 3-10. Insertando la funcin To Unsigned Long Integer en el cable

LabVIEW Core 1 Ejercicios

National Instruments

| 3-17

Leccin 3

Implementacin de un VI

ni.com

3-18

8. Note que convertir la salida de la funcin Round To Nearest elimina todos los puntos de coercin en el diagrama de bloques, como se muestra en la figura 3-11.

9. Abra el panel frontal.

N
Pr atio
oh
n
ibi al
da Ins
su tru
dis me
tri nts
bu
ci
n

Figura 3-11. VI Auto Match Completo

10. Haga clic con el botn derecho en el indicador Current Number y seleccione AdvancedSynchronous Display.

Nota Si se habilita la visualizacin sincrnica, cada vez que el diagrama de bloques enve un valor al indicador Current Number, el diagrama de bloques
deja de ejecutarse hasta que el panel frontal haya actualizado el valor del indicador. En este ejercicio activa la visualizacin sncrona, de modo que puede
ver el indicador Current Number actualizndose repetidamente en el panel frontal. Normalmente la visualizacin sncrona se deshabilita para aumentar
la velocidad de ejecucin, ya que habitualmente no necesita ver cada valor actualizado de un indicador en el panel frontal.

11. Guarde el VI.

Prueba

1. Cambie el nmero en Number to Match a un nmero que se encuentre en el rango de datos, que es de 0 a 1000 con un incremento de 1.
2. Ejecute el VI.

3. Cambie el valor de Number to Match y ejecute el VI de nuevo. Current Number se actualiza en cada iteracin del bucle porque se encuentra dentro de l. Number
of iterations se actualiza al completarse porque se encuentra fuera del bucle.

4. Para ver cmo el VI actualiza los indicadores, habilite el resaltado de ejecucin.

En el diagrama de bloques, haga clic en el botn Highlight Execution para habilitar el resaltado de ejecucin. El resaltado de la ejecucin muestra el

N
Pr atio
oh
n
ibi al
da Ins
su tru
dis me
tri nts
bu
ci
n

movimiento de datos en el diagrama de bloques desde un nodo a otro para que pueda ver cada nmero segn lo genera el VI.

5. Ejecute el VI y observe el flujo de datos.

6. Apague el resaltado de la ejecucin para terminar la ejecucin del VI rpidamente.


7. Intente hacer coincidir un nmero que se encuentre fuera del rango de datos.

Cambie el valor Number to Match a un nmero que se encuentre fuera del rango, 0 1000.
Ejecute el VI.

Note que LabVIEW coacciona el valor fuera del rango al valor ms cercano en el rango de datos que especifique en el paso 4 de la seccin Implementacin.
8. Cierre el VI.

Fin del ejercicio 3-2

LabVIEW Core 1 Ejercicios

National Instruments

| 3-19

También podría gustarte