Está en la página 1de 23

LabvieW

Capítulo 2: Estructuras
PAOLA VASCONCELOS RICARDEZ
ANTONIO OTERO OCHOA
MARIO ENRIQUE RODRIGUEZ PEREZ
MANUEL ALBERTO DE LA O PERALTA
LUIS EMILIO VENTURA JERONIMO

15/Enero/2024
Introducción
Las instrucciones de control permiten a un
programa ejecutar un código de forma
condicional o repetirlo cierto número de veces.

En LabVIEW estas instrucciones son


estructuras que encierran en su interior el
código al que afectan. Se encuentran en el
menú Programming > Structures.
2.1 Sequence
Las estructuras de tipo sequence ordena el forma de ejecución del código que está en su interior,
también cuenta con fotogramas o frames ordenados, y en el interior de cada frame se sitúa una sección
de código. La ejecución comenzará por el primer frame y cuando acabe se pasará a ejecutar el
siguiente, y así sucesivamente.
- Stacked Sequence
Era la única disponible en versiones más antiguas de LabVIEW, tiene un menú en la parte superior
donde se indica la numeración del frame que se muestra, el número total de frames que contiene y
además da la opción de situarse en otro.
- Flat Sequence
Funciona de igual forma, sólo que es más visual, los frames se ven uno a continuación del siguiente, el
orden de ejecución será de izquierda a derecha. En este caso no hay Sequence Local y los datos
podrán cablearse directamente desde un frame a otro a través de túneles.
2.2 Case
La estructura CASE es el equivalente a varias de los lenguajes basados en texto: IF,SWITCH y TRY. Su
utilidad es ejecutar un código u otro dependiendo de una condición. Al igual que una estructura
SEQUENCE, en este caso también se tiene un menú en la parte superior donde se puede elegir el
subdiagrama que se muestra. En este menú se puede ver la condición para ejecutar el código del
subdiagrama correspondiente.
Si el tipo de datos que se conecta al selector del
CASE es booleano, éste actuará como una
sentencia IF...THEN...ELSE de un lenguaje de texto
tradicional. También pueden conectarse otros tipos
de datos, en este caso actuará como un
SWITCH...CASE. Pueden conectarse al selector
datos booleanos, numéricos (incluidosenum y ring),
strings y clusters de error. En la Figura 2-6 se
pueden ver todos estos
casos.
Para un selector booleano sólo se tendrán dos casos: verdadero o falso. Para numéricos la condición
será que el dato del selector sea igual al mostrado en el menú del CASE, para datos enum o ring se
puede escribir el nombre del ítem en lugar del valor numérico. Con los strings sucede lo mismo que con
los numéricos enum o ring, el valor mostrado en el menú aparecerá como un texto encerrado en comillas
dobles.
En los numéricos además se puede asignar una lista de valores escribiéndolos separados por comas o
también se puede especificar un rango de valores.
WHILE
Esta estructura repetirá el código de su interior hasta que se cumpla una condición, la cual se
evaluará en cada iteración. Cuenta con dos terminales, las cuales son:

● El terminal de iteración (su valor es un número entero que Terminal de Terminal de


aumentará una unidad por iteración). iteración stop

● Terminal de stop (se podrá conectar un valor booleano o


un cluster de error).

Otra herramienta que muestra el menú contextual es Add Shift


Register, la cual añade dos terminales a cada lado de la
estructura para transferir un valor entre iteraciones. Terminal de
transferencia de datos
Terminal de
lectura de datos
Parecido al Shift Register, se encuentra el Feedback Node el cual cuenta con dos terminales:
● El terminal inicializador (da un valor inicial al nodo).
● Terminal Feedback Node (lee un valor de entrada y su salida será
usada en la siguiente iteración).

Terminal Feedback
Node
Terminal
inicializador
FOR
Esta estructura tiene un parecido a la estructura While ya que también repite el código depositado
en su interior un número de veces, pero con la diferencia de que el número de repeticiones está
fijado no podrá cambiarse una vez iniciada la ejecución. Consta de dos terminales numéricos:

● El terminal de iteración.
● Terminal de cuenta (en este se fija el número de repeticiones del
bucle).

Terminal de
cuenta

Terminal de
iteración
EVENT
La estructura event, Es una estructura muy útil en VIs porque mejora la eficiencia del programa. Event
tienen varios subdiagramas y un menú en la parte superior para cambiar el que se muestra. En este
menú también se tiene una condición que hace que el código del subdiagrama correspondiente se
ejecute. La diferencia con CASE es que EVENT detiene la ejecución del hilo del programa hasta que se
da esa condición, es decir, congela el programa hasta que ocurre un evento.

En la esquina superior izquierda


tiene un terminal llamado Event
Timeout. El código del diagrama
para el evento timeout se
ejecutará cuando pase el número
de milisegundos indicados en el
terminal Event Timeout.
estructura event
En esta ventana primero se muestra el número del diagrama
(Events Handled for Case) y a continuación la lista de los
eventos que pueden dar lugar a la ejecución del diagrama
(Event Specifiers), para añadir o eliminar eventos se usan los
botones de la izquierda.

Para definir un evento primero hay que especificar su fuente


en Event Sources, los eventos de las secciones Application y
This VI están predefinidos y son acciones típicas, como
cerrar la ventana, presionar una tecla, etc.
Recomendaciones que hace National Instruments sobre el uso de la estructura EVENT:

- No usar un EVENT dentro de otro.

- Si un EVENT se inserta dentro de un WHILE y éste acaba mediante un botón (un


botón de stop), se debe insertar el botón dentro del subdiagrama asociado al cambio
de valor de dicho botón.

- Los cambios de valor en controles de forma programada no generan eventos (en


eventos registrados de forma estática), sólo se generan cuando se realiza el cambio
de valor mediante la interfaz de usuario.
TIMED LOOP Y TIMED SEQUENCE
El funcionamiento de time loop consiste en repetir el código de su interior con unas determinadas
especificaciones de tiempo o hasta que se cumpla cierta condición, por todo ello es muy usado en
aplicaciones de tiempo real.

También presenta varios nodos, éstos son (de izquierda a derecha):

- Input: permite configurar el funcionamiento del bucle por medio de un asistente o cableando los
datos.
- Left Data: proporciona información sobre la iteración anterior,
- Right Data: se trata de una configuración dinámica, permite modificar los parámetros de
configuración de la estructura para la siguiente iteración.
- Output: al igual que el Left Data Node, el Output Node proporciona información, pero en este caso
la información se genera después de que el bucle se haya detenido.
La configuración puede realizarse
cableando los valores adecuados
en el Input Node o mediante los
parámetros que aparecen haciendo
doble clic sobre el primer y tercer
nodo.

Estructura del time loop


LEn el mismo menú, junto a TIMED LOOP, se encuentra una estructura parecida llamada TIMED
SEQUENCE. La principal diferencia con el TIMED LOOP es que en este caso no se repite la
ejecución de los subdiagramas, por lo tanto no se podrá especificar un periodo, pero aún así sí
puede tener otras características temporales como offset, deadline, etc.

Estructura del time sequence


DISABLE STRUCTURE
este tipo de estructura sirven para comentar el código por lo que son muy útiles para la depuración de
programas, existen de dos tipos, la incondicional y la condicional.
INCONDICIONAL CONDICIONAL

estructura tipo case o stacked sequence, compuesta de funciona igual que el anterior con la diferencia de que el
varios subdiagramas, uno habilitado y en ejecución y los diagrama habilitado se selecciona de forma automática,
demás deshabilitados, para cambiar de subdiagrama es dependiendo el valor de los símbolos asociados (OS Y
necesario hacer uso del menú contextual. CPU), al igual pudiendo definir símbolos nuevos en la
ventana de propiedades de proyecto.
FORMULA NODE
Esta estructura puede encontrarse tanto en el menú programming> structures como en mathematics>
scripts y fórmulas.
Esta fórmula no controla el flujo de la ejecución, sino evalúa una expresión matemática escrita como
texto con una sintaxis parecida al lenguaje C, El texto consistirá en una serie de sentencias finalizadas
por el símbolo «;». Las sentencias normalmente son asignaciones que usan operadores o funciones,
aunque también pueden ser declaraciones de variables, bucles o sentencias de condición. También
pueden insertarse comentarios de la misma manera que en C
Script
Al igual que el nodo FORMULA NODE hay otras
estructuras que también aceptan textos, de esta
forma se puede combinar la programación propia
de LabVIEW con la más tradicional programación
textual. El MATHSCRIPT NODE es otra de las
nuevas estructuras de LabVIEW 8.0 y mejorada
en 8.20. A diferencia de las otras dos que se verán
en esta sección, MATHSCRIPT NODE no llama a
otros programas y su código es compilado junto
con el resto del VI.
Ejemplos
- Los filtros integradores o promediadores son un tipo de filtro paso bajo. Su aplicación es
reducir el ruido de una señal suponiendo éste de frecuencia mucho más alta que la propia
señal, también se aplica en la edición de imágenes para añadir difuminados. El
funcionamiento es sencillo: calcular el promedio de una señal en un intervalo determinado.
Puede aplicarse tanto a sistemas continuos como discretos
Ejemplos
- Para generar un cartón se necesitan dos
bucles, el primero recorrerá cada una de
las decenas, como la cantidad de
ejecuciones es conocida se usará un FOR.
Dentro de este bucle habrá otro, este bucle
será un WHILE, en él se generarán
números de forma aleatoria entre dos
límites, estos límites sirven para acotar los
números dentro de la decena
correspondiente. La función Random
Number devuelve números entre el 0 y el
1, para generar números enteros se
multiplicará por 10 y se sumará el límite
inferior, el valor resultante se aproxima al
entero superior.
GRACIAS POR SU ATENCIÓN

uolmeca | olmeca.edu.mx
Carretera Villahermosa-Macuspana km 14, Poblado Dos Montes, C.P. 86280, Centro, Tabasco, México.

También podría gustarte