Está en la página 1de 5

6.

Controlling Program Execution with Structures


overview
Las estructuras, un tipo importante de nodo, gobiernan el flujo de ejecución en un VI, tal como lo hacen
las estructuras de control en un lenguaje de programación estándar. Este capítulo le presenta las
estructuras principales en LabVIEW: el bucle While, el bucle For, la estructura de caso y la estructura de
secuencia, y luego le muestra cómo combinar el bucle While con la estructura del caso en un potente
marco de aplicación.

Two Loops
Existen dos tipos de bucles fundamentales utilizados en LabVIEW, un entorno de programación
gráfica utilizado principalmente para aplicaciones de adquisición de datos y control. Los bucles
son herramientas esenciales para ejecutar tareas repetitivas en un programa, y LabVIEW ofrece
dos estructuras de bucle principales para abordar esta necesidad.

Bucle For: Este tipo de bucle es similar a un bucle "for" en otros lenguajes de programación. Se
configura para ejecutarse un número específico de veces, determinado por un valor llamado
"conteo". Puedes establecer este valor de conteo desde fuera del bucle mediante conexiones de
cable. Si configuras el valor de conteo en 0, el bucle no se ejecutará en absoluto. Cada iteración
dentro del bucle se caracteriza por un contador que comienza en 0 y avanza hasta N-1, donde N
es el número de iteraciones especificado. Este tipo de bucle es ideal cuando se conoce
previamente la cantidad de iteraciones necesarias.

Bucle While: A diferencia del bucle For, el bucle While se ejecuta hasta que se cumple una
condición específica. El bucle se ejecuta mientras una expresión booleana conectada a su
terminal condicional sea verdadera. Al final de cada iteración, se verifica la condición. Si la
condición es falsa, el bucle se detiene; si es verdadera, se realiza otra iteración. Esta estructura
es muy flexible y se utiliza cuando no se sabe de antemano cuántas iteraciones serán
necesarias. Puede configurarse para que se detenga cuando la condición se vuelva verdadera
(comportamiento predeterminado) o para que continúe mientras la condición sea verdadera.

El texto también proporciona información adicional, como la forma de cambiar el


comportamiento del bucle While, explicando cómo cambiar entre "Detener si es Verdadero" y
"Continuar si es Verdadero". Además, menciona el concepto de "punto de coerción", que se
refiere a la conversión de tipos de datos cuando se conectan terminales de diferente
representación. Se recomienda configurar los tipos de datos de manera coherente para evitar
errores de conversión no deseados.
También se resalta la importancia de colocar terminales dentro de los bucles de manera
adecuada. Los datos que deben ser procesados en cada iteración deben conectarse dentro del
bucle, siguiendo el flujo de datos de LabVIEW.
Shift Registers
Los registros de desplazamiento, disponibles para bucles While y For, son un tipo especial de
variable que se utiliza para transferir valores de una iteración de un bucle a la siguiente. Son
únicos y necesarios. para la estructura gráfica de LabVIEW; Hablaremos más sobre sus usos en
un momento. Creas un turno regístrese apareciendo en el borde del bucle izquierdo o derecho y
seleccionando Agregar registro de turno en el menú emergente.
Puede configurar el registro de desplazamiento para recordar valores de varias iteraciones
anteriores, una característica útil cuando se promedian valores de datos adquiridos en
diferentes iteraciones.
El nodo de retroalimentación
Generalmente, LabVIEW no le permite crear un "ciclo", donde se utiliza la salida del bloque de
código. como entrada para el mismo bloque de código e intentar hacerlo provocará que los
cables se rompan. El ciclo se rompe debido a las reglas de flujo de datos, que establecen que (1)
un nodo no puede ejecutarse hasta que los datos fluyan hacia todos sus terminales de entrada y
que (2) los datos no fluyen fuera de los terminales de salida de un nodo hasta que el nodo
termina de ejecutarse. Porque un "ciclo" utiliza los terminales de salida como fuente para los
terminales de entrada, los datos nunca pueden fluir hacia el terminal de entrada porque los
datos nunca fluirán fuera de los terminales de salida, porque el nodo no ejecutar hasta que los
datos fluyan hacia los terminales de entrada, toda una paradoja.
The Case Structure
Una estructura de caso es el método de LabVIEW para ejecutar texto condicional, algo así como
una declaración "si-entonces-si no". Puedes encontraren la subpaleta
Programación>>Estructuras de la paleta Funciones. La estructura del caso tiene dos o más
subdiagramas o casos; sólo uno de ellos se ejecuta, dependiendo del valor booleano, numérico
o de cadena que conecte al terminal selector.
Una estructura de caso debe tener casos que manejen todos los valores posibles que puedan
fluir hacia el terminal selector, o el VI se romperá (no podrá funcionar). Tener un caso
"Predeterminado" es una manera fácil de lograrlo, pero no es la única. Algunos tipos de datos,
como las enumeraciones, tienen un pequeño número de valores posibles. Además, los marcos
para números se pueden configurar para manejar un rango de valores; por ejemplo, "3.."
maneja todo, desde 3 hasta el entero máximo valor del tipo de datos de entrada y "2..2" maneja
todo en el rango de 2 a 2.
Dialogs
¿LabVIEW puede mantener una conversación con usted? Por ahora, puede crear un cuadro de
diálogo emergente en LabVIEW. ventanas que tienen un mensaje y, a menudo, algunos botones
de respuesta, como "Aceptar" y "Cancelar", como en otras aplicaciones. Se puede acceder a las
funciones del diálogo desde la paleta Programación>>Diálogo e interfaz de usuario. LabVIEW le
proporciona tres tipos de cuadros de diálogo emergentes: de uno, dos y tres botones. En En
cada caso, puedes escribir el mensaje que aparecerá en la ventana, y especificar etiquetas en el
botones.
La función de diálogo de dos botones devuelve un valor booleano y la función de diálogo de tres
botones devuelve un valor enumerado que indica qué botón se presionó. En cualquier caso,
LabVIEW hace una pausa. ejecución del VI hasta que el usuario responda al cuadro de diálogo.
Se dice que el cuadro de diálogo es modal, lo que significa que aunque las ventanas (como los
paneles frontales de otros VIs) continuarán ejecutándose y funcionando actualizado, el usuario
no puede seleccionar ninguno de ellos ni hacer nada más mediante el mouse o el teclado hasta
que él o ella se ha ocupado del cuadro de diálogo.
La función de selección
En casos simples de "si-entonces-si no", puede que le resulte más conveniente utilizar la función
Seleccionar de LabVIEW.
La función Seleccionar, que se encuentra en la subpaleta Programación>>Comparación de
Funciones paleta, devuelve un valor de t si el valor de entrada s es VERDADERO y devuelve un
valor de f si la entrada s es FALSO. Esta función podría lograr casi lo mismo que la estructura de
caso.
The Sequence StructureFlat or Stacked
plana o apilada Determinar el orden de ejecución de un programa organizando sus elementos
en una secuencia determinada es llamado flujo de control. Visual Basic, C y la mayoría de los
demás lenguajes de programación procedimental tienen características inherentes. flujo de
control porque las declaraciones se ejecutan en el orden en que aparecen en el programa.
LabVIEW utiliza la estructura de secuencia para obtener el flujo de control dentro de un marco
de flujo de datos. Una secuencia La estructura es un conjunto ordenado de marcos que se
ejecutan secuencialmente. Se ejecuta una estructura de secuencia cuadro 0, seguido del cuadro
1, luego el cuadro 2, hasta que se ejecute el último cuadro. Sólo cuando el último fotograma
completa ¿los datos abandonan la estructura? Hay dos tipos de estructura de secuencia: la
estructura de secuencia plana y la secuencia apilada.
Ambos se pueden encontrar en el Programación>>Subpaleta Estructuras de la paleta Funciones.
Los dos tipos de secuencia La estructura es casi idéntica y tiene fotogramas que parecen
fotogramas de una película. La diferencia es que Los fotogramas de una estructura de secuencia
plana se organizan secuencialmente uno al lado del otro y los fotogramas de una La estructura
de secuencia apilada se organiza secuencialmente en una pila y tiene un aspecto similar a un
caso. Estructura.
Timing
Las funciones de temporización son muy importantes en LabVIEW y le ayudan medir el tiempo,
sincronizar tareas y permitir suficiente tiempo de inactividad del procesador para que los bucles
en su VI no Corre demasiado rápido y acapara la CPU.
The Timed Structures
Las estructuras cronometradas solo están disponibles en Windows. Fueron diseñados
especialmente para su uso en aplicaciones LabVIEW RT y FPGA de tiempo crítico, y esos
módulos LabVIEW no son compatible con Mac OS X y Linux. Las estructuras cronometradas y los
VI le permiten controlar la velocidad y la prioridad a la que se ejecuta una estructura
cronometrada su subdiagrama, sincronizar el tiempo de inicio de estructuras cronometradas,
crear fuentes de cronometraje y establecer un Jerarquía de fuentes de sincronización. El bucle y
la secuencia cronometrados (que aprenderá a continuación) tienen varios nodos conectados a
sus marcos. Se utilizan para configurar los bucles y obtener información sobre su ejecución.
El bucle cronometrado El bucle cronometrado ejecuta uno o más subdiagramas, o fotogramas,
secuencialmente en cada iteración del bucle en el período que usted especifique. Utilice Timed
Loop cuando desee desarrollar VIs con capacidades de temporización de múltiples velocidades,
temporización precisa, retroalimentación sobre la ejecución del bucle, características de
temporización que cambian dinámicamente o varios niveles de prioridad de ejecución. Haga clic
derecho en el borde de la estructura para agregar, eliminar, insertar y fusionar marcos. Si utiliza
el Timed Loop en un FPGA VI, el bucle ejecuta un subdiagrama al mismo tiempo que un reloj
FPGA.
The Formula Node
El nodo de fórmula Ahora que conoce las cuatro estructuras principales de flujo de control de
LabVIEW, presentaremos una estructura eso no afecta el flujo del programa. El nodo de fórmula
es un cuadro de tamaño variable que se utiliza para ingresar valores algebraicos. fórmulas
directamente en el diagrama de bloques. Esta característica le resultará extremadamente útil
cuando tenga Fórmula larga para resolver. Por ejemplo, considere la ecuación bastante simple, y
= x2 + x + 1. Incluso para esto fórmula simple, si implementa esta ecuación usando funciones
aritméticas regulares de LabVIEW, el bloque El diagrama es un poco más difícil de seguir que las
ecuaciones del texto.
The Expression Node
Básicamente, es solo un nodo de fórmula simplificado que tiene solo una entrada sin nombre y
una salida sin nombre.
muestra el nodo de expresión con partes anotadas. A diferencia del nodo Fórmula, usted no es
necesario nombrar los terminales de entrada o salida. (Debido a que solo hay una entrada y una
salida, no hay ambigüedad.) Además, debido a que solo hay una expresión, no hay necesidad de
punto y coma al final de la expresión. (El nodo de fórmula requiere punto y coma al final de
cada expresión.) Finalmente, en un nodo de expresión, puede usar cualquier nombre válido que
desee para la entrada variable (en nuestro ejemplo anterior, "x" podría haber sido fácilmente
"y" o "Tps" con la mismo efecto), pero recuerda que solo puedes usar una variable en un Nodo
de Expresión, a diferencia del Nodo de Fórmula Nodo, que permite múltiples variables de
entrada y salida.
The While Loop + Case Structure Combination
La combinación de estructura de caso y bucle while Como la mayoría de las herramientas,
necesitas una combinación de ellas para crear algo que no sea trivial. Realmente no puedes
construir cualquier cosa con solo un martillo o simplemente una sierra. Pero, si combinas las
capacidades de estos dos, puedes hacer algunas cosas increíbles. ¡Agregue una cinta métrica y
será imparable! Estructuras de LabVIEW (nuestras herramientas, en este caso) son de la misma
manera. Rara vez los usamos de forma independiente.
Empezamos con un solo Mientras Loop, nuestra sierra circular de alta potencia que sigue
girando hasta terminar el trabajo. Luego dejamos caer un caso Estructura (o Estructura de
Eventos, como aprenderemos en el Capítulo 13, "Estructuras avanzadas de LabVIEW y
Functions"), nuestra pistola de clavos neumática de alta potencia, para clavar todos los casos
que nuestro software debe manejar. Dejando a un lado las analogías, la combinación While
Loop + Case Structure es una herramienta muy poderosa. combinación, a partir de la cual
puede aprovechar para crear casi cualquier aplicación de software que su la mente puede
imaginar.

También podría gustarte