You are on page 1of 373
Fat Entorno grafico lM odcereae rete cene LabVIEW 8.20 y versiones anteriores Alfaomega Titulo: LabVIEW. Entomo grifico de programacién Autores: José Rafael Lajara Vizcaino José Pelegrt Sebastis: Reservados todos los derechos de publicacién,reproduccién, préstamo, alquiler o cualquier otra forma de cesdn del uso de este ejomplar de la [presente edicion esparola por © MARCOMBOS. A. 2007 Gran Via de les Corts Catalanes, 534 (08007 Barcelona. (© ALFAOMEGA GRUPO EDITOR, S.A, 2007 C/Pitigoras 1199 Colonia del Valle - 03100 México DE. (México) ‘Quedan rgurosimente prohbida, sn la autoizacin excita de los tulares del copy "ght boo ls sancions establcidas en las lees, ln epee tll 0 paca de est bra por caller medio o proadimient,incuios a reprograi ye tratamiento infor ‘matic, as como la dstbucin de gjemplares mediante alguero péstamo publics. ‘Consulte nuestro fondo editorial Iitp:/ /www-marcombo.com Pueden existr materiales adicionalesa este libro atojados en la URL: ‘tp://wwew.amarcombo.com/ descargas autor de a obra lear en esta deweckin materials adicionaks que consider “de intr prs ss lets os ed atualizando pencamont. ISBN (por MARCOMBO}: 84-267-14269 ISBN-13 (por MARCOMBO): 978-84.267-1426-8 ISBN (por ALFAOMEGA GRUPO EDITOR): 970415-1133-6 ISBN-13 (por ALFAOMEGA GRUPO EDITOR): 978-970-15-1133-6 Depésite legal: B-3379-06 Impreso en Gratficas Diaz Tuduri, SL. Agradecimientos ‘Queremos agradecer a una serie de personas su colaboracé directa o inid- reclamente, algunos aportando medion y otros aportando informacion que Themos empleacio en la elaboracion de este texto. Parte del presente trabajo esta incluido dentro de los trabajos de a asignatu- 12 “Sistemas de Adquisicién de Datos” en la titulacién de Ingenieria Técnica de Telecomunicaciones en la Escuela Politécnica Superior de Gandia. Por tanto, de algiin modo también ha colaborado el anterior profesor de la asig- natura y compafiero José Francisco Toledo Alarcéin. ‘También nombrar a Pablo Soto, por iniciaros en la imparticién de cursos de ‘postgrado, que posteriormente han dado lugar a este texto, PPor supuesto hemos de agradecer también la confianza que National Instru- _ments ha puesto en nosotros a través de Javier Gutiérrez y Guillermo Prados y la ayuda prestada con la utilizacin de un equipo PXI, Tambien agradecer a Jeroni Boixareu por creer en nosotros con este proyecto editorial, Agradecer también el buen quehacer a todos los miembros del "Grupo de Sensores y Magnetismo” (GSYM) al cual pertenecemos y en especial a Jorge Alberola. Finalmente, nos gustaria agradecer a nuestras familias por su carifo, pacien- cia y comprensién. Introduccién ‘Tras 20 aos en el mercado LabVIEW se ha convertido en un estindar en el des- arrollo de aplicaciones de test y medida, control de instrumentaciGn y sistemas de adquisicion de datos. Su flexbilidad y potencia, le ha hecho expandirse a otras reas tales como visin artificial, PACS, control de movimiento, HIMI y SCADAS para auto- ‘matizaciGn industrial, andisis de ruido y vibraciones, getién de informacién y gene- racién de informes, et. Desde hace 5 atios, LabVIEW esté creciendo en nuevas areas ‘stratégicas doncle reside nuestra vision desde National Instruments, relacionada con nuevos campos de trabajo como Simulacién, Disefio de Control, sistemas embebidos en tiempo real (FPGAs, DSPs, microprocesadores), algoritmos matematicos avanza- dos, etc. Durante estos 20 aos, LabVIEW ha tenido una gran expansion en la comunidad edlucativa y cientifica, tanto en universidades y centros de ensefianza secundaria, ‘como en centros de investigacién, en la elaboracién de précticas de laboratorio, clases te6ricas en las éreas de control, instrumentaciGn, tratamiento digital de la sefal elec- trénica, etc, en el desarrollo de proyectos fin de carrera, tesinas y tesis, y siendo un puente entre la comunidad educativa y la industria a nivel de I+D+i Fs un placer, como director de National Instruments Espaia, realizar el prologo de cesta 1 edicién de su libro. LabVIEW: Entorno de Programacion Graficoy, por la cola- bboracién profesional durante 8 aftos con el grupo de trabajo de José Pelegrt y José Rafael Lajara, por su labor ocente con LabVIEW durante tantos aos y también por Ja confianza puesta en la programacign gréfica como lenguaje de desarrollo, Estamos convencidos de que esta edicién totalmente adaptada a la versién de LabVIEW 8.20 sera una referencia en espaol para el aprendizaje del lenguaje G, por ‘su interpretacién de los principios de funcionamiento de LabVIEW asf como su carse- ter préctico en el desarrollo de ejercicios, José Pelegri y su grupo en la Universidad Politécnica de Valencia en Ganda han Cen nerenpre fete aa occ ee ‘Sut ag mp en ee) ee page ‘enn pm nee mn See ni a tt in reer a cae yt asia ete ada kei os oe ‘acre pr nui mt cinceantets esa Taner va nd te ei ii pnb Sa canvoees 1.8.4 Compiacén masiva SEE RS re cen {i sine y emp, aaa eect ny ep rg Sesh Gist Recceanaeemeese eye 1.24 Seguin Sh ieaeasaipaaieeteree sree earner [7 cme drt gopny donno ae epeameniroe arcing Fd Saye Se Shae Ory Shon na Seah ef arg a te ne al At re Seen accep 187 memos SSIS papa melts ctw eee ene “Sih Stet aes ae seme ops el Tareas eddeepeentiens Reese ton re Sorc reat Rega on ‘raters eile baer Tks SAE ne 1.10 Bibtiogratia “tial nme, ANEW Uppt ews oa. “itt rune ate tp Ne 3 Rh IN ved Pm ep 8 Capituto 2 [attain seers Seren Seem enema Pagan Se 2. SEQUENCE ee ni ia dr, 8 ec ere A SEQUENCE et se nr en Sel Sct a apna pe tsp cana SSeS pe le i ne br pe NE EB 22 CASE eet A ed nes de a a 3, SSE Sra oan ee doen oe 23 wine (oe es urn pe arta etc ‘Xone mann page pero oe ‘Tiitag monterey a Rie ee SSIS Srna pn Sp ey ce ‘incense gt Al ner ee eee 100 High Beat et ee ‘Sit au ake feeb isis cua earmold up a pS ola ‘Sop ordre an cms ot gut nk Siew aterweemecs ppeaiete Te [S. a “ct etn smn Ss a ee rr se an nie Ste tc to mY mi ae, SOSH Cia anon ints dann ge ps antar?aea nn ‘toe deren po le a rca Si Fon Simul meas apne AL ee ne Speier casero 25 event ‘tm emt Men utc cam fg ee Sie fngnaeragsteeecn tow mena otaetas eee ‘ten po in gn me wd ‘Serena oneal Ch aape eee oslo ‘espn ine gs ep tai paar cmp vec ‘Semmens yin feces rss Sas Seer rere Sir Coecmmes ns tearnuee cele oy wel Be a ata a eee ‘lp pn enn dt ct NT i LEE eon ‘teen lap yi an Sicipeteenanmemetiny creamery ae Siinsy Seeger hema ot ‘Seman Canasta ter soo oom aan pw lee RSE eames iy inc cece Sar Seon “yeti momen tee * Soci eaten saga cs cre dame am as Sart se 2.6 TIMED LOOP y TIMED SEQUENCE ‘Sener dcttpare Sen me serena oh een pi eno npn ‘Seiwa mans outa nnn cmos en ‘SS Sones dea * ete Sem myo cman pooner ao bens emp ane mee ed thy ce * aemipenn acuantam pekcpate neem te as SRE N Seca seta at a ee + pat gat uel nt nn Cn Nn pins ee Sanpete pop fica nt sm ea ‘Riocmrd meus dscns ang Tacry es aah rotate i ma epee ine mistress esa mae Aa ‘2 apo nue opens ae ‘a0 sone ome aumento s e | (Sbepess Apna ching yc ‘aetna pri pe Soeeiaoecmreapeniat ‘en Cnn "ined seta Pde le 2.8 FORMULA NODE perme FORALCA NCO pd Pg ‘Strumscimentoeauns pea Rome ee eee rene ees inate ome We ss sos aoa ea eS ce men ea en eal ca Sh ap pe a pap me st nt ts ee “Scar maty man cn et a ge a Sein crept sp epee ‘i Lee Soman acca SEC mio ine ie seni an ot pn ete ga de pipe 34 ee Hp ce Orne ene ee SS yeaa anaes ‘gratin ony an Ste ie te [cmt heute mec a ‘sitar clananece mrp a cpa ea ‘cisyis rt uta aa fre ts gt ‘cites Sn phe see cn ented ‘ea ib apes re peor Mau sat erm et eg ep rs pei shee niga nanan esr des penta 2.102 lemplo : Generactn de mimerosprimos Sere Se Se Sic Nears pe si ce eae Fi MESS Eee ne a gre cam ee site ccna Spa er er SSA an ei 2.10. fem Binge 2032 cs paige peat cmap actin dese Soong) Coan Foam ce | ‘iments fence Rouse Nene eens a 8 a ‘Sens et aa yet pate Ap SIRT ck bniegooa emer aden wot adncr gue sr tn Cn pera Me Capitulo 3 ‘xh dtp te pt i! tin Poms aa ome asian fetta ot a * hoa epee pr ton tga 6 Ro Sem nea es Settee teaarene ora ‘tuo pees cs ati pga ot + Spam ma ml gu pe el ad + pram a nm ashe ‘kre ray olen mt gi ‘es tanpr om me om sr spas Pages “pean pub cn veges eo us te peck car a ie Pa teonugan daemon ioe si natn a er He ges pe File 1/0. Flgua +1, Paeta de fcheros Amriry cerrar_[B5](E] one ‘ene cera (nen) Ff sat reer) I LabVIEW ‘Alabrir un fichero se devuelve una referencia 0 manejador que sirve para representar- Joy trabajar con él. Si no se indica de forma explicita el fichero apareceré una ventana pidiendo su ruta. Al abrir el fichero también se puede indicar la operacién (abrir, crear © reemplazar) y el modo de acceso (lectura, esritura). Cerrar es la operacién contratia, bera el fichero, Leer y escribir rng (hee te ren (om exe) Tee a) rat re) rdrmeat tee one ose ‘Como entrada se puede cablear la ruta de un fichero o tna referencia, dependiendo de ccual sea, estos Vis actuarén de forma diferente. Si én la entrada hay una ruta (path), estas funciones internamente abren el fichero; al escribir se hace sobre el fichero com- pleto, por lo tanto susttuir el contenido anterior del fichero, Si no se indica la ruta también la pide, como los Vis anteriores. En cambio si se emplea una referencia (ref- ‘num la escritura se realizara a partir de una posicidn determinada, esta posicién es un untero al fichero que iré variando dependiendo de las operaciones que se hagan, por jemplo, si se abre el fichero la posiciOn sera 0 (et principio del fichero), si se escriben cuatro earacteres la posicién aumentaré en cuatro; en el submenti avanzado hay funcio- nes para variar la posicion. ‘Cuando se lee se haré a partir de la posicin que hubiera antes si se conecta una refe- rencia, 0 desde el principio si es un path. Se leerén los bytes indicados en count o hasta final del fichero si no se indica nada. El cuadrado que puede aparecer en la esquina inferior izquierda significa que se tiene activada la opcién Convert EOL (End of Line) para convertit los simbolos de fin de Linea de cualquier plataforma al simbolo EOL de LabVIEW, puede desactivarse en el ‘menti contextual, Ficheros binarios {f2}|[E] dation ono (Open extn He Tse dog) —y oft ‘ come lg] ata byte rer (tire, sever cut byte ode (0tsy-endan.. I ‘anceled Estos Vis funcionan exactamente igual que los anteriores en cuanto al tipo de datos que se cablea en el terminal file: La diferencia es que admiten cualquier tipo de datos y To almacenan una vez aplanado, mientras que los anteriores trabajan con cadenas dle caracteres en ASCII. Seria equivalente a usar un Flatten To String antes de las ante= riores, 92 de ficheros rena tapan ante = Tretaeaoas mat rod) J ceedavaton Co Teh a Los ficheros Spreadsheet suelen tener extensién "sv y son ficheros de texto que repre- sentan tablas, cada linea del fichero seria una fila de la tabla y para indicar las colum- ras se suele emplear el cardcter tabulador oe «;». Este tipo de ficheros son stiles para ‘guardar informacién de forma ordenada, ademés puede ser lefdo por otras muchas aplicaciones, por ejemplo MS Excel. . La eseritura tiene el terminal Append To File? para indicar si los nuevos datos tienen que sobreseribir a los que habia o deben agregarse al final, y el terminal Format para indiear el formato numérico, este formato puede consultarse en la ayuda. La lectura es desde la versién 8.20 un VI polimérfico, la instancia seleccionada condi- ciona el tipo de salida (ver terminal Format): doble precisin, entero o string; puede leerse todo el fichero o de s6lo una parte. Estos Vis pueden considerarse como una forma compacta de los de leer y escribir junto con Array To Spreadsheet String y Spreadsheet String To Array. Format y scan F559 la eg 2 tom ng re es) PR mt 8 ie ee) — FE — et er tara crema ore a Gan a) EE aoe rata Estos Vis son equivalentes a usar los tipicos de leer y escribir con Scan From String y Format To String tespectivamente. Al escribir, con un solo VI se pueden convertir varios tipos de datos a string, concatenarlos y guardar en un fichero. El proceso contra- fio acurre en la lectura a ae eee sromenioan tn —fEE] ee ee eee es ees Strip Path separa de una ruta el fichero o iltimo directorio del resto, por ejemplo, si la ruta es «c\windows\win.ini» separara por una parte «c:\windows» y por otra ‘ewin.inin, si se aplica sobre «:\windows\system32» separa «c:\windows» de asystem329. 2 Labview ce gene re ‘También se puede construir una ruta con las funciones del menii string, peromo es reco= mendable hacerlo asi, por ejemplo, presentaria problemas si el programa debe ejecutar- se sobre Windows o Linux debido a que las barras que sirven para separar los directo- rios en el path son diferentes, En el submenti File Constants hay varios nodos que devuelven la ruta de un determi- nado elemento, entre ellos el més usado es Current VIs Path que devuelve la ruta del fichero en el que se coloca, =) Measurement File (Vis Express) Estos Vis Express estén especialmente preparados para almacenar y recuperar datos provenientes de formas de onda. Entre las opciones més destacadas se encuentra la posibilidad de guardar los datos en formato LVM, TDM 0 TDMS. EI formato LYM es un fichero de texto que basicamente consta de una cabecera con informacisin sobre el fichero (autor, fecha, etc.) y canales; cada canal a su vez tam- bien tiene una cabecera y los datos propiamente dichos, Los formatos TDM se estu- diardn en el apartado dedicado a los ficheros Storage. = Ficheros ZIP Estas funciones se han afadido a LabVIEW en Ia versién 8.0. Sirven para crear ficheros comprimidos en formato ZIP. La primera de ellas es New Zip File, su fun ‘ion es crear un fichero, la segunda es Add File to Zip que atiade un fichero cual- quiera al ZIP creado con la anterior, a este VI hay que indicarle a ruta absoluta del fichero a comprimir y la ruta relativa que tendré dentro del ZIP. Finalmente con (Close Zip File se cierra el fichero. = Visavanzados El submient: Advanced File Functions es un meni misceléneo de funciones para trabajar con ficheros y directorios. Por ejemplo, ya se ha hablado de las funciones para modificar el puntero de posicién en un fichero; otras funciones de interés son, Jas que trabajan con dlirectorios, mueven y-copian ficheros, etc. 4.1.1.1 Ejemplo I: Ficheros de texo y binarios Este ejemplo se ha hecho con la intencién de conocer las diferencias entre usar por un, lado path o referencias para indicar el fichero y por otto lado entre ficheros de texto y binarios, En primer lugar se tratarén los ficheros de texto. En la figura 4-2 pueden verse dos flu- jos de ejecucién, uno en la parte superior y otro en la inferior. En la parte superior se ha tusado el path del fichero como entrada para el resto de funciones. Primero se escribe un string y luego otro, pero en la segunda escritura también se usa path, por lo que el pPuntero que indica la posicién del fichero empieza de nuevo en cero y sobrescribird lo anterior, por lo tanto la salida del nodo de lectura (y el contenido del fichero) sera tin camente la segunda constante escrita, ee ee ‘Manejo de ficheros En la parte inferior se usa una referencia al fichero una vez abierto, al escribir la prime +a constante el puntero aumentaré en cuatro posiciones, por lo que al volver a escribir otra constante se adjuntaré después de la primera, y no se sobrescribird. Después se usa ‘una funcién Set File Position para manipular el puntero de posicién y leer cuatro carac- teres a partir de la segunda posicién. Fl resultado serén cuatro caracteres: los dos Glti- ‘mos de la primera constante y los dos primeros de la segunda, «lamu», ea) Fgura 4-2. empl de manipulsién de fcheros de texxo ‘Ahora se hard lo mismo en la figura 4-3 con las funciones que trabajan en binario. Estas funciones admiten cualquier tipo de datos, en este ejemplo se usarén numéricos sin signo de 8 bits. En la parte superior se escriben dos niimeros, primero el 126 y luego el 97 (gon el valor en ASCII de los simbolos «~» y «a»), al forzar-a.que estos nodos abran cl fichero nuevamente el segundo sobrescribira al primero. Si se abre el fichero con un. editor de texto slo se vers una letra «a». En la lectura hay que indicar el tipo de datos que se va a leer, ademas se ha afiadido un Type Cast para ver la representaciém ASCII del valor leido en un string. ir G3 Figura 4-3 Eemplo de manipulaciin de heros binaros fevior usa referencias a un fichero previamente abierto por lo que el puntero de posicién no se reiniciaré en cada nodo como en el easo anterior. En primer lugar se cescriben tres niimeros: 126, 49 y 97; estos niimeros se eseribirén uno junto al otro, por Jo que el contenido del fichero ser «~1a». En ese momento el puntero apuntari a la ;Posicin 3 pero se usa una funcién para variarlo y queapunte a la 1, después se leen dos bytes (se ests trabajando con enteros sin signo de 8 bits) que son los que correspon- den a los valores 49 y 97 finalmente se convierte a string con lo que en el Panel Frontal ‘se mostrars «lay. Es importante tener en cuenta cuando se trabaja con ficheros binarios que si se escriben datos de un tipo y se leen indicando un tipo 0 tamaio diferentes, los resultados no seran los esperados. is ‘También es importante notar como al principio del programa se han usado las funcio~ ines Build Path y Strip Path para obtener un fichero del mismo directorio donde esta el ‘VI. de esta forma si se cambia la ruta el programa seguirs encontrando los ficheros con os que trabaja. Esto es algo que se usar en el resto de ejemplos del capitulo. 4.1.1.2. Blemplo i Loteria ‘Se'desea crear un programa que genere siete mimeros aleatorios del 1 al 46, que no se repitan y almacenar el resultado en un fichero que pueda ser leido por otras aplica- Para escribir el fichero se usar Write To Spreadsheet File indicando que cada ver que se genere un nuevo resultado se escriba en el fichero una linea que contenga los ndime- ros. En este VIse indica que se guarden los datos como enteros (Yd) y que el cardcter separador sea un & El o6digo se muestra en la figura 44, Figura 4-4 1 que genera valores para ugar 3 otra Manejo de ficheros ‘Sobre el programa que genera los ruimeros se pueden comentar varias cosas: En primer Jugar se crea un array del tamano apropiado, cuando se genere un nuevo niimero vali do se almacenari en una posicién de ese array. Para generar niimeros dentro de un rango se multiplican los ntimeros aleatorios que van entre cero y uno por el limite supe- rior y después se redondea al entero inmediatamente superior. El siguiente paso es comprobat si el nimero generado ya habia sido sacado, si no es asi se almacena en una, posicién del array. Cuando ya se tienen los siete niimeros acaba el bucle WHILE y se sguarda en un fichero, 4.2. Ficheros de configuracion Este tipo de ficheros se utiliza para guardar una determinada configuracién. Constd de luna o varias secciones dentro de las que hay uno o varios parametros con sus valores ccorrespondientes, La extension habitual de estos ficheros es “ini, La estructura de uno de estos ficheros es como se muestra en el siguiente texto: [seccién 1) Clavei=valori Clave2-valor2 clavessvalor3 (seccién 2] Claved-valoré ClaveS=valors Si se va a la carpeta de instalacién de LabVIEW se podré ver un fichero llamado LabVIEW ini que guarda la configuracion sobre varios parmetros del funcionamiento de este programa. En LabVIEW existe una paleta en Programming > File 1/O > Configuration File Viscon funciones para manejar estos ficheros, Fgura 4-5, Patera de configuracdn de fereros La forma de trabajar con estos Vis es la habitual en LabVIEW: abrir, leer /escribir/obte- ner informacién y cerrat. 7 LabVIEW 4.2.1 Ejemplo En el siguiente ejemplo se muestra la forma de trabajar con estos Vis En primer lugar se abre una referencia al fichero «config.ini» situado en la misma car ppeta que el VI. A continuacién se escribe la clave «paxam» con el valor «valor» den- ‘tro de la seccién «sub configy, ver figura 4-6, La siguiente parte seria la de lectura, en ella se leer todo el fichero y se mostrar en una tabla. Lo primero serd obtener los nombres de las secciones para que sirvan como cabe- ceras de las columnas de la tabla. Después se entra en un bucle FOR que se repite tan- {as veces como secciones haya; en este bucle se obtienen los nombres de todas las claves y-se entra en otro bucle FOR que se repite el mismo ntimero de veces que claves hay en la seccién actual. Dentro del segundo bucle simplemente se lee cl valot de la clave y se genera tn string con el formato «clavesvalory que ser el mostrado en la tabla Figura +6. emo de configuracén de Reneras Siel fichero «config.ini», antes de ejecutar este programa, contenia’ [eonfig principal) parami=valor1 paranzavalor2 [eub config) paran-valor Después de la efecucién contendra una seecién mas y el resultado sera: Figura 47. Resutado del eecuadin det VI cao ora figura 48 Manejo de ficheros 4.3 Ficheros XML XML significa eXtensible Markup Language. El lenguaje XML es una recomendacién del W3C de finales de los afos 90, aunque se basa en otros estindares mucho mas antiguos. ‘Su aplicaciGn es el intercambio de informacién estructurada entre diferentes programas « incluso plataformas, Basicamente es un método de aplicar etiquetas para describir partes de un documen- to, También se dice que es un metalenguaje, esto es un lenguaje para definir otros len- ‘gues. Un ejemplo de fichero XML es el siguiente: snombre>Joaé Garciax/apellido> cnota>4..99 ‘Como se puede ver es un lenguaje de marcas muy parecido a HTML y agin mas a XHTML (de hecho éste es un lenguaje basado en XML), Las etiquetas van entre los sfmbolos <>, la forma de éolécar las etiquetas es muy stricta, es decir se necesita un perfecto anidamiento y que todas las etiquetas abiertas se cierren. Para indicar que una etiqueta se cierra se usa . Estas etiquetas de inicio y fin encierran en su interior datos u otras etiquetas dela forma u, Algunas de estas etiquetas no encierran nada, por lo que no es necesario poner otra area para cerrar, en este caso se usa , que puede entenderse como una forma resumida de abrir y cerrar una etiqueta. También se pueden incluir parémetros en las marcas como

You might also like