41
 1 de 41   Tutorial del curso de introducción al uso de LabVIEW orientado a la innovación en la investigación  JM González Leal Departamento de Física de la Materia Condensada Facultad de Ciencias

Tutorial LabVIEW

Embed Size (px)

Citation preview

  • 1 de 41

    Tutorial del curso de introduccin al uso de LabVIEW orientado a la innovacin en la

    investigacin

    JM Gonzlez Leal

    Departamento de Fsica de la Materia Condensada

    Facultad de Ciencias

  • 2 de 41

    ENTORNO DE PROGRAMACIN COMENZAR

    Lo primero que encontrars al abrir el programa es una ventana que te ofrece la posibilidad de crear un nuevo instrumento virtual desde el principio, o bien a partir de un modelo, abrir un VI existente, configurar LabVIEW, o acceder a la ayuda on-line. Vers que los botones que aparecen en esta ventana tienen diferente comportamiento segn hagas clic en el rectngulo con la leyenda, o en zona que est a la derecha del objeto, en la que aparece una flecha. Si eliges comenzar un nuevo VI a partir de un modelo, la ventana de dilogo te presentar un avance del panel frontal y del diagrama de bloques, del modelo que elijas.

    Figura 1. Ventana de comienzo de LabVIEW.

    BARRA DE MEN

    Con las funciones que encontrars en la opcin File de la barra de men, podrs abrir y salvar VIs, configurar las propiedades de un VI, e imprimir su panel frontal o su diagrama de bloques.

    En la opcin Edit encontrars las funciones ms comunes de copiar, cortar y pegar, y hacer y deshacer. Adems, tendrs disponibles funciones para editar objetos del panel frontal (Customize Control) y definir una barra de men propia en un VI (Run-Time Menu), entre otras.

    En la opcin Operate encontrars funciones para ejecutar el VI, convertir los valores mostrados por un control o indicador, en sus valores por defecto, o reiniciar los valores de todos lo controles e indicadores a sus valores por defecto. Puedes tambin configurar ciertas propiedades de ejecucin del VI y habilitar o deshabilitar la cuadrcula para la maquetacin. Finalmente, tienes tambin la funcin Connect to Remote Panel, para conectarte remotamente a otro ordenador y visualizar el panel frontal de un VI que corra all.

    La opcin Tools recoge funciones de control interno de LabVIEW que te permitirn configurar su comportamiento, y cambiar entre modo de edicin y modo de ejecucin del panel frontal. El primero, que es el que aparece por defecto, estn habilitadas ciertas funciones de edicin en la barra de herramientas, que no se presentan en el segundo.

    En la opcin Browse hallars funciones para la gestin de la jerarqua de ejecucin de un VI.

  • 3 de 41

    En la opcin Windows puedes encontrar funciones para habilitar o deshabilitar la presentacin de paletas o ventanas, mostrar las ventanas de los VIs abiertos en mosaico o cascada, y pasar a la ventana del diagrama de bloques.

    En la opcin Help encontrars la ayuda on-line y ejemplos, entre otra documentacin de utilidad.

    Figura 2. Ventana de panel frontal, paleta de herramientas, paleta de controles, ventana de ayuda en contexto, y ventana de navegacin.

    Figura 3. Ventana del diagrama de bloques, paletas de herramientas, paleta de funciones, ventana de ayuda en contexto, y ventana de navegacin.

    BARRA DE HERRAMIENTAS

    En ella tendrs una serie de botones para ejecutar un solo ciclo de un VI, ejecutarlo cclicamente, pausarlo o detenerlo. Tienes adems un botn mostrando una bombilla que te permitir observar el orden de ejecucin del VI, y te ser til en tareas de depuracin.

    Si la opcin est habilitada, tendrs disponible adems una serie de funciones para el maquetado del panel frontal y del diagrama de bloques.

  • 4 de 41

    PALETA DE HERRAMIENTAS

    Haciendo clic sobre los botones de la paleta de herramientas, que est disponible tanto para la ventana del panel frontal, como para la ventana del diagrama de bloques, podrs cambiar el cursor para realizar diferentes acciones sobre los objetos.

    Figura 4. Paleta de herramientas.

    Cursor de cableado. Usa este cursor para hacer las conexiones en el diagrama de bloques.

    Cursor de scroll. salo para moverte sobre el rea de trabajo tanto en el panel frontal como en el diagrama de bloques.

    Cursor de punto de ruptura. Deshabilita la ejecucin de cdigo aadiendo puntos de ruptura en el cableado.

    Cursor de muestreo de datos (sonda). Puedes muestrear los valores que circulan por una determinada conexin, aadiendo ventanas de muestreo. Para ello, haz clic sobre la rama del diagrama de bloques para aadir un display digital que te informar sobre el valor actual que se transmite a travs de ella.

    Cursor para conseguir color. Usa este cursor como en los programas de autoedicin, para conseguir los valores RGB de cualquier color mostrado en el entorno de LabVIEW.

    Cursor de men desplegable. Usa este cursor para desplegar el men de propiedades de los objetos haciendo clic sobre ellos con el botn izquierdo del ratn.

    Cursor de etiquetado. Con este cursor podrs aadir etiquetas de texto tanto en el panel frontal como en el diagrama de bloques. salo adems para editar los displays digitales de los controles e indicadores tanto numricos como alfanumricos.

    Cursor de seleccin. Con este cursor actuars sobre los objetos para el maquetado tanto del panel frontal como del diagrama de bloques.

    Cursor operativo. Con este cursor podrs modificar los valores de los controles e indicadores actuando sobre los objetos como si el VI estuviera funcionando.

  • 5 de 41

    PALETA DE CONTROLES (Panel Frontal)

    La paleta de controles te ofrece todos los objetos que puedes aadir en el panel frontal de un VI. Selecciona Show Control Palette en la opcin Window de la barra de men si quieres que la paleta siempre est visible, o haz clic en el botn derecho del ratn sobre la ventana del panel frontal si slo quieres acceder a ella de forma eventual.

    Figura 5. Paleta de controles.

    PALETA DE FUNCIONES (Diagrama de Bloques)

    La paleta de funciones te ofrece todos los nodos que puedes aadir en el diagrama de bloques de un VI. Selecciona Show Functions Palette en la opcin Window de la barra de men si quieres que la paleta siempre est visible, o haz clic en el botn derecho del ratn sobre la ventana del diagrama de bloques si slo quieres acceder a ella de forma eventual.

    Figura 6. Paleta de funciones.

    VENTANA DE NAVEGACIN

    En el caso de que desarrolles un proyecto complejo que envuelva un diagrama de bloques extendido sobre una gran rea de trabajo, te resultar til la ventana de navegacin para moverte sobre el cdigo. Puedes acceder a ella seleccionando Show Navigation Window en la opcin Window de la barra de men. La ventana de navegacin mostrar el esquema del diagrama de bloques o del panel frontal, dependiendo de la ventana activa.

    Seleccin automtica de cursor. Si activas esta opcin de la paleta, LabVIEW decidir automticamente el modo de cursor, en funcin del contexto en que te encuentres.

    Ventana configuracin de colores. Puedes modificar los colores de los objetos eligiendo entre los disponibles en esta ventana. Los objetos suelen tener colores en primer plano, y un color de fondo. Haz clic en el cuadrado que corresponda antes de elegir el color (cuadrado en primer plano o cuadrado de fondo).

  • 6 de 41

    Figura 7. Ventana de navegacin.

    AYUDA EN CONTEXTO

    Encontrars esta ventana muy til para conocer on-line la sintaxis y la funcionalidad de los nodos del diagrama de bloques. Para mostrar esta ventana selecciona Show Context Help en la opcin Help de la barra de men.

    Figura 8. Ayuda en contexto.

    AYUDA

    Haz uso de la ayuda on-line incluida. Encontrars una gran de documentacin que te resultar muy til para entender y avanzar en el conocimiento de LabVIEW. Puedes acceder a la ayuda on-line a travs de la opcin VI, Function & How-To Help que encontrars en la etiqueta Help de la barra de men.

    EJEMPLOS

    LabVIEW incluye una gran cantidad de ejemplos de VIs, que ilustran la funcionalidad de los nodos, las estructuras de programacin, y dems conceptos caractersticos de este entorno de programacin. Haz clic en Find Examples dentro de la opcin Help de la barra de men para acceder a ellos.

    PROGRAMACIN BSICA Las aplicaciones realizadas con LabVIEW tambin se conocen como instrumentos virtuales, o VIs, porque en su apariencia y funcionamiento imitan a instrumentos fsicos, tales como voltmetros u osciloscopios, por poner slo dos ejemplos de los ms conocidos. Todo instrumento virtual consta de los siguientes elementos: - Panel Frontal: que sirve como interfaz de usuario.

  • 7 de 41

    - Diagrama de bloques: que contiene el cdigo fuente grfico que define la funcionalidad del VI.

    - Icono y patrn de conectores: que identifican y definen al VI para que ste pueda ser usado en otro VI. Un VI ejecutndose dentro de otro VI se denomina subVI. Un subVI puede entenderse como una subrutina en lenguajes de programacin basados en texto.

    PANEL FRONTAL

    El panel frontal es la interfaz de usuario de un VI. La Figura 1 muestra un ejemplo de un panel frontal.

    Figura 9. Ejemplo de panel frontal.

    El panel frontal consta de controles e indicadores que son, respectivamente, las entradas y salidas interactivas del VI. Los controles son, por ejemplo, los pulsadores, diales, interruptores, etc. Los indicadores son, por ejemplo, los displays, los grficos, los indicadores luminosos, etc. Los controles simulan los dispositivos de entrada del instrumento y suministran datos al diagrama de bloques del VI. Los indicadores simulan los dispositivos de salida del instrumento y muestran los datos que el diagrama de bloques adquiere o genera.

    DIAGRAMA DE BLOQUES

    La funcionalidad del VI se define en su diagrama de bloques. LabVIEW ofrece un lenguaje de programacin grfica para realizar esta tarea. El diagrama de bloques consta de los elementos que se describen a continuacin.

    Terminales Los terminales representan el tipo de datos de un control o indicador. Puedes configurar los controles e indicadores del panel frontal para que aparezcan como iconos o terminales de tipo en el diagrama de bloques. Por defecto, los objetos del panel frontal aparecern como iconos.

    Los terminales son puertos de entrada y salida que intercambian informacin entre el panel frontal y el diagrama de bloques. Los datos que se introduzcan mediante los controles del panel frontal entran en el diagrama de bloques a travs de los terminales de control.

  • 8 de 41

    Figura 10. Ejemplo de diagrama de bloques y su correspondiente panel frontal.

    Nodos Los nodos son objetos en el diagrama de bloques que tienen entradas y/o salidas, y realizan operaciones cuando el VI est en funcionamiento. Los nodos son anlogos a los operadores, funciones, y subrutinas en los lenguajes de programacin basados en texto. Las funciones sumar y restar cuyos iconos aparecen en el diagrama de bloques de la Fig. 2, son ejemplos de nodos.

    Cables La transferencia de datos entre los objetos del diagrama de bloques se realiza a travs de cables. En la Fig. 2 los cables, en naranja, conectan los terminales de los controles e indicadores a los nodos de suma y resta. Cada cable tiene una nica fuente de datos pero puede conectarse a todo aquel nodo o VI que acepte el tipo de dato. Los cables tienen diferente color, estilo y grosor, dependiendo del tipo de datos que transporten. Una conexin abierta aparece como una lnea discontinua con una cruz roja en el centro, simulando un cable roto.

    Estructuras Las estructuras son representaciones grficas de los bucles y condicionales de los lenguajes de programacin basados en texto. Usa las estructuras para ordenar, repetir o ejecutar bajo condiciones, bloques de cdigo en el diagrama de bloques.

    Tipos de estructuras

    - For Loop: ejecuta un nmero definido de ciclos de operaciones. El nmero de ciclos es un entero positivo que debes conectar al terminal indicado con una N en azul, y que encontrars en la esquina superior derecha del objeto. La estructura incluye un control simbolizado con una i en azul, que suministra el valor del ciclo en ejecucin comenzando por 0. El nmero de ciclos queda fijado por el nmero de valores contenidos en un array, si ste se conecta a la estructura. Si extraes valores del bcle, estos se agruparn por defecto en un array. Puedes deshabilitar esta opcin haciendo clic con el botn derecho del ratn sobre el punto donde el cable abandona la estructura y que aparece enfatizado. Selecciona entonces la opcin Disable Indexing. Puedes aadir registros de desplazamiento para hacer que la estructura sea recursiva.

    - While Loop: esta estructura ejecutar las operaciones que contiene hasta recibir una seal booleana. Aparte del ndice, encontrars un nodo en la esquina inferior derecha que debes

  • 9 de 41

    conectar a una seal booleana. Puedes cambiar la respuesta de la estructura a la seal booleana. Por ejemplo, puedes querer que el bucle termine cuando pulses un botn de parada, o que se arranque cuando pulses un botn de inicio. Por lo dems, comparte las caractersticas descritas para la estructura For Loop. Como regla general, aade siempre un retraso de al menos 50 ms en la estructura, para garantizar que el sistema ejecute otras operaciones en aplicaciones multitarea o que muestre adecuadamente el estado de la seal booleana de control.

    - Case structure: es una estructura condicional similar al procedimiento If-Else en los lenguajes de programacin basados en texto. La estructura admite diferentes tipos de datos conectados a su terminal de entrada que est simbolizado por un signo de interrogacin, y que encontrars en el segmento derecho del objeto. Por defecto el terminal tiene color verde porque espera una seal booleana (S/NO), pero puedes conectar tambin texto y enteros. Los casos (o coincidencias) los defines en la ventana que aparece en la parte superior de la estructura. Puedes usar las flechas para moverte entre los diferentes casos. Puedes reordenar, aadir y borrar casos. Para ello haz clic con el botn derecho sobre la etiqueta que indica los casos. Para cada caso, aade el diagrama de bloques de las operaciones que quieres que se ejecuten, en la opcin de la estructura que le corresponde.

    - Sequence structure: LabVIEW impone un orden en la secuencia de operaciones de un VI. Si creas un diagrama de bloques con operaciones inconexas, LabVIEW intentar ejecutarlas todas simultneamente. Normalmente te interesar crear algoritmos secuenciales. Puedes introducir orden en la ejecucin usando los terminales de error de los nodos. Sin embargo, en el caso de proyectos ms complejos, ser til usar la estructura de secuencia. Puedes elegir entre dos modos de presentarla: plegada o desplegada. En el primer caso el orden de ejecucin se establece aadiendo pginas a la estructura. Para ello haz uso del men desplegable que obtendrs al hacer clic con el botn derecho sobre la ventana que encontrars en la parte superior del objeto. Si quieres usar ciertos valores que aparecen en una pgina, en otra posterior, aade una referencia en la estructura, mediante la opcin Add Sequence Local que encontrars en el men desplegable. Al seleccionarlo aparecer un terminal amarillo en la parte derecha del objeto, que podrs usar para transmitir el valor a otra celda. En la nueva celda podrs hacer uso del valor cableando la referencia correspondiente. El terminal cambia de color segn el tipo de datos, y muestra una flecha que indica si el valor es de salida o entrada. En el segundo caso el orden de ejecucin es de izquierda a derecha. Puedes aadir pginas, a la derecha o a la izquierda, de forma similar a la descrita antes.

    - Event structure: es similar a la estructura condicional, salvo que los casos estn vinculados con sucesos o eventos originados por la interfaz de usuario, externamente o por otras partes del programa. Los eventos caractersticos de la interfaz de usuario incluyen los clics del ratn, la pulsacin de teclas, etc. Los sucesos externos incluyen termporizadores de hardware o seales de disparo que indican cundo una adquisicin ha terminado, o cundo se da una condicin de error.

    En un VI basado en eventos, stos influyen directamente en el flujo de ejecucin de las operaciones. La estructura incluye un bucle que espera a que ocurra un evento, ejecuta el cdigo correspondiente, y vuelve a quedar en espera hasta el siguiente suceso.

    Usa esta estructura cuando quieras sincronizar las acciones del usuario sobre el panel frontal, con la ejecucin del diagrama de bloques. Si no usas este tipo de programacin, el

  • 10 de 41

    diagrama de bloques deber muestrear el estado de los objetos del panel frontal en un bucle, comprobando cada vez si se ha producido algn cambio. Muestrear el panel frontal consume una cantidad notable de recursos, y puede que algunos cambios no se detecten, si stos se producen demasiado rpido. Si usas programacin basada en eventos para responder a las acciones del usuario, eliminas la necesidad de muestrear el panel frontal para determinar las acciones que ha realizado el usuario. En vez de eso, LabVIEW informa al diagrama de bloques cada vez que sucede un evento que t hayas especificado en la estructura. De esta forma reduces el consumo de recursos, simplifica el diagrama de bloques, y garantiza que ste responde a todas las interacciones del usuario.

    Usa los eventos generados mediante programacin para comunicar diferentes partes del programa que no tengan dependencia en el orden de ejecucin. Estos eventos tienen las mismas caractersticas que los generados por el usuario.

    ICONO Y PATRN DE CONECTORES (Connector Pane)

    Una vez construido el VI, puedes disear su icono y patrn de conectores correspondientes, que te facilitarn su posterior uso como subVI. Todo VI muestra un icono en la esquina superior derecha tanto de la ventana del panel frontal, como del diagrama de bloques. Un icono es una representacin grfica de un VI que puede contener textos, imgenes, o una combinacin de ambos. Si se usa un VI como subVI en un nuevo proyecto, el icono lo identifica en el diagrama de bloques del nuevo proyecto. Haciendo doble clic sobre el icono, se abre el VI de referencia para su edicin.

    Adems del icono, puedes disear el patrn de conectores de un VI. ste es un conjunto de terminales que corresponden a los controles e indicadores del VI, de forma similar a la lista de parmetros de una funcin de llamada en los lenguajes de programacin basados en texto. El patrn de conectores define las entradas y salidas que pueden cablearse al usar el VI como subVI. El patrn de conectores recibe datos en sus terminales de entrada y los procesa segn la funcionalidad definida en el diagrama de bloques, y finalmente vuelca los resultados en sus terminales de salida, que estn vinculados con los indicadores del panel frontal del VI.

    Para disear o editar el icono haz doble clic sobre el que por defecto aparece en la ventana del panel frontal del VI. Para disear o editar el patrn de conectores haz clic con el botn derecho del ratn y elige la funcin a realizar en el men desplegable (aadir terminal, eliminar terminal, patrones, etc). Inicialmente, el patrn de conectores aparecer en color blanco pues la correspondencia entre los terminales y los objetos del panel frontal debe asignarla el programador. Para ello, haz clic sobre el terminal del patrn de conectores al que quieras asignar una correspondencia y luego sobre el control o indicador del panel frontal elegido, o viceversa. El color del terminal ser del tipo de datos que corresponda al control o indicador. Los terminales de salida aparecen con lnea gruesa en el patrn de controles.

  • 11 de 41

    Figura 11. Ejemplo del diseo de un patrn de conectores con dos entradas y una salida.

    CONTROLES E INDICADORES

    CONTROLES E INDICADORES NUMRICOS

    Usa los controles e indicadores numricos que encontrars en las paletas Numeric y Classic Numeric para simular controles de desplazamiento lineal y rotatorio, y displays digitales. Las paletas tambin incluyen las herramientas para editar los colores de las rampas de aquellos controles que las presenten, as como para aadir un indicador de fecha a los datos y resultados generados. Usa los controles e indicadores numricos para introducir o presentar datos numricos.

    Controles e indicadores lineales Los controles e indicadores lineales incluyen los de desplazamiento vertical y horizontal, un tanque, y un termmetro. Cambia el valor de un control o indicador lineal usando el cursor con el icono que podra simbolizar nuestra mano sobre el ratn, y haz clic sobre el control, y desliza el ratn en la direccin y el sentido que indique el control o indicador elegido. Los cambios que hagas en los controles lineales cuando el VI est corriendo sern continuos, de forma que el diagrama de bloques tomar los valores intermedios barridos en el cambio, tantos cuanto ms rpido sea el ciclo de ejecucin del VI.

    Los controles e indicadores lineales pueden mostrar ms de un valor. Haz clic en el botn derecho del ratn sobre el objeto, y selecciona Add Slider del men desplegable para aadir ms elementos al objeto.

    Controles e indicadores rotatorios Los controles e indicadores rotatorios incluyen, entre otros, ruedas, manecillas e indicadores analgicos de aguja. Los objetos rotatorios funcionan de forma similar a los lineales. Puedes cambiar su valor haciendo clic y arrastrando, haciendo clic sobre el punto final al que quieres moverlo, o usando el display digital asociado al objeto, que est oculto por defecto y que puedes mostrar seleccionndolo en el men del objeto, que se despliega al hacer clic con el botn derecho del ratn.

  • 12 de 41

    Al igual que los controles e indicadores lineales, los objetos rotarios pueden tener ms de un elemento de control o de indicacin. Para aadir elementos, elige en el men desplegable del objeto Add Needle.

    Controles e indicadores digitales Los controles e indicadores digitales son la forma ms sencilla de introducir y mostrar datos numricos. Puedes cambiar el tamao de los displays para acomodar ms dgitos. Para cambiar el valor de un control o indicador digital, puedes hacer lo siguiente:

    - usar el cursor operativo (el de la mano en el ratn) o el cursor de etiquetado (que puedes elegir en la paleta de herramientas haciendo clic sobre la opcin que presenta una A y un cursor de texto), y hacer clic dentro del display para introducir el valor desde el teclado.

    - usar los cursores anteriores y hacer clic a la derecha del valor que se desea cambiar, y usar las flechas del teclado arriba y abajo.

    - usar el cursor operativo y hacer clic sobre las flechas que acompaan al control digital.

    Formato numrico Por defecto, LabVIEW muestra y almacena los nmeros como una calculadora. Un control o indicador numrico muestra hasta 6 dgitos antes de pasar a notacin exponencial. Puedes configurar el nmero de dgitos que quieres que LabVIEW muestre en un objeto numrico antes de pasar a notacin exponencial. Para ello, debes acceder a las propiedades del objeto, que las encontrars en el men desplegable que aparece con el botn derecho del ratn. La precisin que selecciones slo afectar a la presentacin en el panel frontal, NO a la representacin del tipo de dato.

    Botones, interruptores e indicadores luminosos Usa los controles e indicadores booleanos (verdadero/falso) para simular botones, interruptores e indicadores luminosos. Usa estos controles e indicadores para introducir y mostrar valores booleanos. Por ejemplo, si monitorizas la temperatura de un experimento y no debe sobrepasar un valor crtico, puedes usar un indicador luminoso en el panel frontal para ponerte sobre aviso si la temperatura comienza a subir.

    Puedes usar el men desplegable del objeto para cambiar su apariencia y la forma en que responden cuando hace clic sobre ellos.

  • 13 de 41

    Figura 12. Ejemplo de uso de un indicador lineal, un indicador luminoso, y un botn de parada. CONTROLES E INDICADORES ALFANUMRICOS

    Usa los controles e indicadores de cadena (strings) y de localizacin (path) para simular campos de entrada y salida de texto, y para introducir o visualizar la ubicacin de un archivo o directorio.

    Controles e indicadores de cadena En un control de cadena puedes introducir o editar texto usando los cursores operativo y de etiquetado. Por defecto, el texto nuevo o editado no pasa al diagrama de bloques hasta que no termines la edicin, bien haciendo clic fuera del campo de texto, cambiando de ventana de trabajo, haciendo clic en el icono Enter de la barra de herramientas, o pulsando la tecla Enter del teclado numrico. Si pulsas la tecla Enter del teclado alfabtico introducirs un retorno de carro en el campo de texto.

    Controles de texto cclicos o de anillo (rings) Usa los controles de anillo para crear una lista de tems de texto que quieras seleccionar cclicamente en el panel de control. Encontrars un par de casos: los anillos de texto, y los anillos de men. En el primer caso, la seleccin devuelve la cadena alfanumrica elegida, mientras en el segundo, el terminal de control devuelve un valor numrico asignado a la opcin elegida. Puedes usar este tipo de controles para seleccionar los casos para una estructura condicional.

    Para aadir elementos a los anillos, haz clic en el botn derecho del ratn para desplegar el men del objeto, y elige Edit tems. Aade las opciones en la lista que mostrar el objeto. El orden de los tems en la lista ser el mismo que finalmente presente el control. Por defecto el anillo te permite aadir manualmente opciones no contempladas en la lista, lo que en algunas aplicaciones puede dar lugar a un incorrecto funcionamiento del VI. Si quieres evitar esto, desactiva la casilla Allow Undefined Strings en el men desplegable del objeto.

    Cuando configures la lista de texto para un control de anillo, puedes especificar cualquier valor para cada opcin. Para ello desactiva la opcin Sequential Values en el men Edit tems de las propiedades del objeto. Por defecto los valores asignados sern los ordinales que marcan su posicin en la lista, comenzando desde 0.

    Controles e indicadores de localizacin Usa los controles e indicadores de localizacin para introducir o mostrar la ubicacin de un archivo o directorio. Los controles e indicadores de localizacin funcionan de forma similar a los controles e indicadores de cadena. La diferencia est en que LabVIEW formatea la localizacin usando la sintaxis adecuada a la plataforma que se est usando (Windows, Linux, etc). LabVIEW dispone del nodo Not A Path para detectar cundo un usuario falla al introducir la ubicacin de un archivo o directorio.

    CONTROLES E INDICADORES MULTIDIMENSIONALES

    Usa los controles de lista localizados en la paletas List & Table y Classic List & Table para dar al usuario una lista de tems que pueda seleccionar.

    Listas

  • 14 de 41

    Puedes configurar las listas para aceptar selecciones mltiples. Usa la opcin multicolumna para mostrar ms informacin acerca de cada tem, tal como el tamao o la fecha de creacin. Puedes aadir, adems, un smbolo al lado de cada opcin.

    rboles Usa este tipo de control para dar al usuario una lista jerrquica de tems que podr seleccionar. Puedes organizar los tems en grupos de tems, o nodos, de forma similar a cmo se hace en el explorador de Windows.

    Tablas Usa este control para crear una tabla en el panel frontal. Cada celda de la tabla es una cadena, y cada celda est definida por su posicin en una fila y una columna. Por tanto, una tabla muestra un array 2D de cadenas.

    CONTROLES CONTENEDORES

    Usa los controles contenedores para agrupar controles e indicadores, para presentar objetos ActiveX en el panel frontal, o para mostrar el panel frontal de otro VI en el panel frontal del VI actual.

    Controles de pestaas Usa este tipo de contenedor para solapar paneles frontales diferentes en un rea pequea. Un control de pestaas consiste de pginas y pestaas. Ubica los objetos de un panel frontal en cada pgina y usa las pestaas para mostrarlos.

    Los controles de pestaa son tiles cuando tengas varios objetos del panel frontal que se usan juntos o durante una fase especfica de la operacin. Por ejemplo, puedes querer tener un VI que requiera al usuario que configure varios parmetros antes de comenzar un test, luego permitir al usuario modificar aspectos del test cuando est en progreso, y finalmente permitirle mostrar y salvar slo los datos ms relevantes del test.

    Controles de subpanel Usa los subpaneles para mostrar el panel frontal de otro VI sobre el panel frontal del VI actual. Por ejemplo, puedes usar un subpanel para disear una interfaz de usuario que se comporte como un asistente y vaya mostrando en la misma rea del panel frontal diferentes escenarios.

  • 15 de 41

    Figura 13. Ejemplo de un contenedor de pestaas que incluye una lista multicolumna y una figura jpg en la primera pgina, y un subpanel y un control de anillo, en la segunda.

    Controles e indicadores de dilogo

    Usa estos controles en las cajas de dilogo que crees para comunicarte con el usuario. Estos controles son similares a los que aparecen en el panel frontal del VI y difieren slo en su apariencia.

    Etiquetas Puedes aadir etiquetas en el panel frontal y en el diagrama de bloques para comentar el procedimiento.

    GRFICOS

    Usa grficos (graphs) y registros (charts) para mostrar tus datos de forma grfica. Ambos difieren en la forma en que presentan y actualizan los datos. Los VIs con grficos normalmente recogen los datos en un array y entonces los representan en el grfico, lo cual es similar a una tabla de datos a partir de los que se genera la curva. Por el contrario, un registro anexa los nuevos datos a aquellos generados previamente y que ya estn mostrados grficamente. En un registro puedes ver las nuevas lecturas en el contexto de las adquiridas previamente.

    TIPOS DE GRFICOS

    Registros y grficos de forma de onda: presentan los datos a una velocidad constante de muestreo.

    Grficos XY: presentan los datos a una velocidad de muestreo variable, tal como ocurre en aplicaciones con medidas asncronas.

    Registros y grficos de intensidad: presentan datos 3D en un grfico 2D empleando una escala de colores para la tercera dimensin.

    Grficos de forma de onda digital: presentan los datos como pulsos o grupos de lneas digitales. Los ordenadores transfieren entre s datos digitales en forma de pulsos.

    Grficos 3D (slo Windows): presentan datos 3D en grficos 3D creados como objetos ActiveX, y que son insertados en forma de subpaneles en el panel frontal del VI.

  • 16 de 41

    OPCIONES

    Mltiples ejes X e Y Todos los grficos pueden mostrar mltiples ejes X e Y, mientras los registros slo tienen habilitado el aumento del nmero de ejes Y. Puedes encontrar la opcin Duplicate Scale en el men desplegable del objeto.

    Figura 14. Ejemplo de grfico de forma de onda con dos ejes Y.

    Cambia la apariencia de los grficos y registros Puedes cambiar la apariencia de estos objetos usando su men desplegable para ocultar o mostrar opciones.

    - Plot Legend: Define el color y el estilo de las curvas. Aumenta el tamao de la caja para acceder a las opciones de todas las curvas en una representacin mltiple.

    - Scale Legend: Define las etiquetas de los ejes y configura sus opciones.

    - Graph Palette: Cambia la escala y el formato mientras el VI est funcionando.

    - X Scale e Y Scale: Da formato a los ejes X e Y.

    - Cursor Legend (slo en grficos): Muestra un marcador en un punto de coordenadas definidas por el usuario. Puedes presentar ms de un marcador simultneamente sobre un grfico.

    - X Scrollbar: Barra de desplazamiento para visualizar zonas del grfico fuera del zoom.

    Puedes modificar el comportamiento de los cursores del grfico, las opciones de escala, y los ejes. Puedes modificar los grficos de intensidad y de forma de onda para que se ajusten a los requerimientos de tus datos, o para mostrar ms informacin. Entre las opciones disponibles para los registros, se incluyen una barra de desplazamiento, una leyenda, una paleta, un display digital, y la representacin de las escalas frente al tiempo.

  • 17 de 41

    Figura 15. Elementos de un grfico.

    Cursores grficos Los cursores sobre los grficos te permiten leer el valor exacto de un punto en una curva. El valor se muestra en la barra Cursor Legend. Para aadir cursores slo tienes que seleccionar la opcin Cursor Legend en el men desplegable del objeto, y aumentar la barra en tantas filas como cursores necesites. Puedes etiquetar los cursores, y fijarlos en posiciones concretas.

    Autoscaling Los grficos pueden automticamente ajustar sus escalas horizontal y vertical para encajar los datos en el mximo rea de representacin. Este comportamiento se conoce como autoscaling. Puedes activar o desactivar esta opcin usando el men desplegable del grfico o registro. La opcin est habilitada por defecto. Puede ser desaconsejable en aplicaciones que requieran alta velocidad de procesamiento.

    Formato de los ejes

    Usa la opcin Format and Precision del men desplegable de un grfico o un registro para especificar cmo quieres que aparezcan los ejes X e Y.

    Por defecto, el eje X est configurado para usar notacin en coma flotante y mostrar una etiqueta de tiempo, y el eje Y est configurado para usar formato automtico y mostrar una etiqueta de amplitud. Usa el men desplegable para acceder a las propiedades de los grficos y registros, y cambiar estas opciones, si lo necesitas.

    Usa la opcin Format and Precision del men de propiedades para especificar un formato numrico para los ejes de un grfico o registro. Selecciona Scales para renombrar un eje y dar formato a la apariencia de la escala. Por defecto, los grficos y registros muestran hasta 6 dgitos antes de pasar a notacin exponencial.

    Elige la opcin Direct entry mode preferred si quieres usar cdigos de texto para el formateo numrico de los ejes.

    EDITA LOS REGISTROS

  • 18 de 41

    Al contrario que los grficos, que cada vez muestran un paquete de datos que sobrescribe el paquete anterior, los registros se actualizan peridicamente y mantienen una historia de los datos previamente almacenados.

    Puedes modificar los registros de forma de onda y de intensidad para que se ajusten a los requerimientos de tus datos, o para mostrar ms informacin. Las opciones disponibles para los registros son entre otras, una barra de desplazamiento, una leyenda, una paleta y un display digital. Puedes modificar la longitud de datos en el histrico, los modos de actualizacin, y las ventanas de presentacin de grficos.

    GRFICOS XY Y DE FORMA DE ONDA

    La diferencia entre estos tipos de grfico estriba en que los segundos estn limitados a un muestreo constante, mientras que en el primer caso cualquier conjunto de pares de valores puede ser representado.

    Los grficos de forma de onda slo presentan funciones con puntos igualmente distribuidos a lo largo del eje X. El grfico XY es un objeto grfico cartesiano de propsito general que presenta funciones multievaluadas, tales como circunferencias o curvas con una base de tiempo variable. En ninguno de los casos a limitaciones en el nmero de puntos a representar. Ambos aceptan varios tipos de datos, lo que te evitar tener que manipularlos antes de representarlos.

    Tipos de datos para generar un grfico de forma de onda con una sola curva El grfico de forma de onda acepta dos tipos de datos si slo se quiere presentar una curva.

    El grfico acepta un array lineal de valores e interpreta los datos como puntos sobre el grfico e incrementa el ndice en x comenzando en x = 0. El grfico tambin acepta un cluster con un valor de x inicial, un valor para el incremento en x, y un array lineal para los valores del eje Y.

    Figura 16. Ejemplo de grfico creado a partir de un array. El valor inicial de x es 0, y la escala del eje X es 1.

  • 19 de 41

    Figura 17. Ejemplo de grfico creado a partir de un cluster que define el valor inicial de x y la escala del eje X.

    Tipos de datos para generar un grfico con mltiples curvas Un grfico de forma de onda acepta un array 2D de valores, donde cada fila del array es una curva independiente. El terminal interpreta los datos como los puntos sobre el grfico e incrementa el ndice en x, comenzando en x = 0.

    Figura 18. Un ejemplo de representacin de curvas mltiples usando arrays 2D.

  • 20 de 41

    Figura 19. Otra forma de representacin de curvas mltiples usando arrays 2D.

    Un grfico de forma de onda mltiple tambin acepta un cluster con un valor de x inicial, un valor para el incremento en x, y un array 2D para los valores del eje Y. Este tipo de datos es til cuando quieras mostrar mltiples seales muestreadas todas a la misma frecuencia.

    Figura 20. Un ejemplo de representacin de curvas mltiples usando clusters.

    Puedes hacer tambin que cada una de las representaciones tenga su propio valor inicial para x, y diferente escala en este eje. En ese caso, el tipo de datos es un array de clusters definidos como antes.

    Figura 21. Otra forma de representacin de curvas mltiples usando clusters.

    Grficos XY mostrando una sola curva El tipo de datos en este caso es un cluster que contiene un array lineal con los valores de x, y otro array lineal con los valores de y. Los grficos XY tambin aceptan un array 2D de puntos, donde cada punto es un cluster que contiene un valor de x y un valor de y.

  • 21 de 41

    Figura 22. Ejemplo de representacin de una curva simple usando grficos XY.

    Figura 23. Una va alternativa para la representacin de una sola curva usando grficos XY.

    Grficos XY mostrando mltiples curvas

    Si quieres presentar varias curvas en un grfico XY, este objeto acepta un array 2D de las diferentes curvas, donde cada una de ellas es un cluster que contiene arrays lineales con los valores de x y de y. El grfico XY tambin admite un array de clusters de curvas, donde cada una es un array lineal de puntos definidos como clusters.

  • 22 de 41

    Figura 24. Ejemplo de representacin de curvas mltiples usando grficos XY.

    Figura 25. Otra va para la representacin de curvas mltiples usando grficos XY.

    GENERACIN DE INFORMES

    LEER Y GUARDAR DATOS

    Los nodos que uses para salvar y recuperar datos dependern del formato de los archivos. Puedes leer o escribir datos a los archivos en tres formatos: texto, binario, y datalog. El formato que uses depender de los datos que adquieras o crees, y las aplicaciones que accedern a esos datos.

    Usa las siguientes lneas como gua para determinar el formato que ms te interese:

  • 23 de 41

    - Si quieres que tus datos sean transferibles a otras aplicaciones, tales como Microsoft Excel, SigmaPlot u Origin, usa archivos de texto, porque ellos son los ms comunes y ms verstiles.

    - Si necesitas realizar accesos aleatorios para leer o escribir en un archivo, o si la velocidad y el espacio de disco son cruciales, usa entonces archivos binarios, ya que ellos son ms eficientes que los archivos de texto tanto en velocidad como en tamao.

    - Si necesitaras manipular registros complejos de datos o diferentes tipos de datos, usa archivos datalog porque son la mejor forma de almacenar datos, si slo vas a acceder a ellos desde LabVIEW.

    Para aplicaciones en las que slo quieras salvar los datos al final de un proceso, usa los VIs de alto nivel que encontrars en la opcin File I/O de la paleta de controles del diagrama de bloques.

    Usa los VIs de alto nivel cuando quieras salvar o recuperar los siguientes tipos de datos:

    - Caracteres en archivos de texto.

    - Lneas de texto en archivos de texto.

    - Arrays lineales o 2D de datos numricos de precisin simple en archivos de texto.

    - Arrays lineales o 2D de datos numricos de precisin simple o enteros de 16 bits en archivos binarios.

    Puedes ahorrar tiempo y esfuerzo usando los nodos de alto nivel. Estas rutinas estn diseadas sobre otros nodos de bajo nivel para sintetizar las operaciones ms comunes. Evita emplazar estos nodos de alto nivel en estructuras cclicas, porque realizarn las operaciones de apertura y cierre de archivos cada vez que se ejecute un ciclo.

    Figura 26. Ejemplo del uso de un nodo de alto nivel para salvar una tabla de datos en formato ASCII.

  • 24 de 41

    CREACIN DE INFORMES

    Usa los VIs que aparecen en la opcin Report Generation que encontrars en la paleta de controles del diagrama de bloques. Estos te permitirn imprimir y salvar informes que contienen informacin sobre el propio VI o sobre los datos que ste genera. Usa el nodo Easy Print VI Panel o Documentation VI para generar un informe bsico que contenga documentacin del VI. Usa el nodo Easy Text Report VI si quieres generar un informe que contenga datos generados por un VI. Usa el resto de los nodos para enriquecer tus informes.

    Usa los VI de Report Generation para realizar las siguientes tareas:

    - Incorporar texto, grficos, tablas o documentacin del VI a un informe.

    - Ajustar el tipo, tamao, estilo y color de las fuentes de texto.

    - Configurar la orientacin del informe: vertical u horizontal.

    - Definir membretes y textos al pie.

    - Ajustar mrgenes y tabulaciones.

    Figura 27. Cmo acceder a los nodos especficos para la generacin de informes.

    MEDIDA Y CONTROL

    Cuando usas un PC para automatizar un sistema de medida, no ests limitado al tipo de instrumento que puedas controlar. Puedes acoplar instrumentos con diferentes protocolos, tales como GPIB, serie, PXI e instrumentos modulares.

    Cuando uses PCs para controlar instrumentos, necesitas entender los siguientes aspectos acerca del instrumento:

    - El tipo de conector que acepta el instrumento.

    - El tipo de cable necesario.

  • 25 de 41

    - Las propiedades elctricas (niveles de las seales, aislamientos, y restricciones en la longitud del cable).

    - Los protocolos de comunicacin (comandos ASCII, comandos binarios, formato de los datos).

    - El tipo de drivers disponibles.

    INTERFAZ GPIB (General-Purpouse Instrument Bus)

    La mayora de los fabricantes de instrumentos, tanto de propsito general, como para aplicaciones ms especializadas, ofrecen la posibilidad de usar el protocolo GPIB para su control. Comnmente los instrumentos GPIB se usan como terminales de medida independientes, y las medidas suelen tomarse a mano. No obstante, puedes automatizar la adquisicin usando un PC para controlar el instrumento.

    Controladores, emisores y receptores Para determinar qu dispositivo tiene un control activo del bus, el protocolo GPIB distingue a los dispositivos entre controladores, emisores o receptores. Cada dispositivo tiene una direccin GPIB nica, que es un nmero entre 0 y 30. El controlador define los vnculos de comunicacin, responde a los dispositivos que requieren un servicio, enva comando GPIB, y pasa y recibe del bus. Los controladores marcan cundo un emisor tiene que hablar y poner datos en el bus. Los controladores deciden cundo un receptor debe leer datos del bus. Puedes hacer que varios receptores estn activos a la vez.

    El bus GPIB tiene 24 canales, que consisten en 8 lneas de datos, 5 lneas de gestin del bus (EOI, IFC, SRQ, ATN, REN), 3 lneas handshake (DAV, NRFD, NDAC), y 8 lneas de tierra. El bus GPIB usa un esquema de transferencia de datos asncrono con 8 bits en paralelo (=1 byte), que se transmiten secuencialmente. La velocidad de transferencia la impone el participante ms lento en la comunicacin. Debido a que la unidad de datos en este protocolo es un byte, los mensajes transferidos son codificados frecuentemente como cadenas de caracteres alfanumricos (ASCII).

    El bus GPIB permite velocidades de transferencia de hasta 1Mbytes/s, siempre que se respeten las siguientes especificaciones elctricas:

    - La separacin mxima entre dos dispositivos no debe ser mayor de 4 m, y la separacin media no debe superar los 2 metros.

    - La longitud mxima del cable no debe superar los 20 m.

    - El nmero de instrumentos conectados no debe ser mayor de 15, de los cuales slo dos tercios funcionan simultneamente.

    Si tu aplicacin necesita que se excedan estos lmites, tendrs que aadir hardware adicional para mejorar la calidad de las seales.

  • 26 de 41

    Nodos especficos Los nodos especficos los encontrars en la opcin Instrument I/OGPIB, en la barra de controles del diagrama de bloques. Bsicamente, las operaciones que realizars para comunicarte o adquirir datos de un instrumento a travs del puerto GPIB sern:

    - Configurar: configura el controlador. Normalmente el controlador tiene asignada por defecto la direccin 0. Los instrumentos suelen traer una direccin de fbrica que podrs cambiar usando el men del instrumento, o bien configurando un array de interruptores en alguna parte interna o externa del instrumento.

    - Escribir: abre el puerto, y enva un comando al instrumento a travs del bus. Los comandos son normalmente caracteres ASCII seguidos por algn carcter de control (escape) del tipo fin de lnea y/o retorno de carro. Encontrars estos caracteres en la barra de controles del diagrama de bloques para adjuntarlos a los comandos que quieras transmitir. Los comandos que acepta el instrumento suelen estar listados y comentados en sus manuales.

    - Leer: lee los datos volcados en el bus por el instrumento, si as se le solicit con un comando anterior. Tendrs que decirle el tamao de bytes que codifican los datos. Este dato no suele aparecer en los manuales, as que en muchas ocasiones te vers obligado a probar varios valores antes de encontrar el adecuado.

    Figura 28. Secuencia bsica en la comunicacin a travs de GPIB: configuracin, escritura y lectura.

    COMUNICACIN A TRAVS DEL PUERTO SERIE

    Los puertos serie permiten la transmisin de datos entre un PC y un perifrico, que puede ser un instrumento programable, u otro PC. En la comunicacin serie los bits se transmiten secuencialmente a travs de una sola lnea de transmisin, y a velocidad constante. Usa este mtodo cuando no necesites altas velocidades de transferencia o cuando tengas que transmitir datos a largas distancias. La mayora de los PCs tienen uno o ms puertos serie, de forma que no necesitars hardware extra.

  • 27 de 41

    Para las comunicaciones a travs del puerto serie tendrs que especificar cuatro parmetros: la velocidad de transmisin (en baudios), el nmero de bits que codifican un carcter, el sentido del bit de paridad, y el nmero de bits de parada.

    La velocidad de transmisin es una medida de lo rpido que se mueven los datos entre los instrumentos.

    Los bits de datos se transmiten en orden creciente de significacin. El bit menos significantivo es el primero en la cadena, y sta termina con el bit ms significativo. Para interpretar los bits de datos en un byte, debes leerlos de derecha a izquierda, y entender 1 como voltaje positivo, y 0 como voltaje negativo.

    El bit de paridad opcional se transmite al final de la cadena de bits que forman la palabra. El bit de paridad, si est presente, tambin sigue una lgica invertida. Este bit se incluye como test de errores en la transmisin. Puedes elegir entre paridad par o impar. Si eliges paridad par, el bit de paridad se ajusta de forma que la suma del nmero de 1s en la cadena de datos y el bit de paridad sea un entero par.

    La ltima parte de un paquete de informacin serie consiste en 1, 1.5 o 2 bits que se representan siempre como voltajes negativos. Una vez que termina la transmisin de un carcter, la lnea permanece en una condicin negativa. El siguiente carcter comienza con un voltaje positivo.

    Para una velocidad en baudios definida, puedes calcular la velocidad mxima de transmisin en caracteres por segundo, dividiendo la velocidad en baudios entre el nmero de caracteres en el paquete.

    Los siguientes ejemplos son los estndares ms recomendados para comunicacin a travs del puerto serie:

    - RS-232: este protocolo es el ms extendido, y se usa para conectar un ratn, una impresora o un mdem. Tambin se usa en instrumentacin industrial.

    - RS-422: este protocolo usa una seal elctrica diferencial, que lo diferencia del RS-232, que usa seales con referencia a tierra. La transmisin diferencial usa dos lneas para transmitir y recibir seales. Esto aporta una mayor inmunidad a la lnea de transmisin frente a ruidos (mejora la SNR), y permite transmisiones a mayores distancias que el RS-232.

    - RS-485: es una variacin del protocolo RS-422 que permite conectar hasta 32 dispositivos en un solo puerto. Puedes crear redes de dispositivos conectados a un solo puerto RS-485. La inmunidad frente al ruido y la capacidad de multiconexin resultan muy atractivas para aplicaciones industriales que requieran controlar y/o monitorizar un conjunto de dispositivos desde un solo PC.

    Normalmente encontrars las especificaciones de un instrumento para la comunicacin a travs del puerto serie, en el manual del fabricante.

  • 28 de 41

    Nodos especficos Los nodos especficos los encontrars en la opcin Instrument I/OSerial, en la barra de controles del diagrama de bloques. Bsicamente, las operaciones que realizars para comunicarte o adquirir datos de un instrumento a travs del puerto RS-232 sern:

    - Configurar: establece los parmetros de comunicacin para el puerto serie.

    - Escribir: abre el puerto y enva un comando al instrumento, bien para su ajuste o para solicitarle informacin. Los comandos son normalmente caracteres ASCII seguidos por algn carcter de control (escape) del tipo fin de lnea y/o retorno de carro. Encontrars estos caracteres en la barra de controles del diagrama de bloques para adjuntarlos a los comandos que quieras transmitir. Los comandos que acepta el instrumento suelen estar listados y comentados en sus manuales.

    - Leer: lee los datos enviados por el instrumento, si as se le solicit con un comando anterior. Tendrs que decirle el tamao de bytes que codifican los datos. Este dato puedes conseguirlo usando el nodo Byte Count que encontrars en la paleta de controles del diagrama de bloques. Debido a las limitaciones propias del protocolo, el tiempo de transferencia ser mayor cuanto mayor sea la informacin en juego y menor la velocidad. En ocasiones ser necesario introducir algn retraso entre las operaciones de escritura y lectura para evitar problemas en la comunicacin.

    - Cerrar: cierra el puerto. A diferencia del puerto GPIB, el puerto serie debe cerrarse una vez termines la comunicacin con el instrumento. Ten esto presente cuando trabajes con subVIs que incluyan comunicaciones a travs de este puerto.

    Figura 29. Ejemplo de la secuencia bsica de comunicacin a travs del puerto serie: configuracin, escritura, nmero de bytes y lectura.

    VISA

    LabVIEW ofrece un nuevo estndar para el control de instrumentos programables con el nombre VISA. VISA puede controlar puertos GPIB, serie, Ethernet, PXI y VXI. VISA es un concepto unificador de protocolos, que evita el uso de nodos diferentes segn el instrumento a controlar. El uso de estos nodos es similar a los especficos para cada protocolo. La configuracin de los

  • 29 de 41

    instrumentos est controlada por el programa Measurement & Automation Explorer (MAX), de forma que cada instrumento es un recurso al accedes seleccionndolo de una lista de dispositivos disponibles, en vez de haciendo referencia a su direccin GPIB, o puerto COM, en el caso de comunicaciones serie. LabVIEW ofrece un programa auxiliar para la comunicacin con instrumentos, que puede servirte para testar comandos, y configurar el puerto.

    OTROS DISPOSITIVOS I/O

    Podrs encontrar til usar una tarjeta sincronizadora (timer/counter board) para coordinar tu sistema de control de instrumentacin y/o adquisicin de datos.

    En algunas aplicaciones en las que el tiempo juega un papel crucial, no podrs usar la temporizacin suministrada por software, ya que sta est fuertemente influenciada por la velocidad de procesado del programa, y puede variar entre ciclos. En estos casos es mejor que uses hardware externo que no use los recursos temporales del PC.

    Una solucin es usar una tarjeta sincronizadora unida a un bloque de conectores (BNC, y de lneas de transmisin), para generar y/o contar pulsos TTL simples, o trenes de pulsos TTL. Estos dispositivos pueden usarse tanto en aplicaciones sncronas, como asncronas. Tendrs que configurar manualmente el tipo de bloque de conectores asociado a la tarjeta sincronizadora. Esto podrs hacerlo a travs del programa MAX suministrado con LabVIEW

    La base de conectores te permitir, segn modelo, seleccionar la base de tiempo, lanzar manualmente pulsos simples, e incluso usar un encoder para simular movimiento. Tambin segn modelo, tendrs disponible una serie de lneas digitales que podrs agrupar para crear direcciones y/o palabras.

    Figura 30. Bloque de conectores.

    Los nodos especficos para el control de la tarjeta sincronizadora no estn disponibles por defecto. Tendrs que usar el CD suministrado por el fabricante para habilitarlos. Una vez instalados, los encontrars en la opcin NI Measurements Data Acquisition.

  • 30 de 41

    Figura 31. Ejemplo de un VI con nodos para controlar una tarjeta sincronizadora.

    PROGRAMACIN AVANZADA PROGRAMACIN PROCEDIMENTAL

    La programacin procedimental se basa en el uso de rutinas o funciones que aglutinan operaciones que sern llamadas desde un programa principal o programa gestor.

    SUBVIs

    Puedes acudir al uso de subVIs cuando tengas que realizar una operacin frecuentemente. Esto te permitir reducir la complejidad del diagrama de bloques. El subVI se ejecutar como cualquier otro nodo presente en el diagrama de bloques. Por defecto, el subVI correr internamente sin mostrar su panel frontal. Puedes, no obstante, cambiar este comportamiento en el men de propiedades que encontrars en VI Properties de la opcin File de la barra de men.

    Por defecto, cualquier VI puede comportarse como subVI, sin ms que insertarlo en el diagrama de bloques usando la opcin Select a VI de la paleta de funciones. Puedes crear subVIs a partir del cdigo presente en un diagrama de bloques. Para ello, selecciona la porcin del cdigo, y haz clic en Create SubVI que encontrars en la opcin Edit de la barra de men.

    Conviene respetar ciertos criterios a la hora de crear un subVI:

    - Procura aadir terminales para la gestin de errores.

    - Elige patrones de conectores que tengan una distribucin adecuada para los terminales de entrada y salida.

    - Siempre que sea posible, ubica los terminales de entrada a la izquierda (controles) y los de salida a la derecha (indicadores).

    - Si vas a crear una familia de subVIs que comparten seales, procura disear los patrones de conectores para que mantengan la alineacin de las conexiones.

  • 31 de 41

    -

    LLAMADAS DINMICAS A UN VI

    Puedes llamar y/o cargar un VI dinmicamente en vez de usar vnculos estticos como en el caso anterior. Un vnculo esttico a un subVI hace que ste se cargue al mismo tiempo que el VI principal. Por el contrario, una llamada dinmica hace que el subVI no se cargue hasta que el VI principal no lo necesite. Si has diseado un VI con un diagrama de bloques muy complejo, puedes ahorrar tiempo de carga y memoria usando este tipo de programacin. Adems, al cerrar la llamada liberas la memoria empleada en su ejecucin.

    Usa los nodos que encontrars en la opcin Application Control de la paleta de funciones. Habitualmente, la secuencia que usars para llamar a un subVI de forma dinmica sern:

    Open VI Reference: usa como entrada bsica la direccin del subVI al que quieres llamar.

    Figura 32. Sintaxis del nodo Open VI Reference.

    Call by Reference Node: este nodo activa la ejecucin del VI. Una vez realizadas las conexiones adecuadas, el nodo conoce el patrn de conectores del subVI, y lo muestra insertado en el icono. Los terminales de este patrn de conectores estn habilitados para introducir o extraer datos en o del panel frontal del subVI.

    Figura 33. Sintaxis del nodo Call by Reference Node.

    Close Reference: cierra la llamada y libera la memoria empleada.

    Figura 34. Sintaxis del nodo Close Reference.

  • 32 de 41

    CONFIGURACIN PROGRAMTICA DE UN VI

    Durante la ejecucin puedes configurar y conocer las propiedades de un VI, y de los objetos que lo constituyen. Esto te permitir modificar el comportamiento de los diferentes elementos en funcin de los resultados que se generen durante el funcionamiento. Usa el nodo Property Node que encontrars en la opcin Application Control de la paleta de funciones. Por defecto, el nodo no est vinculado a ningn objeto. Tendrs que usar su men desplegable para realizar tal vnculo.

    Figura 35. Sintaxis del nodo Property Node.

    Puedes crear tambin este tipo de nodos haciendo uso del men desplegable del objeto. Para ello, haz clic con el botn derecho del ratn sobre el control o indicador de inters, y selecciona CreateProperty Node. De esta forma, el nodo estar vinculado al objeto desde su creacin.

    Figura 36. Ejemplo ilustrativo del empleo de un nodo de propiedad para enfatizar un indicador.

    VARIABLES LOCALES Y GLOBALES

    Las variables locales y globales son conceptos avanzados de LabVIEW. El uso de estas variables dificulta el seguimiento de la programacin de un diagrama de bloques, as que salas con cuidado. El uso incorrecto de estas variables puede dar lugar a un comportamiento inesperado del VI. Su uso excesivo, adems, ralentizar la ejecucin del VI.

    Puedes crear variables locales para los controles e indicadores usando bien la paleta de funciones, o el men desplegable del objeto. Usa las variables locales para acceder a objetos del panel frontal desde ms de una localizacin en un VI, y pasar datos entre estructuras del diagrama de bloques que no puedas cablear. En ocasiones puede ser recomendable usar

  • 33 de 41

    indicadores, o registros de desplazamiento, como alternativa a las variables locales, si lo que quieres es introducir recursividad en el VI.

    Figura 37. Ejemplo del uso de variables locales.

    Usa variables globales para acceder y compartir datos entre varios VIs que corren simultneamente. Las variables globales se generan en el interior de un tipo especial de VI que slo dispone del panel frontal. Aade controles e indicadores a este panel frontal para definir los tipos de datos de las variables globales que quieres que contenga. En la prctica, este panel frontal trabaja como un contenedor de variables a las que podrs acceder y actualizar desde mltiples VIs. Puedes usar variables globales, por ejemplo, para definir las variables de inicializacin de un sistema.

    Figura 38. Ejemplo del uso de variables globales.

    TRABAJAR CON PROGRAMAS EXTERNOS

    LabVIEW proporciona acceso a otras aplicaciones basadas en Windows usando tecnologas .NET y ActiveX. Puedes usar LabVIEW como cliente .NET para acceder a los objetos, propiedades y mtodos asociados con servidores .NET. Conviene saber, no obstante, que LabVIEW no es un servidor .NET. Puedes usar LabVIEW, adems, como cliente ActiveX para

  • 34 de 41

    acceder a objetos, propiedades, mtodos y eventos asociados con otras aplicaciones ActiveX. LabVIEW tambin puede funcionar como servidor ActiveX, de forma que otras aplicaciones puedan acceder a los objetos, propiedades y mtodos de LabVIEW.

    Figura 39. Ejemplo de un VI que arranca la aplicacin Microsoft Excel.

    GESTIN DE ERRORES

    Cada error generado por LabVIEW tiene un cdigo numrico y un mensaje asociado. Por defecto, cuando un VI est en ejecucin y se genera un error, LabVIEW reacciona suspendiendo la ejecucin, enfatizando el subVI o nodo implicado en el error, y mostrando una ventana de error. Para ignorar cualquier error que se genere, conecta el terminal de salida de error (Error Out) del subVI o nodo de funcin, a la entrada de error (Error In) del nodo Clear Errors, que encontrars en la paleta de funciones, en la opcin Time & Dialog.

    Aunque confes en el buen funcionamiento de un VI que hayas creado, no puedes predecir siempre todos los problemas que puede encontrar otro usuario. Sin un mecanismo para comprobar los errores, slo podrs saber que un VI no trabaja adecuadamente, pero no el motivo por el cual esto ocurre.

    Incluye herramientas de gestin de errores en tus VIs, especialmente si ste va a realizar operaciones de entrada/salida, como por ejemplo, gestin de archivos o comunicaciones con instrumentos.

    Gestionar los errores en los VIs puede ayudarte a identificar los siguientes problemas:

    - comunicaciones inicializadas incorrectamente, o escritura de datos incorrectos en un dispositivo.

    - fallos en un dispositivo externo.

    - cambios en la ubicacin o funcionalidad de un VI o una librera.

    Como se ha comentado anteriormente, LabVIEW suspende la ejecucin de un VI cuando se genera un error. Sin embargo, puedes cambiar este comportamiento. Por ejemplo, si

  • 35 de 41

    por alguna causa el tiempo de espera en la comunicacin de un instrumento sobrepasa un cierto valor definido (Time Out), se generar un error que detendr el VI. Puedes evitar esta reaccin y continuar la ejecucin del VI, o reintentar el establecimiento de la comunicacin tras un cierto tiempo, aadiendo los nodos de funciones apropiados en el diagrama de bloques.

    Cuando un VI est funcionando, LabVIEW comprueba los errores en cada nodo de ejecucin. Si LabVIEW no encuentra ningn error el nodo se ejecuta normalmente. Si LabVIEW detecta un error, el nodo se lo pasa al siguiente, que a su vez hace lo mismo con los siguientes. LabVIEW informa del error al final del flujo de ejecucin.

    Figura 40. Ilustracin del empleo de los nodos para la gestin de errores.

    MULTITAREA

    Por multitarea se entiende la capacidad que tiene un sistema operativo para alternar rpidamente entre diferentes tareas, dando la apariencia de que stas se ejecutan de forma simultnea. Por ejemplo, en Windows, una tarea generalmente es una aplicacin como Microsoft Word, Excel, o LabVIEW. Cada aplicacin corre durante un periodo corto de tiempo antes de pasar a la siguiente. A diferencia de Windows 3.1, Windows 2000/NT/9x/XP usa una tcnica conocida como multitarea preventiva, donde el sistema operativo puede tomar el control del procesador en cualquier instante, con independencia del estado de la aplicacin actual en ejecucin.

    Multihilo extiende la idea de la multitarea al interior de las aplicaciones, de forma que operaciones especficas dentro de una aplicacin, pueden ser subdivididas en hilos individuales, cada uno de ellos corriendo, tericamente, en paralelo. En este caso, el sistema operativo puede dividir el tiempo de procesado no slo entre aplicaciones diferentes, sino tambin entre cada hilo dentro de una aplicacin. Por ejemplo, en un programa multihilo en LabVIEW, la aplicacin puede dividirse en tres hilos: uno para la interfaz de usuario, otro para la adquisicin de datos, y finalmente otro para el control de un instrumento. Es importante notar que cada uno de ellos puede tener una prioridad de ejecucin diferente y operar de forma independiente.

    Finalmente, multiproceso se refiere al caso en que dos o ms procesadores corran en un ordenador, cada uno controlando hilos separados. As, una aplicacin con un solo hilo puede

  • 36 de 41

    correr slo en un procesador cada vez, mientras una aplicacin multihilo puede tener dos hilos separados ejecutndose simultneamente en dos procesadores. Por ejemplo, en LabVIEW, el hilo de adquisicin de datos podra correr en un procesador, mientras el hilo de la interfaz de usuario podra hacerlo en otro.

    LabVIEW usa multitarea preventiva en aquellos sistemas operativos que ofrecen esta caracterstica. LabVIEW usa tambin multitarea cooperativa cuando es necesario (por ejemplo, en aplicaciones que corren extensamente en paralelo).

    Figura 41. Ejemplo ilustrativo de las capacidades multitarea de LabVIEW.

    DISTRIBUCIN DE APLICACIONES (EJECUTABLES)

    Si quieres distribuir VIs para otros ordenadores o usuarios, puedes considerar el incluir el cdigo fuente del diagrama de bloques para que los usuarios puedan editarlo, o puedes ocultarlo, o incluso eliminarlo. En el caso que desees distribuir VIs incluyendo el cdigo fuente del diagrama de bloques, puedes habilitar una proteccin bajo clave para acceder a l.

    Si lo que quieres es distribuir VIs que puedan ser usados por otros desarrolladores en otros lenguajes de programacin, tienes la opcin de construir aplicaciones ejecutables o libreras compartidas. Los ejecutables y las libreras compartidas son apropiadas cuando no esperes, o no desees, que los usuarios editen el VI.

    Nota: Slo puedes crear ejecutables y libreras compartidas en la versin de LabVIEW Professional Development System, o usando el programa Application Builder, que no est disponible en las versiones LabVIEW Base Package ni LabVIEW Full Development System, pero que puede adquirirse de forma independiente.

    Si lo que deseas es distribuir VIs eliminando el cdigo fuente del diagrama de bloques, para que as los usuarios no puedan editarlo, usa la opcin Save UIT Options al salvar el VI. De esta forma, reducirs, adems, el tamao del archivo. Si usas esta opcin, los usuarios no podrn correr el VI en otra plataforma, ni actualizarlo a versiones futuras de LabVIEW.

    Nota: Si usas la opcin Save UIT Options para guardar un VI, hazlo en una carpeta diferente, o usa un nombre diferente, de lo contrario perders el cdigo fuente.

  • 37 de 41

    Para usar el programa Application Builder para crear tus ejecutables, instaladores, o libreras compartidas (dll), selecciona Build Application or Shared Library (DLL) en la opcin Tools de la barra de men.

    Las libreras compartidas son tiles cuando desees compartir la funcionalidad de tus VIs con otros desarrolladores. Si usas libreras compartidas, permites que otros lenguajes de programacin puedan acceder al cdigo desarrollado en LabVIEW.

    Figura 42. Ejemplo de un VI corriendo como una aplicacin stand-alone (ejecutable).

    LLAMADA A CDIGO EXTERNO

    Estas herramientas de programacin son muy avanzadas, y quizs no sean necesarias en la mayora de las aplicaciones prcticas de control de instrumentacin y adquisicin de datos. Puedes hacer llamadas a la mayora de las libreras dinmicas de Windows (archivos dll), as como a cdigo C, para ejecutarlo en el entorno de LabVIEW. Podrs comprobar que algunos de los nodos disponibles en la paleta de funciones estn basados en llamadas a libreras dinmicas (p.ej., nodos de control de entradas de usuario).

    Figura 43. Algunos nodos incorporados en LabVIEW se apoyan en libreras dll, como es el caso de los nodos de entradas de usuario.

  • 38 de 41

    TCNICAS DE DEPURACIN

    Si un VI no est daado, pero genera datos inesperados, puedes usar las siguientes tcnicas para identificar y corregir problemas:

    - Usa los terminales Error In y Error Out de los nodos para detectar e identificar dnde y qu tipo de error se ha producido.

    - Para ver la lista de errores en un VI, selecciona Show Error List en la opcin Windows de la barra de men, o haz clic en el botn de ejecucin de la barra de herramientas. Si el VI tiene errores, este botn presentar una flecha rota de color gris, en vez de una flecha entera de color blanco.

    - Si haces triple clic sobre un cable con el cursor operativo, se enfatizar su camino y podrs asegurarte de que el cable conecta los terminales apropiados.

    - Usa la ayuda de contexto para comprobar los valores por defecto de cada nodo de funcin y cada subVI en el diagrama de bloques.

    - Usa la herramienta Search, que encontrars tanto en la paleta de controles como la paleta de funciones, para buscar subVIs, texto, y otros objetos en un VI.

    - Usa Show VI Hierarchy, que encontrars en la opcin Browse de la barra de men, para encontrar subVIs desconectados. Al contrario que los nodos de funciones, los subVIs no siempre generan errores, a menos que el subVI requiera al menos una entrada. Si errneamente dispones un subVI en el diagrama de bloques, ste se ejecutar cuando lo haga el diagrama de bloques. Consecuentemente, el VI puede realizar tener un comportamiento extrao.

    - Usa el botn con la bombilla de la barra de herramientas para seguir el flujo de ejecucin del diagrama de bloques. Esta opcin es muy til para detectar fallos en la secuencia de ejecucin, y detectar nodos generadores de fallos. Si abres un subVI durante la ejecucin, y esta opcin est activada, tambin podrs seguir el flujo en el diagrama de bloques del subVI.

    - Usa los botones de ejecucin paso-a-paso para ver cada accin del VI en el diagrama de bloques.

    - Usa el cursor de muestreo de la paleta de herramientas para tomar valores intermedios en el diagrama de bloques, y para comprobar los datos de error de los nodos de funcin y de los subVIs, principalmente si en el VI se realizan operaciones de entrada/salida.

    - Usa el cursor de parada para detener temporalmente la ejecucin, y as pasar al modo paso-a-paso, o introducir puntos de muestreo.

    - Suspende la ejecucin de un subVI para editar los valores de los controles e indicadores, para controlar el nmero de veces que se ejecuta, o para regresar al comienzo de la ejecucin del subVI.

    - Si el diseo del VI te lo permite, extrae mdulos de cdigo del diagrama de bloques para ejecutarlos individualmente y comprobar su correcto funcionamiento.

  • 39 de 41

    - Comprueba que los datos que genera un nodo de funcin o un subVI no son indefinidos. Esto pasa a menudo con los valores numricos. Si, por ejemplo, un nmero es dividido por 0, el resultado ser Inf (infinito), mientras que el nodo o subVI siguientes esperan un valor numrico.

    - Si la velocidad de ejecucin es menor que la esperada, comprueba que no est activado el botn de la bombilla en alguno de los subVIs del diagrama de bloques. Comprueba adems si has cerrado las ventanas de los subVIs implicados en el VI, pues su presencia afecta a la ejecucin del VI.

    - Comprueba la representacin de los controles e indicadores para ver si hay desbordamiento. Esto puede ocurrir al convertir nmeros en coma flotante en enteros, o enteros en pequeos enteros. Por ejemplo, puedes tener desbordamiento si conectas un entero de 16 bits a un nodo de funcin que slo acepta enteros de 8 bits.

    - Verifica si algn bucle For ejecuta 0 iteraciones y produce arrays vacos.

    - Comprueba que has inicializado los registros de desplazamiento, a menos que intencionadamente quieras usar el valor generado en una ejecucin del bucle, en la siguiente ejecucin.

    - Comprueba el orden de los elementos contenidos en un cluster. LabVIEW detecta errores entre tipos de datos, pero si ste es el mismo para varios elementos del cluster, LabVIEW interpretar que no hay error en el cluster.

    - Comprueba el orden de ejecucin de los nodos.

    - Verifica que el VI no contiene subVIs ocultos. Puede que inadvertidamente hayas ocultado un subVI tras otro nodo, o que lo hayas hecho al reducir el tamao de una estructura.

    Figura 44. Activando el botn de la bombilla, puedes seguir la ejecucin de un VI en el diagrama de bloques.

  • 40 de 41

    CONTROL REMOTO

    Usa el servidor Web de LabVIEW para crear documentos HTML, publicar imgenes de paneles frontales, e incluir VIs en una pgina Web. Puedes controlar el acceso de los navegadores a tus VIs, decidiendo cules son accesibles y cules no.

    Accede a las opciones del servidor Web de LabVIEW a travs de la opcin Tools de la barra de men, seleccionando Options. All podrs:

    - definir el directorio raz,

    - habilitar el servidor Web,

    - controlar el acceso de los navegadores a los paneles frontales de tus VIs,

    - configurar qu paneles frontales de tus VIs estarn visibles en la Web.

    Antes de publicar VIs en la Web, debes habilitar el servidor Web en la pgina Web Server: Configuration, bien a travs de ToolsOptions, o a travs de ToolsWeb Publishing ToolOptions. Para que aparezca publicado, el VI debe estar abierto. Para crear un documento HTML que muestre el panel frontal de un VI, configura y completa las opciones que encontrars en ToolsWeb Publishing Tool. Podrs:

    - crear un documento HTML,

    - incluir en un documento HTML imgenes estticas o animadas del panel frontal de un VI,

    - incluir a VI que los clientes puedan ver y controlar remotamente,

    - aadir texto de cabecera y al pie de los paneles frontales publicados,

    - aadir un borde alrededor de un panel frontal,

    - previsualizar el documento HTML,

    - salvar el documento,

    - habilitar el servidor Web para publicar documentos HTML e imgenes de paneles frontales en la Web.

  • 41 de 41

    Figura 45. Acceso remoto al panel frontal de un VI usando un navegador.

    Puedes tambin ver y CONTROLAR el panel frontal de un VI remotamente, bien desde LabVIEW, o desde un navegador Web. Cuando un cliente abre el panel frontal remotamente, el servidor Web enva el panel frontal al cliente, pero el diagrama de bloques y los subVIs incluidos en l, permanecen en el servidor. El cliente puede interactuar con el panel frontal de forma similar a como lo hara si el VI estuviera alojado en su ordenador, pero el diagrama de bloques y los subVIs incluidos en l, se ejecutan en el servidor. Usa esta herramienta para publicar paneles frontales o para controlar de forma rpida y fcil, aplicaciones remotas de forma segura.

    Si quieres ver remotamente el panel frontal de un VI usando LabVIEW como cliente, selecciona OperateConnect to Remote Panel, y configura la ventana de dilogo para especificar la direccin del servidor de Internet y el VI que deseas visualizar. Por defecto, el panel frontal se muestra en modo pasivo. Puedes pasar a modo activo marcando la opcin Request Control, o haciendo clic con el botn derecho en cualquier punto del panel frontal, y selecciona Request Control en el men desplegable.

    Un mensaje te indicar si eres el nico cliente que accede al panel frontal de un VI. Si otro cliente est controlando el panel frontal en el momento de tu conexin, el servidor quedar en modo de espera, hasta sobrepasar un tiempo lmite, o hasta que t lo decidas.

    Figura 46. Acceso remoto al panel frontal de un VI usando Connect To Remote Panel.