Sunteți pe pagina 1din 62

Aprende LabVIEW Desde Cero

Worldwide Technical Support and Product Information


ni.com

National Instruments Corporate Headquarters


11500 N Mopac Expwy Austin, Texas 78759-3504 USA Tel: 512 683 0100

Worldwide Offices
Andean and Caribbean +58 212 503-5310, Argentina 0800 666 0037, Australia 1800 300 800, Austria 43 662 45 79 90 0, Belgium 32 0 2 757
00 20, Brazil 55 11 3262 3599, Canada 800 433 3488, Chile 800 532 951, China 86 21 5050 9800, Czech Republic/Slovakia 420 224 235 774,
Denmark 45 45 76 26 00, Finland 358 0 9 725 725 11, France 33 0 1 48 14 24 24, Germany 49 89 741 31 30, Hungary 36 23 501 580, India 1
800 425 7070, Ireland 353 0 1867 4374, Israel 972 3 6393737, Italy 39 02 413091, Japan 81 3 5472 2970, Korea 82 02 3451 3400, Lebanon
961 0 1 33 28 28, Malaysia 1800 887710, Mexico 01 800 010 0793, Netherlands 31 0 348 433 466, New Zealand 0800 553 322, Norway 47 0
66 90 76 60, Poland 48 22 3390150, Portugal 351 210 311 210, Russia 7 495 783 68 51, Singapore 1800 226 5886, Slovenia/Croatia,
Bosnia/Herzegovina, Serbia/Montenegro, Macedonia 386 3 425 42 00, South Africa 27 0 11 805 8197, Spain 34 91 640 0085, Sweden 46 0 8
587 895 00, Switzerland 41 56 200 51 51, Taiwan 886 2 2377 2222, Thailand 662 278 6777, Turkey 90 212 279 3031, U.K. 44 0 1635 523545,
Uruguay 0004 055 114
To comment on National Instruments documentation, refer to the National Instruments Web site at ni.com/info and enter the
info code feedback.
2013 National Instruments Corporation. All rights reserved.

Important Information
Warranty
The media on which you receive National Instruments software are warranted not to fail to execute programming instructions, due to defects in materials and
workmanship, for a period of 90 days from date of shipment, as evidenced by receipts or other documentation. National Instruments will, at its option, repair or replace
software media that do not execute programming instructions if National Instruments receives notice of such defects during the warranty period. National Instruments does
not warrant that the operation of the software shall be uninterrupted or error free. A Return Material Authorization (RMA) number must be obtained from the factory and
clearly marked on the outside of the package before any equipment will be accepted for warranty work. National Instruments will pay the shipping costs of returning to the
owner parts which are covered by warranty. National Instruments believes that the information in this document is accurate. The document has been carefully reviewed for
technical accuracy. In the event that technical or typographical errors exist, National Instruments reserves the right to make changes to subsequent editions of this document
without prior notice to holders of this edition. The reader should consult National Instruments if errors are suspected. In no event shall National Instruments be liable for any
damages arising out of or related to this document or the information contained in it. EXCEPT AS SPECIFIED HEREIN, NATIONAL INSTRUMENTS MAKES NO WARRANTIES,
EXPRESS OR IMPLIED, AND SPECIFICALLY DISCLAIMS ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. CUSTOMERS RIGHT TO
RECOVER DAMAGES CAUSED
BY FAULT OR NEGLIGENCE ON THE PART OF NATIONAL INSTRUMENTS SHALL BE LIMITED TO THE AMOUNT THERETOFORE PAID BY THE
CUSTOMER. NATIONAL INSTRUMENTS WILL NOT BE LIABLE FOR DAMAGES RESULTING FROM LOSS OF DATA, PROFITS, USE OF PRODUCTS,
OR INCIDENTAL OR CONSEQUENTIAL DAMAGES, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. This limitation of the liability of National
Instruments will apply regardless of the form of action, whether in contract or tort, including negligence. Any action against National Instruments must be brought
within one year after the cause of action accrues. National Instruments shall not be liable for any delay in performance due to causes beyond its reasonable control. The
warranty provided herein does not cover damages, defects, malfunctions, or service failures caused by owners failure to follow the National Instruments installation,
operation, or maintenance instructions; owners modification of the product; owners abuse, misuse, or negligent acts; and power failure or surges, fire, flood, accident,
actions of third parties, or other events outside reasonable control.

Copyright
Under the copyright laws, this publication may not be reproduced or transmitted in any form, electronic or mechanical, including photocopying, recording, storing in an
information retrieval system, or translating, in whole or in part, without the prior written consent of National Instruments Corporation. National Instruments respects the
intellectual property of others, and we ask our users to do the same. NI software is protected by copyright and other intellectual property laws. Where NI software may be
used to reproduce software or other materials belonging to others, you may use NI software only to reproduce materials that you may reproduce in accordance with the terms
of any applicable license or other legal restriction. BSIM3 and BSIM4 are developed by the Device Research Group of the Department of Electrical Engineering and Computer
Science, University of California, Berkeley, and copyrighted by the University of California.

Trademarks
CompactDAQ, CompactRIO, LabVIEW, National Instruments, and NI, ni.com are trademarks of National Instruments Corporation. Refer to the Terms of Use section on
ni.com/legal for more information about National Instruments trademarks. Other product and company names mentioned herein are trademarks or trade names of their
respective companies.

Patents
For patents covering National Instruments products, refer to ni.com/patents.
Some portions of this product are protected under United States Patent No. 6,560,572.

WARNING REGARDING USE OF NATIONAL INSTRUMENTS PRODUCTS


(1) NATIONAL INSTRUMENTS PRODUCTS ARE NOT DESIGNED WITH COMPONENTS AND TESTING FOR A LEVEL OF RELIABILITY SUITABLE
FOR USE IN OR IN CONNECTION WITH SURGICAL IMPLANTS OR AS CRITICAL COMPONENTS IN ANY LIFE SUPPORT SYSTEMS WHOSE
FAILURE TO PERFORM CAN REASONABLY BE EXPECTED TO CAUSE SIGNIFICANT INJURY TO A HUMAN.
(2) IN ANY APPLICATION, INCLUDING THE ABOVE, RELIABILITY OF OPERATION OF THE SOFTWARE PRODUCTS CAN BE IMPAIRED BY
ADVERSE FACTORS, INCLUDING BUT NOT LIMITED TO FLUCTUATIONS IN ELECTRICAL POWER SUPPLY, COMPUTER HARDWARE
MALFUNCTIONS, COMPUTER OPERATING SYSTEM SOFTWARE FITNESS, FITNESS OF COMPILERS AND DEVELOPMENT SOFTWARE USED TO
DEVELOP AN APPLICATION, INSTALLATION ERRORS, SOFTWARE AND HARDWARE COMPATIBILITY PROBLEMS, MALFUNCTIONS OR
FAILURES OF ELECTRONIC MONITORING OR CONTROL DEVICES, TRANSIENT FAILURES OF ELECTRONIC SYSTEMS (HARDWARE AND/OR
SOFTWARE), UNANTICIPATED USES OR MISUSES, OR ERRORS ON THE PART OF THE USER OR APPLICATIONS DESIGNER (ADVERSE FACTORS
SUCH AS THESE ARE HEREAFTER COLLECTIVELY TERMED SYSTEM FAILURES). ANY APPLICATION WHERE A SYSTEM FAILURE WOULD
CREATE A RISK OF HARM TO PROPERTY OR PERSONS (INCLUDING THE RISK OF BODILY INJURY AND DEATH) SHOULD NOT BE RELIANT
SOLELY UPON ONE FORM OF ELECTRONIC SYSTEM DUE TO THE RISK OF SYSTEM FAILURE. TO AVOID DAMAGE, INJURY, OR DEATH, THE
USER OR APPLICATION DESIGNER MUST TAKE REASONABLY PRUDENT STEPS TO PROTECT AGAINST SYSTEM FAILURES, INCLUDING BUT
NOT LIMITED TO BACK-UP OR SHUT DOWN MECHANISMS. BECAUSE EACH END-USER SYSTEM IS CUSTOMIZED AND DIFFERS FROM
NATIONAL INSTRUMENTS' TESTING PLATFORMS AND BECAUSE A USER OR APPLICATION DESIGNER MAY USE NATIONAL INSTRUMENTS
PRODUCTS IN COMBINATION WITH OTHER PRODUCTS IN A MANNER NOT EVALUATED OR CONTEMPLATED BY NATIONAL INSTRUMENTS,
THE USER OR APPLICATION DESIGNER IS ULTIMATELY RESPONSIBLE FOR VERIFYING AND VALIDATING THE SUITABILITY OF NATIONAL
INSTRUMENTS PRODUCTS WHENEVER NATIONAL INSTRUMENTS PRODUCTS ARE INCORPORATED IN A SYSTEM OR APPLICATION,
INCLUDING, WITHOUT LIMITATION, THE APPROPRIATE DESIGN, PROCESS AND SAFETY LEVEL OF SUCH SYSTEM OR APPLICATION.

Contenido
Convenciones del Manual ................................................................................................................... 1
Requerimientos .................................................................................................................................... 2
Ejercicio 1. Fundamentos del Entorno de LabVIEW .......................................................................... 3
Ejercicio 2. Estructuras de Ejecucin: Ciclos While, For y Estructura de Casos ............................. 12
Ejercicio 3. Clusters de Error y su Implementacin ......................................................................... 22
Ejercicio 4. Plantillas y Proyectos de Ejemplo .................................................................................. 26
Ejercicio 5. Generacin de Reportes ................................................................................................. 35
Ejercicio 6. Su Primer Maquina de Estados ...................................................................................... 40
Ejercicio 7. Programacin Basada en Eventos ................................................................................. 52
Ejercicio 8. Cmo Reutilizar Cdigo .m en LabVIEW?.................................................................... 54

Convenciones del Manual


Las siguientes convenciones aparecen en este manual:
El smbolo lo conduce a travs de tems de mens anidados y opciones de cajas de dialogo
hacia una accin final. La secuencia File Page Setup Options le indica seleccionar el men
desplegable File, seleccionar el tem Page Setup y seleccionar Options desde la ltima caja de
dialogo.

Este cono denota una advertencia, la cual le alerta sobre informacin de consejo.

Este cono denota una nota, la cual le alerta sobre informacin importante.

Este cono denota prevencin, la cual le advierte sobre precauciones a tomar con el fin de evitar
lesiones, perdidas de datos o una cada del sistema.

Texto en negrita denota tems que usted debe seleccionar o hacer Clic en el software, tales
como tems de mens u opciones de cajas de dialogo. El texto en negrita tambin denota
nombres de parmetros, controles y botones en el panel frontal, cajas de dialogo, secciones de
cajas de dialogo, nombres de men y nombres de paletas.

Texto en itlica denota variables, nfasis, una referencia cruzada o una introduccin a un
concepto clave. El texto en itlica tambin denota texto que se ubica ara una palabra o valor
que usted debe suministrar.

mexico.ni.com/academia

Pgina | 1

Requerimientos
Requerimientos de Software

Antes de comenzar con este manual de ejercicios, asegrese de contar con el siguiente software:
LabVIEW Development System
Modulo LabVIEW MathScript RT
Modulo Report Generation Toolkit
Controlador DAQmx

mexico.ni.com/academia

Pgina | 2

Ejercicio 1. Fundamentos del Entorno de LabVIEW


Introduccin
Qu es LabVIEW?
NI LabVIEW es una plataforma de programacin grfica que ayuda a ingenieros a escalar desde
el diseo hasta pruebas y desde sistemas pequeos hasta grandes sistemas. Ofrece
integracin sin precedentes con software legado existente, IP y hardware al aprovechar las
ltimas tecnologas de cmputo. LabVIEW ofrece herramientas para resolver los problemas de
hoy en da y la capacidad para la futura innovacin, ms rpido y de manera ms eficiente.

Objetivo
En este ejercicio conocer los conceptos bsicos del entorno de LabVIEW y pondr en prctica su
primer ejercicio en el ambiente grfico de programacin.

Desarrollo
1. Abra LabVIEW. Desde el men Inicio Todos los Programas National Instruments NI
LabVIEW.

Figura 1 Ventana Getting Started de NI LabVIEW

2. Abra un VI en blanco. De clic en la opcin Blank VI. Observe el Panel Frontal y el Diagrama de
Bloques.

Panel Frontal
Cuando abre un VI nuevo o existente, aparece la ventana del panel frontal del VI. La ventana del
panel frontal es la interfaz de usuario para el VI.

mexico.ni.com/academia

Pgina | 3

Diagrama de Bloques
Despus de que crea la ventana del panel frontal, aade cdigo usando representaciones
grficas de funciones para controlar los objetos del panel frontal. La ventana del diagrama de
bloques contiene este cdigo fuente grfico.
Los objetos del diagrama de bloques incluyen terminales, subVIs, funciones, constantes,
estructuras y cables, los cuales transfieren datos junto con otros objetos del diagrama de
bloques.
3. Cambie la vista al Panel Frontal.
NOTA: Puede cambiar entre ambas ventanas seleccionando Window Show Block Diagram
o Window Show Front Panel. Tambin puede hacerlo presionando < Ctrl- E> desde el
teclado o haciendo clic en las ventanas si ambas son visibles en la pantalla.

Figura 2 Panel Frontal y Diagrama de Bloques

4. Acceda a la paleta de Controles. De clic derecho sobre cualquier espacio del Panel Frontal.
Presione el pin para dejar habilitada la paleta.

Paleta de Controles
La Paleta de Controles contiene los controles e indicadores que utiliza para crear el panel
frontal. Puede tener acceso a la paleta de Controles de la ventana del panel frontal al
seleccionar View Controls Palette o al dar clic con botn derecho en cualquier espacio en
blanco en la ventana del panel frontal. La paleta de Controles est dividida en varias categoras;
puede exponer algunas o todas estas categoras para cumplir con sus necesidades.

mexico.ni.com/academia

Pgina | 4

Figura 3 Paleta de Controles

5. Coloque un indicador y un control booleano. Se sugiere utilizar elementos de la seccin silver,


ya que estos son elementos apegados a la apariencia de sistemas operativos actuales. Dirijase
a Silver Boolean. Seleccione cada elemento y arrstrelo hacia el panel frontal.

De clic izquierdo sobre el elemento y sin


soltarlo, arrstrelo hacia el panel frontal.

Figura 4 Seleccin de Controles e Indicadores

mexico.ni.com/academia

Pgina | 5

Figura 5 Vista del Panel Frontal con los dos elementos

Controles e Indicadores
Cada VI tiene un panel frontal que usted puede disear como una interfaz de usuario. Usted
tambin puede usar paneles frontales como una manera para pasar entradas y recibir salidas
cuando llama al VI desde otro diagrama de bloques. Usted crea la interfaz de usuario de un VI al
colocar controles e indicadores en el panel frontal de un VI. Cuando usted interacta con un
panel frontal como una interfaz de usuario, puede modificar controles para alimentar entradas y
ver los resultados en indicadores. Los controles definen las entradas y los indicadores muestran
las salidas.
Los controles generalmente son perillas, botones y barras deslizantes. Los controles simulan
dispositivos de entrada de instrumentos y suministran datos al diagrama de bloques del VI. Los
indicadores generalmente son grficas, tablas, LEDs y secuencias de estado. Los indicadores
simulan dispositivos de salida de instrumentos y muestran los datos que el diagrama de
bloques adquiere o genera.
6. Cambie la vista al diagrama de bloques. Identifique que los elementos que coloco en el panel
frontal, tienen sus respectivos elementos en el diagrama de bloques.

Figura 6 Vista del Panel Frontal y el Diagrama de Bloques

mexico.ni.com/academia

Pgina | 6

7. Seleccione con el mouse el elemento Boolean 2, presione en su teclado la tecla CTRL y sin
soltarla, arrastre el elemento hacia abajo. Esto permitir crear un duplicado de este indicador.
Este tipo de funcin le permitir copiar desde elementos individuales hasta cdigo. Suelte el
elemento y observe como se llevo a cabo la copia en el Diagrama de Bloques y su respectivo
en el panel frontal. Haga lo mismo para el elemento Boolean.
8. En el Panel Frontal de doble clic sobre la etiqueta de cada uno de los elementos, renombre los
switches por control 1 y control 2, as como los indicadores boleanos por indicador 1 e
indicador 2 respectivamente.

Figura 7 Vista del Panel Frontal y Diagrama de Bloques

9. Abra la paleta de funciones. De clic derecho sobre cualquier espacio en blanco del diagrama de
bloques y esta paleta aparecer. Al igual que con la paleta de controles, puede dar clic sobre el
pin para dejarla con visibilidad esttica.

Paleta de Funciones
La paleta de Funciones contiene los VIs, funciones y constantes que usted utiliza para crear el
diagrama de bloques. Usted tiene acceso a la paleta de Funciones del diagrama de bloques al
seleccionar View Functions Palette. La paleta de Funciones est dividida en varias
categoras; usted puede mostrar y esconder categoras para cumplir con sus necesidades.
10. Dentro de la paleta de funciones, presione la opcin Search y busque la funcin booleana Not
(presione enter para continuar con la bsqueda). De los resultados, de un clic sobre el elemento
que le interesa y arrastre en medio de los elementos del Control e Indicador 1.

mexico.ni.com/academia

Pgina | 7

Arrastre el elemento de la
paleta de bsqueda hacia el
diagrama de bloques

Figura 8 Arrastre el elemento del search palette al diagrama de bloques

Bsqueda de Controles, VIs y Funciones


La ventana de Search Palettes le permitir ubicar fcilmente los elementos que no encuentre
en el ambiente de programacin de NI LabVIEW. Para acceder a esta cambie desde la Paleta
de Funciones o la Paleta de Controles a modo de bsqueda. Esta ventana le permitir realizar
bsquedas basadas en texto para ubicar los controles, VIs o funciones en las paletas.
11. Cierre la ventana search palette.
12. Desde el diagrama de bloques, dirjase al men Edit Quick Drop. Busque la funcin AND, de
doble clic sobre el resultado de la bsqueda y colquela dentro del Control 2 e Indicador 2.

Figura 9 Ventana Quick Drop

QuickDrop
En esta palete puede encontrar y colocar Vis, y objetos del panel frontal por nombre en la
ventana de dilogo Quick Drop. Para iniciar Quick Drop, presione las teclas <Ctrl-Space>.
Quick Drop es especialmente til al buscar una operacin o funcin muy especfica. Cuando
escribe, Quick Drop automticamente completa el nombre de las funciones que coinciden.
Despus de que usted identifica la funcin apropiada, haga clic en el diagrama de bloques o
panel frontal para colocar el objeto en esa ubicacin.
mexico.ni.com/academia

Pgina | 8

13. Desde el Diagrama de Bloques dirjase al men Help Show Context Help.
14. Dentro del Diagrama de Bloques de clic sobre cualquier funcin la Not o la And y observe
dentro de la ventana Context Help la descripcin de cada elemento, incluyendo el tipo de
elementos que puede conectar.

Figura 10 Ventana de Context Help

Ventana Context Help


La ventana de Context Help muestra informacin bsica sobre objetos de LabVIEW cuando
mueve el cursor sobre cada objeto. Para activar la visualizacin de la ventana de Context Help
seleccione Help Show Context Help, presione las techas <Ctrl-H> o haga clic en el botn de
Show Context Help Window en la barra de herramientas.
Cuando mueve el cursor sobre el panel frontal y objetos del diagrama de bloques, la ventana
Context Help muestra el cono para subVIs, funciones, constantes, controles e indicadores con
cables sujetos a cada terminal. Cuando mueve el cursor sobre las opciones de ventana de
dilogo, la ventana Context Help muestra descripciones de esas opciones.
15. Desde el Diagrama de Bloques ingrese a la Ayuda de LabVIEW. De clic en el men Help
LabVIEW Help. Cambie la vista a la pestaa Index y busque la funcin AND. En la ventana
derecha observar los resultados de su bsqueda.

Ayuda de LabVIEW
La Ayuda de LabVIEW es el mejor recurso para informacin detallada sobre caractersticas y
funciones especficas en LabVIEW. Cada tema es desglosado en una seccin de Conceptos
con descripciones detalladas y una seccin Cmo Realizar con instrucciones paso a paso para
usar las caractersticas de LabVIEW.

mexico.ni.com/academia

Pgina | 9

Figura 11 Ventana de Ayuda de LabVIEW

Despus de instalar un complemento de LabVIEW como una librera de herramientas, mdulo o


controlador, la documentacin para ese complemento aparece en la Ayuda de LabVIEW o
aparece en un sistema de ayuda separado al que tiene acceso al seleccionar Help Add-On
Help, donde Add-On Help es el nombre del sistema de ayuda para el complemento.
16. Regrese al diagrama de bloques, cablee como se ve en la siguiente figura

Figura 12 Cableado

17. Cambie la vista al panel frontal, presione el botn Run


aplicacin.

para compilar su cdigo y ejecutar la

18. Intercambie los valores del Control 1 y Control 2, observe los resultados reflejados en el
Indicador 1 y 2.

mexico.ni.com/academia

Pgina | 10

Figura 13 Vistas de la Ejecucin

19. Guarde el ejercicio como Ejercicio 1. Vaya al menu File Save.


FIN DEL EJERCICIO

mexico.ni.com/academia

Pgina | 11

Ejercicio 2. Estructuras de Ejecucin: Ciclos While,


For y Estructura de Casos
Introduccin
Estas contienen secciones de cdigo grfico y controlan cmo y dnde el cdigo dentro se ejecuta.
Estas estructuras son las ms comunes y las puede usar para ejecutar la misma seccin del cdigo
varias veces o para ejecutar una seccin diferente del cdigo basada en alguna condicin.

Objetivo
En este ejercicio conocer las estructuras de ejecucin: While, For y Case. Experimentar con cada
una y al final del ejercicio podr identificar sus diferencias.

Desarrollo
1. Abra un VI en blanco.
2. Agregue un ciclo While al diagrama de bloques. De clic derecho en cualquier rea libre dentro
del diagrama de bloques para acceder a la paleta de funciones (Functions Palette), y navegue
hacia Programming Structures While Loop. De clic sobre While Loop y se colocar
automticamente en su cursor.

Figura 14 Colocando un ciclo While desde la paleta de funciones

3. De clic y arrastre el puntero diagonalmente hasta formar una estructura While del rea que
desee. Puede cambiar el tamao de la estructura arrastrando cualquiera de las cajas para
redimensionar que aparecen cada vez que haga clic sobre los bordes de la estructura.

Ciclo While
Similar a un Ciclo Do o a un Ciclo Repeat-Until en lenguajes de programacin basados en
texto, un Ciclo While ejecuta el cdigo que contiene hasta que ocurre una condicin. El Ciclo
While est ubicado en la paleta Structures. El Ciclo While ejecuta el cdigo que contiene hasta
la terminal condicional, una terminal de entrada, recibe un valor Booleano especfico.
mexico.ni.com/academia

Pgina | 12

La estructura While tiene dos terminales en las esquinas inferiores izquierda y derecha. La
terminal ms importante de esta estructura es la condicin
. Esta terminal condicional se
encuentra en la esquina inferior derecha. Debido a que la estructura While se ejecutar hasta
que le indiquen lo contrario, debemos proveer algn tipo de comando de paro tal que el ciclo no
se ejecute indefinidamente. La otra terminal en la estructura While, el contador de iteraciones
, nos proporciona el nmero de veces que el ciclo While se ha ejecutado.

Figura 15 Terminales de la estructura While

4. Coloque un Numeric Control en el panel frontal. Cambie la vista al panel frontal y desde la
paleta de Controles Silver Numeric Numeric Control. Cambie el nombre de este
control numrico por X.
5. Coloque un control booleano en el panel frontal. Desde la paleta de Controles Silver
Boolean Push Button. Cambie el nombre de este control booleano por Enable.

Figura 16 Vista de los elementos del Panel Frontal

6. Cambie la vista al Diagrama de Bloques. Asegrese de que los dos elementos estn dentro del
ciclo While.
7. Coloque una constante numrica dentro del ciclo While. Esta se localiza en la paleta de
Funciones Programming Numeric Numeric Constant.
8. Cambie el tipo de dato de la constante numrica, dando clic derecho sobre el elemento en el
diagrama de bloques. Del men desplegable seleccione Representation Double Precision.
9. Ingrese el valor de 10 en la constante numrica.
10. Coloque una funcin Greater or Equal dentro del ciclo While. Esta se localiza en la paleta de
Funciones Programming Comparison Greater or Equal.

mexico.ni.com/academia

Pgina | 13

11. Cablee el control X hacia la terminal x de la funcin Greater or Equal. Haga lo mismo de la
constante numrica hacia la terminal Y de la funcin.
12. Coloque una funcin AND desde la paleta de Funciones Programming Boolean AND.
13. Cablee la terminal x>=y? de la funcin Greater or Equal hacia la terminal de entrada X de la
funcin booleana AND.
14. Colquese sobre la terminal Y de la funcin booleana AND, de clic derecho y del men
desplegable seleccione Create Control. Cambie el nombre de este control por Enable.
15. Cablee la terminal de salida de la funcin booleana a la terminal Loop Condition del ciclo
While.

Figura 17 Vista de la conexin del Diagrama de Bloques

16. Cambie la vista al Panel Frontal.


17. Guarde el VI como Ejercicio2_CicloWhile.vi
18. Ejecute el VI.

Figura 18 Ejecucin del VI

19. Interacte con el control X hasta superar el valor de la constante (en este caso se configuro con
valor de 10) y que el control booleano este habilitado se detendr la ejecucin del programa.
20. Guarde el VI como Ejercicio2_CicloWhile.vi
mexico.ni.com/academia

Pgina | 14

Ciclo For
Un Ciclo For ejecuta un subdiagrama un nmero de veces establecido. El Ciclo For est
ubicado en la paleta Structures.
La terminal de conteo es una terminal de entrada cuyos valores indican cuantas veces se
repite el subdiagrama.
La terminal de iteracin es una terminal de salida que contiene el nmero de iteraciones
terminadas.
La cantidad de iteraciones para el Ciclo For siempre comienza en cero.
El Ciclo For difiere del Ciclo While en que el Ciclo For ejecuta un nmero de veces establecido.
Un Ciclo While detiene la ejecucin solamente si existe el valor en la terminal condicional.
1. Abra un nuevo VI en blanco.
2. Cambie la vista al Diagrama de Bloques.
3. Inserte una esctructura For Loop. Este VI lo puede localizar desde la paleta de Functions
Programming Structures For Loop

Figura 19 Estructura del ciclo For Loop

4. Seleccione el VI en la paleta de Functions, y arrastre su mouse sobre el Diagrama de Bloques.

Figura 20 For Loop en el Diagrama de Bloques

5. Cree un constante para la terminal N del ciclo For Loop. Coloque su mouse sobre la terminal,
de clic derecho con el mouse. Del men desplegable seleccione Create Constant. Cambie su
valor a 10.

mexico.ni.com/academia

Pgina | 15

6. Coloque un VI Random Number dentro de la estructura For Loop. Este lo puede encontrar en la
paleta de Functions Programming Numeric Random Number.

Figura 21 FuncinRandom Number en la paleta de Functions

Figura 22 Vista del Diagrama de Bloques

7. Cablee la terminal number (0 to 1) hacia el borde de la estructura For Loop


8. Cambie la vista al Panel Frontal.

9. Coloque un Waveform Graph. Este indicador lo puede localizar en la paleta de Controls


Silver Graph Waveform Graph

Figura 23 Ubicacin del Waveform Graph en la paleta de Controls

mexico.ni.com/academia

Pgina | 16

10. Regrese la vista al Diagrama de Bloques


11. Conecte la terminal como se muestra en la siguiente imagen

Figura 24 Vista del Diagrama de Bloques

12. Guarde el ejercicio como Ejercicio2_CicloFor.vi


13. Active la opcin Highlight Execution.

La opcin Highlight Execution se utiliza para ver de forma animada la ejecucin del diagrama
de bloques. Esta muestra el movimiento de los datos en el diagrama de bloques de un nodo a
otro a travs del cableado

Figura 25 Highlight Execution

14. Ejecute el VI. Presione el botn de Run

15. Observe en el Diagrama de Bloques como se van generando los datos de forma aleatoria.

Figura 26 Vista de la ejecucin en el Diagrama de Bloques

16. Observe el resultado en el Panel Frontal.

mexico.ni.com/academia

Pgina | 17

Figura 27 Resultados

Estructura de casos
Una estructura de Casos tiene dos o ms subdiagramas o casos. Solamente un subdiagrama es
visible a la vez y la estructura ejecuta solamente un caso a la vez. Un valor de entrada
determina cual subdiagrama se ejecuta. La estructura de Caso es similar a las instrucciones del
interruptor o las instrucciones si...despus... en lenguajes de programacin basados en texto.

Figura 28 Etiqueta del Selector de Casos

La etiqueta del selector de caso en la parte superior de la estructura de Caso contiene el


nombre del valor del selector que corresponde al caso en el centro y a las flechas de
incremento y reduccin a cada lado.

Figura 29 Valor de Entrada

Debe cablear un entero, valor Booleano, secuencia o valor de tipo enumerado a la terminal del
selector. Puede colocar la terminal del selector en cualquier parte del borde izquierdo de la
estructura de Casos. Si el tipo de datos de la terminal del selector es Booleano, la estructura
tiene un caso True o un caso False. Si la terminal del selector es un entero, secuencia o valor
de tipo enumerado, la estructura tiene cualquier nmero de casos.

1. Abra un VI en blanco.
2. Cambie la vista al Diagrama de Bloques.
3. Coloque una estructura de casos. Desde la paleta de Funciones Programming Structures
Case Structure

mexico.ni.com/academia

Pgina | 18

Figura 30 Vista de la Estructura de Casos en el Diagrama de Bloques

Figura 31 Vista de la Estructura de Casos en el Diagrama de Bloques

4. Cambie la vista al Panel Frontal.


5. Coloque un botn booleano. Desde la paleta de Controles Silver Boolean Push
Button.

Figura 32 Vista de la seleccin

6. Regrese la vista al Diagrama de Bloques.


7. Cablee la terminal del control booleano al selector de caso de la estructura de casos.

Figura 33 Vista del Diagrama de Bloques

8. Coloque dentro de la estructura de casos para el valor True una constante numrica con un
valor de 1. La constante numrica la puede obtener desde la paleta de Funciones
Programming Numeric Numeric Constant.
mexico.ni.com/academia

Pgina | 19

Figura 34 Seleccin de constante numrica

9. Cablee la constante al borde de la estructura case.

Figura 35 Vista del Diagrama de Bloques

10. Coloque dentro de la estructura de casos para el valor False una constante numrica con un
valor de 0.
11. Cablee la constante al borde de la estructura case.
12. Pose el mouse sobre la terminar que se encuentra en el borde de la estructura case. De clic
derecho y del men desplegable seleccione Create Indicator

Figura 36 Creacin de indicador

13. Cambie la vista al Panel Frontal


14. Guarde el ejercicio como Ejercicio2_Casos.vi

mexico.ni.com/academia

Pgina | 20

15. Ejecute el VI y observe el valor del indicador numrico del Panel Frontal cuando el botn se
encuentra habilitado o deshabilitado.

Figura 37 Respuesta cuando el control esta deshabilitado

Figura 38 Respuesta cuando el control esta habilitado

FIN DEL EJERCICIO

mexico.ni.com/academia

Pgina | 21

Ejercicio 3. Clusters de Error y su Implementacin


Introduccin
Clusters
Los clusters agrupan elementos de datos de diferentes tipos. Un ejemplo de un cluster es el
cluster de error de LabVIEW, el cual combina un valor Booleano, un valor numrico y uno de
cadena de caracteres. Un cluster es similar a un registro o a una estructura en lenguajes de
programacin basados en texto.
Construir varios elementos de datos en clusters elimina el desorden de cables en el diagrama
de bloques y reduce el nmero de terminales del panel conector que los subVIs necesitan. El
panel conector tiene, a lo ms, 28 terminales. Si su panel frontal contiene ms de 28 controles
e indicadores que quiera pasar a otro VI, agrupe algunos de ellos en un cluster y asigne el
cluster a una terminal en el panel conector.
La mayora de los clusters en el diagrama de bloques tienen un patrn de cable rosa y terminal
de tipos de datos. Los clusters de error tienen un patrn de cable amarillo obscuro y terminal
de tipo de datos. Los clusters de valores numricos, algunas veces conocidos como puntos,
tienen un patrn de cable caf y terminal de tipo de datos. Puede cablear clusters numricos
cafs a funciones Numricas, como Suma o Raz Cuadrada, para realizar la misma operacin
simultneamente en todos los elementos del cluster.

Figura 39 Ejemplo de construccin de un cluster

Objetivo
En este ejercicio conocer como crear un cluster y como debe implementarlo en sus aplicaicones.

Desarrollo
1. Abra un VI en blanco.
2. Abra el Panel Frontal.
3. Coloque un Control Numrico en el Panel Frontal. El Control Numrico se encuentra en la
paleta de Controles Silver Numeric Numeric Control
mexico.ni.com/academia

Pgina | 22

4. Coloque un Indicador Numrico en el Panel Frontal. El Control Numrico se encuentra en la


paleta de Controles Silver Numeric Numeric Indicator
5. Coloque un Error In 3D.ctl en el Panel Frontal. El Error In.ctl se encuentra en la paleta de paleta
de Controles Silver Array, Matrix & Cluster Error In.ctl
6. Coloque un Error Out 3D.ctl en el Panel Frontal. El Error Out.ctl se encuentra en la paleta de
Controles Silver Array, Matrix & Cluster Error Out.ct
7. Cambiar la vista al Diagrama de Bloques.
8. Coloque una estructura Case en el Diagrama de Bloques. Se localiza en la paleta de Functions
Structures Case Structure.
9. Coloque una Greater or Equal to 0? de la paleta Functions Comparision Greater or
Equal to 0?
10. Cablee y acomode sus elementos como se muestra en la siguiente figura.

Figura 40 Vista del Diagrama de Bloques

11. En el Caso Verdadero (True Case) coloque una funcin Square Root de la paleta Functions
Programming Numeric Square Root y cablee como se muestra a continuacin.

Figura 41 Vista del Diagrama de Bloques

12. En el Caso Falso (False Case): Coloque una Constante Numrica. Se localiza en la paleta de
Functions Programming Numeric Numeric Constant y asigne el valor de -9999.90.
13. Coloque una funcion Bundle By Name. Se localiza en la paleta de Functions Programming
Cluster, Class & Variant Bundle By Name.
mexico.ni.com/academia

Pgina | 23

14. Conecte desde Error in hacia la terminal Input Cluster de Bundle by Name para hacer que el
status se muestre.
15. Cablee desde el indicador del Error Out hacia la salida Output cluster del Bundle By name.
16. Redimensione el Bundle By Name para mostrar tres elementos (Status, Code y Source) y cree
constantes para estos. Para crear la constante coloquese en la terminal de entrada y de clic
derecho con el mouse y seleccione Create Constant. Para Status debera ser True, para Code, la
constante sera 5008 y para source el nombre del VI.
17. Cablee como se muestra en la siguiente figura.

Figura 42 Vista del Diagrama de Bloques

16. Cambie la vista al Panel Frontal


17. Corra el programa con el valor del control numrico en 0, 1 y -1 y observe lo que sucede.

Figura 43 Vista del Panel Frontal

mexico.ni.com/academia

Pgina | 24

Figura 44 Vista del Panel Frontal

18. Como se pudo observar, podemos manipular los mensajes cuando aparece determinado error,
y usar este comportamiento en base a nuestras necesidades. As mismo por el cable de error
podemos forzar el comportamiento de nuestro programa.
FIN DEL EJERCICIO

mexico.ni.com/academia

Pgina | 25

Ejercicio 4. Plantillas y Proyectos de Ejemplo


Introduccin
Qu es la Simulacin de Instrumentos en Measurement and Automation Explorer?
NI-DAQmx no slo proporciona a los desarrolladores de sistemas DAQ un controlador o driver de alto
rendimiento, sino que tambin incluye muchos servicios de medicin diseados para aumentar la
productividad. Uno de los servicios de medicin aadido a NI-DAQmx es la posibilidad de simular
instrumentos NI-DAQmx. La simulacin de un dispositivo de este tipo es una rplica de un dispositivo
creado en el men MAX con el fin de operar una funcin o un programa sin hardware. Un dispositivo
NI-DAQmx simulado se comporta de manera similar a un dispositivo real.

Nuevas Plantillas y Proyectos de Ejemplo en NI LabVIEW


NI LabVIEW presenta las nuevas plantillas y proyectos de ejemplo que proveen puntos de inicio
recomendados diseados para asegurar la calidad y escalabilidad de un sistema. Todas las plantillas y
proyectos son de cdigo abierto e incluyen una amplia documentacin, diseada para indicar
claramente cmo funciona el cdigo y las mejores prcticas para agregar o modificar funcionalidad.
Adems de demostrar arquitecturas recomendadas, estos proyectos ejemplifican las mejores prcticas
para documentar y organizar cdigo.
Plantillas
Las plantillas demuestran los cimientos fundamentales para construir la mayora de las
aplicaciones de LabVIEW. Con frecuencia se utilizan una o ms plantillas en el diseo de
sistemas del mundo real. Estas plantillas brindan arquitecturas comunes que aprovechan
patrones de diseo probados que se pueden modificar para crear un sistema.
Proyectos de Ejemplo para Escritorio
Los proyectos de ejemplo para escritorio ejemplifican el uso de una o ms plantillas en una
aplicacin. Estos proyectos cumplen con los requerimientos ms comunes para aplicaciones de
mediciones basadas en equipos de escritorio, incluyendo interfaces de usuario responsivas,
anlisis asncrono, registro de datos, dilogos de usuario, manejo de error y mltiples tareas
independientes.

Objetivo
En este ejercicio conocer como simular una tarjeta de adquisicin de datos y posteriormente
implementar un proyecto de ejemplo para configurar una aplicacin ya construida.

Desarrollo
Complete el siguiente procedimiento para crear su instrumento simulado:
1. Abra Measurement & Automation Explorer (MAX). Desde el menu Start All Programs
National Instruments Measurement & Automation Explorer (MAX).

mexico.ni.com/academia

Pgina | 26

Figura 45 Ventana inicio de MAX

2. Vaya a la seccin My System Devices and Interfaces. De clic derecho sobre la opcin
Devices and Interfaces y seleccione la opcin Create New

Figura 46 Seleccin de Create New

3. Aparecer la ventana Create New. Seleccionar la opcin Simulated NI-DAQmx Device or


Modular Instrument y presionar Finish para continuar.

Figura 47 Seleccin de Simulated NI-DAQmx Device

4. De la siguiente ventana seleccione el instrumento. Seleccione CompactDAQ Chassis NI


cDAQ-9174, presione OK para continuar.

mexico.ni.com/academia

Pgina | 27

Figura 48 Seleccin de Chasis NI cDAQ-9174

5. Para configurar los mdulos simulados del chasis, de clic derecho sobre el elemento y
seleccione Configure Simulated cDAQ Chassis.

Figura 49 Seleccin de Configure Simulated cDAQ Chassis

6. De la ventana de configuracin, seleccione el mdulo NI 9234 para el slot 1.

Figura 50 Seleccin de mdulo NI 9234

mexico.ni.com/academia

Pgina | 28

7. Presione OK para continuar.


8. Con esto concluye la configuracin de un instrumento en MAX.

Figura 51 Vista del instrumento simulado en MAX

Configuracin de Proyecto de Ejemplo para Escritorio


Complete el siguiente procedimiento para configurar un Proyecto de Ejemplo para Escritorio utilizando
el instrumento simulado en la seccin anterior:
1. Si no ha abierto NI LabVIEW, puede abrirlo desde Start All Programs National
Instruments NI LabVIEW.
2. Identifique la ventana Getting Started Window. En caso de que tenga abierto un VI o un
proyecto, dirjase a View Getting Started Window

Figura 52 Getting Started Window de LabVIEW

3. De clic en la opcin Create Project.


4. Aparecer la ventana de configuracin Create Project. En la seccin del lado izquierdo, de un
clic sobre la opcin Sample Projects Desktop. En esta seccin seleccione la opcin Finite
Measurement (NI-DAQmx). Presione Next para continuar.
mexico.ni.com/academia

Pgina | 29

Figura 53 Ventana Create Project

5. En la siguiente ventana deber configurar los elementos de su nuevo proyecto: Nombre del
proyecto, ubicacin de los archivos donde se guardarn en el disco, prefijo para el cono e
inclusive configurar un cono personalizado para el VI principal (main). Para este caso se
eligieron los siguientes datos:
Project Name: Proyecto1
Project Root: C:\ Proyecto1
File Name Prefix: Proy1
Una vez que configure los datos, presione Finish para continuar.

mexico.ni.com/academia

Pgina | 30

Figura 54 Configuracin del proyecto

6. LabVIEW automticamente configurar los elementos de este proyecto. Aparecer la nueva


ventana del proyecto con dichos elementos.

Figura 55 Vista del proyecto

7. Abra el VI Pro1Main, el cul es el VI principal de la ramificacin de los elementos. Este VI


cuenta con elementos configurados tanto en el panel frontal, como en el cdigo. En este caso
la configuracin del canal se har desde el panel frontal en ejecucin.

mexico.ni.com/academia

Pgina | 31

Figura 56 Vista del VI Proy1Main

8. Ejecute el VI. De clic en la opcin Run para ejecutar.

Figura 57 Vista VI en ejecucin

9. Con el VI en ejecucin, de clic en la opcin Settings. Se abrir una ventana de configuracin del
canal y el modo de adquisicin.
10. Configure los parmetros del siguiente modo:
Physical Channel: cDAQ1Mod1/ai0
Maximun Input: 5
Minimum Input: -5
Sample Rate: 10000
Number of Samples: 1000
New Data Behavior: Replace
NOTA: Asegurarse que el compactdaq ha sido nombrado cDAQ1 en MAX.
Presione OK para continuar.

mexico.ni.com/academia

Pgina | 32

Figura 58 Configuracin de los parmetros

11. Presione la opcin Acquire para empezar a monitorear la adquisicin del canal previamente
configurado. Observe como se muestra la adquisicin de datos de una muestra finita.

Figura 59 Monitoreo de la seal

12. Para guardar esta adquisicin puede dar clic en la opcin Save.
13. Para obtener el promedio de la adquisicin de clic en la opcin Analyze.
14. Para copiar la grfica a una imagen, de clic en la opcin Copy Graph.
15. Para limpiar la grfica puede dar clic en la opcin Clear.
16. Para detener la adquisicin de clic en el botn Exit.
Como pudo observar, de esta forma es mucho ms fcil hacer adquisicin de datos y ahorrar
tiempo en la generacin de la programacin para este proceso. Usted puede personalizar esta
interfaz en la misma ramificacin del proyecto, dentro de la carpeta de los SubVIs.

mexico.ni.com/academia

Pgina | 33

Figura 60 Vista de los SubVIs

FIN DEL EJERCICIO

mexico.ni.com/academia

Pgina | 34

Ejercicio 5. Generacin de Reportes


Introduccin
NI LabVIEW Report Generation Toolkit
El NI LabVIEW Report Generation Toolkit para Microsoft Office es una biblioteca de VIs
flexibles y fciles de usar para crear y editar de manera programtica reportes de Microsoft
Word y Excel desde NI LabVIEW. Ya sea que usted necesite generar reportes para resumir
resultados de pruebas de manufactura o compilar estadsticas de procesos para mejorar sus
rendimientos de produccin, el LabVIEW Report Generation Toolkit acelera el desarrollo de
reportes profesionales personalizados. Cree reportes personalizados en mucho menos tiempo
usando el nuevo Microsoft Office Report Express VI.

Objetivo
En este ejercicio otro mtodo para trabajar con seales simuladas y como configurar la generacin de
reportes desde cualquier aplicacin.

Desarrollo
1. Abra un nuevo VI en blanco.
2. Cambie la vista al Diagrama de Bloques.
3. Coloque un Simulate Signal Express VI. Este lo puede encontrar en la paleta de Funciones
Express Input Simulate Signal

Figura 61 Seleccin de Simulate Signal Express VI

4.

Al colocar este VI Express aparecer una ventana de configuracin. Configure los siguientes
parmetros:

mexico.ni.com/academia

Pgina | 35

Figura 62 Configuracin de Simulate Signal Express VI

5. Presione OK para continuar y cerrar la ventana de configuracin.


6. Coloque un Spectral Measurements Express VI en el Diagrama de Bloques. Con este VI se
har el anlisis del espectro de la seal que se est simulando. Este Express VI se ubica en la
paleta de Funciones Express Signal Analysis Spectral Measurements.
7. Al colocar este VI Express aparecer una ventana de configuracin. Configure los siguientes
parmetros:

mexico.ni.com/academia

Pgina | 36

Figura 63 Vista de la seleccin

8. Coloque un Write To Measurement File Express VI en el Diagrama de Bloques. Con este VI


se generar el reporte de los datos de la seal que se est simulando. Este Express VI se ubica
en la paleta de Funciones Express Output Write To Measurement File Express VI.

Figura 64 Seleccin de Write To Measurement File Express VI

9. Al colocar este VI Express aparecer una ventana de configuracin. Configure los siguientes
parmetros:
En esta ventana de configuracin deber seleccionar la direccin y el formato del archivo donde
se generar el reporte.
mexico.ni.com/academia

Pgina | 37

Figura 65 Seleccin de parmetros


Simulate Signal

10.

Conecte la salida del DAQ Assistant Express VI a la entrada de Write to


Measurement File Express VI.

11.

Su diagrama de bloques debe ser similar al que se muestra a continuacin.

Figura 66 Vista del Diagrama de Bloques

mexico.ni.com/academia

Pgina | 38

12.

Guarde el VI como Ejercicio5.vi

13.

Cambie la vista al Panel Frontal.

14.

Ejecute el VI.

Figura 67 Vista del Panel Frontal

15.

Su archivo ser creado en la carpeta especificada.

16.

Abra el archivo usando Microsoft Office Excel o Notepad. Revise el ttulo y los datos de
guardados en el archivo.

17.

Cierre el archivo de datos y el VI de LabVIEW.

18.

Fin del Ejercicio.

mexico.ni.com/academia

Pgina | 39

Ejercicio 6. Su Primer Maquina de Estados


Introduccin
La Mquina de Estados es una de las arquitecturas fundamentales que los desarrolladores de LabVIEW
usan frecuentemente para construir aplicaciones rpidamente. La arquitectura de Mquina de Estados
puede ser usada para implementar algoritmos complejos de toma de decisiones representados por
diagramas de estados o diagramas flujo.
Las Mquinas de Estados son usadas en aplicaciones donde existen estados distinguibles. Cada
estado puede llevar a uno o mltiples estados, y puede tambin terminar el flujo del proceso. Una
Mquina de Estados depende de entradas del usuario o clculos dentro de un estado para determinar a
qu estado ir a continuacin.
Las Mquinas de Estados son, en su mayora, comnmente usadas al programar interfaces de usuario.
Al crear una interfaz de usuario, diferentes acciones de usuario envan la interfaz de usuario a
diferentes segmentos de procesamiento. Cada uno de estos segmentos actuar como un estado en la
Mquina de Estados. Dichos segmentos pueden llevar a otro segmento para mayor procesamiento o
esperar otro evento de usuario. En ste ejemplo, la Mquina de Estados monitorea constantemente al
usuario para tomar la siguiente accin a realizar.
Mquinas de Estados en LabVIEW
Cada estado en una Mquina de Estados hace algo nico y llama otros estados. La comunicacin de
estados depende de una condicin o secuencia. Para traducir el diagrama de estados en un diagrama
de LabVIEW, necesitar la siguiente infraestructura:
While loop ejecuta continuamente varios estados
Case structure cada caso contiene el cdigo a ejecutar para cada estado
Strict Type Def Enum Control usado para representar los estados
Shift register contiene la informacin de transicin de estados
Lgica de transicin determina el siguiente estado en la secuencia

Objetivo
Llevar a cabo el desarrollo de una Mquina Expendedora en LabVIEW
La Aplicacin de Mquina Expendedora en LabVIEW est diseada para aceptar dinero y distribuir un
refresco cuando se haya depositador la cantidad apropiada. Esta aplicacin fue desarrollada utilizando
un diagrama de mquina de estados en LabVIEW.
La aplicacin de Mquina Expendedora en LabVIEW tiene los siguientes requerimientos:
Todos los refrescos se venden a 50 centavos americanos
mexico.ni.com/academia

Pgina | 40

La mquina solo acepta nickels (5 centavos), dimes (10 centavos) y quarters (25 centavos).
No es necesario cambio exacto.
Se puede regresar el cambio en cualquier momento durante el proceso de meter las monedas.
Diagrama de Estados de la Mquina Expendedora en LabVIEW
Para ste ejemplo, nuestro diagrama de estados tendr seis estados. Los estados que usaremos son:
1.) Initializing El estado initializing inicializar la Mquina Expendedora
2.) Waiting El estado Waiting esperar hasta que el usuario realice una accin
3.) Accepting Change El estado Accepting Change aceptar el cambio depositado y actualizar
la cantidad depositada en la informacin del estado. La lgica de transicin para el siguiente
estado se decide con base en una comparacin de la cantidad depositada y el costo del
refresco. Si el usuario ha depositado suficiente dinero, el siguiente estado ser Vending, de otra
manera el siguiente estado ser Waiting.
4.) Vending El estado Vending despachar/entregar el refresco y pasar al estado Distributing
Change.
5.) Distributing Change El estado Distributing Change determinar el cambio que se le debe al
usuario y entregar sta cantidad..
6.) Exiting El estado Exiting apagar y saldr de la aplicacin Mquina Expendedora

Figura 68 Diagrama de Estados

mexico.ni.com/academia

Pgina | 41

Parte A Evaluacin del cdigo de la Mquina Expendedora en


LabVIEW
a. Para empezar a evaluar el comportamiento de la aplicacin Mquina Expendedora en LabVIEW,
abra el proyecto LabVIEW Vending Machine.lvpr desde la carpeta de Ejercicio Ejercicio 6
y haga doble clic sobre el VI LabVIEW Vending Machine.vi en la ventana del proyecto.
Ejecute la aplicacin Mquina Expendedora en LabVIEW y complete la siguiente serie de
acciones para observar el comportamiento de un refresco siendo despachado cuando el dinero
depositado alcanza los 50 centavos.
b. Seleccione un Quarter, un Dime, un Nickel, y un Quarter: Se dar cuenta que se despacha
una Coca-Cola y se regresan 15 centavos.
c. Seleccione un Quarter, un Dime, y
d. un Nickel. Seleccione el botn Pepsi y entonces introduzca otro Quarter: Se dar cuenta que
se despacha una Pepsi y se regresan 15 centavos.

Figura 69 Panel Frontal

mexico.ni.com/academia

Pgina | 42

Figura 70 Diseo de una mquina de estados

Objetivo Particular
Queremos agregar un Nuevo estado a la Mquina de Estados de LabVIEW. Dicho estado aceptar
seleccin del refresco (Coca-Cola o Pepsi).
Agregar un Nuevo estado a una mquina de estados en LabVIEW
Editar Strict Type Def Enum Controls

Escenario
Hemos agregado dos botones a la aplicacin de LabVIEW para permitir al usuario seleccionar entre
Coca-Cola o Pepsi, pero no tenemos un estado que represente a la mquina aceptando la seleccin de
refresco del usuario. Queremos agregar un nuevo estado a la Mquina de Estados de LabVIEW. Dicho
estado aceptar la seleccin de un refresco (Coca-Cola o Pepsi). Llamaremos al nuevo estado
Accepting Soda Selection.

Descripcin
El State Machine.ctl es un Strict Type Def Enum Control utilizado en la aplicacin Mquina
Expendedora en LabVIEW para la transicin entre los estados. Los controles Strict Type Def hacen
cumplir que cuando se hace cualquier cambio al archivo de control, todas las aplicaciones que la llaman
mexico.ni.com/academia

Pgina | 43

obedecern y actualizarn para reflejar stos cambios. Esto significa que cuando agregamos un nuevo
elemento al Enum para representar un nuevo estado, todas las referencias del control en la aplicacin
Mquina Expendedora de LabVIEW sern actualizadas para incluir el nuevo estado tambin.

Nuevo Diagrama de Estados de la Mquina Expendedora en LabVIEW


El estado Accepting Soda Selection aceptar la seleccin del refresco y determinara si ha sido
depositado suficiente dinero para recibir dicho refresco. La lgica de transicin del siguiente estado se
decide basada en una comparacin de la cantidad depositada y el costo del refresco. Si el usuario ha
depositado dinero suficiente, el siguiente estado ser Vending. De otra manera ser waiting.

Figura 71 Diseo de la mquina de estados

Desarrollo
1. Abra el LabVIEW Vending Machine.vi del LabVIEW Vending Machine.lvproj.
2. Abra la representacin de estados de la Mquina Expendedora en LabVIEW en la que el Nuevo
estado debe ser agregado.
a. Localice el control Machine State.ctl en el diagrama de bloques de LabVIEW.

mexico.ni.com/academia

Pgina | 44

Figura 72 Seleccin del control Machine State.ctl

b. Para abrir el control y personalizar, haga click derecho en Machine State.ctl y


seleccione AdvancedCustomize.

Figura 73 Seleccione Customiza

Nota: Se puede acceder a Machine State.ctl tambin desde la ventana de proyecto.

3. Edite los elementos en el Machine States.ctl Strict Type Def Enum Control para representar
un estado Nuevo de Accepting Soda Selection
a. Para abrir la ventana de propiedades del Enum que permitir editar elementos en el
Enum control de la Mquina de Estados, haga click derecho y seleccione Edit Items.

mexico.ni.com/academia

Pgina | 45

Figura 74 Seleccione Edit Items

b. Seleccione la pestaa Edit Items en la ventana Enum Properties


c. En la pestaa Edit Items, haga doble click en Distributing Change para agregar una
nueva entrada al final de la lista Items. Nombre el Nuevo elemento Accepting Soda
Selection Haga Click en OK cuando termine.

Figura 75 Generacin de nuevo item

mexico.ni.com/academia

Pgina | 46

d. Guarde y cierre Machine States.ctl. Notar que cuando hace click en el control
Machine State en el diagram de bloques de la Mquina Expendedora en LabVIEW,
ahora aparece una nueva opcin para Accepting Soda Selection.

Figura 76 Seleccin estado

Importante! Asegrese de no seleccionar el elemento Accepting Soda Selection del


control Machine State en el diagrama de bloques de la Mquina Expendedora en
LabVIEW.El estado inicial debe seguir siendo Initializing.
4. Agregue el nuevo estado Accepting Soda Selection a la Case Structure en la aplicacin
Mquina Expendedora en LabVIEW. Agregar dicho estado a la Case Structure lo agregar a la
mquina de estados implementada en LabVIEW.
a. Para agregar fcilmente el Nuevo estado a la aplicacin Mquina Expendedora en
LabVIEW, haga click derecho en el Case Structure en el Diagrama de Bloques de
LabVIEW y seleccione Add Case for Every Value.

Figura 77 Agregar Estado

mexico.ni.com/academia

Pgina | 47

b. Se dar cuenta que el estado Accepting Soda Selection ha sido agregado al Case
Structure. Ahora hay una implementacin de cdigo del nuevo estado en el que la lgica
de transicin puede ser agregada. La lgica de transicin ser agregada en el siguiente
Ejercicio.

Figura 78 Nuevo Estado

Parte B Agregar Lgica de Transicin al Nuevo Estado


Objetivo Particular
Ahora que agregamos el nuevo estado Accepting Soda Selection, es necesario implementar la lgica
de transicin.

Escenario
Ahora que agregamos el nuevo estado Accepting Soda Selection, es necesario implementar la lgica
de transicin. Este nuevo estado aceptar la seleccin del refresco y determinar si se ha depositado la
cantidad de dinero necesario para despachar el producto. La lgica de transicin hacia el siguiente
estado est definida en base a una comparacin entre el dinero depositado y el costo del refresco. Si el
usuario ha depositado la cantidad necesaria, el siguiente estado ser Vending, de lo contrario el
siguiente estado ser Waiting.

Configuracin
1. Agregar la lgica de transicin al estado Accepting Soda Selection para determinar el
siguiente estado: Vending o Waiting
a. Vaya hacia el estado de Accepting Soda Selection dando click en la etiqueta de la
estructura Case y seleccione Accepting Soda Selection

Figura 79 Seleccin de estado

mexico.ni.com/academia

Pgina | 48

b. El estado de Accepting Soda Selection aceptar la seleccin del refresco y


determinar si ha sido depositada la cantidad necesaria para despachar el producto. Si el
usuario ha depositado el dinero suficiente, el siguiente estado ser Vending, de lo
contrario el siguiente estado ser Waiting. El cdigo a continuacin implementa esta
lgica de transicin y debe ser agregado al estado de Accepting Soda Selection
dentro de la Estructura Case.
i. Inserte la funcin Unbundle by Name. Para esto, navegue en la paleta de
funciones hacia ProgrammingCluster, Class & Variant y seleccione la funcin
Unbundle by Name. Arrastre esta funcin hacia el diagrama de bloques dentro
de la estructura Case en el estado de Accepting Soda Selection .
ii. Cablear los datos del clster hacia la funcin Unbundle by Name, expandir la
funcin Unbundle by Name para mostrar los datos del campo Value Deposited
y Cost.

Figura 80 Expanda el unbundle by name

iii. Utilice el SubVI Check Deposited Amount.vi para comparar el Value


Deposited y el Cost. Para hacer esto, arrastre el archive Check Deposited
Amount.vi desde la ventana del explorador del proyecto en labview hacia la
derecha de la funcin Unbundle by Name. Cablear los valores de Value
Deposited y Cost de la funcin Unbundle by name hacia las entradas de subVI
Check Deposited Amount.vi.

Figura 81 Cableado

iv. Utilice la funcin Select para determinar el siguiente estado. Para hacer esto,
navegue en la paleta de funcionas hacia ProgrammingComparison y
seleccione la funcin de Select. Coloque esta funcin a la derecha del diagrama

mexico.ni.com/academia

Pgina | 49

de bloques. Cablear la salida del subVI Check Deposited Amount.vi hacia la


entrada de la funcin Select.

Figura 82 Cablee la salida del subVI

v. Utilice los controles Machine States.ctl para indicar el siguiente estado. Para
hacer esto, arrastre 2 copias del control Machine States.ctl desde el Project
Explorer y colquelas en la parte izquierdas de la funcin Select en el diagrama
de bloques. Cablear uno de esos controles hacia la terminal superior y el otro
hacia la terminal inferior de la funcin Select. Seleccione Vending en el control
superior y Waiting en el control inferior como se muestra en la imagen. Cablear
la terminal de salida de la funcin Select hacia la terminal Machine State.

Figura 83 Cablee las terminales

vi. Cablear el clster State Information a lo largo del estado Accepting Soda
Selection dentro de la estructura case.

mexico.ni.com/academia

Pgina | 50

Figura 84 Cableado de Cluster

2. Guardar y Ejecutar la aplicacin LabVIEW Vending Machine con el nuevo estado Accepting
Soda Selection y la lgica de transicin. Mientras la aplicacin est corriendo, seleccione
cualquier combinacin de efectivo a introducir a la mquina expendedora. Complete los
siguientes pasos mientras la aplicacin est corriendo para observar el comportamiento una vez
alcanzados los .50 centavos.
a. Seleccione un Quarter, Dime, Nickel, Quarter: Notar que una Coca es despachada y le
regresa .15 centavos.
b. Seleccione un Quarter, Dime, Nickel. Seleccione el botn Pepsi y posteriormente
introduzca otro Quarter: Notar que una Pepsi es despachada y le regresa .15 centavos.

mexico.ni.com/academia

Pgina | 51

Ejercicio 7. Programacin Basada en Eventos


Objetivo
Evaluar la aplicacin de la mquina expendedora con arquitectura de Programacin Basada en Eventos.
Dicha arquitectura nos permite reducir recursos de procesador al evitar estar sondeando de manera
iterativa por eventos en la interfaz de usuario, adems puede determinar el orden de mltiples
eventos.

Escenario
Hemos desarrollado la aplicacin de la mquina expendedora utilizando ahora una arquitectura de
programacin basa en eventos lo cual nos permite estar al pendiente de las acciones que el usuario
realiza en la interfaz sin necesidad de estar realizando un sondeo constante que consume recursos de
CPU.

Descripcin
Una vez entendido el funcionamiento de la mquina expendedora, ahora revisaremos la arquitectura de
programacin basada en eventos, los componentes bsicos, entradas, salidas y funcionamiento, se
analizarn las ventajas y desventajas de utilizar este enfoque de programacin, adems de
recomendaciones sobre su utilizacin en proyectos de ingeniera.

Configuracin
1. Abra el Vending Machine Event-Driven User Interface.vi dentro de LabVIEW Vending
Machine.lvproj.
2. Analice el diagrama de bloques con la estructura basada en eventos. Para ir al diagrama de
bloques presione <Ctrl+E>

Figura 85 Vista del Diagrama de Bloques

mexico.ni.com/academia

Pgina | 52

3. Corra la aplicacin Mquina Expendedora Event Driven y de click en el botn de dime en


repetidas ocasiones, observe como la interfaz de usuario presenta un ligero retraso en el
procesamiento de los datos, sin embargo cada uno de los eventos se guarda en un buffer para
evitar perder acciones del usuario.
4. Existen diversas variantes a la programacin basada en eventos que nos permite delegar el
procesamiento de cada uno de los estados en otro ciclo para mejorar los tiempos de reaccin
ante eventos seleccionados por el usuario

mexico.ni.com/academia

Pgina | 53

Ejercicio 8. Cmo Reutilizar Cdigo .m en


LabVIEW?
Introduccin
Mdulo NI LabVIEW MathScript RT
El Mdulo NI LabVIEW MathScript RT aade programacin textual orientada a matemticas al entorno
de desarrollo grfico LabVIEW con compilador original para sus archivos .m personalizados. Los
ingenieros y cientficos que buscan combinar sus cdigos .m con una interfaz de usuario grfica o
integracin de hardware se les recomienda escoger el enfoque ms efectivo - textual, grfico o una
combinacin - para desarrollo de algoritmos, procesamiento de seales, diseo de control y tareas de
anlisis de datos.

Objetivo
En este ejercicio conocer como utilizar el mdulo NI LabVIEW MathScript de manera independiente a
LabVIEW y como integrarlo a un entorno grfico.

Desarrollo
En este ejercicio conocer como implementar la estructura MathScript para desarrollar cdigo .m
dentro del ambiente de NI LabVIEW.

Parte A. Usando cdigo .m en la ventana de MathScript Window


1. A partir de un nuevo VI en blanco abra la ventana MathScript Window desde el menu Tools
MathScript Window

Figura 86 Seleccin de la opcin MathScript Window

2. Aparecer en su pantalla la siguiente ventana:

mexico.ni.com/academia

Pgina | 54

Figura 87 MathScript Window

3. Ir a la pestaa Script e ingrese las siguientes lneas:


x= [1,2,3];
% Obtener el cuadrado del elemento x
y = x.^2;
% Extraer elemento y(1)
y1 = y(1);
% Calculo del producto punto o escalar
d = dot(x,y);

4. Su ventana deber lucir de la siguiente forma:

Figura 88 Cdigo en la seccin de Script

5. Presionar el botn run


mexico.ni.com/academia

Pgina | 55

NOTA: Con este proceso se hace la ejecucin de las lneas del script. Este script puede
guardarlo para posteriormente compartirlo o importarlo en otras aplicaciones
6. Cambiar su pestaa a la de variables y deber contar con los resultados de su informacin
procesada:

Figura 89 Datos procesados en MathScript Window

7. Cierre la ventana de MathScript para continuar con la siguiente parte


8. Es opcional guardar el cdigo

Parte B. Usando cdigo .m en el ambiente de NI LabVIEW


9. Abra un nuevo VI de NI LabVIEW
10. Cambie su vista al Diagrama de Bloques
11. En el Diagrama de Bloques inserte un MathScript Node. Desde la paleta de Functions
Programming MathScript

Figura 90 Nodo MathScript

mexico.ni.com/academia

Pgina | 56

12. Ingrese las siguientes lneas dentro del nodo:

% Obtener el cuadrado del elemento x


y = x.^2;
% Extraer elemento y(1)
y1 = y(1);
% Calculo del producto punto o escalar
d = dot(x,y);

13. De clic derecho sobre el borde izquierdo de la estructura. Del men desplegable seleccione
Add Input

Figura 91 Seleccin de Add Input

14. Ingresar x en el control.


15. Dar clic derecho sobre la terminal x y seleccionar Create Control

Figura 92 Creacin de control

mexico.ni.com/academia

Pgina | 57

Figura 93 Vista del nodo MathScript

16. Crear los nodos para las variables de salida sobre el borde derecho del nodo MathScript. Cree
los indicadores: y1, y, d. Si da clic derecho sobre el borde, al ir a la opcin Add Output
aparecern las variables detectadas, de las cules usted no tendr que crearlas manualmente.

Figura 94 Deteccin automtica de varibles

17. Cree los indicadores para las variables de salida

Figura 95 Vista del Diagrama de Bloques

18. Cambie la vista al panel frontal


19. Personalice su interfaz de usuario
20. Guarde su VI como EjercicioMathScript.vi
mexico.ni.com/academia

Pgina | 58

21. Cambie el valor de x, ejecute su VI y compare sus resultados.

Figura 96 Ejecucin del VI

FIN DEL EJERCICIO

mexico.ni.com/academia

Pgina | 59

S-ar putea să vă placă și