Está en la página 1de 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 Serial, Comunieacién serie VISA Configure Serial Port Enable Terman char (7) tarnnatin char (a=, — Tinea (1820 sa reeurce nan SA rence nar at ‘baaeate (950) does) oro party (ron) arn (voere) sabes 0: 1be) fom ett ere) Configura el puerto serie con todos los pardmetros que se han visto en la parte te6rica de este capitulo: velocidad, protocolo, paridad, etc. El puerto se selecciona con VISA resource name, al erear un control 6 una constante en el Diagrama de Bloques 0 en el Panel Frontal se escanean los puertos disponibles en el ordenador y se muestran en una lista. VISA resource name es un identificador logico tnico que sirve para comunicarse con tn recurso manteniendo una sesién en la que se pueden realizar varias operacio- nes. Los nombres de los recursos, habitualmente, siguen el formato Tnterface Ty- pe fboard index] : :Addrese: : INSTR (para comunicacién serie asincrona Interface vale ASRL y no se usa Address), aunque se puede usar un alias. Para crear alias se puede usar el programa MAX. Seria el equivalente a un refum de los Vis que trabajan con ficheros, de auf en adelante se llamaran handler 0 manejadores. Para més infor- macién sobre la configuracidn se puede consultar la ayuda. VISA Write ‘ail VISA resource name ‘sa rescrce rane ik ‘mite baer once enor roe arr ok Escribe datos desde el buffer hasta el otro dispositivo. Se puede hacer que este VI y el siguiente utilicen una la transmisign sincrona o asincrona, para cambiarlo hay que pre- sionar con el bottin derecho del ratén sobre el VI y seleccionar Do 1/O Synchro- nously/Asynchronously, al hacerlo aparecera o desapareceré un pequerto reloj en la esquina superior derecha del icono. visa Read [al a saroscron ot Te vole aes Morass Es el contrario al anterior. Hay que indicarle el mimero de bytes que debe leer del but= fer, para darle un valor'a este pardmetro suele usarse la salida de la propiedad VISA Bytes at Serial Port. visa Close [%} eee acai ‘errr n (no error) error out 121 Labview Cierra una sesién VISA. Para abrirlas se usa el VI Instrument I/O > VISA > VISA Advanced > VISA Open. Se pueden cerrar automaticamente en el menti Tools > Options > Environment > Automatically close VISA sessions. VISA Bytes at Serial Port 2 = har a Port Es una de las propiedades de una sesiGn VISA. Obtiene los bytes que hay en el buffer del puerto esperando para ser leides. Aparte de Bytes at Port hay otras propiedades, mediante ellas se puede leer y cambiar Ja configuracién del puerto. Hay un total de 16 propiedades para el puerto serie’como puede verse en la figura 5-7, también. pueden ser titiles las propiedades de la clase ‘Modem Line Settings. Para crear una propiedad se debe ir a un control, en este caso al VISA resource name, yen el menii desplegable ir a Create > Property. También pueden crearse en la paleta, Programming > Aplication Control > Property Node, cabledndolo de forma adecuada ¥,seleccionando la propiedad que se desea. En la figura 5-7 se muestran dos nodos ‘Property con varias propiedades relacionadas con el puerto sere. Otras funciones que podrian ser iiiles para’ el manejo del puerto serie, como defini el tamario de los buffers, se encuentran en las paletas de VISA. Fura 57. Propledades dela comunicacion sere 5.4.1 VISA ‘VISA ( Virtual Instrument Software Architecture) es un APLo libreria desarrollada por varios fabricantes de equipos que proporciona un esténdar software para las operacio- nes de lectura y escritura en instrumentacién. NI-VISA es la implementacién de National Instruments de este esténdar, puede esta blecer comunicaciones a través de GPIB, serie, PXI, VXI 0 Ethemet. En las direcciones de los dispositivos se hara referencia al tipo de comunicacién y al dispositive. Algunos ‘ejemplos de direcciones son: 122 Cierra una sesién VISA. Para abrirlas se usa el VI Instrument 1/O'> VISA: > VISA Advanced > VISA Open. Se pueden cerrar automticamente en el meni Tools > Options > Environment > Automatically close VISA sessions, en es ac sea Pon Fetes Es una de las propiedades de una sesiGn VISA. Obtiene los bytes que hay en el buffer del puerto esperando para ser leides. Aparte de Bytes at Port hay otras propiedades, mediante ellas se puede leer y cambiar Ja configuracién del puerto. Hay un total de 16 propiedades para el puerto serie’como puede verse en la figura 5-7; también pueden ser iitiles las propiedades dle la clase ‘Modem Line Settings. Para crear una propiedad se debe ir a un control, en este caso al VISA resource name, yen el menii desplegable ir a Create > Property. También pueden crearse en la paleta, Programming > Aplication Control > Property Node, cabledndolo de forma adecuada ¥y,seleccionando la propiedad que se desea. En la figura 5-7 se muestran dos nodos ‘Property con varias propiedades relacionadas con el puerto serie. Otras funciones que podrian ser iiiles para el manejo del puerto serie, como definir el tamano de los buffers, se encuentran en las paletas de VISA. Figura 57. Propiedades dela comumicacion sere 5.4.1 VISA VISA ( Virtual Instrument Software Architecture) es un APLo libreria desarrollada por varios fabricantes de equipos que proporciona un esténdar software para las operacio- nes de lectura y escritura en instrumentacin NE-VISA es la implementacién de National Instruments de este esténdar, puede esta blecer comunicaciones a través de GPIB, serie, PXI, VXI o Ethernet. En las direcciones de los dispositivos se hars referencia al tipo de comunicacién y al dispositive. Algunos ejemplos de direcciones son: 12 ‘TOPIP: :chostname>:: INSTR ‘TOPIP: : chostname>: :: :SOCKET pip: : INTFC ‘VXI: :BACKPLANE oK1: :: INSTR ASRLI: : INSTR Enel programa Measurement & Automation Explorer(MAX, visacont en UNIX) que se verd mis detaladamente en el capitulo 7, se puede crear alias de ls dispositivosins- talados en My System > Software > NI-VISA > VISA Options. De esta forma en lugar dle usar, por ejemplo, ASRLI: : INSTR. se utilizaré CoM. NE-VISA viene acompafiado de una serie de utilidades como: = VISA Driver Development Wizard (DDW): asistente que permite crear un driver para un dispositivo PXI, PCI, USB o firewire que, al instalarlo en Windows, habil ta a NLVISA para acceder a ese dispositivo, ‘= VISA Interactive Control (VISAIC}: es un asistente para probat de una forma répi- da y sencilla la conectividad y funcionalidad de los dispositivos mediante las fun- ciones de NI-VISA. 1» VISA Server: es un servidor que permite controlar de forma remota un equipo a través de VISA, El servidor debe ser ejecutado en la méquina donde esté conecta- do el equipo. Br la méquina-cliente se podrin encontrar los equipos instalados dando el valor visa: //{servidor] /{instrumento] al terminal VISA resour- a Ni-Spy: se trata de tin programa para ayudar a'la depuracién en bajo nivel Permite capturar las flamadas que se realizan a las funciones del API y las respues- tas que producen, Medliante NI-VISA también se puede acceder a dispositivos de otros fabricantes erean- do e instalando un driver a través de VISA Driver Development Wizard. Para testear cl funcionamiento de la comunicacién se puede emplear MAX 0 VISA Interactive Conteo, Como VISA soporta varios interfaces de comunicacion suele ser el método elegido para crear drivers de control de equipos. El modelo de un programa en LabVIEW para un driver dé un instrumento ests representado en la figura 5-8 Hay un asistente en File > New. > Project > Instrument Driver Project 6’eh Tools > Instrumentation > Create Instrument Driver Project que crea el esqueleto de un proyec- to en el que se puede programar el driver de un instrumento usando NI-VISA y siguiendo el esquema anterior. Las funciones del API NI-VISA usadas en LabVIEW se encuentran en el ment Ins- trument 1/0 > VISA. 123 Fgura 59, Mend Visa Hay docenas de Vis dedicados a VISA, por eso no se estudiarin todos en detalle, sim- pplemente decir que los tipicos son VISA Open, VISA Write, VISA Read y VISA Close. Las direeciones deben indicarse en un control o constante de tipo VISA resource name, Este control o constante puede cambiarse de clase presionando con el botén secunda- tio del ratén sobre una constante 0 control y yendo al ment Select VISA Class. Cada clase tendra unas propiedades y métodos diferentes, 5.5 Ejemplos 5.5.1 Ejemplo I: Comunicacién con un microcontrolador 55.1.1 Beplicadén tebrica En el primer ejemplo con RS-232 se creardin dos programas que se comunicardn entre St. Uno de los programas se ejecutaré en un PC y estaré desarrollado con LabVIEW. El segundo de los programas se implementaré en un microcontrolador y por sencillez se programara usando un Ienguaje de alto nivel. El programa del PC enviar por el puerto serie dos miimeros de un cardcter (det O.al 9) Yun signo de operacion («+» 6 «-»). El programa en el microcontrolador lo leer, rea- 128 Comunicacion serie lizard la operacion indicada y ol resultado lo enviaré de vuelta por el puerto RS-232. Finalmente el programa del PC Jeera el resultado y lo mostrar en su Panel Frontal 55.1.2 Cédigo del microcontrolador El siguiente cédigo es un pequefto programa en lenguaje C para un microcontrolador PICI8F8720 de Microchip compilado con CCS Compiler. Fl programa esperaré a que egue un byte por el puerto serie, cuanelo esto ocurte se activa el flag kbhit. El byte egado se lee con get char, éste puede ser uno de los dos ntimeros que se guardarin, cen las variables «a y «bo 0 puede indicar la operacién a realizar. Cuando se realiza la ‘operacién se enviard el resultado por el interfaz serie con la funcién print [svieasensensenas a seasdeuensenensneseateeounes] " Programa para el PIC 1678720 ” a Lee un dato dei puerto serie w ft y 10 muestra por un Lop ” (romaeeusbgy tedleabynasea ae aeesseeenens) Winclude <10£9720.h> AFUSES HS, NONDT, NOPROTECT, PUT) BRONNOUT, NOLV //fusibles fase: DELAY (CLOCK=20000000) {elo} del PIC ‘fuse R5232 (BAUD=9600,, XMITAPIN.C6, RCV=PIN.C?) //config #8232 jaetatene veessideericcruvestabiaiwedtets I mann + [avbanwasenes i, void main() { int a, b, operacion, resultado, estado-0; nse (1) [ while | HeBBEE() 7 (Jespera wn caracter 4£ ( eatado==0 ){ angetohar () 0:00; J/primer numero Ao: Jelse ie( estado=-1 )( operacion=getchar() ; Joperacion estado? Jetee 4£( estado=n2 )( begetchar() -0230; [aequndo numero estado=0; Af ( operacione=’+’ ) resultado-aeb: else Af ( operacion=='-* ) resultado=a-b; else break; prinef(*8D tc 3 = wD, a, operacion, b, resultado); Jalme estado=0; 125 Labview 55.1.3 Cédigo en LabVIEW En el e6dligo’ primero se configura el puerto serie, la configuracién debe ser igual que la del microcontrolador (directiva fuse 3232). Fl siguiente paso escribird un string. que contendré la operacién a realizar, por ejemplo. «+1», Después se introduce an retard de 50 ms para dar tiempo al microcontrolador a realizar la operaciGn y enviar cl resultado por el puerto RS-232; este método es una opciin muy simple y habitual ‘para comunicarse con dispositivos lentos. Después del retardo se utiliza la propiedad. Bytes at Port para indicarle a VISA Read el ndimero de bytes que tiene que leer, el string leido es el resultado que devuelve el microcontrolador. El c6digo puede verse en la figura 5-10 enor aaa] = ie 3 rr asad Pre HO Figura S-10. Contiguat ler y esc pot et puerto sere 5.5.1.4 Resuitado Una vez. programado el microcontrolador y conectado al PC ya puede ejecutarse el programa de LabVIEW. Fl Panel Frontal del resultado de este VI se puede ver en la figura 5-11 Figura 5-11. Resutado del comunic2con Con un microcontolador 126 Comunicacion serie 5.5.2 Ejempio il 5.5.2.1 Explicadién teérica Los instrumentos de laboratorio normalmente tienen varios interfaces para que se puc- dan comunicar con otros dispositivos. Estos interfaces suelen ser el puerto serie y el bus GPIB, ademas ditimamente también se afiade un conector RJ45 para ethernet o un USB. Control de un instrumento de taboratorio Enviando las érdenes adecuadas sobre este interfaz se puede acceder a cualquier paré- metro del instrumento, leer datos o cambiar cualquier eonfiguracion, incluso las relati- vas all mismo interfaz, En este ejemplo se desea crear un barrido de frecuencias con el generador de funcignes. El generador debe proporcionar una salida senoidal de frecuencia entre 1 Hz y 10 MHz, cen potencias de 10, es decir 1 Hz, 10 Hz, 100 Hz, 1 kHz Para poner el generador de funciones (HP33120A) en modo RS-232 se debe acceder a su mendi de configuracién: Shift > Menu > I/O Menu > Interface > RS-232 > Enter Las érdenes se verin mas detenidamente en el proximo capitulo. En este ejemplo se _muestran a eontinuacién los comandos enviacios con su descripeién: sapx? PPide una idlentificacién al equipo. APPL:SIN 1,1,0 Aplica una sefial senoidal de 1 V y 1 Hz. FREQ XX ‘Cambia la frecuencia de la seal a XX Hz. 5522 Cédigo EL ebdigo consta de dos Vis, uno de ellos sera el que envie los comandos a través del puerto, éste serd un subVI; el VI_principalf calculara las frecuencia, compondra los, comandos adecuados y usaré el subVI anterior para enviar los comandos al instru- mento, 1 c6dligo del VI para enviar comandos al generador a través del puerto serie se mues- tra en la figura 5-12, en ella se ha inchuido un retardo entre el envio de comandos y las, respuestas del equipo (en caso que las hubiera) para dar tiempo a que el generador pueda recibir, procesar y responder a la orden dada. Figura 5-12. SubM para leery esrb or el puerto sere 127 LabVIEW En este Vise han asociado convenientemente los controles ¢ indicadores con los termi= rales en el icono para que pueda ser usado como subVI tos? (1) serene noe Ese shee nane ‘comand 7 rebate vt (600) rr ror nfroee) Figura 5-13, Feminal del sub¥1 anterior Dentro del VI principalf se usard el anterior, as funciones del nuevo VI serdn la con- figuracién inicial del interfaz de comunicaciones: y la configuracién del equipo, Después entraré en un bucle FOR en el cual ealculara la nueva frecuencia de Ia sefial y Je enviard el comando correspondiente al generadior. El cédigo es el dela figura 5-14, ee Figura 5-14. Comunkacin con ef Agilent 331208 através de un tere sere 55.2.3. Resultado Para comprobar el resultado hay que conectar un cable serie al COMI entre el ordena- dor y el generador, aclemés se debe configurar el generador para que use el interfaz RS- 232. Una captura de pantalla del resultado se puede ver en la figura 5-15. En este ejemplo se ha visto la forma de controlar un equipo a través del puerto serie. El control de instrumentos sera ampliado en el tema sobre GPIB al explicar los comandos SCPLy ver ejemplos con drivers de instrumentos. 5.6 Ejercicios 1, Buscar y estudiar ejemplos en la ayuda de LabVIEW y en su pigina web sobre el puerto serie y VISA. 2. Crear un programa para leer y escribir por el puerto paralelo, Intentarlo con las librerfas VISA y con In Port y Out Port que estan en la paleta Connectivity > Port 1/0 (hay que conocer la direccién de base del puerto en el ordenador en que se 128 Comunieacion serie Fgura 515, Resuado del programa anterior ‘usaré el programa, se puede ver en el administrador de dispositivos, normalmente ‘66 378h). Para Windows 2000 o XP hace falta AccessHW si se usa In y Out Port, 7 Bibliografia Dan Mondrik, Advanced Software Techniques for Instrument Control, National Instruments, 2000. National Instruments, Serial Hardware and Software for Windows, 2000, National Instruments, VISA Help, 2004 ss) Capitulo 6 Bus de comunicaciones GPIB 6.1 Introduccion Una de las claves de la instrumentacién virtual es la comunicacién. Un bus de instru- rmentacién es una forma de interconectar varios equipos electrénicos destinados a rea- lizar medidas o tests de forma conjunta. Algunos ejemplos de estos equipos pueden ser osciloscopios, fuentes de alimentacién, generadores de funciones, etc. Normalmente todos estan controlados por un ordenador, el cual los programa, procesa los resultados y ofrece un interfaz al usuario fina. GPIBes el bus de instrumentacién més popular, aceptado por muchos fabricantes como Agilent, Cec, lotech, Keithley, Mee, NI... En los iltimos afios los fabricantes de equipos tienden a incluir otros tipos de interfaz de comunicaciones como ethernet o USB aun- que estos tipos, al ser mas genricos, carecen de algunas caracteristicas deseables que si tiene GPIB al ser especifico para instrumentacién. Otros tipos de instrumentos usan buses planos (de bastidor) en lugar de cableados como PXI, VME 0 VXI. Fgura 6-1. Cable GPIB y controladora GPIB con interfs2 USB El primer bus a destacar es ol HP-IB de Hewlett-Packard (Hewlett-Packard Interface Bus) que se desarroll6 en 1965. En aquella 6poca HP-IB fue muy popular para conectar dispositivos como impresoras a ordenadores, constaba de dieciséis lineas y una veloct- dad maxima de transferencia de 1 MBps. Ya en 1975 el IEEE, basandose en HP-IB, propone la norma IEEE 488/1975 y se renom- bra como GP-IB (General Purpose Interface Bus). En 1987, vistas las carencias de esta norma, apareceria una nueva norma que complementa a la anterior: la IEEE 488.2, pasando la anterior a llamarse 488.1. En 1992 se revis6 de nuevo esta titima versién y 131 LabVIEW lun afi después National Instruments propuso un nuevo GPIB de alta velocidad, (HiS488). (Otras onganizaciones adoptaron soluciones muy parecidas, como es el caso del IEC 625- 1 Gdifiere en el conector), BS. 6146 (igual que IEC 625-1) y el ANSI MC1.1 (igual que GPIB). EI HP-IB original y, por tanto, los demés estindares y normas, describen las especifica- ciones mecénicas (conector, cableado, etc), eléctricas (niveles logicos, temporizacién, ete.) ¥ funcionales (funeiones del dispositivo, funciones de interfaz y codiicacion de ‘mensajes). Para desarrollar una aplicacién haria falta Como minimo un nivel extza: el ‘operacional, en el que se definirfan las funciones del dispositivo. En IEEE 488, ANSI C11 y IEC 625-1 no se incluy6 este tiltimo nivel para dar més flexibilidad a los tise Aadores de instrumentos y ordenadores. FI resultado de esto fue que los disetios reali= 2zados eran incompatibles entre si; con las sucesivas revisiones se ha intentado solucio- nar este problema extendiendo el Ambito de definicién original, como se muestra en la figura 6-2. Fgura 62. Bvolucén de os estndaresrelatnos @ GPIB 6.2 El estandar IEEE 488. ‘Como se ha comentado antes, ef IEEE 488.1 define los requisitos mecsnicos, eléetricos ¥y furcionales que deben cumplit los dispositivos para comunicarse. Algunas caracteristicas son: = Un maximo de 363 dispositivos conectados, pero sélo 15 en funcionamiento simul= tineo. Bus de comunicaciones GPIB ‘= Interconexién en linea, en estrella o mixta. Entre dos instrumentos no puede haber mis de 2 metros de longitud del cable. La longitud total de todo el bus del sistema (entre todos los instrumentos) no puede exceder 20 metros a menos que se utilicen téenicas de extensién. = Transferencia asincrona para adaptar velocidades. Velocidad maxima 1 MBps (se ha aumentado en nuevas versiones llegando hasta los 4 MBps y 8 MBps en ol HS 488), = Compatibilidad con la tecnologia TTL y légica inversa 1» Capacidad de direccionamiento de hasta 31 direcciones primarias, desde la 0a la 30 (la 31 se reserva para «desdireccionar®), cada una con varias direcciones secun- darias, El formato de la direecion es: ‘ a pel eees eee ee st | Desorpedn o fm fu recon prmara (de 13 03s 30) Para gestionar la informacién hay tres tipos de elementos: receptor (listener), emisor (talker) y controlador (controller). Nétese que se habla de elementos y no de equipos 0 instrumentos, un equipo puede tener implementados varios de estos elementos, 1» El Listener sélo puede recibir datos cuando es direccionado. Sélo puede haber 14 listeners activos simulténeamente, 1& El alkers6lo puede transmitir datos cuando es direccionado. Slo puede haber un talker activo en un momento determinado en el bus. = Elcontrolleres el elemento que sirve para direccionar a los talkers y listeners y que leven a cabo la comunicacion. Sélo puede haber uno activo en un momento dado. Si se observa la Tabla 1, donde se describe el formato de direcciones, se puede ver ‘como para una misma direccién primaria puede haber un talker (bit 6 a1) 0 un liste- ner (bit 5a 1) Slo puede haber un controlador en el bus en un momento dado, pero éste puede cam= biara lo largo del tiempo. Este dispositivo es el encargado de asignar las funcionalida- des al resto de instrumento del bus. 6.2.1 Cableado Los cables son apantallados de 24 hilos acabados en ambos extremos con un conector doble macho-hembra de tipo Microribbon 57. Como se ha dicho al principio de esta sec cid la longitud de los cables esta limitada a 2 metros entre equipos y 2 20 metros entre todos los dispositives. Un conector tiene el esquema de la figura 6-3. Como puede observarse en la figura 6-3, el conector tiene varios cables de masa porque cada uno de ellos (excepto el 24) forma un par trenzado con el cable que tiene enfrente 133 Labview (@3 con 11; 22.con 10, ete), de esta forma se consigue disminuir el ruido. Las ineas de datos (Dit .. DIB) tienen un retorno comiin. Todas estén apantalladas. Eeacibaegege ac | PEUREEUTEEAS Figura 6-3. Lineas del conector GP . Las 16 lineas de sefial se reinen formanclo tres grupos: ‘= Control de transferencia (handshake) +) DAV (Data Valid): indica que el dato presente en DIOx es vido, + NRED (Not Ready For Data}: indica la disposicion de aceptar un dato. + NDAC (Not Data Accepted): indica la aceptacion de-un dato Control del bus + ATN (Attention) el controlador indica si envia comandos 0 datos. + IFC (Interface Cleat: permite al controlador inicializar el bus. i + SRQ (Service Request} sirve para que algiin dispositive pida tna solicitud de atencidn al controlador. Para que és sepa el dispositivo que produij la solici- tu tiene que hacer un sondeo (polling) que puede ser serie o paralelo. +) REN (Remote Enable): el controlador usa esta kines y otros mensajes para habi- litar 0 deshabilitar controle locales que tienen su correspondencia remota. + EOI (End or Identify: sive para que un talker marque el final de un mensaje de varios bytes junto con ATN) para indicar que el controlador esté ejecutan- do un sondeo, 2 | s ‘= Datos (bidireccional) + DIO1-DIO8: son lineas bidireccionales que transmiten los datos codificados ‘normalmente en ASCII de 7 bits, siendo DIOI el menos significativo, DIO7 el :s significativo y DIOS el bit de paridad. {Las lineas NRED, NDAC y SRQ son de coletor abierto. Las lineas DIO, DAV, IFC, ATN, REN y EOI pueden ser colector abierto o triestado, Un driver para una sada de colec- 136 Bus de comunicaciones GPIB tor abierto permite realizar una OR cableada con el resto dle drivers conéetados at la ‘misma linea. En la figura 6-4 (a) puede verse la configuracién tipica de una salida; en (b) se muestra el driver de una linea de colector abierto. fe ° Figura 6-4. Bloque 10 de as neas de bus GPIB 6.2.2 Handshake El protocolo de comunicacién para coordinar la transferencia sobre el bus de datos ha de asegurarse que todos los receptores (listeners) estan preparados antes que el emisor (talker 0 controller) empiece a transmitir y ademés tiene que asegurar la integridad de los datos. La comunicacin seréasincrona,en lugar de reloj se usan las tres lineas del bus de con- trol de la transferencia: DAV, NRFD, NDAC. Mediante este. mecanismo se consigue ajustar la velocidad de la transmisién al dispositive més lento. Un ejemplo del uso det bus de control de la transferencia se muestra en la figura 6-5, donde se marcan los instantes clave: ‘a) Cuando un dispositive esté direccionado como listener tratard de ponerse en esta do de escucha. En el caso que un dispositive conectado al bus no pueda recibir e! dato, la senal NRFD en el dispositivo estard a TRUE, forzando a que la tensién en la linea sea de V (independientemente del estado del resto de dispositivos), como puede comprobarse en la figura 6-4 (b). Cuando todos los dispositivos estén lis tos para recibir un dato, la sental NRFD en todos ellos sera FALSE (Not Ready for ‘Data=FALSE & Ready for Data), por lo que la linea podré tener un nivel de ten- sién alto. b) Al subir el nivel de la sefal NRFD, el talker sabra que todos los dispositivos estan ppreparados, por lo que validara mediante la senal DAV los datos que previamente habia puesto en el bus (Data Valic=TRUE, linea a bajo nivel). ©), El primer listener ha leido-el dato e impone un cambio en el estado de la linea [NRFD. También intenta elevar la tensién de la linea NDAC, pero al ser también ‘colector abierto deberd esperar a que hagan lo propio el resto de listeners. 135 LabVIEW 4d) Todos los listeners terminan de leer el dato, por lo que la linea NDAC sube st nivel para confirmar la Jectura, ©) El talker retira et dato del bus indicando que st contenido ya no es valid median- tela linea DAV. Todas las lineas vuelven a su estado inicial pudiéndose repetir todo cl proceso otra vez para un nuevo dato, ag ee ca = PR Figura 65. Handshake 6.2.3 Funcionamiento Las funciones de interfaz son las capacidacles predefinidas que los disefiadores de equi- pos pueden implementar a través de las cuales se puede enviar, recibir y procesar men- ‘ajes; se deseriben mediante diagramas de estades, Un determinado equipo no neces ta implementarias todas, se suele marcar con una 0 dos letras las capacidades del ispositivo cerca del conector. Algunas de ellas son: = SH (Source Handshake) y AH (Acceptor Handshake): permiten al dispositive enviar y recibir respectivamente mensajes multilinea. = T (Talker) L (Listener) y C (Controller: permiten al dispositive ser un talker, un listener 0 un controller. ‘= SR (Service Request): puede pedi atencién al controlador de forma asincrona. = RL (Remote Local) permite decidir la entrada de informacisn al dispositivo: Panel Frontal o remotamente a través del bus. = PP (Parallel Poi): proporciona al dispositive la capacidad de identificarse cuando hha pedido atencién al controlador y éste esté en el proceso de descubrir al equipo que la pid. = DC (Device Clear}: permite que el equipo pase a un estado inicial, = DT (Device Trigger): el dispositivo inicializars su operacién dependiendo del bus. ‘También existe otro tipo de funciones llamadas funciones dependientes del dispositive © simplemente funciones de dispositive. Estas funciones no estin definidas por la ‘norma 488.1, én principio, serfan definidas por el disefiacor del equipo. 136 i comunicaciones GPIB Las comunicaciones entre funciones de interfaz. y su entomo se realizan a través de mensajes. Los mensajes envindos pueden ser: ‘= Mensajes locales: se producen entre una funcién de dispositive y una funcién de interfaz (ccurren dentro del propio equipo). 1a Mensajes remotos: enviados a través de funciones de interfaz entre diferentes dis- ppositivos. A su vez pueden ser: + Mensajes de interfaz. + Mensajes dependientes del dispositivo: ocurren entre funciones de dispositivo en diferentes equips, van codificadas a través de las funciones de interfaz. Agunos ejemplos de estos menses son los comands de programacién, datos cde medidas, informacién sobre el estado del equipo, etc ‘Al codificar los mensajes remotos se transforman en sefiales que cireulan por las kineas del bus, Un mensaje codificado en una tinica linea se denomina mensaje unilinea; se pueden enviar varios simultineamente. Un mensaje que se codifica en varias lineas se ama multilinea, Figura 6-6. Descrpiin funcional de un dsposvo 488.1 Los mensajes unilinea son: IFC, REN, ATN e IDY. Algunos ejemplos de mensajes remo- tos multiinea son: = DCL (Device Clear: provoca la teinicializacion de todos los dispositivos del bus. = GET (Group Execute Trigger): permite activar o disparar varios instrumentos simulksneamente. fGTL (Go To Local desatva el modo remot y activa el modo local ene dispos tials 137 | ‘= LO (Local Lockout): deshabilita el modo local en el panel del instrumento. Labview eae ot ae = MLADX] (My Listen Address): hace que el dispositive con ladineccién X sea un fis: tener, MTAD\] (My Talker Address): igual que el anterior pero con el talker. PPC (Paralle! Poll Configure) se utiliza'en un sondeo patalelo. PPU (Parallel Poll Uncontfigure): reinicia los dispositives de muestreo paralelo. SDC (Selected Device Clear): resetea el dispositive dineccionado. ‘SPD (Serial Poll Disable): indica que el proceso de sondeo serie ha finalizado. SPE (Serial Poll Enable): después de una interrupcién (SRQ) se usa este comando para llevar a cabo un sondeo serie y averiguar el dispositivo que produjo la inte- ‘mupcién para ello se envia este comando al dispositive direccionado y éste res- ponde depositando su byte de estado en la lineas de datos del bu: a TCT (Take Contro! Talker): transfieré el control del bus al talker, que se convierte ‘en el nuevo controfter. ‘= UNL (Unlisten): desdirecciona (desactiva) los listeners. = UNT (Untalk: sirve para desdireccionar al talker activo. En el siguiente ejemplo se enviaran dos datos desde el dispositive 4 al 10: en primer ugar debe conseguirse que el instrumento con la direccién 10 actie como listener, para ello el controller activa la linea ATN y envia por el bus de datos el mensaje MLA10 (codificado con el valor decimal 42). FI siguiente paso sera que el dispositivo 4 se con- conte Taher conte Figra'6-7. Transmisin de datos completa con 488.1 138 Bus de comunicaciones GPIB. vierta en el talker, por lo que el controller enviaré el mensaje MTA: A continuacién el ‘alker podré depositar los dos datos en el bus. Finalmente el controller puede enviar un mensaje UNT para desactivar el talker y UNL para hacer lo mismo con los listeners. 6.3 El estandar IEEE 488.2 Como se ha visto, el esténdar IEEE 488 (Juego renombrado a IEEE 488.1) define la forma de interconectar fisicamente los dispositives y el control del bus pero no dice nada sobre los datos que se transmiten (los valores «1» y «2x de la figura 6-7). Fsto se hizo asi para dar més libertad y flexibilidad a los disefadores de instramentos, sin embargo lo que ccurri6 es que cada fabricante cred su propia forma de comunicacién, siendo cada una incompatible con la de otros fabricantes; de esta forma la libertad del diseria- dor de equipos se transformé en quebraderos de cabeza del programador que neces! taba crear un sistema de‘nstrumentacién con varios equipos diferentes y cada uno fun- ‘cionando de wna manera distinta, EL IEEE 488.2 Codes, Formats Protocols and Common Commands For use with Std 488,1-1987 surgio en 1987 (basaclo en wna propuesta de Tektronix en 1985) de la nece- sidad de unificar Ios eriterios de los distintos fabricantes, Establece un estandar en el formato de los mensajes, un conjunto comiin de comandos y una forma tnica para oder comprobar el estado de los instrumentos. En definitiva, unifica el control de ins- trumentos. ‘Una analogia seria como si 488.1 describiera cémo se deben conectar los cables de telé- ‘grafos y transmit las senaleseléctricas y 488.2 define el cédigo Morse. El IEEE 488.2 se establece como una capa superior a la 488.1 en la figura 6-2 la flecha inferior repre- senta a 488-1 (mensajes remotos) y las dos centrales se englobavian en 4882 (sntaxi, ‘estructuras de datos, comands y respuestas comunes). ‘Sobre el formato de datos y sintaxis, IEEE 488.2 define el formato de niimeros decima- les, en coma flotante y strings; la codificaci6n puede ser ASCII de 7 bits (como en 488.1) © binaria de 8 bits (mas eficiente que ASCID. Por ejemplo, el formato de los nximeros decimals se muestra de forma resumida en la figura 6-8, de esta forma son vslidos: - 123, 123, 12 B-3, +1642... Bl estindar define de una forma parecida el resto de tipos fp Ea olor ge a QO po, fees oTee So ean, O=1H6} Fgura 68. Formato de nimeres decimals 139 canaaiialiieneesniaiann utr de saa conmend Eror er Regia 1 [Powers Figura 69, Esmuctura de Tegst05 de estado 1-488 original definfa un byte de estado que era enviado en un sondeo seri. En 488.2 hay tres registros de estado (ver figura 6-9), cada tno puede ser enmascarado con su propio registro de habilitacion Los registras som: = Standard Event Status Register (SESR): informa de si se ha completado una opere- cin, hay un error, ete ‘+ Questionable Data: indica sucesos como sobretensiones, sobrecorrientes etc 1 Status Byte Register (SBR): es el mismo registro que expeciticaba 4881, sirve para indicar sel equipo quiere enviar algtin mensaje, ha pedido atencién al controla- dor, et. En la norma 488.2 también se definen comandos, algunos optatives y otros obligatorios «que son comune a todos ls dispositivos,éstos se agrupan segin su funcionalidad: '= Datos del sistema: son comandos relacionados con informacion sobre el sistema, como su fabricante, modelo, ete. Ejemplos: + “IDN?: identifica el fabricante, modelo, nimero de sere y firmware del dispo- sitivo. ‘= Operaciones internas: est formado por comandos relacionados con las capacida- des internas que puede tener el equipo, como rest, calibracin o test. Ejemplos: + CAL calibra el equipo + ‘RST: rest + “TST: autotest 140 Bus de comunicaciones GPIB Estado y eventos: controlan las estructuras de estado del equipo. Ejemplos: + "CLS: borra el egisto de estado del dispositive. 1 *ESE: fija un determinado registro interno (Standard Event Status Enable) + *ESE?: Jee el valor del registro anterior. 1+ “ESR: lee el valor del registro de incidencias (Standard Fvent Stats). + *SRE?: lee el valor del registro SRER (Service Request Enable Register). + ‘STBR ee el valor de un registro (Status Byte) + SER: fija un valor en un registro interno (Service Request Enable). Sincronizacion. Bjemplos: + ‘OPC: activa el bt de operacién completa (bit 0 del registro Status Byte)” + “OPC? comprucba el estado del bit anterior. + "WAL: fuerza a completar todos los comandos anteriores antes de continuar procesando los comandas siguientes al “WAL. Sondeo paralclo. Bemplos: + IST? peticion del individual statu bit ‘Trigger. Definen como un dispositive tiene que Fesponder ante un mensaje GET. Ejemplos: + “DDT: graba una secuencia de comandos que el equipo eecutaré cuando reciba, 1 mensaje GET 0 el comanco “TRG. + TRG: eaiza la misma funcién que el mensaje GET de 488. Controller. Fiemplos: + “PCB: con este comando se le dice al controlador la ditectién a la que debe ‘enviar tn mensaje TCT que, como se ha visto, pasa la funcién de controlador de un dispositive a otro. Autoconfiguracién, Ejemplos: + ‘DLE: deshabilita la funcion de listener. Macros: estos comandos permiten al usuario definir nuevos comanidos baséndose en los ya disponibles. Ejemplos: + “DMC: define una macro, es decir, una secuencia de comandos. + “EMC: habilita 0 deshabilita las macros. Almacenamiento de ta configuracién: guardan y restauran la configuracion del equipo. 4 FRCL: restaura el estado del dispositive desde una copia guardada previa- mente. + “SAV: guarda el estado actual del dispositive en memoria 141 Labview a 6.4 SCPI En 488.2 se definen comanclos comunes a todos los equipos, meédiante estos comandos +e pticden efectuar tareas que afectan a las comunicaciones a algunas funciones bési- «cas de los equipos como autotest. Peo para trabajar realmente con los equipos falta atin ‘otro pase: configurar todas sus funciones, por ejemplo, la captura 0 generacion de senta- Jes. Estas funciones logicamente dependerin del tipo de instrument, en un oscilosco- pio se configuraran pardmetros como la escala de tiempo mientras que en una fuente de alimentacién puede configurarse el limite dé carriente. Con este objetivo Hewlett Packard formaliz6 una propuesta en 1990 que se convirtié en SCPI (Standard ‘Commands for Programmable Instruments). Hoy el consorcio SCPI lo forman fabrican- tes como Agilent (HP), Tektronix, Keithley, Fluke (Wavetck), National Instruments, etc. En la figura 6-2 SCPI se sitdia por encima de GPIB aunque en realidad es independien- te de Ia conexién fisica, puede utilizarse sobre GPIB, RS-232, VXI, USB, ethernet, et. Se trata cle un lengua basado en comandos,consistente, EnglishLike eindependien- te del fabricant del equipo. En SCP los distintos comanclos se agrupan en varios sub- sistemas o familias, cada una de elas identficada con un Bloque funcional del instru mento, Iigicamente no todos los instrumentos tienen los mismos blogues. En a figura 6-10 pueden vers los bloques principales de un instrumento. La agrupacin se ealiza de forma jerérquica empezando por la familia mas genérca y paticularizandose cada vvez mis, Cada familia 0 subfamilia est representada por una keyword, de esta forma no hace falta memorizar cientos de-mnemotéenicos. Las familias principales son: cALQulate, cALibration, CoNTrol, DIAGnostic) DISPlay, FORMat, HCOPy, INR, “INSTriment, MiNory, -MMMory, OOTDut, PROGram, ROUTe, cmGe, source, STATUS, SYsTen, TEST, TRAC, TRIOger, UMIT y VXI. Un ejemplo de comando es: sven: :COMMunicate:SERialyBAUD 9600 Se puede ver como la familia raiz es SYSTem, luego van las subfamilias Comtuni - cate, SBRial y BAUD. Entre la familias se pone el carcter dos puntos «> para sepa- rarlas. Las letras en mindscula se pueden omitir para conseguir mayor rapidez. Los arémetros que puedan tener los comandos van al final separados de la tltima key- Word por un espacio. El comando acaba con un fin de linea. En el caso anterior el comando sirve para poner la velocidad del puerto serie del equi- oa 9.600 baudios. Otros comandos devuelven datos, por ejemplo, para preguntar al-equipo la velocidad de comunicacién del puerto serie se puede usar: SYST:CoMM:SER!BAUD? Para mejorar mas Ia eficencia de la comunicacion (aunque no la legibilidad) se pueden, agrupar varios comandos de la familia en una misma linea. De esta forma solo se cam= 142 Figura 6-10: Modelo de instumento en Scr bia la subfamilia mas especifica. Para separar los comandos se usa el cardcter punto y ‘coma ¢». Un ejemplo que equivale a los dos anteriores es: SYST: COWM:SER+BAUD ‘9600; BAUD? i> le sigue el caricter «2» se indica que la escritura del siguiente comand empie- ‘por una familia raiz (hay que-escribirlo completamente). Por ejemplo: SYST:COMM:SER:BAUD 9600; :S¥ST:COMM:SER:BITS 8 6.5 GPIB en LabVIEW ‘Todo lo visto anteriormente sobre 488.1 y 488.2 puede ser, si no se ential en detalles, totalmente transparente al programador que use las funciones GPIB en LabVIEW. Para esto LabVIEW proporciona una serie de librerias que ayudadas por el sistema operati- vo implementan todas las rutinas necesarias. Figura 6-11. Funciones especicas de GPIB 143 Labview. La paleta con Jos VI especificos de GPIB estan en Instrument 1/0 > GPIB. En ella hay otra subpaleta con Vis especificos del estindar 488.2, lo que permite un control més profundo sobre la comunicacion, por ejemplo el VI ResetSys envia, entre otras cosas, un, comando "RST. Estos Vis se dividen en. Single-Device Functions, Multiple-Device Functions, Bus Management Functions, Low-Level Functions y General Functions. En incipio los Vis del 488.2 no serén necesarios, por lo que la explicaciGn se centrara en los tradicionales, de los cuales los dos primeros son Tos mas usados. Gre Read (25) tinout ms (468.2 gobs) hos sno ua ‘byte count ons ede (0) erro Lee Ia cantidad de bytes indicada en byte count que el dispositive sefalado con address string ha debico dejar previamente en el bus GPIB. Se pueden indicar direc- cién primaria y secundaria escribiendo «X+Y» donde Xes la direccién primaria e Y es la secundaria, También se puede escribir la direccién de forma ¢0:2», aunque lo ‘normal es escribir s6lo la direcci6n primaria (la que muestran Tos equipos en sus dis- plays). El parimetro mode sirve para indicar una de las tres formas en que el comando puede finalizar: 0 sin ningtin cardcter extra, 1 afiadiendo CR (0Dh \1) 0 2 afadiendo LF (OAh \n). En los dos tltimos casos el VI leers datos hasta que se encuentre el cardcter indicado, hasta byte count o hasta que se active la linea EOL sta funcidn devuelve el dato leido y el estado del controlador, cre wire 2 timeout ms (468.2 gab) acess sg —f status ie erro node) orn Hace lo contrario que el anterior, précticamente todos los parametros son iguales, excepto, légicamente, el terminal data, que en esta ocasién es una entrada. Con ‘mode se puede elegir la Jorma de terminar la transmisién, en esta ocasién hay ocho posibilidades que corresponden a distintas combinaciones de los caracteres LF, CR ¥¥ el uso de a linea EOI, Mediante este VI se pueden enviar los comandos SCPI a un dispositive. Wale for GPIB ROS tes sora —j reer wine pba ae Espera hasta que el dispositivo seleccionado envie un mensaje de peticién de servi- cio (RQS). Bus de comunicaciones GPIB Gre rigger [2] ies seg fF} — sas eran erro Mensaje multlinea de trigger GET) a un dispositivo. Hace que los dispositivos sin- GPIB Clear [5] ste soa Pegg a eran erro Mensaje de clear (SCL) a un dispositive. El dispositive se resetea a un estado prede- finido por el fabricante. (GPIB Serial Pow [5] thes 300 srl pote sere em ene El controlador realiza un sondeo (polling) serie a un dispositive para saber si ha hecho una peticiin de servicio (ver linea SRQ en la seccién 488.1). es riatzaton aioe eee means oo veees oa eee eer ok Configura el interfaz de un equipo, sirve entre otras cosas para pasar el estatus de controlador a otro dispositivo. También puede hacer un sondeo en paralelo. cre status [i dace = cer lS rer “Muestra el estado del controlador: Cada uno de los 16 bits tiene un significado que puede consultarse en la ayuda. PB wat |%| tines (48.2 gb) tess tng statue ak er “1S rere 145 LabVIEW Espera a que el dispositive indicado pase a un cierto estado. El estado se.inlica eon a misma codificacién que en el VI anterior. PB Mise aa ood owe ae ae Fun unger seal see a dea idl fd eines ohiah ail nian ecnghse addcieihiopalopeabers melo conan, siete soon ei swipe Gee Freee al ina de EEE S801 (or comptocath ay ‘Con LabVIEW suele haber un fallo recurrente cuando se programa por primera ve2, el problema es con la interpretacién de la coma de los decimales, La causa es un pequefio dtalle: 1 idioma espaol usa como eardcter de separacién de decimales la coma «» (en ‘Windows XP puede verse en Panel de control > Configuracién regional y de idioma > Personalizar), mientras que en inglés usan un punto «». Los equipos se guian por la ‘norma inglesa. Para solucionarlo hay tres opciones, una es cambiarloen la configuracién del idioma, otra es susttuir todas las comas por puntes en los strings antes de enviarlos al instrumento o al leerlosy otra es configurar LabVIEW para que no use el separador de decimales regional (Tool > Options > Front Panel > Use localized decimal point) Un ejemplo sencillo del uso de estos Vis es el que se muestra ema figura 6:12, donde se envvia un comando a un dispositivo y, en caso que haya una respuesta, se lee. figura 6-12. Escturay lect con GPIB 6.5.1 VISA ‘Ademés de las funciones especificas de GPIB, tambin se pueden emplear la funciow nes VISA para acceder a estos dispositvos. Como se coments en el capitulo anterior, VISA es un API de alto nivel que proporciona una forma estindar de comunicacién sobre diversos mecanismos, como puedan ser RS-222, GPIB PXI 0 VXI . Bus de comunicaciones GPIB ‘Al usar las funciones VISA a través de un interfaz GPIB se indicaré la direceién del equipo de la forma GPIB|tarjeta}:{direcci¢n primaria][:direccién secundaria}[:INSTR], En la figura 6-13 se muestra un programa equivalente al de la figura 6-12 pero en esta ‘ocasi6n utilizando VISA, como direccién se ha usado simplemente «GPIB:10», donde 10 es la direccién del equipo. Figura 6-13. Escituray leer con VISA equnalente 2 ura 612 Las herramientas de depuracién como NI-Spy, estudiada en el capitulo anterios, pue- den utilizarse tanto con VISA como con las funciones especificas GPIB. Ademss tam- bién puede utilizarse Measurement & Automation Explorer (MAX) para configurar la tarjeta controladora GPIB del ordenador o descubrit los dispositivos conectados a ella. ‘Una nueva herramienta disponible para las funciones de GPIB es GPIB Analyzer, que permite monitorizar, capturare insertar comunicaciones en el bus siempre que la tarje- ta controladora del ordenador Jo permita, 6.5.2 Drivers Muchos instrumentos tienen drivers que pueden bajarse desde Ia-web de National Instruments 0 ‘desde la web del fabricante. Son Vis que se har creado usando los comanclos SCPI. EI modelo de-programacién con drivers afade una capa extra de abs- traccién, los drivers niormalmente tienen la misma estructura: ‘= Inicializaci6n: su funcién principal es configurar la:comunicacion. ‘= Configuracion: preparan al equipo para una tarea ‘= Acci6n estado: inicializan o terminan las tareas. ‘= Datos: transfieren datos entre el ordenador y el equipo. = Cierre: cierra la conexién, ‘Los drivers suelen usarlas funciones VISA en lugar de las GPIB para ser indlependien- tes del medio de comunicacién. LabVIEW incluye por defecto un driver para el multimetro HP34401A. En él hay sub- paletas que sirven para controlar distintos aspectos de! multimetro, para leer medidas Y otras utilidades como reset, autotest, etc. En la figura 6-15 se puede ver como esta paleta sigue el modelo de instrumento mostrado antes. En el capitulo anterior también 197 LabVIEW se coments que existe un asistente en File > New... > Project > Instrument Driver Project, o también en Tools > Instrumentation > Create Instrument Driver Project para ayudar a crear drivers, ‘Application Program oes ‘Nd vy Figura 6-15. Mend de diner de un instumento ‘Como novedad, LabVIEW 8.x dispone de una herramienta en Tools'> Insteimentation > Find Instrument Drivers para facilitar la localizacién ¢ instalacion de los drivers de Jos instrumentos conectados al ordenador. Para ello el asistente realiza un escéner para detectar los equipos coneciados, cuando el usuario seleccione uno el programa. se ‘conectard a la web de National Instruments (requiere registro), mostrara las distintas versiones de los drivers que existen para ese equipo y los instalara automaticamente, En versiones anteriores el proceso era bajar un fichero comprimido de la web del fabri- cante y descomprimirlo en el directorio insti, 6.6 Ejempios 6.6.1 Ejemplo I: Escaner del bus 6.6.1.1 Explicacion tebrica Este primer ejemplo sera un sencillo programa que escance los dispositivas del bus para pedirles que se identifiquen, Este programa usa el comando “IDN? que se vié en la seccién sobre 488.2. Se crearé usando primero las funciones especiticas de GPIB y después las funciones VISA. Bus de comunicaciones GPIB 66.1.2 Cédigo El programa simplemente es un bucle que recorre todas las direcciones posibles en el bus. Para cada una envia un comando *IDN? y espera una respuesta. Las respuestas las almacena en un array que se muestra al finalizar el programa Figura 6-16. Esciner del bus G8 ‘Al no indicar otro valor en las funciones de leer y escribir de GPIB, se usa por defecto el modo 0. Para mostrar en el array que contiene el resultado Gnicamente los equipos conectados, se usa la funcién Insert Into Array dentro del subdiagrama del CASE que se ejecuta cuando se recibe una respuesta. 6.6.1.3 Resultado Este VI no requiere configuracién, sélo hay que ejecutarlo, A la hora de probarlo se ha conectado un osciloscopio Tektronix con la direccién 2, una fuente de alimentacién, Kepco con la direccién 6, un generador de funciones Agilent en la direccién 10, un ‘gauss-meter en la direceién 15 y un sourcemeter en la 24, El resultado se muestra en la figura 6-17. Figura 6-17, Pane! Frontal del estado 6.6.2 Ejemplo I: Osciloscopio Tektronix TDS210 6.62.1 Explicadén teérica Eneste ejemplo se desea tener disponibles las funcionalidades bésicas de un oscilosco- pio desde el ordenador. Este ejemplo es un proyecto relativamente complejo, por lo que se dividirén las principales funcionalidades en varios subVisren la figura 6-18 se puecle ‘er la erarquia del programa, el VI (a) se encarga de configurar la base de tiempo, (b) configura el canal vertical, (6) pide la grafica al equipo, (4) procesa esa grafica para ‘mostrarlaen el Panel Frontal del VIy (¢) configura el disparo, jem! SS] oo @ @ @ Fig 6-18, Jeraruia det programa Enel programa principal hay que decidir cuando se deben enviar los comandos de com figuracion y cuando se debe pedir Ja gréfica. La configuracién debe hacerse cuando cambie algtin parimetro. Sin embargo la lectura de la forma de onda debe realizarse de forma periédica, por lo que seré necesario crear dos hilos (threads) independientes y pparalelos, uno para la configuraci6n y otro para la lectura. 6622 Cédigo (6622.1 Configracin vertical Este VI se encarga de configurar el cai de oscloscopio con tos parimetros escala (\oltis division), position offset y acoplamiento. Alintroducir valores en la escala dleben tener en cventa las restrieciones que presenta cl equipo. Para esto conviene con sultar ef manual, en este caso seran todos los valores que empiezan por 1,2-y Sen cada década, desde 10 mV hasta 100 V (10 mV, 20 mV, 50 mV, 100 mV, 20°, 50V y 100 V). Los comandos que se envian son: SELECT:CH1 ON; Activa el canal niimero uno, CHI:SCALE 1.0000008+0; -Ajusta la ganancia det canal a un voltio. CH1:Pos 0; ‘Ajusta la posicién vertical del canal. cHL:coUP ac Seleceiona el acoplamiento AC. Este VI tiene muchos controles, por lo que se han agrupado en un cluster. En esta oca- sin se ha optade por construit los comandos a base de transformaciones nuimero a texto y concatenaciones de strings. El valor entre paréntesis que aparece junto al nom- bre de cada parémetro es su. valor por defecto, que se aplicard cuando se use como subVI y no se conecte nada. Después de construir los comandos en un string se ha habi- litado un cédigo para sustituir las comas por puntos para el caso que el sistema opera- tivo y LabVIEW no estén configurados adecuadamente, finalmente se envia el coman- do al equipo. Bl ebigo puede verse en la figura 6-19. Figura 6-19 Cnigutaciin Gl canal de un oseoscopio 151 Labview 66222 Configuraci6n horizontal Este VI (figura 6-20) se encarga de configurar la base de tiempos (HOR) en cuanto ast ‘scala (SCA) y offset (POS). Los comands SCPI son: _Ajusta los segundos por division. Ajusta el origen en %. ‘Como variacion respecto al anterior, esta vex los comandos se construran usando Format Into String en lugar de conversiones y concatenaciones, National Instra- ‘ments recomienda este método. Figura 6-20. Coniguracion de a escala de tempos de un excloscopio, 66.223 Configuracién del trigger El tercero de los Vis de configuracién es el que controla el trigger; en él se seleccionard 1 tipo de acoplamiento, nivel y origen. ‘RIG:MAIN: EDGE:COUP AC; ‘TRIG:MAT: LEVEL ‘RIG: MAT: EDGE:SOURCE CHI El tipo de acoplamiento del trigger y su origen se seleccionan a través de listas desple- gables de tipo ring que asocian un ntimero a cada opci6n; para seleccionar el string ade- ‘euado con el que construir el comand hay varias opciones, las tres mas habituales son: 1 Selectsi hay s6lo dos opciones o CASE si hay més de dos como en la figura 6-19. = Unarray y la funcién Index Array como en la figura 6-21. ‘= Un string con una opeién por linea y la funcién Pick Line. 66224 Lectura de Ia forma de onda En esta parte serd necesario no s6lo escribir, sino también leer. Lo que se leer sera la forma de onda que aparece en la pantalla del osciloscopio. Para ello antes hay que ‘enviar ciertos comands en una secuencia que viene descrita en el manual de usuatio del osciloscopio: DATA:SOURCE Hi; Canal seleccionado DATA:ENC ASCII; Formato de codificacién (en este caso ASCI) 152 Figura 6-21. Coniguracn det tigger de un oscloscopio DATA:WIDTH 1; Niimero de bytes por punto en la transferencia DATA:START 1; Punto de inicio de latransferencia DATA:StOP 2500 Ultimo punto para transferir (mx. 10.000) ‘Después del comando CURVE? se recibiré la forma de onda. Fsta viene en forma de un string de némeros dentro del rango -128 a 127 (para tamaio 1 byte) separados por ‘comas, un ejemplo es «-100, 50,120,,-2,0, 1%. En la funcién GPIB Read el terminal ‘byte count tendra el valor del niimero de puntos a transferir por cinco, ya que cinco es cel maximo niimero de bytes de un punto de la pantalla (uno del signo, hasta tres del _ntimero y uno por la coma). Fl cédigo se muestra en la figura 6-22. Una mejora de este programa seria hacer una transfereneia binaria, Los datos que llegan pueden ser transformados a un array de ntimeros con Spreadsheet String To Array. Para convertir los puntos a tensién simplemente se aplica que el punto dle mayor valor (127) corresponde a la maxima tensién que se puede mostrar en panta- Ila, la cual son los voltios por divisién por el ntimero de divisiones (4), considerando el centro como cero para ambos casos. Fl VI para hacer esta transformacién es el de la figura 6-23, 6.62.2.5 Programa principal En el programa de la figura 6-24 se pueden ver los dos hilos de ejecucién indlependien- tes. El buele de configuracién s6lo contiene un EVENT que hace que la ejecucién silo ocurra cuando cambia algtin parametro; el bucle de la pare inferior es el dela lectura de la forma de onda, para ello se usa una estructura TIMED LOOP que se eecute a intervalos fijos de tiempo (1s). El control stop es un booleano cuya Mechanical Action Switch When Released (no es de tipo Latched porque de esta forma no acepta varia- bles locales) por lo que necesita inicializarse. (Caterer areas ‘Aqua 6-23. Ransformar la respues.a cel oscloscop aun array de meres Para que Ia gréfica sea igual que la pantalla del osciloscopio se escala su eje vertical con #4*Voltios /div en el bucle superior; en el bucle inferior se construye un dato de tipo Waveform con un periodo entre muestras (di) igual alos segundos por division de la escala de tiempo por las 10 divisiones horizontales entre los 10.000 puntos que se reciben, El ltimo detalle del programa tendra una doble utilidad: estética y funcional. Los con- troles para ajustar la base de tiempos y el canal (V/div y see/div) sera de tipo Knob, Parecidos los controles que tiene el osciloscopio. Adem, accediendo a sus propieda- des, como muestra la figura 6-25, se pueden restringir sus valores a una lista conocida de manera que el usuario que maneje el programa slo pueda insertar ciertos valores, 66.23. Resultado EL Panel Frontal resultante se muestra en la figura 6-26. Una vez creado el programa se pueden sacar algunas conclusiones: en primer lugar se ‘ha mostrado un ejemplo relativamente complejo que incluye la lectura y eseritura para ‘mangjar un instrumento a través de GPIB, Ademés se muestran varios detalles que deben tenerse en cuenta cuando se usa este bus, por ejemplo, la construccion de coman- dos, los rangos de datos vélidos, las transformaciones de string a mimeros y viceversa, 154 ‘Bus de comunicaciones GPIB Figura 6-25. Ropiedades de os controles Kab voto por sin y segundos por dvs) las secuencias de instrucciones en un orden preestablecido, etc. También cabe mencio- nar el estilo de los Visi documentados y pudiéndose encadenar a través de error in y error out 155 Figura 6-26, Panel ronal del resikaco Por otra parte se han visto otros conceptos en una aplicacién préctica, come la progra- ‘macién multihilo, la estructura TIMED LOOP y EVENT, variables locales, etc. 6.6.3 Ejemplo Ill: Uso de VI Express, Instrument 1/O Assistant 6.6.3.1 Explicacion teérica Los Vis Express fueron aftadidos en la versién 7 de LabVIEW. Fueron creados para faci Iitar la creacion de tareas habituales, estos VIs son una coleccién de Vis “normales" agrupados de forma que ofrecen una gran funcionalidad y pueden configurarse faci mente. 66.3.2 Procedimiento En primer lugar se debe colocar Instrument I/O Assistant en el Diagrama de Bloques, automaticamente aparecerd un asistente en el que se podra elegir, entre otras cosas, el instrumento que se desea controlar. La direccidn se especificaré con el mismo formato {que las sesiones VISA. Con el botén Add Step se podriin afadir nuevas funciones al instrumento, estas funcio- nes se ejecutarin en el orden en que se muestran en la parte izquierda del VI (de arri- ba hacia abajo). fin cada paso se pueden enviar varios comandos al instrumento, por cjemplo en la figura 6-28 se le pide una identificacién (+idn2) y se espera la respuesta, 3 158 pa ml Fata 6-28, Contiguranco instrument WO Assistant En el ejemplo de la figura 6-29 se enviarin diversos comandos: = Step Write: DATA: SOURCE CHi; Para seleccionar la el canal 1 DATA:ENCDG ASCII; Codificacion ASCTL. DATA: WIDEH 2 Ancho de datos 1 byte. DATA:START 1 Primer punto a capturar. DATA:STOP 9; Ultimo punto a capturar. = Query and Parse: WEMPRE? ‘Devuelve la configuraci6n del canal. CURVE? ; Devuelve Ia forma de onda. En los dos tltimos parsmetros se devuelven datos, por lo que hay que analizarlos y dlividirlos (botén Auto parse). Como cardcter de separacién se elegirs s6lo el punto y ‘coma (campo Separator(s). También es recomendable dar un nombre a los tokken (par- tes en que se divide la salida de acuerdo con la separacion que ha hecho el autoparse) yy seleccionar como salida s6lo aquellos que realmente sean iitiles (ver columna de la iaquierd), : eg aa Figura 6-29. Configurar instrument VO Assistant ‘Una vez, configurado como se desea, Jos cambios se reflejarin en el icono puesto en el Diagrama de Bloques, Solo resta cablearlo correctamente y ejecutarlo, ‘Ademés, presionando con el botén derecho sobre el Instrument I/O Assistant’y selec clonando Open Front Panel se convierte a cédigo clisico de LabVIEW. Bus de comunicaciones GPIB oe er Sob, coh Fura 6-30. Conesionade de Instrument WO Assistant 6.6.4 Ejemplo IV: Generador HP 33120A usando un driver ‘Al usar los Vis de un driver se debe tener en cuenta que internamente no se usaréin los, ‘Vis de GPIB, sino los cle VISA, por Io que la direccién no se especificaré con un string sino con un Instrument Resource Name. Enel siguiente ejemplo se controlars un generador con la direccién GPIB 10. En primer lugar se generar una senal senoidal de 2 KHz y 2 Vp, a continuacién se mostraré un mensaje en la pantalla del generador y finalmente se generard un sonido. Figura 631. Conte de un generador usando su diver 6.7 Ejercicios 1. Buscar y estudiar ejemplos que usen GPIB en la web de National Instruments. Abrir Jos Vis del ejemplo IV y estudiar cémo se usan las funciones VISA. 2. Reescribir el ejemplo Il usando las funciones VISA. 3. Anadir funcionalidades nuevas al osciloscopio, por ejemplo, hacer que el usuario pueda elegir entre mostrar una grafica lineal o logaritmica, hacer la transformada de Fourier a la entrada y aplicarle un filtro digital 4. Crear un sistema de instrumentacién que incluya un generador de sefiales y un osci- lescopio. Aplicar a un circuito RC montado en una placa board una sefal sinusoidal con el generador y adquirr la tensién entre los extremos de uno de los componen- tes con el osciloscopio (adquirir sélo un valor, no hace falta toda la gréfica), por «ejemplo seleccionar como medida 1 el valor RMS del canal donde se hace la medi 159 Labview dda, Hacer que el generador cree un barrido de freeuencias y para cada nueva fre ‘cuencia adquirir el valor RMS. Guardar los resultados en un fichero 6.8 Bibliografia ‘Antoni Manuel Lazaro y Joaquin del Rio, LabVIEW 7.1, Programacion Grafica para el Control de instramentacién, Paraninfo, 2005. Hewlett Packard, Tutorial Description of the Hewlett-Packard Interface Bus, 1999. José Pelegrt y José Francisco Toledo, Instrumentacién de medida en sistemas avanza- das, Servicio de publicaciones Universidad Politéenica de Valencia, 2001.» Kamran Shah, AN 140: Using IVI Drivers in LabVIEW, National Instruments, 1999. SCPI Consortium, Standard Commands for Programmable Instruments (SCP), 99, 1998, ‘The Institute of Electrical and Electronics Engineers, Ine, ANSI/IEEE Std 488.1-1987: IEEE Standard Digital Interface for Programmable Instrumentation, ANSI/IEEE, 1988, Capitulo 7 Adquisicién de datos 7.1 Introduccion En este capitulo se tratard uno de los principales usos que se le da a LabVIEW: Ia adqui- sicién y generacién de senales eléctricas a través de tarjetas de adquisicién de datos. Hay varios tipos de sistemas de adquisicién de datos. Los Data Loggers son sistemas que operan de forma independiente (stand-alone), la tnica funcién del ordenador es el ‘oleado de los datos adquiridos. Las tarjetas DAQ (Data Acquisition) no operan de forma independiente sino que necesitan un ordenador para gobernarlas, las hay inter- ras que usan como interfaces mas habituales PCT, PXTo PCI Express y externas como USB o RS-232. Las capa conus que selene las DAQ son ts Adquiscin de seis analogicas 1 Generacién de sfalesanalgicas 1 Generacién y adquisicion de seals digital Contador y tes, Triggers (pretrigger y posttrigger). 2 Autoclbracgn, sensores et Fl Diagrama de Blogues tipico de una DAQ se muestra en la figura 7-1. 8 pi figua 7.2 Adquisicién de senales analégicas No hay que olvidar que la entrada de sefiales anallgicas es sélo una parte de todas las que tiene una DAQ; eso sf, es el bloque més importante y por tanto se estudiar mas dotenidamente. Su estructura habitual se muestra en la figura 7-2, en ella se puede ver {que todos los canales de entrada se multiplexan, ésta es la configuracién mas habitual, 1no obstante también pueden encontrarse tarjetas con los canales sin multiplexar, lo cual leva notablemente sus prestaciones y precio; el siguiente bloque es un amplificador de ‘ganancla programable que se usa para adecuar el nivel de la sefial al convertidor con el fin de aprovechar todo su rango; los siguientes bloques son un filtro antialiasing, un cir 161 ito de muestreo y retencién (SH) y un convertidor analogico a digital (A/D); final- ‘mente las muestras adquiridas se almacenan en una memoria FIFO dentro de la propia tarjeta Torta do ‘rua 7-1. Esquema de bloques de una tajeta de adquisén de datos Muttiplexor [ye [> (+0 AIFIFO Figura 7-2 Esquema pico de un canal. de envads anakigica 7.2.1 Configuraciones de terminales = La adquisicion de la sefal puede ser diferencial, referenciada a un punto o no refe~ renciada. = En la medida diferencial (DIFF) se tendra en cienta la diferencia de tensidn entte ‘una linea y otra. En este caso el circuito externo y la tarjeta no tienen na referen- cia comin. En la figura 7-3 se puede ver cémo el valor final es la diferencia! entre Jas dos lineas de tino de los ocho canales diferencias, por eemplo tomando el pri- mer canal tre ‘= Como regla general es preferible una medida diferencial/a las otras porque presen- ta menos ruido, mejor rechazo al modo comin, etc = Las medidas con referencia (referenced single-ended, RSE) si tienen un punto ‘comin entre el exterior y la tarjeta DAQ. En el esquema de la figura 7-4 el circuito exterior y la tarjeta DAQ compartirian la misma referencia: AIGND (analog input ground). {asada de un amphifcador de instrmentacion es un cect valor muliplicad por a rest as ne slones de ss dos enttdas. 162 Adquisicién de datos Ae Tee ! : uae Fura 73. Enerada anaiiga aierencil Fgura 74. Errada analégica con referenda comin = La ventaja de esta’ medida respecto a la anterior os quie habré més canales dispo- niles, pero todas esas entradas deben tener la misma referencia. No se recomien- da'si las tensiones son pequefas, si hay una gran distancia entre el acondliciona- dor y la tarjeta, los cables no estan apantallados 0 se ests inmerso en un ambiente ruidoso. ‘= Envlas medidas sin referencia (nonreferenced single-ended, NRSE) la senal exterior y la circuitersa de la tarjeta DAQ no tienen una referencia comin. En el circuito de Ja figura 7-5 se muestra c&mo la sefal exterior esta referenciada al terminal AISEN- 1 163 Labview ‘SE mientras que la tensién en el interior de la tarjeta DAQ tendré como referencia pal a Pa Liew | ={ Figura 7-5 Etrada anakigica sn reterencls comin 7.2.2 Conversion a digital © Elpaso clave en la adquisicin de datos es la digitalizacién, Para ello se emplea un ireuito de muestreo y retenci6n (Sample and Hold) que eaptura una tension de la entrada y la mantiene estable el tiempo necesario para que el conversor anal6gico digital pueda calcular el valor de su salida La tensién ha sido previamente esca- lada por un amplificador de ganancia programable para ajustarse lo méximo posi- ble al rango del conversoe. = Muestrear una sefial es obtener el valor de la misma en ciertos momentos, esos valores son muestras de la seftal o samples. En una adquisicién continua se puede Considerar por simplicidad que el tiempo entre una muestra y la siguiente seré Constante, es lo que se denomina frecuencia de muestreo. En la figura 7-6 a) puede verse este proceso, los puntos sobre la curva representan los samples, el valor en. 80s puntos sera el que le legue al conversor analégico a digital. = El otto paso es Ia codificacién del valor muestreado a su tepresentacién digital. Para esto se divide todo el rango de tensiones de entrada del conversor en varios niveles y a cada uno de ellos se asocia un cédigo binario, $i el conversor tiene ‘muchos niveles para codificar la sefial, necesitari mas bits para codificar cada nivel, pero tendré una mayor fidelidad al teproducir la sefal. Al haber un ruimero de niveles finito se producirs un error que corresponde a la diferencia entre el valor real de la seal analogica y el valor discreto que le es asignado. Este error se denomina error de cuantificacin y es uno de los muchos errores que puede haber en un sistema de adquisicin. En la figura 7-6 (b) se ha mostrado este proceso usan- do ocho niveles. ws Adquisicién de datos Si @ © Figura 74, Claniiteacén de una serial 7.2.3 Procesamiento ‘= La digitalizacién de las senales anal6gicas es necesaria para poder ser procesada y/o almacenada por ordenadores u otros equipos que trabajan en el dominio digital. En este apartado se considerarin tnicamente las tarjetas intemnas a orde- nadores. ‘= Las tarjetas de adquisicion de datos tienen una memoria en la que almacenan las muestras adquiridas © las que van a ser generadas. Esta memoria es de tipo FIFO (First Input First Outpud). Por su parte, el ordenador también tendré reservado un espacio de memoria para transferir los datos dela tarjeta al PC;la parte de memo- ria del ordenador reservada para las muestras de la tarjeta DAQ se llamar butfer. = En la transferencia de datos entre la tarjeta y el ordenador habra mayor @ menor flujo de informacién en funcién de la aplicacién. El voleado de datos de una memoria a otra puede realizarse de forma programada, usando interrupeiones 0 ‘mediante una transferencia DMA (Direct Memory Access); este viltimo método suele ser el mas eficaz al realizarse todo el proceso sin intervencion de la CPU, la transferencia es gobernada por un controlador DMA que toma posesin del bus, mientras tanto la CPU puede realizar otras tareas (que no necesiten acceder al bus). = Las tarjetas DAQ pueden tener varias FIFO, por ejemplo uno para la adquisicién analégica, otro para la generacién y otro para los canales digitales. Tanto las _memorias FIFO como los buffers tienen un tamano limitado, por lo que se deben evitar los ertores de overflow y underflow que se producen si se saturan las ‘memorias. 165 Labview ‘Memoria do! ‘Tarjta DAG ‘ordenador iS Figura 7-7. Fijo de comunicacién ene orienader y tarjeta OAD = Para la generacién de datos puede haber varias formas de usat los buffers, El pri- ‘mer método es parecido a la adquisicién: se van almacenando las muestras en ‘memoria y se van generando. Almacenar en memoria todas y cada una de las ‘muestras puede suponer un gran tréfico de datos en el bus, cuando se genera una sefial periGdica es més eficiente almacenar todas las muestras en memoria una \inica vez y repetir el patrén almacenado varias veces, disminuyendo asf la trans- ferencia de datos; National Instruments llama a este método “regeneracién”, Eneleaso concreto de adquisicién, un vez que las muestras estan en el buffer s6lo resta ordenarlas (en el caso que haya varios canales adquiriendo datos a la vez), cescalarlas y asignarles atributos como tiempo, ete. En algunas aplicaciones de alto rendimiento estos pasos podrian posponerse para hacerlos offline en lugar de hacerlos en tiempo real, y asf evitar una sobrecarga de tareas a la CPU que podria rovocar los errores antes comentados. Actualmente existe una tendencia a integraren I propia tarjeta pa odo pro- cesado que puedan requert las medidas, es Io que National Instraments Hama “DAG intelgente”. Se wata de dispostivos que usan elementos reprogrambles como FPGAS que permite ealiraren la misma arta y mediante hardware com. plejs caleulos a alta velocidad, para mas informacion puede consltarse el dkimo capitulo en la seccon dedicada als sistemas Compactiio. 7.3 Tarjeta de adquisicién de datos NI PCI-6221M Laserie M de las DAQ de National Instruments est formada por: ‘= Entradas analdgicas: una precision dle hasta 18 bits, una velocidad de 250 kS/s y hasta 80 entradas analégicas (Ja 6221 tiene 16, 8 en modo diferencial). Rangos de entrada programables dle £10, 45, +1 0 40,2 V. FIFO de 4,095 samples, = Salidas anal6gicas: hasta 4 salielas de 16 bits, rango de +10 V y velocidad de 833 kS/s (la 6221 tiene 2 salidas). FIFO de 8.191 samples para todos los canales. = Lineas digitales: hasta 48 lineas de entrada-salida TTL/CMOS (la 6221 tiene un puerto de 8 lineas, pero puede tener otros dos canales digitales tsando las lineas PRD). 12 Contadores: dos contadores /timers de 32 bits. t= Triggering anal6gico o digital, bus RTSI para sincronizarse con otras tarjetas, Aaquisicion de datos ‘= Transferencia de datos por DMA (varios canales),interrupciones o de forma pro- ‘gramada, ‘= Reloj interno de base de hasta 80 MHz, de él se pueden derivar otras sefiales ‘mediante divisores de frecuencia. Las tarjetas NI PCI/PXI-6221M de 68 pines tienen el conector mostrado en la figura7-6. Las lineas son: f= Al entradas analdgicas. Permiten medidas DIFF, RSE y NRSE. Los canales estin ‘mulliplexados, constan de un contol para seleecionar la configuracion de los ter- ‘minales, un amplifcador de ganancia programmable, un filtro pasa bajo, conversor analogico-digital (CAD) y una FIFO que almacena las medias. : ‘= AIGND: es la referencia para medidas RSE y el retorno de corrientes para DIFF. uo ne ‘fai wo ° nao | els (sla nao. 3 weoae ea a - ae (Bia ae = fell} remanacen emma woo |ielz| illo sooo (511i 51] ros sr rar Soro fst rs rer Ital cami envures Temas vere H sai fete |/ooe, maria. Le 3 =a 2 fest era |=15| rar SL t||rrveres Ne-Neomet Figura 7-8, Conectr de una tayeta de adqussién de datos 167 Labview SeNORY rine ‘= AISENSE: la referencia para medidas NRSB. = AO: salidas analigicas. Constan de una FIFO donde se almacenan Tas muestras que deben escribirse y conversores digital-analbgico, ‘= AOGND: referencia para las salidas analégicas. = PO: canales digitales, sven tanto para entrada como para salida. En la serie M todas las lineas pertenecen al puerto 0. Las lineas PFI (Programmable Function Interface) también pueden configurarse como el canal digital PL y P2. ‘= DGND: referencia pata las lineas digitale. Las tres referencias AIGND, AOGND y DGND estén conectadas intemamente en Ta tarjeta : 7.4 Measurement & Automation Explorer (MAX) MAX es un programa de National Instruments que sirve para listar, configurar y pro- bar el software y hardware que puede ser utilizado en instrumentacion virtual. Normalmente se instalara la versién 4.1 0 superior junto a LabVIEW 8.20. Interactia con otras herramientas de NI al igual que con otras del sistema operativo; tiene un aspecto parecido al explorador de Windows, al marco MMC (Microsoft Management Console) y al administrador de dispositivos, como puede verse en la figura 7-9. En la parte izquierda de la ventana, en la seccién de Configuration se pueden explorar los distintos dispositives, drivers y programas. A contintiacién se vers cada uno de los. Adquisicién de datos Data Neighborhood: en esta carpets es donde se crea fs canales vrtales ares, te, de los diferentes dispositivos que van aserutlzados. Para ello se debe selec ‘onar esta opcién, se presiona el boton Create New. de la barra de herramientas 1 del ment contextual, y seguir el asistente;en el caso de elegit N-DAQmx Task parecer la pantalla de la fig 7-10 Figura 7-10. Crean tareas en MAX ss Devices and Interfaces: en esta carpeta es donde se muestran y se pueden editar los atributos de los diferentes dispositivos fisicos que estan instaiados en el ordenador. Se pueden mostrar tarjetas de adquisicién de datos, tarjetas GPIB, puertos serie 0 paralelos, entre otfos. Se pueden crear nuevos con Create New... na opeion inte- resante es que desde la version cle NI-DAQmx 74 para Windows se pueden crear csitivos simulados, asi se puede crear una tareta de adquisicién de datos vi tualen la cual probar los programas antes de porlarlos ala tarjeta real. En la fign 27-9 se pueden ver dos tarjetas de adquisicion: una con un icono verde (NI PCI- G0SZE) que significa que es una tarjeta real y otra con un icon amarillo (NI PCI-6221) que representa una tarjeta virtual. 1» Scales: aqui es doncle se almacenan y modifican los parémetros relacionados con las escalas que pueden usar as tareas, Las escalas son una formula que se aplica todas las muestras. 1» Software: muestra informacién sobre el software instalado, entre otros LabVIEW, las librerias VISA, librerias GPIB, librerias DAQ y sobre el propio MAX Si dentro de Devices and Interfaces se selecciona una tarjeta 6221M y se-presiona el bot6n Test Panels... aparecera una ventana en la que se pueden configurar los distintos tipos de entradas y salidas, rangos... de la tarjeta. Ademés permite visualizar las sefia~ Tes que hay en los canales. Es una forma nipida de comprobar que todo funciona correc tamente, 169 Fgura 7-11. Panel ce test en MAX. = Una configuracion hecha con MAX puede guardarse y recuperarse més tarde en File > Import/Export. El fichero resultado puede importarse en un proyecto de LabVIEW y distribuirse junto con los programas realizados. En LabVIEW 820 también puede importarse y exportarse la configuracién de MAX en Measurement 1/0 > MAX Configuration. 7.5 DAQ en LabVIEW LabVIEW proporciona tres tipos de drivers para adquisicién de datos: Traditional NI- DAQ, Vis Express y NEDAQmx. = Los Traditional NE-DAQ son los de mas bajo nivel, usados en versiones antiguas de LabVIEW, actualmente se conservan por razones de compatibilidad. National Instruments s6lo aconseja usarlos con algunos dispositivos antiguos y en situacio- ‘nes muy coneretas. No presentan la capacidad de multiproceso que tienen las nue- 1» Los Vis Express se introdujeron en LabVIEW 7 y hacen la programacién mucho ‘més sencilla y compacta que con los Vis normales al agrupar a varios Vis en un tinico nodo muy configurable. '= Los NI-DAQms también se han introducido con la versién 7 de LabVIEW para ‘Windows. Presentan muchas ventajas respecto a los tradicionales, como por ejem- plo mayor integracion con MAX, un nivel de abstraccién mayor, multiproceso 170 Isicion de datos (multithread), mas robustez; mayor establlidad, etc: La sencillez la consiguen bi camente a través de Vis polimérficos (agrupaciin de varios Vis distintos bajo un tinico fichero ¢icono, seria el equivalente a la sobrecarga de funciones), con To que logran agrupar la tareas que hacen varios Vis tradicionaleé en unos. La figura 7-12 es una comparacién sobre un programa para leer una entrada analégica, de las tres formas mencionadas anteriormente. Fura 7-12; Comparatwa de codigo (adiaonal DAC, OAC y Exp) 7.5.1 Traditional DAQ Ya se han comentado las caracteristicas de estos Vis en el apartado anterior. Su men est en NI Measurements > Data Acquisition. Esta paleta presenta a su vez una serie de ssubpaletas, cada una de ellas para un tipo de configuracién: entradas y salidas anal6- gicas y digitales, contadores y calibracién. Figura 7-13. Anuguas Vis para trabajar con tayetas ONO La onganizacion de las subpaletas es la siguiente: ‘= En la fila superior estén los Vis “sencillos™. Hacen funciones tipicas como leer un dato. Entre otras casas tienen un manejo automético de los errores. Estin hechos para que funcionen “tal cual’ si se abren se puede comprobar como estin hechas a partir de varios Vis “intermedios” y de otras utilidades, '= En la segunda fila estén los VIs “intermedios" y abajo ala izquierda las utilidades. Tienen més funcionalidad y eficiencia que los “sencillos”, Uno s6lo de estos Vis no puede realizar una tarea completa, por lo que necesita de otros. = Enla siguiente estan los Vis y subpaletas “avanzados", son los de mas bajo nivel y rara ve7 $e usan, 7.5.2 DAQmx DAQmx proporciona una librerfa 0 API (Application Programming Interface) que faci- lita la comunicacion con tarjetas de adquisicién de datos. Es compatible con la versién 7 de LabVIEW y posteriores. No es recomendable tsar Traditional DAQ y DAQmx en el mismo programa, ya que si se usa un Traditional los DAQmx posteriores generarén errores hasta que el disposii- vo sea reseteado. Y si se cea una tarea sobre un dispositivo con DAQmx, hay que borrar la tarea antes de usar los Traditional, El método para trabajar con DAQmex se puede resumir en la figura 7-14: crear tareas, configurar temporizacién y disparo, leer 0 escribir y limpiar la tarea Algunos conceptos que usan estos Vis son canales virtuales y tareas. Un canal virtual «es una coleeeién de lineas 0 puertos fisicos que se agrupan para realizar la misma tarea ¢ informacién asociada, como la configuracién o las escalas. Una tarea es algo mas ‘general, representa la medida o generacién de sefal que quiere realizarse, agrupalos canales, timing, triggering y otras propiedades. ro) (Cetera oso) [arecraicommnn (aieaton Eigen Figura 7-14 Ryo de pragrama para trabajar con OAC {La paleta se encuentra en NT Measurements > DAQm Data Acquisition. Se eee — ‘igua 7-15. Funcdones aa raja con tate. O4O, Estos Vis también tienen una agrupacién ldgica en la paleta: ‘= Arriba a la izquierda estén las constantes para crear canales y tareas. = Los Vis de la primera y segunda fila son los principales. 1» La tercera fila son los nodos de propiedades.. En la tiltima fila esta el asistente y subpaletas de utilidades que contienen funcio- nes como autocalibracién, reset, conexidn intema de nas lineas con otras, et: Cabe destacar los siguientes Vis = DAQm Create Virtual Channel 75} ‘Como la mayoria de los DAQa, este VI es polimérfico Ia instancia a usar es seleccionada mediante una lista desplegable que aparece bajo gen anterior se muestran los terminales para el caso de querer configurar una ‘entrada analdgica de tension, Su funcién es crear un anal virtual ¥ anadirio a una tarea, sino se especifca una tarea tambien la crea automaticamente. Al crear una consiante 6 un control para selecionar los canales (terminal physical channels) debe aparecer una lista desplegable en la que se muestran los que estan disponi- bis, también se pueden escribir con el formato «Devi /ai0», donde 1 es el mime rode dispositive y aio la linea, para usar mis de una linea se separan por comas. ‘Adems se puede filtrar el tipo de linens que muestra la lista con la opeién 1/0 ‘Name Filtering de! mend desplegable. También se puede aceptar un string con el ‘mismo contenido, 173 ‘MME ce anna Bgl es Sobre el VI particular mostrado antes simplemente hay que decir que el input ter- ‘minal configuration sirve para indicar el tipo de medida: diferencial RSE o NRSE. En la ayuda se puede consultar la informaci6n sobre cada una de las instancias que ‘componen este VI. También pueden crearse y configurar tareas mediante un asis- tente y acceder a ellas.a través de su nombre (ver MAX y DAQ Assistant Express), En la lista para seleccionar la instancia hay muchos Vis para elegi. Para una deter- ‘minada tarjeta no todos los tipos de tareas son valides. Por dltimo hay que decir ‘que una tarea creada mediante este VI también se puede guardar para poder modi- ficarse desde MAX o usarse en otras ocasiones. = DAQmx Read [35] Lee muestras para el canal o tarea especificada, ésta puede haber sido generada on el Vi anterior o con MAX. Al seleccionar una instancia en concreto se determi ra el formato de la Jectura: un simple dato, arrays, etc: Todas las instancias inclu- yen un parémetro de timeout y, en las que se puede aplicar, otro pardmetro para indicar el ntimero de samples por canal. = DAQmx Write [2] En este caso la lista desplegable es igual que en el anterior. Estos Vis escriben :muestras para la tarea o canal especificado. Si no se usa timing el VI espera a gene- rar todos los samples antes de seguir la ejecucién, con timing se escriben en el buf- fer y ya no es necesaria la espera. La generacin de la sefal puede empezar inme- diatamente o retrasarse, en cuyo caso solamente se escriben los datos, no se “sacar” al exterior Configura la forma en que comienza una tarea, es decir, su condicién de disparo. Un trigger puede tener diversas fuentes, tanto analégicas como digitales, internas la tarjeta 0 externas. Un trigger de tipo start indica la condicién de comienzo de la tarea, el tipo reference indiea la condicién de parada. lon de datos tak ere ot Configura los pardimetros relativos al tiempo en una tarea y crea un buffer cuando es necesario, Estos pardmetros son, entre otros, los samples por segundo, un termi- nal para usar como rele si la ejecucién debe ser continua o finita, ete. » DAQmxClarTask FI aeaacorre en ae Detiene y borra la tarea. Es titi cuando se crea una tarea dentro de un buele. Ademés de esos Vis y otos, DAQmx también tiene un gran nimero de propieda- des com las que se puede tener un gran nivel de control sobre la tarjeta NEDAQmx Base es otro API para adquisicién de datos que no debe confundirse con NEDAQms, aunque externamente son Vis muy parecidos a los de NI- DAQmx, el método de programacin es el mismo y el nombre puede llevar a con- fusin. Un pequefto detalle es que los iconos de DAQm Base tienen en su parte superior ls letras «mBasen, mientras que los “normales” tienen «DACmx».Inter- namente se basan en. APIs totalmente diferentes; para crear taneas en lugar del MAX hay que diigise a Tools > NI-DAQms Base Configuration Utility. 7.5.3 DAQ Assistant DAQ Assistant es un asistente en forma de VI Express que usa los DAQms. para crear, configurar y ejecutar tareas. También puede accederse a él desde el MAX (Data Neighborhood > Create New..). Se encuentra en la misma paleta que los Vis de ‘DAQmx. En la figura 7-16 se muestra el aspectos de este VI (normal y como icone). a Le Fgura 7-16. OAO Assistant Al situarlo en ef Diagrama de Blogues aparece automsticamente un asistente como el de la figura 7-10. En él hay que elegirel tipo de medida (por ejemplo una entrada ana- logica de tension). Después se deben seleccionar los canales, el asisente muestra una lista de los disponibles. A continuacién apareceré la ventana de la figura 7-17 en la que configurar la adquisicion, modificando parémetros como el rango‘de entrada, tipo de ‘coneniGn, ete. Al igual que en MAX, también aparece la pestafa Connection Diagram 175 ee ee ee en la que se muestra de una manera esquemitica la forma correcta de realizar las cone ‘xiones de la senal a la tarjeta. Una vez que se finaliza la configuracién ya se podré acce- der ala seftal desde el VI en LabVIEW. Este VI al igual que otros Vis Express, permite acceder a su cédigo a través de la opcién, Open Front Panel del meni contextual. También puede generar autométicamente un cédigo “normal” o transformarse en una tarea. Figura 7-17. Consiguaciin de DAO Assistant 7.6 Ejemplos 7.6.1 Ejemplo I: Crear un osciloscopio y un generador de funciones con Ia tarjeta PCI-6221M 7.6.1.1 Explicadén tebrica En este primer ejemplo se usaran las entradas y salidas analégicas de la tarjeta para crear un osciloscopio y un generador de funciones. 176 Adquisicién de datos Para el generador de funciones se usar un canal de salida anal6gico. Se escribiré en el buffer la forma de onda deseada y mediante regeneracién se convertira continuamen- teen una serial analégica. Para el esciloscopio se usari un canal de entrada analégico, A la hora de introducir una senal externa se debe tener la precaucién de no sobrepasar Ios limites especificados en las caracteristicas de la tarjeta, También hay que sincronizar de algtin modo la lectura cle datos en el buffer con la toma de muestras para que no haya errores de ningsin tipo. 761.2 Cbdigo Para el genorador se creara una tarea y se configurardn los parsmetros relativos a la temporizacién, después se crears una sefal con el VI Basie Function Generator que-es pasada a DAQmx Write el cual esté configurado con auto start para que empiece inme-

También podría gustarte