0% found this document useful (0 votes)
182 views143 pages

LabVIEW Core 2 Course Exercises

LabviewLabviewLabview

Uploaded by

Ricardo Martinez
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
0% found this document useful (0 votes)
182 views143 pages

LabVIEW Core 2 Course Exercises

LabviewLabviewLabview

Uploaded by

Ricardo Martinez
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
You are on page 1/ 143
LabVIEW™ Core 2 Manual de Ejercicios Ww, NATIONAL PP InsTRUMENTS ni.com/training LabVIEW™ Core 2 Ejercicios Version del software actual 2012 Edicion de Agosto 2012 NGmero de parte 325293D-0154 Copyright © 1993-2012 National Instruments. Todos los derechos reservados. En virtud dela leyes de copyright y de protecidn de los derechos de autor, esta publicacibn no puede reproducirse ni tansmitirse en ninguna forma, electrics o mecénica, incividas las fotocopias, ‘rabscién, almacenamienfo en un sistema de recuperacin de informacién, o taduecién, en su totalidad oen pate, sin el consentimiento previo por eserito de National Insraments Corpeation, [National instruments rspeta los derechos de propiedad intelectual de otros, y sliitamos 8 nuestros usuarios que hagan lo mismo. El software de NI esta protegdo porel derecho de autor y ls normnas de la propiedad intelectual, Aunque el software de NI puede wilzarse para reproducirsoRwareu otro material perteneciente a otros, el software de NI slo pod tlizarse para reprodcir material que ‘eda reproduc conforme a los érmines de cualquier licencia aplicable w otra restriccién legal Contrato de licencia de usuario final y avisos legales a terceros El contrato de licencia de usuario final (‘EULA’) y avisos legals a teceros se puede encontrar en las siguientes locatidades: + Los avisos se localizan en los directorios \_Legal Informationy National Instrunents> + Contrato de licencia de usuario final e localiza en el directorio \Shared\MDF\Legai \License. + Revise \_Legal Information. txt para mis informacion legal sobre los instaladores desartollados con productos de NI. Marcas comerciales LabVIEW, Nations! Instruments, NI ni-com, el logotipo comporativo de National Instruments, yellogotipo del aguila son mareas propiedad de National Instruments Comporation. Por favor, consulte Trademark Information en la pgina 1. com/ trademarks para informacién sobre otras marcas de National Instruments Otros nombres de productos y de empresas mencionados aqui son marcas o nombres comerciales de sus respectivas empresas Patentes Para obtener informacion tobre ls patentes que protege los productos ola tecnologia de National Instruments, consulte el apartado: Help»Patents en su software, el archivo patents. txt enel soporte del mismo, 0 el Aviso sobre las Patentes de National Instruments (National Instruments Patent Notice) en ni. con/patents. Informacién del producto y soporte técnico mundial Oficinas internacionales Visite ni .com/ni g1oball para acceder las piginas web de las oficinas internacionales, las cuales incluyen informacién aetualizada de contacto, teléfonos de soporte ténico, dtecciones de email y eventos actuals. Oficinas centrales de National Instruments Corporation 11500 North Mopac Expressway Austin, Texas 78759-3504 USA Tel: 512 683 0100 Para realizar comentarios a National Instruments sobre la documentacidn, consul la pigina web de National Instruments Web ni, cont/ info e introduzea el eédigo de informacién feedback. Contenido Guia del estudiante A. Cettificacion de NI vii B. Deseripcién del curso. viii C. Lo que necesita para empezar ix D. Instalacién de! software del curso. : ix E. Objetivos del curso Os x F. Convenciones del curso xi Lecci6n 1 Mas alla del flujo de datos Ejercicio 1-1 Concepto: Comparacién de colas con variables locales oD Ejercicio 1-2 Concepto: Comparando disetios de estructura Event con disefios de sondeo. VL Leccién 2 Implementando patrones de disefio Ejercicio 2-1 Plantilla Simple State Machine (Maquina de estados) .... Ejercicio 2-2 Concepto: Productor/consumidor (eventos) Ejercicio 2-3 Concepto: Gestor de errores del productor/consumidor Ejercicio 2-4 Histograma cn Ejercicio 2-5 Nivel de acceso de usuarios Leccién 3 Control de la interfaz de usuario Ejercicio 3-1 Visualizacién de temperatura y limites... Ejercicio 3-2 Personalizacién de la Ventana del VT. Ejercicio 3-3 Uso de subVIs... LabVIEW Core 2 Manual de Ejercicios National instruments. |v Contanice icom | Leccion 4 Técnicas de E/S de fichero Ejercicio 4-1 Crear rutas de archivos y carpetas 4-2 Ejercicio 4-2 Escribir multiples canales con encabezados sencillos vse 6 Bjercicio 4-3 Lectura de archivos TDMS Bs . seve 2 Leccién 5 Mejora de un VI existente Ejercicio 5-1 Concepto: Refactorizacién de cédigo heredado ..... eon Sel Leccién 6 Creacién y distribucién de aplicaciones Ejercicio 6-1 Preparacién de archivos para la distribucién Ejercicio 6-2 Creacién y depuracién de una aplicacién independiente. Ejercicio 6-3 Construyendo un instalador y depuréndolo en un ordenador remoto Apéndice A Configuracién del hardware Guia del estudiante Gracias por comprar el paquete de curso LabVIEW Core 2. Podra empezar a desarrollar una aplicacién poco después de completar este curso. El manual de ejercicios y el sofiware adjunto se utilizaran en el curso prictico de dos dias LabVIEW Core 2 Puede aplicar la adquisicin 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 las inscripciones a la clase del curso. A. Certificacion de NI El curso LabVIEW Core 2 forma parte de una serie de cursos disefiados para dominar LabVIEW y ayudarle a prepararse para el examen de Desarrollador Asociado Certificado de LabVIEW de NI. La siguiente ilustracién muestra los cursos que forman parte de la serie de formacin de LabVIEW. Consulte ni .com/training para obtener informacién adicional acerca de las certificaciones de NI. New User Experiences User ‘Advanced User ‘Courses Managing Software Engineering in LabVIEW Advanced Architectures in LabVIEW LabVIEW Core 1 LabVIEW Core 3° LabVIEW Care 2" LabVIEW Connectity ‘Object-Oriented Design ‘and Programming in LABVIEW ae Labview Performance Corites Labview n|Conifed Labview Associate Developer Exam Developer Exar Other Courses LabVIEW Instrument Contol LabVIEW ReakTime 1 Labview Re: Line 2 Labview FPGA LabVIEW DAG and Signal Conditioning Modular instruments Series Cove courses ae stengly recommended realize maximum peductvty sans when sig LabVIEW, LabVIEW Core 2 Manual de Ejercicios National Instruments | vi Guia del estudinie sicom | vi B. Descripcién del curso El curso LabVIEW Core 2 le enseita 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 generacion de informes. Este manual del curso supone que esta familiarizado con Windows, que tiene experiencia en escribir algoritmos en forma de diagramas de flujo o diagramas de bloques y que ha realizado el curso LabVIEW Core 1 o tiene una experiencia equivalente. Los manuales de ejercicios y el curso estan divididos en lecciones, descritas de este modo. En el manual del curso, cada leccién consta de lo siguiente: + Una introduecién que describe el objetivo de fa leecién y lo que aprender + Una descripcién de los temas de Ia leccion + Uncuestionario de resumen que prueba y esboza conceptos y conocimientos importantes ensefiados en la lecci6n En el manual de ejercicios, cada leccién consta de lo siguiente: + Un conjunto de ejercicios para reforzar esos temas, + Algunas leceiones incluyen secciones de ejercicios opcionales y retos 0 un conjunto de ejercicios adicionales para realizar si el tiempo lo permit. YE} Nota Para ver actualizaciones y correeciones del manual de ejercicios y el curso, consulte ni . com/ into y escriba el Cédigo de Informacion core? Varios ejercicios utilizan un dispositive multifuncién de adquisicién de datos (DAQ) conectado a un DAQ Signal Accessory © BNC2120 que contiene un sensor de temperatura, un generador de funciones y diodos LED. ‘Aunque no disponga de este hardware, puede realizar los ejercicios. Se ofrecen otras instrucciones para realizar los ejercicios sin hardware. También puede sustituir otro hardware por los mencionados anteriormente. Por ejemplo, puede utilizar otro dispositive DAQ de National Instruments conectado a una fuente de seffales, como un generador de funciones. C. Lo que necesita para empezar Antes de usar este manual del eurso, debe tener todos estos elementos (2 Ordenador ejecutando Windows 7/Vista/XP J Dispositive DAQ multifuncién configurado como Dev! utilizando Measurement & Automation Explorer (MAX) Accesorio de sefiales DAQ 0 BNC-2120, conectores y cable LabVIEW Professional Development System 2012 o posterior (2 DAQmx 9.5.5 0 posterior CD del curso LabVIEW Core 2, desde donde instala tas siguientes carpetas: Directorio Descripcién Ejercicios Contiene Vis utilizados en el curso Soluciones Contiene tos ejercicios det curso completados D. Instalacién del software del curso ‘Complete estos pasos para instalar el software del curso. 1. Inserte el CD del curso en el ordenador. Apareceran los cuadros de didlogo de LabVIEW Core 2 Course Setup 2. Haga clic en Install the course materials. 3. Sigua las instrucciones en Ja pantalla para completar la instalacién y configuracién. Los archivos de ejercicios se encuentran en la carpeta \LabVIEW Core 2\. “EA Nota_Los nombres de carpetas entre corchetes angulares, como , hacen referencia a carpetas del directorio ratz de su ordenador. LabVIEW Cove 2 Manual de Ejarcicias ‘@National instruments | Guia det estudiante E. Objetivos del curso Este curso le prepara para hacer lo siguiente: Aplicar patrones de disefio comunes que utilicen notificadores, colas y eventos Usar la programacién de eventos de forma eficaz Controlar programéticamente objetos de la interfaz de usuario Evaluar formatos de EIS de ficheros binarios y ulilizarlos en aplicaciones Modificar cédigo existente para mejorar la usabilidad Preparar, crear y desplegar aplicaciones independientes Este curso no describe nada de lo siguiente: Métodos de programacién de LabVIEW tratados en el curso LabVIEW Core 1 Cada VI, funcién u objeto integrado; consulte la Ayuda de LabVIEW para obtener informacién adicional acerca de las funciones de LabVIEW no descritas en este curso, Desarrollar una aplicacién completa para cualquier estudiante de la clase; consulte e] NI Example Finder seleccionando Help»Find Examples, para ver ejemplos de Vis que puede utilizar e incorporar en los Vis que cree F. Convenciones dei curso Las siguientes convenciones aparecen en este manual del curso negrita cursiva monospace monospace bold LabVIEW Core 2 Manual de Ejecicios El simbolo » le guia por elementos de memii anidados y opciones de los cuadros de didlogo a una accién final, La seeuenc ‘Tools»Instrumentation»Find Instrument Drivers le guia a desplegar el meni Tools, seleccionar Instrumentation, y finalmente seleccionar fa opcién Find Instrument Drivers. Este icono indica un consejo, que le alerta de recomendaciones, Este icono indica una nota, que le alerta de informacién importante. Este icono indica una precaucién, para que tome precauciones y evite lesiones, pérdida de datos o una caida del sistema. Este icono indica que un ejercicio requiere un dispositive DAQ El texto en negrita indica que debe seleccionar el software o hacer clic en él, como elementos de meni y opciones del cuadro de didlogo. El texto en negrita denota también las secciones de los cuadros de didlogo y etiquetas del hardware. Eltexto en cursiva indica variables, énfasis, una remisi6n o una introduccidn a un concepto clave. Bl texto en cursiva también indica texto que es un parametro de sustitucién para una palabra o un valor que debe proporcionar. El texto con esta fuente indica texto o caracteres que debe escribir con el teclado, secciones de cédigo, ejemplos de programacién y ejemplos de sintaxis. Esta fuente también se utiliza pata los nombres propios de unidades de disco, rutas, directorios, programas, subprogramas, subrutinas, nombres de dispositivos, funciones, operaciones, variables, nombres de archivos y extensiones. El texto en negrita con esta fuente indica los mensajes y las respuestas que el ordenador imprime autométicamente en Ta pantalla, Esta fuente también enfatiza Iineas de cédigo distintas de los otros ejemplos. (© National Instruments | xi Mas alla del flujo de datos Ejercicios : Ejercicio 1-1 Concepto: Comparacidn de colas con variables locales Ejercicio 1-2 Concepto: Comparando disefios de estructura Event con disefios de sondeo. LabVIEW Core 2 Manual de Ejerccios ©National nsruments j 1-1 Leceiin 1 Ade até det fajo de datos igo | 12 Ejercicio 1-1 Concepto: Comparacion de colas con variables locales Objetivo En este ejercicio se ejecutara y examinaré un VI de patrén de disefio productor/consumidor que transfiere datos generados por el bucle productor a cada bucte consumidor utilizando variables y colas. Descripcioén Las secciones siguientes describen cémo el VI Queues vs Local Variables hace lo siguiente. + Creacién de una cola + Colas de datos que genera el bucle productor. + Extraccién de datos en el bucle consumidor. + Espera a que la cola se vacie antes de salir del VI. * Utilize las variables locales para leer y mostrar datos del bucle productor. Qu Local Variables ana del Project Explorer D 7 7 0 Loop Tin 3. _Ejecute el VI. El bucle productor genera datos y los transfiere a cada bucle consumidor mediante una variable local y una cola. Observe el comportamiento del VI cuando los bucles consumidores se ajustan a la misma velocidad que el bucle productor. 4. Detenga el VI. LabVIEW Cove 2 Manual de Ej ©Natonal nstwuments | 1-3 (On 1 Ms ak del datos rigor | tot Abra y examine el diagrama de bloques de este VI. Las siguientes secciones describen las partes de este diagrama de bloques con mas detalle, Figura 1-2. Diagrama de bloques de! VI Queues vs Local Variables cate Pre SE Ste re [Bp mnt eli Queue Lew aed —EEBDcn Rate Creacion de una cola Crear Ia cola con el cédigo que se muestra en la Figura J-3. Este cédigo se encuentra a la izquierda del bucle productor. Figura 1-3. Creando la cola nay queue size @————+ fia} Oats Type oi * Obtain Queue f Max queue size — Establece el nimero maximo de elementos que puede contener la cola. 2 Laconstante numérica Data Type — cableada ala entrada element data type dela funcicn Obiain Queue, especitica el tipo de datos que desea que contenga lacola. 3. Obtain Queue — Crea la cola y define el tipo de datos. Introduccion en cola de datos que genera el bucle productor Figura 1-4. Poniendo en cola datos que el bucle productor genera [Tis ose generates a Sine Wave po by point ith ene pint eet 30 Engueue Clement ce Producer Loep Lg sanpes 02 1 Enqueue Element — Agrega cada elemento de datos, que el VI Generate Sine genera en el bucle productor a la parte posterior de la cola. LabVIEW Core 2 Manual de Ejrccios © National instruments | 1-5 Leccién 1 Mas ald el fo de datos nico | 16 Extraccién de datos de la cola del bucle productor dentro de la cola del bucle consumidor Figura 1-5. Extraccién de datos en el bucle consumidor [hs ioop veces eta fam the Fada cop oy dequeue ements ff he DequeveElmert Get Que Seat 7 — —— Lat Sas Upiaisenpieein Queue FE Quee Loop HED.cop teins) 7 Dequeue Element — Elimina un elemento de la parte delantora de la cola y se envia el elemento de datos al ‘wavetorm chart” de la cola del bucle consumidor. 2 Get Queue Status — Indica cuantos elementos permanecen en la cola. Para procesar estos datos, debe ejecutar la cola del bucle consumidor mds rapido que el bucle producior, 0 seguir procesando una vez que se haya delenido el bucle productor. Espera hasta que se vacie la cola Figura 1-6. Espera hasta que se vacie la cola >) GetQueveSatur ff Reece dueve © 7) 7 & faaas ti Goeaee imply. Ths leer reverts alee [oueve from ning t fete se elements fre queue While Loop — Espera a que la cola se vacie antes de salir del VI. Haga referencia a este bucle While como Queue Wait Loop. Get Queue Status — Retorna informacion acerca de el estado actual de la cola, como el nmero de datos que contiene actualmente. Equal To 0? ~ Cableada a la condicién de parada del Queue Wait Loop comprueba sila cola esta vacia. Release Queue — Libera y limpia las referencias de la cola. Simple Error Handler — Reporta un error dado al final de la ejecucién. LABVIEW Core 2 Manual de Ejercicios ‘@National Inetruments | 4-7 leccidn 1 Mis al del fyjo de datos Local Variable Consumer Loop 16 El bucle productor genera datos de onda sinusoidal y los escribe en una variable local, mientras que el bucle Local Variable Consumer Loop lee periédicamente los datos de Ia onda sinusoidal desde la misma variable local. Figura 1-7. — +> Presour Samples i Loop Spe —-BELcop te Local Variable Consumer Loop © (ees -- — 1 Update Counters — Actualiza los contadores para muestras duplicadas 0 perdidas. Prueba Local Variable Consumer Loop 1, Cambie al panel frontal del VI Queues vs Local Variables. 2, Bjecute el VI. 3, Seleccione diferentes velocidades para el bucle Local Variable Consumer Loop y observe el grifico del Local Variable Consumer Loop y Ios resultados generados en el indicador Missing Samples o el indicador Duplicated Samples. (_Asegiirese de que se selecciona Same as Producer Loop en Loop Speed y observe el grafico del bucle productor y el gréfico del bucle Local Variable Consumer Loop. Puede ocurrir una condicién de carrera a rafz. de puntos omitidos o datos duplicados. Seleccione 2x de! menii desplegable del control Loop Speed y observe el grifico del bucle Local Variable Consumer Loop. Ocurre una condicién de carrera porque los datos se consumen més répidamente de lo que se producen, lo que hace que la variable local fea ef mismo valor varias veces. Seleccione 1/2 as Praducer de! meni desplegable del contro! Loop Speed y observe el grafico de el bucle Local Variable Consumer Loop, Ocurre una condicién de carrera porque los datos se producen mas répidamente de lo que se consumen. Los datos cambian antes de que la variable local pueda leerlos 1. Seleccione fas opciones restantes del meni desplegable del control Loop Time y observe la recuperacién de los datos, 4, Detenga el VI La transferencia de datos entre dos bucles paralelos no sincronizados utilizando variables locales produce una condicién de carrera, Esto ocurre cuando el bucle productor esti escribiendo un valor en una variable local, mientras que el bucle Local Variable Consumer Loop lee periédicamente el valor desde la misma variable local. Coma los bucles paralelos no estén sincronizados, el valor puede escribirse antes de que se haya leido 0 viceversa, lo que produce la inanicién de datos 0 el exceso de datos, Queue Consumer Loop 1. Ejecute el VI. 2. Seleccione la velocidad del tiempo del bucle Queue Consumer Loop y observe la grafica tipo “waveform graph” de este bucle y los resultados generados en el indicador Samples in Queue. _Asegirese de que el Loop Speed seleccionado es Same as Producer; observe el valor del indicador Samples in Queue. El valor debe permanecer en cero, Por Io tanto, con las colas no perder datos cuando los bucles productor y consumidor se estén ejecutando a la misma velocidad. (Seleccione 2x en el ment desplegable del control Loop Speed y observe el valor del indicador Samples in Queue. Fl valor debe permanecer en cero. Por lo tanto, con las colas no perdera datos cuando el bucle consumidor se esté ejecutando més répidamente que el productor. (3. Seleccione 1/2 as Producer en el ment desplegable del control Loop Speed y observe el valor del indicador Samples in Queue. Los puntos de datos se acumularan en la cola. Tendré que procesar los elementos acumulados en la cola antes de llegar al tamafio maximo de ésta para no perder datos. 1D Seleccione las opciones restantes del ment desplegable del control Loop Time y observe la sincronizacién de la transferencia de datos entre el bucle productor y el bucle consumidor utilizando colas. LabVIEW Cove 2 Manual de Ejercicios ©National Inetruments | 1-9 Leccidn 1 és a dt ij de datos sicom | 1-10 3. Detenga el VI Cuando el bucle productor y el bucle Queue Consumer Loop se ejecutan a la misma velocidad, no cambiara ef nlimero de elementos de la cola. Cuando el bucle ‘Queue Consumer Loop se ejecuta mas lentamente, la cola se lena rapidamente y el bucle productor debe esperar a que el bucle Queue Consumer Loop elimine los elementos. Cuando el bucle Queue Consumer Loop se ejecuta mas répidamente, la cola se vacia répidamente y el bucle consumidor debe esperar para insertar muevos elementos. Asi, las colas sincronizan la transferencia de datos entre los dos bucles paralelos independientes y se evita la pérdida o duplicacién de datos. 4. Cierre el VI. No guarde los cambios. Fin del ejercicio 1-1 Ejercicio 1-2 Concepto: Comparando disefios de estructura Event con disehos de sondeo. Objetivo Convertir una aplicacién basada en sondeo en una aplicacién basada en eventos Descripcién En primer lugar se observa el comportamiento de un VI de sondeo. A continuacién, modifique el VI de sondeo para crear un VI mis eficiente basado en eventos y observe los cambios en el comportamiento. Por ultimo, afiada diferentes tipos de eventos al VI. La tabla 1-1 enumera los eventos que se implementan en el VI UI Event Handler. Tabla 1-1. Eventos de la interfaz de usuario 7 ee Descripcién de eventos “Stop”: Value Change Detener el bucle While. “Time Check”: Value Change ‘Muestra una marca de tiempo cuando se hace clic en el botén Time Check, “Pane”: Mouse Down ‘Muestra las coordenadas del punto del panel frontal donde se hace clic. Panel Close? Controla el evento en el que el usuario intenta cerrar el VI en ejecucién haciendo clic en el botén cerrar de la ventana “Stop”: Mouse Enter Produce un sonido cuando se mueve el cursor sobre el botén Stop. Observando el comportamiento del VI basado en sondeo 1. Abriry ejecutar el VI © Abrael archivo Events. lvpro} en el directorio \LabVIEW Core 2\Events y abra el VI Polling vi LABVIEW Core 2 Manual de Ejrecios @National nstuments | 1-11 101 Mids ald dl fo de datos riscom | 1-12 Examinar el rendimiento de un VI de sondeo mediante el administrador de tareas de Windows. ] Presione las teclas y seleccione Administrador de tareas desde el meni Haga clic en la pestaita Performance en la ventana del Administrador de tareas Ejecute ef VI. } Observe lo alto que es el uso del CPU, Cl Detenga el VI y observe cémo el uso del CPU cae. 3. Abra el diagrama de bloques, habilite “execution highlighting”, y ejecute de nuevo el VI 4. Tenga en cuenta la frecuencia en Ja que el terminal Time Check envia los datos a la estructura Case y con qué frecuencia el bucle While itera. 5, Detenga el VI y desactive “execution highlighting” Modificacién del VI de sondeo para utilizar eventos en lugar de sondeo 1, Guarde el Vicomo UI Event Handler. vi para poder modificarlo. 1 Seleccione Open additional copy y afiada la copia al proyecto. 2. Cierre el VI Polling.vi 3. Abra el diagrama de bloques de Events.vi y mueva el terminal Stop y el terminal de Time Check fuera del bucle While. Mueva estos terminales hacia el evento apropiado mas adelante en este ejercicio. 4, Bliminar la estructura Case y limpiar los cables rotos. 5. Coloque una estructura Event dentro del bucle While entre el terminal de iterecién y el terminal condicional. 6, Haga clic con el botén derecho en la estructura Event y seleccione Edit Events Handled by This Case en el menti contextual. Configure el evento como en la figura 1-8 Figura 1-8. Configuranto el evento “Stop”: Value Change Event {Bi esetvene | | fvertense (0) Sepa Change Event Spectr: vent Source Event (2 Miket _(Kiemoe ) {Glock ove panel (eer processing of se action) untithis ever ase completes 1 Haga clic en Stop en el panel de Event Sources. 2 Haga clic en Value Change en el panel de Events. 8. Haga clic en OK para cerrar el cuadro de didlogo. LabVIEW Core 2 Manual de Ejerccios Event Source: Everts “ ai fe Rey E This |B Mouse [ee ag Se Panes I Pane 4 | | = cons Og aes Renton Time Check Not: Handing Value Changed event on Latches Booean wl ot stort igger iemethames acbon, You rst ead tha Beles’: Terminal marder Fort cect reset. ‘© National instuments | 1-13 Leccidn 1 Mas alla dl fyjo de datos siicom | 114 9. Ponga una constante True dentro del nuevo evento “Stop”: Value Change y cableelo al terminal condicional del bucle While como en la figura 1-9 Figura 1-9. Estructura Event con "Stop": Value Change Event Newial event data — Recimensiona la sta de elementos de datos de eventos pare que slo una mustiva aparezca, Hage cho en el elemento y selacione sw Val. Observando el comportamiento de un VI manejado por eventos 1 2. 3 Ejecute el VI ‘Tenga en cuenta que el indicador Iteracién no se incrementa, ‘Vaya al diagrama de bloques y habilite Execution Highlighting. ‘Tenga en cuenta que el bucle While se esti ejecutando en su primera iteracién, La estructura Event esté esperando un evento, Deshabilite “execution highlighting” y vaya de vuelta al panel frontal. Haga clic en el botén Stop para detener el VI. ‘Tenga en cuenta que el VI detiene la ejecucién, aunque el botén Stop esté desconectado. Observe que el botén Stop se mantiene presionado a pesar de que la accién mecénica se ajusta a Latch When Released, La razén de que el botén se mantenga presionado es porque el VI dejé de funcionar después de hacer clic en el botén. 9. Reinicie el botén Stop haciendo clic en él nuevamente. 10. Arrastre el terminal del botén Stop dentro del evento “Stop”. Value Change event, como en la figura 1-10. Figura 1-10. “Evento Stop". Value Change con un botén terminal Stop FL Sag aoe age = 11, Bjecute el VI y haga clic en Stop nuevamente. 12, Tenga en cuenta que en este momento el VI se detiene y el boton se reinicia. LabVIEW Core 2 Manual de Ejrcicios @National instruments | 1-15, Lecelén 1 Me ali dt flujo de detos Programando el evento “Time Check”: Value Change 1 Agregar un nuevo caso a la estructura de eventos y crear un evento “Check Time”: Value Change, como en la figura 1-11 Haga clic con el botén derecho en la estructura Event y seleccione Add Event Case Figura 1-11, Estructura Event con evento “Time Check": Value Chang: Tine Chet Value ange “P= ] * Tire Chest aes x gig Sena En la ventana Edit Events, seleccione Time Check én el panel Event Sources y seleccione Value Change en el panel Events, Mueva el terminal de Time Check fuera del bucle While en “Time Check": Value Change evento. Get Date/Time In Seconds — Crea una estampa de tiempo en memoria. Indicator — Muestra la salida current time (tiempo actual) de la funcién Get Date/Time In Seconds, Ejecute el VI Haga clic en el botén Time Cheek para ver el tiempo actual en el indicador current time, Abra el Administrador de tareas de windows y observe que el uso de CPU se ha reducido al utilizar eventos en lugar de sondeo. Detenga el VI. Adicién de mas eventos Notifier para el VI 1. Aifadir un nueva caso a la estructura de eventos Mouse Down como se muestra en la figura 1-12. Figura 1-12. Estructura Event con el evento “Pane”: Mouse Down En a veniana Edit Events, seleccione Panes»Pane en el panel Event Sources y seleccione Mouse»Mouse Down en el panel Events. Coords event data — Haga clic en el event data node y seleccione Cords» All Elements, Coords indicator — Haga clic con el botén derecho en fa salida del elemento de datos del evento Coords y seleccione Create»Indicator en el ments contextual 2, Bjecute el VI 3. Haga clic en diferentes partes del panel frontal 1 Observe que el indicador Coords muestra las coordenadas de cada punto en el que se hace clic. Observe que los otros eventos siguen comportindose como antes. 4. Detenga el VI. LabVIEW Core 2 Manual de Ejrcicios © National Instruments | 1-17 Leccién 1 Ms ala del to de datos Agregar eventos de filtro para el VI L.Afiadir un nuevo caso a la estructura de eventos y crear un evento Pane! Close? como se muestra en la figura 1-13 Figura 1-13, Estructura Event con et evento “Panel Close” “ieee I], . “Bre you sure you want te] SS i) 5 “ame ¢ : © ® En la ventana Edit Events, seleccione en el panel Event Sources y seleccione Panel Close? on el panel Events. Nodo event data — Haga clic en el nodo Event Data y seleccione Source en el ment, Funciones Two Button Dialog y Not — Cablee la salida T button? a la funcién Not y cablee la funcién Not al event filter node “Discard?” Constante de cadena de caracteres — Cable Are you sure you want to close the window? a la entrada de message. Constantes de cadenas de caracteres Yes y No — Cable Yes a la entrada de T button name (“OK”) y cablee No a la entrada F button name ("Cancel 2. Guarde y cierre el VI 3. Haga clic en la “X” en la parte superior derecha de fa ventana del panel frontal. 4, Note que haciendo clic en el botén No, se cancela el evento y se retorna al VI. 5. Haga clic en el botsn Yes para detener y cerrar el VI. 6, Detenga el VI si es necesario. Reto 1. Siusted tiene una tarjeta de sonido, afiadir un evento que produce un sonido cuando el cursor esta sobre el botén Stop. @ Consejo Urilice Quick Drop para encontrar Beep vi Fin del ejercicio 1-2 LabVIEW Core 2 Manual de Ejercicios National insteumenis | 1-19 Implementando patrones de disefo Ejercicios Ejercicio Plantilla Simple State Machine (Maquina de estados) Ejercicio 2-2 Concepto: Productor/consumidor (eventos) Ejercicio 2-3 Concepto: Gestor de errores del productor/consumidor Ejercicio 2-4 Histograma Ejercicio 2-5 Nivel de acceso de usuarios LABVIEW Core 2 Manual de Ejrcicios National inciumente | 21 Leccién 2 Implementando patrones de diseho Ejercicio 2-1 Plantilla Simple State Machine (Maquina de estados) Objetivo ‘Utilice la plantilla de Simple State Machine en LabVIEW para crear una aplicacién en fa que el usuario controla la adquisici6n y almacenamiendo de los datos tipo forma de onda. Escenario Se desea utilizar una maquina de estados basada en eventos para crear una aplicacién robusta que adquiere y guarda los datos en una forma de onda, Se inicia con la plantilia simple de maquina de estados, la que provee un archivo de proyecto de LabVIEW y todos los VIs soportados asi como los controles de definicién de tipo, se necesitard crear una aplicacién con la maquina de estados basada en eventos, Disefo La plantilla simple de maquina de estados incluye una amplia documentacién acerca de cémo modificar el cédigo para crear una aplicacién personalizada con ‘méquinas de estados. Una vez que se crea un proyecto utilizando la plantilla, se personaliza el cédigo para diferentes eventos para que pueda generar, adquirir y ‘guardar datos de forma de onda. Se utiliza el V1 Generate Data, disponible en el folder compartido, para generar formas de onda senoidales para esta aplicacién. Por ‘ultimo, se actualizan los controles personalizados proporcionados por la plantilla predeterminada, para que los controles manejen los datos que se han generado. Implementaci6n Haga clic en el botn Create Project en la ventana Getting Started. 1 Seleccione la plantifla Simple State Machine como en la figura 2-1 Figura 2-1. Crear un proyecto usando la plantila simple state machine. Bi crate Project Choose a starting point for your project: “a tek rect Terps } Simpl Project ‘Simple State Mactine mente sn verte oss terta°® Mora formation ng ieeks n, More Information ‘Queue Message Handter SS ae ee ©National instruments | 2-3 LABVIEW Core 2 Manual de Ejercicios Lecclén 2 mplementands patranes icon | 24 3. Complete la configuracién del proyecto, como se muestra en la figura 2-2 Figura 2-2. Configuracién del proyecto en el cuadro de dilogo Create Bicep Configure your new pect ene fo sce dn Perot oO @Q—Hp ciiesrennse vention oases O— FileName PrticOpera fae wise Moai cons fg Project Name — Ingrese Acquire and Save como el nombre del nuevo proyecto, 2. Project Root — Se puede usar la localizacién en disco por defecto. 3. File Name Prefix — Este pretijo se convierte en parte del nombre de los archivos de la biblioteca del proyecto y Vis que esta plantila crea. LabVIEW también actualiza el icono con este prefijo. 4 Edit Overlay — Haga clic en este botén para personalizar atin mas el icono. 4, Haga clic en el botén Finish para crear y abrir el proyecto Acquire and Save yun VI principal flamado WMEFMain.vi En la ventana Project Explorer. note que el proyecto contiene documentacién, definiciones de and Save como se muestra en la figura 2-3 6. Agregue la carpeta compartida para el proyecto Acq Figura 2-3. Afadic una carpeta compartida al proyecto 1. Project Acquire and Seve proj @— = Q My Computer © GD. Project Documentation © Type Definitions ° 3S Sie <———— SL WHEMoinas & & Dependencies 46%, Bull Specifications Haga clic con el botén derecho en My Computer y soleccione Add» Folder (Snapshot) en ol mend contextual. 2 Navegue a \LebVIEW Core 2\Shared y haga clic en el botén Current Folder para afiadirlo al proyecto, Asegirese que la carpeta compartida est abierta cuando se hace elic en el botén Current Folder. 7. Haga doble clic en WFMMain.vi en la ventana Project Explorer y revise los comentarios de la plantilla en el panel frontal LabVIEW Core 2 Manual de Ejerccios ©Natonal instruments | 25 Lecelén 2 tmplementande patranee de aisaho nicom | 26 ‘Abra el diagrama de bloques y observe el bucle While y la estructura Case, tipicos de un patron de disefio de méquinas de estado, como en la figura 2-4 Figura 2-4. Bucle While y estructura Case tipicos de un disefto con maquina de estados [Mam vigie Machine ey A [mater }——~ rae (ae edad = Way te ae a Ippropntyforuse inthe new ate z pede Nef ses Don ever ixop the cop i Tey ‘top Loop? 9 Ds Escructura Case — Contiene un caso por cada estado definido en la definicién de tipo Initial State. 2. Registros de desplazamiento — Mantiene la informacion del estado, informacién de error, y datos de una iteracién del bucle While @ otra. Estos registros. aseguran que la informacién es accesible en cada evento y caso. 3. Etiqueta del diagrama de bloques — Es una guia para actualizer la plantilla, 9. Actualice el panel frontal como en Ja figura 2-5 _fesecune wonton eae Logto Fle Amplitude c Etiquetas — Actualice las etiquetas del botén Acquire Wavelorm y Log to File. Las efiquetas corresponden a los terminales en el diagrama de bloques y se muestran alli también. Texto Boolean — Cambie el texto Boolean que aparece en los botones de Acquire and Save. El texto Boolean es el texto mostrado en el botén. Waveform graph — Eliminar comentarios antes de afadir el grético tipo “Waveform Graph" 10. Abra el diagrama de bloques y mueva el terminal Waveform Graph fuera del bucle While. Deber moverse nuevamente més adelante. Q Consejo Haga doble clic en el grafico en el panel frontal para encontrar el terminal del Waveform Graph en el diagrame de bloques LABVIEW Core 2 Manual de Ejerccios © National instruments | 2-7 Leccién 2 mplementando patrones de asec com | 28 11, Badite la definicién de tipo Initial State, como en la figura 2-6 Figura 2-6. Definicion de tipo initial State Initial State (etnitiatize =} > | Ginivatze © 1 Definicién de tipo Initial State — Haga clic con el botdn derecho en Initial State y seleccione Open Type Def. 2 States enum — Haga clic con el botén derecho en la variable tipo enum y seleccione Edit Items. 12, Edite los estados tipo enum como en la figura 2-7. Aepeornct | Bat Tpe | Dpiny Format | Edt ers Bocamendon [+> Tem Tigh “UE otto Acquire Wavetorm Logte Fie | | | | watt bet | (Tee) (ean) rele) Haga clic en OK para cerrar el cuadro de didlogo. 5 Seleccione File»Apply Changes Guarde el archivo Wimstate. ct] y cierre la ventana del editor de control. LABVIEW Core 2 Manual de Ejercicios Enum States: Properties ©National Instruments. | 29 Leccién 2. Implementando patrones de disero 13. Edie Ia definicién de tipo Data, de forma que pueda usarse con los datos de la forma de onda en fa aplicacién Abrir y editar Ia definicién de tipo Data, como se muestra en la Figura 2-8 Figura 2-8, Editando la definioién de tipo de datos a 1 Definicién de tipo Data — Haga clic con él botén derecho en Data y seleccione Open Type Det. 2 Componentes de la plantila por defacto — La plantila tiene tres tipos de datos por defecto: Un Booleano, una cadena de caracteres y un valor numérico. Borre las componentes que tiene por defecto en el cluster en la definicion de tipo. 3. Abra el VI Generate Data, localizado en la carpeta Shared en la ventana del Project Explorer, copie el control ¥. 4 Pague el control Y dentro de la detinicién de tipo Data y cambie el nombre del control Y a Array. (1. Seleccione FileApply changes para aplicar la nueva definicién de tipo en el VI abierto. 1 Guarde y cierte la ventana de editor del control (© Bjecute el VI Generate Data 14, Complete el caso Acquire Waveform como se muestra en la figura 2-9. © Blimine las funciones Bundle by Name y One Button Dialog, en este caso, antes de completar el diagrama de bloques mostrado en la figura 2-9. Bundle By Name Waveform Grp > Gee CS Gi [ae Genarte Osta Bundle By Name — Cablee la definicién de tipo Data al cluster de entrada de la funcién Bundle By Name. 2 Terminal Waveform graph — Arrastre el terminal desde fuera del bucle While hacia adentro del caso Acquire Waveform. 3 VI Generate Data — Abra el folder compartido en la ventana Project Explorer y arrastre el VI Generate Data al diagrama de bloques. Cablee la salida de Ya fa terminal del Waveform Graph Cree constantes de las terminales de entrada signal y noise del VI Generate Data. 5 _Cablee la salida de Y del VI Generate Data a fa entrada del Array de la funcién Bundle By Name. 15. Complete el caso Log to File como en la figura 2-10. LabVIEW Core 2 Manual de Ejetcicios © National instruments | 2-11 Leccién 2 Implementando patrones de aiseRo ‘ie 1 Convert to Dynamic Data — Se configura con las siguientes opciones: (1. Tipo de dato de entrada — Array 1D de escalares, canal simple (2 Tipo de datos escatar — Nameros en punto flotante (dobles) Tiempo inicial — Cero 2 Express VI Write to Measurement File — Se configura con las siguientes opciones: Action — Preguntar al usuario el archivo (Action — Consultar en cada iteracién Cl Ma file already exists — Sobreescriba el archivo sieste ya existe Después de configurar el VI Express Write To Measurement File, haga clic con el botén derecho en el VI Express y seleccione View As Icon 3 Cablee la tuncién Convert to Dynamic Data a las sefiales de entrada del VI Express Write To Measurement File, 16, Abra el caso Stop como en la figura 2-11 Figura 2-11, Actual potsin State Machine! Walor no utiizado) enum — Es deseable actualizar la etiqueta para faciltar la lectura. Sin embargo, la aplicacion no utiliza el valor enum debido a que el botén ‘Stop detiene la ejecucién del bucle antes de que el siguiente estado se ejecute. 17, Haga clic en el botdn ejecutar Run que muestra una flecha rota, para encontrar errores y depurar el cédigo. Debido a que se han sustituido los elementos de datos en a definicién de tipo Data, el valor booleano que la funcién Bundle By Name usa en algunos casos ya no es valido. Elimine las fuinciones Bundle By Name y 1 to. vyuelva a cablear los datos hacia los registros de desplaza 18. Guarde el VI. © National netumants | 2.13 LABVIEW Core 2 Manual de Ejercicios Lecelén 2 implementando patrones de siseFo icon | 218 Prueba 1, Bjecute ef VI. 2. Haga clic en el botén Acquire en varias ocasiones. El grifico tipo Waveform Graph, actualiza cada vez los nuevos datos. 3, Haga clic en el botén Save. 4. Cuando termine, haga clic en el botén Stop. 5. Guarde y cierre el VI. Fin del ejercicio 2-1 Ejercicio 2-2 Concepto: Productor/consumidor (eventos) Objetivo Como grupo, explore la plantilla Producer Consumer (Productor/Consumidor) Escenario Se tiene un VI que utiliza el patrén de disefio productor/consumidor para procesar mensajes. La tasa a la que trabaja el consumidar es més lenta que la del productor ¥y por lo tanto, se crea un backlog (cola de mensajes en espera). El VI borra mensajes del backlog en el orden en que se reciben los mensajes, hasta que un mensaje de prioridad alta se introduce. Los mensajes con prioridad alta son procesados a medida que se reciben, luego el VI continiia con el procesamiento de mensajes con prioridad normal Implementacion 1. Abrael proyecto del productor consumidor, localizado en \LabVIEW Core 2\Producer Consumer - Event,y abra el Main.vi mostrado en la figura 2-12. Figura 2-12. Productor consumidor (panel frontal del VI Main) High Prion? ° Number of enqueved rmassages wating to Curent data being be procerea proceres in oneumerloop 2. Ejecute el VI. LABVIEW Core 2 Manual de Ejerecios ©National Instruments | 245, fo patones de dsero 3. Haga clic en el botén Normal Priority Note que el indicador State to Execute dice Normal Priority. (2 Note ademas que Processed Value se incrementa en | Note que el valor booleano High Priority? esta apagado. & Haga clic en varias ocasiones en el bot6n Normal Priority (Note que el indicador Backlog incrementa su valor. 1D Note que Backlog decrece cada segundo. 5, Haga clic en el botén High Pri (3 Note que State to Execute dice High Priority yl indicador Processed Value dice 1000, 1 Note que el valor booleano High Priority? esta encendido. 6. Observe el flujo de datos através del diagrama de bloques. Seleccione Window»Tile Left and Right rico | 246 (Haga clic en el botén Highlight Execution en el diagrama de bloques y luego ejecute el VI, observe el comportamiento al hacer clic en el botén Normal Priority. (0. Haga clic en el botén High Priority. (1 Note que Wait (ms) estado por defecto del bucle consumidor est configurado a 1000. Esto es lo que causa que el procesamiento se de un mensaje por segundo. 7, Desactive la opcién Highlight Execution, 8. Haga clic en varias ocasiones en el botén Normal Priority para crear una cola de mensajes en espera. 9. Mientras que existe el backlog, haga clic en el botén Stop. Observe que ef VI se detienc incluso aunque el backlog no haya sido procesado. La funcidn Enquene Element at Opposite End causa esto. Si la parada (Stop) debe ocurrir después de que todos los mensajes en el backlog se procesen. entonces esta funcién seria sustituida por una funcidn regular Enqueue Element. 10. Introduzca un error y observe el comportamiento: o a a Elimine el cluster de error cableado al estado por defecto del bucle consumidor. Haga clic con el bot6n derecho en el tine! de salida de la estructura Case y seleccione Create»Constant. Ejecute el VI y haga clic en Normal Priority. ‘Note que el VI ya no se comporta adecuadamente. Esto se debe a un error en el bucle consumidor, que ha causado el bucle consumidor a detenerse. Debido ‘aque el bucle consumidor estaba haciendo la mayor parte del trabajo, el VI no se comporta correctamente. El bucle productor atin esté en ejecucién. 11. Cierre el VI y el proyecto. No guarde los cambios. Este VI no incluye ningén gestor de errores. Se modifica una versidn de este VI en el ejercicio 2-3, para habilitar el gestor de errores de forma que el VI se detiene si un error ocurre Fin del ejercicio 2-2 LabVIEW Core 2 Manual de Ejericis ©National instruments | 2417 Leccién 2 _Implementande patrones de sero Ejercicio 2-3 Concepto: Gestor de errores del productor/consumidor Objetivo Utilice los botones para introducir errores en la plantilla del productor/consumidor para probar el cédigo del gestor de errores Escenario Se probara el gestor de errores en el patron de disefio productor/consumidor, por lo que inyectaran errores simmulados cuando el VI se ejecuta. Disefio Afiada botones para introducir errores en el bucle consumidor y en el bucle productor Implementacion 1. Abra el proyecto del productor/consumidor, localizado en \LabVIEW Core 2\Producer Consumer ~ Template Ui SeleccioneFileySave As y establezca las opciones de “Guardar como”, como se muestra en la figura 2-18, y luego haga clic en el botén Continue. Figura 2-18. Opciones de “Guardar como" (Save As) {BS Sure "Producer Coneumeriprey Be || oni || Ceci cz ce Cmone Tenge Conon Copy- reste en unopened copy of the ete il on dd *y ay Morrie iena = © [REL Pott ir ean contents ‘lcd a dapendentes Ofna ibe m nemon, Cop witb ope c) Sect content tcapy (Continue) [Caneel | 1 Ingrese Histogram como el nombre de el proyecto, y guarde el proyecto en el directorio \LabVIEW Core 2\Histogram. 2. Cierre la ventana Project Explorer de Producer Consumer - Template. 3. Abra Histogram.Ivproj y renombre los Vis del proyecto en LabVIEW, de forma que LabVIEW pueda actualizar todos los enlaces e instancias de estos Vis. (Haga clic con el botén derecho en Main.vi en Ia ventana Project Explorer y seleccione Rename. (© Renombre el VI como Histogram Main. vi y haga clic en OK, ing Histogram “auto-populating folder”. La carpeta compartida contiene e] VI Generate Data y el VI Run Afiada la carpeta Shared al proyecto con la opeién que se utilizardn adelante. Abra el diagrama de bloques del VI Histogram Main Actualice la definicion de tipo Consumer Message, como en Is figura 2-19, para manejar los datos de la forma de onda 6 oe Figura 2-19. Definicién de tipo Consumer Message ‘Numeric Data a Emor Consumer State Ersitatze 1 Definicién de tipo Consumer Message — Haga clic con el botén derecho en la definiciOn de tipo Consumer Message localizada a la izquierda del bucle productor en el VI Histogram Main y seleccione Open Type Det. LabVIEW Cove 2 Manual de Ejrcicios © National instumenis | 2-27 2 _implemertando patrones de oisene rico | 228 (1 Modifique la definicién de tipo Consumer Message como en la figura 2-20. Figura 2-20. Definicién de tipo Consumer Message Consumer Mage (Gone Sine ee) M cerereenreraecetmnned Boolean Data | | || status code “Array — Afiada un array a la definicin de tipo, para que esta pueda manejar datos de la forma de onda. Renombre el array como Signal. 2. Indicador Numérico — Afiada un indicador numérico al array. Haga clic con el botén derecho en el borde del cluster y seleccione Reorder Controls in Cluster y ordene los elementos de forma que e control Signal esté exactamente por debajo del control Numeric Data. Aplique los cambios, guarde, y cierre la definicién de tipo. Despliegue la definicién de tipo como un icono en el diagrama de blogues, como en la figura 2-21 Figura 2-21. Ver una definicién de tipo como un feono 1 Haga clic con el botén derecho en en la definicién de tipo Consumer Message y Seleccione AutoSizing» Arrange Vertically en el mend contextual. 2 Haga cle con el botén derecho en en la defnicién de tio Consumer Message y seleccione View Cluster as leon para guardar el espacio en el ciagrama de loques, LabVIEW Core 2 Manual de Ejerccios ‘©National instruments | 2-29 Lecclén 2 mplementando patrones de dizeha 8. Envie los datos de la setial através de la definicién de tipo Consumer Message. Complete el evento Timeout en el bucte productor, como en la figura 2-22. Jura 2-22. Actualizando el evento Timeout del bucle productor ® nor Henaenss 5) => [Fidzen fp conrl used aoc vara Rap oop 1 Definicién de tipo Consumer Message — Copie la definicin de tipo Consumer Message y péguela dentro del evento Timeout, 2 Funcién Bundle By Name — Cablee la definicién de tipo Consumer Message a la entrada de input cluster. Cl Expanda el nodo para mostrar dos elementos. (0. Seleccione Consumer State y Signal. VI Generate Data —Arrdstre ol VI Generate Data desde ol folder Shared en la ventana Project Explorer dentro del evento Timeout. Cablee la salida de Y del VI Generate Data a la entrada de Signal de la funcién Bundle By Name, Cree un control para la entrada de signal del Vi Generate Data. Cree una constante para la entrada de Consumer State Engqueue Element — Haga clic con el botén derecho en el cable de la cola y selaccione Insert»Queue Operations Palette»Enqueue Element. O Conecte el cable de error através de la funcién Enqueue Element con la funcién Get Queue Status. Aparecerd cableado, pero cuando se inserte en el nodo, el cable de error estaré detras de la tunci6n Enqueue Element. aso Display en ef bucle consumider, como en la figura 2 9. Cree el 2-23. Actualizando AL | tscgen r —T is Fag) ER 3 ial —b fy sl ol AP _ for re Ee I — [7 t g © . pe Cengurer Sra? a) a ‘Abra el caso Default de la estructura Case y renombre el caso a “Display”, Default. Funcién Unbundle By Name — Cambie el elemento Numeric Data a Signal y elimine el Boolean Data incluyendo el cable. VI Running Histogram — Arrastre el VI Running Histogram del folder Shared en la ventana Project Explorer. Control Numérico — Cree un control de la entrada bins y coloque una etiqueta al control Bins. XY Graph (Silver) — En el panel frontal, coloque un gréfico del tipo "XY Graph (Silver) " y renombrelo como Histogran. Funcién Bundle ~ Cablee las salidas de histogram y x axis del VI Running Histogram a la funcién Bundle. Reemplace el tune! de la derecha de Histrogram con un registro de desplazamiento y complete el “shift register’. Cablee el registro de desplazamiento de la izquierda a la estructura Case. Haga clic con el botén derecho en la salida de Histogram y seleccione Linked Input tunnel»Create & Wire Unwired Cases, luego haga clic en el tGnel de la lzquierda de la entrada de Histogram. 10 Haga clic con el botén derecho en el registro de desplazamiento de la izquierda y cree una nueva constante, e©etronnane LabVIEW Cove 2 Manual de Ejarcicias ‘@ National Inetruments | 2-31 Leccién 2 implemertand pationes de diseho rico | 2-32 10, Cree un evento Snapshot en el bucle productor, cambiando el “High Priority Message” Value Change ev: figura Jura 2-24, Actualizando el bucle productor "Snapshot": Evento Value Change ®@ oe f= {it Sana ant amas a ee Te cape ca+—® wD ra ‘Cambie el nombre del evento — Cambie la etiqueta del bot6n High Priority a Snapshot. Cambiando el nombre del botén se cambia el nombre del evento Funcién Bundle By Name — Elimine los valores cableados a las entradas Boolean Data y Numeric Data de la funcién Bundle By Name y oculte las terminales. Cambien el valor de la cadena de caracteres constante Consumer State a Snapshot. Haga doble clic al control Snapshot para localizar el botén en el panel frontal, Cambie el texto mostrado en el botén @ Snapshot. Bona u Cree el caso Snapshot en el bucle consumidor, como en la figura 2-25 Figur ee Histogram ebunae ae pa Congumer Shutdown? 7 2 3 4 12, Duplicar el caso “Initialize” — Haga clic con el botén derecho en la estructura Case y Seleccione Duplicate Case. Renombre el caso duplicado a Snapshot. Funcién Unbundle — Después de cablear la entrada, la funcién Unbundle contiene dos arrays 1D. Funcién Build Array — Cablee ambas salidas del Array 1D a fa funcién Build Array. VI Write to Spreadsheet File — Cablee la salida de array de la funcién Build Array a la entrada 2D data. Elimine el evento Normal Priority Message de la estructura Event en el bucle productor. LabVIEW elimina el botén correspondiente en el panel frontal LABVIEW Core 2 Manual de Ejercicios ©National instruments | 2-58 Fe, srapibot i= Number of queued messages wating to Beprocesied a : Prueba 1 Ejecute el VI ara crear la apariencia de un histograma en el gréfico, haga clic en la etiqueta “plot puede querer eliminar la interpolacion de linea haciendo clic en la leyenda del Observe como al cambiar los valores de Signal y Bins cambia la apariencia del hi Haga clic en el botén Snapshot. Apareceré un cuadto de dialogo de archivos, de Elija el nombre para el nuevo archivo, incluyendo . txt Mientras que el cuadro de didlogo esta abierto, el indicador Backlog aumenta, eleccione un tipo de “horizontal bar plot” de la fila inferior. Usted también fico y seleccionando Interpolation en el mend contextual, istograma. yma que se pueda guardat el archivo del histograma, Cl Haga clic en el botén Save para salir Bl indicador Baeklog deberia decrementarse répidament 5. Haga clic en el botén Stop para detener el VI 6. Abra el archivo de texto guardado y revise el contenido para ver los recipientes y los valores del histograma. 7. Guarde y cierre el proyecto Histogram Fin del ejercicio 2-4 LabVIEW Core 2 Manual de Ejerccios ©National Instruments | 235, Ejercicio 2-5 Nivel de acceso de usuarios Objetivo Para crear una aplicacion de compuertas, usando el patron de disefio de variable funcional global, la cual restringe el acceso del usuario a ciertas caracteristicas basadas en diferentes niveles de acceso de usuario. Escenario Es necesario crear una aplicacién en la que algunas caracteristicas no estén disponibles para todos los usuarios. Se crearé un mimero finito de niveles de acceso de usuarios y se asignara un nivel de usuario apropiado para los diferentes usuarios. Se utilizara un patrén de disefio de variable funcional global para comprobar los diferentes niveles de acceso. Diseflo En la siguiente tabla se describen las diferentes acciones que se necesitan para manejar ¢ implementar el control de acceso de usuario. En este ejercicio, se crea un control personalizado para manejar estos elementos. Accién Descripcién Read User Access Level File | Lee la informacién sobre los usuarios autorizados y sus niveles de acceso a un archivo especifico y almacena esta informacién en la memoria de acceso, Set Current Access Level Define el nivel de acceso del usuario actual en la memoria de la aplicacién. Get Current Access Level Recupera el nivel de acceso de la memoria de modo que Ia aplicacién puede determinar si un usuario tiene acceso a una determinada caracteristica Implementacion 1. Abracl proyecto User Level FGV.1vproj desde \LabVIEW Core 2\FGVs 2. Abra el folder User Level FGY en la ventana Project Explorer y Iuego abra el VI User Access Level FGV.vi. El VI User Access Level ya contiene varios elementos en el panel frontal, un icono y el panel de conectores. 3. Cree un control con definicién de tipo “enum” y modifique el panel frontal como en la figura 2-27 Fi 2-27. nara Ure teve 1 FGV ei Det num (Silver) — Haga clic con él botdn derecho en el control Enum y séleccione Make Type Def, luego haga clic con el bol&n derecho y seleccione Open Type LabVIEW Core 2 Manual de Ejercicios ‘© National lnstumenis | 2-87 Leceién 2 Inplamertando patronas de cicero ricom | 2.28 4, Afada las tes acciones listads en la seccién Diseio de este ejercicto a la definicin de tipo User Level Cmd como en la figura 2-28 Figura 2-28. Editar el Enuin de User Access Level Cd eae peo! “eens | as | Bo fo 7 Enum — Haga clic con el botén derecho y seleccione “Eat ems”. 5. Guarde el Enum como User Level Cnd. ct en\LabVIGW Core 2\FGVs\User Level FGV y-ciere la ventana de edicién del control personalizado. 6. Desde el panel frontal del VI User Access Level FGV, asigne un terminal desde el nivel superior del panel de conectores del VI User Access Level al control Iser Level Cmd, como en la figura 2-29, Jura 2-29. Asigne el control Use: Level Crd Control a la terminal det panel de conectores. 1 Terminal del panel de conectores — Haga clic en la terminal, luego haga clic en el control User Level md para asignar el control al terminal del panel de coneciores. Haga clic con el botén derecho en el terminal del panel de conectores y seleccione This Connection Is»Required. Al hacer que el terminal sea requerido, una aplicacién debe proporcionar un valor para la entrada del User Level Cmd cuando se ulliza el VI User Access Level en otro VI, LabVIEW Core 2 Manual de Ejerccios ©National instruments | 2-39 eccién 2 Implementando patones de diseho nico | 240 Cree un marco para la variable funcional global, completando el diagrama de bloques como en la figura 2-30. Figura 2-30. Creando un marco para la variable funcional global © User Maine User Level Gms Out 1 Selector de caso — Cablee el cluster Error In al selector de caso de la estructura Case para configurar los casos de error y no error. Case selector — Cablee el User Level Cmd al selector de la estructura Case interna, 3. Estructura Case — Haga clic con el botén derecho en la estructura Case y seleccione Add Case for Every Value en el meni contextual y seleccione “Read User Access Level File”, Default, Error In/Error Out — Cable Error In hasta Error Out, a través de las estructuras. 5 Cablee Error In/Error Out a través de todos los casos — Haga clic con el botén derecho en el ttinel de salida y seleccione Linked Input Tunnel»Create & Wire Unwired Cases. Cuando el cursor se convierte en una herramienta de conexién, haga clic en el tunel de entrada del lado izquierdo. Pequerios tridngulos blancos dentro de los tineles de entrada y salida indican el enlace. Consejo. Utilice la opcién Add Case for Every Value cuando se sepa que cada diagrama de casos es significativamente diferente, Si los casos contienen subdiagramas similares, uilice la opcién Duplicate Case en su lugar. Después de duplicar un caso, puede modificar y cambiar su nombre. Complete el caso Read User Access Level File como en la figura 2-31 Figura 2-31. Configurando el caso Read User Access Level File Userteme eer Leve Cm ner Out tnorh, fear 1 Larulaa User Access Levels. txt es relativa a donde se guarda al VI User Access Level FGV. En este caso, él archivo de texto esi en un directorio paralelo. 2 VI Read From Spreadsheet File — Haga clic en el selector polimérfico y seleccione String. 1 Cablee la salida de all rows a través del tGnel en la estructura Case al bucle While. 3 Registro de desplazamiento — Haga clic con el botén derecho en el tUinel y seleccione Replace with Shift Register. Haga clic en la parte izquierda del bucle While para completar el registro de desplazamiento. Etiqueta — Haga clic con el bot6n derecho en el cable y seleccione Visible Items»Label, luego teclee en el nombre User Names 6 Levels, 5 _Enlace el tunel de salida con el tunel de entrada correspondiente y cablee los casos que no han sido cableados de el tunel. LabVIEW Core 2 Manual de Ejrcicios {© National instruments | 2-41 Leccidn 2 implamentando patron 9. Complete el caso Set Current Access Level como en Ia figura 2-32. Figura 2-32. Configurando el caso Set Current > ner ames Levels = » User bes > on ‘Nemes Cola Funcién Index Array — Cablee User Names & Levels a la funcién Index Array. Constantes User Levels Column y Names Column — Cree constantes para la entrada index (col) de la funcién Index Array. Registro de desplazamiento — Cambie el ttinel por un registro de desplazamiento. Haga clic con el botén derecho en la salida del tinel y seleccione Link Input Tunnel»Create & Wire All Unwired Cases. Rone Fols= > User Names Lets > E> Urertevel > Use tame Usec level Oma a = 11, Cablee el caso de error como en la figura 2-34. Figura 2-34. Caso No Error User Level eer te Sep User Level Gnd Enrorla [ Kiso UsaeLevel enor Out LabVIEW Core 2 Manual de Ejerccios ‘© National instruments | 2-43 Leccién 2 Implementando pationes de diseho 12. Guarde y cierte el VI. Prueba 1. Desde el proyecto, abra User Access Levels. txt y revise los contenido del archivo. Este archivo contiene los nombres de los usuarios autorizados niveles de acceso. Si quiere puede agregar nombres de usuario adicionales y niveles. sus 2. Haga doble clic en User Access Level FGV Unit Test.vi en la ventana del Project Explorer para abrir el V1. Este VI toma el nombre de usuario que se introdujo, establece los permisos del VI al nivel de acceso de usuario, y comprueba si se establece el nivel de acceso adecuado. 3. Complete el evento “Set User Access Level": Value Change, como en la figura 2-35. Figura 2-35. Completando el evento "Set User Access Level": Value Change 2 Saar Rccea Lea Vale Crange *) Set User Acces Level v cone ve Exorla ral Ga b 5 io 1 Vi User Access Level FGV — Este es él VI que se modifiod en este ejercicio. Ya se ha colocado en el diagrama de bloques. 2 _Constantes User Level Gmd — Haga clic con el botén derecho en la entrada de User Level Cmd y seleccione Create»Constant. 36. Complete el evento “Access Secure AY 4. Complete el evento “Access Secure Area”. Value Change, como en la figura 2-36. 5, Ejecute el VI con los siguientes nombres de usuario y verifique que el nivel de usuario es correcto haciendo clic en el botén Test Access Level. Nombre Nivel de Usuario John Operator Paul Admin George Admin Ringo Operator 6. Guarde y cierre el proyecto. Fin del ejercicio 2-5 LabVIEW Core 2 Manual de Ejercicios ONational instruments | 2-45 Control de la interfaz de usuario Ejercicios Ejercicio 3-1 Visualizacién de temperatura y limites Ejercicio 3-2 Personalizacién de la Ventana del VI Ejercicio 3-3 Uso de subVIs LABVIEW Core 2 Manual de Ejereicios © National instruments | 94 Leccién'd Coniral de a interiaz Ejercicio 3-1 Visualizacion de temperatura y limites Objetivo Use Nodos de Propiedad para cambiar las propiedades de los objetos del panel frontal programaticamente, Escenario Complete un VI que registre la temperatura en un grafico tipo “waveform chart”, Durante la ejecucién, el VI realiza las siguientes tareas: + Desactivar y activar los controles en el inicio y la finalizacién de la ejecucion. * — Configurar el valor Ax del grafico tipo “chart” con el valor que define el usuario. + Borrar el grafico tipo “waveform chart” para que inicialmente no contenga datos. + Reto: Cambiar el color de una curva si los datos superan cierto valor. Disefo Se debe construir este V1 en cuatro etapas, incluyendo un desafio. Parte 1 — Deshabilitar controles Parte 2— Habilitar controles Parte 3 — Limpiar el grafico Parte 4 — Desafio: Cambiar el color del contenido del grifico Figura 3-1. Pane! frontal de Temperature L xa0- 0 200- op 83 Lb is 2028 39 Tie | aw: = : so Start Acquiston VIy luego ha enel botén Start Acquisition Tenga en cuenta que mientras que el VI se ejecuta, los controles siguen habilitados. Se pueden cambiar los valores de los controles, mientras que el VI se (Haga clic en el botén Stop. icar el diagrama de bloques como se muestra en la figura 3-2 para desactivar los controles cuando el VI se ejecuta. LabVIEW Core 2 Manual de Ejercicos © National Instruments | 33 olde a ietertar de usuario Figura 3-2, Hightinit — Tempertne ‘Nodo de propiedad Delta t (ms) — Haga clic con el boton deracho en el control Delta t (ms) y seleccione Create»Property Node»Disabled. Haga clic con al botén derecho en el nodo de propiedad y seleccione Change All to Write. Node de propiedad High Limit — En el caso Timeout del estructura event, haga clic con el botén derecho en el control High Limit yseleccione Create»Property jode»Disat Ci Coloque ef nodo de propiedad fuera del bucle While, para que pueda moverse dentro de “Start”: Value Change. [Haga clic con el botén derecho en el nodo de propiedad y seleccione Change All to Write. Nodo de propiedad Temperature — En el caso Timeout de la estructura event, haga clic con el bot6n derecho en el indicador Temperature y seleccione Create» Property Node»X Scale» Offset and Multiplier» Multiplier. ._ Coloque et nodo de propiedad fuera del bucle While, para que pueda moverse dentro de “Start: Value Change. Haga clic con el botén derecho en el nodo de propiedad y seleccione Change All to Write, 1 Mueva el nodo de propiedad High Limit dentro de “Start”: Value Change. ‘To Double Precision Float — Convierte la entrada 132 del contro! Delta t (ms) a un nimero de precisién doble. Haga clic con el botén derecho en el nodo de propiedad de Delta t (ms) y seleccione Create»Constant, configrelo a Disabled and Grayed Out. Prueba 1. Bjecute el VI-y luego haga clic en el botén Start Acquisition, Los controles Delta t (ms) y High Limit estan dehabilitados y atenuados 2. Detenga et VI tion y note que los controles aiin ests dehabilitados, 3. Bjecute nuevamente el VI, haga clic en el botén Start Acq Parte 2 — Habilitar controles Se quieren deshabilitar los controles mientras el VI se ejecuta, sin embargo, se desea habilitarlos de nuevo la proxima vez que se ejecute el VI. 1, Modificar el diagrama de bloques como se muestra en la figura 3-3 para habilitar los controles cuando el VI se ejecuta. Figura 3-3. VI Temperature Limit — Habiltar os controles desde el diagrama de bloques {Seva Chana & i : feed ane ated ppbaved OQ ay (rabiethe conta invialae Event taut Tor fndeiice wait nth 1 1 Cree una copia de los nodos de propiedad de Delta t (ms) y High Limit y arréstrelos a la izquierda, fuera del bucle While 2 Cree una constante para habiltar los controles. LabVIEW Core 2 Manual de Ejercicios © National Instruments | 25 Lecclin 3 Control de ia interaz de usuario nico | 28 Prueba 1, Bjecute et VI y observe que los controles se activan de nuevo antes de hacer clic en el botén Start Acquisition Establezca diferentes valores para los controles y haga clic en el boton “ a partir de donde se detuvo Ta iltima vez que se ejecut6 el VI tart Acquisition”. Tenga en cuenta que los datos que se muestran en el gréfico comienzan Parte 3 — Limpiar el grafico Se desea borrar el contenido del grafico cada vez que ejecute el V1. 1. Modificar el diagrama de bloques como se muestra en la figura 3-4 para borrar los datos antiguos del grafico cada vez que ejecute el VI Figura 3-4. VI Temperature Limit — Eliminar los datos del gréfico desde el diagrama de bloques fi "So tue Chae “FF iiss (vent Tor a jefe wt ci} — Detain) High Limit Texperture Pesmmed) -piuated a= | é Psy sae pee fou, a [rDisebied snd Grayed Out =] Se sunt Bh Tea a 7 Nodo de propiedad Temperature — Crear una copia del nodo de propiedad Temperature y arrastrarlo a la izquierda del bucle While, Haga clic en el nuevo nodo de propiedad y seleccione History Data. 2 Haga clic con el botén derecho en la entrada History y seleccione Create»Constant. Esto crea un cluster con valores 0 para inicializar el gréfico de temperatura a0 cuando el VI comienza a ejecutarse, Prueba 1, Ejecute el VI, haga clic en el botén Start Acquisition y deje el VI ejecutarse unos segundos, luego haga clic en el botdn Stop. 2, Bjecute el VI nuevamente, Observe que el grafico esti limpio antes de hacer clic en el botdn Start Acquisition y que se escriben nuevos datos en este Parte 4 — Desafio: Cambiar el color del contenido del grafico Modificar el VI para que ia tramna de datos en el grifico cambie de color cuando se excede el limite maximo. Fin del ejercicio 3-1 LabVIEW Core 2 Manual de Ejecicios @ National instruments | 37 svcom | 38 eccién 3 Contol de a ineraz de usuario Ejercicio 3-2 Personalizacion de la Ventana del VI Objetivo Modificar Jos atributos de un VI usando Nodos de Propiedad y Nodos de Invocacién. Escenario Puede configurar las propiedades de aspecto de un VI estaticamente usando la pagina de propiedades de! V1. Sin embargo, las interfaces de usuario robustas a menudo deben modificar el aspecto de un panel frontal mientras se ejecuta el programa. ‘Modificar el VI Temperature Limit para presentar el siguiente aspecto y comportamiento cuando el VI se ejecuta: + Esconder la barra de herramientas + Esconder la barra de menus: + Esconder las barra de desplazamiento + Moverse al centro de la pantalla + Escribir datos a un archive Excel Disefio Propiedades ‘Use las siguientes propiedades y métodos de la clase VI: + ShowMenuBar — Cuando esta propiedad tiene un valor False, la barra de meniis no se muestra en el VI Figura 3-5. Barra de mentis del VI Fie Edt View Project Operate Tools Window Heb + Tool Bar Visible — Cuando esta propiedad tiene un valor False, la barra de herramientas no se muestra en el VI Figura 3-6. Vi barra de herramientas Métodos ‘A diferencia de las propiedades, un método tiene un efecto cada vez que lo lame, Por lo tanto, debe Hamar a métodos slo cuando desee realizar una accién, Por ejemplo, si llama al método Fp.Center usando cada iteracién de un bucle, el VI se centra continuamente, impidiendo que lo mueva el usuario, Puede usar una estructura Case para controlar la llamada al método en una determinada iteracién de un bucle. Use el siguiente método de la clase VI + Center: cada vez que Hlame a este método, el VI se mueve al centro de la pantalla Q Consejo Use fa ventana Context Help para ver descripeiones de cada propiedad y método LabVIEW Core 2 Manual de Ejrccios ©National Instruments | 3-9 tar Acauiiton Implementacion Parte 1 — Configurar las propiedades de apariencia Abra el VI “Temperature Limit.vi” situado en el directorio Center. Usted debe cablea la referencia del nodo de propiedad antes de configurar este método. 6 LabVIEW Cote 2 Manual de Ejercicios Nota Note que las propiedades de visibilidad de la barra de desplazamiento se aplican a la clase Pane, no a la clase del VI. El panel frontal se puede dividir en varios paneles utilizando la barra de divisién horizontal o barra de divisién vertical. Cada panel puede tener sus propias barras de desplazamiento, ©National instruments. | 3-11 Leceiin 3 Contot dela inlerfaz do ueuaria ricom | 12 3. Guarde el VI Prueba 1. Ejecute ef VE 2. Verifique que las barras de desplazamiento, barra de herramientas y barra de ments no se muestran, y que la ventana del panel frontal esta centrada en la pantalla, cuando e] VI se encuentra en ejecucién, 3. Detenga el VI. Parte 2 — Exportar datos Agregue un método para exportar datos del grafico temperature a Excel. 1. Modificar el diagrama de bloques como se muestra en la figura 3-9 para exportar los datos mostrados en el grafico Temperature a Excel. Figura 3-9. VI Temperature Limit — Diagrama de bloques para exportar a excel =, = fm © cma|f) eet 1 Nodo de Invocacién Temperature — Haga clic con el botén derecho en el indicador Temperature y seleccione Create»Invoke NodenExport Data to Excel. 2. Guarde el VI Prueba 1. Bjecute el VI 2, Haga clic en Stop, Para que el método de exportar los datos a excel cree un archivo temportal de Excel con tos datos del grafico con fa forma de onda. Vea los, datos en el archivo de Excel 3. Guarde y cierre el VI Fin del ejercicio 3-2 LABVIEW Core 2 Manual de Ejerccios @National Instruments | 3413 Lecciin’3 Contr de la ntarlar de usuario sicom | 314 Ejercicio 3-3 Uso de subVIs Objetivo Use referencias de control para crear tun subVI que modifique propiedades de grificos tipo “graph” o “chart” Escenario Crear subVIs para e] VI Temperature Limit que le permitan manejar algunas de las funciones que ha habilitado en el ejercicio 3-1 y en el ejercicio 3-2 Implementacion 1. Abra el VI“Temperature Limit.vi” desde el proyecto Temperature Limit situado en el directorio \LabVIEW Core 2\Temp Limit - SubVIs. 2. El diagrama de bloques, como el de la figura 3-10 incluye cédigo para: + Ocultar las barras de desplazamiento mientras se ejecuta + Configurar propiedades de didlogos + Habilitar nnevamente los controles cuando se detiene el VI Figura 3-10, Temperature Limit — SubVI fram benim = [roto wt th i a a Comma Fe LabVIEW Core 2 Manual de Ejercicios @Natonal instruments | 3415 faz de usuario nisom | 36 Leceldn En este ejercicio, se modificara el diagrama de bloques para utilizar subVis y utilizar referencias de control. La figura 3-11 describe los subVIs que creara y utilizard salable. VI Temperature Limit mas modular y es Figura 3-11, VI Temperature Limit —Diagrama de bioques - t para hacer e ae a ‘SubVi Set Scroll Bar State — Oculta las barras de desplazamiento cuando se ejecuta él Vi 2 SubVI Set Dialog Properties — Oculta la barra de herramientas y de mend cuando se ejecula el VI. 3. VISet Enable State on Multiple Controls — Contigura todos los controles en el array de entrada oon el valor del estado Enable. 3. Crear el subVI Set Scroll Bar State. (© Enel VI Temperature Limit, resalte el cédigo mostrado en la figura 3-12 y seleccione EdityCreate SubVI Figura 3-12, Destacando el cédigo Scroll Bar State Pane —— —pVertSerollbarvisibilty pHarizScrallbanvisibilty 4. Abra el subVI. (3 Haga doble clic en el icono del subVJ en el diagrama de bloques para abrir y modificar el panel frontal del subVI que se acaba de crear, como en Ja figura 3-13. 13, Panol frontal del sub\. Earn Mo Ero” status code [Teapentre i Coma « 1 _Indicador de Salida Pane Reef — cree una copia del control Pane Ret. Haga clic con el botén derecho en la copia y seleccione Change to Indicator y cambie la etiqueta. 2 Asigne la salida del indicador Pane Ref a la salida del terminal superior derecho del panel de conectores. Las conexiones para los otros controles ¢ indicadores, ya deben estar creadas. LabVIEW Core 2 Manual de Ejrciios ©Natonal instruments. | 3-17 seein 3 Contal de laine de usuario rico {218 5. Modifique el diagrama de bloques de! subVI Set Scroll Bar State como se muestra en la figura 3-14 Figura 3-14. Diagrama de bloques del subVi Set Scroll Bar State fame Retin 6. Cable la referencia y los cables de error a través del caso error en la estructura. 7. Cree un icono significativo para el subVIy guardelo como Set Scroll Bar State.vi enel directorio \LabVIEW Core 2\ Temp Limit - subVI 8. Cree el subVI Set Dialog Properties. 9. Enel VI Temperature Limit, resalte el cédigo mostrado en la figura 3-15 y seleccione Edit»Create SubVI. Figura 3-15. Destacando el cédigo Set Dialog Properties eee ee FP chowiven Ba Center Teivisible 10. Abra el subVI que acaba de crear y modifique el panel frontal como se muestra en fa figura 3-16. Figura 3-16. Panel frontal del subVI Set Dialog Properties indicador de salida VI Ref — Cree una copia del conirol VI Ref. Haga clic con el botén derecho en la copia y seleccione Change to Indicator y cambie la etiqueta, Asigne la salida del indicador VI Ret a la salida del terminal superior derecha del panel de conectores. Las conexiones para los otros controles e indicadores ya deben estar creadas. LabVIEW Core 2 Manual de Ejericios ‘© National instruments | 3-19 sicom | 320 Leccién 3 Control de a inert de usuario Funcién Not — Invert la légica del bot6n Enable Dialog Properties cabledndolo al nodo de propiedad para mostrar la batra de menus y barra de herramientas 11, Cable la referencia y los cables de error a través del caso error en la estructura, Cree un icono significativo para el subVI y gudrdelo como Set. Dialog Properties. vi enel directorio \LabVIEW Core 2\ Temp Limit ~ SubVI 13, Agregue el VI “Set Enable State on Multiple Controls” al diagrama de bloques del VI Temperature Limit. (1 El VI Set Enable State on Multiple Controls se proporciona en el proyecto de Temperature Limit. Amrastre dos copias del VI desde la ventana Project Explorer al diagrama de bloques de Temperature Limit y complete el diagrama de bloques como se muestra en la Figura 3-18. Frise cael VI Server References — Cree referencias para el control Delta t (ms), el control High Limit, y el control botén Start. 7 1 Haga clic con el botén derecho en cada control y seleccione Create»Reference, El control High Limit esté en el evento Timeout. 2 Build Array — Expanda el nodo para que acepten tres entradas. 3 _SubVI Set Enable State on Multiple Controls — Cree una copia del subVI y la constante Disabled Stale y coloquelos en el ‘Start’; Value Change, Prueba 1. Bjecute el VI Temperature Limit y verifique que se comporta segtin lo esperado. 2. Guarde y cierre todos los Vis y el proyecto Temperature Limit Fin del ejercicio 3-3 ©Nationalinsvuments | 321 LabVIEW Core 2 Menual de Ejrcicios Técnicas de E/S de fichero Ejercicios Ejercicio 4-1 Crear rutas de archivos y carpetas Ejercicio 4-2 _Escribir miltiples canales con encabezados sencillos Ejercicio 4-3 Lectura de archivos TDMS LabVIEW Core 2 Manual de Ejercicios © National lastuments | 4-1 ecci6n 4 Técnicas de EIS de icnero ricom | 42 Ejercicio 4-1 Crear rutas de archivos y carpetas Objetivo Modificar un VI con el fin de crear programaticamente una carpeta si esta no existe 0 reemplazarla si ya existe. Implementacion 1. Abrael proyecto Create folder and file. 1vproj enel directorio \LabVIEW Core 2\Create folder and file. 2. Haga clic con el botén derecho en Create folder and file.lyproj en la ventana del Project Explorer y seleccione Explore, Observe los archivos en la carpeta y observe que no hay ninguna carpeta llamada Logged bata. 3. Abrael VI Create Data File.vi desde la ventana Project Explorer. 4. Examine el diagrama de bloques como en Ja Figura 4-1 1 VI Create Data File — Inicio \ pensCreteReplace file fle efrum Se 5 1008 End Funds} Cee rant ea ‘Application Directory — Retorna la ruta al directorio que contiene la aplicacion. Esto és util porque esta uflizando un subVI para crear el archivo de datos. Build Path — Afiade “Logged Data’ al nombre de fa ruta del archivo. Create Folder — Si la carpeta Logged Data no existe, esta funcién la crea. Build Path — Esta instancia de la funcién Build Path afiade el nombre de archivo auto generado Acquired Data

You might also like