Está en la página 1de 10

Ejercicio 4-1 Pasar datos a través de túneles

4-2

Lección 4
| ni.com

Objetivo
Usar un bucle While y un terminal de iteración y pasar datos por un túnel.

Uso de bucles
Escenario
Cree un VI que genere continuamente números aleatorios entre 0 y 1.000 hasta que genere un número que coincida con el que seleccione
el usuario. Determine cuántos números aleatorios generó el VI antes de que el número coincidiera.

Diseño
Use el siguiente diagrama de flujo y la lista de entradas/salidas para crear el VI de este ejercicio. El Flowchart (diagrama de flujo) en la
Figura 4-1 ilustra el flujo de datos de este diseño.
Figura 4-1. Diagrama de flujo de Auto Match

Generate a
Random Number No
Between 0 and 1

Multiply by 1000

Add 1 to
Round to Nearest Display Value = Number
Yes Iteration
Integer Value to User to Match?
Terminal

Display Number
of Iterations

Guía del participante de LabVIEW Core 1


© National Instruments
| 4-3
Entradas y salidas
4-4

Lección 4
La siguiente tabla describe las entradas y salidas para este ejercicio.
| ni.com

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

Uso de bucles
Tipo Nombre Propiedades

Control numérico Number to Match Doble precisión, coma flotante entre 0 y 1000, convertir al número
natural más cercano, valor predeterminado = 50

Indicador numérico Current Number Doble precisión y coma flotante

Indicador numérico Number of Iterations Número entero

Implementación
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 guárdelo como Auto Match.vi en el mismo directorio del proyecto.
3. Construya el Front Panel de la figura 4-2.

Figura 4-2. Front Panel del VI Auto Match

1 Configure el valor predeterminado del control Number to Match en 50—Ingrese 50 en el control Number to Match y luego haga clic con
el botón derecho en el control y seleccione Data Operations»Make Current Value Default.
2 Configure el indicador Number of Iterations para que su salida sea un entero largo con signo—Haga clic con el botón derecho en el
indicador y seleccione Representation»I32.

Guía del participante de LabVIEW Core 1


© National Instruments
| 4-5
4. Configure las propiedades del control Number to Match para que el tipo de dato sea un número entero sin signo de 32-bits, el intervalo
4-6

Lección 4
de datos sea de 0 a 1000, el valor de incremento sea 1 y los dígitos de precisión sean 0.
| ni.com

 Haga clic con el botón derecho en el control Number to Match y seleccione Representation»U32 en el menú contextual.

Uso de bucles
 Haga clic con el botón derecho en el control Number to Match y seleccione Data Entry en el menú contextual. Establezca las
propiedades en las pestañas Data Entry y Display Format como se muestra en la figura 4-3.

Figura 4-3. Propiedades numéricas de Number to Match

1 2

1 Number to Match—Propiedades Data Entry 2 Number to Match—Propiedades Display Format


5. Establezca la representación del indicador Current Number a un número entero sin signo de 32-bits y establezca los dígitos de precisión
de la salida de Current Number a 0.

 Haga clic con el botón derecho en el indicador Current Number y seleccione Representation»U32 en el menú contextual.

 Haga clic con el botón derecho en el indicador Current Number y seleccione Display Format. Configure las propiedades como se
muestra en la Figura 4-4.

Figura 4-4. Propiedades de formato del indicador Current Number

Guía del participante de LabVIEW Core 1


© National Instruments
| 4-7
6. Cree el Block Diagram de la figura 4-5.
4-8

Lección 4
Figura 4-5. Block Diagram del VI Auto Match
| ni.com

1 2 9

Uso de bucles
3 4 5 6 7 8

1 Random Number (0-1)—produce un número aleatorio entre el 0 y el 1.


2 Multiply—multiplica el número aleatorio por la entrada y para producir un número aleatorio entre el 0 e y.
3 Numeric Constant—Haga clic con el botón derecho en la entrada y de la función Multiply y seleccione Create»Constant. Ingrese un valor
de 1000. Debido a que la función Random Number (0-1) genera un número en coma flotante de doble precisión entre 0 y 1, multiplicar
el número por 1000 produce un rango de números entre 0 y 1000.
4 Round To Nearest—Esta función redondea el número aleatorio al número entero más cercano.
5 Equal?—Compara el número aleatorio con Number to Match y devuelve FALSE si los números no son iguales. De lo contrario, devolverá
TRUE.
6 Bucle While—Repite el algoritmo hasta que la función Equal? devuelve un TRUE por que la función Equal? está cableada a la terminal
condicional, la cual está configurada para detenerse con un valor TRUE.
7 Iteration terminal—Cada vez que se ejecute el bucle, la terminal de iteración aumentará en uno.
8 Increment—Suma 1 a la cuenta del bucle While por que las iteraciones empiezan en 0.
9 Puntos de coerción—Puntos de coerción rojos aparecen en los nodos del Block Diagram cuando conecta un cable de tipo numérico a
una terminal de un tipo numérico diferente. En este caso, la salida de Round To Nearest es un coma flotante de doble precisión pero
Current Number es un número entero.

Consejo Los puntos de coerción pueden causar que un VI use más memoria durante su ejecución, así que trate de mantener los
tipos de datos consistentes en los VIs que cree.
7. Actualice el VI para eliminar los puntos de coerción.

 Haga clic con el botón derecho en el cable la función Round To Nearest y seleccione Insert»Numeric Palette»Conversion»To Unsigned
Long Integer como se muestra en la figura 4-6. Esto inserta la función To Unsigned Long Integer en el cable.
Figura 4-6. Insertando la función To Unsigned Long Integer en un cable

Guía del participante de LabVIEW Core 1


1 Haga clic con el botón derecho del ratón en un cable para mostrar el menú contextual.
© National Instruments
| 4-9
8. Note que convertir la salida de la función Round To Nearest elimina todos los puntos de coerción en el Block Diagram como se muestra
4-10

Lección 4
en la figura 4-7.
|

Figura 4-7. VI Auto Match Completo


ni.com

Uso de bucles
9. Abra el Front Panel.

10. Haga clic con el botón derecho en el indicador Current Number y seleccione Advanced»Synchronous Display.

Nota Si se habilita la visualización síncronica, cada vez que el Block Diagram envíe un valor al indicador Current Number, el Block
Diagram deja de ejecutarse hasta que el Front Panel haya actualizado el valor del indicador. En este ejercicio activa la visualización
sincrónica, de modo que puede ver el indicador Current Number actualizándose repetidamente en el Front Panel. Normalmente la
visualización sincrónica se deshabilita para aumentar la velocidad de ejecución, ya que habitualmente no necesita ver cada valor
actualizado de un indicador en el Front Panel.

11. Guarde el VI.


Prueba
1. Cambie el número en Number to Match a un número 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 iteración del bucle porque se
encuentra dentro de él. Number of iterations se actualiza al completarse porque se encuentra fuera del bucle.

4. Para ver cómo el VI actualiza los indicadores, habilite el resaltado de ejecución.

 En el Block Diagram, haga clic en el botón Highlight Execution para habilitar el resaltado de ejecución.

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

6. Apague el resaltado de la ejecución para terminar la ejecución del VI rápidamente.

7. Intente hacer coincidir un número que se encuentre fuera del rango de datos.

 Cambie el valor Number to Match a un número que se encuentre fuera del rango, 0 -1000.

 Ejecute el VI.

 Note que LabVIEW coacciona el valor fuera del rango al valor más cercano en el rango de datos que especifique en el paso 4 de la
sección Implementación.

Guía del participante de LabVIEW Core 1


8. Cierre el VI.

Fin del ejercicio 4-1


© National Instruments
| 4-11

También podría gustarte