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.

También podría gustarte