Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
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
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
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
Tipo
Nombre
Propiedades
Control numrico
Number to Match
Indicador numrico
Current Number
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
N
Pr atio
oh
n
ibi al
da Ins
su tru
dis me
tri nts
bu
ci
n
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.
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
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
National Instruments
| 3-15
Leccin 3
Implementacin de un VI
ni.com
3-16
N
Pr atio
oh
n
ibi al
da Ins
su tru
dis me
tri nts
bu
ci
n
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.
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.
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.
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.
N
Pr atio
oh
n
ibi al
da Ins
su tru
dis me
tri nts
bu
ci
n
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.
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.
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.
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.
National Instruments
| 3-19