Está en la página 1de 56

Parte para el Estudiante Introduccin

En este ejercicio aprenders acerca del ambiente de programacin de LabVIEW. Tambin escribirs un Instrumento Virtual (VI) simple para incorporar operaciones bsicas en LabVIEW. Finalmente convertirs tus programas en subVIs.

Objetivos: Aprender tres partes de un VI Aprender tres paletas Aprender como se transmiten los datos en LabVIEW Distinguir entre controles e indicadores en el panel frontal y el diagrama de bloques Crear subVIs usando dos diferentes mtodos

Teora
Programacin Bsica con LabVIEW

Introduccin LabVIEW es un lenguaje de programacin bsico que usa iconos en lugar de lneas de texto para crear aplicaciones. A diferencia de los lenguajes de programacin basados en texto, en donde las instrucciones determinan la ejecucin del programa, LabVIEW usa programacin de flujo de datos, en donde el flujo determina la ejecucin. En LabVIEW t construyes la interfase de usuario utilizando un conjunto de herramientas y objetos. La interfase de usuario es conocida como panel frontal. Al cual agregas cdigo usando representaciones grficas y funciones para controlar los objetos del panel frontal. El diagrama de bloques tiene este cdigo, de alguna forma el diagrama de bloques recuerda un diagrama de flujo.

Los programas de LabVIEW son llamados instrumentos virtuales VIs, porque su apariencia y operaciones recuerdan a los instrumentos fsicos, tales como osciloscopios y multmetros. Todo VI usa funciones para manipular entradas de la interfase de usuario o de otras fuentes y despliega la informacin o las mueve a otros archivos o computadoras.

Un VI contiene los siguientes tres componentes: Panel Frontal.- Sirve como la interfase de usuario Diagrama de bloques.- Contiene el cdigo fuente grfico el cual define la funcionalidad de el VI. Icono y panel conector.- Identifica al VI para que puedas usar el VI en otro VI. Un VI que esta dentro de otro VI es un subVI. Un subVI corresponde a una subrutina en los lenguajes basados en texto.

Panel Frontal

El panel frontal es la interfase de usuario del VI. El panel frontal se construye con controles e indicadores, los cuales son las entradas y salidas interactivas del VI respectivamente.

Los controles son perillas, botones y otros dispositivos de entrada. Los indicadores son graficas, LEDs y otros dispositivos. Los controles simulan instrumentos de entrada y suplen de informacin al diagrama de bloques del VI. Los indicadores simulan instrumentos de salida y despliegan la informacin, el diagrama de bloques adquiere o genera.

Diagrama de Block

Despus de construir el panel frontal, agregas cdigo usando representaciones grficas funciones para controlar los objetos del panel frontal. El diagrama de bloques contiene el cdigo fuente grfico. Los objetos en le panel frontal aparecen como terminales en el diagrama de bloques. Adicionalmente, el diagrama de bloques contiene funciones y estructuras de las libreras internas de LabVIEW. Los cables se conectan en cada nodo del diagrama de bloques, incluyendo el control, las terminales del indicador, funciones y estructuras. Paletas de LabVIEW Las paletas de LabVIEW te dan las opciones que necesitas para crear y editar el panel frontal y el diagrama de bloques. La paleta de herramientas esta disponible en el panel frontal y el diagrama de bloques. Una herramienta es un modo de operacin especial del cursor. Cuando seleccionas una herramienta, el icono del cursor cambia al icono de la herramienta. Utiliza las herramientas para operar y modificar el panel frontal y los objetos del diagrama de bloques.

Selecciona ViewTools Palette para desplegarla. Puedes ponerla en cualquier lugar de la pantalla. La paleta de herramientas esta disponible tanto en el panel frontal como en el diagrama de bloques. Si el modo automtico de la herramienta esta seleccionado y mueves el cursor sobre los objetos en el panel frontal o el diagrama de bloques, LabVIEW automticamente selecciona la herramienta adecuada de la paleta de herramientas. La paleta de control esta disponible solo en el panel frontal. La paleta de control contiene los controladores e indicadores que se usan para crear el panel frontal. Selecciona ViewControls Palette o da un clic derecho en el rea de trabajo del panel frontal para desplegar la paleta de control. Para fijarla basta dar un clic en el pin de la parte superior derecha, puedes ponerla en cualquier lugar de la pantalla La paleta de funciones esta disponible solo en el diagrama de bloques. La paleta de Funciones contiene los VIs y funciones usadas para construir el diagrama de bloques. Selecciona ViewFunctions Palette o da un clic derecho en el rea de trabajo para desplegarla. Para fijarla basta dar un clic en el pin de la parte superior derecha, puedes ponerla en cualquier lugar de la pantalla. Programacin de flujo de datos LabVIEW sigue un modelo de flujo de datos para los VIs que estn corriendo. El nodo del diagrama de bloques se ejecuta cuando todas sus entradas estn disponibles. Cuando un nodo completa su ejecucin, pasa los datos a las terminales de salida y pasa los datos de salida al siguiente nodo en la ruta que sigue el flujo de datos.

Creando SubVIs Introduccin Despus de crear un VI el icono y el panel de conexiones, lo puedes usar en otro VI. Un VI que llamas del diagrama de bloques de otro VI es se le conoce como subVI. Un subVI corresponde a una subrutina de los programas basadas en texto. Un nodo de subVI corresponde a una subrutina llamada en los programas basados en texto. El nodo no es el subVI por si solo, como cuando llamas una subrutina en un programa basado en texto.

Configurando el Panel de Conexiones.

Para usar un VI como un subVI necesitas construir el panel de conexiones. El Panel de conexiones es un conjunto de terminales que corresponden a los controles e indicadores del VI en particular, similar a la lista de parmetros de una funcin que llamas en los programas basados en texto. El panel de conexiones define las entradas y salidas que puedes cablear al VI, es as como puedes usar un subVI. Las conexiones se definen asignando un control del panel frontal o indicador a cada una de las terminales del panel de conexiones. Para definir un panel de conexiones, haz clic derecho en el icono ubicado en la esquina superior derecha de la ventana del panel frontal y selecciona en el men Show Connector. El panel de conexiones remplazara el icono. Cada rectngulo en el panel de conexiones representa una terminal. Usa los rectngulos para asignar entradas y salidas. El nmero de terminales que LabVIEW despliega en el panel de conexiones depende del nmero de controles e indicadores en el panel frontal. A continuacin se muestra un ejemplo.

El panel de conexiones tiene por lo menos 28 terminales. Si tu panel frontal contiene ms de 28 controles e indicadores que requieres usar programticamente, agrupa algunos de ellos en un cluster y asigna el cluster a una terminal del panel de conexiones.

Selecciona un diseo diferente de la terminal para un VI haciendo un clic derecho en el panel conector y selecciona Patterns del men. Selecciona un diseo del panel de conexiones con terminales extras. Puedes dejar las terminales extras desconectadas hasta que las necesites. Esta flexibilidad te permite hacer cambios con un mnimo efecto en la jerarqua del VI. Si creas un grupo de subVIs que usas en conjunto frecuentemente, asigna a los subVIs un panel de conexiones congruente con entradas comunes en la misma ubicacin para ayudarte a recordar donde localizar cada entrada. Si generas un subVI que produce a la salida que otro subVI usa como una entrada, se recomienda alinear las conexiones de la entrada a la salida para simplificar el diseo del cableado. Coloca los clusters de error in en la esquina inferior izquierda del panel frontal y el cluster de error out en la esquina inferior derecha.

Arreglo Requerido, Recomendado. Entradas y Salidas Opcionales Se puede designar cuales entradas y salidas son requeridas, recomendadas y opcionales, con el fin de prevenir a los usuarios de olvidar el cableado de las conexiones del subVI. Haz clic derecho en una terminal del panel de conexiones y selecciona This connection is del men. Una marca indica el arreglo de la terminal. Selecciona Require, Recomended or Optional. Para terminales de entrada, Require significa que el diagrama de bloques en el cual el VI es colocado no funcionara si las terminales de entrada no son cableadas. Require no esta disponible para terminales de salida. Para terminales de entrada y salida Recommended significa que el diagrama de bloques en el cual el subVI es colocado puede correr si la entrada no esta cableada pero la caja de dilogo de Warning generar una advertencia de que la entrada no ha sido cableada. Optional significa que el diagrama de bloques en donde el VI ser colocado puede ser corrido y no generara ninguna advertencia si la terminal de entrada o de salida no esta cableada. Las entradas y salidas de los VIs en vi.lib ya estn marcadas como Required, Recommended, or Optional. LabVIEW asigna entradas y salidas de los VIs que creas a Recommended por defecto. Para cambiar una terminal a la modalidad de Require solo se debe de hacer cuando el VI necesita la entrada salida para correr adecuadamente.

Creando un icono

Cada VI despliega un icono en la esquina superior izquierda de la ventana del panel frontal y el diagrama de bloques. Un icono es una representacin grfica de un VI. Pude tener texto, imgenes o una combinacin de ambos. Si usas un VI como un subVI el icono identifica el subVI en el diagrama de bloques del VI. El icono por defecto contiene un nmero que indica cuantos nuevos VIs haz abierto desde que abres LabVIEW. Crea iconos personalizados para remplazar el icono que viene por defecto haciendo clic derecho en la esquina superior derecha del panel frontal o del diagrama de bloques y selecciona Edit Icon del men de opciones o haz doble clic del icono en la esquina superior derecha del panel frontal. Tambin puedes arrastrar cualquier grfico y posicionarlo en la esquina superior derecha del panel frontal o del diagrama de bloques. LabVIEW convierte la grfica a un icono 32 x 32 pxeles. Dependiendo del tipo de monitor que estas usando, tu puedes disear un icono separado para monocromtico, 16 colores el modo de 256 colores. LabVIEW usa el icono monocromtico para impresin a menos que se este usando una impresora a color.

Creando un subVI de un VI Existente Convertir una seccin de un VI en un subVI usando la herramienta de posicionamiento para seleccionar una seccin del bloques de diagrama que deseas rehusar y seleccionando EditCreate SubVI. Un icono para el nuevo subVI reemplaza la parte seleccionada del diagrama de bloques. LabVIEW crea controles e indicadores para el nuevo subVI y cablea el subVI al cableado existente. Creando un subVI

Esta figura muestra como convertir una seleccion en un VI Crear un subVI de una seleccin es conveniente sin embargo Require una planeacin cuidadosa para crear una jerarqua lgica de VIs. Considera que objetos vas a incluir en la seleccin y evita cambiar la funcionalidad del VI resultante. Ecuaciones Convertir a.C. a F La formula para convertir los grados Celsius a grados Fahrenheit es la siguiente: F = (1.8 * C) + 32 Por ejemplo, para convertir 100 grados Celsius en Fahrenheit, primero multiplica multiplicar la temperatura de Celsius por 1.8 para obtener 180. Despus suma 32 a 180 y obtienes 212 grados Fahrenheit. Frmula de pendiente La formula de la pendiente es la siguiente: Pendiente = (Y2 Y1) / (X2 X1) Donde (X1,X2) y (X2, Y2) son puntos de la lnea.

Tarea
Parte 1. Convertir a.C. a F En la parte 1, un VI que pueda ser usado como un subVI. 1. Abre LabVIEW de StartProgramsNational Instruments LabVIEW 8 2. Clic New VI para abrir un Nuevo panel frontal. 3. (Opcional) Selecciona WindowTile Left and Right para desplegar el panel frontal y el diagrama de bloques uno al lado del otro. 4. Crea un control numrico digital. Este control lo vas a usar para agregar los valores de los grados centgrados.

a. Selecciona el control digital de la paleta ControlsNumeric. Si la paleta de control no esta visible, haz clic derecho en un rea abierta del panel frontal para desplegarlo. b. Arrastra el control al panel frontal y haz clic para posicionarlo. c. Escribe deg C dentro de la etiqueta, haz clic fuera de la etiqueta. Puedes editar la etiqueta cuando lo desees dando doble clic en la misma. d. Crea un indicador numrico digital. Usaras este indicador para desplegar el valor de los grados Fahrenheit. e. f. g. Selecciona el indicador digital en la paleta ControlsNumeric Mueve el indicador al panel frontal, haz clic para posicionarlo. Escribe deg F dentro de la etiqueta y haz clic fuera de la misma.

LabVIEW crea las terminales correspondientes de los controles e indicadores en el diagrama de bloques. Las terminales representan el tipo de dato del control o indicador. Por ejemplo, una terminal de DBL, mostrada a la izquierda, representa una doble precisin, un control o indicador numrico de punto flotante. 5. Despliega diagrama de bloques seleccionando Window Show Diagram 6. Selecciona la funcin de Multiplicacin y Suma en la paleta de FunctionsMathemathicsNumericNumeric Constant. Si la paleta de funciones no esta visible, haz clic derecho en rea libre del bloques de diagrama para desplegarlo. 7. Selecciona una constante numrica en la en la paleta de FunctionsMathemathics Numeric y arrastra dos de ellos al bloques de diagramas. Cuando posicionas una constante numrica, se ve resaltada para que puedas cambiar el valor. 8. Escribe 1.8 en una constante y 32.0 en la otra.

Si posicionas la constante antes de cambiar los valores, tan solo tienes que dar doble clic en el icono para poder agregar el valor o cambiarlo.

9. Cablea los iconos en el diagrama de bloques como se muestra en la figura. Para cablear de una terminal a otra tienes que posicionar el cursor en la terminal de los iconos, una vez hecho esto aparecer la herramienta de cableado; da clic derecho y lleva la herramienta a la terminal del icono que deseas cablear, dando otro clic para concluir el cableado. Pudes doblar el cable, haciendo clic en el punto que deseas doblarlo y con la barra espaciadora puedes cambiar la direccin del mismo. Para identificar las terminales de los nodos, tan solo basta acercar el cursor a los iconos.

Cuando mueves la herramienta de cableado sobre la terminal, esta parpadea, indicando que al hacer un clic esta va a conectar el cable a esa terminal. Por otra parte aparecer una etiqueta delgada indicando el nombre de la terminal. Para cancelar el cableado si an no lo haz conectado a las dos terminales puedes pulsar la tecla de Esc. En caso de ya estar cableadas ambas terminales, hay dos formas de borrar el cableado. Una de ellas es dando doble clic y presionar la tecla Backspace dar clic derecho y en el men de opciones seleccionar Delete wire branch.

10. Despliega el panel frontal haciendo clic en el mismo seleccionando Window Show Panel. 11. Salva el VI ya que lo usaras posteriormente en el curso. Selecciona FileSave as. Con el nombre de Convert C to F.vi en la caja de dialogo, haz clic en la opcin Save. 12. Agrega un nmero en el control digital y corre el VI. a. Usa la Herramienta de Operacin o la herramienta de etiqueta haciendo doble clic en ella para cambiar el nmero. b. Haz clic en la opcin de Run para correr el VI. c. Intenta ingresar diferentes nmeros y corre el VI nuevamente.

13.- Da clic derecho en la esquina superior derecha del panel frontal y selecciona Edit Icon del men de opciones. La caja de dilogo del Icon Edit aparecer. Haz doble clic en la en la herramienta de seleccin del lado derecho de la caja de dilogo para seleccionar el icono por defecto. 14.- Haz clic en el icono vaco. 15.- Haz doble clic en la herramienta de rectngulo para redisear el borde. 16.- Crea el siguiente icono.

Contenido para el Estudiante


Introduccin En esta tarea escribirs un VI simple para incorporar estructuras bsicas de programacin en LabVIEW. Las estructuras que se darn incluyen Ciclos For, Ciclo While, Estructuras Case, Estructura Sequence y Nodos de Frmula.

Objetivos: Teora: Estructuras de Programacin de LabVIEW Las estructuras son representaciones grficas de los ciclos y sentencias de caso de los programas basados en texto. Usa las estructuras del diagrama de bloques para repetir bloques de cdigo y ejecutar cdigo de forma condicionada o especificada. Aprender las diferencias entre Ciclo For y Ciclo While. Aprender como accesar a los registros de cambio de iteraciones previas. Aprender como se ejecuta la Estructura Case. Aprender como se ejecuta la Estructura Sequence Aprender como se usa el Nodo de Frmula.

Como otros nodos, las Estructuras tienen terminales que las cuales se conectan a otros nodos del Diagramas de bloques, estos se ejecutan de manera automtica cuando hay datos de entrada disponibles, y alimenta datos a los cables de salida cuando la ejecucin se completa. Cada estructura tiene un borde distintivo y ajustable para encerrar la parte de la seccin del diagrama de bloques que se ejecuta de acuerdo al a las reglas de la estructura. La seccin del diagrama de bloques dentro del borde de la es llamado subdiagrama. Las terminales que alimentan los datos dentro y fuera de las estructuras son llamados tneles. Un tnel es un punto de conexin en el borde de la estructura. Usa las siguientes estructuras ubicadas en la paleta de FunctionsStructures para controlar el proceso de ejecucin del diagrama de bloques. Ciclo For: Ejecuta un subdiagrama un nmero determinado de veces. Ciclo While: Ejecuta el subdiagrama hasta que una condicin es cumplida. Estructura Case: Contiene mltiples subdiagramas, solo un subdiagrama es visible a la vez y la estructura solo ejecuta un caso a la vez. Un valor de entrada determina cul subdiagrama ejecutar. La estructura Case es similar a las sentencias de caso o sentencias si....entonces....de lo contrario en los lenguajes de programacin basados en texto. Estructura Sequence: Contiene uno ms subdiagramas, los cuales se ejecutan en orden secuencial. Nodo de Frmula: Realiza operaciones matemticas basadas en una entrada numrica.

Ciclo For

1. Ciclo For LabVIEW

2. Diagrama de Flujo

3.Pseudo Cdigo

Un Ciclo For ejecuta un subdiagrama, un nmero predeterminado de veces. El valor en la terminal de conteo (una terminal de entrada), indica cuantas veces se repetir el subdiagrama. Se fija el valor explicito cableando el valor por fuera del ciclo, a la izquierda o en la parte superior de la terminal de conteo o estableciendo el conteo de manera implcita con auto-indexing. La terminal de iteracin (una terminal de salida) contiene el nmero de iteraciones completadas. El conteo de iteraciones siempre empieza en cero. Durante la primera iteracin, la terminal de la iteracin regresa a cero. Tanto la terminal de la iteracin como la de conteo son dados en nmeros enteros. Si cableas un nmero de punto flotante a la terminal de conteo, LabVIEW lo redondea y un punto de coercin aparece en la terminal de conteo. Si cableas un 0 o un nmero negativo en la terminal de conteo, el ciclo no se ejecuta. Agrega un registro de desplazamiento al ciclo For para pasar datos de la iteracin actual a la siguiente iteracin. Los registros de desplazamiento sern discutidos ms adelante.

While Loops

Parecido a los ciclos Do o Repeat- Until de los programas basados en texto, un ciclo While ejecuta un subdiagrama hasta que la condicin es cumplida. El ciclo While ejecuta un subdiagrama hasta que la terminal de condicin, una terminal de entrada, recibe un valor booleano especfico. El comportamiento por defecto y apariencia de la terminal condicional es Stop if True. Cuando una terminal condicional es Stop if True, el ciclo While ejecuta el subdiagrama hasta que la terminal recibe un valor VERDADERO. Puedes cambiar el comportamiento y apariencia de la terminal condicional haciendo clic derecho en la terminal o borde del ciclo While y seleccionando Continue if True. Debido a que el VI checa la terminal condicional al final de cada iteracin, el ciclo While siempre se ejecuta por lo menos una vez. El VI queda abierto si no se cablea la terminal condicional. Tambin pudes realizar manejo bsico de errores usando la terminal condicional del Ciclo While. Cuando cableas un cluster de error a la terminal condicional, solo el valor FALSO o VERDADERO del parmetro de status del cluster de error pasa a la terminal. Tambin el men rpido del Stop If True y el Continue If True cambian a Stop If Error y Continue while Error. La terminal de la iteracin (una terminal de salida) contiene el nmero de iteraciones completadas. El conteo de las iteraciones siempre empieza en cero. Durante la primera iteracin, la terminal de la iteracin regresa a cero.

Agrega registros de desplazamiento al Ciclo While para pasar datos del la iteracin actual a la siguiente.

Registros de Desplazamiento

Usa los registros de desplazamiento del Ciclo For y del Ciclo While para transferir valores de la iteracin de un ciclo al otro. Los registros de desplazamiento son similares a las variables estticas de los programas basados en texto. Un registro de desplazamiento aparece como un par de terminales directamente opuestas una de la otra de forma vertical a los lados del borde del ciclo. La terminal derecha contiene una flecha hacia arriba y almacena los datos al concluir una iteracin. LabVIEW transfiere los datos conectados en el lado derecho del registro a la siguiente iteracin. Cree un registro de desplazamiento haciendo clic derecho en el borde izquierdo o derecho de un ciclo y seleccionando Add Shift Register desde el men rpido. Un registro de desplazamiento transfiere cualquier tipo de dato y cambia automticamente al tipo dato del primer objeto al cual se cablea. Los datos que cableas a las terminales de cada registro de desplazamiento deben de ser del mismo tipo. Pudes crear mltiples registros de desplazamiento en una estructura y tambin puedes tener ms de una terminal izquierda para retener ms de un valor previo. Despus de que un ciclo se ejecuta, el ltimo valor almacenado en el registro de desplazamiento permanece en el terminal derecho. Si cableas el terminal derecho fuera del ciclo, el cable transfiere el ltimo valor almacenado en el registro de desplazamiento. Si no se inicializa el registro, el ciclo usa el valor escrito en el registro del ltimo ciclo ejecutado o el valor por defecto del tipo de dato si el ciclo nunca ha sido ejecutado. Usa un ciclo con un registro de desplazamiento sin inicializar para correr un VI repetidamente de manera que cada que corra el VI, la salida inicial del registro de desplazamiento sea el ltimo valor de la ejecucin previa.

Usa un registro de desplazamiento sin inicializar para preservar la informacin sobre la condicin entre ejecuciones sucesivas de un VI.

Case Structures

Una Estructura de casos (Case Structure) tiene dos o ms subdiagramas casos. Solo un subdiagrama es visible a la vez, y la estructura ejecuta solo un caso a la vez: Un valor de entrada determina cual subdiagrama se ejecutar. La etiqueta del selector de caso en la parte de arriba de la estructura de casos, contiene el identificador de caso en el centro y los botones de incremento y disminucin a cada lado. Emplee los botones de incremento y disminucin para navegar entre los casos disponibles. Cablea el valor de entrada, o selector, al terminal selector, para determinar cual caso se ejecuta. Se debe cablear un valor entero, un valor booleano, una cadena o valores de tipo enumerado al terminal. Puede posicionar el terminal selector en cualquier parte en el borde izquierdo de la estructura Case. Si cablea un booleano al terminal selector, la estructura tiene un caso VERDADERO y un caso FALSO. Si cablea un entero, cadena o de tipo enumerado el terminal selector, la estructura puede tener varios casos. Puede especificar un caso por defecto para la estructura Case. Debe especificar un caso por defecto para tratar los valores fuera de rango o enumerar explcitamente cada valor de entrada posible. Por ejemplo, si especific casos para 1,2,3 debes especificar un caso para ejecutar si el valor de entrada es 4 o cualquier otro valor entero. Puedes crear mltiples tneles de entrada y salida para una estructura Case. Las entradas esta disponibles para todos los subdiagramas, pero los subdiagramas no necesitan utilizar cada entrada. Cuando crees un tnel de salida en un caso,

los tneles correspondientes aparecen en la misma posicin en el borde de todos los dems casos.

Si al menos un tnel de salida no esta cableado, todos los tneles de salida en la estructura aparecen como cuadros blancos. Puedes definir una diferente fuente de datos para el mismo tnel de salida en cada caso, pero el tipo de datos debe ser compatible. Tambin puede cablear constantes o controles a casos no cableados haciendo clic derecho en el tnel y seleccionando CreateConstant o CreateControl desde el men rpido. Pudes hacer clic derecho en el tnel de salida y seleccionar Use Default If Unwired desde el men rpido para utilizar el valor por defecto del tnel seleccionado para todos los tneles sin cablear.

Estructuras Sequence

Las estructuras Stacked Sequence y Flat Sequence, contienen mltiples subdiagramas, o marcos, los cuales se ejecutan en un orden secuencial. La etiqueta del selector en la parte de arriba de la estructura Sequence, es similar a la etiqueta seleccionadora de la estructura Case. Contiene el identificador de caso en el centro y los botones de incremento y disminucin a cada lado. Emplee los botones de incremento y disminucin para navegar entre los casos disponibles. A diferencia de la etiqueta de selector de caso, no puedes poner valores en la etiqueta del marco. Una estructura de secuencia ejecuta el marco 0, luego el marco 1, luego el marco 2, hasta que se ejecute el ltimo. La estructura Stacked Sequence no finaliza la ejecucin ni retorna dato alguno hasta que se ejecute el ltimo marco. Los marcos en una estructura Flat Sequence se ejecuta en orden y cuando todos los datos cableados al marco estn disponibles. Los datos abandonan cada marco cuando este finaliza su ejecucin. La etiqueta del selector de secuencia en la parte de arriba de la estructura Sequence contiene el nmero de marco actual, el rango de los marcos en el

centro y botones de flecha de incremento y decremento en cada lado. Por ejemplo, en la etiqueta del selector de secuencia, 0 es el nmero de marco actual y [0..2] es el rango de los marcos.

Haga clic en los botones de incremento y decremento para desplazarse a travs de los marcos disponibles. Emplee las estructuras de secuencia para controlar el orden de ejecucin cuando no existe dependencia natural de los de los datos. Un nodo que recibe datos de desde otro nodo depende de el primer nodo para sus datos y siempre se ejecuta despus de que este finalice su ejecucin. Dentro de cada marco de una estructura de secuencia, como en el resto del diagrama de bloques, la dependencia de los datos determina el orden de ejecucin de los nodos. Los tneles de las estructuras Stacked Sequence pueden tener slo una fuente de datos, contrario a las estructuras Case. La salida puede emitir desde cualquier marco, pero los datos abandonan la estructura Stacked Sequence slo cuando los marcos finalizan la ejecucin, no cuando los marcos por separado finalizan la ejecucin. Al igual que en las Estructuras Case, los datos en los tneles de entrada estn disponibles para todos los marcos. Para transferir datos desde un marco hacia otro marco sucesivo de una estructura Stacked Sequence, emplee una terminal local de secuencia. Una flecha sealando hacia afuera aparece en la terminal local de secuencia del marco que contiene los datos fuente. La terminal en los marcos siguientes contiene una flecha sealando hacia adentro, indicando que la terminal es una fuente de datos para ese marco. No puedes usar la terminal local de secuencia en marcos que precedan el primer marco donde se cableo el local de secuencia. Ejercicio Toma de desicin Medir el tiempo de ejecucin de una porcin de cdigo es un proceso muy til para la depuracin de errores, en aplicaciones como lo es control de instrumentos, en donde respetar es critico para el buen funcionamiento de un cdigo, por ejemplo, que automatiza la adquisicin de datos de un instrumento tradicional. 1. En el diagrama de bloques, clic derecho para mostrar la paleta de funciones, ir a: 2. Programming>Structures>Flat Sequence Structure. 3. Generar un recuadro

4. clic derecho en el recuadro generado y dar clic en Add frame after. 5. Repetir paso anterior para generar una secuencia con 3 pasos. 6. Acomodar el tamao del recuadro interno para tener mas espacio. Una vez creada la estructura de secuencia, agregaremos el cdigo para tomar el tiempo. El primer y ltimo recuadro estarn destinados para tomar el nmero de ticks que se han generado el sistema operativo. El recuadro de en medio contendr el cdigo a medir su tiempo de ejecucin. 1. En el diagrama de bloques, clic derecho para mostrar la paleta de funciones, ir a: 2. Programming>Timming>Tick Count(ms). 3. Colocar el VI en el primer recuadro. Repetir paso 6 y colocar el VI en el ltimo frame. El VI Tick Count(ms), toma el nmero de ticks del temporizador del sistema operativo en milisegundos, por lo tanto si se toman dos El VI o mdulo de cdigo al cual se le desea medir el tiempo de ejecucin se debe colocar en el recuadro dos. A manera de ejemplo colocaremos un VI que manda llamar la la ventana de command y ejecutar el comando ipconfig. 1. Coloca el VI System Exec localizado en Functions>Connecitvity>Libraries & Executables. 2. Crear una constante de cadena, e ingresas el siguiente texto: ipconfig 3. Conectar la constante a la entrada command line de System Exec.vi. 4. Ahora se procede a calcular el tiempo de ejecucin. 5. Tomar la salida de los dos Tick Counts hacia la parte inferior de cada recuadro y obtener la diferencia de la segunda contra la primera y crear un indicador numrico como se muestra en la imagen. 6. Ejecutar el VI.

Para ilustrar el mismo funcionamiento del Flat con respecto al Stacked convertiremos esto cdigo a la otra estructura. 1. Clic derecho en la estructura de secuencia, dar clic en Replace with Staked Sequence. Se ha creado una secuencia por la cual se puede navegar en cada uno de estados por medio del control superior

2. Ejecutar el VI y verificar que se tiene el mismo comportamiento. Nota: El proceso de convertir de Flat a Stacked no es reversible, debido a que Flat esta diseado para un numero pequeo de recuadros, por lo tanto todos los recuadros puede ser visibles, el stacked esta diseado para un numero de mayor de recuadros que ser siempre visibles aumenta el tamao del cdigo considerablemente.

Nodo de Frmula

El nodo de Frmula es un nodo basado en texto, de gran conveniencia, que puede emplear para ejecutar operaciones matemticas en el diagrama de bloques. Los Ndos de Frmula son tiles para ejecuciones que tengan muchas variables, que de otro modo seran muy complicadas y para utilizar los cdigos existentes basados en texto. Puede copiar y pegar el cdigo existente basado en texto en un Nodo de Frmula en vez de recrearlo grficamente en el diagrama de bloques. Adems de ecuaciones basadas en texto, el Nodo de Frmula puede aceptar declaraciones de If, While Loops, For Loops, las cuales son familiares a los programadores de C. Puedes copiar y pegar el cdigo existente basado en texto dentro de un nodo de frmula en lugar de recrearlo grficamente. El Nodo de Frmula puede ejecutar muchas operaciones diferentes. Refirase a LabVIEW Help para mayor informacin acerca de las funciones, operaciones y sintaxis.

El Nodo de Frmula se localiza en FunctionsStructures y Formula Node

Cuando se trabaja con variables se deben recordar los siguientes puntos: No hay lmite en el nmero de variables o ecuaciones en el Nodo de Frmula. Ni dos entradas o ni dos salidas pueden tener el mismo nombre, pero la salida puede tener el mismo nombre de la entrada. Declara la variable de entrada haciendo clic derecho en el Nodo de Frmula y selecciona Add Input del men rpido. No se puden declarar variables dentro de el Nodo de Frmula. Declara la variable de salida haciendo clic derecho en el Nodo de Frmula y selecciona Add Output del men rpido. El nombre de la variable de salida debe corresponder ya sea a una nombre de una variable de entrada o un nombre una variable declarada dentro del Nodo de Frmula. Puedes cambiar tanto una variable que es de entrada de salida haciendo clic derecho y seleccionando Change to Input Change to Output del men rpido. Puedes declarar y usar una variable dentro del Nodo de Frmula sin necesidad de relacionarlo a un cable de entrada o salida. Debes cablear todas las terminales de entrada. Las variables pueden ser escalares numricos de punto flotante, en los cuales la precisin depender de la configuracin de tu computadora. Tambin puedes usar enteros y arreglos de numricos para las variables. Las variables no pueden tener unidades.

Ejercicio Parte 1. Automatch


Completa los siguientes pasos para construir un VI que genere un nmero aleatorio hasta que el nmero generado concuerde con uno que usted especifique. El terminal de iteraciones registra la cantidad de nmeros aleatorios generados hasta que se de la condicin. 1. Abre un nuevo panel frontal 2. Construye el siguiente panel frontal y modifica los controles e indicadores como se muestra y describe en este ejercicio.

El Number to Match se refiere al nmero que se quiere igualar. El indicador de Current Number despliega el nmero aleatorio actual. El indicador del # de iteraciones despliega el nmero de iteraciones antes de que se igualen. Usa la opcin de Data Range para prevenir al usuario de seleccionar un valor que no es compatible con un rango o incremento. Puedes ignorar el error o forzarlo a estar dentro de un rango. Completa los siguientes pasos para ajustar el rango entre 0 y 10,000 con un incremento de 1 y un valor por defecto de 50. 3. Haz clic derecho en el control de Number to Match y selecciona Data Range del men rpido. La caja de dilogo Numeric Properties aparece. 4. Remueva la marca de verificacin de la lista de chequeo Use Defaults Range.

5. Ajuste Default Value a 50. 6. Ajuste el valor Minimum a 0 y seleccione Coerce desde el men desplegable Out of Range Action. 7. Ajuste el valor Maximum a 10,000 y seleccione Coerce desde el men desplegable Out of Range Action. 8. Ajuste el valor de Increment a 1 y seleccione Coerce to Nearest desde el men desplegable Out of range Action.

9. Haz clic en el botn de OK. Por defecto, LabVIEW da formato a los controles numricos automticamente. Usted puede adems especificar la precisin o notacin. Puede presentar los valores numricos en notacin cientfica, de punto flotante o entero simple. Realice los siguientes pasos para cambiar la precisin a 0. 10. Haga clic derecho en el indicador Current Number y selecciona Format & Precision desde el men rpido. La caja dilogo de Format & Precision aparece.

11. Escribe 0 en la caja de texto Digits of Precision y haz clic en OK. 12. Construye el siguiente diagrama de bloques.

Coloque la funcin Random Number (0,1), localizada en la paleta FunctionsArithmetic&ComparisionExpress Numeric, en el diagrama de bloques, esta funcin produce un nmero aleatorio entre 0 y 1. Coloca la funcin Multiply, localizada en la paleta FunctionsArithmetic&ComparisionExpress Numeric, en el diagrama de bloques. Esta funcin multiplica el nmero aleatorio por 10,000 para producen un nmero aleatorio entre 0 y 10,000.

Haz clic derecho en el terminal y de la funcin Multiply, seleccione CreateConstant desde el men rpido, escriba 10,000 y presione la tecla <Enter> para crear una constante numrica. Coloque la function Round to Nearest, localizada en la paleta FunctionsArithmetic&ComparisionExpress Numeric, en el diagrama de bloques. Esta funcin redondea el nmero aleatorio al entero ms prximo. Coloque la funcin Not Equal?, localizada en la paleta FunctionsArithmetic&ComparisionExpress Comparision, en el diagrama de bloques. Esta funcin compara el nmero aleatorio con Number to Match y retorna VEDADERO si los nmeros no son iguales; de otro modo retorna FALSO. Coloca el Ciclo While, localizado en la paleta FunctionsEstructures, en el diagrama de bloques. Haga clic derecho en el terminal condicional y seleccione Continue if True desde el men rpido. Cablea el terminal de iteraciones al borde del Ciclo While. Un tnel azul aparece en el borde del Ciclo While. Debes de cablear el tnel a la funcin Increment. Cada vez que se ejecute el ciclo el terminal de iteraciones se incrementa en uno. El conteo de las iteraciones se extrae del ciclo al completarse. Incremente este valor por uno fuera del ciclo debido a que el conteo arranca en 0.

Nota: El cuadro azul que aparece en el borde del While Loop es llamado tnel. Los tneles alimentan con datos dentro y fuera de las estructuras. El dato sale del ciclo despus de que el ciclo termina. Cuando el tnel pasa datos dentro del ciclo, este se ejecuta solo hasta que el dato llega al tnel. Coloca la funcin Increment, localizada en la paleta FunctionsArithmetic&ComparisionExpress Numeric, en el diagrama de bloques. Esta funcin agrega 1 al conteo del Ciclo While. Un punto de coercin aparece en la salida de nmero de iteraciones para indicar que LabVIEW oblig a la representacin numrica del terminal de iteraciones a concordar con la representacin numrica de la salida nmero de iteraciones. Guarda el VI como Auto Match.vi. Despliegua el panel frontal y cambie el nmero en Number to Match. Corre el VI. Cambie el Number to Match y corra el VI de nuevo. Current Number se actualiza en cada iteracin de ciclo debido a que esta dentro del mismo. nmero de iteraciones este se actualiza al completarse debido a que est fuera del ciclo.

Para ver como el VI actualiza los indicadores, habilite la ejecucin resaltada. En la barra de herramientas del diagrama de bloques, haga clic en el botn High Light Execution, para habilitar la ejecucin resaltada. Esta ejecucin muestra el movimiento de los datos en el diagrama de bloques desde un nodo hacia otro, de modo que puedas ver cada nmero cada que el VI lo genere. Cambia el Number to Match a un nmero que este fuera del rango de los datos, el cual es de 0 a 10,000 con un incremento de 1. Corre el VI. LabVIEW obliga al valor fuera de rango a sustituirse por el valor ms prximo dentro del rango de datos ya determinado. Cierra el VI.

2da Parte. VI de Ejemplo en Registros de Desplazamiento.


En la 2da parte usaras los registros de desplazamiento y los Ciclos For para accesar a los valores de iteraciones previas. Los registros de desplazamiento son similares a las variables estticas en los lenguajes de programacin basados en texto. a. Construye el siguiente panel frontal.

El indicador X(i) despliega el valor actual, el cual se desplaza a la terminal izquierda al principio de la siguiente iteracin. El indicador X(i-1) despliega el valor de una iteracin anterior, el indicador X(i-2) despliega el valor de dos iteraciones anteriores y as consecutivamente. b. Construye el siguiente diagrama de bloques y asegura de que tanto el bloques de diagrama as como el panel frontal estn a la vista.

El 0 cableado a las terminales del lado izquierdo inicializa los elementos del registro de desplazamiento a 0 c. Salva el VI como Shift Register.vi d. Haz clic en el botn de Highlight Execution para habilitar la ejecucin resaltada. e. Corre el VI y observa las burbujas que se mueven a travs de los cables. Si las burbujas se estn moviendo demasiado rpido, haz clic en los botones Pause and Step Over para retrasar la ejecucin. En cada iteracin del Ciclo Loop, el VI hace un embudo en los valores previos hacia las terminales de la izquierda en el registro de desplazamiento. Cada iteracin del ciclo agrega 5 al valor actual, X (i). Este valor se desplaza a la terminal izquierda al principio de la prxima iteracin. Los valores en la terminal izquierda bajan por el embudo hacia las terminales. Estos VIs retienen los 3 ltimos valores. Para retener ms valores, agrega ms elementos a la terminal izquierda del registro de desplazamiento haciendo clic derecho en la terminal izquierda y seleccionando Add Element del men rpido. f. Cierra el VI.

Parte 3. Square Root.


Realice los siguientes pasos para construir un VI que verifique si un nmero es positivo. Si el nmero es positivo, el VI calcula la raz cuadrada del nmero. De otro modo el VI devuelve un mensaje de error. 1. Abre un VI y construye el siguiente panel frontal.

2. Construye el siguiente diagrama de bloques.

Coloque la estructura Case, localizada en la paleta FunctionsStructures, en el diagrama de bloques. Haga clic en el botn de incremento o disminucin para seleccionar el caso FALSO. Coloque la funcin Greater or Equal to 0?, localizada en la paleta Functions>>Arithmetic&Comparision>>Express Comparision, en el diagrama de bloques. Esta funcin retorna VERDADERO si Numeric es mayor o igual a 0. Haga clic derecho en la constante numrica y selecciona Properties desde el men rpido. Seleccione en la lengeta Format and Precision. Ajuste Digits of Precision en 1,

seleccione la notacin Floating Point y haga clic en el botn OK para asegurarse de que conversin de datos entre la constante y el indicador numrico por fuera de la estructura Case. Coloque la funcin One Button Dialog, localizada en la paleta Functions>>All Functions>>Time and Dialog, en el diagrama de bloques. Esta funcin presenta una caja de dilogo que contiene el mensaje ErrorNegative Number. Haga clic derecho en el terminal message de la funcin One Button Dialog, seleccione Create>>Constant desde el men rpido, escriba Error.Negative Number en la constante y haga clic en el botn Enter en la barra de herramientas o haga clic por fuera del control.

3. Seleccione el caso VERDADERO de la estructura Case. Coloque la funcin Square Root, localizada en la paleta Functions>>Arithmetic&Comparision>>Express Numeric, en el diagrama de bloques. Esta funcin retorna la raz cuadrada de Numeric. Cablea la funcin como se muestra en el siguiente diagrama de bloques.

4. Guarde el VI como Square Root.vi.

4ta. Parte Time to Match VI


Realiza los siguientes pasos para construir un VI que calcule el tiempo que tarda en generar un nmero aleatorio que iguale un nmero que hayas especificado. 1. Abre el VI Auto Match, el cual construiste en la parte 1. 2. Modifica el panel Frontal de la siguiente manera.

i. Cambia el Number to Match, Current Number y # of iterations a la representacin I32. ii. Cambia el Time to Match a la representacin DBL y 3 dgitos de precisin. 3. Salva el VI como Time to Match.vi

4. Modifica el diagrama de bloques como sigue.

a. Agrega una estructura Sequence localizada en la paleta FunctionsStructures. b. Haz clic en el borde de la estructura y selecciona Add Frame After del men rpido y agrgalo al marco c. Agrega la funcin Tick Count (ms) localizada en la paleta FunctionsTime&Dialog. Esta funcin lee el valor actual del reloj del sistema operativo y regresa el valor en milisegundos. 5. Salva el VI.

Grficas, Charts, Arreglos y Custers en LabVIEW


Contenido para el instructor: Resmen
El alumno aprender las diferencias y similitudes entre las grficas y cuando usarlas. Ellos tambin escribirn VIs simples para incorporar arreglos y clusters en LabVIEW como un resultado de combinar datos.

Aplicaciones
Estos ejercicios aplican a cualquier curso de Instrumentacin.

Lista de Equipo
PC con LabVIEW 8 Referencias:

Referencias
Getting Started with LabVIEW. http://sine.ni.com/manuals/. LabVIEW Student Edition. http://www.ni.com/labviewse. LabVIEW Introduction Course - Six Hours. LabVIEW Introduction Course - Three Hours

Teora Grficas, Charts, Arreglos y Clusters


El mapa de forma de onda es un tipo especial de indicador numrico que despliega uno o ms puntos de datos adquiridos tpicamente a una velocidad constante. Los mapas de forma de onda pueden desplegar trazos simples o mltiples. En la figura que se muestra a continuacin se despliegan dos trazos: Ejecutando datos puros y promedio.

Puedes configurar la forma de onda mientras el mapa actualiza el despliegue de nuevos datos. Haz clic derecho en el mapa y selecciona Advanced>>Update mode desde el men rpido para fijar el modo de actualizacin. El mapa emplea los siguientes modos para desplegar los datos. Strip Chart: Muestra datos corriendo continuamente desplazndose de izquierda a derecha a travs del mapa con los datos viejos a la izquierda y los datos nuevos a la derecha. Strip chart es el modo de actualizacin por defecto. Scope Chart: Muestra un tem de dato, tal como un pulso o una onda, desplazandose a travs del mapa de izquierda a derecha. Para cada nuevo valor, el mapa traza el valor a la derecha del ltimo valor. Cuando el trazo alcanza el borde derecho del rea de trazado. LabVIEW borra el trazo e inicia nuevamente desde el borde izquierdo. El trazo El trazo desplegado de un mapa de alcance es similar a uno de osciloscopio.

La figura siguiente muestra un ejemplo de un modo de actualizacin.

Cableando Mapas
Puedes cablear una salida escalar de un mapa de forma de onda. El Terminal del mapa de forma de onda mostrado en la siguiente figura coincide con el tipo de dato de entrada.

Los mapas de forma de onda pueden desplegar varios trazos juntos usando la funcin Bundle localizada en la paleta Cluster. En la siguiente figura, la funcin Bundle empaqueta las salidas de los tres VIs para ser trazados en un mapa de forma de onda.

La Terminal del mapa de forma de onda cambia para coincidir con la de la funcin Bundle. Para adicionar ms trazos, use la herramienta Positioning para redimensionar la funcin Bundle.

Grficas de Forma de Onda


Los VIs con una grfica usualmente recolectan los datos en un arreglo y los trazan entonces en la grfica. La figura siguiente muestra los elementos de una grfica.

Las grficas localizadas en la paleta Graph Indicators incluyen las grficas de forma de onda y grficas XY. Las grficas de forma de onda trazan solo funciones con valores simples como en Y= f(x), con puntos igualmente distribuidos a lo largo del eje X, tales como formas de onda variando en el tiempo. Las grficas XY despliegan cualquier conjunto de puntos, que son o no muestreados. Las grficas XY de forma de onda se adaptan automticamente a mltiples trazos.

Grficas de Forma de Onda de Trazo Simple


Las grficas de forma de onda aceptan varios tipos de datos para grficas de forma de onda de trazo simple. La grfica acepta un arreglo simple de valores, interpretando los datos como puntos en la grfica, e incrementa el ndice X por un punto iniciando desde X=0. la grfica acepta un cluster de un valor inicial a X, un delta X, y un arreglo de datos Y. La grfica tambin acepta los tipos de datos de forma de onda, los cuales transportan los datos, el tiempo de inicio y un delta t de una forma de onda.

Grficas de Forma de Onda de Trazo Mltiple


La grfica de forma de onda acepta varios tipos de datos para desplegar mltiples trazos. La grfica de forma de onda acepta un arreglo 2D de valores, donde cada fila del arreglo es un trazo simple. La grfica interpreta los datos como puntos en la grfica e incrementa el ndice X por uno, indicando en X=0. Cablea un arreglo de tipo de dato 2D a una grfica, haga clic derecho en la grfica y seleccione Traspose Array desde le men rpido para manipular del arreglo como un trazo. Esto es particularmente til cuando muestras mltiples canales desde un dispositivo de adquisicin de datos, ya que el dispositivo puede regresar los datos como arreglos 2D con cada canal almacenado como una columna separada. La grfica de forma de onda tambin acepta un cluster de un valor inicial X, un valor de delta X y un arreglo 2D de datos y. La grfica interpreta el dato Y como puntos en la grfica e incrementa el ndice X en el delta X, iniciando en el valor inicial X. La grfica de forma de onda tambin acepta el tipo de dato dinmico, el cual se usa en VIs Express. Adems los datos asociados con una seal, el tipo de dato dinmico incluye atributos que proveen informacin sobre la seal tales como el nombre de la seal o la fecha y hora en que fue adquirida. Los atributos especifican como aparece la seal en la grfica de forma de onda. Cuando el tipo de dato dinmico incluye mltiples canales, la grfica muestra un trazo por cada canal. Y formatea nicamente las leyendas de trazos y la escala de tiempo en el eje X.

Grficas XY Simples
La grfica XY acepta tres tipos de datos para grficos XY de trazo simple. La grfica XY acepta un cluster que contiene un arreglo X y un arreglo Y. grfica XY tambin acepta un arreglo de puntos, donde un punto es un clster que contiene un valor X y un valor Y. Las grficas XY tambin aceptan un arreglo de datos complejos, en donde la parte real se grfica en el eje X y la parte imaginaria se grfica en el eje Y.

Grficas XY de Mltiples Trazos


Las grficas XY aceptan tres tipos de datos para desplegar mltiples trazos. La grfica XY acepta un arreglo de trazos, donde un trazo es un cluster, que contiene un arreglo X y un arreglo Y. La grfica XY tambin acepta un arreglo de clusters de trazos, donde un trazo es un arreglo de puntos. Un punto es un cluster que contiene un valor X y un valor Y. Las grficas XY tambin aceptan un valor arreglo de clusters trazos, donde un trazo es un arreglo de datos complejos en donde la parte real es graficada en el eje X y la parte imaginaria es graficada en el eje Y.

Arreglos

Los Arreglos agrupan elementos de datos al mismo tipo. Un Arreglo consiste en elementos y dimensiones. Los elementos son datos que constituyen un arreglo. Una dimensin es la longitud altura o profundidad del arreglo. Un arreglo puede tener una o ms dimensiones y hasta 231-1 elementos por dimensin, si dispone de la suficiente memoria. Puedes construir arreglos de tipo numrico, Booleano, directorios, cadenas, formas de onda y clusters. Considere emplear arreglos cuando trabaje cuando trabaje con un grupo de datos similares y cuando ejecute clculos repetitivos. Los arreglos son ideales para almacenar los datos que recolecta a partir de formas de onda o los datos generados en ciclos, donde cada iteracin del ciclo produce un elemento del arreglo. No puedes crear arreglos de arreglos. Sin embargo puedes crear un arreglo de clusters donde cada cluster contenga uno o ms arreglos.

Index
Para localizar un elemento particular en un arreglo requiere de un Index por dimensin. En LabVIEW el indexado te permite navegar a travs del arreglo y devolver elementos, flechas, columnas y paginas del arreglo en el diagrama de bloques.

Ejemplo de Arreglos
Un Ejemplo de un arreglo simple es un arreglo de texto que lista los nueve planetas del sistema solar. LabVIEW lo representa como arreglo de 1D de cadena de nueve elementos. Los Elementos de un Arreglo estn ordenados. Un arreglo usa un ndice con el cual pueden acceder a un elemento particular de forma rpida. El ndice esta basado en cero, lo que significa que esta en el rango de 0 a n-1, en donde n es el nmero de elementos en el arreglo. Por ejemplo, n = 9 para 9 planetas, de esta forma el ndice oscila entre 0 y 8. La tierra es el tercer planeta, al cual corresponde un ndice 2. Otro ejemplo de un arreglo es una forma de onda representada como un arreglo numrico en el cual cada elemento sucesivo es un valor de voltaje en intervalos de tiempo sucesivos. Un ejemplo ms complejo de arreglo es una grfica representada como un arreglo de puntos donde cada punto es un cluster conteniendo un par de nmeros que representan las coordenadas X y la Y. Los previos ejemplos usaban un arreglo de 1 dimensin 1D. Un arreglo 2D guarda los elementos la cuadrcula. Se requiere una columna de indexado y un rengln de indexado para localizar un elemento, ambas son basadas en cero. Por ejemplo, un tablero de ajedrez tiene 8 columnas y 8 renglones para un total de 64 posiciones. Cada posicin puede estar vaca o tener una pieza de ajedrez. Puedes representar un tablero de ajedrez como un arreglo 2D. Cada cuadrcula es el nombre de una pieza que ocupa la locacin correspondiente en el plano o una locacin vaca si la cuadrcula esta vaco.

Restricciones para los Arreglos


Pudes crear un arreglo de casi cualquier tipo de dato, con las siguientes excepciones: No puedes crear un arreglo de un arreglo. Sin embargo puede usar un arreglo multidimensional crear un arreglo de clusters donde cada cluster contiene uno o ms arreglos. No puede crear arreglos de controles de subpanel, controles Tab, controles .NET, controles Active X, mapas o grficos multiploteo XY .

Creando Arreglos Controles, Indicadores y Constantes


Crea un arreglo de control o indicador en el panel frontal posicionando una caja de arreglo en el panel frontal. Arrastre un objeto de dato o elemento, el cual puede ser un nmero, booleano, ruta, cadenas, formas de onda o clusters en la caja de arreglo. La caja de arreglo automticamente se ajusta para acomodar el nuevo objeto, ya sea un Booleano pequeo o una grfica 3D.

Para desplegar un elemento particular en el panel frontal, puedes teclear un nmero en la pantalla del index o usa las flechas del index para navegar por los nmeros. Para crear una constante en el arreglo en el diagrama de bloques, selecciona FunctionsArrayArray Constant para poner una caja de arreglo en el panel frontal, coloca una constante en cadena, constante numrica o constante de cluster en la caja de arreglo. Puedes usar una constante de arreglo como base de comparacin en otro arreglo.

Arreglo de Dos Dimensiones Un arreglo 2D almacena los elementos en una cuadrcula. Requiere un ndice de columna y un ndice de rengln, ambos basados en cero, para localizar un elemento. La siguiente figura muestra un arreglo de 2D de 6 columnas por 4 renglones, el cual contiene 6 x 4 = 24 elementos.

Para agregar una dimensin a la vez a un arreglo, haga clic derecho en el despliegue del ndice y seleccione Add Dimension desde el men rpido. Tambin se puede usar la herramienta de Posicin para ajustar el tamao. La figura siguiente muestra un ejemplo de un control de un arreglo 2D no inicializado.

Creando Arreglos de Constantes Puedes crear arreglos de constantes en el diagrama de bloques seleccionndolo en la paleta Functions>>All Functions>>Array, colocndolo en el diagrama de bloques y arrastrando una constante hasta el interior de la caja de arreglo. Los arreglos constantes son tiles para entrar datos en un subVI. Auto indexado Si se cablea un arreglo a un tnel de entrada del Ciclo For a un Ciclo While, puede leer y procesar cada elemento en ese arreglo al activar auto indexado. Cuando auto indexas un tnel de salida de un arreglo, el arreglo recibe elemento nuevo desde cada iteracin del ciclo. El cable que va desde la salida del tnel hasta el indicador del arreglo aumenta de espesor a la vez que cambia a un arreglo en el borde del ciclo y el tnel de salida contiene un parntesis cuadrado que representa un arreglo, como se muestra en la figura siguiente.

Desactive auto indexado haciendo clic derecho en el tnel y seleccionando Disable Indexing desde el men rpido. Por ejemplo desactive auto indexado si necesita solo el ltimo valor que paso por el tnel. Para activar auto indexado, haga clic derecho en el tnel y seleccione Enable Indexing desde el men rpido.

Auto indexado para Ajustar el contador del Ciclo For


Si activa auto indexado en un arreglo cableado a un Terminal de entrada en un Ciclo For, LabVIEW ajusta la terminal del contador al tamao del arreglo a fin de no necesitar cablear la terminal del contador. En el ejemplo que se muestra a continuacin, el Ciclo For se ejecuta un nmero de veces igual al nmero de elementos en el arreglo, normalmente si la terminal del contador del Ciclo For no se cablea, la flecha run esta rota. Sin embargo en este caso no lo esta.

Si activa auto indexado para ms de un tnel o si usted cablea la terminal del contador, el conteo cambia al ms pequeo de los dos. Por ejemplo, si cableas un arreglo con 10 elementos a un tnel de entrada a un Ciclo For y ajusta el terminal contador a 15, el ciclo se ejecuta solo 10 veces.

Funciones de Arreglos
Use las funciones de Arreglos localizadas en la paleta Functions>>Array para crear y manipular arreglos. Dentro de las funciones de arreglos usadas con mayor frecuencia se incluyen las siguientes: Array Size.- Retorna el nmero en cada dimensin de un arreglo. Si el arreglo es de n-dimensiones, la salida size es un arreglo de n elementos. Initialize Array.- Crea un arreglo de n-dimensiones en el cual cada elemento se inicializa el valor del elemento. Ajusta el tamao de la funcin para incrementar el nmero de dimensiones del arreglo de salida. Array Subset.- retorna una porcin del arreglo comenzando en index y conteniendo lenght elementos. Build Array.- Concatena mltiples arreglos o aade elementos a un arreglo de n-dimensiones. Ajuste el tamao de la funcin para incrementar el nmero de elementos en un arreglo de salida. Index Array.- Retorna el element o subarray de n-dimension array en index. Por ejemplo si emplea un arreglo previo como entrada, la funcin Index Array retorna 2 para un index de 0. Tambin puede emplear la funcin Index Array para extraer una fila o columna de un arreglo 2D para crear un subarreglo del original. Para hacerlo, cablea un arreglo 2D a la entrada de la funcin. Dos terminales index estn disponibles. El terminal index superior indica la fila y el segundo terminal indica la columna. Puede cablear entradas a ambos terminales index para crear un ndice de un elemento o puede cablear slo un terminal para extraer una fila o columna de datos.

Clusters
Los Clusters agrupan elementos de diferentes tipos de datos como un grupo de alambres trenzados o como un cable telefnico, donde cada alambre en el cable representa un elemento diferente del cluster. Un cluster es similar a un registro o a un struct en los lenguajes de programacin basados en texto. Reunir elementos de varios tipos de datos en clusters elimina el desorden en el cableado en el diagrama de bloques y reduce el nmero de terminales del panel conector que los subVIs necesiten. El panel conector tiene 28 terminales, como mximo. Si un panel frontal contiene ms de 28 controles e indicadores que desees usar programticamente, agrupa algunos de ellos en un cluster y asgnale un terminal en el panel conector. Semejante a un arreglo, un cluster es un control o un indicador. Un cluster no puede contener una mezcla de controles e indicadores. Aunque los elementos tanto de los clusters como de los arreglos estn ordenados, usted debe separar todos los elementos del cluster de inmediato en vez de crear un ndice para cada elemento a la vez. Puede tambin emplear la funcin Unbundle By Name para acceder a un elemento especfico del cluster. La mayora de los clusters en el diagrama de bloques tienen un cable rosado y un terminal de dato. Los clusters de valor numrico, algunas veces referidas como puntos, tienen un cableado de color caf un un terminal de dato. Puedes cablear clusters numricos a funciones numricas tales como Add o Square Root, para realizar la misma operacin simultneamente en todos los elementos del cluster. Los elementos de un cluster tienen un orden lgico que no se relaciona con su posicin en la caja. El primer objeto que coloques en el cluster es el elemento 0, el segundo es el elemento 1 y as sucesivamente. Si borra un elemento, el orden se ajusta automticamente. El orden de un cluster determina el orden en el cual los elementos aparecen como terminales en las funciones Bundle y Unbundle en el diagrama de bloques. Puedes ver y modificar el orden del cluster haciendo clic derecho en el borde del mismo y seleccionando Reorder Controls in Cluster desde el men rpido. La barra de herramienta y el cluster cambia, como se muestra en el siguiente ejemplo.

1 Botn Confirmar 2 Botn Cancelar 3 Cursor Ordenar Cluster

4 Orden Actual 5 Nuevo Orden

Funciones de Clusters
Usa las funciones de cluster localizadas en la paleta Functions>>All Functions >>Cluster para crear y manipular clusters. Use las funciones Bundle y Bundle by Name para juntar y manipular clusters y emplea las funciones Unbundle y Unbundle by Name para separar clusters. Tambin puede crear las funciones Bundle, Bundle by Name, Unbundle y Unbundle by Name haciendo clic derecho en un terminal de cluster en el diagrama de bloques y seleccionando Cluster Palette desde el men rpido. Las funciones Bundle y Unbundle automticamente contienen el nmero correcto de terminales. Las funciones Bundle by Name y Unbundle by Name aparecen como el primer elemento en el cluster. Emplee la herramienta de Posicin para ajustar el tamao de las funciones Bundle by Name y Unbundle by Name para que muestren otros elementos del cluster. Para cablear clusters, ambos clusters deben de tener el mismo nmero de elementos, determinados por el orden de los clusters, deben de tener datos compatibles. Por ejemplo, si un nmero de doble precisin de punto flotante en un cluster corresponde en un orden de cluster a una cadena en el otro cluster, el cable en el diagrama de bloques aparece con el cable roto y el VI no corre. Si los nmeros de las diferentes representaciones, LabVIEW los coerciona a la misma representacin.

Ejercicio de Tarea
VI Monitoreo de Temperatura Realiza los siguientes pasos para construir un VI que mida la temperatura y la presente en un mapa de forma de onda. Objetivo Usa un For Loop y un registro de desplazamiento para promediar los datos. El VI Temperature Monitor adquiere y muestra temperatura. Modifica el VI para promediar las ltimas tres mediciones de temperatura y mostrar el promedio corrido en una grfica de forma de onda.

1.

Abre un VI en blanco y construye el siguiente panel frontal.

a. Coloque el interruptor conmutable vertical, localizado en la paleta ControlsButtons & Switches, en el panel frontal. Pon al interruptor la etiqueta de Power. Emplea este interruptor para detener la adquisicin. b. Coloque un mapa de forma de onda, localizada en la paleta ControlsGraph Indicator, en el panel frontal. Ponga al mapa la etiqueta Temperature History. El mapa de forma de onda muestra la temperature en tiempo real. c. La leyenda del mapa de forma de onda etiqueta el grfico como Plot 0. Emplea la herramienta de Etiqueta para hacer triple clic en Plot 0 de la leyenda del mapa y cambiar la etiqueta Temp.

d. El sensor de temperature mide la temperatura del saln. Emplea la herramienta de Etiqueta para hacer doble clic en 10.0 en el eje Y escriba 90 para cambiar la escala del mapa. Cambie -10.0 en el eje Y a 70. e. Etiqueta el eje Y Temp (Deg F) y el eje X Time (sec) 2. Seleccione Window>>Show Block Diagram para presentar el diagrama de bloques. 3. Encierre los dos terminales en un Ciclo While, como se muestra en el siguiente diagrama de bloques.

4. Haz clic derecho en el Terminal condicional y selecciona Continue if True. 5. Cablea los objetos como se muestra en el diagrama de bloques previo.

a. Coloca el VI de Termmetro en el diagrama de bloques. Seleccione Functions>>All Functions>>Select a VI y navega hacia C:\Exercises\LabVIEW Basics I\Thermometer.vi.Este subVI retorna una medida de temperatura desde le sensor de temperatura.

b. Coloque la funcin Wait Until Next ms Multiple, localizada en la paleta Functions>>All functions>>Time & Dialog, en el diagrama de bloques. c. Haga clic derecho en la entrada millisecond mutilpe de la funcin Wait Until Next ms Multiple, seleccione Create>>Constant desde el men rpido, escriba 500 y presione la tecla <Enter>. La

constante numrica especifica una espera de 500 ms a fin de que el ciclo se ejecute una vez cada medio ciclo. 6. Guarde el VI como Temperatura Monitor.VI en el directorio c:\Excercise\LabVIEW Basics I. 7. Presente el Panel Frontal haciendo clic en l o seleccionndolo Window>>Show Front Panel. 8. Emplea la Herramienta de Operacin para hacer clic en el interruptor y cambiarlo a la posicin ON. 9. Corre el VI. 10. Haz clic en el interruptor para detener la adquisicin. La condicin es FALSO y el ciclo detiene su ejecucin. 11. Da formato y personalice las escalas de los ejes X-Y del mapa de forma de onda. a. Haz clic derecho en el mapa y selecciona Properties desde el men rpido para presentar la caja de dilogo Chart Properties. b. Haga clic en la lengeta Format and Precision. Selecciona Deg F (Y-axis) en el men desplegable de la parte de arriba. Ajusta Digits of precision a 1. c. Haga clic en la lengeta Plots y seleccione estilos diferente para el eje-Y como se muestra en la siguiente figura.

d. Selecciona la lengeta Scales y escoja Time (sec) (X-axis) en el men desplegable de la parte de arriba. Ajusta las opciones como se muestra a continuacin.

e. En la lengeta Scales, selecciona Deg F (Y-axis) en el men desplegable de la parte de arriba. Ajusta las opciones como se muestra a continuacin.

f. Haga clic en el botn OK para cerrar la caja de dilogo cuando finalice. 12. Haga clic derecho en el mapa de forma de onda y seleccione Data Operations>>Clear Chart desde el men rpido para limpiar la memoria de la grfica y reajustar el mapa de forma de onda. 13. Cada vez que corres el VI, primero se debe encender el interruptor y luego hacer clic en el botn Run debido a la accin mecnica del switch. Modifica la accin mecnica del interruptor a fin de que se dibuje la temperatura en el mapa cada que corra el VI, sin tener primero que ajustar la posicin del interruptor. a. Detenga el VI si est en marcha. b. Emplea la herramienta de operacin para hacer clic en el interruptor y colocarlo en la posicin ON. c. Haga clic derecho en el interruptor y seleccione Data Operations>>Make Current Default desde el men rpido. Esto ajusta la posicin ON al valor por defecto. d. Haz clic derecho en el interruptor y selecciona Mechanical Action>>Latch When Pressed desde el men rpido, esta accin retiene el valor del VI hasta que el VI lo lee una vez. 14. Corre el VI. 15. Emplea la herramienta de Operacin para hacer clic en el interruptor para mantener la adquisicin. Este cambia a la posicin OFF y cambia de nuevo a la posicin ON despus de que el Terminal condicional lee el valor.

VI de Anlisis de Temperatura En este ejercicio se representaran los datos en grficas y se analizaran. Realiza los siguientes pasos para construir un VI que mide la temperatura cada 0.25 segundos por 10 segundos. Durante la adquisicin, el VI presenta las mediciones en tiempo real en un mapa de forma de onda. Despus que se completa la adquisicin, el VI dibuja los datos en una grfica y calcula las temperaturas mnima, mxima y promedio. El VI presenta el mejor ajuste a la grfica de temperatura.

1. Abre un VI en blanco y construye el panel frontal.

Ajuste el estilo de punto del dibujo del mapa de forma de onda a small x. Esconda la leyenda de dibujo del mapa de forma de onda. Cambie la etiqueta del mapa de forma de onda a Temperature Chart. Cambie la etiqueta del mapa de forma de onda a Temperatura Graph. Haga clic derecho en Temperatura Chart, seleccione XScale>>Formating desde el men rpido y cambie el eje X a 0.25 y Digits of Precision a 2. A los datos de Temperatura Graph se les dar formato en el diagrama de bloques. Emplea la herramienta de Posicin para ajustar el tamao de la leyenda del dibujo de la grfica de forma de onda. Cambia el nombre de Plot 0 a Temp y Plot 1 a Fitted. Ajuste el estilo de punto del dibujo Temp en la grfica de forma de onda a small square. 2. Construya el siguiente diagrama de bloques.

Coloca el VI Thermometer en el diagrama de bloques. Seleccione FunctionsAll FunctionsSelect a VI y navege hacia C:\Exercises\LabVIEW Basics I\Thermometer.vi. Este subVI retorna un punto de dato de temperatura. Coloque la funcin Wait Until Next ms Multiple, localizada en la paleta FunctionsTime & Dialog, en el diagrama de bloques. Esta funcin provoca que el Ciclo For se ejecute cada 0.25 segundos (250 ms) Coloque la funcin Array Max & Min, localizada en la paleta FunctionsAll FunctionsArray , en el diagrama de bloques. Esta funcin retorna la temperatura mxima y la temperatura la mnima. Coloque el VI Mean, localizado en la paleta FunctionsAnalyzeMathematicsProbability and Statistics, en el diagrama de bloques. Este subVI retorna el promedio de las mediciones de temperatura. Haga clic derecho en las terminales de salida de la funcin Array Max & Min y del VI Mean y seleccione CreateIndicator desde el men rpido para crear los indicadores de Max, Min y Mean. Coloque el VI General Polinominal Fit, localizada en la paleta FunctionsAnalyzeMathematicsCurve Fitting, en el diagrama de bloques. Este subVI retorna un arreglo que es un ajuste polinominal al arreglo de la temperatura. Coloque la funcin Bundle, localizada en la paleta FunctionsCluster, en el diagrama de bloques. Esta funcin rene los elementos del dibujo en un cluster individual. Presione la tecla <Ctrl> mientras arrastra la funcin para copiarla. Los elementos incluyen el valor x inicial (0), el valor x (0.25) y el arreglo Y de datos de temperatura. El valor x de 0.25 se require para que el VI dibuje los puntos del arreglo de temperatura cada 0.25 segundos en la grfica de forma de onda. Coloque la funcin Build Array, localizada en la paleta FunctionsArray, en el diagrama de bloques. Esta funcin crea un arreglo de clusters a partir del cluster de temperatura y el cluster de mejor ajuste. Realice el diagrama de bloques como se muestra a continuacin. Guarda el VI. 3. Presente el panel frontal y corra el VI. La grfica presenta los datos de temperatura y el mejor ajuste de la curva de forma de onda de temperatura. 4. Ensaya valores diferentes para la constante de orden polinominal en el diagrama de bloques y corre el VI de nuevo. 5. Cambia la apariencia de los dibujos modificando los estilos del dibujo y de llenado.

Haz clic derecho en el despliegue del dibujo Temp en la leyenda del dibujo y seleccione Common PlotsScatterPlot desde el men rpido, la opcin de en medio de la parte de arriba. Haga clic derecho en el despliegue del dibujo Fitted en la leyenda del dibujo, seleccione Bar Plots desde el men rpido y escoja la segunda opcin en la fila de en medio. La grfica de forma de onda debe mostrarse similar a la siguiente figura.

Ejercicios Adicionales
En este ejercicio aplicars tus conocimientos de arreglos para escribir un VI para implementar funciones de arreglos variadas. Crea un VI que acumule un arreglo de valores de temperatura usando el Thermometer VI. El cual construiste en el VI anterior. Establece el tamao del arreglo con un control en el panel frontal. Inicializa el arreglo usando la funcin Initialize Array del mismo tamao en donde todos los valores son iguales a 10. Agrega los dos arreglos, calcula el tamao del arreglo final y extrae el valor medio del arreglo final. Despliega el Temperature Array, Initialized Array, Final Array y Mid Value. Salva el VI como Mid Value.vi

Cuestionario
1.- En que se diferencia una grfica de un grfica y un chart? 2.- Cuales son los tipos de Mapas (Charts), descrbelos brevemente? 3.- Como creas un arreglo? 4.- En la figura que se muestra a continuacin hay un arreglo 2D 2 4 7 5 1 6 9 3 4 5 2 5 8 4 9 a.- Cual nmero es el index ( 1,3 )? b.- Si usaste una funcin Array Subset en el arreglo de la parte de arriba y asignas los siguientes valores (en orden) index: 2 length: 3 index: 3 length: 2 Cual(es) valores obtendrs? Ser un arreglo de 1D o 2D? 5.- Cual es la diferencia entre un cluster y un arreglo? 6.- Cul es la diferencia entre las funciones Bundle y Bundle by Name? 7.- Cul es la diferencia entre Unbundle y Unbundle by Name?

Ax

También podría gustarte