programaciÓn estructurada introducciÓn. introducción a la hora de programar, muchas veces es...

Post on 11-Apr-2015

115 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

PROGRAMACIÓN PROGRAMACIÓN ESTRUCTURADAESTRUCTURADA

INTRODUCCIÓNINTRODUCCIÓN

IntroducciónIntroducció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.

IntroducciónIntroducció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.

IntroducciónIntroducció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

IntroducciónIntroducció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.

IntroducciónIntroducció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

Programación estructuradaProgramación estructurada

• For Loop

• While Loop

• Case structure

• Sequence structure

• Formula Node.

Programación estructuradaProgramació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.

Programación estructuradaProgramació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.

Programación estructuradaProgramación estructurada

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

PROGRAMACIÓN PROGRAMACIÓN ESTRUCTURADAESTRUCTURADA

ESTRUCTURAS INTERACTIVASESTRUCTURAS INTERACTIVAS

Estructuras interactivasEstructuras interactivas

• FOR LOOP

• WHILE LOOP

FOR LOOPFOR 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.

FOR LOOPFOR LOOP

• Al colocar un FOR LOOP en la ventana DIAGRAM observamos que tiene dos terminales:

• Terminal contador

• Terminal de iteración

FOR LOOPFOR 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.

FOR LOOPFOR 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.

WHILE LOOPWHILE 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)

WHILE LOOPWHILE LOOP

La estructura WHILE LOOP tiene dos terminales:

• Terminal condicional

• Terminal de iteración

WHILE LOOPWHILE LOOP

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

WHILE LOOPWHILE 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.

WHILE LOOPWHILE LOOP

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

Pasos para crear LOOP’sPasos para crear LOOP’s1. Seleccionar el ciclo 2. Encerrar código que va a ser repetido

3. Arrastrar nodos adicionales y luego cablear

TúnelesTúneles

• Son puntos de acceso para entrada o salida de datos.

• Pueden ser de dos tipos:– Indexado– Simple

TúnelesTúneles

• Ejemplo de Indexado– Genera N valores

TúnelesTúneles

• Ejemplo de No Indexado– Genera el último valor, dato N

PROGRAMACIÓN PROGRAMACIÓN ESTRUCTURADAESTRUCTURADA

REGISTROS DE REGISTROS DE DESPLAZAMIENTODESPLAZAMIENTO

SHIFT REGISTERS IN LOOPSSHIFT 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.

SHIFT REGISTERS IN LOOPSSHIFT REGISTERS IN LOOPS

• Inicialmente el SHIFT REGISTER tiene un par de terminales colocados a ambos lados del LOOP:

SHIFT REGISTERS IN LOOPSSHIFT 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.

SHIFT REGISTERS IN LOOPSSHIFT 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.

SHIFT REGISTERS IN LOOPSSHIFT 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

ActividadesActividades

• Realice las actividades 3-1 a la 3-4

PROGRAMACIÓN PROGRAMACIÓN ESTRUCTURADAESTRUCTURADAESTRUCTURAS DE CONTROLESTRUCTURAS DE CONTROL

Estructuras de controlEstructuras 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.

Estructuras de controlEstructuras de control

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

Estructuras de controlEstructuras 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.

CASECASE

• 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.

CASECASE

• 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 OF1: ejecutar CASE 1;

…n: ejecutar CASE nEND

CASECASE

• 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.

CASECASE

• 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

CASECASE

• 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.

CASECASE

CASECASE

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

Estructuras de SecuenciaEstructuras 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).

Estructuras de SecuenciaEstructuras 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.

Estructuras de SecuenciaEstructuras 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).

Estructuras de SecuenciaEstructuras 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.

Estructuras de SecuenciaEstructuras 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.

Estructuras de SecuenciaEstructuras 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.

Estructuras de SecuenciaEstructuras 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.

Estructuras de SecuenciaEstructuras de Secuencia

• Para pasar datos de un FRAME a cualquier FRAME subsiguiente, use un terminal local de secuencia.

Estructuras de SecuenciaEstructuras 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.

Estructuras de SecuenciaEstructuras de Secuencia

Estructuras de SecuenciaEstructuras de Secuencia

Seleccionando la SEQUENCE, y dando click con el derecho, encontramos las siguiente opciones:

PROGRAMACIÓN PROGRAMACIÓN ESTRUCTURADAESTRUCTURADA

INTRODUCCIÓN DE FÓRMULASINTRODUCCIÓN DE FÓRMULAS

Nodos de FormulaNodos 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).

Nodos de FormulaNodos de Formula

• Nodo de Formula:

Nos permite implementar ecuaciones complicadas usando instrucciones basadas en texto.

• Localizada en la subpaleta de Structures (estructuras).

Nodos de FormulaNodos 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)

Nodos de FormulaNodos de Formula

Nodos de FormulaNodos 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

Nodos de FormulaNodos 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

PROGRAMACIÓN PROGRAMACIÓN ESTRUCTURADAESTRUCTURADA

VARIABLES VARIABLES

LOCALES Y GLOBALESLOCALES Y GLOBALES

IntroducciónIntroducció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.

IntroducciónIntroducció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.

Variables LocalesVariables Locales

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

Variables LocalesVariables 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.

Variables LocalesVariables Locales

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

Variables LocalesVariables Locales

• Una variable local nueva tiene un nodo como el siguiente.

Variables LocalesVariables Locales

• Las variables locales disponen del siguiente menú

Variables LocalesVariables 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.

Variables LocalesVariables 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.

Variables LocalesVariables Locales

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

Variables LocalesVariables 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.

Variables LocalesVariables Locales

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

Variables GlobalesVariables 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.

Variables GlobalesVariables Globales

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

Variables GlobalesVariables Globales

• El terminal que aparece corresponde a un VI que inicialmente no contiene ninguna variable

Variables GlobalesVariables Globales

• Para colocar las variables, se hace doble clic en el ícono

Variables GlobalesVariables Globales

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

ActividadesActividades

• Realice las actividades 3-5 a la 3-8

Ejercicio complementario 3.1Ejercicio complementario 3.1

• Hacer un programa que permita encender secuencialmente doce LED’s.

• Apóyese en la guía del libro LabVIEW 6i

Ejercicio complementario 3.2Ejercicio 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

top related