ESTRUCTURAS ESTRUCTURAS INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA ESTRUCTURAS WHILE FOR.. CASE SEQUENCE Opciones de seleccin de CASE Controles Visibles Variables Locales y Globales Personalizar controles INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA 1.- ENTORNO DE PROGRAMACIN 2.- ESTRUCTURAS 3.-ARRAYS Y CLUSTERS 4.- MATHSCRIPTS Y MATLAB 5.- STRINGS & FILES 6.- GRAFICOS 7.- ADQUISICION DE DATOS INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Do While Loop Do While Loop Terminal de Iteracin Terminal Condicionante Do While condicion is true Execute Sub diagram Loop While Loop revisa la condicin al final del ciclo. El ciclo se ejecuta al menos una vez. El terminal de iteracin contiene el nmero de veces que el ciclo se ha ejecutado. Ejecuta una rutina hasta que la condicin terminal se cumple. Blank.vi Blank.vi INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Do While Loop Con Click derecho derecho podemos cambiar la condicin La primera iteracin inicia en cero INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA For Loop For Loop Contador de Ciclos: indica cuantas veces se repite el subdiagrama Terminal de iteracin Contiene el nmero de iteraciones completas Dos atributos: N Terminal de conteo i - Terminal de Iteracin For I=0 to N-1 Ejecuta Cdigo Next I NOTA: El CERO es indexado y aparece en la primera iteracin A partir de LabVIEW7, haciendo click sobre WHILE loop en el diagrama de bloques puede cambiarse por FOR loop EJECUTA UN SUBDIAGRAMA UN DETERMINADO NMERO DE VECES Si N es cero o negativo el ciclo no se ejecuta Ejercicio Ejercicio Blank.vi Blank.vi INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Se obtiene el ltimo resultado Se almacenan en cada una de las celdas de una matriz los resultados parciales INDEXADO INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Shift Registers Shift registers se utiliza tanto en los WHILE LOOP como en FOR LOOP. Se usan para transferir datos desde una iteracin a la siguiente. Son similares a las variables estticas en los lenguajes de programacin basados en texto. Un Shift register se crea haciendo click sobre el borde derecho o izquierdo del loop y seleccionando Add Shift registers desde el men emergente. Los datos a cablear en los terminales de cada SR deben ser del mismo tipo. INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Ejercicio Ejercicio Ejercicio Ejercicio: Obtener el penltimo y ltimo resultado del cuadrado de los primeros cinco nmeros naturales. INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA EJERCICIO VI Shift Registers INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Sentencias de Seleccin: Case Structures Esta estructura es equivalente a IF/ THEN/ ELSE CASE SELECT structures F a l s e If condition=TRUE THEN Execute code ELSE Execute Code End If CASE SELECT var var=1, do code1 var=2, do code2 var=3, do code3 otherwise, do code 0 , D e f a u lt v a r INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Case Structures INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Opciones de Selecci Opciones de Selecci n para CASE n para CASE Ejercicio (booleano Ejercicio (booleano- -num num rico rico- -Ring) Ring) Ejercicio ( Ejercicio (tab tab control) control) INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Opcin de Seleccin con TAB CONTROL Ejercicio Ejercicio INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA EJERCICIO VI INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Propiedades de Controles e Indicadores Propiedades de Controles e Indicadores Visible Visible INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Marcando el control y haciendo clic derecho con el mouse seleccionamos: Create->Property Node->Visible Propiedades Propiedades node.vi node.vi INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA En lenguajes tradicionales basados en texto, el orden de ejecucin lo impone el orden en que las instrucciones estn escritas. En LabVIEWsigue el modelo de Flujo de Datos, (un nodo necesita tener disponibles todos los datos de sus entradas para ejecutarse), por lo tanto no se puede determinar cual es el orden de las tareas a ejecutar. Puede presentarse el caso de nodos independientes, en situacin de ejecutarse simultneamente, pero por manejo de los datos, es necesario fijar el orden de los mismos, es decir establecer una secuencia de ejecucin. Sentencias de secuenciacin INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Se trata de un tipo de sentencia que garantiza la ejecucin secuencial (uno detrs de otro) de varios mdulos de cdigo. Cuando en el diagrama de LabVIEWson definidos varios mdulos de cdigo, en realidad no se sabe en qu orden van a ser ejecutados, es decir, no se sabe cul de ellos se ejecutar en primer lugar y cul en el ltimo lugar. Hay aplicaciones en las que este orden de ejecucin no es importante, pero en otras es de vital importancia. Por ello, en las aplicaciones donde el orden de ejecucin de los distintos mdulos es crtico, resulta imprescindible utilizar las sentencias de secuenciacin para garantizar esa secuencia de ejecucin de los mdulos. Sentencias de secuenciacin INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Simulan como fotogramas de una pelcula La herramienta de desarrollo de aplicaciones LabVIEWofrece dos dos sentencias de secuenciacin. La primera es la Flat Sequence Structure y se encuentra en Functions/Programming/Structures. Cuando es insertada en el diagrama de nuestra aplicacin, aparece con una nica ventana o Frame: es la unidad o elemento donde ir un mdulo dado del cdigo de nuestra aplicacin. Para aadir ms ventanas, se pulsa sobre la ventana con el botn derecho del ratn y se ejecuta Add Frame Before o Add Frame After, para aadir la ventana antes o despus de la actual, respectivamente. Sentencias de secuenciacin Ejercicio Ejercicio INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Ejercicio Ejercicio INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA FLAT SEQUENCE FLAT SEQUENCE ejercicio Ejercicio 2.7 Construir un VI que 5 LEDS, que se iluminen en forma cclica de izquierda a derecha: INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Cuando son necesarias muchas ventanas, porque as lo requiere la aplicacin, aparece el problema del espacio en el diagrama, de tener que desplazar varias pantallas desde el inicio de la secuencia hasta su final. Entonces, lo lgico es sustituir la sentencia Flat Flat Sequence Sequence Structure Structure por la sentencia Stacked Stacked Sequence Sequence Structure Structure, la cual funciona exactamente igual que la anterior, solo que apila las ventanas una encima de otra. Aunque a simple vista no sea posible ver la secuencia, resulta muy prctico su uso cuando el espacio disponible es pequeo. Sentencias de secuenciacin INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Sentencias de secuenciacin Ejercicio INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Trabajando con Variables Variable Local Variable Global Variable Compartida INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Trabajando con Variables Trabajando con Variables Muchas veces dentro de la programacin es necesario almacenar el valor de una variable para poder usarla posteriormente. En LabVIEWtambin puede realizarse estas sentencias, almacenando una variable para luego usarla dentro de otro bloque del VI o bien en en otro VI. otro VI. LabVIEWdispone de dos tipos de variables locales y globales y a partir de la versin 8.0 las compartidas. INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Creacin de una Variable Local Construimos el siguiente VI, utilizando una Flat Sequence Structure Ejercicio Ejercicio INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Creacin de una Variable Local A continuacin le agregamos un cuadro a la secuencia, que consistir en una variable local que almacenar el ltimo nmero generado y lo presentar en el PF. La variable local la seleccionamos dentro de Structures : INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Creacin de una Variable Local A continuacin hay dos pasos fundamentales a realizar: Primero: determinar a que objeto del programa va a estar enlazado Segundo: elegir si va a ser de lectura (read) o escritura (wirte). Para el caso del ejemplo hacer click derecho sobre la variable local y seleccionar Select Item/Numeric y luego Change to Read INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Creacin de una Variable Local INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Creacin de una Variable Local Finalmente le agregamos un indicador a la variable y ejecutamos el programa, comprobando que este termina con dos indicadores con valores idnticos, es decir el ltimo nmero registrado: INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Creacin de una Variable Global Las variables locales solo tienen vida dentro de un mismo VI y no pueden ser llamadas desde otro VI. Esto si ocurre con las variables globales. En el ejercicio siguiente se va a utilizar una variable global para almacenar un nmero generado en un VI para ser llevado a otro VI. Para esto primero desde el DB creamos desde Structures la variable global Ejercicio Ejercicio INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Creacin de una Variable Global Luego grabamos el VI como Global y cerramos. A continuacin se va a seleccionar la entrada de la variable Global a utilizar, para esto hacemos click derecho en la variable y en Select Item optamos por la entrada 1, verificando que est en modo Write INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Creacin de una Variable Global INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Paso siguiente sin cerrar el actual VI (Variable Global 1), creamos otro VI (Variable Global 2) para rescatar el valor anterior y mostrarlo en pantalla. Para este segundo VI, creamos uno en blanco y llamamos a la variable Global como si se llamase a un SubVI, luego cambiar a lectura y realizar el programa siguiente: Creacin de una Variable Global INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Ejecutamos Variable Global 2 en modo continuo activando el control booleano y luego ejecutamos el VI anterior (Variable Global 1), y se observar como va cambiando el nmero, es decir el valor generador en el primer VI, es rescatado en el segundo VI Creacin de una Variable Global INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA SIMULACIN LLENADO Y VACIADO DE UN TANQUE Ejercicio Vlvula abierta Llenado del tanque Vlvula cerrada Vaciado del tanque Aplicaci Aplicaci n de Flat n de Flat Sequence Sequence y Variable Local y Variable Local INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Creacin de una Variable Local (Control de la Vlvula apertura-cierre de entrada de lquido) Haciendo con el mouse clic derecho sobre el control Vlvula vamos a Create y luego Local Variable Ahora lo movemos al primer cuadro de la estructura sequence y le anexamos una constante booleana (verdad). Seteado en Write INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Personalizar Controles INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Ejemplo Ejemplo INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Customizar Customizar controles controles INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA A partir del agregado de un botn OK, haciendo clic derecho con el mouse seleccionamos Advanced Advanced, , y luego customize. INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Importante: Sin en lugar de Picture Item aparece Text Item, debe separarse previamente el texto del control de la imagen. En este caso mover OK por fuera del dibujo. INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Ejercicios Ejercicios Adicionales Adicionales INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA demo demo INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA video video INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Ejercicio 2.9 INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA EJERCICIO 2.10 EJERCICIO 2.10 Graficar un nmero aleatorio con delay variable calibrado en segundos desde el panel frontal INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Graficar la temperatura actual y la media con dos sensores de temperatura ubicados en dos lugares distintos (cmara 1 y cmara 2) Ejercicio 2.11 Ejercicio 2.11 INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA Ejercicio 2.12. Ejercicio 2.12. En un arreglo de 10 LEDS hacer que encienda a travs de un control numrico un determinado LED. De la misma manera con otro control numrico efectuar la operacin de apagado. Ejercicio 2.12 INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA INSTRUMENTACI INSTRUMENTACI N AVANZADA N AVANZADA