La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

PROGRAMACIÓN ESTRUCTURADA

Presentaciones similares


Presentación del tema: "PROGRAMACIÓN ESTRUCTURADA"— Transcripción de la presentación:

1 PROGRAMACIÓN ESTRUCTURADA
INTRODUCCIÓN

2 Introducción A la hora de programar, muchas veces es necesario ejecutar un mismo conjunto de sentencias un número determinado de veces, o que éstas se repitan mientras se cumplan ciertas condiciones. También puede ocurrir que queramos ejecutar una u otra sentencia dependiendo de las condiciones fijadas o simplemente forzar que unas se ejecuten siempre antes que otras.

3 Introducción Las estructuras son representaciones gráficas de las expresiones de los lazos y casos los lenguajes de programación basados en texto. Use las estructuras en el diagrama de bloques para repetir bloques de código y ejecutar código condicionalmente o en un orden específico.

4 Introducción Al igual que los otros nodos, las estructuras tienen terminales que los conectan con otros nodos de diagrama, se ejecutan automáticamente cuando los datos de entrada están disponibles, y proveen datos de salida cuando la ejecución se completa

5 Introducción La sección del bloque de diagrama dentro de la estructura es llamada subdiagrama. Las terminales que alimentan datos de entrada o de salida son llamadas túneles. Un túnel es un punto de conexión en el borde de la estructura.

6 Introducción Para ello LabVIEW dispone de estructuras fácilmente diferenciables por su apariencia y disponibles en la opción STRUCTURES del menú FUNCTIONS de la ventana DIAGRAM

7 Programación estructurada
For Loop While Loop Case structure Sequence structure Formula Node.

8 Programación estructurada
For Loop — Ejecuta un subdiagrama un determinado número de veces. While Loop — Ejecuta un subdiagrama hasta que una condición es encontrada.

9 Programación estructurada
Case structure — Contiene múltiples subdiagramas, solamente uno de los cuales se ejecuta dependiendo del valor de entrada para la estructura. Sequence structure — Contiene uno o mas subdiagramas, los cuales se ejecutan en un orden secuencial.

10 Programación estructurada
Formula Node — Realiza una operación matemática basada en una entrada numérica.

11 PROGRAMACIÓN ESTRUCTURADA
ESTRUCTURAS INTERACTIVAS

12 Estructuras interactivas
FOR LOOP WHILE LOOP

13 FOR LOOP Un FOR LOOP ejecuta un subdiagrama un determinado número de veces. Su equivalente en lenguaje convencional es: FOR i=0 TO N-1 Ejecuta programa.

14 FOR LOOP Al colocar un FOR LOOP en la ventana DIAGRAM observamos que tiene dos terminales: Terminal contador Terminal de iteración

15 FOR LOOP Terminal contador: Indica el número de veces que se ha repetido el subdiagrama creado en el interior de la estructura. El valor del contador se fijará externamente.

16 FOR LOOP Terminal de iteración: Indica el número de veces que se ha ejecutado la estructura: Cero durante la primera iteración, uno durante la segunda y así sucesivamente hasta N-1.

17 WHILE LOOP Similar al ciclo Haga (Do) o al ciclo Repita-hasta (Repeat-Until) en lenguajes de programación basados en texto, un ciclo Mientras, ejecuta un subdiagrama hasta que la condición sea cumplida. DO Ejecutar subdiagrama WHILE condición es TRUE (o FALSE)

18 WHILE LOOP La estructura WHILE LOOP tiene dos terminales:
Terminal condicional Terminal de iteración

19 WHILE LOOP Por defecto, el comportamiento y apariencia es CONTINUE IF TRUE. Significa que se ejecuta el subdiagrama hasta que recibe un valor FALSE.

20 WHILE LOOP Se puede cambiar el comportamiento y la apariencia a STOP IF TRUE. Esto es, el subdiagrama se ejecuta hasta que recibe un valor TRUE.

21 WHILE LOOP Dado que el VI checa la terminal condicional al menos una vez, el WHILE LOOP se ejecutará al menos una vez.

22 Pasos para crear LOOP’s
1. Seleccionar el ciclo 2. Encerrar código que va a ser repetido 3. Arrastrar nodos adicionales y luego cablear Coloque ciclos en su diagrama seleccionándolos desde la paleta de Estructuras de la paleta de Funciones (demostrar) Cuando este seleccionado, el cursor del ratón se convierte en un puntero especial que usted usa para encerrar la sección del código que desea repetir. Déle clic al botón del ratón para definir la esquina superior-izquierda, déle clic otra vez al botón del ratón en la esquina inferior izquierda, y la frontera del ciclo Mientras es creada alrededor del código seleccionado. Arrastre nodos adicionales adentro del ciclo Mientras si es necesario.

23 Túneles Son puntos de acceso para entrada o salida de datos.
Pueden ser de dos tipos: Indexado Simple

24 Túneles Ejemplo de Indexado Genera N valores

25 Túneles Ejemplo de No Indexado Genera el último valor, dato N

26 PROGRAMACIÓN ESTRUCTURADA
REGISTROS DE DESPLAZAMIENTO

27 SHIFT REGISTERS IN LOOPS
Los registros de desplazamiento son variables locales disponibles tanto en el FOR LOOP como en el WHILE LOOP, que permiten transferir los valores del final de una iteración al principio de la siguiente.

28 SHIFT REGISTERS IN LOOPS
Inicialmente el SHIFT REGISTER tiene un par de terminales colocados a ambos lados del LOOP:

29 SHIFT REGISTERS IN LOOPS
El terminal de la derecha almacena el valor final de la iteración hasta que una nueva hace que este valor se desplace al terminal de la izquierda quedando en el de la derecha el nuevo valor.

30 SHIFT REGISTERS IN LOOPS
Un mismo registro de desplazamiento puede tener más de una terminal en el lado izquierdo, para añadirlo, escogemos la opción ADD SHIFT REGISTER por medio del botón derecho del ratón. Cuantos más terminales tengamos en el lado izquierdo más valores de iteraciones podremos almacenar.

31 SHIFT REGISTERS IN LOOPS
Un mismo LOOP puede tener varis registros de desplazamientos siendo conveniente inicializarlos, para que los terminales de la izquierda tengan el valor deseado cuando se produzca la primera iteración. Al finalizar la ejecución de todas las iteraciones el último valor quedará en el terminal de la derecha; uniéndolo a un indicador obtendremos su valor

32 Actividades Realice las actividades 3-1 a la 3-4

33 PROGRAMACIÓN ESTRUCTURADA
ESTRUCTURAS DE CONTROL

34 Estructuras de control
Este tipo de estructuras se diferencia de las iterativas en que puede tener múltiples subprogramas, de los cuales solamente uno es visible a la vez.

35 Estructuras de control
En la parte superior de cada estructura existe una pequeña ventana que muestra el identificador del subprograma que se esta mostrando.

36 Estructuras de control
A ambos lados de esta ventana existen dos botones que decrementan o incrementan el identificador de forma que podamos ver el resto de subdiagramas.

37 CASE La estructura CASE consta de un terminal llamado selector y un conjunto de subdiagramas, cada uno de los cuales está adentro de un CASE o suceso y etiquetado por un identificador del mismo tipo que el selector.

38 CASE En este caso la estructura CASE engloba dos sentencias diferentes de otros lenguajes convencionales: 1. IF condición TRUE THEN ejecutar CASE TRUE ELSE ejecutar CASE FALSE 2. CASE SELECTOR OF 1: ejecutar CASE 1; n: ejecutar CASE n END

39 CASE CASE no cuenta con los registros de desplazamiento de las estructuras iterativas pero sí podemos crear túneles para sacar o introducir datos. Si un CASE o suceso proporciona un dato de salida a una determinada variable será necesario que todos los demás también lo hagan; si no ocurre de esta manera será imposible ejecutar el programa.

40 CASE Si el tipo de selector es boleano, la estructura tiene un caso TRUE y un caso FALSE. Si el terminal selector es un entero, la estructura puede tener muchos casos

41 CASE En cualquier caso siempre hemos de cubrir todo el rango posible de valores, y al menos ha de haber un CASE por defecto, el cual se ejecutará en caso que el selector no corresponda a ninguno de los previstos.

42 CASE

43 CASE Seleccionando el CASE, y dando click con el derecho, encontramos las siguiente opciones:

44 Estructuras de Secuencia
En la subpaleta de control de ejecución (Execution Control) de la paleta de funciones. Ejecuta diagramas secuencialmente. Presionar botón derecho del mouse para agregar un nuevo cuadro (frame). En un lenguaje basado en texto ,las declaraciones del programa se ejecutan en el orden en que aparecen. En un flujo de datos, un nodo se ejecuta cuando los datos están disponibles en todas sus terminales de entrada. Algunas veces es difícil determinar el orden exacto de ejecución. A menudo, ciertos eventos deben suceder antes que otros. Cuando usted necesite controlar el orden de la ejecución del código en su diagrama de bloques, usted puede utilizar una Sequence Structure (estructura de secuencia). Estructura de Secuencia: Usada para controlar el orden en que los nodos en un diagrama se ejecutaran. In la paleta de Execution Control (control de ejecución). Luce como un pedazo de rollo de película. Utilizada para ejecutar diagramas secuencialmente. Hacer clic derecho con el mouse en los bordes para crear un nuevo cuadro.

45 Estructuras de Secuencia
En un lenguaje basado en texto ,las declaraciones del programa se ejecutan en el orden en que aparecen. En un flujo de datos, un nodo se ejecuta cuando los datos están disponibles en todas sus terminales de entrada. En un lenguaje basado en texto ,las declaraciones del programa se ejecutan en el orden en que aparecen. En un flujo de datos, un nodo se ejecuta cuando los datos están disponibles en todas sus terminales de entrada. Algunas veces es difícil determinar el orden exacto de ejecución. A menudo, ciertos eventos deben suceder antes que otros. Cuando usted necesite controlar el orden de la ejecución del código en su diagrama de bloques, usted puede utilizar una Sequence Structure (estructura de secuencia). Estructura de Secuencia: Usada para controlar el orden en que los nodos en un diagrama se ejecutaran. In la paleta de Execution Control (control de ejecución). Luce como un pedazo de rollo de película. Utilizada para ejecutar diagramas secuencialmente. Hacer clic derecho con el mouse en los bordes para crear un nuevo cuadro.

46 Estructuras de Secuencia
Algunas veces es difícil determinar el orden exacto de ejecución. A menudo, ciertos eventos deben suceder antes que otros. Cuando usted necesite controlar el orden de la ejecución del código en su diagrama de bloques, usted puede utilizar una Sequence Structure (estructura de secuencia). En un lenguaje basado en texto ,las declaraciones del programa se ejecutan en el orden en que aparecen. En un flujo de datos, un nodo se ejecuta cuando los datos están disponibles en todas sus terminales de entrada. Algunas veces es difícil determinar el orden exacto de ejecución. A menudo, ciertos eventos deben suceder antes que otros. Cuando usted necesite controlar el orden de la ejecución del código en su diagrama de bloques, usted puede utilizar una Sequence Structure (estructura de secuencia). Estructura de Secuencia: Usada para controlar el orden en que los nodos en un diagrama se ejecutaran. In la paleta de Execution Control (control de ejecución). Luce como un pedazo de rollo de película. Utilizada para ejecutar diagramas secuencialmente. Hacer clic derecho con el mouse en los bordes para crear un nuevo cuadro.

47 Estructuras de Secuencia
Una estructura SEQUENCE contiene uno o mas subprogramas o FRAMES, los cuales ejecuta en orden secuencial. LA etiqueta del FRAME en la parte superior de la estructura es similar a la etiqueta de la estructura CASE. La etiqueta del FRAME contiene un número de FRAME en el centro y flechas a los lados para incrementa o decrementar los FRAMES disponibles.

48 Estructuras de Secuencia
Por ejemplo, en el selector de secuencia, 0 es el número de FRAME actual y [0..2] es el rango de FRAMES.

49 Estructuras de Secuencia
Cada subprograma estará contenido en un FRAME o marco y éstos se ejecutarán en orden de aparición: Primero el FRAME 0, luego el 1 y así sucesivamente hasta el último.

50 Estructuras de Secuencia
Si un FRAME aporta un dato de salida a una variable los demás no tendrán porque hacerlo. Pero tendremos que tener en cuenta que el dato estará disponible cuando se ejecute el último FRAME y no cuando se ejecute el FRAME que transfiere el dato.

51 Estructuras de Secuencia
Para pasar datos de un FRAME a cualquier FRAME subsiguiente, use un terminal local de secuencia.

52 Estructuras de Secuencia
Una flecha señalando hacia fuera aparece en el terminal local de secuencia del FRAME que contiene el dato fuente. La terminal en FRAMES subsiguientes contienen una flecha señalando hacia adentro, indicando que la terminal es un dato fuente para ese FRAME.

53 Estructuras de Secuencia

54 Estructuras de Secuencia
Seleccionando la SEQUENCE, y dando click con el derecho, encontramos las siguiente opciones:

55 PROGRAMACIÓN ESTRUCTURADA
INTRODUCCIÓN DE FÓRMULAS

56 Nodos de Formula Algunas veces es preferible programar expresiones matemáticas con funciones basadas en texto, en lugar de hacerlo con iconos (los que pueden tomar mucho espacio en el diagrama). Algunas veces es preferible programar expresiones matemáticas con funciones basadas en texto, en lugar de hacerlo con iconos (los que pueden tomar mucho espacio en el diagrama). Nodo de Formula: Nos permite implementar ecuaciones complicadas usando instrucciones basadas en texto. Localizada en la subpaleta de Structures (estructuras). La cajas pueden cambiar de tamaño para introducir formulas algebraicas directamente a los diagramas de bloque. Para agregar variables, se presiona el botón derecho del mouse y se escoge la opción de agregar entrada (Add Input) o agregar salida (Add Output). Hay que nombrar las variables de la misma manera en que serán usadas en la formula. (Los nombres son sensibles a capitalización) Las declaraciones deben terminar con un punto y coma (;) Al usar varias formulas en un solo nodo de formula, cada variable asignada (las que aparecen en la parte izquierda de cada formula) deben de tener una terminal de salida en el nodo de formula. Sin embargo, estas terminales de salida no necesitan ser cableadas. Compare los ejemplos en la diapositiva.

57 Nodos de Formula Nodo de Formula:
Nos permite implementar ecuaciones complicadas usando instrucciones basadas en texto. Localizada en la subpaleta de Structures (estructuras). Algunas veces es preferible programar expresiones matemáticas con funciones basadas en texto, en lugar de hacerlo con iconos (los que pueden tomar mucho espacio en el diagrama). Nodo de Formula: Nos permite implementar ecuaciones complicadas usando instrucciones basadas en texto. Localizada en la subpaleta de Structures (estructuras). La cajas pueden cambiar de tamaño para introducir formulas algebraicas directamente a los diagramas de bloque. Para agregar variables, se presiona el botón derecho del mouse y se escoge la opción de agregar entrada (Add Input) o agregar salida (Add Output). Hay que nombrar las variables de la misma manera en que serán usadas en la formula. (Los nombres son sensibles a capitalización) Las declaraciones deben terminar con un punto y coma (;) Al usar varias formulas en un solo nodo de formula, cada variable asignada (las que aparecen en la parte izquierda de cada formula) deben de tener una terminal de salida en el nodo de formula. Sin embargo, estas terminales de salida no necesitan ser cableadas. Compare los ejemplos en la diapositiva.

58 Nodos de Formula La cajas pueden cambiar de tamaño para introducir formulas algebraicas directamente a los diagramas de bloque. Para agregar variables, se presiona el botón derecho del mouse y se escoge la opción de agregar entrada (Add Input) o agregar salida (Add Output). Hay que nombrar las variables de la misma manera en que serán usadas en la formula. (Los nombres son sensibles a capitalización) Algunas veces es preferible programar expresiones matemáticas con funciones basadas en texto, en lugar de hacerlo con iconos (los que pueden tomar mucho espacio en el diagrama). Nodo de Formula: Nos permite implementar ecuaciones complicadas usando instrucciones basadas en texto. Localizada en la subpaleta de Structures (estructuras). La cajas pueden cambiar de tamaño para introducir formulas algebraicas directamente a los diagramas de bloque. Para agregar variables, se presiona el botón derecho del mouse y se escoge la opción de agregar entrada (Add Input) o agregar salida (Add Output). Hay que nombrar las variables de la misma manera en que serán usadas en la formula. (Los nombres son sensibles a capitalización) Las declaraciones deben terminar con un punto y coma (;) Al usar varias formulas en un solo nodo de formula, cada variable asignada (las que aparecen en la parte izquierda de cada formula) deben de tener una terminal de salida en el nodo de formula. Sin embargo, estas terminales de salida no necesitan ser cableadas. Compare los ejemplos en la diapositiva.

59 Nodos de Formula

60 Nodos de Formula Las declaraciones deben terminar con un punto y coma (;) Al usar varias formulas en un solo nodo de formula, cada variable asignada (las que aparecen en la parte izquierda de cada formula) deben de tener una terminal de salida en el nodo de formula. Sin embargo, estas terminales de salida no necesitan ser cableadas

61 Nodos de Formula En la subpaleta de Estructuras (Structures).
Implementa ecuaciones complicadas. Variables creadas en los márgenes Nombres de variables son sensibles (mayúsculas/minúsculas) Cada declaración debe de terminar con un punto y coma(;) La ventana de ayuda muestra las funciones disponibles. Note el Punto y coma Algunas veces es preferible programar expresiones matemáticas con funciones basadas en texto, en lugar de hacerlo con iconos (los que pueden tomar mucho espacio en el diagrama). Nodo de Formula: Nos permite implementar ecuaciones complicadas usando instrucciones basadas en texto. Localizada en la subpaleta de Structures (estructuras). La cajas pueden cambiar de tamaño para introducir formulas algebraicas directamente a los diagramas de bloque. Para agregar variables, se presiona el botón derecho del mouse y se escoge la opción de agregar entrada (Add Input) o agregar salida (Add Output). Hay que nombrar las variables de la misma manera en que serán usadas en la formula. (Los nombres son sensibles a capitalización) Las declaraciones deben terminar con un punto y coma (;) Al usar varias formulas en un solo nodo de formula, cada variable asignada (las que aparecen en la parte izquierda de cada formula) deben de tener una terminal de salida en el nodo de formula. Sin embargo, estas terminales de salida no necesitan ser cableadas. Compare los ejemplos en la diapositiva.

62 PROGRAMACIÓN ESTRUCTURADA
VARIABLES LOCALES Y GLOBALES

63 Introducción Las variables son imprescindibles en cualquier tipo de problemas, ya que permiten almacenar la información necesaria para su resolución. En LabVIEW todos los controles introducidos en el panel frontal que generan una terminal en la ventana Diagrama van a ser variables, identificables por el nombre asignado en la etiqueta.

64 Introducción Puede ocurrir que se quiera utilizar el valor de cierta variable en otro subprograma o en otro VI o, simplemente, que queramos guardar un resultado intermedio. La forma más sencilla de hacerlo es generando variables locales y/o globales dependiendo de su aplicación.

65 Variables Locales En las variables locales los datos se almacenan en algunos de los controles o indicadores existentes en el panel frontal del VI creado.

66 Variables Locales Con una variable local se puede escribir o leer uno de los controles o indicadores del panel frontal del VI creado. Escribir a una variable local tiene el mismo resultado de pasar un dato a la terminal, excepto que se puede escribir aún si es control, o leerlo aún si es un indicador.

67 Variables Locales Las variables locales están disponibles en el menú STRCTURES de la paleta de funciones.

68 Variables Locales Una variable local nueva tiene un nodo como el siguiente.

69 Variables Locales Las variables locales disponen del siguiente menú

70 Variables Locales VISIBLE ITEMS: Oculta o visualiza la etiqueta de identificación de la estructura. FIND: Permite encontrar el control y terminal del cual procede la variable local. CHANGE TO READ/TO WRITE: Permite escoger entre leer o escribir al control SELECT ITEM: Visualiza una lista con el nombre de todos los controles existentes en el panel frontal.

71 Variables Locales DESCRIPTION AND TIP: Permite añadir comentarios
SET BREAK POINT: Pone un punto de ruptura para depuración CREATE: Crea un control, indicador o constante conectados a esa local REPLACE: Sustituye la variable local por cualquier otra función.

72 Variables Locales Como ejemplo si se tienen las siguientes variables
Para cada variable local, seleccionamos un ítem.

73 Variables Locales La siguiente ilustración muestra como múltiples variables locales acceden al mismo control, cada uno tiene un diferente sentido, tanto leer como escribir.

74 Variables Locales La variable AGE se usa dos veces en el diagrama, una para escribir y otra para leer de ella.

75 Variables Globales Las variables globales son un tipo especial de VI, que únicamente dispone de panel frontal, en el cual se define el tipo de dato de la variable y el nombre de identificación imprescindible para después poderse referir a ella.

76 Variables Globales Cuando escogemos la función GLOBAL del menú STRUCTURE, creamos un nuevo terminal en el diagrama

77 Variables Globales El terminal que aparece corresponde a un VI que inicialmente no contiene ninguna variable

78 Variables Globales Para colocar las variables, se hace doble clic en el ícono

79 Variables Globales Para usar la variable global en un diagrama de bloques, habrá que asociarla a un control previamente definido el panel de control.

80 Actividades Realice las actividades 3-5 a la 3-8

81 Ejercicio complementario 3.1
Hacer un programa que permita encender secuencialmente doce LED’s. Apóyese en la guía del libro LabVIEW 6i

82 Ejercicio complementario 3.2
Construya un VI que funcione como calculadora. El panel frontal debe tener dos controles para introducir los datos, otro para indicar el tipo de operación (suma, resta multiplicación y división) y un indicador que muestre el resultado


Descargar ppt "PROGRAMACIÓN ESTRUCTURADA"

Presentaciones similares


Anuncios Google