Instrumentacin Virtual Mecatrnica Instrumentacin Virtual TSU Cuatrimestre 2011-I Instructor: Jess M. Tarn Fontes Especialidad: Mecatrnica Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica 2 En revisin (Tarn) Enero 2011 Estructuras Case y Sequence Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica Estructuras Case y Sequence Este captulo introduce los otros dos tipos de estructuras, disponibles en LabVIEW. Para controlar el flujo de datos en el programa: La estructura Case y la estructura Sequence. Este captulo tambin introduce el Nodo de Frmula (Formula Node). Al trmino de este captulo se habr aprendido 1. Cmo usar la estructura Case 2. Como usar la estructura Sequence 3. Cmo usar los nodos de Formulas CAPITULO 3 Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica Al colocar la estructura se pueden encerrar secciones ya existentes del diagrama de bloques o bien colocar la estructura en un espacio libre y arrastrar dentro de ella elementos nuevos o elementos ya existentes. 4 Estructura Case Coloque la estructura Case en el diagrama de bloques seleccionndola de la subpaleta Structures de la paleta de funciones. Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica La estructura Case es anloga a los estatutos de if then else en los lenguajes convencionales de programacin basados en texto. Se configura como una caja de tarjetas en donde cada tarjeta corresponde a un caso y slo una tarjeta es visible a la vez. Cada tarjeta contiene un subdiagrama, que corresponde a las acciones a realizar para cada caso especfico. Slo un caso se ejecuta a la vez dependiendo del valor almacenado a la terminal de seleccin. 5 Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica Si el valor alambrado a la terminal de seleccin es 0, el diagrama de bloques a ejecutarse es el de la ventana 0 (0..X), si el valor alambrado a la terminal de seleccin es de 2, el diagrama de bloques a ejecutarse es el de la ventana 2 (0X) y as sucesivamente. El termino (0..X) representa el nmero de casos en la estructura Case. 6 La terminal de seleccin puede ser numrica o booleana. Si el tipo de dato es booleano, la estructura Case tiene dos casos, caso verdadero y caso falso, a los cuales corresponden las ventanas True y False. Si el tipo de dato es numrico, la estructura puede tener hasta 2 31 -1 casos. Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica En este ejemplo, los nmeros pasan a travs de tneles a la estructura Case y son sumados o restados, dependiendo del valor alambrado a la terminal de seleccin. Si el control booleano alambrado a la terminal de seleccin es verdadero, el VI sumar los nmeros; de otra manera, el VI restar los nmeros. 7 Ejemplo de una estructura Case booleana Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica Asegrese de alambrar los tneles de salida para cada caso de la estructura Case. Cuando se crea un tnel de salida en una ventana de la estructura, el tnel aparece, en la misma posicin, en las otras ventanas. Los tneles sin alambrar lucen como cuadrados blancos. Se puede alambrar constantes o controles a los tneles dando clic derecho sobre el cuadro en blanco y seleccionando Create Constant o Create Control. 8 Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica Ejercicio 6.1 Objetivo: Utilizar la estructura Case Construir un VI que verifica si un nmero de entrada es positivo. Si lo es, el VI calcula la raz cuadrada del nmero, de otra manera, el VI mostrar un mensaje de error. Panel Frontal 9 Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica 10 Diagrama a bloques NO EJECUTAR EL VI EN FORMA CONTINUA, SE CICLA LA PC Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica 11 Funcin Great or Equal to 0? (de la subpaleta Comparison). En este ejercicio, verifica que el nmero de entrada no sea negativo. La funcin da como resultado Verdadero si el nmero de entrada es mayor o igual a 0. Numeric Constant (del men emergente del Tnel). Coloque la herramienta de cableado en el tnel que en este momento aparece en blanco, active su men emergente y seleccione Create Constan. Utilice la herramienta de etiquetado y teclee el valor de la constante. Llame el men emergente de la constante y seleccione Format & Precision Modifquelo para que presente un dgito de precisin en notacin de punto flotante. Note que si en ambos casos el tnel no se encuentra cableado, este permanece en blanco. Asegrese de que el tnel est cableado internamente en ambos casos de la estructura Case. Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica 12 Funcin One Button Dialog (de la subpaleta Time & Dialog). En este ejercicio, esta funcin despliega una caja de dilogo que contiene el mensaje Error Nmero Negativo. String Constan (de la subpaleta String). Teclee el mensaje de error dentro de la caja con la herramienta de etiquetado. En este ejercicio, el VI se ejecutar no importando si el caso es verdadero o falso. Si el nmero es mayor o igual a cero, el VI ejecutar el caso verdadero, y se desplegar la raz cuadrada del nmero. El caso falso dar como salida -99999.0 y desplegar una caja de dilogo con el mensaje Error. Nmero Negativo si el nmero es menor que cero. Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica 13 Ejercicio 6.2 Objetivo: Utilizar la estructura Case. Construir un VI para detectar cuando la temperatura es mayor a un lmite establecido. Si la temperatura excede este lmite, un LED en el panel frontal se encender y sonar un bip. Panel Frontal Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica Diagrama a bloques Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica Note que no hay iconos en la condicin de Falso de la estructura Case. Cuando la temperatura que Termmetro.vi entrega es mayor al lmite establecido, el VI ejecuta la condicin verdadera de la estructura Case, el LED se encender y el bip sonar. Si la temperatura es menor al lmite establecido, el VI ejecutar la condicin falsa, el LED no encender y no habr ningn bip. VI Beep (de la subpaleta Graphics & Sound >>Sound). Este VI hace sonar un bip si el dato de entrada de la terminal de seleccin de la estructura Case es verdadero. Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica Estructura Sequence Coloque la estructura Sequence en el diagrama a bloques seleccionndola de la subpaleta Structures de la paleta de funciones. Al colocar la estructura se pueden encerrar secciones ya existentes del diagrama de bloques o bien colocar la estructura en un espacio libre y arrastrar dentro de ella elementos nuevos o elementos ya existentes. Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica La estructura Sequence, la cual aparece como una especie de rollo de pelcula, ejecuta secuencialmente las secciones de diagramas de bloques que contiene en cada una de sus ventanas. En los lenguajes de programacin convencionales basados en texto, los estatutos del programa se ejecutan en el orden en el que aparecen. En la programacin de flujo de datos, un nodo se ejecuta cuando hay datos disponibles en todas las entradas del nodo y por ello la secuencia en la ejecucin de los nodos es difcil de definir. Sin embargo, a veces es necesario asegurar la ejecucin de un nodo antes que otro. La estructura Sequence es la forma en que LabVIEW puede controlar el orden especfico en que los nodos se ejecutan. Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica El diagrama de bloques a ejecutarse primero, se coloca dentro de la ventana 0(0..X), el diagrama de bloques a ejecutarse en segundo trmino, se coloca dentro de la ventana 1 (0..X) y as sucesivamente. El trmino (0X) representa el rango de ventanas en la estructura Sequence. Al igual que en la estructura Case, en la estructura Sequence slo una ventana es visible a la vez. Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica Variables Locales (Sequence locals) Sequence Locals son variables que pasan datos entre ventanas de una estructura Sequence. Estas variables locales se pueden crear dando clic derecho en el borde de la ventana y seleccionando Add Sequence Local del men emergente. La informacin alambrada a una variable local est entonces disponible para las subsecuentes secuencias o ventanas. La informacin, sin embargo, no est disponible en las secuencias que preceden a la ventana en el cul se cre la variable local. Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica El ejemplo siguiente muestra una estructura Sequence de tres secuencias. Una variable local en la ventana 0 pasa el valor, que la funcin Tick Count (ms) entrega, a las ventanas siguientes. La funcin Tick Count (ms) regresa el tiempo en milisegundos que ha pasado desde el inicio del VI. Notar que este valor est disponible tanto en la ventana 1 como en la ventana 2 (como lo indica la flecha apuntando hacia adentro de la ventana). No olvide que el VI despliega slo una secuencia a la vez. En la segunda secuencia se hace una medicin de temperatura y finalmente en la tercera ventana se calcula el tiempo que toma la lectura de temperatura. Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica Ejercicio 6.3 Objetivo: Utilizar la estructura Sequence. Construir un VI que calcula el tiempo que le toma al generador de nmeros aleatorios igualar un nmero que usted especifique. Panel Frontal Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica Abra el VI Auto Match que cre en la leccin 4. Construya el panel frontal de acuerdo a la figura anterior. Asegrese de modificar los controles e indicadores como se indica. Diagrama a bloques Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica 1. Abra la ventana del diagrama a bloques y encierre dentro de una estructura Sequence el ciclo While, la funcin Increment, y el nmero de iteraciones. a) Seleccione la estructura Sequence de la subpaleta Structures. b) Marque el rea de la estructura Sequence alrededor del ciclo While, la funcin Increment y la terminal del nmero de iteraciones. Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica Nodo de Formulas Coloque el nodo de Formulas (Formula Node) en el diagrama de bloques, seleccionndolo de la subpaleta Structures de la paleta de funciones. Las ecuaciones se pueden introducir dentro del nodo de frmulas usando la herramienta de etiquetado. El nodo de Formulas es una caja redimensionable, a travs de la cul, usted puede introducir frmulas algebraicas directamente dentro del diagrama de bloques. Este elemento de programacin es extremadamente til cuando la funcin a implementar tiene muchas variables o es complicada. Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica Por ejemplo considere la ecuacin . Si usted implementa esta ecuacin usando las funciones aritmticas regulares de LabVIEW, el diagrama a bloques luce con el mostrado abajo. Usted puede implementar la mima ecuacin usando el nodo de frmulas, como se muestra a continuacin. 1 2 x x y Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica Con el nodo de frmulas, usted puede introducir directamente una frmula o frmulas complicadas, en lugar de crear subsecciones del diagrama a bloques. Usted puede crear las terminales (variables) de entrada y salida del nodo de frmulas dando clic derecho en el borde del nodo de frmulas y seleccionando Add input o Add output, segn corresponda, del men emergente. Puede escribir la o las frmulas dentro de la caja empleando la herramienta de etiquetado. Cada estatuto del nodo de frmulas debe de terminar en punto y coma (;). Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica Cada variable usada en el nodo de frmulas debe estar declarada ya sea como variable de entrada o variable de salida. Las variables internas que son usadas dentro del nodo de frmulas para calcular valores intermedios, deben ser declarados como variables de salida. Sin embargo, las terminales de estas variables internas no necesitan ser alambradas a ningn nodo externo. Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica El siguiente ejemplo muestra cmo se pueden realizar pasos de ejecucin condicionales dentro del nodo de frmulas. Considere el siguiente fragmento de cdigo que calcula la raz cuadrada de x si x es positiva, y asigna el resultado a y. Si x es negativa, el cdigo asigna -99 a y. if (x>=0 then y = sqrt(x) else y = -99 El fragmento de cdigo anterior se puede implementar usando el nodo de frmulas, como se muestra a continuacin: Operador condicional Condicin verdadera Condicin falsa Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica Ejercicio 6.4 Objetivo: Utilizar el Nodo de Frmulas para evaluar expresiones matemticas. Construir un VI que utiliza el Nodo de frmulas para evaluar una expresin matemtica compleja y graficar el resultado. ) cos( ) tanh( x x a Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica Diagrama a bloques Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica Formula Node (de la subpaleta Structures). Con este nodo de formulas, usted puede introducir formulas directamente en el diagrama de bloques. Cree la terminal de entrada al colocar el cursor sobre el borde y activar el men emergente, seleccione Add Input. Cree la terminal de salida a al seleccionar Add Output del men emergente del borde. Cuando crea una terminal de entrada o salida, debe de darle un nombre que sea idntico al que tiene en la frmula. Los nombres de las variables son sensibles a las maysculas, ya que si nombra una terminal con la minscula r debe usar la variable r en la formula. Note que el punto y coma (;) debe terminar la declaracin de cada formula. Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica Funcin Divide (de la subpaleta Numeric). En este ejercicio, esta funcin divide durante cada iteracin el valor de la terminal de iteracin entre 15.0. El cociente es llevado al Nodo de Frmulas, que calcula el valor de la funcin . El VI guarda el resultado en un arreglo de datos en la frontera del ciclo For (en modo autoindexado). Despus de que el ciclo For finaliza la ejecucin, el VI despliega en la grfica el arreglo de datos. Fin capitulo 6 Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica EJERCICIOS ADICIONALES 1. Construya un VI que use la frmula de nodo para que evale la ecuacin y = sin (x) y grafique el resultado. 2. Construya un VI que use la formula de nodo para calcular las siguientes ecuaciones: b x m y x x y
2 2 3 1 5 Use solamente la frmula de nodo para ambas ecuaciones (recuerde siempre poner el punto y coma (;) Programacin grfica para instrumentacin y control UNIVERSIDAD TECNOLOGICA DE HERMOSILLO Instrumentacin Virtual Mecatrnica 39