0% found this document useful (1 vote)
559 views

LabVIEW Core 1 Course Manual

LabviewLabviewLabview

Uploaded by

Ricardo Martinez
Copyright
© © All Rights Reserved
Available Formats
Download as PDF or read online on Scribd
0% found this document useful (1 vote)
559 views

LabVIEW Core 1 Course Manual

LabviewLabviewLabview

Uploaded by

Ricardo Martinez
Copyright
© © All Rights Reserved
Available Formats
Download as PDF or read online on Scribd
You are on page 1/ 243
LabVIEW™ Core 1 Manual de Curso PRETO GOO VU OU UU UU UO UU UO UE (NATIONAL ni.com/training INSTRUMENTS LabVIEW™ Core 1 Manual de Curso Version del software actual 2012 Edicién de Agosto 2012 Numero de parte 325290D-0154 Copyright {© 1993-2012 National Instruments. Tos los derechos reservados, En irtud de las leyes de copyright y de proteccidn de los derechos de autor, esta publicacién no puede reproducirse ni eansmitirs en ninguna forma, eleetrénica o mecinica, inluidas las fotocopias, arabacién, almacenamiento en un sistema de recuperacion d informacién, o traduccign, en su totaldad o en parte, sin el consentimiento previo por escrito de National Instruments Coeporstion "National Instruments respeta los derechos de propieded intelectual de otros, y solictamos @ nuestros wsuaries Bl software de NI estéprotegide por el derecho de autor y as normas de la propiedad intelectual. Aunque utlizarse para reproducie software w otto material perteneciente a otros, el Software de NI slo pod uilzarse para ceproduit ‘material que pueda reproducir conforme a fos términos de cualquier liceneiaaplicable u otra rettici6n legal oftware de NI pueds Conirato de licencia de usvari final y avisos legales a terceros EE eontrato de licencia de usuario final EULA’) y avisos legales a tereeros se pue + Los avisos se localizan en los drectorios \_Legal Information y + Contato de licencia de usuario final se localiza en el directorio \ Shared \Mb! Legal \License, + Revise \_Legal mnfarmat ion. txt para més informacién legal sobre los instaladores desarollados con productos de NI Marcas comerciales CVI, LabVIEW, National Instruments, NI, ni.com, of logotipo corporativo de National instruments, y el logotip ‘mateas propiedad de National Instruments Corporation. Por favor, eonsulte Trademark Informationen la pgina n:\. com trademarks pata informacién sobre otras marcas de National Instruments “The mark LabWindows is used under a license from Microsoft Corporation. Windows is a registered trademark of Mi Corporation in the United States and other countries. Otros nombres de productos y de empresas mencionados ‘nombres comerciales de sus respectivas empresas. Los miembros del National Instruments Alliance Partner Program son entidades comerciales independientes Instruments y no tienen relacidn de agencia,asociacién nl empresa conjunta con National Instruments Patentes Para oblenerinformacién sobre las patente que protegen los productos o la teenologfa de National Insiruments, consul apartado: Help»Patents en su software, el archive patent's. txt en el soporte del mismo, o el Aviso sobre las Patentes de National Instruments (National Insirumtonts Patent Notice) enn .com/patents Informacién del producto y soporte técnico mundial Oficinas internacionales Viste ni. com/niglobal para acceder a las paginas web de las oficinas internacionales, ls cuales incluyen informacion setvalizade de contacto, teléfanos de soporte tdenico, diecciones de email y eventos actuales. Oficinas centrales de National Instruments Corporation 11500 North Mopae Expressway Austin, Texas 78759-3504 USA Tel: 512.683 0100 Para obtener informacidin aicional de soporte, consute el apéndice Jnformctsdictonuly Recursos. Para realizar comentarios a "ational instrameats sabe la documentacién, cansule la pagina web de National Instruments Web ni .com/inZo e intraduzca cl cédigo de informacion Eeedback Contenido Guia del estudiante Certificacién de NI Descripcién del cUrS0.....enm Lo que necesita para empezar Instalacién del software del curso Objetivos del curso ... Convenciones del curso 7 ROOR> Leccion 1 Explorando LabVIEW {Qué es LabVIEW?..... Explorador de proyectos... Partes de un VI... Panel frontal Diagrama de bloques Busqueda de controles, Vis y funcione: Seleccién de una herramienta Flujo de datos. Creacién de un VI simple . rmommoow> Leccién 2 Resolucién de problemas y depuracion de Vis A. Corteccién de VIs rot . B. Técnicas de depuracién. C. Datos sin definir o inespetados D. Manejo de Errores. Lecci6n 3 Implementacion de un VI Panel frontal... ‘Tipos de datos de LabVIEW Documentacién de cédigo Bucles While Bucles For.. : ‘Temporizacién de Vis... = Retroalimentacién de datos en los bucles Graficando datos — Waveform Chart. Estructuras Case. rrommoow> vi vii Vili viii Contenido Leccién 4 Desarrollo de aplicaciones modulares A. Comprensién de la modularidad B. Creacién del panel de iconos y conectores C. Uso de subVIs. Leccion 5 Creando y aprovechando estructuras de datos A. Arrays. B. Punciones de array comune: C. Polimorfismo D. Autoindexado... E. Clusters -14 F._ Definiciones tipo 19 Lecci6n 6 Administrando archivos y recursos hardware A. Entendiendo ie aie one co . 6-2 B. BIS de ficheros a 6-4 . Adquiriendo mediciones con sistema DAQ. a 6-7 D. Controlando Instrumentos senensennsennnessnnnnsees OTT Leccion 7 Usando algoritmos de maquinas de estado y secuenciales A. Progtamacién secuencial .... . eee B. Programacién de estado conten seen Do C. Maquinas de estados..... fo TA Leccion 8 Resolviendo desafios de flujo de datos con variables A. Comunicacién entre bucles paralelos B. Escribiendo a controles y leyendo de indicadores... C. Variables D. Condiciones de carrera. Apéndice A Informacién Adicional y Recursos Glosario Guia del estudiante Gracias por comprar el paquete de curso LabVIEW Core J. Podré empezar a desarrollar una aplicacién poco después de completar este curso. EI manual del curso y el software adjunto se utilizan en el curso practico de tres dias LabVIEW Core 1 Puede aplicar la adquisicién completa de este paquete de curso a la cuota de registro correspondiente del curso si se inscribe antes de 90 dias desde la compra del paquete. Visite ni. com/ training para consultar en linea la programacién, el contenido, los centros de formacién y la inscripcién en la clase del curso. A. Certificacién de NI El curso LabVIEW Core J forma parte de una serie de cursos disefiados para dominar LabVIEW y ayudarle a prepararse para los examenes de Desarrollador Asociado Certificado de LabVIEW de NI. La siguiente ilustracién muestra los cursos que forman parte de fa serie de formacién de LabVIEW. Consulte ni . com/training para obtener informacién adicional acerca de la certificacion de NI. New User Experionced User ‘Advanced User Courses LabVIEW Cove 1° Managing Sattare Laoview Cove 2° Engineering in LabVIEW LabVIEW Connectivily Advanced Architectures Object-Oriented Design seen and Programming i in LABVIEW certifications LabVIEW Performance Coniiod LabVIEW Ceriteatawvien Ls) Associate Developer Exam ‘Dovoioper Exam other Courses LabVIEW instrument Control, LabVIEW RealTime 1 LabVIEW Real-Time 2 Labview FPGA, LabVIEW DA0 ang Signal Conditioning Modular Instruments Series Core outs are stony recommended o vane maximum procul Gah when using L=DVIEWS © National instrumenis| Gua dot estusiante B. Descripcién del curso El curso LabVIEW Core / le ensefia conceptos, técnicas, caracteristicas, VIs y funciones de programacién de LabVIEW que puede utilizar para crear aplicaciones de prueba y medicién, adquisicién de datos, control de instrumentos, registro de datos, andlisis de mediciones y generacién de informes. Este curso supone que esté familiarizado con Windows y que tiene experiencia en escribir algoritmos en forma de diagramas de flujo o diagramas de bloque. Los manuales de ejercicios y del curso estén divididos en lecciones, descritas de este modo. Enel manual del curso, cada leecién consta de fo siguiente: + Una introduccién que deseribe el objetivo de la leccién y lo que aprender + Una descripeidn de los temas de la leceién + Uncuestionario de resumen que prueba y esboza conceptos y conocimientos importantes ensefiados en la leccién En el manual de ejercicios, cada leccién consta de lo siguiente: + Un conjunto de ejercicios para reforzar esos temas + Algunas lecciones incluyen secciones de ejercicios opcionales y de retos 0 un conjunto de ejercicios adicionales para realizar si el tiempo lo permite. ‘E\ —Nota Para ver actualizaciones y correcciones det manual de ejercicios y del curso, consulte ni. com/ info y escriba el Cédigo de Informacién Core? Varios ejercicios usan uno de los siguientes productos hardware de National Instruments: + Un dispositivo multifuncién de adquisicion de datos (DAQ, data acquisition) conectado a un BNC-2120 que contiene un sensor de temperatura, un generador de funciones y LEDs + Una interfaz GPIB conectada a un Simulador de instrumentos de NI Aunque no disponga de este hardware, puede realizar los ejercicios. Se ofrecen otras instrucciones para realizar los ejercicios sin hardware. También puede sustituir el hardware mencionado anteriormente por otto diferente. Por ejemplo, puede utilizar un instrumento GPIB en lugar del Simulador de instrumentos de NI u otro dispositive DAQ de National Instruments conectado a un origen de sefial, como un generador de funciones. Manual de Corso LabviEW C. Lo que necesita para empezar Lecturas recomendadas E] material de lectura recomendado garantiza que todos los alumnos tengan un conocimiento minimo de las teorias y conceptos clave relacionados con el curso LabVIEW Core 1. Para obtener el maximo rendimiento de este curso, complete todo el material de lectura recomendado Para acceder a cada uno del material de lectura recomendado, consulte ni. com/ info y escriba el Cédigo de Informacién que corresponda a cada tema: LabVIEW Core | - El método de desarrolio de software (Codigo de Informacion: SoftDev) 1 Introduccién a la adguisicién de datos (Cédigo de Informacién: DAQ) (Tutorial de control de instrumentos GPIB (Cédigo de Informacién: GPIB) Material del curso ‘Antes de empezar este curso, asegiirese de tener todos estos elementos C Ordenador con Windows 7/VistaXP 1 Dispositive DAQ multifuncién configurado como Dev1 utilizando Measurement & Automation Explorer (MAX) BNC 2120, conectores y cable Interfaz GPIB Simulador de instrumentos de NI y alimentacién eléctrica Full o Professional Development System 2012 0 posterior de LabVIEW DAQmx 9.5.5 0 posterior ‘NI-488.2 3.0.2 0 posterior oooundmcunohmUmcDnLUmO NI VISA 5.2 0 posterior © Unable GPIB © National insirurnants i Gura del estusiante (© Ni Instrument Simulator Wizard instalado desde el CD de software de NI Instrument Simulator CD del curso LabVIEW Core 1, que se instala en las siguientes carpetas: Deseripeién Carpeta para guardar VIs creados durante el curso y para completar ciertos ejercicios de éste; también incluye subVIs necesarios para algunos ejercicios y un archivo comprimido (NI Instrument Simulator .zip) que contiene el controlador de instrumentos de LabVIEW para el Simulador de instrumentos de NI Solutions Contiene las soluciones para todos los ejercicios del curso D. Instalacion del software del curso ‘Complete estos pasos para instalar el software del curso, I. Inserte el CD del curso en el ordenador. Apareceran los cuadros de didlogo de LabVIEW Core 1 Course Setup. 2. Haga clic en Install the course materials. 3. Si Jas instrueciones en la pantalla para completar la instalacién y configuracién. Los archivos de ejercicios se encuentran en la carpeta \LabVIEW Core 1\. YEA Nota _Los nombres de carpetas entre corchetes angulares, como , hacen referencia a carpetas del directorio raiz de su ordenador. E. Objetivos del curso Este curso le prepara para hacer lo siguiente: + Comprender los paneles frontales, los diagramas funcionales, los iconos y los paneles conectores + Usar las estructuras de programacién y los tipos de datos existentes en LabVIEW + Usar varias técnicas de edicién y de depuracién + Crear y guardar VI para poder utilizarlos como subV1 + Mostar y registrar datos + Crear aplicaciones que utilicen dispositivos DAQ Crear aplicaciones que usen instrumentos de puerto serie y GPIB Manual da Curso LabVIEW Core 1 Este curso no describe lo siguiente: + Cada VI, funcién u objeto integrado; consulte la Ayuda de LabVIEW para obtener informacion adicional acerca de las funciones de LabVIEW no descritas en este curso. + Teoria analogica a digital (A/D) + Funcionamiento det bus GPIB + Desarrollar un controlador de instrumento + Desarrollar una aplicacién completa para cualquier estudiante de la clase; consulte el ‘NI Example Finder seleccionando Help»Find Examples, para ver ejemplos de Vis que puede utilizar e incorporar en los VIs que cree F. Convenciones del curso Las siguientes convenciones aparecen en este manual del curso: » El simbolo » le guia por elementos de meni anidados y opoiones de cuadros de didlogo a una accién final. La secuencia Tools»Instrumentation» Find Instrument Drivers le guia a desplegar ment, Tools, seleccionar Instrumentation, y finalmente seleccionar la opeién Find Instrument Drivers g Este icono indica un consejo, que le alerta de recomendaciones, a Este icono indica una nota, que le alerta de informacién importante. a Este icono indica una precaucién, para que tome precauciones y evite lesiones, pérdida de datos o una caida del sistema negrita Eltexto en negrita indica que debe seleccionar el software o hacer clic en él como elementos de ment y opciones de cuadro de didlogo. El texto en negrita denota también las secciones de los cuadros de didlogo y etiquetas de hardware. cursiva El texto en cursiva indica variables, énfasis, una remision o una introduccién a un concepto clave. El texto en cursiva también indica texto que es un pardmetro de sustitucién para una palabra o un valor gue debe proporcionar. monospace El texto con esta fuente indica texto o caracteres que debe escribir con teclado, secciones de cédigo, ejemplos de programacién y ejemplos de sintaxis. Esta fuente también se utiliza para los nombres propios de unidades de disco, rutas, directorios, programas, subprogramas, subrutinas, nombres de dispositivos, funciones, operaciones, variables, nombres de archivos y extensiones. @ National instuments | ic Guia del estudiante monospace bold EI texto con esta fuente indica los mensajes y las respuestas que el ordenador imprime autométicamente en la pantalla. Esta fuente también enfatiza lineas de cédigo distintas de los otros ejemplos. Platform El texto con esta fuente indica una plataforma conereta y que el texto que le sigue se aplica s6lo a esa plataforma. Explorando LabVIEW Esta leccion muestra como navegar por el entorno LabVIEW. Describe el uso de menus, barras de herramientas, paletas, herramientas, ayuda y cuadros de dislogo comunes de LabVIEW. También aprender a ejecutar un VI y conceptos generales de un panel frontal y diagrama de blogues. Al final de esta leccién, crear un VI simple que adquiera, analice y presente datos. Temas {Qué es LabVIEW" Creacién de un VI simple ‘© National instruments | 9 Leccién 1 Exploranda LabVIEW A. {Qué es LabVIEW? LabVIEW es un entomo de programacién grafico que puede utilizar para crear aplicaciones répida y eficientemente con interfaces de usuario profesionales. Millones de ingenieros y cientificos usan LabVIEW para desarrollar sofisticadas aplicaciones de pruebas y control usando iconos y cables intuitivos. Ademés, la plataforma LabVIEW es escalable a través de diferentes objetivos y OSs. De hecho, LabVIEW oftece integracién con miles de dispositivos y facilita cientos de librerias integradas para andlisis avanzados y visualizacién de datos para crear instrumentos virtuales que puede personalizar de acuerdo a sus necesidades. ‘Ya que LabVIEW imita la apariencia y operacién de instrumentos fisicos, como osciloscopios y multimetros, los programas de LabVIEW son llamados instrumentos virtuales 0 Vis. Los VIs, tienen panel frontal y diagrama de bloques. El panel frontal es la interfaz. de usuario. El diagrama de blogues es el programa detrds de la interfaz de usuario. Tras crear la ventana del panel frontal, puede aftadir c6digo usando representaciones graficas de funciones para controlar los objetos del panel frontal. El cédigo en el diagrama de bloques es cddigo grafico, también conocido como cédigo G o eddigo de diagrama de bloques. A diferencia de lenguajes de programacién basados en texto como C++ y Visual Basic, LabVIEW uusa iconos en vez de Iineas de texto para crear las aplicaciones, En programacién basada en texto, las instruceiones determinan el orden de ejecucién, LabVIEW utiliza flujo de datos grafico. En programacién mediante flujo de datos grafico, los datos fluyen a través de nodos en el diagrama de bbloques y eso determina el orden de ejecucisn. La programacién grafica y la ejecucién mediante flujo de datos son las dos principales formas en que LabVIEW es diferente de otros lenguajes de programacién de propésito general. En este curso, usted aprender como puede usar LabVIEW para crear aplicaciones simples de adquisicién de datos usando los tres pasos: adquirir, analizar y presentar. A pesar de que este curso cs ensefiado en un sistema Windows, LabVIEW es multi-plataforma. Usted puede desarrollar aplicaciones en sistemas Windows, Mac OS o Linux. Ademas, usted también puede desplegar aplicaciones de LabVIEW a una gran variedad de dispositivos “real-time” y FPGA. Caracteristicas de LabVIEW Los programas de LabVIEW tienen las siguientes caracteristicas: + Naturaleza gréfica y compilada Flujo de datos y/o programacién basada en eventos + Capacidades multi-objetivo y plataforma + Flexibilidad orientada a objetos + Posibilidades de multithreading 1-2 | nicom Manual de Curso LabVIEW Core + En LabVIEW Core I, usted aprendera acerca de la naturaleza grafica y compilada de LabVIEW y flujo de datos. Los siguientes cursos exploran otras caracteristicas: + LabVIEW Core 2—Aprendera sobre programacién orientada a eventos. + Object-Oriented Design and Programming in LabVIEW—Aprenderé sobre programacion orientada a objetos en LabVIEW. + LabVIEW Performance—Aprenda como tomar ventaja de las capacidades de multithreading y gestion de memoria de LabVIEW para mejorar la ejecucién de programas y el uso de memoria. Grafico y compilado Aunque representado graficamente con iconos y cables en vez de texto, el cédigo G en el diagrama de bloques contiene los mismos conceptos de programacién encontrados en la mayoria de lenguajes tradicionales. Por ejemplo, cddigo G incluye tipos de datos, bucles, gestién de eventos, variables y programacién orientada a objetos. LabVIEW compila cédigo G directamente a codigo de maquina para que el procesador pueda ejecutarlo. No necesita compilar cédigo G en un paso adicional. Flujo de datos y programacién orientada a eventos Los programas de LabVIEW se ejecutan de acuerdo a las reglas de flujo de datos en lugar de la manera tradicional encontrada en la mayoria de lenguajes de programacién basados en texto como Cy C++. La ejecucién mediante flujo de datos es dependiente de los datos. E] flujo de datos entre os nodos en el eddigo G determina el orden de ejecucién. La programacién orientada a eventos extiende el concepto de flujo de datos de LabVIEW para permitir al usuario interaccidn directa con el programa. La programacién basada en eventos también permite otras actividades asincronas para influenciar la cjecucién del cédigo G en el diagrama de bloques. Capacidades multi-objetivo y plataforma Con aplicaciones de LabVIEW, usted puede tener como objetivos procesadores multinicleo y otros hardware paralelos como “Field-Programable Gate Arrays” (FPGAs). Usted puede automaticamente escalar aplicaciones de LabVIEW a CPUs con dos, cuatro o mas niicleos, usualmente sin programacién adicional. El cédigo G, con la excepcién de algunas funciones especificas de algunas plataformas, es portable centre diferentes sistemas LabVIEW para diferentes sistemas operativos. Por lo tanto, usted puede usar el mismo cédigo si esta utilizando LabVIEW en sistemas Windows, Mac OS X o Linux Orientado a objetos La programacién orientada a objetos es un acercamiento popular atraves de una gran variedad de lenguajes de programacién. Permite una gran variedad de items similares, aungue diferentes, de ser representados como una clase de objetos en el software. LabVIEW provee herramientas y funciones para que usted pueda utilizar técnicas de programacién orientada a objetos en su cédigo G. National instruments | 1-3 ection 1 Explorando LabVIEW Multithreading y gestion de memoria LabVIEW permite paralelismo automatico a su cédigo. En otros lenguajes si se requiere ejecutar codigo en paralelo, usted debe manejar los hilos miiltiples manualmente. El entorno LabVIEW, con el compilador y sistema de ejecucién trabajando juntos, automaticamente ejecuta el cddigo en paralelo siempre que sea posible. La mayoria del tiempo los detalles de la ejecucién de un sistema no tienen importancia para usted porque el sistema se comporta como debe sin intervenci embargo, LabVIEW también provee las opciones para mejorar el rendimiento, Lanzando el entorno LabVIEW Cuando lance LabVIEW, aparecers la ventana Getting Started como se muestra en la figura 1-1 Figura 1-1, Ventana Getting Started de LabVIEW sae Fi Opeate Tea Hep i LabVIEW" C ) Open Existing Welcome wo LabVIEW Caneel deters sede (ethane Use la ventana Getting Started para crear nuevos proyectos y VIs. Puede crear items desde cero © utilizar ejemplos. También puede abrir archivos existentes de LabVIEW y acceder a los recursos de fa comunidad de LabVIEW y a la ayuda. La ventana Getting Started desaparece cuando abre un archivo existente o crea un archivo nuevo, y reaparece cuando cierra todos los paneles frontales y diagramas de bloques abiertos. Puede mostrar la ventana seleccionando View»Getting Started Window. 1-4 | sicom Manual de Curso LabVIEW Core 1 B. Explorador de proyectos Los programas de LabVIEW se denominan VIs. Puede utilizar miiltiples Vis juntos para hacer una aplicacién de LabVIEW. Para agrupar los Vis relacionados con la misma aplicacién utilice un proyecto LabVIEW. Cuando guarda un proyecto LabVIEW desde la ventana Project Explorer. LabVIEW crea un archivo de proyecto (.1vpro3), que incluye referencias a todos los archivos de LabVIEW en el proyecto, informacién de configuracién ¢ informacién de despliegue Algunos programas de LabVIEW, como Vis simples, no requieren crear un proyecto, Es necesario utilizar un proyecto para crear aplicaciones y librerias compartidas. También debe utilizar un proyecto para trabajar con una plataforma en tiempo real (RT), de array de puertas programable in situ (FPGA) o agenda electronica (PDA). Consulte la documentacién del madulo especifico para obtener informacién adicional acerca de usar proyectos con los médulos de tiempo real, FPGA y PDA de LabVIEW. Ventana del explorador de proyectos Los proyectos en LabVIEW consisten de VIs, archivos necesarios para que esos VIs se ejecu apropiadamente y archivos suplementarios como documentacién 0 enlaces. Utilice la ventana Project Explorer para administrar proyectos en LabVIEW. La ventana Project Explorer incluye los siguientes elementos de forma predeterminada + Project root; contiene el resto de elementos de la ventana Project Explorer. Esta etiqueta en Ia raiz del proyecto incluye el nombre de archivo del proyecto. + My Computer: representa el ordenador local como un destino del proyesto. + Dependencies: incluye los elementos que requieren los Vis de un destino. + Build Specifications: incluye configuraciones para distribuciones de cédigo y otros tipos de distribuciones disponibles en los toolkits y médulos de LabVIEW. Si tiene instalada la version PDS (Professional Development System) o el Application Builder de LabVIEW, puede usar Build Specifications para configurar aplicaciones independientes, libretias compartidas, instaladores y archivos comprimidos. Q Consejo Un destino es cualquier dispositive que pueda ejecutar un Vi Cuando afiada otro destino al proyecto, LabVIEW crearé otro elemento en la ventana Project Explorer para representar la nueva plataforma. Cada destino incluye tambien las secciones Dependencies y Build Specifications, Puede afadir archivos bajo cada uno de los destinos © Natonal nstuments | 1-5 on} Explorande LabVIEW Complete los siguientes pasos para utilizar la ventana Projeet Explorer para crear y modificar proyectos en LabVIEW, 1 Seleccione File»Create Project para mostrar el cuadro de didlogo Create Project, El cuadro de didlogo Create Project incluye una lista de plantillas y proyectos de ejemplo que usted puede utilizar para asegurarse que el proyecto que esté creando utilice pricticas de diseiio y programacion confiables. Busque la plantilla o ejemplo que se aproxime mis al proyecto que desea realizar. Use las siguientes herramientas para buscar las plantillas y ejemplos de proyectos: + Filters—Muestra solo resultados de cierto tipo, como plantillas o ejemplos de proyectos para un objetivo especifico. + Additional Search—Busca palabras clave, titulos y descripeiones de los resultados filtrados. + More Information—Abre el archivo de ayuda para el item respectivo. Revise el archivo cde ayuda para asegurarse que la plantilla o ejemplo se aproxime al proyecto que desea realizar. Haga elic en el botén Next o Finish para configurar los detalles del proyecto, incluyendo como el proyecto es guardado. Luego que termina de configurar el proyecto, LabVIEW guarda el proyecto y abre la ventana Project Explorer y el VI principal del proyecto, Utilice la ventana Project Explorer para administrar proyectos en LabVIEW. Refiérase a los comentarios en el diagrama de bloques de los VIs en el proyecto para mas informacién acerca de como modificar el proyecto. También refiérase al folder Project Documentation en la ventana Project Explorer para més informacién sobre como modificar el proyecto. Barras de herramientas de proyectos Use los botones de las barras de herramientas Esténdar, Proyecto, Instalacion y Control de cédigo fuente para realizar operaciones en un proyecto de LabVIEW. Las barras de herramientas estan disponibles en la parte superior de la ventana Project Explorer, como muestra la figura 1-2. Quiza tenga que expandir la ventana Projet Explorer para mostrar todas las barras de herramientas. 16 Manual de Curse LabVIEW Core Figura 1-2. Ventana Project Explorer @ raject Explorer = Ee) Ostomne vrs. 4 Eg) Teagerture Sindtor ot 1B) Weather staionsttenct | Dependencies Barra de herramientas estandar 5 Ralz de proyectos Barra de herramientas de proyectos & Destino Barra de herramientas de construccién 7 Dependencias Barra de herramientas de control de cédigo fuente 8 Crear especiticaciones Consejo La barra de herramientas Control de cédigo fuente sélo est disponible si tiene el control de cédigo fuente configurado en LabVIEW. Puede mostrar u ocultar barras de herramientas desde View»Toolbars y seleccionando las barras de herramientas que desea mostrar u ocultar. También puede hacer clic con el botén derecho en una zona abierta de cada barra de herramientas para seleccionar la que desee mostrar u ocultar. Creacién de un proyecto en LabVIEW Complete los pasos siguientes para crear un proyecto. 2. 3. Escoja una de las siguientes acciones para crear un proyecto LabVIEW nuevo, + Enla ventana Getting Started haga clic en Blank Project para abrir un proyecto en nuevo © haga clic en e] botén Create Project para crear un proyecto nuevo a partir de una plantilla. + Enun proyecto o VI abierto, seleccione File»Create Project + En cualquier ventana de LabVIEW, seleccione FileyNew. También puede seleccionar Project»Empty Project en el cuadro de didlogo New para mostrar la ventana Project Explorer. Afiada elementos que desee incluir en el proyecto bajo un destino Seleccione File»Save Project para guardar el proyecto. ‘© National instruments | 17 eocién 1 Explorando LabVIEW Anadir archivos existentes a un proyecto Puede afiadir archivos existentes a un proyecto, Use el elemento My Computer (u otro destino) en la ventana Project Explorer para afiadir archivos como Vis 0 archivos de texto a un proyecto de LabVIEW. Afiada elementos que desee incluir en el proyecto de estos modos: + Haga clic con el botén derecho en My Computer y seleccione Add»File desde el menit contextual para afiadir un archivo. También puede seleccionar Project»Add To Projeet»File desde el memi Project Explorer para afiadir un archivo. + Haga clic con el botén derecho en el destino y seleccione Add»Folder (Auto-populating) desde el ment contextual para afiadir una carpeta de relleno automatico. También puede seleceionar Project»Add To Project»Add Folder (Auto-populating) para afladir una carpeta de relleno automatico, LabVIEW controla y actualiza continuamente la carpeta segin los cambios realizados en el proyecto y en el disco + Haga clic con el botén derecho en el destino o My Computer y seleccione Add»Folder (Snapshot) desde ef ment contextual para afiadir una carpeta virtual. También puede seleccionar Projeet»Add To Project»Add Folder (Snapshot) para afiadir una carpeta virtual Cuando seleccione un directorio del disco, LabVIEW crearé una nueva carpeta virtual en el proyecto con el mismo nombre que el directorio del disco. LabVIEW también crea elementos en el proyecto que representan el contenido de todo el directorio, incluidos los archivos y el contenido de subdirectorios. Si selecciona una carpeta del disco, affadira el contenido de toda la carpeta, incluyendo archivos y el contenido de las subcarpetas. Nota Tras aftadir una carpeta virtual del disco a un proyecto, LabVIEW no actualiza aulomaticamente la carpeta en el proyecto si realiza cambios en la carpeta del disco. + Haga clic con el botén derecho en el destino y seleccione New»VI desde el ment contextual para afladir un nuevo VI. También puede seleccionar File»New VI o Project»Add To Project»New VI para afiadir un VI nuevo. + Seleccione el icono del VI en la esquina superior derecha de una ventana de panel frontal o de diagrama de bloques y arrastre el icono al destino, + Seleccione un elemento 0 carpeta del sistema de archivos de su ordenador y arristrelo al destino. Eliminar elementos de un proyecto Puede eliminar elementos de la ventana Project Explorer de las siguientes maneras: Haga clic con el bot6n derecho en el elemento que desee eliminar y seleccione Remove from Projeet del ment contextual. + Seleccione el elemento que desea eliminar y pulse . Seleccione el elemento que desee eliminar y haga clic en el bot6n Remove From Project de la barra de herramientas Standard. 1-8 | alcom Manual de Curso LaBVIEW Core 1 \€{_Nota__Eliminar un elemento de un proyecto no implica eliminarlo del disso. Organizar elementos de un proyecto La ventana Project Explorer incluye dos paginas: Items y Files. La pagina Items muestra los elementos del proyecto que existen en el arbol de proyecto. La pagina Files muestra los elementos del proyecto que tienen un archivo correspondiente en el disco. Puede organizar nombres de archivos y carpetas en esta pagina. Las operaciones de proyectos de Ja pagina Files reflejan y actualizan el contenido del disco. Puede cambiar de una pagina a la otra haciendo clic con el bot6n derecho en una carpeta o elemento bajo un destino y seleccionando Show in Items View o Shaw Files View en el ment contextual Use carpetas para organizar elementos en la ventana Project Explorer. Puede aftadir dos tipos de carpetas en un proyecto de LabVIEW: virtuales y de relleno automatico. Las carpetas virtuales organizan elementos del proyecto. Haga clic con el botén derecho en la ventana Project Explorer y seleccione New» Virtual Folder desde el menit contextual para crear una carpeta virtual nueva Las carpetas de relleno automatico se actualizan en tiempo real para reflejar el contenido de las carpetas del disco. Afiada una carpeta de relleno automatico al proyecto para mostrar elementos del proyecto como aparecen en el disco. Las earpetas de relleno automatico solo se ven en la pagina Items de la ventana Project Explorer Puede ver el contenido del disco de una carpeta de relleno automatico pero no puede realizar operaciones en el disco como cambiar e! nombre, reorganizar y eliminar elementos del proyecto. Para realizar operaciones del disco en elementos de una carpeta de relleno automatica, use la pagina Files de la ventana Project Explorer. La pagina Files muestra la ubicaciGn de las carpetas del proyecto en el disco. Las operaciones de proyectos de la pagina Files reflejan y actualizan el contenido del disco. Igualmente, LabVIEW actualiza automaticamente la carpeta de relleno automatico en el proyecto si realiza cambios en la carpeta del disco fuera de LabVIEW Bs posible ordenar elementos en una carpeta, Para ello, haga clic con el botén derecho en una carpeta y seleccione Arrange By»Name desde el meni contextual para ordenar elementos por orden alfabético. Haga clic con el bot6n derecho en una carpeta y seleccione Arrange By» Type desde el ment contextual para ordenar elementos por tipo de archivo. Ver archivos de un proyecto Cuando aftade un archivo a un proyecto de LabVIEW, LabVIEW incluye una referencia al archivo del disco. Haga clic con el botén derecho en un archivo de la ventana Project Explorer y seleccione Open desde el ment contextual para abrir e] archivo en su editor predeterminado Haga clic con el botén derecho en el proyecto y seleccione View»Full Paths desde el ment contextual para mostrar dénde estan guardados en el disco los archivos a los que hace referencia un proyecto. Use el cuadro de didlogo Project File Information para ver donde se encuentran los archivos a los que hace referencia un proyecto en el disco y en la ventana Project Explorer, Seleccione Project» ile Information para mostrar el cuadro de didlogo Project File Information. También puede © National instruments | 1-9 Leccléa t Exploranda LabVIEW hacer clic con el botén derecho en el proyecto y seleccionar View»File information desde el ment contextual para mostrar el cuadro de didlogo Project File Information. Guardar un proyecto Puede guardar un proyecto de LabVIEW de los siguientes modos: + Seleccione File»Save Project. + Seleccione Project»Save Project. + Haga clic con el botén derecho en el proyecto y seleccione Save en el ment contextual, + Haga clic en ef botén Save Project en la barra de herramientas Project. Debe guardar los nuevos archivos que no hayan sido guardados previamente en un proyecto antes de poder guardar éste. Cuando guarde un proyecto, LabVIEW no guardard dependencias como parte del archivo del proyecto. Nota Realice una copia de seguridad de un proyecto cuando vaya a hacer revisiones importantes en él C. Partes de un VI Los Vis de LabVIEW contienen tres componentes principales: la ventana del panel frontal, el diagrama de bloques y el panel de iconos / conectores, Ventana del panel frontal La ventana del panel frontal es la interfaz del usuario para el VI. La figura 1-3 muestra un ejemplo de una ventana de panel frontal. Puede crear la ventana del panel frontal con controles € indicadores, que son los terminales interactivos de entrada y salida del VI, respectivamente. 4-10 | nicom Manual de Curso LaaviEW Core 1 Figura 1-3. Panel frontal de VI Measurements pee es A Delay Mott Ls note all os 1 a2 4 oa ms (oe Va x» | oy a 0 2 6 Ventana de diagrama de bloques Tras crear la ventana del panel frontal, puede afiadir cédigo usando representaciones graficas de funciones para controlar los objetos del panel frontal. La figura 1-4 muestra un ejemplo de una ventana de diagrama de bloques, La ventana del diagrama de bloques contiene este eddigo fuente grafico. Los objetos del pane! frontal aparecen como terminales en el diagrama de bloques. Figura 1-4. Diagrama de Bloques {Fie Edt Mew Dronet_Qperte Teoh Wnaow Ee ol fliers 2 fale ca ure of Mesurments bey cee © Notional instruments | 7-17 Leccién $ Expovando LabVIEW Panel de iconos y conectores El panel de iconos y conectores muestra c6mo usar y ver un VI en otro VI. Un VI que se utiliza en otro VI se denomina subVI, que es similar a una funcién en un lenguaje de programacién basado en texto, Para utilizar un VI como subVI, debe tener un panel de iconos y conectores. Cada VI muestra un icono en la esquina superior derecha de la ventana del panel frontal y de la ventana del diagrama de bloques. A la izquierda se muestra un ejemplo del icono predeterminado. Un icono es una representacién grafica de un VI. El icono puede contener texto e imagenes. Si utiliza un VI como un subVI, el icono identifica el subVI en el diagrama de bloques del VI. El icono predeterminado contiene un nimero que indica cudntos Vis nuevos abrié tras lanzar LabVIEW. = Para utilizar un VI como subVI, debe crear un panel de conectores, mostrado a la izquierda. El panel de conectores es un conjunto de terminales del icono que se corresponde con los controles ¢ indicadores de ese VI, de manera similar a la lista de parametros de una Hamada de funcién en lenguajes de programacién basados en texto. El panel de conectores se muestra junto al icono del ‘Vien esquina superior derecha de la ventana del panel frontal. No es posible acceder al panel de conectores desde el icono de la ventana del diagrama de bloques. Abrir un VI existente Seleccione Browse en la lista Open de la ventana Getting Started para navegar hasta un VI existente y abrirlo. Q Consejo Los VIs que modifique en este curso se encuentran en el directorio \LabVIBW Core 1 Cuando se cargue el VI, podré aparecer un cuadro de didlogo de estado similar al siguiente ejemplo. 12 | nico Manual de Curso LabVIEW Core 1 BH Weather Staion uli Loading 2Loaded CASoltions\ LabVIEW Core \Brescse-1\No HWSupporting Files Temperature Warnings Scorching (CAProgrem Fes\Nationl Instrument ae VW 20.2sb sound? La seecién Loading enumera los subVIs del VI segiin se cargan en memoria y muestra el ntimero de subVIs cargados hasta ahora. Puede cancelar la carga en cualquier momento, haciendo clic en el botén Stop. Si LabVIEW no puede encontrar inmediatamente un subVI, empezar a buscar en todos los directorios especificados en la ruta de bisqueda del VI. Puede modificar la ruta de biisqueda det VI seleccionando Tools»Options y después Paths en la lista Category. LabVIEW puede hacer caso omiso de un subVI haciendo clic en el botén Ignore Item, o puede hacer clic en el botén Browse para buscar el subVI que falte. Guardar un VI Para guardar un nuevo V1, seleccione File»Save. Si ya guard6 su V1, seleccione File»Save As para acceder al cuadro de dilogo Save As. Desde el cuadro de didlogo Save As, puede crear una copia del VI climinar el VI original y sustituirlo por el nuevo. @ National Instruments | 1-43 Leceién 1 Exploranda LabVIEW Nota Consulte el tema Save As Dialog Box de la Ayuda de LabVIEW para mostrar Figura 1-6. Cuadro de diélogo Save As gna ie Ee SslbesLabMEW Coe t\ceree ine Wouter ion Ui apy 162 onde Ege] ssnttte copy or ont Fe copy lb wry. engl bce A Usher frei ls nner otc toth oy. Citreate opened sk copy alle anor. Coy abe cond (© bpen adaional copy ath aga and coy sl bein menery Copy must have rena o ‘Rename - rename He cn dsk. MR trapne incurs Hcahvis ee a rawiana Duplicate hierarchy to new location ‘Copy this ants herechy (ech les vil) toa newlocain. Dp Reteerinfesmenary ae Coe) | informacién detallada sobre cada opcién del cuadro de didlogo Save As. D. Panel frontal Cuando abra un VI nuevo 0 existente, aparecera la ventana del panel frontal del VI. La ventana del panel frontal es la interfaz del usuario para el VI. La figura 1-7 muestra un ejemplo de una ventana de panel frontal Manual de Figura 1-7. Ejemplo de un panel frontal B1sing Tempersoren Font Pane Bie ft ew Brject pert [flstaopicbon tow = peewee a Delay Gee) ge ee : Sk, SRSA : 00 2 Ao 60 eo ano ‘Terperture Sap oe Temp Pt BAS 15 100 125 150 175 20 225 250 215 300 Time ed, 4 fl Controles e indicadores Puede crear el panel frontal con controles e indicadores, que son los terminales interactivos de entrada y salida del VI, respectivamente. Ejemplos de controles son mandos, botones de comande diales y otros dispositivos de entrada. Los indicadores son graficos, LED y otras vis Los controles simulan dispositivos de entrada de instrumentos y ofrecen datos al dia, bloques del VI. Los indicadores simulan dispositivos de salida de instrumentos y muestran datos que adquiere o genera el diagrama de bloques La imagen 1-7 contiene los siguientes objetos: dos controles: Number of Mea (sec). Tiene un indicador: un XY graph llamado Temperature Graph rements y Delay El usuario puede cambiar el valor de entrada de los controles Number of Measurements y Delay (sec). El usuario puede ver el valor que genera el VI en el indicador Temperature Graph. El VI genera los valores para los indicadores basandose en el cédigo creado en el diagrama de bloques ‘Aprenderd esto en la seccién Controles ¢ indlicadores numéricos Cada control 0 indicador tiene un tipo de datos asociado. Por ejemplo, el control destizante horizontal Delay (sec) es un tipo de datos numérico. Los tipos de datos mas utilizados sor numérico, booleano y cadena de caracteres. Aprenderé otros tipos de datos en Inplementacién de un VI a leccién 3, © National instruments Lecciéa 1 Explovando LabVIEW Controles e indicadores numéricos E]| tipo de datos numérico puede representar niimeros de varios tipos, como entero o real. Los dos objetos numéricos comunes son el control numérico y el indicador numérico, como se ve en la figura 1-8. Objetos como los medidores y los dials también representan datos numéricos. Figura 1-8. Controles e indicadores numéricos +-® iO Botones de incremento / decremento 3 Indicador numérico 2 Control numérico Para introducir 0 cambiar valores en un control numérico, haga clic en los botones de incremento y decremento con la herramienta de operaciones o haga doble clic en el nero con la herramienta de etiquetado © de operaciones, escriba un nuevo niimero y pulse la tecla . Controles e indicadores booleanos El tipo de datos booleano representa datos que sélo tienen dos estados posibles, como TRUE y FALSE u ON y OFF, Use los controles € indicadores booleanos para escribir y mostrar valores booleanos. Los objetos booleanos simulan conmutadores, botones de comando y LED. Los objetos booleanos de tipo conmutador vertical y de tipo LED redondo aparecen en la figura 1-9. Figura 1-9. Controles e indicadores booleanos Controles e indicadores de cadena de caracteres El tipo de datos cadena de caracteres es una secuencia de caracteres ASCII. Use controles de cadena de caracteres para recibir texto del usuario como una contrasefia 0 un nombre de usuario. Use indicadores de cadena de caracteres para mostrar texto al usuario. Los objetos de cadena de caracteres mas comunes son tablas y cuadros de entrada de texto, como se ve en la figura 1-10. 16 | skcom Figura 1-10. Controles ¢ indicadores de cadena de caracteres Manual de Curso LabVIEW Core 1 ‘sung Conch | [Dipay tet he eerhere Aad ¢ Paleta de controles La Paleta de Controles contiene los controles ¢ indicadores que utiliza para crear el panel frontal Se accede a la Paleta de Controles desde la ventana del panel frontal seleccionando View» Controls Palette. La Paleta de Controles se divide en varias categorias; puede mostrar alguna de ellas o todas segiin sus necesidades. La figura 1-11 muestra la paleta Controls con todas las categorias mostradas y la categoria Silver expandida, Durante este curso, la mayoria de ejercicios utilizan controles de la categoria Silver. Figura 1-11. Paleta de Controles ‘Contos @ Aur, Mot Uist Table 2. I> cassie > yaar “Gontl Bein &Srision NET eect ‘Addane | >” Une Contos Selects Corral Change Vile Pate © National instruments | 1-17 Lovcidn 1 Bxplorando LabVIEW Para mostrar u ocultar categorias (subpaletas), seleccione el botén Customize en la paleta y seleccione o deseleccione en la opcién Change Visible Palettes. Barra de herramientas de la ventana del panel frontal Cada ventana tiene una barra de herramientas asociada. Use los botones de la barra de herramientas de la ventana del panel frontal para ejecutar y modificar el VI La siguiente barra de herramientas aparece en la ventana del panel frontal. [> eo) ola | [et Apatc Haga clic en el botén Run para ejecutar un VI, LabVIEW compila el VI, si es necesario. Puede ejecutar un VI si el botén Run aparece como una flecha blanca continua, como se ve abajo. La flecha blanca continua también indica que puede utilizar el VI como un subVI si crea un panel de conectores para el VI. Mientras se ejecuta el VI, el botén Run aparece como se muestra abajo si el Ves de alto nivel, lo que significa que no tiene Vis que le amen y por lo tanto no es un subVI. [| VI que se esta ejecutando es un subVI, el botén Run aparece como se muestra abajo. > El botén Run aparece roto cuando el VI que est creando o modificando contiene errores. Si el botn Run sigue apareciendo roto tras terminar de cablear el diagrama de bloques, el VI esta roto y no puede ejecutarse. Haga clic en este botén para mostrar la ventana Error list, que enumera todos los errores y advertencias. a Haga clic en el botén Run Continuously para ejecutar el VI hasta que anule pause la ejecucion. También puede hacer clic en el botén de nuevo para desactivar la ejecucién continua. fel 1418 | nicom Manual de Curso LabVIEW Cove + Mientras se ejecuta el VI, aparece el botén Abort Execution. Haga clic en este boton para detener el V1 inmediatamente sino hay otro modo de detenerlo. Si més de un VI de alto nivel en ejecucion utiliza el VI, el botén aparece atenuado. fe LX Precaucién El botén Abort Execution detiene inmediatamente el VI, antes de que termine la iteracién actual. Si aborta un VI que utiliza recursos externos, como el hardware externo, podria dejar los recursos en un estado desconocide por no restablecerlos 0 liberarlos correctamente. Disefie Vis con un bot6n de parada para evitar este problema Haga clic en el botén Pause para pausar un V1 en ejecucién, Cuando haga clic en el botén Pause, LabVIEW resaltaré en el diagrama de bloques la ubicacién donde paus6 la ejecucién y el botn Pause aparecera en rojo. Haga clic en el botin Pause de nuevo para seguir ejecutando el VI nj Seleccione el menti desplegable Text Settings para cambiar los ajustes de fuente para las partes seleccionadas del VI, como el tamaito, estilo y color. Seleccione el menti desplegable Align Objects para alinear objetos a lo largo de Jos ejes, come el vertical, el borde superior, borde izquierdo, ete. Seleccione ef meni desplegable Distribute Objects para espaciar objetos uniformemente, inchuidos los espacios, la compresién, etc. Seleccione el menti desplegable Resize Objects para cambiar varios objetos del panel frontal al mismo tamaio. ew (© National lasinaments | 1-13 Leceién 1 Exalovando LabVIEW Seleccione el menii desplegable Reorder cuando tenga objetos solapados y desee definir cual esta enfrente o detris de otro. Seleccione uno de los objetos con la herramienta de posicionamiento y después seleccione Move Forward, Move Backward, Move To Front 0 Move To Back. Introduzca términos de busqueda para localizar contenido en la Ayuda de LabVIEW. Seleccione el boton Show Context Help Window para cambiar la visualizacin de la ventana Context Help. Enter Text aparece para recordarle que existe un nuevo valor para sustituir @ uno antiguo. El botén Enter Text desaparece cuando hace clic en él, pulsa la tecla o hace clic en el espacio de trabajo del panel frontal o del diagrama de bloques. @ Consejo La tecla del teclado numérico termina una entrada de texto, mientras que la tecla principal afiade una nueva linea, Para modificar este comportamiento, seleccione Tools»Options, seleccione Environment de Ia lista Category y marque la opcién End text entry with Enter key E. Diagrama de bloques Entre los objetos del diagrama de bloques se incluyen los terminals, subVIs, funciones, estructuras y cables, los cuales transfieren datos entre otros objetos del diagrama de bloques. 1-20 | nicom Manual de Curso LabVIEW Core + Figura 1-12. Ejemplo de un diagrama de bloques y el panel frontal correspondien! GB adaasub vi Front bai Bese E Sek [Ge ta eer Soe goes eae ae a (sfal eel [i 2 1 Terminales de indicador 2 Cables 3 Nodos| Terminales Los objetos de la ventana del panel frontal aparecen como terminales en el diagrama de bloques, Los terminales son puertos de entrada y de salida que intereambian informacion entre el pane! frontal y el diagrama de bloques. Los terminales son andlogos a los parémetros y constantes de lenguajes de programacién basados en texto. Existen terminales de control o de indicador y terminales de nodo. Los terminales de control y de indicador estan asociados a los controles ¢ indicadores del panel frontal, Los datos que introduce en los controles del pane! frontal (a y b en el panel frontal anterior) entran en el diagrama de bloques mediante los terminales de control. A continuacién, los datos entran en las funciones Add y Subtract. Cuando las funciones Add y Subtract completan sus célculos, producen nuevos valores de datos. Los valores de datos fluyen a Jos terminales indicadores, donde actualizan los indicadores del panel frontal (a+b y a-b en el pane! frontal anterior). Los terminales de la figura 1-12 pertenecen a los controles ¢ indicadores del panel frontal. Como Jos terminales representan las entradas y salidas de su V1, los subVIs y las funciones también tienen terminales, mostrados abajo. Por ejemplo, los paneles de conectores de las funciones Add y Subtract tienen tres terminales de nodo. Para mostrar los terminales de la funcién en el diagrama de bloques, haga clic con el botén derecho en el nodo de la funcién y seleccione Visible Items» Terminals en el meni contextual @ National Intrumenia | 127 Leceisn 1 Sxplorando LabViE\ Controles, indicadores y constantes Los controles, indicadores y constantes actiian como entradas y salidas del algoritmo del diagrama de bloques. Considere la implementacién del algoritmo para el rea de un triangulo: Area = .5 * Base * Altura En este algoritmo, Base y Altura son entradas y Area es una salida, como se ve en la figura 1-13. Figura 1-13. Panel Frontal del area de un triangulo El usuario no cambiaré ni avcederd a la constante .5, por lo que no aparecerd en el panel frontal a menos que se incluya como documentacién del algoritmo. La figura I-14 muestra una posible implementacién de este algoritmo en un diagrama de bloques de LabVIEW. Este diagrama de bloques tiene cuatro terminales distintos constituidos por dos controles, una constante y un indicador. Figura 1-14. Diagrama de bloques del drea de un tridngulo con vista de iconos de los terminales [Determines the area ofa tangle Base (em) ‘Area (ern*2) re > of Height (cr) Triangular Multiplier + Controles 2 Indieadar ‘3 Constante Tenga en cuenta que los terminales del diagrama de bloques Base (em) y Altura (em) tienen un aspecto distinto del terminal Area (em?). Existen dos caracteristicas distintivas entre un control y un indicador en el diagrama de bloques. La primera es una flecha en el terminal que indica la direecién del flujo de datos. Los controles tienen flechas que muestran los datos que salen del terminal, mientras que el indicador tiene una flecha que muestra los datos que entran al terminal. 1-22 | micom Manual de Curso LabVIEW Core 1 La segunda caracteristica distintiva es el borde alrededor del terminal. Los controles tienen un borde més grueso y los indicadores uno mas fino. Puede ver terminales con o sin Ia vista de icono. La figura 1-15 muestra el mismo diagrama de bloques sin utilizar la vista de icono de los terminales; sin embargo, existen las mismas caracteristicas distintivas entre los controles y los indicadores Figura 1-15. Diagrama de bloques del rea de un tridngulo sin vista de iconos de los terminales > pee? Triangular Multiplier 05} Base (cm) Height (om) Nodos del diagrama de bloques Los nodos son objetos del diagrama de bloques que tienen entradas 0 salidas y realizan operaciones cuando se ejecuta un VI. Son andlogos a las instrucciones, operadores, funciones y subrutinas en Ienguajes de programacién basados en texto. Los nodos pueden ser funciones, subVIs 0 estructuras. Las estructuras son elementos de control de procesos, como las estructuras Case. los bucles For o los bucles While. Las funciones Add y Subtract de la figura 1-12 son nodos de funcién, Funciones Las funciones son los elementos operatives fundamentales de LabVIEW. Las funciones no tienen ventanas de panel frontal ni de diagrama de bloques pero si paneles de conectores. Ai hacer doble clic en una funci6n sélo se selecciona ésta. Una funcién tiene un fondo amarillo palido en su icono. SubVis Los subVIs son Vis que crea para usar dentro de otro VI o a los que accede en Ja paleta Funetions. Cualquier VI puede utilizarse como un subVI. Al hacer doble clic en un subVI del diagrama de bloques, aparece la ventana del panel frontal. El panel frontal incluye controles e indicadores. F diagrama de bloques incluye cables, iconos, funciones, posiblemente subVIs y otros objetos de LabVIEW. La esquina superior derecha de la ventana del panel frontal y de la ventana de! diagrama de bloques muestra el icono para el VI. Es e] icono que aparece cuando sittia el VI en un diagrama de bloques como un subVi. ‘Los subVIs también pueden ser VIs Express. Los Vis Express son nodos que requieren wm cableado minimo porque los configura con cuadros de didlogo. Use Vis Express para tareas comunes de medicién, Puede guardar la configuracién de un V1 Express como un subV1. Consulte el tema Express Vis de la ayuda de LabVIEW para mostrar informacién detallada sobre la creacién de un subVI a partir de una configuracién de un VI Express. 120 Leccidn 1 Explorando LabVIEW LabVIEW usa iconos de colores para distinguir entre VIs Express y otros Vis del diagrama de bloques. Los iconos para VIs Express aparecen en el diagrama de bloques como iconos rodeados de un campo azul mientras que los iconos de subVIs tienen un campo amarillo. Nodos expandibles frente a iconos Puede mostrar Vis y Vis Express como iconos o como nodos expandibles, Los nodos expandibles aparecen como iconos rodeados de un campo de color. Los subVIs aparecen con un campo amarillo y los Vis Express con un campo azul. Use iconos si desea conservar espacio en el diagrama de bloques. Use nodos expandibles para facilitar el cableado y para ayudar en la documentacién de diagramas de bloques. De forma predeterminada, los subV1s aparecen como iconos en el diagrama de bloques y los Vis Express aparecen como nodos expandibles, Para mostrar un subVI 0 VI Express como un nodo expandible, haga clic con el botén derecho en el subVI o VI Express y quite la marca junto al elemento del menii contextual View As Icon. Puede cambiar el tama del nodo expandible para facilitar més el cableado, pero también requiere un espacio considerable en el diagrama de bloques. Complete los pasos siguientes para cambiar el tamafio de un nodo en el diagrama de bloques: 1. Mueva la herramienta de posicionamiento sobre el nodo. Aparecen los controladores de tamaio arriba y abajo del nodo. ‘Mueva el cursor sobre un controlador de tamaio para cambiar el cursor al de cambio de lamafto. Use el cursor de cambio de tamafio para arrastrar el borde del nodo hacia abajo para mostrar més terminales, 4, Suelte el botén del ratén, Para cancelar una operacién de cambio de tamaiio, arrastre el borde del nodo mas alla de la ventana del diagrama de bloques antes de soltar el botén del raton, La figura 1-16 muestra el VI Basic Function Generator como un nodo expandible con un tamaito diferente Figura 1-16, VI Basic Function Generator en varios modos de visualizaci6n saa 1-24 | nicom Manual de Curso LabVIEW Cove # \G\_Nota_Si muestra un subV1 0 VI Express como un nodo expandible, no puede ver los terminales de ese nodo ni habilitar el acceso a la base de datos para ese nodo. Cables Con los cables se transfieren datos entre objetos del diagrama de bloques. En la figura 1-12, los cables conectan los terminales de control y de indicador a la funcién Add y Subtract. Cada cable tiene un solo origen de datos, pero puede cablearlo a numerosos Vis y funciones que leen los datos Los cables tienen distintos colores, estilos y grosores, en funcién de sus tipos de datos. Un cable roto aparece como una linea negra discontinua con una X roja en el medio, como se ve abajo. Los cables se rompen por varias razones, como al intentar cablear dos objetos con tipos de datos incompatibles. aes La tabla 1-1 muestra los tipos de cable mas comunes. Tabla 1-1. Tipos de cables comunes Tipode cable | Escalar | Array1D | Array 2D Color ‘Numérico — y arrastrando el objeto. El cableado automatico se desactiva de forma predeterminada cuando usa la herramienta de posicionamiento para mover un objeto que ya esté en el diagrama de bloques. Puede ajustar la configuracién del cableado automético seleccionando Tools»Options y después Block Diagram en la lista Category. Cableado manual de objetos Cuando pasa la herramienta de cableado sobre un terminal, aparecerd una ayuda con el nombre del terminal. Adems, el terminal parpadea en la ventana Context Help y en el icono para ayudarle a comprobar que est cableando en el terminal correcto. Para cablear objetos entre si, pase la herramienta de cableado por el primer terminal, haga clic, pase el cursor sobre el segundo terminal y haga clic de nuevo. Después de cablear, puede hacer clic con el botén derecho en el cable y seleccionar Clean Up Wire desde el menti contextual para que LabVIEW elija automaticamente una ruta para el cable, Si tiene que eliminar cables rotos, pulse para eliminar todos los cables rotos del diagrama de bloques. Paleta de funciones La paleta Funetions contiene los Vis, funciones y constantes que utiliza para crear el diagrama de bloques. Se accede a la paleta Functions desde el diagrama de bloques seleceionando Functions Palette. La paleta Functions se divide en varias categorias; puede mostrar u ocultar categorias segiin sus necesidades. La figura I-17 muestra una paleta Functions con todas las categories mostradas y la categoria Programming expandida. Durante este curso, trabajara principaimente en la categoria Programming, pero también usar otras categorias o subpaletas. 1-28 | nicom Figura 1-17. Paleta de funciones Qserchi] Qewtonse] =P son and Motion > Mathenats D> Signal Processing {> Data Conmunston > cenneatvey Control Design & Simian > press i> Favorites [> User ubrares | Sele vt Manual da Curso LabVIEW Core 1 Para mostrar u ocultar categorias, seleccione el botén Customize en la paleta y seleccione 0 deseleccione la opcién Change Visible Palettes. Barra de herramientas del diagrama de bloques Cuando ejecuta un VI, aparece una serie de botones en la barra de herramientas del diagrama de bloques que puede utilizar para depurar el VI. La siguiente barra de herramientas aparece en el diagrama de bloques. [DLS] OLN] [SSS eoler + [a5pe Application Fore [8 Haga clic en el boton Highlight Execution para mostrar una animacién de la ejecucién det iagrama de bloques cuando ejecute el VI. Observe el flujo de datos a través del diagrama de bloques. Haga elie en el botén de nuevo para desactivar el resaltado de la ejecucién © National insteumenis | 1-27 Leseién 1 Explorand LabVIEW Haga clic en el botén Retain Wire Values para guardar los valores de los cables en cada punto del flujo de ejecucién de modo que cuando coloque una sonda en el cable, pueda conservar inmediatamente el valor mas reciente que pas6 por el cable. Debe ejecutar correctamente el VI al menos una vez antes de poder conservar los valores de los cables. es] Haga clic en el botén Step Into para abrir un nodo y pausar la ejecucién, Haciendo clic en el botén Step Into de nuevo, se ejecuta la primera accién y se pausa la ejecucién en siguiente accién del subVT 0 de la estructura. También puede pulsar las teclas y la flecha abajo. Ejecutar paso a paso un VI permite revisar el VI nodo a nodo. Cada nodo parpadea para indicar cudndo esta listo bal Haga clic en el botén Step Over para ejecutar un nodo y pausar la ejecucién en el siguiente nodo. También puede pulsar las teclas y la flecha derecha. Al pasar por encima del nodo, ejecuta el nodo pero no paso a paso. _ ov Haga clic en el bot6n Step Out para terminar de ejecutar el nodo actual y pausar la ejecucién. ‘Cuando se termina de ejecutar el VI, se atentia el botén Step Out. También puede pulsar las teclas y Ia flecha arriba. Al salir de un nodo, se completa la ejecucién paso a paso del nodo y se pasa al siguiente nodo. Haga clic en el botén Clean Up Diagram para redirigir automaticamente todos los cables existentes y reordenar objetos del diagrama de bloques para generar un disefio més limpio. Para configurar las opciones de limpieza seleccione Tools»Options para mostrar el cuadro de didlogo Options y seleccione Block Diagram de la lista Category. Puede configurar las opciones en la seccién Block Diagram Cleanup. El bot6n Warning aparece si un VI incluye una advertencia y mareé la casilla de verificacién Show Warnings en la ventana Error List. Una advertencia indica que existe un posible problema con el diagrama de bloques, pero no impide que se ejecute el VI a £28 | nicom Manual de Curso LabVIEW Core 1 Utilidades de ayuda de LabVIEW Use la ventana Context Help, la Ayuda de LabVIEW y el NI Example Finder para ayudarle a crear y modificar Vis. Consulte la Ayuda de LabVIEW y los manuales para obtener informacion adicional acerca de LabVIEW. Ventana Context Help La ventana Context Help muestra informacién bésica sobre los diferentes objetos de LabVIEW cuando mueve el cursor sobre cada uno de ellos. Para ver la ventana Context Help, seleccione Help»Show Context Help, pulse las teclas 0 haga clic en el botén Show Context Help Window de la barra de herramientas. ‘Cuando mueva el cursor sobre los objetos del panel frontal y del diagrama de blogues, la ventana Context Help mostrard el icono para subVIs, funciones, constantes, controles e indicadores, con eables acoplados a cada terminal. Cuando mueva cl cursor sobre las opciones del cuadro de didlogo, la ventana Context Help mostrar sus descripciones. En la ventana Context Help, las etiquetas de terminales obligatorios aparecen en negrita, los terminales recomendados como texto sin formato y los opcionales aparecen atenuiados. Las etiquetas de terminales opeionales no aparecen si hace clic en el boton Hide Optional Terminals and Full Path en la ventana Context Help. Figura 1-18. Ventana Context Help Contest Help Read rom Spreadsheet Fev feanat 5.9) fie path ailog# emp) ‘utmber of rows (l=) rok after read (chats) transpose (oo) a Reads a specified numberof ins or roms rom 2 numeric tet fe beginning ata sce character ofet and conver the dat to «2, tdoble-preciion aay of number, ing, orintegers You must rman {let the pelymorph instance you want ous. Detailed hele @Navonat tnsituments | 1-23 Lecelén 1 Explorando LabVIEW Haga clic en el botén Show Optional Terminal Is and Full Path situado en la esquina inferior izquierda de la ventana Context Help para ver los terminales opcionales de un panel de conectores y la ruta completa de un VI. Los terminales opci jonales aparecen como cables cortados, informandole de que existen otras conexiones. El modo detallado muestra todos los terminales, como en la figura 1-19. Figura 1-19. Ventana oneet Hel (CAs LabVIEW 201 LIBIUIy formnst 263) fe path aislog if emp) numer wn) T= teanspose ost) “site Read specified cumbe fines or ows toumbes, instance youwantt ute. ang Context Help detallada Wetb\Read From Spreadsheet File. vi ew file path ot ath row Fit rom rn arene) tor? | froma nurse text file beginning st ‘pected character offet and conve the data t 82, doube-precon aay ngs rrkegers. You manual sletthe pelynarphic Detaled eta Haga clic en el botén Lock Context Help para bloquear el contenido actual de la ventana Context Help. Cuando se bloquea el contenido, si mueve el cursor sobre otro objeto, no cambiard el contenido de la ventana. Para desbloquear la ventana, haga clic de nuevo en el bot6n, También puede acceder a esta opcién desde el ment Helj Si existe un tema en la Ayuda de LabVIEW aso Context Help, aparecerd un enlace azul Detail Ip. @] ciado a un objeto que se describe en la ventana Jed help en la ventana Context Help. Asimismo, e] botén More Help se encontrard activado. Haga clic en el enlace en el botén para mostrar LabVIEW Help y obtener informacién adicional sobre el objeto. LabVIEW Help Puede acceder a la Ayuda de LabVIEW haciendo clic en el botén More Help de la ventana Context Help ,seleccionando Help»LabVIEW Help, 0 ventana Context Help. También puede hacer cl Help en el ment contextual. 0 | ni.corm haciendo clic en el enlace azul Detailed Help de la lic con el botén derecho en un objeto y seleccionar Manual de Curso LasVIEW Core 1 LabVIEW Help contiene descripciones detalladas de la mayoria de las paletas, ments, herramientas, VIs y funciones. La Ayuda de LabVIEW también incluye instrucciones paso a paso para utilizar las funciones de LabVIEW. La Ayuda de LabVIEW incluye enlaces a los siguientes recursos: + LabVIEW Documentation Resources, que describe documentos en linea ¢ impresos para ayudar a los usuarios nuevos y con experiencia ¢ incluye versiones en PDF de todos los manuales de LabVIEW, + Recursos de soporte técnico enel sitio Web de National Instruments, como NI Developer Zone, KnowledgeBase y Product Manuals Library (Biblioteca de Manuales de Producto) NI Example Finder Use NI Example Finder para explorar o buscar ejemplos instalados en su ordenador o en NI Developer Zone en ni .com/zone. Estos ejemplos demuestran c6mo utilizar LabVIEW para realizar numerosas tareas de prueba, medidas, control y disefo. Seleccione Help»Find Examples ‘haga clic en el enlace Find Examples de la seccién Examples de Ja ventana Getting Started para lanzar NI Example Finder. Los ejemplos pueden mostrarle como utilizar Vis 0 funciones especificas, Puede hacer clic con el botén derecho en un VI funcién del diagrama de bloques 0 en una paleta fijada y seleccionar Examples desde el ment contextual para ver un tema de ayuda con enlaces a ejemplos para ese VI o funcién, Puede modificar un VI de ejemplo para ajustarse a una aplicacién o puede copiar y pegat desde uno 0 mas ejemplos en un VI que haya creado. ‘© National nstuments | 1-91 Leccide 1 Explorando LabVIEW Figura 1-20. NI Example Finder Si oistbuting nd Oocurnenting Applications tory Sauce earl SDrundameonas I | Saetardearetaput and Our i DainausteyAppestons Bort Recent | i Briessonting | 5 New ample for sbvEW 2008 | ae amples for ab 2018 | Stu temple for sbvEW 2012 Sew Bape for sbVEW Bo Sroptimzing appicatins Sspreting sea Putting Data SPrginmmsticty Conroting > equicerens Stools a Meduee i Stoo ane Modules st te | | : | Browse according to: | Building User Interfaces | er nicomn formoreeornples Hardware 1 | Find hdave Gl Lint east dare Fal a Fens F. Busqueda de controles, Vis y funciones Cuando selecciona View»Controls 0 View»Funetions para abrir las paletas Controls y Functions, aparecen dos botones en la parte superior de la paleta, Seareh: cambia la paleta al modo de busqueda para poder realizar buisquedas de texto y encontrar controles, Vis 0 funciones en las paletas. Con la paleta en el modo de busqueda, haga clic en el botén Return para salir del modo de biisqueda y volver a la paleta. Q search Customize— Oftece opciones para seleccionar un formato para Ia paleta actual, mostrando ocultando categorias para todas las paletas y clasificando elementos de los formatos Text y ‘Tree alfabéticamente. Seleccione Options del menii contextual para mostrar la pagina Controls/Functions Palettes del cuadro de diélogo Options , donde puede seleccionar un formato para todas las paletas. Este bot6n slo aparece si hace clic en la chincheta de Ia esquina superior izquierda de una paleta para fijarla Qeisoniee | 82 | aicom Manual de Curso LabVIEW Cove Hasta que se familiarice con la ubicacién de los VIs y las funciones, busque la funcién o VI con el botén Search. Por ejemplo, si desea buscar la funcidn Random Number, haga clic en el botén Search en la paleta Functions y empiece a escribir Random Number en el cuadro de texto de Ia parte superior de la paleta. LabVIEW muestra todos los elementos coincidentes que empiecen por el texto escrito 0 que lo contengan. Puede hacer clic en uno de los resultados de basqueda y arrastrarlo al diagrama de bloques, como en la figura 1-21. Figura 1-21. Busqueda de un objeto en la paleta Functions Toms Generate Random Daa. Period Random ois. [ME_AALSase vb) Period Rendom Nise PDF. (NI_Ptbye Me Petiade Random Noe Waveform. MAH Dscete Rando. CContruous Rend. Slate Arvary Sena [M_Exves:FuL ib) Simao Signal > ‘Sma trary Sona [Ml Express 1b) ‘Smuate Signal <> Suite Signal > ‘ital Patern Generator. Haga doble clic en el resultado de busqueda para resaltar su ubicacién en la paleta. Si se trata de tun objeto que vaya a usar con frecuencia, puede afiadirlo a su categoria Favorites. Haga clic con el botén derecho en el objeto de la paleta y seleccione Add Item to Favorites, como se ve en la figura 1-22. ‘© National Insituments | 1-83 Sxplorando LabVIEW Figura 1-22. Anjadir un elemento a la categoria Favorites de una paleta Seen] ene] > rane | 1 Seasuaner 6 > tren 10 aon anatiten| > Selena oa commuraton Cooney » Canmaldesgn Sia > estes > Paver Yaa seus Salt > rogeanng > Measurement 5 > ietrunere WO > een and Mtn © Motenatce uaa PEEP EPA Bm & & i> A} a> b PEPE eb be Hem eo) or > ate Gonmuneatin » conezctvty ¥ CoetdDesign 8 Sidstion > caress © Faves 8 > adteoe 1 > User ubrares Set a. Parecido al botén de Search, usted puede usar el cuadro de didlogo Quick Drop para especificar tuna paleta de objetos por nombre y emplazar el objeto en el diagrama de bloques o en el panel frontal. Ademés de las paletas de objetos, usted puede también especificar objetos de proyecto por nombre en el cuadro de didlogo Quick Drop. Para mostrar el cuadro de didlogo Quick Drop, presione o seleccione View»Quick Drop. Escriba el nombre del objeto que quiere afiadir al diagrama de bloques o al panel frontal LabVIEW mostraré los resultados en la lista Name Mateh List. Para adjuntar el objeto seleociénelo con el cursor, presione la tecla , haga doble-clic en el nombre del objeto en la lista, 0 haga clic en el diagrama de bloques o el panel frontal. Haga clic en el lugar en el diagrama de bloques o en el panel frontal donde quiera afiadir el objeto, 1-36 | nicom Manual de Curso LabVIEW Cove + Figura 1-23. Buscando un objeto en el cuadro de didlogo Quick Drop Randaen Number (0-1) “TOMS Generate Random Data Peviodic Random Noises INLAALBase Mis] Petiodic Randorn Noise PtByPtwi [NL PtbyPLvkib] Penodie Rando Noise Waveform. [NL MAB lib] Discrete Randoms Continuous Randorn vi Quasi Rendarnai [NLAAL, SignalGeneration ib] G. Seleccién de una herramienta Puede crear, modificar y depurar Vis utilizando las herramientas que ofrece LabVIEW. Una herramienta es un modo de funcionamiento especial del cursor del ratén. El modo de funcionamiento del cursor se corresponde con el icono de la herramienta seleccionada. LabVIEW elige qué herramienta seleccionar en funcién de la ubicacién actual del raton Figura 1-24. Paleta Tools Consejo Puede elegir manualmente la herramienta que necesita seleccionandola en la paleta Tools, Seleccione View»Tools Palette para mostrar la paleta Tools. ‘© National nsinuments | 1-35 ton amienta de amienta de op el ratén pasa por el puntero, el cursor accede automati nbia al icono mostrado abajo, la herramienta de operaciones esta operaciones para cambiar los valores de un control. Por ejemplo, aciones mueve el puntero del control deslizante horizontal amente a la herramienta de igura 1-25. Uso {81 Ling Temperatures Fone Pane! Tat View Project _Dperate LM) [set Apetcaton Font ~ [fox [Ae ‘umber of Mensurerents eta) pe EEE sh 20 to eo eo ano 28 25 $0 15 100 125 180 U5 209 25 29 215 300 Time Ge) erramienta de operaciones se utiliza principalmente en la ventana del panel frontal, pero suede utilizar esta herramienta de la ventana del diagrama de bloques para cambiar el Jerramienta de posicionamiento atén cambia al icono mostrado abajo, la herramienta de posicionamiento est ccionar objetos o cambiar su tamaito. amienta de posicionamiento selecciona el control numérico Number of Measurements, Tras seleccionar un objeto, puede moverlo, copiarlo o eliminarlo, sor accede automiticamente a la herramienta jemplo, en ta figura 1-26 la he cambia para indicar que puede cambiar su ta cursor se encuentra sobre una e: Figura 1-26. Uso de la herramienta de posicionamiento para seleccio ‘EB Using Temperature Front Pa ee ee oro Delay Gee) ‘ek REREAD nh 20 «0 en oy iho ‘ome ist BS —— Sere tn 25 30 7 100 125 a0 a7 m0 225 250 275 st Tame Gee) mafio, como se ve en la quina del grafico XY en un nodo de ¢: del cursor cambia a una flecha de dos puntas. [G2 using Termperatureni Frnt Ponet | [Ele it” iew “Boject_Operte Tool, Wor Help ae | Bet Aprcation Font. ~ | urbe of Messuemet Duly 09 shoo on ama vo 2H 40 60 0b iho | ZempetoeGonh “emp ot Ga | | ane og | | Foren 100- eer SER Enea 00°25 $6 15 ides ase ay wa 2s Mo? Time G00, ion 1 Explorar utilizar la herramienta de posicionamiento en la ventana de! panel frontal y en el diagrama le bloques. Herramienta de etiquetado indo et cursor del ratén cambia al icono mostrado abajo, la herramienta de etiquetado esta pperativa, Use la herramienta de etiquetado para escribir texto en un control, para modificar texto etiquetas libres. Por ejemplo, en la figura 1-28 la herramienta de etiquetado escribe control numérico Number of Measurements. Cuando el ratén pasa por el interior del cursor accede automaticamente a la herramienta de etiquetado. Haga clic una vez para {tar un cursor dentro del control. A continuacién, haga doble clic para seleccionar el texto actual Ba Figura 1-28. Uso de la herramienta de etiquetado | $4 Using Temperatures Front Panel feces Nuese of Measurements Detey eo, ipo, a ARRON no 20 40 6 Tempesioe Soph Temp Pot Eh 005 0: wo Fahreniee 150: area rreremecene eneentar ters th a5 50 7s 100 a25 a80 a5 200 295 290 215 soo Time Gee) rando no esta en una zona especifica de una ventana del panel frontal o una ventana del diagrama Je bloques que accede a un determinado modo del ratén, el cursor apareceré como una cruz. Si se 2 1a selecein de herramienta automética, puede hacer doble clic en cualquier espacio abierto ara acceder a la herramienta de etiquetado y crear una etiqueta libre. nab Herramienta de cableado Cuando el cursor del rat6n cambia al icono mostrado abajo, la herramienta de cableado esta pperativa. Use la herramienta de cableado para cablear objetos entre si que estén en el diagrama de ‘oques, Por ejemplo, en la figura 1-29 la herramienta de cableado cabiea el terminal Number of, Manual de Curso LabVIEW Core 1 ‘Measurements al terminal de contaje para el bucle For. Cuando el ratén pasa por el punto de salida © entrada de un terminal o por un cable, el cursor accede automaticamente a la herramienta de cableado. > Figura 1-29. Uso de la herramienta de cableado fe Eat few Bopa Qpwate fous Wndow Hey os [1 nppeaton Fr La herramienta de cableado funciona principalmente con la ventana del diagrama de bloques y cuando crea un panel de conectores en la ventana del panel frontal Otras herramientas a las que se accede desde la paleta Puede acceder a las herramientas de operaciones, posicionamiento, etiquetado y cableado directamente desde Ia paleta Tools, en lugar de usar el modo de seleccién automatic de la herramienta, Seleccione View»Tools Palette para mostrar la paleta Tools. Figura 1-30. La paleta Tools © National instruments | 1-89 Leco¥a 1 Explocando LabVIEW Bl elemento superior de la paleta Tools es el botén Automatic Tool Selection. Cuando se selecciona, LabVIEW elige autométicamente una herramienta en funcién de la ubicacién de su cursor. Puede desactivar la seleccién automatica de la herramienta deseleccionando el elemento 0 seleccionando otro elemento de la paleta. Existen otras herramientas en la paleta, descritas abajo: Use la herramienta Object Shortcut Menu para acceder a un meni contextual del objeto con el botén izquierdo del ratén, ‘al Use la herramienta de desplazamiento para desplazarse por las ventanas sin utilizar barras de desplazamiento. ie Use la herramienta de puntos de interrupeién para establecer puntos de interrupeién en VI, funciones, nodos, cables y estructuras para pausar la ejecucién en esa ubicacién. [is] Use la herramienta de sonda para crear sondas en cables del diagrama de bloques. Use la herramienta de sonda para comprobar valores intermedios de un VI que produce resultados cuestionables o inesperados. [2] Use la herramienta de copiar color para copiar colores y pegarlos con la herramienta de color. Ed Use la herramienta de color y el color escogido para darle color a un objeto. La herramienta de color también muestra los ajustes de color de primer plano y de fondo actuales. Seleccione la herramienta de color y haga clic con el bot6n derecho en un objeto o espacio de trabajo para ver el selector de color. 1-40 | ni.com Manual de Gurso LabVIEW Core 1 H. Flujo de datos LabVIEW sigue un modelo de flujo de datos para ejecutar Vs, Se ejecuta un nodo del diagrama de bloques cuando recibe todas las entradas necesarias. Cuando se ejecuta un nodo, produce datos de salida y pasa los datos al siguiente nodo de la ruta del flujo de datos. BI movimiento de los datos a través de los nodos determina el orden de ejecucién de los Vis y las funciones del diagrama de bloques. Visual Basic, C+, JAVA y la mayoria del resto de lenguajes de programacién basados en texto siguen un modelo de flujo de control de la ejecucién del programa, En el flujo de control, ef orden secuencial de los elementos del programa determina el orden de ejecucién de un programa ara ver un ejemplo de programacién de flujo de datos, piense en un diagrama de bloques que suma dos niimeros y después resta 50, 00 del resultado de la suma, como en la figura 1-31. En este caso, el diagrama de bloques se ejecuta de izquierda a derecha, no porque los objetos estén situados en ese orden, sino porque la funcién Subtract no puede ejecutarse hasta que la funcidin Add termine de ejecutarse y pase los datos a la funcién Subtract. Recuerde que un nodo se ejecuta slo cuando existen datos de todos sus terminales de entrada y suministra datos a los terminales de salida sdlo cuando el nodo termina su ejecucién. Figura 1-31. Ejemplo de programacién de flujo de datos Result En la figura 1-32, piense en qué segmento de cédigo se ejecutaria primero, la funcién Add, Random Number o Divide, No puede saberlo, ya que las entradas de las funciones Add y Divide estan disponibles a la vez, mientras que la funcién Random Number no tiene entradas. En una situacién en la que un segmento de cédigo debe ejecutarse antes que otro y en la que no existe dependencia de datos entre las funciones, use otros métodos de programacién, como clusters de errores, para forzar el orden de ejecucién. Consulte la leccidn 5, Creamio y aproveckando estructuras de datos para obtener informacién adicional acerca de los clusters de error, Figura 1-32. Ejemplo de flujo de datos para segmentos de cédigos multiples b> Resut 1 © National instruments | #41 Explorando Labview |. Creacién de un VI simple La mayoria de los VIs de LabVIEW desempefian tres tareas principales: adquirir ciertos tipos de datos, analizar los datos adquiridos y presentar el resultado, Cuando cada una de estas partes es simple, puede completar todo el VI con muy pocos objetos en el diagrama de bloques. Los Vis ress estin diseftados especificamente para completar operaciones comunes y muy utilizadas. nesta secci6n aprender algunos VIs Express que adquieren, analizan y presentan datos. Después prendera a crear un VI simple que utiliza estas tres areas, como se ve en la figura 1-33. Figura 1-33. Ventana del panel frontal y del diagrama de bloques de ejemplo de adquisicién, andlisis y presentacién \otage (iter) IA | See gop Vorese | Ik os] | a4 < 45 | Ce ake ake oe aL Bi aareAnie bona fol lagim ag ava | Finer a Signet | veto Graph T Sonat nla wilizan e los Vis Express estin agrupados en la categoria Express. Los VIs Express po de datos dinamico para pasar datos entre si Manual de Curse LabVIEW Cove + Adquirir Los VIs Express usados para las tareas de Adquisicién incluyen lo siguiente: Asistente DAQ, Asistente de Instrumentos E/S, Sefial Simulada, y Lectura desde un archivo de Medidas. DAQ Assistant E1DAQ Assistant adquiere datos con un dispositivo de adquisicién de datos. Debe utilizar este VI Express con frecuencia a lo largo de este curso. Hasta que aprenda mas de la adquisicién de datos, 610 usard un canal del dispositivo de adquisicién de datos, ci10. Este canal esti conectado al sensor de temperatura en el BNC 2120. Puede tocar el sensor de temperatura para cambiar la lectura de temperatura en el sensor. Instrument I/O Assistant El Instrument I/O Assistant adquiere datos de contro! de instrumentos, normalmente desde una interfaz GPIB 0 de serie. Simulate Signal El VI Express ulate Signal genera datos simulados como una onda sinusoidal Read From Measurement File E] VI Express Read From Measurement File lee un archivo que se creé utilizando el VI Express Write To Measurement File, Concretamente lee los formatos de archive LVM 0 TDM, Este Vi Express no lee archivos ASCII. Consult la leceién 6, Administrando archivos v recursos hardware para obtener informacién adicional acerca de leer datos de un archivo. a Analizar Los Vis Express utilizados para la tarea Analizar incluyen los siguientes: Amplitude and Level Measurements, Statistics y Tone Measurements, © National instruments | 148 Lectién 1 Explorando LabVIEW Amplitude and Level Measurem: RMS, pico maximo, pico minimo, de pico a pi Statistics El V1 Express Statistics calcula los datos estad medio, suma, desviacién estindar y extremos. Spectral Measurements ents VI Express Amplitude and Level Measurements mide la tensién en una sefial. Mide la CC, ico, promedio del ciclo y RMS del ciclo. LENS isticos de una forma de onda. Incluye los valores EI VI Express Spectral Measurements realiza la medicién espectral de una forma de onda, como la magnitud y la densidad espectral de potencia, Medidas de tonos EI VI Express Tone Measurements busca un t ae nico tono con la maxima frecuencia o la mayor amplitud, También busca la frecuencia y Ja amplitud de un Gnico tono. Filter El VI Express Filter procesa una seftal median IM te filtros y ventanas. Los filtros usados ineluyen lo siguiente: Pasoalto, Pasobajo, Pasobanda, Bloqueobanda, y Suavizado (Smoothing). Las ventanas utilizadas son Butterworth, Chebyshev, Cheby: Presentar sshev inverso, Eliptico y Bessel. a LS Presente resultados utilizando VIs Express que realicen una funcién, como el VI Express Write to Measurement File o indicadores que presentan datos en la ventana del panel frontal. Los indicadores que més se suelen utilizar para esta tarea son los grificos Waveform Chart, Waveform Graph y XY Graph. Los VIs Express habituales son V1 Express Write to Measurement File, VI Express Build Text, DAQ Assistant e Instrument I/O Assistant. En este caso, e! DAQ Assistant y el Instrument I/O Assistant proporcionan datos de salida desde el ordenador al dispositive DAQ 0 un instrumento externo. Manval da Curso LabVIEW Cons 1 Write to Measurement File El VI Express Write to Measurement File escribe un archivo en formato de archivo LVM 0 TDMS. Consulte la leccién 6, Adiministrando archivos y recursos hardware para obtener informacion adicional acerca de escribir en archivos de medida. Build Text E] VI Express Build Text crea texto, normalmente para mostrar en la ventana del panel frontal o para exportar a un archivo o instrumento. Consulte la lecci6n 6, Adnuinistramco « hardware para obtener informacién adicional acerca de crear cadenas de caracteres, precwusas Ejecutar un VI Tras configurar los VI Express y cablearlos, puede ejecutar el VI. Cuando termine de crear el VI, haga clie en el bot6n Run en la barra de herramientas para ejecutar el VI Mientras se esta ejecutando el VI, el icono del botén Rum cambia a la figura mostrada abajo, Tras terminar la ejecucién, el botén Run cambia a su estado original y los indicadores del panel frontal contendran datos. Errores del bot6én Run Si un VI no se ejecuta, es un V1 roto o no ejecutable. El botén Run aparece roto cuando el VI que est creando 0 modificando contiene errores. Si el botén sigue apareciendo roto tras terminar de cablear el diagrama de bloques, el VI esti roto y no puede ejecutarse. Normalmente esto significa que una entrada necesaria no esta cableada o que un cable esté roto Pulse el botén Run roto para acceder a la ventana Error list. La ventana Error list muestra cada error y describe el problema. Puede hacer doble clic en un error para acceder a él directamente. Consulte la leecién 2, Resolucién de problemas y depuracién de Vis para obtener informacion adicional acerca de depurar VIs. © National instruments | 1-85 Manu da Curso LabVIEW Core 1 Autorrevision: Cuestionario Consulte la figura 1-34 para responder a las preguntas de este cuestionario. Figura 1-34. Preguntas de flujos de datos 1. {Qué funcién se ejecuta primero? Add or Subtract? a. Add b. Subtract c, Nose sabe 2, {Qué funcién se ejecuta primero? Sine or Divide? a. Sine b. Divide c. No se sabe 3. 4Qué funcién se ejecuta primero? Random Number, Divide or Add? a. Random Number b. Divide c. Add 4d. Nose sabe 4, {Qué funcién se ejecuta después? Random Number, Subtract or Add? a. Random Number b. Subtract c. Add d. No se sabe {Cudles son las tres partes de un VI? ‘Ventana del panel frontal Ventana del diagrama de bloques Proyecto aes e Panel de iconos y conectores © National instruments | 147 Autorrevisién: Respuestas Ee ° & me Ot 1. {Qué funcién se ejecuta primero? Add or Subtract? a. Add b. Subtract c. No se sabe 2. {Qué funcidn se ejecuta primero? Sine or Divide? a. Sine b. Divide c. No se sabe 3. (Qué funeién se ejecuta primero? a. Random Number b. Divide ce. Add 4d. Nose sabe a, Random Number b. Subtract c. Add d. No se sabe 5. ¢Cuiles son las tres partes de un VI? a, Ventana del panel frontal b. Ventana del diagrama de bloques c. Proyecto a. Panel de iconos y conectores Manuai de Curso LabVIEW Core 1 {Qué funcién se ejecuta después? Random, Subtract or Add? National mstiuments { 1-49 Leceion 1 Exploranda LabVIEW Notas 1-50 | acon Resolucién de problemas y depuracidén de Vis Para ejecutar un V1, debe cablear todos los subVIs, funciones y estructuras con los tipos de datos correctos para los terminales. A veces un VI produce datos 0 se ejecuta de un modo inesperado. Puede utilizar LabVIEW para configurar cémo se ejecuta un VI y para identificar problemas con la organizacién del diagrama de bloques 0 con los datos que pasan por el diagrama de bloques Temas A. Corteccién de VIs rotos B, Téenicas de depuracién C. Datos sin definir o inesperados D. Manejo de Errores (© National instruments Leccidn 2 Resohucin de problemas y depuracion de Vis A. Correcci6n de VIs rotos Si un VI no se ejecuta, es un VI roto o no ejecutable. El botén Run aparece roto cuando el VI que creando 0 modificando contiene errores, Si el bot6n sigue apareciendo roto tras terminar de cablear el diagrama de bloques, el VI esta roto y no puede ejecutarse Buscar causas de VIs rotos Las advertencias no impiden que ejecute un VI, Estén disefiadas para ayudarle a evitar posibles problemas en Vis. Sin embargo, los errores pueden romper un VI. Debe resolver los errores antes de poder ejecutar el VI. Haga clic en el botén Rum o seleccione View»Error List para averiguar por qué se ha roto un VI. La ventana Error list muestra cada uno de los errores. La seccién Items with errors muestra los nombres de todos los elementos en memoria, como librerias de proyectos y VIs que contienen errores. Si dos o mas elementos tienen el mismo nombre, esta seccién muestra la ubicacién en conereto de cada elemento, La seccién errors and warnings muestra los errores y las advertencias del V1 que seleccione en la seccién Items with errors. La seccién Details describe los errores y en algunos casos recomienda como corregirlos. Haga clic en el botén Help para ver un tema de LabVIEW Help que describa el error en detalle ¢ incluya instrucciones paso a paso para corregirlo. Haga clic en el botén Show Error o haga doble clic en la descripeién del error para resaltar la zona del diagrama de bloques o del panel frontal que contenga el error. Manual de Curso LabVIEW Core 1 Figura 2-1. Ejemplo de cuadro de didlogo Error List Peat Z x hese oval be ed tote bess ek datatypes una, aa, rar it, AeFabtey net Sh he Caner edn tose nm astonished ‘he tye fhe susce Sablon eco team) Theppectthe sie oats of Somes (ge) Csiro) Cie) Causas habituales de Vis rotos Esta lista contiene razones habituales de rotura de un VI mientras lo modifica: + Eldiagrama de bloques contiene un cable roto por un desajuste de tipos de datos o un extremo suelto 0 desconectado. Consulte el tema Correcting Broken Vis de la Ayuda de LabVIEW para ‘obtener informacién acerca de corregir cables rotos. + Un terminal obligatorio del diagrama de bloques no esti cableado. Consulte el tema Using Wires to Link Block Diagram Objects en la Ayuda de LabVIEW para obtener informacion acerca de configurar entradas y salidas obligatorias. + UnsubVI esta roto o modified su panel de conectores tras colocar su icono en el diagrama de bloques del VI. Consulte el tema Creating SubVis de LabVIEW Help para obtener informacion acerca de subVIs. B. Técnicas de depuracion Si un VI no esta roto, pero obtiene datos inesperados, puede utilizar las siguientes técnicas para identificar y corregir problemas con el VI 0 el flujo de datos del diagrama de bloques: + Cablee los parimetros de salida y entrada de error en la base de la mayoria de los Vis y funciones integrados. Estos parmetros detectan errores encontrados en cada nodo del diagrama de bloques e indican si ocurrié un error y donde, También puede utilizar estos pardmetros en los Vis que cree. + Para eliminar todas las advertencias del VI, seleccione View»Error List y marque la casilla de verificacién Show Warnings para ver todas las advertencias del VI. Determine las causas y corrijalas en el VI © National instruments | 2-3 LLecoién 2 Resolucidn de problemas y depuracién de Vis + Haga triple clic en el cable con la herramienta de posicionamiento para resaltar toda su ruta y asegurarse de que los cables se conecten a los terminales apropiados. + Use la ventana Context Help para comprobar los valores predeterminados de cada funcién y subVI en el diagrama de bloques. Los VIs y las funciones pasan los valores predeterminados si no estan cableadas las entradas recomendadas u opcionales. Por ejemplo, una entrada booieana podria configurarse en TRUE si no esta cableada. + Use el cuadro de didlogo Find para buscar subVIs, texto y otros objetos para corregir en el VI. + Seleccione View»VI Hierarchy para buscar subVIs sin cablear. A diferencia de las funciones sin cablear, los Vis sin cablear no siempre generan errores a menos que configure una entrada como obligatoria, Si coloca por error un subVI sin cablear en el diagrama de bloques, se ejecuta cuando {o hace el diagrama de bloques. Por lo tanto, el VI podria realizar acciones adicionales. + Resalte las ejecuciones para ver el movimiento de datos por el diagrama de bloques. + Bjecute paso a paso el VI para ver cada accién suya en el diagrama de bloques. + Use la herramienta de sonda para observar valores de datos intermedios y para comprobar la salida de errores de Vis y funciones, en especial las que realizan E/S, + Haga clic en el botén Retain Wire Values en la barra de herramientas del diagrama de bloques para conservar los valores del cable, que utilizara con sondas. Esta funcién permite comprobar facilmente valores de datos que se transfirieron por iltima vez por algin cable. + Use puntos de interrupcién para pausar la ejecucién, para poder ejecutar paso a paso 0 insertar sondas. + Suspenda la ejecucién de un subV1 para modificar valores de controles e indicadores, para controlar el mimero de veces que se ejecuta o para volver al principio de la ejecucién del subVI. + Determine si los datos que pasa una funcién o subVI estan sin definir. Esto suele suceder con Jos mimeros. Por ejemplo, en un punto del VI una operacién podria haber dividido un nimero por cero, devolviendo Tag (infinito), mientras que las siguientes funciones o subVIs esperaban, niimeros. + Siel Vise ejecuta con més lentitud de la esperada, confirme que desactivé resaltar la ejecucién en subVIs, Asimismo, cierre los paneles frontales y los diagramas de bloques del subVI cuando no Jos esté utilizando, ya que las ventanas abiertas pueden afectar a la velocidad de ejecucién. + Compruebe la representacién de controles e indicadores para ver si se esta produciendo desbordamiento, porque convirtié un nimero de coma flotante en un mimero entero o éste en un nmero entero de menos bits. Por ejemplo, podria cablear un ntimero entero de 16 bits en una funcién que sélo acepte nimeros enteros de 8 bits. Esto hace que la funcién convierta el niimero entero de 16 bits en una representacién de 8 bits, con lo que podria perder datos. + Determine si algun buele For ejecuta accidentalmente cero iteraciones y produce arrays vacios, Compruebe que inicializ6 correctamente registros de desplazamiento, a menos que deseara que guardaran datos desde una ejecucién del bucle a otra posterior. + Compruebe el orden de los elementos de clusters en los puntos de origen y de destino. LabVIEW detecta los desajustes de tipos de datos y de tamafios de cluster durante la edicién, pero no detecta desajustes de elementos del mismo tipo. ‘Manual de Curso LabviEW Core + + Compruebe el orden de ejecucién de los nodos. + Verifique que el VI no contenga subVIs ocultos. Podria haber ocultado un subVI accidentalmente colocandolo directamente sobre otro nodo © disminuyendo el tamafio de una estructura sin mantener a la vista el subVI. + Contraste el conjunto de subVIs que utiliza el VI con los resultados de View»Browse Relationships»This VI's SubVIs y View»Browse Relationships» Unopened SubVis para determinar si existen subVis adicionales. Abra también la ventana VI Hierarchy para ver los subVIs de un VI. Para ayudarle a evitar resultados incorrectos por Vis ocultos, especifique entradas obligatorias para los VIs, Resaltado de ejecucién ‘Vea una animacién de la ejecucién del diagrama de bloques haciendo clic en el boton Highlight Execution. El resaltado de la ejecucién muestra el movimiento de datos en el diagrama de bloques desde un ‘nodo a otto utilizando las burbujas que se mueven a lo largo de los cables. Use el resaltado de la ejecucién junto con la ejecucién paso a paso para ver cémo se mueven los valores de datos de nodo anodo a través de un VI (Médulo MathScript RT) En los nodos MathScript, el resaltado de Ia ejecucién muesira la progresién desde una linea de script a otra mediante una flecha azul que parpadea junto a la linea que se est ejecutando actualmente. Nota El resaltado de la ejecucién reduce enormemente la velocidad de ejecucién del VI. Figura 2-2, Ejemplo de uso de resaltado de la ejecucién © National tastumnents | 2-5 Lece'6a 2 Resolucion de problemas y depuracion de Vis Ejecucién paso a paso Ejecute paso a paso un VI para ver cada una de sus acciones en el diagrama de bloques mientras se ejecuta el VI, Los botones de ejecucién paso a paso, mostrados a continuacién, afectan a la ejecucién s6lo en un VI o subVI en el modo de ejecucién paso a paso. fal a] Slepinio. Stop Ovar Step Ox. Entre en el modo de ejecucién paso a paso haciendo clic en el botén Step Into o Step Over en la barra de herramientas del diagrama de bloques. Mueva el cursor sobre el botén Step Into, Step Over o Step Out para ver una ayuda que describe el siguiente paso si hace clic en ese botén, Puede ejecutar los subVIs paso a paso o ejecutarlos de forma normal Cuando ejecuta un VI paso a paso, los nodos parpadean para indicar que estan listos para ejecutarse, Si ejecuta un VI paso a paso con el resaltado de ejecucién activado, apareceré un simbolo de ejecucién en los iconos de los subVIs que se estan ejecutando en ese momento. Faw hs Herramientas de sonda Use la herramienta de sonda para comprobar valores intermedios en un cable mientras se ejecuta un VI [e] Use la herramienta de sonda si tiene un diagrama de bloques complicado con una serie de operaciones, alguna de las cuales podria producir datos incorrectos, Use la herramienta de sonda con el resaltado de la ejecucién, la ejecucién paso a paso y los puntos de interrupeién para determinar si los datos son incorrectos y en qué punto. Si dispone de datos, la sonda inmediatamente actualiza y muestra los datos en la Probe Watch Window durante el resaltado de la ejecucién, la ejecucién paso a paso o cuando pause en un punto de interrupeién. Cuando se pause la ejecucién en un nodo por la ejecucién paso a paso o por un punto de interrupcién, también puede sondar el cable que acaba de ejecutar para ver el valor que fluy6 por ese cable. @ Consejo Si quiere que una sonda muestre los datos que fluyen por un cable durante la ejecucién de un VI, haga clic en el botén Retain Wire Values en la barra de herramientas del diagrama de bloques. Tipos de sondas Puede comprobar los valores intermedios de un cable cuando se ejecuta un VI utilizando una sonda genérica, un indieador de la paleta Controls para ver los datos, una sonda suministrada, una sonda surninistrada personalizada o creando una nueva sonda, 2.8 | nicom Manual de Curso LABVIEW Cove + YEA _Nota_(Médulo MathScript AT) Puede ver los datos de un seript en wn nodo MathScript mientras se ejecuta un VI utilizando la sonda LabVIEW MathScript. Genéricas Use la sonda genérica para ver los datos que pasan por un cable, Haga clic con el bot6n derecho ea un cable y seleccione Custom Probe»Generic Probe desde el menii contextual para usat la sonda genérica. La sonda genérica muestra los datos. No puede configurar la sonda genérica para responcler a los datos. LabVIEW muestra la sonda genérica cuando hace clic con el botén derecho en un cable y selecciona Probe, a menos que ya especificara una sonda personalizada o suministrada para el tipo de datos. Puede depurar una sonda petsonalizada de modo similar a un VI. Sin embargo, una sonda no puede sondar su propio diagrama de bloques, ni el diagrama de bloques de cualquiera de sus subVIs. Al depurar sondas, use la sonda genérica. Uso de indicadores para ver datos ‘También puede utilizar un indicador para ver los datos que pasan por un cable. Por ejemplo, si ve datos numéricos, puede utilizar un gréfico como sonda para ver los datos. Haga clic con el batén derecho en un cable y seleccione Custom Probe»Controls desde el menti contextual y seleccione el indicador que desea usar. También puede hacer clic en el icono Select a Control de la Paleta de Controles y seleccionar cualquier control personalizado o definicin de tipo guardado en el ordenador en un directorio compartido de un servidor. LabVIEW trata las definiciones de tipos como controles personalizados cuando los utiliza para ver datos sondados. Si el tipo de datos del indicador que seleccione no coincide con el tipo de datos del cable donde hizo clic con el bot6n derecho, LabVIEW no colocard el indicador en el cable. Suministradas Las sondas suministradas son Vis que muestran informacién exhaustiva sobre los datos que pasan por un cable. Por ejemplo, la sonda VI Refitum devuelve informacién sobre el nombre del VI, su ruta y el valor hexadecimal de la referencia. También puede utilizar una sonda suministrada para responder en funcién de los datos que pasan por un cable. Por ejemplo, use una sonda Error en wn cluster de error para recibir el estado, el cédigo, el origen y la descripcién del error y especificar si desea configurar un punto de interrupcién condicional si tiene lugar un error 0 una adverteneia Las sondas suministradas aparecen en la parte superior del mentt contextual Custom Probe. Haga clic con el boton derecho en un cable y seleccione Custom Probe desde e! ment contextual para seleccionar una sonda suministrada, Sélo aparecen en el menit contextwal las sondas que coinciden con el tipo de datos del cable donde hizo clic con el botén derecho. @Naionat Instruments | 2.7 Leccidn 2 Resolucin de problemas y depuracion de Vis ‘Consultee! VI Using Supplied Probes en labview\examples\general \probes . 11b pata ver un ejemplo de uso de sondas suministradas. Personalizadas Use el cuadro de diélogo Create New Probe para crear una sonda en funcién de una sonda existente o para crear una nueva. Haga clic con el bot6n derecho en un cable y seleccione Custom Probe»New desde el mend contextual para ver el cuadro de didlogo Create New Probe. Cree una sonda cuando desee tener mas control sobre cémo LabVIEW sonda los datos que fluyen por un cable, Cuando crea una nueva sonda, el tipo de datos de la sonda coincide con el tipo de datos del cable donde hizo clic con el botén derecho. Si desea modificar la sonda que cre6, debe abrirla desde el directorio donde la guard6, Tras seleccionar una sonda desde el ment contextual Custom Probe, navegue hasta él utilizando la opcién de la paleta Select a Control o cree una nueva sonda con el cuadro de didlogo Create New Probe. Esa sonda sera la predeterminada para ese tipo de datos y Lab VIEW la cargara cuando haga clic con el botén derecho en un cable y seleccione Probe en el menti contextual. LabVIEW slo carga las sondas que coinciden exactamente con el tipo de datos del cable donde hizo clic con e! botén derecho. Es decir, una sonda numérica de coma flotante de doble precisién no puede sondar un cable de un niimero entero sin signo de 32 bits, aunque LabVIEW puede convertir los dates. XE} Nota Si desea que una sonda personalizada sea la predeterminada para un tipo de datos concreto, guarde la sonda en el directorio user. 1ib\_probes\default. No guarde sondas en el directorio vi . 1ib\_probes porque LabVIEW sobrescribird esos archivos cuando actualice o reinstale. Puntos de interrupcién Use la herramienta Breakpoint para establecer puntos ¢ pausar la ejecucién en esa ubicacién. Cuando configura un punto de interrupcién en un cable, la ejecucién se pausa una vez que los datos pasan por el cable y el botén Pause aparece rojo. Sitte un punto de interrupcién en el diagrama de bloques para pausar la ejecucién una vez que se ejecuten todos los nodos del diagrama de bloques. El borde del diagrama de bloques aparece rojo y parpadea para reflejar la colocacién de un punto de interrupeién. /errupei6n en Vis, nodos o cables y Cuando un VI se pausa en un punto de interrupcién, LabVIEW pone en primer plano el diagrama de bloques y usa un marco para resaltar el nodo, cable o linea de script que contiene el punto de interrupcién. Cuando mueve el cursor sobre un punto de interrupeién, Ia zona negra del cursor de ia herramienta de punto de interrupcién aparece blanca, 28 | nieom Manual de Curso Lab’ Cuando Hlega a un punto de interrupeién durante la ejecucién, el VI se pausa y el botén Pause aparece rojo. Puede realizar las siguientes acciones: + Seguir paso a paso la ejecucién con los botones de ejecucisn paso a paso. + Sondar cables para comprobar los valores intermedios, + Cambiar los valores de los controles del pane! frontal + Haga clic en el botén Pause para seguir ejecutando hasta el proximo punto de interrupeién o hhasta que termine de ejecutarse el VI Suspender la ejecucion Suspenda la ejecucién de un subVI para modificar valores de controles ¢ indicadores, para controlar el numero de veces que se ejecuta el subVI antes de volver al que le Hama o para volver al principio de la ejecucién del subVI. Puede hacer que todas las Ilamadas a un subVI empiecen con la ejecucién suspendida o puede suspender una llamada concreta a un subVI Para suspendér todas las llamadas a un subVI, ébralo y seleccione Operate»Suspend when Called. El subVI se suspendera automaticamente cuando lo Ilame otro VI. Si selecciona este elemento de memi cuando ejecute paso a paso, el subVI no se suspendera inmediatamente. El subVI se suspenderd cuando lo Ilamen. Para suspender una llamada a un subVI conereto, haga clic derecho en el nodo del subVI en et diagrama de bloques y seleccione SubVI Node Setup en el ment contextual. Active la casilla de verificacién Suspend when called para suspender la ejecucién sélo en esa instancia del subVI La ventana VI Hierarchy, que se abre seleccionando View» VI Hierarchy, indica si un VI esta pausado 0 suspendido. Un simbolo de flecha indica un VI que se est ejecutando con normalidad o paso a paso. Un simbolo de pausa indica un VI pausado o suspendido. + Unsimbolo de pausa verde, o un simbolo hueco en blanco y negro, indica un VI q) cuando le Haman. > se pausa + Un simbolo de pausa rojo, o un simbolo relleno en blanco y negro, indica un VI que se esti pausando. Un simbolo de signo de exclamacién indica que el subVI esta suspendido. ! XE\ Nota Un VI puede suspenderse y pausarse a la vez @National insinamests | 2-9 Leccién 2 Resolucisn de problemas y depuracién de Vis Determinar la instancia actual de un subVI Cuando pausa un subVI, el menu desplegable Call list de la barra de herramientas muestra la cadena de llamadas desde el VI superior al subVI. Esta lista no es la misma que ve cuando selecciona View»Browse Relationships»This VI’s Callers, que enumera todos los VIs que Jaman al subV1 independientemente de si se estén ejecutando o no. Use el ment Cal list para determinar la instancia actual del subVI si el diagrama de bloques contiene mas de una instancia. Cuando selecciona un VI del ment Call list, se abre su diagrama de bloques y LabVIEW resalta la instancia actual det subVI ‘También puede utilizar la funcién Call Chain para ver Ja cadena de Vis que aman al VI actual hasta ef VI de nivel superior. C. Datos sin definir 0 inesperados Los datos sin definir, que son Nant (no un mimero) o Iné (infinito), invalidan todas las operaciones siguientes. Las operaciones de coma flotante devuelven los dos siguientes valores simbélicos que indican céleulos imperfectos o resultados sin sentido: * NaN (no un ntimero) representa un valor de coma flotante que producen las operaciones no validas, como obtener la raiz cuadrada de un nimero negativo. + In£ (infinito) representa un valor de coma flotante que producen las operaciones validas, como dividir un nimero entre cero. LabVIEW no comprueba las condiciones de desbordamiento o subdesbordamiento de valores enteros, El desbordamiento y el subdesbordamiento para ntimeros de coma flotante se rige por IBEE 754, norma para la aritmética de coma flotante de tipo binario. Las operaciones de coma flotante propagan con fiabilidad Nan e Inf. Cuando convierte explicita © implicitamente NaN o Inf en valores enteros o booleanos, los valores no tienen sentido. Por ejemplo, dividir | entre cero produce taf. Convertir In£ en un numero entero de 16 bits produce el valor 32.767, que parece ser un valor normal Antes de convertir datos en tipos de datos de nameros enteros, use la herramienta de sonda para comprobar los valores intermedios de coma flotante y ver su validez. Compruebe si hay NaN cableando la funcién Not A Number/Path/Refnum?, al valor que sospecha que no es vilido, No confie en valores especiales como NaN, Info arrays vacios para determinar si un VI produce datos sin defini. Confirme que el VI produce datos definidos haciendo que el VI informe de un error si encuentra una situacién que probablemente produzea datos sin definir. Por ejemplo, si crea un VI que utiliza un array de entrada para auto-indexar un bucle For, determine qué desea que haga cl VI cuando el array de entrada esté vacio: producir un eédigo de error de salida, sustituir datos definidos por el valor que cree el bucle o utilizar una estructura Case que no ejecute el bucle For si el array est vacfo, 240 } nico Manual de Curso LabVIEW Core 1 D. Gestion de errores Aunque confie mucho en el VI que cree, no puede predecir todos los problemas que puede encontrar un usuario. Sin un mecanismo para comprobar los errores, slo sabe que el VI no funciona correctamente. La comprobacidn de errores indica donde y por qué se generan los errores. La gestion de errores es el mecanismo para anticipar, detectar y resolver advertencias y errores. La gestion de errores es un componente esencial en el desarrollo de aplicaciones de LabVIEW. Con Ja gestion de errores répidamente localiza la fuente de errores de programacién. Sin ella, podria observar un comportamiento inesperado pero necesitaria un esfuerzo para encontrar el origen del problema, La gestion de errores también es muy valiosa cuando prueba una aplicacién, para garantizar que su informe de errores sea significativo y que el c6digo de gestidn de errores detenga con seguridad su aplicacién cuando ocurra un error. Por ejemplo, durante la prueba de estrés esté configurando valores 0 condiciones que estan mas alld de la capacidad operativa normal de su aplicacion, lo que a menudo produce errores. Cuando ocurre dicho error, quiere cerrar correctamente la aplicacion. La gestion de errores sigue siendo importante después de desplegar una aplicacion. La gestion de errores puede ayudar a detectar diferencias entre el sistema y el entorno (como en sistemas de archivos, memoria y recursos del disco). National Instruments recomienda encarecidamente usar técnicas de gestion de errores. Gestion de errores automatica De forma predeterminada, LabVIEW controla automaticamente cualquier error cuando un VI se ejecuta suspendiendo la ejecucién, resaltando el subVI o la funcién donde ocurrié el error y mostrando un cuadro de disilogo de error, En el cuadro de didlogo de error, cada error tiene un cédigo numérico para identificarlo y un mensaje de error especifico para mostrarlo al usuario. Para desactivar la gestion de errores automatica para el VI actual, seleccione File» VI Properties y seleccione Execution en el meni desplegable Category. Para desactivar la gestién de errores automatica de cualquier VI nuevo que cree, seleccione Tools» Options y Block Diagram en la lista Category. Para desactivar la gestidn de errores automatica de un subV1 o funcién de un VI, eablee su pardmetro error out al pardmetro error in de otro subVI 0 funcidn o a un indicador error out Gestion manual de errores Puede elegir manejar los errores sin usar el manejo de errores automatico. Por ejemplo, si vence el tiempo limite de un VI de entrada y salida del diagrama de bloques, quiza no desee que se detenga toda la aplicacién y mostrar un cuadro de didlogo de error. Quiz desee tambign que el VI vuelva a intentarlo durante cierto tiempo. {®Novional Instruments | 2-11 feccidn 2 Resolucion de problemas y depuractén de Vis En LabVIEW puede tomar estas decisiones de control de errores en el usando los siguientes métodos: grama de bloques del VI, + Use el VI gestor de errores de LabVIEW y las fuunciones de la paleta Dialog & User Interface para notificar a los usuarios. Por ejemplo, si LabVIEW encuentra un error, puede mostrar el mensaje de error en varios tipos de cuadros de dislogo. + Use clusters de error y los pardmetros error in y error out de la mayoria de Vis y funciones para manejar los errores. Por ejemplo, cuando un error es detectado puede solucionar el error programéticamente y después cablear la salida error out del VI o funcidn a la entrada error in del VI Clear Errors. Q Consejo Use el gestor de errores junto con las herramientas de depuracién para buscar y gestionar errores. Clusters de error Los Vis y las funciones producen errores de uno de dos modos: con cédigos de error numéricos 0 con cluster de error. Normalmente las funciones usan cédigos de error numéricos y los VIs usan clusters de error, habitualmente con entradas y salidas de error. Use los controles e indicadores de clusters de error para crear entradas y salidas de error en subVIs. Q Consejo Todos los cluster de error en el diagrama de bloques tipicamente proven la misma funcionalidad estandar de error in y error out. Los clusters error in y error out incluyen los siguientes componentes de informacién: + status es un valor booleano que produce TRUE si ocurrié un error. + code es un niimero entero con signo de 32 bits que identifica el error numéricamente. Un codigo de error que no sea cero junto con un status de FALSE indica una advertencia en lugar de un error. * source es una cadena de caracteres que identifica donde ocurrié el error, Errores Un error esté definido como un cluster de error con un valor de status TRUE, sin importar el valor de cédigo. Si LabVIEW detecta un error, e! nodo pasa el error al siguiente nodo sin ejecutar esa parte del obdigo Advertencias ‘Una advertencia esta definida como un cluster de error con un valor code diferente de cero yun valor de status FALSE. Aunque la mayoria de los errores tienen valores de eddigo negativo y las advertencias tienen valores de cédigo positivo, no es una verdad universal. Por lo tanto, debe confiar en el valor de status y en el valor de code para detectar errores y advertencias. 2.412 | aicom anual de Curso LabVIEW Cove ¢ Las advertencias normalmente se consideran menos graves que los errores. Algunas APIs y funciones, como la funcién Match Regular Expression, s6lo informan de errores, Sin embargo, otras APIs como VISA API para controlar instrumentos independientes s6lo informan de advertencias. ‘A diferencia de cuando ocurre un error, los nodos se ejecutan con normalidad incluso cuando LabVIEW detecta una advertencia, Aunque el cédigo se ejecute con normalidad, es importante que durante el desarrollo monitorice las advertencias para garantizar un comportamiento correcto de su aplicacion. Cuadro de didlogo Explain Error Cuando ocurre un error, haga clic con el botén derecho en el borde del cluster y seleccione Explain Error del meni contextual para abrir el euadro de didlogo Explain Error. El cuadro de dialogo Explain Error contiene informacion sobre el error. El ment contextual incluye una opeisin Explain Warning si el VI contiene advertencias pero no errores. ‘También puede acceder al cuadro de dialogo Explain Error desde el menti Help»Explain Error. Deteccién e informe de errores La gestién de errores en LabVIEW sigue el modelo de flujo de datos. Al igual que los valores de datos fluyen por un VI, también lo hace la informacién de errores. Para implementar una buena gestion de errores, debe determinar las acciones que llevara a cabo cuando ocurra un error en cualquier punto de su aplicacién., Para empezar, debe utilizar los terminales de error en funciones y VIs. Como el cluster de error se implementa como un pardmetro de control de flujo, debe propagar errores cableando el cluster de salida del error out del primer nodo que desee ejecutar al error in en el chuster del siguiente nodo que desee ejecutar, Debe segui este procedimiento para las secuencias de nodos. Mientras se ejecuta el VI, LabVIEW comprueba si hay errores en cada nodo. $i Lab VIE encuentra errores, el nodo se ejecuta con normalidad. Si LabVIEW detecta un error o advertencia. el nodo pasa el error al siguiente nodo, Cualquier subVIs que cree, debe implementar también este control de flujo. @ Consejo Cuando realiza cualquier tipo de entrada y safida (B/S), piense que pueden ocutrir errores. Casi todas las funciones de E/S devuelven informacién de error. Incluys la comprobacién de errores en los VIs, especialmente para operaciones de E/S (archivo, serie, instrumentacién, adquisicién de datos y comunicacién) y cree un mecanismo para gestionar bien los ertores. ‘© National nsituments | 213 Leceién 2 Resolucion de problemas y depuractén de Vis Propagando errores y advertencias Para garantizar que Ja informacién de advertencia se propague correctamente, es importante utilizar registros de desplazamiento para cables del cluster de error en bucles para que la informacién de advertencia se propague por todas las iteraciones. Consulte la figura 2-3 para ver el uso correcto del registro de desplazamiento para propagar errores y advertencias a sucesivas iteraciones del bucle. Figura 2-3. Uso de Registros de Desplazamiento para Propagar Errores y Advertencias one srorn (oo ete) overeat Uniendo errores y advertencias Use la funcién Merge Error para unir los valores del cluster error out desde secuencias paralelas. Consulte fa figura 2-4 para ver un ejemplo de unién de informacién de error desde secuencias de nodos paralelos. Figura 2-4. Unién de Errores Desde Varias Fuentes ‘Wate Ber Read Buffer BS on a | (Hower: cai] a Pased te Al final de su aplicacién, una vez unidas todas las fuentes de error en un cluster de error, debe nformar de los errores al usuario mediante el VI Simple Error Handler u otro mecanismo de informe de errores, V1 Simple Error Handler Por defecto, el VI Simple Error Handler muestra un cuadro de didlogo con una deseripeién de errotes ocurridos y no informa de advertencias. Sin embargo, el VI Simple Error Handler puede configurarse para otro comportamiento de gestién de errores. Puede seleccionar el tipo de cuadro de diélogo con estas opciones: + No dialog—No muestra un cuadro de didlogo. Esto resulta ttil si desea tener control programatico en la gestién de errores. + OK message (por defecto)—Muestra un cuadro de didlogo con un solo botén OK. Una vez gue el usuario reconozea el cuadro de didlogo, el VI devuelve el control al VI principal. 2:14 | nicom Manual de Curso LabVIEW Core 1 + Continue or stop message—Muestra un cuadro de didlogo con botones, qué el usuario puede utilizar para continuar o detener. Si el usuario selecciona Stop, el VI Hama a ia funcién Stop para detener la ejecucién. + OK message with warnings—Muestra un cuadro de didlogo con cualquier advertencia y un solo botén OK. Una vez que el usuario reconozca el cuadro de didlogo, el VI devuelve el control al VI principal. + Continue/Stop + Warnings—Muestra un cuadro de didlogo con botones y advertencias, que el usuario puede utilizar para continuar o detener. Si el usuario selecciona Stop, el Vi llama a Ja funcién Stop para detener la ejecucién. Rangos de cddigos de error Los Vis y las funciones en LabVIEW pueden devolver cédigos de error numéricos, Cada producto 0 grupo de Vis define un rango de cédigos de error. Consulte el tema Ranges of LabVIEW Error Codes de la Ayuda de LabVIEW para ver las tablas de cédigos de error que muestra los codigos de error numéricos y descripciones de cada producto y grupo de VIs. ‘Ademis de definir los rangos de cédigos de error, LabVIEW reserva algunos rangos de codigos de ettor para que los utilice en su aplicacién. Puede definir cédigos de error personalizados en el rango de -8999 a -8000, 5000 a 9999 0 500.000 a 599.999, Algunos cédigos de error numéricos son utilizados por més de un grupo de Vis y funciones. Por ejemplo, el error 65 es un cédigo de error de serie, que indica un tiempo limite del puerto serie, y un cédigo de error de red, que indica que ya se ha establecido una conexion de red. @ National lasteuments | 2-45 Autorrevision: Cuestionario 1, Cual de los siguientes resultaré en una flecha rota? a. b. «, ae sp Un subVI esté roto El diagrama incluye una divisién entre cero Una entrada requerida de un subVI no esti cableada Una terminal Booleana esta cableada a un indicador numérico Status: Booleano Error: Cadena de caracteres. Code: Niimeros enteros de 32 bits Source: Cadena de caracteres Manual de Curso LabVIEW Core § {Cudles de los siguientes elementos forman parte de! contenido del cluster de error? 3. Todos los errores tienen cédigos de error negativo y todas las advertencias tienen codigos de error positivos. a b. Verdadero Falso 4, La funcion Merge Errors concatena informacion de error desde varios origenes, a. b. Verdadero Falso © Nationa! Incturmonts | 2-17 Manual de Curso LabVIEW Core Autorrevisién: Respuestas 1 Cuil de los siguientes resultard en una flecha rota? a, Un subVI esti roto b. El diagrama incluye una divisién entre cero Una entrada requerida de un subVI no esta cableada d. Una terminal Booleana esti cableada a un indicador numérico {Cudles de los siguientes elementos forman parte del contenido del cluster de error? a, Status: Booleano b, Error: Cadena de caracteres ¢. Code: Niimeros enteros de 32 bits 4. Source: Cadena de caracteres Todos los ertores tienen cédigos de error negativo y todas las advertencias tienen error positivos. a, Verdadero b. Falso La funcién Merge Errors concatena informacion de error desde varios origenes a, Verdadero b. Falso ‘© National insiasments | 218 LLeccion 2 Resolucion de probiemas y depuracia de Vis Notas Implementacion de un VI Esta leccién le ensefia como implementar cédigo en LabVIEW. Se explicara cémo diseftar un: interfaz de usuario, elegir un tipo de datos, documentar su cédigo, usar estructuras de bucle los bucles While y For, aftadir temporizacién por software a su cédigo, mostrar sus datos como v curva y tomar decisiones en su cédigo utilizando una estructura Case Temas A. Panel frontal B. Tipos de datos de LabVIEW C. Documentacién de cédigo D. Bucles While E, Bucles For F. Temporizacién de Vis G._ Retroalimentacién de datos en los bucles H. Graficando datos ~ Waveform Chart 1, Bstructuras Case © National lastauments | 3 Leceién 3 Implamaniacién de un Vi A. Panel frontal En la fase de disefio del método de desarrollo de software se identifican las entradas y salidas del problema. Esta identificacién conduce directamente al disefto de la ventana del panel frontal Las entradas para el disefio pueden venir de las siguientes acciones: + adquiriendo desde un dispositivo de adquisicién de datos o un multimetro + leyendo directamente desde un fichero + manipulando controles en el panel frontal Puede mostrar las entradas del problema en el panel frontal con controles numéricos, booleanos 0 cadenas de caracteres pero no todas las entradas aparecen en el panel frontal, Puede ver las salidas de! problema con indicadores, como graficos 0 LEDs o registrar las salidas en un fichero. También puede extraer datos de un dispositive con la generacién de sefiales, Disefo de controles e indicadores ‘Alelegir controles e indicadores, asegtirese de que sean apropiados para la tarea que desee realizar. Por ejemplo, cuando quiera determinar la frecuencia de una onda sinusoidal, elija un control de disco; cuando desee ver la temperatura, elija un indicador de termémetro. Etiquetas Etiquete con claridad los controles e indicadores. Estas etiquetas ayudan a los usuarios a identificar el objetivo de cada control ¢ indicador. Asimismo, el etiquetado claro ayuda a documentar su cédigo en el diagrama de bloques. Las etiquetas de controles ¢ indicadores se corresponden con los nombres de los terminales del diagrama de bloques, como se muestra en la figura 3-1 Figura 3-1. Los Controles Indicadores del Panel Frontal aparecen en el Diagrama de Bloques Upper Temperate Upper Temeeratue weming © esi Merge 1 Ventana del panel frontal 2 Diagrama de bloques 22 | nicom Manual de Curso LabVIEW Core 1 Opciones de controles e indicadores Puede configurar valores predeterminados para los controles. La figura 3-2 muestra un valor predeterminado de 35 °C para el control Upper Temperature. Configurando un valor predeterminado puede adoptar un valor razonable para un VI si el usuario no configura otro valor durante el tiempo de ejecucién. Complete los siguientes pasos para configurar un valor predeterminado de un control o un indicadoy 1. Escriba el valor deseado. 2, Haga clic con el boton derecho en el control o indicador y seleecione Data Operations»Make Current Value Default cn el ment contextual. Figura 3-2. Configuracién de valores predeterminados “Vise ee Find Terminal [change te inaieator Description and Ti. Crete > Feplce ett to Oefoule Value ‘Advanced Fe centolto Pane Sele objectth Pane ons Representation > : nts Enty. Disphy Forma Properties Consejo También puede reinicializar los valores a sus valores predeterminados. Consejo Para inicializar o reinicializar todos los controles ¢ indicadores en el panel frontal al mismo tiempo, seleccione EdityMake Current Values Default 0 Edit» Reinitialize to Default Values desde el ment de LabVIEW. D ® © National Instruments | 3-3 Lecoién 3 Implemartacién de un VE B. Tipos de datos de LabVIEW Existen muchos tipos de datos. Ya aprendié tipos de datos numéricos, booleanos y de cadena de caracteres en la leccidn 1, Explorando LabVIEW. Otros tipos de datos son los enumerados, los dindmicos y otros. Incluso dentro de los tipos de datos numéricos se distingue entre nimeros enteros y fraccionales, Terminales del diagrama de bloques y tipo de datos Los terminales del diagrama de bloques comunican visualmente al usuario informacién sobre el tipo de datos que representan, Por ejemplo, en la figura 3-3, Altura (em) es un dato numérico en coma flotante y doble precisién. Esto se indica por el color del terminal, naranja, y por el texto del terminal, DBL. Figura 3-3. Ejemplo de Tipo de Datos del Terminal Base (em) > ga (em 2) “Tiengulae Mitipher Height (em) aa Q Consejo Los nombres de las terminales corresponden a las etiquetas de los controles e indicadores en el panel frontal. Haga clic con el bot6n derecho en un terminal y seleccione Find control o Find indicator en el meni contextual para localizar un control © un indicador en el panel frontal, Menus contextuales Todos los objetos de LabVIEW tienen asociados mentis contextuales, conocidos también como meniis abreviados, mens emergentes y ments de botén derecho. Cuando cree un VI, use los clementos del menti contextual para cambiar el aspecto 0 el comportamiento de los objetos del pane! frontal y del diagrama de bloques. Para acceder al ment contextual, haga clic con el botén derecho en el objeto. 3-4 | nicom Manval de Curso LabVIEW Ci La figura 3-4 muestra un meni contextual para un control y un terminal. Figura 3-4. Menus de acceso directo para objetos en el panel frontal y diagrama de bloques uatny aI s . . Height er) g & > Cotter | Un oan LOS. TE ate Tose Despina nee Fit Convelto Pane eres Seale Objectith Pane Se : Se tomer eee, ‘View &s con Tepumiion > Cuadros de didlogo de propiedades Los objetos también tienen cuadros de didlogo de propiedades que puede utilizar para cambiar el aspecto 0 el comportamiento de los objetos. Haga clic con el botén derecho en un objeto y seleccione Properties cn el menti contextual para acceder al cuadro de dislogo de propiedades de un objeto, La figura 3-5 muestra el cuadro de didlogo de propiedades para el terminal Height (em) mostrado en la figura 3-4. Las opciones disponibles en el cuadro de dialogo de propiedades para un objeto son similares a las opciones del ment contextual de ese objeto. © National insiuments | 3-5 Leccidn 3 Implementacién ee un Vi Figura 3-5. Cuadro de didlogo de propiedades para una terminal numérica [EE Numeric Properties Heigne cm) [ Rorwance [Onin | Sate [Dina | Becanaen,{«] ii en tnd ete Show di © Show increment/decrement buttons (OR) Cea) CI Puede seleccionar varios objetos en el panel frontal o en el diagrama de bloques y modificar las propiedades que compartan los objetos. Para seleccionar varios objetos, use la herramienta de posicionamiento para arrastrar un recténgulo de selecci6n alrededor de todos los objetos que desee modificar 0 mantenga pulsada la tecla mientras hace clic en cada objeto. Haga clic con el botén derecho en un objeto de la seleccién y seleccione Properties en el menit contextual para acceder al cuadro de didlogo Properties. El cuadro de didlogo Properties s6lo muestra pestafias y propiedades que comparten los objetos que seleccione. Seleccione objetos similares para mostrar mas pestaflas y propiedades. Si selecciona objetos que no comparten ninguna propiedad comiin, el cuadro de didlogo Properties no mostrard pestafias ni propiedades. 36 | nicom Menai de Curso LabVIEW Core 1 Tipos de datos numéricos El tipo de dato numérico representa niimeros de varias clases. Para cambiar el tipo de reptesentacion de un ntimero, haga clic con el botén derecho en el control, indicador 0 constante y seleccione Representation, como se ve en la figura 3-6. Figura 3-6, Representacién numérica 8. CP Viettens Find Control Make Type Def. Hide Control Change to Indicator | Changete Constant Description and Tip.. Numeric Patette Create | Data Operations | Advanced View As Icon FP Properties les Tea] [ae | [ase | [ae [Psa] [ee foot ft Wea | [uaz | [wie | Ue [eal as Ls nes To [oS AEE Cuando cablea dos o mas entradas numéricas de distintas representaciones a una funcién, ésta normalmente devuelve los datos en la representacién mas grande o amplia. Las funeiones obligan las representaciones mas pequefias a las representaciones mas amplias posibles antes de la ejecucién, LabVIEW coloca un punto de coercién en el terminal donde la conversion toma lugar Consulte la seccién Conversién numérica, para obtener informacion adicional, El tipo de dato numérico incluye estas subcategorias de representacién: mimeros en coma flotante niimeros enteros con signo, niimeros enteros sin signo y niimeros complejos. © National Instaunents | 9-7 Leccisn 3 Implementacién de un Vi Numeros en coma flotante Los mimeros en coma flotante representan mimeros fraccionales. En LabVIEW, los nimeros en coma flotante se representan con el color naranja. Precisién simple (SGL): los niimeros en coma flotante de precisién simple tienen un formato de precisidn simple de 32 bits IEEE. Use ntimeros de precision simple, coma flotante cuando el ahorro le memoria es importante y no sobrecargara el rango de los nimeros. Doble precisién (DBL): los nimeros en coma flotante de doble precisién tienen un formato de precisién doble de 64 bits IEEE. La doble precision es el formato predeterminado para objetos numéricos. Use los ntimeros en coma flotante de doble precisién para la mayoria de las situaciones Precisién extendida (EXT)—Cuando guarda nimeros de precisin extendida al disco, LabVIEW Jos almacena en una plataforma independiente con formato de 128-bit format. En memoria, el tamafio y precisién varfan dependiendo de la plataforma. Use ntimeros coma flotante de precisién extendida solo cuando sea necesario, El rendimiento de la aritmética de precisién extendida varia entre plataformas. Tipo de datos de punto fijo El tipo de datos de punto fijo es numérico y representa un conjunto de nameros racionales que utilizan digitos binarios o bits. A diferencia del tipo de datos en coma flotante, que permite que varie el nimero total de bits que usa LabVIEW para representar nimeros, puede configurar los iimeros de punto fijo para que usen siempre un nimero concreto de bits. Asi, el hardware y Jos destinos que s6lo pueden almacenar y procesar datos con un miimero limitado 0 fijo de bits podrn almacenar y procesar los mimeros, Puede especificar el rango y la precisidn de nimeros de punto fij. Nota Para representar un ntimero racional con el tipo de datos de punto fijo, el denominador del niimero racional debe ser una potencia de 2, porque el sistema de numeros binarios es de base 2. Use el tipo de datos de punto fijo cuando no necesite la funcionalidad dinémica de la representacién de coma flotante o cuando desee trabajar con un destino que no admita la aritmética de coma flotante, como un destino FPGA Especifique la codificacién, la longitud de palabra y la longitud de palabra entera de un niimero de punto fijo cuando desee que el ntimero se adapte a cierto tamafio de bits. Codifieacién: la codificacién binaria del numero de punto fijo. Puede seleccionarse con signo 0 sin signo. Si se selecciona con signo, el bit del signo es siempre el primero en la cadena de caracteres de bits que representa los datos. Longitud de palabra: el nimero total de bits de la cadena de caracteres de bits que usa LabVIEW para representar todos los valores posibles de los datos de punto fijo, LabVIEW acepta una Jongitud maxima de palabra de 64 bits. Ciertos destinos pueden limitar los datos a longitudes 38 | nkcom Manusl de Curso LabVIEW Core menores de palabra, Si abre un VI en un destino y el VI contiene datos de punto fijo con longitudes de palabra mayores que las que puede aceptar el destino, el VI contendra cables rotos. Consulte la documentacién de un destino para determinar la maxima longitud de palabra que acepta Longitud de palabra entera: el mimero de bits enteros en una cadena de caracteres de bits que usa LabVIEW para representar todos los posibles valores del dato de punto fijo 0, dada una posicién inicial a la izquicrda o a la derecha del bit mas significativo, el nimero de bits a desplazar la coma binaria y Ilegar al bit mas significativo. La longitud de palabra del niimero enteto puede ser mayor que la longitud de palabra, y puede ser positivo 0 negativo. Numeros enteros Los niimeros enteros representan los niimeros naturales. Los nuimeros enteros con signo pueden Ser positivos 0 negativos. Use los tipos de datos de ntimeros enteros sin signo cuando sepa que el niimero entero es siempre positivo. En LabVIEW, los niimeros enteros se representan con el color azul. ‘Cuando LabVIEW convierte los nuimeros en coma flotante en mimeros enteros, el VI redondea al niimero entero mas cercano. Si el valor de entrada esté en medio de dos enters, ta funcién redondea al nimero entero par mas cereano. Byte (18): los ntimeros enteros Byte tienen 8 bits de almacenamiento y un intervalo de -128 a 127. Word (116): los niimeros enteros Word tienen 16 bits de almacenamiento y un intervalo de -32.768 032.767. ‘Long (132): los nuimeros enteros Long tienen 32 bits de almacenamiento y un intervalo de -2.147.483.648 a 2.147.483.647. En la mayoria de los casos es mejor utilizar un mimero entero de 32 bits. Quad (164): los ntimeros enteros Quad tienen 64 bits de almacenamiento y un intervalo de -1e19 alel9. Byte (U8): los nimeros enteros sin signo Byte tienen 8 bits de almacenamiento y un intervalo de 0.0255, ‘Word (U16): los ntimeros enteros sin signo Word tienen 16 bits de almacenamiento y un intervalo de 0.a 65.535, Long (U32): los niimeros enteros sin signo Long tienen 32 bits de almacenamiento y un intervalo de 0 a 4.294,967.295, nen 64 bits de almacenamiento y un intervalo Quad (U64): los mimeros enteros sin signo Quad de 0a 2e19. National instruments | 3-8 Leccisn 3 implementaeiéa 6e un Vi Numeros complejos Los miimeros complejos son versiones concatenadas de nimeros en coma flotante con una parte real ¢ imaginaria. En LabVIEW, como los niimeros complejos son un tipo de niimero en coma flotante, los ntimeros complejos también se representan con el color naranja. Existen tres partes en los niimeros complejos. Complejo simple (CSG): los nimeros complejos de coma flotante de precisién simple constan de valores reales e imaginarios y tienen un formato de precision simple de 32 bits IEEE. Complejo doble (CDB): Jos nimeros complejos de coma flotante de doble precisién constan de valores reales ¢ imaginarios y tienen un formato de doble precisién de 64 bits IEEE. Complejo ampliado (CX): los niimeros complejos de coma flotante de precisién ampliada constan de valores reales ¢ imaginarios y tienen un formato de precisién ampliada IEEE. En la ‘memoria, el tamafio y la precision de nimeros de precisién ampliada varian en funcién de la plataforma, En Windows tienen un formato de precisién ampliada de 128 bits IEEE. Conversion numérica LabVIEW puede representar tipos de datos numéricos como niimeros enteros con signo o sin no, valores numéricos coma flotante 0 valores numéricos complejos. Normalmente, cuando cablea tipos distintos de representaciones en las entradas de una funcidn, ésta devuelve una salida en el formato mas grande o amplio. Si usa un niimero entero con signo con un ntimero entero sin signo, lo convertiré al mimero entero sin signo. Si usa un nlimero entero sin signo con uno en coma flotante, lo convertira a coma flotante. Si usa un nimero en coma flotante con un némero complejo, lo convertira al nimero complejo. Si usa dos ntimeros del mismo tipo con distinto ancho de bits, LabVIEW realizard la conversién al mayor de los dos anchos de bits. Si el miimero de bits es el mismo, LabVIEW elige niimeros enteros sin signo en vez de con signo. Por ejemplo, si cablea un DBL y un 132 a una funcién Multiply, el resultado es un DBL, como se muestra en la figura 3-7. LabVIEW realizaré la conversion al niimero entero con signo de 32 bits porque utiliza menos bits que el valor numérico de doble precisién y de coma flotante. La entrada inferior de la funcién Multiply muestra un punto rojo, llamado punto de conversién, que indica que LabVIEW esta realizando una conversion de datos. 310 | nico Manual da Curso LabVIEW Core + Figura 3-7. Ejemplo de conversién numérica OBL Numeric ran ical 1 Punto de conversién Valores booleanos LabVIEW almacena datos booleanos como valores de & bits. Si el valor de 8 bits es cero, el valor booleano es FALSE. Cualquier valor que no sea cero representaré TRUE. En LabVIEW, el color verde representa datos booleanos. Los valores booleanos también tienen una accién mecdnica asociada a ellos. Las dos avciones principales son bloquear y conmutar. Puede seleccionar uno de los siguientes comportamiientos de botén: + Switch when pressed: cambia el valor del control cada vez que hace clic en él eon la herramienta de operaciones. La frecuencia con la que el VI lee el control no afecta a este comportamiento. + Switch when released: cambia el valor del control sélo después de soltar el botén del raton ‘mientras hace clic dentro del limite grafico del control. La frecuencia con la que el Vi lee el control no afecta a este comportamiento. + Switch until released: cambia el valor del control cuando hace clic en é y conserva el nueva valor hasta que suelte el botén del rat6n. En este momento, el control vuelve a su valor predeterminado, al igual que el funcionamiento del timbre de una puerta. La frecuencia con la que el VI lee el control no afecta a este comportamiento. No puede seleccionar este comportamiento para un control de botones de radio, + Latch when pressed: cambia el valor del control cuando hace clic en él y conserva el nuevo valor hasta que el VI lo lea una vez. En este momento, el control vuelve a su valor predeterminado, aunque siga pulsando el botén del ratén. Este comportamiento es similar al de un disyuntor y es til para detener un bucle While o para que el V1 realice una accién sélo una vez. cada vez que ajuste el control. No puede seleccionar este comportamiento para un contro! de botones de radio. + Latch when released: cambia el valor del control s6lo después de soltar ¢} bot6n del raton dentro del limite gréfico del control. Cuando el VI lo lee una vez, el control vuelve a su valor predeterminado. Este comportamiento funciona de! mismo modo que los botones de los cuadros de didlogo y del sistema, No puede seleccionar este comportamiento para un control de botones de radio. + Lateh until released: cambia el valor del control cuando hace clic en él y conserva el valor hasta que el VI lo lea una vez.o suelte el bot6n del ratén, en funcién de lo que oeurra en iiltima lugar. No puede seleccionar este comportamiento para un control de botones de radio. {© National lastuments | 3-11 Leccién 3 Implemantacion ee un Vi Para saber més de la accién mecénica, experimente con el VI Mechanical Action of Booleans en el NI Example Finder. Figura 3-8. Accién mecanica booleana Vibe ems > Find Teil Cangeteindeater | Make Type Det. Description and Tp. Create > Replace > Dats Opentions > Advanced » Fit Conte to Pane Scale Object with Pane Look Tein Center Propenies Cadenas de caracteres Una cadena de caracteres es una secuencia de caracteres ASCII visualizables y no visualizables. Las cadenas de caracteres tienen un formato independiente de las plataformas para la informacién y los datos, Algunas de las aplicaciones mas comunes de las cadenas de caracteres son: + Generacién de mensajes de texto simples + Control de instrumentos enviando comandos de texto al instrumento y devolviendo valores de datos en forma de cadenas de caracteres ASCII 0 binarias que después convierte en valores numéricos, + Almacenamiento de datos numéricos en disco, Para almacenar datos numéricos en un fichero ASCII, primero debe convertir los datos numéricos en cadenas de caracteres antes de escribir los datos en un fichero del disco. + Peticién o visualizacién de datos con cuadros de didlogo En el panel frontal, las cadenas aparecen como tablas, cuadros de entrada de texto y etiquetas. LabVIEW incluye Vis y funciones integradas que puede utilizar para manipular cadenas de caracteres, como dar formato a cadenas de caracteres, analizar cadenas de caracteres y otras modificaciones. Consulte el tema ASCII Codes en LabVIEW Help para obtener informacion acerca de cédigos ASCU y funciones de conversién. En LabVIEW, las cadenas de caracteres se representan con el color rosa. 242 | nicom Manual do Curso LabVIEW Core 1 Haga clic con el botén derecho en el control o indicador de una cadena de caracteres del panel frontal para seleccionar entre los tipos de visualizacién que aparecen en la tabla , La tabla también muestra un ejemplo de mensaje para cada tipo de visualizacién, Tabla 3-1. Tipos de visualizacién de cadenas de caracteres del cardcter. Tipo de | visualizacién Deseripcién Mensaje Visualizacion Muestra caracteres imprimibles | Existen cuatro tipos de normal utilizando la fuente del control visualizacién. \ es una | Los caracteres no visualizables | barra invertida i normalmente aparecen como cuadros. Visualizacién de | Muestra codigos de barra invertida | There\sare\sfour\sdisplay\ | cédigos “” para todos los caracteres no stypes.\n\\\sis\sa\ visualizables. sbackslash Visualizacion de | Muestra unasterisco(*)paracada | ###*#s82¥sssvanenswenevess contrasefia cardcter, incluidos los espacios. | tt ¥xttereneeeeeyes Visualizacién Muestra el valor ASCII de cada | 5468 6572 6520 6172 hexadecimal cardcter en hexadecimal en lugar | 666F 7572 2064 6973 6179 2074 7970 6573 SC20 6973 2061 2062 6B73 6C61 7368 2E | LabVIEW almacena cadenas de caracteres como un puntero a una estructura que contiene un valor con una longitud de 4 bytes seguido de un array 1D de nimeros enteros de bytes (earacteres de 8 bits). © Nabonal instruments | 3413 Leecion & Implementacién de un Vt Enums Un enum (indicador, constante 0 control enumerado) es una combinacién de tipos de datos. Un enum representa una pareja de valores, una cadena de caracteres y un numérico, donde el enum puede ser uno de una lista de valores. Por ejemplo, si cre6 un tipo de enum llamado Mes, las parejas de valores posibles para una variable Mes son Enero-0, Febrero-1, etc. hasta Diciembre-11. La figura 3-9 muestra un ejemplo de estas parejas de datos en el cuadro de didlogo Properties para un control enumerado. Figura 3-9. Propiedades para el control enumerado Mes [i EnorPrepanicn Monin i is Pepenonce [Dut Tipe | Diplomat | Edtes | Gocomeration [! ees) (pees TOE) (ena) (eR Manual de Gurso LabVIEW C Los enums resultan iitiles porque es més facil manipular nimeros en el diagrama de bloques que cadenas de caracteres. La figura 3-10 muestra el control enumerado Mes (Month), la seleccion de ‘una pareja de datos en el control enumerado y el terminal correspondiente del diagrama de bloques Figura 3-10. Control enumerado Mes (Month) Posi dune ay August September ‘October November Dinamicos EI tipo de datos dinamico almacena la informacién que genera o adquiere un VI Express. Fl tipo de datos dindmico aparece como un terminal azul oscuro, mostrado abajo. La mayoria de Vis Express aceptan o devuelven el tipo de datos dindmico. Puede cablear el tipo de datos dinémico a ‘cualquier indicador 0 entrada que acepte datos numéricos, de forma de onda o booleanos. Cablee el tipo de datos dindmico a un indicador que pueda presentar mejor los datos. Bjemplos de indicadores son graficos tipo “graph”, graficos tipo “chart” 0 indicadores numéricos. ca La mayoria del resto de Vis y funciones de LabVIEW no aceptan el tipo de datos dinamico. Para utilizar un VI 0 funcién integrada para analizar o procesar los datos que incluye el tipo de datos dinamico, debe convertir el tipo de datos dinamico. Use el VI Express Convert from Dynamic Data para convertir el tipo de datos dindmico en tipos de datos numéricos, de forma de onda y de array para usar con otros Vis y funciones. Cuando colocael VI Express Convert from Dynamic Data en el diagrama de bloques, aparece e] cuadro de didlogo Configure Convert from Dynamic Data. El cuadro de didlogo Configure Convert from Dynamic Data muestra opciones para especificar como desea dar formato a los datos que devuelve el VI Express Convert from Dynamic Data, © National instruments | 38 feccién 3 Implementacidn de un V1 Cuando cablea un tipo de datos dinémico a un indicador de array, LabVIEW aftade autométicamente el VI Express Convert from Dynamic Data al diagrama de bloques. Haga doble clic en ef VI Express Convert from Dynamic Data para abrir el cuadro de didlogo Configure Convert from Dynamic Data y controlar cémo aparecerdn los datos en el array. C. Documentacion de codigo Los desarrolladores profesionales que mantienen y modifican VIs conocen el valor de una buena documentacién. Documente bien el diagrama de bloques para facilitar las futuras modificaciones del cédigo. Ademés, documente bien la ventana del panel frontal para explicar el objetivo del VI y los objetos det panel frontal, Use ayudas, descripciones, propiedades de VI y un buen disefio para documentar las ventanas del panel frontal Ayudas y descripciones {Las ayudas son breves descripciones que aparecen cuando mueve el cursor sobre un control © indicador mientras se ejecuta un VI. Por ejemplo, podria afiadir una ayuda para indicar que una temperatura es en grados Celsius 0 explicar cémo funciona una entrada en un algoritmo. Las descripeiones ofrecen informacién adicional sobre controles ¢ indicadores especificos. Las y alrededor de cualquier texto de la descripeién al que desee dar formato en negrita. También puede utilizar la propiedad VI Description para modificar la descripcién del V1 programaticamente. * Help tag: contiene el nombre del fichero HTML o Ia palabra clave del indice de] tema que desea vincular en un fichero de ayuda compilado. También puede utilizar la propiedad Help:Document Tag para configurar la etiqueta de ayuda programéticamente. 2.16 | com Manval de Curso LabVIEW Core 1 + Help path: contiene la ruta al fichero HTML 0 al fichero de ayuda compilado que desea vincular desde la ventana Context Help. Si este campo esta vacio, el enlace Detailed help no aparecerd en la ventana Context Help y se atenuard el botén Detailed help, + Browse: muestra un cuadro de didlogo de fichero que se utiliza para navegar hasta un fichero HTML o hasta un fichero de ayuda compilado para utilizarlo como ruta de ayuda Nombre de controles e indicadores Si da nombres logicos y descriptivos a controles e indicadores, facilitard el uso de los paneles frontales. Por ejemplo, si llama aun control Temperature, un usuario qui2a no sepa qué unidades utilizar. Sin embargo, silo llama Temperature °C, afiadira mas informacion al panel frontal Ahora sabré que debe introducir temperaturas en unidades métricas. Programacion grafica Aunque la naturaleza grafica de LabVIEW ayuda a la autodocumentacién de diagramas de bloques, los comentarios adicionales ayudan a la hora de modificar sus VIs posteriormente. Existen dos tipos de comentarios de diagrama de bloques: los que describen Ja funcién u operacién de algoritmos y comentarios que explican la finalidad de los datos que pasan por los cables. Ambos tipos de comentarios aparecen en el siguiente diagrama de bloques. Puede insertar etiquetas estandares con la herramienta de etiquetado, o insertando una etiqueta libre desde la subpaleta Functions»Programming»Structures»Decorations. De forma predeterminada las etiquetas libres tienen un color de fondo amarillo. Figura 3-11. Documentar un diagrama de bloques HI'PID Output" __ Bh ra alelate the control cutput or the Rx vessel temperature Facoure' Use las siguientes pautas para comentar los Vis: + Use comentarios en el diagrama de bloques para explicar lo que esta realizando el codigo + Aunque el cédigo de LabVIEW puede autodocumentarse porque es grafico, use etiquetas libres para describir cémo funciona el diagrama de bloques. + Utilice etiquetas para identificar objetos en el panel frontal y el diagrama de bloques. LabVIEW ineluye dos tipos diferentes de etiquetas—etiquetas propias y etiquetas libres. Las etiquetas propias pertenecen a un objeto particular y se mueven con él y se usan para deseribir © Navonal insinuments | 3-17 Leocion 3 implementacién de un Vi dicho objeto tinicamente, Las etiquetas libres no pertenecen a ningiin objeto, y puede crearlas, moverlas, rotarlas o borrarlas independientemente. + No muestre etiquetas en llamadas de funcién y de subVIs, ya que suelen ser grandes y poco manejables. Un desarrollador que observe el diagrama de bloques puede encontrar el nombre de una funcién o subVI en la ventana Context Help. + Utilice etiquetas propias con conexiones largas para identificar su uso. Etiquetar cables resulta Util para los que proceden de registros de desplazamiento y para cables largos que pueden abarcar todo el diagrama de bloques. Consulte la seceiGn Estructuras Case de esta leccién para obtener informacién adicional acerca de los registros de desplazamiento. + Etiquete estructuras para especificar su funcionalidad principal. + Btiquete constantes para especificar su naturaleza + Use etiquetas libres para documentar algoritmos que usa en los diagramas de bloques. Si usa un algoritmo de un libro u otra referencia, incluya la informacién de referencia. D. Bucles While Al igual que un bucle Do o un buele Repeat-Until en lenguajes de programacién basados en texto, un bucle While, mostrado en la figura 3-12, ejecuta un subdiagrama hasta que ocurra una condicion. La siguiente ilustracién muestra un buele While en LabVIEW, un diagrama de flujo equivalente a la funcionalidad del bucle While, y un ejemplo de pseudocédigo de la funcionalidad de! bucle While Figura 3-12. Bucle While NS “Condiion mel? No Repeat (code) atid Condition net: nd @ ® 2 Diagrama de flujo 3 Pseudocddigo El bucle While se encuentra en la paleta Struetures. Seleccione el bucle While en la paleta y despues use el cursor para arrastrar un recténgulo de seleccién alrededor de la seccién del diagrama de bloques que desee repetir. Cuando suelte el botén del ratén, un limite de bucle While encerrara la seccién que seleccion6. Afiada objetos del diagrama de bloques al bucle While arrastrandolos y soltindolos dentro de éste. Manual oe Curso LanviEW Core t @ Consejo El bucle While siempre se ejeeut al menos una vez EI bucle While ejecuta el subdiagrama hasta que el terminal condicional, un terminal de entrada, reciba un valor booleano especifico. El bucle While no incluye un contaje de iteraciones configurado y se cjecuta hasta el infinito si la condicién nunca ocurre Si un terminal condicional es Stop if True, coloca el terminal de un contro] booleano fuer de un bucle While, y si el control es FALSE cuando se inicia el bucle, provocara un bucle infinito, como se muestra en el siguiente ejemplo. También provoca un bucle infinito si el terminal condicional es Continue if True y el control fuera del bucle se configura en TRUE, como se muestra en la figura 3-13. Figura 3-13. Bucle infinito Si cambia el valor del control, no detendré el bucle infinito, porque el valor sdlo se lee una vez, antes de que empiece el bucle. Para detener un bucle infinito, debe abortar el VI haciendo clic en el botén Abort Execution en la barra de herramientas. ‘También puede realizar un control de errores basicos con el terminal condicional de un bucle ‘While. Cuando cablea un cluster de error al terminal condicional, sélo pasa al terminal el valor True 0 False del parémeiro status del cluster de error. Asimismo, los elementos del ment contextual Stop if True y Continue if True cambian a Stop if Error y Continue while Error. La terminal de iteracién es una terminal de salida que contiene el numero de iteraciones completadas. a El contaje de iteraciones para el bucle While siempre empieza en cero. En el siguiente diagrama de bloques, el bucle While se ejeouta hasta que la salida de Ja funcién Random Number sea mayor o igual que 0, 9 y el control Enable sea True. La funcién And devuelve True sélo si ambas entradas son True. De lo contrario, devolyera False. © Natonal Instruments | 319 Lecei6n 3 Implementacin de un VE En el siguiente ejemplo, existe mayor posibilidad de un bucle infinito. Generalmente, el comportamiento deseado es que se cumpla una condicién para detener el bucle, en lugar de necesitar que se cumplan ambas condiciones. Figura 3-14, Posible bucle infinito nae c za Tuneles a través de Estructuras Los tiineles suministran datos hacia dentro y hacia fuera de las estructuras como bucles While. El tuinel aparece como un bloque s6lido en el borde del bucle While. El bloque es del color del tipo de datos cableado al tinel. Los datos salen de un bucle cuando éste termina. Cuando un tine! introduce datos en un buele, éste se ejecuta s6lo cuando los datos Ilegan al tunel, En el siguiente diagrama de bloques, el terminal de iteracién se conecta a un tinel. El valor del trinel no entra en el indicador Iterations hasta que el bucle While termine de ejecutarse. Figura 3-15. Tunel del bucle While a Solo aparece en el indicador Iterations el ultimo valor del terminal de iteracién. Usando bucles While para chequeo y manejo de errores Puede cablear un cluster de error al terminal condicional de un bucle While o un bucle For con un terminal condicional para detener la iteracion del bucle. Cuando cablea un cluster de error al terminal condicional, sélo pasa al terminal el valor TRUE o FALSE del parametro status del cluster de error. Si ocurre un error, el bucle se detendra. Si cablea un cluster de error al terminal condicional, los elementos del mend contextual Stop if ‘True y Continue if True cambiaran a Stop on Error y Continue while Error. 3-20 | nicam Manual de Curso LabviEW Core + En la figura 3-16, el cluster de error y un bot6n de parada se utilizan para determinar cuando detener el bucle. Este es el método recomendado para detener la mayoria de los bucles. Figura 3-16. Detener un bucle While Simulate Signa E. Bucles For Un bucle For, mostrado abajo, ejecuta un subdiagrama cierto miimero de veces. La figura 3-17 muestra un bucle For en LabVIEW, un diagrama de flujo equivalente a la funcionalidad del bucie For, y un ejemplo de pseudocédigo de la funcionalidad del bucle For. Figura 3-17. Bucle For fey une Repeat |code; isi+2 @ 1 Bucle For de LabVIEW 2 Diagrama de flujo 3 Pseudocédiga El bucle For se encuentza en la paleta Structures, También puede colocar un bucle While en el diagrama de bloques; haga clic con el bot6n derecho en el borde del bucle While y seleccione Replace with For Loop en el menti contextual para cambiar un bucle While por uno For. La terminal de contaje es una terminal de entrada cuyo valor indica cudntas veces debe repetir el subdiagrama, wy La terminal de iteracién es una terminal de salida que contiene el numero de iteraciones completadas. a ‘© Nabonal instruments { 3-21 Lecoién 3 Implementacién de un VI El contaje de iteraciones para el bucle For siempre empieza en cero. EI bucle For de la figura 3-18 genera un niimero aleatorio cada segundo durante 100 segundos y muestra los niimeros aleatorios en un indicador numérico. Figura 3-18. Ejemplo de bucle For Afiadir un terminal condicional a un bucle For Si es necesario, puede afiadir un terminal condicional para configurar un bucle For para que se detenga cuando ocurra un error o una condicién booleana. Un bucle For con un terminal condicional se ejecuta hasta que ocurra la condicién o hasta que se completen todas las iteraciones, lo que suceda primero. Los bucles For que configure para una salida condicional tendran un simbolo rojo en el terminal de contaje y un terminal condicional en la esquina inferior derecha. Tras configurar el bucle For para salir condicionalmente, el bucle aparece similar a la figura 3-19. El siguiente bucle For genera un miimero aleatorio cada segundo hasta que transcurran 100 segundos hasta que el usuario haga clic en el botén de parada nal a. 3-19. Bucle For configurado para una salida condi Random hare (0-1) Rando abe Inder ww thw | Para afadir un terminal condicional a un bucle For, haga clic con el botén derecho del borde del bucle For y seleccione Conditional Terminal en el menti contextual. A continuacién, cablee el terminal condicional y el terminal de contaje. 322 | nicom Manual de Curso LabVIEW Core 1 Figura 3-20. Afiadir un terminal condicional a un bucie For Random Numbec (2) Visible ems » Hele Random Number Indester Descopton and Tip Breakpoint » ‘rues Pate » ata Siow clude rom Diagrrn Cleseup es Configure Reration Paraleism. Replace with Wale Loop Ferove For Loop ‘Ada Sit Resister Properties Usando bucles For para chequeo y manejo de errores En un bucle For con un terminal condicional, también debe cablear un valor al terminal de contaje © autoindexar un array de entrada para configurar un nimero maximo de iteraciones. EJ bucle For se ejecuta hasta que ocurra un error o hasta que se complete el niimero de iteraciones configurado Consulte la seccién Usando hucles While para chequeo y manejo de errares, para obtener informacién adicional. Conversion numérica en bucles For Como se deseribié en Conversién numérica, cuando cablea diferentes tipos de datos a la entrada de una funcién, la funcién generalmente retorna el tipo de dato mAs amplio. Sin embargo, si eablea un valor numérico coma flotante de precision doble a la terminal de cuenta de 32-bit en un buele For, LabVIEW coerciona el valor numérico mas grande a un niimero entero con signo de 32-bit mas pequefio. Aunque la conversién es contraria a los estindares normales de conversi necesaria, ya que un bucle For sdlo puede ejecutarse un mimero entero de veces. @ National instruments | 323 Leccién 3 Implementacién de un Vt Figura 3-21. Conversién en un bucle For able Preceee] ating Paint 1 Punto de conversion Para un mejor rendimiento, evite la conversién utilizando tipos de datos coincidentes 0 convirtiendo programéticamente a tipos de datos coincidentes, como en la figura 3-22. Figura 3-22. Evitando la coercién utilizando tipos de datos coincidentes etree : bb eee oT | — A Comparando bucles For y bucles While Los bucles For y los bucles While difieren de varias maneras. Consulte la tabla 3-3 para obtener una lista de diferencias entre bucles For y bucles While ‘Tabla 3-2. Comparando bucles For y bucles While Bucle For Bucle While Se ejecuta un mimero de veces a menos que se | Detiene la ejecucidn solo si el valor en la agregue una terminal condicional terminal condicional alcanza esa condicion Puede ejecutarse cera veces Debe ejecutarse al menos una vez Los tineles automaticamente dan un array de | Los ttineles automaticamente dan el Gltimo datos valor F. Temporizacién de Vis Cuando un bucle termina de ejecutar una iteracién, inmediatamente empieza a ejecutarla siguiente, a menos que llegue a una condicién de parada. Normalmente tendré que controlar la frecuencia © temporizacién de la iteracién. Por ejemplo, si esté adquiriendo datos y desea hacerlo cada 10 segundos, necesita poder temporizar las iteraciones del bucle para que ocurran cada 10 segundos, 3:24 | o.com Manual de Curso LabVIEW Core + ‘Aunque no necesite que la ejecucién ocurra con cierta frecuencia, debe facilitar al procesador tiempo para completar otras tareas, como responder a la interfaz del usuario, Esta seccién explica métodos para temporizar los bucles. Funciones de espera Coloque una funcidn de espera dentro de un bucle para que un VI se desaetive durante cierto tiempo. Esto permite al procesador abordar otras tareas durante el tiempo de espera. Las funciones de espera usan el reloj de milisegundos del sistema operativo. La funcién Wait Until Next ms Multiple controla un contador de milisegundos y espera hasta que éste alcance un miiltiplo de la cantidad que especifique. Use esta funcién para Sincronizar actividades. Sitie esta funcién en un bucle para controlar la velocidad de ejecncién de éste. Para que esta funcién sea efectiva, el tiempo de ejecucién del cédigo debe ser inferior al tiempo especificado para esta funcidn, El tiempo de ejecucidn de la primera iteracién del bucle es indeterminado, La funcién Wait (ms) espera hasta que el contador de milisegundos cuente una cantidad igual a la entrada que especifique. Esta funcién garantiza que la velocidad de ejecucién del bucle se corresponda al menos con el valor que especifique a la entrada de la funcién. & XE} Nota _El VI Express Time Delay actiia de modo similar a la funcién Wait (ms) pero con clusters de error integrados. Consulte la leecién 2, Resolucién de problemas y depuracién de Vis para obtener informacién adicional acerca de os clusters de error Tiempo transcurrido En algunos casos, resulta til determinar cuanto tiempo transcurre después de un punto en sti VI El VI Express Elapsed Time indica el tiempo transcurrido tras el instante de inicio especiticado. Este VI Express controla el tiempo mientras que el VI sigue ejecutandose. Este VI Express no facilita al procesador el tiempo para completar otras tareas. Utilizaré el VI Express Elapsed Ti en el proyecto del curso Weather Station. ‘© Nationa! Instruments | 3-25 Lecsisn 3 Implementacién do un VE G. Retroalimentacion de datos en los bucles Al programar con bucles, a menudo debe acceder a datos de iteraciones anteriores de! bucle en LabVIEW. Por ejemplo, si est4 adquiriendo un dato en cada iteracién de un bucle y debe hallar el promedio cada cinco datos, debe conservar los datos de iteraciones anteriores del bucle. XE} Nota Los nodos de realimentacién son otro método para conservar informacién de una ‘teracién anterior. Consulte el tema Feedback Node de la Ayuda de LabVIEW para obtener informacién adicional acerca de nodos de realimentacion. Registros de desplazamiento Los registros de desplazamiento son similares a las variables estéticas en lenguajes de programacién basados en texto. Use registeos de desplazamiento cuando desee pasar valores de iteraciones anteriores a la siguiente iteracién a través del bucle. Un registro de desplazamiento aparece como un par de terminales directamente opuestos entre si en los lados verticales del borde del bucle bea El terminal de la derecha del bucle contiene una flecha hacia arriba y almacena datos al completar una iteraci6n. Lab VIEW transfiere los datos conectados al lado derecho del registro en la siguiente iteracién. Después de que se ejecute el bucle, el terminal del lado derecho del bucle devuelve el ‘ltimo valor almacenado en el registro de desplazamiento. Cree un registro de desplazamiento haciendo clic con el bot6n derecho en el borde izquierdo o derecho de un bucle y seleccionando Add Shift Register en el meni contextual Un registro de desplazamiento transfiere cualquier tipo de datos y cambia autométicamente al tipo dle datos de! primer objeto cableado al registro de desplazamiento. Los datos que cablee a los terminales de cada registro de desplazamiento deben ser del mismo tipo. Puede afiadir mas de un registro de desplazamiento a un bucle. Si tiene varias operaciones que usan valores dle iteraciones previas dentro del bucle, use varios registros de desplazamiento para almacenar los valores de datos de los distintos procesos en la estructura, como se muestra en la siguiente figura 3.28 | nicom Manual de Curso LabVIEW Core 1 Figura 3-23. Uso de varios registros de desplazamiento Inicializacion de registros de desplazamiento Al inicializar un registro de desplazamiento, se restablece ei valor que transmite el registro de desplazamiento a la primera iteraci6n del bucle cuando se ejecuta un VI. Inicialice un registro de desplazamiento cableando un control o constante al terminal del registro de desplazamiento en el lado izquierdo del bucle, como se muestra en la figura 3-24 Figura 3-24. Registro de desplazamiento inicializado En la figura 3-24, el bucle For se ejecuta cinco veces, inerementando el valor que lleva el registro de desplazamiento en uno cada vez. Tras cinco iteraciones del bucle For, el registro de desplazamiento pasa el valor final, 5, al indicador y el VI finaliza su ejecucién. Cada vez que ejecute el VI, el registro de desplazamiento empieza con un valor de 0 Si no inicializa el registro de desplazamiento, el bucle usa el valor escrito en el registro de desplazamiento cuando se ejecuté por iltima vez.el bucle o, si éste nunca se ejecut6, usa el valor predeterminado del tipo de dato. Use un registro de desplazamiento sin inicializar para conservar la informacién de estado entre las siguientes ejecuciones de un VI. La figura 3-25 muestra un registro de desplazamiento sin inicializar. Figura 3-25. Registro de desplazamiento sin inicializar a © Notional Insteurents | 5-27 Leccisn 3. implementacién de un VI En la figura 3-25, el bucle For se ejecuta cinco veces, incrementando el valor que lleva el registro cle desplazamiento en uno cada vez. La primera vez que ejecute el VI, el registro de desplazamiento empieza con un valor de 0, que es el valor predeterminado de un ntimero entero de 32 bits. Tras cinco iteraciones del bucle For, el registro de desplazamiento pasa el valor final, 5, al indicador y el VI finaliza su ejecucién. La siguiente vez que ejecute el VI, el registro de desplazamiento comenzaré con un valor de 5, que era el diltimo valor de la ejecucién anterior. Tras cinco iteraciones del bucle For, el registro de desplazamiento pasa el valor final, 10, al indicador. Si ejecuta de nuevo el VI, el registro de desplazamiento empieza con un valor de 10, y asi sucesivamente. Los registros de desplazamiento sin inicializar conservan el valor de la iteracién anterior hasta que cierre el VI Registros de desplazamiento apilados Los registros de cesplazamiento apilados permiten acceder a datos de iteraciones anteriores al bucle. Los registros de desplazamiento apilados almacenan valores de varias iteraciones anteriores y llevan esos valores a las siguientes iteraciones. Para crear un registro de desplazamiento apilado, haga clic con el boton derecho en el terminal izquierdo y seleccione Add Element en el ment contextual. Los registros de desplazamiento apilados slo pueden utilizarse en el lado izquierdo del bucle, porque el terminal derecho transfiere los datos generados s6lo desde la iteracién actual a la siguiente, como se muestra en la figura 3-26. Figura 3-26. Uso de registros de desplazamiento apilados Si afiade otro elemento al terminal izquierdo del diagrama de bloques anterior, los valores de las dos iltimas iteraciones se transmiten a la siguiente iteracién, almacendndose el valor de iteracién mas reciente en el registro de desplazamiento superior. El terminal inferior almacena los datos que le Hlegan de la iteracién anterior. H. Graficando datos — Waveform Chart El grafico tipo “waveform chart” es un tipo especial de indicador numérico que muestra una o més curvas de datos, normalmente adquiridos a una velocidad constante, Los graficos tipo “waveform chart” pueden mostrar tuna o varias curvas. La figura 3-27 muestra los elementos de un grafico tipo “waveform chart” de varias curvas. Se muestran dos grificos: Raw Data y Running Avg. 3:28 | nicom Manual de Curso Figura 3-27. Elementos de un Waveform Chart FiowData He Wavelam Chart Running ava 0aioamanai = Tanpltude 3" 1 Etigueta 3 Escala X & Paleta del grafico 2 Escala Y 4 Leyenda de la escala 6 Leyenda de la curva Configure cémo se actualiza el grafico para mostrar nuevos datos. Haga clic con el botdn derech en el grafico y seleccione Advanced»Update Mode desde el menit contextual para configura modo de actualizacién del grafico. El grafico utiliza los siguientes modos para mostrar datos: + Strip Chart: muestra los datos méviles desplazandose continuamente de izquietda a der por el grafico con los datos antiguos a la izquierda y con los nuevos a es similar a un registrador de cinta de papel. Strip Chart es el modo de actualizacior predeterminado. + Scope Chart: muestra un elemento de datos, como un impulso o una onda, desplazando: parcialmente por el grafico de izquierda a derecha. Para cada nuevo valor, el g) valor a la derecha del ultimo valor. Cuando la curva llega al borde derecho de la zona de trazado, LabVIEW borra la curva y empieza a trazar de nuevo desde el borde izquicrdo, La visualizacién de wn scope chart es similar a la de un osciloscopio. fico traza + Sweep Chart: funciona de modo parecido a un scope chart salvo que mue antiguos a la derecha y los nuevos a la izquierda separados por una linea vertical. LabV borra la curva en un sweep chart cuando ésta llega al borde derecho de la zona de tra sweep chart es similar a la visualizacién de un electrocardiograma, © National Instauments | 3-2 La figura 3-28 muestra un ejemplo de cada modo de actualizacién del grifico. El scope chart y el ep chart tienen visualizaciones de retrazado parecidas a un osciloscopio. Como retrazar una curva requiere menos esfuerzo, el scope chart y el sweep chart muestran curvas mucho més ip chart mente que el Figura 3-28. Modos de actualizacién de graficos ‘Sexpe chat Sema Cha | 9004 | ony sno | mo Loo | me l Cableado de graficos Puede cablear una salida escalar directamente a un grafico tipo “waveform chart”. El terminal del grafico tipo “waveform chart” de la figura 3-29 coincide con el tipo de datos de entrada. Figura 3-29. Cableado de una sola curva a un gréfico tipo "waveform chart os grafic s tipo “waveform chart” pueden mostrar varias curvas juntas usando la funcién Bundle vada en la paleta Cluster, Class & Variant. En la figura 3-30, ia funcién Bundle une Jas salidas tres Vis en la curva del grafico tipo “waveform chart”, Figura 3-30. Gableado de varias curvas a un grafico tipo “waveform chart” Cc — | | ia | a | } ¢ | | lo a po “waveform chart” cambia para coincidir con la salida de la funcién adir mas curvas, use la herramienta de posicionamiento para cambiar el tamafio de Manual de Curso LabVIEW Core + |. Estructuras Case Una estructura Case tiene dos o mas subdiagramas o casos. Sélo se ve un subdiagrama a la vez y la estructura ejecuta sélo un caso cada vez. Un valor de entrada determina qué subdiagrama ejecutar. La estructura Case es similar a las declaraciones switch o a las declaraciones if..then...else en lenguajes de programacién basaclos en texto. La etiqueta del selector de caso en la parte superior de la estructura Case contiene en el centro el nombre del valor de seleccién que se corresponde con el caso actual y fas flechas de ineremento y decremento a cada lado. Haga clic en las flechas de incremento y decremento para desplazarse por los casos disponibles. ‘También puede hacer clic en la flecha junto al nombre del caso y seleccionar un caso del meni desplegable Cable un valor de entrada, o selector, a la terminal de seleccién para determinar qué caso se ejecuta 8 ‘Debe cablear un niimero entero, un valor booleano, una cadena de caracteres 0 un valor de tipo enumerado en el terminal de seleccién. Puede colocar el terminal de seleccién en cualquier parte del borde izquierdo de la estructura Case. Si el tipo de dato del terminal de seleccisn es booleano, Ja estructura tiene un caso True y uno False. Si el terminal de seleccién es un nfimero entero, cadena de caracteres 0 valor de tipo enumerado, la estructura puede tener cualquier niimero de casos XE) Nota Por defecto, los valores de cadenas de caracteres que cablee al terminal de seleccién distinguen mayiisculas de minusculas, Para permitir coincidencias sin distincién de mayasculas y mimisculas, cablee un valor de cadena de caracteres al terminal de seleccién, haga clic con el botsn derecho en el borde de la estructura Case y seleccione Case Insensitive Match en el menii contextual. Si no especifiea un caso predeterminado para que la estructura Case controle valores fueva de rango, debe enumerar explicitamente cada valor de entrada posible. Por ejemplo, si el selector es un niimero entero y especifica casos para 1, 2 y 3, debe especificar un caso predeterminado a ejecutar si el valor de entrada es 4 u otro valor de niimero entero sin especiticar 2 National instruments | $31 Lecsisn 3 Implementacién de un Vi SE\_Nota_No puede especificar un caso predeterminado si cablea un control booleano al selector. Si hace clic con el botén derecho en la etiqueta del selector de caso, Make This ‘The Default Case no aparecerd en el ment contextual. Seleccione el valor TRUE 0 FALSE en el control booleano para determinar qué caso ejecutar. Para convertir una estructura Case en una estructura Stacked Sequence, haga clic con el botén derecho en la estructura Case Sequence y seleccione Replace with Stacked Sequence en el ment contextual. Haga clic con el botén derecho en el borde de la estructura Case para afadir, duplicar, eliminar 0 reordenar casos y para seleccionar un caso predeterminado. Seleccionar un caso La figura 3-31 muestra un VI que utiliza una estructura Case para ejecutar cédigo diferente en funcién de si un usuario selecciona °C 0 °F como unidades de temperatura. EI diagrama de bloques superior muestra el caso True en primer plano. En el diagrama de bloques intermedio, se selecciona el caso False. Para seleccionar un caso, escriba el valor en el identificador del selector de caso 0 use la herramienta de etiquetado para modificar los valores. Tras seleccionar otro caso, ése aparecera en el diagrama de bloques, como se muestra en el diagrama de bloques inferior de la Fase eegeraure wine | ¥ Temoeratve cae SEER) Si introduce un valor selector que no es del mismo tipo que el objeto cableado al terminal de seleccién, el valor aparece en rojo. Esto indica que el VI no se ejecutard hasta que elimine o modifique el valor. Asimismo, debido al posible error de redondeo inherente de la aritmética de 3.32 | alcom coma flotante, no puede utilizar nimeros en coma flotante como valores de seleccién de caso. Si cablea un valor en coma flotante al caso, LabVIEW redondeard el valor al niimero entero mas cercano. Si escribe un valor en coma flotante en la etiqueta del selector de caso, el valor aparecera rojo para indicar que debe eliminar o modificar el valor antes de que pueda ejecutarse la estructura Tuneles de entrada y salida en estructuras Case Puede crear varios tineles de entrada y salida para una estructura Case. Las entradas estén disponibles en todos los casos, pero los casos no necesitan utilizar cada entrada, No obstante, debe definir un tinel de salida para cada caso. Considere el siguiente ejemplo: una estructura Case en el diagrama de bloques tiene un tiinel de salida, pero en al menos uno de los casos no hay valor de salida cableado al tunel. Si ejecuta este caso, LabVIEW no sabré qué valor devolver para la salida. LabVIEW indica este error dejando el centro del tinel en blanco. El caso sin cablear podria no ser el caso que se esta viendo en el diagrama de bloques. Para corregir este error, muestre los casos que contienen el tine! de salida sin cablear y cable una salida al tunel. También puede hacer clic con el botén derecho en el tinel de salida y seleccionar Use Default If Unwired en el ment contextual para utilizar el valor predeterminado para el tipo de datos del tiinel en todos los tineles sin cablear. Cuando se cablea la salida en todos los casos, e tuinel de salida aparece relleno con el color del tipo de dato asociado al mismo. Evite usar la opeién Use Default If Unwired. Si usa esta opeién, no documentara bien el diagrama de bloques y podra confundir a otros programadores que utilizan su cédigo. La opcién Use Default If Unwired también dificulta la depuracién del c6digo. Si usa esta opcién, tenga en cuenta que el valor predeterminado utilizado es el del tipo de datos que esta conectado al tinel. Por ejemplo, si el tinel es un tipo de datos booteano, el valor predeterminado es FALSE. Consulte la tabla 3-3 para ver una lista de valores predeterminados para los tipos de datos. ‘Tabla 3-3. Valores predeterminados de tipos de datos Tipo de datos Valor predeterminado Numérico 0 Booleano PALSE Cadena de caracteres vacio ("") © National lsiuments | 3-83 Leccida 3 Implementacion de un Vt Ejemplos En los siguientes ejemplos, los valores numéricos pasan por tuneles a la estructura Case y se suman © restan, en funcién del valor cableado al terminal de seleccién. Estructura Case booleana {La figura 3-32 muestra una estructura Case booleana, Los casos se solapan entre si para simplificar ta ilustracion, Figura 3-32, Estructura Case booleana Si el control booleano cableado al terminal de seleccién es True, el VI suma los valores numéricos. De lo contrario, el VI resta los valores numéricos. En situaciones donde simplemente debe elegir entre dos valores basado en la entrada de un booleano, la instruccion Select puede ser usada en vez de la estructura Boolean Case. > Estructura Case de numero entero La figura 3-33 muestra una estructura Case de niimero entero. Figura 3-33, Estructura Case de numero entero 5.34 | nheam Manual de Gurso LabVIEW Cove 1 Numeric es un control de anillo de texto situado en la paleta Text Controls que asocia valores numéricos con elementos de texto. Si el niimero entero cableado al terminal de seleccidn es 0 (add), el VI suma los valores numéricos. Si el valor es 1 (subtract), el VI resta los valores numéricos. Si Numeric es cualquier otro valor distinto de 0 (ada) 0 1 (subtract), el VI suma los valores numéricos, porque ése es el caso predeterminado. Estructura Case de cadena de caracteres La figura 3-34 muestra una estructura Case de cadena de caracteres. Figura 3-34. Estructura Case de cadena de caracieres TSE bea =H neu moa ah, Si String es add, el VI suma los valores numéricos. Si String es subtract, el VI resta los valores numéricos. Estructura Case enumerada La figura 3-35 muestra una estructura Case enumerada. Figura 3-35. Estructura Case enumerada Un control de tipo enumerado facilita a los usuarios una lista de elementos para seleccionar. F tipo de datos de un control de tipo enumerado incluye informacién sobre los valores numéricos y etiquetas de cadenas de caracteres del control. El selector de caso muestra la etiqueta de la cadena de caracteres para cada elemento del control de tipo enumerado cuando selecciona Add Case For Every Value en el ment contextual de la estructura Case. La estructura Case ejecuta el {© National instrumenis | 38 LLeccién 31 Implementaciin de un Vi subdiagrama de caso apropiado en funcién del elemento actual del control de tipo enumerado. En el diagrama de bloques anterior, si Enum es add, el VI suma los valores numéricos. Si Enum es subtract, el VI resta los valores numéricos. Uso de estructuras Case para gestionar errores El siguiente ejemplo muestra una estructura Case donde un cluster de error define los casos. Figura 3-36, Caso No Error Hieerer “FI & Resa From Messurement Waveform Graph sarin oo ero) im fests | Figura 3-37. Caso Error i ar Post tity Waveform Gagh erin (roenor) Cuando cablea un cluster de error a la terminal de selecci6n de una estructura Case, la etiqueta del selector de caso muestra dos casos—Exror y No Error, y el borde de la estructura Case cambia de color—rojo para Exror y verde para No Error. Si ocurre un error, la estructura Case ejecuta el subdiagrama Error. Cuando cablea un ehister de error al terminal de seleccién, la estructura Case s6lo reconoce el elemento booleano status del cluster. 3.96 | nlcom Manual de Curso LabVIEW Gove + Autorrevision: Cuestionario 1, Siuna entrada de una funcién esta mareada con un punto rojo (conocido como punto de coercién), qué es lo que indica el punto? a. Se han transferido datos dentro de la estructura, b. Un bucle For fue configurado con un terminal condicional. c. Un terminal de iteraciones de un bucle For no esté cableado, d. EI valor transferido al nodo fue convertido a una representacién diferente . @Cudles de las siguientes estructuras deben ejecutarse al menos una vez? a. Bucle While b. Bucle For 3. {Qué elemento de los siguientes sélo esté disponible en el diagrama de blogues? a, Control b. Constante ©. Indicador d. Panel de conectores 4, {Qué accién mecanica hace que un control booleano en el estado FALSE cambie a TRUE cuando hace clic en él y permanezca TRUE hasta que lo libere y LabVIEW haya leido el valor? a, Switch until released b. Switch when released c, Latch until released d. Latch when released © NationatInstuments | 2-37 Manual de Cureo LaQviEW Core 1 Autorrevision: Respuestas 1, Siuna entrada de una funcién esta marcada con un punto rojo (conocido como punto de coercién), 2qué es lo que indica el punto? a, Se han transferido datos dentro de la estructura, b. Un buele For fue configurado con un terminal condicional, ¢. Un terminal de iteraciones de un bucle For no est cableado. d. El valor transferido al nodo fue convertido a una representacién diferente. 2. gCudles de las siguientes estructuras deben ejecutarse al menos una vez? a, Bucle While b. Bucle For 3. {Qué elemento de los siguientes sd/o esta disponible en el diagrama de bloques? a. Control b. Constante ¢. Indicador d. Panel de conectores 4, {Qué accién mecanica hace que un control booleano en el estado FALSE cambie a TRUE cuando hace clic en él y permanezca TRUE hasta que lo libere y LabVIEW haya leido el valor? a. Switch until released b. Switch when released c, Latch until released d. Latch when released @ National instruments | 339 Lescién 2 implamentacion de un VI Notas 3-40 | aicom Desarrollo de aplicaciones modulares Esta leccién describe cémo desarrollar aplicaciones modulares. La potencia de LabVIEW reside en la naturaleza jerérquica del VI. Tras crear un VI, puede utilizarlo en el diagrama de bloques de otto VI. No existen limites en el niimero de capas de la jerarquia, El uso de la programacién modular ayuda a gestionar cambios y depurar el diagrama de bloques rapidamente. Temas A. Comprensién de la modularidad B. Creacién del panel de iconos y conectores C. Uso de subVIs {© National lasteuments | ection & — Desarrolo de aplicaciones modulares A. Comprension de la modularidad La modularidad define ef grado en que un programa se compone de médulos diferenciados de modo que un cambio en un médulo tenga un impacto minimo en otros médulos. Los médulos de LabVIEW se denominan subVIs. Un VI dentro de otro VI se denomina subV1. Un subVI corresponde a una subrutina en lenguajes de programacién basados en texto, Cuando hace doble clic en un subVI, aparece un panel frontal y un diagrama de bloques en lugar de un cuadro de dilogo donde poder configurar opciones. El panel frontal incluye controles e indicadores. El diagrama de bloques incluye cables, iconos del panel frontal, funciones, posiblemente subVIs y otros objetos de LabVIEW que también podrian parecerle familiares. La esquina superior derecha de la ventana del panel frontal y de la ventana del diagrama de bloques muestra el icono para el VI. Es el mismo icono que aparece cuando sitiia el VI en el diagrama de bloques. Cuando cree Vis, quiz piense que realiza ciertas operaciones frecuentemente. Considere usar subVIs o bueles para realizar esa operacién repetitivamente. Por ejemplo, el siguiente diagrama de bloques contiene dos operaciones idénticas, Figura 4-1. Diagrama de bloques con dos operaciones idénticas Dag Assistant 42 | nicom Manual de Curso LaaViEW Core 1 El ejemplo Llama al VI Temperature como un subVI dos veces en su diagrama de bloques y funciona del mismo modo que el diagrama de bloques anterior. También puede reutilizar el subVI en otros VIs. Los siguientes pseudocédigos y diagramas de bloques demuestran la analogia entre subVIs y subrutinas. Cédigo de funcién Cédigo para llamar al programa function average (inl, in2, out) ( | main { average (pointl, point2 out = (inl + ind)/2.0; 3 pointavg) ) | Diagrama de bloques del subV! Diagrama de bloques del VI Calling oe B. Creacidn del panel de iconos y conectores ‘Tras crear un panel frontal y un diagrama de bloques del VI, cree el icono y el panel de coneetores para poder utilizar el VI como un subVI. El icono y el panel de conectores se corresponden con el prototipo de funcién en lenguajes de programacién basados en texto. Cada VI muestra un icono en la esquina superior derecha de la ventana del panel frontal y de la ventana del diagrama de bloques. Un icono de VI es una representacién grifica de un VI. Puede contener texto, imagenes 0 una combinacién de ambos. Si utiliza un VI como un subVI, el icono identifica el subVI en el diagrama de bloques del VI. Si afiade el VI a una paleta, el icono del VI también aparece en la paleta Funetions. Puede hacer doble clic en el icono de la ventana del panel frontal o en la del diagrama de bloques para personalizarlo o modificario. YEA Nota Se recomienda personalizar el icono, aunque es opcional, Si usa el icone predeterminado de LabVIEW, no afectaré a la funcionalidad. También debe crear un panel de conectores, para usar el VI como un subVI El panel de conectores es un conjunto de terminales que se corresponde con los controles © indicadores de ese VI, similar a la lista de parametros de una llamada a una funcién en lenguajes de programacién basados en texto. El panel de conectores define las entradas y salidas que puede cablear al VI para que pueda usarlo como un subVI. Un panel de conectores recibe datos en sus © National instwuments | 4-3 Leceidn 4 Desarrote de aplicaciones modulates terminales de entrada, los pasa al cédigo del diagrama de bloques mediante los controles del panel frontal y recibe los resultados en sus terminales de salida desde los indicadores del panel frontal, Creacion de un icono Los iconos son representaciones graficas de VIs. Cada Vi muestra un icono en la esquina superior derecha de la ventana del panel frontal y de la ventana del diagrama de bloques. El icono del VI predeterminado contiene un mimero que indica cudntos VIs (hasta nueve VIs) nuevos abrié tras lanzar LabVIEW. Para desactivar esta numeracién, seleccione Tools» Options»Front Panel y desmargue la casilla de verificacién Use numbers in icons of new VIs (1 through 9). Un icono puede contener texto o imagenes. Si utiliza un VI como un subVI, el icono identifica el subVI en el diagrama de bloques del VI. Si aitade el VI a una paleta, el icono del VI también aparece en la paleta Functions, Use el cuadro de didlogo Leon Editor para modificar un icono de un VI. Haga doble elie sobre el ioono en la esquina superior derecha de una ventana del panel frontal o del diagrama de bloques para que aparezca el cuadro de didlogo Icon Editor. Cree un icono para representar un VI 0 control personalizado gréficamente. Use el cuadro de didlogo Ieon Editor para crear 0 modificar iconos. Puede utilizar banners para identificar VIs relacionados. National Instruments recomienda crear y guardar un banner en forma de plantilla. A continuacién, puede utilizar esta plantilla para un icono de VI relacionado y modificar el cuerpo del icono del VI para suministrar informacién sobre el VI en cuestion Guardar un banner como una plantilla Complete estos pasos para guardar un banner como una plantilla de icono para un VI. 1. Haga doble clic sobre el icono en la esquina superior derecha de una ventana del panel frontal © del diagrama de bloques, o haga clic derecho en el icono y seleccione Edit Ieon en el meni contextual, para que aparezca el cuadro de didlogo Teon Editor. Pulse las teclas para seleccionar todas las capas de usuario del icono y pulse la tecla “Delete para eliminar la seleecién. El icono predeterminado es una capa de usuario individual denominada VI eon. 5. En la pagina Templates, seleccione la plantilla de icono_biank.png en la categoria VI» Frameworks. Puede examinar plantillas por eategoria o por palabra clave. Manual de Curse LabVIEW Core 1 4. Use la herramienta de reileno a Ja derecha del cuadro de didlogo Icon Editor para rellenar el banner del icono con un color. 5. Use la herramienta de texto para escribir texto en el banner del icono, Mientras el texto esté activo, puede mover el texto pulsando las teclas de flecha, 6. Seleccione File»Save As» Template para mostrar el cuadro de didlogo Save Leon As y guardar el icono como una plantilla para un uso posterior. LabVIEW guarda fas plantillas de iconos como ficheros . png de 256 colores. Creacién de un icono de VI desde una plantilla Complete estos pasos para crear un icono de VI que utilice la plantilla que creo. 1, Pulse las teclas para seleccionar todas las capas de usuario del icono y pulse la tecla para eliminar la seleccién. 2. En la pagina Templates, seleccione la plantilla que cre6, Puede examinar plantillas por categoria 0 por palabra clave 3. En la pagina Icon Text, escriba hasta cuatro lineas de texto de icono para el cuerpo del icono. Puede configurar la fuente, alineacién, tamaiio y color del texto. Si marca la casilla ce verificacién Center text vertically, el cuadro de didlogo Teon Editor centra el texto del icono verticalmente en el cuerpo del icono. 4. En la pagina Glyphs, arrastre y suelte simbolos en la zona Preview. Pulse la tecla 0 para voltear un simbolo horizontalmente o girarlo en sentido horario respectivamente, mientras lo mueve. También puede hacer doble clic en un simbolo para colocarlo en la esquina superior izquierda del icono, Puede examinar simbolos por categoria 0 por palabra clave, 5. Use la herramienta de mover para mover cualquier simbolo. Cada simbolo se encuentra en una capa distinta y por lo tanto se mueve independientemente. Tenga en cuenta que el resto de! icono se atentia cuando selecciona un simbolo, para poder identificar qué seleccién esti moviendo. 6. Use las herramientas de edicién a la derecha del cuadro de didlogo Teon Editor para modificar mis el icono, si es necesario. El cuadro de didlogo Teon Editor crea una nueva capa de usuario para cada uso no consecutive de las herramientas de edici6n. Seleccione Layers»Create New Layer para crear uma nueva capa de usuario durante los usos consecutivos de las herramientas de edicion. YE) Nota _No puede moditicar la plantilta del icono o el texto del icono con las herramientas de edicién de la derecha del cuadro de didlogo Teon Editor. Use la pagina Templates y Ja pagina Feon Text para modificar la plantilla del icono y el texto de! icono respectivamente, © National Instruments | 5-5 Leceidn @Desarrola de aplicaciones medulares (Opcional) Seleccione Layers»Show Layers Page para ver la pagina Layers. Use esta pagina para configurar el nombre, opacidad, visibilidad y orden de las capas del icono. 8. Haga clic en el botén OK para guardar la informacién del icono con el VI y cerrar el cuadro de didlogo Icon Editor. ‘También puede arrastrar un grafico desde cualquier parte del sistema de archivos y soltarlo en la esquina superior derecha de la ventana del panel frontal para usar el gréfico como un icono del Vi, Puede arrastrar y soltar archivos .png, -bmp 0 . 3pg. Nota Si modifica un icono arrastrando y soltando un grafico del sistema de archivos, LabVIEW crearé una capa de usuario denominada VI Icon para el grafico y eliminara cualquier otra informacién existente del icono del cuadro de didlogo Teon Editor. Configuracién del panel de conectores Defina conexiones asignando un control o indicador del panel frontal a cada terminal del panel de conectores. Fl panel de conectores se muestra junto al icono del VI en esquina superior derecha de Ja ventana del panel frontal. Cuando se abre LabVIEW, se ve un panel de conectores predeterminado, Cada rectangulo del panel de conectores representa una terminal, Use los reetingulos para asignar entradas y salidas. El panel de conectores predeterminados 4 2 «2 x 4, También puede seleccionar un patrén diferente haciendo clic con el botén derecho en el panel de conectores y seleccionando Patterns en el menti contextual. Si anticipa cambios en el VI que requieran una entrada o salida nueva, mantenga el panel de conectores predeterminado para dejar terminales extra desasignadas. El panel frontal de la figura 4-3 tiene cuatro controles y un indicador, porlo que LabVIEW muestra cuatto terminales de entrada y uno de salida en el panel de conectores, Figura 4-3. Panel frontal del VI Slope [ BS Sepe Frome Pane [Fle Gai View Projet Cpeate Too Window “Hap x n f a Ny ve # Slope fm) | o ke 2 ye ae a5 | Manual de Curso LabVIEW Core + Seleccién y modificacidn de modelos de terminales Seleccione otro modelo de terminales haciendo clic con el botén derecho en el panel de conectores y seleccionando Patterns en el menti contextual. Por ejemplo, puede seleccionar tin modelo de panel de conectores con terminales adicionales. Puede dejar los terminales adicionales sin conectar hasta que los necesite. Esta flexibilidad permite realizar cambios con un efecto minimo en la jerarquia de los VIs. ‘También puede tener més controles o indicadores en el panel frontal que terminales, Puede asignar hasta 28 terminales a un panel de conectores. El modelo que se usa mas se muestra abajo. Este modelo se utiliza como estandar para ayudar a simplificar el cableado. ATH H La figura 4-4 muestra un ejemplo de la distribucién estandar utilizada para modelos de terminales. Las entradas y salidas superiores se suelen usar para pasar referencias y las entrad: das inferiores para el control de errores. Figura 4-4. Ejemplo de modelo de terminales Inputs | Outputs Reference In EA Nota Evite usar paneles de conectores con mis de 16 terminales, Aunque los modelos de paneles de concetores con mas terminales pudieran parecer titles, son muy dificiles de cablear. $i necesita pasar més datos, use clusters. Asignacion de terminales a controles e indicadores Tras seleccionar un modelo para usar en el panel de conectores, puede asignar un control o indicador del panel frontal a cada terminal del panel de conectores. Cuando asigna controles ¢ indicadores al panel de conectores, coloque entradas en la izquierda y salidas ala derecha para evitar modelos de cableado complicados 0 confusos. Para asignar un terminal a un control o indicador del pane! frontal, haga clic en un terminal del panel de conectores y después en el control o indicador del panel frontal que desee asignar a ese terminal. Haga clic en un espacio abierto de la ventana del panel frontal. E terminal cambia al color del tipo de datos del control para indicar que conecté el terminal También puede seleccionar el contro! o indicador primero y después seleccionar el terminal © National Instruments | 4-7 Leccién 4 Desarrollo de aplicaciones medwares SE\_ Note Aunque use la herramienta de cableado para asignarterminales del panel de conectores a controles ¢ indicadores del panel frontal, no se dibujan cables entre el panel de conectores y estos controles e indicadores. C. Uso de subVIs Para colocar un subV1 en el diagrama de bloques, haga clic en el boton Select a VI en la paleta Funetions, Navegue al VI que desee usar como subVI y haga doble clic para colocarlo en el diagrama de bloques. También puede colocar un VI que se encuentre abierto en el diagrama de bloques de otro VI abjerto. Use la herramienta de posicionamiento para hacer clic en el icono de la esquina superior derecha del panel frontal o diagrama de bloques del VI que desee usar como subV1 y arrastre el icono al diagrama de bloques del otro VI Apertura y modificacién de subVis Para ver el panel frontal de un subVI desde el VI que Hama, use la herramienta de operaciones o de posicionamiento para hacer doble clic en el subV1 del diagrama de bloques. Para ver el diagrama de bloques de un subVI desde el VI que llama, pulse la tecla y use la herramienta de operaciones 0 de posicionamiento para hacer doble clic en el subVI del diagrama de bloques. Puede modificar un subVI usando Ja herramienta de operaciones 0 de posicionamiento para hacer doble clic en e] subVI del diagrama de bloques. Cuando guarde el subVI, los cambios afectaran a todas las Ilamadas al subVI, no sélo a la copia actual, Configuracién de entradas y salidas obligatorias, recomendadas y opcionales En la ventana Context Help, las etiquetas de terminales obligatorios aparecen en negrita, los terminales recomendados como texto sin formato y los opcionales aparecen atenuados. Las tiquetas de terminales opcionales no aparecen si hace clic en el botén Hide Optional Terminals and Full Path en la ventana Context Help. Puede designar qué entradas y salidas son obligatorias, recomendadas y opcionales para evitar que Jos usuarios olviden cablear terminales del subVI. Haga clic con el bot6n derecho en un terminal del panel de conectores y seleccione This Connection Is en el ment contextual. Una marca de verificacién indica la configuracién del terminal. Seleccione Required, Recommended u Optional. También puede seleccionar Tools» Options»Front Panel y activar la casilla de verificacién Connector pane terminals default to required. Esta opci6n configura los terminales del panel conector en Required en lugar de Recommended. Esto se aplica a conexiones realizadas con la herramienta de cableado y a subVIs creados utilizando Create SubVI. 48 | nicom Manual de Curso LabVIEW Core 1 SE\_Nota_Puede seleccionar Dynamic Dispatch Input (Required) o Dynamic Dispatch Output (Recommended) para Vis de miembros de distribucién dinémica Para entradas de terminales, required (obligatorio) significa que el diagrama de bloques donde colocé el subVI se rompera si no cablea las entradas necesarias. Required no esta disponible para salidas del terminal, Para entradas y salidas de terminales, recommended (recomendado) u optional (opcional) significa que el diagrama de bloques donde colacé el subVI puede ejecutarse si no cablea los terminales recomendados u opcionales. Si no cablea los terminales, el VI no genera ninguna advertencia, Las entradas y salidas de VIs de vi . 1ib ya estan marcadas como Required, Recommended u Optional. LabVIEW configura entradas y salidas de Vis que cree como Recommended de forma predeterminada. Configure un terminal como obligatorio sélo si el VI debe tener esa entrada para ejecutarse correctamente. Gestion de errores en SubVis Usted pasa errores dentro y fuera de un subV1 utilizando clusters de error. Con una estructura Case, gestiona los errores pasados al subVI con un los casos No Etror y Error. El caso No Error, como se muestra en la figura 4-5, contiene el c6digo para el funcionamiento normal del subVI. Figura 4-5. Caso No Error del subVi Sample {© National Insieuments | 4-9 Lecelan 4 Desaral de aplicaciones modules E| caso Error, como se muestra en la figura 4-6, normalmente pasa el error desde el control de cluster error in al indicador de cluster error out y contiene cualquier eédigo necesario para gestionar el error. Figura 4: Caso Error del subVI Sample | i | | | | | Evite utilizar el VI Simple Error Handler y el VI General Error Handler dentro de subVIs. Si es necesario, use estos Vis en el VI que llama, como se ve en la figura 4-7. Figura 4-7. Diagrama de bloques del VI Calling Yano Test Spe Evcr wanis? anger isa) fe) Creacion de un subVI desde un VI existente Puede simplificar el diagrama de bloques de un VI convirtiendo secciones de aquél en subVIs. Convierta una seccién de un VI en un subVI utilizando la herramienta de posicionamiento para seleccionar la seccién del diagrama de bloques que desee reutilizar y seleccionando EditCreate SubVI. Un icono para el nuevo subVI sustituird a la seccién seleccionada del diagrama de bloques. LabVIEW crea controles e indicadores para el nuevo subVI, configura automaticamente el panel de conectores en funcién del nimero de terminales de controles y de indicadores seleccionado y cablea el subVI a los cables existentes. Manual de Gurso LabVIEW Cove 1 La figura 4-8 muestra cémo convertir una seleccién en un subVI. Figura 4-8. Creacién de un nuevo subVI 1 sata i ute | supeiay oP =) Sipe) sate ra > a El nuevo subVI usa un modelo predeterminado para el panel de conectores y un icono tambien predeterminado, Haga doble clic en el subVI para modificar el panel de coneetores y el icono y para guardar el subVI. YE) Nota No seleccione més de 28 objetos para crear un subVI porque 28 es el mimero maximo de conexiones en un panel de conectores. Si su panel frontal contiene mas de 28 controles e indicadores que desea usar programéticamente, agrupe algunos en un cluster y asigne éste a un terminal del panel de conectores ‘© National Instruments | $11 Manual de Curso Lab) Autorrevisién: Cuestionario 1. EnunsubVI, zque configuracién provoca un error si ¢l terminal no se cablea? a. Required b. Recommended ©. Optional 2, Debe crear un icono para usar un VI como un subVL a. Verdadero b. Falso © Nationa Instrumenis | 41 Manual de Curso LabVIEW Core + Autorrevision: Respuestas 1. Enun subVI, gque configuracién provoca un error si el terminal no se cablea? a, Required b, Recommended . Optional 2. Debe crear un icono personalizado para usar un V1 como un subVI a. Verdadero b. Falso ‘No necesita crear un icono personalizado para utilizar un VI como un subVI, pero es m recomendable aumentar la legibilidad de su cddigo. ‘© National nsvuments | 4-15 Loveiin 4 Oesartollo de aplicaciones modulares 4:48 | noo Creando y aprovechando estructuras de datos En ocasiones es conveniente agrupar datos relacionados entre si. Use arrays y clusters datos relacionados en LabVIEW. Los arrays combinan datos del mismo tipo en una estructur datos; los clusters combinan datos de diferente tipo en una estructura de datos. Use def tipo para definir clusters y arrays personalizados. Esta leccién explica arrays, clusters y definiciones tipo, asi como aplicaciones donde su uso puede resultar beneficioso. Temas A. Arrays: B. Funciones de array comunes C. Polimorfismo D. Autoindexado E. Clusters = Definiciones tipo © National instruments | 6 Lecsion 5 Greanda y aprovechando esttucturas de datos A. Arrays Un array consta de elementos y dimensiones. Los elementos son los datos que conforman el array. Una dimension es la longitud, altura o profundidad de un array. Un array puede tener una 0 més climensiones y un maximo de (23!) - I elementos por dimensién, si lo permite la memoria, Puede ctear arrays de tipos de datos numéricos, booleanos, rutas, cadenas de caracteres, forma de onda y chister. Use arrays cuando trabaje con un conjunto de datos similares y cuando realice célculos repetitivos. Los arrays son ideales para almacenar datos que recopile de formas de onda datos generados en bucles, donde cada iteracién de un bucle produce un elemento del array. Nota Los indices de array en LabVIEW estan basados en cero. El indice del primer elemento de! array, independientemente de su dimensién, es cero. Restricciones No puede crear arrays de arrays. Sin embargo, puede usar un array multidimensional o crear un array de clusters donde cada cluster contenga uno o mas arrays. Asimismo, no puede crear un array de controies subpanel, controles de pestaiias, controles NET, controles ActiveX, graficos tipo “chart” o graficos tipo “XY graph” de varias eurvas. Consulte la seccién de clusters de esta leceién para obtener informacién adicional acerea de los clusters. Un ejemplo de un array simple es un array de texto que enumera los doce meses del afio. LabVIEW representa esto como un array 1D de cadenas de caracteres con doce elementos. Los elementos de array estén ordenados. Un array utiliza un indice para que pueda acceder facilmente a un elemento conereto. EI indice est basado en cero, lo que significa que esta en el intervalo de 0 a m- 1, siendo 7 el mimero de elementos del array. Por ejemplo, n= 12 para los doce meses del afio, de modo que el intervalo del indice es de 0 a 11. Marzo es el tercer mes, por lo que su indice es 2. La figura 5-1 muestra un ejemplo de un array de valores numéricos. El primer elemento que aparece en el array (3.00) estd en el indice 1 y el segundo elemento (1. 00) esta en el indice 2. | clemento del indice 0 no aparece en esta imagen, porque el elemento 1 est seleccionado en la visualizacién del indice. E] elemento seleccionado en el indice siempre hace referencia al elemento que aparece en la esquina superior izquierda de la visualizacién del array. Figura 5-1. Control array de valores numéricos 1 Indice 2 Elementos Manual de Curso LabVIEW Core 1 Creacion de controles e indicadores de tipo array Cree un control 0 indicador de array en el panel frontal afiadiendo una estructura array al panel frontal, como se muestra en el siguiente panel frontal, y arrastrando un objeto o elemento de datos, que puede ser un control o indicador numérico, booleano, de cadena de caracteres, de ruta, de refitum o de cluster, en la estructura array. Figura 5-2. Colocar un control numérico en una estructura array Si intenta arrastrar un control o indicador no valido a la estructura array, no podra colocar el control 0 el indicador en la estructura array. Debe insertar un objeto en Ia estructura array antes de usar el array en el diagrama de bloques. De lo contrario, el terminal del array apareceré negro, con un paréntesis vacio y no tendra tipos de datos asociados a él. Creacion de constantes de arrays Para crear una constante de array en el diagrama de bloques, seleccione una constante de array en lapaleta de Funciones , coloque la estructura array en el diagrama de bloques y coloque una constante de cadena de caracteres, una constante numérica, una constante booleana o una constant de cluster en la estructura array. Puede utilizar una constante de array para almacenar datos de constantes 0 para comparar con otro array. Arrays bidimensionales Un array 2D almacena elementos en una cuadricula, Requiere un indice de columna y un indice de fila para buscar un elemento, ambos basados en cero. La figura 5-3 muestra un array 2D de 8 columnas por 8 filas, que contiene 8 x 8 = 64 elementos. Figura 5-3. Array 2D Column Inox o 12 3 4 6 6 7 Flow index @ National Instruments | 53 Leccion S$ Creando y aprovechand estucturas de datos Para afiadir un array multidimensional al panel frontal, haga clic con el botén derecho en la pantalla del indice y seleccione Add Dimension en el meni contextual. También puede cambiar el tamafio del indice hasta que tenga tantas dimensiones como desee. Inicializacion de arrays Puede inicializar un array o dejarlo sin inicializar, Para inicializar un array, debe definir el nimero de elementos de cada dimensién y el contenido de cada elemento. Un array sin inicializar contiene un niimero fijo de dimensiones pero ningtin elemento. La figura 5-4 muestra un control de array 2D sin inicializar. Observe que todos los elementos estan atenuados. Esto indica que el array no est inicializado. Figura 5-4. Array 2D sin inicializar En Ja figura 5-5, seis elementos estan inicializados, Figura 5-5. Array 2D inicializado con seis elementos En un array 2D, tras inicializar un elemento de una fila, los elementos restantes de ésta se inicializan y se rellenan con el valor predeterminado para el tipo de dato. Por ejemplo, en la figura 5-6, si escribe 4 en el elemento de Ja primera columna, tercera fila, los elementos de la segunda y tercera columna de la tercera fila se rellenan automaticamente con un 0. Figura 5-6. Un array autopopulado con ceros 5-4 | nicom Manual de Curso LabVIEW Core 1 B. Funciones de array comunes LabVIEW agrupa las funciones que usted puede utilizar para manipular arrays en la paleta Array Las siguientes funciones son las funciones mas comunes cuando se trabaja con arrays. + Array Size—Provee el ntimero de elementos en cada dimensién de array. El panel de conectores muestra el tipo de datos predeterminado para esta funcién polimérfica aney — 5B + Initialize Array—Crea un array de dimensién n en el cual cada elemento esta inicializado al valor de element. Use la herramienta de posicionamiento para cambiar el tamaito de Ia funcion. y aumentar el niimero de dimensiones (elemento, fila, columna, pagina, etc) del array de salida, El panel de conectores muestra el tipo de datos predeterminado para esta funcién polimérfiea. element [| Siero a's — | — isn SS sels] dnvension + Atay Subset—Provee una poreién de array empezando en index y conteniendo length elementos. oo) Ray igen (0) Seg length irest) + Build Array—Concatena miiltiples arrays o agrega elementos a un array de n dimensiones ‘También puede usar la funcién Replace Array Subset para modificar un array existente. El panel de conectores muestra el tipo de datos predeterminado para esta funcion polimérfica atey — 6 es ‘element — age clanart + Index Array—Provee el elemento 0 subarray de n-dimension array en index. Cuando cablea ‘un array a esta funcién, la funcién cambia su tamafio automaticamente para mostrar index entradas para cada dimensién en el array que cableo a n-dimension array, También puede agregar terminales adicionales al elemento o subarray cambiando el tamaiio de la fancién. Bi panel de conectores muestra el tipo de datos predeterminado para esta funcisn polimérfica dimension array —— element or subartay © National lnsiuments | LLecoién 5 Creanda y aprovechando estucturas de datos C. Polimorfismo Polimorfismo es la habilidad de VIs y funciones de adaptarse automiticamente para aceptar diferentes tipos de datos, Las funciones son polimérficas en diferentes grados—ninguna, algunas © todas sus entradas pueden ser polimérficas. Algunas entradas de funciones aceptan valores numéricos 0 booleanos. Algunas aceptan valores numéricos cadenas de caracteres. Algunas aceptan no solo valores escalares pero tambign arrays de valores numéricos, clusters de valores numéricos, arrays de clusters de valores numéricos y més. Algunas aceptan solamente arrays unidimensionales aunque los elementos del array pueden ser de cualquier tipo. Algunas funciones aceptan todo tipo de datos, incluyendo valores numéricos complejos. Polimorfismo para funciones aritméticas Las funciones aritméticas aceptan entrada de datos numérico. Con algunas excepciones detalladas en la descripeién de las funciones, la salida predeterminada tiene la misma representacién que la entrada o si las entradas tienen diferentes representaciones, la salida predeterminada sera igual a la tepresentacién més larga de las entradas. Por ejemplo, si afiade un entero de 8-bits y un entero de 16-bits, la salida predeterminada es un entero de 16-bits. Si configura la salida de una funcién numérica, la configuraci6n que especifique sobre escribe el comportamiento predeterminado. Las funciones aritméticas trabajan con niimeros, arrays de niimeros, clusters de niimeros, arrays de clusters de néimeros, nimeros complejos y més. Una definicién formal de tipo de entrada permitido es la siguiente Tipo numérico = escalar numérico O array {tipo numérico) O cluster {tipos numéricos] Los esealares numéricos pueden ser mlimeros coma flotante, enteros o nimeros complejos coma flotante. LabVIEW no permite usar arrays de arrays. Los arrays pueden tener cualquier mimero de dimensiones de cualquier tamafio. Los clusters pueden tener cualquier mimero de elementos. El tipo de salida de las funciones es del mismo tipo de representacién numérica que la entrada. Para las funciones con una entrada, las funciones operan en cada elemento del array 0 cluster. Para las funciones con dos entradas, puede usar las siguientes combinaciones: + Similar—Ambas entradas tienen la misma estructura y la salida tiene Ja misma estructura que las entradas. + Un esealar—Una entrada es un escalar numérico, la otra es un array o cluster y la salida es un array o cluster * Array de—Una entrada es un array numérico, la otra es el tipo numérico y la salida es un array. Para entradas similares, LabVIEW lleva acabo la funcién en los elementos respectivos de las estructuras, Por ejemplo, LabVIEW puede sumar dos arrays elemento por elemento. Ambos arrays deben tener Ja misma dimensién. Puede sumar arrays de diferente nlimero de elementos, la salida de dicha suma tiene el mismo namero de elementos que la entrada mas pequefia. Los clusters deben tener el mismo ntimero de elementos y los elementos respectivos deben ser del mismo tipo. 5.6 | nicom Manual de Curso LabVIEW Cove 1 Para operaciones que involucran un escalar y un array o un cluster, LabVIEW realiza la funcidn en el escalar y los respectivos elementos de la estructura. Por ejemplo, LabVIEW puede restar un néimero de todos los elementos de un array, sin importar la dimensién del array. Para operaciones que involucran un tipo numérico y un array de ese tipo, LabVIEW realiza la funcién en cada uno de los elementos del array. Por ejemplo, un grafico es un array de puntos y un punto es un cluster con dos tipos numéricos, X y Y. Para compensar un grafico por 5 unidades en la direccién X y por 8 unidades en a direccién ¥ puede affadir un punto, (5,8), al grafico La figura 5-7 muestra las posibles combinaciones polimérficas de la funcion Add. Figura 5-7. Combinaciones polimérficas de la funcién Ad. Siolar ‘one Scalar Seas Seatet ——PB> — seater Seuiar = ‘aray > ee ey ‘at et cr sea ra ok Cat: 5 Ba a emcee ay of cas Polimorfismo para funciones booleanas Las funciones légicas aceptan datos de entrada booleanos, numéricos y clusters de error. Si la entrada es numérica, LabVIEW realiza una operacion bit a bit. Si entrada es un niimero entero, la salida tiene la misma representacién. Si la entrada es un niimero coma flotante, LabVIEW lo redondea a un ndmero entero de 32-bits y la salida es un namero entero de 32-bits. Sila entrada es un cluster de error, LabVIEW pasa solo el valor TRUE o FALSE del parametro status del cluster de error a Ja terminal de entrada, La funciones I6gicas funcionan con arrays de niimeros o valores booleanos, clusters de ntimeres 0 valores booleanos, arrays de clusters de niimeros o valores booleanos y mis. Una definicién formal del tipo de entrada permitido es la siguiente, excepto que los nimeros complejos y arrays de arrays no son permitidos: Tipo ldgico = escalar booleano O escalar numérico O array [tipo légico] O cluster [ripos légicos © National nsteumants | 5-7 LLeccisn§ Creancloy aprovechando asiructuras de datos Las funciones légicas con dos entradas pueden tener la misma combinacién de entradas que las funciones aritméticas. Sin embargo, las funciones légicas tienen la restriccién adicional de que las operaciones basicas solo pueden ser entre dos valores booleanos o dos niimeros. Por ejemplo, no puede tener una AND entre un valor booleano y un mimero. La figura 5-8 muestra algunas combinaciones de valores booleanos para la funcién AND. Figura 5-8. Combinaciones de valores booleanos para la funcién AND ‘Simitar nes Boolean Seainr FR) Booka Soon seas er ann sar Bosean "Hooleen Ar LO poy Baten aay FR). Bok a ican aa HF peta Set Apne Bn Boolean Ciuster = ® Clustar [~~ cumse nay ot a tC 225 oro yo Chars ‘Cluster = pea D. Autoindexado Si cablea un array a o desde un bucle For o While, puede vincular cada iteracién del bucle en un elemento de ese array habilitando el autoindexado, La imagen del tinel cambia de un cuadrado velleno a Ja imagen para indicar el autoindexado, Haga clic con el boton derecho en el tunel y seleccione Enable Indexing o Disable Indexing desde el menti contextual para cambiar el estado del ténel, a Entradas de array y autoindexado Si habilita el autoindexado en un array cableado a un terminal de entrada de un bucle For, LabVIEW configuraré el terminal de contaje en el tamafio del array, por lo que no tiene que cablear el terminal de contaje. Dado que puede utilizar bucles For para procesar arrays elemento por elemento LabVIEW habilita el autoindexado de forma predeterminada para todos los arrays que cablee a un bucle For. Puede desactivar el autoindexado si no necesita procesar arrays, elemento por elemento, 5-8 | nicom Manual de Curso LabVIEW Core 1 En la figura 5-9, el bucle For se ejecuta un mimero de veces equivalente al nimero de elementos del array. Normalmente, si el terminal de contaje del bucle For no ests cableado, la flecha de ejecucién aparece rota. Sin embargo, en este caso la flecha de ejecueién no aparece rota. Figura 5-9. Array utilizado para configurar el contaje de bucles For dex in Te Ee Wen Broiet Gpeate Teel Whdow Hale DS] [Mm] [0] Se] fholer us [emmperonre | fo | Si habilita el autoindexado para mas de un tinel o si cablea el terminal de contaje, el niimero real de iteraciones sera el equivalente a la menor de las elecciones. Por ejemplo. si dos arrays autoindexados entran en el bucle, con 10 y 20 elementos respectivamente, y cablea un valor de 15 al terminal de contaje, el bucle se seguir ejecutando sélo 10 veces, indexando todos los elementos del primer array pero s6lo los 10 primeros elementos del segundo array. Salidas de array y autoindexado Cuando autoindexa un tinel de salida de un array, el array de salida recibe un nuevo elemento de cada iteracién del bucle. Por lo tanto, el tamajio de los arrays de salida autoindexados es siempre igual al numero de iteraciones del bucle For. El cable del tunel de salida al indicador de array aparece mas grueso cuando se produce el cambio aun array en el borde del bucle, y el tinel de salida contiene corchetes que representan a un array, como en la figura 5-10. Figura 5-10. Salida autoindexada © National instruments | 5 Leceion § Creanda y aprovechando asitucturas de datos Haga clic con el botén derecho en el borde del bucle y seleccione Enable Indexing o Disable Indexing en el menéi contextual para habilitar o deshabilitar el autoindexado. El autoindexado de bucles While esta deshabilitado de forma predeterminada. Por ejemplo, deshabilite el autoindexado si necesita que s6lo el ultimo valor salga por el tunel. Creacion de arrays bidimensionales Puede usar dos bueles For, anidados uno dentro det otro, para crear un array 2D. El buele For extemo crea los elementos de la fila, mientras que el interno crea los elementos de la columna, como en la figura 5-11 Figura 5-11. Creacién de un array 2D FS Autoindexado con un tunel condicional Usted puede determinar que valores LabVIEW escribe a la salida de un tinel de un bucle basado en una condicién que especifica haciendo clic con ef botén derecho en Ia salida del tinel y seleccionando Tunnel Mode»Conditional en el ment contextual. En la figura 5-12, el array Input Array contiene los siguientes elementos: 7, 2, 0, 3, 1,9, 5,¥ 7. Debido al tine! condicional, el array Values less than 5 contiene solamente los elementos 2, 0, 3 y 1 después que este bucle completa todas las iteraciones. Figura 5-12. Bucle For autoindexado con ttinel condicional Vales ler then Inoue ary 5-10 | nicom Graficos tipo “Waveform graph” Los VIs con un grafico normalmente acumulan los datos en un array y después los trazan en el grafico. La figura 5-13 muestra los elementos de un grafico tipo “waveform graph”. Figura 5-13, Grafico Waveform Graph > winston cn aig oo 1 Leyendadelacuva 4 Marca de minicuadricula 7 Leyenda del curso Escala V 2 Cursor 5 Leyenda de la escala 8 Paleta det 1 Etiqueta 3 Marca de cuadricula 6 Desplazadordel cursor 9 _ Escala X Los graficos situados en la paleta Graph Indicators incluyen los tipos “XY graph”. El tipo “waveform graph” s6lo representa funciones de una tinica var y = £(x), ¢on puntos distribuidos uniformemente en el eje x, como las formas de on: variables con el tiempo. Los grificos XY muestran cualquier conjunto de puntos, muestre uniformemente o no. \s curvas. Use varias curvas para ahorrar 0s tipo “XY” y “waveform” se Cambie el tamafio de Ia leyenda de la curva para ver vai espacio en el panel frontal y comparar curvas. Los gr: automaticamente a varias curvas. daptan Graficos tipo “Waveform graph” de una sola curva El grafico tipo “waveform graph” acepta varios tipos de datos para graficos de una sola curva, E grafico tipo “graph” acepta un solo array de valores, interpreta los datos como puntos cel grafico € incrementa el indice x en uno empezando por x = 0. Asimismo acepta un chuster con un vald inicial x, un valor delta x y un array de datos y. Por ultimo, también acepta el tipo de datos de forma de onda, que contiene los datos, tiempo de inicio y el valor delta t de una forma de onda raph Consulte el VI Waveform Graph en abview\examples\general\graphs \gen para ver ejemplos de los tipos de datos que acepta un grafico tipo “waveform, Leceide $ Creando y aprovechando estructuras de datos Graficos tipo “waveform graph” de varias curvas E! grafico tipo “waveform graph” acepta varios tipos de datos para mostrar varias curvas. Acepta un array 2D de valores, donde cada fila de ésta es una sola curva. El gréfico interpreta los datos como puntos del mismo e incrementa el indice x en uno, empezando por x = 0. Cable un tipo de datos de array 2D al grafico tipo “graph”, haga clic en éste con el botén derecho y seleccione ‘Transpose Array en el meni contextual para tratar cada columna del array como una curva, Esto resulta especialmente sitil cuando muestrea varios canales de un dispositive DAQ, porque éste puede devolver los datos como arrays 2D con cada canal almacenado como una columna distinta. Consulte el grafico (Y) Multi Plot 1 en el VI Waveform Graph de labview\examples\ general \graphs\gengraph. 11b para ver un ejemplo de un grifico que acepta este tipo de datos. Fl grafico tipo “waveform graph” también acepta un cluster con un valor inicial x, un valor delta x yun array 2D de datos y. El grafico interpreta los datos y como puntos de! mismo e incrementa el indice x por el valor delta x, empezando por el valor x inicial. Este tipo de datos resulta util para mostrar varias sefiales que se muestrean a la misma velocidad regular, Consulte el grafico (Xo = 10, dX = 2, Y) Multi Plot 2 en el VI Waveform Graph de labview\examples\general\ graphs\gengraph 1b para ver un ejemplo de un grafico que acepta este tipo de datos. El grafico tipo “waveform graph” acepta un array de curvas donde el array contiene clusters. Cada chuster contiene un atray 1D que alberga los datos y. El array interno describe los puntos de una curva y el externo tiene un cluster para cada curva. El panel frontal de la figura 5-14 muestra este array de clusters y. Figura 5-14. Array del cluster y aay tate od Use un array de curva en lugar de un array 2D si el ntimero de elementos de cada curva es distinto. Por ejemplo, cuando muestrea datos de varios canales con distintos tiempos para cada uno, use esta estructura de datos en lugar de un array 2D porque cada fila de un array 2D debe tener el mismo ntimero de elementos, El niimero de elementos de los arrays interiores de un array de clusters puede variar. Consulte el grafico (Y) Multi Plot 2 en el VI Waveform Graph de Labview\examples\ general \graphs\gengraph. 11b para ver un ejemplo de un grafico que acepta este tipo de datos, grafico tipo “waveform graph” acepta un cluster de un valor inicial x, un valor delta xy un array que contiene clusters. Cada cluster contiene un array 1D que alberga los datos y. Use la funcién Bundle para unir los arrays en clusters y use la funcién Build Array para crear los clusters resultantes en un array. Consulte la leccién Clusters, para obtener informacién adicional acerca de los clusters y la funeién Bundle. Manual de Curso LabVIEW Care 1 ‘También puede utilizar la funcién Build Cluster Array, que crea arrays de clusters que contienen las entradas que especifique. Consulte el grafico (Xo = 10, dX = 2, Y) Multi Plot 3 en el VI Waveform Graph de Labview\examples\general \graphs\gengraph.11 para ver un ejemplo de un grafico que acepta este tipo de datos. El grafico tipo “waveform graph” acepta un array de clusters de un valor x, un valor delta x y un array de datos y. Este es el mas general de los tipos de datos de graficos tipo “waveform graph” de varias curvas, porque puede indicar un nico punto de inicio e incrementar la escala x de cada curva. Consulte el grafico (Xo = 10, dX = 2, Y) Multi Piot 1 en el VI Waveform Graph de labview\examples\general \graphs\gengraph. 1 1b para ver un ejemplo de un grafico que acepta este tipo de datos. El grafico tipo “waveform graph” también acepta el tipo de datos dinamicos, que se usa con los Vis Express. demas de los datos asociados con una sefial, el tipo de datos dinémicos incluy atributos con informacién sobre la sefial, como el nombre de la sefial o fa fecha y la hora en que se adquirieron los datos. Los atributos especifican c6mo aparece la sefial en el grético. Cuando el tipo de datos dinémico incluye varios canales, el grifico muestra una curva para cada canal y da formato autométicamente a la leyenda de la curva y la marca de hora de la escala x. Graficos XY de una sola curva El grafico XY acepta tres tipos de datos para graficos XY de una sola curva. Bl grafico XY acepta un cluster que contiene un array x y un array y. Consulte el grifico (X and Y arrays) Single Plot en el VI XY Graph de labview\examples\general \graphs\gengraph. 11b para ver un ejemplo de un grifico que acepta este tipo de datos. El grafico XY también acepta un array de puntos, donde un punto es un cluster que contiene un valor xy un valor y. Consulte el gréfico (Array of Pts) Single Plot en el VI XY Graph de Labview\examples \general \graphs\gengraph. 1b para ver un ejemplo de un grafico que acepta este tipo de datos. El grafico XY también acepta un array de datos complejos, donde la parte real se traza en el eje x y la parte imaginaria en el eje y. Consulte la seccién Clusvers, para obtener informacion adicional acerca los clusters. Graficos XY “waveform graph” de varias curvas El grafico XY acepta tres tipos de datos para mostrar varias curvas. Acepta un array de curvas, donde una curva es un cluster que contiene un array x y un array y. Consulte el grifico (X and Y arrays) Multi Plot en el VI XY Graph de labview\examples\general \graphs\ gengraph.11b para ver un ejemplo de un grafico que acepta este tipo de datos. El grafico XY también acepta un array de clusters de curvas, siendo una curva un array de puntos. Un punto es un cluster que contiene un valor x y un valor y. Consulte el grafico (Array of Pts) Multi Plot en el VI XY Graph de labview\examples \general\graphs\gengraph.. 11) para ver un ejemplo de un grafico que acepta este tipo de datos. El grafico XY también acepta un array clusters de curvas, siendo una curva un array de datos complejos, donde la parte real se traza en el eje x y la parte imaginaria en el eje y. Consulte la seceién Clusters, para obtener informacion adicional acerca los clusters, (© Nationa! Instuments | 5-13 Lecc'6n 5 _Creando y aprovechando estructuras de datos E. Clusters Los clusters agrupan elementos de datos de tipos mixtos. Un ejemplo de un cluster es el cluster de error de LabVIEW, que combina un valor booleano, uno numérico y una cadena de caracteres. Un cluster es similar a un registro o una estructura en lenguajes de programacién basados en texto. Unir varios elementos de datos en clusters elimina el abarrotamiento de cables en el diagrama die bloques y reduce el mimero de terminales de! panel de conectores que necesitan los subVIs. El panel de conectores tiene como mucho 28 terminales. Si su panel frontal contiene mas de 28 controles ¢ indicadores que desee pasar a otro VI, agrupe algunos en un cluster y asigne éste a un terminal del pane! de conectores, La mayoria de los clusters del diagrama de bloques tiene un terminal y un patrén de cables rosa. Los clusters de error tienen un terminal y un patron de cables amarillo oscuro. Los clusters de lores numéricos, a veces denominados puntos, tienen un terminal y un patron de cables marrén. Puede cablear clusters numéricos marrones a funciones Numeric, como Add o Square Root, para realizar la misma operacién simultaneamente en todos los elementos del cluster. Orden de elementos del cluster Aunque los elementos del cluster y del array estén ordenados, con la funcién Unbundle debe 4/ao~ || ees~] [EO t ® ® 7 Modo de edicién 3 _Disiribuir objetos 2 Estado de definiciones tipo 6 Cambiar el tamafo de objetos 3. Texto 7 Reordenar objetos 4 Alinear objetos Modo de personalizacién En el modo de personalizacién puede mover de sitio cada componente del control, Para ver una lista de lo que puede manipular en el modo de personalizacién, seleccione Window»Show Parts Window. A [one TapL Appicaton Fork EE } b © b 1 Modo de personalizacién 5 Distribuir objetos - _ 2 Estado de definiciones tipo & Cambiar ol tamario de objetos 3 Texto 7 Reordenar objetos 4 Alinear objetos Una forma de personalizar un control es cambiar su estado de definicién tipo. Puede guardar ‘un control como un control, una definicién tipo o una definicién tipo estricta, en funcidn de la seleccién que se vea en el anillo Type Def. Status. La opcién de control es Ja misma que un control que seleccionaria de la palcta Controls. Puede modificarla del modo que necesite, y cada copia que realice y eambie conservara sus propiedades individuales, Guardar controles personalizados Tras crear un control personalizado, puede guardarlo para usarlo después. De forma predeterminada los controles guardados en el disco tienen una extensién . ct También puede usar el Editor de Controles para guardar controles con sus propios ajustes predeterminados. Por ejemplo, puede usar el Editor de Controles para moditicar los ajustes predeterminados de un grafico tipo “waveform graph”, guardarlo y después utilizarlo en otros Vis ‘@National instruments | 521 Leceion 5 Creando y aprovechando estructuras de datos Definiciones tipo Use definiciones tipo y definiciones tipo estrictas para vincular todas las copias de un control 0 indicador personalizado a un archivo de control o indicador personalizado guardado. Puede realizar cambios en todas las copias del control o indicador personalizada modificando sélo el archivo de control o indicador personalizado, lo cual resulta til si usa el mismo control o indicador personalizado en varios VIs. Cuando coloca un control o indicador personalizado en un VI, no existe conexién entre el control 6 indicador personalizado que guard6 y la copia del control o indicador personalizado en el VI. Cada copia de un control o indicador personalizado es independiente del resto. Por lo tanto, los cambios que realice en un control o indicador personalizado no afectan a los Vis que ya utilizan ese control o indicador personalizado. Si desea vincular copias de un control o indicador personalizado con el archivo de control o indicador personalizado, guarde el control o indicador personalizado como una definicidn tipo o una definicién tipo estricta. Todas las copias de una Gefinicién tipo o de una definicién tipo estricfa se vinculan con el archivo original desde donde las cre6, Cuando guarda un control o indicador personalizado como una definieién tipo o una definicién tipo tricta, cualquier cambio de tipo de dato que realice en la definicién tipo o tipo estricta afecta a todas las copias de la definicién tipo o tipo estricta en todos los VIs que la utilicen. Asimismo, los cambios de aspecto que realice en una definicién tipo estricta afectan a todas las copias de la definicién tipo estricta del panel frontal, Las definiciones tipo identifican el tipo de dato correeto para cada copia de un control 0 indicador personalizado. Cuando cambia el tipo de dato de una definicién tipo, se actualizaran ‘autométicamente todas las copias de la definicién tipo. En otras palabras, el tipo de dato de las copias de la definicién tipo cambia en cada VI en el que se haya usado. No obstante, como las, definiciones tipo identifican s6lo el tipo de dato, s6lo se actualizaran los valores que formen parte del tipo de dato. Por ejemplo, en controles numéricos, el rango de datos no forma parte del tipo de «lato, Por lo tanto, las definiciones tipo de controles numéricos no definen el rango de datos para {as copias de las definiciones tipo. Asimismo, como los elementos de los controles de anillo no definen el tipo de dato, los cambios en los nombres de los elementos de un control de anillo en una definicién tipo no cambian los nombres de los elementos en las copias de la definicién tipo. Sin embargo, si cambia los nombres de los elementos de la definicién tipo para un control de tipo enumerado, las copias se actualizan porque los nombres del elemento forman parte del tipo de dato. Una copia de una definicién tipo puede tener su propio titulo, etiqueta, descripeién, ayuda, valor predeterminado, tamaiio, color o estilo de control o indicador tinico, como en el caso de un mando en lugar de un control deslizante. Si cambia el tipo de dato de una definicién tipo, LabVIEW convierte el antiguo valor predeterminado de las copias de la definicién tipo al nuevo tipo de dato, si es posible. LabVIEW 1no puede conservar el valor predeterminado de la copia si el tipo de dato cambia a un tipo incompatible, como sustituir un control o indicador numérico por un control o indicador de cadena de caracteres. Cuando cambia el tipo de dato de una definicién tipo a un tipo de dato incompatible con la definicién tipo anterior, LabVIEW configura el valor predeterminado de copias como el valor predeterminado que especifique en el archivo . ct 1, Si no especifica un valor 5:22 | o.com Manual de Curso LabVIEW Core 1 predeterminado, LabVIEW usaré el valor predeterminado del tipo de dato. Por ejemplo, si cambia una definicién tipo de un tipo numérico a un tipo de cadena de caracteres, LabVIEW sustituye cualquier valor predeterminado asociado con el antiguo tipo de dato numérico por cadenas de caracteres vacias. Definiciones tipo estrictas Una definici6n tipo estricta fuerza que la copia sea idéntica a la definicién de tipo estricta, excepto enel titulo, etiqueta, descripcién, ayuda y valor predeterminado. Al igual que las definiciones tipo el tipo de dato de una definici6n tipo estricta permanece invariable en cualquier lugar donde use la definicién tipo estricta. Las definiciones tipo estrictas también definen otros valores, como pueden ser la comprobaci6n de rango en controles numéricos y los nombres de ios elementos en controles de anillo. Las tnicas propiedades de VI Server disponibles para las detiniciones de tipo estrictas son las que afectan al aspecto del control o indicador, como Visible, Disabled, Key Focus, Blinking, Position y Bounds. No puede impedir que una copia de una definicién tipo estricta se actualice automaticamente, a menos que elimine el vinculo entre la copia y la definicién tipo estricta. Las definiciones tipo y las definiciones tipo estrictas crean un control predeterminado utilizando un cluster de varios controles. Si necesita afiadir un nuevo control y pasar un nuevo valor a cada subVI, puede aftadir el nuevo elemento al control cluster del control personalizado. Esto evita tener que afiadir el nuevo control al panel frontal de cada subVI y realizar un nuevo eableado y nuevos terminales. © National nsteuments | 5:23 Manual de Curso LabVIEW Core + Autorrevision: Cuestionario 1. Puede crear un array de arrays. a. Verdadero b. Falso 2. Tiene dos arrays cableados a la entrada de un bucle For. El autoindexado esta habilitado en ambos tineles. Un array tiene 10 elementos y el segundo tiene cinco. Un valor de 7 se cablea al terminal Count, como se ve en la figura 5-22. ;CuAl es el valor del indicador Iterations tras ejecutar este VI? Figura 5-22. ,.Cudl es el valor del indicador Iteration? Lo sheet ray Sdlomartarar 3. 4Cual de los siguientes ajustes de un control personalizado define los tipos de dato de todas las instancias de un control pero permite diferentes colores y estilos de fuentes? a. Control b. Definiciones tipo Definiciones tipo estrictas 4. Control cluster 4, Usted tiene datos de entrada representando un circulo: posicién X, posicién Y y radio. En el futuro, necesita modificar sus datos para incluir el color del eirculo {Qué estructura de datos deberia usar para representar el circulo en su aplicacién? a. Tres controles separados para las dos posiciones y el radio. - Un cluster que contiene todos los datos, b. ¢. Un control personalizado que contiene un cluster. d. Un tipo de definicién que contiene un cluster. e Un arreglo con tres elementos. ‘© National insiuments | 525 Manual de Curso LaaviEW Gove 1 Autorrevisién: Respuestas 1. Puede crear un array de arrays. a. Verdadero b. Falso No puede arrastrar un tipo de datos array a una estructura array. Sin embargo, puede crear arrays bidimensionales. 2. Tiene dos arrays cableados a la entrada de un bucle For. El antoindexado esté habilitado en ambos tiineles. Un array tiene 10 elementos y el segundo tiene cinco. Un valor de 7 se cablea al terminal Count, como se ve en la figura 5-23. ,Cudl es el valor del indicador Iterations tras ejecutar este VI? Figura 5-23. ,.Cudl es el valor de! indicador Iteration? Valor de Iterations = 4 LabVIEW no supera el tamaiio del array, Esto ayuda a proteger de exrores de programacién Las funciones mateméticas de LabVIEW actian del mismo modo: si cablea un array de 10 elementos a la entrada x de la funcién Add, y un array de 5 elementos a la entrada y de la funcién Add, la salida serd un array de 5 elementos Aunque el bucle For se ejecuta 5 veces, las iteraciones estan basadas en cero, por lo que el valor del indicador Iterations es 4. 3. gCudl de los siguientes ajustes de un control personalizado define los tipos de dato de todas las instancias de un control pero permite diferentes colores y estilos de fuentes? a. Control b. Definiciones tipo ©. Defi . Control cluster jones tipo estrictas @ National instruments | 5:27 Leccisn § Creando y apcovechando estrucuras de datos 4, Usted tiene datos de entrada representando un circulo: posicién X, posicién Y y radio, En el futuro, necesita modificar sus datos para incluir el color del eirculo. Cual estructura de datos deberia usar para representar el circulo en su aplicacién? a. Tres controles separados para las dos posiciones y el radio. Un cluster que contiene todos los datos. Un control personalizado que contiene un cluster d. Un tipo de definicién que contiene un cluster. ©. Unarreglo con tres elementos. 528 | nicam Manual d2 Curso LabVIEW Core + Notas © National Insieumenis | 5:28 Leccidn S Creando y aprovechando estrucuras de datos Notas 5.20 | nlcom Administrando archivos y recursos hardware Hasta el momento ha aprendido a adquirir datos y visualizarlos, pero el almacenamiento de los datos suele ser muy importante en cualquier proyecto. También ha aprendido a instalar su hardware yaconfigurarlo en el Measurement & Automation Explorer. Enesta leccién aprender a almacena datos, programar una aplicacién DAQ bisica utilizando la API DAQme y controlar instrumentos independientes con la API VISA y controladores de instrumentos en LabVIEW Temas A. endiendo recursos hardware y software E S de ficheros Adquiriendo mediciones con s tema DAQ yoo . Controlando Instramentos © National instruments | 6 Lecelén 4 Adminisitande archivos y recursos hardware A. Entendiendo recursos hardware y software Un recurso es un archivo direccionable, dispositivo de hardware, objeto o conexién de red disponibie en el sistema, El sistema identifica recursos usando rutas, nombres, puertos u otros identificadores, Al usar estos identificadores y los Vis y funciones que LabVIEW provee, usted puede programar su sistema para acceder estos recursos. Accediendo recursos en LabVIEW Un recurso operacional tipico involucra las siguiente operaciones como se muestra en la figura 6-1: 1. Crear el recurso. 2. Leer y escribir en el recurso. Cerrar el recurso. 4. Revisar errores en un recurso. Figura 6-1. Operacién tipica de un recurso ® > © ‘Abn, inicializar o crear el recurso—LabVIEW crea un numero de referencia (refnum) como un ‘dentificadar Gnico de el recurso 2 Leer/Escribir a un recurso 83 Cerrar recurso—E! refnum se vuelve obsoleto 4 Verificacién de errores—Muestra cualquier error del recurso Qg Consejo Los nombres de funciones o VIs asociados con crear un recurso generalmente incluyen uno de los siguientes verbos: abrir (open), inicializar (initialize) o crear (create). La funcién o VI que erea el recurso toma la rata del recurso 0 el nombre del dispositive como una entrada y luego crea un identificador tinico al recurso. Numeros de referencia (Refnums) Un ntimero de referencia, o refnum, es un identificador Unico para un recurso. Cuando abre un fichero, dispositive o conexién de red, LabVIEW crea un refnum asociado a ellos. Todas las operaciones que realice en ficheros, dispositivos o conexiones de red abiertos usan los refinums para identificar cada objeto. Use el control refnum para pasar un refnum hacia adentro o afuera de un VI. Por ejemplo, use un control refmum para modificar los contenidos de un archivo al que el refnum se esta referenciando sin cerrar y reabrir el archivo. Debido a que el refhum es un apuntador temporal a un recurso abierto, es solamente valido por el periodo mientras esté abierto. Si cierra el recurso, LabVIEW desasocia el refnum del recurso y el refnum se vuelve obsoleto, Si vuelve a abrir el recurso, LabVIEW crea un nuevo refnum que es diferente del primer refnum. LabVIEW asigna memoria para un recurso que esté asociado a un refnum, Cierre el refnum para liberar el recurso de la memoria, 62 | nicom Manual de Curso LabVIEW Core | LabVIEW recuerda informacién asociada a cada refnum, como la ubicacién actual para la lecturs o escritura al objeto y el grado de acceso del usuario, por lo que puede realizar operaciones concurrentes pero independientes en un solo recurso. Si un VI abre un objeto miltiples veces, cada operacién de apertura devuelve un refnum diferente. LabVIEW automaticamente cierra refnuims cuando finaliza la ejecucién de un VI pero es una buena préctica de programacién cerrar los refnums tan pronto como haya terminado de usarlos para manejar eficientemente memoria y recursos. Cierre refnums en orden opuesto al que los abrié. Por ejemplo, si obtiene un retnum a un objeto A e invoca un método en objeto A para obtener un refnum aun objeto B, cierre el refinum al objeto B primero y luego cierre el refnum al objeto A. Ejemplos de APIs Refnum Cuando se esta comunicando con un dispositive DAQ usando el AP] DAQmx, nos referimos a esa referencia como una tarea (task). Una tarea es una coleccién de uno 0 mas canales virtuales con tiempo, triggering y otras propiedades, Una tarea representa una medida o generacién que desee realizar. Cuando se controla un instrumento usando el API VISA, nos referimos a la referencia como tna sesién de VISA. La sesin de VISA es mantenida por el control VISA resource name. La figura 6-2 ilustra varios APIs diferentes y refnums usados para accesar recursos. Figura 6-2. Ejemplo Cableando un Refnum th OpenlGremelRapace ie _ “ume Do iui Channelsi_ shou ‘i (ives usa reource same Ingle © Notional Instuments | 3 Lecciin 8 Adminisrand archivos y eacurses hardware B. E/S de ficheros Las operaciones de E/S de ficheros pasan datos desde y hacia archivo. Use los Vis y funciones de E/S de ficheros para manejar todos los aspectos de E/S de archivos. Comprender la E/S de ficheros Una operacién tipica de E/S de ficheros incluye el siguiente proceso mostrado en la figura 6-3. Cree o abra um fichero. Tras abrir el fichero, un identificador tnico denominado refnum representara el fichero. La funcién o el VI File /O lee en el fichero o escribe en él. Cierre el fichero. Figura 6-3. Pasos de una operacién tipica de E/S de ficheros —— =I Lr [oa Hoe Ho }o — | os: 1 Apertura de fichero 3 Cierre de fichero 2 Caen eS tenaro FB RE erores Formatos de ficheros LabVIEW puede utilizar o crear los siguientes formatos de archivo: Binario, ASCII, LVM, y TDMS * Binario: los ficheros binarios son el formato de fichero subyacente del resto de formatos de fichero, + ASCII: un fichero ASCII es un tipo espeeifico de fichero binario y es un estindar que utilizan la mayoria de los programas. Consta de una serie de cédigos ASCII. Los ficheros ASCII también se denominan ficheros de texto. + LVM: el fichero de datos de medicién de LabVIEW (.1vm) es un fichero de texto delimitado con tabulaciones que puede abrir con una aplicacién de hoja de célculo o un editor de texto. El fichero . 1vm incluye informacién sobre los datos, como la fecha y la hora en que se generaron. Este formato de ficheros es un tipo especifico de un fichero ASCII creado para LabVIEW. + TDMS: este formato de ficheros es un tipo especifico de un fichero binario creado para productos de National Instruments. Consta de dos ficheros distintos: uno binatio que contiene datos y almacena propiedades sobre los datos y un fichero de indice binario que ofrece informacién consolidada sobre todos los atributos y punteros del fichero binario. En este curso aprender a crear ficheros de texto (ASCII). Use ficheros de texto cuando desee acceder al fichero desde otra aplicacién, si el espacio en disco y la velocidad de E/S de ficheros no es crucial, sino necesita realizar lecturas o escrituras de acceso aleatorio y si la precisién numérica no es importante Manual de Curso LabVIEW Core + Utiliz6 un fichero LVM en Ia leccién 1, Explorando LabVIEW. Para conocer mas acerea de ficheros binarios y TDMS, consulte la Ayuda de LabVIEW 0 el curso LabVIEW Core 2 E/S de ficheros de alto nivel Algunos Vis de E/S de fichero realizan los tres pasos de un proceso de E/S de ficheros: abrir, leer/escribir y cerrar. Si un VI realiza los tres pasos, se denomina VI de alto nivel. Sin embargo, estos VIs quizé no sean tan eficientes como las funciones y los VIs de bajo nivel diseiiados para partes coneretas del proceso. Si est escribiendo en un fichero en un bucle, use los Vis de B/S de ficheros de bajo nivel. Si esté escribiendo en un fichero en una tinica operacién, puede utilizar los Vis de E/S de ficheros de alto nivel LabVIEW incluye los siguientes VIs de E/S de ficheros de alto nivel: + Write to Spreadsheet File: convierte un array 2D 0 1D de niimeros de doble precision en una cadena de caracteres de texto y escribe ésta en un nuevo fichero ASCH o anexa los datos de la cadena de caracteres en un fichero existente, También puede transponer los datos. El VI abre o crea el fichero antes de escribir en él y lo cierra después. Puede utilizar este Vi para crear un fichero de texto legible para la mayoria de aplicaciones de hojas de caleulo. + Read From Spreadsheet File: lee un nimero concreto de lineas 0 filas de un fichero de texto numérico empezando por un desplazamiento de caracteres concreto y convierte los datos en un array 2D de niimeros de doble precision. El VI abre el fichero antes de leerlo y lo cietra después. Puede utilizar este VI para leer un fichero de hoja de calculo guardado en formato de texto + Write to Measurement File: un VI Express que escribe datos en un formato de fichero de medidas basado en texto (, 1vm) 0 un fichero de medidas binario (. cds). Puede especiticar el método de guardado, el formato de fichero (.1vm 0 . tas), el tipo de encabezado y el delimitador, + Read from Measurement File: un Vi Express que lee datos de un formato de fichero de medidas basado en texto (. 1vm) 0 un fichero de medidas binario (. rams). Puede especificar el nombre del fichero, el formato del fichero y el tamafio de segmentos, — Consejo Evite colocar los Vis de alto nivel en bucles, ya que los Vis realizan ‘operaciones de apertura y cierre cada vez que los ejecuta. Comprender la E/S de ficheros de bajo nivel Los VIs y funciones de E/S de fichero de bajo nivel realizan s6lo una parte del proceso de E/S de fichero cada uno. Por ejemplo, existe una funcién para abrir un fichero ASCII, otra para leerlo y otra para cerrarlo. Use funciones de bajo nivel cuando la E/S de fichero esté realizéndose en un bucle. Flujo continuo de datos a disco con funciones de bajo nivel ‘También puede utilizar funciones de E/S de fichero para operaciones de flujo continuo de datos a disco, que ahorran recursos de memoria al reducir el namero de veces que fa funcién interaettia con © National instruments | 6-5 Lecsibn 6 Adminisitando archivos y recurses hardware el sistema operativo para abrir y cerrar el fichero, El flujo continuo de datos a disco es una técnica para mantener los ficheros abiertos mientras realiza varias operaciones de escritura, por ejemplo, dentro de un bucle. Si cablea un control de ruta o una constante a la funcién Write to Text File, la funcién Write to Binary File o el VI Write To Spreadsheet File, afiade el retardo de abrir y cerrar el fichero cada vez jue se ejecuta la funcién o el VI. Los Vis pueden ser més eficientes si evita abrir y cerrar los mismos ficheros con frecuencia. Para evitar abrir y cerrar el mismo fichero, debe pasar un refnum al fichero en el bucle. Cuando abre un fichero, dispositivo 0 conexién de red, LabVIEW crea un refum asociado a ellos. Todas Jas operaciones que realice en ficheros, dispositivos o conexiones de red abiertos usan los refnums para identificar cada objeto, Los ejemplos de la figura 6-4 y 6-5 muestran las ventajas de usar el flujo continuo de datos a disco. En la figura 6-4, el VI debe abrir y cerrar el fichero durante cada iteracién del bucle. La figura 6-5 usa el flujo continuo de datos a disco para reducir el niimero de veces que debe interactuar el VI (on el sistema operativo para abrir y cerrar el fichero. Al abrir el fichero una vez antes de que empiece el bucle y cerrarlo cuando termina el buele, ahorra dos operaciones de fichero en cada iteracion del bucle. Figura 6-4. Ejemplo sin flujo continuo de datos a disco Sumber To Decimal Sing @ fa. HERNW IMCD operant Fe ete Te cle tl cus (rena) Figura 6-5. Ejemplo con flujo continuo de datos a disco § 55 | nicom Manual de Curso LabVIEW Gare ¢ Directorio LabVIEW Data Puede utilizar el directorio predeterminado LabVIEW Data para almacenar los ficheros de datos que genere LabVIEW, como ficheros . 1vm 0 . txt. LabVIEW instala el directorio Labv Za pata en el directorio de ficheros predeterminado de su sistema operativo para ayudarle a organizar y encontrar los ficheros de datos que genere LabVIEW. De forma predeterminada, el VI Express ‘Write LabVIEW Measurement File almacena los ficheros . 1vm que genera en este directorio, y el V1 Express Read LabVIEW Measurement File lee desde este directorio. La constante Default Dats Directory y la propiedad Application:Default:Data Directory también devuelven el directorio LabVIEW Data de forma predeterminada. a Seleccione Tools»Options y Paths en la lista Category para especificar un directorio de datos predeterminado distinto. El directorio de datos predeterminado difiere del directorio predeterminado, el cual usted especifica para nuevos Vis, controles personalizados, plantillas de V1 u otros documentos LabVIEW que eree. C. Adquiriendo mediciones con sistema DAQ Un sistema de adquisicién de datos (DAQ) usa un dispositive de adquisici6n de datos para pasar tuna sefial eléctrica acondicionada a un ordenador para el anzlisis software y registro de datos Puede elegir un dispositivo de adquisicién de datos que use un bus PCI, un bus PC] Express, un bus PXI 0 el puerto USB o IEEE 1394 del ordenador. Esta seccién explica el hardware utilizado en un sistema de adquisicién de datos y cémo configurar los dispositivos. {© National Iasteuments | 6-7 Lsccidn 6 Adminisirando archives y recursos hargware Un sistema DAQ tipico tiene tres tipos basicos de hardware: un bloque de terminales, un cable y un dispositive DAQ, como en la figura 6-6. Figura 6-6. Sistema DAQ tipico 1 Sefial 4 Dispositivo DAQ 2 Bloque de terminales 5 Ordenador Cable ‘as haber convertido un fendmeno fisico en una seftal medible con o sin el acondicionamiento de sefial, debe adquirir esa sefial. Para adquirir una sefial, necesita un bloque de terminales, un cable, un dispositive DAQ y un ordenador. Esta combinacién de hardware puede transformar un ordenador estandar en un sistema de medida y automatizacién, Uso de un bloque de terminales y un cable Un bloque de terminales permite conectar seftales. Consta de terminales de tornillo o de muelle para conectar seifales y un conector para acoplar un cable que conecte el bloque de terminales aun dispositive DAQ. Los bloques de terminales tienen 100, 68 0 50 terminales. El tipo de bloque de terminales que debe elegir depende de dos factores: el dispositivo y el nimero de seifales que esta midiendo. Un bloque de terminales con 68 terminales ofrece més terminales de tierra para conectar tuna sefial que un bloque de terminales con 50 terminales. Tener mas terminales de tierra evita tener gue solapar cables para aleanzar un terminal de tierra, lo que puede provocar interferencias entre las sefiales: Los bloques de terminales pueden apantallarse o no. Los bloques de terminales apantallados mejoran la proteccién contra el ruido. Algunos bloques de terminales contienen caracteristicas adicionales, como compensacién de unién fria, que son necesarias para medir correctamente un termopar, 68 | nicom Manual de Curso LaQvigW Core Un cable transporta la sefial desde el bloque de terminales al dispositivo DAQ. Los cables tienen configuraciones de 100, 68 y 50 pines. Elija una configuracién en funcién del bloque de terminales y el dispositive DAQ que esté usando. Los cables, al igual que los bloques de terminales, pueden apantallarse o no. Consulte la seccién DAQ del catdlogo de National Instruments 0 ni . com/products para obtener informacién adicional acerca de tipos especificos de bloques de terminales y cables, BNC-2120 La figura 6-7 muestra el BNC 2120, el cual puede ser usado para completar los ejercicios en este curso. ©Navonal Instruments | 6-9 Leccisn 6 ‘Adminisrande archivos y recursos hardware Figura 6-7. BNC-2120 Nereis BL. onc aro OOo SOSGODEDDGE i | @ ® OTST | 2OOCEDOA AONE ps l Interruptor RES/BNG (Al 3) ‘Clema para Medida de Resistencia Conector de Entrada de Termopar Referencia de Temperatura interruptor BNC/Temp. (Al 0) Interruptor BNG/Termopar (Al 1) Conectores de Entrada Analdgica BNC Interruptores FSGS Conectores de Salida Analégica BNC Interruptor de Seleccién de Rango de Frecuencia 1 Conector BNC Seno/Triangulo 2 Conector BNC Onda Cuadrada TTL 6:10 | nicom 18 Interruptor Forma de Onda Senol Triangulo 14 Mando de Ajuste de Frecuencia 18 Mando de Ajuste de Amplitud 16 Direccién de lineas de E/S digital 17 LEDs E/S Digital 18 Clemas Detinidas por Usuario 19 Conectores BNC Definidas por Usuario 20 Glomas de EIS temporizadas 21 Clemas de Encoder de Cuadratura 22 Mando de Encoder de Cuadratura 23 Conectores BNC de E/S temporizadas 24 LED Indicador de Alimentacion Manual de Curso LaaviEW Core + Uso de dispositivos DAQ La mayoria de los dispositivos DAQ tienen cuatro elementos estandares: entrada analogica, salida analégica, E/S digital y contadores. Puede transferir la seftal que mide con el dispositivo DAQ al ordenador a través de distintas estructuras de bus. Por ejemplo, puede utilizar un dispositive DAQ que se conecte al bus PCI o PCI Express de un ordenador, un dispositive DAQ conectado al zécalo PCMCIA de un ordenador portatil o un dispositivo DAQ conectado al puerto USB de un ordenador. También puede usar PXI/CompactPCI para crear un sistema de medida portatil, versdtil y robusto. Sino dispone de un dispositive DAQ, puede simular uno en Measurement & Automation Explorer (MAX) para completar la prueba de su software. Aprenderd a simular un dispositive en la seceién Simulacién de un dispositive DAQ de esta leccién. Consulte la seccién DAQ del catalogo de NI 0 ni .com/products para obtener informacion adicional acerca de tipos especificos de dispositivos DAQ. Entrada analogica La entrada analogica es el proceso de medir una seftal analégica y transferir la medida @ un ordenador para su andlisis, visualizacién o almacenamiento. Una sefial analogica es una sefial que varia continuamente. La entrada analégica se utiliza mucho para medir la tensidn o la cortient: Puede usar numerosos tipos de dispositivos para realizar la entrada analégica, como dispositivos multifuncién DAQ (MIO), digitalizadores de alta velocidad, multimetros digitales (DMM) y dispositivos de adquisicién de seftales dinamicas (DSA). La adquisicién de una sefial analogica con un ordenador requiere un proceso conocido como conversién analogico-digital, que capta la sefal eléctrica y la traduce en datos digitales para que el ordenador pueda realizar el procesamiento. Los conversores anal6gico-digital (ADCs) son componentes de circuito que convierten un nivel de tensin en una serie de unos y ceros. Los ADCs muestrean la sefial analégica en cada flanco de subida y bajada de un reloj de muestreo. En cada ciclo, ef ADC toma una instantanea de la sefial analégica, para que ésta pueda medirse y convertirse en un valor digital. Un reloj de muestreo controla la velocidad a la que se toman las muestras de la sefial de entrada, Como la sefial de entrada o desconocida es una sefal real con precisién infinita, el ADC realiza una aproximacién a la sefial con precisidn fija. Una vez que ADC obtiene esta aproximacién, ésta puede convertirse a una serie de valores digitales, Algunos métodos de conversién no requieren este paso, porque la conversién genera un valor digital directamente cuando el ADC alcanza la aproximaci6n, Salida analdgica La salida analégica es el proceso de generar sefiales eléctricas desde el ordenador. La salida analdgica se genera realizando la conversi6n digital-analégico (D/A). Los tipos de salida analégica disponibles para una tarea son tension y corriente. Para realizar una tarea de tensién o corriente, debe instalar un dispositivo compatible que pueda generar ese tipo de sefial. © National instruments | 6-71 Leccidn 8 Administrande archivos y recursos hardware La conversidn digital-analégico es lo opuesto a la conversién analégico-digital. En la conversién digital-analégico el ordenador genera los datos. Los datos pueden haberse adquirido antes utilizando Ia entrada analégica o pueden haberse generado por software del ordenador. Un conversor digital-analégico (DAC) acepta estos datos y los usa para variar en el tiempo la tension en un pin de salida. El DAC genera una sefial analégica que el DAC puede enviar a otros dispositivos o circuits. Un DAC tiene un reloj de actualizacién que indica al DAC cuando generar un nuevo valor. La funcién del reloj de actualizacion es similar a la del reloj de muestreo para un ADC. En cada ciclo de reloj, el DAC convierte un valor digital en una tensidn analégica y genera una tensién de salida en uno de los pines, Cuando se usa con un reloj de alta velocidad, el DAC puede crear una seftal que parece variar constantemente y de manera suave. E/S digital Las sefiales digitales son sefiales eléetricas que transfieren datos digitales por un cable. Estas sefiales normalmente tienen s6lo dos estados: on y off, también conocidos como alto y bajo. 0.1 y 0. Cuando envia una sefial digital por un cable, el emisor aplica tensidn en el cable y el receptor 1usa el nivel de tensién para determinar el valor que se esta enviando. B1 intervalo de tensién para cada valor digital depende del estandar de nivel de tensién que se use. Las sefiales digitales tienen ‘muchos usos, siendo la aplicacién mas sencilla controlar 0 medir dispositivos de estado digitales 0 finitos como interruptores y LEDs, Las sefiales digitales también pueden transferir datos y puede utilizarlas para programar dispositivos o comunicarse entre éstos. Ademés, puede usar sefales digitales como relojes o triggers para controlar o sincronizar otras medidas. Puede usar las lineas digitales de un dispositive DAQ para adquirir un valor digital. Esta adquisicién se basa en la temporizacién software. En algunos dispositivos puede configurar las lineas individualmente para medir 0 generar muestras digitales. Cada linea se corresponde con un canal en la tarea. Puede usar los puertos digitales de un dispositivo DAQ para adquirir un valor digital desde ‘un conjunto de Iineas digitales, Esta adquisicién se basa en la temporizacién software. Puede configurar los puertos individualmente para medir o generar muestras digitales. Cada puerto se corresponde con un canal en la tarea, Contadores Un contador es un dispositive de temporizacién digital. Normalmente se utilizan contadores para contar eventos, medir frecuencias, medir periodos, medir posiciones y generar pulsos. Cuando configura un contador para el contaje de eventos simple, el contador aumenta cuando se recibe un flanco activo en la fuente, Para que el contador aumente en un flanco activo, el contador debe armarse o iniciatse. Un contador tiene un ntimero fijo hasta donde puede contar, determinado por la resolucién del contador. Por ejemplo, un contador de 24 bits puede contar hasta ‘Devesoucion del contador) « | = 224 — 6.777.215 6-12 | a.com Manual de Curso Lab’ Cuando un contador de 24 bits aleanza el valor de 16.777.215, ha llegado al contaje terminal, El siguiente flanco activo obliga al contador a reiniciarse y empezar en 0. Uso del software DAQ Los dispositivos de adquisicién de datos de National Instruments disponen de un controlador que comunica el dispositivo y el software de aplicacién, Puede usar LabVIEW para comunicarse con estos controladores. NI-DAQmx contiene Vis, funciones y herramientas de desarrollo para controlar dispositivos de medicién. Consulte la seccién Programando con AQ en Lab) IE}, para obtener informacién adicional acerca como programar con DAQmx Ademis, puede utilizar MAX para configurar sus dispositivos de adquisicion de datos. En esta seccién, aprender acerca de motores controladores y del uso de MAX para configurar su dispositivo de adquisicién de datos. Configuracién del hardware DAQ Antes de usar un dispositivo de adquisicién de datos, debe confirmar que el software puede comunicarse con el dispositivo configurando los dispositivos. Los dispositivos ya estan configurados en los ordenadores de este curso. Windows El Administrador de configuracién de Windows ayuda a realizar un seguimiento del hardware instalado en el ordenador, como los dispositivos DAQ de National Instruments. Si tiene un dispositivo Plug & Play (PnP), como un dispositivo MIO Serie E, el Administrador de configuracién de Windows detecta y configura automaticamente el dispositivo. Si dispone de un dispositivo que no sea PaP, o un dispositivo legacy, debe configurar el dispositivo manualmente con la opeién Agregar nuevo hardware en el Panel de control de Windows Puede comprobar la configuracidn de Windows accediendo al Administrador de dispositivos Puede ver Data Acquisition Devices, que muestra todos los dispositivos DAQ instalados en el ordenador. Haga doble clic en un dispositivo DAQ para ver un cuadro de didilogo con paginas por pestafias. La pestafia General muestra informacidn general sobre el dispositivo. La pestaiia Driver especifica la version y la ubicacion del controlador para el dispositivo DAQ. La pestafia Details muestra informacion adicional sobre la configuracién del hardware. La pestafa Resources especifica los recursos del sistema para el dispositivo, como los niveles de interrupeién, DMA y direccién base para dispositivos configurables por software. Measurement & Automation Explorer MAX establece todos los pardmetros de configuracién de dispositivos y canales. Tras instalar un dispositive DAQ en el ordenador, debe ejecutar esta utilidad de configuracién. MAX fee la informacién que registra el Administrador de dispositivos en el registro de Windows y asigna ‘un niimero de dispositivo logico a cada dispositive DAQ. Use el ntimero de dispositivo para hacer referencia al dispositivo de LabVIEW. Acceda a MAX haciendo doble clic en el icono del escritorio 0 seleccionando Tools»Measurement & Automation Explorer en LabVIEW. © National instuments | 613 Lecsion 6 Adminiitande archivos yreeursas hardware La siguiente ventana es la ventana principal de MAX. MAX también constituye la herramienta para la configuracién de equipos SCXI y SCC. Figura 6-8. Ventana principal de MAX "GN open Merc sou ono fi ot Vow Toa Hep + Bivipien B esereaiontons Devices and interfaces fa set National Instruments Measurement & Automation Expl Wot do you want to do? W sanage mctenns ac rises Same same amie st oversee Fresno he Moen soe ao tae Mee Forme teaton set bee es ote Hom Duy os Ke eat Los parametros de dispositivos que puede ajustar con esta utilidad de configuracién dependen del dispositivo. MAX guarda el ntimero de dispositive légico y los pardmetros de configuracién en el registro de Windows. La capacidad plug & play de Windows detecta y configura automaticamente dispositivos DAQ sin conmutadores de configuracién, como el NI PCI-6024E, cuando instala un dispositivo en el ordenador. Simulacion de un dispositivo DAQ Puede crear dispositivos simulados NI-DAQmx en NI-DAQmx 7.4 0 posterior. Con los dispositivos simulados NI-DAQmx puede probar productos de NI en su aplicacién sin el hardware. Cuando adguiera e! hardware posteriormente, puede importar la configuracién del dispositive simulado NI-DAQmx en el dispositivo fisico usando el MAX Portable Configuration Wizard. Con los dispositivos simulados NI-DAQmx también puede exportar una configuracién de un dispositivo fisico en un sistema que no tenga el dispositivo fisico instalado. A continuacién, con el dispositive simulado NI-DAQmx, puede trabajar en sus aplicaciones en un sistema portatil y, al volver al sistema original, puede importar facilmente su trabajo en la aplicacién, a Manual de Curse LabVIEW Cons 1 Programando con DAQ en LabVIEW Ya comprende los transductores, sefiales, configuracién de dispositives DAQ y MAX. Ahora puede empezar a aprender a usar LabVIEW para crear una aplicacién de adquisicién de datos NI-DAQmx es compatible con paquetes de software distintos de Lab VIEW, pero este curso solo describe el desarrollo de aplicaciones DAQ con LabVIEW, DAQmx Name Controls La paleta DAQmx Name Controls incluye controles para el nombre de tarea, nombre de canal canal fisico, terminal, nombre de escala, nombre de dispositivo y conmutador. También puede crear estos controles haciendo clic con el botén derecho en el terminal de entrada correspondiente en un VI DAQmx y seleccionando Create»Control. Para obtener mas informacién sobre estos controles, consulte N/-DAQmx Help. Figura 6-9. Paleta DAQmx Name Controls DAtra Norse Contras Vis DAQm«x - Data Acquisition Use los VIs NI-DAQm«x con los dispositivos hardware NI-DAQ para crear aplicaciones de instrumentos, adquisicién y control. Consulte la guia DAQ Getting Started Guide o el fichero NE-DAQ Readme para ver la lista completa de dispositivos que admite NI-DAQms. La paleta DAQmx - Data Acquisition incluye las siguientes constantes y VIs Constantes + Constante DAQmx Task Name—Muestra todas las tareas que cree y guarde utilizando el DAQ Assistant. Haga clic derecho en la constante y seleccione /O Name Filtering en el mentt contextual para limitar las tareas que se muestran en la constante y para limitar lo que puede introducir en ella. + Constante DAQinx Global Channel—Muestra todos los canales globales que cree y guarde utilizando el DAQ Assistant. Haga clic y seleccione Browse para seleccionar varios canales. Haga clic derecho en la constante y seleccione 1/0 Name Filtering en el mentt contextual para limitar los canales que se muestran en la constante y para limitar lo que puede introducir en ella (© National instruments | 6-18 Lectida 6 Administeando archivos y recursos haraware Vis Vi DAQmx Create Virtual Channel—Crea un canal virtual 0 conjunto de canales virtuales y Jos afiade a una tarea. Las copias de este VI polimérfico corresponden al tipo E/S del canal, como entrada analégica, salida digital o salida de contador; la medida o generacién a realizar, ‘como la medida de temperatura, generacidn de tensidn 0 contaje de eventos; y, en algunos casos, el sensor a utilizar, como un termopar o RTD para la medida de temperatura. sta fancién configura los mismos ajustes que configura en MAX al crear un canal virtual. Use esta funcidn si el operador de su programa pudiera cambiar periddicamente la conexion del canal fisico, pero no otros ajustes importantes, como el modo de configuracién del terminal 0 la escala personalizada aplicada, Use el mem desplegable del canal fisico para especificar el miimero de dispositive DAQ y el canal fisico real al que esté conectado su sefial VIDAQmx Read—Lee muestras de la tarea o canales que especifique. Las copias de este VI polimérfico especifican que formato de las muestras hay que devolver, si hay que leer una sola muestra o varias a la vez y si hay que leer de uno o varios canales. Puede seleccionar una copia haciendo clic derecho enel VI DAQms Read y eligiendo Select Type para incluir mas opciones de configuracién para operaciones de lectura. VI DAQmx Write—Eseribe muestras en la tarea o canales que especifique. Las copias de este \Vi polimérfico especifican qué formato de las muestras hay que escribir, sihay que eseribir una sola muestra o varias y si hay que escribir en uno 0 varios canales. Puede seleccionar una copia haciendo clic derecho en el VI DAQmx Write y eligiendo Select Type para incluir més opciones de confignracién para operaciones de escritura. VI DAQmx Wait Until Done—Espera a que se complete a medida o generacién. Use este V1 para que la operacién especificada se complete antes de que detenga la tarea. VI DAQmx Timing— Configura el nimero de muestras que hay que adquirir o generar y crea un bifer cuando es necesario. Las copias de este VI polimérfico corresponden al tipo de temporizacion que se utilizard en la tarea. VIDAQmx Trigger—Configura la activacién de la tarea. Las copias de este VI pi corresponden al trigger y al tipo de trigger que hay que configurar. \orfico VI DAQmx Start Task—Transiciona la tarea al estado de ejecucién para empezar a medir 0a generar. Debe usar este VI para algunas aplicaciones y es opcional para otras. ‘VI DAQmx Stop Task—Detiene la tarea y la devuelve al estado en que se encontraba ésta antes de que vtilizara el VI DAQms Start Task 0 el VI DAQmx Write con Ia entrada autostart configurada a TRUE. VI DAQmx Clear Task—Borra la tarea, Antes de borrar, este VI detiene la tarea, si es ‘necesario, y libera los recursos que reserva aquélla, No puede utilizar una tarea tras borrarla, a menos que vuelva a crearla. 6-18 | a.com Manual de Curso LabVIEW Core + Figura 6-10. Paleta DAQmx Data Acquisition Taine bits an is PTA sen] Leosomne D. Controlando Instrumentos Cuando usa un ordenador para automatizar un sistema de prueba, no se limita al tipo de instrumento que puede controlar. LabVIEW permite controlar virtualmente cualquier tipo de instrumento incluyendo amplificadores, analizadores, calibradores, osciloscopios, fuentes de poder, generadores de seftales, sensores y més. Puede mezclar y combinar instrumentos de varias categorias. Las categorias mas comunes de interfaces de instrumentos son GPIB, USB, Ethernet, serie e instrumentos modulares. Otros tipos de instrumentos son adquisicién de imagenes, control de movimiento, puerto paralelo, NI-CAN y otros dispositivos. Este curso se enfoca en GPIB Cuando usa ordenadores para controlar instrumentos, debe entender las propiedades de los mismos, como los protocolos de comunicacién que usara y los comandos que el dispositivo espera. Refierase al manual de programacién del instrumento o al manual de usuario para informacion acerca las propiedades de un instrumento Beneficios del control de instrumentos LabVIEW hace fécil controlar y adquitir datos de cualquier instramento desde cualquier bus. Usted puede automatizar mediciones de varios dispositivos, analizar los datos cuando los adquiere y Tuego guardarlos al disco. Esta automatizacién puede ahorrar enormes cantidades de tiempo y dinero. También, usar una sola aplicacién para controlar miiltiples tareas ¢ instrumentos permite consolidar y sincronizar esas tareas. LabVIEW tiene muchas herramientas que ayudan a simplificar la programacion para control de instrumentos incluyendo controladores de instrumentos, ejemplos, wizards y Vis Express. Estas herramientas le pueden ayudar a hacer mas con su tiempo, reduciendo tareas repetitivas que consumen mucho tiempo y dejando que usted se enfoque en el desarrollo de secciones particulares de su aplicacién, Usted puede descargar controladores de instrumentos para casi cualquier instrumento sin costo. © National insicurnents | 5-17 01618 Administrando archives y reoursos hardware GPIB E] esténdar ANSV/IEEE 488, 1-1987, también conocido como General Purpose Interface Bus (GPIB), describe una interfaz estindar para la comunicacién entre instrumentos y controladores de varios proveedores. Los instrumentos GPIB ofrecen a los ingenieros de pruebas y de fabricacién {a mayor seleceién de proveedores e instrumentos para aplicaciones de prueba de proposito general o especializadas en mereados verticales. Los instrumentos GPIB suelen utilizarse como instrumentos independientes de sobremesa donde las medidas se toman a mano. Puede automatizar estas medidas con un ordenador para controlar los instrumentos GPIB. IEEE 488.1 contiene informacién sobre especificaciones eléctricas, mecdnieas y funcionales. El estandar ANSI/IEEE 488.2-1992 amplia [EEE 488.1 al definir un protocolo de comunicacion de bus, un conjunto comtin de eédigos y formatos de datos y un conjunto genérico de comandos comunes de dispositivo. GPIB es una interfaz digital de comunicacion paralela de 8 bits con velocidades de transferencia de datos de 1 Mbyte/s o més, utilizando un protocolo de enlace de tres cables. El bus admite un controlador de sistema, normalmente un ordenador, y hasta 14 instrumentos adicionales. El protocolo GPIB categoriza dispositivos como controladores, transmisores w oyentes para determinar qué dispositivo tiene un control activo del bus. Cada dispositive tiene una direecién primaria GPIB tnica entre 0 y 30. El controlador define los enlaces de comunicacién, responde a dispositivos que requieren servicio, envia comandos GPIB y transmite o recibe control del bus. Los controladores ordenan a Jos transmisores transmitir y colocar datos en el bus GPIB. Puede direccionar s6lo un dispositivo a la vez para transmitir. El controlador direcciona al oyente para escuchar y leet datos del bus GPIB. Puede direecionar varios dispositivos para escuchar. Terminacién de transferencia de datos La terminacién informa a los oyentes de que se han transferido todos los datos. Puede terminar una transferencia de datos GPIB de estos tres modos: arse con el + El bus GPIB incluye una linea de hardware End Or Identify (EOI) que puede a liltimo byte de datos. Este es e] método preferido. * Colocar un carécter especifico end-of-string (EOS) al final de la cadena de caracteres de datos Algunos instrumentos usan este método en lugar de la activacién de la linea EOI o ademas de ella. + Eloyente cuenta los bytes transferidos mediante el protocolo de enlace y deja de leer cuando el oyente llega a un limite de contaje de bytes. Este método suele ser el de terminacién predeterminado porque la transferencia se detiene en el OR légico de EOI, EOS (si se usa) junto con el contaje de bytes. Como precaucién, ef contaje de bytes del oyente suele elegirse mayor que el contaje de bytes esperado, para no perder ninguna muestra, 618 | nicom Manual de Cueso LabVIEW Core 1 Velocidad de transferencia de datos Para conseguir la mayor velocidad de transferencia de datos para la que se diseiié el bus GPIB debe limitar el mimero de dispositivos del bus y la distancia fisica entre dispositivos. Puede obtener velocidades de datos mas rapidas con dispositivos y controladores HS488. HS488 es una extensién de GPIB que admiten la mayoria de los controladores de NI YEA Nota Consulte el sitio web de soporte de GPIB de National Instruments ni .com/ support /apibsupp.htm para obtener informacion adicional acerca del bus GPIB. Configurando un instrumento GPIB La arquitectura software para el control de instrumentos mediante LabVIEW es similar a la arquitectura para DAQ. Las interfaces de instrumentos como GPIB incluyen varios controladores, Use MAX para configurar Ia interfaz, YEA Nota _La mayorfa de los controladores GPIB disponibles para descargar estén disponibles en ni. com/support /gpib/versions .htm. Instale siempre la version més reciente de estos controladores a menos que las notas de la versién indiquen lo contrario. MAX (Windows: GPIB) Use MAX para configurar y probar la interfaz GPIB. MAX interactiia con las herramientas de diagnéstico y configuracién instaladas con el controlador y tambign con el registro de Windows y el Administrador de dispositivos. El software a nivel de controlador toma la forma de una DLL y contiene todas las funciones que se comunican directamente con la interfaz GPIB. Los Vis y las funciones de Instrument I/O Iaman directamente al software del controlador. @ National instruments | 6-19 Lecsidn 8 Administande archivos y recursos hardware. Lance MAX haciendo doble clic en el icono del escritorio o seleccionando Tools» Measurement & Automation Explorer en LabVIEW. El siguiente ejemplo muestra una interfaz GPIB en MAX tras hacer clic en el botén Scan For Instruments de ta barra de herramientas. Figura 6-11, Interfaz GPIB en Measurement & Automation Explorer 1B Micisnts"O02" “Gran (HGP Mearrement 8 Automation Eporet foley Ble fat New Tool He : Sooners oS : = 2B ty gate Teds Pa Rene Dette | Seanteresvuments "Te Bewtiee | Bethea gece nia Sed “Tas OE PCED | van @ irtnimeno Bi exotce earaton Bineimen (oietanierads scram teatment 2 ae an CA ace ass ee ene. Ge ce soe B Mine cnet | "sent on | ie | | “ oo aan mar ma Dive hutsoating aan | traction satese I rose i feste05 cone Ll araesetngs rete cata Women tne thd tans Mn ana Se 40882. Giese ees tens Sle 80092001 rerwert’2 3s res otal str Sul OHHOHE. 20.84 Configure los objetos que aparecen en MAX haciendo clic con el botén derecho en cada uno y seleecionando una opcién del men contextual. Puerto serie La comunicacién serie transmite datos entre un ordenador y un dispositivo periférico, como un instrumento programable u otro ordenador. La comunicacién serie utiliza un transmisor para enviar datos bit por bit por una sola linea de comunicacién a un receptor. Use este método cuando las velocidades de transferencia de datos sean bajas o tenga que transferir datos a larga distancia. La 6-20 | nicom Manual de Curso LabVIEW Gore + mayoria de los ordenadores tiene uno o mas puertos serie, por lo que no necesita hardware adicional aparte de un cable para conectar el instrumento al ordenador o para conectar dos ordenadores enite si Figura 6-12. Ejemplo de instrumento serie 1 Instrumento RS-232 2 Cable RS-232 3 Puerto serie Debe especificar cuatro parémetros para la comunicacién serie: la velocidad en baudios de la transmisién, el mimero de bits de datos que codifican un cardcter, el sentido del bit de paridad opcional y el niimero de bits de parada. Una trama de caracteres empaqueta cada carécier transmitido como un tinico bit de inicio seguido de los bits de datos La velocidad en baudios mide la rapidez de movimiento de los datos entre instrumentos que usan la comunicacién serie. Los bits de datos se transmiten al revés y hacia atrés, lo que significa que se usa la logics invertida y el orden de transmisién es del bit menos significativo (LSB) al bit mas significative (MSB). Para interpretar los bits de datos en una trama de caracteres, debe leer de dlerecha a izquierda y leer 1 para tensién negativa y 0 para tensién positiva. Un bit de paridad opcional sigue a los bits de datos en la trama de caracteres. El bit de paridad, si se encuentra, también sigue ldgica invertida. Este bit se incluye como un medio para comprobar errores. Especifique con antelacién si la paridad de la transmisidn sera par o impat. Si elige que la paridad sea impar, el bit de paridad se configura para que el niimero de Is se sumen para crear un nimero impar entre los bits de datos y el bit de paridad. La tiltima parte de la trama de caracteres consta de 1, 1,5 0 2 bits de parada que siempre se representan con una tensién negativa. Si no se transmiten mas caracteres, la linea permanece en estado negativo (MARK). La transmisién de la siguiente trama de caracteres, en su caso, empieza con un bit de inicio de tensién positiva (SPACE). ©Natir 9 netuments | &-23 LLecci6n 8 Administrande archivos y recursos hardware La siguiente figura muestra una trama de caracteres tipica que codifica la letra m. Figura 6-13. Trama de caracteres para la letra m = oo Le Character Frame RS-232 usa sélo dos estados de tensién, llamados MARK y SPACE, En ese esquema de codificacién de dos estados, la velocidad en baudios es idéntica al niimero maximo de bits de informaci6n, incluyendo los bits de control, que se transmiten por segundo. MARK es una tension negativa y SPACE una positiva. La ilustracién anterior muestra el aspecto de la sefial idealizada en un osciloscopio. Esta es la tabla de verdad para RS-232: Sefial > +3 V=0 Sefial <-3V=1 El nivel de seftal de salida normalmente oscila entre +12 V y -12 V. La zona muerta entre +3 V y 3 V esté diseitada para absorber el ruido de linea. Un bit de inicio sefiala el principio de cada trama de caracteres. Es una transicion de tension negativa (MARK) a positiva (SPACE). Su duracién en segundos es la inversa de la velocidad en audios. Si el instrumento est transmitiendo a 9.600 baudios, la duracién del bit de inicio y cada bit siguiente sera de unos 0,104 ms, Toda la trama de caracteres de once bits se transmitiria en aproximadamente 1,146 ms. La interpretacién de los bits de datos para la transmisin produce 1101101 (binario) 0 6D (hexadecimal). Una tabla de conversion ASCII muestra que se trata de la letra m, Esta transmisién utiliza paridad impar. Existen cinco unos entre los bits de datos, ya un némero impar, por lo que el bit de paridad se configura en 0. Velocidad de transferencia de datos Puede caleular la velocidad de transmisién maxima en caracteres por segundo para una configuracién de comunicacién predeterminada dividiendo la velocidad en baudios entre los bits por trama de caracteres En el ejemplo anterior hay un total de once bits por trama de caracteres. Si la velocidad de transmisidn se configura en 9.600 baudios, conseguird 9.600/11 = 872 caracteres por segundo. Observe que esta es la velocidad de transmision maxima de caracteres. El hardware de un extremo wootto del enlace serie quiz no pueda alcanzar estas velocidades, por varios motivos. 6-22 | nicom Manual de Curso LabVIEW Core 1 Estandares de puerto serie Los siguientes ejemplos son los estandares mas recomendados de comunicacién por puerto serie + RS232 (esténdar ANSVEIA-232) se utiliza con numerosos fines, como conectar un ratin, impresora o médem. También se utiliza con la instrumentacion industrial. Debico a las mejoras en cables y controladores de linea, las aplicaciones suelen aumentar el rendimiento de RS232 por encima de la distancia y la velocidad en la lista de estandares, RS232 se limita a conexiones punto a punto entre los dispositivos y puertos serie del ordenador, + R842 (estindar AIA RS422A) usa una seftal eléctrica diferencial al contrario de las sefiales desequilibradas (de un solo hilo) referenciadas a tierra de RS232. La transmisién diferencial que usa dos Iineas cada una para transmitir y recibir sefiales, produce més inmanidad al ruido y mayores distancias de transmision en comparacién con RS232 + R8485 (esténdar ELA-485) es una variacién de RS422 que permite conectar hasta 32 dispositivos a un solo puerto y definir las caracterfsticas eléctricas necesarias para garantizar tensiones de sefial adecuadas con la maxima carga. Con esta capacidad multipunto mejorala, puede crear redes de dispositivos conectados a un solo puerto serie RS485. La capacidad de inmunidad al ruido y multipunto convierten al RS485 en una cleccién atractiva en aplicaciones industriales que requicren varios dispositivos distribuidos y conectados en red @ un ordenador u otro controlador para la recopilacién de datos y otras operaciones. Programacion de control de instrumentos VISA es una API de alto nivel que llama a controladores de bajo nivel. VISA puede controlar instrumentos GPIB, USB, Ethernet, puerto serie y otras interfaces y realiza las llamadas apropiadas de controlador en funcién del tipo de instrumento utilizado. Al depurar problemas de VISA. recuerde que un posible problema de VISA podria estar en la instalacién de uno de los controladores a los que VISA llama, En LabVIEW, VISA es una biblioteca de funciones que puede utilizar para comunicarse con una variedad de interfaces E/S que cualquier instrumento puede prover. Debido a esto, no necesita usar otras paletas de E/S para programar un instrumento. Por ejemplo, algunos dispositivos oftecen milltiples tipos de interfaces como Ethernet, USB y GPIB en el mismo instrumento, Si el controlador de instrumento de LabVIEW estuviera escrito con funciones de la paleta Instrument V/O»GPIB, los Vis del controlador de instrumento no funcionarian para el mismo instrumento con interfaz USB. VISA resuelve este problema ofreciendo un solo conjunto de funciones viliclas para cualquier tipo de interfaz. Por lo tanto, numerosos controladores de instrumento de LabVIEW usan VISA como lenguaje de E/S. Terminologia de programacién de VISA La siguiente terminologia es similar a la que usan los VIs de controladores de instrumento + Resource: cualquier instrumento del sistema, como los puertos serie y paralelo. + Session: debe abrir una sesién VISA con un recurso para comunicarse con él, al igual que un canal de comunicacién. Cuando abra una sesién en un recurso, LabVIEW mostraré un niimero de sesién VISA, que es un refnum tinico para ese instrumento. Debe utilizar el numero de sesién en todas las funciones posteriores VISA. © National insteuments | 6-23 Leccion 6 Administrande archivos y recursos hardware + Instrument Descriptor: nombre exacto de un recurso. El descriptor especifica el tipo de interfaz (GPIB, USB, TCP/IP, ASRL), la direccién del dispositivo (direccién légica o direcei6n primatia) y el tipo de sesién VISA (INSTR o Event) El descriptor det instrumento es similar a un nimero de teléfono; el recurso es similar a la persona con la que desea hablar y la sesin es similar a la linea de teléfono. Cada Hamada usa su propit linea y cruzar éstas produce un error. La tabla 6-1 muestra la sintaxis adecuada para el descriptor del instrumento para algunas interfaces diferentes. ‘Tabla 6-1. Sintaxis para varias interfaces de instrumentos Intertaz Sintaxis | Puerto serie asincrono ASRL [device] (: : INSTR] | GPIB GPrB (device) : : primary addresst : : secondary \ address} [:: INSTR] — /Instrumento VXI mediante un ‘v1 [device] : : VXI logical address: :- INSTR} controlador embebido o MXTbus | Controlador GPIB-VXI GP1B-Vt (device) [ :;GPIB-VXI primary i address] : : VXI logical address: : INSTR] cede utilizar un alias que asignaré en MAX en lugar del descriptor del instrumento. Las funciones de comunicacién VISA mas utilizadas son las funciones VISA Write y VISA Read. En la mayoria de los instrumentos debe enviar informacién en forma de comando o consulta antes de poder volver a leer informacién del instramento, Por lo tanto, la funcién VISA Write suele ir seguida de una funcion VISA Read. Las funciones VISA Write y VISA Read funcionan con cualquier tipo de comunicacién de instrumento y son las mismas independientemente de si realiza tuna comunicacién GPIB o serie, No obstante, dado que para la comunicacién serie debe configurar pardmetros adicionales, debe iniciar la comunicacién del puerto serie con el VI VISA Configure Serial Port. Controladores de instrumento Imagine el siguiente escenario, Escribié un VI de LabVIEW que se comunica con un osciloscopio conereto de su laboratorio. Desafortunadamente, el osciloscopio ya no funciona y debe sustituirlo, Sin embargo, este osciloscopio concreto ya no se fabrica. Encontré otra marca de osciloscopio que desea comprar, pero su VI ya no funciona con el nuevo osciloscopio. Debe rescribir su V1 Cuando utiliza un controlador de instrumento, el controlador contendré el c6digo especitico para e! instrumento. Por lo tanto, si cambia de instrumento, debe sustituir sélo los VIs del controlador de instrumento por los Vis del nuevo controlador de instrumento, lo que reduce enormemente su tiempo de desarrollo. Los controladores de instrumento facilitan mas el mantenimiento de las aplicaciones de prueba, ya que los controladores contienen todas las E/S de un instrumento en una 6:24 | sicom Mana de Curso LabVIEW Core 1 biblioteca, separada de otro cédigo. Cuando actualice e! hardware, actualizar la aplicacion resulta mis facil porque el controlador del instrumento contiene todo el cédigo especifico para ese instrumento, Comprensién de los controladores de instrumento En LabVIEW, un controlador de instrumento plug and play es un conjunto de Vis que conttolan un instrumento programable. Cada VI corresponde con una operacién de instrumento, como configurar, activar y leer medidas para el instrumento, Los controladores de instrumento ayudan a los usuarios a empezar a usar instrumentos desde un ordenador y les ahorran el tiempo de desarrollo y el coste, ya que los usuarios no tienen que aprender el protocolo de progeamacién para cada instrumento. Con controladores de instrumento de cédigo abierto y bien documentados, puede personalizar su funcionamiento para mejorar el rendimiento. Un diseso modular | personalizacién del controlador. Ubicacion de los controladores de instrumento Puede ubicar la mayoria de los controladores de instrumento plug & play de LabVIEW en el Instrument Driver Finder. Puede acceder al Instrument Driver Finder de LabVIEW seleccionando Tools»Instrumentation»Find Instrument Drivers o Help»Find Instrument Drivers. E1 Instrument Driver Finder extrae controladores de la red extensiva de controladores de instrumentos que puede encontrar en ni. com\idnet. Cuando instale un controlador de instrumento, se aftade al NI Example Finder un programa de ejemplo que usa el controlador. VI Example Instrument Driver EI diagrama de bloques de la figura 6-14 inicializa el multimetro digital (DMM) Agilent 34401, usa un VI de configuracién para elegir la resolucién y el rango, seleccionar la funcion y habilitar 9 deshabilitar el rango automatico, usa un VI de datos para leer una sola medida, cierra el instrumento y comprueba el estado de los errores. Todas las aplicaciones que utilizan wn controlador de instrumento tienen una secuencia similar de eventos: Inicializacién, Configuracion. Lectura de Datos, y Cierre. Figura 6-14. Ejemplo de controlador de instrumento de DMM Agilent 34401 Manus Resoton (5.5 Oi) Function (206 Voraget 1S IMeanrement Sei Conguoton [SEE (ime) cent po Bese Pore Este programa ejemplo esté disponible en el NI Example Finder cuando instala el controlador de instrumento plug & play de LabVIEW para el DMM Agilent 34401. ‘© National Insteuments | 6-25 Leceién 6 Adminisicande archivos y recursos hardware Muchos instruments programables tienen un gran nimero de funciones y modos. Con esta complejicad, es necesario un modelo de disefio consistente que ayude a los desarrolladores de controladores de instrumento y a los usuarios finales que desarrollan aplicaciones de control de instrumentos. Los Vis de un controlador de instrumento se organizan en seis categorias. Estas categorias se resumen en la siguiente tabla. Categoria Descripcién | Inicializar L EI VI Initialize establece comunicacién con el instrumento y es el primer VI del controlador de instrumento al que se llama. Configurar | Los Vis Configure son rutinas de software que configuran el instrumento para realizar operaciones especificas. Tras llamar a estos VIs, el instrumento esta listo para realizar medidas o estimular un sistema Accién/Estado Los Vis Action/Status ordenan al instrumento realizar una accién (por ejemplo, armar un trigger) u obtener el estado actual de las operaciones pendientes o del instrumento, Los VIs de datos transfieren datos al instrument o desde él Los Vis Utility realizan varias operaciones auxiliares, como reinicio y autodiagnéstico El VI Close termina la conexién software con el instrumento. Es el ultimo VI del controlador de instrumento al que se Hama. 6-26 | nicom. Manual do Curso LabVIEW Cors + Autorrevision: Cuestionario 1. Después de abrir un archivo, qué salida devuelve la funcién Open/Create/Replace File? a. Ruta del archivo b. Nombre del archivo ¢. Refnum out d. Task out 2. {Qué es MAX (Measurement & Automation Explorer)? a. Una herramienta para configurar y probar dispositivos DAQ b. Una herramienta para probar comunicacién con instrumentos ©. Un VI Express configurable Una ventana para ver archivos de proyectos de LabVIEW 3. {Cuiles de las siguientes opciones son ventajas del control de instrumentos? a. Procesos automaticos b. Ahorro de tiempo c. Una plataforma para varias tareas d. Limitado sélo a un tipo de instrumento 4. VISA es una API de alto nivel que llama a controladores de bajo nivel. a. Verdadero b. Falso © National instruments | 6 Manual de Curso LabviEW Core Autorrevision: Respuestas 1. Después de abrir un archivo, ;qué salida devuelve la funcién Open/Create/Replace File? a. Ruta del archivo b. Nombre del archivo c. Refnum out d. Task out 2. Qué es MAX (Measurement & Automation Explorer)? a, Una herramienta para configurar y probar dispositives DAQ b. Una herramienta para probar comunicacién con instrumentos ¢. Un VI Express configurable 4. Una ventana para ver archivos de proyectos de LabVIEW 3. {Cualles de las siguientes opciones son ventajas del control de instrumentos a. Procesos automaticos b. Ahorro de tiempo c. Una plataforma para varias tareas d. Limitado s6lo a un tipo de instrumento 4. VISA es una API de alto nivel que llama a controladores de bajo nivel a. Verdadero b. Falso © National insteuments | 6-29 Leceiin 6 Adminisivanco aechives y recursos hardware Notas 6-20 | ni.com, Usando algoritmos de maquinas de estado y secuenciales Lo primero para desarrollar un proyecto en LabVIEW es explorar las arquitecturas que existen en LabVIEW. Los arquitecturas son esenciales para crear un buen disefio software. Las arquitecturas mas comunes se suelen agrupar en modelos de diseio. A medida que un modelo de disefio gana aceptacién, resulta més facil reconocer cuéndo se ha utilizado uno, Este reconocimiento le ayuda a usted y a otros desarrolladores a leer y modificar Vis que se basan en modelos de disefio, Existen numerosos modelos de disefio para VIs de LabVIEW. La mayoria de las aplicaciones usan al menos uno. En este curso exploraré el modelo de disefio de maquina de estados. Aptenda mas sobre modelos de disefio en el curso LabVIEW Core 2. Temas ‘A. Programacién secuencial B, Programacién de estado C. Maquinas de estados (© National Insteument Leceidn ? Usando algortmas de méquinas de aslado y secvenciales A. Programacion secuencial Muchos de los Vis que eseribe en LabVIEW cumplen tareas secuenciales. E] modo de programar estas tareas secuenciales puede ser muy distinto. Observe el diagrama de bloques de la figura 7-1 En este diagrama de bloques, se adquiere una sefial de tensién, un cuadro de didlogo indica al usuario que active la alimentacién, la sefial de tensién se adquiere de nuevo y al usuario se Ie indica que debe apagar la alimentacién, No obstante, en este ejemplo no hay nada en el diagrama de Dloques que fuerce el orden de ejecucién de estos eventos. Cualquiera de estos eventos podria suceder el primero. Figura 7-1. Tareas sin secuenciar iio] fae] En LabVIEW puede completar tareas secuenciales colocando cada una en un subVI y ordenando los subVIs en el orden en que desee que se ejecuten usando los cables del cluster de error. Sin embargo, en este ejemplo sélo dos de las tareas tienen un cluster de error Con los clusters de error puede forzar el orden de ejecucién de los dos DAQ Assistants, pero no las funciones One Button Dialog, como en la figura 7-2. Figura 7-2. Tareas secuenciadas parcialmente Jere hana Po Manual de Curso LabVIEW Core Puede usar una estructura Sequence para forzar el orden de operaciones de los objetos del diagrama de bloques. Una estructura Sequence contiene uno o mas subdiagramas, o marcos, que se ejecutan en orden secuencial; un marco no puede empezar la ejecucion hasta que se haya completado la ejecucidn de todo el cédigo del marco anterior, La figura 7-3 muestra un ejemplo de este VI que usa una estructura Sequence para forzar el orden de ejecucién. Figura 7-3. Tareas secuenciadas con una estructura Sequence Para aprovechar el paralelismo inherente de LabVIEW, evite abusar del uso de esteucturas Sequence. La estructuras Sequence garantizan el orden de ejecucién, pero prohiben operaciones paralelas. Otra desventaja de usar estructuras Sequence es que no puede detenerse la ejecucién en medio de la secuencia, Un buen modo de usar las estructuras Sequence para este ejemplo aparece en la figura 7-4, Figura 7-4. Tareas secuenciadas con estructuras Sequence y un cluster de error aaears Sin embargo, el mejor modo de escribir este VI es encerrar las funciones One Button Dialog en una estructura Case y cablear el cluster de error al selector de caso, © National instruments | LLeceidn 7 Usando algorimes de maquiaas de estado y secuenciales Use con moderacién las estructuras Sequence porque no realizan la comprobacién de errores y la ejecucién de la secuencia continia incluso aunque se detecten errores. Base su desarrollo en el flujo de datos mas que en las estructuras Sequence para controlar el orden de ejecucién. Figura 7-5. Tareas secuenciadas con un cluster de error y estructuras Case ter Aoeng Pomer =) t= L ee el ae fesiaai vata) Ea) B. Programacion de estado Aunque tna estructura Sequence y subVIs cableados secuencialmente cumplen la tarea, los VIs suelen requerir programacién mas compleja: + ,Qué ocurre si debe cambiar el orden de la secuencia? + Qué ocurre si debe repetir un elemento de la secuencia mas a menudo que los otros? + Qué ocurre si algunos elementos de la secuencia se ejecutan sélo ante ciertas condicione: + .Qué ocurre si debe detener el programa inmediatamente, en lugar de esperar hasta el final de Ja secuencia? Aunque su programa no tenga ninguno de los requisitos anteriores, siempre existe la posibilidad de que el programa sea modificado en el futuro. Por este motivo, una arquitectura de programacin de estado es una buena eleccion, aunque bastarfa con una estructura de programacién secuencial. C. Maquinas de estados E] modelo de disefto de la maquina de estados es coman y muy util en LabVIEW. Puede usar el modelo de diseito de maquina de estados para implementar cualquier algoritmo que pueda deseribir explicitamente un diagrama de estado o un diagrama de flujo. Una maquina de estado normalmente implementa un algoritmo moderadamente complejo de toma de decisiones, como una rutina de diagndstico 0 una monitorizacién de proceso. Una maquina de estados, que se define mejor como una maquina de estados finitos, consta de una serie de estados y una funcién de transicién que indica cual es el siguiente estado. Las méquinas de estados tienen numerosas variaciones. Las dos maquinas de estados finitos més comunes son Mealy y Moore. Una maquina Mealy realiza una agcién para cada transicién. Una maquina Moore realiza una accién conereta para cada estado del diagrama de transicién de estados. La plantilla del modelo de disefio de la maquina de estados en LabVIEW implementa un algoritmo que describe una maquina Moore. Manuat doe Curso LabVIEW Core 1 Aplicacién de maquinas de estados Use maquinas de estados en aplicaciones donde se distingan los estados. Cada estado puede llevar a uno o més estados 0 finalizar e! flujo del proceso. Una maquina de estados depende de la entrada del usuario o del resultado del estado actual para determinar qué estado ira después. Muchas aplicaciones requieren un estado de inicializacién seguido de un estado predeterminado, donde pueden realizarse numerosas acciones. Las acciones realizadas pueden depender de entradas y estados anteriores y actuales. Un estado de cierre normalmente realiza acciones de limpieza Las méquinas de estados se suelen utilizar para crear interfaces de usuario, En una interfaz de usuario, varias acciones del usuario envian la interfaz. de usuario a varios segmentos de procesamiento. Cada segmento de procesamiento acta como un estado en la maquina de estados Cada segmento puede Hlevar a otro segmento para el procesamiento o esperar a otra accion por parte del usuario. En una aplicacién de interfaz de usuario, la maquina de estados monitoriza constantemente las acciones del usuario para conocer la siguiente accin a realizar. La prueba de procesos es otra aplicacién comiin del modelo de disetio de la maquina de estados En una prueba de proceso, un estado representa cada segmento del proceso, En funcion del resultado de cada prueba del proceso, podria Ilamarse a otro estado. Esto puede suceder continuamente, lo que produce un andlisis profundo del proceso que esta probando. La ventaja de usar una maquina de estados es que puede crear VIs en LabVIEW faicilmente una vez. creado un diagrama de transicién de estados. Infraestructura de la maquina de estados ‘Trasladar el diagrama de transici6n de estados a un diagrama de bloques de LabVIEW requiere los siguientes componentes de infraestructura: + Bucle Whi + Estructura Case: contiene un caso para cada estado y el codigo para ejecutar en cada estado ejecuta continuamente los estados, + Registro de desplazamiento: contiene la informacion de transicisn de estados + Cédigo de funcionalidad de estado: implementa la funcion del estado + Cédigo de transicién: determina el siguiente estado de la secuencia. @ National instruments | 7-5 Leonidn 7 Usando algoriimas de maquinas de estado y secuenciales La figura 7-6 muestra la estructura basiea de una maquina de estados implementada en LabVIEW para un sistema de adquisicién de datos de temperatura. Figura 7-6, Infraestructura basica de una maquina de estados de LabVIEW. fe 'Start”, Default ~P] State Fey unctonal Tension a Funcnaty | ose ® stop oO Eee “7 Busle While 2 Registro de desplazamiento 3. Estructura Case £1 bucle While implementa el flujo del diagrama de transicién de estados. Cada estado se representa con casos en Ja estructura Case. Un registro de desplazamiento en el bucle While realiza el seguimiento del estado actual y comunica el estado actual con la entrada de la estructura Case. Control de maquinas de estados El mejor método para controlar la inicializacién y transicion de méquinas de estados es el control de tipo enumerado, Los enums se utilizan ampliamente como selectores de caso en maquinas de estados. Sin embargo, si el usuario intenta afiadir o eliminar un estado del control de tipo entimerado, se rompen los cables restantes conectados a las copias de este control de tipo snumerado, Es uno de los obstaeulos mas comunes al implementar maquinas de estados con controles de tipo enumerado. Una solucién a este problema es crear un control de tipo enumerado con tipo definido. Asi, todas las copias de control de tipo enumerado se actualizarn autométicamente si afiade o elimina un estado, Transicion de maquinas de estados Existen numerosos modos de controlar qué caso ejecuta una estructura Case en una maquina de estados, Elija el método que se adapte mejor a la funcién y complejidad de su maquina de estados De los métodos para implementar transiciones en maquinas de estados, el mas comin y ficil de usar es el eddigo de transicién de estructura Case individual, que puede utilizarse como transicién entre cualquier niimero de estados. Este método permite una arquitectura de maquina de estados alable, legible y mantenible. Los otros métodos pueden resultar itiles en situaciones concretas, y es importante que se familiarice con ellos. més es 76 | nieom Manual de Curso LabVIEW Core 1 Transicion predeterminada Para la transicién predeterminada, no se requiere cédigo para determinar el siguiente estado, Porque sélo hay un estado posible que ocurrira a continuaci6n. La figura 7-7 muestra un modelo de diseito que usa una transicién predeterminada implementada para un sistema de adquisicion de datos de temperatura, Figura 7-7. Transicion predeterminada individual Transicion entre dos estados EI siguiente método implica tomar una decision en una transicién entre dos estados. Para ello se suelen utilizar varios modelos. La figura 7-8 muestra la funcién Select utilizada para la transicion entre dos estados. Figura 7-8. Cédigo de transicion de la funcién Select _ Este método funciona bien si sabe que cada estado siempre transiciona entre dos estados. Sin embargo, este método limita la escalabilidad de la aplicacidn, Sinecesitara modificarel estado para la transicién entre mas de dos estados, esta solucién no fimcionaria y requeriria una modifieacion considerable del cédigo de transicién. © National Instruments | 77 lon 7 Usando algortmos de maquinas de estado y secuenciales D Transicion entre dos o mas estados Cree una arquitectura mas escalable utilizando uno de los siguientes métodos para la transicion entre estados. + Estructura Case: use una estructura Case en lugar de la funcién Select para el eddigo de transicién. La figura 7-9 muestra la transicién de la estructura Case implementada para un sistema de adquisicién de datos de temperatura, Figura 7-9. Cédigo de transicién de la estructura Case Ho, Default Pf Una ventaja de usar una estructura Case es que el eédigo se autodocumenta, Como cada caso de |a estructura Case corresponde a un elemento del enum, resulta facil leer y comprender el codigo. Una estructura Case también es escalable, A medida que crece la aplicacién, puede aiiedir mas transiciones a un estado concreto afiadiendo més casos a la estructura Case para ese estado, Una desventaja de usar una estructura Case es que no se ve todo el cédigo a la vez. Debido a la naturaleza de la estructura Case, no se puede ver de una vez toda la funcionalidad del cédigo de transicién. + Array de transicién: si tiene que ver mas cédigo del que permite la estructura Case, puede crear tun array de transicién para todas las transiciones que tengan lugar. La figura 7-10 muestra el array de tran datos de temperatura. én implementado para un sistema de adquisicién de Figura 7-10. Cédigo de transicién del Array de transicién 7-8 | nicom Manual de Curso LabVIEW Cove 1 En este ejemplo, el cédigo de toma de decisién facilita el indice que describe el siguiente estado. Por ejemplo, si el c6digo debe avanzar al siguiente estado Error Handler, el c6digo de toma de decisién genera el niimero 1 para la entrada index de la funcién Index Array. Este modelo de disefio hace el cédigo de transicién escalable y facil de leer. Una desventaja de este modelo es que debe tener cuidado al desarrollar el cédigo de transicion porque el array tiene un indice cero. Caso de Estudio: Proyecto del curso El proyecto del curso adquiere una temperatura cada medio segundo, analiza cada temperatura para determinar si es demasiado alta o baja y alerta al usuario si hay peligro de golpe de calor 0 congelacién, El programa registra los datos si hay una advertencia. Si el usuario no ha hecho clic en el botén de parada, se repetira todo el proceso. La figura 7-11 muestra el diagrama de transicién de estacios para el proyecto del curso. Figura 7-11. Diagrama de transicién de estados para el proyecto del curso Acquistion Time Elapsed « TRUE ‘and (i > ‘Stop = PALSE @ National insteuments Leccisn 7 _Usando algortmos da miquinas de estado y secuenciales Las figuras 7-12 a la 7-15 ilustran los estados de la maquina de estados que implementa el diagrama de transicién de estados detallado en la figura 7-11. Figura 7-12. Estado de adquisicién Figura 7-13. Estado de analisis =) 7 Figura 7-14. Estado de registro de datos 740 | nkcom Manuai 62 Gueso LabVIEW Core 1 Figura 7-15. Estado de comprobacién del tiempo © National instruments | 7-11 Manual de Curso LabVIEW Core + Autorrevision: Cuestionario a. b. Cuando utiliza una estructura Sequence, puede parar la ejecucién en medio de una secuencia Verdadero Falso 2. gual de los siguientes elementos son ventajas de usar una maquina de estados en lugar de una estructura secuencial? a, Puede cambiar el orden de la secuencia b, Puede repetir elementos en la secuencia ¢. Puede configurar condiciones para determinar eudndo debe ejecutarse un elemento de la secuencia, d. Puede detener el programa en cualquier punto de la secuencia ©Navonal instruments | 713 Manual de Curso LabVIEW Core 1 Autorrevision: Respuestas Cuando utiliza una estructura Sequence, puede parar la ejecucién en medio de una secuencia a, b, {Cua de los siguientes elementos son ventajas de usar una maquina de estados en lu Verdadero Falso de una estructura secuencial? a, b. ce a. Puede cambiar el orden de la secuencia, Puede repetir elementos en la secuencia, Puede configurar condiciones para determinar cusindo debe ejecutarse un clemento de la secuencia. Puede detener el programa en cualquier punto de la secuencia © Rational instruments Leovion 7 sande algaritmos de maquinas de estado y secvenciales Notas 738 | nicom Resolviendo desafios de flujo de datos con variables LabVIEW es un sistema de flujo de datos. Como tal, usted generalmente usa principios de disefio de flujo de datos al desarrollar su cédigo. Sin embargo, en algunas situaciones, como al comunicarse entre bucles paralelos, debe romper el modelo de ejecucién de flujo de datos pasando informacién entre ubicaciones en el cédigo que no puede conectar con un cable En esta lecci6n aprenderé acerca de variables en general y variables locales, especificamente para manejar el uso especial de casos donde la ejecucién mediante flujo de datos no funciona. Tambi aprender sobre problemas de programacién cuando se usan variables y como vencer estos desafios. Debido a que las variables no son parte del modelo de ejecucién mediante flujo de datos, iselas con cuidado. El mal uso de variables puede hacer que el cddigo sea dificil de leer, lleve a ‘comportamiento inesperado en VIs y rendimiento lento Temas A. Comunicaciin entre bucles paralelos B. Escribiendo a controles y leyendo de indicadores C. Variables D, Condiciones de carrera ©Natonal nstiuments | 8 Lscolon 8 Resohende dasatios do fujo de datos con vaiabies A. Comunicacién entre bucles paralelos En este curso el paralelismo hace referencia a ejecutar varias tareas a la vez. Piense en el ejemplo tie crear y mostrar dos ondas sinusoidales con distintas frecuencias. Con el paralelismo, coloque una onda sinusoidal en un bucle y la segunda onda sinusoidal en otro bucle. Un reto al programar tareas paralelas es pasar datos entre varios bucles sin crear una dependencia de datos. Por ejemplo, si pasa los datos usando un cable, los bucles ya no serén paralelos. En el ejemplo de la onda sinusoidal multiple, quiz4 desee compartir un mecanismo de parada simple entre los bucles, como en la figura 8-1. Figura 8-1. Panel frontal de bucles paralelos Compruebe lo que sucede cuando intenta compartir datos entre bucles paralelos con un cable usando diferentes métodos. Método 1 (incorrecto) Coloque el terminal Stop Button fuera de ambos bucles y cabléelo a cada terminal condicional, como en la figura 8-2. E] Loop Control es una entrada de datos de ambos bucles, por lo que el terminal Stop Button se lee s6lo una vez, antes de que cualquier bucle While empiece a ejecutarse Si False pasa a los bucles, los bucles While se ejecutan indefinidamente. Hacer clic en el botén Stop no detendré el VI, porque el clic en el botén no se lee durante la iteracién de cada bucle 82 | nicom Manual de Curso LabVIEW Cors + Figura 8-2. Ejemplo de método 1 de bucles paralelos agp Loge a. Método 2 (incorrecto) Introduzca el terminal Stop Button dentro del Loop 1 para que se lea en cada iteracién del Loop 1, como se muestra en el siguiente diagrama de bloques. Aunque el Loop I termina correctamente, el Loop 2 no se ejecuta hasta que recibe todas sus entradas de datos. El Loop 1 no pasa los datos fuera del bucle hasta que se detenga el bucle, por lo que el Loop 2 debe esperar al valor final del Stop Button, disponible cuando termine el Loop 1. Por lo tanto, los bucles no se ejecutan en paralelo. Asimismo, el Loop 2 se ejecuta s6lo para una iteracién porque su terminal condicional recibe un valor True del interruptor Stop Button del Loop 1. Figura 8-3. Ejemplo de método 2 de bucles paralelos Leg fA Stop Button facx] Método 3 (solucién) Si pudiera leer el valor del control de bucle desde un archivo, ya no dependeria de un flujo de datos entre los bucles, ya que cada bucle puede acceder al archivo de forma independiente. Sin embargo, leer y escribir en archivos puede ser lento, al menos en cuanto a tiempo de procesador tra forma de realizar esta tarea de comunicarse entre bucles paralelos es buscar la ubicacién donde los datos de control del bucle estén almacenados en la memoria y leer esa ubicacion de memoria directamente. Una variable local permite hacer esto al leer del mismo control del panel frontal en més de una ubicacién en el diagrama. Luego en esta leceién usted aprendera como crear y usar una variable local que se comunica entre dos bucles paralelos. © National instruments | 3 LLecoién & Resollendo desafios de flujo de datos con variables B. Escribiendo a controles y leyendo de indicadores Ademds de comunicarse entre dos bucles ejecutindose en paralelo, hay otros desafios de flujo de datos que se pueden vencer con variables locales. Puede usar una variable local para actualizar un solo indicador del panel frontal desde mas de una ubicacién en el diagrama de bloques, Por ejemplo, si tiene un VI con dos bucles While, puede actualizar un indicador del panel frontal para mostrar cual bucle se esta ejecutando es ese momento, Con una variable local puede escribir o leer desde un control o indicador del panel frontal. En efecto, con una variable local puede acceder a un objeto del panel frontal tanto una entrada como una salida, Por ejemplo, si la interfaz de usuario requiere que los usuarios inicien la sesién, puede borrar las solicitudes Login y Password cada vez que un nuevo usuario inicie la sesién. Use una variable local para leer desde los controles de cadena de caracteres Login y Password cuando un usuario inicie la sesi6n y para escribir cadenas de caracteres vacias en estos controles cuando el usuario cierre la sesion. C. Variables En LabVIEW, el orden de ejecucién de los mismos no esta determinado por el orden secuencial de Jos comandos sino por el flujo de datos. Por lo tanto, puede crear diagramas de bloque que tengan operaciones sinmulténeas, Por ejemplo, puede ejecutar dos bucles For simultineamente y mostrar Jos resultados en el panel frontal, como se ve en la figura 8-4 Figura 8-4. Mostrando el resultado de dos bucles For en el panel frontal Sin embargo, si usa cables para pasar datos entre bucles paralelos, ya no funcionardn en paralelo. Las operaciones entre bucles paralelos pueden ser dos bucles paralelos en el mismo diagrama de bloques sin dependencia de flujo de datos o dos Vis a los que se lame a la vez. 8-4 | nicom Manual de Curso LaavieW Core El diagrama de bloques de la figura 8-5 no ejecuta los dos bucles en paralelo debido al cable entre los dos subV1s. Figura 8-5. Dependencia de datos que impone el cable El cable crea una dependencia de datos, porque el segundo bucle no se inicia hasta que termine el primero y pase los datos por su tinel. Para que los dos bucles se ejecuten a la vez, retire el cable. Para pasar datos entre los subVIs, use otra técnica, como una variable. En LabVIEW, las variables son elementos del diagrama de bloques que le permiten acceder a otra ubicacién o almacenar datos en ella. La ubicacidn real de los datos depende del tipo de variable Las variables locales almacenan datos en los controles ¢ indicadores del panel frontal. Las variables globales y las variables compartidas tipo single-process almacenan datos en repositorios especiales a los que puede accederse desde varios Vis. Las variables globales funcionales almacenan datos en registros de desplazamiento del bucle While. Independientemente de donde almacene los datos la variable, todas las variables permiten eludir el flujo de datos normal pasando datos de un lugar a otro sin necesidad de un cable de interconexién. Por este motivo, las variables resultan tiles en arquitecturas paralelas, pero también tienen ciertos inconvenientes, como las condiciones de carrera. Variables Locales - Uso de variables en un solo VI Las variables locales transfieren datos dentro de un solo V1. En LabVIEW usted lee datos de un objeto del panel frontal o escribe datos en él usando su terminal del diagrama de bloques. Sin embargo, un objeto del panel frontal slo tiene un terminal del diagrama de bloques, y quiza su aplicacién necesite acceder a los datos de ese terminal desde mas de una ubicacién. Las variables locales y globales pasan informacién entre ubicaciones en la aplicacién que no se pueden conectar con un cable, Use variables locales para acceder a objetos del panel frontal desde mas de una ubicacién en un solo VI. Use variables globales para acceder y pasar datos entre varios Vis. Use un nodo de realimentacién para almacenar datos de un VI 0 ejecucién de bucle anterior Creacion de variables locales Haga clic con el botén derecho en un objeto del panel frontal o en un terminal del diagrama de blogues y seleccione Create»Local Variable en el mentt contextual para crear una variable local Aparecerd un icono de variable local para el objeto en el diagrama de bloques. {© National iastwuments | 8-5 Lecclon 8 Resolienc desatios de flujo de dalos con variables ‘También puede seleccionar una variable local en la paleta de Functions y colocarla en el diagrama de bloques. Bl nodo de variable local atin no esta asociado con un control o indicador. Para asociar una variable local con un control o indicador, haga clic con el botén derecho en el nodo de la variable local y seleccione Select Item en el ment contextual. El menti contextual expandido muestra todos los objetos del panel frontal que tienen etiquetas propietarias. LabVIEW usa etiquetas propietarias para asociar variables locales con objetos de! panel frontal. Por Io tanto, etiquete controles e indicadores del panel frontal con etiquetas propietarias descriptivas. Lectura y escritura de variables Tras crear una variable, puede leer datos desde una variable o escribir datos en ella. De forma predeterminada, una variable nueva recibe datos. Este tipo de variable funciona como indicador y es de escritura local o global. Cuando escribe datos nuevos en la variable local o global, el control © indicador del panel frontal asociado se actualiza con los nuevos datos. También puede configurar una variable para que actite como una fuente de datos. Haga clic con el botén derecho en la variable y seleccione Change To Read en el mend contextual para configurar la variable y que actiie como un control. Cuando se ejecuta este nodo, ef VI lee los datos en el contro! o indicador del panel frontal asociado. Para cambiar la variable de modo que reciba datos del diagrama de bloques en lugar de suministrar «datos, haga clic con el botén derecho en la variable y seleccione Change To Write en el ment contextual En el diagrama de bloques puede distinguir variables de lectura de variables de escritura de! mismo modo que distingue controles de indicadores. Una variable de lectura tiene un borde grueso similar aun control. Una variable de escritura tiene un borde fino similar a un indicador. Ejemplo de variable local En Ia seccién Comunicacisn entre bucles paratelos de esta leccién, vio un ejemplo de un VI que usaba bucles paralelos, El panel frontal contenia un tinico interruptor que detenia la generacién de datos mostrada en dos graficos tipo “graph”. En el diagrama de bloques, los datos para cada grafico tipo “chart” se generan en un bucle While individual para permitir la temporizacién separada de cada bucle. El terminal Loop Control detenia ambos bucles While. En este ejemplo, los dos bucles deben compartir el interruptor para que se detengan ambos a la vez. 86 | sicom Manual de Curso LabVIEW Core + Para que ambos graficos tipo “chart” se actualicen segin lo esperado, los bucles While deben funcionar en paralelo. Si conecta un cable entre los bucles While para pasar jos datos de Stop Button, los bucles While se ejecutardn en serie en lugar de en paralelo. La figura 8-6 muestra un diagrama de bloques de este VI que usa una variable local para pasar los datos de Stop Button Figura 8-6. Variable local utilizada para detener bucles paralelos Loop pap sy Stop duton {ASB - & El bucle 2 lee una variable local asociada con el Stop Button, Cuando configura el interruptor en False en el panel frontal, la terminal del bucle 1 escribe un valor False a la variable local Stop Button en el terminal condicional en el bucle 1, El bucle 2 lee la variable local Stop Button y escribe False en el terminal condicional del bucle 2. Asi, los bucles se ejecutan en paralelo y terminan simulténeamente cuando apaga el interruptor del panel frontal individual. Con una variable local puede escribir o leer desde un control o indicador del panel frontal, Eseribir en una variable local es similar a pasar datos a cualquier otro terminal. Sin embargo, con una variable local puede escribir en ella aunque sea un control o leer en ella aunque sea un indicador En efecto, con una variable local puede acceder a un objeto del panel frontal tanto una entrada como una salida Por ejemplo, si la interfaz de usuario requiere que los usuarios inicien la sesién, puede borrar las solicitudes Login y Password cada vez que un nuevo usuario inicie la sesién. Use una variable local para leer desde los controles de cadena de caracteres Login y Password cuando un usuario inicie la sesion y para escribir cadenas de caracteres vacfas en estos controles cuando el usuario cierre la sesién. Variables globales y compartidas - Usando variables entre Vis Puede usar variables para acceder y pasar datos entre varios VIs que se ejecutan simulténeamente ‘Una variable local comparte datos dentro de un VI. Una variable global también comparte datos, pero entre varios VIs. Por ejemplo, suponga que tiene dos VIs ejecutdndose simultaneamente, Cada ‘Vi contiene un bucle While y escribe puntos de datos en un grafico tipo “waveform chart”. El primer V1 contiene un control booleano para terminar ambos VIs. Puede usar una variable global para terminar ambos bucles con un solo control booleano. Si ambos bucles estuvieran en un solo diagrama de bloques dentro del mismo V1, podria usar una variable local para terminar los bucles También puede utilizar una variable compartida tipo single-process del mismo modo que usa una’ variable global. Una variable compartida es similar a una variable local o global, pero permite ©Nationat instauments | 87 Leco'én 8 Resolviend desatios de fuje de datos con variables compartir datos en una red. Una variable compartida puede ser tipo single-process o publicada en red, Aunque las variables compartidas publicadas en red van mds alld del ambito de este curso, con la variable compartida tipo single-process podré cambiar més tarde a una variable compartida publicada en red Use una variable global para compartir datos entre Vis en el mismo ordenador, especialmente si no usa un archivo de proyecto. Use una variable compartida tipo single-process si necesita compartir ia informacién de la variable entre Vis en varios ordenadores en el futuro. Creacion de variables globales Use variables globales para acceder y pasar datos entre varios VIs que se ejecutan simulténeamente. Las variables globales son objetos de LabVIEW integrados. Cuando crea una variable global, LabVIEW crea automaticamente un VI global especial, que tiene panel frontal pero no diagrama de bloques. Aflada controles e indicadores al panel frontal del VI global para definir los tipos de datos de las variables globales que contiene. Este panel frontal es un contenedor desde donde varios Vis pueden acceder a datos Por ejemplo, suponga que tiene dos Vis que se ejecutan simulténeamente, Cada VI contiene un buele While y escribe puntos de datos en un gritico tipo “waveform chart”. El primer VI contiene ‘un control booleano para terminar ambos VIs. Debe usar una variable global para terminar ambos bucles con un solo control booleano, Si ambos bucles estuvieran en un solo diagrama de bloques dentro del mismo VI, podria usar una variable local para terminar los bucles, Seleccione una variable global en la paleta Funetions y coléquela en el diagrama de bloques. Haga doble clic en el nodo de la variable global para ver el pane! frontal del VI global. Coloque controles ¢ indicadores en este panel frontal del mismo modo que en un panel frontal estandar. LabVIEW usa etiquetas propietarias para identificar variables globales. Por lo tanto, etiquete controles ¢ indicadores del panel frontal con etiquetas propietarias descriptivas. Puede crear varios VIs globales tinicos, cada uno con un objeto del panel frontal o, si desea agrupar variables similares, puede crear un VI global con varios objetos del panel frontal. Un VI global con varios objetos es mas eficaz, porque puede agrupar variables relacionadas. El iagrama de bloques de un VI puede incluir varios nodos de variables globales que estan asociados con controles ¢ indicadores del panel frontal de un VI global. Puede colocar Vis globales en otros Vis del mismo modo que coloca subVIs en otros VIs. Cada vez que coloca un nuevo nodo de variable global en un diagrama de bloques, LabVIEW crea un nuevo V1 global asociado solo con ese nodo de variable global y copias de él. Pele Manual de Gurso LabVIEW Core 1 La figura 8-7 muestra la ventana del panel frontal de un VI global con un valor numérico, una cadena de caracteres y un cluster que contiene un control numérico y otto booleano. La barra de herramientas no muestra los botones Run, Stop u otros relacionados como una ventana normal de un panel frontal. Figura 8-7. Ventana del panel frontal de un VI global ‘Tras terminar de colocar objetos en el panel frontal del VI global, guardelo y yuelva al diagrama de bloques del VI original. A continuacién, debe seleccionar el objeto en el VI global al que desee acceder. Haga clic en el nodo de variable global y seleccione un objeto del panel frontal en el ment contextual. El ment contextual muestra todos los objetos del panel frontal del VI global que tienen etiquetas propietarias. También puede hacer clic con el botén derecho en el nodo de variable global y seleccionar un objeto del panel frontal de! meni contextual Select Item. También puede usar la herramienta de operaciones y de etiquetado para hacer clic en el nodo de variable global y seleccionar el objeto del panel frontal del mend contextual Si desea usar esta variable global en otros Vis, seleccione la opoién Select a Vi en la paleta de Funciones. Por defecto, la variable global se asocia con el primer objeto del panel frontal con una etiqueta propietaria que colocé en el VI global. Haga clic con el botén derecho en el node de la variable global que colocé en el diagrama de bloques y seleccione un objeto del panel frontal en el ‘menii contextual Select Item para asociar la variable global con los datos de otro objeto de! pane! frontal. ®Natonal instruments | 8-8 Leonidn 8 Sesolviendo desatios de fujo de datos con vatiables Creacion de variables compartidas tipo single-process Debe utilizar un archivo de proyecto para usar una variable compartida. Para crear una variable compartida tipo single-process, haga elie con el bot6n derecho en My Computer en la ventana Project Explorer y seleccione New»Variable. Apareceré cl cuadro de didlogo Shared Variable Properties, como en la figura 8-8. Figura 8-8. Cuadro de didlogo Shared Variable Properties Desertion Nome Seine stl ype bata pe nib Neswek beg Dodie nal lnestoning i | Netwcrebleed ——_¥! Ocule i Ci ey peru pose. | | os L (oe) Cee) Coe En Variable Type, seleccione Single Process. Dé a la variable un nombre y un tipo de datos. Tras crear la variable compartida, aparecerd automdticamente en una nueva biblioteca de su archivo de proyecto. Guarde la libreria. Puede afiadir otras variables compartidas a esta biblioteca si es necesario. Puede arrastrar y soltar la variable desde el listado de la ventana Project Explorer directamente en el diagrama de bloques. Use el menti contextual para cambiar entre escritura 0 lectura. Use los clusters de error de la variable para imponer el flujo de datos Inicializacién de variables Para inicializar una variable local o global, compruebe que ésta contenga valores de datos conociclos antes de que se ejecute el VI. De lo contrario, las variables podrian contener datos que hagan que el VI funcione incorrectamente. Si la variable depende de un resultado de computacién para el valor inicial, asegtirese de que LabVIEW escriba el valor para la variable antes de que intente acceder a ésta para cualquier otra accion. Cablear la accién de escritura en paralelo con el resto del VI puede provocar una condicion de carrera, 8:10 | nicom Manual de Curso LabVIEW Coro 1 Para que se ejecute primero, puede aislar el eédigo que escribe el valor inicial de la variable en el primer marco de una estructura de secuencia o en un subVI y cablear el subVI para que se ejecute primero en el flujo de datos del diagrama de bloques, como se muestra en la figura 8-9. Figura 8-9. Inicializacién de variables eho Thvesheld Level Gauge [raisastion Stop Button ce @ Si no inicializa la variable antes de que el VI lea ésta por primera vez, la variable contenders el valor predeterminado del objeto de! panel frontal asociado. Evitando problemas de programacion inherentes con variables Las variables locales y globales son conceptos avanzados de LabVIEW. Inherentemente no forman parte del modelo de ejecucién del flujo de datos de LabVIEW. Algunos de los problemas de programacién con variables pueden incluir los siguientes: + Hace que el cédigo del diagrama de bloques sea dificil de leer—Al romper el modelo de flujo de datos, no se pueden usar cables para seguir el flujo de los datos + Lleva a comportamientos inesperados en los VIs—Usar variables en lugar de panel de conectores 0 usar variables para acceder valores en cada cuadro de una estructura Sequence es ‘una mala prictica por que puede causar comportamiento inesperado en Vis. + Redimiento lento—El uso excesivo de variables locales y globales, como usarlas para evitar cables largos a través del diagrama de bloques o usarlas en lugar de flujo de datos, disminuye el rendimiento. © National instruments | 6-11 Lecciin 8 Resalviendo deselios de flujo de datos con variables La figura 8-10 y la figura 8-11 ilustran dos formas de programar el mismo ejemplo. La figura 8-10 ilusira un uso pobre de variables mientras que la figura 8-11 ilustra un disefio més 6ptimo. El ejemplo de la figura muestra una aplicacién de seméforo implementada como una maquina de estados. Cada estado actualiza las luces para la siguiente etapa de la secuencia de huces. Fn el estado que se muestra en la figura 8-10, el trafico este y oeste tiene una luz verde, mientras que el trafico norte y sur tiene una roja. Esta etapa espera 4 segundos, como muestra la funcién ‘Wait (ms). Figura 8-10. Demasiadas variables utllizadas 8.2 | nicom Manual de Gurso LabVIEW Core 1 El ejemplo de la figura 8-11 cumple 1a misma tarea, pero con mayor eficiencia y utilizando un mejor disefio. Observe que este ejemplo es mucho mas sencillo de leer y comprender que el anterior, principalmente al reducirse el uso de variables. Al colocar Jos indicadores en el bucle While fuera de 1a estructura Case, los indicadores pueden actualizarse tras cada estado sin utilizar una variable. Este ejemplo es menos dificil de modificar para ampliar la funcionalidad, como afiadir sefiales de giro a la izquierda, que el ejemplo anterior Figura 8-11. Variables reducidas {Vala Fh secs | | ‘wert Bound | | [ron oe D. Condiciones de carrera Una condicién de carrera ocurre cuando la temporizacién de eventos o la programacién de tareas afecta involuntariamente a un valor de salida 0 de datos. Las condiciones de carrera suponen un problema comin en los programas que ejecutan varias tareas en paralelo y comparten datos entre ellos. Las condiciones de carrera son dificiles de identificar y de depurar, porque el resultado depende del orden en que el sistema operativo ejecuta tareas programadas y la temporizacion de eventos extemnos. Usualmente, un cédigo con una condicién de carrera puede devolver el mismo resultado miles de veces durante las pruebas pero aun asi ser capaz de devolver un resultado diferente en cualquier momento, Para evitar condiciones de carrera, lo mejor es seguir estas técnicas: + Control y limitacién de recursos compartidos + Secuenciando instrucciones apropiadamente especificando un orden de ejecucion + Reduciendo el uso de variables. @ National instumenis | 819, Lecciin 8 Resoiviende desalios de tuo de datos con variables Controlar y limitar recursos compartidos Las condiciones de carrera son mas comunes cuando dos tareas tienen que leer y eseribir a un recurso. Un recurso es cualquier entidad compartida entre los procesos. Cuando se trata con condiciones de carrera, los recursos compartidos mas comunes son el almacenamiento de datos, como las variables. Otros ejemplos de recursos son archivos y referencias a recursos de hardware. Cuando usted altera un recurso desde ubicaciones multiples, se introduce la posibilidad de una condicién de carrera, Por Io tanto, una forma ideal de evitar condiciones de carrera es minimizar recursos compartidos y el nuimero de escritores en los recursos compartidos restantes. En general, no es perjudicial tener varios lectores y monitores para un recurso compartido. Sin embargo, intente usar s6lo un escritor 0 controlador para un recurso compartido para evitar condiciones de carrera. Secuenciando instrucciones apropiadamente El cédigo en el que el flujo de datos no se usa correctamente para controlar el orden de ejecucién puede causar condiciones de carrera, Sino se establece una dependencia de datos, LabVIEW puede programa tareas en cualquier orden, con lo que pueden surgir condiciones de carrera si las tareas dependen entre si. Piense en el ejemplo de la figura 8-12. Figura 8-12. Condicién de carrera simple 200 & F] oddigo de este ejemplo tiene cuatro posibles resultados, en funcién del orden en que se ejecuten Jas operaciones. Resultado 1: Value = (Value x 5) + 2 1. El terminal lee Value. 2. Value * $ se almacena en Value. 3. La variable local fee Value « 5 4. (Value « 5) +2 se almacena en Value. Resultado 2: Value = (Value x 5) + 2 1. La variable local lee Value. 2. Value + 2 se almacena en Value. El terminal lee Value +2. 4, (Value + 2) « 5 se almacena en Value. 8414 | nieom Manual ds Curso LabVIEW Cors 1 Resultado 3: Value = Value x 5 1. El terminal lee Value. 2. La variable local lee Value. 3. Value +2 se almacena en Value. 4. Value x 5 se almacena en Value. Resultado 4: Value = Value + 2 1. El terminal lee Value. 2. La variable local lee Value. 3. Value * 5 se almacena en Value. 4, Value +2 se almacena en Value. ‘Aunque este cédigo se considera una condicién de carrera, el cédigo normaimente acta menos al azar que el ejemplo de la primera condicién de carrera, porque LabVIEW stele asignar un orden coherente a las operaciones. Sin embargo, debe evitar situaciones como ésta porque el orden y el comportamiento del VI puede variar. Por ejemplo, el orden puede cambiar al ejecutar el VI en condiciones distintas o al actualizar el VI a una version mas nueva de LabVIEW, Afortunadamente las condiciones de carrera de este tipo se solucionan facilmente controlando ¢l flujo de datos. (© Nationa Instruments Manual de Curso LabVIEW Cove 1 Autorrevision: Cuestionario 1, Deberia usar variables en su VI siempre que sea posible. a. Verdadero b. Falso 2. {Cuando se controlan recursos, qué combinaciones de escritores y lectores reducen la posibilidad de condiciones de carrera? a. Unescritor, un lector b. Unescritor, miltiples lectores Mialtiples escritores, un lector Miltiples escritores, multiples lectores © National lnsiaumenis | 5 Manual de Curso LabVIEW Core Autorrevision: Respuestas 1. Debei a. Verdadero b. Falso Debe usar variables s6lo cuando es necesario. Use cables para transferir datos sea posible. usar variables en su VI siempre que sea posibe. 2. Cuando se controlan recursos, qué combinaciones de escritores y lectores reducen la lidad de condiciones de carrera? Un eseritor, un lector a b. Uneseritor, multiples lectores ¢. Miltiples escritores, un lector 4 Miiltiples escritores, multiples lectores © National instruments | 8-19 LLeccion & Resoliendo desatios de fujo de datos con variabies Notas 8.20 | nicom Informacion Adicional y Recursos Este apéndice contiene informacién adicional sobre las opciones de soporte técnico de National Instruments y los recursos de LabVIEW. Opciones de soporte técnico de National Instruments Inicie sesidn con su perfil de usuario de National Instruments en ni. com para conseguir acceso personalizado a sus servicios. Visite las siguientes secciones de ni . com para soporte técnico y servicios profesionales: + Soporte: el soporte técnico en ni .com/support incluye los siguientes recursos: = Recursos téenicos de autoayuda: para ver respuestas y soluciones, visite ni .com/ support y encontrar controladores y actualizaciones de software, wna KnowledgeBase donde puede realizar bisquedas, manuales de productos, asistentes para la solucion de problemas paso a paso, miles de programas de ejemplo, notas de la aplicacién, controladores de instrumentos, etc. Los usuarios registrados también reciben acceso a los foros de debate de NI en ni. com/ forums. Los ingenieros de aplicaciones de NI envian una respuesta a cada pregunta que reciben en linea. — Programa de Servicio Esténdar: este programa permite disponer de acceso directo a los ingenieros de aplicaciones de NI por teléfono o por correo electrénico para recibir soporte técnico personalizado asi como acceso exclusivo a médulos de formacién a su propio ritmo enni .com/sel £-paced-training, Todos los clientes reciben automaticamente un afio de membrecia en el programa de servicio estandar (SSP) con la compra de la mayoria de los productos de software y paquetes incluyendo NI Developer Suite. NI también ofrece ‘opciones flexibles de extensiones de contratos que garantizan que sus beneficios SSP sigan disponibles por el tiempo que los necesite. Visite ni . com/ssp para mas informacién. Para obtener informacién adicional acerca de otras opciones de soporte técnico de su zona, visite ni .com/services o contacte con su oficina local en ni .com/contac + Integracién de sistemas: si tiene limitaciones de tiempo, recursos téenicos internos limitados wottos problemas con el proyecto, los miembros de National Instruments Alliance Partner pueden ayudarle. Los NI Alliance Partners aghutinan a integradores de sistemas, consultores y proveedores de hardware para ofrecer un servicio y conocimientos generales a los clientes. 1 programa garantiza asistencia cualificada y especializada para el desarrollo de aplicaciones y sistemas. Para saber més, Ilame a su oficina local de NI o visite ni .com/alliance. También puede visitar la seccién Worldwide Offices de ni .com/niglobal para acceder a los sitios Web de las filiales, que oftecen informacién de contacto actualizada, ntimeros de teléfono de soporte, direcciones de correo electrénico y eventos actuales © National Instramenss | AT Apéndice A Informaciin Adicional y Recursos Otros cursos de formacion de National Instruments ‘National Instruments offece varios cursos de formacién para usuarios de LabVIEW. Estos cursos continiian la formacién que recibié aqui y la amplian a otras zonas. Visite ni .com/ training para adquirir material de cursos o inscribase para cursos practicos presenciales en ubicaciones por e! mundo entero. Certificacion de National Instruments Conseguir una certificacién de NI reconoce su experiencia de haber trabajado con productos y tecnologias de NI. La industria de la medicién y automatizacién, su empleador, los clientes y colegas reconocen su credencial de certificacién de NI como un simbolo de las destrezas y conocimientos que ha adquirido con la experiencia. Visite ni .com/training para obtener informacién adicional acerca del programa de certificacién de NI Recursos de LabVIEW Esta seceién describe como puede recibir informacién adicional sobre LabVIEW. Comunidad NI La comunidad NI es una comunidad en linea que une a usuarios de todo el mundo para discutir, compartir y aprender acerca de LabVIEW. Visite la comunidad NI para hacer preguntas, obtener ideas y compartir cédigo de proyectos LabVIEW. Visite ni .com/community para mas informacién. Libros de LabVIEW Sc han escrito numerosos libros sobre la programaci6n y las aplicaciones de LabVIEW. El sitio ‘Web de National Instruments contiene una lista de todos los libros de LabVIEW y enlaces a lugares para comprar estos libros. Visite http: //zone.ni .com/devzone/cda/tut /p/id/5389 para obtener informacién adicional Glosario A adquisicién de datos DAQ, arrastrar B barra de herramientas barra de menus boton Run roto Bucle For Bucle While 1. Adquisicién y medida de seftales eléctricas analégicas o digitales a partir de sensores, transductores de adquisicion y sondas de prueba aparatos. 2. Generacién de sefiales eléctricas analégicas o digitales Utilizar el cursor de la pantalla para seleccionar, mover, copiar 0 eliminar objetos. Barra que contiene botones de comando para ejecutar y depurar Vis Barra horizontal que muestra los nombres de los memis principales de una aplicacién. La barra de mentis aparece bajo la barra de titulo de una ventana. Cada aplicacién tiene una barra de meniis que la caracteriza, aunque algunos ments y comandos son comunes en muchas aplicaciones, Botén que sustituye al bot6n Run cuando un VI no puede ejecutarse debido a errores. Estructura de bucle iterativo que ejecuta su subdiagrama un nimero determinado de veces. Equivalente al cédigo basado en texto For i= 0 ton - 1, do Estructura de bucle que repite una seccién de eddigo hasta que ocurra una condicién. © National instruments | G- losario Cc cable cadena de caracteres canal casilla de verificacién control controlador controlador de instrumentos Controles ¢ indicadores booleanos 6-2 | nicom Ruta de datos entre nodos. Representacién de un valor como texto. 1. Fisico: un terminal o pin donde puede medir o generar una sefial analogica o digital. Un solo canal fisico puede incluir mas de un ‘terminal, como es el easo de un canal de entrada analogica diferencial 6 un puerto digital de ocho lineas. Un contador también puede ser un canal fisico, aunque el nombre del contador no es el del terminal donde el contador mide o genera la seftal digital 2. Virtual: un conjunto de valores de propiedad que pueden incluir un nombre, un canal fisico, conexiones de terminales de entrada, el tipo de medida o generaci6n e informacién de escala. Puede definir canales virtuales NI-DAQmx fuera de una tarea (global) o dentro de una tarea (local). La configuracién de canales virtuales es opcional en versiones ‘Traditional NI-DAQ (Legacy) y anteriores, pero se integra en cualquier medida que realice en NI-DAQmx. En Traditional NI-DAQ (Legacy), usted configura canales virtuales en MAX, En NI-DAQmx, puede configurar canales virtuales en MAX o en su programa, y puede configurar canales como parte de una tarea o por separado. 3. Conmutador: un canal de conmutador representa cualquier punto de conexién en un conmutador. Puede constar de uno o mis cables de sefial (normalmente uno, dos © cuatro), en funcidn de la topologia del conmutador. Un canal virtual no puede crearse con un canal de conmutador. Los canales de conmutador sélo pueden utilizarse en las funciones y VIs NI-DAQmx Switch. ‘Un cuadradito de un cuadro de didlogo que puede seleccionar desmarcar, Las casillas de verificacién normalmente se asocian con varias opciones que puede configurar. Puede seleccionar mas de una casilla de verificacién. Objeto del pane! frontal para introducir datos en un VI interactivamente o en un subVI programaticamente, como un mando, botén de comando o dial. Software que controla un dispositivo de hardware conereto, como un dispositive DAQ. Un conjunto de funciones de alto nivel que controlan y se comunican con hardware de instrumentos en un sistema. Objetos del panel frontal para manipular y mostrar datos booleanos (TRUE 0 FALSE). controles ¢ indicadores numéricos curva D DAQ DAQ Assistant diagrama de bloques dispositivo dispositive DAQ dispositivo de medida ES escala Manual de Curso LabVIEW Cove 1 Objetos del panel frontal para manipular y mostrar datos numéricos, Representacién gréfica de un array de datos mostrado en un grafic tipo “graph” o “chart” Ver adquisicidn de datos (DAQ). Una interfaz gréfica para configurar tareas de medida, canales y escalas, Descripcién o representacién gréfica de un programa o algoritmo. El diagrama de bloques consta de iconos ejecutables denominados nodos y cables que llevan datos entre los nodos. El diagrama de bloques es el cédigo fuente del VI. El diagrama de bloques reside en la ventana del diagrama de bloques del VI Un instrumento 0 controlador al que puede acceder como una tinica entidad que controla o monitoriza puntos de E/S del mundo real. Un dispositivo se suele conectar a un ordenador host mediante algain tipo de comunicacién de red. Ver también dispositive DAQ y dispositive de medida. Un dispositivo que adquiere o genera datos y puede contener varios canales y dispositivos de conversién. Los dispositives DAQ ineluyen dispositivos insertables, tarjetas PCMCIA y dispositivos DAQPad, que se conectan a un ordenador por el puerto USB o IEEE 1394. Los médulos SCXI se consideran dispositivos DAQ Dispositivos DAQ como los dispositivos E Series multifunction 1/0 (MIO), médulos de acondicionamiento de sefial SCXI y médulos de conmutacién. Entrada/Salida. La transferencia de datos a 0 desde un sistema informatico con canales de comunicaciones, dispositivos de entrada de operador o interfaces de control y adquisicién de datos Parte de grafico y ciertos controles ¢ indicadores numeéricos que contiene una serie de marcas o puntos en intervalos conocidos para denotar unidades de medida. © National Instumanis | 6-3 Gosario escala automatica estructura etiqueta etiqueta de ayuda Explorador de proyectos ventana FE flujo de datos forma de onda funcién G General Purpose Interface Bus grafico ‘fico tipo “waveform chart” G4 | nicom Capacidad de las escalas de ajustarse al rango de valores trazados. En las escalas graficas, la escala automitica determina valores de escala maximos y minimos. Elemento de control de programa, como una estructura Flat Sequence, estructura Stacked Sequence, estructura Case, bucle For, bucle While o bucle Timed Objeto de texto utilizado para nombrar o describir objetos o regiones del panel frontal o del diagrama de bloques. Pequefios banners amarillos de texto que identifican el nombre del terminal y facilitan su identificacién para el cableado. ‘Ventana donde puede crear y modificar proyectos de LabVIEW. Sistema de programacién que consta de nodos ejecutables que s6lo se ejecutan cuando reciben todos los datos de entrada necesarios. Los nodos producen datos de salida automaticamente cuando se ejecutan. LabVIEW es un sistema de flujo de datos. El movimiento de los datos a través de los nodos determina el orden de ejecucién de los Vis y las funciones del diagrama de bloques. Varias lecturas de tensién tomadas a una velocidad de muestreo conereta. Built-in elemento integrado, comparable a un operador, funcién o declaracién en un lenguaje de programacién basado en texto. GPIB. Sinénimo de HP-IB. El bus esténdar utilizado para controlar instrumentos electronics con un ordenador. También denominado bus IEFE 488, porque se define mediante las normas ANSI/IEEE 488-1978, 488.1-1987 y 488.2-1992. Visualizacién 2D de una o mas curvas. Un grafico recibe y traza datos como un bloque. Indicador que traza puntos de datos a cierta velocidad. H herramienta herramienta de cableado herramienta de operaciones herramienta de posicionamiento ! icono indicador Instrument 1/0. Assistant instrumento virtual wh L LabVIEW LED leyenda M MAX Measurement & Automation Explorer mensaje de error Manual ce Curso LabVIEW Core 1 Cursor especial para realizar operaciones concretas, Herramienta para definir rutas de datos entre terminales, Herramienta para introducir datos en controles o para operar sobre ellos. Herramienta para mover y redimensionar objetos Representaci6n grifica de un nodo en un diagrama de bloques. Objeto del pane! frontal que muestra salidas, como un grafico o LED. Complemento que lanza el V1 Express Instrument I/O Assistant que se ‘comunica con instrumentos basados en mensajes y da formato grafico a la respuesta. Programa de LabVIEW que modela el aspecto y la funcion de un instrumento fisico. Laboratory Virtual Instrument Engineering Workbench. LabVIEW es un lenguaje de programacién gréfica que utiliza iconos en Ingar de lineas de texto para crear programas, Diodo-emisor de luz, Objeto que posee un grifico tipo “graph” o “chart” para mostrar los nombres y los estilos de curvas de curvas de ese gratico. Ver Measurement & Automation Explorer El entorno de configuracion y diagnéstico de hardware esténdar de National Instruments para Windows. Indicacién de un fallo de funcionamiento de software o hardware o de un intento de entrada de datos inaceptable © National instruments | G5 Giosario meni contextual memis-desplegables muestra N NI-DAQ NI-DAQmx nodo 0 objeto P paleta ‘aleta de controles G55 | nicom Menti al que se accede haciendo clic derecho en un objeto. Los elementos de menii hacen referencia a ese objeto en concreto, Mens accesibles desde una barra de mentis. Los elementos de los ments -desplegables suelen ser generales. Punto de datos de salida o entrada digital o analégica simple. Software controlador que incluyen todos los dispositives NI DAQ y ‘componentes de acondicionamiento de sefial. NI-DAQ es una amplia biblioteca de Vis y funciones ANSI C que puede llamar desde un entorno de desarrollo de aplicaciones (ADE), como LabVIEW, para ptogramar un dispositivo de medida de NI, como los dispositivos M Series multifunction 1/0 (MIO) DAQ, médulos de acondicionamiento de sefial y médulos de conmutacién. El timo controlador de NI-DAQ con nuevos Vis, funciones y herramientas de desarrollo para controlar dispositivos de medida. Las -ventajas de NI-DAQmx respecto a versiones anteriores de NI-DAQ son el DAQ Assistant para configurar canales y tareas de medida para un dispositivo que utilizaré en LabVIEW, LabWindows"/CVI™ y Measurement Studio; simulacién NI-DAQmx para la mayoria de los dispositivos compatibles para probar y modificar aplicaciones con menos funciones y VIs que las versiones anteriores de NI-DAQ. Elemento de ejecucién de un programa, Los nodos son anélogos a las instrueciones, operadores, funciones y subrutinas en lenguajes de programacién basados en texto. En un diagrama de bloques los nodos incluyen funciones, estructuras y subVIs. ‘Término genérico para cualquier elemento del panel frontal 0 diagrama de bloques, como controles, indicadores, estructuras, nodos, cables ¢ imagenes importadas, Muestra objetos o herramientas que puede utilizar para crear el panel frontal o el diagrama de bloques. Paleta que contiene controles, indicadores y objetos decorativos del panel frontal paleta de funeiones panel frontal predeterminadas Propiedades cuadros de didlogo proyecto PXI s subpaleta subVI area terminal terminal condicional tipo de datos. Manual de Curso LabVIEW Cove + Paleta que contiene Vis, funciones, estructuras del diagrama de bloques y constantes. Interfaz de usuario interactiva de un VI. El aspecto del panel frontal imita a los instrumentos fisicos, como osciloscopios y multimetros. ‘Valor preconfigurado. Muchas entradas de VI utilizan un valor predeterminado si no especifica ninguno. Cuadros de didlogo a los que se accede desde el menti contextual de un control o indicador que puede utilizar para configurar cémo aparece el control o indicador en la ventana del panel frontal Un conjunto de archivos de LabVIEW y no especiticos de LabVIEW que puede utilizar para crear especificaciones y descargar archivos en otras plataformas. PCI eXtensions for Instrumentation. Una plataforma modular de instrumentacién basada en ordenador. Paleta a la que puede acceder desde otra paleta que esta por encima de Ja subpaleta en la jerarquia, VI utilizado en el diagrama de bloques de otro VI. Comparable a una subrutina. Un conjunto de uno o més canales, temporizacién, activacién y otras propiedades en NI-DAQmx. Una tarea representa una medida 0 generacién que desee realizar. Objeto o regi6n en un nodo por el que pasan datos. ‘Terminal de un bucle While que contiene un valor booleano que determina si el VI realiza otra iteracién. Formato para informacién. En LabVIEW, los tipos de datos que acepta la mayoria de los Vis y funciones son numéricos, array, booleanos, rutas, cadenas de caracteres, refhum, enumeracidn, forma de onda y cluster. ©National astuments | G-7 tipo de datos dinamico Traditional NI-DAQ (Legacy) v ventana Context Help ventana Error list VI Vi actual VI de plantilla VI Express Vi roto 6-8 | ricom Bl tipo de datos que utilizan los VIs Express y que incluye los datos asociados con una sefial y atributos que ofrecen informacién sobre la sefial, como el nombre de ésta o la fecha y hora en que LabVIEW adquirié los datos. Los atributos especifican cémo aparece la sefial en cl gréfico tipo “graph” o “chart”. Un controlador més antiguo con APIs desfasadas para crear aplicaciones de adquisicién de datos, instrumentacién y control para dispositivos DAQ mas antiguos de National Instruments. Sélo puede utilizar Traditional NI-DAQ (Legacy) en ciertas circunstancias, Consulte el fichero NI-DAQ Readme para obtener informacién adicional acerca de cuando utilizar Traditional NI-DAQ (Legacy), incluida una lista completa de dispositivos, sistemas operatives y versiones de lenguajes y software de aplicacién compatibles. Ventana que muestra informacion basica sobre los diferentes objetos de LabVIEW cuando mueve el cursor sobre cada uno de ellos. Entre Jos objetos con informacidn de ayuda contextual se encuentran los VIs, funciones, constantes, estructuras, paletas, propiedades, métodos, eventos y componentes de cuadros de didlogo. Ventana que muestra errores y advertencias que ocurren en un WI y en algunos casos recomienda cémo corregirlos. Ver instrumento virtual (V1), Vi cuyo panel frontal, diagrama de bloques o Icon Editor es la ventana activa, VI que contiene controles ¢ indicadores comunes desde donde puede crear varios VIs que realicen funciones similares. Acceda a los VIs plantilla desde el cuadro de didlogo New. Un subVI disefiado para ayudar en tareas de medidas comunes. Un VI Express se configura mediante un cuadro de didlogo de configuracién. ‘VI que no puede ejecutarse debido a errores; se representa con una flecha rota en el botén Run roto.

You might also like