Sei sulla pagina 1di 373

LabVIEW 8.

20
Y versiones anteriores
... _- --- -

Alfaomega marcombo
Título : LabVIEW. EllhJil lO gráfico d e programación

A u tores:
José Rafa el Lajara Vizcaín o
José Pelegri Seb astiá

~T\'ad~ todo:; 1,,;; de rechos d e p ublicación. reprod ucción. pn':;tamu,


alqui ler o cualquie r otra forma de cesión dd usu d e este ejem plar de la
presente edición l'Spai\ola pvr
e MARCOM BO S. A. 2(XJ7
Gra n Via d e les Corts Catala nes, 594
M007 Bam-\ona

"J ALFAOMEGAGRU PO EDITOR. S.A, 2(XJ7


CI Pitli gora:; 11 3'1
Colonia del Valle ~ 03100
México O.E ( M~xico)

Qu<"dan rigu rosam..n'" pn'hibidas. sio 1" ""t<>ril./lciún "",rita d.. lo" litulaRos d.-l ,." py .
righ l. bajo las sancion e, l"S1.'bl...:idas en la" l'-yes, 1" "'p nx! ucción tol al n p",dal de ,ost¡,
ubra por coalqo icr m<'d in o procedi mie nto. incluid"" 1.. R' pr< >gI"afja y el tralami,-ntn in íor~
m;ítico. as i rom"la distribución de 'i ''ll1 pla r,',; m<'diante a lq uiler o prt!sta mn púb licos,

Con8ulte nuestro fondo editorial


http;l lwww.marrombo.com

Pueden existir materiales adicionales a este libro alojados en la URL:


http:/ / www.maroombo.com/ descargas

f'I a"ror d.. /a obr" .,/o¡''',¡ ,'n " '/,¡ din·.:ción m ......ria/..,; a,ji";"n"I,,,, q"e con.,id..,,-
01,- mlt'n's {"ra ." ',; 1,~·I"r<'s. y ¡"" ir,j ,lcr"../i7afl</o pt-ri,idií"amenr,·.

ISBN (por M ARCOMBO) : 84·267· 142fl.9


ISBN-13 (por MARCOM BO): 978-84-267-1426-8
ISBN (pnr AL FAOM EGA G RU PO EDITOR): 970-15-1 13.1-6
IS BN- l .1 (po r ALFAOMEGA G RUPO EDITOR): ':178-970-15-1133-1>

Depósito lega l: BI-3.179--of>


Im preso en G ráficas Dta z Tud uri, S.L.
Agradecimientos

Queremos agradece r a una. serie de personal' su colaboración directa o ind¡-


rectamen te, algunos aportando medios y otros aportando inform ación q ue
hemos empleado en la elaboración de este texto.

Parte del presen te trabajo está incluido dentro de los trabajos de la aslgnatu-
ra "Sistemas de Adquisición de Datos" en la titulación de Ingeniería Técnica
de Telecomunicaciones en la Escuela Politécnica Superior de Candía. Por
tanto. de algún modo también ha colaborado el an terior profesor de la asíg-
natu ra y compañero José Francisco Toledo Ala rcón.

Tam bién nombrar a Pablo Solo, por iniciamos en la impa rtición de cursos de
postgrado, que posteriormen te han da do lugar a este texto.

Por supuesto hemos de agradecer también la confianza que National tnstru -


ments ha puesto en nosot ros a través de Javier C uñ érrez y Guillermo Prados
y la ayuda prestada con la utilización de un equipo PXI. También agradecer
11 [eroni 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
Atberola.

Finalmente, nos gustaría agradecer a nuestras fami lias por su cariño, pacien-
cia y comprensión .
Introducción

Tras 20 años en el mercado LabVIEW se ha convertid o en un estánda r en el des-


arrollo de aplicaciones de test y medida , control de instru men tación y s istemas de
adquisición de datos. Su flexibilidad y potencia. le ha hecho expandirse a otras áreas
tales como visión artificial, rAes, control de movimiento, HMI y SCADAs para auto-
matización ind ustrial. análisis de ru ido y vibraciones, gestión de información y gene-
ración de informes, etc. Desde hace 5 anos, LabVIEW está creciend o en n uevas areas
estratégicas donde res ide nuestra visión desde Nationallnstruments, relacionada co n
nuevos campos de trabajo como Simulación, Diseño de Control, s istemas embebidos
en tiempo rea l (FPGAs, DSPs, microprocesadores), algoritmos matemáticos avanza-
dos, etc.

Durante estos 20 años, LabVIEW ha tenid o una g ran expansión en la comunid ad


educa tiva y científica, tanto en universidades y centros de enseñanza secundaria,
como en centros de investigación, en la elaboración de práctica s de laboratorio, clases
teóricas en las áreas de control, instrumentación. tratamiento digita l de la señal, elec-
trónica , etc, en el desarrollo de p royectos fin de carrera, tesinas y tesis, y siendo un
puente entre la comunidad educati va y la industria a nivel de I+D+i.
Es un placer, como director de NationaJ In'itruments España, realizar el prólogo de
esta 1 edición de su libro LabVIEW: Entorno de Programación Gráficoj, por la cola-
boración profeslonel durante 8 años con el gmpo de trabajo de José Pelegri y José
Rafael Lajara, por su labor docente con LabVIEW dura nte tan tos años y también por
la confianza puesta en la programación gráfica como lenguaje de desarrollo.
Estamos convencidos de que esta edición totalmente adaptada a la versión de
LabVIEW 8.20 será una referencia en español para el aprendizaje del lenguaje G, por
su interpretaci ón de los principios de funcionamiento de LabVIEW así como su carác-
ter práctico en el desarrollo de ejercicios.

José Pelegrí y su gm po en la Universidad Politécnica de Valencia en Gandía han


decidido dar un paso adelante en la divulgación científica y tecnológica con este libro,
fru to de s u experiencia como profesores e investigadores en ámbitos de la ínserumco-
tación virtual, empleando estándares industriales romo PXI, sistemas de ad quisición
de datos y GPIB, así como cultivando una estrecha e intensa colaboración con
National lnstruments en estas áreas. Gracias por la confianza demostrada y "mucha
suerte!

Luis Pco. Bussi6n Femández Guillermo Prados Gimeno


Director de National lnstruments España. Re;ponsable de área de Valencia

Mad rid . Noviembre de 2006.


,
Indice

, .
Secclon l. INTRODUCCION

capft:ulo 1. Introducdón a LabVlEW. Entorno. .. . . • •. . •. ..... 3


Introd u cció n a la h erramienta de programación labVIEW. Presentación del
e nto r n o de trabajo y ' os menús de herrilmlentits. controles y fundones . "
Se indica cómo crear un programa y cómo se ejecuta éste. Se Introducen los
conceptos de VI, subVI y jerarquía. Cómo genr,ar un proyecto y depurar el
de código. Termina con algunos ejercicios propuestos.

CapfnJlo 2. Estructuras. 37
Las In stru ccio n es de control permiten a un programa ejecutar un código
d e forma condicional o repetirlo cierto número de veces. En LabVIEW
estas Inst r u ccio ne s son estructuras que encierran en su Interior el código
al que afectan. Cabe destacar las nuevas estructuras Introducidas en las
última s versiones como EVENT '1 TIMED LOOP, así como las tradicionales
FO R y WHILE. Se Indican algunos ejemplos prácticos y se proponen algunos
eJe rCIcios.

Caprtulo 3. TIpos de datos. 63


Estudio en profundidad de los tipos de datos disponibles en LabVIEW y de
su manipulación. También se explican conceptos como varIables, referencias
y propiedades que se pueden utilizar. Se finaliza el capitulo con ejemplos
prácticos y ejerCicios propuestos.

,
Sección 1/. ADOUISICION y COMUNICACIONES

CapfnJlo 4. Manejo de Acheros. 91


En este capítulo se tratan las diferentes funciones para manejar ficheros
mediante ejemplos. A parte de su utilidad también se asentarán los
conceptos expuestos en la sección l. Se' "nallza con ejercicios propuestos.

Capitulo 5. Comunlcad6n serie. •. • . . . • • • . .• • . . . . . . . . • . . . . 115


La comunicación serie no se debe olvtdar ya que está presente en multitud
de dlsposltfvos. En este capitulo se presentan dos ejemplos practlcos en los
LabVlEW

que se puede ver la facilidad de Implementar dicho tipo de comunicación en


el entorno de LabVIEW.

CaplOJlo 6. Bus de comunicaciones GPlB. ....•............ • • 131


En sus orígenes. LabVIEW se aplicaba fundamentalmente en el control de
Instrumentación y para tal nn se utilizaban diferentes buses de
Instrumentación, en este caso cabe tratar el bus GPIS. El capitulo comienza
con una Introducción teólica al estándar IEEE 488.1. al IEEE 488.2 Y a la
norma sePI. A continuación se describen las funciones para utilizar dicho
estánd•.,. De manera sencilla se ve su uso y los comandos básicos con unos
ejemplos prácticos. Para flnallzar el capitulo se proponen unos eJerdclos.

CapfttJlo 7. Adqulsld6n de datos. 161


En este capitulo se trata uno de 'os principales usos de LabVIEW: la
adquisIción y generación de señales elé-ctricas a traves de tarjetas de
adquisición de datos. Hay varios tipos de sistemas de adquisición de datos:
los Data Loggers, las tarjetas DAQ con Interfaces pel. Pel Express, pel•••• y
externas como USB o RS·232. Se describen 1M capacidades comunes a todas
ellas así como las funciones que emplea LabVIEW para maneJ".rlas. Además
se presentará el programa Measurement & Automatlon fMAXJ.
A continuación se muestran ejemplos práctlcos para asentar los principales
conceptos y se proponen eJerciCios.

Capitulo 8. Protocolos de comunlcad6n: TCP y UDP. • . . .•• . . .• 187


La Importancia que tiene hoy día Internet Justlnca que se dedique un tema
completo a estudiar sus prlncipi'lles protocolos y la forma en que se pueden
mi'lnejar desde LabVIEW.

CapfttJlo 9.1v:= remoto: VI ser-


y Comunlcadones Avanzadas. 205
Este capitulo es una continuación del anterior, en él se explica cómo usar
el servidor web que Incluye LabVIEW. cómo manejar un programa resIdente
e n un ordenador desde otro y otros protocolos de nivel superior a los del
capítulo 8. En la segunda parte del capítUlo se hablará sobre VI serve-
y su utilidad.

, '
Secclon 111. PROGRAMACION AVANZADA

CapfttJlo 10. 51ncronlzad6n y Muldhllo. . .. .. .. .. .. • .. .. . .. .. 225


Cuando se realiza una pl'ogramaclón más compleja aparecen términos como
pueden ser multitarea. pt'DCesos y sincronizacIón. Se dice que los slstrmas

vii;
Indice general

o p e r tll ivos son muhttarea pOf"que pueden ej e cuta r más d e un prog ram tl a la
ve z; e ste co n cep to pued e e xt e n derse tamblen a untl sola ap tlctldOn y hacer
q ue la a p licació n puedA tene'r varios 'h ilo s' ejecu tán d ose e n pAr...lelo.

Este capitulo comienla eJlp licAndo los conceptos t eóricos y como se aplican
e n LtlbVIEW. a continuación s e d escrlMn las t eocnicas d e' sincro n iza ció n y los
posible s problemtls y solucione s que pueden a piuecer cuando se trabaja con
mu lt ip les hilos.

Capitulo 11. Modelos de programadón. 251


Co ntin u a nd o con conceptos avanzados, en este caprtulo se veran t eocnica s y
mo d e los para d istintos lipos d e programas: tratamiento d e e rro res, sistemas
d e co m unicacio ne s y principalmente maquinas de estados y programolc1ón
o rie n ta d a a objetos.

CapftuJo 12. Código externo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285


Este Ctlpi1.ulo ...bre el código de LolbVIEW a otros lenguajes de progrolmaCión,
e n e l se vera cómo hacer que el código creado con lenguoljes como e , C + + ,
eN o Visual Baslc se puede usar en LabVIEW y viceversa. Ademas también
se e st Ud ia ra la forma de usar tecnologías como ActlveX o la reciente .NET
e n LabVIEW. Una vez mas. las e.pllcaclone's Se' bas...n en ejemplos practlcos.

Capitulo 13. Oplimizad6n del Interfaz. 313


Los dos unimos capi1ulos trñan de optimizaciones. en e ste caso sobre e l
inte rfa z d e usuario, para e llo se muestran ""gunos elementos nuevos o no
habituales que putoden usarse' e n los Interf...ces. El capitulo fi na llz ol con una
serie d e consejos para dar al programa un aspecto profeslonoll .

Cap/tulo 14. Op~mlzadón del código. 337


Esle upi1ulo comienza con una breve Introducción a la Ingeniería del
software y A los Sistemas de control de versiones para más lArde centrarse
e n co m o mejorar el rendimiento d e los pt"ogramas, comparando e l
ren di mie n t o de eje mp los d e p.rogri1mas 'b ue nos' y 'ma loS' 'O
mejor d icho.
'no lan buenos" .

Capitulo 15. Otras plataformas. . . . . . . . . . . . . . . . . . . . . . . . . . . . 357

En el ultImo capitulo se ver"n sencillas aplicaciones del uso de LabVIEW.


con ...Igunos módulos enra. para programar SObre distintas plataformas: en
ordenadores de mano IPDAI. en d lspostttvos reconfigurables IFPGAJ y en
sistemas de alto rendimiento IPXII,


Sección I

INTRODUCCiÓN

Capítulo l . Introducd6n a labVlEW. Entomo.


Int rod ucción " 1<\ he rramien ta d e p rogramación J" ,b VIEW. l' rescntactón
delentorno de tra bajo y los menús de herramienta s. cont roles y fun ciones.
Se indica cómo crea r un prog re rne y cóm o SC' ejec uta l; ~!l' . Se in troducen
los con ceptos (k VI, s ubv l y jerarquía . Cómo gene ra r un proyecto y depu-
rar el de cód igo . Ter mina con al gunos ejercicios propuestos.

capítulo 2. Es1Jueturas.
Las Inst rucciones d e con tro l perm iten ., un p rog rama eíecutor un código
Lit' forma condiciona l ( 1 n-pctt rlo cie rto n úm ero li l ' veces. En L.d:!VIE\V
esta... ín struccíones so n es truc turas q ue en cierran en s u interior el código
,11 qm' afec tan . C.lbt· d t'~I <1CM las nue vas estruct u ras in trod ucido s en las
ultirna -, versiones corno F:vr.m y TIMEO LOll P, asf corno 1,1S trad iciona-
Il'S FOR y WHIL E. St' indi can algunos ejemplos p récttcos y ~l' prtlpOlll'll
" I ~ L1 n (1 s ejercicios .

capitulo 3. TIpos de datos.


Estud io e n profundidad d l' los tipos de da tu" J i"pon ibll'S en L<1bV IEW y
d e s u man ip u lación . Tambi én se e xpli can con ceptos corno va na b les, r...fe-
rcn cia s y p rop it't1alil 'S lJUl' SC' pueden u lili:tM. s..., fin,lli:til el ca p itulo con
~'il'm plos pr écücos y l'jl'rckius propues tos .
Capítulo 1

Introducción a LabVIEW. Entorno

L.lbVIEW l'S el acrónimo de LabOToltOry Yínueí ln strument Engineering Wilrk hech. Es


un il'ngu,ljl' y " 1" vez un en torno d e programación gr áfica en el q Ul' M.' pu eden crea r
ap licacion es d e una form a rápi d a y sen cilla.

'vatíon al lns trumcn ts es la empres.l d esarrolladora y p ropi etaria de L,bV IEW, com en -
LÚ en 1976 en Aust m. Texas y sus p rim ero s prod uctos eran dispositivos pa r.1 C'1 b us d e
ins trumentación GPIB . En abril d e 1983 comenzó el desa rrollo d e lo que serta s u p ro-
d ueto es trella: L,bVIEW, qut' veda la luz en oc tubre de 198" con el lan zamiento de
LlbVIEW 1.0 pa ra Macintosh (los urd enadon..'S más populares en aquella época qUL' ya
d isponían d e in terfaz gráfica) y en 1990 la versió n 2. Par a Windows habría que es pe ra r
.1 septiembre de 1992. Los principales hitos de La bVIEW p ueden verse en la Tabla 1.

Tabla 1 - E\foludón de' 'as dfferentn vrrslone'S de LabVlEW


HOo

Abr il de 1983 Conerva el oesarrono <k' l abVIEW


OCtu bre de 1986 laDYIEW la para M.mmosh .._
Enero de 1990 l dbVIEW 2,0
SCp ~~(l:~J~re ste 1992 Lc1 D\(!~ para wu-oows ._. _
OCtubre de 199 2 l.aD'y:IEW para Sun
OCtubre de 1993 Ll bVIEW 3 0 lnultllJ/dl a(orma
Atll'll de 1994 ~abYIEW para W.ndO'M ~ T_
OCtub re de 1994 L:ll2'!J.~~ ra ftl'.M'r MaCJQIQsh
Ck..!..u_Dre de 1995 LabVIEW R<J~", wooows 95__~
Mayo..dS__l_?J?_ LabVIEW 4.0
M arzo d e 1998 LabVIEW 5.0
Febrero de 1999 ~i?_\(!E\!I 5 l . LV parc1 4~ .Y LV Real·!!~
AgOsto .~e .?~ _ LabVIEW 6J
Enero de 2002 LdbVlEW6,1

M~~~}9_Qª La!:M ~ 7 Expwss. LabVI ~l' DA y ~P<:iA


.~ ~yo d~.2904 LatlVlEW 7 1

3
La bVlEW

"K'" Hito

M<ly o de 2005 w bVlEWDSP


JunIO de 2005 LaDVlEW emoeoceo
OCtubre de 2005 LaDVlEW 8
Ago'i.to de 2006 LaDVIEW 8 10 jEdlOÓn t"i.PE"C1d' pcN el 100
aneersano ¡

1.1 Entorno
L.lbVIEW e~ una herramienta d e progra mación grá fica . O rig lnol mcnte este pmgram.l
esta ba orientado a a p ltcaclo nes d e control de instrumentos electr ónicos u s adas en el
d esarrollo d e sistemas de tnstrumentací ónIo qUl' S{' conoc e como instru me ntaci ón vi r-
tual . Por es te moti vo los programas creados en LabV IEW se guardaren en fiche ros 11.1 '
ruados VI y con la misma e xte nsión, que si gn ifica instrumento virtual ( Virtua l
In..trumeots). También relacionado co n este co nce pto se d ,l nombre a sus d os venta nas
principales : un instrumento rea l tend rá un Panel Frontal donde l ..s ta rán s us botones .
p antal la s. e tc. y una ~ i n'u i t eria Inte rna . En L...abVIEW estas partes reciben el nombre d l'
Panel Frontal y Diagrama d e Bloques respectivamente.
• Panel Frontal, t OS 1.1 parte q ue ve ra el usu ario, s uele terwr fondo gris.
• Diagrama de Bloques , es donde se realiza r é 1,1 progra mación y suele tenor fond o
blanc o.

El Panel Frontal y e l Diagrama de Bloques están conec t ad os a trav és de los te rminales


(de me ntas qu e sirven co mo e ntrad as u salidas de d.ltuS). De la misma fo rma que un
indicador lumi noso dela ca rátu la d e un instrumento t'Stá rep resentado como un diodo
e n la circu ite ría inte rn a, e n un p rog ra ma en LabV IEW ~' m L..mo ind icador lu m inoso
l'!'ota rá representado e n cl Diegrarne de Bloques como un.' s alida dt' tipo boolea no sobre
e l q ue escr ibi r un valor.

En 1.1 figura l -J pueden ve rselas dos ve ntanas mencionadas a ntes . En primer t érmi no
el Panel Fro ntal , co n fond o g ris y dos te rm ina les: uno numérico lla mado Meter y
l~ t.í
otro qu e si mboliza un inte rru p tor lla mad o Booíeen . En el Diagrama de Bloq ues tam-
bién aparec en l~ltlS dos elementos ba jo los mi smos no mb res y representados con dos
ico nos. Al p rog r.1m.u en e l Diagrama de Bloq ues se It>t.'r.\ y oscnbira tic estos Icon os.

En 1.1 p<lrte superior de t's tas ve nta na s se sit úa una barra con va rias herramientas. En d
Di .' ~r.'m a tit' B1uqUl'S l'St.1 ba rra tit' ol' alg un as OpdOOl >S más, figura 1-2.

• ~~ __
Jill El p rimer g rupo d e herramient as si rve p.ua con trola r 1" ejecuci ón
de un pRlgr.1m.l en l ..l lNIEW, El pr imer bot ón ind ica s i ha y e rrores en el pru grdm.l
(fecha ruta ) y, cuand o 0 11 los hay (flecha com p leta como e n la imagen), eiecuta una
H'Z el prl lgr.lm.l . El segu ndo bot ón ejt.'CU l.1 d e forma con tin ua el programa, corno
reg la gcrwrol cs te botón 0 0 d ebe usarse, en s u luga r se empleara un bu cle en el p ro-
gra ma. El terce r bo tón a borta la ejecucíón y el cuarto pe rmite realíz.a r una p.lUsa.

4
Introducción a LabVIEW. Entorno

< >

f lgur d 1-1 Panel Frontal y Diagrama de BIoqLJe~

• ~~ ~ El segu nd o grupo de botones sirve pa ra ayudar a su de p ura-


ción. El primer bot ón l 'S Jl jgJl1ight Execution. una de las herramien tas más útiles
para depurar. r'1Il'nti""1 la ejecuci ón perm itiendo ver el cam ino que siguen los da tos
en el pwgrarrl,l. El slguícnte. Rets ín Wjre Valllt's permite ll ue al colocar un p rob<'
se ob te nga d va lor anterior, Los tres sig u ien tes se uti li.....a n para ""jl'Cu t.U el prog ra-
ma paso a paso .

• 113pt Appkation Font 1


1... El menú desplegable permite form atea r texto s, es rcc o-
mcn dn blc U SO\r los forma tos predefin ido s como Applic.ltion Font o ~vstt'm Font.
• I:¡:;:¡... f[-:O;;;"'ll t::a.. ,
El s igu ien te g rupo se usa pa ra ali nea r, d istribuir, co nt rola r el
ta maño, agru par y o rden a r ob jetos.
• [í] Abre la ayud a.
En cl Iatcral derecho tanto de l Panel Fron tal como d el Diagrama lil' Bloques apa rece el
icono que rep resen ta ,11 VI. fe'.
Tiene u n menú contex tua! que permite acced er a
diversas carecte nstlcas qllt' se r én tra tad as más adel an te.
rara coloc ar fu nc iones en PI Diagram a de Bloques y terminales en l'1 Panel Frontal se
tienen 1.1S paleta.., n menús flotan tes, llamad as pa leta de funcio nes y d e controles res-
pect iva men te. Además también se tiene la paleta d e her ramien tas que co ns ta de d ift'-
rentes útiles. En la ñgu ra 1·3 puede ve rse el as pec to de l"S I.1S tres palet as.
Las paletas de funciones y controles se despliega n ha ciendo clic con 1,;.,1 botón secunda-
rio del rat ón so bre una ...una vac ía dcl Dtagram a dl' Bloq ues o del Panel Front al. También
)
p ued en dejarse fijas presionando el cl ip ( l~ de la esquina s upe rior Izquierda .

s
ubVlEW

--
---
-- """"
-
"".
......
o-

.....
- -~
'"'. ~
'"""'""
Cont.oI Desq\ &;.........,"'"
-,-
e-dt>no,:>.5ooUobon

_.C<lt>tfol...
,'-l!:U Act_

-~-
E"fJf... .

,
,1

Figura 1-3. Drrereores peetas de uecao : n ocooes. controles y nererneruas

Ot ra ven tana muy útil es la de ayuda contextu al. pued e a brirse en Help > Sh ow
Contex t He/p . Esta ventana m uestra información del objeto que es té situ ado bajo e l cur-
sor, ya sea una funci ón , un VI, un controlo un indicador. Ad emás puede a pan'r er un
enla ce a la página de la ayu da rel acionada con ese ob jeto.

, :;=::G::>-
M X+ '1

.......
C~es tbe SlnI rJ tre

Drlookd he lp
< ' .;:

FigUfc1 1·4 . ventana de ayuda contextua r

A continuaci ón se muestra 1.1 Tab la 2 con los ata jos d e teclado má s útiles de LibVIEW.
Pueden perso na liza rse en Tool« > Opt íons > M('nu Shortcut.s.

Tabla 2 . Atajos de teclado más útiles


Com bl~don ee teclas Fu nC':tón

Q RL + R f~ .~ progfama
O Rl...±.... Aborta la_~i6n
CTRL +E Conmuta e~t~f'_la dos ventanas p r lnclpa l~_~ _

6
Introd u cción", labV I EW. Ento rn o

Comb Inación d. tKlas FuncIón

CTRl + B Ellmrnd os nsos rotos


CTRl + H M ue stra u oculta la eyooa coor exnar
O Rl - ? M lJestra 1.'1 dyt lda
CTRl + C Copla los OI?JetoS seeccoreoos al portdpdpel!"s_
CTRl + X Corta los Dbjeto~s e.I~C:~lOnados al ponapaoees
CTRl +V - ~~--~~
Pega 10 5 ot~eIOS desde el portepapees
C TR l -o- Z Desnace taúlnma eccon
CTRl + SHIFT + Z Rehacer
O Rl +S Gua rda el V I
TAB Cdmb¡a ent re IdS. rerramerxas de la pelleta de .!:!eframlema~_
CTRl + arrastrar Crea und copa _ele_loS objetos seecco na oos
SHIFT -o- arrastrar M ut"Vt." 105 obJNOS solamente en una oreccon

1.2 Menús (paletasl


1.2 . 1 Menú de herramientas
vted lan te la paleta li l' herramientas se puede seleccio nar el instrumento que se d e-ea
c-a r, esto ha ce cam biar el tipo de cu rsor del rat ón . En la figura 1-5 st' puede ve r 1,) pale-
ta dl' hcr rarnícnt as ro n 11 botones.

Figura I -S. Paleta de herram ien tas

Autommíc TO(lJ Sotection. Si está activado sirve para tlue se seleccio ne la


berrarnlenta d e forma a utomá tica d ependiendo del elemento sobre e -l qu t'
..itúc el curso r.

Operoto vnlue. Sc.' rí.l el cursor d isponi ble cua nd o el VI es ta ejecu t ándose, sirve
p rincipal mente pa r.l ca mb iar va lores en los co ntroles del Panel Frontal.

I~ Position / Si7t'/ SL'h'ct , Como su nom bre ind ica sirve para posi cion ar objetos , tanto
en e l Diag rama de BItXJll('S como en el Panel Frontal. Tambi én sirve para cambia r
el tamaño y selec cio na r elem en tos.

7
La bV IEW

Edil Te x/. Ca mbia el cu rso r para poder escribir tex to. Se puede usa r, ent re otras
CI ~'"IS,
para esc rib ir com en ta rios en el Diagrama d e Bloques.

r¡:1 Co nn ect wire. Es 1,1 he r ra m ie nta q ue sirve pa ra ca blea r. Uniend o unos elem en tos
~ con otros po r ca bles, los datos flui rán ,1 tra vés d e ellos . Si los cables a pa rece n en
co lor g ris y de forma discon tin ua significa que el ca ble es tá r oto (h.1Y u n error): e l tipo
de datos tOS incompatible u los ter minales n o son los adecuados .

ObjL'C f Shnr tcu t M onu. Despliega el me nú rontcx tua l asociadoa un elemento. Es


cq ut valen tea ha cer die co n el bo tón secunda rio d el ra tón .

Scrott Wind o w. Sirve P,lT<l mo ver el conten ido di' 1.1S ventanas del mismo mod o
qUl' s i se usar án ¡"S barras d e desplazamiento 1.l!I'r.11t'S.
~ Selle/e.lr Brml..poillt. C rea o bo rra un punto de rupt ura en un determinado ele-
~ me nto (función. VI. es truc tu ra o cable) . C ua ndo 1.1 ejec ución llega a L'SC' p un to St:'
d et iene.

Prooc D.1t.1. Crea u n I'r llbc,.' en un cable. Un p rollf.· l'S una ven ta na flotante q ue
m uestra el va lor que circula por el ca ble.

Get Color. O btiene el va lor d el color de un elemen to.

~ St,t Co lor. Colo rea un elemento. Tien e dos posib ll'S colores, el p rincipal y el dl'
LCJ ~ fond o. ambos p ueden ser asigna d os dt.' forma mdepcndíente. Uno de los co lo-
res di sponibles l'Stá ma rcad o med iante u na T, SI;:' trata del colo r tran spa rente.

--
[30 0 • • 0 • • • • • r3. 0 DOO
. O• •• • EJ O• • O 1\". 0..0
Q a-: Ob)l:<:t ~
Figura r -6 COlores

1.2.2 Controles
El menú que a pMl!Ce en elI'ancl Fro ntal es el me n ú d i' con troles . l'n l>l M' p ued en M' 11.'C·
cíona r I()~ termi nales qm' servi r án pa ra Interactu ar con elusua rio.

l.os termi na les se dividen cu con trole s e indicadores, ,1lmqul' .1 veces se les s uele llam ar
,1tod os gené rica men te co ntroles. Los con troles p ropia men te dic hos son las en tradas de
d atos y los indicadores I.ls s.lIid.1S. Está n clas ificados seg ún su es tilo en varios s u bme...
n üs: Modern. Systt'm y Clsssic. Den tro de cad a sub men h.1Y otros men ús q ut,.' clast ñ-
ú

can los con troles por el tipo d e da tos. Los más usados so n los q UI' s irvf.'n p.l ra d ib ujar
gr éfícas y los d e 1.1 p rimera fil,l d el submen ú Modcm. és tos de izqu ierda a derecha.
corres pond en a datos di' tipn n un wríco. booleano, textos y tip os co mpues tos .

8
In trodu c:c1ón a La b V IEW . Entorno

Para usa r los controles hay que selecciona r el terminal desead o y llevarlo al lugar d e-
-ead o de l Panel Fronta l,

Svst em ~

ClasSIC ~

Expr ess ~

Contr olDesql &:~ ~

Addon> •
User Cootrols ~

Sdect III Cont rol.. ,


.!'El 80 ActlVeX ~

Figura 1-7. Palet<l de controles Figura 1·8 Palet<l de gr.á fJcos

Los indicad ores para gr áficas merecen un trat o aparte debido a su importancia. En 1<\
oa leta de gráficas hay de varios tipos, siendo los más importa ntes W.ll't'{omJ Cturt y
:,'.l l ·ef or m Grspb.

r "-'rt>et (o-lll

[j]

....................
,
SOJl'"OS ,on . ......

<
FIgura 1-9 Comparacón entre un Wdvefofffi Grifphy un W..wefort1l e nea

9
La b VIEW

Los indicad o res Wave(oIrn Ct urt se d iferencian de los WeH't'(OIrn Grap h en que b tns
u ltimos d ibuj an totalmente la gráfica cuando lleg an nuevos d atos , sin e m ba rgo los
W.lH'(orm Ch.l rt anexan el nuevo da lo a los existentes . El numero de da tos qUt' ~'
muestran puede aju....terse escribien do sobre los n úmeros que apal1"C1:'ll en los ejt.'S (l
dl;.lf que L...abVlEW los ajuste a utomá ticamen te CA utoScalt'). En los W,n-efoIrn Cturt
ta mbi én se puede ajustar ('1 número máximo de puntos que se guard an a través de 1,1
opción Cturt History Length d cl menú con textual. Mediante los menú... con textuates de
los elementos de las gráficas se pureen modificar muchos otros as pectos corno el color,
in terpolaci ón , elemen tos a mostrar, etc.

En la ima ge n d e la figura 1·9 pueden WCS€' ambos indicadores y sus principales d ife-
n-netas . El cód igo d e la parte izq uierda repite un bu cle 50 vece-s. en es te bucle se genl"
rol un número alea to rio por cad a itera ción , después toe crea un arreglo o a rrav co n lo!' 50
números y se muestra n en un Wc1 l't.'{flrm Graph y u n Wa n'filrm Ctum. En el prim e r o
sólo ~ dibujan 50 punt os , y és tos se so brescriben cada vez que St.' ejecu ta el programe1.
En el segundo los d atos nu evos se van co loca nd o después d e los antiguos (\'e-asc.' 1,1
n urnc rocí ón del e je X), el resultado mostrado es d espués d e d os ejecuciones (100 datos
generad os). En concl us i ón St' puede decir que el IVeH"t '(o m l Cns rt tiene memoria y el
W.H"efoIrn Gr'lph no.

UN p ráctica recomendable en tod os los controles e indicadores es añadirles un te xto


q ue.' indiq ue L1 fun ci ón qUl" real izan en la ventana qu e apa rece di seleccionar en el men ú
contextual Ot"!'Crip tion c111,1 Tip. Este texto se mostrar á en la ventana d e ayuda con tex-
tual cuando el usuario co loq ue ",1 ratón sobre el terminal.

~ ....> cu.'O> _
__..<l
......
b ....,.,..
_

...
fi9.Jfa 1- 10. \.t>ntarla que pemt e oesoce cada [('fmrnal

Sobre tod os los con troles e indicadores co locados en el Panel Frontal aparece un texto.
por ejemp lo N umeric, &loledn. Meter, Wd\'efonn Cturt , etc. Este texto es la etiqueta o
wbt>1 q ue sirve para iden tificar al elemen to tanto en pi Panel Fro ntal romo en el
Diag rama d e Bloques , así romo en variables, propiedad es. refe ren ctas o métod os q Ut'
dependen de ese co ntro l. También existe otro texto llamado Cc1p tion que só lo puede ser
visible en el Panel Frontal. Aunq ue no lOS necesario. lOS conveniente que cada co nt rol

10
Introd u cción a LabVIEW. Entorno

ten ga un Lsbet diferente que d escriba su funci ón, si es necesario en el Pane l Frontal se
p ued e usar Ceptíon y tip pa ra presentar una descripción más ex tensa.

Iod os los controles e indicadores tienen elementos com unes en su menú con text ual .
corno hacer que tengan un valor por d efecto ( Ul td Operetions > Mak e Current Vd /u~
[\'fault ), hacer que sea n visibles o no (desde el Diagra ma de Bloques H id e/ Sbow
G 'Otm /), et c. Otros elementos d el men ú depen d en del tipo d e co ntrol, como en los
.J ~ays a ñadir más d imensiones, en los gráficos modificar co lores, fuentes, tipos d e
nterpolaci ón. etc.

\.d l'm.is d l' los con troles disponibles en este menú, se p ueden crea r otros nuev os
-rediante la mod ificación de un o ex isten te, para ello primero hay que colocar ,en el
° anl'1 Frontal un cont rol d el ti ro d e datos deseado y después elegir en el men ú Edi t >
("u..tomíee Control.

Fq.sa 1-11. 0p00n pararnoc:IItilAr o crear lXl contrOl

En la pa rte s uperior aparece el bo tón Ed il MOOe ~ y Custom íze M OOe ~ . El p ri-


mero de ellos ha ce que e l con trol se com po rte co mo si estuviera en el Panel Frontal. El
-egu nd o se parara los d is tintos el emen tos que componen el contro lo indicad o r. Los
controles est án co mpuestos d e peque ñas partes, por ejemp lo un slid I.' numérico te ndría
LJbt'l, escala, d isplay, uni d ades , botones d e incremento y d ecremen to, partes cos m ét í-
cas. etc. Estas pa rtes también se pueden ve r y modificar en Window!> > Sh ow Parts
i\'indow, en es ta ven ta na se pued e aju sta r su tamaño y posi ción. Cad a pa rte tien e u n
m en ú contextu e! a trav és del cual se pued en im po rta r / exporta r imágenes.

Las partes p ueden mostrar diferentes gráficos en diferentes momentos. Po r ejemplo, un


control boo lea no tiene cua tro gr éficos diferentes: es tado FALSE, estad o TRUE, estado
S,";tch When Reled!>t'd y estado Ls tcn Wh en Reteeeed (m ientras está p resio na do pi
bot ón). C uando existela opción d e ten er varios g ráficos, el men ú contex tu al tendrá la
opc ión Picture ítem pa ra selecciona r uno de ellos.

C ua nd o se co loca un co ntrol persona liza do en un Panel Fro ntal no existe ningún vin -
entre el fichero donde el con trol es t é defin id o (·.ctl) y sus instancias em pleadas en
('"\110
cad a V1 donde es u sado, se tra ta de copias independientes. Si una insta ncia se modtñ -
ca no afecta al resto. Las definiciones de tipos y definiciones de tipos estrictos (T ype
Dei. y Strict Typc U ' f.) se usan pa ra enlazar tod as las instancias de un co ntrolo indica -

11
La bV IEW

Copy to C~"rd
Impor' Pil:tur~ traro Or.t;.o..,rd
teocet fl om (~ d 3t Satr~ S/:e
Importftom He.. .
Import from File at sere Slz&••,
Revert
Or rCJl'l~I51 ...

PictU'e Item •
lI depeldent 5im;

FigUfil 1- 12. M .mej O de los element os qu e compo nen un control

d or .1 un mis mo fichero "ctl. De esta forma al mod ificar el fiche ro se modifican tod as
las inst ancias . Se puede elegir c ómo se d esea crear el control mediante una lista dcsple-
gable en 1.1 ba rra de he rramien tas junto a l botón Edit/ Custam ire Mode.

Las Ty pe Detinitions definen el tipo d e dat os de un contro l. Cua nd o el tipo de datos


camb ia. tod os los con troles asociados a él ta mbién ca mbian . En el me nú co ntextua ! de
u na ins tan cia se puede seleccionar AU/O... Updete írom Typo 0..-1. pilra d es activa r 1.1
ac tua liza ción a utomática .

Un S triet Typc lJe(ini tillll hace que tod as las ins tanci as
sean iguales, no só lo el tipo de datos. también en ca ree- :t;l Fu'1:tkl.~ Q. s••,,"

'giiA~"
te n st icas corno el rango. tamaño, colo r, etc. De es ta for-
ma si S(' modifica la definición se ac tualiza rían todas las
inst ancias. Desde el men ú con textua ! se puede elim inar
~ [v. '
ol cn lace entre Id in stancia y la definición.
17I IlliP
: 1- 0 e- lilD

e ..,lre ~
~

-
1.2.3 Funciones
Est a paleta l OS la gUl ' st' mues tra al tr abajar sobre el
Diagrama de Bloques, en ella se p ued e acceder a las dlfe-
OID ••""" ~•J Q<!llo

-,
rentes fun ci ones , s ubvls y estruc tu ras di sponibles. MeMu' ement l/O
_ vo •
Al igua l q ue:' en el menú d e con troles , en este ta mb ién V!Sb"I and MoOOn •
hay va rios suamcn us q Ul' se div iden depe nd iend o d e la •
aplicación . L as funciones más usada s son las de l sub rno- 5q1aI ~ lXe~mo;J •
nú I'rog remmíng . Cata C(lIJ'IfllI.ri::at:ion •
Come<:tMty •
El p rtm ero d e los submenús d e Programm jn~ es Contrd DeW7l So Sinuatlon •
Suucture« Con tiene elementos q Ul' ~ 1O eq uiva len tes a SqIalExp<es$ •
las in st ruccion es de con trol d e los lengu ajes convenció.. Expr eS$ •
na tos. es docl r, so n los bucles co mo WH ILE o FOR y la •
es tructu ra co nd icional CASE adem ás de ot ras. Més ad e- """""
F_~


lan te se d edica un tem a com pleto a las es tructuras . ~lb ".es •
SeIect o!lVI.. .
FIgUrd 1-13. Paeta de rurocoes

12
Introducción a LabVIEW. Entorno

Figura 1- 14. Paleta de estnxtcras

Los sigu ien tes menús de Progmmmlng se dividen según el tipo d e datos. Están los
Jatos simples como los numéricos, boo leanos y s trings (tex to), además d e los comp ues-
tos como los cluster» y arrays. Ca da uno d e estos men ús tiene funciones para trabajar
con esos d atos.

l> í> [:> [:> ~;;¡ ·IPU=~=:J


E9 E9 IP fit> ~~ [D E> lE> 13> ~
iJ> ¡¡, ¡¡, ¡¡, í9 ,sr¡
lE> E> & 1'>
B> B> B> I? I:i> '~ . 1P ¡p. ¡og lffi lB
I!lll E!3 ISJ r¡j¡ lDmJ liEI ¡¡¡;¡
El rs m ~-'I """"'~~~"""l~
LI:gJ I
~----J

Figura 1- 15 Paletas de toe s de dato s numéricos. booleano s y text o

Los d atos numéricos se d ividen en enteros y de coma flotante y dentro de cada uno
pued e ha ber d isti ntos tamaños, se puede cambiar d e unos a otros med iante el m cn d
co ntextus l > Repreeen tet íon. si se aplican dos nú meros, por ejem p lo, un entero y otro
flotante a una fun ción , ésta cambiará automáticamente el tip o d e los da tos (coerciorñ
para que así se p ueda opt.'rar con ellos. Los booleanos únicamente p ueden ten er dos
v al o res : Verdadero (TRUE) o Falso (FAI5E), por esto so n los a p rop iados para crear
botones.

13
LabVIEW

Los tip os d e d atos com p uestos es tá n, como su nom bre indica, formados por o tros
d at os, po r 10 tanto no se puede hablar simp lemente de arrays sino que se debe decir
array de números, array d e booleanos, etc. Los arrays, ta m bién lla mados arregl os, son
listas ordenadas de valores mi entras qu e los cluster son un con jun to desordenado de
otros datos, son eq uivalen tes a los STRUCT d el lenguaje C. Para ind ica r los d atos d e que
es tán com puestos ba sta con arrastra r constan tes de otros tipos de datos en el interior
de los arrays o d ustere.

Figura 1-16. Paletas de datos tipo arrays y ousters

En la figura 1·1 7 pueden verse va rios datos de cada uno de los distintos tipos v istos
ha sta ahora, en la parte izquierd a se representan como controles, en el cen tro com o
cons ta ntes y en la derecha como indicadores. Obsérvese el se ntido de la flecha bl an ca
en el lateral de los controles e indicadores, és ta sirve p ara diferenciarlos, si apunta hacia
afuera se rá un control (lectura de d at os) y si apunta ha cia d entro se rá un ind icador
(escritura d e datos). Además el color del control se rá indicativo del tipo de datos al que
corresponde. En el ca p ítulo 3 se estudiarán los tipos de datos en detalle.

Mediante el menú con textual se puede acceder a diferentes opciones, así para los
numéricos se puede elegir su formato de representación, para los strings la forma en
que se visua lizarán (normal, contr aseña, etc.). A los arrays se les pueden añadir dimen-
siones, etc.

Al igual que con los con tro les, el métod o para usar las funciones y los Vis d e la p aleta
de fun cion es es "arras trar y colocar". La diferencia entre una función y un VI es que las
funci on es son objetos con una funcionalidad fija y s in Panel Frontal mi entras que los
VIs son programas hechos en LabVIEW por Na tional lnstrumen ts u otros programado-
res que s í tienen Panel Frontal y se puede acceder a él haciendo d oble die sobre e l VI.
Los VIs disponibles están en librerías dentro del direct ori o o/miirectorio de ins teloci ón
d e Lab VlEW% \ ví.iib .

14
Introducción a LabVIEW. Entorno

...,"
' lO

~1
!
·~1 ·~-1
lZ3 '
:56
i '
FIgura 1-17. Diferentes reos de daro s

Las funcion es y VIs generalmen te operarán sobre una o varias entradas y proporciona-
-an una o má s salidas. A las entradas se le conectará un d ato del tipo requerido que
;:'UI.-',:Ic provenir d e un control, una cons tante o una salid a d e otro VI o funci ón y a s u
salida se podrá conectar un indicador o una entrada de algún VI o función .

And
•y ,_r--
... ...... 'A"'
~
._"
·--- X.onu . y?

Figura 1~ 18. Función And

1.2.4 PersonallzacJón de los menús


Las paletas de controles y de funciones pueden pc rsonalízarse y también se pueden aña-
dir nuevos menús basados en VIs creados por uno mismo o por otros programadores.

Cuando se crean menús nuevo s, por convención, los VIs y con troles se guardan en
' xd írectorio de insta lación de LabVIEW%\ user.ííb y los nuevos menús deben crea rse
den tro del submen ú User Librsriee y User Controle.

Para modificar el aspecto de las pa leta s ha y que ir a Tooís > Advenced > Edi t Patette
Set, figu ra 1-19. Cuando se hace se abren las dos paleta s principales y se puede nave-
ga r p or ella s d e forma normal, pero no se pued en arrastrar los VIs y controles al
Diagra ma de Bloques y al Panel Fronta l sino que en cad a VI y submcn ú ap ar E.'C e un
men ú d esp legab le con una se rie de opciones q ue permiten añadir nu evos menús y Vis,

15
LabVIEW

modificar íco nos. hacer que cua nd o se usen no se añad a e l VI como subVI sino s u cód t-
~u(M erxt' VI) , etc.

lr:-· .
prueba.'tI

Move ll:em
• _~""'_
.~~ Delete rtem
.. CI)Cly Icon
MerQe '0'1
DtspIay P&h To P~e fIe .•,
5ynch"onize Wth Direct ory
Sto!lt'ld«d Palette View •
FiglJ/d 1-19. M ocntc aoó n del aspecto de paletas

El esq ue ma de los men ús dt, las paletas se guarda en un fiche ro con extensión · .M N U,
Una vez q ue se han realiza do y gua rdad o los cambios ya est én di spo ni bles los nuevo..
men ús y se pod rán u tili...M corno cualquier men ú nativo de LabVIEW.

~ .. Use!" libr e-es


LSubm<mu

F'9lJ/d 1·20 SUbmenú de la IIhreria de ususr o

También en Too/s > Options > Control/ Function 1 '.l lt 'ttl.~ h.1Y va rio s pa r ámetros p.:lT.l
ca mbiar su as pec to. Po r último ha y qm' deci r que si no st· encuentra un VI en tre tod os
t>S( IS men ús o s ubrnc n ús ta mb ién se dispone d e la opción de busc a r un VI o con trol pnr

su no m bre med ia nte el botón .~ '.1rch de 1.1 parte su pe rior de las paletas.

1.3 Cre a ción de programas


En LclbVIEW la programación se n-alizn en el Diagra ma d e Bloq ues . Un progra nlo1 habi-
tual men te es t é fo rm ad o po r:

1. Contro les: sir ve n de entrada pa ra los d a tos.


2. Fun ciones , V1 s y es truc tu ras: o..·.lliJ".an u na o varias operaciones con eso s d a tos.
3. Ind icad ores: s irven de S.,lid.l para los da tos,

Los datos "circulan" por l'i rrn~rama median te ca bles, qUl' sirven para unir un os ele-
mon tos co n otros , Para realiz a r 1.1 conexión se utiliza la herramienta Ccnnect Win' de
la pale ta de herramientas. Un cable tpndrá una única fuen te (cont rol, cons ta nte o salí-
da de otro elemen to) y uno u va rios d l"Stin us [ind icador u entradas de ot ros elem ento s)
d l' tipos com pa tibles . El ca blead o. e n general. debe se r lo má-, corto posible man teníen-

16
Introducción a labVIEW. Entorno

::...-, un.' cla rid ad s u fkic ntc. Una opc ió n úti l qUl' .1PMt'Ct' vn t'l menú conte xtua ! de tos
.a oles I-'S C íean Up Win' llUt' realiza un trazad o a uto m ático d e lil ruta de l ca ble. Un
...ucn tra zad o li d ca blea d o no sólo e-. mil" clogan te sino llUl' ta mbi én pUl'lil- ha cer q ue
, orogra ma tenga un ,», pres taciones s uperio res en cuanto a memo n.t u lilir ada .

=-''l la figu ra 1-2 1 p uede verse un programa en L.<I bVIEW. Consto d e do..; en tradas, una
.:.. tJ. p(l ~ tring y ot ra num érica. La fun ción ~tring Lengt h obt u-rn- r-l n úrm-ro dl' cara cte-
~~ .... de 1.1 entrada de te.. . to. l'Sol cantida d es num érica y St' s urnaala otra en trad a rncd í.m -
."" :.1 función A ctd. El p WW.1tn.1 tie ne d o.. sal id as, 1.1 p rim era d(' l'1I.1'" l'S un a cop ia duplí-
_' ~ J a dl' la entrad a tip o .'i t rin~ y la seg unda es la su ma delalongitud til' la anterior más
.3 en trad a num érica .

I I
'. !
l

L na \'pz creado el p rohram<l st' d eben introducir los d at os iniciales en Ins controles de l
P.m.·1 Frontal, etccutarto p rl'Sinll.mdo ct bo tón Run (CT RL+K) y cua ndo acab e ver tos
res ultad os en los ín d tcod o rcs. La figuril 1-22 mu es t ra la ejecuci ón lid pmgr.1m.l an terior.

.

Flqur ,l 1-22 . E.¡e cuclÓn del proqrama atu cno r

17
LabVIEW

Pa ra obte ne r un alto re ndimiento LabVIEW es un lenguaje com p ilado. C ua ndo un pro-


gra ma ha sido modificado y se va a gua rdar II e jecu tar ge ne ra lmen te se reco m pila . Al
com p ilar l'I cód igo del Diagra ma d e Bloq ues pasa a cód igo máquina. El código co mpi-
lad o hará llamadas a otras funcion es d e libre rías ex te rna s (Lab VIEW Run- Time Engine)
para ta reas como di b uja r gráficos u acceso a ficheros .

1.4 Flujo de ejecución


Al lengu aje de p rog ra mación que usa Lab VIEW también se le lla ma lengu a je G . La
ma yoría de los leng ua jes S(.' basan en un a p rogramaci ón im perati va , la cu al es simp le-
mente una s ucesión de operacio nes. Sin e mbargo el lenguaje G no usa una p rograma-
ción im pera tiva sino una e jecución ba sada e n el flu jo d e da tos (d ataflow). .

Un progra m.l en LabV IEW cons iste bás icamente en un a se rie de funciones un id as
media nte cables . Los datos circ ula n o fluyen por los ca bles . Una función sólo pod rá
ejecu ta rse cua nd o tenga d is po nibles todos los datos q ue le si rve n como e ntradas. Es ta
for ma de ejec u ta r un programa favorec e el pa ralelismo y es más ap ropiada pa ra si ste-
mas m ultiprocesador y multihilo.

A con tin ua ción S(;' mostra rá n una serie de im égenes para explicar el flu jo de eiccucí ón
de L,bVIEW mediante un ejemplo.

El p rog ra ma consiste e n d os operaciones matemáticas: la su ma de d os núme ros y la


mult iplicaci ón del resultado de ésta por otro núme ro. En la figura 1 ~23 se p ued e ver el
progra ma y los datos d e e n trada en el Panel Fron tal.

Figura 1~23 _ Programa para anahZ03r el fluJO de eecooon

El prime r paso de la ejecución lle va rá los datos de los con troles Operando A, Operando
B y Operando e a las entradas d e las funciones Add y Multiply , e n la figu ra 1-24 p uede
verse qu e las en tradas d isponi bles es t én marcadas con un punto.

18
Int roducción a La bVIEW . Entorno

Figu ra ' -24. valores dispon ib les en las entradas de la nmcon Ad d

La función Add tiene d isp on ibles los valores de su s dos en tradas, sin em ba rgo la fun-
ción M ultiply necesi ta el valor de otra ent rada, por 10 tanto en el sigu iente paso se
podrá ejecu ta r la funció n Add pero no Mu /tiply . C uand o se ejecu te el res u ltado de la
sum a, su valor pasa rá al ind icador A +B que 10 mostra rá en el Pan el Frontal y ta mbién
circu lará hasta la en trad a que faltaba d e la multiplicación, 10 que pe rmi te que en el
sigu iente paso pueda ejecutarse .

Figu ra 1-25 . Siguiente paso de la eecucon

Fina lme nte el resu ltad o d e la multip licación pasa al indic ad or (A +B)"C Y el program a
finaliza .

Figu ra 1 26. Rujo de ejecución

19
Lil bV IEW

En el ejem plo an terior el orden de ejecuci ón es fijad o por la form a de cablea r unas fu n-
d on es co n o tras. En la figu ra 1-2h pued en verse d os programas.l'n el p rimero oc urre lo
mi... nuu el o rden d e ejecución lo fija el cableado, p rimero se ejecutará Increm mt y d es -
pm>s SqU.H'1:" R(Jot en el segundo p~rama hay d os funcio nes pe ro en tre ellas no exis-
te ninguna dependencia d e datos, por lo tanto no hab rá ningún orden en la ejec uc i ón
de Docrcment y Squ,m'.

1.5 VI Y su b VI
UlS ficheros con los program as cread os en Lab VIEW se lla man v ls t v írtual ínstru-
m" n l). En muchas ocasiones un progra ma será de un tama ño tal q ue hab rá que sepa -
rarlo en va rios ñc hcros o hab rá alguna secci ón de código qu e convenga reutilizarl,]
va rias veces . Un VI puede con tene r il otro de forma qu t:' el segundo seria un sub v l d el
p rimero. el conce pto lOS equívalcnte a las func iones d e u n lenguaje tr ad icional.

• 0_
1 __

f'9Ura 1-2 7. Progrdma que utuza diferentes roroo-es

En el ejem p lo de la figu ra 1-27 St' p uede ver un programa qu e tie ne como entradas
Lím ite s uperior y Limi le inft'rior. estas entradas se lim itan de forma program ad a a 360
y O respec tivamente media nte las funcion es d e com pa ración Ú'S...<;? Gn '.lt('r? y SeIt'CI. A
las s alid as de las fun ciones de co mp.rmc i ón se ob ten d r é un valor TRUE si la co mpa ra-
ción tOS cie rra y f ALSE en caso contrario. SeJe'Ct func1{lO.l corno un m ult ip lexor. a su sali-
d a es ta ra el valor de la entrada s uperio r (T) si la señal d e selec ci ón (? ) t.OS cierta y e l de
la entrada in ferior (F) si es fa lsa . Po r o tra parte . Rsndom N umber (0- 1) ge nera un núme-
ro aleatorioentre cero y uno .

La pa rte cen tral d el p rograma resta las dos en tra das y el res ultado lo multip lica por Id
s uma dcl tímíte infe rio r y d nu mero alea torio . Ü lO es to se consigue generar un n úme-
ro dlea tnrio comprendido en tre los dos límites indicados . que nunca serán ma ynn.'S d e
3Nl Ymenores de o.

20
Introducción a LabVIEW. Ent ol'no

1Io1.a1rnen tl' est e nú mero generado se emp leará co mo el valor d e un áng u lo en coo rdc-
-edas polares, y de él se ob tendrá u n número .

=- el ejemp lo anterior p uede ser deseable ha cer u na funci ón para la generac ión d el
-mmc-ro aleatorio en tre dos límites, es d eci r; hace r que esa parte d el código sea u n VI
~to, de esta for ma podrá ser usado ...n otras ocasiones . La form a más senc illa de
~ i r es to es seleccionand o la pa rte desead a d el Diag rama d e Bloques e ir a Edit »
:"~<Jte Sub v t. Al hacerlo el cód igo seleccio na rlo será s ustitu ido por el icono de un VI,
.:IL1n un doble elle sobre es te icono Sl' accederá al cód igo de este sub VI.

--
o-

'"~'- , .;
""'" f'lcta. 'o ~O ...
Sol TobboI'I¡¡Qr<lor . ••

• _~ ~ w.e>
........ I:O .~.,,""' _ ..
chy

f.o'd ... . .p.e..,.

••
~~, o.." ••

Figura 1-28 Crear un subVl seleccionando una parte del prog rama

Otra forma de crear un VI es defi n ien do de forma manual su int erfaz, es decir, la forma
0!'11 que se realizarán las conexiones cu and o se use como subVI dentro de otro VI. El pr i-
mer paso será guardar el VI, después situa rse en s u Panel Fro ntal y hacer elle con el
-or ón sec und ario del ratón sobre el icono del VI (parte s upe rior d erecha) par a d esplc-
lar su me nú con text ua l, como se pued e ver en la figu ra 1-29. En el men ú contex t ua ! se
mos traré el conector, que es el equ ivalen te a la cabecera d e las funcion es en otros le n-
zuaj es. En el conector se pod rán añadir o elim inar term inales, los term inales so n los
jugares don de se conectarán los cab les cuando se use como s ubvl . Para asignar un co n-
trol o indicador a u n term inal se debe seleccio nar la herrami enta Ccmr ect Wirt' y hacer
di e en el term inal y en el con tro lo ind icad or asociado d el Panel Frontal, en ese mcmen-
: ..'1 el termina l se colo reara ind icando el ti po de datos.

Por clarid ad se conec tara n las entrad as a la izquierda y [as salidas a la derecha. Tambi én
-e pued e ind icar si la conex i ón de un termin al debe ser ob liga toria (Req uired ), nor mal
Reco nune nd edv u opci ona l (Op tiOllil f), en la ventana de ay uda contextuallos termina -
ses se mostrarán en neg rita, de for ma normal u ocultos res pectivamente. Si en el PaOl' 1

21
LabVIEW

Fronta l se hab ía ind icado algún valor por defecto en alg ún co ntro l, és te será el va lor
que ten ga el con trol si no se le conecta un cable cuando se use co rno s ubvl.

-,-
~ _T _

.. -.
,-
~"'''' . 'lOt>oo;J _

DIt<_
~

Al ' Of_
~;n)o'C\ f fo>' ......."
""'("'...... ",."'1



F'9Ura 1·19. Creaoórl del terrrunal de un SUbVl

Además d el termlnal, también se puede crear un icono que rep rese nt e a l Y1 cuando se
coloque en el Diagr am a d e Bloques de otro VI. En la ve nta na que apall'Ct' (figu ra 1-30)
se tie ne en la parte izquierda las he rra mien tas para hacer el di bujo, en el centro el líen-
1.0 y a la derecha el icono mos trad o dependiendo d e los co lores que p ueda representar
la pantalla (o Im presora . si va a im primirse).

Si en los tres iconos (B&- W. 16Cotors y 2..t:;6 Colors) se cre a u n d ibujo con la misma figu-
ra. por ejemplo un tri án gul o, el VI aparecer á como un triángu lo en vez d e cuadrad o. Si
se está creand o una librería o familia d e s ubvls es conve nie n te d ar a todos un es tilo
pa recido. Por ult imo hay qu{' decir q ue se puede acceder a opc iones especiales hacien -
do doble elle sob re algunas herram ientas. como la de texto.
Desde el men ú contextua ! del Icono o desde File > VI Properties se accederá el las pro-
piedad es del VI, en ella s se pod rá Vt'T informaci ón y mod ificar pararnctros del VI co mo:
• General: informaci ón sob re la versión, cernbíos sin sa lva r, etc.
• Mem ory Ussgc: espacio que oc u pan las d istintas partes q ue componen el VI.
• Dccumentenon: información sobre el Vl. a l usarlo co mo s ubVI aparecerá en 1.1 ven -
tana d e ayud a con textual y u n en lace a un fich ero d e ayuda en el q ue se podria
ampliar la información .
• Re vieion His tory: configu ración e información sobre el historial del VI.
• Editor Options: algunos pa rám etros que afectan a la hura de crear el VI.
• Security: permite bloquear y /o proteger con contrase ña ('1 cód igo del fichero.

22
Introducción a LabVIEW. Entorno

...
~
16 Coku

O 09>owT~

OJ
. I
2 "'''''''
~
ClI'n!

...
I
I
Figura ' -30 . Editor del icono de un VI

• Window Appearance: configuración de la ventana que mostrará el Panel Frontal al


usuario cuando el VI se ejecute.
• Window Síee: tamaño de la ventana del programa cuando se ejecute.
• Window Run-Time Poeition: posición de la ventana del programa ruando se ejecute.
• Exccution: afecta a la forma de ejecutarse de un VI, para más informaci ón consul-
tar el tema acerca de multihilo.
• Print Options: configura la forma en que se imprimirá un VI.

Lna vez creado el VI el siguiente paso será usarlo. Para insertar un VI dentro de otro
~ pued e usar el método de ar rastrar y soltar. desde el directorio donde esté almacena-
jo hasta el Diagrama de Bloques del VI; también se puede usar Se/ect a VI... desde la
caleta de funciones o colocar el VI dentro un menú d e la pa leta de funciones .

Co mo se puede ver en las propiedades de un VI tPile > VI propertiee > Memory Usage)
Internamente se compone de un espacio de datos. el código compilado, el Panel Frontal
10 el Diagrama de Bloques. Al carga r un VI se lleva rá a memoria el espacio de datos y

d cód igo compilado; el Panel Frontal y el Diagrama de Bloques se cargarán cuando


!....dbVIEW 10considere necesario.

Ced a VI se guardará como un fichero. Para agrupar varios VIs se puede emplear una
~t'('ria , la cual es otro fichero con extens ión ",LLB, Ha y varios métodos pa ra crear una
1:lf:ore ri a:
• En un fichero n uevo, File > Save as > New LLB .
• En Tools » LLB Manager :> Píle » New LLB.
También se puede convertir un directorio q ue con tenga Vis a un a librería y viceversa
desd e Toot s > LLB Manager, se selecciona el dírectorío o librería deseados y se elige
Ed ít » Convert.

23
LabVlEW

. .J
FIgUra 1-31. Explorador de Ilbferlas

Si está activada la casilla de Tools > Option.. > Environmmt > Enable Windows
Bxplorer tor LLB Files se podrá tra tar el fichero l l B como si fuera un directorio más
(en Windows 2000 o XP) y añadir o borrar ficheros. Tanto desde el LLBManager como
desde el explorador se podrá marcar un VI como Top Leve í, es to p rovoca q ue, cuando
la librería se abra desde la linea d e comandos O sin la opción de exp lora rlo, se abra
directamen te el VI principal . Una vez creada la librería se podrá tra ba jar con ella
d esde LabVIEW como si fuera un directorio más, pero para el sis tema operativo será
só lo u n fichero.

Otra alterna tiva a la ho ra de guardar VIs es hacerlo en forma de plan tillas (tem p !ates).
Estos ficheros tienen po r ex ten si ón '".VIT (o '".ClT para controles). Sirven par a guardar
en ellos cód igos o componentes muy habi tuales. Son exactamente igua l q ue los VIs
excepto que en lugar de abrirse el fichero d e la p lantilla, labVIEW abrirá una copia
como un VI .

Al igual que en otros len gu ajes, LabVIEW también admite el po limorfismo o sobreca r-
ga de funciones, lo que significa que puede haber funciones distintas bajo el m ismo
nombre que, en principio, pued en ten er distin to tipo d e datos en las entradas; la fun -
ción con creta a usa r se p uede adaptar a las en tradas o seleccionarse de forma m anual.
Muchas d e las funciones y VIs disponibles en la paleta de funciones son polimórficos.

Para crea r un VI po limórfico se debe p art ir d e los Vis que lo compo nd rán po r sepa ra-
do ; cada una de las ins tancias del VI po lirn órfico debe tener la mism a estructura en el
conector, aunque el tipo d e datos obvi amente pued e se r diferen te. En la figu ra 1-32 se
m uestra el cód igo fuen te de tres VIs con los que se creará un VI polimórfiro.

Una vez creados los Vis co n sus res pecti vos conectores se debe ir a File > New...>
Polym orphic VI. En esta ventana se pueden unir todos 10 5 VIs en un único fichero,
como se ve en la figura 1-33.

24
Introducción a LabVIEW. Entorno

Figura 1-32. Código fuent e de tres VIs con 105 que crear u n VI poIimórlico

Figura' -33. Creación de VI po lim6rfico

En la figura 1-34 está el resultado. En la parte izquierda se seleccíona autométícamen-


tela instancia concreta del VI a usar de acuerd o al tipo de dato s que se conecta y en la
oerecha se mu estra un VI que en su parte inferior tiene un selector para elegir de forma
manual la instancia.

1iIIJ - '·~
,." +
1iEJ"' +
1
1+
"
ffiF-I . +
a

"'"
~
1 . ,."
+1

Figu ra ' -34. Utilización del VI po limórfico

25
LabVlEW

1.6 Proyectos
Antes d e LabVIEW Bx la organización d e proyectos d e tamaño medio o g rande era
comp licada, siendo exclusi vamen te responsabilidad del programador qu e debía orde-
nar los VIs en d irectori os en el di sco (algo que en la práctica no so lía ocurrir) e in cluir
la documentación y el resto d e ficheros necesarios.

La ve rsión M.Od e LabVIEW int rod ujo la opción de agrupar todos los ficheros en un p ro-
yecto. El proyecto consis te en un fichero en forma to XML y con extensión · .LV PROJ qu e
indica qu é ficheros componen el proyecto y cómo se orde na n. Los ficheros q ue compo-
nen el proyecto p ueden ser Vis. contro les, f icheros de con figuración (por ejemp lo para
crear un ejecu table), d ocumentación o cualqu ier otro fichero.
La ven tana desde la qu e se gestiona el proyecto se llama Projed Bxp íorer y muestra el
aspecto d e la figura 135.

~ {eI: . W- . E!'OtKt p . "t- .... •


/I ',H:l"'l"l<"" ... X ¡r¡,r lif.l !J. l'" 11 ~ :Jlo • /1 , V}

f tgUra 1-35 . Explorador del proyecto

Los ficheros se pueden agrupa r en d irectorios. Para organizar el código también pu ed e


ser útil empl ea r librerías. En el contexto de un proyecto es tas librerías no deben confun-
dirse con ficheros LLB ya qu e simplemente es ot ro fichero XMl con refere ncias a los
ficheros con tenid os y la d escri pción d e sus p ropi ed ad es. Dentro de las librerías los ele-
mentos p ueden ser pú blicos (accesibles desd e otras part es del proyecto) o privados

26
Introducción a LabVIEW. Entor no

taccesi bles sólo desde otros Vis d e la m isma libre ría ), es to es útil para distribuir cód igo
entre var ios programadores. Pa ra d efini r los elementos públicos o pr iva d os hay q ue
acced e r a las p rop ieda des d e la lib rerí a de splegando su nlt'ntÍ con textu e! > Properties
> ltem Settírgs.

La ven ta na d el pmyt'Cto se divid e in icialm en te en tres ttc rns :


• My Computes: es el terget. en él se muestran los ficheros q ue com ponen el p royec-
to y s us propiedades. De cad a target descienden Depcndencíes y Build Speci fi-
cations.
• Depen a enciee muestra las depend enci as del proyecto, por ejem p lo lib rerías co m-


pa rt id as.
.
Build Specíticetíom...t: gua rd a la con fig ur ación para las distri buciones d el proye-cto
co mo archi vos comprimidos, e jecu tables, librer ías, insta ladores, et c.

1.7 Depuración de código


Cua ndo se ha ce un progra ma es normal come te r errores . Depura r es el proCL'SO d e
encontra r y co rreg ir los fallos del p rograma . LabVIEW d ispone de va rias herramientas
r-a ra ay uda r .11 progra mador en esta ta rea.

~ detecci ón de errores d e lo q ue se podría llam a r la s in tax is de l lenguaje es autom éti-


y sim plemen te con sis te e n im pedir que se ejecu te el VI que contiene un e rror, p ara
.-.'1
.:-UO el bot ón RUN se s us tituye por L ís t f:'rrors y se ca m bia el icono de la barra d e he r ra-
cuen tas por uno que s imboliza una flecha rot a ~ III.!!J ~ .
\ 1 p resiona r este bo tón apa rece una lista de los e rrores y wamings de l p rograma . Al
-elec cio na r un e rror a pa rece u na descr ipción e n la par te infe rior, y hacien d o d ob le d ie
~ presíonand c el bo t ón Sh(lw Error se traslada el foco de l programa a la pa rte donde se
'1.1 p rod ucid o el fa llo.

En la fig ura 1-36 se indi ca que hay tres errores e n el código:

• Una es tructu ra CASE cuy o selector no t iene nada ca blea do.


• Una fun ció n de s uma que presenta er rores en s us ter m in ales.
• Un ca b le rot o , más conc reta me n te, que no tiene final.

A pa rtc de Jos erro res sin tácticos p ut.x. íc ha ber ot ros, d ebid o a inn umera bles moti v os.
L na herra mienta m uy usada en es te caso es la High /i,;ht Bxecu tion. representada por
an icono con for ma de bombilla de luz en la barra d e her ramientas. Cua ndo es ta opción
es té activad a la ejec ució n se ralentiza y St.' p uede ver el flu ir d e los da tos por el
Diagra ma d e' Bloques.

.\ veces ton u n p rogra ma gra nd e PUL'CIC se r in via ble es pera r a que el flujo de ejec ución
llegue a la parte desead a con la Highligh t Execut íon, para ello se p ued en usa r los bree k-
roínts o p un tos de ru ptu ra . Ést os se seleccionan e n 1.1pal eta de he rr nmíentas y despu és
pres iona nd o sobre el ob je to en el que se desea esta blecer el p u nto de rup tura . El ob jeto

27
LabVIEW

L. ,."
1_ Ib;k DI.lqam Errors
~. ...
Case SlIuctlle: ~ed selector

O( more , ~ed r¡p.,ts t e tlvs f..-.:tion ~e not .... ed 01' ~e _ ed Inconect\y . 5t'IOO'l A'
Conteld: Help~ to see what ee comectom to thrs hn :tlOn shoUd be .

.Y..

11 -'"~ 1I
Figura 1-36. usta de errores de un VI

puede ser un cab le o un a es tructura o una función , VI!t figu ra 1·37. Al crea r un lm:"l k·
point apaQ'Ce una marca filja indi cand o su situación . En la siguiente Imagen se pued en
ap rec iar tres puntos d e ruptura: en pi interior d e la es tru ctu ra WHILE, en el cable en tre
el contro l d e JI' Yla función s um, y en la propk funci ón.

m
Flgura 1·37 . UUIILdClÓn de puntos de ruptura para depuracIÓn de cód¡go

Un,1 vez seleccionados los p untos de ruptu ra se pu ed e ejec uta r el programa d e for ma
nor mal y al llegar la ejecu ción ,1 uno de ellos és ta se detend rá autom áticame n te, igual
'J Ul' si se hubiera pulsado el bot ón Pause de la barra dt.' herramientas [el cua l pilS."1 ,1
ten er fon do rojo y se transforma en Con tin ue).

28
Introducción a LabVIEW. Entorno

... lo que se desea es obtener el valor de un d ato cualquiera se pued e usa r la herram ien-
'3 Probe, ver figura 1-38. Se puede activa r sobre u n con trol, indi cad or o cable usan do la
:-olJet.l de he rra mientas o el menú context ua l del cable; cua ndo se coloque aparecer é un a
en ten a flotan te en la qu e puede verse el va lor del dato seleccio na do en tie mpo real.

~a ut ilidad d e los Probe es crear un Custom Prooe con una condición, en ese caso
-uando se cu mpla la cond ición el VI se dete nd rá igu al que si h ub iera un bteekpoínt. A
esa opción se pu ed e acce der desde el men ú con textu al d e los cables Custom Probe >
..."ooditíonel [Tipo] Probe . Por último ta mbié n ha y que d ecir q Ul' un p rob e pu ed e p er-
-coaliza rse como un VI con Cus tom Probe > New.

~l método más pa ra de tecta r error es es rev isar el va lo r d e cier tos d at os, com o los
:kIs.ters lit' error que tienen muchas funciones a la entrad a y sa lida ; para es to hay VIs
esceciall zados en la pa leta Program mlng > Dialog & Use r Interface.
• Los cluster de er ror son un dato especial. Se com po nen d e tres parám etros:
• Un boo leano que ind ica si hay error o no .
• L n número identificativo del erro r.
• Ln s tr íllfj que contiene u na de scri pción del error.


"'~A:
Pause t any of the folowlng :
~ ' El {')
~ '/ 0 '''' '' 'C "J
O GreatertMn 410 !
2J!': O l~s tMn 410 I

(.) (b)

Figura 1-38 . (al Ut ilizació n del Probe. lb) Prob e cond icio nal

~U5 te una herramienta que amplía la información sobre l' \ error, se puede acceder
.arectamente a ella desde el indic ador del cluster pres ionand o con el botón derecho
-oo re él y eligie ndo Explein Error. Tamb ién se puede ir a Hclp » Exptein Error.

29
La b V IEW

f igur a 1-39 Inf(J(maClón del error detectado

1.8 Otras h erramie n tas


1.8 . 1 Opciones
Se puede acceder a las opciones de configuración de 1.., bVIEW a través de Tool),i >
Options. Esta ve ntana perm ite modificar muchos parámetros d el programa, como:

• J>a th.,~ las rutas d el directorio de ins talación de L,bVIEW, el directorio tempora l.
librerías, etc.
• Fmnt r am.'1: va rias opciones relacionadas con el Panel Frontal y los controles.
• Block Diegram: manejo au tomá tico de errores y otras ayudas a l programador.
• AJ igment Grid : permit ir y configura r alin eamiento a las rejillas.
• Controls / Funcüo n« J ',) /t'tt('!'o~ formas de present a r I.l s pa tet as d e con tw iL'S y fun -
cion es.
• Source Control: selecci ón d el servidor de ve rsiones y co nfiguración.
• Debug ging: opciones pera dep urar erro res.
• Cotore cambiar ",1 co lor de varios ele me n tos de L,bVIEW.
• Fonts. define las fuen tes d e aplicación, di álogo y sis tema.
• Prin ting: o pciones a 1.1 hOT.1 de imprim ir.
• Re vísion His tory: permite gua rda r info rmación cad o VIU q Ul' St' guarda un VI.
• Menu 5hortcuts: modifica y crea atajos d e teclad o para ¡.h opciones d e los men ús.
• Envíronment: opciones d e con figu raci ón miscelánea s.
• Sec u rity: permite re~tr;n}o."¡ r el acceso a LabVIEW

30
Introducción a LabVIEW. Entorno

• Shdrt:'</ vsrinole Engine: o rdena dores que o frecen se rv icios para maneja r variables
(Com pa rtid as.
• \ 1 5en w : con figu ración d el acceso a VI Server,
• i \ 'eto Serven configu raci ón del se rv id or web que incorpora L, hV IEW.

_..
_.-
'-
--~
_'n_"'lJpüano
E:!r - "'-"- -.,¡", '_
Os... booI<H . 1'1 ......
y --
W<lI CIIIl Ill
M!!D! 2Rl9.tI

-----
0'1-.. ""''''''' · 1'1 _ ............
~ P­
!/I_'"
--_
-~.
~ il-..- UII! " " -

---
~
S ...- ...... ",...-_.._
-.
-- ... ..
O ~ _ bor dol_
Dold ~..!""'U'
0 _ _ - ' ; ' <1 _
O",-_ ..
_

, "_ _' - f "'7"O


__,_ lJIlt_ I~d _

..-
C _. ~ 4a>
EJ....... _
~ - --
"l _
,, _
. - Aa...
f - - , ,¡,
... to.. _ _ ..........
D ~_ ioD.,j bl' <lo/d

-._ .~

. . ._¡¡,_........ ,..
_ _ VI.
~
D;;d ---

-
.
.
,
~
(enl..... /'f....t..... P_ r Upt_
~
0_ ,......-.
-
(henoM Drl'_ 'ioon<rl .... . n-.... ' _1

F'9lJra 1-40 vtorJtana de opciones que presenta LarJVIEW 82

~s d e es tas opciones también se pu ed en reali zar más ca mbios. a lgunos d e e llos


110 oocumen tados , en el fichero LahVIEW.ini d el d irec to rio de inst alación de LabV IEW
en el fichero "in í asoc iad o a los ejec u tab les cread os con L,bVIEW (en Linu x LOS el
Xhero .Iebvícw rc y en M,lcüS Líbrary-Preferences ambos en el directori o home).

1.8.2 Jerarquía
Cuando se usan un os Vis d en tro de otros se va creand o una jera rqu ía de Vb . En View
> \7 Hierercnv se PUl'CIC abri r una he rram ienta para VN la es truc tu ra jerárq uica d e un
:-rograma, ve r el ejem plo de la fig ura 14 1.

~'-'D1as d e ve r la es tructu ra de un proyecto de forma gr éñca también pued e ser d e uti-


idad en grandes pro yectos para buscar Vis.

L na buena jera rq u ía LOS la que es tá organizada por niveles bien defin idos, los Vis de un
nrvel se a poya n en los del nivel inmediatament e inferior y no hay sa ltos de nive les .

31
LabVIEW

'" VIHleran:: h.,. I-"""I@:II'RJ

« ,
Figura 1·4 1 Jerarquía de un VI

Ad em ás de 1.1 ventana d e jerarq uía , también S(' pued e acced er a 10:-; VIs relacionados
con e l q lll' es tá activo en Vil'W > Browec ReJ.lt;on...hip.

1.8.3 Ventana de navegación


La ve n ta na d e na vega ción l'o; otra ventana flo tante que permite ve r tod a 1.1 ven tan a ac tí-
va d e lol bVIEW mediante un zoom automático. Se puede acced er a ella d esd e Vie w >
.'\',lVi¡;<ltion Wind ow y pued e ser ú til cuando el Díagrama d e Bloq ues tiene un tama ño
superior a la pantalla (au nq ue es to es algo qUl' SI.' d ebe evita r hacien d o el progreme m..' ...
mlldular ).

1.8.4 Compilación masIva


La co mpila ción ma siv a es un método que M' usa sobre tod o al actualizar 1,\ ve rsi ón d l'
L.l bVIEW. Su fu nció n b ásica mente es a brir todos los Vis d e un d irectorio, relinkar y
reco m p ila r todos los VIs )' s ubVIs que contiene. 5..' PUlU (' acceder a esta he rramienta en
Toots > Advencod > MolSS Comp ile.

1.8 .5 Búsqueda y comparación


En el me rni Ed il > ñnd ,1Ild Jú'pJ,lCl' se halla una hc rramíenta qm' permite bu scar tan to
texto como l lbjdos en los V is cargad os en memoria. Lo s objetos J bU!'CJr pueden ser
Vis, fun cíones. fvr...lkpoin t.... te rm inales , etc. En 1<1 ven ta na d e res ul tados st' p ued en sus-
titu ir todas las ins ta ncia s del objeto b uscado por otra fun ción.

32
Introducción a LabVIEW. En torno

_ .., r .gl.-.l .... '.".


T" 1t"j t!lo _
<;rrk¡.
............... p'... (t<l.5I>tt....

--
RoQlo<" ....

...._ .._<Id<Iho _tdI..,"' _ Iho _ <t>


kv! 1 1 e_ l·¡ ,.,
FIgura 1-42. Utlllc1(1c1 de b úscueoa y reemplazo

...j("\l EW ta mb ién d ispone de otra util idad en el men ú Tnols > Co mpa re destinada a
ar las d iferen cias entre dos VIs, tant o en su cód igo , su asp ecto, jerarquía u o tra s
-ece-edadcs . Con estas herramientas simplemen te hay que elegir dos VIs y su resulte-
.=JI¡; -era una ven tana en la qu e se muest ran las diferencies, al hace r d oble elle sobre una

.... seos traran los Vis con U I1il marca en la diferencia.

1.8.6 Se g u r id a d
~ 1."'PC10nes de segu rid ad en TooJs > Secu ríty permiten contro lar el acceso y perm isos
i recu rsos, co mo ,1 VI Servcr (Tools » Options > VI Scrw..-r: Ueer Accc...... o
k ;:unO S
7~ t'C ro .> A1y Com puter > Propert íos > VI Scrvcr- USl.Y Accessj. El sis tema es parecí-
~ al de cuentas d e usua rio, gru pos y dominios de los sis temas Window s.

que un usu ar io M' registre como tal debe d irigirse a Too/s .> Sccu r íty > Login, ade-
1Ir.l
~ -e pued e activar la op ción Toots > Op tions » Seciuity .> Sho w me login prompt s t
~ \1E lV star t ll p time pa ra hacer qu e se pida un usuario cad a V l'Z que se inici e
.....;t-\lEl " .

....t::......a no, mó d ulos d e LabV!EW pueden extend er las funciones d e segu ridad il clem en -
.. ((\010 va riables compa rtida s o lib rerías de proyecto s.

1.8.7 Eje m p lo s
_il".a d e las cosas más apreciadas de Ne ticmellnstrumcnts es su soporte, tanto en lírica
o:ctú en sus p rogramas. Den tro de la ayuda de I..1bVIEW ya se ha visto antes la venta -
":ol .íe ay uda contcxtu al, también di spone d e much os d ocumentos expli can do d etall a-
aenente cad a aspecto del programa. Ahora se hablar é sobre s u colección d e ejemplos,
¡ ..a qu e St' pu ed e acced er d esde Help .> Find EXilmp les.

-e- pued e modificar la ventana q ue m uestra los ejemp los en Toois > Prep are Exemple
L~ tor N I Ex,)mp1l..>Pinder.

33
La b V I EW

1.9 Ejercicios
1. Busca r los cinco errores que impiden la e jecución en la siguien te figu ra :

[j]

Figura 1-43. E)l':'fOO'J I

2. Ob tener mediante las funciones del men ú Progremming > N umeríc el número
. . - ./S. ,
1/
au n'uysu mvcrso: .... · -,- · 1$"' -./i,-- I E'jec uta r e I p rograma con H Ig
' blJX
í h t Eixe-

cu tion activado.

3. Usa r el pnlg ram a del ejercicio an te rior como un s ubVI de un o nu ev o p ara veríñ-
,. l . $ +1
ca l' SI <11 - 1.. - y IP " ' - - . .
<JI <JI - I
4. Dep u ra el siguiente program a p ar a enco n trar y so lucionar el motivo por el que no
fu nciona co rrect amen te.

FIQUld 1-44, EJcrCfClO 4

34
Introducción a LabVIEW. Entorno

1 .10 Bibliografía
Na ñonal lnstruments, AN 159: LabVIEWCllstom Controls, lndícs sors. snd Type Detí-
nítíons, 2004.
Nat íona l lnstrumenes, AN 168; Lc1bV1EW Perfonnance and Memory Management,
2004.
Xatíonal Instrumems, LabV1EW Basics 1 Course Manual, 2000.
Xañonal Instruments, Lc1bVlEW Upgrade Notes Version 8.0. 2005.
Xatíonal Instrurnents, LabVlEW Upgrade Notes Version 8.2, 2006.
Xationel lnstru men ts, LabVIEW User Manual, 2001.
Rick Hitler el alt., LabVIEW Advanced Programming Tectm íquee, e RC Prese LLC,
2001

35
Capítulo 2

Estructuras
L!~ ins tru cciones d e con tro l p er m iten a un p rograma ejecu tar un cód igo de forma-co n-
.íxíonal u repetirlo cierto número d e veces.

En La bVIEW estas inst ru cciones son estructuras que encierran en su interior el cód igo
al qu e afectan . Se en cu entran en el menú Progm m m íng > Str ucturcs.

= ¡¡¡;;¡¡=
~ D"·I
lOO

FIQura 2-1 . Estruct ura s

-\ contin uación se va a tratar cada una de las es truc turas qm' aparecen en la Figur a 2-1.

2.1 SEQ UENCE


;::0 los lenguajes tradiciona les basados en texto, el orden de ejecución se co rres po nde
con el orden en que las instrucciones están escri tas. Ya se ha v isto quC' el sistema d e cje-
cución dl' L.lhV IEW sigu e el modelo de flujo de da tos (d ,Jtaf1(l w ), un nodo necesita
tene r di sponibles los datos en todas SlI S en trad as pa ra ejecutarse, pero s i ha y dos nodos
en cond ición de ejecu tarse no se po d rá determina r, en principio, el orden d e ejecuci ón:
esto en la mayoría de los casos no será un pr oblema. es más, será incluso benefic ioso .
'o obstante p ued e haber ocasiones en que h,' Y<l nodos independientes, ambos en s ttue-
eó n de ejecutarse, pero se necesita fijar el ord en de los m ismos.

37
La bV IEW

L.1S estruc turas de tipo SEQUENCE sirven precisa men te para es to: ordene n el o rden d e
ejecuc ión del código que est á en su int eri or.

Su d ise ño recue rda .1 los fotogramas d e un a pel ícula . En una película los fotogra mas
co locados al principio se vís ua l¡z.•ar án an tes q ue los slguíentes . con u n ord en secue ncia l.
Las es tructuras SEQU ENC E también tienen fotog ramas o trames ord en ados, en el in te....
nor d e cada fmmt' St' s ituará u na secci ón de código. La eiccucí ón comenza r á po r el pri-
mer tra ml' y cua ndo acabe se pa sa rá .1 ejecuta r el sig uien te, y as í sucesiva men te.

Hay dos tipos d. SEQ UENCE: STAC KED SEQUENCE y FLAr SEQUE NC E.
La p rime ra era la ú nica disponible en versiones más an tiguas d e LabVIEW, tiene un
men ú en la parte s upe rior d onde se ind ica la numeraci ón del trem e que Sol' muestra, el
n úmero tota l d e tr,lmt'S que con tiene y además d a la opción de situa rse en ot ro. En la
figura 2·2 se mues tra n superp ue s tos los dos fcaml'S dl' la m isma es truc tu re.

o
1 0..1 •

Figura 2-2 . Fraftlt?j de un.a secuencia

El menú contex tua ! pued e desplegarse pre s ion an d o con el botón sec un da rlo del ra tón
en el borde d e la es tru ct ur a, es te men ü permite crear franws antes y d esp ués del mos-
trad o, ad emás d e otras o pciones . La opción Sequewe u )(:a lcrea unos t úneles entre un
trame y los d emé s p,u a com partir datos. en uno de ellos se escribir é un va lor (simboli-
za do con una flech a hacia el exterior del framt') y en los pos teri ores pod r é lee rse (con
una flecha ha cia el in terior), no se podrá leer en fr.l m t~ an te rio res ,11 d e escritura .

,..........


...
1 0.. 1 _ . ~

""'
@
¡F DesoI(lbOn.-.d TIp, . ,

"'&.-
structu-I!t'l Palette
.¡ fid.o G-ow

"""'0
Ilemove 5eQuence

Add ~elotal
AQj Ff ~tlll eo
Add Ff_ 8efore
Dldc.ilte Fr_
oe.lete TtllSFr_

9o'IFf_0
~ Ths"'_ O

F¡gura 2- 3. 5equence Loca! permne compartir ca ros entre trames

38
Estructuras

Iambíén pULxicn pasa rse y recibi rse datos desde una estructu ra SEQU ENC E al exterior
a tra vés de túneles, rep rese n tad os media nte un peque ño cuadrado en el borde de la
estructura. Cu and o hay un dato de salida, sólo un tre me d e la es tructura puede esc rí-
-tr valores en el.

=-t.AT SEQ UENC E fun ciona de igual for ma , sólo que es m ás visual, los frames se ven
;.no a con tinuación del siguiente, el orden de ejecuci ón será de izqu ierda a derecha. En
e-ee caso no ha y Seq uence Loce í y los d at os pod rán cablearse directamente desde un
-arm- a otro " través d e túneles. El menú contex tua! también St-'rá el que pe rmita afta-
=:é y elim in ar trenw«, ta mbién se puede cambiar de un tipo de SEQ UEN CE a ot ro de
au tomática.

~"1 la figura 2-4 puede verse una es tructu ra FLAT SEQU ENC E con d os tremes. en el
reimero se genera un n úm ero aleatorio y se pa sa al segu ndo treme e tra vés de un tún el.

Figu ra 2-4 FLAT SEQ UENCE con dos trames

2 .2 CASE
....a estru ctura CASE es el equiva lente a varias de los len gu ajes basados en te xto : IF,
3"'". : T CH y TRY. SU utilidad es ejecutar un cód igo u otro depen diendo de una condición.

lJ igual que una estructura SEQUENCE, en est e caso también se tiene un menú en la
carte superior donde se pued e elegir el s ubd iagra ma que se muestra. En este menú se
-eede ve r la cond ició n pa ra ejecutar el código de l subdiagrama corres pondiente. En la
=h..--ura 2·5 se muest ra un CASE co n d os subdíagramas, uno se ejecutará cuando la con-
zsoón llut' se eva lúa sea FALSE y otro cuan do sea TRUE.
,. . .
c:J rroe •

,
LJ
Figura 2-5 . Est ruct ura CA SE

::l ter minal q ue apa rece en el lado izquierdo marcado con el sím bolo «?» es llamad o
-elector. El valor que llega a este selector es la cond ición que se ev alú a pa ra seleccio nar
d subd íagrama a ejecu ta r. Si el tipo de datos que se conecta al sel ec to r del CASE es b(x)-
eano, éste act ua rá como u na sen tencia I F...THEN...ELSE de un lenguaje de te xto tradi-
oonal. También pueden conectarse otros tipos d e datos , en este caso actua rá como un

39
La b V IEW

SWI TCH...CASE. Pueden conec tarse .11 se lec tor datos boolea nos, num ér ícos (incl u idos
enunt y ring), ~ trinNs y d usll'n; de error. En la Fig ura 2-6 se p ued e.. n ve r tod os es tos
casos.

&Lj ""d ' . .- No Ertor ..


IIU ' I:
o

FIg ura 2-6 TlPOS de catos q ue son varocs en un CASE

Pa ra un selecto r booleano sólo St' ten dr án dos caso s: ver dade ro 11 fa lso . Para nu méricos
la co ndici ón !"il' rá qu e el dato de! selec tor sea igu al a l mo s tra do en el mcmi de l CASE,
para da tos cn um o r íng se pued e escribir el nombre lit'! ítem en lugar d el valor nu mé-
rico. Con los strilws sucede lo mismo q ue con los n um éricos cn um o ring, el valo r mos-
trado en l'I menú aparecerá como un texto en cerrad o en comillas d ob les . En el ca so de
conecta r .11 selecto r un cluster de e r ror cambiará el color lit'! borde d e 1.1 es tructu ra . los
s ubdiagra m.rs se ejecu tará n d ependi end o d e si el se lec to r ma rca un error () no.

Cua nd o el selector se conecte .1 u n s tring o ,1 un dato numérico l O:; oblígato r¡o tener
a lgú n C,1S0 qU l' se ejecute por defec to. es d eci r, debe haber un C<lSO q ue se ejec u te cuan-
d o en C'I selec to r ha ya un valor qUl' no esté asignado explícitamen te a algún s ubd tag rn-
ma . 1\1(11 hacer qu C' u n subdíagra ma sea ejecutado por d efecto debe selec cionarse A1.lk(,
Thi s The Ot.'fa ult Cese en el men ú contextual.

En los n umé ricos ad emás se p ued e asign ar una lista d e valo res escribién dolos ~ ra ra ·
d (l!' por co mas o ta mbién S(' puede especi f icar u n ra ngo d e valores . po r ejem p lo si se
d esea ejec u ta r el m ismo c ód igo cuand o 1.1 e ntr ad a ñcno cl valo r 4, 5, 6, 7 Y H, en el menú
de l CASE Sf.' escrlbíra "4 .. 8" .

Se pueden pa S<1 r datos a I tl~ subdtagra mas del CAS E a tra vés d e t úneles . En el caso de
da to.. de salida , tod os los subdtagramas d eben proporcion ar un valor, hasta q ue esto no
ocu rra l.ah VIEW indi ca rá el error m iss íng oss ígnemer u to tunne/ y apa rec e r é el túnel
con el in terior vacío , co mu se m ues tra en la pa rte den-che de la Figura 2·7. Tam bi én
ex iste la opción de marcar so bre el tún el Use Deteult If Unwirea. con esto se consigue
que St' .ls igrll' el va lor por defec to pa r,l todos aquellos casos ll l1e no se ha cablea d o un
va lor en el t únel de salida .

0"" .
FKJLJr.a 2·7 Error en un CASE: t úner vaco

40
Estructuras

Por último también h ay qw..' decir que se pued e cam biar el orden de los subdíagrarna s
desde la opción Resrrengo Ceses... d el me nú con tcxtual.

2 .3 WHILE
8 bucle WH ILE re pet irá el código de su int erio r hasta que se cu mpla una cond ición , la
rua l es evaluad a en cada iteración .

=.n la fig ura 2-8 p uede ve rse el aspecto de este bucle . en ",1se aprecian d os termina les :
• El terminal d e iteración es el cua drado azu l con el símbolo «¡». El va lor de es te te r-
m inal es un n úmero entero qu e irá a umen tand o en una unidad por cada ite ración
del bucle , empozando a con tar d esd e cero.
• La co nd ición de sto p es el ter minal verde de la esq uina inferior d erech, de la ima-
gen. A este terminal se podrá conec tar bien un val or booleano, bie n u n cluster de
err or. A tr avés del me nú con tcxtual podrá elegirse para los boole anos que el bucle
se detenga cu and o el va lor sea True (Stop if True) o F.11se(Continue ít Trues. en el
caso d e los cluster de erro r suced e algo parecido con S top (ln Error y Cont ínue
w hi /(' Error.

[j]
LJ liJ
Figura 2-8 Est ructur a WHILE

=-trd d e las opciones q ue muest ra el me nú con textua! es Add Shift Rcgistcr. Esta herra-
-ue nta aña de dos terminales a cada lad o de la estructura, es tos te r minales sirven para
Tdnsferir un valor desde una iteración de l bucle a la s igu iente. Los valo res se pasa rán
~ Id s igu ien te iteración en el terminal de la derecha y se leerán en el dela izquierda. Si
""" conecta un va lor al terminal de la izquierda en el ex terior de la estructu ra. és te será
~ valor inicial que circ u lará por C~ cable en la p rim era iteraci ón .

~ . ,
v
~

Iil- _


-}

~ --l .i¡-'Y~I
.Ji
m ~ m !!J
(-) (b)

Figura 2-9 . la) S/1lfr rEgl5ter en u n buc le WHILE. (b l Varios srútt regrsrer5

En la fig ura 2-9 (a) se muestra el uso de un Shift register. En la primera iteración se Iocrd
~ valor 10 del termina l de la izquierda, se le su mará 1 y se escribirá en el termi na l d e
..! de recha el valor 11. Este va lor será el leído en la s i ~ u i l'n t e iteraci ón en el terminal d e la

41
LabVIEW

izquierd a, al que se le volver é a s uma r 1 y así sucesivamente hasta que se cu mp la la


condic ión d e parada del bucle, que en este caso es que el n umero sea mayo r o ig-ual a
quince. Est e proceso pu ed e co mp robarse ejecu ta ndo el c ódigo de la figura con la opci ón
de High/ight ExecuticJIl activada.

El !Ohift regíster de la izq uierd a p uede extenderse para mos trar más termina les . PI te r-
m ina l su pe rior tend rá e l valor q ue se esc rib ió en la derecha en la iteración anterio r; l'I
slguícn te terminal te nd ré el valor qu e se escribió en la derecha d os iteracion es a ntes y
asi s uces tvamente.

En el ejemplo de la figu ra 2-Y (b) se p uede ver un ejemplo d el uso de varios shift reg ís-
f(· T. La Tab la 1 m ues tra los valores {lue tendrán cad a u no d e los term inales en cada it e-
ractóu . '

Tabla 1 • Valores de los shlft reglster en cada iteración


It. rado n Shltt lzq arrIba Shltt lzq eeeee Shlft lzq abajo Shltt d.rKha

1 1 O O 1+0+0: 1
- -- ----
2 1 1 O 1+ 1 +0 : ]

,3 ,
2 1 1
- -2-
+ 1+1 :
- 4

S
---
7 ,2 1
2
4 + 2 +1 : 7
7+4 + 2 ,.13
6 13 7 , !3 + 7+4 = 24

Hay un a utilid ad qu e funciona d e ig ua l forma que u n shih register, es el Pet"l.-ItMck


NOJl'. Éste consta de d os te rminales :

• El termina l inlciallzad or permite d ar un valor inicial a l nodo, ('S equivalen te a


conecta r un va lor al term inal izqu ierdo d e shiFt register. Este terminal se co loca
siempre en el bo rde Izqu ierdo de la estructu ra a 1.1 misma altu ra que el Peedbactc
N ade.
• El Pcoabock N oae ee el otro terminal, tiene form a d e flecha . En el extremo d erecho
SI,' le conectará la s alida. cuyo va lo r se rá leído por el extre mo izquierdo e n 101
sfgu ten te iteración . En la p rime ra iteración el valo r leid o por el ex tre mo izquierdo
se rá (,1conectad o a l term ina l inicializado r; Lógicamente s iemp re se e jecu ta p ri me-
ro 1.1 lectu ra y d espués la escritu ra.

m
Figura ]·10. Feedback N OI:k!

42
Estructu ras

:::J cód igo de la figura 2·10 ilu s tra el uso del Pceabeck N ode. El p rograma es igual al d e
..a figu ra 2-9.

En el me n ú To ols > Op ticms > 8l()Ck Diag ram se tien e la opc ión d e inserta r a utomá ti-
camente Feedback Nodee den tro d e los bu cles cu an d o sea necesario .

.tJ igu al q UE' en otras estructuras. los datos que entren y sa lgan d e una estru ctura
...·H ILE lo harán a través de túneles. Un a opc ión muy interesante de los túneles en los
-:-uch.'s E'S el Autoind exing, que se puede habilita r a través del menú con textua l d el
:znt.>1 cuando se qu iera trabajar con array s. Cua ndo se ca blea un arraydesde el ex ter ior
¡j in terior de un bucle y se habi lita el eutoíndcx íng, los valo res leídos en ese term ina l
':"!1 el in terior del bucle serán los elemen tos q ue co mpon en el array, un o po r cada itera-
coo. Cuand o el a utoindexing está en un a sa lida del bu cle ocu rre 10 contra rio: se éo ns-
=uird un array cuyos el em en tos se rán los ge ne rados en cad a iter ació n.

En la figura 2-11 puede verse un programa parecid o al an terio r. En el bo rde derecho


coeden verse tres terminales, el sup erior es u n túnel, el s igu iente un sh ift reg istor y el
rserior una salid a indexad a. El va lor de los dos primeros se rá el ge nerado por el p ro-
zra ma en s u ú ltima iteración (15) , mien tras que el va lo r en el ú ltimo termina l se rá una
:bta ord enad a d e tod os los núme ros gene rados en cada iteración (11, 12, 13, 14 Y 15) .

ID

m
Figura 2- 1 ¡ . Ejemp!o de túnel. snntregisrery autolndexmg

2.4 fOR
~ bu cle FO R es muy parecido al WH ILE, también repite el código de su in terior un
-ssmero de veces, pe ro a diferencia d el anterior este número es fijado a priori y no
~ t.' cambiarse u na vez. empiece a ejecutarse .

Consta de d os ter m in ales numéricos:


• El terminal d e iteración se s itúa igual que en el bucle WH ILE, está en el int eri or d e
la es tructu ra y se va incremen ta ndo en una unidad por cada ite ración empeza ndo
desd e cero.
• El termínal de cuenta es tá coloca do en la esq uina s upe rior izqu ierda d e la est ruc-
tu ra simbolizado con una «N ». En él se conectar é un va lo r numérico que se rá el
que fije el número de re pe ticiones d el bu cle.

o lo dich o en la exp licación d el bu cle WH II.E respecto a los shift regíster. los
Feeabeck Nodes y la sa lida indexad a también es vá lido pa ra el FOR. Tanto en el menú
coe textual de l WHILE como del FO R se tiene la opción d e sus tituir uno por el otro.

43
Lab VIEW

f igura 1 -11. Estructu ra f OR

Los túneles Ind exad os son la opción po r d efec to en los bu cles FO R. Cuando se cablea
un ,Jrray de forma indexada co mo entrad a p uede ob via rse el ter min al de cue n ta por·
ljUe se tom a el ta maño del ,Jrray como el número d e veces que SI..' ha de repetir el bucle.

2.5 EVENT
1...1 es tructu ra EVENT fue introducida po r primero Vt'Z en la versión 6.1 de LabVJEW.
Es una estruc tura muy ú til en Vis con los qu(' interactúa el us uario porque mejo ra Id
efici enc ia del programa .

Al igu al que la est ructura CASE tie ne n varios s ubdiagra rnas y u n men ú en 1,1 parte
su pe rior pa ra cambiar el q ue se mues tra. En es te menú tam b ién se tiene una cond ición
que ha ce que d código del subd tograma correspondiente se ejecute. L1 dí fcrc ncía con
C ASE es quo EVENT detiene la ejec uci ón del hilo del program a basta que se da esa con -
d ición , es d cctr, cong ela el progra n1.1 ha sta qu e ocurre un even to.

En la esquina superior izqu ierd a tien e un terminallla mad o Event Tínwou t que se us a
en el evento por d efecto : el Timeout. El código d el d iagram a pa ra el evento t ímoout S(.'
ejecuta r á cuando pase el número d e m ilisegun dos indicados en el te rminal En'n t
Timeo ut.

o TtneOI.t ...

Figura 2-13 Estructura EVENT

l'a ra aña d ir mas sub dlagramas hay que p roceder d e igu al manera q ue' con CASE , es
decir, a través d el men ú con toxtual . Ca da d iag ram a debe tener asociados uno o varios
eventos, ést os S(' configuran desde 1,1 ve ntana Edil Even ts. como se.' p uede ver e n 1,1
figura z-t-t.

En esta ventana primero se mues tra el número del diagrama (En'nt.. ',mdlt'f..i for Cl.'it.')
í

ya con tin uación 1;1 lista de los eventos q Ul' p ued en dar lugar a la ejecución del díagra-
Ola (En'nt S¡"l('('ifh'rs), pa ra añadi r o clírnínar eventos St' usan los bO!Ol1l'S dela izq u icr -
da . Pa ra defin ir un ev en to prim ero hay qu e es pecifica r s u fuente en Even t Sources, los
eventos de l,l S sec ciones Applic.l tion y This VI están predefinidos y son acciones típ i-
cas, como cerrar 1.1 ven tana. presiona r un a tecla. etc. L a fuen te d e eve ntos Dynam íc só lo

44
Estructuras

..,..,tá d ispon ible cu and o se activa Shn w Dynsm ic Evcnt Termine!... y se cab lean cnnve-
-sen tcmen te. pa ra más información se puede cons u ltar el tema d edicado a progra ma-
..:lL"lIl rnu lt ihilo; Panes se acti va cuando el Pan el Frontal se divide en varias partes,
"'C'littcrs só lo se acti va cuan do ha y un o de es tos elementos en el Panel Frontal y fina l-
-rente Con trole muestr a una lista de todos los controles q ue ha y en el VI. En Evenís se'
:>t-..:l rá eleg ir el evento conc reto asociado a la fuente seleccionada.

t> Edil h e nil ~


fvrt5 lW"ded f<II' e_ ,1 , .,01
t'fert 5p«foer<
..
~.
I .
,I'f.... the Add... DeWe W:ton QI'I tho 10ft lo defw>o /lI'IOthef ~ ~ ~ be
jlvn:led byltllo~ ... . _lhe CII1'entIy selected......,¡:. Ckb1g 11tIle f-.t
J'
i~e orldf -.t r.st. beIow'" ctronoe!he CII1'entIysNdlOd ..-.1: <¡W:t...

...
, ""'" ¿,
• ~ ,-
. ,

··
.=
.- r
<J\¡J(oket:.... > ",, 1
.
r..,. p_ ","

"
<Thls'o'l >
¡;'y n,",~-

.~

~t."
,~"
.~

!ti"
--
··
._-
··
·
r"l' R-",,1
,~

_Down>
-~.
Mouse l e.....e
,

iF• Shatu.t
, - ~MenJ Actfo;ationr
1 L. Sl'>;Jftu.t MenJ5ele<litn l (A¡;.
, ¡ • Shatu.t Men> 5electlcn (Ap¡:
i 1 • Sh;wtat MenJSeiectJon tUs<

, l' , y

"
0 t.oó. f,ort. paneI...-d!he"""'" <ase fut ths _" """'*"'...
i«l I ""'" I ¡;;¡;¡
Figura 2- 14. ventana de con figuraCión de eventos

En la parte izquierda d e cada subd iag rama de la estru ctu ra EVENT se sitúa Event De to
xode que aporta in formació n sobre la fuente del ev ento, por ejemplo, una referencia al
con trol. s u va lor actu al y el an terior al evento, etc.

~ ....-.observa ron deta lle la figura 2-14 p ue d o verse que hay eventos marcados con u na
óec ba roja q ue acab an en una int errogació n y otros con el mism o nombre p ero co n una
-lecha verd e y sin interroga ción . Los qu e tienen la flecha roja son llamad os filt ros. Los
-iltro-, se ejecutan en tes que la acción asoc iad a al ev ento, pud ien d o. en tre otras COSM; ,
.sesa ctivarlo. C uand o 5(' selecci ona u n tiiter e n'nt a pa recerá un nod o en la pa rte dere-
cna del dia gr ama llamado Even t Filter Nod e.
El ejemplo de la figura 2-15 m uestra el uso de los Iiltcr (, H ' n to; para descartar un e ven-
~1. en est e caso sir ve para impedir que el us uario cierre el Pa nel Fron tal del VI.

45
La bV IEW

(l Panel CIose? ..

~
'''". !!El OIK.dl

m [IJlI -1Il
Figura 2· 15 Ejl'mplo de uso de filtros en un evento

Fina lmente ha y q ue nom bra r alg unas reco mendeciones que ha ce Na tio na l lns truments
so bre el uso d e la es tructu ra EVENT:
• No usar un EVENT den tro de ot ro .
• Si un EVENT se Inser ta d entro d e u n WH ILE y és te acaba med iante un bot ón (un
bo tón d e stop), se d ebe inserta r el bo tón dentro d el su bdíagra ma asociado .11ca m-
bit} de va lor de dicho bo tón ,
• Los ca m b ios de valor en con trol es de forma p rog ra mada no ge ne ran e ven tos (en
eve n tos registrados d e for ma est ética), sólo se gl'neran cua ndo se realiza el ca m b io
de va lor mediante la inte rfa z de usua rio.

En esta sección Sl' han es tud iado únicamente los even tos estáticos pe ro ha y dos tipos
má s: eventos di ná m icos y definidos por (,1u suari o. És tos se exp lica rá n en el teme s obre
p rog ramación multíhilo .

2 .6 TIM ED LOOP Y TIMED SEQUENCE


TIMED LOO I~ es una estructu ra q ue apa reció en la versión 7.1. Su funcionamien to con-
siste en repetir el código de su int erio r con una s d et erminadas es pecificaciones d e tiem-
po o hasta qut:' se cumpla cie rta cond ición, po r tod o ello es muy us ad o en a plicaciones
de tiempo real.

Su dib u jo rec ue rde a un WH ILE circundado por un halo a zul, aunque a dífcrenci a de
és te, no L'S necesa rio es ta blecer una cond ición de pa rada o contin uación. También p rc-
se nta va rios nod os, éstos son (de izquie rda a d erecha):
• Inp ut permite configu rar el funcionamiento del bu cle por medio d e un asistente u
cableando los da tos. Este nod o pu ed e extenderse pa ra ca blear más da tos d e los
mo strados .
• Lef t Date: pro porciona inf ormación sobre la ite ración a nte rio r, po r ejemplo el tiem-
po que ha tardado (lteretion Duration ), si le ha d ad o tie m po a acabar la ta rea a n tes
de q ue e mpiece una nueva ej ecuci ón ( Finisht"l.l L..1tt' ? {¡-/ /J y otras.
• Right U.lta: se trat a de una configu ración dinámica, permite modifica r los pará me-
tros de configuració n de la estructura para la s igu iente ite raci ón. Los par émet ros
so n p ráctica men te los mismos q Ul' en el Input Ncxíe. exce pto el nomb re del bucle
y el orige n d el reloj.

46
Estructuras

• O u tp ut al igual que el Left Data Nad e, el Outp u t Nodc p rop orcio na in forma -
ción, pero en este caso la infor mación se genera después d e que el bucle se h aya
deten id o.

,.-
E ed End 1· 1 " -
~
&,-
E ted End .-1
ArtUolll End ~ I
Actu.i Ero ~ 1 FrWwl Lat e? 1-1
f irislw:i LllI.e] 1-1 GkJb"I EOO TlIlIe
E ted Sto!lft ;
n...abon Dlrtbon
Attualsto!lft I

....
",,,"
"'01'''''
,.....
"""
"""
w ,_
Global End 111I'III
Global Sto!lft 111I'III
rt ... ;,IJon Dls lll.ion

ID
Figura 2- 16. Estr uc tura T1M fD l OOP

---<i con figu ración p uede reali za rse ca bleand o los va lores ad ecuados en el Input N IJde u

eedían te los pa rámetros qu e ap arec en haciendo doble clic sobre el p rimer y te rcer
-cco.

¡; ConfiKur. h ned l oop ~I

_.-
1''"'' ,.,.." " u ' ''' " ' .>"

fr_I-.-_~

o' A<üorl . . i .. ~ n ..........


llio _ . _ td _ -" ~ omoo.· l o _ ~
"_ rl\t>l;dli; .... tf>o Oor<lord ..... boI> d ... . 0 1llo<...,¡,..• porIOOio
0Ad<l "'"""o .......,_. 8- ~

fig ura 2-17 . Ventana d e con ncuracon del T1M ED l O O P

- '"'ll17f; Sourcee« la fue n te de rel oj, cuando el p rograma se ejecu te sob re un pe la fuen -
r -er é un reloj de 1 kH z del s iste ma operativo; s i la ejecuci ón se realiz..a en otros d íspo-
'iif]"o' OS pu ed e ha be r otr as fuen tes d isponibles . Para se leccionar la fuente d l' sd (' el pfO-<
rrarna pued e usarse el VI Cres te Tím íng Sou rce, en la paleta Progromm íng > Struct uree

47
LabV IEW

> Timed S tructuree. Los otro s Vls de es ta pale ta pe rmi ten abortar p rogram ad amen te un
TIMED LCXJI' (Stop Timed 5t rueture), sinc roniza r los (Sy ncn mizc Tím cd Stru cture
Starts) o contro lar el comien zo d e cada un o (Build ing Tim íng Source H íorercíw í.

FlglJra 2- 18. Estructuras temronzaoes

El per io do se rá el tiem po que pase en tre el com ienz o de dos iteraci ones y el off.ow.'t el
tiem po q ue el bucle es pe ra antes de e m peza r la primera ejec ución . Deedlíne es el tie m-
po máximo con que cuen to el b ucle para ejecutar el cód igo en su inter ior. en caso de que
la ejecución lleve más tiempo se av isa rá con Fin isb ed Late? [i-l}. Los mod os de A ction
0 /1 Lote ttere tioos con figu ran la forma en q ue el bucle resp on de cua ndo la e jecución
lleva más tiempo de l cspccíñc ado, las opciones so n autoc xplicati vas, básica mente s ir-
ven par a alinear el comienzo de las e jecuciones y sa lta r iteracio nes.

Pa ra ejec uta rse, cad a TIM ED LCXJP crea s u p rop io sístcrne d e ejecución qu e con tien e
un único hil o (ve r ca p ítulo 10 dedicado a m u ltihilo). La p rioridad se refiere a la prefc -
rencia d e ejec uci ón en tre un bucle y (os d emás. Lo s va lores más altos corresp ond e rá n a
TIME lJ LCX)I'S con ma yor p rio rida d. Cuando dos o m ás bu cles vayan a empeza r s u
ejecución en un Ins ta nte d eterminado, la pr ioridad de cad a bucle determina r á el o rde n.
en caso d e que haya va rios con el mi smo n ivel d e prioridad , el orden se rá p or el d e
me nor tiempo in vertido en Id ejecución .

También se pueden a ñad ir f ram es a un TlMED LOOP mediante el menú con te xtual d el
mis mo modo qu e se hací a con un SEQ UENCE. con es to un TIMED L(XJP podrá eje cu -
tar varios subdíegrarnas secuenc ialm en te, cad a uno con sus p ropias especificaci on es
tem porales.
,

~
,
t i r'· r ro
. 1 (" ",

", -
E e<J End H
~ End ~ l
f ... .r.edl..t.. ' H
,. ~
E ted End f- l
Al:tualEnd
~ L ~ ,,)
1·1
H

"
",
W I
m
c:J C:J !iJ
Figura 2-19 . TIMED LOOP con trames

48
Estructu ras

:..-., es te caso el Right Data Nod e de un trem e cambiará los p arámetros d el sig uien te
.;ubjiag rama a ejecu ta rse en lug ar de Id sig uien te iter ación y el Left Data Nade propor-
~ reÍ in formación sobre el s ubd iagram a anterior.

U LKft Nade del primer subdiagrama y el Right Nodo del ú ltimo p roporcion an m ás
re rarnetros qu e el resto d ebido a que p ued en afectar al síg uíente / ante r tor su bd tagra-
:::Id ('O él tod a la estru ctu ra .

~ el mismo men ú , junto a TlMED LCXJP, se enc uen tra una es tru ctu ra parecid a llama-
:;.¡ Tl\ 1ED SEQ UENCE. La princip al diferencia con el TlMElJ LCXJP es qu e en este caso
1JI..~ "'€ repi te la ejecución de los sub díe gra mcs, por lo tanto n o se p odrá especificar un
reoodo. pero aún así sí pued e ten er otr as características temporal es com o o f fset , d ee-
.d\llne. etc.

I ~"~
r-
E.<ted End f.l
Adwlfnd f- l
Ff"Ir<Iwt LN ~ ) 1-1
j,. I EH'"

Figuril 2-20 . ésm crura TIMED SEO UENCE

2 . 7 DISA BLE STRUCTURE


~ es tru ct u ras tambícn han ap arecido recien tem en te, se u saron por p rim era vez en
.. versi ón 8.0. Sirven p ara comen ta r el cód igo, por 10 que so n mu y útiles en la dep u ra-
~'Ii d e programas. Hay dos tipos d e estruc tu ras de d esha billtaci ón : la incond icion al y
.. coodícíonal.
.<
econdíc lo nal es una es tructu ra que como CASE, STACKE D SEQUENCE o EVENT
..j.

• :empone d e va rios subdí ag ram as . Uno de ellos esta rá ha bilitado y el resto esta rán
~biJi t ad os, lógicamen te el habi litad o se r é el ú n ico qu e se ejecu te y el res to no lIe-
gnn a co mpilarse. Para cam biar el sub d lagra ma ha bilitado hay que hacer uso d el
~ contextu a! d e la estruc tu ra.

····················1-
' - _ - ==...J
Figu ra 2-21 . Estructura DISABLE

49
Lab V I EW

La condicional fun ciona d e 1" mis ma forma q ue la an terior, só lo q ue el diagrama h obí-


litad o St-' selec cion a de form a auto mática dependien d o d el va lor d e unos símb o los aso-
ciad os ,\1 proyecto. A I ~ u n os s ímbolos p red efin idos son OS y CPU.

También se pued en defini r n uev os símbolos en la ven tana de p rop iedades d el pmyt'C-
lo cor res pond iente, co mo muestra la figura 2-22.

,,>~, ••• ~ (,

;-

F¡gWd 2·22 \!ent.3fla pera crear slmbolos

Una vez cread os los s ímbolos pertine n tes ha y q ue edita r la cond ició n de la estructura
con Edil Condi tion For 11Jis Suhdiagram... d el men ú contextual. Se puede añad ir m és
d e u na cond ición con el bo t ón «+».

00
e- 11 c.q 1I ..

F¡gura 2-23 Con figuración de la cerceen D I~BLE

2.8 FO RM ULA NODE


1..1 es tructur a FORMULA NO DE p ued e encontrarse tan to en l'I menú Prog r.lln m inx >
Stnlctu n ~ co mo en 1\l.Jth('moltics > Scrip ts & Form ules.

50
Estructuras

-\ diferen cia de las anterior es, FORMULA NODE no controla el flujo de ejecución , sin o
.rue evalúa una exp resión matem áti ca escrita como texto con una sin tax is parecid a a l
engu a]e C.

::1 texto cons istirá en un a serie de sen tencias final izadas por el símbo lo «;» . L.1.5 sen ten-
nas nor malmen te son asignacion es qu e usa n operad ore s o fun cion es, au nque también
r-ued en ser decla raciones de var iabl es, bucles o sentencias d e condición . También pue-
cen inse rtarse comen ta rios de la misma man era que en C.

'::asi tud as las funciones que se pued en usar dentro de un FORMULA NODE tienen su
equ iva len te como VI. Éstas 50n: absíx), acos(x), acosh fx). asin (x), asinh(x), atan(x ),
:;:an2(x,y ), atanh(x), ceil(x), ci( x), cos(x), cosh(x), cot(x), csc(x), exp (x ), exp m l(x),
"::./L"lt1r(x), ge tcxptx), gamma(x), getman(x), int(x), intrz (x), ln (x), Inpl( x), log(x), log2'(x),
":]"lx{,\ ,y ), min (x,y ), mod ( x,y ), pow(x,y), rand ( ), rem (x,y ), si{x), sec(x), sign(x), sin (x),
'-JlC(.\ ), sinh(x), sizeOfD im(a rray ,dim), spiketx), sq rt(x), step( x), tan (x), tanh(x).

:" 0.-"'5 operadores son:


exponenc íací ón.
+, -, ++, - -, 1, - : sum a y resta, pre-post incremento-d ecremento, negación
lógica y com p lemen to de bits.
ope raci ones básicas.
», <e : de splazamientos.
<, >, >=, <=.!=, = =: comp araciones.
&, " , 1, &&, 11: operaciones lógicas.
...? .. :... . eval uación condici on al.
=: asignación.

Las es tr uctu ras son :


I f (cond ición) sentencias l e ls e sentencias2
do sen tencias wh il e (cond ición)
...h i l e (cond ición ) sen tencias
t or (asignació n; con d ición; sen tencia) sen tenci as
e v í: t ch (condición) lista de casos

-r as pa lab ras reservadas son: break, C.1S L', continue. deteutt. pi. Para más infor mación
-cede consu lta rse la ayuda.

~ "", i ()na n d o el botón secu nd ario en los bordes de la estructura pueden crearse va ria-
-es d e entra d a o de salida.
:: el ejemp lo dado por la figu ra 2-24 se tiene la f órmula de Her én p ara calcular la
-crerñcíe d e u n trián gul o a partir de s us lados, en ella hay t res en trad as (a, b. e) que
: espond en a la longitud de los lados del tri án gulo, un resultado intermedi o que se
-a ra corno una sa lida más (p) y una sa lida qu e es lit s up erficie (S).

SI
LabVlEW

f'9Ura ] ·2 4 Fórmula de HerÓfl

2 .9 Scrlpts
Al igual que el nodo FORM ULA NO DE hay otras estructuras que también acepta n tex-
tos, de es ta forma se puede co mb ina r la programación propia de L.1bVIEW con la más
trad icional progr amación textual.

El MATHSCRWT NO DE es otra de las nuevas estructu ras de LabVIEW 8.0 y mejorad o


en 8.20. A diferen cia d e las otras dos que se ve r án en es ta secci ón. MAn lSC RIPT N ODE
no llama a otros program as y s u cód igo es com pilado junto con el res to del VI.

En Too}... > M.llhScript Window pu ed e abr irse una ven tana . figura 2-25, para ayuda r a
dep ura r e l cód igo . En el campo Commsnd Windo w p ueden esc ribirse los co ma nd os,
también p ued e ejecu tarse un scti p t comp leto desd e la pesta ña Script y los resu ltados
p ueden verse en 1,1 pes taña Variablt_~ .

'_
,
-e._
1<1

......
::)(0._ (1,•• ••
" 11

. ... ~.
'''' _..
: l U lq o

Il b•• I. _ l od llOOO'....lJD.ltlOOG ' ... OO . I . 4lI• •


' I • •ll _ot.yll... I . ...I.
¡u u
1A11
..
uao. ,••10Ill .
••
"
II:1II
••
1'"
1>.
'''W _ ...,.
'"
"'W _ ...
_. .
_
_
..
..

""'""
IV .. ...

. ,....".
1
;

.
--~:;;;;:;.::;:;=~.
rlQt l • • l1 .. ' ¡
...
"a •
---+---Il-.lL 111
• •
Ij!

OCI
, , , , ,
50 6ll......lt..... L.J.'<__ 1!l!I
,

I l1li r; _'iO ' , l, /'O'IS lI -'

,_u
F'9Ura 2·25_ Depulaoón de cóc oo con MATH SCRIPT

52
Estructuras

_..a sintaxis para usar en la estructura MATHSCRIPT NODE es en gran medida cc mpa-
x k co n 1,1 de MATLA B. Dispone d e cien tos de funciones q ue p ueden consulta rse en
..¡, avud a.

"or otra p arte, MATLAB SCRIPT NODE y X.MATH SCRIPT NO DE Sl' en cuentran ú n i-
amen te en el me n ú Msm emstio..> Scr ípts & Formulas > Script Nodes. Ambos llama n
, e mg rama s extern os. En el caso d e MATLAB, el nodo llam a al servíc ío «Matl ab
-erver» ,1 través de Actívcx para ejecu ta r los coma ndos (sólo en Wind ows). XMa th es
-arre del p rog rama MATRIXx, tamb ién de Na tional lnstru ments, es un so ftwa re esp e-
-aazad o en an álisis numérico y su sintax is es un poco diferente a la de MATLAB aun-
• .x tienen m ucha s fun ciones eq uiva len tes.

~...l 1 ~,11 q Ul' con FORM ULA NO DE se deben crear variables de ent rad a y sa lida r c ro
.- este caso ha y que asignar exp lícitamen te el tipo de datos, es to puede verse en la figu -
""3: : - ~6 .

• .... ,-
I ""
E' ~s
Dewlp(>:ln
Set B1eS<ponf
~ 'rop . ,

StrlJ(t t.l"es P<llett...



""",""

rnM~~_~~=,~~~
/' JR ~
~ P~e • I CompIe.
ere""e •,
1-0 Arflrf ri Complex
H ) ArfMol ri Re'"
t-o k ' ay ri c ompIex

..
"',"'
Figu ra 2-26 MAnAS SCRIPT NODE y XMATH SCRIPT NODE

~ .La figura 2-27 pueden verse es tas tres es tructuras. El código d e las tres es eq uiv alen-
~ ~. trata lid diseño d e un filtro y su ap licac ión a una se ñal aleatoria .

53
LabV IEW

~ deI fitro
[n,wn)-cheb l ord(8OOOI+t l OO,
lOOXI/"' 100,l,4O) ;
le A¡....&.ebyl{ 1
l~-
IJ~
0, _'
~~ ~er(fI , A,X):

~delftf O
flAfl Se: .....
ITf!ll- l!:!J '.f,n,.....}-d>et¡ lorOlllOOO/44100 ,
l00XIf4 4100,l ,4O);
Ifp [e, A~ I(n ,l, wn ): ~~

m
C- e
.....eec
~er(B, A,X)¡

'-,...
m alh 'M: . -
;fdoseño del filtro
.....
I-'..-' '__
1\'S""dleb(Dr"<Stf{ t~-aJOOI
I i44 I00 ,fstop- IOOXIf44100,
¡;;¡. t- ~'"
''ll
~
~er(IY'l ,X):

. _~
km...••.01
11
. '>iJJ
Flqurd }-17 Jmpk'mentdclón de un nnro utnzanoo MATCHSCRIPf NODE. MATLAB
SCRIPT NDDE y XMATH SCRJPT NDDE.

2 .10 Eje m p los


2.10.' Ejemplo 1: Filtro promedlador
2, 10, I ExpllCadón teónca
Los filtro s In tegradores o promcd lad ores so n un tipo de filtro paso ba jo, Su aplicaci ón
es red ucir el ruido de una St'nal s u poniend o l-s te d e frecuencia much o m,\s alta q uela
propia señ a l, también se aplica en la ed ición d l' irn égcncs pa ra añadir difum inados.

El fun cionamiento lOS senci llo; ca lcu lar el p romed io d e u na señal en u n inte rvalo d eter-
minado. Pued e a plicarse tan to a sis tem as co ntinuos como d iscretos ,

Figura 2-28 ventana mÓVIl para reahLdr ("1 promediado

54
Estructuras

~ u n prcmedíador móvil existe lo que se llama ve nta na qu e indica el tamaño d el


e-te rvalo a p romediar, en un s istema discre to este tama ño serán las muestras de la
-ecue ncia de entrada q ue se promediarán . Una ve ntana móvil a vanza en cad a pa so del
.o..i ~ori t mo una po sición en la secuencia de en trada pa ra reali zar el promediado co mo se
e-c es tre en la figura 2-2R.

vta tema tíca mente puede expresarse la ecu ación en di ferencias del s iste ma como:

{N_'
y(n ) = - 1 ~>(n -k ) )
N .~
Do nde:
• y (n ): valor calcu lado.
• ,''1: ta maño de la venta na.
• "C se ñal d e en trada .
• k: índ ice pa ra reco r re r los valores a promedia r.

~. :4.ica nd o la prop ieda d d el desplaza miento temporal se puede hallar la tran s formad a
: .kl s is te ma definido por la ecuación an te rior y, a s u vez, d e esta nueva e xp resión se
csen d ra la es tr uctura d el filtro .

.....JI es tructu ra de la figura 2·29 se ha pa rticularizado para u n o rden igual a cua tro.

.. (n) y (n )

Figura 2-29. Filtro de orden cuatro

.L 10. 1.2 Código


"ara realiza r este ejemplo se implementará un filtro promcdl ador móvil de orden cua-
-ro que añ ad a un d ifum inado a una fotografía.

55
LabVIEW

La en trada ser é una Imag en en blanco y neg ro con form ato BMP que co nsi ste en un,'
lista (por simplicidad de un 'lrr,IY de una d ime nsión ) de valores de cad a u no dt' los
com ponen tes de la Imagen . los co mpo ne n tes son RG B (Red. C reen. B1Ul'), pm lo tanto
para cad n pun to habrá tres valores. La sig uie nte lista rep rese nta como serta t~te . Jrr.1Y
p.ua un a imagen con cu atro puntos:

RI, G I. HI, Rl, G2, 82. R3, G3. 83. R4, G4 . 84 ...

Como la Ima gen só lo co ntiene grises . los valores d e los tres compone ntes so n lguales .
por lo tanto basta r é con ap licar el filt ro a uno solo de los componen tes o lo qUl' es 11.1
mismo, a un o de cada tres valores .

El programa empeza rá leyend o el fichero y desglosand o su información; cnm- es ta


informa ción st' ob tend ré un .Jrr;¡y RC8 como el an terior (po r sim plicid ad se tt<tb'lj.u<1
i-n una dimensió n ). [...1 función Decims te l D Array, con un temono de tres elementos .
obtendrá a la primera dt' S tlS s.1Iid .1S un array cuyos elementos S( '.In los de las posíc io-
ncs 1,4,7, 10, 13... del ,Jrr,JY dt, en trada, es decir, obten drá tod os los valores del co m po-
nente R de cada pun to.

Los valo res R de cada puntu so n promediados. el promcdtador su maré el ú ltim o va lor
le íd o y los tres an teriores . el resultado se di vid irá por cua tro. L] ventana S(' im p h-men-
t.u.í mediante Sh ift Regi.<;lt'~ y el resultado se irá Ind e xand o en el lateral del FOR .

l'ara n -coru..truír la ima gen bast.l con hacer el proceso inverso al d e dccimar: interpolar.
H nal mente se d ibu jan las im.i~ellt's an tes y después d e aplica r el filtro .

Mediante la señal selector Sl' podrá eleg ir el tipo de estruc tu r e im plementad a. s i l' Slel
act iva da sera co mo en la ñguro 2-30 y si no est é activad a habrá realiment ación d e las
salid .ls ,1 la entrada.

e ID A" ,..

~ - - ID ~.
g==l : r-EITl fi>- .I - -
m !il'

Figura 2-30. VI qllr implementa un ñnro promec nacro r mÓV11d e o rden 4

56
Estructuras

2_10 . 1.3 Resultado


"ara exp licar el efecto del filtro se p uede de cir que proporciona cierta res is tencia a l
ambio en la imagen . En la figura 2-31 puede verse el resultado de l filtro sob re u na fo-
-....zraf ía.

Figu ra 2-3 1. Resultado del filtro sotxe und fo tog rafía

.....afigu ra 2-32 es un d etalle del p rinci p io de la fotografía después de ap licar el filtro


_'-••and o realim entación de salid as a la en trada para magnifica r es te efecto )' en ell a se ve
GlO hay una se rie de puntos negros que en la original no est aban, es to se d ebe a la
-odi cí ón inicia l d el filt ro. Para pa liar este problema ha y va rias form as: n-d ucir el orden
nltrn en las primeras muestras, usar el p rimer va lor com o con d ición inicial, etc.

f lglJra 2-32. Deta lle de os primeros punto s que pasan po r el filtrO

- 3I....o nseiable ejecutar es te ejemplo con la op ción H ighHght EXCCU tiOll activa da . de es ta
-taocra se p uede ver un ejemplo p ráctico del uso de los 5hift R('gisters y la salid a ind e-
cea en los bucles.
m o se p ued e intuir, este métod o se puede generaliza r para otros tipos de filt ros FIR
-:R.

2. 10 .2 Ejemplo 11: Generación de números primos


: 10.2.1 Expllcadón teórica
1 todo el mundo sa be. u n nú mero pr im o es aquel numero na tura l qu e só lo es divi-
..... e po r él mis mo y pl)r la unidad .

57
La b VI EW

l:k-:ode los tie mpos d e Euclides (300 acle) se sa be llUl' e xiste n infi nitos núme ros primos.
Los primeros algoritmos P il ril encon tra r números primos también p roceden d e la é poca
d e los an tigu os grieg os, como la «criba de Era tósn-ncs». Desde en tonces ha pa sad o
mu cho tiempo pl'rO a ún Sl' sig ue investigando en es te cam po . por ejemplo en el a ño
20114 Sl' CT"t'Ó otro algorit mo qu e mejo r, el anterior lla ma do «criba de Atkin ».

La ge ne ració n de n úmeros prim os es un a he rra mienta mu y int eresante en ca mpos


co rno Id crip tog rafía . d ond e a lgunos a lgoritmos como el RSA usa n números p rimos d e
valo res a ltos como b.1SC p.l ra rea lizar el cifrad o.

2. 10 .2.2 Código
En este ejem p lo se optaré por un algori tmo que sea lo más sen cillo po sible, cons ls tir ñ
i-n hacer un barrido d e n úmeros empezand o p or el dos ha sta el lími te indicad o por e!
us uario, es d eci r, se recorrer án los nú meros 2, 3, " , S, 6, 7, s... Para cad a n úmer oSl' vol-

N"

eo-••

UN .. .....
""-,

N"

FkJurd 1 ·33 AlrJ0ntmo para la orxencón r1t" numer as DIlIl lOS

58
Estructuras

_.,:"" :=: ;} boce r un barrido hasta encontrar un número que sea divisor del primero, si est os
- -ium eros son igua les significa que el único divisor de este número es él mi smo, por
41"".: 0 es un número primo . En la figu ra 2-33 puede verse un diagrama de flujo de es te
ccormo. Nó tese que en este algoritmo, al igual qu e en muchos otros, se ob via el
~ro u n o .

:- -.,jj ~o
pa ra implementar este algoritmo con el nod o fórmula es exactamen te igua l
.c: en lengua je C. En primer luga r se declararán las vari ab les y a co nt in uación se usan
- -ucles f ü R, uno para cada barrido.

..-:> det e rm ina r s i un n úmero es d ivisor del otro S t ' com p robará s i el res to d e la div i-
""" ... entre a m bos es igual a cero . Finalmente los n úmero s p rimos encontrados se alma-
~.i ;"l en un <llTay.

.......................................... """ •
Buscilr I"Ún/;tros pr imos
................................... ,
. ............
IfVilriables
ulnt32 n,divisor;
nt i" O;
nt32 resull<ldo[100];

lIaIQct"tmo
for ( n- 2; n<- kmite ; n+ + ) {
for(dvisor - 2; n % divisor l. o ; divisor++ ) i
'i (divisor _ n) resultado[i++ l-r v
}

Figura 2-34 uroemenracoo del aiqom rro en un VI

:. . : 23 Resultado
.....< - c ura 2-35 muestra un array con los números prim os que ha y entre dos y quince
~.' res ult ad o de la ejec ución del programa anterior.

Figura 2-35. Números pnmos oorereros

= ese ejem plo se han aprendido d os cosas; en primer lu ga r a usar l'I FORMUL A
-':; E Y en segundo lugar a darse cuen ta d e que. a pesar de su nombre, esta estr uc t u-
>1. .C' sólo si rve para in trod ucir fórmu las mat emáti cas sino quC' tamb ién se pueden
,....-: .ea r en ella elementos de un lengua je d e p rog ra mación como bu cles, funciones, et c.

59
LabVIEW

2.1 0.3 Ejemplo 111: BIngo


2. 10 .3. I Expllcadón teóríca
En esta ocasión Sl.' desea reali za r un programa q Ul' genere un cartón para jugar al b ingo,
Pa ra este se m-cosita c rea r un a matriz II ,lrray de dos d imensiones que contenga valo..
res alea torios entre 1 y 100. Habr á diez columnas (u na pMa cad a dl.,(,l.' I\,l ) y cu atro fiI.1S.

2. 10.3 .2 Código
El programa pri ncipa l tien e la típica estructura d t' un WH ILE y un EVENT.

El evento q Ul.' se m ues tra en la figura 2-3ó 1..'S el co r respondien te al cam bio d e va lor J l.'
un botón llamado CM tÓn. Este bot ón tiene por acción mecánica Laten Whl.'n ReJe,lsea (se
w rá en el p r óximo cap ítu lo), C uando se pres iona el botón se ejecut a ra el subd iag rama .

I'ara generar un cartón Sl.' n ec esitan d os bucles, l.'I p rimen) rec orre ré cada una de las
decenas. co mo 1.1 ca ntidad de ejec ucion es es conoci da se usa rá un FOR. Den tro d e es te
bucle hab rá otro , est e bucle ser é un WHILE, en él se gen erar án n úmeros de forma a h-
ator¡a entre d os lími tes , estos límites sirven para acota r los n úmeros den tro de 1" dece-
na corre spond iente. La función Rsndom N u mbt'rdl'\' uelv e números en tre el O Y el L
p.u a genera r números enteros st' m ultip licará por 10 y se su ma rá el limi te infer ior, el
valor resulta nte st' apro xima .11 entero superior. En "'1 caso q ue el n úmero YCl ba ya sid o
gen erado ant es se d escartar á; si no hab ía sido ge nerado se alma cenaré en un a rT,ly. 1'" rol
detecta r si l.'] numero ya se había gen erado se bu sca d en tro del arraj- s¡ alg ún valor co in-
cide C(1n el nuevo median te .5l..',lTl·h ID Array , si no hab ía ninguno la s.1 lid a de esta fu n-
ción contendré el valor «-1» y se ej ecu ta r é el dla groma mos trad o en l.'1 CASE, para cua l-
quicr otro mm u-ro se ejecu taré el ca so por d efecto q ll l' s tm plc men te d eja pasar el .lrr.J.\'
de la en trada a la sa lid a .

f..'iíO'i .!U!Wl
'" "e"¡'" , ..... .
00

I'J . .~ ,.
.
,
1"" i •• OO~

I_!J
· i~ . ;lf
14tJ-. To"",""",, '"

., ~~W _.
iffi' ~
. ~:! ,

.,
f
'----ll> !l> j"!B
~
~
~
[¡J
I?>
¡¡j] t=;-¡ ..
bi
~
~

[¡J

FtqlJfa 2 -36 VI pa ra Id gene raCIó n de cartone s pafaJugar al t)¡JUjO


..
60
Estructuras

.and o se han generado cua tro números se detiene el WHILE, se ordenan los mime-
~ .íel ¿¡rrdY y se pasa a la siguiente decena. Cuando se recorran todas las decenas, en
-alída indexada del FOR se habrá generado un array de dos d imensiones con los
....-n er os de un nuevo ca rtó n .

" ~...rruc tur u EVENT contie ne otro sub díagra ma para cuando ~e presion e el botón
--.('" '-:' Este su bdiagra ma únicamente contiene una constante booleana con el va lor Tru e
.c.ea da il la cond ición del WHILE principal. Se puede pensar que se ría más sencillo
, ' •..= ~ vad o es te caso y ca blea r directamente el bo tón de Stop a la cond ición , pero no es
"..- ownda blc porque debido al flujo de ejecu ción de Lab VIEW no se podría deterrni-
..L~ .. i la cond ición de parada del WHILE se ev alú a an tes o d espués del even to .

=- 10 3 .3 Resultado
: - fig ura 2-37 se puede ver un cartón d e bingo generado con el programa de es te
•..'1
-e-- r-lo. Ca d a ve z que se presione el botón Cartón se gt'l1l'rará un nuevo cartón .


,

RgUfd 2-37. Cartón ob tenido de la ejecución del VI

: ~ ejem plo muest ra el uso de las estructuras EVE I\,fr , WH ILE, FOR y C ASE. Por una
. ¡ -:« <,t.. ha visto cua ndo se debe usar FOR (con un número d e ejecuciones conocid o) y

.aoc o \VHILE (cu and o no ha y un número determinado d e ejecuciones); también se


. ... visto el us o de la estructura EVENT y el típico problema del botón de S top y por últi-
.... ha utilizado un CASE dejando un caso por defecto . En el próximo capítu lo se
:;-j.:.uá n más detalladamente los .lrrays.

2. 11 Ejercicios
. A q ué es equiv alente el siguiente programa?

o Defd ..

Fig ura 2-38 EjerCICIO ¡

61
LabVIEW

2, Realizar un programa qu e ca lcu le el factorial de un número . Hacerlo primero con


estruc tu ras de repetici ón y IUl'gU con FO RMULA NO DE.

3. Realizar un p rog r.lm.l q ue gl'nl.'rt' un arraj- con el primer millón de n úmeros enteros
med iante un bu cle WH ILE y un fO R. ¿ Cuá l es més eficiente? ¿Por qu é?

4, Modificar 1:.,1 proh'Tilma del ejemplo I para qu e también acepte im ágenes en co lor.

5. Realiza r mediante programación visual el mismo algoritmo qu e en el ejemplo 11.


Co mpara r ambos programas en térm inos dl' velocidad y espoclo.

6, Aúa dír al e vento del ejem p lo 111 otro caso cuand o se presion e un botón llamado
llOl.1. El su bdiagra ma debe simu lar el fun cion amiento de un bo mbo para luga r al
bingo , tambi én se debe tener en cue nta no rcpen r las bo las qm.' ya ha bían s id o saca-
d .1S. O pcionalmente tambi én pu ed e añadirse a lg ún mec anismo pa ra d etectar si la
bola que ha sohdo esta ba en el ca rtón (Pista: ver en el siguie nte ca p itu lo 1.1s p ropio-
dades de los con troles ).

2. 1 2 Bibliografía
1. Kod osky E. P érez. AN 039: Lint'.Jr S.vstt'm in LlbVJEW. Nat ional lns tru me rus. 1993.
Na tiu nal lnstru ments, A N 200: USill); tbe Timed JÁ.)OP tn Wri tt' Mu ttirete A pplicat íons
in LabVIEW, 2004.
Natíonal lnstru mcn ts, Lab VJEW IJ.1Sici'> J Co urse Menuel. 2lXX).
Na tion al Ins tru mcn ts. LlbVJEW User M.lnU.ll, 2lXlI .
Rick Hitter ct alt., LlbV1EW Advanced Progromm íng Tcchniqut'S, CRC PR'SS Lt.C ,
2001.

62
Capítulo 3

Tipos de datos

3. 1 Tip os de terminales
• d Pan el Fronta l se p ued en coloca r controles e ind i ~'i\ dt tres. Como se ha di cho en ca pi -
<,an ter iores. los cont roles son el pu nto de entrada de información a l VI y los indica-
r"f:'"". de salida . Los controles e indicadores tendrán su re presentación en el Día grarna
3J, >qUl'S, dond e podr án ser ca bleados p ar a leer o escribir s u va lor. En el D ia~ rama de
....ruc-, ad e nuis SI ' podrán tener ta m bié n consta ntes. En el men ú con te xtua r eh' es tos
-wn tos ha y opciones pa ra ca mbiar d e un tipo el otro, en la figura 3-1 se ha marcado
-cci ón p .:H il cambiar un con trol de tipo str íng o un indicador del mismo tipo.

krrlcador st..... 1
~
._."""«Jan<
Oeill e

o..t a
••

..,. ~ ~

H: Corbol to P_

Sc""" Ob¡e¡:t o«h Pilne

<
Figura 3- 1 Tipos de rerrr uoares b áscos y como cambiar de un upo a ot ro

..t-end ien d o del tip o de da tos y del tipo d e termina l se tend rán unas opciones ti otras.
- r-i á-, importantes para cad a tipo de datos so n:

63
lab VIEW

• En lo-, co ntrole- dt' tiptl b",olt·.lnll ~ tiene 1.\ opción dt' ,\ It"c:h.m ic.J1 A cli(ln q ul..' Il':'<
permitr- .KtU.U f l1m u pulsadon... (l.1tch) (\ in terruptores, (...wítctú, ver fi~ur,l 3:!.

• LI1 ~ num érico.. p ued en .lc",l.u l'l r.m F;o dt· t'nt r,ld ,l 1..' (Jn /J.11,1 I?,l/I~I ' Y mod ififM
va rta-, opoone, dl' vlxual iz.uiún ron Fottnat ,IIId Psv ci...ion.
• En 111.. con trole, t ' ind iú ldl .rt's dt· lipt l ~ t rin~~' pued e ver el con ten ido d e fo rm a
normal. repn-entodo por Ullt ts códigos (n 'r Ia bla 1). co mo as tcri-co-, o po r s u
valor ht·x<1th."Cim.lI .

Junto ,1 un terminal p ueden .1p,l n'Cpr varios Itern s. En 1.1 fi ~ur .1 .1•.1 SI' muestra u n cnn-
tro l nu m érico d tgtta l con los si~ tli l'n tl's íte ms:

• LJl..I.'I: e, un tt' xlll qUl' J.1 un nombre a l ternnnal e n el I'.uw l Frontal, l...ta d iqUt' t.l
St'r.l usada p.u.l id entifica r .1 1elemento 1..'11 va riahles, propiedades. d e.
• Clptioll: t's lit ro tcvto ,\sOl.'i., d ll ,11 termina l !JUl' SÓ111 p Ut'd l' .1p ,\ rt"l,.T r i-n e l P¿IIll'1
Fru ntel l.
• Increme nto /dec remen to : e n los rcrm inalc... numé ricos ta m bién se dispone dI..' t'stl'
elemento p.tr.l aumentar o d ismin uir el valor d el dato.
• f.:,}tfi\: in dica 1..' 1 fo rma to lit' ViSU'l lú'aci ón e n los te rmi n.l ll..... numcrioe- en te ros en
decima l (d ), oct a l (o ), he xadecimal (x) y h inM io (b) .
• V.1Im : l 'S el va lo r qUl' h.1Y en el terminal representado en d format o t'lt·~iti o.
• Unidades: el tipo de da h~ n um érico también PUI..-dt> tener un s ím bolo que rt' pn"
sen lt' sus unidades .

FllJUr., 3·3 nens oc un tt"flnlf)dl

Pa r.1 term inales dt' litro tipo habr.i utr,l:'< opooru.... incluso P.lr.\ n-rrninal e- con e l m ismo
tipo de da lllS pl'ro co n di fl'rl'ntl' tormo también ca m bia r.in l'~ I ,h opciones. En 1.1 fi ~ll r.l
3-l pueden ,' p n'Ci,u,:*· t«... co ntrol e-, numéricos fl ln iorm.ls . lifl,ft·ntl.....

64
TipoS de datos

s
10- -
,.,-
,-
DIO

• ,
,--
0-

Figur a 3 -4. Cont roles ouméncos con diferent e rormato

_ el Diag ra ma d e Bloq ue s SI¡' re presen tan los indicadores con un a flec ha e n el lado
c.nricrd o que a pun ta haci a el terminal sim bo lizando una entrad a. y los con troles con
.r-a fl ec ha a la derech a apuntando hada af ue ra. Estos terminales pued en ve rse com o
'no o con s u as pec to clásico, como en se aprecia e n la figu ra 35.

Figura 3-5 . Sím bo los de lo s terminales

--l vis ualizaci ón con forma d e icono permite ve r la for ma d el te rminal, lo qu e pu ede
-c1J .'IT a id entifica rlo; p or ot ra pa rte la vista clás ica ocupa men os es pacio y se rá la u t i-
..:.:d a e n el resto del lib ro . En Toots » Opt ícms > Block Diegrem pued e ca m b iarse la
-ma en qUt' LlbVIEW d ibuj a los terminales por defect o .

3 .2 Tip os de datos
-.1 d e las p rim eras cosas que SI¡' a p rende e n cual q uier lengua je de prog ra maci ón s on
.... tip o":' de datos d ispo nib les. No debe confund irse el tipo d e datos con tipo d e tc rmt-
-.a. Cua ndo se hab la de tipo de datos se hace ref erencia a si son n uméricos, cad enas d e
-.:¡; ~ ac teres, etc.

~ upo d e d.ltos se represen ta en el Diagra ma de moques por el co lor del term inal y d el
-lo:" k así u n d a to boolea no tend rá termi nal es y cables verdes pa ra diferen ciarlo d e un
..::!!lg que será ros a.

z;• con tin uaci ón se estudiara n los d istin tos tipos de datos con sus ca rac terís ticas m ás
:......taca blcs , tr ansfo rmaciones de unos a otros y la forma en que los di stintos tip os d e
:.¿ ! ¡>,; de Lab VIEW 51.' a lmacena n en memoria. Esto t'S algo a tener en cu en ta en alg u-
-...:" oca siones mu y concretas, como pued en ser:
• Llama r a cód igo externo.
• Trabaja r co n ficheros binarios.
• O tras fun ciones 1/ 0 .

65
Lab VIEW

3.2.1 Boolean
Los datn.. dt' este tipo wlu p ueden ten er dos posib les va lores : verdadero (TRUE) u falso
(FA I.S E). Debido el esto ..uelen usa rse en con tro les con forma d e bo tón o pu l-odor.

Cad a d.lIn b..lul,,·a nu -e ,ilrnecen a ton memoria en un byte com p ido. s i es te 1-y h' tien e
tod o.. su.. bít s a cero . el da to tendr é \"1 va lor FAl5E y cualq uie r otro valor d el bvw har.í
q Ul' l' l ll,ltu pase a TRUE.

antro!

liEI
FKJWd 3-6 Dato eoo e ao o

En los (l llllrok'S bool ean os se pm'd e selecciona r su 1\-1cch.mic,11 A cticm, co mo mn s t r.lb.l


la fi¡:; ur .l ':\-2. Y.l se dijo q ue los ."ó wi' ch !'110eq u iva lvnt esa Interrupton-s y los 1.l k h .l p u l-
sadon-s . En 10.. d ibu jo.. ljlll' rl·p n ......·n tn Cel d a acción 1M)' unas k lr.l...1 la izq uierda : «01_,
KV» y «R. IJ». L..1 prtm cre d e di".. (e m ») s im boli zala acdón mecánica qu e ha ce e111SUol -
ril) so bn - r-l control. 1..1 Sl,.. g unda (tlv») rep resen to d ca m bio dl' es tad o qu e s uf re el con-
trol . Final me nte la tercera (<< RDlt) ..ú lo Sto' pm...f e ve r e n los dt' tipo íe tch y a lud e ,1 1
momento en q ue . d ~i l- el Dia grama de B10q ul'S, el valor d el co nt rol es leid o . Co mo se
puede ver en los icuno!' tipo tetcb. r-l control tiene un "e...tedo l ...t.lb ll'" y uno "ae...te blc",
cua nd o se act iva el con trol se p.lsa d el es tado estable al aes table du ran te un tiem po, y
vuelve al es ta ble in mcx[Iata mente despu é s de que e l va lo r del control sea leido.

3.2.2 Numerlc
Al trabaja r con d at o.. num éricos h.1Y qUl' distinguir entre n úme ros enteros. nú meros
raciona les y co m plej os.

Los nú rnt'f{K en te ros tien en asoc iado el color azul y puede eleg trsc su tama ño (H, I ti , 32
() h4 bits ). s i Sol' e m p lea un bit d e s igno ( ~ igned o unsi¡;m'(l) y su rep resentació n {bina-
no. <ll:1.11. decimal. he xadecimal ).

L IlS con troh-s de tipo En um y Ring ta mbién so n n um éricos. Se trata d e list as qUl' aso-
cia n un a cad ena de ca racte res a un valor num érico. Med iante su me n ú cunt(·xh l.l l se
p Ul...1l' accede r a Ed í! ítem para d efinir 1.1 lista d e valores. La prtnctpa l diferencia en tre
t'Slos do.. tipos es qm' en los ennm el te xto se consid e ra también parte d el con trol, r<lr
[OlJUl' p.1J".\ conectar un control II cons ta te en um .1 un indi cad or c n um se ru-c·es it.l q ue
ambo.. l l·n ~.lll rte m-, ron los mismos nomb res. mientra s q Ul' r on Jos ring no es nec e-
s arro .

En la fi ~u r., 3-7 pUl...h -n verse do-, cons ta n tes. el s im ho to q Ul' a parece a s u iLqu i,,' rdol
(una let ra «lb o «Xlt)lOS su rep re-en taoón. est e item puede activa rse con la opción r.1Jh
en el men ú conte xtu.l l VisibJ..' ltt'm.<;; la prime ra cons ta nte lOS dl'Cirn.ll y la segu nd.l h t'xa -
dl'Cim.ll [...1 p rimera l...t.í COOl'Ct.l d .1 .1 un indicador qut' ' ·¡"U.1Ii".l da tos co n ...igrul d l' 32
bit.. (132) mil'ntras qUl' 1.1 ~u nd.l .1 u n ind icad<lr ..in ..igno <1l' l h bi ts (U I6 ).

66
Tip OS de d at os

Figura 3-7. Constantes con onerenre representación

númer os racionales y com plejos tienen asociado el color nara nja . Sig uen el est án-
_ ,-,!,;<

ca r IEEE; el tamaño es de 32 bits para los d e precisión sim ple, 64 b its pa ra los de doble
- eecistón y el tamaño de los e xtend id os d epende de la p lataforma : 80 bit s para
-vmdows y Linux y pa ra 64 Ma cOS. El primer bit s ie m pre es el s ign o, los s igu ien tes el
acponcn n-, que es d e tama ño 7, 10 Y 14 bits res pectivamente y final mente la manti sa.
,.... com ple jos sim p le men te so n dos n úm ero s racionales de uno d e los ta ma ños a ntc-

31 23 o o
~ Exp ¡- -;-;::=
Mantisa -"- ~
"
Exp
52
I_~~_
Manti sa
S~p11l5 Doble ~$i6n

Figura 3-8. eeoresent ac ón en memoria de números en coma flotante

En 1,1 figura 3-9 puede ve rse un número complejo, dos cons tan tes con los valores P y e
tres consta ntes que se co necta n a tres indicad ores, cada uno de la precisi ón indicada.

'"...as co nve rs iones entr e tipos de datos numéricos suele n ser a u tomá ticas, cu an do S L'
...a ce. se re prese nta med iante W1 pe qu eño pu nto de co lor ro jo ( coerocn c.iot) justo donde
~ cable se co nec ta a l ind icador. como se puede ve r e n el indicador do p reci sión sim p le
.ie la figu ra anterior (e n ver s iones a nte riores a la 8.20 el color por d efec to es gris. pero
- oede ca mb ia rse en Toots > Options > Colo rs). Ta mb ién es int eresa nte la opción de
usa r un idades junto con los n ürneros . así en la figu ra 3--10 se pued e ver la rest a de 1
.clt ío y 1 mV, el resultado mostrado en el indicador se rá o,m V.

~;'~"'I
~ -.
Figura 3- 10. Resta oe dos números u tuzanoo un idades

Otro tipo de datos es el de tiempo (Time Sf.1mpl que es un co njunto de cua tro e nteros,
.'-"" d os primeros indican el número de segundos desde la 1:00:00 del 1 de enero de 1904
\ los ot ros dos las fracciones d e seg un do .

67
LabV IEW

3.2.3 Strlngs
Los s tri n¡:s son cadenas d e ca racteres . Lab VIEW asocia el co lor rosa a es te tipo de d a tos.
En rnemorta se almacenan como un pun tero a cuatro by tes que ind ica n el ta ma ño y a
con tin uación los valores de Ins ca racteres, un byte por cada uno, así el It' Xt<1 «hola» S('
almacena ra como «0000 0004 686F 6C6 1», siend o 4 el tama ño y 68h , 6Fh , óCh Y6 1h los
cód igos ASC II de cada una de las let ras de! texto anterior.

I Puntero r---
Tamaflo=
n

cha r (O)
cha r (1)

[eh", ln-' ) I
Figura 3-1 1 eeoesentaco n en mernona de Stnngs

En la figu ra 3-12 puede VCf'St' una cons ta nte con el co ntenido «tex to» y otras dos co ns-
tantes que representan un stríng va cío y u n re torno de ca rro.

~
~
.....

FIglJra 3- 12. Stnng5

Aunque los strings es tán d cstmadosa te xto, p ueden contene r valo res qUl,' no tienen u n
ca r ácter de representaci ón. tosto p uede com proba rse ca m bia nd o la fonna de re p resen-
taci ón a hexadecimal. A l vis ualiza r los cód igos se ve rán los ca racte res p recedidos de
una barra in versa, des de / <Xl .1 / FF; algu nos código s represen ta n ca racteres especiales ,
és tos se escriben siem p re en minúsc u las, so n:

Tabla - Códigos especiales

Código Desc rtpclón


_ _ R~y~e~o lBS)
_ __Fi~ de_oocurrento lFFJ _
Fin de tinea ILF j
_ _R~toroo. .de carro ¡c;RL _
\l _ _--""'
abuJddo<
,S _ _ _~{IO

\\ Barra lfM'ftldd

"''''
68
TipOS de datos

3.2.3. 1 Transfo1mad ones número-texto


Las transformacion es de n úmeros a texto y vicevers a son muy u sa d as en LabV IEW.
'tuchos VIs tra bajan con da tos de tipo texto (string s) como por ejemplo los de GPIB,
..m em bargo puede se r que los d a tos que se envían o reciben se a n nú meros y necesi ten
C(II1\'l' rtirsl' p ar a realiza r algú n cálculo con ellos.

En la pa leta Progm m m íng > String > String / N um ber Con vereion se encuen tra n va rios
\(1.. pa ra real¡...ar es tas tra ns formaciones .

~
.... ~~ ~~ ., .,. ~
. ~
•....
...
.
.,, ' ;
:.

~. .• b'J
.' '. g~
.._ .
. .,. .-•..
._~ . _~ . _ . ~ ' "4.

Figura 3 -13. Paleta d e co nversión oú rrero/texo

En la p rimera fila SI:.' enc uentra n las fu ncione s para pasa r de número a te xto, la seg un -
..:i.:l fila es para pasar de te xto a n úmero . El form a to de los n ú meros pued e se r en te ro o
.ie coma flot ante, d eci mal, hexadecim al u octa l. Los d os VIs de la d erec ha so n Porms t
\ 'aJue y Sean velue. es tos Vis t ienen un terminal llamado form at stríng en el qu e se
-:"\h,"t.it· es pecifica r el fo rmato de la conve rs ión; para má s información so bre la s in tax is
oe es te s tr íng co ns ulta r la a yuda de LabV IEW.
En el menú s tringtam bién apa recen d os funciones llamadas Sean Pro m String y Fo r m a l
ln to String . Estos VIs reali zan fu nciones de escaneo, transformacion es y conca tenación .
Basícamcn te so n u na he rra mi enta confi gu rab le con la que tr a nsform a r números y tex-
a o tro format o. Tod os los VIs de esta "familia" trabajan de for ma p ar ecid a a la fun -
:&.....
oón sp rin tf d el len gu aje C; tienen u n te rminal común, el fo rmal string que si rve para
con figu ra r esa transformación med ia nte unos cód ig os p recedid os d el sím bo lo «o,{,» , los
códigos más habitua les so n «'YoS» pa ra str íngs, ((% Í» para nú me ros en coma flotante,
. ~o . ", h) pa ra indica r el n úmero de decimales de los números flota ntes, (( %d » pa ra en te-
IT"'" d ecimales, e tc.

Por eje m plo, s i se desea constru ir un texto qUl' d iga «He med ido 3.64 voltios en la eotra-
.ía 2.» Siendo 3,1'14 y 2 entra d as numéri cas se podría usa r el cód igo de la figura 3-14.

%.2 f ~k.5 en la entrada %d.

Figura 3-1 4 Ejemp lO Vi pa ra 1"1manejo de cad enas y texto

69
La b V I EW

En el ejemplo anterio r ~ USi.1 un s tríll~ inicial q ue co ntiene «He med ido », ta mb ién ha y
tres e ntradas más: un número e n cuma flo tante, un stríng y un numero entero. El tor-
milt s tr iog se m uestra en la pa rte s uperio r, ind ica e l formato d e cad a entrada mediante
' XV, donde X lOS la lon gi tud e y el tipo de d a tos, ad emás en este s tr ing ta m bién se puede
incluir texto.

Pa ra configura r este tipo de Vis se puede recurri r a 1.1 docu me ntación pa ra COI\OCl' r la
sin ta xis del terminal !,lrmal st ríng. Tambié n se puede usa r un asiste nte pinchando dos
vec es so bre el icono y rellenando los ca m pos de fo rm a correcta. ve r figu ra 3- 15.

Un.1 generalizaci ón d e estos v ls son los q ue trabajan con expresiones regulares.que so n


un m étod o par a represent ar pa trones . Se suele aplica r a textos para encon trar y ma ni-
pula r cadenas d e tex to que cu m p la n una d ete rminad a cond ición, US<\I\ un comple]» sis-
tema p.ua codifica r es tos patrones que puede con sultarse en la a yuda de l.lbVIEW,

Otros Vis para trans formar te xto en núme ros y viceversa son los qm' St' encuentran e n
Progremming > Numer íc > Con versicm, concre tamen te 5tring Tu Byte A rray y Byte
Array To Stríng. Estos dos VIs no sólo convier ten un carácter de te xto a un n úmero n
viceversa, lo hacen con cad enas de caracteres. pur lo tanto son id óneos para tran s m itir
y recib ir se ñales a tra vés de In te rfaces corno TCP o e l p uerto ser ie.

FlJ'ma1 or,ro¡¡
evw:e...a~

"""'- ....
....-- _ _ nl8Q<'t

• "-'~
O lJH _ hel<I ...d:h: ,
[!J:Usoe l'l4X........ ~Ieno¡th: ,

...
Figura 3· 15 Asl~tffitf" del FOffTld t Srnng

3.2.4 Path
Los p.1 th sirven para indica r rutas rela tiv as o a bsol u tas a d irec torios u ficheros ta nto de
[a máqu ina local co mo de otra e n red .

A l gua rd a rse en memoria se alma cena un punte ro a una es tructu ra que se forma d el
numero de pa rtes que con tiene la ru ta (subdírec tonos). des pués cad a pa rte de la rula
se guarda como un s tring, de esta forma se consigue que la ruta se a independiente de
la pla ta form a. es d ecir, la mi sm a ru ta podría se r e nte nd id a por L1bVIEW fu ncio nando
so bre Windows, Un ix o MacOS.

70
Tipos de datos

En la figura 3-16 se puede ver una co ns ta nte que se conecta a un indicador y ab ajo dos
cod os qu e representan a la ru ta del VI que lo contiene y la ruta del directorio d e datos
~ LabVIEW.

Figu ra 3- 16 , Utilización de un retn

3.2.5 Arrays
-lrr<
1y s o arreglos son un con jun to de datos ordenados y de un tipo determinado;
ce es ta forma no puede habla rse s im p lemen te d e Mtay sin o de array de booleanos,
HTdY de stríngs . et c.

El cablead o de un arrey es del mismo color que el tipo de datos que con tien e, pero más
JUt."SO y en el caso de los num éricos el ca bleado es d e doble línea pa ra d os o m ás
frm ens tones . En el terminal del Diagrama de Bloques apa recer á el tipo de d atos entre
corche tes.

un te a los terminales (control , indicador o cons tan te) de cu alq uier tip o de arr.1Y apare-
~"l:'n uno o varios índices numéricos que indican el primer elemento que M.' muestra
cótcsc qu e no afe cta al contenido, só lo a la vis ualiza ció n. como un ecrollben. Estos
.nd ices ta mb ién indican la d imensión del array de manera qu e si sólo ha y uno se rá de
.lila d imens ión, si ha y dos índ ices será de d os d imensiones y así suces iva mente .

-lJ gua rd a rse en memoria se guarda un puntero a una es tructu ra que const a, en primer
'Uji:;a r, del tamaño de cad a dimensión en cua tro bytes por cada LIno y a con tin uación van
1'-...... d a tos guardados en el formato que se co rrespond a al tipo de datos.

3 o
Tamaño 10 I
Tamaño 2D I
'"'16 (0,0) I
1"'16(0,1) I
1'"'16en(", m) I
Figura 3- 17. zepresenraco n memoria de un ¿¡"ay de do s osnensores

~ la figura 3-1Hha y cuatro array s, el primero es uno vado, para as ignarle un tipo hay
~ arrastrar una consta n te a s u interior, debajo de és te ha y un drray numér ico de una
.amcnsíón , el de la parte superio r a la derecha e~ otro arm y numérico pero éste de d os
drm ension es , el ú ltimo es un array de smngs que muestra los elementos a partir d el
-egund o.

\l usa r un a rr.IY no hay que declarar el tamaño de cad a dimensión como en otros len-
zu ajes como e, el array puede re....dímensíonarse cuando sea necesario.

71
La bVIEW

--
- -- o
1B1m
o,
o I

I
o 1 1
o
,

l l ~ :m¡~
: tres "
, O
, -

FIQWd 3- 18 Diferentes toes de arra)/'>

3 .2.6 Clusters
Al Igua l que los .l r m ys, los d u...tt'r.'i son un tipo de datos est ruct u rado, ta mbién son un
con ju nto de datos. pe ro a d ífercncíe de los anteriores, los dustl'rpUl't.h'll con tl'ner'd a tos
de va rios tipos en s u in te rior, incluidos o tros clusters. El concep to es eq uiv alente a los
STRUcr en C 11 a los RECORD en PaS(.-a1.

La figu ra 3-19 m ues tr a u n cluster vacío, otro compuesto de u n entero y un .,rr.,y de


str i nJ{s y otro con un boolean o, u n en tero y u n str íng , este último tos un tip o es pec ia l de
clus ter porque es el usado para describir errores (desde la ve rs ión H.20 st' mue str a por
d e fecto con un ton o de colo r ma rr ón}.

D ,,, '

Pa ra crear un clusterve coloca uno vacío y se arra stran a su in ter ior o tros tipos de datos .
El ord en d e los da tos en su interior es en el q ue Sl' añaden. a u nqm' puede va riarse
yendo a la opc ión Rcorder Corurots In Cluster del men ú contex tual. en el ca pit ulo sobre
la creación del interfaz se exp licara el funcionamiento de es ta utilidad cua nd o se hable
soh n - el orden de tabu laci ón.

Si st' crea un ctuster cuyos dato.. sea n todo s del m ismo tipo. pod rán aplicarse sob re el
clu.'ift'r las mismas operaciones qu e podrían aplicarse sobre los eleme n tos d e for ma
ind ividua l. como muestra la figura 3-20. Por ejemplo si se crea un cluster cuyos datos
sean numéricos St ' podrá s umar a o tro numero.

I I 3

Figura 3-20. Suma entre un entero y Cluster con os daros nom éncos

72
npos de datos

clueters son recome nd ables cuando en un s ubVI hay una gra n can tid ad de co ne-
-I.."lS
cenes. emp leándolos se pueden agrupar y hacer la conexión má s sen cilla.

3 .2 .7 VVaveforrns
"-Ál'S we vetomus so n parecidos a los ciueters, se co mpo nen de otros datos, éstos son :
• tO: es un tim e s tamp que indica el momento correspondien te al primer va lor.
• d t: es la diferencia de tiempo en tre muestras, se sup one que ésta no varía.
• Y: un <lr ray que con tiene los valores d el eje vertical.
• enributee otra información que P'"..xí c ser afiad id a.

y
attributes
Figura 3-21 . Wavt'/blms

3.2 .8 Referencias
.....tS refere ncias (refnum) o manejadores se u san para sim bolizar un objeto ex terno al

:-rrograma, éste puede ser el con teni do de un fiche ro (no confund ir con pa th), u na cone-
con Ter, otro VI, etc.

x orm al men te lo primero que se hace con las referencias es abrir una conexió n y luego
~ Ira pasando secuencialme n te la referencia en tre los VIs, nod os de propiedad es n
eétod os que traba jan con ese objeto.

én memor ia se alma cenan co mo números de 32 bit s.

Figura 3-22. Algunos tipos de rete-eneas

3 .2 .9 Varlant
_os vs ríen t son un tanto espec iales. n o se tra ta d e u n tipo de datos conc reto y además
r-ced en incluir p ropi ed ad es. Se u san cu and o los d atos pu eden cambiar de tipo, por
eemplo, un dato que u nas veces pued a ser numeric y ot ras suíng. Tamb ién se usan al
cabalar con objetos Activcx.

73
LabV'EW

~
o
-~
~
Figura 3-22. Vananr

Ademá s del d ato. con tienen el tipo. como p uede verse en la figura anterior, para esto
h.1Y q ue elegir la o pció n SholV Type en el menú contex tua ! del ind icador.

En memoria se el mocena como un p unte ro a un a estructur a . La es truct ura reserva cua-


tro bytes p ara cod ifica r el tipo de dato .

3.2.10 Dynamlc
Bstc tipo de datos se usa con los Vis Express. Inclu ye datos y atributos asociados co n
una seña l. como el nombre, fecha . de. Los ti pos d e d atos Dyruunic, al igua l qu e los
w.l\'elorm. en fatizan el hecho q ue los d atos so n med ida s y no só lo números en un a
co lumna .

3 .3 Manipulación de datos
3.3.1 Manipulación de bytes y bits
Las funciones más sencillas par a man ipular datos so n las q ue traba jan con by tes y bits.
Ést.1S se encuentra n en la paleta Progremming > N umeric > Data Msnipuletion.

ef?~ElEj
I;§!H§ 8 ®
~ ~ ~~ I
- -- --_+_ _... --------.---,
Figura 3-24 Paera para fTl.3n1pul¿lCión de daros

En la segund a fila de es te menú es tén los Vis para realizar rotacion es y desplazamíen-
tos . La tercera fila tiene VIs para d ividi r y unir bytes en wcrd s y viceversa adem ás d e
in terca mbiar 1.1 parte alta y baja d e un entero. Mientas qu e los de la p rim era fila se
ve r án .1 co ntin uación.

74
Tipos de datos

3.3 .2 Otras transformaciones


En la figu ra 3-25 pueden verse las fun ciones Flatten To String y Unfla tten From S tring.
El p rimero, Pletten To S tring (tra d ucido co mo ap lanar) es un a función que con vierte
.d c el b loque d e memoria qu e ocupa el dato a un string. Se pued e eleg ir que la infor-
mación est ruc tu ral también se tenga en cuenta con el terminal prepend array or smng
o;ize ? y el formato d e los datos co n byte order íbig-endien. líttle-end íen y el nati vo d e la
cíataforma). L, entrada anythi ng puede ser cualquier tipo de datos. Un fiatten From
~!: realiza el proceso inv erso . En el men ú contex tua! se puede ind icar q ue manejen
"" d atos como lo ha cia LabV1EW en otras ve rsio nes.

a ny thing
~ ....' ay or strlog si;! , "
"" ...~ arder ( O : blQ~, n ",
p=
_r-
data strng

error oU:
error Il (ro ~rror )

Figura 3-25 . Distintas n ocooes para manoutao ón de datos

l,. d iferencia de los vsr íent, cuan do se apla na u n dato se p ierd e in formación sobre el
4X' de d atos origen. no tien en formato, por lo tanto al des-aplanar es necesa rio ín dí-
GlT el tipo de datos d es tino.

'Por ejemp lo, un arroyde números de 8 bits se almacena como una cabecera cons isten-
le' en un número de 32 bi ts qu e in d ica s u lon gi tud y tantos bytes como elementos ten ga
d. .JrrJY . Al ap lana r este array , si no se indica nada en el terminal prepend drray or
enng eizeise cons idera todo como parte de los datos y resultando un s tringcuyo valor
"..; el res ult ad o de anexar la cabece ra y los datos e interpretarlo co mo texto. Si este
Ml"d Y fuese d e dos elem ent os con los valores 1 y 2, el resultad o es un smng cuyo valor
~,,) d l'(: i m a l es «QO(X) {XXJ2 0102».

!Jgu nas fu nc iones realizan el aplanado d e d atos au tom áticamente. Tambi én puede se r
secesa n o al tr aba jar con librerías ex tern as.

3.3 .3 Type Cast


HdY dos tip os de con ve rsión: la coe rcicm (im plícita) y la css r (explícita). La primera la
-4C'e autom áticamen te el compilador. Pa ra realizar la segunda ha y que utili zar alguna
Jr.~u cc ión, antes se han visto varias para transformar de un tipo concreto a ot ro tipo
tam b i én concre to. TyIX' Cas t es la funci ón má s genérica para transformar datos d e un
::JpO a otro, viene dada por la figura .3-26.

~ term inal x es el dato a conve rtir y rype el tipo al que será con vertido, po r defec to lo
.:l.'n.·..idera strlng. pero se pueden conectar o tros. Esta función no rea liza ning ún tipo d e
com p robaci ón, así que al usarla hay que tener en cuenta que las entrada s type y x sean
com patibles, sino el resultad o puede no ser el esp erado.

Por ejem plo, este VI p odría sus titu ir a S trin¡; To Byte Array si en el terminal type se
ccoecta un arrsy de en teros de och o bits.

75
LabV IEW

'yp< ~
K ---~ - (type "" So:

Fl9ura 3-2b. Función Type

En el men úcontextua! también tiene la opción de manejar los da tos romo se had a en
la vers ión 4 de LlbV1EW, es te afecta únicamen te a los d atos booleanos porque en esta
ve rsi ón I11S gua rda ba ocup and o única men te u n bit y desde la versión 5 ocupan un byte
com ple to.

3 .4 Variables y propiedades
3 .4.1 Var iables locales
Para UCV.1r u n da to desde/ hacia u n contml/ indic ador se han us ado cables . A veces no
se p ued e rea lizar el cableado. como en bu cles funci ona nd o en pa ralelo y otras veces
sencil lame nte se qui ere escribir en un controlo leer de un ind icador . Para todas es tas
situ acio nes sirven las va riables locales .

Las va riables locales es tán asociadas a los co ntroles e indicadores pfl'Sentes en el Panel
Frontal d e un VI. Med iante ellas s(' puede ICt' r y esc ribir el va lor de ese con trol o indi-
cad or.

Par a crea r u na variab le local se puede ir a la paleta ProgramminK > Structure« > Local
veríoble. d espués asocia r esa va riable a uno de los cont roles o Indicadores qUt.' ex isten
medi an te el m en ú co ntex tual > SeIPCt ítem , ver figura 3-27.

5ele'ct R..m •

-
c:ho!Jnoe l o Il.Md

"'"
,.-.
~.-.dTIP...
_ _o

"'''-'
".... ""'""
,_o

Figura 3-27. Vari<lble~ ocaies

También pueden creerse di rectamen te a partir del te rminal, pa ra ello en el Diagrama d e


Bloques se d esplíega el men ú co ntex tu..,1 y se selec cion a Cres te > Local vs risbte, de la
forma que ind ica la figu ra ) -28.

76
Tip os de datos

L na vez creada la vari able M.' p uede ind icar si se usará como lectura o escritura (por
cefec to es escritura) con Ctunge To Reed o Chmge To Writc. Q ue la variable loca l se a
ce lectu ra o escritura es indepen diente d e si el terminal es un controlo u n ind icador.

¡¡¡¡¡
Ii.ill

~Cort rol
Chanc)e tQ !n<i<atot
~ te cen.tant
~ar<lTI;l , .,

.. '_ri

~
. _-
..., :1 ::~ot
~ _ As l ,on

"-~ I
Figur<l 3-28 Creaoó n de variables «caes desde el propio terminal

Las variables loca les tie nen un alcance que comprend e al VI en el que está colocad o el
control o indica dor al q ue h acen referen cia. No pued en usarse fuera d e ese VI.

Corno conclusión hay q ue d ecir que en gene ra l es preferib le cab lear las señ ales porque
-ccue d modelo de Detetlow. las variables locales sólo d eben usarse cua ndo sean nccc-
-arias porque p ued en apa rec er problemas de no iniciali zación de datos, cond iciones d e
carrera. etc .

3 .4 .2 Variables globales
...4-" va riable s globales se usan pa ra compartir in forma ción entre d istin tos VIs ejec u tan -
so-e en la mis ma máq uin a.
Poed en crea rse tambi én d esd e la paleta de estructu ras, arras trá ndolo al Diagrama de
~«Xj u es y haciendo doble die o también d esd e File > N ew... > Global Variable.

":"ocep tualmente so n como un VI normal pero sin código . Una vez ab ie rta la variable
zíooal ha y que colocar en su Pan el Frontal un con trolo ind icad or de l tipo que se despeo
....l infor mación se almacen aría en este nuevo «VIn y podría ser usada en aquellos ot ros
,1,0 que hagan referencia a la va riab le, para usar la va riabl e globa l se aplica el mis mo
-retod o que par a cualqu ier sub Vl.

~ -e añaden va rios controles o ind icadores a la vari able global podrá elegirse en con-
J(1o cu al quiere usar medi ante el men ú ccn textual eligiendo la opción 5e/ect ítem. Al
eual que las va riab les locales, tam bié n d ebe indicarse si se va a leer o escribir.

Corno se ha d icho antes, el alca nce de una va riab le globa l llega a cua lqu ier VI. Cua ndo
use en va rios Vis a la vez ha y qu e p resta r atención po rq ue pu eden aparec er pro ble-
'-li!

nao;. d e cond ición d e carrera, pura más información se pued e cons ulta r el capí tu lo 10.

77
LabVIEW

Ii f:) 't'l
. . !lIaN< VI
~, ... ¡;I .. VI
-,~
• el f«Itn Tendtte
. O Pl'o,.,ct 'M

,-...
....."JIt_
. aOlho< ~
ChlJrqI TollMd
~"" 0=
... Custom Conll'oI

"".-
~.-.dT ~ , ..

""""""'=
i:J,
00 L Sh:IwVI ........dly

Figura 3-29. oeacon de v<inables glolJdles

3.4.3 Variables compartIdas


Las va riables com pa rti d as (Sh.m od Variable) so n u n nuevo elemento in troducido en la
versión 8.0 de LabV IEW. So n otro mec a nismo para compartir In formaci ón en tre Vis d e
un mismo ord enador, e ntre ord ena d o res d iferentes conec tados en red o e ntre progra-
mas ejecu t ándose e n ha rd w a re d iferen te (por eje m plo un di spositivo r AC (pro~ram ­
m.lblt' A utam aíion Con trol1('r) y un PC ); ju nto con las es truc tu ras TIMED son la base
de la p rog ra mación en tiem po n-al.

Las variables com pa rti das se crea n d e nt ro d e u na librería d e un proyec to co mo m ues-


tra la figura 3-30. Para con fig u ra r es te tipo d e va riables hay que e nt ra r en s us propie-
dad es .

Para usarlas sOlo hay qu e a rras tra rlas sob re un Diagrama d e Bloques y con figu ra rlas
como lec tura o escritura. Tiene n tres te rm inal es : el va lor d e la va riable, un termina l d e
e r ror y. o pcionalme nte, un time sr.lmp, Ta mb ién pued e asoc iarse una va ria ble a un ter-
mi nal d el Pa nel Fronta l, p ara es to se puede o bien a rra strar sobre él la va ria ble com p a r-
tida o bien e ntra r en las propiedades delterminal e ir a la pestaña data bjnd in~.

78
Tipos de datos

En la con ñgu ració n de la va ria ble se le debe asignar un nombre, tipo de dat os y tip o de
va riable.

:;a ~' tre s tipos de variables compa rtidas: Sing/e-Pmet'Ss, Network-trublíshea y Time
Tri~¡;('r (sólo pa ra tiem po real ).
( <ISSing te- Proc eee tienen una utilidad parecida a las va riables g lobales, se usan para
. om pa rtir datos entre VIs de un mismo ordenador.
L», va ria bles Network-Publisbed sirven para com pa r tir da tos entre d istintos orden a-
JI ITl'S. Tienen má s opcione s que las Suvgte-Prccees. como m ue s tra la figura 331.

• Si nn se act iva la opción Use Butterirg se env iarán datos ún ica me nte cua nd o el
valor de la var iab le se modifica, acti vando el buffer en vía contin ua me nte d a tos .
• La casilla Bínd to Source conecta con otra variable. Si no S/..' acti va , el ord ena d o r
loca l d<l a conocer la variable en la red (la publica ); si St' acti va podrá elegirse u na
va ria ble ya publicada (su scripción) en otro ord enad or mediante Browse, co mo se
ve en la figura 3-32 o escr ibir su ruta, es ta tiene el forma to \ \ o r de n a do r\li b re-
ría\variable.
Si se ins talan los mód ulos DSC o Rea l Time se tend rán m uchas má s opciones, co rno por
ejem plo. alarmas, escalad o, seg ur id ad, etc.

'. :'. eo: 11 e__ JI ....


Figura 3-3 1 Propiedades de una variable com partida

El funcionamiento de las variabl es compartida s en red es el sig uie nte: LabV IEW con ñ-
zura el stuued variable engine (SVE) como un servicio (sólo en Windows). SVE es un
rramework que permite publicar variables en la red. Se encarga de enviar los valores
.íe es tas varia bles a todos l(lS susc rip tores qu e nec esiten lee rla y recibe los datos de los
-u scr lp to res que escriben sobre la varia ble. Debe haber por lo menos un SVE en la red.

79
labVIEW

Figura 3-32 . seecoo n de la fuente en una varlahle Net'NOfk-Publlshed

La treru..ferencía de información en tre husts se rea liza normalment e mediante el proto-


rolo N I-PSI' (Nl Publi"h ·Subsai/:Jc.· Protocol), que fu nciona so bre UDP. Para más ín ter-
ma ci ón cons ultar el ca pítu lo'} sob re comunícacíones avanzadas.

3.4.4 Nodos de propiedades y métodos


Lo s nudos d e propiedad es sirven principalmente para co ntrola r el as pecto y el estado
d e un terminal del Panel Frontal d e forma programada, es d ec ir, d esde el Díagrarna de
Bloques.

Tod os los termi nales tienen asociadas un a serie de propiedades . ha y a lgunas comunes
corno Visibh' o Positum , otras va rían dependien do del tipo d e ter m in al.

Para crear un nodo de p ropied ad p uede hacer se d e la m ism a for ma qu e una vari able
local: en 1" opción Cree te del menú contex tu al. co mo ind ica la figura 3-33. De e;t.1
for ma se crea un nodo de propiedad pa ra l'SC term inal: para seleccionar la propiedad
en concreto se hará desd e el me nú contextua ! del nod o. También, com o las variab les . se
deberé elegir si son d e lectu ra o esc ritu ra. El nodo pued e ex pand irse y a lberga r a o tras
prop iedad es, en este caso el o rden d e ejecución lOS de arri ba hacia aba jo.

Hay cien tos de propiedad es , .1sí que no se pueden explicar tod as en es te libro, pero en
la ayu da con text ua ! se ofrec e una breve descripc ión de ced a prop ied ad . Algu nas d e las
mas usadas so n: Vi.,úblt·. f'os;t;tm, Disabted y Bounds. 1...1 propiedad Value debe evi tar-
se y su stitui rla ¡Xlr u na variable local (o ml; o r aún. un cable cuand o sea posible. PUlOS
lus nodos de propiedad no son tan eficien tes como una simp le va riab le.

80
Tipos de datos

•• •••
Te:a.Colors
HIde Irdit~ or
CI'>oor;Je to Control
Owge to Const an!:
Desup:IOn aM TIIl. .

_ As leo"

Figura 3-33 , Creación de un nod o de propiedad

~n el menú. de la figu ra anterior también p uede verse ln vok e N oae, esto sirve para
.rear un nodo muy parecido al de propiedades, en este cas o de métodos. Estos nodos
- ..l es t én relacionados con el aspecto sin o qu e efect úa n alguna acción, como por ejc m-

:,kl rein iciar a los valores por defecto.

Estos nodos tam bién S(.' p ueden usar de form a genérica, es decir, que a priori no es té
e-ociad o a ningún terminal. pJra ello debe usarse Programming > Applice t íon Control
Propcr ty Nodo. En este caso hay que cablea r una referencia al termina l sobre el q ue
Jt.:t ua rá .

::..,., la figura 3-34 pued e verse a la izquierda dos controles booleanos, se trata de d os
cotones. En la esquina s uperio r d erecha se usa un nod o d e propiedad para detener e l
rerp adco (Blinking) del p rimero de ellos. En el centro de la imagen se ha ce visible o se
culta uno de los dos botones, dependiendo de cua l Sto' elija, es te nodo es genérico, por
l.."'l tan to puede act uar sob re cualquiera d e los dos botones. Final men te, en la parte infe-

"1Or se muestra un nodo de m étodo s. en es te caso Get lm age que obtiene una imagen
~I botón, el VI al que está conectado simp lemen te 10 dibu ja .

b- · .. -e BooI (strrt)

I!ij ¡

Fig ura 3-34, Ejemplo del uso de nodos de propiedades y métodos

81
LabVIEW

3.4.5 Referencias
En una sección ..m ter ior se ha ha blado de refe rencias junto con el tipo de da tos retrvum,
esto no debe con fundírsc con las referencia s a terminales del Pane l Frontal, qm' ser é lo
q ue es tud il' a contin uación.

Se c rea n igllil l que las variables locales y las propiedad es, en el menú Crm tl' d el men ú
con te xtual. Una vez crea da p uede cam bia rse el te rmi na l al que está asociada desde el
menú Link. to. Puede verse el men ú e n la figu ra 3-33 como crea r referen cias y en 1.1 fig u-
ra ) -34 dos nodos de referencia d e los controles Bootem y Bootesn 2.

Co mo s u no m bre indica, s irven pa m hacer una referencia al termina l .11 qUl' l'Slán .'!So-
d ados. Estas referencia s No' a p lican p rincipalmente a nodos de métodos (l propiedad es
gen éricos. Pued en se rv ir para hacer qUl' u n nodo act úe sobre uno u o tro te rmina l co rno
No' rnuestr . l en 1.1 figura :Fl~ , pero s u mayor utilidad ('S pa ra pod er u sa r los nodos d v

propiedad es y m étodos asociad os a un terminal desd e un VI distinto al qUl' ostan colo-


cad os, las referen cias no tienen alcan ce co mo las va ria bles loca les. pueden p.1 S.1rst' a
otro VI co mo un parámetro más.

3.5 Ejemplos
3 .5.1 Ejemplo 1: Varios métodos para convenir la
representación ASCII a su valor
3.5 .1. 1 ExpU=ón teórica
Este ejemplo se exp lica perfectamente con el titulo . no nec esita más d escripción , aqu¡
s im plemen te se justiíka el mo tivo d e incl uir lo: a m uchos usua rios noveles qm' tra ba ja n
co n Interfaces co mo el b us se rie R5-2.12 se les p resenta el problema de qu e lo en via do y
tra nsmitido es un string, s in embargo d eben in terpreta rlo co mo números; en p rinci p io
se pued e pensar en u sa r las fun ciones de Progr.1nll11ing > S tring > S trin¡;/Num h 'r
Convcrsion, pl'ro éstas no valen porque lo que convier ten es un car ácter num érico al
n úm ero qUl' representa o v iceversa, poro no p ueden convertir un ca r..Ictcr a su valor
ASC II, por ejem p lo e n un s tríng el ca rácte r «1» (c uy o valo r ASCII en he xadecima l t 'S d
31) no No' co nvor tina a s u va lor ASC II (49 = 3 1h), s ino en el 1.

3.5. 1.2 Código


Para n-ali za r este programa ya S(' han e xplicado algu nos mé todos, aq uí st' reco pila n tres
de ellos.

El primero l'S Tvpe Ca... t. En el te rmina l type se debe conec ta r una se ña l de! mismo tipo
de lil qu e St' desea ob tener a 1.\ s alida . e n es te caso un .lrr.JY de enteros lil' ocho bi ts .

El segun d o m étodo es usar Strin¡:: To Byte Arra)'. Esta l'S un a funci ón pens eda cs p resa -
men te p.ua l'slt' p roblema .

El tí ltirn n mét odo recopilado es usar UnfJa tten Frnm Str íng. Este m étodo aprovecha que
el dato dt, entrada es un string, sin e m ba rgo pa ra transformarse al arr.1Y d e en te ros de

82
TJpos de dat os

salida necesitaría los 32 bits iniciales que ind ican la d imen sión d e esa dimen sión d el
.:Jrray . Co mo el strmg no 10 tien e se marcar á en la entrad a data includcs array or sfring
s íec? corno FALS E.

Els rrmg- mostrado en la figu ra 3-35 es «ab cd ef» . los va lores de es tos caracteres van d el
47 par a la «a» hast a t,1 102 pa ra la «F» . Los resu ltad os se mues tran a la derecha d e la
Iffi,' gt'n .

o .)

o I1

Figu ra 3-3 5. VI q ue pasa u n ASCII a su valor

3.5.2 Ejemplo 1/, Sistema distribuido con variables


compartidas
3.5.2. I Expllcad 6n teórica
En es te ejemplo se most rará el uso d e las va riab les compartida s en red , ya ll uC es su
mayor utilidad . El ob jetivo Los, crea r un sistema d istribuid o, habr á un boet que genera
I(~ datos y otro que los vis ualiza y configu ra al primero.

3.5.2 .2 Cód Igo


En primer lugar St' deben crea r sen dos proyectos en los dos nosts y un a libre ría con dos
variables compart idas .

L 1S variables se rán p ub licadas en el primer ho...t por lo q ue n o tendrán act ivada la ca si-
11.1 Bind Tu Source de la ven tana de propiedades, una va riable será d e tipo Doubtc
W,w efom l para almacenar la señal generada y 1" otra va riab le ser é un núm ero ent ero
para definir el tipo d e seña l. En la figu ra 3-31 se muestra la con figuración de la segu n-
da vari ab le.

En este hus! tamb ién se creará un VI qu e recibir á el tipo de gráfica que se desea " tra-
vés de la variable numérica , la ge nerará y la escribirá en la variable wil \,t'fo rm . El códi-
go se muestra en la figu ra 3-36, donde S(' usa la función Boeic Punctíon Genemtor.

El segundo nosr ser á el en cargado d e visu aliza r los datos. Tend rá un p royecto con d os
va riables igual q ue las anteriores p ero en es te C,1S0 sí se acti vará la cas illa Bind Ta
So urce para poder se leccionar las variables del p rimer hosf.

83
La b VIEW

Figura 3-36. VI que genera una señal

rg¡
.'.-....
eo Sha,pd Warldb¡" Pr0l"'rU".

o~
-
.....
.......
,
.... -
,

...
Figura 3-3 7. ConfiguraCión de kI varaore

El cód igo del VI de es te host p ued e ser tan si mple com o l' l mostrado en la figura 3-:\8.

Figura 3-38. VI que corer ou y mcesce la señal generad.:1 po r un VI en otro ordena dor

84
Tip os de datos

3.5.3 Ejemplo 11I: Carrera de fórmula 1


3.5.3. 1 Expllcadón teórica
F"1 objetivo de este ejemplo se rá crear un senci llo sim u lad or de carreras con tres coch es.
Los coches avanzarán en linea recta desde la sa lida has ta la meta. Cua nd o lleguen, el
on mero obtendrá un a medalla de oro, el seg u ndo de plata y el tercero d e b ron ce.

:"'0... coc hes están rep resentados por unos in dicadores bool eanos nombrados como «1» ,
<2» y «3». De est os botones se crearán unos nodos de propiedad en los que se seleccio..
Poeítíon > Le/ t. Al escribir en este nodo un número , el con tro l se d esplazará hasta
"": M á
~ coo rd enada .

:::1 núcleo del programa consistirá en tres bucles en paral elo, un o por cada coche, que
.... estar án ejecu tando hasta que el coche correspondiente llegue a meta. En cada itera..
oó n del bucl e au men ta rá el valor de la po sición un val or aleatori o entre ell y e1 4.

Cuan do todos los coches lleguen a la meta se cons truirá un aITaycon el tiempo que han
:..r rda do. es te tiempo servirá para que el color del fondo d e la etique ta cambie a uno que
-ep resen te una de las medallas. En es ta ocasión se usará un nodo de propiedad gen érí-
: 0 y se elegirá el control a colorear selecciona n do su referencia.

3.5.3.2 Código
:::1 cód igo para este p rograma se p uede ve r en la figura 3..39.

--.. -""

él

Figura 3..39. Cód igo del snroeoor de carreras

Consiste en un SEQUEN CE, en el primer trame se resetean los colores d e las etiq uetas
• en el segund o se obtiene el tiempo en la salida, el tercer trame contiene tre s bucles
"' HILE que ha cen avan zar los controles, cua nd o es tos bucles acab an también se obtí e-

85
LabVIEW

ne el tiempo. que St.' res tar é con el anterior p ara calc u lar el tiempo invertido en el reco-
rrido. Cu n los tiempos de los tres con troles st' crea un ,lrr.1Y y en é l ~ b USt.".l el me nor
valor q ue co rresponderé con el p rim er control en aca ba r el reco rrid o. la referencia d e
ese con tro l ~' P,lSMá al nod o q Ut' ca mbia el color de 1.1 et ique ta a d orad o. El \",1Im en el
clrriJY St' s us tituiré por in fini to }' se proced er éd e ig ual for ma para obten er el seg un do y
el tercer cla sificad o.

3.5.3.3 Resultados
En la ñgu ra 3-40 ~ mues tra un,' captu ra de una ejecución del program ,!. Los cont roles
boolea nos ha n s ido modificados para q ue tengan el as pecto de un coche. El número q ue
aparece so bre 1.'1ca pó es s u etique ta .

FI<]IJt<l ] ·40 El cee- e riJ 2 va en care za


Los coc hes tienen una longitud d e 11 7 p íxcles '! 1,1 p ista de carre ras tien e 717 ptxeles .
Los coches recorrer án 600 pÍ-ll,l'Il'S d esde la salida a la meta .

Es te e jemp lo muestra el uso que se puede ha cer dl' 1.1S propiedad es de los cont ro les
p,u a cambiar el aspec to de los mismos de forma p rog ramada. Ésta t'S una herra mienta
muy útil para mejorar el ínterfa.... con pi us uario y darle cierto gra do de mtcractlvidad .

3.6 Ejerci cio s


1. Realiza r u n p rogra ma qu e tes tee el tiempo ncccsarío pa ra lee r y escribir u n d ato.
Co mproba r si es má s efic ien te un a variable 10( .11. un a g lobal o la propiedad F.1Jue.

2. QUl' ocurre si en el term inal t.vpt' del Type Ca~ t del ejempl o I se usa u n arr.l)' de
ente ros d e lb bits en lugar de enteros de H? ¿Por qué?

3. Añadir al programa del eje mplo 111 una opción d í' foto-ñnlsh (p ista: ver J¡lS métodos
asociados ,1\ VI).

-l. Co ns truy e un VI qu e acep te (()OH) par ámetro de entrada un dato qu e pued a ser de
tipo n um érico. booleano. .}rr,¡}' ( 1 c/us fl'r y cu y" sali d o ~'" un ,lrray Li t' s frill~s en el
que cada elemen to tenga el valor de cad a componen te d el dato de en trada . Por
l'il'mp ln, si 1,1 entrada es un .1rr.lY lit.' boo leanos. 1.1sa lida Sl'rá un ,lrr.ly d l' . .t ritl~s con

86
Tipos de datos

los vahm-, ti o 1; si la entrada es un clus ter de un dat o numéri co y un strinR 1,1 sali-
da Sl'ril u n arraJ' en el q ue el prime r elemento sea el valor del dato n umérico y el
seg und o l' l d el string; si la en trada ('S un booleano o un num érico. el .lrraJ'dl' s.llidd
lóg ica mente só lo ten dr é u n elemento del mismo valor q UI! la en trada (Ay uda : ve r en
el lema 4- las funciones sobre XML).

3.7 Bibliografía
Arc ha na Shrotriya . AN OS7: w riting W in32 Dyrum íc UnJ. Ubr<1rit~ (DLL) snd Cll/ing
111l'm {m m Llb VIElV.

1..'<10 l' ícrrc Drotet y Jim Knng. l"lOVIF.W Data, D,]f,l Typt'S .10<'1 S tll r,J¡;l ' Porm e t.... 2002.

'J.l lio ll<l l lnstru men ls, A N 1."i-l: LlhV1EW D<l ta StoraRt'.

" " lion.11 lnstrumcnts. A N ¡ Mi: !"l bV1E W I'l,rfnm l.l /lCl' ,1Ild M emory Mensgement,
2(M14.

87
Sección 11

ADaulslclÓN y COMUNICACIONES

capitulo 4. Ma~ de Acheros.


En e-tc ca pitulo >01..' tra tan las diferentes fu nci(l~"S ra ra manejar ficheros
mediante l'jt'fTlplt.... A p arte de ..u u lilili .ld también S(" asentar án los ron -
reptes c"'plK"ilflS 1'fl1.1 sección l. Se fina liza con ejercicios p ropl k-;tOS.

capitulo 5. Comunlcad6n sene.


La co m un icación serie no se d ebe olvidar ya que ISlá pn~'nll' en m u ltitud
de d ispositivos. En este ca p ítu lo SIc' pn'1>l.'nt'ln d os ejemplos rr.k ticlls e n los
tIlle se PUNl' ver la facilidad d e irnpk-m cuta r d icho tipo de r onunncación
vn el entorno d t' L.lbVIEW.

capitulo b. Bus de comunlcadones GPlB.


En SUS ll Tí);t'n l'S. l..l b V I EW !il.' aphcaba fundamerual menrc en el control de
inst ru ffiffi lJ( ió n y pd Tol l.ll fin St' ut ilizal'o.m d ift'~nll'S hu....... dI' in.,;lrulTl('n -
ración, en csw ('.ISO ' .lOC- trata r el bus crlB. El capitulo comienza con una
introd ucción k 'liricoI al est ándar IEEE ~,t..d IEEE -4x/t 2 \' a ta normol
scn A u "Illtinu.lción se describen las hUlóon~ para utilizar dicho e-ten-
dar. De marwre s';'Ilc ill.l se ve su uso y los comandos b.1..i~'t!'o con unos
lit'mplos préct kos . Pa ra finaliza r el capítulo se prof'lJnt'n unos t1t-'rcicios .

CapfnJlo 7. Adqulstdón d e datos.


En tra ta uno de los p rincipales USl):; d e LabVIEW: la adq u i-
t"Stt' ca pi tu In st'
.~ idúll y geTll'f.)"il>ll dt' .'Ó/;'naJe:~ t'!ft'" ficil ~ ,} /fa \'t'.~ .l e t.l rjt.'/,lS dl' ad quisición
de d atos . Hay va rios tipos d e S iSlt' ll l.ls de adq uivición d I' datos : Ins Data
Loggers. 1,1S t.u id <1s DAQ con interfaces I'CI, rel Exp res s, PCL.• y c xtc r-
nas como USB o R5- 2J 2. 51.' d t'SC r i1>t' n 1.1S ca pacid ad es cnmuucs J todas
t' l1i1s asi c omu las fu ncjoncs q UI' t'm plt·.l l..iIbVIEW pd T<1 m'lnt;.u las.
Ad ernsis M ' prL'St'ntará el programa Mea sun-rtwnt & Automa tion (MAX). A
continuación M ' muestran ejemplos p rácticos p,ua asen ta r los p rin cipales
concep tos y M ' proponen l·jt·rcicios.

capitulo 8 , Protocolos de comunlcadón: lCP y UDP.


1.•1 im port,md,l tlUt' tiene hoy d ía íntcm ct jusnflca que se dedique u n tema
com pleto a estudiar M IS principales protoc olos y 1,1 fo rm ,l en 'lUt' M' p ut'· .
den maneja r dL"Stte L1bVIEW.

capitulo 9. Acceso remoto: VI Sever Y Comunlcadones


Avanzadas.
Est e cap itu lo t'!i u na continuaci ón cid an terior, en él se explica cómo us ar
el servido r web q Ul' incluye LabV IEW, có mo ma neja r un progreme resi-
d ente en un ordenador desde- otro Y o tros protoc o los dl' nivel su perio r a
los, del capilu lo 8. En la M')l; und.l parte <id cap it u lo se h.lt'ol.uá sobre VI
Scrver y s u utilidad.

90
Capítulo 4

Manejo de ficheros

4. 1 Ficheros de texto
L.1S tnnrtones lit, ma nejo de ficheros tradicionalmente suelen ser unas d i' les qUI' pri -
111l'TII SI' explican cuando st' Cnst,ñ.l lélbVIEW, es to 1'4;' debe a q ue em plean un método
'1 U\' siguI'n muchas otras fu nciones: abr ir, lee r-escribir y ce rra r. Ademés lk su utilidad
rt"ll.lgógica ta mbién tienen utilidad p ráctica. y mucha.

" .1Y g ran ca ntida d dl' funoonos P.UiI maneiar fichl'n...., i1j;rup ad,ls en V.U IOS men ús, en
....lt· cap itu lo st' tratará d e reunira la mavo n a . En prime r lug.1f se estudiar án las m ás
een énca s 'l UI' permiten manipular fic heros d i' texto, desp ués St' ve rán, en Sil secc i ón
correspondh-n n-, ol resto d e funciones para un tipo di' fichero concreto. u n tipo de da to
l...peclfico \1 simplemente pa ra ayu d ar a depu ra r u n pr(l~ rama .

FI men ú princip.ll se encu entra en l 'ml:rdmmiIlK > Fill· l /D.

Abrir y cerrar I~ 11b"1

91
LdbVIEW

Al ab rir un jj. twrtl ....· .!,'\'ud H ' un,l rd"K'ocia u m.lJlt'¡.ulur q ue ..In '" pMol n-p resentar -
1., y traba jar con .I!. Si 00 .....• md lC.l .t.' Iorma explid l.l r-l lifh"rtI.lP.H\"l.' .'r.i u na ventana
pidiendo vu ruta. Alab nr d lifh. ,rtl l.lm bién ....• p II,'<l,' inJic,n 1.1 up"r.Kil'rl (ab nr•• rcar
ti r' 'l'mpl.1.I MI y ,,1 011 ,,-lu d t' ,1'T'''>l1 (lt,<' lu rol , l"'>Crilu r.l l, Cerra r I'S 1.1 " I,,'r,wión contra rta,
libera el fichero.

Leer y escribir [ttQ] ~


(~ ... ..-.I.. H.,. ~
lIfompl
'te(_ <ioIoQ)
If"d
,e/tun o<J
.~
..',. rI ..., ,. Ot.t

Corno e ntrada ...... pUl,<1.' c., VI,·.H 1.1 rUI,} d .' un íidlt'n> H u na n 'f. 'n'IKi.l, t1" f"-'oJ ienJo d. ,
cu al ......... . ~" ... VI., ectu a rán . It, formol d iteren tc. Si en Ll , 'nlr,l d .l h...v u na ru ta (p<J thl,
l~lolS fu ncionee, intern amen te abren e l fichero; ...l c-cnbtr ....• hace .,ob n · ,,1 fi.hen¡ .om-
pl.·to, po r lo I.mlo ..u.,l ilu ir.i el n m ll'n id o an terior del ñchcro. Si no !ot' ind ica 1.1 ruta
ta mbién 1.1 pid.,. corno l.... VI., .1n lt·rinn 'S, En ca roblo .,i ..... . 'm p l,·.l una n ·í.,reocia (rd "
nllm ) la ese-r itu ra ....• n '.ll ila rAa p.lrtir de una pt)';idl1n determinada I,1 posici ón .... u n
p unl,' rll al fichero q Ut' irti \'i1 ri.lnJ n J ef"-'ndi t' odtl Jt,l.l.. of't' roldul1t qUt· ....• h.1~.m , Pl,r
tit'm plu. ..i ..... ..hn- r-l íicht'Rl ld f'l l'o.idón sera O (e 1 p rin.-ipio d el fidw fl.l). si se escriben
cua tro ca racten... I,1 pt ición a u men tara e n cua tro. vn el sul-llllt'nú avan zado hay fu nrio..
ru-s para variar 1.1 fll ición .

CIIJ.ndu ...., 1.,<' ....' hará .1 p.1rtir d t' 1.1 pos ición qUl' hllb i,' r.1 ¡m l,'S ..i ' "1111'.:1.1 u na refr-
n-neta. od...... k el p nncipíos¡ t'S u n P.lth. S.' leerán l.... l-Iy lt'S indica d en .n un t o h ,l ~t.1
el fina l d el fichr-rovi n.....• ind l.'.l nada.

El cUolJr,lJ" ' IILt' pUt'<I., aparecer en Id esquina inft'riur i.. q ure rda "1);rlI fifd qUt' setieru-
,lC!iv.lda 1.1 of'l"ión (('m w 1 f O l , (End n( U nt') l"Ud convertir lo., .,imbtll..., de fin d,'
lint'it d e nlol ltluit-r 1'1.11.líllrm.1 .11 stm bolo EOL d,' l .l bVI EW. p u.'< I,· t1.....1('livoll"-.e ton ,,1
men ú cu n ll·'tl u.ll.

Ficheros b inario s ~ lI;dI

E.,l ll~VI.. fu n.-illn.m '·~ .lC lol m,'ntt· i); u<11 qu e h.... ,ullt' ri"n'S en nl.m to ,11 11ptl d e d,llL...
qu e se cabtea en d termina l tite. 1,.1 dl fere ncia " S 'l u.· adrmu-n cu ,ll'1tllt'r lip'1 d .' dato -,
Y IO oll m.K,'Il.ln u n.1 \'t'/. aplana d o, mien tras ll u, ' lo.. .1I1 lt' ri.>n... Ir.II>'II.1n co n cad cn,e,
dt' ca rolflt·"'., e-n ASC II, St'ria t'<¡U iv" It' n lt· ,1 u....u un n .m. ' /1 '1', »,<;tr;lI~ ,m lt'S dt' 1,1.. oln lt'·
n tl l\'S ,

'2
_ _ _ __ _ _ _ __ _ _ _ _ _ __ _ _ _ _ _ _--"M~.~n"'
eJo de fich e ros

Spreacsneet ttm bil

Lo.; hd lt'rtls Sprt',ld~h' ~'1 sud e n tem- extensión ",CS\, y so n fiche....... d e texto qu.' rvprv-
....-r ua n t.lt>l,lS, ( .1.101 Iim',l d el fich ero sena una f iti! d .' la tabla y !'ilr.l indicar las culu r u-
n.1... so,' vuele em plear el e.u .k ll" tabulador tJ el «;/l . b It' tipo de ficheros so n útiles. p,H.l
pl<lTd .1r información lit' forma ordenada, .ld .'m.ís puede se r It'ld o po r otra... m uchas
.1p li.".ld o ll" S, pm 'il'mplo M5 Excel.

L,1 escri tura ti en... el terminal Appl'nd ro File? pa T.l indica r si los nu,'\',,.; d a tos tíenen
q ut' >.ob n "iCrib ir .l los <:jUl' habia o deben ag l'\');,lN.' .11 fina l. y el t.' rmm.11 Formot p ,lTol
md ie,u ,'1formato nu mérico, es te forma to puede consuna rse en la ,1yulb .

1..\ l.'.:tura .os desdo 1.1 versión K.20 u n VI polimórñco. 1.1 ins tancia ""'!l'lT innild a r ondi-
d on,l d lipo d e s.llid ,l Cn ' r termina l F('fIIMt): d obh- p rec isión, entero o strin¡;, pUl'lk
I l't ' ~' toJ o 1'1 íidll' ro 11 de sólo un" parto. Estos Vis pueden considl' ral"Sl' como u n,l
torma co mp acta d e los d l' leer y escribir junto ron Array Tn Sp n '.ll/sn l't't Strifl~ y
Srn',ld~fu 't't Strjfl~ To A rr.lY.

Format y Sean ~ m
~ , .. (use
f"'lM!o:Woo;¡)
... r ", ...
m n¡t
(OO .... Of}
~~~~~
rcu: 1 (O) -.+, ~

rvJ: n (O)
E"hl!> VI.. son equivalen tes a usa r los lipin~ d.' tecr y escribir con ""'.m From 5trin~ y
""fII M t Tp Strin~ n"S~-ct i\·aml'n tl' . Al escnbír, r on un solo VI M' p ueden conn 'rtir
\',l rio.. tipos de datosa ~tring. concatenar los y gU.Ud.H en un fic hem. El pnlCl"Sl) contra-
ri.. III·u rn' I'1l 1.1 lectura.

Path ~~Ill

~path~~edpdh
neene or relenve path ~
Ilul/<I " ,lth cons truy e una tul" a pa rtir de d os l'n tr,ld ,ls.

Slrip ¡'.lth M'p a r.l de una ruta el fichero (1 últimu d irectorio d el res to. po r ejl'mplo . si
1,1 ruta l'!> «e:\ w ind I1ws \ ín.íní» ~'p.ua r.í pn r una pa rle . c:\ w lndows » y por otra
«win.in ¡ », SI SI' .l p lk " lpn' «c:\ wi ndows \ sysk m.1 2 » SlT" r.1 lfc:\ w indo w slt d I'
" sy..ll' m.12».

93
LabVlEW

Tambi én '0(' r UI'<11' l'i1ll",lm ir u na ruta con las. fund 'lIll'S d e l me-n ú .. trin/{, pt' nl no es n'CO-
mcndab k- h,ln·r1" .l..i. p< lr l-tt·mrlll. pn.....-ntaria rrubll·m.l'" si r-l r">Krolm,¡ Ikbo..· .it'oJlar·
.... "'-*'1\' \\!indllw s o Linux dl-bid .. a q uelas barras qu.' si r\'t'fl pon ,¡ :;o>p.1 rdr lus di recto-
rio", en t'1¡"' th son d ifl·n·n tl'S.

En el submenú Fill' Cml.st.mt." h.IY va nos n......lo", 'lli" devuelven 1.1 rul.1 d i' u n dote rnu -
nado elemento. l·ntn·dl..s .'1 m.h usad.. €'S Cllrn'nt VI:o; 1'. 'tll'lut· devtn-lve 1,1 ru la del
fiche rn cn elque "",. el, IOC.l.

• Measurement File (VIs Express) ElIa:J


E"''' Vis E\pl'\os,s tan l...pt·..-ialrm-n te pn-pa rado-, pa r.l .llm.1Ct'n.u y rt.>cupt·r,H
ddh p nlVt'nlt·nt .1,. form.l'" d i' onda. Frure 1.1'!> t.pt·i.. llt~ m.ts ,1....laead .ls ""•
e nCl" 'fIIr.t 1,1 pt.....bi h,l.ui d., ~U.HJ .U 1()S d ,l l" s en fOmlol ltl LVM . lD!\1 o m!\1S. El
formato LV M .'S un ñc hcro d i' h·lI.!<1 qu.' b.hir.l ml·n t.· l'ill'-'Id di' u na cabecera con
mtormaoón subrt, l'I fich"nl [au tor, tec ha, t·le.) y canales: e.ld., canal a su H ' Z 101m ·
bien ¡¡' 'fIt' Un.J e.lbo.·..:. ·rd y los dd!<.... pn>piamt'fll.· d ichos. Lo:.... lllrnldlt.... lDM .... estu-
diar.in on el apa rrad.. d.oJieoldn .1 Ins fich.·n.... Stnr,l~t·.

• Ficheros ZlP
Estas tuooones .... han añ.1..üdn a Lab VIE\ V en la ve .... i....n ~.O . Sirven pol I"" crear
fich. ·n comprtrnido-, en forma to Z IP. L.1 p rim.·ra d.' ,' II,l S ec Nt·w Lir ¡:jlt', su tu n-
ri ón l"!\·.lr un tid W I"\I, 1,1 ~'~\In d~ lOS Add Fil., t,1 Zir 'l Ut O,lñ., d t' un fichero cua l-
quu-ra ,11Zlt' rrc.rdorrm 1,1 ,m t.'rim , .1 este VI h,lYqllt' ind ir., r1.· I,l ru t,1.lhs..luta d r-l
fichan ,1 com p nnur y 1.1 ml.\ n-la tiva q u.' tend rá d .·n lrt. d" 1 Zl I'. Finalmente con
Cll....• Z ir Fi l.·~· d " rr,l d fkhem.

• VIs a vanzad os
El sub men ú AJ1'.Jnt't'tl h I.· Hmeti.ms es un men ú m is':l;'Un.·u d e tuno oncs P,Hd
tra bajar con fichen .... ~' dmxtori Por t'jt'm p lu, Y.l se ha hablado de Id" funciones
pard mud,¡'car el puntero d., p' ición en un ííchcro: ulr.l.. tuncion.... ,lt, int..ré, son
1,1S quetrabajan flm t1 in'<·turi' , mu,'H'J1 y copia n fkh"n. ..., .-1,',

4 .1.1. 1 ~ I: Fk:ht'l o>de ~ y blnarm

Este ""'mplll~' hit h...:h.. con Id in tención dI' conocer Id" J.f.·n·'Ki ,1" " n tn' u ~u p"r un
°
I.l.j o r,lth n ·f.'n'nd.1" p,u" indica r el fichero Y por otro 1.1.10 entre ficht'T\ l'o dI' te),ln y
hin,uius .

En p rim,'r 11I~M SI' Ir,llMan lus lieh.·rtlS d l' le xlu. I' n 1.1 fi¡.;u r,1 -1 ·2 pu,'t.k n \ t·......., d ns tlu -
¡'I!> dI' tojl,("IICión, uno ' 'J1 1.1 p.u t t' ..u pt' rin r y n ll\' .'n 1.1 in f("rinr r n l,1 r MII' sUI''l·rinr St' h.l
us.ldn d I',lth ..lt'1 firht'fl l fOIll(ll'J1l rad., p,ud ...1 1\..,10 d .· ftlll d OIlt'S I'rirn" Il' St· ''Seribo.'
u n ,..trin~ y hlt'~o Iltn', pt'f(l ,'n l,} ~'~ lln,i.l t'SC rilu r.1 1" milit'll .... U....I r,l/h por lo 'lu.. ..t
pu nll'ro qu.· ind ica 1.1 pt""iciÚI1 dt'l ficho.·n 1 t'mril" ,l .1.' l1u,'I n ,'n c.' m ~' ... ohn.......-ribir.i In
olntt·riur, pUl" lu I.m lu 1.1 "'1Iid.1 ..Id nt ....io d.'leclur,1 ly t'I ",nk llld.. .Id fich. 'ro' "",. rj Ul1i-
'-,l m,·nl.' 1,1 ... ·~ll nJ ,l ennsl,l n lt· l"""r il.l .

••
_ _ _ _ _ _ ____________________M
""aen"'e,Jo de flcheros

En la parle inferior se usa UIH referencia al fic hero una ve za bierto. a l escribir la prime-
fa constan te el pu ntero a umen tará en cuatro posiciones , por lo que a l volver a l"SC rih ir
o tra constan te SI;" ad jun tilrá después de la p rime ra , y nu se sobrosrribiré . Después se usa
u na función St't Pi/e l'o$il1on para manipular el puntero de posición y leer cu at ro carne-
teros a pa rti r d e 1.1 segunda posición. El resu ltado serán cuatro ca rac teres: I, ~ dos últi-
mus de la primera cons ta nte y los dos p rimeros d e la seg u nda , «Iarn u» .

-
'D * .'

Aho ra se hará lo m ismo enla figura 4-3 con las fu ncion es que trabajan en binario. Es tas
funciones ad m ite n cua lqu ier tipo d e datos. en este ejem plo se usaran nu méricos s in
signo d e H bi ts . En Id p ar te s uponor se escriben d os n ú m eros, p rim ero el 126 Y luego el
47 (son el va lor en ASCII de los s ímbo los «-1I y «n» ), a l for za r iI 'lUlo.' es tos nod os ab ran
el fichero nuevamen te el sogund o !'>I,brt'<;cribirá al primero. Si st' abre el fichero con u n
..di tor d .. tex to sólo se verá un a let ra «.H'. En la lec tu ra h a y qll t' ind ica r el tipo de datos
q\le se va a leer, ad e mas st' ha añadido u n Type Ca.~t para ver la representación ASC II
cid va lo r leíd o en un string

FrQ wa 4-3. Ejemplo de manlpt ll<!ción ¡Je teneros blrl<lrlCJ~

95
La bVIEW

La polrtl' in fe rio r usa rererencta -, a un ñchero p rt-via mt' nlt' a bie rto po r lo "lUl' l'l p untero
de posición no se reinicia r á vn cada nod o como en 1'1caso an terior, En p rimer lU¡!;<1 r s.'
osenbcn rn-s nú m eros : 126,411 Y 117; estos n úme ros se l'!i<"r ih ir,in u no jun to al otro, por
lo q Ul' e l contenido d el fichero sN á « c ta». En t'st· momento t' l pun tero a punta ra .1 1,1
posición 3 Pt-' rtl se usa un a función p.lra va na rto y "lUl' apun tea 1,1 1, d l' SPlll' S st' leen
.In... by l.... (so> l'S ta tra bajando con enteros si n signo dl'M t-i ts) q ue son 111S q ue corre-pon-
d l'fl .1 los valores -19 y 97 Y finalmente SL' conviertea ... trinX l·lln lu qu e en e 1Panel Fron ta l
..... m ....lrM.:i .11 01 ».

Es imptIrt,lnte t ener vn cuen ta cua nd o se trabaja con fich eros bina ríos q ue si se escriben
d .u.... d l' un npo y St.' leen indicando un tipo o 1.1mañu diferentes, los Il;-'Su lt,uios no
ser án !lIS l'S pt' rad lls . •

También t'S importante nota r co mo .11 principio de l prog r'lma SI' han usa do 1.11" fu ncio-
nt'S lluil.f 1',l lh y Strip 1'.llh p.lr" obtener un fichero lid mismo directorio dond e t'st.í el
VI. d e v... 1.1 fo rma s i se ca mb i.1 1.\ ruta e l p ro¡1;ram <l SI' gu ir.i encontra ndo los üchcros ('('11
lu.. que tra ba ja . Esto es .11¡!;tl q ue SI' Us,uoÍ en el resto d I' l'jl'mp lllS del capitulo,

4 .1 . 1.2 EjMJplo JI:loteria


50.. dl'st',1 crea r u n prog r,l mil ' 1m' ¡';l' nen' Sietl' n úmeros "ll'oltl~ritJs d e ! 1 a l -l6, 'lUl' n o ....·
repitn n y alma cenar d Tl'Sul t.1do en un fichero ' lUt' pUt,.l" ser leid o por o tr,lS apli ca-
(W 1WS .

Pa ra escribir t'l fichero S<' us,uá W ritt' Jil Spn ,.ld~ ll('t't filo , indicando q ut' C.111.1 ' ·t'1 'lUl'
SL' genere un n uevo resultad.. SI' escriba en l'l fiche ro un,l 1ínt'ol "lUl' con tt'ng.l los núme•
TI'IS. En l'SI., VI SI' indica tjUl' st' gua rd en los d., I.'IS co mo {·nh'r.... ("/...d) y q ut' e l c.u .kll'r
-a-parador >;(",1 un «:».

El ródigo SIo' muestra en la f i~ura -1. -1.

. ---'"

96
M a neJo de ficheros

Sobre el p rng r,lma q Ut' genera los n úmeros St' p ued en comenta r va rias cosas. En p rime r
luga r se err-a u n ,,,ray d el tarnano a p ropi ado, cua nd o se genere un OUt' VO n úmero váli-
d o se almacena rá en una posición de ese a rr.l y. Para g('ne r¡H n úmeros d entro de un
rango Sto' mu ltipl ican los n ürneros alea to rios q ue van e ntre cero y uno por ellimi te s up"'-
rior y d esp ués se redond ea al entero in mediata mente s u perio r. El siguien te paso es
com p roba r si el n ú me ro generado ya ha bía sid o sacado, si no es as í fol.' almacena en una
posición d el drray. C ua ndo ya se tienen los siete núme ros, aca ba el bucle WH ILE Y so
gua n'! a e n u n fichero.

4 .2 Fich e ros de configuración


Este tipo de ficheros st' utiliza piUa g ua rdar u na determ inad" co nfig u r"ción. Consta de
una u varias scccíonos d entro de las qUt' hay u no o varios parámetros con sus valores
cor respondie ntes . La extensión habitu al de estos ficheros ~'S · ,in i.

l.a cs truc tura d e uno de estos ficheros es como se m uestra en el sig llit'n te tex to:
[s e c c i ó n 1 )
Cl a vel c v al o r l
Cl av e 2~va l o r 2

Cl ave 3~va l o r 3

[ s e c c i ó n 2)
C'l ave -í eva Lor-a
c t.e ve s ..valorS
~i Sl' va ,1 la ca rpeta de insta lación d e Ll bVIEW 51-' podr á ver un fichero llamado
LAl bVIEW,ini q ue g ua rda la configu ración sobre va rios par ámetros del funcio na miento
do es te p rog ram'l .

En L lb VIEW existe una paleta en J'rogr,lI7l mjllg > file // 0 > COllfigllratioll Pite VIs con
funciones para manejar es tos fich eros .

Figura 4-5 P-al"'td de corl hgwdclÓn de acrees

L,1 forma de tra bajar con estos VIs es la hal...itual en LabVlEW: a brir, lee r / escribir / obte-
ncr in fo rmación y cerra r.

97
u bVIEW

4.2.1 Ejemplo
En r-l sig uien te ejt'm p lu N.' m ucsrr a 1,1 forma de traba jar con es tos V I ~.

En primer luga r N.' abre u na referencia a l fichero «amfi~.in b. situad o en la m isma ca r-


pd a que el VI. A co ntin uación Sl' escn be la cla ve . p a ra mlO con el va lor «va l o r. d en -
lro d e la sección «s ub con f i g lO, ve r ñgura 4-6.

La sig u ll'n le pa rte N.' ri.l la de lec tura, vn ella se leer á todo el fu- herc y se mostra ra en u na
tabla . Lo primero S{'rfi obtener los nombres d e tes sccoone, p ilr.1 q Ut' s irva n corno cabe-
reras d e las col u m nas d e la tabla. Después se en tra en u n bucle FOR q ue SI' repite ta n-
las veces co mo sec ciones h.l ya; en este bucle se o btienen los nomb res d e todas 1.1Seleves
y st' entra en otro buc le I-"O R tlllt' se rep ito e l m ism o n u m er o J t' \/t'el'S q Ut' cl.WI'S h.1Yen
1,1 sección actual. Den tro ti..1St~u ndo bucle simplemente sl' lt"" el valor d e la clave y N.'
~t'r1t'ra un Mringnln el formo to «clave-valor» q Ut' st'rá ",,1 mostrad o en la tabla.

'" ... - 0

"

m
-
Si el fichero llt.'On fi~.ini lO , antes dcciccu tar este programa . eon lt'n¡a:
[con f i g p r i n c i pa l ]
pa r arnj e v a Lo r I
pa remz evat o r z
[sub con f i g l
par- am=val o r

Después d e 1,1 ejec uci ón con tt'Tld rá una sección m ás y el res ulta d o será:

98
_ _ _ _ _ _ _ ___ _ _ _ _ _ _ _ _ _ _ _ _ _ --'M"a"n""I'Jo de n cheros

4 .3 Ficheros XML
XML sig n ificil M lrk up L.mg uage. Ellenguc je XMI. t "!i una recomendaci ón
l'Xtt'n.~ jhlt·
de l W3C de ñnales de los .l ñl)S 90, ilu nque se ba sa en ol ro~ t"!i t.l nd .lTI.'S m ucho más
an tigu os.

Su aplicaci ón tos el in tercambio de información estructurada entre d iil'n'nh'S p mg ramils


l' incluso pla tafo rma s .

Básicam en te l ' S u n método de aplicar onq uetas pJ r .l d escri bir p.lrll's d t' un d oc umen-
lo. También ~' dice que es un mctalcng ue je, es to ('S un Ic ng ll.1 jl' p.lT,l d efinir o tros len-
g uares .

Un Pjemplo d e fichl' ru XM I. es el siguitmll':

<?xml ve r8i on .~1 . O · encod i ng~ · UT F-8 · s t a nda l one . -yes-? >
<c l a s e :>
<a lumno>
<nomb r e >Jos é</nomb r e >
<a pellido>Garci a</ a pe lli do>
<nota>4 .99</nota>
</al u mno>
<jcl ase >

Cerno se p ued e ver t'S u n lt'n~uaj ~'


d e m arcas muy perecido a llTML y aú n más a
\ HTh1L (ti", hecho éste tOS un l en~u ajt' ba sad o ..n XML).

lol s etiq uetas van e ntre lns símbolos <_>, la forma d .. co loca r 1.1S etiq uetas es m uy
e- arieta, t'S d ecir, se necesita un perfecto anidamien to y que tud as las etiquetas abiertas
.... cierre n. Pa ra ind ícar q Ut' u na etiqueta se cierra se usa < 1_ >. Estas etiquetas d e inicio
v fin encierran en su mtonor datos u otra s etiquetas de Id formol <marc:a >_</ma rca >.
\ [~ unas de esta-, t'h¡;¡ ut'tils no e ncierran nada, po r lo qUt' no tOS nt"Cl'Sario '....»w r o tra
ma rca para CCITa r, en es t.. caso Sto' usa <ma rca / >, q ue pued e entenderse co mo una
forma res umida d l' .l h rir y cerra r u na etiqueta. También se pueden incl uir p ar,i ml'tros
,'1'1 las marcas co mo <marca parámetro",~ val or " >....

En la p rim era linea se ind ica n varios a tribu tos del fich..ro, el .st.lIltf,l/oJl(·s ir\"t' pa ra decir
~ i l'I documento puede ir sólo o s i va acom pa ñad o de un DTD. El DTD lOS un a d efiní-
cion d e los elementos q ue se p ueden incl ui r en las marcas y la forma d e inclu irlos, en
':,1S0 d e indica rse p uede ir en el m ismo fiche n ) o ind icar 1.1 ruta donde encontrarlo.

Para ve r un fichero XML ba sta CClO abri r el fichero de u n p royecto de L.l b VIEW
. ' J \' p m j) con u n ed ito r dt' tt'X ItIS.

El men ú p.1 ra tra ba jar c on XML en LlbVIEW se encuentra .' 0 l'n 'nrdmming > String >
v... ,1-
la bVIEW

f¡gu(~ 4 ·8. p~ret~ XM L

I ~ IS d os p rimeros Vis (FJ.¡ ttN I ro XMt y Unfldtft'Il lo XA.l1.) St' usa n para tra nsformar .1
fo rma to XML y vil"t.' VN~l cu.l lljuil' r con trol d e cua lqu ie r tipo de da to , de esta fo rm.l
Il>d OS lo.. tipos de d.Hos SI.' almacenan d e u na manera u mtorme. El fo rmato ser¡a :

<Ti po de da t os >
<Na me>nomb re </ Na me>
<Val>va l o r< / Val>
</Ti po de da t.o s >

1.os dos siguientes VIs (Wri h' / ( 1 X M L File y Rt'...d írom XMI. h It') son par.l escribi r y
1l'I.'r 1.'1 fichero de da tos res pectiva men te. Mien tra s q Ut' los J os ú ltimos (ESl·.IPt' XM/. y
U/ll.'Se,II't' XML) M.' usan cuando St' almacenan ca racteres I.'SPI.'Ciil ll.'s, co mo let ras con
acen tos y o tros s ímbolos.

4 .3.1 Ejemplo: Agenda


En es te 1."Íl'mplo SI;' q uie n.' pru¡.;raT11il r un sistcma pa ra alm...cena r los d aros del personal
d e la p lan tilla de una pt'q ul.,na e m p n.'S.l. El fo rma to del fichero d ebe ser XM I. p a rol
h.\ct.'rlo co m pa tib le r on otras herra mientas.

La estructu ra d el fich ero ~ >I1 si st i rá en u n registro po r coda em p lead o, ese rt'~ istm con -
temí rá los ca m po s d e nomb re, apellidos, d irección, Il,ll.\ fo oo , dl'p.lft.l mento dentn 1 d l' 1,1
,' m p n'sa , ,II1 0S d e ,1 nli);ül....l" d y sueldo.

Se e mp lea rá n en 1.1 lect ura y escritura d el fichero, cada elern... n tn de l


J f f .1Y S J IT, IY St'rá
un Ch l.stt 'f q Ut' coo tengil los e.l mptlS d e d atos .

En 1,1 fi~u ra .J.-9 St' muestra I.l l.'s lruct u ra d el pmgra ma . s...
ha I.' nl p l...ado un EVE NT p ara
( .ld .1 acción : gua rd ar el da m mos trado , borra rlo y tll.osr la1.i1fS1.' po r las fichas de los
e mplead os. El even to qUl' se ve en la im agen t OS el ~ .rn'Sl"(lndi l'nh' a g uard a r los d d l (lS,
en él, p rimero se leen lod.\~ Id" fichas que hdb ía gu.uda~l.1s, st' modifica la CI.lm.'Sf'u n ·
diente a 1.1 q ul.' SI;' mues tra en el P.1nl.'1 Frontal y d l.'Spub St' g UMd ,m en el fichero. I'.H.1
<] UI.' In almacenado en el ficherono d ependa d el tipo dr- d ,llt1... .'slt lS tienen q ul.' ~ mver-
tirsca XML con el VI Fl.ltwn To XM L, tambi én SI;' ha Ui';,lJO 1.:'"",.,/1(,' XI\1f. p., r., cam bia r
Ins ca reen-res I.OS PI."l'i,l ll.'S .l fo rma to XM L.

100
M,mejo de ficheros

NO de , <1

m
Figura 4·9, Uno de os eveotos (lel programa que unprerrenta una agenda

An tes de guarda r los d atos tienen qUl' lee rse, esto 1St' hace así para pod er modificar
fichas; si sola men te S!;' gua rd ara n sin leer tod o el contenido an tes sólo se podrían intro-
duc ir nUl'VOS regb tros, pero no cambia r uno existente.

En 1.\ figu ra 4-10 se p ued e ver el even to co rrespondiente <1 1 cambio d e la ficha r nost ra-
11.\ por med¡o de los botones «anterio r» y «siguiente». En p rimer luga r se calcula qué
eh-men to del <1 rmy Sl' debe mostrar, luego se lee el fichero Y de él se selecciona sólo el
elemen to calculado entes . Con Unfl.Jt ten From XML se convierten los d,ltos d e for ma-
lo XML a l tipo d e daros y valo r qUl' k, c orresponde r ían en Ll b VIEW,

~"Jo!----

m
Figura 4-10 EventO oe cambio (1{' rc ra de la agenda

En el ejemplo también S(' ha programado un e ven to cua nd o se ca mbia d e forma ma nual


el núme ro d e ficha a mos trar, es decir; cua ndo no st' usa n los botones «anterior» y
«sig uien tl'» y e n su lugar ~ usa u n ind icador n umérico. Este evento es p ráctica me nte

10 1
LabVlEW

igua l q ueel mostrado, salvo por la parte del calculo del n¡;ist rn, q u., sl' rí.l muchu más
.....·neilla, ~'ilu h.lh rl.l qUl' n-star uno a eN" d e registro • . El últt moevento programado es
e l de borra r, qUt' simph-mente es una lectura, un Detete Fn)m Arr"y para borra r la fich"
y nue va mente el almacenamiento.

El Panel Fron ta l de .'Sll' VI p ued e verse en la fi gura 4-1 1.

4.4 Ficheros de Imagen


Con L., hVIEW no !iÓlo lit' p ued en abrir ficheros de irn ég enes (' .ir>;. · .bmp, · . pn~ ) sino
que también St' pueden rt'.l1il 'H peque ñas modificaciones.

En 101 paleta Grdphiúó &- So und SE' encuentran los men us Gr.Jp hiúó F, )rm,lts pMa abrir y
gua rda r ficheros d e Im ágenes y Pictuff' Funcillns para realizar modificaciones en las
imagl'flt-s.

10]
___ _ ___ _ _ _ ____ _ _ ___ _ ___ --'M
""."'
n ~J o d~ ncheros

4.4 . 1 Ejemplo
Este senci llo t;l'm plo da do F"lTla figu ra 4-13, abrí r.l u na i m,lgen llamad a «d it>u jo.jp¡;:»
q ue ¡>!; dl' tama ño 300x300 p¡JI;de!;. Esta Ima gen SI' modificara , la modificación consis-
tirá e n recortar la para qUlodJ N.' co n o tra imagen d t' 2(XI,,2UO y se 1e añad irá u n te-to en
co lor m'¡';n> y fuen te Couner detamaño 3l) con o rig¡'n en (,1 piXl' 1(55, 'K)) . Por úlnmn la
rmagen st' mues tra en el Parwl Fronta l y St' guardd en otro fiche ro llamado edi-
hujo2.jp¡.;».


". -
4 .5 Ficheros de sonido
Al igua l qUl.' co n las im ágenes , La bVIEW tam bién p uede trabajar con ñchcros de soni-
do, abrirlos , mod ifica rlos y guarda rlos

En la pa leta Progrsmm íng > Grdph ics & Sound> 5()1md se encuentran Inos sub rncn ús
para trabajar con ficheros de sonid o.

103
Lo1b VI EW

4.5.1 Ejemplo 1: Lectura de fichero y procesado


El p ro w am ,l, Jalio por 1,1 figu ra 4- 15, on p nme r lugar abr-irá un fichero •.\\I ,\\' y In !1'N,I,
l'Sll' fkhcm se p l'l....l'&lr,i med iant e un filtro pa ~l b,ljO J e !!'t~ u nJo urd en con e 1 qm' ~'
eliminaran Ino; tonos a gudos y sólo q ueda ran [(lo; ¡.;rdH"S;.l continuaci ón se muestra n en
¡.;r,il ir,lo; I.H resp uesta en ncrnpo y frecuencia d el sonido .m ll"!'> y dt"'plll~ de ii1 lr.u ln,
.1d l'm.h ta mbién ~. pu....It' dl'g ir si <;l' ,'o.;.."uchar.i el son i.i o antes () Jt'Spués dio' filtr,u.

Una ,1t'Olt.ldo e l pl'l~ r.lm a StO puede ve r r-l resultado del fil tro en 1.10; g rá fic.l!'> d el
V ,'J"
PanelFrontal. ver ñgttra 4-1h, se propon¡, allector q ue p ru ebe e l p rogr,lm.1co n un fk h.'-
ro pM,l ''Sl"U.-hM las señales obtenidas .

Fe:.. ...

Do 1100 .. WoooQ

F¡gur <l " . I 5 Proqr.lrrk1 que p-oceS<! fK:/1erO$ dI' illKllO

-1,$
., , , , , , ,

-
1UXlOO 1QOOlXI 3OOCOl 4OIXIOO 5OOllOO

ftgUf.l" 16 Resul r<lclO oer flllr<ldo f lf'l ftctw ro ,J.' ,JI K110

10'
______ _ _ _ _______________ _ _ M
" ".e""I'Jo d I' flch~os

4.5.2 Ejemplo 11: Adquisición y Vis Express


!'.n.l \'.lrl.H res pec to o1 ll."Jt-·mplu a me n o r. esta vez Sol' us.IT.\ n Vis EJ"pn"!>.s . 1'....,.' t;.·mplo
..onsish' en ad q uirir una <;o.,n.1( de audio es t éreo y g u.lI'l.I.HI.l en un fi chero. El pfH~ r.l mol
....' mues tra en 1.1 figu r.l -1·17.

1~1 .1<i'l llisk i(lIl st' n-aliza ml'l.ii.m l., el VI A douire SUlIrJti, configu rado ad ecuad.mu-n tc.
¡\ cont tuu.ictón !'ot' ha n <;o.· p,u'ldll l. >s d os canales en st.'rld. 1S .1" .1 ys con lo.. 'lUt' " m..lru i r
u n \t "J I 't'!;'r m .

I'.ua g u.u da r e1 ñchero primero SE' pide el nom bre lid fich"n l )' 1u"8:O St' l~Til'l.· el
1O',IH"l 'rm antenor en d .

l~~J
I
•, ..v""
0..

,_.,..".1
t « j

P.n ,l prt*'.u .... te p nl¡.;riln1<l ....• ha n conectad o 1'0 l'] ord"ll.I<1or 1.1 "" lida delo...utavoce...
"" 11 t I .'nl rold.l dl'lm icr(Í(unu d., 1.1 tMiela de sontdo. I ll~ p u":~ S\.' ha ab ierto un fichero
J I' .l UJIt) ron u n reprod uctor multimedia, e1 cual h a generado u na St'ñ,,1pur 101 s ahda
d .· 1,1 1.1I'jl'la d., sonido qU"l~ ca p tura da po r su t·nlr.ltJ., med ian te Id [ I>rlt,..il'on .lt'SCrild
.m ll..... EsI.· progra m.1 h.1 ca p tu rado ci nco SO::"KU nJI~ ,ll· ......I,\ !ot'ñ .ll Y los h.1 ¡;u.Hd .ldo en
u n ill"h,·ru .

r>t.·b id , I .1.....It· m.m t.lj.· m.ho 11 menos rudirnen Id no, Sl' h.l .u'.ld ido un b ucle W f 11 1.1· '1""
in t rod uce 111M t~rt'r.l h ,lSI.1 11111' M' p ros íona un botón: <1. . ..... 1.1 f.. r rno se pudrá n t·,l m bi.n
1.1S n ult' \ io n.·s en l.l I.Ujl'l.1 d i' s"ni dll .lll ll~ d l' t'Sl'ud lol r .·1 r. .... ull .ld o,

En 1.1 fi ~lIr.l 4-\1'1 pu....ll, ..... · rst· la ¡;r.lfk .l de uno d., h... Sl.n itlllS ca p tu rad os .

\íúlt'M' ' lul' t'n este (",1...... 1.1 [ d P lu ra realizada corr Id 1.l ril'l.1 d i' ",mid n ha ..id .. J (' une
.....'lidl d e audio, nu ob-ol.m l.' I.lmb iffi !*' pod na ("a r 1urM t"lJ.l I'llIwr ~d l d.~l rl(".l ~i.'m ­
p rv 'lut' !*' 1'\'Sf'l'lt'n 1,,,, Iími ll"!O d i' 1.1 la rjt'ld ; J .. ,...1,1 ma ru-ra SO" tt'nd ria u na ptoqlll'l't.l v
mu ~' b.lI'dl.1 1.1I'jt'l .1 J c ,ld'llllSIt"lÚn di' dil ll"'.

105
L.1b V IEW

fKJur<l 4 - I B Gf<lflC<I oe l<t Sl'T'ld1di.' ecoo capn nsca

4.6 Acceso al re gist ro d e Windows


El w~i1'>tl\' de Wmd nw 1'> es u n ~ril.n Iichero q~ s in '\' C\lm\) i.\lmi.\n'{\ p,lfi.\ q u\' tod \"" k",
pn.~rilm d s, inclu ldo el mi smo !'isll'm" 11pt' rativo, puedan ¡!;u anür info rma ci ón.

wmdow s díspone d e un l' xpl or.ld <lr /toJitor q Ul' fad lil.l la b úsqueda dentro d ,' ,'stl'
g ig"ntt'SCo fichero, para ab rir t'lt'xp lorad or hay qUl' ir a tn icío > 1;"jt'.:lI tar y escribir
'<rl_'¡.;l...lil" . Este pTtl¡.;r.lm.1 m uestra toda 101 informacl ón del Tt.' gisl ro n rg,m izad .l en una
estru ctura d e ca rpetas, a las qUt' lIa m'lT,i cla ves, d ent ro d e estas eleves hdb rá valoros .

En 1.1 fig ura -t-19 St' m uestra el aspecto de lo es tructura d el Tt"g lslm vn OlTl;'g ,'d ih . A 1,1
il q u k rd a pueden V" I"Sl' I.,S da VI'S pri ncipales (las de primer nivel) y de ellas SI' d ospl il'-
gan varias sulxl.1Vl'S; '" la d e recha SOo' non los nom bres. tipos y da tos d e los valores q Ul'
contiene 1... clave seleccio nada .

~', I dl' or dol ~h lo o r:- 1"6 'X ¡


- loo jJ~
1tl PC ~ - ""-
y..-

• CJ ...... _a • .,..' _ROOl


- - -
-
"E)",,-... '·_1 I '.'"
"'",

.""
-
t_ ....._ )
• !2J "'r>.Cl.Ht"'_U'D
.. GJ "'(V,J.OI"A~
• D oon_U'D'J
.. Q "" .(UI"''''_",,*IG
¡~ ~
~,_
-~
...
~CORJt<l ,""'"
. ,,,,
. ,~

"G_Sl
--
-~

_"'1
-~
¡¡j El l<>'t_.
::.
. D-
.. EJ -

fig u ra 4- 19 Edllor df'I ReglSlrO (1(> WlrJdolN<,

106
Ma ne-Jo d e- f1che-ros

Dado qUl' el funcionamiento ..Id sistema ope ranvo l'!'ot.' determinad o por Ins va lores
<111" l'!'o l.' n almacenados e n el I'l'gistm, conviene no mod rficarlos a menos qUt' ..... "''r.l
con seguridad lo q Ut' se es tá hocíondo.

I>t'sd .' l...J b VI E\V se p ueden err-ar, loor, escrib ir y borrar d atos d .'I I'l'gistro d e windows,
p,\fa d Io t'x istl' una p aleta dcn tn d r- COnnt"("(iI'jty > Wim/ow.~ Re};istry ACCt'S.~ Vl.~ r on
1.1S fu nrínlll'S mostradas en 1,1 fig u ra 4-20.

n fu ncionamien to d e estos Vis lOS mu y pa reci do a Ins del a pa rtado d e ficheros d I' ron-
tigur.1ciú n. 1...1 formol de us ark» ta mb ién : abri r, Il"t' r /escribi r /bonJr /ubtl'nl'r in for ma-
(Io n y cerrar.

Alab rir una referencia .1 1 rtog istm de Wind ows hay q Ul' in d ica rle la clave: si <i l'!'oI'I IO:'s St'
.1......·.1 .K rt..ier a otra cla ve hay q Ul' ab rir u na n ueva refcrvn cia.

4.6. 1 Ejemplo: Registro de LabVlEW


Esll' t1l'm plu cunsistirá ..n acceder a unn clave co rn'SponJ ll'll ll' .J la con figu r.1ciún J l'
Ll b VIEW 8.20 y ob tener el no mb re y o rganizaci ón .1 1,1 CU.lI l'1'tA registrado L.l bVIEW.

I'.lra esto h,lY que ira la clave:

HKEY _ LOCAL_MACHI NE\SO FTWARE\ Na t i o n al I ns t rume n ts \ LabV IEW \ 8. 2

* l«fY lOCAL MAC HI~

--
;1'

F'9ura 4-21 VI P<!"a mal1lpular ti reqntm ÓI" Wn:1cJw', con WbVlEW 8 20

10 7
LabVIEW

4 .7 Reports
!-llS nT..rts son Inform es qUI' pueden generarse con LabV IE\ V, p ued e n ser gu,Hd.1JOS
co m o ücheros HTM L (1 enviados directarnontea una im pn'so ra.

Su uti h /~Kión consiste en ab rir un... referencia .11 informe e ir cons truy énd olo ptJ(o a
P'.J(o , !'.H.l co nstruirlo se van a ña dieredo nue vos co mponentes , es tos componentes PUl'-
den :-l'r n-etos. imágenes e xtcrna s, im.\gl' nl'S d e los con tr oles e indicadores dd I"¡nl'i
Frontal, d p ro pio Pa nel Frontal, la d ocumentación y jerarq uía d e un VI, e tc.

En la íi ~ura..J..22 puede verse Id pa leta co n los Vis para crear infnrrru....

Ad l'm.ís de l...l.l paleta, ta mbién l'xistl' u n too /ki t co n el qUl' se pueden c rea r n.·{'( ltTh
pa ra MS \Vnrd y MS Exo-l J I' una forma id én tic,l .l ésta,

4 .7.1 Ejemplo: Generación de un fichero PDF


En el sig u Il'n tl' e;"'m p ln, flgur, -'-23, M' CR.·.1 u n informe cu y o titu lo lOS .. In fo rme de p rut'-
ba» v l'sl.; co m r lll...to pt1r el kono dd VI, 1l1l.l lbt.1 do di e" n úmeros );t'llL'r,ldos alca to-
na r nentc. el 1l':o;1I1 .Gráfica: " en m jo y ñnalnu-nte un a i m.l~l'n de u n indicador del
Panel Fnmta l que muestra los valores alea tonos.

En es!t' c,lS0, en 11l~.1T d e ma ndar el rl'l"'0rt d ircctamentc ,1 un ,l impresor,1 converuiona!


st' ha mandado a una virtua l (.. PO FC n' ,l ttlr») '1 Ul' c rt'<1T.l un do cumento PDr co n el
in forme.

I'.H .1 mostra r la i m,l~ ..n


d e la ~rMiGl se h,I U....rdo una refe n-m-i.ra l indh-nd ur, é~l,l puede
'n'ol ~' presionando con e l b ot ón d~' n-c ho sobre el kOllO d.. 1,1 ~ r.H icd 1'11 el Di ,l~r.1m ,1 de
Bl1"luI'S y l' ligil'nJ o C re,l lt' :> RI'{t'ft'nü'.

bll' in iorme q lll'd,u ia como st' mues tra en 1,1 f i~ lI r,\ 4-2-1 .

108
_ ______ _ _ ________________-'M
" "aen"'
eJo de t1[heros

WC§frb
-[ ,. ,
"'
. ,~ ,

. l'O'1 .... .

F¡qWd 4·23. Gereraoón de un rsnerc PDF

~
, /l.l1'iZW'l
2. 1l,9 1!'Xl31
1 D,2151n1
4 D.454!>42
~ 0,9 _
6 D,76llZ>7
1 O.533J96
B. D.llOJ971
9 G,D113847
1<IQ ,~

(;,dal:

4.8 Storage
En <l 1~11I1
(',N .' puede ser d e""" , I;> I" no 1"<,10 alm.u-en.ir 11,110" , sino tambíén información
sobre l'l lo~ , co mo un nom b re. 1.15 unidades . etc. También p uede q Ul' S(' li,.........· ' ll1l' d for-
ma ro ,1\- 1".. ,1.110" se" ....l.i nd 'lT. Adl'má.. SI' PI. Io..l rl.l Il.ln' r .od o ....10 ......·,, 1,11:'0 1.·, ,'S ..ícc ir.
'lut' Va l);.l p.lT., cu alq uier tip... de da tos y co n cualquier n umero de pwpil'd ad l's dc fini-
da s pt ' T el usuario. Esto 1'S un tra bojo rcla tivarnc-n n- fOlIllpkjo . pt.'w p ued e T\··';{lh t·~·
co n XML, .lU n'llll' X\ 1L r U t -ck (' n\¡'l·l.ilT " no ....-r ulil p.U.1 manejar ¡;r.lIllil-s cantid ades
de infor mación.

109
La bV IEW

NononalI ns tru men ts h,l croado u n forma to d e ñchcro 11.101,1,10 TDM ( Tt'C1l1l ic,l/ /J,I/,'
M.In, '~t'mt'nt) basad o en X ~ll 'ltlt' p ut'll en usar sus. herra m ien tas p'U,l gua rd,lr intor-
mación sob re lns ,1.111'>S almacenad o-, en un !'ot'gun.tll fichen¡ co n ext ensión TDX , Es te
seg un do fichero " lm.1f,'n3 lod o el grueso de 13 información en fo rma to binario PM,l
ser m.is com pacto y maneja r Ins d ,l tus con más rapid ez .

Un fich ero TDM tiene una c,lbt't",'r,l y va rios grup"s ,l" C3noillt'S, ( .ltl., u no con s us p ro-
p i" eladcs, d e n tro de cada grupo de ca na les puede haber más ca nales <l Ut' ta mbién tie-
nvn sus pnlpias p ropied ades.

u >s ficheros. TOM so n una forma autom ática de ¡.;u.l nl a r da tos de forma jer árquica sin
p n'< lCll pa rse d e l for mato, tipo d e da t..s, etc. Ta mbién com binan u n formato t'St.lml,H
comoel XMl con 1,1 t'fidt'ncid d elo s ficheros bina rios d e form a tm nspa n-n te ,11 U ~I ¡olTi ll.
Adem.i-, tolmb ién ~' pueden indexar I.'>S da tos, de forma que 011 n'Cupt'r.ult '>S ~, p Ul'll.'n
filtrar los rt'SU1t ,l.tt >s dependíendo d .' una condición .

I ~1 p,l ll't.l "1 ue con t il'm' es tos V I SI.' encucntra en I'Tll';f,l mm ing :> FUt' // 0 .> S/t>r,'~t '. I A IS
St'i~ pri m l'ro~ Vis <1" . 'st,1 pa leta son Express y tam bién ha y u no subpaleta con ma s fun -
cio nt"!'o d ispo mbl.,s .

eorno cualq uier utr,1 función q Ul' ,1CCt'l!1' a fiche r os, los de stor"~it' nene n Vis p.lTil .1bnr,
lee-r-escribi r y cerrar. Entre las funciones d e leer y escribir es t én les I.j Ul' trabejan con
d dlo:>, p ropíed ad e-, y cons u ltas p.n.l filtrar los d atos .

TD MS .'S u na optimización de TDM p,l ra trabaja r con d a tos rrn-...I i.lIltt' .~ fn'.l m in~" El VI
/ 'n ".;r.Jmming .> FUt' l/O :> TDM SIn '.m Jing .> 1"lJ.\fS H it' Vil'wer t 'S una herramien ta
qut.' pt'rm ite ver de una forma sencilla Jos d a tos g UoITd .ld os con TDM5 .

4.8.1 Ejemplo
En es ta ocasión el objetiv o ser é qu.· el VI ~U.'nl., 1'1 es tado d e d os co nt roles cua ndo se
cierre y lo recure n' cua ndo vuelva a ejec utarse .

El pm~r,HThl d e 1,1 fig ura 4· 2ó, <"t.m i. 'nza abriendo una rd t'Tl'IKi.l ,11 fichero TDM, !'ot'
p UI'1lt, configu rar pMJ 'lUlo' ~i ('Sll' lln existe lo ~l'n<'I1.' , Una \"l'''- abierto y.l SI.' pueden leer

11 0
_ _ _ ___ _ _ _ _ _____________-"M
,'"""ejo de ficheros
los valores almacenad os: en p rimer luga r S{' selec cione q ué doto en co ncreto se lt'l'ra a
tra vés de la s propiedades . Por o lra pa rte, cuand o el VI SI' cierra (detectado en la estruc-
tu ra EVENT) se tienen d os VIs para gua rda r los valores que tienen los connotes en I'SI'
insta n te en el fichero.

El p rog r.m1il también inclu ye dos eventos m.ls, no mostrados en 1.1 figura , p.u,l tccr Jos
d atos del fichero a petic ión del usuario y generar una nueva se ñal en 1.1 grtifica .

Figura 4-26 . E.jemplo ne almscenarne nrc oc Illlorm<M:lÓn

4 .9 Da ta lo g
Por d <1t,l lom;inp, nos referimos a )';uard <1r en un fichero tod os los da tos rela tivos al
Pam-l Frontal d e un VII'n u n m ome nto dete rmina do.

Esto puede rea liza rse de forma ma nual e n el men ú 01" -"<ltl' » Da ta toggilJ~. Con 1<1
opctón L"g se gua rda n los da tos ac tua les junIo con la Iecba en r-l a rchivo: cad a H'Z qUt'
los datos se guardan no S(' sobrescriben los ante riores sino que st.' crea un a nueva revi-
"hin. Ren'i n' hace In contra río. lee del fichero y m ues tra los d a to s en elPanel Fronta l.
en est' momento aparec erá una ba rra en la q UE' se indica el número de revisi ón y la
fec ha correspondien te.

l2H!J III _g LI [0.. 1) 23/0812006 22:14:37 ,812

frguI,} 4-27 . &lrra de mrormaoon utilizando Rccerve

L,l S otras opciones d e este menú son borra r una n-visión, ca mbia r el fichero d onde st.'
almacenan y bo rrar todos los d atos almacenados .

Iambi én st.' puede n 'C uperar u na revisión d e un VI desd e otro d isti n to d e fo rma p rn-
gra mad a . Para es to st.' añade el primero como sub VI de l st.'g und o , d es p ués se scleccio-
na la opci ón l:.l1<lb/e lJatab,l.o;e An:t'ss d el men ú con tex tua l del ícono lid sub VI , con esto

11 1
labV!EW

a pa recer é un recuadro al n'til'ttnr lid VI. este recuad ro t it'o,' un con rrolen la esq uina
s u pen o r izquierda r.ua ind ica r <"1 n úmero de rev isión .1 recuperar (O la primera , I 1.1
~..g u nd a, - 1 101 u ltima , · 2 101 penúltima, e tc.) y tres índícad on-s en 1.1S otras esqu in...s 'lUl'
sirven p.ua m ostrar si r-l PWCl'M' se ha realizado cor recta m ente, un d u.. ter con los da tos
recuperados y ],1 fl'C h,l Y hora d i' cua nd o SI' almacen ó. Ta mbién ~'PUI-d I' lrer (pero no
escrib ir) r-l valor de los controles e ind icadores a tra vés d el conector del VI. Un aspecto
im por ta nte a tener vn cuen ta I'S qm' el sub v l no so l'it'ClItolTá, sólo St' accede a l fichero
d e revisiones.

En el p m gra m<l dl' l.l Iig u r.l 4-21'1 se rec uperar á la p rim era revisión d .. los lid tos d l' l l'a nd
Fronta l d el s ub v l. lo s d os .I",IYSco rres pond en ,11mismo ind jcador en el VI, por lo tan to
sus valores ~ >r1 igU.lIO;"S, mientras 'lUl' timt' s/,lmp es u n cJu.st! 'T<l UI' a lma cona 101 ít" hd Y
hor... cuand o Sl' g u.lroa n m lu~.; da tos.

'''''~«lm ,,. ~

Cet"f lll

Gu'''',

Ot ra opción di' lns fi chl' m~ ,l.l t.l/og es opt:ra r so bo.' dios lit' forma programada, p,lra
d io st.' dispom- de una p.lll' l.l en I'ro,;ramming :> Filt' l/O :> A.1¡·.IIlCt-d File Fun, ti"n.. :>
a l/J I",; con I,IS fu nciones clásicas: ab rir, lee r, escribir y cerra r adem ás de otras pilra
indicar el número d., n'v isión .

f tgUl" a 4-29 Pak'la D.l l<llog

4 .9.1 Ejemplo
En la fíJ;urd 4-:10 st.' ve el u so d e estos VI... En p rimer lu gar SI' ,l b n ' UI1d referencia al
fichero md jcando un cfu.s/o'r r on los da tos q u.. ser án ~tM ni .ld os, l.... t.. fo rma to no ti..ne

"'
___ ____________ _ __________'M"'o1nej o de ficheros

por qué Sl..'T igualal q ue se c Tearí,l d e form a ma n ual (OPf.'TMl' > V ata LnggÍJW > L(I~),
pi'ro tu-ru- qm' coincidir con \,1 qUl' Sl..' US<l e n ese fiche ro conc reto, l'S decir, que el d¡¡.~­
ft'r no debo cambiar su es tructu ra de un a escritura a la sigu ien te, Despu és ya M' P l ll'-
den usar las funcion..-s p iH il lee r y escribir; por d ef..x tol a de cscrrbir 10 hur e a l final del
fic he ro (u na n ueva revis i ón ). enla pa rte deh-rtura se ha indicado que {'Sta sea de la últi-
01.1 rev isión con Set D,Jt.l/tW I'osi tüm.

FIgura 4·30. Uso de kls (uncion es ele la P<lf!.'1a Da tajoq

4. 10 Waveform
Los Vis d el men ú I'rogf<llllming > Wiw " fI,rm > W,lI'efiJrm File l / O l;"itá n espectalnu-n-
I{' p repa rados para trabajar con eltipo de d atos W,1 \'ef(1[ nJ.

Flguri< 4-31 P;¡leta de teneros wavc rcnn

Estos Vls p ueden abrirse y na\'q~,lr por su jerarquía. si SI:' hace p uede com p robarse q ue
es t án cread os ¡¡ partir delos gen éricos estudiad os al p rm cíp¡o d el ca pítulo. Después de
ver los ejemplos lit' este cap ítu lo, el u so d eestos Vl~ no d ebe suponer ning ún problema.

11 3
___ __ _ __ _ _ _ _ _ _ __ __________~M~.~n~eJ o de ficheros

por q ué ser igu<l l a l <J Ul' se crea ría J I.' for ma manual (0 /-'1'(,11(' ;> V at.l Loggi ng ;> LoX),
f't ' l\) tiene qUé' coincidi r con el q Ué' se II S,1 en ese fichero concreto, es decir, q Ul' el e/ us-
ter no debe cambia r su estruc tura de una escri tura a la siguu-n n-, Des p ués ya se pue-
den usar 1.15 funciones pa ra leer y esc ribir; por defec tola de cscrrbrr In hace <1 1final del
fichero (u na nuev a n-visión), en la parte de lec tu ra St' ha ind ica do q ulo' ésta M'a dela ú lti-
m,' revisión con Sd Dolt,l/V}; Posítíon.

'- .

F¡guril 4-30 Uso de las lunciones de la petera Ddl~1o<J

4.1 0 Waveform
Los Vis del menú I'mgr.mJnJjnx .> W,l I'l'iorm ;> Wa ve form Filt· l/O es t án especialnu-n-
te prepa rad os paril trabajar con el ti po do da tos W<1 \'eform.

F¡gur,3 4·3 1 P;¡l!:'l <l de tere tes W,W efOlrll

Estl)S Vis p ueden abr irse y navegar por su j,'r,lrqu ía, si s<.' hace puede co m probar-e q uv
,...tán croadosa pa rtir d e los gené ricos , -studta dos al pnncíp¡o d el capítu lo . Desp ués d e
ver los rjom plos de este capítulo, eiuso d e ,...tos VIs no d ebo suponer ningú n p roblema .

113
La bVlEW

4 .11 Ejercicios
1. Si el VI de Id fiKU r,l 4-32 se llama _ruta .v i_ está situado en C:\ Archi nlS de p ro-
g ra ma \Nat illnal ln!'otrumt.'nts\ Lab VIEW K.2 \ user.lib.¿ q ué va lor tenJ rá el indica -
dor de la figur,l ~

FlgUrd 4-.32 E¡etn¡Jlo c ru td.Vl _

2. C rea r un progra ma qUt.' .'n primer lugar com p ruebe si existe o no un fichero. s¡ no
existe d ebo, en'a rln. El fichero sera un spn',I<i.~ht't" e n el q Ut' cad a colu m na t,'nd ra
un enca bezado d e te xto. Cad a H' Z q Ul' St' t-jl."CU h.' el p ~ra ma a ii.ldi rá una n ueva
fila ,11 ñcbcro desde u n .1trdY d e n ú meros. de doble precis ión.
3. Abnr ron LallVIEW el con ten ido d e una pagina web y busca r en él todos IftS e nla-
n os qUt' haya (sugeM"lCia: puede ser ú til emplear expf\'SillTlt-'S ~ula rt'S)_

"'
,
CapItulo 5

Comunicación serie
5 . 1 In t ro d u cció n
LlS comunicaciones q ue SI:' p ueden es tablecer entre vil rios dispositivos 1';(.' pued en cla-
- afica r d e acuerdo a muchos par ámetros, d esd e el pun to dl' vista d e [,1 fo rma de trans-
m itir los datos SI-' tiene la comunicación serie (co mo R5-2..12, USB o fin'win ') o co muru-
cación en pa ra h-lo (co mo GPIR, VXI o PXI).

En este tema se estud ia ra la co mu n icación seno. Los sistemas ser ie, en com pa ración co n
[. >s pa ralelos, tienen las sig uientes ca r,lcll'rísticas: Ira ns m ís í ón <1 m<l Yor d ista ncia, menelT
coste y más senc illos en cuan to al hardware neces ario. Suele n ser comunicaciones
p un to a p unto.

C eneralmcnte son tra nsm isio nes asínc ronas y e n ráfagas , por 10 que suelen de limita r
los d at os, ra rd es to p ueden indica r el p rin cip io con u n bi t d e .~ t'l rt y el fin al con un bit
de stop; además ta mbién p u ed en inclu ir b its d e comprobact ón d e errores . La forma de
com p roba r errores má s sencilla I'S a ña dir u n b it de p arid a d , esta paridad p uede ser pa r
o impar, por ejem p lo, si d d a to tOS 01 001 11 Yse traba ja con pa rid ad impar, el bit (h.' parí-
dad vald rá 1 {p ara te ner un n úm ero de bits impa r en la trans m isión ), así e l d ato trans-
mitid o sl'Tá !l lnOI 111, don de ('1 últi mo bit ('S el de pa rid ad .

Um1 trama son todos los bit s transmitidos, d esd e ('1 d e s mn a l de st" p. Las caracte nsn-
( <1 S principa les d e una tra ma so n:

• IAl veloc ida d . medida en ba ud ios.


• El n úmero de bits d t' d atos.
• El tipo de paridad .

Alg un os d o lo s estánd ares d e cum u nicación M' rít' mes utilizados so n R5-2J 2, RS-422 y
KS-4H5.

5 .2 Historia
El R5-2J 2 St' d iseñ ó en 1962 y d esde entonces ha tl'n idt, va rias revisionos . 1.1 ultima I'S
la «F» d e 1997. Cornenzó c ser usado p.ua ],1 comunicación entre un m ódem y u na

11 5
I..1bVIEW

i mp rt~ lr,l d e te letipo. L.1 H. \ ·/rvn;'- l/ld u~tr¡t'S A s."I...·i.lti"" (EIA ) hizo una im portante
n 'vis;,' n lit'] l'Stándilr en ]'lh'! y creo el R.t>-232·C.

D" ",l t' t'lll" nn ... el RS-2.12 st' I Ist; en ordenad ores. im p n ·Stl r.lS, inst ru me ntos de- tt",l Yen
f aSI cu alq u ier displls iliv" electrónlco qUt' nec esitara com u n icarse'.

El t.,.,¡.inda r ha sid" renomb rado V.lri,h H'Ct'" de acuerdo <110 la orga ni za ción que h,lcí,l
U N nueva revisi ón, así st' It' c" no,,"t' co mo EIA RS 2..12, EIA 2..12, TIA 2..12. También tOS
rn uv parecid o a l V.24.

A I ~ n ( ... fabrican tes dt"ddit'r(lIl nn st~u i r la norm a y , n ·.ln>n lt'rm inJ It'S con otra .ls ig-
nación tlt· pinos tI drs tintus uso!:> de 1,1S Iínl'i!S, lo 'lUt' tOS ( .lUs<l d e p roblemas d ,' r om pa -
tit' i1id ,ld crurv d ispo sitivos.

5 .3 RSZ3Z
R5-2.12 s ign ifica R\'("('mt'/l{1 ~/,m<I.Jr<1 2.12, l'S tá d efinido por e l AN51 (A m ..rtcsn .\ ',1-
/1011<1 / S/,md.ml tns titu ti..n) c" mn 011.1 in terfa se ent re u n equipo termina l de d óllt... Y un
t"'1 Uiptl d ,' comunicación tlt' da tos utilizand o un interca mbio bina rio en modo <;('rit' • .

I ~ )Sdisp" sitiv,-s son Ilamados DTF nlt.1 Torm ínot Equip m.'tl t (p" r ejemplo un OTtI,' Il.¡-
d or ) y IXT /)at.1 Circnit-terminating Equipmm t (po r "il'mrl" un m d ó e m). El DTE US<l
un n-rmina l macho mientras <JUl' ,11 rX::E st' conecta un terminal hemb ra y t'S t'l ,' IK M '
g.ld" d"t'st.l b1" rt'r y ma ntener 1.1 roru-xl ón. Un eq uipo (' t lt...\¡, n....-cvita r SN DTF y n CE,
pur " j" 1l1rlo u n o rdenad or s.' r.l l'l DT !: .11 co mumcarse ..un un mód em y un IX: E .11
hacerlo r on una im presora.

OCE
OlE
frgurd 5-1 Ol<,¡.Jmllrvos en ur\<l comun!U(lóll ~t'rlC ' Dff y OCE

• Veh ...· id ,' d m áxima o rig maler, 20 kbp;;. hay ,'pli( ,Kitlllt... quellegan ,1 lit> kbr s.
• I.ong itud m,ixim.l d el cable l!l' 15 m (revisión «C II ).
• Tensión en mod o común m,hi m.l d e ±25 V.
• Im l'l...I.1nci.lS tit' .1 ,1 7 k?,
• ~1odo de operación simplo.
• Un t'mi<;('r y un n;x.cptor.
• Trancrmstón asíne rt:}1l.1" SíIK n>IM (uS<lnd"línl'.ls " " Ir,l ¡"n,) el reloj).

116
Comunicación serie

En una tra ns rni s jón ilsíncronol tolS tram as si¡l;u en el t>S<:ju~·m,} h.'isio;n d e 1,1 5-2.

I Start Pandad Stop (1 " 2 bits )


FKJUra 5-2. Trama toca

5.3.1 Conectores
El R5-232 p lll'dl' utilizar va rios ti pns de conectores sil'ndo los m,is us.ldos [os de 25
pinos . de MI pínes , M,,,/ul,Jf j,J,·k d l' 10 pinos. RJ4S d e Hpinos y tos d i' '1 puu-s . IMs r once-
rores q UI' tienen m uchos pi nos im plemen tan varios ("¡11l,11.", ~'n m d ,l rino; y t.l mbién l i~'­
nvn o tr,l S SI'Tl,11l'" de temporización pdra transmisiones s ine ro n,lS. El conector DB-9 ~'S
..1 más h.1hi lu .1I, l'nnst,l d l' 5 lín,'as de rec epci ón y 3 de tra nsmisi ón. Las line,' s se listan
en la Tab la l .

6 6) .. ó .. .. ..
\°0°0(6 0 • • • • J
fK}l Jfol 5·3 co-ectcres D8-'1

Tabla 1. Señales e n RS·Z3Z

Pln DB25 Pln DB9 N ombr ll' DlI'sc:rlpd ón

8 I OCD Odl d Cdrr~ Det ect


6 6 DSR D.ll'" Sel Rf'ddy
u.lt'
)
,
1 RD
ers
Rfft'M' Odtd

,
4
J m
ReCloes1 lo Send
Trdll'lm'l Data u -e
S 8 OS CIl',lr 10 sena
20
,• DTR D,ltA Tl"f1TlK'kll Rf'ddy

", 5
RI
GND
RIIIO¡¡ IndlUdor
Cornmofl G.ound

OCIJ: e l IX"E 1,1 po ne ,1 1 p.lr,l ind ica r 'l ue está rl'Cib il' ndo u na ~'''.11 portad o ra.
OS R: el rx..' E la plllll'.1 1 p.lra ind icar a l DTE 'lul' t"!' tiÍ conectad o a la linea.
RO : 1,1 entrada d I' d ,¡tos. Si OC D =O debe ,'sl.u en un estadollarnado Ma rk .
RTS: e l OT E fIlmt ' ., 1 p ilra ind icar qm' p ued e transnufir d.rtos . El rX::T pondraa I
la lint'.1 a s par, recibir los d atos . Al acabar 1,1 lr.lnsnü ",ió n RTS pol"'l 01 oy l'I
I.X::E ponl' LIS tam biéna O.
TO: salida d., d,' illS (del OTE al OCEl. Si no SI' tr,m smill' l"<;lol r..¡ en Ma rk . DSR,
n TI{, RTS y lIS deben esta r iI I pilra trer e-m rn r.

117
La bV IEW

CTS; el lXE la po ne " 1 pa r,l in d ica r que está p repara d a pilr.l rocíbrr d a tos. Si RTS,
OS R y DTR es tán a 1, CTS tam bién se pune a 1.
DTR : 1' 1 DTE lJ. pone a l p.u a ind ica r q ue PUl"<..iC recibir o quiere tran smitir d atos. El
DTE pOlle un O p m a fina liza r 1.1 tra nsmisió n .
I{ I; l'I OCE la pone a 1 cua ndo est.i recibie nd o unallamada .
GNlJ: tensión de referencia . Debe estar aislada d e 1.1 toma de tie rra d el equipo,

Las líneas Rl S , CTS, DSR, OCD y OTR se usa n para implemen ta r u n protocolo d e
hand.~ h¡J kt'. Puede ocu rr ir "l ue e n una tra nsnus ion no se use n todas las lín eas, pM.1 esta -
btcccr una com unicación solame nte ha cen fa lta GN O, TD y RD, otros sistemas como
pnr e jemplo un ra tó n d e ordenador sólo U S<l GNO, RI, T O y RO. También pued e d a rse
el C.lS0 que .1lg unas a plicaciones u sen las lineas p,Ha ce ros propósitos o q ue no respe-
ten 1,1asignación d e pínes.

Pa ra com u n ica r dos DTE se usa la con figu r.lC iim MODF.M-n ull. Ta m bién se PUl'<.lI' crear
una configu ración de /oop/:><fck. Para conectores d e nueve pínes es tas configuraciones
so n las de 1.1 fig ura 5-4.

, 06-9 dlredo
,""".""",, ,,,, 0
"'_
, ,' ,..,
e'

•'. .""•' ," '


•, •' , ., ,•'
" F>gura 5-4, ConfigurdClOne~ habttu<lles rte carses

5 .3.2 Puertos
Los p ue rtos constan de un reg is tro d ond e SI' esc riben los b its par,l ir mandándolos y
otro registro donde se almacena n los q ue ll l'gan .

Para enviar y recibir tramas ern píoando un a transmisi ón asínc rona se usa un ci rcu ito
lla m ad o UART (Unil'('f'S<l / A syncronou.~ Rf'O.'i l'('rI Tr,Jn;>;C("i n -r ). Una V1"7 q ue la UA RT
está progra ma da , la comu n icación se n-d uce aleer y esc ribir bytes en ella. La p rincipal
función de 1.1 UA RT es hacer la conversió n d e Sl;'rie a pa ralelo.

1.0s buffers son u n conju n to de reg istros en los q Ul' se alma ce nan los bytes q ue d ebe n
ser tran smi tid os {I q ue son recib idos hasta ser leid os. Cuando no se usan todas las line-
as pod ría aparecl'r u n erro r ~ i se sobrepasan los limi tes ( oH-r I7ow ) d e los b u ñe rs, por lo
(lile se perde ría n datos.

5 .3 .3 Handshake
Los pro toco los de co rn uniraciún d eben evitar qUl' los buffcrs ~' sa tu re n. Pa r.1 es to S\.'
p uede in d icar al transm isor ' lut' d ebe p.lrilr de enviar d atos cuand o el buffer d e entra-
dJ del recep tor esté lleno. Este p rotoco lo p uede se r ha rdware o software (o no existir).

118
Comunicación serie

L.lbYIEW llama Hentwere Hand.~h.lkillg a usa r las lin eas. RTS, CTS, DSlt 1)(:1) Y ()TR
com o SI' han ind icad o an tl's p.u a ev ita r la saturación d el b uffer.

Un protoc olo de softwa re para evitar 1.1 saturació n l'S el XON jXOFF. Cuando e l buffer
de recepción t'stá cerca de sa turarse. se t'llv ía a l em isor e l carácter XOFF [valor 19 e n
deci ma1l1 13 en hexadec¡mal). En tooccs e l emisor debe detener ),1 transmisi ón . CII,'I1l'lO
vuelvo ,1 haber espacioen el buffer d e entrada lid receptor. és te l'Il V i'l XON (17 o I l h )
pa r.1 rea nudar la transmis ió n. Si e l emisor y el recep tor están configurados pil r,l U -';'l T
XON y XOFF, estos ca racteres no p ueden US,lTSl' en 1.1 transmisión porq Ut' serán in ter-
p retados como comandos del pro tocolo .

5 .3.4 Otros estándares


Hay va rios l's lánd <1I\'s der ivados d e l R5-232. El csrandar R5--t22 se definió tam bién
para una tra nsm is ión s im plox. con linc, b.lla nceild,l y ca bles t renza dos. L<1 transmi-
sión balcuceada usa d os lineas de' tra ns misión por señal. la información va codificada
P"T la d ife rencia de ten sión entre las dos líneas. Esto p roporciona un.' ma yor inmuni -
dad a l ru id o, po r lo q ue la transmisión pued e ser a m,is d is tancia y más velocid ad q ue
con R5--232.

El estándar RS--tH5 es una ac tualización del RS-422 q ue pe rmite com unicación bidlrec -
cional. mul tipu nto y con m,ls dispositivos,

LIS lineas en es tos dos estánda res S{' p ued en Vl'T en la Tabla 2, compárese con 1.1 Tabla 1
que mos traba las lineas d d R5-232.

Tabla 2 . Señ.. les de RS-422 '1 R5-485

Pln D825 Pln DB9 Nombre Descripción


'>. ,
, ~-
~

8 GND Common GrOOlld


l 2 CTS+ (Jear ro SPfl{j
2 3 RTS+ Rc<K1y ro sera
20 4 RX + RffCNCd [)¡J/a
7 S RX ReccN('(j OdIa
6 6 el> -- CJedr to 5t'lJd
7 7 RTS- Rc.J<1y [O Sena
S 8 I X. Tr¡msmlu('(t 0<1/<1
22 v 7X~ Transnllrred O<l/a

• Datos: TX+, TX-, [{X+, RX -.

• lla nd sba ke: RTS+, RTS-, 05+, CT5- .

• Refercnc¡a : GND,

11 9
L.lb V IEW

Tabla 31 . CDmparatlva d e los tres estándares serie

PlI,á"..e bo
- RS-U2 RS-422 RS-485

Mooo c1l.'opetaclÓl l
N" (Je dl~S'IM)~
Lor KJ lt tlá del C<lllit'
"-
¡ erneor 1 receptor
15 In
clltt"ft"f1(1.;fl

1 erT1!~or 10
1200 111
recep_tore~ 32
oree-cer
l'rm~es_}2

1 200m
receptores

Vetociddd Iflá>;lInd 20 Io:bps 10 MDps 10 MDps


-
C<l'<}<1 dfl\ll'r ¡je J <l 7k ] 100 ] rm-.no bQlmnmo
flllr dd.l lecerver 12 kl
1l'1l'>IQI1 modo coruun
de J <1 7l:J
:U 5 V
'"7 V
!. lle - 7 al2V
oe za e v
"''''' de 5 ,¡ 25V r1", I .5a óV •

5 .4 Co m u nica cio n e s se r ie en labVIEW


1..\ ~ versiones an t i ¡;tl<\ ~ d e LabVIE W incluían u nos V I ~ l'S pt'Cíficns p.lf'l ma neja r e! pUl'r-
to ",..ríe, pero en 1.1S n uevas v ('r~¡lln l's So' han in tl'¡;r,ldn ( u n el n o.s tn de Vis d e 1.\ librerfa
VIS'\ . I~)S ant i¡;u<ls VIs lnd .l\" i.l ....• « .I1.....-rva n pUf ra zones de com pa tibilidad. ,lU O<] lIl'
o ln't't'n menos pos ihilidades q ue Ins n uevos y su uso l'Sl.i desacon....; ad o, estos Vis p ue-
den ver-e- e n la fi¡:;u r,l 5-5.

[~l tse& Pfrt Ji]


~ ¡señaí Port Wtte I

:if .7 ~es Al 5enIII Port I

~ l5'?oaI Por! lle-ad]


F¡gur.l s -s Anuguos Vis paca cornuno::aclÓn 5t'f1l"

1..1 nueva pali-ta pa ra e l p u e r to ....- rie t'Stá e n lnstrurm-m l/O > ..... ·t i,l l.

120
Comunicación s e rie

VISA Configure Seri al Part ~

EmbIe T ",~, cho< ( T)

te' """"",, éh~, (O, ;., ~ "In., .=~~~_


t~ (I IJ=:)
~ISA ' esouI' , e name ~tSA '~(e """'" out
Mud ,at" (9'6IJJ)
dat a bol < (8)
¡wty (O :none)
er ror., (no err<lf) M

SI\lPbt<(I 0: I té ) :==~
f'ocw. cont rol (O:none)

Config u ra el pue rto serie co n todos los pa r ámetros que s e ha n visto en la pa rte teórica
de es te ca p ítulo: velocid ad, protocolo, pa rida d , e tc. El puerto se selecciona con VJSA
rt'.~('urn' n.nnc, al crea r un con trol 1> una consta nte en el Diagrama d e Aloq ues o e n el
Panel Frontal SI' escanea n los p uertos disponibles en ('1ordenador y se mu estran en una
lista. VISA rewource n-mw L'S un iden tificad or lógico único q ur.' sirve p<u,l comunicarse
con un recurso ma nteniendo u na sesi ón en la q ue se p u eden reali zar va rias operacto-
nL'S. Lo s no mb res d e los recursos , ha bit ualmen te, síguen el formato Interf ace Ty-
pe [boa rd i nde x ] : : Add r e ss : : I NSTR (par.l co rnunicncion se rie asíncrona Interface
va le ASRL y no S(' usa Ad dre-s), a u nq ue se p uede usa r un a lias. Para crea r illi.1S se
p uede US.1r el program a MAX. Seria L'I equivalente ,1 u n r ('m um d e los Vis qtll' tra bai.m
con ñc horos. do aquí en adelante SI' llam a ran h.mdll'f (J manejadores. Para m.is info r-
mación sobre la config uración se PUL'<lC consu ltar la ayu d a.

VISA W rlte
YIS A r ..soure.. nitfJl.. ~ YISA r~ ce OlA
_it .. bo"~ =--~..: 'et n coo..r>t
e<for " (no error) ...r-
..
' - er' or oo.t
Mme

Escribe datos d esde el b uffer hast a el otro d ispositivo . Se pued e h.1CL'r q ue este VI y el
"igu Ífm tc uti licen u na Id transm isión síncrona o asíncrona, para cambiarlo hay q llt' pre-
." i\ lll,U con el botón d erecho del ratón sobre- el VI Y selec cionar Do l/O Synchro-
lIol/s/y/ Asy n ch ron oll.';/y, a l ha cerlo a pa recerá 1> dosapa n x urá un pt'qllt'f1o reloj en 1 ,~
osq uma superio r derecha del ícono.

VISA Read !fiJ


YISA t~t .. n ......... ~Y[s.A 'e«UCOI rwne OlA
byt .. count r-ead btJfer
...,.01 ... (no ..., or) fet<.n1 CQ<T(
.~ '"'
Es el con tra rio .11 an terior. Ha y lJ Ut' in di carl .. el número d e bytes (jUt' d ebe leer d e l buf-
n-r, pa ra d a rle u n valora este p ar ámetro suele u sa rse lit sa lida de 1.1 p ropiedad VISA
fJ\· t{'.~ su St'f;,ll Port.

VISA Clase riJ


VISA r ..scurce neme ~

..nor 10 (no enor ) ~ error out

121
u b VIEW

CiI'r r.1 una sesión V ISA . Pa ra .l brirl.1s se USo1 r-l VI ln strument l/O > VISA ;> VISA
A ¡h '.m~wl .> VI.'>" ( )p '-'n. Sto p lll...ien cerrar .1utom.it ic a men te en ..J men ú Too/.s >
Option!ó ;> En vír on meru » A u tom.l til".llIy clo~' \ '/S..\ Sl'S.sÍ¡'n.s.

VISA Bytes et senat Port


-< ln>t,
es al: Port '
Es. un a de Ia s p ro p u...tedes de una !*~ión VISA. Obtil'fle los bytl'S '1Ul" hay en el bu ffer
.Id p uerto espera ndo rdra ser leidos.

A parte dI' By tt os .It f 'ort hay olr.1S propiedad es , median te e ll.1:.; !*' pucdc h..... r y r-ambior
1... config u ración del p uerto . Hay u n rotal d e lb propiedad es para e l p uerto scnc'corno
puede verse en lit ñgura 5-7. también pu ede n .....·r útiles las p n 1pil>d...des d i' la e1.1....
Mod" m Line St'ttjn~~ .

l'oH,! Cl"L'<1 r u na propiedad se ei¡·ht' ira un con trol, en es te caso .11 ViSA f"B(>urCl' ' '''11I1',
y en l'] men ú d l'Sp lq~.lble ir ,1 C n ',lll' ;> tropenv. Ta mbién p ued en crea r.... en 1.1 p" lt-t.l
f'ro¡.:r,lllJIIli n¡.: ;> Ap/ic.ltion Controt ;> I 'm pt-'rty Nfltlt', ca b leand olo de fo rm a ,l UI....uada
y .....·Il 'e clonand o 1... p ropiedad q u,' ""' desea . En 1.1 fi~ur'! 5-7 .... muestran d , J:; nod os
1'n>1'<'rty co n vanas propit>d old,'S relacionadas con l'I p UI' rtn scn e .

O tr.ls Iunciones <JUl' ~.... 'drtan Sl' r ,¡ til,'S p.na el m.1 m·~ 1 d el puerto ..... -r íe. com o definir ,,1
IM 1l ,lIJ O d I' los buffcrs. SI;' enc uentran 1' 11 Id S p " ll't.1S de V ISA.

--
_ so...
!l".
=_.
CIS

D5ll 51: .
DIIl 51: .
Rl SI".
R1S St..,

5 .4.1 VISA
VISA ( Vir tu.l1 Ill.s lfll m.'n / 5,,{1""'0II"1' A rc1J itt"<-' tll rt') I'S u n A PIo !ih n'ri.l desarrulluda por
v,n i.1S f.lbricolnt. 'S d I' ....lui pos 'l UI' proporciona un ('s l,í nd ar software poHa la s operocio-
11l'S el.' k-ctura v ,....-ntura en instru mentación.

NI -VISA lOS la un plemer uacl ón de Narional ln:-lru nwn t.. de e-tc ,...tanda r, puede ..-sta -
bh-eer co mumcac uuu-s .1 través d,· <;PIU, .....-ru-, I' XI. VX I o Ethernet En la s d inxx-ion....,.
de lns d ispos itivo.. ",' h.H.i n-ft-rcncia .ittipo de f 0 ll1 110K,K i ó n y .1 1 dl:-pusi li vu. Al~Ullns
,·j,'m p !.1S de dlrceT illlll'S "'IlO ~

J22
Lab V IEW

Cit'rr,l una !ot....ión VISA. Para ,1 brirl".. se usa e! VI ln strum..nt l /O > VISA > VISA
A, karlCl'll > VISA. ( 1pt'l'l. s,.. p UI'\l..n cerra r au tom átjcarnente en el men ú Ta'/." >
(~ltion;o; > Envíronnwnt > AUlom.Jtic.J1ly ctose \-'ISA !ot~"j( >n;o;.

VISA Bytes ar Seria l Port ~

~-rtes
-< ...
~ Port.
]
Es una d elas, proPI. '\l.llll'S d ., 1111.1 M.... ión VISA. ()tI til·n,· los bylt'S '1t1" hJ y en e l buffer
d el pue rto cs per.mdu P,H,1 M' r l..id " s ,

A parte d,' BY'I'" ,11 I'oft h<lY "tr,¡s prup iedild,'S, me<.i1.mt" ella.. M' pUI'\II' 11"l' r y ca mbiar
Id eo nfig u rdclóll <id p UI·rln. Ha y un toral de \6 pnlp ll.,J,¡d,'S p.l ra el puerto scnc'como
puede \ '("r-t.. l'n 1" fi~\1 ra 5-1. t.1mbit'Tl pueden 'o('r titi lt.... las pn",i,od,ld.'S de la clase
Modem Lim' ~o'tmJ:s.

Para crea r uno pn' r it'\t.ld se d d l(' ira u n con trol, en ,....te ca...., .11 \ 'ISA n ..... ' u rct·lJ.l flll'.
y en el mcn u .t l.... pl.· ~,¡ bll· ir ,1 e n·.I'I' .> rro~·rty. Tam bi én pueden Cn'd lSt· en la paleta
I'mgl.lmml1l~ > Ap¡'c.lhún L. 'II II,,1 > l'n1~'rty N(..I.·, cableandolodc forma adecuada
y ·"I' II."Cciurld.ndo Id prupi.od,¡d qur- !ot' desea. En 1.1 Ii~ur,¡ 5-1 se mUt...IT,¡n dus mxll...
/'m pt·rty co n V '¡ T\dS I'ropil'Liad,.... relacionada s (un el puerto serw.

01 r.1s Iuru-iom.... <JU LO p"d ri.1 n .... -r ú tih-s pa T,J el m.m,;u ,lt'! p uerto .... -ne. romo d efin ir d

.-
1,1111<1 1'1 0 d i' lo s btl HI'TS. SI' euruvutran I'n 1.1S p ,ll>'l.IS d ., VISA.

_ 9:".
O S 9:...
= ~.
DSIl 9: .
D ~~ .
~l 9: .
~n ~ ••

5 .4.1 VISA
VISA ( \'irtu,fl lll~tru llJt'n t
5uft" '.ln · Archite.'1:.-wn·) tOS un AI'I u lihn-rio desarrollada f'!,r
varios faprk ,Jnlt d I' l'tl u iptl!'o qUI' proporciona un 1...t:ind.lT sottwan- p.lrd IdS ¡1f'!' r.Kin..
n.... d e lec h IT,l Y ntura e n invtrurnentacion.

NI·VISA l"o 1,1 impl,·ml'nl.ld ú n dt' N.lIin lldl lllsl ru m,·nl s d e.' t'Sh·,...I.'ind.lr, PUI'CI., .'SI,I-
blcc er Ctlm UIll'·.lrl"n'.....l Ir.wt>s dI' GI'IB. -ene, I' XI. VX III Elm'nlt'l . En I,h d il'l.'CCillllt'S
d lol.l!'o dbpt.....ih q .........• h.ufi rt,i,·n'nei.lal npo dI' Ct'm ll nl ,-.K iún ~· ,11<i, ~pt""'lt i\'u. AI¡;;un....
",,·m p k... d.· tIlR't.'ci.mt'S <,(111:
Comu n lcad o n sene

TC P I P: : < h o stna me >: : IN STR


TC P I P : : < hos t n a me >: : e por-t o . :SOCKET
GP IB: : I NTFC
VX I : : BACKPLANE
PXI : : <Oevi ceNumber > : :INSTR
ASRL l : : INSTR

En e l program,l A 'l',I.~Un'lI1l'll t & A u f(lm.lfio/l Explon 'r (MA X, v .is a c o nf vn U N IX) q UI'
se ve ra más detall ada menteen el ca pitu lo 7, se p ued e crear alias delos d isr o i'oitivoi'o inc-
ta lados en My Sy.~ tl'm > So /tw<11"t' .> N I- VISA > VISA Optjo /ls. Dt'l'!'ta form a en luga r
de usar, por cjempln, ASRL l: : INSTR se u tilizol rá COM1.

~ I - VISA v iene aco mpa ñadn de u na !"l'rie d e u tilidades corn o ;

• \'ISA Drívor U .'IT/op m('n t lViz.lro (DDW): asistente 'l UI' permite crea r u n d rive r
par,l un dispost n vo I'XI. 1'C1, USB (1 fi re wire que , Cl I illsl,l lCl rlo l'n windows , h abili -
Id a NI -VISA pa r,l acceder a 1'S!' dispositivo.
• VISA Intl'r.lctÍl',· Ccmtn.1 (VISAJe ): l'!> u n asistente PU ol p roba r d I' una forma r.lp i-
da y sencilla 1,1 conecnv ld ad y fu ncionalidad de íos dispos iti vo!> median te 1.1S Iu n-
clones do N I-VISA.
• VISA Sr..,-vcr: es un serv id or perm ite co n tro lar d e fo rma remota un equipo ,1
'l Ut'
través ,it' VJSA. El servido r d t'bl' N.' r ejl'("tl tad o en 1,1 méquina lio n.!l' est é conecta-
do el eq urpo. En la m áll uin.l clien te se podr án encontra r I(lS equipos instala d os
dando ('J va lo r vi s a: / / la e r v do r l / (instrume n t o] ,11 ter mina l VfSA n 'sOl/(-
í

• N f-Spy StO Irat,l d e u n p~ r,l m .l para ayuda r a la d epuración en bajo nivel.


Permi te ca p tu ra r ],lS lla n1<1d ,l s que S(' realiza n 3 I<lS fUl"lCÍtmt'S ('h 'I A I' I y l<ls ~pUt'S­
IdS llul' p roducen.

\ 11'tli.lnlt' NI-VISA 1,lm bi" n st' puede acceder a d i'< ptJ"ili vu " d l' otros f.lbricanll'S crean -
d oe instaland o un d r jvcra través de VISA Driver Dt,t'('h'p mt'n t 1\I;1'. ln/. !'.na testear
el fu n c iona miento de 1,1 comor ucacíon se puede em plear M A X u \'ISA /n tt'r.J("tin'
Contm/.

Corno V ISA soport. vanos in ter faces d I' com unicaci ón sud ,' i'ol'r el m étodo t'lc~ id o p,¡ra
cri-a r drivers, d l' con trol dt' equipos. El modelo d e un pmg r<ln1<l en l..lbV IEW para u n
driver d e un instru m l'n to t'!>t,i r('p lt'S(' nl<ld o en 1,1 f¡ ~ur,l ~ -¡.¡.

Hay u n asi i'olt'n lt' vn File > N"I~'" , > I'mjcet > lnstrumcnt Driver I'n 'jl'f:t o e n T(lol.~ >
e
InstrUn lt'n t,l tillll > n ',ltt' ínstrumen t Drin'r f'n 'j<'l't q Ul' croa el esqur-leto de un p w yt'C-
lo en el q ue M' puede p n lJ.lra m il r el driver d r- un tns uu mento usa ndo NI -VISA y
"'l~u i('n d (l el esquema an te rior,

L 1S funciones del AI'I N I-VISA u"'ld,,", en LlbVIEW St' encuen tren en el rm-n u flls-
n-nm en r 1; 0 > VISA.

123
LabVIEW

I .... . ' Pw. '. I r __o


I

I --
'.~ I
El I--I~ EJ EJ El O.,,,_ ...IYIo

I -~ I I
-
f rg Ula 5-8. E~LJ{'md de los drM;'rs OC' Instrumentos
I

FIlJUI" 5-9 Menú VISA

ll'lY doc enas lk VI!; dedicad os ,1 VISA, por '~ I 00 sees tu día ean lI...l . ~ e n detalle. sim-
ph-mentc d ecir ' lu,' los típicos son VISA {-'/x'n, VISA ~Yritt', VISA R".ld Y VISA O . ""-'.

I ~l s din....clone, d d ....-n indica rse en un contro l o constan te de tipo \' ISA n'Sounl ' l1oI m.'.
Es lt' con trol o ro nvtanh- pued.. ca m bia rse d e clase presionando con " 1 bo tó n sec unda-
rio del rat ón sob n' una constante ti con tro l y y.'mlo almenú St,le...·' VISA CId....... Cada
eI,lst· \t>n d rá UOd!'> prop¡e-cl.ldt·s y métodos d if,'n·oll'l>.

5 .5 Ejemplos
5 .5.1 Ejemplo 1: Comunicación con un microcontrolador
5.5 .1 . 1 Exp!lcad6n teóoca
En el prim er " j,'m p lll co n R.<:;.2J 2 St' crea ra n df~ p n '~r,l m .l s '111,' St' com umca r ñn entre
si. Uno d .' los r ro~r,l ma s S(· ,·jt.'Cutolr'i 1'T1 un 1'<: y t'!'> I,IT,'j d t....arrolla do con 1.dt;.VIEW. El
...·~u mlo d e los p rtl~ r.lm.ls SI' implemen ta ra en un ma-rocontrota dor ~. por sencukv St'
r ro~rolm.uá us ando un l" ng u<l je d ,' .11tU nivel.

El prog rama d .,I I'C I'n vl.uá pt' r t'I puerto scnc d o!'> n úmeros d ., un l'olT,ict¡'r (de l (1 ,11 ':1 )
Y un s ig no de llpt'r,lci óo (tl + » ú «-»l. El progrilm,l ,' 11 el rnic rocontrol.rdor lo ll't;'T,; , nvr-

J24
Co m u n iCc1clo n serie

lil.lr.i 1,1 operación indicad a y el res ultado lo t'n vi,H,' d L' vuelta por e l puerto 1& 232.
Finalmente el rrn~r,l m ,l de l 1'C k~.'rá el res ultado y lo m o:;l r,H'\ en su 1'.111l'l Fro ntal.

5.5.1.2 Código del tn1O'OCOntrOIad


El si¡;uil'nte códi¡;o es un peque ño p rog rama en Icn¡.;u.* · C ponil un microcont rolador
I'IC lfl FR7211 d l' Microchip com pilado ron ce; Compi íor. El programa espera r é il tlue
IIt1;Ut' un by te por el puerto serie, cu and o esto oc u rre M' dcliva el fl,l¡l; kbh i t. El by tt'
llegado Sl' hx- con q e t c h e r- , sé te pued e ser u no d l' los do.. números que se ¡;u.u d ,lT.in
en 1.1S va riables «all y «blO o pued e indi ca r la operaci ón a realizar. Cua nd o se realiza 1,1
operación St' enviará l'l n-,ull,l d n por el inte rfaz St'ril' co n 1,1 fu nción p rmtt.
/ ...... .. ... .......•.....•..••...• ..... .................•.• .. /
{' PI'og r.oma p a I'a e l PI C l BF87 2 0 ,{
{, Lee un da t o d e l pu e r t c eee re ,{
{' y l o ecea t r e p OI' u n LCO. ,{
/..•...•...........•..................•..•............·······1
. ¡ ne lud e <16 f 972 0 .h>
• .uSES HS, NDWDT, NOPRQTRCT ,PUT,8 ROWNOUT , NOLVP I/ t u s i bl e s
au se DELAY (CU!CK.. 20 000 000 1 Il r e lo j d e l PI e
. u s e RS2l 2 (BAUD.9600 , XMIT. PI N_C6 , RCV _ PIN_ C7 ) / Ieon f i g RS2 l 2
/ .... .................................... ..... ........ ..•..• • /
{, MAW ,{
/ /
v o i d _ in ( ) {
c ha l' c s
i n t a, b , o pe r ac ion , res ul t ol do, est a d o _ O;
/ · · · · · · · · · · · · · · · · · · · · · · PROGRAMA ~RA · · · · · · · · · · · · · · · · · · /
..h U e ( 11 {
..h U . e ~ kbh it O ); {/e s pe r a u n c e r e cte r

" estado " .O ) {


a . g . t e h a r ( ) -Ox lO ; {{ p ri mer nu mer o
e a t ado .. l ;
¡ e l se i t ( es t a do_ .. l 1 ¡
o pe r ae ion. g . t e h a r() ; I l ope r a e i on
est a do.. 2 ;
¡ e l e e ir ! es t a do " .2 ) ¡
b . g a t e h a r l l - Ox l O; l/s e g u nd o nu mer-o
Bat a do_O;
ir (op e r aeion ==' + ' re s ul t ado _a . b ;
.1 •• i r ( ope r- ae ion.. . · - ' 1 re sulta do..a- b ;
a la. b r e ak ;
p ri n U ( ~ \ O te \ 0 "' \ 0" , a, operacion, b , res u lt: a d o ) ;
) . la. eB t ildo.O;
I
I

125
Ll bVIEW

5.5.' .3 Código en LabV1EW


En el eb<i igo p rimero M' eonfi~u ril d puerto serie, 1.1 con fig u r.Kión debe ser i ~\l.ll que
1.1 <id mirrocontrulad or (direc tiva /l u s e RS2 3 2). El siguiente P,N' l'~ri p ir.'i u n .~ trjnK
'1Ut' conten d r á l,l o pl' r.l(Íón iI realizar. rnr
ejl'mrJo .. 1+1 • . Des p u sé se in trod uce un
reta rdo ..h , 50 ms pa r.l dar tiem po al m icrocontrolad or J realiz.•u la opera ción y enviar
el res ultado por el p u..-no KS-2J 2; ('s il' m étodo l'S u no! opc ión mu y simpl.., y ha bitual
p,l(,l conuuucarse con d ispositi vos 1l'll tos. IJt'SpUl~ del reta rdo se utiliza la propi..'dold
lJyk :; . 1 t ['(>rt p.u ol indlrnrloa VIS A R(',ld el n úme r od ,' bytes q ur tíen .., que I,'<'r, el »tríng
leid o es d resultado que d ev uelve elmicrocornrolador.

El cÓl.t i ~o puede verseen 1., fíg-u r.l 5-lO.

Bt'Sllltddol
:~~!!JJ

5.5, 1.4 Resuttado


Una n'/ prp~ra m.1d" r-l mic rocontrolador y co mct.nío a l pe Y.l p uede ej,'l,; u l,¡Tso.' el
pTll~r" m,l lll' L.lbVIEW. El Pa nel Pro nta l ..1('1 result"do LI t' l'Ste V] ~' puede ver en 1,1
f i ~u ril 5 · 1 1 .

FKJU(d ~ ·I 1 R(' ~lJlt.roo de L-l COtnunlCdciÓn (O" 11 '1 rmcroc or 11r"l.fllor

126
Comunicación serie

5.5 .2 Ejemplo 11: Control de un Instrumento de laboratorio

5.5.2. 1 Expllcad6n teórica


Los instr u men tos el.. laboratori o norm alme nte tie nen va rios interfaces pa ra que sv PUl'-
da n comunica r con o tros d ispositiv os. Estos inte rfaces s ud e n se r el pue rto se ne y e l b us
C P1B, ad enuis últimamen te también se a ñad e un conector RJ45 p<ua ememet o un U5 B.

En viando las órdenes adec uad as sobre es te inte rfaz se p uede acceder a cualq uier par á-
metro del instru men to, leer datos o ca mb ia r cualq uier con ñg uraclón. incl uso 1.1Srclati-
vas al m ism o interfaz.

En este l'jl'm p lo se d esea crear u n baeríd o d e frec uencia s co n el ~l'nt' ril d(lr d e funciones .
El gl'nl' r,ld o r debe propo rciona r una salid a senotda l d e frec uencia e ntre 1 Hz y 10 M Hz
on potcncía-, d e 10, es dec ir 1 H z, 10 Hz, 100 Hz, 1 kH z...

l'ara pOlwr el generad or de fu ncio nes (H P331 20A) en modo R5-232 se d ebe accc...1l'r ,1
su men ú d l' conflgurac lón: Shift > Menu > l/O Mon u > lntcrtace > US-232 > Enfl'r.

Las órd en es verrin m ás d etenidamen te en el pró ximo ca p ítu lo. En es te l'Íem plo st'
S('

m uestran a continuac ión los co man dos enviad os CO !1 su d escripción:

- I DN? Pid e una id en tificación a l eq u ipo .


APPL:SIN 1 ,1 , O Aplica un a señal senoida l de 1 V Y t Hz .
FREQ XX Cambia la frecuencia d e la se ñal .1 XX H z.

5.5.2.2 Código
El cód igo co nsta de d os Vis, u no d e ellos sl'rá el q ue envíe los co man dos a trav és de l
p ue rto, éste st' r.i u n s ubv f: el VI p rincipal! ca lcu lará la s frecuencia s. compon d rá lo'>
comand os ad ecuad os y u sa rá el subv l a nterio r pilra en via r los co mandos al íns tru-
ment o.

El cód igo d e l VI pa ra en via r co mand os al generador a tra vés de l p uerto serie se m ues-
Ira en la figu ra 5-12, en l'Ila se ha inclu id o u n re ta rd o en tre el en vio de co ma nd os y las
respuestas d el eq uipo (en ca so q Ut' las hubiera ) pil ril da r tiem po d que el gl'f1l'ra dnr
pueda recibir, pro cesar y res pond er a la orden dad a ,

~
cu:r-
FIgura 5-1 2, SuhVI para leer y esrnrm por 1.'1 puerto sene

J27
La bV IEW

En 1~lt' VI se han a so..-íad u con vcnientorncn te los con troles e ind icadores con ¡os t..-rrni-
n.nos en e ! ícono P ,H,] q Ul' P llloJ ,l ser usa d o corno s ubV I.

Iklltrtl lkl VI p rind pd ll SI' us.J r,i r-l ant erior, 1,]i< funciones del nUI' \'O VI serán 1,1 con -
fi ~ur'K iún in idol1 d l' l in terfa z d I' comunicaciones y 1,1 confi ~ u rd ci(i n del l'l¡u ipl,l.
[)t'!<PUl' l; l'o tr.lr.l l'll un b ucle 1'01< en el cua l col k u l.u,l 1.1 n ue va nv... uencia d e 1.1 M' ñ.1l Y
It, I'ovi.uá el coma ndo en rrt'Spo n..hl' nll' a l gt"nl' rador. El cód ígo l'S el d e 1.1 fig urd 5- 14.

- -
'j" T..

~ ~~ '"
I3 _

foguril .,. ¡ 4 ComufllCdClOIl con t'I AIJ'1t"f11 33 IJO" " [1..M5 (]I;" un IIll t't ur '>eI'oe"

5.5.2.3 Resultado
P,H,l corn p roba r el n -sultado h.l y q Ul' conecta r u n ca ble ser¡... a l CO.\t\I' nlll-' '''¡ lll\Jo.ond-
dor y r-l generador, adem ás M' d d -e con ñgu ra r el );l'nl' rad o r par.1 q ue uso.' el in te rfaz R.<;.
2.12. u n, c.l p tu r.l d ..' P,lll t,llld del resu ltado se puede ver en la fi~ u r.l 5- 15.

FIl I~ k ejemplo se 1M vistola formo de cont ro lar un equipo a tra v....~ lit'! puerto .....'rit'. El
control dl' ins trum entos se rá a mplia d o on el It'm,l !<I.>h rt' G PIB ,11t" p lk .H los comandos
S(]'I y ver ejemplos con drivers de instrum en tos .

5.6 Ejercicios
L Buscar y es tu dtar t'jt'm pll'lS en 1.1 a yuda de L.l b VIEW y t'n su p.i ~m,1 web so p n ' el
p uerto !<I.'r i..' v VISA .

2. C n'oH un p rtlgr,l m.l pa ra leer y , 'sl: rib ir por el puerto p.lr.lld o . lnll'ntol rlo con 1,1S
hb n 'r id'i VISA y co n /n l'ort y { )II /1'ort que t'!<t,i n en 1,1 p.l lt't'l Ci .tl/lt 'cti~'i/y > "prt
l/O (ha y q lll' cono c er la di rec ción lit< base dr-l puorto (' 1\ 1,1 ordenado r r-n '1Ul' i<l'

128
Comunlcado n serie

US.H,i el prn~ r,ml.l , St' p u'-....t'-· ve r en e l ad rrunistrador d .. dlSPIlSitlVos , norma lmente


l-'S 371'l h l. Pa r.) Wind ow s 2000 o x r hace falta Acce....s H W si ...• u ...l In y O u t f 'ort.

5.7 Bibliografía
Da n Mondrtk. ¡\ d " ''''Ct~ 1 Soft wart· Tt'(:hniqut's tor t nstrunu-nt Control. N ational
Inslnmll'Tlts, 20IXl.

Na nonal Inse ru mcn rs. St'ri,11 Hard wan-snd Softw,lrt' tor Wi/l( /"w~, 2tll Xl.

~at ion a llnst ru m ,-·nb. VIS A ffd p , 2tICH .

129
Capítulo 6

Bus de comunicaciones GPIB

6 . 1 Introducción
Una de las cla v es d e ]J insl ro ml'nl.lciú n vntuet es la comunicación. Un bus de íns tru -
menteción ('S u na forma de interconec ta r varios equ ipos ekxtr ómcos dl'Slin.ld os,) TC(I-
liza r medid as 11 test.. d e forma conjunta . Algunos t'jl'mplos .le estos l'I.J u i pt~ pued..n ,*,1'
lNiluscop ins, fuen tes d" alírnentacíón , genera dores de fu ndl'"l'!'> , ...te. Normalmente
rod os estan cnn tru l.ldos por un ordenador, el cuallos pro);Tdm.l, pnlCl'S<l los Tl'Sultados
v ofrece u n in terfa z al usua rin fina l.

G I'IB es el bus lk instrumentación mas popu lar, aceptado por muchos fabncanrcs corno
Ag iten t, Cec, lotech, Kl·ithh.'Y, Mee, NI... En lll!> últimos a i'lOs los f.ü'ricantl'S lit, equipos
tienden ,1 incluir utros tipos lit, inte rfaz de com unicaciones co mo ethemet II USB a un -
<j Ul' 1~!I)S tipos , ,11 sor m,'is gen éricos , ca recen de algunas cerectcnsttcas deseables que
si tiene GPIH al ser 1"SJ'l'C'Ífíro pa ra instrumen tac i ón. Otro s tipos JI' instruml'ntl)S usan
l>U Sl'S pl anos (JI' bdstiJnr) e n luga r de cab leados co mu Pxl, VME 11 VXI.

F.qllr;! b·l CIt.' GPlB Yco ouoaoora GPIB con Im~r ldJ USB

El primer b us ,1 destacar I'S 1'1 H P-1B de Hewlett-Packard (Ht'll'/t' tt-l'.Kk.l n i tnrertsce


Sus) (j ue ~' d esar rolló on Jl,l65. En aquella époc a H P~ I B fU I' mu y popular p.ua conecta r
dispositivos co mo impresoras a ordenad ores, consta ba de di l'Ciséis línea s y una veloci-
dad máxima d i' tra nsfl' rl' nd a de 1 MBr:'.

Ya en 1<,175 e l IEEE, bds.índt">St.' en III'·IH, pn.>ptlnl' 1.1 norma IEEE 4MX / 1975 Y SI' re nom-
bra como G I'·IB (G. 'rwral l'uIJ"l__ ln teri.J("t' Hu.'ó). En 1'*'17, vist,lll 1,1s ca rencia s d e esta
no rma , a pa recería una nuev a norma q ue com ph-menta a la a nterior: Id IEEE 4AA.2,
pasando 1.1 ontcnor a llamarse 4AA.1. En 19<,12 SI' n '\·isii de OUt'\·O t"SI .1 ultima ve rsión y

13 1
La bV IEW

u n a no IJI'!> PUt>s Nationa l Instm m..nts pror uso u n nuevo G I'IH de ,1 It,1 velocidad
(l154l'\H).

Otrav "T);,mi/ .Kionl'S adopta ron soluciones m uy p,l Tl'Cid ,lS, co mu es d (,l ~ ' d d lEC 625-
1 [díñcrcen l'i conec to r). s.s. hl-k> Ii¡.;ua l q ue I f C f,Z5-1) y el A NSI M C I.1 (i¡.;tMJ qUl'
GPI B).

El HI'-III ori¡.;ill,ll y, po r tan to. los d ,'más l'Stánd,l rt.'S y nor mas, descr iben 1.1S t'SI"'Cifk a -
clones nu cénicas (con ec to r, l'" b l",ldo, etc.], eléctncas (n ivd es JÚgiclls. t,'m poril<Kión .
etc.] y fu ncio na les t fu nciones dt'! dispositivo, funciones de in ter faz y codificaciú n d e
men s ajes }, l',lT,l desarro lla r una .lpl k .Ki6n ha ría f,l Jt,l corno m ín im u un nivel l,\tra : e l
operacional. r-n t' l q ue se de fin irí,m l,ls Iunctooe, d el dispos itivo. En IEEE 4XX, A NS I
M CJ .I ~. l EC foZ.'>-J no se ioclu yú t'Stt' ú ltimo nivel p,ua ti,u mes fl ex ibilidad alos a i~­
ñadoTl-s ,J,' Ln"lru nlt'otos y ordenadores . El resultado d I' es te fUI' q Ul' los d i....,,,,>s rea li-
za dos eran incompatibles eru n - " i; ron las sucesivas revt stonos sc ha inten tado soluc¡o-
nar l'Stt' p roblema extendiendo t-I .'llll b ilo d e d efinición o ri¡.;ina l, corno SI' m uest ra en la
fi ~u r.l 6-2.

A 1 1 1 1 •
e-..- ...-c_ ClOII1IlIO "" _ _
~ V
A

c:om.r- y .....,.... c:crnutIM
~
l. V
$lnUI. . y _
~-
~ IV
I~
1'(
-
....

-"se.,
V
488.2
- •
• SCPl •

6.2 El estándar IEEE 488.1


Como SI' 11.1 comen tad oantes, el IEEE 41'Vl.l d efine lns r....q uivitos mecá nicos , eléctricos
}' funcionah-s q ue deben cu mpli r Ins d ispos itivos r ,lT,l co m unica rse.

Alg u nils C,1T.lf lt·ristifaS son:

• Un máximo d t' 3f>J d ispos itivos conectad o s. pero sú l< I 1" en funcionamiento ..im ul-
l.'i nt"'),

132
Bus de comunicaciones GPtB

• ln tcrom e xión en linea , en ,,,-rrdl a o rruxta . En tre d o s inst rumentos ntl pued e habe r
m.ls d" 2 metros 1.'1 1' longi tud lid catlle. La lo ngitud total d e lodo el bus del s iste ma
(' 'flln ' lud os los instru men tos ¡ no pued e exceder 20 met ros a rm·.....»; qu,>so.' u nhcen
téc nica s d " extffisión .
• Transferencia a sincrona p iHd ada p ra r velocidades. Vd'lCidad m,h.ima I MBr'!'
(se ha a u me ntad o en nuevas versiones llegand o h a sla los -1 MB ps Y !l MBps en
el liS -IXl:I I.
• Co mp a tib ilid ad ron la t"cntllt~ía 1TL y lógica inversa.
• Ca pacidad de d ireccionamien to dt' h.tsta 31 direcciones p rimarias, desde la O a Id
JO (1.1 3 1 M' reserva rara edesdlrecclona rs], cada u na con vdrids ,lin 'Cciol1l"S SI.'CUn-
d ,l ri.1s. El fo rma to d e Id dirección es:

Tabla 1 • Dlrrcclonn GPIB

7 6 5 4 3 1 r O
O lA LA oeeccon prlmark! Idl' Id Od kl 301

!" H,l ges tion.u 1.1 in formación h'lY tn-s tipos de elemen tos : rec ep tor (/isfl'lll'r), em iso r
(f.I/kt'r) y controlado r (con tm/h'r), Nó t,·w llul' so.' habla d,' elementos y no de equipos 1>
mstrumontos, un equipo p Uecfe tl'lll' r implemen tad os va rios de t'SltlS elementos.
• El u.~tl'llt'rsólo puede rec ihir datos cu and o es direc cionad o. Sólo p uede haber 14
/i,~tl'fll'n; activos sim ult ánea men te.

• El t,lll.,'r SÓln PUl-dC transm itir da tos rua ndo es direcoonado. Sólo p uede habe r u n
M/"t'r activo t'll un rnomt' nto determmad o err el bu s .
• El n>ntmllt.'Tl'S el e leme nto qut> sirve p.a ra dtrec r tona r a Ins u ll."n< y li..tl'nen< y ":¡Ul'
lleven .t cabo la comuntcaooo. Sólo PUI"'l' hat>t.'r uno activo en un momento dado.

Si ..,' obsl' rva la Tabla 1. dond e "l." desc ribe el forma to 1.'1,' diTl"("ciont~, Sl,' puede ver
('n mo p.arol una misma direcci ón prím.tTia puede haber un t.J/I.(·r (b it f> d 1) ' 1 un listl"-
Ill'r (b il 5 al ).

Sólo p uede haber u n con trolad o r en el bus e n un momento d dd o, f'l' rn éste plll"dl cam- o

biar a In lil l);o del tiempo, E~ l .. disptlSíti\"o lOS el enca rgado de asígnae las funcionahda -
dl'S di res to d e ínstrum en to d el b us.

6.2.1 Cableado
L.tlS cab ll'l; Sl.llJ a pa ntallad os d l' 24 h i!l»; .IC.ltl.ld tlS en a m bos ex tremos con u n conec tor
doble macho-hem bra de tipo Microribbon 57, Co rno se h .1 dicho ,11 p riocipi ll d e e- ta SI.'C-
ción, 1" longitud d elos cable-s esl'\ limitadaa 2 metros e ntre eq uip os y a 211 metr os entre
todos los dísposltívos. Un conec to r li"o" r-l esq ucma d l' la fi~ u r.l ó-~ ,

Co mo p ued e observarse en la figu r.l n.3, l' l conec tor tien e va rios cabk-s d e m asa rorqu t'
(',11.'1 .1 u no d I' t'lI,lS (excepto el 24) fo rm.' urr par tren zado ('O ll el ca bh- ":¡ Ul' lil' nl' enfrent e

133
LolbVIEW

(23 con 11 , n con 1Il, etc.}, d I' ~Ia fo rma S(' c(lnsi ~Ul'
d ism inu ir el ru ido. I ~'ls Iim'.ls de
d atos (Dll ... DIH) lil·nt'll u n retorno r om ün . TOJ .1S I·~tjn a pantalladas.

> <5 o
« ' f 'O
" '"
O O-
a w i5 i5 i5 i3

,
di
@ " " • • • • • • • • • .. @
» » »
" » " " » »
" '.
e e e e e e e z • •
sse s ~ e ~ ~ e~ g~
z z

~
º
e

"
Fl(}Urd ó-j líllea~ del core-ctor G PI6

L.ls 1n lineas d e ~·ñi1 1 se re únen furrn and o tres ¡;ru pos:


• Control de tra nsferencia (h.md~hd J..t'l

o I)AV ( !J.l t,1 V,l lid ): indica q UI' el J a to prese-nte en DIO x .'S vá lid o .
o N RFO (No l Rl ',h/y For a lla): indica la d ispt lSició n d e .!CI'pla r un da to.
o NDAC (N o t lJ.1t.l l%l-ct'p tt'lf): indica 1,1 acep taci ón d e un dato .

• Con trol del bu s


• ATN ( A l ft'ntÍlm) : el controlador indica s i I'n vi'l coma ndos () da tos .
• [¡.;C (ln rertace C I~'<H ); permite a l controlador inicializa r el bus.
• SRQ ( 5t'n'j~~· Rt"l ul~I) : s in '.' pa ra que a lgú n dispocirivo p id ,l u na solicitud de
atención .11 cont rolador, Pa r.l <¡lll' és te St' p.l l' l dispositivo que prndu~l l ,l solici-
lu d tiene <JU I' hacer un S<llllk o (1'0/lin¡;) <J Ul' p uede ser S('ri~' o p<l r.'llt'lo .
• REN (R..mote f n,lb/t'): ('1cnntnll,'ldor U!'ol esta línea y otr os mensa jes para habi-
lita r 11 deshabihta r ( Of'l tm lt'S 10...ales qut' til'nl," su correspond encia remota .
• EOl (EnJ (lT ltI" 'ntify); sin 't· para que un t.dkt" m a rq ut"1'1fin,ll de u n mensaje
d .' l ' a nos b yh~ ( 1 (,un tn con ATN) pa ra md jI"a r qU( ' (,1r ont roladur ~~t.; ejecutan-
d o un sond eo.

• O.l ltlS (bid treooonal)


o DIO I-DIO/ol: so n linea s b idincciona h-s q u.· trarvsmiten los d at os codifica d os
normalmen te en ASCI1 d ., 7 bits, siendo D IOI el rm-nu- s i ~ni fi cil ti \" I ', Dl07 el
l1l iÍs s i ~r1 i tic.l t i \"o y lJI08l'1 t> it de parlda d.

Las lineas NRFO, N UAC y SRQ so n d ..' colecto r ab ierto. 1.<1<; hnca-, () IO, OAV, 1re. ATN ,
RE:-.J Y EO ] p ueden ...-r colector ab iertoo triestado . Un d r iver p.lT.l una sa lid.l ~k colee-

134
BUS de co m unicaci o nes GPIB

tor .l b il.'rto permite realiza r una 0 1{ ca bleada corr el re-seo d e drivers cont.'(1ddO'i a la
nli ~ma linea. En la figura M (.lo ) puede verse la conñguraci ón tip ica de una salid a ; l'fl
(b) se- m uestra el driver de una Iínt'ol d e colecto r abierto.

FlgUr,¡ 6·4 aoqoe la di" las li'X'dS clei bus GPlB

6 .2.2 Handshake
El protocolo de com u n icación parol coordina r la transferencia sob re 1,1 bus d l' da tos ha
de ao.;t'~Ur,ll"!o{' qu e tod os los recept ores ( Ii.~ 't'nt'rs) estan pre pa rad os .m tl'S q ue elemisor
(t,ll1('r 11 L1 'Iltro/lt'r) empiece .1 transmitír y a dem ás tiene q ue esegurar la in tt"):; rid.ld de
1"... d.l loo;.

La cnm umcación será as íncrona, t'fl lugar de n' IO¡ se usa n las tn'!> Iim'as del bus d e con-
tml d e la transferencia: DAV, NRm . NDAC. Meidtante este meca n ismo se coreégue
aiu...tar Id velocidad d e la transmisión a l dispositivo mas lento .

Un tit'm p kl d t.>l uso d el bus de control de Id trare..Ierencía se mlK"'itra en la fi¡:;ura 6-5,


donde 'i(' m a rcan los instan tes eleve

d) C ua ndo un dispo.lSiti\"ol-"Stt direccionad o romo listener tra la r.i d e ponerse en este-


do de e-coche. En e l caso qUt.' un di ...positivo conec ta do al b us no pUt-da recibir 1'1
d ato. la '>l'1\a1 NRFD en el d isposmvo esta rá a TRUE, fo rza ndo a que la ten sjón ('Tl
Id linea ~a de OV (iOOl-pt.'fld il'fltl'flll'ntt'.id estado del res to dt' d bpt.lSitinlS ). como
p ued e com probarse t'n la fi~ ur,l 1'.--1 [b}, C ua ndo to d os lus d i!>ptrsltivos estén lis-
tos pa ra recib ir un d a to, 1.1 ~r'''ll NRf' D on tod os e llos ~rá FAI5 E (Not «t'.ldy ter
D,II.I",PALSE a « e¡¡dy Ior lllt.tl. por 1.. qm- la linea pt-...ir,l tener u n n ivel dI' ten-
s ió n alto.
t-) Al sub ir e l n ivel de la sena! NRFD, t'l t.III«·r s<lI:' r-í
todos Ins d ispositivos est én
q Ul'
p reparados. por lo q ue validara media n te la "'.'ñal DAV los datos <l Ul' p revia mente
hab la PUI'Sto en el bus (alt.1 V.llit1: TRUE, linea a ba jo nivel).
e) El primer tístencr ha le rd o 1'1 dato im pone un ca m bio en r-l es tad o de IJ linea
l'

N I{I'O. Ta mbién inten ta elevar la tl'fl... it'lfl de la lint'a l\:DAC. pt'f\l al MO r ta m bié n
colec tor abierto debe rá l"!>pt'ra r a q Ul' ha¡:;an lo propio 1;'1 n os lo dr- Ji.~ ll'/lt'rs.

13 5
L.l bV IEW

d ) Tod os los listl'11t'fS termina n d e 11...-r el d a to, por lo q w.· 1,1 lirWiI N DAC subt' su nivel
pa r., confi rm ar la lec tu ra.
1') El t,l/l..t·r reti r a e l ti ,llu de l bu s indicand o q ue su cnn tcnid o ya no es váli do media n -
te 1,1 litw.l DAV. Toda s l.\s lín(·.ls v ue-lven a su l'!>t.ld o inicia l pudiéudo-e repeti r Ind o
el p ro c esootra n '/. pa ra un Il UL'VO dato.

"'0' - ( )>--
1\ ._- I
"
'JI "\
"
'"ÍJ'1'

• • , • •

6 .2.3 Funcionamiento
Las funcuun-s dc in terfa z so n las ca p.ld d ad es pn...1t'fin id ,l s qUl' los diseña d ores de eq u i-
po-, pUt...len i m plemen ta r ,\ Iravés de l,\s cua je, se puede e nv lar, recibir y p run'Silr men-
SoljL'S; St' d t>"'C rih;>n rm...tia n n- dia ~r,l m"s de es til dtlS. Un d eterminad o equipo nlllll;'("t""i·
t ,l im plenu-nta rlas t o d, .., St' S UelL' ma rcar con una u d os Il'lras la s ca pacidades de l
d isposit ivo cerca d el conector. Alf;un 'ls de ellas so n:
• SH (Sou n.' H.mJ.~ /Mkl·) y A H (A ú <.·p tt>r ff.I/lJ.~ h<l kt·) : permiten al d ispositivo
enviar y recibir rcspccnvamcntc mensajes multihnea .
• T ( 7~1 /k.'r) , L ( Li.~ tl'll<'r) y C (Ci mtm/ll'r) : permiten al d ispos ilivo se r u n t.ilk er , un
li.~ tl'IJ.'r ll un con trotter.

• S R (St 'n ·jo.' Reqllt'St): puede pedir atenci ón a l con trolad or d l' forma ,l ~ inl-nm il _
• RL (Rt'OIl ,tt' l.oca f/: permite d(...· id ir la en trad " d e info rmación <11d isposi tivo : Pa nel
Fron talu rcmotamonn- a trav és tI.'1 b us.
• I' P (r " ", lId rolf/ : p n 'porcionJ ,1 1 ti ispositivo [.1 ca pac idad de id cn tific <1 !"l' cua nd o
ha pt"l1id n atenciún alconrmlador y éste t~ tiÍ en el pnlCl'Sl.' d t" descubrir ••1equi po
'lUl' la p id ió.
• OC ({J.·' ·kt' Cle,lT): permite q Ut' el t"'Ju ipo P" ","' ,1 un estado inicial.
• OT ( [Jt" 'k l ' Tr i,%>t'r ): e 1 di spositivo ini cial iz.1r,i s u operación d l'pt.'nd iend n del b us.

Tam bién ('x is !.. otro tipo lit' fu nciones llamad as Iu r u-ioncs d l' pt'lld iL'nI('S d el d ispositi vo
o sim plemen te fun ciones dl' d ispo s itivo . f. stilS Ium-iom-s no t'Slá n defin id,ls por 1'1
norma -IHK I y. en p rincip io . ser jan defin id as p. ' r ct d iSt'nad o r ,it'l eq ulpo.

136
Bus ee co mu n lcadones GPIB

Las com u nica ciones entre fun ciones d e in te rfaz v su en torno <;t' n',l lil .m a través de
m ensajes . Los meru...Jjl"!> t'n Vi,l(\oS pueden .....r:
• \.1.ens.a jt"S Itl(".l l,,!,: ~' p rod ucen entre una funci ón de d b pt >s itivo y Un.1 fu nción de
in terfaz (ocu m-n d .'n tm del p n'pil' eq u ipo).
• M,'n >;.l ),'S remotos : en viadoso través d e fu nciones ,k int\'rl.u emn- diferen tes dis-
ptls iliv <ls , A s u " I' l pueden ser:
• I\.k ns,ljl's d I' intt'rf,l l .
• M" Il ~.ljt'S
d l'p, 'nd i\'n lt'S J I'l d ispositi vo: oc ur ren vnuv funciones J t' d ispositivo
en di fen-ntes eq uipo s . van codificad as .1 través de las fun ciones JI' inter faz.
Algunos t;,'mrlns de estos mensajes so n los co mandos d I' r l"(' g rdmacitln , datos
d, ' rrn-didas. in form,lCión <;tlbrt" el estado d el oqu lpo, etc

Al codificar los ffi.'ns,ljt"!> n-motos <;l' tra nsforma n en señales q UI' circula n por las lincas
del bus. Un ml'n>;.ljl' cod ificad o en una única linea SI' d enomina men saje u ntlmea: S(-'
pueden envia r \'arios si multá nea mente. Un mensa je q u,' st' cod ific.l en v.l ri.h hn ea s .....
lIo1m.\ m ulnluwa .

Funciones de dispositivo

.... -
Funciones de
inlerlaz

Los ffiens,l jl' s unihnea so n : IFe , RE N, ATN e lO Y. Alg u n~ 1S l'jl'mp los d e ml'n>;.l jes remo-
!lIS mulfilinea son:

• Del. (Ot" 'it"l.' Ch',Ir): PW\ 'OC.l la reinicialización di' tod os los d ispositivos del bu s.
• G El' (Gm llp E\l 'C'u tl' TriAAf'r ): perrrute activar o d isp.lr.1T v.l rio s mst ru mcntos
slm u lté ncc rncntc.
• GTL (Go T" Loc" f): desact iva el modo remoto y .Kti, a 1,1 modo loc al en ",1 disposi-
tivo st' lt'Ccit>n.ldtl.

137
LabVIEW

• M LAIX} (My U!> tt'l' A<i<' (t"S,o;): hace q ue el dispos itivo r on la direcci ón X M'a u n tis-
t('m 'r.

• MTAIXI (My Ta/kc'r Add rr"'S,o;) : i~ U,l l q ue el a ntenor pt' ro con el t.f1kt'r.
• 1'1'<:: ( P.u,llId 1'l 1/J Conf igu t't'): se utiliza en u n sondeo pa ra lelo.
• I'I'U ( P.l r .l 1Jt'J Poli UnconfiJ,rurd : rdn k iol los dlspost rivos d e m uestreo p.uollt'lo .
• SDl' (Sdt'('tc'(f iJl'l'icl' C1t'dr) : n..~'II',l el dispositivo direc cionado.
• 5PD (.';"'ri.ll l'o l/ Dis, lb/t'): indíca q ul;' el p l"llCl"Stl JI' sondeo M'ril' ha finali z.•uto.
• SrE (Se'ria/ I'o ll En.Jblt') : d esp u és de u na mterru poón (SRQ) SI;' usa es n- coma nd o
p.tra lh-var a cabo IIn sondeo se ne y averigua r el d ispositivo que produ jo la in te-
erupción. para t'lIo !';l' envía 1'S11' co mando al d ispositivo direccionado y l'stc' Tes -
pond,' d epos itand o su by te d e estad o en I.l !; lim'.ls d e d ol tos del bus.
• TCT (T.I1<e Con/mi T,II1<(,f): tr.1Os fit'1l' el co n trol d t'l b u s al t.1I1<I'f, que se con vierte
en el nuevo cn n tm //t'f.
• UN J. (Un /i.o;tt'n): d csdirec ciona (til'SoK li v a) los /ist('nt' r:s.
• UNT ( U n t,llk): s irvt' para des dirr.....cionar al t.l1kl'f dctivo .

En d si ~ u i t'n lt' ejem p lo <;c' t' n viMán tlllS da tos d esde (-'1 d ispo s itivo 4 a l 10: en primer
lugar d t-l.1t· Clm~lIiTS<' q Ul' d mstru mento r on la direcci ón 10 ac tú e corno Ii,,/enc'r, p.lra
ello el C"l m/nJ/kr activa la línea ATN y en vía po r el b us de d ,lltlS el mensa je MLA IO
(rlld ifk ,ld n ron el valor d l'CimaI 42). F1 siguien te p.lsn sl-'rá qUt' el d ispositivo 4 M' con-
0._ _

M '

Am
~- 'l.
n~
,
,, ,, ,,
so
,, ,, ,,
,, , ,
,
Ftquril b-] TrarnJTlISIÓn <k' catos coroera con 4BA 1

138
Bus d . comunica cio n e s GPI B

vierta en el t.1/ke r, por lo que e l controlter en viar é el mensaje MTA-l. A co ntin uación el
t,¡/ker podrá d eposita r los d os da tos en el bus. Finalmente el con trotter puede envia r u n
mensaje UNT p ara d esactiva r el ta/ke r y UNL pMa ha cer lo m ismo con los /i.~ tl'¡1t'rs.

6.3 El estándar IEEE 488.2


Como se ha visto, elest ánd a r IEEE 4AA (luego re nomb rado a IEEE 488.1) define la for ma
(k interconectar fisica men te los d ispositivos y el control del bus pero no d ice na da
sobre los da tos 'lue se tran smi ten (los valores «1» y «2» d e la figura 6-7). Esto so hizo
as í pMa da r m ás liberta d y flexibilidad a los dise ñadores d e Instrum en tos. s in e mba rgo
\(> q ue ocu rrió es q ue cada fabricante creó su prop ia forma de curnu nicacion, siendo
cad a u na incom patible con la de otros Iab ncan tcs : d e esta forma 1.1 libe rtad d el diSt,ñ.l-
d or de equipo s SI' trans formó en queb raderos d e cabeza d el programado r q ue nocosi-
taba crear un sístom a d e in strumentación con varios eq uipos d iferentes y cada u no fu n-
cionando de un a m anera dist inta .

El IEEE 48H.2 COdl'S, Formats / 'roto("o/s ,m d Commol1 Com m ,lIlds For ¡¡~ w ith S td
.ffllI.J -J'N17su rgió en 1987 (b asad o en u na p rop uesta d e Tektron¡x en 1985) dela nec e-
sida d de unificar los criterios d e los d istin tos fabrica ntes. Establece un est ánda r en el
formato de los mensajes. u n conjun to común de coma ndos y una forma única p.ua
poder co mp robar elestcd o d e los instru men tos. En d efinitiva, un ifica e l co n trol de ins-
trumeruos.

Un" ana logía sería co mo si 488.1 d esc ribiera có mo se deben conectar los ca bles de telé-
grafos y transmi tir las señales eléctrlcas y 488.2 d efine el código Morse. El IEEE 488.2
se establece como una capa s uperio r a la 488.1, en la fi gura n-2 la fl echa in fer ior repn'-
senta a .v-\8.1 [mensajes rem otos ) y 1.1S d os ccmre los se e ng loba rían en 4XH.2 (sin ta xis,
estructuras de da tos, co ma ndos y resp uestas comunes).

Sobre el form ato d e datos y sin ta xis, tEP.E 4AA.2 define e l forma to d e n úm eros decirna-
]¡'S, en coma flota nte y strirws; la codificación p uede ser ASC II de 7 bits (como en -1.8H.1)
o bina ria de 8 bits (mas eficien te qUl' ASC II ). Por ejemp lo. el forma to d e los n úm eros
docirnales se m uest ra de forma res u m id a en la fi gu ra ti-8, d e es ta fo rm a son válidos: -
12.3, .1 23, .12 E - 3, +.11'+2... El esta nda r dcfin.. de una fo rm a pa recid a el res to d e tipos
d e d atos.

-1 Mantisa ~ Espacio(s) ttd Exponente tr


D D
~~~ + 6r er'-"~ -' f1
FIgUld 6 -6. Formato de n cmeros decmaies

139
LabV IEW

"" ... ~. ,..


"'""'"
n C?P<:~,~
, ""'R8Qt.'8Ol ConlrOl

, Etr(W"
0u"'Y

a """'" ,- vr-, vr-,


• , ~'- \.U L "v._ \.U
s '"'"""" ,- S" nd-.l EVfIIll


r
UM' Roq_

' - 00
-'"- •

El -I,s,x tlri ~inil l de fmia un byte dl' l~t,l d(l <lut' era l'fl\"idd n l' n un ...-nd co serit'. Fu -\&1.2
ha y In.... n.·¡.;istros d e l"Sl.l,l u {ver fi ~\l r,l 6--9), cada uno p u edl' ...-r enmasca rado ("(10 su
prop io n ·¡.;i!'otrtl de habilitación .

Llls n~ ¡~trus son:


• St.mJ. m/ En'n/ S t,ltus Rl'gist..r (SE.<; R): in fo rma de s¡ se ha com p letad o un a ,l pt-'rd-
cien, hilY un error, d e.
• (.:h lt~ti/On,¡ ¡'h' D ;lt,l : indica S U Cl"StlS corno sob retcnsjo ncs , sob rec o rrien tcs, etc.
• 5t"tu~ lJytt" Rt'Xi.~tt"
(SBR): l'S d mis mo registro <l ue es pociñca ba -188.1, sirve p,l ra
ind icar s i elcquípo quiere cnvtar algú n mensaje, ha pedido <a tención .1\ con trola-
d o r, d e.

En 1,1 norma 41'1S.2 ta mbién se d eñru-n comand os , algu nos o p lo1 tivos y otros nl"!l i~a lor¡os
quv son co m unes i\ tod os los d ispn s ilin)S, éstos se agrupa n según su funcionalidad:

• 0.111.,..; d el sistema: son comandos relacíonad os ron lnío rmacl ón sobro el sistema,
r orno su fabrican te, mod elo, etc. Ejemp los :
• °11 )N ?: id en tifica l'I fab rican te, modelo, númerod e Sl'ril' y fir mwa re d el d ispo -
s itivo.

• 0 pl·r.lCionl'!> in ternas: está formado por comandos relacionados con 1.10; ca piKid ol-
dl'S mtemas "lUI' p ued e tener el equipo, como n -...'t, canbraoón o tes t. Ejemp lns :
• °CA L: calib ra el eq uipo.
• °RST: reset.
• °TSf: ,m llltt':' t.

140
Bu s de comunicacione s GPIB

• Estad o y even tos: contro lan las ..-srructu ras d e estado del eq uipo . Ejl' mp los :
• ' CLS: bo rra el regis tro de estado del d isposi tivo.
• "ESE: fija u n determ inado registro inte rno (S tan d dld Event S(,l t ll.S Ellal>/..).
• 'ESE?: lec el va lo r del reg istro anterior.
• "[,SR?: lec e l valo r d el rl'gistro de incid encia s (Stam 1Md El ·('nt ~t.ltu_~) .
• "SR E?: lee el valor de l reg ist ro SRER (Sen';("{' Rt"t. lU(~t En .lb l t' Rt'g Ístt'r).
• "STB?: lee d va lor de u n reg ist ro (Sta t¡¡.~ Byte).
• "SER: fija un val or en un reg is tro in terno (St'r via' R('qIlt'St En'l b/l') .

• Sincronizaci ón. Ejl'm p los :


• 'OI'C: activa el bi t de operación com pleta (bit O li d registro S tatus Bytd.
• "O I'C?: com prueba el estad o del bit an terior.
• "WAI: fuerza ,1 co mpleta r todos los co man dos ant eriores an tes d e con tinuar
procesando los coma nd os siguientes al "WAI.

• Sondeo pa ra lelo. Ejem plos:


• "1ST?; petición del indíviduslsmnu- bit.

• Tríggcr. Definen co mo un ..i i spn~i ti v (l tiene q ue responder ante un mensa je GE T.


Ejemplos:
• "DDT: gra b'l u na secuencia de comandos que c t cq utpo ejec utar é cuando reciba
el mensaje G ET o el co ma ndo "TRG .
• "TRG: realiza la mi sma función qu..' el mensaje G ET d e -lli8.I .

• Ccutroucr. Ejemplos:
• "r CB: con esto comando se le dice ,11 con trolad or la direcc ión a la q ue debe
enviar u n mensaje TCT que, co mo se ha v isto, p ,lSl 1.1 función de co ntrolado r
de un dis posi tivo a ot ro ,

• Autoconfiguración. Ejemplos:
• ~ D LF: d eshabilita la fu nción ..f e listener.

• Macros: estos com andos permiten <11 usuario d efinir n uevos coma nd os basándose
~'11 los ya disponibles. Ejem plos:

• "D MC : de fine u na macro, es decir, U l1il secuencia de coma ndos.


• "EMC: habilita o deshabilita las macros.
• Almacenamient o d e la ronfigu rac sén : gua rdan v restau ran 1.1 configu ración del
eq u ipo.

• "r~ CL : res taura e l es ta do del d ispo sit ivo d esd e u na COPI,l ¡;u ,lfd adil p n 'vla-
men te.
• "SAV: guarda ctestado ac tua l d el dis pc....írívo en memoria .

141
labVlEW

6 .4 sePI
En .J1'\X.2 ....· dl'filll'n l"t mlo1nd u!> comunes a tod o-, los t'q Uip'lS. ffit...l i.lnll' I~l ns comandos
se pUl'{1t'n t'lt'CIUM lan.·.lS '1UI' aft'ct.ln a las co m unicaciones o iI <'I 1¡;Un.ls fund nlll~ oasí-
ces d i' h,., equ i p'l!> corno ¡m lt111"'>1. Pl'ln p.lr a trab•.l j.J r realmen te con lt)!> l"lJUiptlS f.llt<l aun
otro p.l.....: con f i ~u ra r l(ld "" lo u.. tunciones, p<;.lr l'Jl'mp Jo, 1,1 captu ra o ¡;t"flt' radú n d .· ..... na -
11'S. Est.1S Iunciones lú¡;k .lrn" lltl· depen de r án cid hpu d I' insln llll"1l 1o, en u n I~-i l "sco..
p¡o ....• rlln fi ~u ra rá ll p.l d ml'l rus romo 1.1 escala d ., li" m ptl mio'nl r,ls q ut· en UI1.\ fuent e
de .l lim,·nl.ldón p lll'dl' co n fig u r,' N' l'I limite dt' cornon te. Con I'SIt' objetivo lh-..... l.·II-
Packard fnrmalil{¡ u na prop uesta en 1990 qUl' se C(lnv irti ti en SC !'I (St.mdard
Ci.' nJn Mn.l... for I'n Wr,lflln J.lt>/e In...trum.·nts). I lo}" el CU I"L...~rc it l 5("1'1 111 forman fabrican-
tes, comeI A¡;ilt' nt ( ti 1'), Tck tronix, Kt'i ln 11' \·. Fluke l\V.nl·td, ). N.tl itm.ll Instrurm-n t..., d e.

En 1<'1 fi~ura f>...2 SC PI ..... sitÚ.1 por 10lKim,l de G !'IB ,lUnq u.. m n o,lJid .1d es i nJ lo~1t'nd l en -
ti' di' 1., wnt' xiún h..jea , pUl...lt.' utiliza rse sobre C I'IH, R.c;...232. VXI, USB, edwml"l, etc.

Se tral" d t' u n Ilong U.ljt· N!oo<ldo en comandos, con sisten te, Eng li"n.l.ikl' l' mdcpendien-
11' del f.lhric.mll' tll'l l'llu ipt l. En S(] '1 ]llS d tsnn tos r omand os ..... .l¡;rup.ln en v " TltlS sub-
sish' m.1S tl ¡,lm ili.l s, cad.l una dI' d l.1s id entificada r on un bloque Iunciunal tlo·J in..tru -
men to, It'>gu;-ólllll'n h' nu h ",l,lS los ins tru rnentos Iil'1Wn los m bmll!< bloq ues. En la h¡;ura
6-10 p ued en ver....• hos b k"'llIl"S principales de un ins tru m e nto. 1..1 .1¡;ru p.lCión ..... realiza
de forma ji.·ráftlu k " l·m ro-·..~mdn pur la fam iha má.. ¡;l'ne rica )" p.u licu ldriz.\ mfl_ · cad a
\'1.... m,l'>. C.ld ,l f,lm ili.lll s ubf,l mili.l ,»;1.1 ft'p rt'.....nl ,ld ,' pu r UlM J. t')' l\'ord , d i' l~ l,l form a
no haCl' f.llt.1 mt·moriz.u demos di' mnem otécnicos . Las f.t m ili,l " p rincir .1J,»; so n:
CALCu l a te . CALibrat i oo , CONT rol , DIAGnos t ic, DI SP la y , FORMat . HOOPy.
I NPut, INSTnJment , MD-bry , ~ry , ocrsoc , PROGram, RCX1I'e . s ease.
SOURce, STATus, SYSTem, TEST , TRACe , TRIGger . UNIT y VXI .

SYSTe m: COMMu nica t e:SERi a l: 8AUD 9600

Se puede ver como 1.1 l.lm ilia r.lí.. es SYSfl'm , IUI);I' va n LI!'o subf,l mi lia.. COMMun i -
c a t e, SERi a 1 )" BAUO. !'olft'l" s f,lmilias se POllt' 1'1 caracwr d ,,.. pu nltl!> c :_ p.ua sep.l·
rarta s. ¡ ..lS Il·tra s en min u....-ula ~. p ued en omihr p.lTa C'o Tl.' *);u ir m.1yor r.l pid t·)'. Los
paranu-eos qUl' r UI't.f.m h'flt' r los w milnJos van al fina l S('pdraJ llS dI' la ú ltima J.t'Y-
I\"o rd pl'r u n l'Sp<,cio. El com ando acaba co n un fin ..11' línea .

En I·J 1'01';0 ,m ll' rior l'I ("llm.m d o sin 'l' p.ua ptlnl'r 1.1 \'d ucidild ..Id p lIl' rtn SI'rit, dt'll'll u i·
ptl d 9 .hon ¡'.lII,Hos .

OtnlS co nl.lnd ,lS d l'vut'l \'t'n d atos , pt ,r lit'mplo , p.lra p "-'gu n ta r ., l l'llui po lo! \'t' locidad
..1.. Ct~m Un iCilCiún dt'1 p Ut·rto .....rie <;t. puo't.fe USilr:

SYST, COMM ,SER: BAUD?

Par" ml;lIról r m.i~ 1" d kit°nd.l dl·].l Ctlmun icación (.lun'jUt· onl.1 Il·¡;ibilid ad) ....• p ut·(lt>n
ag ru p.l r \·arill!> Ctlm.m d o.. dt']a f.lm lli.l l'fl u na m lsm.1 II nl·.l. DI' .....1.1formol .... '>](1 ....• ca m-

142
Bus de comunicaciones GPIB

-~-
INPut I SENSo CAlCulale FORMal

TRIOge' ME_

~ ... _-
Flguril 6· ro. Modelo oc Inm LJ~nlo en SCPl

bia la subfanuha mas específica . Para Sl'p,l r,u los co mand os Sl' usa el ca rácter p lin to y
coma «;» . U n ejemplo que equivale a los d os antcrjores I' S :

SYST,COMM ,S ER ,BAUD 9 600; BAUD?

Si al «;lO l., sigut' el ca rácte r «:» se ind ica que la escrito r,1 d el slguien 1(' comando e mpie-
l,a por una fa rrnlia raíz (h ,l Y q ue escr ibirlo completa men te }, Po r l'jl'm p ln:

SYST,COMM,SER,BAUD 9600 ; ,SYST,COMM,S ER,BITS 8

6.5 GPIB en LabVIEW


TIldo 1" vis to an terio rmen te sobre 4HH. l y '¡¡;'¡;.2 p ued e se r, si no se en tra en detalles,
totalmente transparente a l prng ra ma dur que use I,h funciones Gl'lI3 en LabVIEW, PMil
esto [ ~l bVr EW proporciona una serie d e librerías qm' ay ud adas por el sistema opera ti-
\'0 implementan todas las ru tinas necesarias.

FiglJl"i1 6· ' r ru ncooes especirlCd~ ce GPIS

143
LabVIEW

La paleta r on los VI especiñcos d e G l' lB es t án l'n tnstrum ont l/O > G Pm. En e lla ha v
o tra sub paleta co n VIs t~po.'("íficus del ....Iiind ilr -l.M.2, [el <:j U" p.'rm it., un control más
p ro fu ndo sobro [,1 co m umcaoon, por t; emplo el VI Rt':"i'tSy s ' 'Tl \·ia . en tre ot ras n lSdS, u n
coma nd o ' R5T. Estos Vis <;L' d ívlden en Sing/t... Dt'~·iCt' Functions, Mll ltiplt~Dt'\ 'i('t'
Fnnctínns, Bus Af,m.l1:t'lIlt·lJt Func íinns, L(.w-Lc" ·('/ FIII 1(-tiw IS y Gt.'llt'ril/ I'II/1Ct;OIlS. En
princip io los Vis del 4AA. 2 no s..r ñn necesarios, por lo q u e la explicación so cen tra r á en
los trilljicion,l lt'S, d .' ]os (" u,l lt'S Ins d os p rime ros so n los m ,l s usados .

GPIBRead ~

Lee ].1 cantidad do b ~' t,,,, ind icada en by /{' ("(IIm t q UI' d d ispositi vo st,'ñ.l la.-lo con
atldf't.'Ss .~ trin); ha debido d t; .1f previamen te en e 1bu '> (;r lB, St, pueden indica r d irec-
ción p ri ma riol y St'C\md.u i.ll'SCribil'nd o «X+VIO d onde X esla d irección p rima ria e V
L'S la secundaría. Tamhión St' p ued e escribir la direc ción de fo rma 1It0:211 , a unqul' lo

no rma I es escnb¡r súlo ].1 d ireccíón prima r ia (la q UI' m ues tra n II liS eq uipos 1'Tl sus d is-
pl.1YS). El paramotro m otll' sirve pM.l ind icar una d i' las tres formas en q Ul' e l
comando pU..d o finalizar: tJ sin n ing ún ca racte r .. xtra , 1 añadiendo el{ ((J])h ' 1') o 2
añadiendo l. F (lJ Ah \ 11), En Itls d os últim os casos el VI 11'I'rá d.1los h.lst.l qu e :s e
encuentre 1,1 ("il r.k tt'r indicadu, h.1SI.l by tt· courno ha st.l <JU t' SI' .1<'th'l' 1,1 linea EO !.
Esta Iunciorv dev uelve el datolefd o y eles tad o d el contr..lad..r.

~ :;;;¡~
tmeout lIlS (488.2

...
adÓ'es~ strn;J

lrOOe (O)
"::=
f- •.-
•• ~
error ..

Hace lo con tra n.. q ue el an terio r, prácticamen te todos los pará metn lS son ig uales,
excepto. logícamcnte. el terminal ddta, q ue en esta oc asión t'S una entrad a. Con
moae se pm'tl., l'1' 'g ir 1.1 forma d ctermmar la transmi sión, en esta oc a sión ha y ocho
posi bilidades 'l UI' corres ponden a distintas com b tnocí o nes d e los ca racteres LF, C R
y el uso d i' la linl"1 EO I. Median te este VI SI' p ueden e nvia r los co ma nd os ser l a un
dispositi vo .

Wait ter GPlB ROS l!I

Espera hasta 'l UI' d dlSptlsiti\"l1 seleccionad o e n víe un nw n"'l '" d ., pcnc í ón de serví-
cío ( R<"1S).

l••
Bus de comunicaciones GPIB

GPIB Trigget" 1001


~ess stnrlg ~ status
error fl _.~ error out
Mensaje mulfilinea d e tfi,;,;t'f (GET) a un dispositivo. Hace que los d isp ositivos sin-
cromccn sus acciones.

Gf'lB Clear 111(.>1


~ess strnc;¡ ~ status
error fl -~ error 0Lt

Mens aje d e dmr (SCl) a u n d ispos itivo. El d ispositivo M" resetea a un es tad o prcdc-
finido po r ct fab ricante.

GPlB sertal PoIJ 1* 1

El controlador realiza un sonden (pol/ing ) serie a u n d ispos itivo pa ra saber si ha


hecho una petici ón de servicio (ver linea SRQ en la sección 488. 1).

GPlB In ltlallzatlon 1=.1


reqUre re·4dó"eSSirIQ (l) - - ~,
~sert REN wittllFC (1) ·~I

sy9:em tontr~ (l) ~


""
~s strTlll . r- llIII . error <U
151 bit seese (1) ,
error r\
ds*'w DMA (F) --------

Co nfig ura el in terfaz de u n equipo, sirve ent re otras cosas p.Uil pa sar el csta tus de
con trolador a otro dispositivo. También pu ede hacer un sondeo en pa ralelo.

G~B Status ~
address strlflQ
error ..,

M uestra elestado del co nt rolado r. Cada u no dr-l¡», l ó bits tiene un s ignificado quo'
puede consulta rse en la ayuda.

tmeout rns(468 , l ~) ~

-
adci"ess st,.....
'>tate vector
.w status
et,or <U
ffl • •

145
LAbV IEW

fspt' r'l il q ue e l dispositivo in dicad o raS(' a un c ierto es tado. El estado S4.' ind ica con
1.1 mismd codifica ció n q Ut' l'n el VI an terior.

GPlB M"" ~
t~ st'no ~ oo.(po.( st'no
"'''JI '' status
"" -~
Ejecuta u n comand o d e b.1jU nivel so b re un a dirección (l.1 direc ci ón y el coma nd o se
ind ican en el m is m o s trifl,i;). SI, d ebe cons ulta r la a yu d a p.:¡ra sa ber e l m nem ónico dol
comando. Entre otras I·ClS.1S p uede ejec u ta r loo; m ensajes 'l Ulo' envían fun ciones d el
interfaz dv IEEE .J~ . 1 (por t'wmpln GEl , PI'C, ctc.).
CI >l1 1~l bV I F W suele h aber 11 11 fallo rec urren te cua n do ~. prn¡;rilma p<.lT prinwr.l \' 1' / , 1°1
p robh-m.i os con 1,1 in ll 'rp rl 't,K ión d I' 1.1 c oma dI' los decirnalc-s. La C,l USo1 1'S un P....lu' ·nn
d. '1.1111' : el ld lorna es pa ñol us..l corno ca rácte r d e Sl'pilrill'Íón d I' decima les la co ma . , lJ ten
Window '!io XI' PUI-dl' verse en /'.IIJt'1 .i., Ctm u ul > G mfjg u r"ciófl rt'¡;iOnOlI r a.,
j.nom.1 >
"(·rS(lf!<l1i7.1f), mientras qUI' en inKl1k usan un punto .,)J. U~ equipos se Kui.1I1 p<.lr 1,1
no rma ingll"S.l . Pa rd SOI UC l.lIl.ull~ h.1Y tres Ilpci0111'S, u na l"!' 1,',1m bia rlo e n la r on ñgu raci ón
J t·1 id iu ma, otra es sustit uir tudas 1.1S comas por p un tos en 11'" s trinj,'s an tes d e 1'I1\'i,lTll'"
J I instrumen to n al lee rlos, y otra e, co n fi gu ra r 1..1bVIE\V pa ra que no 1,1.<;(' d Sl' p.lT<ldo r
d .' d . 'dn1ol 11'S regional ( Te l(,} > o¡: ,tion.~ > Fn mt /',1/1('/ > u.'>t' h l(·,J1iZI'C.1 dl'c:in", / 1'1 ,ill t).

Un ('¡¡·mpl., sencillo del uso de csn», Vis es el q lll'~' muestra en la figu ra h- 12, don de
....' unvfa un comand oa u n d ispllSili\,(l }', en C.1St.l q ue h.IY.1 una res pues ta, '>t' It"l, .

..

~:L-- i - - ...._-1::::::~~F~..
flQUld ~ l] E'>CmUfa y ject Uf iI con GI'IB

6 .5.1 VISA
Ad e m,i s dt· I,]S fu nciones l'Spt'Cíficils de C rlB, ta m bién "l' p UI...íen em p loar 1.10; fundo-
ne-, VISA p.lTa eccedor ,1 l'Sto S dis ptlSiti\'tlS. Co m o "l' 1·.. men t ó en el capitulo artn-tior,
VISA 1'S u n A PI d e <lit.. nive! q ue pr oporc¡ o na u na f..rma l'S t,ín.i a r d .. com unicación
..ob re d in' r..ns meca nismos . como puedan ser R'i-2.12. e l 'lB I' Xl o \' XI,

146
Bus de co mu n ica cio nes GPI B

Al usar las funciones VISA a trav sé de un in terfaz GP IB se ind ica rá la d troccíón d el


eq u ipo de la forma G PIB\tarjl'la l::[d in'l'ción p rima rialh.direccion sec u nd aria 1[::IN STR ].
En l.l fig ura 6-13 SI' m uestra un programa equivalente di d e la figura 6- 12 pe ro t'n esta
ocasi ón ufilize nd o VISA, com o dlrec cl ón se ha usado sim plemente «G l'iB::lI»), donde
10 tOS la direcci ón delequipo.

fiiilloo.nt (500)1
~
flgw <l 6- r3. tscuwa y leaur <l con VlSA e<.jUlV<llerll e a l.:I fJgLJfd 6- 12

[ A1S her ramien tas de depu raci ón como N f-Spy, es rud tada en el ca p ít u lo an terior, p ue-
den utilizarse ta nto co n VISA co mo con las funciones t~pt'CÍfica~ GI'lB. Adem ás tarn-
bién p lll'dt' utilizarse- Mt" I.~u r{'mt'nt & Au tonl.l tion Exptorer (M A X) para configurar 1.1
ta rjt't;l cnn trolnd ora C PIB del ordenador o descub rir los dispos itivos conectados a ella .
Una nueva herra mien ta di sponible para las fu nciones tit' Cl'iB es Gl'lB A n,J1y7t'r, que
permite mon ito riza r, ca pturar e insertar co mu nicaciones en el bu s sie mp re qu e la ta rje-
ta co ntroladora d e l ord.. n ador lo permita.

6.5.2 Drivers
Muchos instrumen tos tiem-n d rivers 'l IlC p ueden baja rse d esd e la wob d e Na tional
lnstmments t I desdo la web d el fabri cante. Son Vis que se han creado u sando los
co mand os ser!. El modelo d e programa ción con drivers añade una ca pa extra d e abs-
tracción. los d rtv ors normalmen te tienen la m isma estruc tura :

• Inidallzadorusu fu nció n principal es config ura r la comunicación.


• Configu ración: p n' pa ral1 al equipo p.lr.l \JI101 terca .
• Acci ón/ estado: inic ializan n terminan las tareas.
• Datos: tra nsfie ren datos ent re e l ordenador y ('1eq u ipo.
• Cierre: cierra 1" conexión.
Los drivers suelen usar las funcion es VISA en lugar de lils C l' m pa ra ser Ind opondicn-
les del medio de co rnumcecion .

!....lbVIEW incluye por defecto un dri ver pa ra el muftirnctro H P3440l A. En d h.1Y sub-
paletas q Ul' sirven p<lTa con tro lar d istintos aspecto- dd rnult imctro, para leer medida s
y ot ras u lilidalit,s como resct. ou totes t. etc. En la figu ra ó- 15 se puede ver co mo e ¡t.l
palet, sigueel modele de ins trumento mostrad o antl~. En el cap ítulo anterior tamb ién

147
LabVlEW

~. CHm..-nt ó 'lUI' existe un .1sisll'l1I..' 1'11 Fill' > [\:t"w.•• :> 1'n~ > ln..trum..nt Vril't'r
1"111;",,,,, II ldmbit'n en TI",.I.. > In..rn uJlt.'I1 t.t rion > Cn·Jt.'ln..trumt'1lt Drin', rn~..'" p.ara
dV\IlIM d c rea r dnvers.

Eum p" , [ Ap pUc lltion p r o gr. mJ

6 ln lltru m. nI Orl..r API


EJ
'lis 8lII'" VIs

[ Su pp or1 VII
I ~ SA

C omo n.,lV....t.td. LabVIEW s... d L"P''"'" de una berra rmenta t'l1 T..""I.. > ln<ltnlm."t,Jhclf1
> FinJ In..trurnt"t Dnveiv p.¡rd IdCi ht.1r la 1ol-dliJ"AlCión t ' imow1.lciún de k'P.> d rrvers dI'
11 ... uu ..trunu-ntos co nectados di u rd. 'I1d.dur. Para 1'110 el d" i..tent érealiza un e-sca twr p.¡rd
dt'lt'("la r l.... t"'l UJp'~ cont"l.1.ld u!!., ruando el u sua rio setecoooc uno d pnlJ'rdffid ".'
('{lfIt'l.·t,H,i .l Id web d.., Ndliun.l i lns lrum.'Ilb (Il."qu i. 'n ' n~i"lm), moslrdrá Id.. d i..linw.,.
\ t'f'oll >n.....lt, k e, drivers que ¡..It," p.¡rd .......: t"t:Juip" y 11... in...ldldrá au Inm.'iIK.1nlt'ntl' .
Fn n'r..i,,",-,,, dn lerion.... el pnlt't ' "'1'.1 b.l jdr un fichen' com p rimido de Id Wti! del Iabrr -
( dnl.. \1 tlt......ompnmrrlo en 1,1dlfl.'ctorio ¡n ..tr.lib_

6 .6 Ejem plos
6 .6.1 Ejemplo 1: Escáner d el bus
6.6. 1.' Explicación teórica
E..'" p rimer ejemplo St'r.i un SI.'IKiIlo p rtl¡;r,l m.l 'l UI' t....:.IrlI-c' 1(1.. d is pos it inlS del bus
pM.1 pt'tIlrlt"!!' 'lut' SI" id en tiñq uen . E..lt' p rtlg r.l m.l U"'l ,,1 ror na nd .. ·ION? 'lUt' ...: \·¡ti en
1.\ ....ve¡...n ....>t>n.' ~_2. ~, en '.H.l tl"olnd o p rimero l,l!!> fu ndt'lw.. t"!!'pt'Cific,l" de G I'IB Y
d l"' p u t~ 1.1S tuncíores VISA.

14.
Bus de c:omunlc:aclones GPIS

6.6.' .2 Código
El programa simplemente es un bucle q ue rec orre todas las direc ciones posibles en el
bus. Para cada una env ía un co mand o · IDN? y t'Spt'ra u na res puesta . Las resp uestas las
almacena en u n ar-r.1Y q uese muestra a l fina lizar el prog ra m,l .

(.l

.,
Frgura6·16 Es.cánerdelbusGPI!3

Al no indica r o tro va lo r en las fu nciones d e l eer y cscr tbt r de GI'IB, se usa por defec to
el mod o O. Para mostrar en el ,¡rray que cont iene el resultado ún ica me nte los equipos
conectado!>, !>t' US<l I,l fu nción tnscn fnto Array dentrodel subd íagrarno lid CASE que
-;1,.' ejecu ta cuando se recibe una respuesta .

6 .6. 1.3 Resultado


Este VI no requiere co nflg uradón. soto hay que l'il'cularlo . ¡\ la hora de p robarlo St' ha
conecta do un oscilosco pio Tektronix con la dirección 2, una fuen te d e alimen tación
Kl'P":O con la dirección n, un generador d e fu ncio nes Ag ilt'n t en la d irec ción 10, u n
ga uss- rneter en la dirección 15 y un source meter en 1,1 24 . El resultado se muestra en la
figu ra 6-17.

(49
L.1bVIEW

6 .6.2 Ejemplo 11: Osciloscopio Tektronlx TDS21 O


6.6.2. ' ExpIlcad6n teórica
En !.'sl., t'll'mplu M' d esea tener d isptm ip les las fu ncionelicl.nh-s b,lsic.l s d e un osdlosco-
p¡o dt'Sti.' d ordenador. b it, lit-mplo ''S un proyecto n'l,ll i vamente co m plejo, por 1" qu.,
s(' d ividir,i n 1,1'> principal.... funcionalidades en va rios sut>Vls; e n la figur,l h-IR st' puede

ver 1.1 j.'r,J rtlui., del rrt~ramd , t'l VI la ) st' encarga de cnn li¡:;u rar Id base d e tn-m po, (p)
nm li~ ur.l ol cana l vertical. (d pi .!.· la g rá fica a l equipo, (d) procesa esa g rMk,J par.l
mos tra rla en el Panel Fron tal <id VI Y{el r onñgu ra 1'1disparo.

[a] lb) ('1 I~ (-)

En l'1 r rogril ma principal h" y 'lUl' decid ir cua ndo St' .1,,1".'1\ t ' !l VI,U los co ma n dos d .' con-
fi);U r.lciún y cuando stO debe pedir I,l gráfica. La n ll1fL~ l lr,K iún debe hacerse cua nd o
( ,1mbie ,JIgún par ámetro . Sin ('m b'lI);O Id lectu ra . tt' 1,\ t,>rrTI,\ d." .nd,\ debe rea lil a rst' dt,
furma penódica. por In "l Ut' o;¡' r,i nccesano cri-ar d " s hilo-, ( Ih n '" ,r",¡ indt"¡">t' ndi.'nl.'S y
p.u.ll.'[n<;, uno para 1.\ Ctlllfi);u r,lCión ~. ot ro p,Jr,J 1.\ It,,·lu r,l.

150
Bus de comunicaciones GPIB

6.6.2.2 Código
(i.6.2.2. / Con fi¡;llrad óll verticst
Este VI se encarga d e con figurar el ca nal d el osc iloscopio co n los pa ráme tros escal.
(VI,ltios / d ivisió n], p o,'iition (offset) y aco pla m ien to . A l int rod ucir va lores en 1,1 esca la se
del.. . en tenor e n cuen ta las restricciones q ue p r esen ta el eq u ipo. Pa ra es te co nviene ron-
suna r d manua l, en l'Stl' caso serian todos los v alo res q UL' em p iezan po r 1, 2 Y5 en cad a
d écada, desde l ü m V hasta 100 V (1 0 m V, 2t1 mV, SO mV, l (K) mV, ... 20 V, 50 V Y IOtI V).

Los co ma nd os qu e se en v ía n son:
SE LECT : CHl ON ; Acti va e l canal númer o uno .
CH1: SCALE l. OOOO OO E +O ; A jus ta la gana ncia del ca na l a u n voltio.
CH1 :POS O ; Ajus ta la posició n ve rtical del canal.
CHl : COUP AC Selecciona el acoplam iento AC.

Este VI tiene m uchos controles, po r lo q ut" se ha n ag ru pad o on un dl/s lt'r. En l'St,l oca-
sió n se ha optado por constru ir los coma ndos a baso de tra nsformaciones n ú mer o "
tex to Jo' concatenacio nes d e s trillg s. El valor en tre p ar éntesis q ue a p,l l"("ll:' junto .,1 norn -
DI"(' d o cada pará metro C'S su va lo r por d efect o, q lll" se " p lk.uá cua ndo SI' u se como
su bVI y 1111 'it.' conecte na da. Dt'S PU l's dl' constru ir los co mand os en un string SI' ha hubi-
litado un cód igo pa r" su stitui r las comas po r p u ntos pa ra ('1caso qUl' e l s istema (J~lt:'ra­
tívo y L,DV IEW no estén conñgu rados adecuada me nte, finalmente SI' erwia el co man-
Jo ,,1 equ ipo.

['1 código pued e ve rse en 1,1 fig ura 6-19.

he.. .

FtgUf ~ 6-19 . (onfigu'<1DÓn del C<1n¿¡1 oe un osc ilOSCOPIO

151
LabVIEW

0.0.2.2.2 Cill1 {i~ l lr.ldóll hori/ontat


Este VI (f i ~u r,) t>-21l) se encarga d e co n figu ra rla base de tiem pos (H O I{) en c ua nto a s u
escara (SCA ) y (JUsI.'! (pOS ). l.os coman dos ser] s on :
HOR : SCA l E.. O; Ajusta los st~u nJ ()s por d ivisió n .
HOR : T Rl G : POS 5 O Ajus ta el origen en % .

Com o v.ui.\ciúll respecto ,)1 anterior, es ta vez los co ma ndos se ccnstnnran u sando
l~ lfI l1.J t 111/" Stfing en l u ~.u J •. con versiones y concatena ciones N,l lioll.l] lnstru-
rr n-n t-, n-com¡..nd a este métod o.

,TRJ<i:POS "4d

•• . , or Cl.t

6.6.2.2.3 ( '( mti~lIr'lCíó" d..1 tnm;.'r


El tercero delo-, V i s de con tigu r'lciún es ol q u" cont rola ..r lriggt'r; en lO] M' M'I.'Ccinn,ufi
el tipo de acoplamiento, niv el y 'lri~.'n .
T RI G: MA I N: EDG E: COUP AC:
TR I G: MA I : LEVEL O;
TRIG : MAI :EDGE : S OUR CE c m

El npo d I' ,l(opl,l lll i,'n to d e] l ri g~t' r y s u o rigl'n st· st'1<'t.T illllol ll a tra vés .1" li~ t,ls desple-
gdblt'S .t.' tipo rJllg q ue asocian un numero a c,ld a opci ón : pMa seleccionar el stríng ade-
cuad o COIl e-l qut' constru ir el comando ha y va ria s o pdtlll..... 1.1S tres m,'i s habituales son:
• 5f.'11't.·t si h.1Y sólo d os opdn/ll'" l' CASE si h.1Y mil<; de J os cornoen 1.1 figura 6-1Q.
• Un .lrr,IY y Id función l" d .'). Arr.'y co mo en Id fi~ uril 1'>-21-
• Un .<; / rill,l{ ron una opción por linea y la fu nción f'ido. Une.

f>.0.2.2A I .·.. tllr.l JI' /i! ti" IlM .11' PII.I"


En ' '''101 porte M' rá nec esario ntl sú lo esc n b ír, sino 1.1mh i.;n leer. Lo qu,' M' I""rá <;t'rá la
forma d e o nd.1 q ut' a parece eu 1.1 r,lOtdlla d el oscilo.....-opio. Para e llo ,m I, -s hJ Y q Ul.'
enviar ctcrtos comandos en una secuencia q ue viem- lk ·s<:rit.1 en 1'1 man ual de usuario
d el oscilosco pio:

DATA : SOURC E CH1; Ca na l Sd l'("cillll.l,l"


DATA : EN C ASC I I; Fo rm.\tt , d e' r ndificación (1'11 .",1., ca-o ASC II)

152
Bus de comunicaciones GPIB

---- "

TRIG.:MAI:Lf:VEl %e;
TRIG:MAI:EDGE:SCl'J(CE "4s

E l Hl
-e
xr
,,'
'"
[ta
"'
CH O
[
'------
FKJur<J 6-21 , Conflguraoón dei lrigger de un osoosccoo

DATA : WIDTH 1 ; N úmero d e by tes por pu nto e n 1<1 tra ns ferencia


DATA: STAR T 1 ; Punto de inicio de 1.;1 tran sferencia
DATA: STOP 2 5 00 Último punto p ilril trans feri r (m á x . 10.(00 )

LX."'PUl' S del comand o CU RVE? se recibiré 1.1 forma de o n d a. É.o; ta viene en fo rma d e u n
.~ triIJX
de n úmeros den tro d el ra n~o - 12H a 127 (pa ra ta ma ño I byte ) separados por
co mas, un ejem plo l'S « -1 00 , 50, 12 O, - 2 , O, 1». En la fu nción GPIB Re.ld d te rminal
bytt' cOl/nt tendrá ",1 va lor d e l n úmero de p u ntosa tra nsferir por cinco, y.1 que cinco es
el máx im o n úmero d e bytl'S d e un p un to d e la p anta lla (uno d el sig no, h as ta tJ'('S d el
nú m ero y uno por la co ma) , El cód igo se m uestra e n la figura 6-22. U na m ejo ra de es te
pmgrama sería hace r u na tran sferen cia bina ria .

Los da tos quelh-ga n pueden SI,' r tra nsformad os a u n Jrfil}' d o núm eros co n 5prl'o1ds/ll"t't
Strin): To A rray Pa ra con vertir los p un tos ,1 tensi ón simp lemen te se aplica qu e el pu n to
de m.lyor va lor (127) corresponde a la má xima tensión qu e se puede mostrar en pa n ta-
lla, la cu al so n los voltios por d ivi sión po r el número d e divisiones (4), consid erando el
centro corno cero pilra ambos C.1S0S, El VI pa ra hacer es ta tra nsfo rmación el> el d e 1.1
figu ra 6-2:'1 .

6.6.2.25 f'mbr.lm.l principal


En el pmg r.l m.l de la figu ra 6-24 se p ueden ver IIIS (los hi los d t' e jecución independicn-
11",. Elbucle d e co nfigurac i ón só lo con tiene un EVENT que ha ce qm' 1.1 ejec ución :>1, 1(\
ocurra cua ndo ca mb ia al gún par ámetro: el bucle de 1.1 pa rte inferior el> el de la lect u ra
d e 1.1 forma d e onda, po1Ta 1'110 so usa u na estructura TIMF D 1.001' q ue 1>1' ejecute a
inte-rvalos lijl),; d e tiemp o (1 s). El con trol stop ..", un booleano cUy.1 Afcchm Í('¡¡/ Actitlll
es S w itch Wht'/l Rdl'a,<;('{f (n o os d e tip o L ltchl"tl pt1rque lit' esta form a no acepta va r ía-
blcs loc ales] ptlT lo qll l ' necesita inicializarse.

153
Ui b VlEW

TA ;5Ol.Il Cf.

TAEN( A5Cll ;
TA,\II1DTH 1;
TA:Sf .I lIH 1;
TA :ST~

1<"'...... . !'!.,I c~. w.... ... ......,¡"

Fq..u 6-13 Tr~ I.J rMPIIl"it.l dl'l cecosccoo a un ~r.., oe nt..-rros

I'd r., qu.· 1.. ¡o;r.íticd ...... i~udl q~' 1.. p.utld l1.J. d d O'<II.>,<upiu se escala !oU l....· H'rlw;al
con t-i '\'tl lti~ /di\' l'ft e 1 buc le ..opcnor. en el bucle mfenor se construye un dollu d ..
t1r'" " ~'n 'f(trm ron un ~ri"d" e-rnn- muest ree, (.1' ) i~u .. l a los. ~und u!o por d l\'b,ión
J .' l.' ......-ala J t' ncrnpo f't'r I.h W div ....un...,. horiJ'onl.ll.... ..n tre It..... 10-1..10 p unt,... qut'
... n -ciben.

El ulnmo ddalw d el p~r.lm,) t.'nJrá un.t J tlblt' uhlid .ld : t~t"tica y fUnt:ltKtdl. 1..1;"' 1'"110-
ln.l.... P.Ho1 .1I U~ldr !.l ba-e d e Ik'nlr"l'o Y el c..na l ( \ '/ J n y "",..:/ dú·) serán J t·tipt.l k "" Jb,
r.1l't't:'iti(JS '} lu~ controles qUt' ht"flt· el t....:ilu!'ocupio. A.lt·m.h. dCCl"tlit>f\ttu ól .. ue- rn'ria'l.:I,)-
tlt.... como mue-,tra 1,) fi~ur,) t>-2". ...• pu...it·n n-.. trin",n r ..u .. valore ,) un" h..t" CUI'lllt-j,t.1
d I' m.1O,·r,) '1Ut' el usuario 'lu,' m.mt,.· .'1 rn~r.lm.1 "" lll p ut'tid in -rta r cwrt .... \·.110n....

6.6.2.3 R~1tado
El I'.mt'l h llnl ,ll resultante ...• nHI>"'l r,l ,'1\ 1.1 fi~u r,l t>- 2h.

Un.1 \'l'" ..-r.·.ld o e-l p rug r.mhl .... p ued en !o.lúlr .l1":;W1.1.. "","d u..tones: on p riml'r IUg.H ....
nol 1I1\1.. lr.l.l o u n eje mplo n· l,ll iv.lIlw nl l· <'tllllp1li ll ' lulomcluveLt 1 ''': l u r.I~' ......-n lu r.l r.U.1
m.m ., .u un ín strume n to .1 Ir.I\"':", J •• Gl'lB, Ao.'m.-;.. ...' O1u....tr.t n \' ,Hitl'o d t'tolllt'" <¡Ut'
dd....·n tener...•en cuen ta cua nd o ....· U'>oI t'!i lt' bus. pt lr t·",·nll'lt,. 1.1 ....'n..truccion Jl' coman-
d ll'o_ In.. f,\n ~\l'o d e d an..... " j htl. l'o_ l.l~ tr,' n..form.Kil,n..... d.- ~ 1",,~.1 n urtwn... v v¡..,·q·r;.,.
154
Bus de comunluclones GPIB

FKjlJl<l6-14 f'foqrJm.! flrt<ll paa controlar un oscosccoo

-,-
0 __

-.- -- •• I -- I
,
• -,-- I I
-= - 1 --
r I
,"
-- Ci-:::L:J C ----;-:J

- ...- --.
,- I I I I
- l:'

.. •

las secuencia s dl' mstrucci" rll"s en un urd en r n , 'St.lb¡"cidll, d e. También cobe menc ío-
nar d estilo d l' tos VI s: documentados y p udi én dose encadenar ,1 lr.w{... de error in y
error out.

155
LabVIEW

FrqurJ 6-16 Palll:'l FrOfllal o:WI rewneoc

l'or olr,l P,Ht\· SI' han visto olros conceptos en UI1<1 aplicación p rectíca , COIllO 1.1 progre-
m.Kiú n mnluhilu, Id estructu ra TIMEO LCX)]' v EVENT, va riables locales , d e.

6.6.3 Ejemplo 111: Uso de VI Express,


Instrument l/O AssJstant
6.6,3, ' Expllcad6n teóoca
Lo s Vis Expn-ss fueron ana d idos en 1" versión 7 de L.1PVI E\V. Fuer on en',ld o" p,H.l faci-
lita r 1.1 (f\',ll' iún de tan-as h,lb itu,l ll''', estos VI" SI' n une colección de V¡" "normales"
agru p.ldos ti,· forma qm' ofrecen un,l ~rd n func ionalidad y p ueden conñgu ra rse fácil-
men te.

6,6,3.2 Proca:!lmlento
En p rin u-r I llg,H ~' debe colocar IIl~Ir¡m1t'lJt l /O A~,~ ¡~ I,lt1t en elDiagrama de Bloques.
a utoma nc .nnen tc .lp.1rt't:l' rá. u n ,ls i"ll' l1 ll' en el qUt' M' pod rá elegir, entre orra-, e " SoI S, el
instrumen to qU t' se desea controla r. La di rec ción St' \><;p•-c ificar á con l'l mismo forma to
que 1,IS ~~ion.><; VISA.

Con r-l p.,.1':1Il Ad d ~tep "'" p odrán a ñadir nuevas fUTlci" Il\><; ,11 instrumento. l><;las fu ncio-
nes st' l'w("uta rán en el o rden en qU\' "'" muestran vn 1,1 1'.Hle izquierda .kl VI (d e a rri-
ba hacia ,1P'ljn¡. En cad a P,lS'" se p ueden envia r v.lrio~ comandos ,1 1 instrumen to, por
ejcrn p lo cu 1,\ fig ura 6-2/'1 St' h- pide UI1,1 iden tificar-ión ( . dn?} \' .... . ><; pt 'r,l 1.\ n -s puesta.
í

156
Bu s de comunicaciones GPIB

_+_ _..

_.-
..
n' ,- '+
"

""'_... _. ,.,.•.'-, I
,._ •

._........_-_
. _ , ...,. t ·~
'; ,;.;..-;.;';;;:;;T -" _ o
~ ,!" ~ !t

--
,._ "
.._-
~-- ~
_'_'M" . . .....-
-_
._---
._O .
.." . _._.M···
~
..
_.-
.....,
_o.

-
_M_.'._.
~,,"- ~

.__ .,,--.
- ~--
... . _ 0 <

_ .•
M ". ~ ~ " ~

~ -"' .. _-....
,.. _--_
-~ ~ . ­ ­

__ -
------
__
,--_
----- -......- .'---
_....-.-.-
---~--- ...._-
.. _-... ..- .. .-
-----
.. _-,,",
.. __
._ - - ~

- ._.- ..... . ,._""

I~_~==J
_ ~ ~

. _
,~_

__'M·
• • o.

. , ::"'"':::.:.':'7' ..
IT]I .-I

FtgUlil 6-27 Configur,mcJo mstrumeru110 M IS!i1nt I

__ o

...- .....- ...
+~J
• ---
.-
_.-. ... -
_ _
.'
_ o
~

'. ..-.-"'"
_
_
--- ~
-.,-_
- .-...
" - ~ ._

•..
...---
.H'"..•

--
------_._...
..........
.-,

---
-.--_
_. ~- -
--..

_...............,.-....--
._- ,~
.... .. . .. --

--_
-- ....
-.-.......
- ~-.
_ ••• _ o••~••
I
'~~~~~-
, - - ~~
F'9urd 6-28. Conflgur,mdo nrs trument 1/0 AsSMJ Jlt 11

En c! l'jemplo de 1.'1 ligura 6--2',1 St ' en via rá n diversos co m andos :

• Stl'P Wri t,~

OATA: SQURCE CH1 ; Pa ra sell'CcitHl.l r 1.1 e1cana l 1-


DATA, ENCDG AS CII Codlñcactón ASCII.

157
Lab VIEW

DATA : WI DTII 1; Ancho de d atos 1 byte ,


DATA: START 1; Primer p unto a capturar.
DATA : STOP 9 ; Últim o pu n to a ca ptu ra r.

• l kll'ry end l',m~.~

WFM PRE ? ; Devuelve la con figu ració n del cana l.


CURV E? ; Devuelve Id forma de on da .

En ]\1" d ns tiltimus parámetros Sl.' devuelven d atos , por lo que hay q ue a nalizarlos y
d i\' id ir lns (bot ón A uto pdrse). Como carácte r d e sepa rac i ón Sl' elegirá sólo 1'1 pu n to y
com a [campo Separ.llv r(s) , Tamb ién lOS recomen da ble da r u n no mb re a lO!> l(lH ('n (par-
h 'S en <l ue Sl.' divid e 1... sa lid a d e .1CUI., rd O co n 1a separaci ón qUl' ha hecho el <l UIIl/ '.l rse)
y Sf,']l'Cd o n<H como ~l l id .l slÍlo .l q ud los q ue realmente sean útttes (ve r colum na d e Id
izq uu-rda].

-
~-
+ ... ...
-
.

_.-.--
_
,......=-
_. -..... -
-- -
- ....1_ - 1
.....,'"''" 'J¡-:--~ ' " ' _., ~." -- --
"". _•• ._
--,
-- .. ..
,,.- .
...
.........-_ ~

----
,~ .,

0 ~ _. -._ -

....oo.-.....
,
---_- .-
_. ---- -"-
---_."_.
...
....,'---
_ ._~

; ,-

" ....
,.
...... - -1
I , -1 -1 , -1 , -2 -
1 , - 1 , - 1 , -1 , 0
, ,. . ......--
+...- -" •
... . ...
" '-
......_.... -...
...-
• •

----
---- .......-
_-~_

.~ - , ~_ . -

._.-
-- •
~, _. _-

0- ... _ -

FlgllI"a b-29 Con~quranao InSlfUffil"t'l l va MsIStanl 111


Una \'1'1. con figu radocorno SI' d esea, In.. ca mbios SIc' rdll' ja r,ín l'n el icono puesto en el
Diag rMna d l' Bloq ue.... Sólo res ta cabloa rlo co mxta men to y t"jt'Cu ta rlu .

Adem ás, p l'l....iona nd o r o n el b otón derecho sobn ' {'I tnstn nrumt l/ O A.~~i~t,mt y solee -
cion.mdo 0/""11 Frolll I'.lflt'/ se cOnv I\'rtl' ,1 ród i¡;, 1e J.isin . de I.ab VIEW,

158
Bus d e c:omunlc:aclones GPI B

""''''''''''
A~_1If"1tiJO

..
" "'" 0lJ.

,"", .

"
~ff lJf
() '
...
.
6.6.4 Ejemplo IV: Generador HP 33120A usando un driver
Al usar lo.. Vis d e un dri ver 5l' d ebe tene r e n cuenta q ue interna mente no se u sa r án los
Vis d e CPIB, sinll los lil' VISA, p Of lo q ue la direc ci ón no Sl' l~ f'l>ci fka r.i con u n strin~
sino r on un In...tn/m.'nt Rt'so u/'Cf' Neme.

En el s i¡;uil'n tl' lil'm plo Sl' co ntro lará un generador con 1.1 direcci ón c r lB Ill. En pnmcr
luga r se J;t'nl' rolr.i u n.1 Sl'fl.ll scnoidal de 2 kf-lz Y 2 Vp, .1 cnntin u,ldón St' mostra rá u n
mensaje en 1.1 pantalla del gl'nl' r.1d o r y fin alm ..nl.. st' gl' nl' r.u .i un sonido.

6.7 Ejercicios
l . Buscar y t'SludiJr t'jt'mplus ljUl' usen G I'IB en la web de Nononal Inst ru ments. Abri r
lo<; VIo; del l'j.'mplo IV y t'~lu d i,lr romo se usa n 1,1<; fu n('Íonl'S VISA.

2. Reescribir el t'jl' mpl o [[ usa ndolas funciones VISA.

3. AI'J.1dir tundonalidadcs n uevas al osciloscopio, por l'jl'Tll pl n, hacer qU E' ",1 usuario
pueda l'1\'gir entre mos tra r una gráfica lim...d o lo g,¡ritm ic.1, hace r 1.1 tra nsformada d e
Fourier a la entrada y ap licarle un filtro d ig ital .

4. Cn'.H un s islt'm.l de in stru mentación q Ut' inc!u ya u n gl·nt·r.ldo r .1e señales y un oscí-
joscopio. Ap lica r a u n circuito RC montad o en u na placa board UM S<"iiiII sinusoidal
con el generador y adquirir 1.1 tensión l'n tn.· I".. ext re m os d l' u no delos componen-
tes con e l OSCiloscopio (ad'lu iri r sólo un valor, no hace {,lila luda 1J ¡¡;ráfica ), p<:lr
ejem plo sd l>cclun.lT cu rno medida 1 el valor RMS del cana l d ond e se hace la medt-

159
LabVIEW

d a. Ha cer '1Ul' d generado r Crt't.' u n barrido d ~' frec uencias y P,H,l cad a n ueva trc-
<' uI'ncia adquir ir ~'l \',l lor RMS. Cu,ud.lr los res ultad os e n u n ñchoro.

6 .8 Bibliografía
i\n ton¡ Man ue l l..'iz.HI l y [oa q U i n del Río, L lb VI ElV 7.1, Pn: Wr.IIlI,ld tln GrMic,1f'''',1 t'I
Cm ltro l d., In..trlllllt'llt,lóón, l'aronmfo, 2005.

I Iew h'tt l' ackard . Tlltllri,1 /1J1.~.,ipfi"n ot fh.. H O'wl..tt-P.K /..ard l m ..rI,ICl' 8 11S, 19'N.

J( '~; Pt'leg rí y JOSt; Fra ncisco Toledo, lns tru m ..n tación .il' m edide t'rr . . is tem,l.~ ,n ".lIlZ.l-
d us, Servicio d e p ubljcacioncs, Unive rsidad l'o li !~'<:nica de V'llt'ncia, 200 1.

Kam ran Sha h. AN I-UJ: Usi n~ l v í Drivers in LlbVfEIV, Na nonallnst rumcnrs . ]9'N.

Se f' ] Consortium. Sf.mdard Com m.m d s íor I'ro~;r,ml mil ble In...frum.'n ls (5<..-1'1). ':N,
1'1'1'/.

The lnstitutc uf Elect rlcal and Electronics Engmeers, lnc, A N SI/IEEE S td 488. ¡-1<JH7:
IEEE Sr.1IJII.lItl Vi,;i filJln t{'rf.Kt· tor Pro,;r,l mm,lbJ., ln.sfm m,·nt,ltiolJ, ANS I/ IEEE,
l'Jxg.

160
Capítulo 7

Adquisición de datos

7. 1 Introducción
í n .....n-ca pit u lo ~ tr,lI.uá uno d e los p rirKi p.lll'S u",»; q ue se le d a .1 IAl bVIf:W : 1.1ad q u i-
-rcion y ~l'l\t'rilci{ln de Sl;' ñ all~ l'1\'(;lrk,l s.1 tr,H'lOS d e tarjetas d e adquisición de daros.

H.1Y vanos tipos li t' sisterna-, de adq uisidón do da tos . Los V ,Ha ú l};~t'rs !'oon sistemas
~ u " " 1>\,1,111 lil' forma ind e pendien te (.st.md ·,l/ond , 1,1 ún ica fun ción lit'[ urdcnador lOS e l
. "k,ld .l dl' I" s d atos adq uiridos, Las IMit'l'll> DAQ ( D.lt.l A C'¡lI i.sition) no ofx 'rim de
torma indl'pt.· nllielltl' sino q ue nec esita n un urdenadnr para gobt·m.ul,ls, las ha y inter-
na-, '¡Ut' u...m como inte rfaces más h.l hlhJ.1 \l'S re J, r X¡ o Pel Exp res s y ,'Jlh'm .1S co rno
~ " H11 R..'>-212.
1..I"" '.l P.Kid dd l'S comunes que sud m 1" !lN l.,s D AQ son:
• Ad q u is ición de señales anal~icas.
• Gt·n l"f.lCiún d e !'ot'ñaltos dnal~ icd ".
• C'ol'flt' r,tción y ddquisición de St"lialt'S d i~itolll"'.
• Coe tad o res y nmers.
• TriAAt'rs (p n--t riAAe r y post-lriAAcr).
• Aulo("ali bradón , St'flson.~.l"Ic.

FI D;.l~ram .l lil' B1t1l1Ul~ típico de una DAQ StO muestra en la fi~ur.l 7-1.

7.2 Adqu isición de señales analógicas


No hay qUl' o h·iLi,n que la e n tra da de Sdl,lll'S ,ln.l l ó~ic.1 S ('S sólo una parte de tod a.. Id"
q Ut· lil'ne una DAQ; eso sí, es 1'1 bloq ue m,ís Im portante y po r tan to so l'Sludi.u.í más
dr-tcnidartu-n te. Su es truct u ra ha bitual St' muestra en ],\ fi~ u ra 7-2, en t'JI,\ se puede ver
que tod os los canales de entrada st' m ullipll'x,m, t,-;Ia es la clInfigurilcit'ln m ás habit ual,
1\0 obsta ntc 1,\mbién pueden e ncon lrol rso.' l,lrit'l,l" C\ 10 los ca na les sin m u11iplexa r; lo cu al
eleva notobk-mentc sus prestaciones y precio: el sig u it'n le bloquees u n amplificado r de
~a n,J nd d programable q ut' se USol p.:ara adecua r d nivel de la señal a l con vertido r con 1"]
iin dr- a provechar todo s u rango. los s i¡;u il'n tl'S bloqoes son u n ñnro an tial iasin¡;, u n cír-

161
LabVlEW

cuito JI' m ues treo y retcncíon (Sil ) y un convertid o r a na ló~icu .1 J i~i tal (A / D); fi nal -
men telas m ues tra s adq uirid as SI' almacenan en una memoria r IfO dentro d I' l.' propi a
tarjeta.

,......
analógica
Tarjeta (Se
8dq1,1isiciÓll (le
.(?
eet~

.....
~"""" R__ ,

J Entrada/salida
~"'" """"" ""'
lnlerflll 2
digital

Con~
~. ,'

V
Flgu1<l 7-1 ESQl.Il"ITl<l de occces de una tdljt1<l de ddQl,n lCJón de caros

Multiplexor Al FIFO

Figura 7·2 Esquema roco oe uo cew oe enrrsoa i1l1illóglCO

7.2.1 Conftguradones de terminales


• Laad quisición d I' 1.1 St'ñ.1l pm'ltl' SI' r ..Hfl;'ll;"nd.11, referencloda a un p u nto tJ no n>fe-
n.·nri"da .
• En 1.1 medida dih'n 'nd al (DIFF) St.' tend rá vn 1'III'n l.\ 1.1 d .fl'nond a de !l'n Sítlfl entre
una linea y otr.1, En este C.lSO (,1 circuito e xterno y la tarjeta no tie nen una n-Ieren -
d .1 com ún. En 1.1 fig u ra 7-3 St.' puedr- ver có mo el va lor finales Id diferencio ! entre
1.1S d os line.ls d e un o de los oc ho ca nales difl'n'nd alt"S, pm t'jt'mp lol loma ndo 1'1pri -
mer canal.

• eumo rl'~J a gl'lw r" l es p re ferible u na rned id .1 di feren cial " las o tra s porq u,' p ll;'Sl' n-
1.1 menos ru ido, ml'¡'1T recha zo .11 modo comun. erc.
• Las medidas con referencia (n'lén 'no"lc'l1 s in~/t ""TI<jt't.1, R...'> E) s í tie nen un p unto
com ú n entre e l e xterior y la la llo' ta lJAQ . En el .-squc m a d.' la figura 7-4 el ci rcuito
ex terior y la ta rjl'l,] n AQ co mpartma n la rr usma refe rencia: AIGND (an,l loK inp ut
~n 'lm(fJ .

I 1.. ....I ~ .. d., u n .. mr hflC",l". d ., ¡n>ln.tmo....".d lln "'" un "" 110 ,·..I"T mull rrl"....l" re'" '" ,...;1• •1.. "'. 1•..,-
~M""'5 d., 'u' dos .... t ... d.., .

162
Adquisición de datos


-

• •
r-, ¡
d.

v •
~

-
1
,
~




~

- f lgurd 7-3 Enrreda dnal6g" a orerercor

ce
~,
_. - ,



<. .i
~. V -
_ ~_-+-------'------< J
flgurd 7-4. Enlradd <! nillóglCd con re-fe-renckJ r crnun

• l.a venta ja de es ta med ida res pecto a la anterior es qUl' habrá más ca n a les d isp o-
n ib les, p ero tod as esas ent rad as d ebe n tene r la misma referencia. No se -ecomíc n-
d a si las te nsio nes son peque ñas, si hay una gra n d istancia ent re e l acondiciona -
d o r y la ta rjeta , los cables no es tán apantallados o se l'Stá inmerso en u n a mbien te
ru idoso.
• En la s med id as sin ref erencia (n on reli'IT'n<'l-'dsingh'-{-'n</t'tl, N RSE) 1,1 se úalexte rmr
y la circuitería de la ta rjeta DAQ no tienen u na referencia comú n . r n el ci rcuito d e
la figura 7-5 Sí ' mues t ra cóm o la señal e xterior ("S tá re forenciada al ter mina l AI5EN-

1b3
Lab V IEW

SI: mientras '1U t· 1,1 t.. nsíón en r- l interjo r d e 1,1 ta rkt.1 DAQ tt'n,lr.i co rno n-fcn-ncia
AIGN D:

-~-

"
-~ -
~, .

~.
."

• •


;/' I~

- •I
-- ,-
7.2.2 Conversión a digital
• El p '¡.S<J da n ' vn 1.1 a dquisición dl' d .1to~ t"S 1.1 d i~ it al i /oldún . 1',11'a d io se l' m p l" .l un
circuito de mue-treo y retención (S,lml'/e and 1I' 11J) que ca p tura u na tensión tit' 1.1
entrada y 1.1 m.mtienc estable .'1 tiemponc-c·t·s,.u io p.l ra q Ut' r-l ron versor ,1I1a ltí~i<'1l
.1 dlgl ta l pued a calcula r el valor d e su salida. L l tensión h.1sido p reviameu tecsca-
1,ld ,l por un olI11p lificador dl' ¡;'ll1.m.:i.l pTtlgrarna bh p a ra a just,u s<' 10 máxi mo r osi -
ble a l ra ngo del con v..rsor.
• MUt'slTt'JI' una Sl'n,lI t'S ob tcru-r el va lor de 1.1 m ism a en ciertos mo mentos , t'Sos
valores son nHH'St r,lS d e la Sl'n.l l tl s,Jmpltos. En una a dq uisición con tin ua so PUt'd ,'
conside ra r P " simp licidad q u.· e l tiempo en tre una m ues tra y Id siguil>nt., st'T"
constente; r-, I' ''lu,' Sl' denomina fTt"CU"IKi.1 d ., mues treo. En 1.1 fi ~ura 7-fl (,11 pu....l.·
verse este pTtl....'St., los punl(ls -oorc 1a cu rva represen tan los S<lmples, ..1 va lor en
t"Sl.1S pun tos M' rá e l '1 ue le Ilq~ U l' ,11conve rsor .ln.llúg ico a d i¡l;ital.
• El otro p aso ,"S 1,1 ('(...dificación del va lor m uest rea d o a su n -pn-sentacíon d i ~ i t.l l .
1',11',1 esto ",. d ivide todo e l r,m go de t.'ns innt"S ti,· en tra da .1" 1conversor en ,,¡¡ ritlS
niveles y .1 C':U.!,I u no de d io.. "" a",...-ia un cúd i~n b in ario. Sí el converso r tlt'nt'
muchos niveles p.ua codifica r 1.1 Sl' ndl, ncccsua r é más bi ts P,H,l codifica r cad a
nivel, per otendr á una mdYllr fidelida d a l n 'p n >d udr la ~·n.1 1. Al haber u n n úmero
de niveles fi n ito st· p roducirá u n error q ue corre-pon do .1 lil d iferencia cn trv d
valor rea l de 1,1 Sl'I'I,l l ana léglca y r-l valor discreto qu e Ic ."S astgnado . E.>; t.· error st'
d enomina er r or d I' cua nti ficación y ' os u no J t' IlIS m u chos er rores q u.' p ued e haber
en un sistema <1•••adquissr -ion . En 1.1 fig u ra 7~ ("1 se h .1 mostrado este proceso us an -
do ocho nivel.....

1M
Adqulsldon de datos

v
_.
-
r-. n
, ,,
r-, ,
~'-- / '
(.(
v
"• .. .. .. ... .. ..
.
"•, "'s .. .. .. ..

..
'00
, ~

00 ,
... .. 1/ I

roo ..

(b(

F ~ur<l 7-6 ClüInt,flCdCIÓIl ue Ul1d señdl

7.2.3 Procesamiento
• 1...1. dígualtvaclón d e l<1S señales an alógicas es necesa ri a p a ra pode r ser proces ada
y / o almacenada p or ordenad o res u ot ros eq uipos q ue trabajan en el d omin io
d i¡;ililL En este apa rtado se con sideraran única men te la s tarjeta s in terna s a orde -
nadores.
• L,1.S larjd as de adquisición d e datos tien en una memoria en la q ue almacenan las
muestras ad quirid as o las que van a ser ~t'nl>ra d as. Esta me moria 1'S d e tipo H ¡:O
(First lnpllt Fi rsr O lltr ut). Por su parte, el ordenador también tend ré reservado u n
espacio d e memo ria para tra nsferir los datos d e la ta rjeta a l PC; la pa rte (11' memo-
ria d el ordena dor reservada para las muestras de 1,1 la rjeta lJAQ se 1I,1nMrá buffer.
• En 1,1 trans fe rencia de da tos en tre la tarjeta y el ordenador habrñ mayor II meno r
fl uio d e información en función d e 1,\ ap licación . El vo lcado di' da tos de una
memo ria a ot ra puede realizarse de forma programada, usand o inte rrupciones {}
media nte una tra nsferencia DM A ( Dirc1.:t Memory A c('t'S.~ ) ; este últ imo método
suele ser el más eficaz a l realiza rse tod o el p ro cr..'So sin intervención d e la C PU, la
trans ferencia es gobernada por un co ntrolador DM A 11uc torna posesión del bus,
m ien tras tan to la C PU puede realizar o tras ta reas (q ue no necesiten acceder <1 1bus).
• La s tarj eta s DAQ pul....I en tener varías F""O , por ejemplo uno pitra la adqu isici ón
analógica . otro p <Jr<l 1<1 gene raci ón y otro p.ua Jus canales d igi tales. Tanto las
memorias FI FO co mo lus b u ffl 'T1j tienen un tamon o limi tado, por 10 q ue se d eben
evi ta r los er rores de ovortíow y nndcrttow 'lUt' ...... prod ucen si se sa turan las
memonas.

165
LabVIEW

TBfjela OAQ

FJC]WJ 7-7 FlujO ,j,' ( 0I111 ll1K:aC Kln t'mll" {)UWI1,l(jOl y taneta DAO
• I'a ra 1,1 ~l'n.'r;lción de d atos p uede habe r v,uia!; formas de U50.1r hlS VUt'fI·r-;. [1 pri-
rrwr método l'S parecido J 1,1 adquisici ón: !'ot' van almacenando IJ S mues tras en
memoria y !'oto va n ge nera ndo . Almacena r en mcrnona tod a.. y cada una d e 1.1s
mue- eros puedo ..upont·r u n ~ r.m tré ñco de da los en e l bus, cuando St' ~t'nt'r,llUla
seña l poríodíca L'S m,h d icil'nlt' almacenar tod,l" las m uestras en memoria una
única vw: y repetir el patr ón almacenado va rias VI'H ..., disminuyendo as¡ la u a ns-
fl· n'IKi.1d I' .t ,l tO"; NationalI nst ruments lIa n1<1 .1 t~lt' m étodo "rl'gt·nt' r.l" iún ".
• En el caso conc reto de ad quisldon, u na vez q UI' 1.ls mu es tras e-tan en el buffer sólo
resta ordenarlas (en e l C.l stl que ha va va nos c,m ,l l."S ad quiriendo da to-, .1 1.1 vez),
1'SC.l I.ul,ls y .1si!!;n,lrlt'S atributos cumo tie m po, etc. En ,ll¡;una s ,lplic,ldl 'lll"" d e alto
rendimien to estos p.lsns pod ría n po:lSponl'rst' pa ra hacerlos o ffl ine vn luga r de
h.lCl'r los en tiempo real, y ,lsí evitar u na S(wn'C.l r¡;.l de tareas a 1,1 C PU q tl(' pod ría
P WV(>(.u l,lS I'H Ort"S antes comen tad os .
• Ac tua Imente ex¡ste una te-ndencia a in tt'¡;ra r en 1.1 p mp i,1 I.u jl'l.l pa rtc' o t. '1(10 el p ro-
cos adu 'l UI' puedan requeri r 1.15 rnodidas. 1'S 10 que Na non al Instru ments lla ma
"OAQ inteligen te". St' trata d e dis posi tivos tl Ul' usan elementos rcprogra rrcblcs
co mo FI'GA.. que permiten realiza r en la m isma t.lrjt' t.1 y m edian te hardwa re com ..
p lt; tlS calc u ]o.. a alta velocida d , p ara mas infnrm.lCiél n PUI't::l1' consultarse el úl timo
Cil p itu lo l'n la seccíon dodicada a los sistemas C n m pact RIO.

7.3 Tarjeta de adquisición de datos NI PCI-6221 M


La SI'ril' M d I' 1,1" DAQ lit' National Instrumon ts t~t á fo rm.ld .l po r :

• Enl radds analógicas : un a p recisi ón d e has ta 18 bits. una velocidad de 250 k..<;/ s y
hasta Ml I ..-n trad a s analógica.. ( Id 622 1 tiene 16. l:I en m odo d iferencial]. Ran gos d e
entrada p ro g ramables d e t tn. :tS.:t 1 o :tO.2 V. FIFO d e 4.095 sa m ples .
• Salida s a n,l ló¡;icas: hasta 4 !i<1 Iid.1S d e IIí bits, ran go d e f IO V y velocidad d t' a:n
k.." / s (la 1í221 tiene 2 salida s). FIFO de 8. 1'JI s am p les, para todos los ca nales .
• Lm..·.1s di¡:; il.llt'S: hasta 4R lineas dI' entra da-s alida TIt / CM05 (la 1í221 tiene un
puerto d t' H lineas, po.·T(l p uede tener o tros dt>!'> canetos digitales usando Id .. unces
PFI).
• Contad o ra-s: d os con tadorec / umers d e 32 b its .

166
Adqu Isición de d ..tos

• Transferencia d e datos por DMA (va ri(ls ca nates), in terrupciones u de- fonna pru-
¡;ram.ld.l.
• R("l,'i interno do base lit' hasld RO MH1, de él se pueden derivar (lIT"" ~dl("'S
media n te d ivi""f'rt"'S de frecuencia.

L1 ~ larit't.l~ NI PCl/rXI-62.21 M de N'I pint's tienm el conector mostrado en la fi¡¡;urd7-8.


L1~ IÍOL'd, ~...n :

• Al: ,'ntr.ldas dn.llógicas. Permiten ffit'd id.ls DIFF, RSE Y NRSE. los canales est án
m ultiplexados, con..tan de un ronlnll pilra seleccionar Id ronfi¡¡;uTaciÓll de l~lS ter-
minales. u n amplificador d e ganancia programab je, un fil tro pdSil bajo, conversor
.lnd ltll~ic(l-d i ¡;i ta l (CA D) y una FI FO que almacena la s medidas.

• AIGNO: e~ 1.1 referencia pd ra mt'ltiddS RSE y e l retorno de corri<ml,~ p.If.1 DIFF.

15 • • w... - 1#

-- _.

I«; . .... eoo-


Fq liJ 7-8. C()O('(101 ce tTIa l.alJeta oe adQuISlCIÓl'1 de caros

'.7
La b VIEW

• AI~SE: .... 1.1 n '''''A'no .. J'<IT.I TIlI...J. IJ.I.. l"KSL


• AO: ",,11...1.1" .1 1't.111~1C.1 " Con ..tan d., Ufl.l F1 FO d,,".l.· .... "l fTW....'ndn 101<; rnllt...tr" ..
"JUl' Jtot>t'f1 t-..:nllu....· V .... Ifl \·t·~ .n'!lo Jlgi loll-.IJ\.1It"K'-u.
• AflC.:-.:n ,,·f."R'nCld p.l T" 1.1.. ",,1¡,Job ana ~K""
• 1'0 : C.l rtd..... dl~II.Jl,r rv..... Idnt.. p.lf.l .....tfoJ.t!.¡ o m'tt) p.lToI ....hd ol En 1.1 !oO.· TU" !Iot
It...t.,,, 1.1" Iint·.,.. p'·rtt'f1lt ·t'f1 .11 rUt"f1tl O. 141" lint,,,.. 1'11 ern ~'."lInld""" f 'un.:fl..n
In"'11...-.1 lolmll..", rUl..J.."I'I .... '"h ~Uf.lr.t · o >mo el co1rtd l dl¡tltd l l' I \. 1':2
• IX;NI), ,,-t'''R-od.' P.Ud 1.,.. 11N.·.'" d l¡l;ltak-.

Lol.. ln'!lo n'lt'n "tlClol.. A ICND. A<.X.;ND y lX~NIJ .... l.in ("1,"'·':t.I.1.,.. ml.'1"1t.ITIlI.'f1 lr en 101
10I1'Jt'1.1

7. 4 Measurement & Automatlon Exp/orer IMAXI


\t,\" t... un r"-,: fdrnd J •. .\i.lhon.lll n..trumen ts "JUt· ..11'' ''' p.l f,l 1I..tar, (Un h I'U Tdf ~' rnl-
t>.u el <¡(lltwa rt· y h.lnlw.I"· qllt' ru,..J.t' ser u lllI 7... d.,
t'f1 m..lrumt'f1I.lCllln \·irt Ud l.
Nll Tm.llm.'f1It· ...• ;O..I.I1.H.i 1.1 n 'r;illll 4.111 ..upt·""r junto .1 l AII>Vln V 11.211. Inlt'f.,dú.l
con \'IT,l" tWIT.unit11I,I" 11.- N I ,11 ¡).; u.ll qUI' (Cm .. IT"" J '" ..¡..It'ffid 'l~"'f" li\ "; tu-ra- un
,1"1"' -10 r.1o'("idu di ""pluTdJuf JI' \\'i rldo w ,,1 mart'O M MC (.'l. II'·n .....n .'l. f.m ,W' ·lIw" '
C..I1 11')~, aladrruni..tr.rd or lit' lh"pl...iIlVII como p m...lt· \.,.,.... ,onl,l fi).;U f., 7-'1.

• ••


,- .

1 _ 0-0· "
_r
.......7 1

o•
-. .-
.._
...
.J o-
.J ~,
.""''' 1 _ ''- ....
... "_"~ ~_ "l_
. 111I .. _
I
· 11 -
.1)- -
_ . M ~

. - ......... c. ...

Fn l., rolrll' i/'lult'nl.l d.· 1.1 h ·nl.m.l . ,'n 1.1 ...'("("ión J,' Cunfi,.: ur.t lil"' rU....I.11 .," p ll.ToJr
l t11..h n to.. d l"I""'lt;' ·,,.,• •Ifl n ·no y I'n~Tamd ". ¡\ fl '"hIlU ,I<'It~n \'t'T,'! (",Id a un. ~ di'
.·11 ...

,..
A<lqulsidó n <le <la tos

• Data N eighborhood: en e-sta ca rpeta es d o nd e se crean los ca na les v irtuales, tercas.


etc., d e los diferentes disposit ivos que van a ser utilizados. Para ello se debe sckc -
cto n,ir esta o~x-ión, so presiona el botón Cn',l lt' NI?IV... de la barra d e he rramientas
o del men ú con text ua }, y seguir el asis ten te; en el caso de elegi r N I-VAQm x Tas I<
apa recer á 1<1 pa ntalla d e la figura 7-10.

.........

.. -
"'-'- "
__ .__......
_ -
• M _ ~
,
.--
-.: ~ ~ .
.......... 0 __

.'-
,

-... - -- ...._ ---..........


T. , ... ro . . .. !. _ . ""_ " . " -,,,

.-
.- -
...-. . -
• ' ~' !.' '' '. ,- _ ..
.....,." ,
~
~
....
""_
,~ ._

F'9ura 7·1O Creando tarea, en MM

• Devíces and Interfaces: en esta ca rpeta es donde se m uestran y SI,' pu ed en edita r los
a tributos d e- los d iferen tes d ispositivos físicos que est án ins talados e-n d ordenador.
Se pueden mostra r ta rje tas de adq uisición de datos, tarjetas CPIB, pue rtos S\.' rit' u
r a ra Idos, omre o tros. St, p ueden crear nuevos con Creat/' New..., una opción inte-
n -san to l'S q ue d esde 1<1 versión d e N I-DAQmx 7.4 !'¡Ha wíndows S\.' pueden crear
d isposi tivos stmu tad os, as¡ S\.' p uede crea r una ta rjc t, de adqu isición d l' da tos v ir-
tual en la cual probar los pTllgramils antes de- po rta rlos a la tarjeta real. En la ligu -
r,l 7-9 S\.' pll l-cden ver d os tarje tas d e a dq uískión: una con un iCllnO verde (N I Pel-
6052E) 'l ul' slgn lflca que es u na tarjeta real y otra con un icono amarillo (N I
1'C 1-(22 1) 'lUl' represen ta un.1 Iillil't.1 virtua l.
• Scales: .' q ui (' !i donde S\.' almacenan y modifican los par ámetros rclackrnados con
I"S esca las 'lUt' pueden usar las ta reas . L1S escalas son una f órmula qUl' S\.' aplicaa
todas lils m ues tras ,
• Software: mues tra in fnrmación sobre el softwa re inst alad o, ...ntre otros L1bV1F.W,
las libre ría s VISA, hbrer fas CPlB, lfb renas DAQ y sobre el propio MAX.

Si den tro de Dl'dt1.'S ,lnd I n t l'r{,l t1.'S SI,' selec ciona una t,lrjl't,l 6221M Y se presione el
botón Test l'ant'ls...•apa recer á una ven tana e n la qu e se p u l-cden configura r los distintos
tipos d e entrada s y Sollid ilS, ran¡;lIs... dl' 1,1 tarjl'ta . Ad em ás permite visu aliza r las seña -
les que hay en los ca nalcs. Es una forma rapida de com pro ba r qm' h ...jo fU1KiOlM curtvc-
tamcn te.

16 9
Lab V IEW

- --
1=.....- - . '

,-_.. _e-
"
- -n

E:::I [.I~
.•

f,gUfd 7-11 , Pdf!f.'1ce le~t


-
en MAX

• Una confi gu raclón hecha ron MAX p uede g ua rda rse y ft'CU perarM' má s ta rde en
Fi/,' > ímport/ Export . El fichero resultad o puede im portarse en un proyec to d e
l..üJVIEW y d is trib uirse junto con los p rog ramas realizados. En Lab VI EW H,20
ta mbié n PU\.J \' importarse y ex portarse la conflguract ón de MAX en M e.N l fl.'nll'n t
I/{ ) > ,\.f A X Con fig u r.ttil m.

7 .5 DAO en LabVIEW
LabVIEW p r oporciona 1J"t.'S npos d e d rive rs par,l ad q uis ición d e datos : Treditiona l NI·
DAQ, Vis Expres s y NI-UAQ mlt.
• Los TraditiOll.11 NI-V I\ Q son los de mas bajo n ive l. u sados en vcrstone, anti guas
de l..l bVIEW, actualmente se conservan pm razones de com penbilidad . National
lnstrurnen ts Mílo aconseja usa rlos ron algunos d ispo s itivos antig uos y en suu.icío-
ncs m uy n mrrctas. NII p resente n 1.\ capacidad d e m ultiproc eso <lUl' ti... nen 1,15 n ue-
Vd S versiones .

• Los Vis Exprt'Ss S(> introdu jero n l'n La bVIEW 7 y ha cen la programación mucho
m,is senctü, y compacta que con los Vis normales él ! ag rupar .l va nos Vis en un
umco nodo m u y con ñ gu ra ble .
• Lo s N I-DAQnn también Sl' ha n in troducido con 1.1 versi ón 7 d e LabVIEW P<lfJ
Wind ows . Pn-sen tan mu chas ven tajas n'Spt'Cto .1 los tradicionale-s , co mo por "¡" m-
plo mayor inll'¡.; r.l ci ún con MAX, u n n ivel lit' .lbsl r.l<"dún m.1yor, mul tiproceso

170
Adquisición de datos

(m ultithn 'dlf¡, más robu ste z, mayo r estab ilidad, etc. La sencillezla consiguen ba si-
( am en te a través d e VIs po limó rficos (agrupación d e varios Vis distintos ba jo un
ú nico fichero e icono, sería el eq ui valente a la sob recarga d e funciones], con lo q ue
log ran agr upa r las ta rea s qu e hacen va rios Vis trad ici ona les en u no sólo.

La figura 7-12 es una co mpa ració n so b re un progr.lma pa ra leer una entrad a .1na ILÍg iC<1
d e las tres fo rmas mencionadas an teriorm ente.

• mM'~ ..- ......


,
L':':J

_.
l OOJ

",.
ICOl

",..
C!r:

FlgurJ 7-12 . ComparJ tJIIJ oe Código ITrdCl lCiOr1<l1OAO. DAQmx '1 Expressl

7.5.1 Tradltlonal DAQ


Ya M' ha n comentado las caracterís ticas de es tos VIs en e l ap artado a nterior, Su men ú
l'StJ en NI Mt'.l.~ IIrt"melJ ts > D.1I.l A(·q ui.~iti(J n. Esta pa leta p resenta a su vez una serie d e
su bpaletas, cad a una de ella s para un tipo de con figu ración: entradas y sa lid as analó..
~ic a s y digitales, contadores y calib ración.

F'9U1 a 7· ¡ 3. AntigUOS Vi s p,:ua tr<lb.aJdr con tenetes DAO

L1 orga nización de las sub pnletas es la síguíentc:

171
L.1b VJ EW

• En 1J. fi l.l s upertu r l'Stá n los Vl s "sencillos". Hacen fu nc iones lipicas co rno leer un
da to. En tre otras cnSol S t íenen un mant.;o autom át ico de los errores . Es tá n hechos
pa rd q m' fun cionen "lol I cua l", si se abren St' puede com p r oba r t-o mo ~t.ln hl'CholS.l
partir lit· var i os Vis "in term edios" y d e o tra s u tilidad es.
• En 1.1 ~;o'~u n d " fila l'St.i n los V is "in te rm ed ios· y abajo al" izquierd a 1,1<; utilidades .
Tienen 1l1;is funcionalidad y e ficien cia qcc Ios "sencillos". Uno sólo dl'l'StoS VIs no
r u....ll' Tl',lli hu una ta re a com pleta. rt1r \0 q ue nccesüa d e o tros .
• Fn la si¡.;u il'n tt· está n los Vis y s u" p,l ll'ldS "ava nzad os ", so n I" s 0 1' miis " .lio nivel y
r,H.1 \"('1 stO USOln .

1 .5 .2 OAQmx
1l,\ Q m , r r"l'0rdon.l u n,' lib rería o A I' I (A p p /iCil tion J'rtWTilm m ill,!{ fllterf,ICt ') q ue tao-
lit,l 1" co m unicación con tarjetas d e .l lh lu isició n d r- da tos. Es corn pa tibie COIl I,l \"l' rsiú n
7' dI' L lb VlnV y posteriores .

' o ,... recomendable USOU Trcd ui ona l DAQ y DAQmx en e l mismo p w g rilm.1. Yol qUl' si
.... USil u n Traditiona l, ]¡ )!; OAQmx pos teriores gene rar án <"rronos ha sta q ur- clrhsposrti-
n ' . ... <'1 n ......·" ·.1d o. Y si ';o.' ,"n'.l u na t,\ n '.1 sobr.. u n d ispos itivo con DAQm,. hay q Ul'
borra r 1,1 1.111.',\ .uues de u sar los Traditional.

U rm-t odo p.H.l trabajar con IJAQm x se puede res umir en la figura 7-l ·le crea r ta n-a s,
ú m fi¡.;ur.u tl'mp"rizdcitin y JiSp.1W, leer u escribir y lim pi ar 1" t.1n·.1 .

Alg unos conceptos q ue usan estos Vis so n ca nales virtuales y IM...·,}S. Un (,}IMI virtual
,.... u n" colección d e Hnt''¡¡s u p uertos ñsicos que se agrupan p.ua realizar \3 misma ta rea
l' m formacion .¡"">ciad,\, corno 1<1 con ñgu raci ón tl 1.1S escalas. U na tan',' t OS " I¡.;o m,h
p '!1l'r oll, ft' p n 'Sl'nl,' l., medida o gl'nt<r<lc ión d .. Sl'i'lolI 1IuC quiere rc,lliz,arSl', olgru pa I..s
e,m.1lt'S, limill';. /ri1$erin,; y (lIras p mp il'd.ld es.

le.-__ o- I

_ ", _1lolIo


Flqur,l 7-14. FlujO de proqrama pard rriltl<lJAr co n DAOmx

I ~1 p.1le l<l stO encuen tra en N I A-te,¡.-;uft'm(·nts > DAQnu O.IIa Acquisioon.

172
Adqu isici ó n d e d atDs

Fi<¡ul a 7-15. r un o ore s para traDdJ<lr con [,)J)f'ldS DAD

Estos Vis ta mbién tienen u na agru pación lógica en la paleta:


• Arriba a la izquierda esté n la'> constan tes pilrd crear ca nales y ta reas .
• Los Vis de 1.1 p rime ra y segu nde fila son los p rincip ales .
• La te rcera fila son los nodos d e p ropiedades .
• En la úl tima fila esta el asisten te y su bpalctas d e u tilidades que c ontien en tuncío-
nes como autoc alib rac ión, resc t. cone xión in terna de unas lineas con otra'> , e-te.

Ca be des tacar los sigUlen te-s Vis:

• OAQmx Create Virtual Channel t::J


'--
,, ~

......""'.
--
-._..... ...
,,~

, ...,.,
,•
S<>.r<l P,~ ....


Com ola maynria de los DA Qm x, es to Vll'S poltrn órñco y 1.1 Instancia J usa r es
seleccionada media n te UlM list,\ desp k'¡:;a ble qUt' ,1p<Ul'Ce bajo e l icono. En );1 tma-
gen an terior se muestran los terminales pa ra el caso de qUt' n.'r con figu ril r una
entrad a a na l6¡:;ica de tensión . Su función es crea r un can a l v irtua l y a ñadlrlo a u na
tarco. si no so especifica una tarea ta mbién la CTt'iI a u to máticame nte. Al crear una
constan te (' u n con trol p'lT.1 selecciona r los canales (ter m inal physic,J/ ch.lm Jt'ls)
debe ap'1Tt.' Cl'r una lisia d es plega b le en la que SI" muest ran los que es t án d isponi-
bles. también st' p ueden escribi r con e l forma to «uevr / e o », do nde 1 es el n úrnc-
í

ro d e dispositivo y aiO 1,1 línea, para USM má s de una linea S(' st'pa ran por ro mas.
Adorna s S(' puede filtrar el tipo d e lineas que mues tra 1<1 lista con la opción l/O
N.lIll(' Fi/lt'ring d el men ú desplegable. También ~' puede aceptar un s trin}; co n el
mis mo con tenido.

173
Lab VlEW

Sobl'\' r-l VI particula r mostrad o e ntes simplemente ha y qut' d l'cir 'l UI' el input trr-
minst ('"n '-i~ t1r,ltlf>n sirve pa ra indica r el tipo dI' medida: d ,l l'n'nO.11 R."iE 11 NRSF..
En la .1yudo1 ~'pUl'lII' coreulta r la información sobre c ad a una dI' las i" ..I.tnd a!> <jUI'
cI,mpt >fll'n l'!>tl' VI, También p ued en crea rse y configu rar t.nt '.l!'> median te u n asrs-
ton to y ,1l'<.'I'llI'r a 1'l 1 ,1 ~ .1 tra vés dI' s u nom bre (ver MAX y lJA Q A<;..~i ..t.lllt l:\rn~~) .
En lal i..t.1 p ,lra sl'll'Cd o n.u la instancia hay m uchos Vis P,Hd I'l l~lr. 1',11',1 un.l detcr-
minada loH}I'I.l 11\l to dos los li po s d e tareas son vá lid os. Pnr ultimo h,IY <l lIl' decir
que u 1M I.IR'.I I·R'.ld .l nu-diante I'!>tt' VI tam bién SI' PUOOI.' ~lhl rdar p.H'1 pt ",ll' r modi-
ficarse desde MAX 11 US.lrst.' en Olrd!> ocasiones.

• DAQmx Rioad lJtj


•" ; _ ... v..-
¡ •"
.........
~- '
~ . ..........
P'
'• - '"*- .
Lee mu....lro1.. pa ro1 0,1 ca",, 1 o ta rea ....pecificada, 1'!.ti1 p ued e haber siJ u ~"Ill'rolda
co n el VI an terior <1 r un M AX. Al seleccionar una iru..td llCi.ll'n concreto <;l' d cterrm-
na el formato de 1a k-ctura : u n !'> im p lt' d<110, a rrevs. eec. Tt...l.ls 1.ls in sl.lnciilS inclu-
yen un pa ramerru d.· timeout y, en la.. qUI' !ot' pUlodl' aphca r, o lrll po1 r.'tmt'tn l P... ea
indicar d nu mero do' s,lmp l..... por ca n... !.

• OAQnu w rtte ¡zj

En ('SIl' C.1.;o 1.1 lista dt'!>p lt'f;o1bll' 1'!O igua l qUI' en e l ar uenor. E....II)'; Vis l-scriben
m ues tr .1S p.H J Id lo1 R'.1 u Cdn.11 ~pt'Ci fic ado . S i no se us.\ tim in~ e l VI I'!Opt"' d iI gene-
1'<11' tud , >!> 1,)'; .'ioJmpk~, o1n lt'!O d e !ot'f;uir la t'jt-rudún , con tim in1': !ot' t....... nben 1'11 el b uf-
fer y y.) noes l1l'n ....l ri.1 1.l l'Spt' rd. La generación d e 1,1 !ot,ñ.l l Plllodl"l"m pt' /~1I' in m...
dialilm<'1111" t1 n'lras.1""'-', en euyo caso solamente <;l" t"SCrii't' n l"s da tos, nn stO-S.1 (01 n"
al exterior.

• DAQmx Trigger 1...iL1


...r - '......

Con fi¡;;u ra 1.1 Iorma t'l1 qUI" CUmil'l1/..l una tarea, t'!O d ecir, su condíct ón dI' disparo.
L' n tri':J.Wr PUI-dl' 1,"Ot' r diversas fuen tes , tan to .1n.llógic.1S corno di¡;;i lillo",. in l..mas
a la l,lI'it'I., 11 1,.tO"m.IS. U n tri~l'r .J., tipo SI.lri indica 1" condición d I' comu-nzo do'
la 100 n"iI. 1'l 11f'1-1 rt"lén'rKt' indica 1.1condici ón d I' p.lI'.ld a .

174
Adqu isició n d~ d atos

• OAQmx Timing !iij

Con figu ra los parámetros relat ivos altlem p o en u na ta rea y crea un buffer cuando
e, necesa rio. Est os par ámetros so n, en tre otros, los s.J mp /es po r segu ndo, un tenni-
nal pilra usar como rclo], s i la ejecuci ón d ebe ser con tin ua o fin ita, etc.

• DAQmx Clear Task 1:!1

I1d i,'nl' y horra la tarea. Es ú til cua nd o se crea u na tarea den tro de u n bucle.

Ad e má s d e estos Vis y otros. DAQm x también nene un g ran n úmero de p ropicda -


des con las qUl;' se p ued e tener un g ra n n ive l d e con trol sob re la ta rje ta.

NI-DAQ m x Base es otro A r l p ilra a dquisición d e da tos g Ul' no debe co n fu nd irse


con N I-DAQmx, a un que externamente son VIs muy parecidos ,1 lo s di' N I-
DAQm x, el m étod o de p rog ra rnar ión l OS el m ismo y el no mb re p uede lleva r a 0 10-
fusión. Un peq ue ño detalle es q ue los ico nos d e DAQ mx 8.1"<' tu-ne n e n s u pa rte
su pe rio r I,l s le tras «mx nase» , m¡en tras q ut' los "no rmales 't táenen «DAQm x». ln n-r-
nemen te se basan en AP (s totalmente d iferen tes: paril crea r tareas en lugar del
MAX h.1Y que di rigirse a Toots > N I-IJAQm x HilSC G mfis uration Utility.

7 .5 .3 DAO AssJstant
DAQ Assislant es un as ísten tc en forme d e VI Express q U l' US<l los DAQ mx
pa ra crear, con fi gu ra r y ejecu ta r tercas. También p uede acced erse a él desde 1,1 MAX
(/Ja t,} Nl'ighporhlllJtl > Crm tl' NI'W ... ). Si, encuen tra en Id m isma pa let a que J¡lS VIs d e
DAQ m x. En la figur,l 7-1fJ Sl' m uestra el aspec tos de esle V I (no rma l y co mo icono) .

Figura 7- 16 DAQAS >ISlam

Al situarlo en el Diagrama d e Bloques a pa rece a utnma tica rncntc u n asisten te como 1'1
de la figura 7-10. En él hay que e le¡:;ir el tipo de medida (po r l'jl' m p ln u na entrada arta-
1 6~icil de tensión). Desp u és SI;' d eben selecciona r lo s cana le s, pi as is tente m ues tr, una
lisia d e los disponibles . A co ntin uación .1p,l Tl'Ce r<i la ventana d ela figu ra 7-17 l'n [,1 que
config urar 1,1 ad qu isición, mod ifi cando pilr<im..trns como e l ra ngo d e en trad a. tipo d e
cone xión, ele Al igualque l;'11 MAX, también ap an'(t' 1,1 pes ta ña COnl lt'd ion Dia¡;ram

175
LAbV IEW

en 1.1 q Ut' St' muestra .1t' L111.1 mane r.1 l'S<.IUl'm.'i tica 1.\ for ma co rrecta d e realiza r las cone-
viones .1t· I.1 St'rü l a 1,] t.lrjl·la. Una n'7 'JUt' se fi n ali/ol Id configur.K ión ya se pod r é accc....
,k r.1 la Sl'flol l d esde e l VI ...n LabVIEW.

I':slt, VI,.lI i~lhll qUl' ot n e, Vis Express, perrnite .KCl'lit' r ,1 s u código a tra vés dv 1.1 opción
( '¡"'tl Pnm l 1',lIld de l men ú cnn tex tual. Tam bién p ul....Ie ~t·nl'rM a utomá ticamen te un
n ll.l i ~(l "normaro tran sforma rse en una ta rea .

_ _o
'"' ~- " '-­
....
_ .
.. _ . ~ . ""0""
r-r--
'-----i, -
~_. I
--
'~M"''''''''
• 01<

," ",~••
~'

,"rl>

... ............... .
~
••

""

-
O< . _ ... . . ....

¡- G«49>- ._
"
...
.......... . . .... -
."
-_
...... ....... "' ....,...
_~ - "
...
L=- '-" ~
_ - o
~;
._ -
.._ _...
. _~ _
.........

!.:....::. ': 1
. h .._
__... ~

....

.....................
..........,., .
- ~ .

"' --
:-" , _ ¡:j¡...

--- __I
........ , <

0o-_
o-
'- --
0'_«>0>_
'.-C jij I
_.
.... ..,.,_ " ......

- --
<lodo..... . .~ -..o ...

- - ...•n_.'-'''
....._......__
_ ..
__-_..'''-
-
"'-
~

''''
,.
' ."'........
.
.... ...._
.. • .. ~~
L.~.~.·~ _~ .
_......... . ...
........
.... _..... . .

7 .6 Ejemplos
7 .6.1 Ejemplo 1: Crear un osciloscopio y un generador
de funciones con la tarjeta PCI-6221M
7.6 . 1. 1 ExplIGld6n ~

En e-te primer ejemplo SI' us.Há n 1,1S entrad as r s,llid ,l S a n,llú~ic.lS de la l,1rjd'l par.l
r rva r un osc iloscopIO y u n ¡.;~'nt' ra,jl1r dv funciones.

176
___ _ _ __ _ _ _ _ _ _ __ _ _ _ __ _ _ __ _ -'A,d""q uisicion de d atos

Pa ra el gene rad or d e funciones S I;" usa r é un ca na l d e salida analógico. St> escribir á en el


buffer la forma do onda deseada y median te regeneraci ón se convertirá contin uarncn-
te en una señal analógica.

I',lrol el osciloS<'opio Sl' us..lrá u n ca na l d e entrada analógico. A la ho ra de int roducir una


-enalex te rna SI' debe t ener la precaución de no sobrepasar los límites especíñcados en
\.l S l-.lTacll' ríst icm; d e 1.1 tarjeta. Tam bién hay qut:' sincronizar de- algún modo la le..:tu ra
d e da tos ... o l'1b uffer con la to rn a de m uestras pa ra que no haya errores d e ningú n ti¡.... !.

7.6.1.2 Códtgo
Pa ra el gene rado r se crea ré u na ta rea y se config ura rá n los pa r ámetros re lativos a la
n-rnponzaci ón, después St' crea r á una señal con el VI 111Sic r unction Gener.'ltor qU t ' l'S
pas ada a DA()m x W rite, e l cual está co nfi g urado co n auto Mart para q ue empiece in me-
dia tamen te la generaci ón. A con tin uación S(' ha colocado u n bucle WHI LE en e l que el
pmgra ma se man tend rá u n tiempo ind e fi nid o antes d e fina lizar la tarea. Pa ra no ocu-
par tod o r-l tiem po del procesad o r en u n bucle q Ul' 1111 hace nad a, S(' ha colocad o en s u
interior un VI Wait (m.~). Mientras el programa es té en este bucle la ta rjeta gt'llt'rará una
v otra vez los d atos escritos an tes.

m
FlQ"ril 7-18 Generildor con una tarjE'ld DAO

El cdd ign doloscíloscop¡o es pa recido a l an terior, sólo que esta vez e n vez d l' confígu-
ra r 1,1 tarea como S<11id,1 analógica (1\0 Vo/t'Wd , S(' han' como entrada ( A l ~!Illt"g{') .

iii••.",.", "'...., I
'. '.":').1
ee

Figura 7· 19. Oscsoscooo con una ¡i1 ~etd DAO

J77
u b V IEW

Ta mbién SI' ha u"'l d" un TIM ED [1]01' e n luga r d~' u n WH IU : d .hictl r.Ud (\1O~");uir
u n in terva l o de til'm pu entre mu~'!>lrdS más p n 'CiMI. El b ucle lo't' n-pite cad a ~und\l.
d"ntro de él '>t·I,..'Il tl>t.l.l .. l.l " mu....tr.lS almacenadas ,'n 1·1 bu ffer.

7.6.1.3 Resultado
Pa r.1 probar ..l func íona m¡en to J~' am bos p mg r.lm,¡" ....• han pru)l; r.1I1101d o canak-s d if...
n·n t.'S y ésto-, M' han co rtoc trcuüedo. El resultado puede V~'~· e n 1,1 l i~ u r" 7· 2ll.

7.6.2 Ejemplo 11: $ensado de temperatura


7.6.2. 1 EllpItead6n te6rtca
La ca p tu ra d~' lo't'i'ldlt"i p nX't't.i''Ille d~' procesos de ....-nsad n ~"i una d .· l.ts .tpl kdd,IO~'"
tipl'·.t!> de la .tJquisidún de da tos . En la fig u ra 7·21 pu•-de H'r..I.' el Ilu jo d e un sistema
,l.' in..trumentacion p.lra ltWdlr y controlar u na va riable fisica .

Pf·· umlenlo.
~ylo
;' am.cena mienkl

• Sensor: es un tip", d t·lra nsducn-r qUI' tren..f,'mlol una magnitud en ••Ira ron Id !in.t·
Iid,ld .1.. f.ldli t.1 r su med id a . Eldslt'n scnsore, p.\..i\', >!> (\lu~' 11.·.......1t,m u n ,lpo rt.· d.'
''Il' 'r¡I;i.l e ,I,' m o ) y otros activo-, {q ue so n cdp.ln"i di' ¡.;.·nt'r.H " U propia ''Il<'r¡I;i.,).

178
Adquis ició n d e datos

Los sensores eléc tricos tam b ién se pueden cla sificar en resíst lvos , ca pacitivos e
inductivos, dependiendo ele cu a l sea la ca recte nstíca e léc trica q ue va ría .
• Acond icionador: 1.1 salida de los senso res no suele se r ap ta p ara su procesamiento,
,1 VL'Ct'S no L'S lineal, o tras veces tiene ni veles demasiado peq ueños, etc. La función
de l acondicionado r es ad aptar esa salida pa ra facili tar qm' las eta pas post ('rill~
pueda n p rocesarla . Dependen de las caracterís ticas del sensor u tilizad o .
• Conversión a d igital: hasta ahora siemp re se ha SUP U('sto que se trab ajaba con
st,ñ.l ll", anil lógicas, s i se q uiere p rocesar 1;1 señal en el amt'l ito d ig ita l es necesa rio
con ve rtirla. P,H,l d io St' uson conversores ana l ógicos digit'l les.
• Procesamiento, visualizaci6n y / o almacenamiento: l'Sta pa rte puede es tar en el
ámbito d ig it,ll o en el ana lógico. En la figura 7-21 se ha rep resentado con un orde-
nad or.
• Control: (' SI,l eta pa no s it'm p re está p resen te y, en caso d e que exista, es la que cte.
n a el bucle. Esto qu iere decir q ue d pa rtir d e la señal procesada puede ha ber una
actuación p ,l fa modificar la variab le med id a co n el fin de q ue és ta se manten ga
d ent ro d e unos lím ites <l reaccione ente .1lgu na variación.
Pa ra el caso concreto d e tem p eratura . los sensores ma s habit uales son: termopares . te r-
rrusto ros . d etectores d e tem peratura n.-;; ist ivos (RID) v sensores de tem perat u ra d e es ta-
d " sólid o (circu itos in ll'g ralios).

Eslt' ejemplo tra ta sob re co mo adq uiri r datos p roveníontos d e un senso r d e tem peratu-
ra, concreta men te de un sensor RTD del tip o Pt100. Es te tipo d e senso r debe Sil nombre
,1 esta r fa brica d o con p ];l\ino (I't) y tener una rcsís n-ncía d e 100 ? a (J "c.

El circu ito aco ndi cio nado r propues to sobre el q ue se realiza ra este I'jt'm p lo es el de ],1
rihu ra 7-22.

[ .1 medida es ,1 tres h ilos. En el conec to r JI SI;' usa el primer cab le pMa alimenta r el sen-
<tlr a curtien te constante, ptlf el segundo se mide la tens ión y ",1cable nu men> tres sirve
corno referencia y re torno d e corr ien te . En la I'tl OO los cab les u no y d os t"Stá n unidos .
1.1 ven taja d e esta configuración es qut' 1,1 resis tencia d e 1(15 cables uno y dos no a fecta
.1 la medida .

En , 'sl{' circuito se han S(,n.l lad o las partes má s Importa ntes , en 1.1 fi ~u ra 7-22 se ha mar-
.ado co n 1'1 n-c uadro el{' la pa rte s uperior Izq uie rd a un a fu en te de corrien te cons tan te
--1 LWsu mi nis tra 1 mA .1 la Pt100. En el recuad ro d e la p a rte infer io r izq uierd a se ha sena-
lado u n segu id o r de tensión qUl' obtiene a su salid a la m isma tensión qUl' ,1 la en trad a.
-u fu nción es la d e consegui r q ue toda la curtien te de 1,1 fuen te circu le desde el tetmi-
IMI un o al tres y q ue ésta no se d esvíe por el d os. que justa m ente es e l term ina l d e roen-
,1.1. Por último, en eí rec u adro d e la parte infe rior de rec ha se m uestra u n circui to qUt'
<irve co mo am p lificador de ten si ón y filtro paso bajo de primer orden, su función e,
am plifica r la tensión ,1 la salida del sen sor y eliminar oscilaciones.

El d isd i o de los componen tes del circuito se ha hecho de ta l fo rma qUl' ot'ltenr;a una ten -
- ión de lJ,5 V pa ra una tem pera tura dt' ·50 ('C a proximada mente (!lO ?) Y4 V p <lr,l una

179
,1F'l8.-di1:Olñinli- --It- - - - - - - - - - - - --1
1
.c....
1'0. :;. _
.
I
,
I , I

,I ~l
".; ..:. " ~.
Jo ,'"
'
I
".
,,
", ~

. .......
~
... 0 1

~
1 lit
,_

.
,, ." '"
-
,
------ ." ."
:;:..
...


- _"f." -

1
1-.' '" -
-•• -
,
".

Fq.lfil1-12. (reun:o ~
tem pera tura d e unu!! 100 ce (145 7). El an álisis d el circuito, rt.'al il .l nd n algunas a p roxí-
m.lciont'S, S(' PUI-dI'I·Xr n-s.1 f co mo V...J"¡"'" 55 , 0,001 . R1, 1I11 - 4_

7.6.2.2 Código
En principio ~ podna optar por rt'dlit..u la con ve rs i ón de la tcru..i(ln I"id a a tem pera re -
ra mediante una Iérmula ti método s imilar; Sin e mbargo en ~tol o"'-ds ióft se utilizará el
1~.-1I.1do. para ello ~ *,n.' 1.ll'l'ltrad.1 cu-stmn scste tMm.' del VI DAQrm e n ',ff.' Virtu.11
Ch.Jnllt"/sl' en-a rá una co nsl.m lt' y 1'1'1 el la se 1"1t~i rá la opción Brow:..·.I'l1 1... ventana "jut'
olp.ln·("l· Sl-' crea rá 1111,1 nueva l~oll.l ..It' tipo lineal. lJl'S pués tI... dl~i r el nombre ~'



-•
••
'•.•
f ,.

._-
_-.• -
• ._ . . 61. . . . . _

180
Adquisició n de datos

pod rán in troduci r los coeücícn te, que configurarán e l escalado d e las lectu ra s de esa
te rca . También se puede e mplear- MAX p a ra crea r la escala.

Media nte una tab la de calibraci ón d e u na Pt l 00 y una caja de d écad as se p ueden obte-
ne-r experimen ta lmente los v alores d e los coe ficie ntes m ost rados en la figura 7-23.

El res to del p rograma de la figu ra 7-24 ya ha sid o e xp lica do a nteriormente. Simple-


me-n te ad q u tere una muest ra cad a cierto tiem po. El va lor obtenido de esa m uestra ya
ha sid u escalado y s us unidades será n g rados cenngrados.

,
I [, ,,, . l E"''''' •

Oevl ... 1

[j]

Figura 7-24 Programa pa ra leer temperatura

7.6.3 Ejemp lo 111: Co ntrol de un motor paso a paso


7.6.3 . 1 Expllcacl6n teórica
Un moto r paso a paso ("S un conve rso r e lect romecán ico que tran sfo rm a la energfa clec-
rrica en mecánica. Convierten u n tren de im pulsos e léctr icos en un movimiento a ngu-
l.n . En ellos S il eje g ira u n determinado ángu lo, también lla m ad o paso, depen diendo de
los Impulsos eléct ricos que 11,' sea n aplica dos. El pa!:'() determinar á la p recisión d el
mo tor, así para u n paso peq ueño el mo tor podrá g irar con ma yor precisi ón, pero nece-
sit,m í más p asos para dar una vu elta com plota. El paso d e los motores suele varia r
desd e 90" a ángulos menores de 1".

I.os motores paso a paStI de imá n permanen te so n los más comunes. El rotor t'!; u n imán
permanen te y elestator cont iene unos po los sa lientes en forma de d ientes sobre los que
va n las bobina s. El modo en q ue es tán co nectad as las bobinas d etermina el tipo d e
motor paso a p aso ;

• Bipol ar: sobre las bobina s d el esta tor se puede hacer p asa r una corrien te eléc trica
que croa r á u n ca mp o magnético . Este ca mpo magnético ha rá que el rotor g ire has ta
encon tra r una p os ici ón d e eq uilib rio . Si en ese momento las comen tes ca mb ia n, d
cam po mil~nétic(l ta mbién ca mbia y el rotor deberá g ira r otra vez.
• Unipolar: las bobinas d el estaro r están d ivididas en dos debido a que su p unto cen-
tral t'S tá puesto ,1 referencia . La corr ien te puede circu lar por una de las d os partes
de la bobina dependiendo d e un co nm u tad o r. De esta forma Id po sición d el con-

1B 1
Lab VlEW

m utadnr d l'h'rmmd l'l sentido d.. 1.d corn..ntc cn la b..,bind v t'!o ld .1 SOU vez dl't..rrru-
n,11.1 rOl,Hid ,ld d .'I '",lm~....} m dWlt'lioo generado y e l !iot' n lld" dd glRl .
El control d.'I.""i ruoton... ~· rcd uco a activa r y d '~lCli \'.lT l a ~ llt,birl.l" para h.1(\'r 'lUl' el
rotor glll·. La dchv.ldún )' dt'Solct i vadÓfl~' rt'dli/.l d Ir.l\'t"!; d.' un d nver 'lu., {"j' n-..ta d e
mte rrupton...; ( u.lnd o Itl!' mterrup ton... se cu-rran circula una co men te r o l' 1,1 tll*,ina
que prU\"l llCd un ca m ru md~t'lk() el cua l a trae (' n,~"",'lt' e l imán d t'll'ulo r. En Id fi ¡¡:ura
7-25 p u.>d.. verse 1I1l,1 ~'nlt 'IKi.1 d i' activación di' b.. binas ~"U.I hacer ~i rolr el roto r e n
sentido an tthorario.

En 1,1 ~'n lt'n.i.1 d ., r') ~' romph-to (fuJl .'> 't 'p) elroroe g ir.l u n P,).." r ol' ( .Id ,) p u l~., t"> la
sccucnctc n-pn-scntadacn la fi g u r,) 7-25 y en 1a T.lb l.l 1 [b}, 1'.11',1g lr,H en ~'n llllo hora -
rio M' sigu.' 1.1 M"CU''Tld ,l J a y para SI' n lid o anrihorar¡o b . En J.1 secu encia de medio
ra.....1 ( h,11f ,> ,.,1'), c orno ..u nomb re indic,l. ..1mot..r .l\",lnl...l m....tiu rol.... r o l' ,·,u I.1 pulso:
se b"'~l " 0 1.1 .U"tiv,K i" O d., una y d u.. tll*,inas, Olmo ru.... tt· V('r;t· en Id T,l blol 2_

.....
Tabla 1 • SeclH'n c:l.. d e paso e n tero para giro hor.ulo l. ' '1 o1ntlh o r o1rto lb l
$1 101' Slloll S3 1011 S4 '011 $1 lb) Sl lb) S3 (bl S4 lb)

,
I ON
ON
ON
ON
ON ON
ON ON
3 ON ON ON ON
, ON ON ON ON
ON ON ON ON

Tabla 2 • Secuen cia d e medio paso para g iro horario la ) '1 .l1ntlhorarlo Ibl
Paso 51 (011 SI 1011 U 1011 S4 101) SI Ibl Sllbl S3 lb) S4 Ibl

,
I ON ON
ON
ON ON
ON
3 ON ON ON ON

1 1_ n~jll .... 'fU"'''' n ...","""" .....1.. ....1.." .... OFf

lB'
Adqu lsldon d e datos

Po_ S1 lal 52 lal 54 lal SI lb) 52 lb) S3I Ibl 54 lbl


, ON
5 ON ON ON
b ON ON
I ON ON ON ON
a ON ON
ON ON ON ON

7 .6 .3.2 CÓd igo


1'1 control di' un motor P ,lst l a P,lst l st' reduce a dos funcio nes : c¡) lcu liIT la sec uencio ,JI'
....llid a (la d e activación dehe, interruptores ) y esc ribi r el resultado po r 1,1 in te rfaz en tre
,,1n rd l'n,ldt.r y e l driv er con el fin d I' actua r sob re los in terruptores ' lul' im piden o dejan
P,1"'U 1,\ corriente ha sta 1,1S bobinas del motor. Este p rtlC'-"Stl l'SI,' re presentado en 1,1
l i¡:ura 7-26.

'"""
------------------------,,
-
,,
c.w. ~
,
- -•
. ;.
EKtlbir l•
M'" Ir'ltenulll""'" ]
~_rlaz
- -
,, ~-

---------------- ------- -
I
Figura 7-16 Conlrol por sorrwere clel c!fN('f de un moTor pase a paso

El inlt'rf<11 en tre los in te rru p to res y e l ordenad or ser án las salidas d i¡;il.ll t'S de una ta r-
1<'1 ,1 d e adq uisición d e d atos . El p ro);rama p rim ero crea u na ta rea V igit,}l 01.l tput; den -
tro d i' II n bucle st' escribirá SOb l\' l'SJS líneas cada cie rto ti..mpo, el dato q ue st' escribe
t'S una de la s sec uencia s (51, 52, 53, 54) d e las labias nn tcnores, las cuales es t én fl' pn"-
....·nl,l 'la... por d os ,¡rray"', ad em ás en cada itera ción SI' rota rá el .uray p,}fa obtener el
.1,110 en 1.1 sigu ien te iteración , El cód i¡;o de la mi tad superio r del bucle strvc para d ibu -
j.tr sob re el I'ancl Fronta l u na grá fica polar (Con tm h > Mo.I,'rn > Gr'l p h .> Cpn twl!; >
l'ol,lr l'lot In<iiGdtor) donde SI' s imu la rá el giro.

l x-ru r od el bucle se seleccíonara median te un CASE u no d.' los d os " tr" y,,~ modio 1'.1....
" ¡'ilst' co m pleto. Por u na parle st' rola el i/tri/Y para 1.1 p róxima iteració n y por otra
!" n ll', , ' 11 caso d e ser medio pa<;(l, se obtiene e l pri mer elemento del ,1IT,n ', si lOS 1',1""
com pleto St-' con vierte el ilITay di' booleanos a n úm ero: fina lnw n l., SI' escribe e l res ulta -
do en 1,1 ta rjeta DAQ .

rB3
lol bVI EW

Fq.Jrd 7·17 CQll!loI l1l.' un motee Pd'>O" caso con WtNIEW

7.6.3.3 Resultados
" M,l I'rob.u l' l resultado se- han conec tado las cuatrop nrnorn-, nneas d i¡:;it,l ll'S del ptlt'r·
In 11.1 un driver pM,] motor P,ISO a P,IS0 ,k tipo 1.2'flD. El programa cnnsigul' u n ~ir<'
contmuo ,h'l motor. J'nr otra partl', vn la figura 7·2" SI.' p ued en ver las Sl'r'hl ll'S ' luI' ","'
l ' Il \ ' i ,llI Yr-l n -sultado ,1\, 1<1 simul.món .

--\--
--
'. • •

IB4
Adquis idon de datos

7.7 Ejercicios
1. Busca r y es tudia r ejem plos en la avudc d " ["lbVIEW y en 1<1 web d e Nattonal lns-
tru ments sobre adquisición d e dat os.

2. Co mp roba r los lirnitcs, d,' frec ue ncia d e los d istin tos típos d I' gt>nl' ración /.1dqu isi-
ción \'11 1<1 tarjeta lllo adquisición .

1. Usa nd o 1,1 plantilla ml ~ t ra d ,l ,1 con tin uac ión encontrar un método p.U'l adquirir
li.l tos y p rocesarlos en paralelo usan do pipdill{' (sl' g me nt,lCión) .

Adqu<o::lón y
Pfocesado de
rlOfmac"y,
~ ,.-
Cloook ~

-t. Calcula r teó ricamen te los coeficien tes del escalado del ejemplo 11 sabiendo que una
-c
Pt 1UO tiene I'IJ. J I ? a -50 -c, lOO ? a O y 11'1 .-tO ? .1 50 "e y 1,\ fuente d e comen te lOS
d e 1 m A. A na lixar el e¡rcu i to del ejl'mplo anteriur p,l ra obtener 1.1 I' X presión V",Io,b "
55 . O,(l()] . R r ~ r lx¡ - -t, aproxima r R21",R15.

5. Ca mbiar 1,1 interfaz d., com unicación entre d ordenador y l-'I motor p.1SO ,1 P¡lS0 , US ,U
en esta ocasión el puerto pa ralelo.

ó. Real izar un sistema de alarma que muestre un a viso cu.md n en una entrad a analó-
gkil se s \l ~"-' n'n 111S .5 V. ['olra 1'110 e m plea r un tri gger. Con e l fin de 1'\"Ít,U q ue h'l ya
activaciones fa l"klS cua nd o 1,1 tensión esté próxima ,11 lim ite, M' añadirá un ciclo de
hist éresis d., ±O,1 volt ios. Cuando se active 1,1 alarma most ra r u n nwnsaj., por p,1I1"
t,l l1,l

7. RL'illi7.1r un medidor de l cau d al de agua qul?' pasa por una tubería e m plea ndo uno
de los contad ores d e 1.1 hU}l't<1 , La tuberfa tien e un .lsp a qUI' gira d e acuerdo co n el
fl ujo de aguol. Cada va rilla del as pil está iman tada v ,11 girar ind uci r án una tensión

FlQuril 7-30. Esquema oe un rrecnnor ¡JI' ~\JJO

185
u bV IEW

en u na bobma co locad a cerca d e ettas . Esta tensión , una vez acondicionada, SI' in tro-
ducirá di recta me-nte en 1.1 tarjd.1 de adquisición lit' datos . L.1 fi¡;urol 7-:\11 muestra el
t·"qut'ma PTl' PUl",tO. En esw ejemplo, por sim pliñcactón, se s upo nd rá q uee l núme-
ro de pulsos dela señal tt'n d r,\ un a dependencia directa con el fl u jo d e agua: .

7.8 Bibliografía
Bon níe C. Haker, AN 687: ['n'Cision Tl'mpt'r"tun'-St.'llsin¡; ¡Vith RTD Circu its,
Micnx-hi p, 2(KJ3.

urucc Mihura, 1..lbVI EW fnr P,l/,' Acouís ítion, Pren nce Hall, 2lKJ I.

.\ i .ltion a l tn struments . A J\'dnn 'ti N l -DA Qnn I'Tllg r.l mm ing TI't'hlliqlJes wíít i
l..lb Vl f iV.

'\Ialio na l lnstru nWl1 ts, L.lb VIEW: V.lt.l A cqlJi.~ iti(l1l IJ,ISit"S M"nu.ll, I':NI'\.

Nir.mj.1n Maharojh . AN 131: Di};i',11l/O Arplic"tion.s. N atlo na llnstrum cn ts, 19<1H.

Ratt-"Sh S. V,'idY,I. AN 12'J: Tip" .m<! T.',:hnü¡lIl'S in IJA Q Tri~I'TiIW, National lnv-
tru mc n ts. I'J"olB.

Richard Hou St." A N IN2: D.I!" A .'q ll isi tioll Sp<'('ific,l tioll.s ,. .l G/oSos,,,}', N.1 Iio n" l lnslru-
menes, 19'17.

Sf'Microoloc tronics. 1.293V I'II.sh-l'uJl f."¡ 'UT Ch,mll"1 f)Ti\w With V W<.ll'S. 2003,

IB6
Capítulo 8

Protocolos de comunicación:
TCP y UDP
Las p rimeras redes q ue co m unicaban co mp u tad o res se insta la ron en EE.UU. en los
<li'ios óQ. En ,lq Ul'1 I.1 época p rácticamente cada red estaba im pl emen tad a con u na terno-
lo¡?;í<l distinta e inco m pa tib les u nas con o tras.

A pri ncip ios d e los 70 sur¡!;iÚ un n uevo concep to: la interconexió n de redes. Ya no bas ta
con comunica r com p u tad o res sino q ue había q ue com u nica r redes d e compu tad oras
dis tin ta s.

TC I' 111' fue d esarrollado en 1972 por un g ru po de inves tiga dores subvencionados po r
e l d epa rtamento de d efensa de los EE. UU. ejecu tánd ose en A RPAN ET. Te!'/ Ir es una
fa milia d e protocolos de comunicación agru pados po r niveles . Permiten la co mu nica-
ción en tre dispositivos y en tre redes.

En los s iguien tes a ños Ter / Ir fue mejoránd ose y extend iénd ose , se incluy óen IIY.' anti-
guos sis temas operati vos UNIX d e Berkeley A la vez A RPAN ET SI;' ex tendió por tod o
Esta dos Unid os u niendo nuevas red es . el resu ltado fu e lo qu e ho y conocemos co mo
Internet.

L1S RFC (Req uf;'s t For C(lm nlf;'n ts) son d ocumentos que, e n s u mayoría, d escriben pro-
tocolos o actualiza ciones d e sé tos. L 1 S RFC p ueden en con trarse en el IETF (/n tem t't
Engint'l'ring T,lS k Fo rce). Las RFC SI' cla sifican en: estánd a r, está nd ar p rovisional, pro...
p uesto co mo estándar, e xpe rimen ta l, informa tivo e h is tórico . vanos Rf C pueden for -
mar parte d e un mismo estánd a r.

8.1 TCP/IP
El objetivo d e TCP /IP es estab lecer una in terco nexión en tre redes pa ra p roporciona r
servicios d e ta l ma nera q ue para el usua rio pal'{'lÁa que sólo h'1Y una ún ica red horno-
gcnea.

Comose h,l d icho a ntes, los p rotoco los Tcr /l P están d ivid id os en ca pas form ando una
pila de protocolos . Esta p ila esta rá im p le mentada e n cnda un o d elos nodos de la red .
Den tro d e un nodo los mensajes se pa sa r án d e un n ivel al s igu ien t", desde a rriba h<l(Íil

187
LAb V IEW

,lt>,ljO t'n 1.1 tra nsmisi ón y d ' 'Mlt, 'lt>,l jtl hacia a rnba cn 1,1 recepci ón, an adíend o y quitan-
d o CiI m re '~ n"!'>f'l"ct ivaml'nll'. d t' forma 'l Ul' e l mens ajr- <J Ut' 1I1'~,l iI u n nivel St',1 l'l m ismo
vn d t r,m~m i stlr y en e l receptor. Así St' puede decir lJU t ' hil}' una ro m unicaciún ,i1n '(:t,1
,'n ln' Ins ni ve les equtvalen n-s delemisor y d el rec ep tor, p lll'S el res to d e niveh-, st' ri,m
"I r ,1nsp,l ren tes ".

l ..1S ("lmpns q ue so añad en y Si' qUlI,m son básica mente cabec era s pa ra 'lu" I.l n-d p ro-
re ' rcion,' servicios. Por t·jt·m p lo . st' p ued e añadir un ,'t\<.Ii~" pMa co mproba r o .." rrq;i r
errores , u n n úmero "l Ut' indiq ur- 1.\ St"Cu"ncia de un m t·ns.1ft· q ue forma p art e d t' u n.l
transmisión mayor o la d irección del destino. En la figu ra 8-1 Sol:' p ued en ver 1,1S pi l ,l ~ tit'
protocolos d e un cmísor y u n rec ep tor y el p.1St. d i' men-ajes en tre ellas den tro tid p m -
pio hus t y ,1 tra vés d e 1,1 n -d . Ad "m,is, jun to a cad a protoc olo p ued en verselos datos y
cómo ...• van a ñadiendo y t'!im molndo cabec eras.

Tabla , . Protocolos de diferentes capas

Nw.1 d~ la pll. EJ~mpto de protoc


-'o_Oo_,- ' _
t\¡.lllCación HTTP. rre 5MfP
Transpon e TeP. UDP
naeneu IP. AA? x 25
uuece Ettlt'rrlt'l. AJM . f rdm e R.,ty. WI-FI
ruc o Medro asc o y lecnN:d' (le cocrc econ

4 ----- . ". ~
Aplicación --- - - ~ Aplicación
TCP -----..". TCP
IP IP
Enlace Enlace
Flsico '1 ReD )-/ Hsfcc

Fiq<Jf,j 8- t EnCdpsulddo dt' á.HQS

I',H,l m tcrcon..d a r red es di ~tin l.l~ h,l ri.l (,111,1 un tercer ek-mentoade m ás d elcm¡....r v el
[l'nTlor tlUl' h.l¡;d de tradurtor t'n ln.' ].1~ dos tec nol..~i.l~ d ist in tas de un rrnsmo nivel.

8.1.1 Nivel de red


El prt uocolo lP ( fn ten lt"t / 'rot,..:o /) es e] protocolo de In te rconexión de red es m.l.s usado.
l'crtenecea 1,1 Gl p.l de red y t·~ l.l. defin ido en 1,1 Rrc N I . La unidad b.1Sic.l d i' d ,I!l1S en
11' ...· U,IOM d ,l t.1~ ra ma . 1...1 misión de 11' en un nodoes co n form a r los paq uet es 'lUl' ...-ran
r.l s.l do~ .11 p ro IOCO]O in feriur y d ' 'M·ncdflSu lar 11l~ r .1'lul'tl"S en t ra n tes r.n.l r.l ",l r..t' l o~ di
protocolo s uperior. Si I.. ~ d atos q ue rec ibe son d e nlol yo r 1,1m .H'Io qUl' elaceptad.. po r la
red. \... h' pr otocolo d ebe fragmen tar 1.1 inform ación en e-l \'miM.r y' n"Conslruirl,\ en e l

188
Protocolos de comunicación: TCP y UDP

receptor. Otra característica fu nd amcn tal es cl cncaminarnícnto . dos d e los cil mpos de
la ca bec era IP son la dirección del host ori gen y d es tino. Estd información es usada por
la red p,lfa hacer lk'g.lf los paquete, d e un nodo a ot ro aunque no tenga n conexión
d irecta.

El protocolo 11' p ropnroona u n s iste ma d e distribución poco fiab le incl uso en una base
só lid a , Los datagramas se pueden retrasa r, perderse, crear duplicados, se r enviados en
una secuencia inco rrecta o fragme nta dos in tencionada me nte p.lfa permitir gue u n
nodo co n un buffe r más pequeño qu e el ta maño dd da tagrama pueda coger todo el
data grama . En algu nas situ aciones d e e rror, los datagramas son desca rta d os sin mos-
tra r n ingú n mensa je, mien tras q ue en otras si tuacion es los mensa jes d e erro r son reci -
b idos por la maquina origen (mediante 1'1 p rotocolo ICM Pj.

Entre los ca mpos d e la cabecera IP destacan las direcciones, tanto o rigen como d estino.
Cad a uno d e estos Cil m pos es tá co m p uesto por cuatro bytes, au nque se s uelen reprl'-
senta r como cu at ro números dec imales separados por puntos. L IS d íreccíoncs 11' M' uti-
Iízarán para id en tificar el ori gen y dest ino de 1.1 in fo rma ció n en la red. Las di recciones
multicest o mu ltidifus ión son u n tip o especial, ya q ue no ha cen referencia a u na m aqui-
na en concre to sino a u n con ju n to d e ellas. En II'v4 se reserva n las direc ciones q ue
l'm p il'/.<lll por 11 10 (d e la 224.0.0.0 a la 2.19.255.255.255) para CTl;'.1f Xrupos m ullicas t.
Otra d irección ospeoalos la d o /(lop b,Jck o /Ix. tlho.st, cu yo valor es 127.0.0.1 .

8.1.2 Nivel de transporte


El protocolo TC r tTrnnsmission Control Protocof) se describe en la RfC 7Y3 y otras pos-
te riores. Es un p rotocolo de la ca pa d e transporte o rientado a conexión. Se diseñ ó p <1Ta
p ro po rcionar \1Il,1 corrien te de bytes confiable a través de una m terrcd no con fiable, es
decir, con TC I' e l flujo de datos entre e l or igen y el d estino pa l1.X-'l 'n con tin uos: Sl' p ro-
po rciona un circu ito virtual p a ra los da tos Lj Ul' es lla mad o conex ión. Los co njun tos d e
da tos en Ter SI' llaman segmen tos.

Emisor Receptor

Abnr con e xIÓn


Abrir
conexión
l -
. ;.. Int&rca mblo . ;..
"'~

FKJurd 8-2 Pd~O~ en una co eoon

IB9
L.1b V IEW

C o mo se .' r n 't:i.1 e n 1.\ íi¡.;u ra g.2. una co ne xnm D.'tskol irn p hca tres P.I.... >S: a b rir u na
ex....... xíón, in te rca m bio d l' dol hl:> )' u n cu-rre de la eon''''II i''n.

AI i~U.1l qUl' .... h.lci.l r-n 11' crm lols .1 m c cames, Te r Iien.' uno-, ( a m r os ' '''lu iv.llt'll l<..os en
1.1 cabec era d loJic.1d . >s ,1 II>S p u.. rto - , Cada h(>s1 pUI...1.· lI'm ' r varias ( OI1" Xill/ll'S TC I'
ab ierta.. e-i m ult árwarm-nte, (.,d., u na en u n p uerto d ist in to. OITll d t' 1<>s l".l m pos de 1.1
cabec era t'!' Im .1 M' ril' d . , 11.llo:s qUI' strv en pilra m d lCdr po.·t ició n .I.. .:o n" 'II iú n. dt' finaliza -
cí ón, n"Co nnnm it·ntl>S. ,'10: .

01 ro pTl11\ x-olo l'S U D I' ( U-'I -r V.It.I¡.;r.1I1l i'rotlk"I ,I) . defin ido en 1.\ RFe 7t>H, 'l UI' ..s tá en
el mismo nivel '1 u.. TC T'. No an ad l' fiahilidad , control d t' flu jo n rec u pe rac ión d e e ero-
Tl'S J 11' e u.lI1 d n fu ncio n.l .....bre él, s im plemente Ir.,h.ljd co m o u n m u ltipl t',ur / d l'm u l-
tiptexor p .u., t'n\ 'iM y n -obi r d .l l a ~r,l m.1 s. u"'lI1d" Ins r Ut'rll>S p.H.l d iri¡.;ir 1".. d ata-
~ ra m as.

A nivel pr,kl in l po.ldt' m .>s clln..idera ra ul1rcomo una sim r lil icold "'n hols t.l d extre mo
lit- TC P r ol q u.· no pn'p"Kiuna n in¡.ium""tt' s u .. ...·r\·id . >S, .:> c.:> m oio lOS u n protoc olo m,h
"hge ro" y rár id o . U D I'!ol.· eueh- u.....u en d p licacil11l1'S q Ul;' req uwran poco intercambio ti..
in fn nn .:>eiti n y ..n n 'ltlos ' lul' no 1.'n ",.1I1 m uc ho IrMkll, m il' n lr.1S ' lUtOTC I' ...• usa r u ando
ha y q u,' Ir.msmitir nUlt'h.1 in fo rm ació n o cua ndo el vo lu m t'n tl t' lráfifu en lol red 1'S
rned¡o l' alto.

En 11' h.1 Y dt n ccíone, ' Iul' si rven pM.l en caminar 1.1 in turmaci....n tI,- u n h.>s I .l otroatra-
n ' s .1... l., TI'tt; Y en Te !' y UDP h.IY puertos qw.. sirven P,U,l identi fica r q ué aplicación
l'Std .lsoe i.lti.l .l ' ...., in formac ión. Pn r 1.111111pa ra est.rblec e r- u na conexión l'ntrt' li llS eq ui-
pt~ se neccs it.m toslt~ d .>s tla lllS b;isk. >s: p ue rtos y din.occi tlfl 11'. A l'Slol f'-'ln; .1 d e d .110s
...... lella ma ,<;l ":,,..t,

8.1.3 Nivel de aplicación


Pu r ..ncima d t'! nivel d r- Ira n"p'lTl.. \ '.1 .,1 d .. a p lk...cion . En 1'S1e ruvel, s i "" U,"1 .... >PTl' TC r,
...· l'o nsid l'r,1 quelos d .llt>s t'fWi.1.i 1>S 1I1~,m siempre .11 dl"Slioo correct o, si n f.l ll. 1S y e n e l
" ,,11'11 ad t't"u.u lu. A \'t'n os, t.Il'f'l-·nd i,·ndu del modelo de n ·fl·l'l"lld.l , se In",·rl.m entre 1.1
ca pa d l·lr.,I1Sp',r1t' y d l' .ll'lie.1d ún l'l:> niveles tÍt' ..."'ión y pn"Sl·nl.'citm ,

A l~u mlS r n 'I" .:ulllS d.' . ...Il· nin'l !ol.' n : HlTP, s~nr. fTr. T\1P. Te11ll'l ..,

8 .2 Arq u it e ct u ra s hab ituales


Ib y va ri a~ ,ullu itl'l:tu r.l" h.l o ilu...ll'S .lu.' ...' U<;,1n t'n Iils .1p lic.Ki" m "S ti.· n ...! , ...· Ir.:> l" d I'
1l.~las. p .llTlll1los y abslr.lccionl"S q Ul' f.leilila n 1.1 e n ',lCi"'n J t' s isl,·m .ls info rm,\l iClIS. l ..ls
.uquilee lu r.ls Ir.ld i"'¡un.llnll'll l(· m ,i s h.l0 Itu...l.os su n : monlllilie,l, r hc n ll'-sl-' lVid llr y dI'
11'l'S n ivl'llos. En .osl t' p u nlo ...· l'Sluti i.u .i n I...s d us m .i... ctl m UlIt"S l'n l·nl orn..... d t' n....t .

n m"d d u e li'''Il t.~r\·id "r lOS u n... fu rmol d I" d ivid ir 1,1S a p liedd. lOIos. Fn t'!'1.\ .H'I uitl'Ctu "
r.1 h.1Y un.l p.HIt· .id s i..tt·m.l lld m a,t¡ di e n t.. q u.· s" lici l.:> ...· r\· icios .1.. 1.1 , ' Ir.l P.HW lIol-
m ildd ...·r\·illn r,

190
Pro to(o los d e (omun ludón: Tep )' UDP

El servidor por lo general está escuchando (lL<;tent'r) y cuando un cliente 1'>1.' co nec ta. el
servid o r atiende su petición. En entornos de red e l clie n te estar á escuchando en un
puerto de u n host. Tanto la di rección del host como el p uerto d eben SC'r co nocid os por
el clie nte: éste, en principio, usará cua lq uier p ue rto qUt' est é dispon ible en su host pa r<l
establec e r la conexión. Normalmen te el s istema operatívoes el encargad o de );t'St ionar
los p uertos.

Lo s dientes pueden se r livianos (co n poca ca rga co mp u fa ciona f] o pesados (el cliente
realiza ],1 mayoría d e las tareas ). I'o r su parte a lg u nos servid o res podr án a ten der a
va r ios clien tes si m ultá nea men te. Tan to clien te co mo servid o r p ueden residir en la
misma máq uina o en máq uinas diferen tes.

Un l'jemplo serta u na a plicación web e n la que el usua rio u tilizaría u n na vega dor web
(clien te ) para abrir una co nex ión TCP/ 11' con un servido r. El us uario p ude escribir en
la ba rra d e d irec ciones algo corno ht t p . / /158. 42 . 148 .2 2:2 , 80, como se puede ver
SI' indica la dirección 11' d es tino 158.42.148.222 y un p uer to, e l BIt En el host d es tino y
en ese p ue r to d ebe haber un p n1gra ma esc ucha ndo: e l servidor web. Este se rvidor q Ul'
estaba escuchand o en el p ue rto RO, acep ta la conexió n y, una vez que r-l cliente con ñr-
me 'lvv realmen te hay un se rv idor a l otro la do, env ia rá una petición HTT I' en la q Ut'
pide u n fichero. El servidor leería esa petición y busca ría el fichero para env iarlo a l
clien te . Una vez q ue e l cliente recüe el fichero q ue ha b ía pedido se p ued e ce rra r la
cone xión.

La a rquit ectu ra en t re pares o igua les (Pet'r to Pet'ro P2P) consta de varios nodos tl ue
en un momento determinado pueden tener funciones de- d iente II d e servidor. Se tra ta
de un a red descentralizada en Id q ue los nodos compa rten s us Tt'CUTSl~ (ca pacidad de
có m p u to, a lmacena míen ro, ancho de band a ) pa ra llevar a cabo una ta rea .

8.3 TCP/lP en LabVlEW


l.abVIF.W tit'Ol' im plemen tad as funcio nes para CTt'<lT aplicaciones tl ue usen Tc r o UD r.
51.' cons id eran funcion e..' S de bajo nivel, en e! próximo ca pítu lo se estudia r án alg unas
funciones d e m ás nivel.

La s pak-tas cnn las funciones de Te\' y d e UDr est án situadas en Funcions > Data
Com n Hln ica tion > l'rotoco/s.

Flgur,:¡ 8-3 M('nú~ de roncones Te? y uor

19 1
La bVlEW

En Ter y UDI' se s i¡.:m' 1'1 me-mo modelo de p n>¡.: ramd(i(m q UI' con ficlll'n rs: el ronrep-
to de a brir. I' 'l'r h~n b i r y cerra r

• TCP Listen ~
rJP\ ,. . idr~s - - - --,

' tIfIlQte adot10


00>e0<.t JM (....
~
foo, ........: -1)
" ,,00' rI (no er.OO' )
p p<Qlvp ..... root: P .'!ddrPM (1 )
~~;:j:a~~(OI'f"oMhOn
. emote pcwt
ess
","11' out

Crea un Ii.~ 't'''t'' y espt'r.l en 1'1 p u.' rln ....Ieccinn.,d.. ... qu.· n.·¡.:u.' una ...... .m·. it'lll. N(ll.~·
q ue si no • t pt"Cifif.l u n ncm po maximc paf<lI"'pt.·T<lr, el nu¡.. dl'I'jl"Cllciúl1 del hi lo del
p ro g ram<l l,·lil·nt· h.l..I.\ que 1l' ' )I:UI' una pt'lk ión de ron t'" ión , Por lo ~'·fll'T.l l SÚll} ha ce
f 0111.1 l'!'opt'l:ilifa r el puerto vn d q UI' lit1 1t" '1UI' escuchar. en G l ..... ' .h' tener m.i!'o til' un adap-
todor J o' .......i 1.1m bién ...... PUI.Jt' selecciona r uno de l'll.~ co n ,It" . 1.1.ln~", Enl!\" lus pol r á-
metros 'lUI' til·\ ueln·I'SI.i la di rt'('<;ión IP. e l PUI'rt" del ho" l que ha abil'rtn la conexi ón
y un m olnl;',dnr o tvmdtcr (r onn....·tit.1l IV¡ 'lUt' !>in 'e pdrd rn.lrwj.lT t'!>d (t'no'" ión dl"!<d¡'
n l l'l'" VIs.

Este VI ..ud.· u....r.....' p.lr.l ......·M .....-rvtd o........ 'lUt' acepten re ne ... iun.'S. In ternamen te U !><1

Ter e n "" t' u ..tt·nt·, v Tel' W.lit Or¡ u.~ 't'lIt'r.

• TCP Open Connection\ UCP Open ~ r-41


...
........- ~. ~~~r¡-- tl ..
",.00'
o:>(tJo¡ 110

W
ret adct~ -==;(
~. -___~ .~. :~~ ' ID
~ ~~
~ms (6OOCO)
""00' I'l (1"10 er. OO' ) eoTOO'l'l (no l!r' or )-'
lot:.,! por! - - - '

Abre una n'lw\ión Te l' con otro h....I. Como p.u ,lml'tros de enlr.ldd dd~ tener el PUl'T-
lo d l...lin" . l .... r ,lf.lmt·ln", dl' I'Tllr.lda opcionah-s .....m la J in'l'Ción del dt><otinu (si no ......
t""pt"CifiG\ usa 1.1 del n n lt·n.l dnr Incal ) q u.' puede ser \., din'«'itln 11' u el rombn - del ht~l
(t'n este C.l ....' el ..i..tt'nl.1 opcrativu ~'I'TlC ,lrga rá tÍt' traduc ir el nombre a d in ,.:citln IP), el
puerto 1t" ',l l (..i no .....• in<! ir" ningunolnasigna el !'o i..II'm.l u f't' r.l livCl) y el l it'nl"" de t'Spt••
r<1 r <1 Ta Id ( un h rm.-.o ón lid cbcr uc. Devuelve u n manejad or (n lflrwl'tltlfl Il J) para .....·r
usado en o tros VIs .

UD" fin tit'llI' 1,1 (( 111(1'1'10 dt' conexi ón . 01'1'11 UIJI ' sim pk-nn-nn- sirve P,IT,I indica r .,1
!'o i..terna n pt'r,llivll 'l ut' puerto debe n·.....-rva e pa ra las siguientes nf't' rad tlI11'S.

• TCP Write \UDP Write I!fl r;I

192
Protocolos de comunicación: TCP y UDP

Estos Vis usan un ma nejad o r pMa envia r d atos. Como se puede ve r, tan to en la kx- tu-
ra co mo en la escritura, los datos son de tipo Mring. Si se quiere e nvia r otro tipo d e
da tos h abría qUl' convertirlos a strin¡;como se ind icaba l 'n el cap ítu lo 3 . En Ter el des-
tino esta espec ificado en el man ejado r mient ra s q ul;' en uor h ay que indica r tanto el
p uer to corno 1,1 d irecc ión sobre la que e scribir, para esto últ imo se p uede u sar 5 trinr;
ro TP.
• TCP Read \UDP Read 1';'] ~
:;;;i~1='L w .oediui ,IDoot
.~P~~~~conoecbon
rrode (standard).
c~lionl D
byte5 lo ~1Id data Q'-JI: coonection
max see (548)ID data oot IDoot
tomeoo.t ms (2SOXI) ",ror oot tomeoo.t ms (25lXXI) error oot
error in (no error) error n (no eflor ) port
addre..
En Ter' este VI trabaja sobre una conexión ya establecida que se indica media nte el
manejador (conl1l'Ction IUj. Además, pMa indicar cuan tos d a tos St' deben lee r S(' US,m
los pa rámetros bytt's ro rcad y mooe. Cu and o el ta maño de los d atos que se d eben II'l' T
es va riable h;¡y dos opciones: u sar u n ca mpo e xtra en los da tos a modo d e cabecera d e
tama ño fijo qul' ind ique la long itud de los d a tos o u s ar u n ca rác ter especial pilra ind i-
car el final , para es to ú ltimo Sl' pued e US<1r el valo r CR LFl'n eltermina l mode.

• IP TO String y Stríng T O IP Qr:STRI 1m ti

1/' To 5trinr; convierte una dirección II' represen tada mediante u n numero e ntero a un
str ill[; que puede ser e l nombre del ordenador o la direc ción JP. 5 tring To /1' hace lo
con tra rio, a parti r del nombre de u n ordenador o un .~ trjng q u e indica la di rección JI'
(por ejerrvplo un !>tringc uyo valor sea 192.168 .0.1 ) obtiene u n n ú m ero q ue re p rt'St'n-
ta su dirección 11'. Si la di rección Ir I;'S A.R C D, el n úmero va ld rá . A . 2N -t H ' 2 1 ~ -t e
2" -t D. Si se selecciona la opción d e M ult ip lt' Olllput en el men ú co ntextua] puede
obtene r más d e una sa lida en form a d e arfay, en es te caso cad a posición del a rrayser ia
la dirección 11' pa ra cada interfaz de red .

Para finalizar también hay qut' come ntar q ue, como se d ijo en los ternas an te riores. lav
librerías VISA ta mb ién pueden com u n ica rse a través de TCr/JI'. En la figura 8-4 se
p ued e ver un ejemplo d e d os prop; ramas que hacen lo m ismo : en (a) se usa VISA y en
(b) las funciones TCP estudiadas antes. El programa cons is te en abrir una conexi ón al
o rden ad o r local en el p uer to 80, d espués se escribe G ET\ n, a co n tin uación se leen l OO
bytes d e d atos y finalmente se cie rra la co nexión.

lO'
LabVIEW

(.)

~r
OH
L-_~
~)
Fgur~ 84 TCP/lP con V1~

8 .4 Ejemplos
8 .4.1 Ejemplo 1: Servidor de Telnet
8.4. 1.1 E):pJlcad6n teórica de Telnet
Telm-t .... un p rotoco lo d e la ca p.1 J .' apllcacl ón '1Ut' sirve P.lr., acced..r a una m.l'luina
d e forma remota y ,:,.:.d" T,; t'CUI.u comandos en una consola. P.'Te xteru..íó n tambié n se
llama Idn,,! a l p l"O); Ta lll<l cuen te '1Ul' permite acceder a un servidor,

IJa T•1 fu ndon.lr es necesario ten er un servidor de telnet fu ncionandoen la rn áquin , qut'
Sl' q uiere cont rolar, nurmalmente en el p uerto 2..1 y un c1ien!l' en 1.1 máquina d esde la
que se .... m!wla rá.

Tod os los sistemas operativos s ut'l.'n tener u n cuen te d e telnet. Po r e j. 'm p ln , en


Windows SI' puede acceder a el d,'~I., una ventana d "~ M5-[X'>S escribie ndo ..telnet».
Para a b tir una cone xió n sólo ha y 'l uo' escrib ir <c o p.,," 127.0.0. t HO" d ond e 127.0.0. t 0'S la
d irccción 11' y 80 es ,.] p uerto remoto ,, 1q ue c onec tarse. Si no se especifica n in ~ün Pver
lo usa r " r d efecto el d e l"¡nl't: el 21.

En ,"Stl' t'jt'mplo S(' CTt'.lrá u n serv id.,r de te lne t .11q Ul' S4.' podrán conec tar ctícntos d es de
ot ros ordenad ores p<1T.1 "j.'Cular comand os d e MSooIX )S rem otamente.

8.4. 1.2 Código


Este e j.'mr l" (onst<l de dos p artes p rincipales : comunica ción TC I'/IP y t'¡"'Cudtin d..
com andos. Una d t'SCril'ci ún más detallada de las 1.1Tt'aS de l servid or sena:

• Fspt'rar ,1 recibir una petición d., conexión, CUM1'j,) esto ocurra S(' ,l(ep t.lT.'i 1,1 cone-
'¡¡lÍn y Sl' mos tra ra u n m ens aje d e p resentaci ón.

194
Protocolos de comunicaclon: rce y UDP

• Leer d comand o q ue envía el cuente. El cliente ir.i enviando car ácte r a rar ácter
segú n el usuario los teclea . Se empleara etcaracter fin de línea para indica r C'! fina l
d el coma ndo, lo cu al da rá paso a la ejec ución del mismo . Tam bién se deb e co m p ro-
bar si el co mand oes el d e s alída (en l'Sll' caso SI' h.l L'1l'~i dn «exit»). Si no ~ «l'xit»
se p asará 10 recibido al s istema piHol q ue lo ejec ute p o r medio dd VI Sysh'm E''l'C
de l men ú Punctíons > G llIlll'ctivity > Libraries & f;>"t'(:u t<lblt'.~.

• El res ultado de este coma ndo SI' en vía a l cliente.


El cúd i¡;o com pleto se muestra en lil fi¡;Ur,l 1)-5.

, se. _ , ~

•• •••••••••••• •••• ••••


=
,-
-ñ:' -.' •

1
I~ lo- •
",.-
~ •
1 L.A-•
liEl
~ .,.1 .I!)1'- ~
;..'B> '-.1' .,.,
t=m'~ I
.........." ele boonv<>rodo

m " .
~ E> 1l! rn
m E> 111
fJgw a 8 -5 Sl'rVK]of Telflf'l

8.4. 1.3 Resultados


Para poner el servidor en fu ncio namien to p rimero ha y q UI' configu rar su p ue rto y
directorio d e trabajo . Después hay qUl' ejec uta r el p rog rama y ab rir u na conexi ón telnet
co n el o rd enador donde se ejecuta el servidor, p <lra esto basla escribir desde Id consola
« r.e j n et; 12 7 . O. 0 . 1 23 ».

FrqwiI a-e. St'rVKlor y Cliente tclnc!

19 5
La b V IEW

ti.1YqUl' u-rwr en cuen ta qUl' l~tl' pro¡;rama pn_ 'nl,l '11¡;u n3S lirrutacione.... Un ,l ..1.. ..lIa..
LOS qut' sú lo 'll't'PI,1 una r onexion cada vez. U n,1 mejora >;t'ri,l hacer u n servidor qUt'
p ud ie ra 'Kl'Pt.H va rías conexiones ,1 1.1 vez. Otra limitación es que Sy~ I. 'm Ew'c sit' m p rt'
" jt'CUI,l los coma ndos en 1'1 m ismo direc torio.

8.4.2 Ejemplo 11: Protocolo estándar


8.4.2. ' 8IpI1cadón teórica
En 1...11' l'jt'm p 10 st' im pll'ml'nl.u .l \Il1<1 l'l't.lllt.'l'i.<l P,]rte d. , 1I n elien te t i n!'. 1.,1 f unciún .1,,1
p rog rama se'r,\ k- er una imagen co l' Kad a en un -crvíuor web, pt'ro l'~\ im.l¡;l'n l'SI ,H a
coloc ad a e n un directorio p lll le¡;¡J'1 por con trol.....'ila .

IlTIP es 1'1 ,w rú nim n d t' H I ".... -r T.' xl Tf.m.~ ft'f Pm t" ." I. l OS d eci r, protocolo de tr ans fc-
...-nc.a d e ilipt' rlt'xtn l-<l versi ón ,K h l.ll de HTTPt'S I.1 1.1, Y su e...pce iñcac¡...n '-'SI,; e n , ,1
documento KrC-261ó. Es un protocolo sin estado ¡',\ S,I<! U en ASCII qUt' U~l el m odelo
cliente-servidor. ¡:¡ d il'ntt.' ab re una conexión h,wi,] " I .....-rvj dor, I;Slt ' r....p nnd.. y adern é-,
d ('rr<l 13 co nexión,

U n mensaje II' ITI' .'StMia fnrm .ld u por la cabec era. con u n,l linea inicial para es pecifi-
CM 1'1 tipo de acción, una serie dI' c,lm pus y, opctonalrrn-nte, d cut' rpn de l rnl'n S<l jl'. 1.1
lim-a in icial 1... d ill,rt'nl., si st' lr,ll.l J .' peticiones 11 re-puestas. Si .... 111M petición si¡;ul'
el I'Sllll('m,1 «M étodo rec urso versión » }' si es u na R'SPUI'St.l " Vl'rsiólll·ú.iJ¡;n Ml'ns.ljl' ll ,
lüy varios métodos aplicables incluyendo t'Xll'nsiolws, los má s hahit uah-s so n CET y
POST. G El st' U"'l para pedir cualquier tipo d e información, cuando ...' p idl' una pág i·
n.1 web 1I cualquier ot ro fichero .... U"'1 este método. En el ejem pl o ,k 1.1 fi ¡.;u r.l 1:1 ·7 ....
puede ver corno el r'lien te realiza una petici ón J I st'rv i,lor nlm put"!'l,l pllr 1.1 linea «G El
/ ru lJ./ ind l', .hlm IlTIP/ U h. (método, recu rso y \'('rsü' n ). La linl'.1 ini(ü l ,11' una res -
pm-sta 1rene la mbien tR'Scam pos ....'p <1Tados pu r u n l'Sp.l elO: eversión ctltli~u mensaje» .

_.-
oIET _ " " " t<TlPf1 o
te-- """_ . ...«_ (

_.-
t<TlPfI O 2Dl)0K

--..... ""'-...
~ """"'_1

196
Protocolos de com u nicación : TCP y UD P

Ent re Jos cJm pos de Id ca becera J-1 TII', lo~ t ípicos su ele n ser:

• Po r porte del cliente l,l iden tificación del navegad or, lenguaje p referido, tipos d e
ficheros aceptados, etc.
• Por parte del -erv td or sc liento' IJ fec ha, versión del se rvidor, etc .
HTII' admite ademá s o tras muchas o pc iones, ent re otras la d eno mi na da b,l.~ic ,1IItflt'n-
tic,l tion ,~ ch('m,', lJUl' lO<; un método po r e l q Ut' el usua rio propo rciona al servidor unas
credenciales (nom bn- ,k USU.Hi,' y nl!l trJ~r1a) p,ua acceder il un ft'{'urs tl. Est.' m étodo
pre~upnt1l' que 1.1 conexión es sl'gura porqu.' el on v ío d e las r rcdoncialos no StO hace
cifrad o, s ino en tex to plano codificad o en B.1St'64. La pe tición de una pági na con este
m étodu serta:

1. El n,1\' l'gador pide la p,iv;in.l con el método GET.


2. El servidor responde con u n ct"l.ii go de error st' r1;¡ I.lmlo q Ut' no se tiene autoriza -
ción pilfa acceder a l rec ur-o.
J . El nan'v;atior pide .11 usuario UI1 nombre dt' us uar io y con traseña, cuando st' han
introduci do el n,l\'egado r vuelve ,1 pedir 1" misma p ágina tambié n con G El' pt'ro
an.1d ie ndo CO ln O un ca m po de 1.1 cabecera HT lP la credencial.
.t, El servid or com prueba si es válida la ere...í enr tal y fina lmente en vfa la p<igin.l.

1 ~1codificac ión en lJast'M es mu y sencilla. consis te en ir h aciendo g ru po~ de In 's ra rac-


teros del string inicial (usuario-econ trasena}, ca da uno de estos carac teres t's de ocho
bits (ASC II), pnr lo tan to habr á 24 bits. Estos bits se .1grupan ah ora en g rupos de st'is
bi ts qm' SI' corres ponden con un su bconjunto de 65 ca ra cteres de la tabla ASC n . Estos
cuatro caracteres so n codifica dos n uevamente con ocho bits por lo que s,' rasa de tres
caree n-ros il cuatro y el tama ño tota l se incrementa en un 33%. La im plementación
puede ser mu y sencilla usando tablas.

Res umien do, una petición de u n fichero qU(' req uiera con traseña po r pa rte d e u n ctu-n-
le web a un servidor prk.iría consis tir en :

GET / privada/fichero, jpg HTTP/l,l


Accept : i ma g e / g i f , image/ x - xhi tmap, ima ge/j peg , image/p jpeg . ' / '
Ref erer: http: //192.16B . O.3
Ac ce p t - Lang ua ge : es
Ac c ept - Enc o d i ng: gúp , de fla te
User " Agent : Mi p r ag r ama en LV / 1 . 0
Host : 127.0.0 .1
Con nect ion : Keep- Al i ve
Aut ho r i zat i on : Ba s ic cm FmYTptb2Sr Z X k ~

8.4.2.2 Cód igo


El prngr.lm ,! St' ha dividido en va rill~ slIbVls cíe 1,1 forma indicad a en la figura M· M El
VI p rinci pal pl'di rá (',1\\,1 cierto tiem po una im.l gl·n ,11 s ervidor web. Otro VI llamado
«b.l'';l'h.t ,vi» sera d l'nc.lfg'ldll de const ru ir el cam po Author izatio n dI' la petición

19 7
La bVIEW

.Id fichero ,1 pa rt ir .h' un nom bro d i' usua rio y nln lr.1st' jia. t'SIt, VI usara o tros dos
s tlbVls 1I.1 m.l,t...s ocftIlHfica, v i» y d .l b l,ll3tH.v i». El VI oc lt"l' d i' wcb.v¡» n'alil,lr.i 1,1 r d i.
r-ion <1 1 servidor web v Tl'Cibir,í s u n OSptll'Sta .

- •

El primero d e l...s ..nbv ls di' 1,1 ti,,;ur,¡ H--I'l (fila cent ra l a la izq uierda! 1'S .. b,¡~'6-l. \·i .
(li,,;u ra H--9 ). No tit'I1l' mucha Tt'!,ld ón ( un los cunn-mdos d i' l'SII' ca pitulo, s u raree t'S
d iv id ir en .s lrlf1~ « us u a r iO :(t lll l r,I ~'I'I.I . ,'n ~rupos dt' rn -, ( a ra( ll' n'S, ,...10" In'S ca ractc
no-.. d e 8 bits cad a un o (2-1 bib l .....n d ivid id os po r «ft llli fica.v i» (fiI,l infe-rujr, izquierda
dt' 1<1 ñgura 8-1'l) en cuatm g rup. v.;. lit< ó bits cada un o y convertid os ,1 n úmoros. Los cua-
tro valores obtenidos St' p.1S<lll JI VI «lab la Bó4.v¡. (/H,j inf..riur, d e rt"l' /loI d.' 1,1 figura 1).
I'l) don d e se e'odifica n e n ASC II d irec ciona ndo Jlgulld de 1.1S ptl'> icio ll' ''' di' Ull grdll '¡fTdl'
q u., contiene Itllh 'S los valores p'l'olbIL'!o. u.... c ua tro ca ract e res result.mn-, ...• concatena n
y .... repite 1'1 pnlú"'o pdrJ el sig u i,'nl, ' g rupo d , ' 1rt'S ca rac te res.
UIl.\ H'Z codificado l'I nomb re d ., usnar¡o y la contra ....'I'\,l st' n'aJi/.H;i 1,1 pdidún HIT!'
.11...-rvid or w e-h con "1.'f;' de web.v ¡».

--
ITl
figura 8-9 caseet VI

198
Protocolo s di! comunicación: TCP y UDP

El St'gundn subv t d e la fila cen tra l dc figu ra S-R ( << il'~' de w cb.vi» ), ro mo St' ha dicho
an tes, debe construir el comand o que sor á en viad o ,11 serv id or. Su contenido S(' mues-
tr<1 en la iig ur<1 !'l-1O. Como se aprec ia . 1,1 forma d e cons truir la petición recuerdaa 1,1
ronsrru rc ióu de co mand os SCrlto'n d cap ítu lo sobre G l'lB, usa Fpml<lt /l1to Strin¡;; para
concatena r todas las ca den as d e texto, Si tOl.10 va bien (se esta blece 1,1 conexió n, el usun-
no y con trase ña .... >0 correctos y existe el fichero] la respuesta contendr á u n ca m po lla-
medo «Contcnt-Lcngth» q uC' indica la longi tu d d e los d a tos (la ima gen q Ul' se pide),
usándolo se podrá s,'parar la cabecera HT rI' d e los da tos con 5 tril1¡; S¡¡j'set,

GE T%. HTTP/1. t
Aa:ept : maqelr¡i , rMQl'/x-xbltlMP,~, IfMIJ"/p¡",,;,, ·r
P.efe' .....: %~
A( { ept 'L ~ : e.
Accept-Enrodi"1Q: ~,deflate
Uset -AQent: rrri:lientel ~l l. O
:%s
or-nectoo : Keep·Aíve
Al.thori2atiordl3";i( %s

0JÓn HTTP

(ootent-/. h:

F.gura 8-10. PetICIÓn HTTP

Co mo se ve en la fig u ra !'l-11, el programa princi pa l usa los d os .11l1\'rioR'S p ard recibi r


la unagen y, cu and o 1.1 tiene, la guarda en un fichero adem ás de mostrarla en el Panel
Fronta l.

199
LabVJEW

..... 0

•••
,"", ' n ,

. '"
............ '¡. ¿;!

8.4.2.3 Resultados
Para 1'" ,[>.I r l...te p" ~r.mM "oC ha in:-I,ll.hjo un ....·n ,id " r web '\ I'.J(hl· en l'I ordenador
locdl. Ill.'lltro lklllin'\'l prio r.lil ..... h.l cread o otro di recto rio, el cual 'oO' h.l configu rado
pdr,] '-IUl' lod .. su contenido Sl,I.. r Ul'l\'l ....-r i1e«,.'l.hd o corr 1,1:- r n 'lil'll(j,) I,... .Ip"'pi ,) dd ~.
Esta fonfig u r,K iúll t·:- ....-ru-illa, dl'n lro d el d irectorio :-t· ha creado un fieh l'TIl llamado
«.h t.l cn",:-lI ron el ( " nlt 'nid o:

Au [ hNd ~ "AC C~ d O T~ dtr i. n9i do·

Au thUG ~TFile "C : \ r Ul d \. htpd S 8 Wd"

Aul hTyp~ B<I ,, 1c


r~qu i l'e val i d · u .~ r

Estl' ñcbero Mmr1.'mO'llk ... irv e p.lId indica r '1 uo' el dllt.","·tl'ritl llon<il· 1;"'01.1 dln;dd ll '''5t.i
rn)It~ ld " por contra... ·ñ.l . El c,]m p<.' Aut-hUse r F i l e indir.l 1.1 ru l .l d e u n ...~unJo
ficher od""oio'I'SI.i 1.1 n m tr.l....·ñ.l, r-n ....1.' ra so e . h t.pa a s wd », ~' :-U ron tenido c-s:

u8u.r io,contr A8~~.

Ar '1Ch., so,' p uede c(ln fi ~u r.1T d ., nIT.l .. mane ras . po r ,·jo.' mplu r on 1.1 e1.1n · d fr.ld.l : tarn-
bién Sl' pueden U....H otro-, ....-rvid on.... web, en cualqu u-r Cd<;.( 1 d n ... ultado dd....'r <;.('r el
mi..r rui, d , p lt' .....' nHIt':-t r.l 0·n l.1 h guT;I I'I · 12.

8.4.3 Ejemplo 111: Transmisión de voz

8.4.3. 1 ExplIc.1d6n eeóoca


En ,... n- O'lo.. mplo .... <"To·.l r.\ u n pt....¡Ut>!'IO y s im ph- "...h·m.l q ue t'n\' íl' v,,, ....>l'lr.· UlJP a
V d rio.. nodo-, .1 1.1 \'t' I ,

200
Protocolos d e comunlca clo n : TCP y UDP

flquril 8 ·12 P;¡nel frontal r1e1resuteoo

En esta aplicación se ha usado U DP poll.lul.' prima la velocidad sobre la fiabilidad . TCl '
,1st'g:u r,1 <j Ul' los datos llegan cu rn-cta mcnte ,11 d esti no, p ero P,lf,l hacerlo aT'ldde sobn-
C<l rga d e procesad o y d e in forma ción a la red . míen tra-, que UD!' sim plemente cncep-
sula los datos y los manda.

8.4.3.2 Código
El pri mer objetivo ''s enviar lo s da tos ,1 va rius nodosa la vez, esto t's 10 qm' M' conoc e
romo multidifust ón o nm/tic,!.st. Esto puede realizarse mediante el V\ polimórfico UD I'
MIIltic;!.st 0P"/l.

l',lf,l enviar los d a tos Sl' usará el VI EXPH'SS AC'lllir<' Snund config ura d o con una fre-
cucncia d e muest reo d o R kH l, 1 ca nal, 16 birs y 0,05 st'¡;llndos de d u ración. Pa ra enviar
ml'OOS datos, 1,lS mue-tres "4.' conver tir án de doblo precisión a en teros d.' ocho bits PTl'-

~efto destinol

Z39.Z5S .25S .255

rto or

-..."""
D... . •
[j] 2S5000

FlglJld8-13, Emisor

20 1
L.1bVIEW

vi.mu-nte l'scal,lllos, El factor de escalad o se ha d ('gid o es tudiando los rnáxirrue, '1Ul'


p n......-nta la sena! d i' audio y ajusl,'ndolo f'd ra ap rovec ha r todo el r.lIl ~o disponible. 1 ~It'
prtKI.....' co mp ri me el ta ma ño di' los da tos pem hace que e l sOnido pierda calidad .
Fin.rlrn entc 1.1S mUl'!'otrM, se con vierten a ~ tTing con TYl't' Cds t y S(' envfan por UDI '"

I ,os reo-ptorcs St' une-n a l grup<, d t' m ulñdifus ión a través d e 1.1 d in 'l"d tÍll Ir (tam bién
11,lnM.1.\ dirección d.'1 g ru po), 1)".'s f' Ulls urucamontcueren q ue II'N los d.Hos queh-s lit"
~.ll\ ~" n.'"Ii"ar el pOKI.....l in verso: convertir el !itring a .trTdY d e I'n ll'rus y d es-escalarlo
p"r t'l mismo factor: ,ld ,'ma" también se ha construido u n Wil l'l '(¡,ml indica nd u el per¡....
•lo di' m uestreo (l /H ItH z:=OJIl.;(l l 25 s]. Finalmente, se US<! d VI Tíav W.lI"l'f"orm p ,n,l
1'st-IK h.H e-l sonido.

FKjur.l 8-14 Rl't:\"P IOl

8.4.3"3 Resultados
En la fi ltura H~ 15 St.' pueden ve r Itl~ r>.lIl.' I. 'S Frontales dvlernisor (b) Yde un receptor (,1[.
La st'''.l lt''S del tamaño es perad o (-lOO m ue-r ras¡ y no 1I,'gil a los lí m lll'S p .U,l enteres r on
signo d., un bvte (-12H ,) 127).

f KJUf.i 8· I S Res. ,~ .\<l(l

202
Proto(olos d e ( OmUn l( dtló n : TCP y UDP

8.5 Ej er ci ci os
1. Busca r y t"<tudi.u l' ;t.'m p los en 1.1 ayud.l de L 1bVIEW y en 1.1 web de Na nona!
Insmunonts Sl1b l'\' comurucacion TCr / Ir y ULJI'.
2. Modificar ,'I l'jt'mpln I p,ua qUt' se p ueda modificar el din-ctor¡c d ,'tr.1!:o.ljn .
4. C Tl'aT un rTtl~ r,'m " do.' cha t usando Te!'/ II'. Los nodos dd..'n ser ta n to servidores
corno c!io.'nlo.'S, ~'~ü n In requiera la a p licación.

8.6 Biblio grafía


And n-w S.T.lt1t'nb,m m , Rl..ft~ .11' Cllmpu t,lo.1,'fcl S, Pre n tice H.1ll PTR, 1"1'18.

Doren-e Ad vanced Kl_ 'arch I'ruit'<"ts A~t'ncy, RFC 7Y.1 Tr.Jn smi s.~j¡>ll Cnn troí ' 'rutocn/,
191:\ 1.

N . B orenstcm y N . fn't.'t.t Rf C lJ·1J l\-1ulriptl'1'tlSt" ln t,·oll" M.lil f" tt'n.~itJns, 1':1'1 2.

Nauonal lnsrrumonts. AN lóO: U~ in~ L..JbVIEW with TCJ'I lf' .1/10.1 V DI', 2004 .

TIm Berru-rs-l n ' ct ,,11., RFC 1'J45 Hy pt-'rtt'" t Tra nster Pm tow /, 1':1'1 0.

VV, Richard Sl"\'l'I1S, TCI'I /!' lIIu.~tratt'd vol t. Tht' I'rot pco!s, ¡\ddi~Hl - Wl'Sky, 1Wl

203
Capítulo 9

VI Server
y comunicaciones avanzadas
9 .1 Acceso remoto
Una opción m uy in tt'rt'SiHltt' de L1PVIEW es q u(' permite acceder a u n p ro¡;rama de
for ma n-mota. Pa ra esto LabVIEW dispone de s u propio M'TV ido T web y dos meca nis-
01(1": paru-ies remotos y publicación en wcb.

Estas a plicaciones M ' basan en e l esquema cliente-se rvido r, El se rvido r sera un servidor
web 'lUl' LlbV1EW incorpora, p ued e ha bilitarse y configurarse en Tools > Op tjfln~ >
W¡,P Sen't'T, las o pc iones d e co nfig u ració n incluyen opd o nl"S de ~g l.l ridad para pernu-
tir o d¡'n q ; il r el ,1C(t'SO a cie rtos usua rios, máquinas o arc hivos . El d ien te será o bien el
prop io LabV IEW o bien u n navegador wcb .

9.1 .1 Paneles remotos


F1 primer método qtlt' ~ estudiar á serán los pa nel es remotos. l'ol ra acceder " es ta lu-rra -
mien ta hay qUl' d i ri ¡;i ~ a O¡:lt'f,jfe > Connect lo Remolt' f',lIld, un a vez a lli se introdu -
r ir,i 1,1 direc ción rk 1,1 m,íquin,1 remota y el nombre del VI q ue ~l' quiere visualivar, qUl'
dd..... ra estar ca rgadu en la memoria d .. la máqu ina re mota .

~ Con"",,! lo Ren",'~ Panel I'SCI

0 __

~ ~-----~~~~~~~~;-,


... I
FrglJra 9- 1, ventana palJ 1.;1 coneoon J un p,lrlt'1remoto

20 5
l abV IEW

Si l ~ll'o\' I E W 11Ig r.l conec ta r-e co n 6,itll ,1pa n'C.'rii .'I I'.Hld Fro nta l lh'] VI n -mo to, ve-r
¡.gllr.l '}-2. V.1Tl US clientes pod rá n visua liza r el mi smo VI. s.. p ued e st'ildt.lr .'1controio
n -nuncíara ('1d l'stk e-l men ú '1 Ul' '}P,lrl'Ú' en .,1r.'(·t.'lrlgll ln blanco d t' 1,1"S'I llin<l in ferior
i/ .]u iL'rd a d t,1VI ock-sde el un-mi ,'ont,'\ lll<l 1d ell'aru-l Fronta l.

• • • • •• • • • • •••
• •

También pu....I.· t~ l ud i ,l rst.' el Ir.Hin 1. k da tos ¡:>I,r la n-d a tr,l\"t>s dt· I. ~ p.lIl t'l t~ n-rnoto-,
media n te Too l.s > R.'mole I'. lnt'¡ « .f1/1....·fÍ( >n '\',,,,.l~t 'r,

~
....•••,-
IOJ." --
" CIjo • • " '"

-•
Ca •

... ...... .. 0 ) 1m."


• I ·<J"d·CfN ·" ) l ol ." oo;J!N;'OOt>ll l l ' ;:' ."",~

•Td._ ,,_ """-__


Illl ,,* •
JlJl, lI<. • •
\
• " .lI<' ...
• r! '. •
\, I
- l4.,* .

• ,r •• I
1 4ll,m..



I
"I
m,.· 'i
f.O- •
OU Il .. • . .. . ,
III;UO 00:35
,
00:311
.
tII:I"~
,
oD::¡a .. .. .. ..
-.calt¡tMf' _ _ ~,s.<)

... 1I -
Fq.lrd 9 -) Tr,'¡rlCO de d.lto~ en L.l reo

206
VI Server y c:o mu n ica cio nes avan za da s

9 .1 .2 Publicación en web
En el si~uÍl'ntl' ejemplo se usara u n pn)gfilma m u y sencill o, ximplemente suma do~
nú m eros y el resu ltad o se m uestra por pan talla. La fig ura q-4 muest ra su t'jt'CUd {lll
normal.

""--
·1'

< •
, •

F¡glJli! 9·4 VI q lJt' sorna dos r cneros

Una \'('., croado el p ro gram a S(' PUL'Cil' acceder J 1.1 herra mien ta d e pu b licación en web
en et men ú Too /s > !Vel) }'ubli.shilll{ TI"'}. Esta herra mien ta co nsb k en un ,lsisll'n te q ue
guia .11 usua rio en la creación de una página a trav és de tres paSllS. En e l primero se
e lige el VI y e l modo de publicación; en el seg u ndo se puede person alizar 1,1 página a ñ.l-
d i éndole un títu lo y te xtos 'lUl' se mostrarán an tes y des pués Lid P,1I1l'l Fron ta l: y final-
men te en el torcer paso se g ua rd a el fichero. Dependiend o d e la versión de LlbV IEW
LJUlo' se disponga habr á m as o m enos p arámetros dis ponibles. Los modos d i' publicación

p,lTa la versi ón profesional (ver fig u ra 9-5) son :


• Emi>l'ddc<1: permiteel control n-moto y la mon itorizació n del VI si lOS t.; ca rgado e n
memoria (abie rto ).
• SIl.J('.s ho t mues tra una ima gL' n P NG del Panel Fr on ta l d el VI, es deci r, una ca p tu-
ra de pa nta lla . No permite el con trol.
• Monitor: ig ual que el anterior, pt-' !\J la imagen ~' actu aliza cada cie rto tiempo.

Una vez guardada la p ágina puede persona ltzarse ab rién dola con un ed ito r de te xto y
usando cúd igo f1 TM L est ándar, entre ot ras cosa s SI:' p u eden inserta r im ágenes, ot ros
te xtos . etc.

En l,l figll ril <J-ó p ued e verse u na ca p tu ra d e pa ntalla en 1.1 q ue SI' m uestra el VI anterior
en lAl bV1 EW y el mismo progra ma p ublicado en una página web v ista <1 trav és de un
n,lVl'Wltit rr. Sto' p uede mod ifica r quien tiene el control dl' 1<1 apl ícacíón a tra vés <i d men LÍ
'lUI' aparece en el rertangulo blanco d e 1,1 esquina infcru rr izquierda del VI.

El funciona mien to lOS 1'1 sigui('ntt': el na vegad or pedirá 1,1 p,í g in'll'n 'lUI' Sl' p ublica el VI
,11 servidor wcb, el servidor en viar á 1.1 p,íg il1<l al n,l\"l'g'lLior, Id p.í g in,l web moxrr.ida

207
L.ab V IEW

n "]lll'nr,¡ un plu¡.;"in quedebe l"1'> t.lr inst.IJ.I,jll ...n ... 1 n.lV q~ador y d plug-in u tili/ ' H,\ l<1s
funcione-, d e 1....II.VIJ-"l V Run -Tirm- En~int' pa ra mostra r y co nt rolar d Panel Fmntal.

_......_-
._(:::::::~:::~:::;;;;::) - ':---- ..,
CoN
...

--_... __ ......._-- ...._


~

---
0 f ' '' '
....

_
0 _

0_
.--_.""' _... _-
l!I _

_._-_ . ... .....


....... _ ....

... . .-
......
.. .. :: '.

- ~ .-
l~ :. _

_....-
. _. --- I I
~
I I ~
I I - I

Título de la p¡í~in:.1
._.....- ........ -
..


• 1 l!iI
j"G>- ..

,•
rltj lll.l '1-6 P.!!tJIIJd 1Nt'l> p U I,ll(dl..Id con el VI t'Jl IlJf lClOnamU'Jl1O

208
VI Ser ve r y comunicaciones avanza das

9 .2 Enlaces de d atos
En 1,1 secci ón ante rior st' ha vis to la fo r ma d e co munica rse con una a plicaci ón re mota.
En .\Ig u na ocasi ón puede que solamente in terese acced er a unos d atos concretos y usar-
lo~ en otra .1p lic.l ci ún, en es te caso los panek-s remotos y la p ublicaci ón en Wl' D no sen-
,1Il la solución óp tim a.

9 .2 .1 DataSocket
D.lI,l Stx kt't t'S u n mé tod o q ue hace que la comu nicaci ón ent re apltcac íoncs a través J~'
Id red sea más sencilla (J~' m ás a lto n ivel ) que con las fu nciones TC r o UD!' y má s fle-
xib k- q ue los pa neles remotos o la web.

Da ldSockd St' compüne d e un " !'I y un servid or. El 1\1'1 p roporciona las funciones p,l r,l
com pa rtir d a tos de Forma bi naría y el servid or maneja las conexiones co n los clien tes.

La co m unicación fu ncio na sobre var ios protocolos:


• OSTr (D,lt,lSockt'f Tr.mster Pmtoco/): es un p rotocole qU l' funciona sob re TC!'j l!'
discñadu espccffka mcn tc par¡¡ DdtaSockct, en él in tervienen lres elementos : Data-
S oc ket Sor ver (puerto 3(1 5), u n p ublicador (I'lIbh~her) y un subsc riptor (Sl/V-
sc6V<'r). Lo s puhlicadorcs envían datos al se rvido r usand o ,,1 API Y Il's subscrip-
lores los leen. Ta nto los publicador,..>s com o los subsc rip to res son clientes d el
servídor, LIS d irecciones del p r otoc olo lJSTP son de la for ma : d s tp: / / nombre-
Maquina/ d atos .
• O I'C (OrE tor ('nll.·('.o;.~ Con fm /): se US<l d,' forma panx tda .1 DSTI', vn lugar d e
Da taStx: k('t Scrvor US,l u n servidor O I'C (\'1 mec anism o pa ra ad ministrar variables
com partidas es un serv idor O PC). O!'C I'S un est án dar de comumcacíón entre con-
t rotadores industr-iales. L1S di rcrc toncs so n o p c : Il n o mb r e Ma q uina/ -
n ombre Serv idor I d a t os, l's las direcciones ad miten parám etros pa ra con fi gu rar
1'1 funciona mie nto d e la co mu nicació n O l'C. Esta comu nicación esl,' IOSIX'Cífic<l -
men te d i ~n <llia p.u.l com pa rtir da tos en tiempo real.

• L(~) K OUT: IOS t!' protocolo, a l igua l q ue OST!', fue d esarrollado por Na tiona l
lnvtru r nen ts . Ta m bién Irab aja sob re I'Cl' / Ir y se usa con SCA DA5, el mód ulo 1JSC
y con dispositivos Pieldf'oint. Las direc ciones dependen d,'la ap licac ión .
• H ITr y FfP: son protocolos clásicos y bien conocidos tlUt' funciona n so\"> rt' TC!' 1 11'
y cu yas direcciones son las URLs np íca s. Pa ra trabaja r con ficheros di' texto se
puede inclui r " [t ext 1,. .11 final de la direc ción.

• Fih-s: en esl,l ocasión Il'S da tos Sll11 leidos directamente de u n fichero. La s dt rcccto -
nes so n file ; \ \nombre Maqui n a \ r u t a \ fi che ro.

Los m.ís usa dos son los J os p rimeros protocolos. Pa ra usar el protoc olo OSTr hace ¡,111,1
'11.1 \' SI' ('sl~; l'jeculandol'l Dat,lS<xkt'l Server, Sl' PlW' il' in icia r la ap licación en la ca rpeta
dt, N<ltiOlMllnstnmll'nt.~ > f),l t,6 o..·J.l't ,'n el menú de in icio de wlndows .

209
La bV IEW

p==.e..-

1'0 1,1S vcrsionos Kx di' LabVIEW, N.lt iolldl lnstruments recomienda USM el Sh,¡n.... t
\',lnJb1,.. En~iflt' (servido r 01'C) r 0Ttl UI' 1'" más r ápido y co nfiable [ver a partado 3.4.:'\1.

9 .2. 1.1 APT


"n [ ~l b V I E W d AI'[ lIl' D.llaSnekt,t lo formol n las funcion..... di' U" t" C"mmunicJh"n >
I ', lt,J~l<.:kd.

• Datasocket Open _

"" ~
mo.... il"1II1}--
l:II*> , _
cor"'''dJ'JO td
ms tnleooI. ( 10000) ~ ""'01" 00Jt
error rl (ro error)
Ab re una Ctll\('x ión a un objeto dcu-rrnmado. En 1,1 t erminal URL st' escri birá 1.1
d irt.'('c iún de acuerdo con el PR111J((11(1 utilizado. m(~1t' sirve pard Indicar si se n-a-
liJ"a ril una lec tu ra. escritu ra, 11'e tu ra / escnt ura o SI' lISolrán b uñers.

• DataSocket Read/Write

1..15 funcuuu-s r.n,l lee r u cscrihir datos a través lk D.llaSod,t.'I admiten ta nto una
URL corno una n -ten-neta ,1 u no cono-eón p n·vi.lm,·ntt' ab ierta Ad rmten cualq uie-r
tipo (k datos.

21 0
VI server y c:o munic:ac lones a vanzadas

• DataSocket Select URL ~

star tLRL (empty)


Tlt~ (5elect
0p000sLIlL
(O))
er' OI' in (nc ....OI' )
~~~~t:~: LIlL ~ed
LIl L
er,orout
FIe. (empt y)

Muest ra u na ven tana dond e se p uede busca r el objeto concreto a q ue S\.' q uiere
acced er.

9 .2 . 1.2 MétOdO d lreao


La fo rma más fácil d e log rar 1,1 com unícacíón con Da taSf>cket no es a tra vés dd, AI'I,
e xiste ot ro método mas sencillo, d ond e no ha y que realizar n inguna programación.

El p rimer p,l~l es presiona r con el bo tón d erecho sobre el control q ue contiene los d atos
a servir, en e l men ú se elige I'ropertíes » V ilfa Binding. En la ven tana qm' ,1pal't.'<:e, figu -
ra 9-9, SI.' podr é t'lt'gir si los da tos se lee r án, SE.' escribirán y cuá l es 1,1 di rec ci ón del ser-
vido r. Este p roceso se realizar á ta nto en el publicador com o en el su bsc rip to r. Cuando
St' h'lga aparec er á un pequeño Tl.'Ctáng ulo ju n to al co nt ro l q ue st' colorea ra de verde
cua nd o ha ya conexi ón con el servidor.

~:::"~'L'.. ='======'J
......,- .....'''''' - .'l'¡

--,., - _-_ .......


--
•-... ......_ 1- - -... - . ....

Fiqura 9-9. Metodo o.ecro de COrn llf l>C<lOÓn con Diltd S<x ket

En 1" siguiente imagen, figura Y-lO, st' puede ve r ct publicador ,l 1,1 izquierda y e l s ubs-
crip to r a la d erecha com par tiendo los datos, en am bos < .l S0 S el Indicador de conexión
l'slá en verd e.

211
La bVJEW

e- 1/11 ~ too- ""'_

I-,"'.~' "

9 .2.2 Data Bln dJng


0.11,1 BinJi ng l'S u n enlace I.' nlft.' u n objeto qUl' conñ ene ti.lIl.~ con un con trol. En
Lat> Vln V ....' pm'tl., O\ '.lr u n enlace tie d ,l h~ cru rv un contrule ¡Il'ms del rfll r io rruy.-c-
lo " do n-d. ( Ollltl d ,l h ~ D,ll aS.x kl.'l 11 va ri ables co mrartid ,l>;.

Para ft' ,lli/ .lr un l'nl,K .' d., .i,]lus h,])" q ue dirig irse iI 101 pt.~I<ll'\,' 1),11.1 m/l( hn~ de I,]s p ro-
ri,.,ja dl'S dd control. en d l.1 M' seíeccíona r é Sh.Jn't-l V,J(i.d./., l:"tl~in .. (N [- {'SP) (l
D.lt.lSc lo.:kt'l l'n 1.'1 men ú D.lt.l Hilltlin,; Sdl.'C"tion para en la za r con \'i1 ri,lt> l~ compartida s
y da tos D,II,lS. ....·kl't rl'Sf.... c uvamon te .

El sq :;u nd o 1.',1';0 M' h,l l~l lId i,ll.i o en 1,1 ....xcj ón 'lIl!l' ri" r. en el prnnero IM Y q ue l,I"I:;ir
e ntre enlazar rnn un nbjl'to del propio proyecto o con li no l1., 1,1 n-d . Una vez M'[.-CriO-
11,1(10 ('J obje-to ,11'.1rl'n'rá una m,l rca junio ¡¡J contro l tjlll' M' coton-ar j cuando h,, )"., cono-
xl ón . en l'sll' l·.l ....' M ' tr,ll,' de u n Iri,ín!!; u lo .

Para enlaza r con varia bh-, compa rtidas d el propio proyec to l'Sk ml.' llld ol'S eq uiva len-
tea .lrr.1sl r,H 1.1 \',lri,ll:> lt' <I......t ... el explorado r de l rm y.'(" llI ,1 1 [',1111.'1 Frtl nl.l l del VI.

En 1., fi¡.;u r'l ~.1l pl lt'd l' verse como, sin ha be r reahzad o nin gu n,l p n .gr,'nMri ón , ....' p u.....
den compa rti r d ,lh... enr n- \'Mi,l '" ,l p lic.,c¡onl'S.

2J2
VI Serve,. y comunlc.adones avan z.adas

Flq lJfa 9 - 1 I ConlfM ' t" c aros entre Vd ' lil'> ilp lK-ilClOfIt' '> con psp

9 .3 V I Ser v er
VI Scrvr-r es un conjunto d e fu nciones qu., desde 1,1 ve rsión 5.0 permiten controlar
LilbV IEW d., fm m,l progra mad a ,1 Iril H' S d e l D i'l ~ r(l m (l de Bloques, de Ter/ lp o
lit' Ílcti"l'X (slllo p<H,l Windows). Es probablemente lil herra mien ta más potente de
r.evnw
VI Sorvcr p uede configura rse en rllol.~ > 0J' tion.~ > VI St'Tn'T, d ond e se pod rá ,'l,'gir
l'I rm-todo d e comunicaci ón re mo ta y restr ingir e! acceso de m éq uirtas, u suar io s y n-
choms .

• Propiedades: son ca rartc risficas dl' los obj,'los q ue PU t -den ser leídas y/ o l~t:ri tas.
t'or ejemplo, una p ropiedad de un objeto de tipo control booleano puede ser su
va lor o su posición en el Panel Fron ta l.
• M éto dos: son acciones qu(' p ued en realiza r los " bi(' los. l'or l'jl'm p!n , un objeto d('
tipo control d e W<l l't'fimn Gfilph ten d rá un métod o r <lTa n-iniciarlo a su valor ror
defec to .
Los objo' tns de LabV!EW .<;1.' agrupan en c1.1S('S, las clases principales do' VI Scrvcr son
Applil·.lt;OI1 y VI, ¡Hlnq Ul' L1t> V!E\V tiene muchas mas dl'f inidas; s.' J~ rll p.lll de forma
jcr.i rq uic.t como represen ta l.} figur,} 9-12 (no S(' muestr-a XNod l'S). I'.lril .b u,:iM una
( "1.1 ",' a un nodo hay qm' sl'il-ccionMlol'n el menú 5dc.:·/ CI,I .~.~ del menú contextu al.
una vez lu-cho St' podr á acceder alas propiedn dc-, y métodos p.ua los objetos de 1.1 c!;}<;('
d l'gida . Los objdos d e ),}S cl,lSl'S "h ij'lS" hcn...tanin 1.1S p roph...¡,}dl~ Y métodos de 1,1S r1¡1 -
Sl'S "pad re". Se p ueden explorar las c1.1sl's , lus métodos y propiodades dc cada una de
d J,lS d"stk LlbVIF.v\' con Vit'IV > CI.IS,S f)r(lw.... -r.

213
u b VIEW

1 ... . . ,
I c-o! ",' 1
'" '1
'"

I "'-
4J '"
I rr...... ~
,-
..¡ ---
= 1
..¡ .:.;~ I ,_ . 1
-....
Plor"."
••.~ I

- -:.:.... I - ....
::: 1 ol -- - u'

~
I~
I ,- I ...
~

c...
~

~ "" f-
.... 1
=1 •.-
~
-- .. oo

o.- "='" 1
.....
-00,., ~ - 1 ;::1 ~
OO'"''
--
~
-'
..... 'P

I I 'M_
~ - I
",· I ~ e.- f-
M
fI,
... ,
...-
,-
......F.
1..... -
'" I
-,- --
,'-
t+I _
"
-

f.l'~ ¡.[ - - I
";':1(
'_"
1 .... CooOd
.,....
I
.....
,-~
I •...- 1 '-"-
,-
.......
.... ~
-..... ~
*,,,"

..... ~ - : I 'S~ ~ I
r"; ~

-tii 1 - c: _
"
o-

"",, 1 1::::: .).:.....:


.....· 1...
ora ,

-.¡ ... ..
..... pued.. acceder .1 VI Servi-r a Ir.l \·'''' d ., la!> fu ncion."i de 1.1 pal<'l.l I'nl;t:r.m mll n~ ;>
Al'pl'c.lrilln en" ' n" El pn......... J t>..hi(O cunsl!'o hr,i en a b ri r ti err-ar una n-fe-n-neja,
1...,, / ••...c ribir pn>rl'''I.1.lJ .-s o invoca r m éto dos V f I n.111Ill'nk cerra r 1.1 n 'lt'n'nd " .
VI serves y lI:omunlll:adones a va nz adas

Frgura 9- 13 Paleta de control de dpl¡( dOÓn pdrd VI Server

• Abrir referencias

t\'PO <pe<..... 1'I RoI....... v.; ~


moocIw>e ' - (-: 01'"" loe. " ~ oppio:at..., ,"",, _ e oppio:OI"'" relet _e.(loeol) lI'=l '" ,el.....,..;e
port~(3J63) ,1" .,palh 0"'1(
t..--..t mo (óOCIJO) o er,Of 0lI. 0Pt""'" el' Of 0lI.
""01' n (no ""01') el"'" n (no el' Of )
_<WOfd \')
H a y d os fu nciones pa ra abri r referencia s a las ele-es p rincipa les (A pp/iciJtion y VI).
En 1.1 primera hay q ue indica r a q ue máqu ina hay q ue con e-ctars,e (si es rem ota) y
la segunda función a bre una refe rencia a u n VI",'n particular. Si St' q uien ' abri r un
VI en u na m áquin a remota habría q ue usar primero Open App lic'llil m Refen 'nce y
lu ego Opon VI Re/en'lICl.', mientras qu e si el VI es tá en 1.1 máquina loca l só lo hace
Falta u sar Upcn Vl Rctcrenco. Si no S(' U5<l C/o.>;;· RC/t'TenCl.' 1,1 S referencias p e-rma-
nece r én abiertas hasta q UI' el VI se deten ga.

• Propiedades y métodos r;:.,'":: ,EB,:;


Pr~, ~ In.nI<.. ~

__ ;:'~··M "'" ~:=:1i¡j ~~~::'


"'" ~!:::~q¡~i~
Lo s n odos de p ropiedades y métodos so n el n úcle-o de la p rogra m ación con VI
Scrvcr. Media nte ello s se accederá a tod as 1,1S poslbihdad es qU l' ofrece VI Servcr.
Ambos necesita n co mo en trad a una referen cia a un objeto. Una vez hecho SI' sclrc-
cjon ar á au tom áticamente la clase y most ra rán I,¡s p ropiedades y métodos de qUl'
d ispone (tambi én puede hace rse d esd e el men ú cnn tex tua] con Setcct CI. ls.~ y Link
lo), El p rogramador p odrá en tonces eleg ir qu é propiedad o mé todo en concreto

21 5
Lab V IEW

d l'Sl,',l utilizar o través del men ú con textua ! O pinchand o directamen te -obrccüo-
con la herramíenra Opt'r,lh' V.l/l1t·.

Lt~ nodos dt' p ropiedad pod rán extenderse p.1Til q ue el m ismo nodo m m.... tre m ,h
dt' un a p r opieda d , en es te caso l'I orde n dt' ejecuci ón es d t'St.lt· orriba hacia ,lb,lio ,
AI)l;unils propiedades pueden ser tan to de lectura com o lh' escrtture. por dt·ft't'lo
st'ráo de lectura, p ueden ca mb ia rse a tra v és d el men ú contoxtuot.

Los nod os dI' métodos mostra ran t'l nom bre del método en e l primer terminal. el
resto de terrmnah-s ser án las entr.ldas y !>ollid ils de d icho mt'lo,,!, 1,

• Calling By Reference "?'.


íW

Llamar a un VI d esde VI Sorvcr st' denomi na llamada d inámica porqul;' CM ); ,1 l'I


VI en memoria de forma dind m íca . ;1 difen-ncia d e un s ubv ! norma l CUV,l C,) ');,l
t 'ló est ática . I'M,l llama r ,1 u n VI ,1 Ir,l\'é'5. de VI Server podnan U'i<l r!ot' p rop il"t.l,ld ."S
p.U,1 dar valor a cad a u no de s us controles. U SM u n m étod o par,), l'jl'Cularlo y m,h
propiedades piHJ Il'l'r sus inclicadores. Esta forma d e lla mada p ued e ser l'Il)l;Orrtl'
S.1 si el VI d ispone de muchos terminales . Un.l form a m.l s sencilla es usando l'I
c,Jl/ing By R.. (t'n'nct' N ode.

Este nodo actúa de fo rm a p.Ht'l' id ,l ,1 la inclusión Ir.l dicin nal de un -ubvl , dehecho
si 1'0 C l1/ s.'tul'!ot' selecciona un VI y la opci ón l .{",u f with c.Jl1.·n;, 1'S11' nodo .nuo-
rnañcamonn- St'r<Í sus tituid o por su cn rrespondjen tc subVI. Ad l'más de indica r de
fo rma explicita (,1 VI a lla ma r d l'Stil' Cl1/ S.'tIlP, también st' PUI'tJl' hace r de forma
d inámica, en l"Stt' caso a l nodo st' le asocia rá un tipn estricto d..• VI (tipo de cunee -
lo r) media n te 1.1 opción V/ S('n 'l'r > Brow,"t' dt' su mentí conn-...tual: d t>SPUl>S .....
,lbrir,i una referencia ,11 VI en concreto co n Op ,,,n VI Re(t'rt'II...', el (0,11d ebe tener
el m ismo lifll ' d e conec tor q lll' 1·1 indicado an wnormon te, pa ra es to se p ued e cn-a r
una constante en el terminal tyIX' spt'Cifil'r VI Remum e mdira r en su menú ron -
tex tualla d,lse d e VI. En cualq uier caso , una vez indicado el npo d e VI q UI' St' 11.1'
m ará con l'Stl ' nodo , mostrara u n icono del mi smo en el q UI' st· fllltlr.in cablear sus
en trad as y ~ lidas,

• CIO&e Reference ~vQ"1


f efet'ent:e ~

error 11 (no error) ~ error W


C je rra UO.l refe n-ncia abierta .m tt·s, En ca ....' d e qUt· la referencia s,' a a un VI, éste
St'rá dt'SCa');,ldo lll' la mcmo naa menos que su Panel Fron talest é abierto. qUI' ....'.1
u n subv l d I' " In l VI ca rgado en memoria II h.1V.l " tr.l,; refr-n-ncias ,lh it·rt.ls,

2 1.
VI Server y co municacio ne s ava nzadas

• To More Specific /Generic O ass

target clan ~ _ tMget ctass ~


reference ~ specih: oess refererce
error in error out reference IJenerK; d ess ret e-e-ce

LJ figura ':1-12 muestra la jerarq uía de ob jetos en LabVIEW. Pa ra ma nipu lar las
referencias a esos objetos se dispone d e las fu ncion es To More Spccític CJ.¡s.." y ro
MOTe G t'rlt'fíc CJ,b..~ . La primera d e e llas devue lve u na refc n-n ciaa u na clase in fc-
r ior a la de la entrada, por eje mplo, p as.l de una referencia tipo Control a una tipo
N nmoric.. La sq;u nda han' el proct'sn inverso .
Por ú ltimo tamb ién hay qu e com en tar q ue los expertos y g u r ús d e L.lb VT EW esper,lIl
que N ationa l lnst ruments ofrezca dentro d e p<K O tiem po u n prod ucto, de momento
co nocido como Xtqoces (1 VI scriptm );, que d e un a fo rma pareci d a a VI Scrver ofrece-
rid much as m as herra m ien tas .

9.4 Ej e m p lo s
9.4.1 Ejemplo 1: Chat
9..4.. 1•I explicación teórica
En es to ejemplo se usará la tecno log ía Datasoc ket pa ra reali za r u n p r(l~ra m a qu e ges-
tione un chat. El p rn~ r.1 m a deber á se r cap'¡z de env iar m e nsajes d e tex to desd e un o rde-
redo r ,1 otro y most rar toda la con ve rsación en una pantalla . El n úme ro de nodos qUl'
puede ha ber en e l cha t será ind ete rmin ado..

9.. 4.1.2 Código


El ródigoen primer I U~<lT abrirá una conexión con D<l tilSoc kl't Servcr, en la figura 9- 14
se 1-1<1 usado una consta nte con va lor d s t p: \ \loc a l host \c h a t POrtltl<' SI:' va a pro-
Pil r en tn- d os insta ncias del prog ra mil en el mismo ordenador, p ,ua p roba rlo entre urde-
nadores dis tintos el valo r de es ta consta n te lóg ic.l men tt' sera d iferente.

El bucle principa l del p rog ra m" com p roba ré cada 50 ms si a lgú n ot ro usuario ha man -
dado un mensaje.. Este p roceso M ' realiza dentro d e un a estructura EVENT co mo pUl'<1L'
verse en la figura 9-14. Cuan do M' pres io neel botón l'nvj,lrSL' t'jl'Cu ta rá ot roevcn ro. t'11
('St,l ocasión Sl' usará DataSockt'l Writt, p ara en vial un m ('I1Sa jl' . Ta nto si so envf como
si M' rec iben mensajes, éstos SI' ane xaran a los qUL' y,l había en un ind icad o r y q Ul' se
d es p la z.1TiÍ ha st a aba jo P'l Ti1 most rar los ult imos m el1s,lit' media nte 1.1 propiedad
Tt'x t5 croI/Pos.

9.4.1.3 Resultados
Pa ra p roba r el cha t se ha activad o Data gocket Sorver, lu ego h ay q Ul' abrir VMi,I S instan-
das del mismo progra ma , una opció n l'S hace r \ 'a ri.1S cop ias del mismo fichero con

217
I..1Ib V IEW

m~ ==-
"
m
FIIJllr" '1 ·1 4 flll:.'f11 0 (Ir JI"'{ Illr,] l k " proqrama {W e/kit 11!wl r1(JO D. ll.lSoc krt

Iltlm !;ln'S d ifert'nlt'S JI ,I!;In rl.1S. o trd ,'po.:iú n es crea r una p l.m till.a JI ••brtrla va rias \'tU 'S.
El n '!'oullad o putotl.· u ·r....· en 1.1 f i ~ ur.1 '1-15.

9 .4.2 Ejemplo 11: Controlar Decoratlons


9.4.2.1 flq:>Ilcad6n ~
Hd~l.l a hora se ~b¡.l con trola r d e fllrnw p rog ril m.Jd a I. ~ ( onlml.'S e mdicadorcs cot..•
cad.... en ..1Pand " Ilm",l J e un VI med ia nte las prnpitotldJt>S a~ >t·iolJoI ~ .l estos termina-
Il'!'o (\ vr ejemplo III lll' c.1p ilu lo 3), pt'ru t... lo tiene v .1I'101!' Ii m il"'ciu n.'S, una d e e lla!' e-, '1u,'
en el Panel Frontal 1.1 mbit"n M' p Ul't.l,·n roloc a r u....
·l .r a t im l !>, pt.·ru l'Sl.l!' no SOo' n ·fk·j.1n en
d Di.l ~r.l m.1 d l' Bh"lul"S. pUl' In I.mll> .l l· d las no 5(' p u....t.'1l en ·.Jr rcn-n-ncías, p ruPI•.J.l '
d .... \. ml"II••il... como ron lo.. enn lrnl.....

En l'Sll' ejemplo M' 11',11.1 lk mover un objeto D'.....(.f.ltlllll• •1 1 ~u ' IUl' ....\ 10 pod ía h.ll'N 1' 1
pftl¡.;r••mad or m il·n lr.l" l'!'o l,i <iist'l\.mdo l'I VI. Para 1'110 !>l ' u s.l r'i VI SI' n 'l'f con t'I fi n J .'
rou...'¡.; u ir una n' fl'nm d a ,1 los obil'IO" V. ...·" T;¡ fioll., <id 1'.1Iwl h lllll .1 l d el VI.

21 8
VI serve e y comunicacione s ava nz adas

9.4.2.2 Código
El p ro¡;ram a abrirá en p rimer luga r u na referencia a l pro p io VI, u na d e las propiedad es
de la cla se VI es t ront P.'anel (Panel), qu e dev uelve ot ra referencia. en es te caso ;JI Panel
Frontal del VI. Del Panel Fro nta l SI:' obtiene u n <lTTay con referencias a todos lns objetos
IJt'coTations q ue ha y e n él mediante la p rop ied ad Decoretíons i ] (Decns]. El siguiente
paso es se leccionar d e este ,1ITilY 1.1 referencia a un ob jeto en COIlCTl.'tn median te JnJe,
A rray . Ya St.' tiene u na referencia a un objeto 1Jff~>r<l tiPll, ahora sólo ha y qU l' usa r sus
propiedades Top y l.~oft p ilra mod ificar su posición.

.,
,
< ~.

-'~ . 'I\
<<.-,
,_o
,_.,
-,
f(t oo ' lOO)., · ••

It ====i ,-<
• -
,
~
11"'P <Ilh l.....'
-~
, .
Figllf,'\ 9 - 16. VI que mueve un Ob¡e1O oecoeron

El algo ritmo para mover el objeto es una má quina d e estados p a ra cada una de las
di mensiones en que p uede moverse, par.l imple me ntarlo se usará un nod o fórmula
cuyo código es:
/ * Ver tica l * /
s witc h (el) {
c a s e O,
top • • ;
if( t o p > l OOI e l _ l ;
bre a k;
case 1 :
t o p- ;
if (top<O ) e hO ;
brea k ;

/ * Hor i zon tal ' /


s wit ch (e2lj
case O:
left +> ;
i f (l e f t> lOO) e2 ~ 1 ;

bre a k ;
c a se 1 :
l e ft - ;
if (lef t<O) e 2_ 0 ;
b r ea k;
}

2 19
Llb VIEW

9 .4.3 Ejemplo 111; Rendimiento de Vis


9.4.3. 1 ExpIk:ad6n teóoca
I..J ~i ~ll i l'n tl' .1plicolCiún d ebe ob tener es tadísticas sobre el n..-ndi m i,' nln de otros rru~r,l ­
mas d e LabVIEW. l ,.l'> cs tadisncas '11l\' debo mos trar so n el ta m.liln <¡ Ul' USol ( d,~~ lllSol '
do 1' 11 cada uno de los com ponentes d el VI) Y el tiempo de ejecución.

9.4.3.2 Código
El c ód igo, en pnrm-r l u ~,lT, eb rc U l1<1 referen cia .1 1.1 aplicaci ón y obuono d e 1'11.1 Il~ VIs
ca rgod o-, vn memoria y d ato s sob re e l s is tl'ma opera nvo y 1.1 C I'U , A co n tinu ación abre
una referencia po1Ta ra d a uno d I' los VIs en memoria y usa un nod o p rop iedad p.lr.1 11'l'r
d tamañ o d e cad ,l una de l,lS pa rn-, del VI: datos. n "'ligu, Di.l gr.un.l lh' Bloques y' l'.m L'i
Fronta l. El sigui,'nll' ¡,.ISO 'os d etermina r e! tiempo 'lUI' ta rda en l' I",: u l.l r~·. p.u.l ,...10 ",'
USol <'1 m étodo Run \./ y se mide el tu-mpo ant,'S r des p u sé, d I' 1.1 "¡loc ució n del nodo.
l' in.l lllll'lllt' ~ cierra n 1.1S reten-n etas r st' m uestran los resulted c.....

-
rr -;'
" "'"' ,.~ - ". -1"
I.""
I
¡..; ~
"
"' .. ,-_. ~1>
..._-- - , ,
f --~
; .. ~

FtqUld 9- 17, Afláh~ls del rerKllmlerll o de un VI

9.4.3.3 Resultados

FI<]llra 'J- 18 Resultdd os de Id eJl'ulllÓrl ( IC ' tes! ",'

220
VI server y comunicaciones avanzadas

9.5 Ejercicios
1. Publicar en una página web cada uno de los programas de ejemplo d.' es te
ca p ítulo.
2. El chal de l ejemplo I ¿es una aplicación P2r" cuen te / servid or?
1. Repetir elejemplo d el capitulo 1 de variables compartidas usa nd o DataSockl'1.
-l . Implementar el a lgorit mo del ejemplo [[ sin em plear el nodo fórmula ni ninguna
o tra estructura de scripts.

9 .6 Bibliografía
Eva n Comoy llea ther Ed w a rd s, A N n9: /A " ,t'lopinR <ln O/-'C diellt App/iCillion u.sinN
Vi.sual Bas!c, NationalInst rurncnts, 20l.Xl.

Heather Edwnrds, AN 127: Buildingnn Inter,lctil't' Web l'aN" wi th D,ltaSod:et, 1'NY.

NationalInstrurnonts, A,f\'anced Típs and Tocnrdouc« in LabVIEW - Remate Peneís.

Nanonal Instrumcnts. AN UO: lJevelopjnt; Remott' Front 1',ll1d LJbV1EW Appli·


cnt íons. 2(X)2.

N ation alI nstr um ents, LJbVIEW Basics tl Courst' M<lJJu,i/, 2IXIO.

Nationa l Insrrumen ts. LabVIEW Comrmmiceíion Techniqut's tor Distri/lutt'd Appli-


ca/ions.

National Ins tru rrwn ts. La/:oVI EW User Memml, 2001 .

Naño na l lnsrrurnents, Progremmetícel tv Control/inR 1...1/:0 V1EW.

Nationallnstrurncnts, Using Control Re{eft'nú'.s ,111.1 CI.1SSl'S in iA1bVlE1Y.

National ln strum cnts. WP lfífl(): integratin,!; the lntl'rIwt in to YOllr Me.1sllrement Sys-
tpm, D.ltilSocket Tcctmicet O\'l'n'iew, 1999 .

221
Sección 111

PROGRAMACIÓN AVANZADA

capítulo 10. SlncronlzadÓll y Murtfhllo.


Cuando se realiza una p rogramaci ón más compleja i1 pan.."Ccn términos
co mo pueden ser multitarea, pro n "_so s y sincronización. Se d ice q ue los s is-
temas operativos son multitarea porque pueden e jecuta r más de u n p ro-
grama a la vez; es te concep to puede extenderse tam bién a una sota aplica-
ción y hacer que 111 ap licación pueda tener varios 'hilos' ejecutándose en
para lelo.

Este capítu lo comienza explicand o los conce ptos teó ricos y cómo se apli-
can en t...'1 bVIEW, a cont in uación se descr iben las técnicas de s incro niza-
ción y los posibles problemas y soluciones que pueden aparec er cuando se
trabaja con m úl tiples h ilos.

Capítulo 11 . Modelos de programad6n.


Con tinuando con co ncep tos ava nzados, en es te ca pítulo se verán t éc nicas
y modelos para dísnnros tipos de p rog ramas: tra tamiento de ('ITOTt' S, sis-
temas d e comunícacíones y p rincipalmente máqu ina s de estados y p rogra-
mación o rientada a objetos.

Capítulo 12. CódIgo externo.


Este ca pítulo abre el cód igo d e LahVIEW a otros len gua jes d e progra ma-
ción, en el Sl,.' ve rá cómo hacer que e l código cread o con lenguajes como C,
C++, C# o Visu al Basic se puede usar en Ll bVIEW y viceversa . Ade más
también se estudiara la forma de usar tecnolog ías co mo Acnvcx o la
recien te .NET en LabVIEW. Una Vl'Z más, la s explicac iones se basa n en
ejemplos pr ácncos.
Capitulo 13. Optímízadón del Interfaz.
Los Jos tilt im\'lo capítulos tratan lit,., opfimivackm e's, en l~ll' 1-,l SO <;(,1'> 11' d
interfa z de usuario, par.l "" 110 St' muestran al g u nos elerm-u tos nue vos 11 no
habituales <:J UI' pued en usarse en los interfaces . El capítulo finaliz a con uno
"" rIl' lit' con...; o<; pMa d<1T ,,1 progra ma un aspecto prok s¡ on., l.

Capitulo 14. Optlmlzad6n del código.


hl l' (" apitulu comienza con un.\ breve in troducción a 1.1 in¡';t' nieria d e-l SI. ,ft-
wa rc Y J los vístcrnas de contro l d e versiones P,Ud más l,ud., cen trorw en
cómo mejo rar vl rendirnu-n to dI' los p ro¡.;r,lm.ls, com pa re nd o el rendí-
mien to de t'i" mp los de p m ¡.;r.l m,l s 'b uenos' y 'ma los' (o mejor d icho . 'nn
tan buenos').

Capitulo 15. Otras plataformas.


En el último c.lp itu lo se verán ...·ncill <ls ol p lic.ldont'S d e l 11<;(1dl' LlbV IEW,
co n algu nos módulos extra . p.u.1 p nlg r,l m.lr sob re distintas p lataformas :
en ordonadon-s di' mano (P DA ), en di sPllSitivllS recon figu rables (FI'GA) y
en visternas dt' .1110 re nd imien to (I' XI).
Capítulo 10

Sincronización y multihilo
So' dice los siste mas Ilp t' T.l l iv IlS son m ultitarea f'\, r'lUt' rued en ,'jt'Cul.tr m.b d ,' un
'1 Ul'
pro¡;r,lm,l ., 1.1 voz. Esolo (olls i¡;m'n com partiendo recurso s , pri ncip al mente ti<'m¡io <k
1.1 CI'U. Si <,1..istcm a uperativo con m u ta con ],1 suficiente rapidez va rios pll.lgr¡¡ m.ls en
IUM unk'a C PU se consigue un efec to pan-cíd o al 'l Ut' h,lbrí.l {'OO vanas Cl'Us.

Un Pn>l....~ l ( ." otro concepto p.ll't.'Cido .l l de programil. El prnt-<'SO estaría c<'m p u,...lo por
in..truccioncs . esp acio d.. memoria y otra in formación. La dl'finicion e xacta d l'pt' nd,' del
sbtl'm,IIlI'l'Til lh'o al 'lUl' SI.' h,, );.l refen-ncia . Ent re la m tormación q ue el sb lt' m,l 0 pt'r.l -
li vo .1'otld.l .1 cada p n"lCl'sll cs ta n : una idcnttñcací ón, el e-stado del proc~l, ,,1 \-.110r , il'
los n'¡.; i~ Ir"~ ,k la CPU cua nd o M ' ejecutó po r última ve z (con texto) y otros d ,ll" s . El
l'~1.1 d (l dl' un p rocl'so ind ica si p ued e ejecu tarse, l'~I.; l'jl'C u lá nd osc, esl,; l"!'opl'r,mdo .1
<ll1l' St' h- ilsi¡.;n(' un recurso, etc. Pa ra ind íca r q u é p Tlll'l'So del... ejec u tarse y Cll,; I noexis-
Il' u n planificador de pr....cesos. ÉsIO;' contiene un a lisl.\ til' todos los p l\)(,t'~,.o~ y s u Iun-
ción ("< lI1s i"ll' en ca mbiar el t"!'oI,1d o de cada pron'Sll y su contexto. Lo s plan ificad ores d t,
l,l rt',lo; me s b.isin .... sim plemente co n m u ta n un'.... p l\'n .'SI 1!" y otros y les asignan un tu-m-
po d l' p n l("l'so fi jo. Lo s m ás modernos usa n u n sistema d.' pri oridades bastan te rom ple-
jo P.U ;l determ inar qué prot't"St, p" Sil a ejecutarse, al¡.;u no " tienen p rioridades fii.1~, 01 n 1'>
~. b,lS,lO en un "is ll' m .l d e en....titos.

U n p ro c.,,,,,, puede contener hilos, (u no o varios}. U n h ilo (del ing,l"s th n ',llf) l''', ,11 i¡';\l.l l
un proceso. un (lujo d t' ejecución: es la consecuencia d e extend e r el concepto d t'
'1 Ul'
multitarea den tro de los p nll.'l'Slls.

En los sistemas operati vos d o 1., familia wtndows NT "'" p lIl...ien crea r y e jec-uto r m úlñ-
pll'" n iln" den tro de u n p n lCl'so . D. ' l'Sta for ma no ~'llo ~' pueden l'i.'Cu lar ,·,ultlS pnll"t'-
<;tI<; (p rtlg, r.l m,lS) en pa ralelo. siol! ' lt1e dentro de un rn ~ r.1I1ld puede haber "a rios sub -

pmg,r,lm,ls (nHus) fu ncionando también d e forma p,n,lld,l . So- p uede estudia r r-l uso d e
hi los en 1,1<; p m grd mil" con ,ll'lk,Kiolles co mo cx wnoc...1 ·¡;ls k Manager.

Un ~'jt'01 l' l o d e proceso con múltiples hilos pod r ía ser u n serv idor FTI~ d llnd t' Sl' en-a-
rí,l UIl n uev o h ilo po r cada cllnl'",iú n <lcept,,,i", d ,' ["St.1 fo rm.1 puede m,m" j.lr " Mi,IS
n ll lt' ~ ill l1l'S i\ 1.1 \' t'L. Otn1 ['jt'01 p lo d l' ,l p licilción mult ih ilo pUl'lle ser 1\-1S Wo rd , dontil'
h,IY un h il" '"-IUl' cn m p rUl'b,1 1.1 llrto¡.;r,1fí.l , otro ,llt'nlo .1 los m en ús, ulro cOI1 I,uld o 1.1"
p'llol b r.ls t'Sl"rit.1S, "'te.

225
La bVlEW

10.1 Multihilo en LabVIEW


En IIn len¡;u'lit· basad oen texto dondela, instrur d . m, 'S Sl,' l'i"ol toln sec uencialme nte.. l~
n-lanva rrwnte com p le jo n-aliza r pru¡;ramils con rnulnple-, ni lo... Roqu n-re cierto esfucr-
/0 d e imag mación pt.'ns.lr en esas lírw,ls de cúdi¡';OI' jl"Cut.lnd oM' en paratolo cuando ....'
t~t,l n viendo l'sc ril.ls de for ma sec uencial. Ad,·m.ls en m uc hos d e estos 1,'ngu'ljt"S h.1Y
'1ut' indicar t"plícitaml'llll' r ua nd o empíeza y acaba un h ilo .

En Ll bVIEW noos nccc...rr¡o indica r nada para trabajar co n m úl tip les hilos d entro d I'
un programa , el propio LabV1EW SI' e ncargara de su gesti ón. St' dice q uela p rograma-
don m u ltihi lo t~ mhcn-ntea l..l b VH·:W.

1'.1I'a hab ilitar la opci ón d e 1;I"Cución multíh ík en las ve rsiones ,1Il te rion~ .1 L1l;>VIEW
H.ZIl (y siempre q ue el sistema operat l\"0 lo soportase) debía estar activada 1.1 Colsilla Run
w ith mll /tipl.' th rt'old."I'f1 r-l menú 11)(,1/." > Opth>ns > Pertorm.mcvend Vi.sl<.

Como se ha cstud tado en ternas <1n lt'rion'S, un p Tl');rol ma de LlbVI EW M' com pont' d ..
s u Panel Frontal, su Diag rama de BJo'lUI'S, u n espacío d.. memoria para los d at os y el
c ó digo compilado pMa la plataforma d onde L, bVIEW se es tJ I'jt't:ut.mdo. Ad t' m ás tam -
bién cnn fieru- in formación sob re otn», n"Cursos q UI' PU'I'Ii.' tu-res i tar p.1I',1 ejec utarse.
corno ficheros dll, sub v ls, e tc. C ua ndo se abre un VI se c a rgan en memoria s u espacio
J .' dato... y elcod tgo com pilad o , ta nto e1 sUY" ("(lffin 1' \ d e sus sub v ls. El Pa nel Frontal
y 1,1 Di.lgramil de Bloq ues M' ca rgan cua nd o ('S r eces arlo .

Al ejecu tar un VI, LabVIF.W realiza v.u ias tart.'ils sobre é ]: com prob ar la sin taxis, rea~ ru­
pa r el n ltl i¡;o vn coniu n hlS dt, nodos (d umpsl d ond e d entr o de cad a n....lo tie ne un
orden fijo de ejecuci ón y fina l men te .1s igr\ilr el espacio d e memo ria y gcnl' ra r e l código.
Un paso, clave es el d I' rt',l~rupar e l cód igo pt.lrqu., ah¡ es d onde ~ detec ta n Ins para1.-
ltsrnos: dentro de un clnmp no p u....le haber paralelismo, r"'m si en tre ellos . Como
res ultado [..lbVIEW til,nt, una senc ti.' St"Cciones JI' código co n un esp acio de memoria
asignada , cuya ejecuci ón dobe ser p la nificada _

l.ab VIEW po......' un sisl¡'m a (n va r¡....) q ut' se .·ncar~.l de 1,1 t;t"Cuci ón d ., un pmgrarna.
E...te sistl'm,l d ., ejecución tiene una lisl,l de d ump.... El sis tema va com p robando la lista
d t' clumpe, s i hay d isponibles SiI(;1 u no de e lla, \ 0 polsa a ¡;t"Cución d urante u n tiem po
~. cuand o M,l b,l ese tiempo. ... i el ctump no ha terminad o su IM'Col. l-'S devuelto el liI col.l _
En el fond o 1'Sll' mec ani smo no t'''' má s que una rotaci ón (j¡' tareas, lo c.:¡u.' St' conoce
co mo mu JI i 1.H''1'a cooporat¡ va (coopt·(" t i\'{' nm/fit,I.~ki/lg) .

L l pri ml'r,1 \"¡' rsi¡ín d I' L.1b VIEW c.:¡ Ul' i n t nxlU~ l la ca pacid ad mulli procl'St. fu e la 5, O'n
d l,l t'I sistt·nl.l .tl' eiel:udón tl'nía 1'\ Ct lIllTl,1 dI' un n ill' del s istl' ma llpt'ra tiv<I StWIl.' el q UI'
ib,1 con m u t.lI1 d o las tJ n' as. l1esde la vI' rs ión 71'1 sistl'ma de ejl'l:ución tit' nt' n Mlro h ih...
•Id sbt('m,1 0f"-'ral ivo sob n ' los q UI' con m u lar sus 1,1I'¡'<l 5o (."s ll' l'S d va lo r por d eit."Cln,
po'ro PU I-d,· C.l m b ia rst' ). C u,m do St.' C.lr¡;;:,l un VI. l ~l b VI F.W p id o· ,11sistem.1 tlf't'r'lli vo (lUI'
cn ... los hHu... l'n 11... q u.· será l-il'Cu tado ~ i nn l....t,l!:>,m Y.l cn' ados; mit'ftt r.lS no <;t" uSiln
p,l ~m ,1 un l'SI,ld o do rmido f"-'TO no ....· l'Imtin ,m, pl'rm.lnt"CI'n I'n 1'Spt'ra d I' n> .-is cód ig...
p ,ua cjl"Cut,u. Los hi los d I' L.1bV IEW pUN en comuniCiltSl' ('n ln ' si a tr,lVi~ de UIl.1

22.
Sincronizad on y multihllo

memoria compartida n por in tercambio d e mensajes . Es tos hilos so n manejados por el


planifica d or de h ilos del sistema operativo, t~te no lo han' de forma rotatoria co mo el
siste m a de ejecución lit' LabVIEW sino por prioridades (pn 't'mptiI'eJy mllltit,I:;J..ill~).

10.1 .1 Sistemas de ejecución


En la cxplirución anterior se ha comentado e l funciona miento do un sistema de ejecu-
ció n. Todos los Vis en ejec ución comparnna n los hilos asignados a ese sistema. A Vl'C~'S
p uede ser deseable q ue varios VIs se p u ed a n ejecuta r de forma indcpcn d icn te (sin com-
part ir los hilos con otros Vis), pilra esto Lilb VIEW p roporcio na va rios sistemas de eje-
cUCIC:m .

Un VI puedo ,lsignarse a cua lq uie ra d e los sistemas d is pon ibles: IISt'r in tert;lCl',ost,lll-
d ard, ;nstrumellt l/O, da ta acquisition. o th.'r 1 y othor 2; el nombre de estos sistemas
es sólo una sugere ncia, por ejemplo un VI d e adq uisición de datos p ued e se r asignad o
,11 s isl\' m,l instnlmt'lIt l/O y viceversa.

-- --- _.-
_..""..
._.
-._.-._.-.-

0--_
0-
0
" '-
_
"'-
-~
....
-,
-,J_ " '_
01. 11 '-'" II ...

E111S<.'r intt'rf<ll't' ('S un sistema especial q Ut' S<.' encarga de ma nejar lo qUl' ocurre 1'11 d
Panel Frontal. C uando un VI d e otro sistema d i' ejecución q uie re ca m biar algo de su
Panel Fro ntal (por ejemplo cua nd o usa 1<1 p rop ieda d "isibll' de un control ) és te pasa la
ejecución a l sis tema u.<;t.'r inter/,lCl', ror In tan tn ~'s d sistema rec omendado PJr,1 los Vis
con muchos nodos de p ropiedades qU l' modifican aspec tos d clr'anct Frontal. No con-
v iene ab usa r de es te subsistema, ya q ue el usuario podría percibi r una ralon nzac ion en
el panel que le ha ría ~ll'n s,u qUl' e t p rograma Sl' ha bloqueado.

El numero de hilos máximo "'S 40 , por defec to cu atro por ceda p nondad y po r cada sub-
sistema. ,1I1O'1ue esta configumcton p uede variarse con %d ircc tor;o dí' instalación de
L.JbVl.HV'Y" \ \'i./il. \ U tiJity \ Sy.~ j/1fo.l/b \ thre.ldCl mfi# .vi, ver ñgur ,1 10-2.

227
Lab V IEW


- _. -- -- - _--....
'11- •

-- ,..... ...
.....
.
--- - -
~

,.
-- "'-
•••
---- - -....-- _.---
-- -- .... ...
Ji". =,g¡;¡ 'ii:i:Y'
F"
--
_.- ~ ....- -- --
1'"'
~-
,,~

F'

_. • •
J

10.. 1..2 Prlorfdades


En Windows XP se usa una planificación de hilos por prioridades y e xpulsiva. Un hilo
se ejecu ta hasta qUl' üega otro con más prioridad. ha sta q ue termina, hasta que agota
su tiem po de p lUct'SO o hace una llamada bloqueante q ue lo deja en es pera. El pla nifi-
cador usa un esq ul'ma con 32 niveles de prioridades , tiene una cola de hilos por cada
prioridad . Los 32 niveles se d ividen e n siete e1.I St'S . a veces también U...m...da prioridad
base: reet-time , hig h, ilt>cll"e normet. normel. ht>fo w normal. tate priority. Dentro de
cad... clase ha y una p rioridad relativa o diná mica, formando así una m..rtriz de priorida-
d es .

Los Vis de LabVIEW no sólo pu eden tene r asignado un sistema de ejecución, también
se puede ind ica r su prioridad, ha y cinco díspombles . Cua ndo se ca rga un VI de un sis-
tem, de ejecución y con una determi nada prioridad, LabVIEW pide .11siste ma o pera ti-
vo q ue Cl'\.'C el número de hilos q ue ten ta configurados , si no lo estaba n ya. El código de
los programas de LabVIEW se ejl'cutará sobre estos hilos .

Por eje mplo supóngase q ue LabVIEW esta configurado para que use el numero de hilos
qUl' se indican la Tabla 1.

228
Slncronl.zac:lón y murtlh ilo

Tabla 1 " Configuración de ejemplo

Standnd O...." •
Sackgrouncl , ___ _ 6 _ 7
Normal
High
3
5 5
'- -
6

En este ejemplo se usaran va rios programas, cad a u no de ellos está com puesto por di e-
ciséis b ucles WH ILE en pa ra lelo. Si se ejecu tan dos p rogra mas asignados a los siste mas
.~ talJda rd y other ] ambos de baja p rioridad, se crearán" hilos d e baja pnorídad. Si se
ejecu ta un programa de prioridad no rma l en oth,'r 1 y otro de alta prioridad en oth¡'r 2
se crea ra n seis h ilos de a lta prioridad y uno de prioridad media. Por último si se ejecu-
ta un programa de baja p rioridad en standard, o tro de baja prioridad en other I y otro
de alta p riorid ad en other 1 se creará n 5 hilos de alta p rioridad y ocho d e baja p rioridad .

La p rioridad llamada subroutine es especial. Cua nd o un VIolO esa prioridad pas.l a


ejecución ocupará tod o el tiempo de un siste ma de ejecución hasta que se com plete. Se
debe tene r cuidado con es tos VIs ya q ue tienen algu nas restricciones res pec to a los VIs
"n o r m ales" que conviene co ns ulta r en la ayuda . Los VIs marcados OlO esta p r ior idad
tienen la opció n de ser ignorad os cuando el flujo de ejecución d e un h ilo lleg a a ellos si
ya estaban ejecutánd ose, esto p uede ser útil en aplicaciones de tiempo real; para acce-
d cr a esta opción se debe despleg ar e l me nú contex tua! del icono del su bVI y seleccio-
na r Skip SlI bW ll tifll' Call il 8u.~y, segun se indica en la figura 10-3.

Los VIs llamados sínc ro nos funcionan de forma parecida a los su bro u rint', oc upan todo
el sistema d e ejecu ción hasta que acaban. Algunos nodos síncronos son lo s C IN, los de
p rop iedades, etc.

lIt$ble ltem< ~

,tl*',.-
Desc~oon arw:l TIp.. .
SetBre~

'....
0...,
.

Fnd Al lnsl..-.::....
Open Front Panel
5how VI i'teI'army

J " - As k on _~~_-'
FrglJra 10-3. Menú conreaus oerccoo d e un slJbVI

229
L.lbV IEW

Po r últi mo, a veces ca mbia r la p rioridad de los Vis cua n do no se com p rend en los con -
reptes puede acaba r ron resultad os ines perad os o b loqueos, pur lo q ue N ationa l
ln srruments aconseja dejar las prioridades con su valor p or defecto y on su lu ~ar usar
1.ls funcion t~ d ,' t'Spt.' ra pa ra pnortzar los Vis.

10.1.3 Vis reentrantn


Co mo se ha d icho an tes, cuando se ab re u n VI, Incluso s in ejt'CUlaSt' !'ot' ca l);<1 rá en
memoria una cop ia d e s u código y espacio de d atos, así com o del códi¡;o y espacio d e
d atos de todos los su bVIs qU t' con tiene s u jerarq uta. Esto puede comprobarse abriend o
un VI cua lq uiera y ejecu ta nd o el código de la figu ra 10..4 .

,o
e¡atk:Jn:AI Vis In ~'h" o y l

Figura 10-4_Vl~ cerceoos ~ ll"IffilOI'liI

Cua nd o se ejecu ta un VI y éste llama a o tro. LabVIEW buscará p rimero u na referen cia
a l su bVI en tre los q Ut' ya hay ca rgad os en memoria y. si esta disponible, lo L;L'CUlará .

Este L'S e l fu nciona miento normal. sin e mbargo puede h aber ocestoncs en qut' no M'a
suficiente. Pued o d arse el caso qUl' St' desee hacer lla mad as a un m ismo VI d e forma
s imulta nea en va rios h ilos . En eslas ocasiones. .l l ll.l m.u a l su bVI usad o por otr o pro-
grama. LabVIEW respond ería que t>I su bVll'!'lá ocupado y el VI que lo lla ma tend ría
qUt' t"Spt'ra r a q ut' acabe p ara poder hacer su pro p ia lla mada. Para so luciona r esto
puede crea rse In q Ul' se llama u n v t rwntran te q Ul' co p ia r á su cód igo y datos en memo-
ria ta ntas Vt 'Cl OS corn o sea ncc ee no. as¡ cuando St' produ...-e una lla ma da no tendr á qm'
espeta r Yil qUl' habrá alg una co p ia d ispuesta polfa i'il 't ejecu ta da .

- --
~~L~J
O........... - . l
0 " -- -

I ~ II ~ II '"

230
Sin cro nlzaclon y multlhllo

Para indica r q ue u n VI es reen trante M' debe acti var la casilla correspondiente en File >
VI I'Topt,rtjl'!o > E1fe('u t ion, como muestra la fi¡.;u ra 10-5. Ta mh ié n hay qut' dl'Cir a usua-
rios de LahVIEW q ue usaban Vis reentrantes en versiones antenores qUl' desde la ver-
sión 8.0 ~ permiten herramientas d e d l'Puración dentro d e estos programas.

Los Vis reent rantes junto con las lla mad as d inámicas dan la ¡X'lSibilid3d de realizar fun-
. .
Clones recu rsivas.

U"'" función recu rsi va es aquella d efinida en tirmino.. d e sí misma, es deci r, un... fu n-
ción q ue en su interior se llama a sí m isma. Es to imp lica q ue h.abrá una Sl'rie d e llama-
da.. a una misma función, por cada llamada debe haber una cop ia d e la fu nción, o por
10 menos de su co nte xto. en memoria; de aquí S{' deduce qut' debe haber a Ig .... n rno men-
lo en el que la auto- invocación M' dt'lt'nJo;a. d e In con tra rio e l p rograma '>l' e xpa ndi ría sin
fin en la memoria.

L.1s funciones rec u rsivas nenen su l'q uivalen te en forma d e bucles . Estos son más d i-
cten tes que las fu nciones n'CU N iv.1S po rqut' consumen m enos memoria y tiem po . En
general es rec omend able rea lizar la p rogra mación por medio d e bucles , sólo se d eberla
USM la rec ursividad cua nd o con e lla Sl.' wnsiga una g ran sim pllñcaclon e n 1,1 com plejl-
dad de la so lución (sim p lificando un p r oblema en s ubp roblemas del mismo tipo).

I'ard C,,"M un VI rec ursivo hay q ue ab rir una rorcrencía al mismo VI y co mo tipo d e
es pec lñcad or se debe seleccíona r la c1J.st',lambil:'n. d el m ísm o VI (para esto S{' crea una
consta n te en el term inal type spt'cifit'T VI Rem vm de Opon VI Reft''n'flt"l', S(' p resiona
con e l botón derecho sobre e lla y se el ige St'/ro VI Sen ·er Cla.'¡S > 8n )w~) . Si se cónsul-
la Id ayuda se podrá comprobar que en 1'1 ca m po de opciones se debe indica r el valor
ocho . La lla mada al VI puede realizarse ¡x,r med in de CalJ by Re.ferenk' Nf-.dl'.

En id figu ra 1 ~ se puede apreciar u n programa que calcula el facto rial de un n ú mero


por lTllodiu d e Id recursi vidad.

Figura I Q.-6. VI para I!I cálctJlo c!l'I IaetOOilI utlliZ<lndo r{'(U f~MódcI

10.1.4 Pipeline
El l'ipt'/im' o st'gTTIl-'Jltaci¡'m es un m étodo usado p rmci palmen te en las arquitectu ra s de
microprocesadores y siste mas digitdles paed a umen tar e l rendimiento del mismo.

231
Lab V IEW

Cons iste en descomponer las tareas en varias etapas, és tas funcionarán de forma sim u l-
t énee . además lus rt'Sult.,d us de una etapa ser án Id en trada d e Id si ~ u i('n !t"

1.., ñgu r, Hl-7 m uestra de forma esquorn ética t~tt' concep to . En ella se H ' una segmen-
t.,d lln de cua tro eta pas: Ad quisición, l'nKl'Sold nA , Procc sadoñ y Almace-namiento.

...._ 1

, ,, ,
nQ"'
"" 1: '

.."" . ... , , • " ... 2 , •• ,


"
.... '"
, -,
)
-- , ,

_.,,........
En LabVIEW st' sude usa r 101 segmen tación cuando se tra baja con aplicaciones de ñcm-
po r ea l o programando FI'GAs. La es tructura es rt.·" lmente :;l•.'IlCill,l , st' basa en u n bucle
WHl l E y vanos Sh i(t « l'gister usados pMa qUl' las tareas se p.lst'n los datos entre 1.'1 1.1".
En la fi gur., Hl-Il se muestra un l..-'j(' m p lu en el que la tarea SI' ha di vidido en tre, etapas:
generaci ón d e da tos, pmt....-samiento y cfrnacenarmenro. La e tapa d e generación p asar á
los d .llos a trav és d e un ..hiEt tl"gi.~lt·( polra que, en 101 ..igu iente iteración dd bude sea n
procesados. Mient ra .. 1.1 segun d a etapa p rocl'S.l el dato adq uirido en Id p rime ra itera -
ción, la primera e ta pa p uede ad q uirir u n nuevo dato. Id etdpil d l' p rocesa miento ha r á
lo p n1p iu con Id d e almacena miento .

EQ} -
SIncronización y muttihilo

Los da tos obtenid os pi1ra el ejemplo de la figu ra 10-8 pueden ser:


0 , 000 000
- I nf
- 26 , 8 27 0 6 6
- 0 , 35 11 9 5
- 0. 77 8 56 9
- 0 , 42 5 7 0 4
- 0 , 5 4 13 5 6

Evidentemente e n 1,1 p rimera ite ración d e l bucle se alm acenara u n da to que es inváli-
d o, en general habrá tantos da tos inválid os como numero d e etapas menos uno.
Ta mbién a u men tar á el tiempo de latencia. Por otra pa rt e la segmentación no es .apro-
piada si las ta reas son muy sencillas o un a de las s ubta reas larda mucho más q ue las
d emás (y no p uede d ividirse mas).

10.1.5 Paralelismo
Hasta ahora se ha hablad o de VIs que puede n l' jl 'CUW r5C en pa ralelo y d e du mps q ue
también pueden hacerlo. Esto si~i fica que el paralelismo puede d arse tan to entre Vis
como e ntre po rcion es de cód igo d en tro de un m is mo VI.

Dentro d el mismo VI se ejec uta rá n d e forma concurren te las pa rtes d e cód igo que no
sean dependien tes entre sí. El ejem plo más cla ro son d os bucles WH ILE en paralele . La
principa l ven taja de este mé todo es la sencille z. Una d e las d es ven tajas es qm' no se
pueden modifica r las priorid ades (excepto con nodos d e espera] , pero en la s nue va s
versiones d e LabVIEW esto se ha pa liado co n los TIMED LOO P, que sitúa n sus priori-
dados entre Time Crit ícel y ffig h Priority.

§( ;;JiliJ. § . ~,jjJ •

m (ffiI - ~

Frgura 10-9 Concurrencia cerero de un rnurnc VI

Otro método es te ner varios Vis, por s up uesto ind e pendi entes en tre sí, funclone ndo a
la vez. Con este métod o ~ pod rá hacer que las ta reas tenga n dife rentes p riorida des y
sistemas d e ejecuci ón.

,
; .~:ill

Frgura 10-10. Corcurrenca ent re vanos VIs

233
La bVIEW

Ot ra for ma ~' rid usa r VI Scrvor p ara abrir, ejecu ta r y ce rrar Vis. Este mét odo tiene la
ven taja d e ¡IUl' 1,\ creaci ón y fin,¡ Ii;t.;lciún d e 1,1S ta rea s se puede realiza r e n cua lqu ier
momen to y d l' forma ab rupta. En 1,1 figu ra 10- 11 SI' muestra n d os p n Jt:l"!'ll!' <l ue so n lan -
z ados iln tl~ d e los bucles WHI LE y son fina lizados des pués , el cód i ~o qUl' apan'«" en
las venta nas a ambos lados de kis h ueles es el correspondi ente a los subv ts q uelanza n
y fin a liza n tareas .

E"..... 1 _

-

.• "
'. [ff'~•
:l'
Ej'- '!J

.- .
••

10.2 Sincronización
Los p ro bh-rnns d l' sincron izació n a parecen cuando d os o más hilos in tentan com pa rt ir
algo, ese ,1 1 ~n p ued e Sl'r si m plemen te in formación o u n !'t'C1.1r.;D (u na varia ble, un fich e....
ro, u na impresora ...).

Duran toeaa sección se l'Stud l.1r.'in los mec a nismos qUl' ofrec e Lab VIEW p,Ha sincroni-
za r 1,1I"1';1S. Sto' encuentran lod os b,lín e l menú Punctions » Programmin¡; > Syrn:hroni-
/~ltion.

10.2.1 Occurrences
Las (l(1."u rn 'f]Ü'S so n un mec an ismo para que u n hilo o un VI pueda indica r a o tro qu e
ha ocu rrid o cierto SU Cl"SO o even to. St· usa n de fo rma parecida a los even tos, sirven p.1 ra
ejecuta r un código cua nd o SI' d a cie rta condición, h.1SI,1 qut' n o sea cie rta l'Sol co ndición
la 1.1ft';1 <¡ut.' con tien e el código se ra "congelada".
Slncr onlZilclon y muftlhllo

En es te ejem plo lo q ue SI." desea es con trola r d esde una tan-a la ejecución de la otra. Para
ello ha brá un hilo que generará una se ñal, JX'rtl esta acción só lo debe lleva rse a cabo
cuando en e l sq ; u ndo hilo se pulse un botón.

En el cód igo mostrado en la figu ra 10-1 2 se crea una referencia a una occurrencc qu e
sera pasada a todos los hilos d el programa; en el hilo infe rior se acti va el even to cuan-
do so.' p resiona el botón gL'llerar. En ese momento el hilo s u perio r, que estaba 'co nge le-
d o", se reactiva r á y genera r á una señal con la forma de onda ind icad a,

(j]

Flgl.Jra 10-12 E.¡emplo de al<lrma con occumrxe

10.2.2 Semáforos
Los semáforos son un mecanismo para pmtt'gt'r el ae<:L'SO a un determinado recurso
compartido. El cód igo usado pa ra acceder al recu rso com partido se llama sección cr iti-
ca, (,1 semá foro permite o deniega el acceso a u na sección crítica.

Seg ún Dijkstra un semáfo ro es una «l'ilri.lble entera de valor no negiJtivv, sobre las que
se deñnen ¡iJ¡' operaciones P y V». Las operaciones P y V vienen d el hola nd és Pm bi.'rt'n,
probar y Verhogt'n, incrementar. El valor inicial del semáfo ro es la cantidad de un ida-
d es q ue se disponen del fL'CUTSO. La o peración P d etiene la ejecución ha sta que ha y un
rec urso disponible, en ese momen to lo adquiere: la operaci ón V hace que u n rec urso
que había sido ad qui rido quede liberado. La s operaciones P y V no pueden ejecutarse
conc urren te mente ni pueden ser in terru mpid as, se d ice que son a tómicas. Cuando se
quiera ejecu ta r una sección crítica se d ebe adqui rir el sem áforo y cuand o se te rmina se
libera .

La d efinición an terior LOS pa ra u n sem áforo de tamaño ind ete rminad o, sin e mbargo es
más fácil de comprender cuando el tam año del sem á fo ro es un o: si a lgún p roceso h,l
adquirid o el semá foro (L'Stá en su SL'C ci6n crítica) los d em ás p roceso s tendr án qUl' l-'spe-
ra r a que el prime ro lo libere pa ra que ellos p uedan adquirirlo. Es lo qU l' se conoce

235
....bVIEW

corno paso d ctcstlgo . C ua ndo t'1t.lm ,l ño del semafom es u no ta mbién SI' lla ma n m uft"
(exclu sión mutua ).

El s ig u il'n te es un ejemplo <¡ Ul' se b,l"'l en el concepto de ' paso d e testigo", Dentro d el
prog rama habr á una parle q ue , a pa rtir de u n con trol n u mérico, le Irá suma ndo u no
has ta que ~'.l mayo r u i¡;ua l (l Ul' l.tltltl; otra parte del p rograma ir á res tand o uno al
mismo con trol h.l sla 'luO! ",1 número !>t.".l menor u i¡;U.ll q ue -1.000.

En l""ll' p ro g r,l m,l M' tiene u n d alo [el control n um érico¡ q Ul' co m pa rten dus hilos a tra -
vos dl' va ria bles IOe ales, los hilos está n ejec ut ándose en pa ralelo, ptl r lo tanto se necea-
t,1 un mecanismo por el cua l sólo u no d elos dos p ueda acced er a 1,1 va rlabh- el tiempo
'lu,' sea neo,....mo p.lT.l com pleta r s u ta rea , y m ientra s eso oeurra , d otroh ilo d ebe l""t.lT
esperando: en el momento q Ul' el pru n or hilo ya no nec esite acced er a 1.1 va riab l\'. l'I
SI.');undn pod r é l' mpl'l..ar su tarea.

El mecanismo de sincronízacíon que se usa rá serán los Sl'm,'iforos . St-' cTl'a rá u n serna-
fom d e ta ma ño 11l1n . Lo s dos h ilos necesitarán adquir irlo p il ra empt'z.lr a tra be jar, pero
sú lo uno d e d ios lo con seguir á. al ha cerlo pod rá tit'CU IM~' y c u a n d o acabe lo liberará ;
e l otro hilo l>:.pt' rM.i a que el pri mero libere el sem áforo. N ótl'St' que ..n n in¡:;ú n momcn-
lo "" ind ica q Ut; hilo debe l'Ít'C"Ut ,lTSt' en p rimer lug.u. f.I cód ign p uede verse en la figu -
r.l l G-13.

•••
-
~@I f'>J~
~all DI lO
f'quril 10- 13 E¡cmplo ue p.l'>O de tt'~lrgo con !.Cmáforos

236
Sincronizaci ón y muftlhilo

10.2.3 Notificaciones
Son muy parecidos a las OCCUTTcn ct's en el sentido d e que provl'1c'n un mecanismo de
espera hasta q ue ocurra un SUCl'SO o evento. Las d iferencia s ent re notdíer y vccurrcn-
(l'S es que las primeras p ueden ca ncelarse y adem ás pueden enviarse mcnse jes [un to
co n la se ñal de evento.

En este ejemplo se crea rá un sistema de ala rma . Se tienen u na ser ie d e d atos que se van
I;l'nt'rando uno a u no , cuando a lguno de estos daros sea mayor q ue una ean tid ad prt'-
fijada se d ebe ac tivar una a larma; además hab rá otro h ilo que adquiere una segunda
se ñal, st' desea conoce r el va lor de esta segunde se ña l en el mo mento en que 1,1 p rime-
ra so b repasó el lim ite .

En (,1 pro};ram,l d e la fig ura 10-14 hay tres h ilos. El p rimero gt'nt' rará nú meros alerto-
r íos hasta qut' haya uno superior a la referencia, en este momento S(' constru ye u n rm-n-
s aje de aviso y se not ifica el S UCl'SO.

budo: _. ...... os. ~. <uondo


l' . "", .,"~""'"

• •

Figura 10-1 4 Efl'inpto di:' dl..llma oas-oo en ronncecores

El último h ilo SI' ejec uta en pa rale lo al prime ro y, al i¡;U.ll que éste, genera n ú meros ale-
atorios. Cu and o el primer h ilo not ifica el suceso, este último hi lo también construy e un
mensaje con e l va lor del nú mero alea to rio ~l' n l'rado y el n ú m ero de iteración d el bucle .

237
L.1bVIEW

El segun do ilus tra la t"S!'t'ra d e sucesos y ('1interca mbio de informació n ent re los nod os
notítier, cu and o SU(t<tl l' el even to muestra el mensa je c reado por el p rime r b ucle.
Pa ra com p render mejor e l fun cionamiento d e este p nlJ;ra ma se aconseja ejecuta rlo con
la opción H¡~h /jJ{hl EXl'Cll riOIl activada. También SI;' p ued e en contrar o tro eje mplo
ah rk-ndnla pla n tilla M asler / Sl,}\'('.

10.2.4 Colas
Las co las es un mecanism o d e co m parti r in fo rmacton . Normalmen te las a lias se rom-
portan com o memorias FIFO , es ..kci r, el p rimer elemento qUE' se alma cena ('S el p rimo-
ro qUl' st' saca rá, no o bstan te en ["lbVIEW ta mbi én pueden añ adirse y sacar elemen tos
e n el orden con tra rio. com o u na pila d e mem oria, en este caso funcionaria como una
L1 Fo.

Hay va rios tipos de COI.1S:


• Sin p riorida d
• Con prioridad
• Bicola s
IAlS bicolas. también llamadas DEQUE (Dou b/t' Endt'<1 QUEue ) son Ollas d ond e Sl' p Ul"
d en .l r\.l dir y retira r elem entos po r a mbos extremos .

I...1s colas también p ued en aplicarse 1;'0 alg unos tipos d e máq u in as d e estado , a..iem ás
l'_isten algunos com p lE'men tos de l"l bVIEW q ue e xnenden la fu ncionalidad d l' 1.1'"
o.11.1S d .1p licacionl'!ó d e tiempo rea l,

A continua ci ón Sl' vera el Iípico p r ob k-ma del prod uctor y el con....u midor, En él habrá
u n r ru~r,l m3 (o hilo ), a l q ul;' se llama rá producto r. q Ul' irá gene rando da tos. Estos d atos
so n almace na dos en una cola. Tam bién habrá u n segu n d o progr,lm.l (o hilo) llamado
co ns u m id o r que irá retirando elementos de esta cola .

El código se rnw'str.l en 1,1 fi~ur3 10-1 5. Donde ad ornas se p uede ver como en el rn~ra ­
ma d el consu m id or se irá comprobando cada vez el n úmero d e elementos q ue hay en
1,1 w l<l con el fin d e represen tarlo g rMicameo le.

En 1,1 fig u ril 11)...1 1'> Sl' ve la evolución del n úmero d... elemen tos en Id cola d urante una
t-jt'C urion. La tendencia en dien te de sierra a scendente e n el p rimer sector ('S d t-bi..t o .1
q Ul' el Sl'guodo bucle (cons um id or ) tarda u n poco más en ejt'Cut.uSt' q ue el p rimero
debido p recisa m en te a l VI pa ra obtener el númer o de element os . Sin embargo cua nd o
el pr od uctor yil h.l Jo;t'flt'rado tod os los d a tos no Sl' eit'Cuta rá m.is y el único h ilo en t'jt"
cuciún se rJl ('1 cuna umid or, de ah í e l segundo tramo d e la g ráfica consisten te en una
R'Ct.1 con pendíen n- 11l'g.l tiva.

También es impo rtante c onocer qm' el men ú in icial de La bVIEW vn 1;'1 q ue h3Y d tvor-
SilSp l,m til1as d e prog ra m'1S existen d os ejem plos. d e l prtlg rama del p rod ucto r-cons umí-
do r r on colas.

238
Sln c:ro nl;racl o n y multlhllo

.cccccc
• •
Ii:!l-
m

':;;::'105 <»tos q..oe hay enla colal X
-<ID>

m
FIglA'(1 10-1 5. fpnplo productOf-comumdOf

FIrjlJ<I 10- 16 . R~ del e,emplo produ!;tOl-(OflSUTlldOf

10.2.5 Rendezvous
1...1 aplicación de es tos Vis es la sincronizaci ón d e tareas, Un slmil bastan te explica tivo
l OS u n p u nto de encuentro d onde varias pt'rsonas ha n q uedad o pa r.1 reu nirse y luego ir
todas jun tas a l cine, algunas de estas perso nas IIt-garAn .1nltos '1Ul' otras. po r lo que las
p rimeras que lleguen espera ra n a las demás hasta qUl' estén tod os y en tonces ya pod rá n
ir al cine .

C uand o se crea u n rcodeevous se indica su ta ma ño, dt'SpUl~ en el código )" S tarea s qUI'
necesiten sincronizarse tendrá n que estar p recedidas de u n Wdit st Rendez \'ous, La cjt...
cuci ón de es tas tareas SI' cem¡;dará hasta qUl' ha ya t"!-pt'r" d u un número de ta reas ig U'11
al n úmero indi cad o a l crea r el rt'nd t>.l"\'(Juo;, t'T1 1'Sl.' fIl0nWI1!l 1 todas las ta reas em peza r á n
sim ultánea m ente .
LabV IEW

En esta ocasi ón el t'jt'mplo necesi ta r é sincroniza r la gellt'rarión d e tres se ñales, cada u na


(it, ella s en u n h ilo ind ependiente. El prllgr.lma debe hace r q Ul' los h ilos má s r¡l p id o~
t'Spt'rl'n al más len to p.u.l pod er em pezar tod os a la \"(' 1..

En la figura 10-1 7 SI.' p u ede aprecia r el código de l p rogra m a . En p rimer lugar se crear é
u n rendervoas de ta ma ño 3 y luego empezarán a ejecutarse los tres hilos simul tánea-
mente. En estos tres hüos sc han in trod ucid o re trases d ifl'n'ntl'S pilra cad a u no de t'lll )S
con el fin de forza r q UI' la l;l'(:u(Íón d el siguien te bloque de clld igo empiece en u n
momen to d iferente en cada hilo .

_ ..... <>MIt..

.-.....
_ .. ...-..._ ... It.. _

~~...--
... .......
....
• (¡l

~
~
e:;:-- I


~ J 'jo

Si no se activan los rt'ncit'7\'ouS se ooríene la gráfica d e la figura 10-18. En elta SI.' ven
l.ls trr-s. señales. adl'más s i se mira m ás detalladamen te Sol' observa q ue el eje horizo ntal
de [as !i;ráficas e m pieza e n momen tos diferentl>s, adem ás la J ifl' n' nciol e ntre el co rníen-
ZlI d e una g rá fica y o tra es justa men te el retra so int rodu cid o en el cód igo (un segund o
entre la primera y 101 segu nd a y cinco segundos e ntre la primera y la tercera]. Sin
embargo si se activan las l'Spt'ras Il'n<1t"znJU.~, l a generación d elas señales no empl'la-
r..l h.lstil que hay.l tres hi los esperando, por lo tan to las tres St' ñdllos generad as empt' /Al'
rá n e xacram enn- en 1'1 mismo instante, el resultado Sl' PU('<ÍI' ver en las gráficas .:1(' 1,1
fi gu ra 10-1'::1.

240
Slntronlz.adon y muhlhllo

..
1
"
12,$7 'II,51!>

...,
.
0,5- ..
1.. 1...,
.,. , • •
.,
' l~1 ",IIllO 12:SU 1,MO 1~>-II,OQl ~: 17.ooo

-~~ H¡:~r,;:;;
.,.
1.... SIMt'XII
......_
$lettó
. . , . _'
1IlWM
a• • h*....
., , • ,
eee ..
12,51 ' 11,DllO
,-
1: ,51'1 1,'500 12:5 1:I I ,lIOO

,.,
LabVIEW

10.3 Problemas típIcos de la


programación multihilo
Tener m ú ltiples h ilos en un p w gra m,l p uede ser u na buena id ea po rqut' aporta mod u -
laridad y Id st.'ns,lción de mutnproceso entre o tras ven tajas. Pero tamb ién tienen d....·
venta jas, como u n a umento de 1.1 carga computaciona l debídc a q ue necesita n una gl'S-
tíón, a umen to del consu mo d e memoria. e le.

l'or otro lado se d ebe tener p resente q ue la programaci ón de va rias ta reas en para Id o
req uiere que el programador sea mucho más cuidadoso q Ut' en u na p mg r.l mación mas
con vencio na l. Pueden presen tarse nuevas si tuaciones que resulten en un com po rta -
miento im previsto del s iste ma . En es ta sección se t1<lbl.uá d e a lgu na s d e el les, comen-
tand o anécdotas famosa s provocadas por estos fallos y sus posibles soluciones. •

10.3.1 Condición de carrera


La cond ición d e ca rre ra es u n efecto que ocurre cua nd o se tienen va rios h ilos t; t'Cul.i n-
d ose concurron tomen te y és tos com p arten d atos. E..'i lt" problema no sóln St' da e n la pn!-"-
g rdmació n m ult ihi lo, también st' puede enc on trar en algunos d iseñ os d e siste mas elec -
trónicos hardware.

Un facto r determinante para pn....i uci Tst' la cond ición de ca rrera t OS el tiempo de t;''CU-
ocn. En elejemplo de la fig ura JO.-20 se muestran dos hilos, el p rimero gcnt'ra d atos
contin ua men te y a dem ás a la má xima velocid ad que puede: e l segu ndo h ilo eo mp rul' -
1">,1 cad a milist.'g undo 1'1 valor actua l d el da to generado, s i éste es mayor q ue u n IIm 1tl'
p reffjad o (0,5 en la imdgl'O) se escribe en un stríng. Obsérvese que la escritura PIIl"':'"
proven ir de d os fuen tes : del m ismo dato que se com probó y de una variable local.

Frgur ... I 0·20 La con(JlClÓr1 de r ...rrera: ptD!:¡.I{'1TkI en proqr,af1MClÓ/l m i ,)tlfl lk:l

1..,) cond ición d ., C'lrrl'r.l se da CU,l llt!O el d,l lo lojUlo' st' .1Im.1ct'na es el ' lu., p roviene d e 1,1
var ia ble loca l sit uada den tro <id CASE; en l'Sta n'-,Isi.l n el tlempo qUt' tarda d segu nd o
hilo en P,l S<lT tito 1,1 co mp robacióna Id p a rte de ~· ri h , r.l en e l inten or d el C ASE tOS sufi-

242
Sincron ización y murtlhll o

dente para qut' 1'1 p rim er hi lo ¡;..riere o tro d a to, po r lo qUl' e l val o r q ue hay e n la va ria -
ble loca l dentro del C AS E nO l~ 1'1 mismo qUl' el q ue M' u~l p.1ra eva luar la cond ición
de dicho CASE.

Pa ra c(lmprnb,ir t' l l'r ro r ~ d t'l:>l' tener activo el botón co nd ici(in ? p ara solcc c íona r, co mo
da to a most ra r, 1., varia....le local lid in te rior del CASE.

Si no hubie-se {,lUn ~ól{l ~ alrnacena na n va lores s u ~'ri ort's a 0,5. PUt... I., Vl'("M' en la ñgu -
ra \(J.-2 1 corno cua ndo SI' p ro ducela cond ici ón d e ca rrera SI' .1hn.lt:t'lliln valores crrcne-
os (rneno resa O~t;) .

Los fallos producid os en la m.'I q u lOoI d e rad ioterapia Th l'rilc-25 qu.. costa r on la vida a
varias p" rstm.ls f u er on J.>b idus ., la cond ició n d e ca rrera. 1.41 soluct ón pdra este p roble-
ma es u na buena sincnmiz..l ción, fundamen talmen te con SI' mMo n>!>.

10.3.2 'nanldón
La ina nición o ." ' .I(\·.l tiO/l ' 'S lo contra río a la in versión de priori.!,l.! (qcu- "" \'1'1',1 en la
sigu ien te sl-'cció n). Si hay u n rec u rso q ue es accedido mu y fn'CUl'ntl'ffil'n l.' pt' r d ns p roo-
ct'Sos y uno d e d ll>!> tie nt, más pril,rid" d q ue el 01n1, PUt...lt' s uo... h-r q Ul' 1'I ~t'~u ndn ,JI""'-
nas p ueda .l'Tt'li.' r ., 1 recu rso. S i, rol' eje mplo, es to SI'J;tm d l' p nln'~o,'S olqm controla
el interfaz d ., usu.mo, l~lt' pod ría percibir qUl' el s i~ll'm,J no rl'Sl'lllld,' (1 su n-n d irnien-
lo st' ha de ter iorado r ua ndo en rea lidad es sólo uno d e los p n>Cl'St 1~ ,,1'llit' no p ued e eje-
cu ta rse.

Eleiemplo m . l ~ ob vio d e .~ t. l rv.l tic mes un bucle \\'1-1 11 .1' ain nin¡.;Ún VI dI' l'S po.'r,l en su
ín te rto r, ,11I'j."..:u t ,, ~, .'S 11I provoca qu e este bucl e consu ma 1,1 0l<l yori.1 lid tiem po de 1.1
C PU . quedando menos tu-m po d e Po'cx-sad o p<J ra 011'.1.. l olJ'l'.l~ del m b mo pn~ril m<l y
ralentizando todo e l ~i ..terna.

243
Lol b VIEW

10.3.3 Inversión de prioridad


f_~tl' p r oblem a ocu rre cua ndo d os hike, co n diferen te prioridad in tentan acceder ,11
m is mo n'CUNJ. Si el "lUt' ticru- 1,1 p rioridad m ás b.lj.l ootterw primero u n n'CU NJ y el q m'
tiene mas prio ridad q UIe n ' occed..-r de-pué, il ese m ism o recu rso, debe esperarsea <¡ Ul'
t'I primero lo libere, de l":'oI.1 fo rm a l'I q Ul' ter na menos prio ridad ha hecho esperarse <1 1
de más priorida d , jlLstn lo con tra rio d lo q ue dt'~·rí.1 haber ocurri d o.

El esquema dela figu ra 1tJ-22 mues tra e l e fec to d ..' ld mvcrston de p rio ridad con va n,»
ta reas, en ~ I h.1Y tn -, proces oe: A , B Y e, ord enad os d e m .IYtlf .1 menor p riorid ad , 1.1m-
bien 1M)' tres rt'C UN I';: e l u nn, l'I dos }' e l tfl.~ . El p rimer prlll'l'~lllul' comienza LOS el e,
'1Ut' necesita tener d ura n tt' d os cu an tos d e tiem po el rccu rso u no; an tes de "lUl' dC.l lll' d
primer cuanto de ttern po IIl'jo";.l el proccso B qUl'. co m o tiene m ás prioridad , pas e eime-
dta ta nu-n te a ejec ución, sé te nl'Cl'Sil.l e l recu rso d os d uran te u n cu an to y ('1 t res duran -
s lIt'ga el PflXt'Sll A, q Ul' t~ 1;'1d e más príorída d . é'S1(' p.ua ('jl'CutJfSl' nccv-
tl' t u ro. d es p u é
Sit,l du ra nte dos cua n tos e l recurso IflOS y un cuan to 1;'1 recurso uno . El P"Xt;'Sl.. A ......
l'Íl'CUld durante los d os cuantos correspondientes a 1 recurso tres , pt'flJ no puede adqu i-
rir (,1 recurso uno porque lo tenia as ig nado el p ftlCl;'SO e y dnlt'S d e q ue e lo libere fieru-
,!lIt' fina liza r B ptlrque nono más prio ridad . El res ultad o es qUl' pa rd q ue finalice ('] p rt>-
......... A, q ue es el de m ás prioridad , necesita q ue an tes acaben U y C.

]~
P~A


]

,.,....
P~ '

e
• ]

• •
PrOCltItO

En LlbVIEW no ddx ·ri.l s uced er t'SI..' p roblema a menos 'illl' se- mo difiq uen Il~ n in' ll'S
lit' p riorida d de los Vis . 1\ ,1'1' si socedc y adem ás st.' com bina co n el tl l' in an ición p Ul...1l'
~' r f,lIdl , so bre todo vn S iS t l ' ll1 ,lS de tiem po re al.

p'p
a;

.-
P'p

F'9W,1 10-23 l anzador Vl

244
Slncronll'"dón 1 multlhllo

A continuación se l'S tud ia rá un p~rama de La bVIEW. Sl.' ucno un Vl Hamado l.ln7....-


dor.v¡ 'lUl' ~' f\· i rá pMiI medir el tiempo que la rdan en l'll'Olla",,-' 111n>!' dos VIs, l"!>11>!'
d os VIs "'" 11.1m<ln prior_.l lt.l .vi y priof_b.lj<J.ví con una prillrid.1d mu y .111it y m uy baja
respecti va men te.

Co mo st' VI;' en 1,1 fi g ura 10..2.1 1'1 VI de p riorida d meno r e mpezaré a t'jl'Cula rsL' mucho
antes q uoel de más p rioridad, adem ás este VI obtend rá u n rt":Ursll qUl' no t'S más q ul;'
otro VI n o n-en trante tI.1m.l, to reeur....' cnmparti !'(J, \ - í, el VI de menor p rioridad no libe-
ra r á el recu rso h.1st ,1 p.ls.ld o un tie mpo relativa men te alto, d u r,mtl' l'~' tiempoel VI d e
m" yo r p rioridad tendrá qUI' l'l't.lf espera ndo a q ue aca be el do menor p rioridad.

E?:~~~tdJyl

r~l
~
11< olI:
FlgUId 10- 24 Recurl.O coITlp<lr¡ldo para las diferentes pnor K1olát'~

El VI d el recu rso co mpa rtid o la rd ará en ejecutarse 10 ms po r t'I valo r q UI' tienen como
en trad a, l'fl l'l C<lSO del VI .11;' baja prioridad la rd aría 10 segu ndos, m it'ntras q Ul' en el di'
alta p rioridad l.ud.lrí.l 100 m s. Si no hu biera problemas, en el p rogra m.l d el lanzad o r 1;'1
p rimer hilo (el que o mtil;'nt' el VI de menor prio rida d ) d d't..ria ta rd a r 10,00 1 segundos
y e l segundo [e ] d e mas prio ridad ) 200 m s. Sin e mba rgo e l rt'l'ultoldo l'l' d mos trado en
la figu ra 10.. 2..~ .

F'9IJra 10-25 Resultado de la ejecucon de lanzador".,

Los métodos mas usados PJr,l ev itar 0 , más bien, paliar l"Slc problema son los de herén -
cta de pr ioridad .

Como cu nosídad d u ra nte la misión Md ~ P.l!hf jm k'r a Marte, 1.1 sond.l !>u fría u n e rror
q Ul' co nsislí.1 en 1.1 pt.'rdid ,l dt, la info rmación mctcreológica qUt' rt'Copil.1h.1.. Es ta pérd í..
d ,1 de información <;0.' d dlí,l a unos con tin uos reset..... q Ul' s u fría ,,1 !>islt'ma y t'S tl~ n 'St'ts
l'ra n d ebid os a qUt· se producta u na in WT!'ión de prioridad en tn' v.lrios h ilos }' al lar-

245
u bV I EW

dar los hilos d e mas p riorida d m és tiem po d e lo es perado , la nave pens aba qu e se
h ablan bloqueado y pa ra soluciona rlo se resetea ba.

10.3.4 Interbloqueo
El in te rbloq ueo, también lIJ m<1J o d" ,I<flllck lOS un problema bastante co mplejo y d ifícil
de solucionar.•1l1n'lUI.' tam bién l ' S p< KO frecuent e. Pa ra explica rlo d e u na forma clara st'
f'w rlicul<1rizar.1 P ,Hol d os p roceso s y d os recursos.

La s ituación de partida es la s ig uien te: hay d os pnx't.'SOS, A y B; el p nKt"So A tiene asig-


nado el recu rso 1 y el pmCl'Sll B tiene as ignado el rec u rso 2. Ahora oc u rre q ue el pnKE'-
so A solicil.l el n,,'UN) 2 y el PWCl'St1 II solicita pi rec urso 1. N inguno de ke, pl't lCL"SilS
podr á aca ba r po rqm' p ara l'St 1 necesitan tener asigna dos los Jos recursos y nÍflg uno
IiN 'rar.1 el recurso qm' tenia 'lsig n.ld o ha sta aca ba r su tarea. El resulta d o es q uelos dos
pnlC..... 'S se han bloqueado m utua mente de manera ind efinida .

En 1,1 fig urd 10-2(, st' m ues tra u n p rogra ma qm ' en prim er lugar adqu iL'f\' u n recurso, o
10 ':¡Ul"OS 10 mismo, po nl' en funcionam ien to en l'1 pri mer trame [usando VI Scrvor) un
VI llamado 1't'Cllrso/.I'i, este VI co nsiste en un sim ple b uril' infinito , Despu és de una
l'Spt' ra odquáere e l Tl'CUI'SO 2, en el tercer trame pone en func ionamiento 1't'CUr.;(J2, \'i qUl'
l OS otw bucle infin ito , Cua nd o tOS tl' progra ma ha adq u ir ído k)'; dos recursos (h,l p ue-sto
en marcha los dos Vis) los libera (d " ti.'n.') en el cuarto y ú ltimo Irome.

Si ahora SI' tie n.' otro VI con el mísrno cód igo pt'ru cam biand o el orden d e los rt'Cun;¡)';
( f,..l m t'S 1 y 3) Y am bos se ejecu tan .11a vez, los d os st' queda ran bloqueados en el bur-le
W Il ILF. del tercer tram e porqUt' no pueden ad q ui rir el segundo rt'(UNJ d ebido d q Ul'
vo In ha bía ad quirido el otro VI.
Fn tost., caso el pmgrdma lanzador para rá los d os Vis q u e sirven como rt"CU r50S en C,lSO
qm" estuviera n L;t'Cu lándtN.' an itos y despu....s abre su Panel Fron ta l ra ra ca rga r u na
unka .-tlpia .:!Lo d ios en memo ria , Después lanza los d os prU\:l'SllS que son los VIs
p n 'n ,'s o A. vi y procpsn R.1'i,

Fl n -sultado de 1.1 ejecución d e ."SltlS d 05 proc esos tOS que ambos s,' bloquean mu tua-
mente . I'U\>d(' comprobarse que s i se ejec uta com plet amente prmwro un p nu'So y
lue¡.;n el otro no ocurre in terbloq ueo.

24"
Slncronlzaclon y murtlhllo

Figura 10-27 Ejt"mplo de ruerooocec Dos procesos qUE' «xroanen recursos

10.4 Eventos
Una d e las m<lYo l't's a pllcndones d e los hilos es p<lr<l manejar eventos, como ya se ha
pod id o com p robar con Occurn 'n Cl's y Nonticr. Además d e estos d os mé todos para
reaccionar a nte s ucesos, L.1bVIF- W incorpora la estruct ura EVENT. Esta estructura ,lr,l-
recida en la versión ó. l L'S la p rim e ra q ue se in trodujo d es de la versión L La estructu -
ra EVENT es parecid a a u n CASE en el sentido de q ue puede tener varias pfi¡;inas o
subdia gramas y seleccionara cuáldebe ejecutarse e n fun ción del S UCl"SO , al igua l q ue
las occu rronces con ge la la ejecución d e l h ilo ('1\ el qm' l'SU; hasta qu c S(' produce u n
evento.

La estructura EVENT ya Sl' estud ió cun detalle al p rincipio d el libro (capítulo 2), ahora
se ve rá el resto de Vis d e 1a pale ta D i,dog & User ln ferta cl' > EI'ents.

Figura lO-lB Menú de eventos

Cuand o OCUTI't' un evento el sistema operativo lo lleva a una cola. Al lleg ar la ejecución
a la es tructura EVENT, l~l bV IEW b usca en la CIlla a lgú n evento d e los q Ul' tit'nt' rq :;:is.
trados y si lo e ncuentra ejecuta e l s ubd iag ram a asociado, luego "'" repite el p roce so par.l
e l siguicn tl' evento y ,1sí sucesivamente.

Hay m 'S tipo s de eventos dependiendo d e la for ma de rl'g istra rSt':

• Eventos estéticos: son Ins que se config u ran en ('1 monu de la estructuro FVENT;
,-'Stos eventos f'l-'rm<ltll'l'l'n reg istrados d urante t oda la \'jl'('uolin de l progr,lma. Un

247
LitbVlEW

t'j" m p lo serta 1,1 cam bio de valor de un bo tón (única m en te cuando ct usuar¡o tOS r-l
q UI' p rovoca l'1 cambio, no de form a programdd a ).
• Even tos d in,ím icos : se USo} e l nodo Register For En 'n t!; en el momento en qUl' St'
'luit,R' em pt.....u a monitoriz.•H u no o va r ios evt'n tt.... . A su e n trada se cablea una
referencia del con tro l y se t'!ige el even to dela hsl<l d l"Splef;.lblt' d e l nodo. Cuando
y.l no M' quiere monitorizar el evento se I'jl't." u t,] Unrcgistcr h lr En'nt!;. I'.lr,] aso-
cia r to a una cs trnc ru ra EVENT Sl,.' u san los terrninales de even tos dinamlcos.
• Dl'finidns por el u su ario : 1"Slos eventos se en'.l n por medio ti e• e n.·.l le U~'r En'nt,
IUI');o d eben n ');istr.u!;<;· y cu and o no sean ne....·t'S<l rios se dtos n·gisl r.m y se> I'!imin.m
ron Dt'Stroy U.Sl.'f Event. A diferen cia de los an te rio res, el R'g istm no esa través d I'
una referencia porqtl<..' I'! ev ento no 10 p r od uce ningú n Objt'tO l'l\ co ncreto, elevcn-
lo tOS producid o ruand o se (·jl'CUt.l G t'fJt'riltt-' USl.', En'nt. •

La principal a p lic.lción d e los d os p ru neros tipos dt' even tos 1"S man...
usuario, m i...-ntras quela tercera ..."S sirnilara O:.TlIffi'/lCt':'i Y Notiíicr.
,dr el inll·rf.u. de

10.4.1 Ejemplo 1: Eventos dinámicos


Ei'> lt' even to ...-s p arte del código de un p ro gra ma m.l yor; en él, pri mero se ejecu tan cwr-
tes ta n-a s, pt'm en un momento d etermi nad o se d "'''''''a que e l usu.uio introd uzca una
con traseñ a p ara qU...• Id e;"''Cución con tin úe.

La tan-a q ue se> monitoriza ra St'rá e l ca mbio d e u n control tipostrin,l:. Cua nd o 1,1 ron-
tr,lst'ñ,l introd ucida St'.l 1.1 correcta, M' d l"S I"l·~i sl rd r.l l·1 even to y con tin ua rá Id ...' jce-ncíón.
Si St' h ub ie ra h e'r ho d ...' fl u rna e-stática, e] evento esta na R'¡;;i!>lr,1do d u ra nte todo e l fiem -
rn q Ut' el VI ...-stu viera ejecu t ándose.

FK}lJr<l lO·}" Ellt' nIOS d"lJmocos

10.4.2 Ejemplo 11: Eventos de usuario


En ......" . "jt'm plll M' d "'''Sl·.l ¡;I.'fle rdr u n evento cad a \'1' / 'l UI' se recibe una conex ión Te !'
en I'! puerto 13. Cuando St' gen ere 1'~lt· e-vcnto otro h ilo respond erá ind ica ndo Id f,'ch,l
y 1,1 hora di ho.sl I] U...• abr i ó 1J. conexión.

248
Sincron iz ación y multlhllo

Obsérvese como en primor lugar st' crea el evento d e us ua rio ind ica nd o el tipo de dato
qUl' SI' p'1S.lT,í al gent'ra r el evento y luego se registra.

x•

f19U1J 10-30. Eventos de usueno

10 .5 Ejercicios
l . Sustituir el CASE del progran1<l que calcula el factori a l de form a recursiva por un
Sd t'("t. ¿Q ué ocurre? ¿Por qué?
2. Realizar mediante occurrences lo mismo q Ul' en el ejl'm plo d e los sem áforos .
3. En el ejemplo con sem áforos comproba r qué ocu r re si qui tan las estructuras
SEQ UENC E d e los dos hilos. Justi fica rlo.
-l. Hacer un programa cliente-servidor El cliente simplemente d ebe abrir u na cone-
xión Te !' con e l servidor y esperar su respuesta. Cuand o e l servidor acepte una
co nexión debe esca near el b us G!'IB para identificar los equipos conectados a 1;1,
cuando ,lC,1Iw 1,1 e-canor d evolver á los res u ltad os <\1 cliente. Nótl'Sl' qu e el tiempo
q Ul' nccesua ra el servidor pa ra atende r un a cone xión será elevad o; si rruentras eslá
atend iendo una co nexión llega o tra de un segundo clien te puede 'jUl' este cliente
abor te la co nexión debido a que el tiem po que tarda el servidor en aceptar la cene-
xíón es 1.1n grande q ut.' 1'1 cliente Interpreta qUl' no h.1Y servid or. P<Ha solucionar
este problema e l servidor debe tener dos hilos: uno qu e ú nica mente acepte cone-
xiones y otro q Ut' las trate, co mo mec anismo de com unicación entre es tos dos hilos
usar las colas.
5. So luciona r el problema de 1,1co nd ición d e ca rrera.
ó. Hacer qu e 1'1VI utilizado como recurso com pa rtid o en el problema d e la inversión
d t' prioridad sea reentrante. ¿Que ocurre? ¿Pnr qué?

249
L.1l b VJEW

10.6 Bibliografía
~.J ti....n.J1I"'tru mmt-.. A .\ ' IW; LJl> \ 'IFW olnd HIf'C.,.·Thn·...Jjn~ 201'101.

~<Irm.1 o'l..."t, AN I U · Usin¡: l...JbVIEW eo Cll"d h" Mu ftlthrN<lt'\l V1.~ Wr ,\ ',I, im um r..,..
((lI17I.lna" ,lnd Rro /ibi/it)·, Na hufw l ln...trummho. 2tXXJ.

SIt"\'1" Ru~~\'..." . Insidt' l...,ttVlf'I\', Natiufw lln....tru rnt'flI.... I~,

WiIIi.lm St.lI lin~!', Si....tt'ffI••S í)'t·r,I1/\'llS. 2 ed ¡ció n" Pn-ntice 11., 11. IIN7.

250
Capítu lo 11

Modelos de programación

1 1 .1 Estructuras de interfaz de usuario


Al p rincipio d el libro se d is tin¡;uia en tre Vis q ue ' ve rá" ('"1 us ua rio [in terfaz de us uario]
y los llUI' no. Dentro de los del in te rfaz del usua rio se disting uen entre 1<1 ven ta na p rin-
cipal y las de d iálogo.
En versio nes an tiguas de LabVIEW, a ntes d e que se in trodujesen las n uevas cs tru ctu-
ras, un VI de interfaz de us ua rio no era m ás que un bucle WHI LE q ue d ebía esta r con-
tinuamente com proba ndo si se había seleccionado alguna opción, nor malmente un
botón con t aten W/wn Rt"/e'I.'>t"d por acción mecá nica. Al activa rse una opción se ejecu-
taba su cód igo asociado '1lle estaría dentro de un CASE conectado a l botó n. Todo el
cód igo podría esta r en d istintos CASE y éstos dentro del mismo WHILE. Para no con-
s um ir un a cantidad excesiva de tie m po de CPU se añad í.. u na pequeña espera al bucle.
Tambié n S(' añadía u n bo tó n en la condición d el WH ILE pa ra d etener el p rogrolmol .

En la fig-ura 11 -1 S(' m uestra esta estructu ra en 1<1 q ue se pt' rmanece a 1<1 espera de q Ut'
el usuario pulse el botó n RUN.

.~ .

m
Figura 11 -1 . VI de orertaz de usuano CJ:!SICO

A vec es ta mbién es nccear¡o ejecuta r una acción cua nto ca mbia u no \ l va rios va lore-s,
para conseguirlo Sl' podría rea lizar u na pequeña modificación al prog ramil an terior y
q ued ará comoen la figura 11 -2.

251
LabVIEW

rru ,"
: ~ ffiIJ IIJ
F.gura 1r ·} oeteccco oe cer co clP valor
1.,1 ven taja de t~ll' p nl~ra mil t'S t1111' st' pued en .1SlK i,l r acciones a 1,1S d ¡stintes opciones
dt'l usua rio. El principal tncon vcntcn tees que J u nllllt' st' use u na función d e espera, e l
p rog rarnd S('~u irA l' jl'Cut.ind l"'l' contin ua mente.

U na estructura m.ls apropia d a que CASF. para el in terfa z d e usua noes EVE NT porq ul'
puede detener 1,1 t'jl'Cud ón de un pm~rilrna hasta q Ut' t'I usuari o elij'l una o pció n, pt.'r
lo tan to pm...l 1' aprovecha r mejo r los ciclos d e rl'1 n j del p roc esad o r. Ad l'más media nte
l"s eventos de usua rio l,l mb il'n p Ut-c l.' n generarse eventos d e fo rm a progra ma da.
C ua nd o SI' l'm p ll"" , h.J}' q ue tener 1<1 p recaución d., q ue EVENT S(' t'jl-c.u te antes q Ul' I.J
co nd ició n de patada d el b ucle, esto pUl 'e-le eon.<;(~ u i f<;t· incluyend o un evento a sociado
,11ca m bio do \',l lo r d el botón de ,s l" p , estl' bo tón se sitú,l d en tr o del s ubdiag ra m a cor ees-
pomti en te y M ' c.l h l('.J .JI terminal del W H ILE; el túnel c roado pUl-cl., d l'j'l rM' sin va lo r ()
usar un a nmsl,lrl!l' bool eana I'AI .sE en el resto d e su bdía gramas.

,~ -,:tlN : V_ 0... ..

~ _.LJ Di

GJ ~ol
FIgUJo1 11 -3 usc c- oo evsert

y" s.' utilio- CASE o EVENT, la v.. ntana principal d .' 1" aplicaci ón o cualq uie r otra ven-
IMM de d iií l. 'gil d .,bt, ejecuta r su ród tgo na da mas abr¡rse, esto s<' Cl ms ig ul' en Fill' > VI
I''' 'p.-fties > E\t'<:!lfi"n > RUII wht,tl o/,, ·n.>d.

En d ca so delas ventanas d e di.l logo , edemas de ejec uta r e l código tolm bién necesi ta rj
m os tra r su 1'<1111'1 Fro n ta l, k l.l y otras opciones n-lacinnada s con el aspec to p ued en
l'n( on lrarM' vn File, > !/ I Prll/... 'rtj¡ ~ > WilJ<l ol\" AI' I"'.Ir,mn '. Las tres "pdonl'S de t'SI.l
ven ta na ( Tllp- /c '\'t '1 ,'pp lil'<l lion win dl lll·, Vi,l/O'; y a .f.llIl1) son las pn...íe tcrrninadas,
adem ás d e dl ilS ta mbién se p uceh · ¡...-rsonaliza r 1-1,1Srl'Cto 1'J1 Custom.

252
Modelos d e progra mad on

- Pt"'_E...-. ~
........,-
..
0 wo lwdo """,, '" loo.I'I<!I
::::¡)

0- ~
0 0... 1'd<It<:n_.-I
O- ~ ..,... !'IonItno

I ~ II - II ...

--
¡;.;;;;;.:;.;;.:;o: lt
--
0·..._ _ 80--
8-
--.. -.. · ....
Od d
0_
O ~d '__10,,_-
O_ _.. _ t." 0_
0_
¡,iJ .""_

~J
1 -=-.. , a0---_
---
8- '"'"
S_ _

0--"--
8--"- -
Io _ _

lo-. IE- ......_ ......... -

0
so-_ ._ _
ElO,....... ca. . .,_-

_
e - ..- . -

Den tro J ~' 1,1 \' l'n l,ln.l m us tr,lJ.l en pri m e r término en 1<1 11 -5, las opciones m ás
fi ~u r,l
in lt' I\'s.lIl ll":. "'In 1.1S infr-rion-s en la colum na d ,,· 1.1 izq uierd a y ],IS superiores en 1.1 dcre-
Ch.1. En las primeras ",' p llt'dl' t'1t'~ir cuánd o se mosl r'lr,l l' I I'.Hll'1 r rull l,l l, estas opcio-
ru-s son eq uivak-ntes ,1 1.1s "IUl' S(' tiene n yendo <11 momj e·onll'llillol l d I' un VI y pulsan-
d o en SliP VI Nlldt' .c.;.. 'tlll'. I ~ls ",'¡.;u nd <1s d eterm ina n la fo rn1<1 d e nl()Slr.1TSl' 101 ven tan a :
normal (Vt't;IUJt) , en primer pl<1llo (F!O<1 till}; ) () impidiendo .K<"l' lito r a otras ventanas lit'
LlbV IEW h,ISt,l cerrar l'S t.1 (Mo<1,lf).

Debe teru-rse s il'm p n.' en cuen ta q ue al lla ma r a u n sub VI el hilo d t' cjecurjón d el p ro-
grama padre St' quedar é espera ndo a q ue term ine 1.1 \;I"l'uótÍn del ·hi~l~; <1 veces sera
desea ble <]U\' ap,l ll,'zca u na venta na pem qUt' 1,1 antono r SII';<1 t·jt'C1. 1 tá nd~. r a ra cense-
s JI.' VI SI'r\"t'r abnondo un.\ n -roren-
gu ir es t.., efecto ",' (lt-bt, n-a liza r la llamada ol trav é

253
Lilb VlEW

CJow._ __
Ebt- __
~ oft_ ' ''''''''_
[]s. "' _ _

I ~ I I '~ 11 ...

cía a l VI q ut.' st' qu il'n' ,ll·c..·..h·r y usando ]O~ métodos p.lr,) abri r el I'.md Fro n t,l l.y eje-
cu ta r d VI. md icc ndo "'fl l~tt' ú ltimo q ut' no St' d ..>tt'nga la ,,,,,'cuciéon ..11'1programa prin-
cipa l hasta q ue fin.tl i«> el subvtlta mado, como se muestra l 'fl la fi¡¡;u r<l 11-7.

11.2 M an ejo d e er r o r es
Cua nd o so,' ,'SCTi1't' un pR~ram,) es casi impusibl..• hacerlo sin n in¡¡;ú n error. So.·~ú n un
estudi o de ti ..och l y Ht"Chl d ..• 1%6 sob n ' el Sl>ftW i'ln> de ~;!'>ll'I1ld!o cu m p l..it~, pur cada
millón d e Jin..'.,!'> ,il' CÓlil¡;u h.,y U lll~ 2O'()(lO ..'rnln~ . d e I<>~ cuale, el ~)"'~ p Ul...t.·n ser
d etc....- I.ld o" co n "b lt'm,l!'> dr- compr obaci ón y 20lJ m.h dur.m n- t>! l'fim,'r .11'10 , In!'> I.KllO
fa lh ~ I'l"!'.I.mt..... nt > ... 1O d.. -tectados.

Los errore, p u íen te ner vanos nrí¡;l·ntos:


• "1"]" ,, l'Sp' ·ilk .ll·io n.'!<.
• r.rl'tlft>'; de d¡... '1'It.I.

• An' ri.l en t'1 ha rd wa re


• Fdllns r-n 1.1 comumcocion.

Los ¡dll"" a fec-¡,m ... 1,) fi,)t'> Ihd old Ysegundad d e 1si"tvm a. p'>r lo tan to ....• hace necesario
detectar. ma n.;.H y !'il l '!'l p<>!'i ib ll' o l m.";Ir adecuada mente ......Io!' 1a 111'",.

2 54
Mod~los d~ program.aclón

C o mo ~ 'l ió en e l primer terna. l.abVIEW ind ica s i hay alg ún error en el código de! p ro-
gra m a im pid ie ndu t;t'("llt.lrl 0, tos to St' si m boliza med iante u n io m o co n una f1t'Chil rota.
1\ 1 p l1"SÍ\ >n<H es te icollo ,1P,lrt'l"t· una lista con los errores y una d t'St.Tipciún. A I~uflos
errores tipicos so n entradas rt'll lll'rid .ls sin va lor conectado, h ilos rtltOS ( 1 condic iones de
1.1S es tructura s W H ILE 11 CASE ta mbién sin conecta r.

Un a ve <1U l' ol p rn¡;rama t'S sintáctica m en te correctota mbién p ued en ap'lrt'Cl'r errores
mien tra s el pm¡.;r,1In,1l'St,1 fu nci ona nd o, algu nos ejemplo.. son fallo.. en las fu ncíoncs de
comu nicaciones , funciones dl' manejo de ficheros, d i' comu mcacíon ron inst ru m entos,
errores por dosborda mtcntos, entrad as fuera d e r,lngn, etc. Esta secci ón trata sob re los
erro res o l'xn'pc in tll's gl'm'rad ns en tiempo d e ejecución.

Por detecto l...llIVIEW maneja automá tica m en te alg unos e rron-s, t'Sl.l opci ón PUI'liI.',j('S-
acttva rsccn TU II.s > 0 l'ti"ns > Block Diaxram rara hacer-lo d e fo rma m anual.

La p rinci pa l herramien ta <1Ul' proporciona LabV IEW para d etectar fallos son If!!> d u.stt'r
de error qUt' nencn 11!!> Vis y fu nciones s usceptible, ..1.. gt'llt.' rdrll!!;. Se componen d e un
indicad o r booleano q Ul' indica si h.Jy error o no, un ind icad or numerjco q ue muestra el
cúd igo d el errur en CdSl' di' haberlo y un string q ue o írece u na descripción del error. En
e1 meno Prtl~r,Jmmin,.; > Vi.l/"";« U.O;¡'T l nfL'rf.ll.-e hay una so'rit' d t' VI.. tlut' s irv en pot ra
traba ja r con t",tos du.sft'rs. Si un c/ u.s ft'r de error ind ica me-cii.Hl lt' cltermirsa l booleano
q Ut' no h.1Y e rror pt' Tl' sí tit'nt' un c<x1 i¡!;t1 d e e rro r SI' cons id e ra com o u n wilmin~.

FlgUld 11-8, Menu de dkilogos l' ifltrr fal de usuero

Los VIs m ás usados son: Siml'/t" Error H.mdlt'r y G 'n.'r .l/ Err or Ha ndl. 'r. Su funciona-
mien to t'S kí énnco, d e ht....-hl'l e l primero con tiene a l s<" ~u ndll; pUI...i t'n mostrar u n mcn-
I'kljl' al u sua rio cada \'('1- qUl' a su entra d a Em lf In 1l'l1t'F;a un e rrnr (o warning); I'S con -
vertiente qut.' e n caso de mos tra r el mensaje-. éste II.'ll ga u n botón d i' pa rada po rq u e si Id
('Jl'CUción 1'S cíclica pod ría lIt>J!;a r a Impedir usa r el in terfa z al a.s uario, Olmo m ues tre el
prtlgrama d ela figura 11-'J,

255
u b V IEW

"ID:] re=rn.-¡;¡.;:;;J.,
~ffiJ lfI
ID
Fl(jUf<l 11 9 EJl:'mp/O ,le' VI que m pKk' SU oerercon

El VI (~'/lt'raJ Erro U.m.l/e' permite personoli...ar e l error asociando u na d .>sc ripcio n d


ca.l.l cód i¡.;o. Entn- otras opciones tambié n permi te ígno ra r el error.


'~

Figura 11-10 f'l'fIDnalllaclOll óe'I error asooeroc UJ1a descn¡XlÚn " C.Jl],l códrgo

Si nose es pecifican las d escri pciones d e los errores , éstas se toman de las d e finidas en
l..lbV IEW por d efecto. C ua ndo <'1 n ume ro d e t'ffUROS st'.l elevado l '" ma s convenien te
,l ~m p.l r lns lod,,,, en un ñcnero ex terno en lugar de en .lffays den trodt'l cód i~o lk l rn¡..
¡.;r.lm,l . El fichero plll'dt, crea rse y ed ita rse d esde Tfln/.~ :> Ad\·anCl...t :> Ed ít Error Cod,...,
por d t·fl...- to Stc' almacenará en u~'r.Jit> \ ('rrors del d irectorio d e instalar'ión lit, l~l b V IEW.

too lo rD' Cc>dor f1 11r ( dIlD. g -


. . lO ...
.-.,......1.
"tlii¡¡;;;;¡>t

--
I~-"'-Ji

1
= Ildd•.•"" . .
I _ ...
- 11 ...
Flgur.1 J I · I I Ednor di' lJCIJ{'ro s de error

256
Modelos de programación

Para m aneja r los errores p ueden emplearse las estruc turas CASE y WHI LE y el VI
5('/('(-(, cablead as de la form a ind icada en la figu ra 11 -12.

No Error ..

m
Figura 11-12. M anejO de errores con seec. CASE Y WHILE

El VI 5c/t'Ct puede considera rse co mo una s im p lificación d el CASE cu ando se quie re


obtene r un valor u otro d ependiendo de si 1M hab ido er ror o no. 1~1 estructura CASE
puedeejecu ta r u n subdíegrama u otro d epend iend o de s¡ ha ha bido u n e rro r u no y el
W H ILE puede repetir el código d e su in terior m ientras h a ya un error o detene rse cua n -
do ocurra . C ua nd o SI.' construye un dri\ ,t'r para comunicarse con dispositivos externos
o con ficheros es conveniente crear los VIs d e for ma q u e todos ll'nga n una entrad a y
UI1<l salida de er ror, el código en su interior debería colocarse den tro d e un CASE de
man era quc sólo 5(' e jl'Cu tl' cuan d o no haya error.

Por el con tra rio, pilra ejec uta r un cód igo co mo respuesta a un error p roducido ta mbién
p Ul,..k US<1rSl.' 1,1 estru ctura C ASE d e forma equivalen te a TRY. Una opoón in teresa nte
es ejec uta r un determ inad o código dependiendo d el ran g o en q ue 5(' encuen tre ..1cód i-
go numérico del error. La figura 11 -13 m uestra el códig o p,Jfa manejar una excepción
d el p uerto serie.

61..65 ..

-- "-
F'9ura ' 1- 13 M anejO ce Un<l excepoón del pue rto sere

Los rangos de los e rrores típicos y la fam ilia ..k funciones q UL' los genere n vienen dado s
por 1,1 T'lbl'l l .

Tabla 1 • Rango de los errores t ípico y familia de funcIones

Rango Fundé,"
.-"-- - - - --
- .2 14 746 7263 a - 196 7390460 Ne!wor~,ng

-1950679040 d -19506 78977 Vi\f1<lhl(>s rornpemdas


-1%7 362045. -196736.2022 <l - 196736 199 7 Y SeglJlld<ld
- 196 7345663 a - 196 7345609

257
LabVlEW

fu""""

- IOH OO396 7 J _ 10 740039'.iO. - ' 0 7400000 1 Y


-10 1400lJ(X)()
-1 013801360 d ~ 1013801192
-90 ' 6'> d - 90 14'1 Y -:90 11 I d - 9000 1 "'"
~~ l tlx:"pl
-41 00'> d -41 000 Y 4 1000 Rq:xlf l ~ ll'Ioltoon
- 230% J - 23OA I Forrrlu l.-l P~lOJ

-230% il - 23000. - 20 14 1. - 20 140 Y 20005 M,J t("l nj l Kd~

-20H l J -20301 Pl'OCt'ldOO dt' lo('t'\.¡j


-20201 J - 20 20 ' A:wll By f\)rlt
- 201 1'1 d -2000 1 Pro<:~ (JI' ~

-4644 d -4600 Exp'~ ft'I'J.JW~

-2'183 d - ZC1 ro, - 2'164 J - Z'/W. - 29S5 J - 2'ISO. Controt ce coooo


_1-2'l29 d-2'IO l _
~2S86. - 2':>85. - 2583 d -258 1. -2518, -251S. - 15H.
- 2512 J -1559. - 2526 a - 2S01y 2552_
- 182 1, - I RlQ. - 18 " J - 1800 W.M:lorm
- 111 'l d - l 100 l\j:JpIl." E","11
- 1300 "- 111 0 II'"I\t rur1ll"l1l OfM'f
-aza J -BOO Y824 TI ME D LOOP
-620 d · 600 WIllC1cr.vS Rl"C)lstry AccC'SS
O eocessoc oe sM.Jt. GPlB. ,nstrumffil
~r. ForrnJld Pdr!>lflQ, VIY.

I d 20
G"'
1 J 52
JOd32.40a41
"""'.
GAB
53 J 6á -,.
6 1 J 6S
61 d 9 1 """
"""'.
'12 d se WndOM COI' W~tMly
91 (1 100
102 Y 10 )
"""''''
Inw umenl ()rM'r
l 08 dl 1 l N('r.vor klng
116d11Sy '12
1000 d HM5 """'''
"""''''
1046 <! 1050 Y IOSJ
IOS1 d 1()'}1
Sa""
G<nN'"
1'0r. 11 ' 4, I n s. 11 32<1 11 ) 4. lIJ9d 11 4J -,.
y 1118 .. ' 185
1094 <1 1151
1158J 'ló9,1318 1404y l411

258
Modelos de p,og,am.ulón

Función
_un 11!J..1..189 Y. LlJ9.__ Wlr!dOM Con~r.II.I)'_ _
1174 a !lBS. 1190 01 1194. Y 11~6<!J_ l~.!L _ _ ~!~_
' _
IJOI a 1321.135701 1366. 1370. 1376 a )]78.1380 GenefJI
a 1391 y 1395 ~J.~~ --:--:--:_=-_ _
)]25. )]75. 1386 Y 1387__ _ wnoows Con ~MI)'

1367.. 1368y 13n Se'gllfiddcl


_ 13n a_1356. 1369, y 1383 Nerworklrlg
1371. )]73. 1392 a 1394. 1400 a 1403-'-.14 48. y 14~ !!og¡am~~~rl onentada a coetos __
1430 a 1455.1 46801I470. 1483 a 1485. 148 7 01 1493. Gerl!'fo1l
Y 1497 a 1500
1456a ).46 7 Y.l.47 1 a [482 --- - _-- -
3D Picture ..Control
..
1800. a 1809 y 181j W<IV!'rorm
4800 a 4806. 4810. 481 1. Y 4820 a 4823 General
16211 a 16554 SMTP _
2000 1 a 20030. 20307. 20334. Y 20351 a 20353 "OCc,~
--",- di' sl'r'ial _

56000 a 56005 General


1801 21602 a 180121604 Varl<lbles corrosnc as
1073479937 a 1073479940 lnstrument DrM'1
1073676290 a 1073676457 V1IA

Adem ás los ra ngos d esde S.OlKJ a 9.~ y -8.999 a -8 .000 est án rese rvados piHa mensa-
jos de finid os por el usuario. Cuando una aplicación se distribuye también deben adju n -
ta rso los ficheros en los q ue el usuario ha descri to sus propios errores.

1 1.3 Máquinas de estado


A principios del siglo XX algunos matemáticos se dedicaban a busca r un método o
a lgo ritmo capaz de encontrar una solución (o una prueba de que no existe) ante un pm-
blema matemático enunciado de ma nera su ficien temen te precis a. En p rimer lugar
debían defini r qué es un algoritm o, las propuestas básicamente fueron:
• Una máquina computado ra a bstracta pero definida de modo preciso {por ejemplo
un autómata).
• Una construcción form al d e proc ed imien tos de cóm p u to (por ejemplo un sistema
de Thue ).
• Una construcción forma l productora d e clases d e fu nciones (po r ejemplo funciones
recu rsiva s] .
La mentablemen te se demostró q ue lo que busca ba n estos matem áticos no es posible,
pero sirvi ó d e base a la teoría de la computación q ue abarca ternas co mo la tenría d e
a utómatas, la teoría de los len~uaj es formales, la teoría d e la computabilida d y la reo..
ría de la co mple jidad a lgorítmica. En aq uella época toda vía no existían ordenado res y

25'
La b Vl EW

lo'; Iral'oal" " ..... basa ban en mlldl'los abstractos de cá lculo, m t":lu inas imagin,ni.l" qUl' t'jl"-
r utaban u n aígontmo. E.... I.¡s m,i q u inas eren sorprendenn-rm-nte pa recid as a los ordt'n,l -
dores d l' hoy en día pUl~ m,lOt; .lb.lO conceptos como m.i'lu iIMs d e propósi to gl·nl' r.ll,
p r og ra mación, du alidad hard ware-software y leng ll.ljlos formales.

1~IS a utómatas so n mod elos dt· r orn porta mien to co m puestos pn r losladlls , transi c itlOt~
y .rccioru-s. S u..l..n representarse co mo en la figura 11·1 4. El mec arusm o d e ron l nl l l~ tJ
situ.ldo en 101 parte inferior, l 'Sll' meca nismo mostrar á cl csted o en q ue se t·nCUt'nlr.l 1.1
maquina en cada momen to. El comroln..ne un C,IN'/4111,"Clu r sobre el cual Vd ,l1'iln /..an-
d o una cinta .:¡ue está d iv idid.l 1'n celdas, cad a u na de las ( u,l lt~ con tend r á u n s ímbolo,
1·1 stmbolo 'j u,' st' sitúe sobreel cabeza l se rá la ent rada d e 1.1 maquina en l .....• tns ta n n-.
En l'I s ig u il'n ll' p aso 1" cinl.l ava nza rá u na Cl'ld.l y un nuevo símbolo Sl' rá leido .


1 1 1 1 1 1 1 1 1 1 c",
L "

FKJ" r.l l t-t 4 Ejt'rnplo de Url dutÓllMI.l

Un .lultima ld p uede US<lI'St' pMd modelar un a cons trucción ha rdwa re (po r tit' mp llJ un
circ uito .... -cuencial¡ o con...rrocoone, software (por t'jt' rnplo un analiza dor léxico).

Un .1 u ló m.l l.l finito, tdml'o ién conocido r o mo maqu ina d ., estad os fi nita. se d ice ' jUl' l'S
dcterrniru..t,' cua nd o su m eca n ismo d e con trol, estendo cn un es tad o conocido '1 y reo-
hiendo 111M entrada a, en el ..ig u it'1l 11· insta nte p as.u ,i ,1 o tro t'SI,ld o también t:tlfll''l'id o,
l'StOlOS: lost.lt/n .sig u i.·ntt·=t(t'lót.l<1n ,lctual, t'n tratl.1 ,1<"tu;ll). siendo rOla funció n dotre».
sícíón, ¡jUt' p ued e re presen tarse med iante una tabla u un d ¡.I~r.l m.:t_

L., Tabla 2 tiene una fila p.ir.l cad a estado y u na columna p.ira cad a t'n lr.ldil. El come-
nido d t' cada celd a sera el siguiente esta do a l q Ut' tiene qu.· p,lsar la maquma cua ndo
oncon tr ñndose en l:'l esta do indicad o por su fil,l , n·d b.l 1,1 en trada indicad .. por s u
colurn na .

Tabla 2 • ElUdos de un autómata fl n lto


IElttrll dll 1 IEntrlldll :z IEntrad. 3

_ Estado 1 E~td<1o ¡ asraoo 1 Estado 1


bt.ml Es¡ddo 1 Estado 3 Estado I
11 ESldl10 3 EStdl10 1 EStado 1 EstdOOt

2bO
Modelos de programación

Pa ra indica r los es tados iniciales M' d ib uja u na flecha en la tabla y un nodo co n u n aren
entran te en el diag rama. Pa ra los estados fin a les, ta mbi én conoci dos co mo Jl' acepta -
cí ón. se usa e l sím bolo # e n la tabla y un nodo con d oble ci rculo en e l diagra ma .

Los dia¡:;ra m as de estados rep resen tan " cada es ta do con un círculo y las transic iones
en tre l ' 1I0 S so n üec has qut." va n de unosa otros, sob re cad a flec ha St' indica la en trad a (l
COlr.1\i.1S q ue prod uce l'S<1 tra nsición , como se p ued e ver en la fig ura 11 -15.

..... ,
..-
,

Entrada 2

..
El'lra<l:ll
" ,"
Figurd )1-15 uecrerna oe estscx»

1...1S aut ómatas también pueden ejec ut ar u n" acción q Ut· pued e ser si mplemen te modi-
ficar el va lor de una variable d e salid,l u otras m.h com p l"jas . la acción p uede cjccu-
terse cuando Sl' ent ra en un nuevo esta do , cuando se sale o cua ndo se n-aliza una tren-
sícíón.

Ha y varios liptlS de autóma tas finitos, los más d estacab les son los d ,' Moore y Meal y,
En los primeros la acción ocurre a l entrar en u n estado, en los Sl'¡;undos la acción es t'jl'-
r utad a al recibir un a en tra d a y d epende tan to de ésta co mo deles tado d el qut' p rovie-
nc, estas maqumas pueden nlOst'¡;ui r un, red ucción del n úmero d e estados .

En los au tóma tas finitos no d e termin istas no se p uede es tablece r el es tado siguiente a
pa rtir única mente d el estado actual y la entrada ac tual. Estos .11lIÓm " I.l s tendrán ,,1¡:;LÍn
nodo d el d iagr¡¡m.l co n arcos d I' salida co n el mismo símbolo o a l¡:;ú n nodo al qUl' 1('
faltl' alg-LÍn arco .

Los a ut ómatas d e pila a ñad en a los a nteriores u n eleme n to m ás alesquema d e la figu -


ra 11-14: una memoria en forma d .. p ila. En cada tra nsición se pod r án leer y/ o escribir
da tos de la rncmoría, así 1"" Iransiciont'S no d epend en ú n ica men te d e la en trad a actual,
simi ta mb ién de cond iciones an teriores.

Un au t óma ta todavía mas genera l es la m áquma d e Tur in ¡:;, propues ta por Alan M.
Tur ín g en 1936. En ella I¡¡ cabeza lectora p uede moverse y ad emás p uede escrib ir sobre
1" cin ta. d e esta manera puede usar 1.1 p ropí a cin t, corno memoria. Estas mdq u lnas ue-

261
Z9l

"!¡;O l P UJ OWIlJ nI'


-1!1S,1 p ,{ \? p t' J1 U.l lOl \' ,llu.lSou d J J eu b coueumu j Ul!!A u n o puesu Át'JJ V )(iJPU/ .J¡UI" P.' W
" IU.l l p U,xis,),IJUJ Olu.lUJap le J ,lp.lJJ l' an b Á\?4 .1IU<l W.1Jd w !s " I u.)m ~ !S Opl'lSol 1,1 j ,lU
l'1'1I'.1 J.l.\ 'So.l UOP !SUI'J l .11' l'[ql'll'] .1I U,l LU
",' l<l0 l'U 'd "S,l Ull ISU.1W l p So r .11' .Ú 'J.l I' u n lO ' z
-l' p .lJ lp Opp n pIlJIUI 1'4 ~ ...puop '¡;lI - II l'J n~ !J ['1" 1' Id tJ LI -ll l'Jt1~1j 1'[ .Jp oiflfll)., [.l ni
_.l p O lU OWOJ aesn .1lMnd JoS SO P ¡' l!O.l al' l'u!nhl¡'W 1' [ .ll' SolUO IJ!SUI?JI SPI Jl'IU,lW"ldw! I' Il'J

-eum beur vl resed il<:J,lP anb te 01'1'1<;.1 "",,,,' ,"1:'l1s l<Jp UIJ!S!.l.lp PI U{I!qWl'1 .( :lSV::>
[.11' " I Uill p UUJ'óolJJ O.) I' Wl'J~ l' l pq l1S 1,1 ua l'PlU,l I U'),) fJl' I"'" O pt""" IlO l'pl'!Jo\)';\, ll~' pJ l'
1.'1 ~ l' u ! n b,!w PI J¡>!;l'd onb .l U.1!1 anb Il' OPl'I"" .1Iu .m l':ils P ¡'¡n.UD .'Oh l.::l rod J,}¡" I~lJ
IJ!1I5 un i1Uilq .l p nq l.l '3SV:l un I~ ap OJlU,"p .< 3 'lI HM .'} p nq u n "1' et suoo O~H'lI,)) El

w nu3 0011 ,)lUl' lSUO) l'Un \1,) SODf']S,) .:JD U9'JIW);l(] '9 1· 11 l"Jn Ólj
,
e llpV153
,oprl53 1'
,-
L 1 ~3
l. 'OPV!S} _I
lIRl5UO) ........ ,3

-rI \llTl.l! d lOl P


u.) <;,)lo.q u l )) .u qo.)'; llt,lP:>o.')S JJ .\ ) lJl I!J.lI.,;od l' <;111'1' 1<;-1 SOl J l' l !j !pOtU 1111
-ou..... sfW f J,'OS (p () .,JÁl P!J1S 9 pa .1o.. H.l ) O¡w'''! II'UO!óJM u d " un P.lJ) ~ Sf W.lplO !S
-lUn u:¡ odu JI' " IUI'ISUO.) eun U,l ...."p !U!p p J.JoS U.ll::PP l'U!nbfW lOl '''P SOP PIs.l SO¡ ...., P'-"l

'SlI\WI<;-l
.l p seu m beur ua S<1\lI'W'I SlOlUl'Jl:IOJ J J IMJ J e J I!Z""-.! W.l anb l'1 .11' JIIJl'd l' ,lu!tJJ1'1'V .ljf'N
1")1'1'11['15 l?p¡>wl' lI t'lIJ1ulOld eun J!Jql' olp.' n d es "'M ' )N < JI!:l u,,, . , OplUI '''1' l?lIt'lul'd l'l u:¡

·J i!J.lp !SU<,', '1<1'''1'


M :-II A'II'l ilp JOpl' w t'Jlkud ¡l po.ll.mb 0 1l¡Wl"Solp .lp so pol~w ....l ll'd!l U!Jd SOl op oun Joc
"¡P I' SO P PlS<l " 1' l'u mbyw e u n ' l' to lllUlJ"'P U3 ·OJ! U~)J I :>o.l ['" o,uJO) " 1' JOpli\J<J\ó u n Old w.,l",
Jn J 's,u u p! ,\J,l,; u s,lI U"'IIJ S<lu n~ll' U\"!'1WPI Á 'd,11 OWOJ '!>Opt'l"-l .1p sl' u !n b~'w OUH1J
,lS./ IU!P p uop.md ....' lo.JtlloJd ~>ipn w o[d w ",1.l aod -uooenun u no ."p st'W.llSIS u J (,)I [d l'
o p aud .lOS u.¡J!'I WI'1 'M 11A'It"l ,>0;11 .-,.; S\'W epuop >;oc:l Wl') S<JI "'1' n un uos !ó\' W.lp l' onh ' [. u 1
-uo o ,\ 1...." 1 -e p rp our o p >;t> W.lll'--!S l'JPJ Sil UJ!d¡¡ osn u n ·SJUOI.l!p UOl SI' PPU!LW.1I<l P .' IUt'
J.lpu.ld.;,u anh p ,{1'4 e n b <;0 1 U.l SI'w" I'Ilu d P J l.'llld l' uepand .-,.; SO P I'I'i..l .lp st'u! nh~'w "l."')

'SO WI1Jtl~ [l' e p 1I9 Pl'III.l W"'ld wl .l 0 llOJJl'


-<;-11' 1,1 er ed op!d\'J n p0 11"W un t>WIlJ Sllp l' ISol " 1' sru mbe ur r esn u.lp.md.lS M 31¡\ql."'¡ u:J
1l'\3lf¡Q!n IR sccesa 0lP saJ!nbfvII IT I I

' lOlllfWJOJU! ,1 e.)!U9 JI:>o.lj.1 'SI!';)II'!w .Jl I'W ' l'J~\1 [O !'I ' l'.lI I Sm~
_U![ l'l l1 WOJ >;lld Wl'.) ua ueoqda ,lS 'Sl' p t'IJl''\ ÁIll U UI)'; SPl t' W\"l lll!' sOI .l p s.lUOP l':llld l! s P1

-~U lJ nl-tpmt[) .J p SIS.ll oWOJ ooouco os on b " 1S.l ' .ll'll!'l


-n d w o l u cceredo Jo1 ln bl l'll.) J e z!IP,)J opond ,.... I!'IP ,'IUl'!P.JUl an b Sol ~ UlJ nl.lp l"U!nbJ.'w
1'1 .l p t'ptJl'lJtl<f W! tFl '''lnJ1YJ 101 Jl'nU llun) t'!po.>c:l ....,; o111h >;O[ U.l S.IJOP"'IUl' Sl'J .11' U91J
- l'IJ ,l) l' "'P SO pl'l!i.l Sll[ ., p l' pU,lJ,lJlp E 'OIn.:ll Y) 1,) f Jtl JPd .'OS a n b 1.1 u .1 1I'U!j opers e UIl ueu

M311J\Q t"l
Modelos de programación

j l'llCJO" Def d ..

~::-aWbSOOaOOl~~ del ~e I
~
.""" .
<1: aW lrc'i.1I e e<l:aW
• - 1...., ..

~. ¡¡j
tn
FlQufa 11- 17, Plantilla p.1r,¡ Implemen tar transcooes !

1"Jt,~ 1 nt'~ 2
í<l:aW ti
f<l:aW 21 " E, lI>do 2 '" " ES/ m 3 " .E<I:~ t •
í staW 31 , " E, . m 1 .. " E<l:m 2 • · E<l: m 1 ..
e . ...,

..
Figura 1 1-18 I"Iannlla para Implementar uanscooes 11

Los a utómatas finitos p ued en im plemen ta rse media nte u na máqu ina d e es tados es t án-
dar, Pa ra los au tóma tas de pila hay que in troduci r u na cola. En el capítulo sobre rnulti-
h ijo se vie ron a lg unos Vis que permiten crea r y tra bajar con colas, éstos se hallan en
Progremm íng » Syncronizet íon > Que llc Opt·r,ltions. En 1.1 figura 11-1 9 puede a p recia r-
s.' el uso d e estos Vis, en primer lug.u M' en-a una re ferencia a la pila l'lig it'nd o el tirl '

x
-n»

m ._- ~

FigWd 11- 19, M aqUina de estados con pila

2. 3
La bVJEW

d .' da tos: d.'ntl'tl dd CASE h.ly un Vll'l\ e l cual !'O;" t"\l,llu oJ rÍol el !>1 ~U I''fl I., ecta do a l qUt'
d ebe pdMI' loJ maq uina como t'fl 101 fi~ Ul'ol Il -HI, Idm1'liM1 t~lari .," en el C ASF. la!' dcciu-
nt~ '1 u(' d cbcrtan t't"l."'Uldn.t.· Ino ft'pn.'St.·n ladas enla f i~ ura ) .

Una máqu in a tlt' Tu rin,; puede hnpk-m e ntarsc m.od i.lnlt· un drr.l.'" qUl' h.K l' 1.1"; \'I'l't'S dr-
cinta y u n ind it"t, numérico '1Ul' n'pll.~·nl.l la pus icilln en 'l Ut' '.t' t'l1t'Ut'nlr,l el ca bez.... I.
En ('SI<I ma q um a h.1Yq Ut· tt'nt'r en cuen ta q ue se J"xlrl., da r el Cd!>U d e mn-ntar acceder
.1 J" osiei" nt'S .1.· 1.1 C"inla .1nlt·riun'!> a l., p rimera. J".r lo I.m lu ha1'l rí.l qUt· h.ll"t·r '1Ul' d pri-
mer dato ' KUJ'" 111M J"os id ón ,l\'ilnJ".lda en el ,1fT.l y , " mejor a ún, n ".h mt'n!'> iun,u y d es -
1'1.t 1. \1' el ,'TT.IY cua ndo t -sto oc u 1'1',1 . r ,11',1 leer si m plcnu-n te h.11'lTí.l 'l U(' ,Kn.. h-r .1 1.1 pos i-
ción d el .11'1'.1.1" indi c.ld d pUl' el índice. El dt.'Spl ,1J"~l mi l·n to St' euns;¡:;u.· simplemente
s u ma nd o n n ... t.lI1dn u no a l mdíce .

En la fi~ ra 11 · 20 ...• m ues tra una máquina d .. Turin¡.:, dl' IIl.'S €'Sld.!t'" non una entrada
dl' daros booleona c on lus d alos imcialmente CI'n valor FALSE. La 1.l1'l 1.1 dotranstcíonc-,
S(' ha im plemen tado media nte un .11'1'dY d e dos d imt'Il...innt..., una dt' .·11.1.. para los ('S1.l-

.l ns y otra P.U.l 1.1 entrada, el ilrrety eslá compuesto pUl' d W.t. ,fS i.JlIl' contienen el
..;i ~u i t'nll· l~l.l d'l .l l 'IUt· d d,,' p.1SoU 1.1 m áquina, t'1 va lor ' ]111' I;"'nl' q Ut' escribir y el dt':'o-
plaza mien to . El p nlj.;ram a han ' qUl' la máqu ina escriba se io:; va lun~ TRUE en dllt...
p.1S(l!' Y finalizar á, l~lt' tOS el p m b km.l c onocido corno _h... easlo n-; .l f.10<>"''''• .

"

:"J.ltion.l l In ' lru m. 'nt.s y "I~\l ntl!o hbros d e la b i¡' li(~r.lfia tam bién mencion.m Qtlt'l1t'tl
~t,l tt' .\ I,lt"him · (no confu ndir con el autórnata dl' pild ) co mo pl.lIllill.l!'> de di!'O;"i'\I). En
d l.l>; !'implt'm t'n lt' st' !'> 1" tilu y", e 1¡;h it t l't'giMt'rtit'l bucle W IIILE pt'r u n" C\J1.l. En e l inte-
l.,
rior d el e ASE r-l ",i ~ ui l'n tt' t"!;t,ld u St' almacenar,1 en 1.1..tll" Y en s i¡.;u il·n lt' t'jt.'Cueilin ....
t'>; II',ll'rá de t·II.I. 1..1 0.1.\ a ñad e un,l opción más a la máquina : pl't~r,l md r Id "'i"'Cuciún d e
"arios e;,I.lJt>!ó st'CUt·nci.llml'fl lt·; ~" 'I' l;" mplo d esde d es tado In'!> S(.' p uede hacer q Ul' 01
continuación St' "1''C'Ull'fl e l uno y e l cua tro. La fo rma t>ásica dE' €'Sta m,iqu ln.l *
PUNt·
W r t'fl!a li~urol ll · 21 .

2M
Modelos de programación

«&do """la!
"[<tadD r •
" Estado 1 •

~ a, X
-<11> :2 lll><J F jiii:J -<11>

~ ~ ~tado
- Estado ) ..

[j]
Flgw<I 11-2 1. M áqU ina de escaoos rxeceo
L
Na tiona l Instrumenta ta mb ién habla d e M f!o U Dri l 'f!/l Sfatt' M ,lChillf'. SI' trata 'd e Id
mis nl,l es tructura de 1.1 má qui na es tánda r pero sus tituy endo e l con trol Enum de los
estados por 1,1S opciones li t, u n men ú d el interfaz de us uario . Sin nega r 1,1 utilidad de
1'1S m ismas. los autores d e est e libro no considera n realmente a estos pro~ra m ,l s co mo
máquinas de es tados ya CJut' la decisión d e l sigui,'nte ostado ,1 1 'lUl' d ebe pilSilr 1.1
maquina le viene im puesta por el u sua rio, no es propia de 1.1 maquina, por lo ta nto se
pierde el conce pto d e tra nsu-ión. Además es preferible el uso d e 1,1 es truct ura EVENT
pa ra l'stl' tipo de ap lIcacíoncs . Un ejemplo puede Vl'!'SI.' en la fig ur,l 11 -22.

.. ,entVl'.~

[j]

Figura 11 -22. M áqulfla de esraoos M enu Dnven

Pa ra fin aliza r en lo q ue res pec taa máq uin as d e es tado también ha y que comentar que
existe un Toolkít CJ uc asocia un diagrama de esta dos a u na estructura WH ILE, d e esta
forma d código se va crea ndo automá tica men te a med id a q ue el p rograma d or di buja
el diagrama de es tados.

11.3.2 Ejemplo: M áquina expendedora


'1 .3.2.1 Explicación teórica
Se trata d e diseña r una m áquina expend edora q ue ace pta monedas de 10 Y20 céntimo..
de euro y sirve refrescos q ue va len -lOcén timos.

265
u b VlEW

En es te t'jt'm p lo M' t' mpk'.ua u na máqu ina d e MO;'dly. Lo m iÍs im r u rt.m tt· .1I d i~ r cu al-
quier m . t quina d\, t'St.l<i ns es defini r aprop iadernentc s us t"!'t.ld...... Ta mbién tw y qUt'
idO;'n tificdr todos k.... s imhul us qUt.' plk'tien tener su~ entradas ~ !oollid"... De O;";t.l funnd
M' lit'm'n vd ril)!> o:ul\lun los fin ilt....: el de estados, el d... t.'lltrdd ols y e l d e <;dlidds. El
siguit'n h' paso st'T,i n-llenar una tdbl,l de tra ns iciunt"!" (1 u n di,l~rd nlol de es ta dos a r .u -
lir .t., 1.1 .l."SCripdón d r-l probk-ma qUl' d a rá luga r a la fu nción d t'lr.1Ilsición .

Estados
• SO: Pa rado.
• SI : In troducidos 0,10 f .
• 52: ln tnxi ucid os O,2t1 €.
• 53: Introd udJ us 0.30 €. (un" moneda de 0,10 y ot ra de 0.20).

• Munl'íla dt'lI,lll f .
• Moned a d t' lJ.2t1 f .
Salidas
• St.'ñal r ara ublt'llt'r la bebida .
• S.'ñ,lI p.lr.1 indicar devolución (si 1.1 h.1Yserán 0,10 f).

• Si esta ndo en 52!o1.' introduce utra mo neda de 0.20 f hay 'lUI' servir Id bebida .
• Si estando en 5.1 M' Introd uce otra moneda d l' lI,lti f ha y qm' M'rvir la bebida.
• Si esta ndo 1'11 53 !oO;' intro d uce o tra moneda d I' 0,20 f hay qUI' s.·n.·ir la bebida y
devolver 0,10 f .

Transiciones: fi¡.;u ra 11 -23.

11.3.2.2 Códlgo
Como Ia m áq uina deestados d epend e de l us ua rio M ' implcrnenta r é medi an te even tos .
I{dsta "JUI' no St' in tn ....mee u na n ueva moneda no st' pd!;d al sit;uicnte es tado, l'SI,\ es la
razou r u r la "JUI'!ot' h.\l'1,~i do una máquina de Mt'a ly, si se h uhn-e- h.«'hu d e M oore se
necesita ría n dos l'!Ot.1d.l'o más para las salidas.

Ca d a vez qut' se r n '!Oillllt'n u nos bt 'ltln,~ que simbolizan 1,1S titl'o pos ihl.'S monedas qut'
SI' intr od ucir án en 1,\ maquina, se t'it't'u ta rá la máq uine d e t~l.ltlt lS . Pa ra sabe r qué
mnm..la st' ha introducido só lo hay que com p robar si I.'S Id de 20 cénnmos, s i ntJ lo tOS
Sot'rii la dI' lO, .""<tn strve p.-ua calcu ta r el siguiente estado al qut' p.lSoilrá 1<1 m.iqu in.l
mtod¡anlt' un n.....to ~·1t't1.

En los estados 52 y SJ so,' ha a ñad ido un segundo CAS E q ut' Sin.'l· para ca lcu lar la..
sa hdas.

'66
Mod elos de programación

............
'"

st

ec sa
"
.....'" "

....."

o "20 Céntm;,,¡" "W c"",.,..,.": Vobe •


""" -se- •
OCértmo<

.'" . kml
..'"..,-.... I~
.- - o
I 1· 53 ~t !5J]]
.
I
l ~,:"~ j...,i
. ¡¡¡;¡;¡¡j
D:!I -w
1. ""!,;¡ -- ~
m '- Ii!
FIgura 11-24 Código que Implementa la máquina exoeroeoora

I ' .3.2.3 Resultados


En 1,1 fig u r.1 11 -25 se a p recia una ca ptu ra d e p antalla de l Panel Fron ta l des pués d~' habe
in troducido O,SO €. Los botones e indicad ores booleanos ~l u l' SI' p uede n ver en 1,1 códi-
go de la fi gu ra 11-24 (10 Cén tim os, 2UCéntimos. Cambio y Ik bid.l) SI.' ha n personaliza -

267
LabV IEW

do con imágenes d l' monedas y botellas, mien tras q ue EM,J.1o m ues tre el val or q ut" se
ha in troducido desde 1.1 última botella servida.

11.4 Co m unica cio nes


11 .4.1 Maestro/esclavo
La estructu ra de m.wstm /l'!< la vu (m,l..tt'r/ s/a n ·) ....• suele usa r p.1f.1 ejecu ta r 1.11'1.',1" de
una to rm .1 a smcrona . El c ontro l de la comu nicación lOS urud irec cional [desde 1,1 maestro
,1 los esclavos). no ,1sI 1.1 pro pia co m unicación.

En Lih VIEW esta a rq uucct ura puede im plem enta rse median te un burle 'lUl o .K tua rii!
d e m.11'StW y lino II v arios qut" se-na n esclavos. La com u nicaci ón en tre 1'1 maestro y 11lS
esclavos on puede fl'a1i7,II"S1.' mediante cableado pn rq\H~ mm pt'rii! e l p3 raldismtl de los
b ucles dI' ma nera 'lUl' habría qu<' usa r va riables u otros m ecanismos <'Sludi ad" s en l'I
capüulo S<lh n ' m u lt ih iln co mo ('CCllrrt'/KI'S, noti(;I'I"S, tI colas . El maes tro v /» lns <'Se1.1-
vos p ueden es tar rt.' .l li.l.•adre, m ediante m áquinas d l' t... ta dos .

Una p lan nlla p ara l 'St ,l arquitectura pud ría S('r la mos trada en 1.1 fi~uril 11 -21>.

<D
,-
[j]

FIglJr,;¡ 11 ·16 PI;mt~l.l ce una comurllC<loón m<l1'5troll"\(1..!vo

268
Modelos d e p r og ram ació n

11.4.2 Productor/consumidor
La a rq uitectura prod uctor /consu m idor est.i basada en b de m'H'st ro / esclavo y, <JI i~;u'l l
q ue ella, co nsta de va rios buch..' S ejecutándose concurren teme nte.

En esta arquitectura lo s bucles se d ividen en productore-s do d atos y consu midores d e


los mi smos; los prod uctores p ueden ser, p or e jemplo, lo s enca rgad os d e adquirir d atos
a través d I;' una tarjeta DAQ y los cons um idores pueden ser los encargados de gu.l rd a r
cada u no d ('1 0 5 datos en ficheros. En el ejemplo <Interior también se podrían realizar lJ S
d os operaciones en el m ismo b ucle, pt'fO la eficiencia lit'! p ro grama pod ría C,'I(' r enor-
rne rnen te puesto quc no se ad quirtna un n uev o dato hasta qUl' el anterio r haya s ido
almacenado.

11 .4 .3 Ejemplo: keylogger
" .4.3.1 ExpIlcad6n teórica
Un p rogra ma o dispositivo keyloggl'( l'S aquel q ue fl'¡;is tra lodos los eventos del tecla-
d o pa ra gu ardarlos en u n fichero o envia rlos. Estos p rog r<l mas usad os d e forma benig-
na p ueden ay udara u n serv icio técn ico a resol ver problemas a d ista ncia .

El p rogr.l m.l de este ejemplo sigue la m isma filosofía qUl' un kt'yloAAt'r, pew con evcn-
tos d e ra t ón e n luga r d e teclado. t.A1 qU l ' debe hace r lOS almacena r en un fichero cual-
quicr acción llevadaa ca bo con el ratón y almacena rloen un fichero de texto para '1 \1 l'
des pués pueda ser en via d o o consultado m ás tard e.

'1 .4,3,2 Código


El p m f!;ra m,l cons ta de dos bucles : l,l p rod uc tor y elconsumíd o r.

El prod uc tor adquiere contin ua men te el l'~ t ,l dn (posición y botones ) del ratón media n -
te A('qu in' In p ut D.1t, l . Puede detectar q Ut' el es tado ha c ambiado cornparandolo co n l' l
d e la ite rac ión an terior, e l VI Not Ecuei? p uede compara r elemen to a dem en to o todo
el doto, en esta ocasión se d esea esta última opc i ón, po r 10 q ut' hay qut' cambia rlo
media nte el meru¡ {"o nt,'x t llaJ > Compa r<l.sü m Mo{i,' > Cnmp<l/"t' A~~rt ',Il",l h',s. fi na l-
mente cuando 1'1 estad o del ratón ca mb ia se almacena e n una cola .

El St'f!;und o bu ri l;' es el consumid o r, su función es ext raer 1(>;; dat os ,k 1,1 cola y al maco-
narlos e n un fichero d e texto, pa ra es to se consuu y e u n string con la po sición d el cu r-
so r, el estado de los botones. la fecha y 1<1 hora .

El código p uede ve rse en la Iig u ra 11 -27.

11 .4.3.3 Resultado
Después d e e jecu tar el prog rama, p<l r<l ver 1"1 resulta d o debe abrirse el fichero ~l'l"'T<l ­
do, u n pos ible resultad o es:

Coord: 2 9 8 32 4 o Bot: FALEE FAL 5 E FAL5E FALEE Hora 03/0 4/2006 12: 2 3 : 0 0

269
labVIEW

Coo r d : m e BOl, FA L SE TRU E FALSE FALSE Hora 0 3/04/ 200 6 12:23,00


Coord: '" o BOl , FALS E TR UE FALSE FALSE Ho r a 03/0 4/ 20 0 6 1 2: 2 3,00
Coor d : '" '"
m e ,AL>;, ,AL>;, 12 :2 3 , 00
'" m e
Bot : T RUE
'AL>;, ,AL>;,
FALSE Ho ra 03/0 4/ 200 6
,AL>;,
Coo r d :
Coo l"d : ,'".. m e
Bo t :
Bo t:
FALS E

'AL>;' ,AL>;,
FAL SE
Ho ra 0 3/04/ 200 6
,AL>;,
Hora 0 3 /0 4/ 2006
1 2 :2 3 :00
12:2]:0 0
Co o r d : ai s e
'" BOl: FAL S E FALS E FALSE FALSE Hor a 0 3/ 04/20 0 6 12 :23:00

Oo!'vlce.'"

• • e:=;1 •
kClf!l?«e aqzegat,,] "

_oord : "ll.d "ll.d 'll.d Bct: 'lI.s 'lI.< 'II.~ % s Hora 'lI.s '11.5
a,

.,,,

[j] liEJ '

F"qo. Jfd 11 ·27 . KI")bgr]er

11.5 O r ien1ado a objetos


Exi!>!I'n diversos p.u" di¡;mas en 1,1 progra maci ón. En 1.1 p rog ra mación "c1.i!>ÍCJ", tam-
v ién l'!> 11,1rnJ d ,1 proccdu ral o imperativn, se basa l'1 co m porta mien to d e l p"~r.lm.ll'n
llamadas a fu nciones y los datos en variables , ambos in..l e pendien tes e ntre sí. En la pw-
g ra rnaci ón por fl u jo de da tos S(' hace hinca pi é en las tr ansform arjones qUl' s ufren los
d ,llllS d esd e la entrada a la salida .

270
Modelos de p rogramación

La prog ra maci ón or ientad a a objt,tos (<-X) I') tOS o tro pa rad ig ma di' p rogra maci ón tl ue
lI;ira en tomo al co ncep to de obi('IO, qUI' es una entidad q ue ,lf;m p a tan to el estad o
(d atos) como el com porta m ien to (p roced im ientos),

El primer lenguaje orien tad o a objetos fue Sim u /,¡ 67y, basado en él, Xerox creó más
tard e Smil/ltaJk. En los a nos ochenta se pop ularizó este métod o de prog ramación deb i-
d o princtpaírnerue a l uso de las interfaces de usuario, en los <¡ut' 1<1 CX)I' l."; espe cial-
me nte apropiada, y a una e xtensión de e para so po rta r a la 001': C+ +,

Lo s p rincipa les COIlCt'p tOS <JUI' st' manejan al tra baja r con OOf' SI;' pueden resu mir en:

• Abstracción : SI' p ueden u sa r los obje tos si n entra r en d eta lles d io' có mo es tán
hechos. Cad a generación d e lenguajes di' programaci ón ha aumen tado el nive l d e
abstreccton.
• Encapsu lación: cada obj\'to I'S un conjun to d e o tros co m po nen tes (datos y p roced t-
mientos] y SI' puede consid era r corno u n ente 1"11 s í m is mo . Algunos componentes
p ued en es tar "ocultos" d entro d el objeto, de ma nera .:¡u(' sólo s{' podría acceder ,1
l.,1I0S.1 través d e los procedimientos que el obicto pnSl't' a to l ctccto.

• Herencia : un objeto esta descrito por medio de u na clase. I'Ut.Je haber CI.1Sl'S basa -
das en otras for mando así una estructu ra jerárquica . Un objeto herl.Ja las prop¡.....
d udes y com po rta miento delas clases en las q ue se b.1S<1 .
• Polimorfismo : es ('1 equivalen te a la sobrecarga d e funciones n de operad ores en
II'n ~ll<ljl'S p roced ura les. Se tra ta de asocia r el mismo nombre a com p ortami entos
d rfcrentes y, d ependiendo d el tip o de datos con q Ul' SI' invoq uen. se selecciona rá
lino \1 otro.

Por otra porte. a l diseñar un prog rama basado en eX)1' los compone ntes funda menta-
les serán:

• Gases: 1'5 la d escripción de un objeto. una p lantilla ':¡UI' SI' apl icar á ,1 sus instancias.
En su d efinición i!grupa los datos y procedimientos que tend rán tos o bjetos di' 1' S.l
clase. Co mo es u na me ra descripción SI' trata d e u n c oncep to abstrac to q ut' d escri-
be cómo SlIIl los datos, pt'ro al no SI.' r una entida d co nc reta . és tos no p ued en tener
ning ún va lor.
• Objetos: lOS una instancia de u na clase. Los datos que contiene un Objl'to sí p ued en
tenor valores. Nótese 1<1 d iferencia entre clase y obje to: la clase es si m plemente u na
descripción y el objeto es una entidad d efinido de la forma q UI' indica 101 clase. U n
ejem plo pod ría ser li! idea «coc ho» (eI.ISt') y u n coch e real (objl'to).
• Métodos: son los procedimientos que co ntiene el objeto y determinan su com por-
ta mic nto. Es e l equivalente a las fu nciones de los 11'1l).,"Uajl's procedurales. La llama -
d a t I invocació n de u n mé tod o se lla ma mensaje. los mens ajes se pueden p<1sa r d e
u n " bjl'lll a otro o in ternamente d en tro del mi smo objeto. Siguiendo con el I'iempln
anterior, la d aSl.' «coche» tend ría lns métodos «acelerar» o «frena r».
• Datos: los da tos qu t' co mponen los objetos SI' clasifican d ependie nd o de si SI' pued e
acceder ,1 d ios desde e l exterior del objdo o no (unica rnon te los pueden mod ifica r

271
Lab V IEW

los pr ocedimientos d el oPjt' to ). Los que put....len M' r acn 'l.Hd o;; desde el e xterior M'
llame n p r op n -cl.ldt'S u ,1tribu tos . Los que ruI p ul-cten ser ,ll'n'liid os desde elextertor
de-criben el t~t "d \ltkl "bit' lo_ Son el eqmv alon tea 1,1;; va n ablcs en la pnlg r.l md-
ci ón procedural. En el li l' m p lo d el ..coc he» pod ri'l SI'r 1'1 fC wlo r».

En Id figura 11-2t\ se h.1 tra tad o de rep resentar e l concep to d e 001'. A Id Izquierda Sl'
pued e ver la d ..firucion d o u na c1,ISt.' , 'l ULo...';;Iá ( llm p Ul'!>I,l JI' varios d atos y va rios pro..
n ....hrnien tos , a la d ..roc ha ha y tres ob¡e los de cs.l rnrs ma cid.....· qUI' .....· I'SI.in comunican-
doent re sí pnr medio dI' ml'n s,l jl"S.

l'.U,l crea r un objeto l'Stl' J d .... inicializa rse, pa ra ello se l' mpll',l un método especlallla -
rna d o co ns tru ctor cUY<1 funcilÍn t ' S inic ializar los d a tos JI' I'St' o b jeto . Otro mé todo I'S PI'-
d a 11'S d d est ructor, ql!\' lib...·r,l 1.1 memori a ocu pad a po r u n objeto cua ndo ya no 1'S r ece-
"'\Tin. En a lgunos C,lS"" 1'S l'I p rop io len~udje l'I q UI' l' n',1 1,1 constructo r d e fo rma
au tom ática .

"""'"
.-e
[IIT!]!)
Po.......... ,...

I B(~~
/ -\
OfltlllO A
.- - .-
"""'" B

EEI:IE}
Po <»01 -''''' _ ... .
[!1!]]]
"'l
IBCJ ¡IBCJ
fK]Ura ' 1..28 Conc epto de p1ogram<lClÓf1 Ol!E'fll add d o bjetos

Al ap rend er p ro¡;r,m l.1d ' lIl o ril'ntadd a IIbjdo ,; st' requ iere d el programado r una n ueva
forma de f'l'n",' r d 1,1 'l Ul' nn l«,t,i h abituad o, ,,1);0 COSlLlSll .11 princi p io. Para entend er
m ejor lod os estos c(ln(t·p!l~ .....' p ,lrtir,í d el ~i gu ¡l'n tt;' "'¡"'lU p lo:

En u na empll'Sd. St' qun-re d l....lTrn ll.lT u n programa q ue gestionelas fichas de los emp h--
."h~, p" ra {-'ff\pt·...ar se puede crear u na clase gcn énca lla mad a empleado q ue como atri-
b utos tend ría n ombre , d epar t.a ment. o y sue ldo y com o p r ocedimien tos P UI'liI' tener
sub i r_ s u e l d o , ba jar_ s ue ld o. t r a s l a d a r y noeu.ne, po r sim p licid ad las sub i-
d ..", y be jadas d e sueldo son .Id l m~, . En seudo.. . .:údigo p<. ll.l ri<l se r:

CLAS B emp l ead o:


nomb re , d epa r t.amen t o, s ue l do
su bi r suel d o:

272
Modelos de p ro g ramación

3uel do ~ su ej dc • 1.1
ba ja r _sue ldo:
s ueldo • sue ldo • 0.9
trasla da r (n u e v o De p) :
depa r tament o ~ nuevo Dep
nom ina
RETURN s uel do
FI N CLA SE

Para crea r una ficha de un e mplea do sólo habría que ins tancia r la clase y crea r el objc-
ro co rrespondiente. En e l síguÍl'ntt' seudo-c ód igo SL' crea un objeto mediante la palabra
reservada NUEVO, el nuevo objdo ~ llama e mpl ea dol23, además se pasan los
pa rámetros de inicia lización q ue el co nstructor usará para dar va lor a las va riables en
el momen to de crear el objl'to:

e mpl ea d o 1 2 3 ~ NUEVO e mp l eado ("Jua n" , "Ma lC keti ns " , loool

Una ve z crea do el ubjeto ya SL' p ueden emplear sus métod os para trabaja r con él, pur
eje mpl o si se q uiere a um enta r el sueldo y trasladar de depa rtamen to alempleado an te-
rlo r se pudría hacer:

e mplea do 123- ~ s ub i r_s u e l do

emp Le adc Lz J v e-t r-a.s Lada r- I"RR. HH." )

Para sustituir a l empleado a nte rior la empresa puede contra ta ra uno nu evo (emplea-
do32 1j q ue sería insta nciado d e la mis ma forma. Con esto se co nsigue tene r d os obje-
tos de la misma clase pt'T\l con valores d ife rentes:

e mpleado 32 1 • NUEVO e mple ado ("Pe p e" , "M a rke t i ng " , 500l

Además se puede pa rnr en la clase an terior p<1Ta crear otras nuevas. Po r ojcmplo SL'
pod ría definir la c1a SL' d irectivo q ue hereda rá las propied ades y m étod os d e la clase
e mpleado, también pued e añad ir Ji! propiedad a ños p..lr,\ indica r eltiempo de antigüe-
dad, añad ir un métod o par.1 modificar la propíodad <I nterior y redefinir el métod o
subirw ucldo para q ue s us s ubidas d e sueld o sean su pe rio res a la d e l resto de em plea -
dos y q UL' además dependan de la an tigüedad en la empres a:

CLASE d i re c tivo BASADA EN e mpleado :


anos
s ubir suel do :
s ue l do . sueldo . 1.2 + 1 00 * año s
s e t nño a {nue voe nñoe} ¡
año s * nuev osAño s ;
FI N CLASE

Un lenguajl' o rientado a objetos pe rmite implemen tar a lgu nas o ludas es tas caracte rís-
ticas. Muchos lenguajes como C+ + o Ja va proporcionan herramien tas expresam ente

m
LabVIEW

di!'O.'i'ldd.1S pol ra e-te te rea , otrt>!'> 1I'n¡!;Uajt'S no lo hacen y. si se q uieren Ul><U, debe ser el
prtl~ r,l md d tl r t'I q u!;' adapt e s u p rograma a los pl an ll'amit'n tll'i dela 001',

(..1(X11' es un m étod o di' p rog ra ma ción que pll.'St'IlI.1 una ser¡e de beneñcios, rumo SI," :
• Mantenimiento : !lItiOS los objetos di' un.' m ísm a d .lst' son creados a p.u tir d e 1.1
misma d escripción, por lo <JU I' los ca m bios n',lli/.lli llS on 1.1 clase S(" rd ll; .m teme-
diatarm-nte en todns sus Olljl'ttlS.
• Reu tiliz.aci6n: los progr.lrnas o nereedos a objetos so n mu y modulares , los t>t'ljl't~
creados para u n p rtlgralThl, sr e-stan bien definidos , pueden usarse en <,ln lS progra·
mas sin necesidad d i' ,1Jtt.'r.lr el código. Adl'rniis den tr o del mi smo p">grama Id
herencia tam bién proporciona un alto nivel de reut rhzaci ón d el código.
• Trabajo colaborativo: a l ser una forma de pro~ril m,l r más modular t'S rná s ,'p~lpiil'
d., r ua ndo se til'nl' un proyecto en 1'1 q Ul' tra baj an varios p" .gra m.lliort's, de l'S t,l
forma se pueden repartir rru'[or las ta reas .

C u.1I1lio S(' va a empt'/M un proyecto orien tado a o bil'tus el p rim o r y más importa nte
p" so 1 identifica r correctamente 1.1S clases d e objetos qUI' SI' van " necesita r. El s i¡!; u ien-
tt' p,l t'S el d iSl'ño de las pn>pil-Jadt'S y métodos q m' tendr án los objetos y q UI' II'!o pt' r·
miti ran com u nicarse u n.... n lll otftl'i. A contin uació n st' empezaría n a im plementa r Ins
m t;lod os y finalmente SI' rombmanan todos 11... ob jetos polra forma r el p "'gr,m l.l . H,lY
II'ng u.l)t"S co mo UM L ( Unifil 'ti Mo<l.,/jn¡.; LlIlgU,l.':t·) LJ lIl' a yud an en !'Slt' p rocl'so dt,
,m ;ilisis y en-ación de prtlg ram" s .

Por último ta mbién hay q Ul' decir qllt' la (Xli' ta mbién tíene desventajas corno una
dl'pllrddón m ás com p hcada y un" m ayor cu rva de ,lpl'l.'Ildi7~' il' al principill.

11.5.1 Prog ramación orientada a objetos en LabVIEW


Rl',llml'nlt' SI' p uede cllnsidt'r.u q ue Y.l se ha us,ldo Id 001' vn Lab VIEW desde r-l p rin-
cip¡o di' !'SIl' libro, no I'h1 Y m.'is qUl' recordar 1(... nodos de propiedad es d i' controles l'
ind il'<ld lli"l'S y ",1ca p ítu lo sobre VI St'rvt'r. Po r otra p.ull' tambi én se verán co nce ptos di'
( X)], aplicados en LabVIEW en los p róx imos ce pu ulos sob re Acrtve x y ,N ET, i\lll'm,1s
SI' ha aplicad o la fi h)!,tl fia d i' (X1P en otras varias silu,lcio lllos: com u nica ciones TC !';

m,lnl'jo dI' fichen », , ad'l ui sició n de datos, etc,

Por lit' mp lo las funci ones p<1fd mdll11'u fichen... se pueden co ns jd e ra r com o mt'tottl )!,
poH.l los objdllS d e una hiputética c!olst' fichero. En l' lt'jt'mpll' d e la fi"u rol 11 ·2'1 SI'
p Ul..tt' supt'nt'r la p rimt' r.1 función f ilmo un constructor de u n objeto tipo ñchcro. 1'S1,1
función d ev uelve elobjetoencapsulado en un d a to de tipo rctnum, la s Iunoones Gt't
Fil., S i/t', SI't Pite Ptl5ition y NI',ld trorn TI'xt H It' SI'ri,m los mt"lodos del lIbido . t,1 p rimt'-
rn lit-vo l\'l' ría el va lo r di' 1.1 pwp il..i.ld SÚf:', d Sl'gu nd n 1'Sl' ribirla so brt, 1,1 prop it'd " d
¡ 'osition y t'l tt'r cero d l'v"l n'ri.l d v.llo r de otra pwpil'llad , t' n t'Sll' casll l'l pftll'io ('{,"-
tenid o dd fichl' ro, en l"S II' l' jl' mplo Cltl~ File seriol 1,1 mé lodo d es tru cto r.

274
Modelos de pro g ramaclon

Md l,om Text He

Fiqura 11-29. cese rc rero

En ve rs iones a nte riores a 1.1 K20, Lab VIEW no propo rcio naba facilidades p ara q llt' los
progra mado res pudiesen usar el pa ra digma d e la prog ra mación o rien tada a objetlls; el
prog ra mador de Llb VIEW no podta crear clases y ob jetos a su an tojo (excepto con
X'Contmls en la versión H.O). No ohstantea pt'sar de que el leng ua je no ofrec ía t'stas fa ci-
hdades, u n prograrnadnr podia seguir u na serie d e regla s para aplicar la m etod olog ía
de (X )P; eviden teme nte se pe rdían a lgunas d e las ca racterísticas mencionadas an lt's,
pl'''' en algu nos casos merecía la pena el esfuerzo. A continuación se p resen ta u n méto-
do manual ba sko q ue p uede usa rse en ve rsiones an tig uas de LlbV IEW.

En primer luga r se debe crea r la clase, ésta tOS u n a descri pción d el conjunto d e p ropio-
dad es y mé todos que tend rán los objetos. En CXW las p r op iedades so n elequivah-nte
de 1.1<; va ria bles y los mé todos de 1"5 funciones, de es ta forma los métodos p ueden
Implementarse med iante Vis y las pro pied ades mediante variables .lgmpad as e n u n
cl uster, po r ejem p lo p ued e crea rse el cont rol d e la figu ra 11-:'\0 .

FKJura 11 ·30 Cluster pera construir una clase

Para crea r un nuevo obje to SI' invocará a l construc to r, este método es un VI q ue cunten-
dr,i un con trol d e lipo dll,s tt'r corno el d esc r ito an tes. el cua l tien e los d .110s d el obil'to;
para la saltda d e este VI, r on \,1 fin d e propo rcio na r enca psulacl ón, sólo St' devolv er é
una referencia <1 1cont rol. El cód tgo de un constructo r r o•d r ia ser e l mostrad o en 1.1 figu-
ra 1I-3 1. Lo m ás destacado LOS el em pleo d e datos tipo V.lriant, con esto Sl' consigue q ue
el const ructor S('<I lo más gené rico pt lsibll', así a unq ut' los d..tos dl' l" clase ca mb ie n, el
tipo de la referencia siempre pe rma necer é consta n te.

Los métodos nec es i tará n leer y I o escribir los datos d el objeto, pl'fO no podr án h ace rlo
directamente a l es ta r en capsulado, ptlr lo tan to habrá \jUL' crea r un inte rfaz q ue p rupu r-
r ione acceso a los da tos; para d io SI' dispt>nl' de 1,1 reten-neto a l e/uster sit uado en e-l VI
d el constructor. Para leer v escrib ir un da to d.' un VI d esdo otro a través de es ta nd ¡,-
roncia basta con U S<1r u n l'rp}'erty Nno.1l' con 1a propiedad VaIlJt', como S(' indica en la

275
LabV'EW

er"", ISlI'U!"<O otl)l!ll l) y dlNueIve


~ retereocio!lll él

FIQUfd 11 -3 I Cooogo IX' un (onWl/ClOr

figurd 11-32. Este VI sólo lh'n,., U S.lT~' den tro de los métodos del objeto y nunca ftll'r.l

__.__
d t'dlos .

.. ,
. bo
.

...
_doI_ G. ~

_""" ' '''''

o::r
-
"""_"~do<.'_
.... ""
dol...
...,"'....

-
...... < 1
",-""""
....
,_ . loo cloros <11M _ ""'..... ,

Flgllr<l 11·31 Inl 0f<ll para dcceder a os d,\l[)~ l it' 1II 1o bjeto

Todos los m étod os tt'nd r.'m 1.1 m isma estructu ra: si m'l"t'Sil.l n leer los J3 toS !*' <Ien·\k r.~
al objeto al p rincip io con el VI a nte rior, d es pués SI' lil.,-"u t.Hfi el cilJ igo d el m étod o y
finalmente SO' g ua rda ran lus d,¡hlS n uevamen te e n e l ol:tit'lo si es necesario. En la fiF;lIr.l
11·33 !*' p uede ver 1,1 pl.m till.l p.u.l un m étodo up tco. en e-te rrn~rdmd habría qUt' dñ.l-
d ir lds en tradas y s.l lid "S con el exterior q ue fuesen necesanas, ta mbién habría qUl' err-ar
el cód .go q ue debe ejecuta r d m étodo y ad a p tar jos nodos IJllntil.. By Ni/m.. al ()bit'lo.

.... _ .. ------c;,r-- _ ....


-. - ....._.,.-
..... ..¡..,_I --U:J:J...- ....

FIQUI" I I -33 P\anlllld P<J'" Ot."'" un meteco

El método del d es tructor "t'rí,1 ind uso más sencillo quee l del constructor, su Cód ig(l !*'
muestra e n Id figu r, 11 ·34.

27.
M od elos d e p rogrélmaclon

Figura 11 -34. (&hgo dl"1 cestncror

Como se pueden CTl.." H va rios objetos d e la misma clase, se nec esita "lUl' para cad a lla -
rnada a cada objeto ~' PUl''':I.1 crea r u na n ue va ins tancia. lo cual p ued e conseguirSt."
ha ciendo "lue estos VIs sea n reent ran tes . Finalmente SI' p u ede crea r una librería co n
to dos los métodos del objeto. Un ej..rnp lo del u so de es ta m etod o log ía pued e ser e l mos-
tra doen la figura 11 -35.

odo ·tr~.'I'

do . ,, ~

Figura 11·35. Ejt"mplo del uso de- clases

Mu cho an tes d e la versión x.x aparecieron herramientas q ut' extend ían la ca pacidad d e
Lab VIEW pa ra aproximarse a la ( XW . Básjca rnente so n a sistentes y p lan tillas q ue a yu-
d a n a crear progra mas siguiendo fi losofías mu y parecida s a la a nte rio r. A con tin uac ión
se ve ra una breve descripción de d os de l' l1as: OpenGoo r y GOOI'.

[ A1S sig l.lS eO() !' significan Gr.lphical Objt'Ct Or;entl'd l'rogramming La empn'Sil s uec a
EN DEVO junto con Netionallnstruments desarrolla ron h an ' anos C OO 1' Too/k it. EMt'
Toolk it añade un aststente al que se puede acceder desde el menú Tpols > !"lbV/EW
GC)( )P Wiz.ml. Este asistente pe rmi te crear clases n ueva s y métodos a tra vés d\, una
Sl' ril' dt' pasos g uiados.

()¡x'I1Go o r lOS un a colección de p lan tillas d e código libre y grat u ito cread a por la
comu nida d de d esa rrolla d ores d e Opt'nG. Estos VIs se basa n e n llamadas dinámicas a
un VI n-en trante 'lUl' serfa e! eq uiv alen te a nuestro constructor, ta mbién proporciona
moc arus mos de sincronizaci ón p.lT.1 leer y escrib ir los d atos ba sados e n se máforos .
Adem ás cuen ta con UI1.1 ser ie d e plantillas pa ra facilttar la creación del eód i ~o de los
m étod os .

La principal mejo ra de la ve rsión R.20 respec to a la ant..rior es el soporte a 1.1 ()() r'.
Dentro de un p royecto S(' p ued e crea r u na nueva clase desde la opción del Ncw > e h ",,;

2 77
LabVIEW

del menú contextua! oen File > Now... .> C],I.<;.~, el resultado se m uestra en la figura 11 -
3h (también S<' puede con verti r un con trol personalizad o a una clase a través d e su menú
con tc xtual]. Una clase básicamente es u na librería que S(' com po nd rá obli¡;aloriampnle
de un con trol q ue contiene los datos (propiedades) y, o pcionalme nte, d e Vis (métodos).

" Prv;ecl h plote t Pto y... I';)§"I®

Figura 11-36. oeenoo una clase en un proyecto

En la fi~ura \1-36 se tiene una clase Chso.lvclass formada por u n control llamado
e/a."e.ct] q ue con tend rá un e/uster para enca psular los daros priva dos d e 1.1 clase. Este
control se podrá usar co mo un e/uster y acceder a sus. d atos en cua lq uie r VI Sil'm p Tl'
qUI' este d ent ro la mis ma clase. estos Vis ta mbién SI;' llaman métn•dos o m ember VI; den-
t ro de una c1,IM' k(' pueden crea r Vis normales. Dynam i c VI (u na plantilla que contiene
referencia s al con trol d e 1,1 clase) y Ü\"rríd.. VI (métodos que sobrescriben il otros cu an-
do h'IY herencia }, En Vls exte no res a la cla se, el cont ro l que contiene los d atos func¡o-
nar á d e forma parecida a un" referencia .

Desde las propiedades de la clase (·.Ivcla ss) se p od rá definir su icono, documen tación,
etc. También se d ..fin irán qué Vis so n p rivados o p úblicos en la clase (l te m Set /ing ..I, el
colo r y aspecto de los cables ( W ire A f.'I',,'r.lIlce), y la herencia en tre clases ( ln heríta net').

Al igual que con la jerarq u ía d e los subv ls, también se p ued e ver la jerarqu ía de clases
en Víew > LlbVIEW C/,l."-" 1fierarc}¡y.

, ' .5. 1.1 Ejemp/O: Fichas de empleados


Este ejemplo consistirá bá sicamente en hace r lo mi smo que se describió ron seudo-
cód igo .lI princip io de esta sec ció n. El program" estará com puesto de una clase llama -
da empleado y, a p.n lir de ella, M' crea rá otra llamada dlrcctlvo.
La primt' ra clase es tar á com p ues ta de:
• Da tos: nombr e . depa rtamen t o y sue ldo. Los d os primer os son ...trinJ<:s y el ter-
cero num érico.
• Métodos:
• se tAl l: asigna el va lor de los tres d ato s.

278
Modelos de pro g ramación

• getAII: obtiene un val or a los tres da tos. Serta eq uivalente a un cons tructo r.
• nomi na: obtie ne e l valor del d a to suel do.
• t r a s lad a r : ,lsigna u n valo r a l d a to departamento.
• ba j ar_ sue I do: ba ja un 10'Y" e l sueldo del em pleado.
• s u b ir s ue Ido: aumenta un 10% el sueldo del e mplcadr•.

1 ~1 d ,lS<-' di r ectivo hereda rá los atributos y mé todos d e la clase emp leado, por lo
tanto SI" reu tilizarán los .mtt'rio Tt.,s co mponentes, además. habré [os sigui.'ntt's cam b ios :

• Datos: se anade el atrib u to a ños, qut' es el tiempo que se lleva en la \'mp n'Sol.

• M étod os :
o setAños: asign,\ un va lor al e<l mf'l ' años.
o subir_sueldo: este m étodo heredado se red e fine para la n ueva c1,l S<-'; pa ra
los d irecti vos el s ueldo aume nta un 20'10) y tend rán un extra q ue d e pende de la
antigüedad en la empresa.

Par,l e m pezar S(' d efi n irá el co ntrol d e la c lase emplea d o co mo en la fig u ra 11 -37, 1,\
forma d ., c rea rlo es exactil m\'f1 k igua l q u., ,11personahzar u n con trol cua lq uiera, v éase
d ca pitulo 1. Es Interesa nte observa r el valor f'llr def.'Clll en el campo s ueldo, los valo-
res por d efecto pued en servir p<lril inicializar los da tos ..i.' los oh jd os.

El s i ~u i{' n te paso es crea r los m étodos para esta misma d a",'. Al crea r un Dynemic VI
ya S \' tend rán 1.1S referencias al co n trol. si M' crea u n VI normalse pod ré a rras tra r e l con-
trol desd o Id ventana d el provec to has l,' d Diilg r¡lmd de Bloques d el método. Como se
ha dicho a ntes, el con tro l d(' una clase ac túa como un c/u.s fl.' r normal cuando se U ....1 co n
VIs d e la mísrna clase, por l(l ta nto se pod r án usa r I,l<; funclones p.,ril construir y J \'S-
glosar c/¡I.~ters (Bundle y Untnmdlc respec tivamente). En la figur" 11 -38 s..' pUe-dc ver
el código a la izquie rda y el termina l a [.1 d e n-che d..• tTt.OS de los m étodos desc ritos ,10 \('5;
(a ) getAI l, (b) subi r sueldo y (e) traslada r; el resto de mé todos tienen un códi-
f:ll m uy p arecido a éstos.

hglJrd ¡ J·]7 COnt rol de Id ctase 'empleado'

279
LabV IEW

-_. ~l =~ <U
....'" .. j"" ...."')
_ ~ __ ::;;"","",,0
~ .~

_ """""0
" " "" .,,'" l Loo>o.-los , ..,...,.
~-
.....u•. y . . - do

,.,
"" En", •

" "" ....'"


,"<

.", .. 'OC".,,,,
-----oI-'~~
,o
Flqura 11-38. MétOdo~ de Id uase erroeeco: (al getAll. (DI ~lIb ~ socoo y le) liasJ.lddl

Un.1 vez cread os lodos los m éto•dos Y.1 está acabad ala clase e mpleado, después se pro-
ced eré de igual manera con lil clase d i r e c t i v o , En el co n trol qUl' de fine los da tos d e
1.1 clase única men te ~ añild irá un ca m po numé rico llamado aflos. El métod o se t Años
Sl' const ruye de forma pa recida a los amenores. Para ind icar la herencia hil Y q ue acu-

dir il las propiedades de la r1dw y en Inhcritence se ca mb ia r é la heren cia p.ua 'l l1t'
de penda de la clase empl ead o, véase la fig ura 11 -39 [tener en cuenta 'lut' una clase sólo
pued e tener herencia de una única clase). Cuando u na clase depend.., de otra se pod ran
U5<U los métodos de 1,1 c1d St' "pa d re" corno si también es tu vieran en Id "hija" porque el
tipo de cab le no determina el tipo de datos en é l. El ú ltimo Pil S.., para com pletar 1,1
seg und a clase S\.'rá n-definir el métod o subir_ sue I do, p a ra dio st' crea rá un (}n'rride
VI indican do el método a sobrescribir (el conecto r y pro piedades d e los d os Vis deben
SI.'r ig u,¡ !l's), puede verse su cód igo en la fi~ufa 11-40 en elque se han usad o los meto-
d l's nomina, getAll y s etAll d e la cla se emp leado.

280
Modelos de programación

1 ----
1:::'_
~
---
-__
El h -
"". ---
. . _.-
Polo_ . _.
.-....

--

'"' 11 """'" l! -
Flgur<l 11 -39 - ererca

_""""' <IoI__ .....__ .~ •


.. ...-, '"' 2O'\lo.. _ '"' o"" q..oo """""""
doO _ o <lll _ .
•'" n ~ ...'"

Fiqurd J 1-40 M M:OClO \1J¡~ I _,>uek1o e n Id clase d,rectlVO

Una vez cread as to talmen te las d os clases, por fin se podrá realizar el program a prin-
cipal en el q Ul' se const rui rán d os obj etos d e 1,1 clasccmpleado y uno de la clase di r e c -
ti VO, sobre estos objetos se ap lica rá n diversos métodos C() mO se pued e ver en la figu-
ra 11 -41 (en la página sig u ien te ).

11 .6 Ejercicios
1. Modifica r el progra ma de la m áquina d e Turin g pm a qm' si se in tenta acced e r a
po siciones que no existen e n el array [Indice COl1 valo r -1), éste se redírnensione ade-
cuadamcnn- o

2. Realizar el eje mp lo de 1,1 m áqu ina e xpendedora mediante u na máquina d e Moo re


(ayu d a; usar even tos definidos por ('1u suario).

3. Añadir ,11progrilma kl'ylo~~er la posibilidad de almacena r también p uls aciones de


tecla do.

281
LabVIEW

1> Project bplo.e r P. . GJiolrx¡ 123 _ tI...O'O


lZ3-»-D_....ada
~ (":..an", "JoIarI<el:nf, ICIXI)
lZ3- :>otra:slodor ("RR. Hi.")

11 '[te " [ x tl:i ' x ;l: 1


~ .w. PfOlO"t : Pfwe<to el8lTP> trt>ePet<a
;i- 11
My CorJW;",
• ~.MiM.

f lM' '''''' '"


~ ~ ~A1. vI
f- ~ getAl. vI
I- ~ "'-"'. vI
~~ trMiodor .vI
!- ~ M\O<_sueIdo ..
L ~ "'" _....ada ...
.~
é • cioectM>.Ivdos.
I 't "
~
cioe<l:l'vO .Cd
sec...........vI \MInJe/', ' ptocb:<ión', SCOJ}
lL
ectM> . If.(VO ~
íeJ. "'" ~d) , ... _:>setAl'o(5)
ÍIl I;'Ji/I, _ >stbr......,oJo
~ DovoÓili.....
OO ~_

L '~ ~ SQed~et .....

Figur<l 11-4! . Progrdrru pnncip<-JI

11.7 Bibliografía
Hcrbert Hccht y Myron Hecht. So {tW.lrt' Rt'/i.lbility in the Systt'm G -nft'xt, IEEE Trans.
Software F.ng., 19Ró.
babel Neva rrete ct alt., Tt'<lri.l d I" Alltám<itds y Lt'ngl/.ait'.~ Pormetce, Universidad de
Murcia, 2(X)1
J. GII'nn Brookshear, Teoría d e la com p llt,l cián Ad dtson-wesley, 2000.
Jim Krln g, Opt:'IlGO<Jf'· <l compom'nt franl(' work, 2003.
J i-¡ r~e n[chander y Stopa n Riha, Gr'lf'hica¡ O/ljt'<"t-Orit'n tt'd Progmmm ing, [ ND EVO y
Na tionallnstrumcn ts, 1999.
Kevin Hoga n, Arcnitt'CtIlres tor Desjgning, Na nonallnstrumcn ts, 2txl2.
Na tio naJ lr rstru rncnts, 1~lb V1E W Objet-"t-Or ipnlt't l Prtlg r.l/llllJing : Tnt' Ut.·d.~i{ln.~ llt>hind
th t' /Jesign, 2006 .
Na nona llnstru rnents, LabV/EW St.ltt' Diagram Too /kit U<;('r C uid e, 2003.
Rubbie Gehb,llll'r, íntrodncttcm t( , Obi~t-Orit'n ted Devokipment, Na tjonal Instru-
men ts, 2006.

282
Modelos de pro gramadÓ"

St'r(lfín Moral, Teorí.l de A u tá m d t.l...- y Len¡:uiI;es Fonna/es, Universidad d e Cranada,


2001 .
Step hen R. Mercer, Objl'<.-t-Oril'lltt't1 Design in Llb V/E W, Nationallnst ruments, 2006.

283
Capít ulo 12

Código externo

12.1 Librerías externas


Un a librería o biblioteca l'S un conjun to d e pro~ram,l s, s ub p m~ril m<l s y otros recursos.
Otros p ro g r.l m as p ued en ha cer U!:Kl del cód igo que co n tien en las lib rerías. p iHil ello
estos programas con tendr án e n su cód igu rcfen-ncia sa las líb rer fas. ta mbién llam ad os
enlaces (lin k). Los tipo s d e lib rerías. d e acuerdo con 1.1 form a d e enla za r su cód igo, SI'
clasifican en:
• Estáticas: 1,15 tíbrerras es táticas son enlazad as al pm gril m ,l d u ran te la compilació n
d el m ismo por (,1 linke r, q ue une el cú...ligo delas librerías con el d el pmgrilma \lU l'
las llama .
• Compartidas: los pl\l¡:;ram as incluyen rofen-nciasa las fu ncio nes d e 1,15 lib rer ías,
"l UI' se ma n tienen en fiche ros sep a rados. Estas fun ciones S(' insertan en el progra-
ma cuando se ejecuta: la carga d e las librería s PUl>JC ser cua nd o el p r\l~ra ma
comienza a ejecutarse o en el momento de prod uci rse la llamada .

Las lib n-ria s contienen func iones, el p n.xeso de lla mada a 1,1s funciones se muestra en
el sigu icn tt' ejemplo, en t~1 so puede ver como en un momento determinad o 1,1
funcionA lla ma a f u n c i o n E pa sándole d os valores. Lo s valores de las va riables dt,
cad a funci ón st' a lmace na n en u n bllfft'r d e memoria o pila . Cad a función tend rá u n
ám bito o alcance. es d ecir, una porción d e pi la con [ol cual pod r á tra bajar, es te ámbito es
definido por las flechas nú mero 1 (base) y n úmer o 2 [limite supenor) de 1" ñgur, 12-1.
Por sim phficaci ón Sl' su po ne qu e la pila únicamente almacena las variables mostradas
l'n d código d t' .dlo ni vel (no se considera 1<1 direcci ón d e n-torno u otra in for mación].
•1) Inicial men te se puede asu mir q uelas dos fl echa s es t án en la pos ición in ferior,

b) Cuando funcionA lla ma a f u nc o na st' inse rta n los valores de los d os par ámc-
í

tros en 1,1 p ila, en pri mer lu gar S/-' almacena el valor 1 y luego el 2.
e) Alen tra r en funcionB Sl' p rod u ce u n ca mbio d e ám bito. es decir, se modi fica n [os
punteros de la pila (ver el p untero base). esto p rovoc a q ue solame nte los valores
pasados en la lla mad a y variables localesa fu ncion B es tén disponibles (alc ance de
la fu nción ).
d} f u n c i onB finaliza, por [o \jUt' lihl'Ti! el t'SP'1ÓO d .' momori, de s us \'<ll'i,lhll's
loca les.

28 5
La bVlEW

,J ) Ta rnbién se libera e l espacio 'lUl' ocupaban In., par ámet ros , esto In p Ut....t l· ha cer
f u ne ion B o f u n e io nA. l'i na lm t'ntl' fu ncionA vuc-lvea tene r e l m ismo ámbito '-l u,'
ten ía ,m tl'5 de 1.1 U.lm.ld .1 y p ut..Je st'~ u ir su l'jlocudú n,

C u.mdu ha y va rias funciones .1Il id.ldd Seste p roceso SI' O' I'l'liriil p llr cada I\,Hll,ld ,l , Ca da
hilo d t' ejecución tendrta su p ropi,1 pila. Para el va lor lid par ámetrod e retorno, en e.lso
q ueexista, podría u lili/ drSl' u n o'~ isl ro del p rocesador.

Cuando el p rograma es com pilad o, el com pi lador in trod uci rá 1.1S instru ccione-, llt'l:t....r-
ri.15 p ara ~t...trona r todo e l proceso del pa so d i' parámetros . Ot ra ta rea '11l1' p ul....I cn ree -
liza r .I l ~u nos com pilad ores t'S el n.u llt' mana~/in,l; o n.II1I(' d('("Pfiltipn, esto enn.,ish· ,'n
ca mbia r d nom bro d e las, lu n('innl'S p,Jra d ~'gu rarw '1llt' SI'a ú nico o proporciona r in lo r-
mac ión sob re la m isma función. .t1¡:u nns m otivos po r Ins 'l UI' u n nc mbn - de Ium-ion
p u....1I· no ser ún ico son Id .,ob rl'C.l ~d n los csp.leios d e nom bres.

,, void f u n ci o n" (vold ) I

",,,
. f une l o nB O . 2 1:

",.
"o, voi d fu ncioTLB t i n t
I nt e :
!lO, i rrt 011

•••
"
b_.
. ,, "'-'I @.
~
'- '

• •

"1 lbl "1
LI.... e LIn_ 4. ' '*''''O cIe lunOonB

e e
(;) •
,-
<D •
<D
"
(dI "1

En el eje-m 1'10 anterio r SI;' ha visl<I cómo SI;' paSol n p.Hállll.'t rtlS d e un a función ,1 nlr.l , f'l·rtl
el 1'.\.,0 d i' t'StlS pa ranu-tros dclu- SI'guir unas rt'gl.11o I1,Jnl,ld ,l s convento di' ]I,lm.ld,. t1
c,, /liIJ~ CIIIlI'(·n tion. B.i s ic.l m t·n lt· St' Ir.l l" d e defi ni r e l r ,l "ll de pa ra r notros y el /Mlllt'
.it'll lr,ltmn. lIay diversos « 1/Ji" K c onvea tíon. IlIs m ás populares son:

• Cd.'l+ t 'S la estándar de ANSI C/C++, Los arg umentos St' in trod ucen e n la pilo di'
,kn 'l:h,l a izqu ierda (,11comra r¡u qUe t'n 1.1 figu ra 12 -1 ), la fu nción q ue n 'J Iil<l l.1 11.1-
meda lim p ia 1.1 pi l.l Y la d.....- oración del no mb re 101.' n ',lli/.<l con e l pn' fiio C_lt.

286
Código externo

• /'.l,'iCd t. tOS el qUl' suelen usa r los compiladores d t' P.1",,'a l. Los p ar ám et ros se mtro-
dure n de izq uierda a d erecha. 101 función llamad a dt'tlt.· Solea r los pa r ámetros de la
pila antes tlt' terminar,
• Stdc<llt. es el con venio usad o en las funciones del A I'I d i' wíndows . Es m uy pd rt'-
ctdo al t'St.'ind .1r d t' C, !l IS p arám etros se In troducen d t' den-cha ,1 Izq uierd a, Id fu n-
ción '1 ue L'S 1\,1muda tOS 1.1 q Ut' debe secar los pol ramcu os <1 nlt'S d e retorna r y 1.1 dec o-
raci ón l'S con t' l prt' fijo e.. », el su fijo «@» y t'I n úm ero de by ll'~ de la pila.
• 5.,ft'L-.l1/: t 'S una convención usada por el com p ilador Bortand Ddp hi en Window s
e n prog rama ción COf\..L Lo s pa r ámetros se introducen de izq uierda a d erecha, 1<1
fu nción llamada t OS 1.1enca rgada d e sacar los d e la püa.
• F.1.~tC<1J1: es t'Spt'Cífico d e algun os r ompíladores, Ct 1n1\l C++ Buüder. Los p.l rál!1t'trt. ~
se in troducen lit' dl'rt'Ch.l .1 izquierda 1'1<("('1'10 l(~ d os o rros pruneros <¡Ut' , si pu.....
d en , usaran rt~i Slros d e la C PU (en 1<86 so n EA X, EDX y FCX), 1,1 función l1<1m<1d <1
es la qUt' saca los p.u.lmt'tTllS an tes de vo lver y la d eco racl ón t'S ron el prefijo 1I @»
y e l s u fijo «@" ("(lOnÜmt'nldebytt'Sdt'Ia pila . 1.l1S ,·.llort'S de n-torno I.lmbién usa n
los rt'gi"lnlS dt' la C I'U (AL, AX o EAX).
• 'tñtscett: es la que se USoI por defecto a l llama r a membor functÍ<ms en C++. Los
dr¡.:;u mt'fltns ",,' p.lSom de derecha a izq u ierd a excep to l'I argumento · t h i~· qut' US.1
un registr odela C PU (ECX), 1.1 pila es limpiada por 1.1 funci ón llamada y los no m-
tm 'S de 1,1" fu nciones hacen referencia a la clase y la fun ci ón.
El conocido erro r nlltftor Ol"t'ff/o w ap rovechad o en m uc hos (·~ plllit.~ t'S r-l q u<' St' produ-
ce cuando a l t'StTibir el va lor de una v ariable no S\' res petan los Ií ml lt'S de l -s ta s en la
pila. 1" 'll1l' p rovo c a r ía LJut· o tra va riable u otra info rm a ció n deIa pila t uviera II n va lo r
err óneo. Sud .· da rse con V.U i.l bk'S d e tama ño al terable, co mo ~tfjll,.,>s o dITays. En
w hVIFW es te error no pUI'lll' da rse ya que wbVIEW pued e redimensionar el esp acio
de la s variab les dinamlcamonte.
Las librerías com pa rti d as tiene n va rías ven tajas, como qm' 1·1 mismo código puede se r
usado pur va ría.. a p licaci o nt'S, St' pueden actualizar sólo algunas partes del p rtlg ra rn<1
(po r <'It'mrlu mt"lli.lTllt' un . ..·n·ic.1.· p,lck ), añadj r nueves fundon.llid ad t'S (po r t'jt'mplo
llr.; p/¡¡~- in~), etc.
Las lib rería s com pa rnda s en Windows se llaman DLL o Dynnm íc f.inking Libr.lry y tie-
nen extensión ".d ll, en Lin ux suek-n tener ex tensión ".so y en Md,-{)S se llaman
f ram t' wlork.

12.1.1 CIN
Los nod os Gll it' /n fl ·rf.ll'l' N tllil' (CIN ) al bergan en su in teriur cÓlii¡;o externo ya co m -
p il<1do q u.· q Ut'li.l i ncru ~t ,ltl u t'n l'i p ro p io VI por lu <lUl' St' tit'nt' un fk hero Itlta lm en -
te .1u loco n lt'n id u.

t)W for ~
.....~M
....
tIo.oe d ~
value d
+"
. -. ~

Ñgl/fd 1] · ] ClX1e Im"fac~ N<XJI:>

287
LabVIEW

Pa ra u sar un nodo e lN:


1) En primer lugar d ebe adaptarse su ta maño a l numero de parám etros deseado.
2) Luego conecta r los terminales a las ent rad as y salidas, in dicand o explícita mente
los terminales que son sólo salida mediante el men ú contextual. Con es te pa~o el
nodo sabrá de q ué tipo es cedo par ámet ro.
J) A continu ación <;1;' crea ra , tamb ién con el men ú co n te xtual, un fichero co n la plan-
ti llil d el program a q uC' se insertolTá en el nodo. El progran1ol cread o tl'ndr,) un a fun -
ción ll a mad a C1NRun q ue es el pu nto de entrada del progr,lma, '-'S d eci r, la funci ón
por donde comie nza la ejecuci ón, eq uiva len te a la fu nción main d e C IC++.
4) Cuando el progrilm ,l esté creado y compilado se d eberá CilTg<H en el C1N el fiche-
ro del código objeto (".Isb) resultan te con la opción l.(41d Code R('so ur("('.
Adem ás d e {unciones norma les, un CIN ta mbién p UL.....le tener otras rutinas <.:JUlo' son lla -
mad as cuando el VI es ca rgado, abo rtad o, guardado, cerrado, compilado... 1,1s fu ncio-
nes son: ClNRun , Cl N lni t, CIN Abort, C INLo.ld , C INS.:\\"L', C1N Dispo sc y C IN Pro-
pe rtiex.

Usar los nod os C IN tien e algunas desventajas respecto a las librerías co m part id as 'lUlo'
se ver án " continuación. como u n" menor mod ularida d (si se ca m bia el cód igo de la
tíbre na se debe modifica r d VI) Y q ue no tod os los e ntornos de program,lción PUl'...í en
crea r cód igo pa ra CJ N . Por tod o ello National lns trurnen ts recom í.... nda usar li b Tl'r i,, ~
co m pa rtid as en luga r d e C IN.

12.1.2 Librerías compartidas en LabVIEW


En el men ú Conne('ti l 'j~y > Librarics & E.\t'Cu t,lbles S{' encuentra e l nodo CaJl Ubfil ry
Punction Nade que permite en lazar fu nciones de lib rerías compartidas.

Figu ra 12-3 . Menú coranes & Executanes

Al co loca r el nodoen el Diagrarna de Hloques y configura rlo aparece la pantalla mos-


tm d a en la fi¡;ura 12--4. Sus campos son:
• Fllnction~~

• Librilry N,lml' or r,ltn: en este ca m po se ind icará 1.1 ru ta de 1,1 librería .


Activan do la canilla infe rior la ruta podrá in d ica rse desde e l Diag r,lln" de
Bloques.
• Fün..."tioJl N eme aq uí st' eleg:irá u na entre las fu nciones q ue contienela librería .
• Thread: in dica si puede habe r múlti ples llamad as a 1,1 misma librería ((t'f-'lltr,mt)
n no (Rnn III UI Thread), en este últ im o casolas lla madas so reali zara n en el ~ is-

,••
Código ell1erno

te ma d... ejec ución de l in terfa z pa ril aseg u ra rse quv solamen te ha va un hilo rva-
liand o la U.1m.ld .l. Los nud us re...-ntran tes SI' dib uja rá n con une tona lid ad .1m,1-
rilla en el Dia~ramol d l' BIIXJ ul's y I~ no n.... m ran tcs de (olo r nara nja. En la f i~ u­
rol 12·5 SI' p UI...ten ver II ~ primeros a la Izquierda y ll~ "ol'¡;undos a Id derecha .
• Cslling G mn'lJ lion...~ t-'S Id fo rma en q UI' SI' p.:¡-.a n da tos ,1 1,1 funci ón.
• Pa remeters. en t'Sta pt"Sl.lñ.1 hay va rios ca m pos l'n loo.; que SI' ind ica rá n los par ám....
tros de la fun ción . t iol br.i u n par ámet ro de n-torno (n'/um typl') y va rios pa ram....
tros a los qUl' SI' l.· .\Signdra u n nom b re y u n h pt •.
• CdlJt>.ICb~ ~x -rm ¡tc cun figtr rar llama dasa otras funciones en cíe rtos instantes r l.r-
VI'S d e Id e jffución lid nodo. 1i1',Sern ! cs pcctñco 1,1 fu nción a lla m ar cua ndo St'
rese rva un l'sfl<lci u J .' tiem po y memoria pM.1 ca d a lla mada en un VI n....ntra n tc:
UnTl 'Sl'(I '¡> es In Clll1tr.n i" .l 1,1 an terior, pUN1e ser ütilen lil n'dS d e depu ración, y
Abort permite c"n fj ~u r.lt una función cu and o SI' in lt'n l.1 aborta r 1,1 ejecuci ón del
VI. Tam bién SI' m ues tra en l'TlJto ty¡x' tor thl's;,· p,.oo...lu n'l' una cabec era genérica
en C pa ra l'Stas functones .
• Funcíion rI'(./"tYPt~ va mos tra ndo uno recons trucción d i' la ca becera d e la función
en csulc e d.' acuerdo con lo t]lIe el p rogra mad or indique en los ca m po, ameno-
res, puede servir p.u.1l'l.mp.uar el resultado con 1.1 cab,-c"t' ra n -al d e la fu nción .
• Tyf'l', D,I/.I Typt" /',I."S~ mdlcan el npo d ... dMu,;. del pa rsi rru-tro seleccionado.
Lab VIEW 110 pUl..ll' n...-onoccr lodos los lir us d edatos d i' tod os I()!' l.. n~u,¡ jl'S de
programación I'xis lt'n t.'S, pt·tl, h.1Y equiva k-nci.e, cnt n - 1.1 mayoría di' tipo s d t'
otros ll'n¡:;uil jl's y los lil' l..ll">VIEW. Si un tipo d i' datos no lOS soportado por
LabVIE\ V SI' pUl'li" n p.1SM / T'l-'Cibir los da tos "pl.l lll)!," como u n .s trin}; n a rr,l y y
hace r una cunverslón, usar Ad,'pt to Typc ol / d .'S<.lt· un e/us f." 11 ta m bién ""-'
puede esc ribir una hbn 'r í.l com p artid a ti C IN qu e s irva ti... puente ("'rdp' ...·r).

..l=-'~'~~-'~.........,.
""
IGOJ
[]
_

..................._.
. ,.¡;",_
..

eoa.o ..........
0- "_
0<

--
''';;¡¡-, :':'- ..
i n <
I
1 ... 11<- 11 .... 1

,..
LabVlEW

En la versi ón 8.20 M' ha Im rod uc ídn u n al'ist('Iltc que. a p<J rt ir de la lib rería co mpa rtida
y u n fichero de cabecera , permite crear una lib rería con nod os t'f'l los q ue se lla ma iI tes
d istin ta s funciones . Este asisten te S(' encuen tra en To oís > ímport > Shol rt"t-l /ibrary
(.d l1) ...

En la ñgu ra 12-5 pu ede Vt' I'Sl' l'I aspecto d e este nodo después ti t' ser w n fi¡;urado como
m uestra 1.1 fi¡;u ra 12-1. A la izq uierda S(' m uestra n nodos l"t't'n tr.1ntt'S y a 1.1 derec ha no
reentra ntes: 1( )S s upt'riurt'S aceptan un polth d esde ('1 D i.1);ra m.1 dt' Illllljut'S y a lo!'> d e
abajo n.1Y .:¡ ue indic árselo desde 1,1 ventana d e con figu ra ción. En cada nod o el terminal
su penor es de sólo lec tu ra y correspond e a l valor d e retorno. l'I rt'S to d e terminales so n
los o tros pararne tros y seleeran o escribirán de acuerdo r on la cabece ra d e la funci ón .

F9 /fil 11 -S. l\sj:JeCm ael /lO(]() ya eonfllJ llfddO

En 1.1 Tab la 12-1 p Ut'd .. verse una relación d e equivalencias ent re diferentes tipos de
da tos en C / C ++ y en Ll bVIEW. Puede obtene rse más información ejecutand o Cil l/
D L L. \'i en 'Y..Ji r('(-tor io til' Llb VfE W% \ e¡¡amp/e~ \ dl1 \d,l t;1 pol.~.~ing\ Cal1 N e t íve
Cod C'. Ifb.

Tabla 1 . Equlvalenc:ln entre tIpos de datos

e ubVJEW e u bVJ EW

""'1
BOolea n--
- -lJl
U8
- aho r t
Dwo ~d , " WNO
116
U31
~-

__Byte U8 Ooub l e oe,


---.fha J;_* , CSt r
Wo r d
_""'"
U I.
Una i gne d l o<
Una i gne d enor-t
U32
UI .
fl o a t SGl tn t , l o ng 132

Tan to los C IN corno lus Ca /l Libr.lrY Pune/ion N odo se ejecutan de forma s ínc rona , o.' sln
lOS, toman el con trol d o.' su h ilo de e jecuci ón . NIl p ueden interru m pirse u na vez qUt'
empiezan a I'jl'ClItolrst'. Al us ar u n VI con llamadas a librerías t'Xlo.' m as d en tro de u n p ro-
yecto, la librería llamada dpill"t_'Ce rá en la secci ón DI' I'It'nl1l'flcit'S d ela ventana d e ad rni-
rust racl ón de l p ro yec to (es pos ible q ue ha ya que "refresca r").

Pa ra más in fo nnación sobro.' e l uso d e código ex terno p Ut-c'! e cons ulta rse u n fichero q Ut'
suele enco ntrarse en %dirl'C:torio de ubVIEW% \m.mu.I I.~ \1n'¡¡ ('( lt1l'.pc.1f (1 la pag ina
web d e Ne tlon al lru..tru m..'n ts.

290
Código externo

12.1 .3 ~emplo J: CtNd6n ce una OLL y su uso en labVlEW


12.' .3. 1 ExpUcacIón reónca
En toste ejemplo se crea rá una lib rería co mpartida en Windows para LabVIEW. Se usará
el cnrnp jlad nr de C+ + d e Visual Studio, d e Microsoft.

Antes de ent ra r a estudia r el cód igo hay q ue comentar algunas peculia rid ad es d e
Visual C ++:

• Pa ra evi tar el nam(' dec ore tion St' usa lit cláusula e xc e r n OC".
• Para ind icar que la función ser á acces ible d esd e el ex terior h<1 Y q ue escribir
dec l a p ee (d l. Le xpo r- t.I a ntes d e 1.1 d eclaración d e Id funci ón.
• I'Ma cad a mlling con n 'lItion e xisten direc tivas co mo _ e d eel 6 _st deal l.

L1 librería de es te ejemplo co nte ndrá d os fu nciones q ue rea lizarán una suma y u na


resta de d os n úme ros flotantes que se h.. p<1Siln com o pará metros.

12.1 .3.2 c6dlgo enC+ +


I l i ne l u d e s
# i n cl ud e ·windowa . h"

I l c abe c e r a s
e x t ern "c·l
_ d ..c: lll p .. c (d l l e x po c t ) f 10at .uma (f1 oat a, fl o a t b ) ;
_ d e c: l . p e c (d ll e xpo r t l flo at r e .. ta lfl oat a , f l o a t b l ;
I
I I f unciones
float ..uma l fl oat a , fl oat b ) {
r e t urn <I+b ;
I
f l o a t r • • t a (f1 o a t a , f loat b} {
re tu rn a,·b;
I

12.' .3.3 Código en labVlEW


En LabVIEW SE' em p leará un C.ll/ Libra'}' Function N (ldc> que se con fig u ra co mo st'
indica en la fi gura 12-6. Obsérvese co mo el ca mpo FUlle tínn !'rototyP(' co incid e con el
prototipo d e la fu nción.

Es muy importa nte indicar el Cl1ling CW!I'('nlüm,S correcto, ya q ue p uede da r luga r a


un error fa ta l en la ap licación.

Un.1 Vt'Z conñgu rado l'! nodo sólo queda cablea -lo correctamente, corno m uestra la
figura 12-7.
La bVlEW

...... .
K_ -- _ ,"," "V ' .. _
:- "" ' -- = ' \-
_ .~ _
.......
_
- . ..-
~_

I===--~~-
0_"'_"'__ O-~

....
_.
)- --::-:=::::::::::::-:=:::::::::=-
' ...
--
0_"_
e'

FtgUf a 12·7 EJl,'ffiPIO Vi de Ufl<I Iklm.t<.kl d kI ltIJreri.l creeca

12.1.4 Ejemplo 11: Walt 1..,


12. 1.4. 1 ExpUcad6n teórica
Si el prn¡;ra ll1il s.' l' jl'Cu t.l sobre o lr,l S plataforma s, co mo po r " iem plo so bn' u n disposi -
tivo N I-RIO, s.t,' p uede us ar co mo referencia de ti l' rn p o los relojes d ees tas pl<lt<liormas
y tenor una resoluci ón de mk neegund os. Sin e mbargo cua ndo ub VIEW "" eiecuta ,it'
forma norma l socre un pe , todas las fu nciones de retard os V med id a JI' tiempos nenen
una resolución ti... mi l i Sl'¡; u ndt ~ .

En l'stl' ejern pl.. s.t,. diseñar á un progra rna q Ut' a l cnx-utarse en u n o rdenad or con
wmdows m Sl'ttl' un clc]o de l'Sp t'r,l co n una p recisió n de l orden d.' microsegundos. A
d iferencia d t' lV,lit (ms), en .'Sh' casola espora Sl:'r,l activa, es d ecir, este p Tt.g r,lnlil no St'
pod na usar d en tro d e un b ucle p,u,l,' vitar qucés n-ocupara todo el tn-mpo la C PU.

Para crea r ....1\. p rograma s.t,' e m plea ran d os Iuncion.... .Id AI' I de wind ows. La p rime-
rol 1'S QueryPer f crmenceccunt e r , q u.' devuelve el valor d e un contador d.' ncs del
p r ocesad or. La segu nd a funóón usada es Que r y Pe I'f ormanc e FI' e c u e n c y qm,·
d ev uelve t'l número de tics pt.r s.t,'gu nd o del p roces ador.
12.1.4.2 CódigO
La de...... umentaci ón sobre las fu nciunt'!i del AI'I de WindOW 5 puede cnconerarw t'11 el
s itio "'tSD N de Microsufl. Buscando las d os fu nciones usad as en ("SIl' cj<'mpkJ Sol' puede
vvr q Ul' a mbas est án e n el fichero Kt'mt.'L12.J II )· su s d ecla racio nes su n:

BOOL Qu.ry P. r fo ~e.co uat. r l


LARGB_ INTEGER · l p Pe r f o rman c ecoun t
I ,

BOOL Qu.ry P. r f o~c. Prequ.ncy l

tJ..RGE_INTEGER · l p f'r eque nc y


I,

typede f un i on _ LARGE_ I NTEGER 1


lit ruct l
CWORD LowPar t:
LONG HighPa r t;
J,
. t r ue t {
OWORO LowP art:
LONG Hi g hPart :
I u;
LONGLONG Qua dPa r t:
I LARGE_ I NTEGER, · PLARGE_ I NTEGER;

El cJ lljn~ (l >ll\'Nlt1(1n d e t'SWS fu nciones l OS el típico del A PI d e wíndows.

El tir'" d e d .llo,," qU(' devuelven ~ u n p un tero d un LARGE_ I NTEGER,. q rn' ('5 un dato
de M b its (un u nion es como un S t ruc t pt'OJ en un ír e-ta n tc concreto sólo puede ron-
1(·r'It·c e l valor de u no de sus miembros). Con tuda cera in formación ya Sol' pueden hacer
IdS II d Tn.l d olS a ambas funcit.nt's. tal como s.' puede ver en la ñgura 12-S.

En primer luga r, el progcamd edqu íere Id cuen ta de ríes nadd m.h entra r a 101 función
con QueryPecfonnanceCounter. A continuación se calculan ke, ncs qU(' deben P.l'<ilC
en t'I penoo o de tiempo indicado y <,t' suma t.'Std cantidad .lo Id arnenor p.aTil (*' tl:'lw r Id
cuenta final. En t'1 úl timo P.hU w en tra vn un bucle d e l que ..01(. '.,.' "'l ld r.i cua nd o la
cuen ta de tícs Sl'.J i¡;u<ll n ...u pcrío r ,1 1.1 calcu lada an tes . El p rogr.1m .l co m pleto so' mues-
tra en 1,1 fi~ura 12·9.

12. 1.4.3 Resurt:ados


Para pn nt' r ,1 prueba ",1 rTtI~ r.'m .1 ann-río r se p n>gra ma rá un rt'lra!'tl d l' 10 rns (lO.OOO
¡.ls ) y !->t' medir á t,1 tiempo a ritos y d t'!ipu (ÓS de 1.1 llamada a l VI anterior, El res u ltado
Pllt'(j,· verse en la figura )2·10.
LabVIEW

Rilllm - - , . '
lh.......'

..... ,~ . -
¡, \wo _~,;,;,~",- - - ,"",
-..-.
, O .... ..........
o;:-:-:::c-:-~~~
0_ """"_ _ I

, --
0--
0<

Fl(jlll'" 1/-8 U1mada", una ñmoón del API <1,. W" l(J"""""

I!l

F'9ura 12-9. Espera actllla en mcroseoerocs

En l'~tt' ejemplo M ' han usad o dos funciones d e l APl de Windo ws y se ha v isto la impor-
tanela d e d isponer de la doc umenta ció n a pro p iada. Es interesa nte ver el efecto q ue ten-
dría ca mbia r el tip o de datos y el C Jl/in¡; C(Jfl\ ·t'ntion en las llamad a s a las funciones.

También ha y q ue hacer un peq ue ño comen tario sobre e l a l ~oritmo de l programa . Ilay


m uchas fo rmas de crear el progra ma, pero en esta ocasión se ha hecho d e ma nera que
M ' m inim icen 1,1;; tareas q ue hay que realiz..a r d entro d el bucle.. para que la ejecución del
m ismo sea lo más ráp ida posible y así a u men ta r la prec isión lit' la función.

294
Código externo

f lC]Wd I} · IO EJf.'fTlPlO oe ~1( 16n dt"I VI WN T

12.1.5 Ejemplo 111: e/N


12.' .5. 1 ExpIlcad6n teórica
Pa ra Ch.',H t' l cód igo d e un nod o C IN se seguir é l'I m étodo descrito an tes : col.....-ar l'I
nod o C IN en e l Dia grama d ., Bloques, ajus ta r su la m,l r'l o , cablea rlo correcta mente y
crvar IIn fichero O.C que cnoll'nd rá una plan tilla d e la fun ción .

El c ód ígo gene rado por el r odo C IN con tend rá u n induje d ,' un fichero 1I.m l.lJ o ext-
l"tl< /e.h, ~ Il' fichero co Otit'Ol' defi niciones de los tipos de J ,ltus de l..iIb VIEW y .11):;u n,\'<.
funciones: éste y otros ficheros q ue también son Ol'Ct'S<lrios para co mpila r el cúd i¡;n St'
encuentran en 'X.dirt'c tprio dI' L.,pVIEW% \ cin to(ll~.

12.1 .5.2 Código en C++


El C(x l i¡;n está basado en 1,\ p l,m lilla generad a po r lólbVIEW. s tmplcrnen te SI;' h,l .1r'ladi-
l.,
do hnea - a a t r c a '" ° a .. ob ¡ .
~ inc lllde "ex t c ode . h"
Mg En CI NRo.m ( fl o a t 3 2 ° S a l1 d a , fl oat32 ° a , f l oil t3 2 ° b ) ;

Mg Err CI N1I.o.m ( fl o a t 32 " Sil l1 d il , floatJ 2 " a , fl oatJ2 " b l

(
l ° Inae r t c ode he re 0 /
0S ll l i d il • ° a oo b ;
re t l.l rn n o E rr;
1
EI ...rm piladnr debe c(lllfi¡.:;ur'HSt' co nvenien te men te, r o m o ind ica el fichero 'Y" . fir{'(·w riu
de ins telación d e LJbVfEW 'J¡', \ n l.lllll<lls \ /l·t' XCO(il'p <1f.

2'15
L.1bVIEW

12.1 .5.3 Código en LabVIEW


Un.1 vez q Ut' SI' h.l cn'''''u correctamen te 1.'1 p nl~ rol m,' .Hllt' riur, e l n '!o u ll" d o ~'r,i u n
ñchcro con t'll. h'nsión ' .1..1:>, t,1 ClJol\~ ' c.uga rá en el nodo CIN ron 1" opci ón L ~JJ .f.. e...
R.><;flurce de su mee u conte xtua ].

...."""
U...... .. h .... _ " _•
..

(......
.
~ P_.

~
, -~ _.-..

L úeore .<. . ..
..
J
f K)Ufd 12- ' 1 C IfQ<ff el p«Jqrilrnd m el nodoClN

Un" vez ca r):oldt1 el p R,;ra m., ('JI el e l:'\! ya se rud rj 1;"'Cu l,u d pro¡; rol m.\. Es mten....m-
11' com p roba r romo el I.l m,l ño d ..\ V I aumen ta como R><; \11I<1.-1 0 d.. inclui r 1'\ cl'odi):n r-n--
ado .1I1tl'S en 1'1nodo e l N, l'I liltll,lño p ued e com p robarse en PiI,' > 1'nJl'(" titos > Al. 'JIto,}'
U!i.Wt·.

12.2 Comunicaciones entre aplicaciones


e .1.lol s istt·m.l t'f'l'roltil'tll it'nt' sus p.lrtkul.lrid.1 d t'S, un" tit' t'!I,l l'S lol form.l de co m u ru-
caoon l'1ltn' rw~r.lm.h: M.lIOS 1ll;'1lt' lus Arpl., ('h '1l ts, UNIX l.ls pipt'!o y Windows los
Aclin'X.

En sb ll' m.1s 1\1.1\"05, los AppJe t'l"t'1lts son uno d i' los mt"C.lnbmos d .· comunicación
..nrn- .1p lic.l(Íont"S. E...t.i lJ.''''l do en intercambio di' m t'1l~l it.... Stln una p.nh· t"St"flCi.11 .-1('1
A rl'lt 'St,: ripl ...\·.,tt'm .

Fn Lin u x y o lms sb tt'nl,ls 1.1., p ip es n tuberías son u n m ecarucmo PJr., l·nf .l.l t'llo1 r pRl-
gramas en el '1Ut' 1.1 ~I litl,l dt· uno se n -dirigea 1.1 entrada lk otro. Fl concepto t.>S pol o.'-
cidn JI .k p ipt'1ifl" .

12.2.1 AetlveX
M1Cnt",(lf! ha .-I.....arrollado \·.'Iri.l '" tt'CTIul',.;i.'ls pa rol corn pa rnr Tt'('ursos t>.1-..JJol'" en '''''jt.-
tos, 1.1 prim"rd d".,1I.1S hit· OOE, los p rimt·ros pR~ r.1 m.lS t'n lIS.H\.l fur-mn Wo rd y r1l('t>1
p.1TiI f'l' rm ilir t'm bd"'r u n d ocumento dent ro d t' otrn. O I.E 1.0 .1p" Tt't' iú en l 'NI t>.1S.1 -
d ,l en DDF.. !los ,1ñl)<; .-I.... p u.:'!o S/.' p n""t'nló la ~u ntl.'l \"t· rsió n .t(' 0 1 F: v t1tn"" In ....mos
th...p ués tcon nlininlt..... c.l mh it"" 1\>Sf'l't10 01 O LE 2.0) naci ó Acnvcx .

296
Códig o II!dll!rno

Acnvex lOS u n en tumo en el qut" med tante unos servícjos b..l ...1d tl<S en objetos se pcrrru-
te a diversos com ponen te, comumcersc en tre si P,U,l n -utilizar el CÚt.h)o>o de los d em ás.
de l~til fo rma~' pueden t'n I M~U unos programas con orros .

Los controles ¡\ChVI'X, an tes, llamados objetos OL E, son los co m ponen tes 'l UI' SI;' reuti-
liza rán, se p n 'St'n t.Jn enca psulados y d isponen de un in te rf,1/ p ,1T.1 q Ul' otro código
pueda in teractuar con dlo~. Un rontrnl Actívex PUt'JI' tener p n.p it'd.ld ,·s, métodos y
eventos asoctados: ,1 estos componen tes SI' pod rá acceder ,1 tr,l\Il'S d i' SIL interfaz . Los
controles Arlin' X Iarnbi én pueden d isponer d e un.1 n 'pn'st-'l1tad óll visu,ll. l.os contro..
les SI' pueden usar ,k n tro J ,' otras aplicaciones 'l Ut' -e-rti n llam .rd,e, con tenedores JI'
com ponentes (con I,lin¡ 'n;).

12.2.1. 1 ~ en LJbVl EW

l..-lbVlfW p u ede ,ICtU.U romo p lllgra ma contened or d e u n contro l Acti\"t'X. Adorna s


ta m bién p UI'lII' .1CtU.u corno !'t, rv-idor ActiveX habilit.mdc ("St.1 opci ón en Too/s >
Opnons > VI St 'n"I'r: Coof;J:ur.l tilln ;> Acti,·e X.

~~ = 1!iJ
E'3Iel'3EJ~
~
f lCJllf<l I Z· l Z. Menú Aa~X

• Automation Opeo / Cíoee Reference ~~


Aul:omatloo Rf'foum ~ Al1omatlon Refrun
machirle lWI'Ie (- ; ~ Ioc... .
I
re eeeoce
ílR.~f<iil
opeorJewnstance(false) ....; errorOlt error n(no eo-or) e el errorOlt
error lf1 (no error)
Sirven p.lra .lbrir y cerra r n-tercnclns ,1 co nt ro les Acuvex. En el p rimt' r caso. e l ter-
m inal Au tooM/ Ion /\l'frlllm p uodc veni r d e un con trol (/', I/t' I,1 dI' c o n /m lt's .>
M, ... II'''' > Rl'fn llm ;> A utonMti,m Rl'inllm ), una constan te ., un C,,"/,tlm'r ([',lId.l
d l' C(lotr(lk~ ;> "'tl...íom > Con teincrs > ACtiH'X Con /,Iitll 'r). St' t1 s.l rá un Con teinor
1't1 <l I1 <! n el ftlll tTl,l lt'ng.l una in terfaz gráfica y M" d.'Sl't, m os tra r.

• PlOpe.ty Node / Irwoke Node


Ulb Vl EW

Al cab lear u na referencia so b re estos nod os aparecer án 1.1S p ropied ades y mélt >l.h *,
del con trol Acuvex.

• Regíster Event Callbad


,,
(aa>ac~ j~~~~~il~~~~
. ' • • (00 . ,.)
~V"'t
event M>tJN:~ r~f
,et
vi r~f"n'R(e
~ ~<Yne(" •
Un co ntrol ta mbién p ued e tener asociados Ol'rtos eventos. En este C.1 SO cua nd o se
d l~ u na den-rmtnada co nd ició n, el cnn tm l Acttvex d isp.1f<l rá un co..i i~o en res-
pues ta a l even to (si ha ~ i~lo rt'~i st rad o ) .

En eet... nudo SI' ca blea rá una referencia al con tro l Acuvex en e l term ina l t'H 'n t
"" IUTa ' ref En v¡ rt>ferenn' !>t' conecta r é una refe rencia a u n VI, 1,1código d e este VI
st" li~'CUta r.i r ua nd o ocurra eleven to. La referencia d ebe ser a un tipo estricto (rna r-
cad o co n u na es trella naranja ) y tendr á un os termina les ph>fijados . Par il r rea r a uto -
maticamon tola referencia lo más senci llo es acudir a l men ú contcxtual de esn- ter-
m ina l y selecciona r la o pc ión Crea re C I/lb.l ck VI, esto cn '<Há una re ferencia y
haciend o dtlb l~' d ie sobre ella SI' ab rirá e l VI reentran te en el qut' p uede colocarse
el codígo d el evento.

También pu .....te sN útil p.u.l trabaja r con Acnwx ('1explorad or de clases dis ponible ,'0
Vi,'w .> C/d~~ fJn>\V.~T, mediante é l !>t' pod rán ex p lora r las p roptedades y métod os dI'
cad a clase, es. ~"'lu i va ll'o tl' a la npció n Se/m f'n ,f't'rty / Alethod d el menú co n text ual d e
Il*' nod os d e pn>p il-d,ldl.'S y m étod os respectiva men te . l os l·ont.líllt'(S en el Pa nel
Frontalta mbién tienen la opció n I'mpt'rty BrowSt'r que m uestra u na \·e nlaOd d lll1 d t' ~'
PUl"d l' da r valor <l 1,1S prop iedad es dl'l llbjeln.

Por último h.ly q UI' d eci r q UI' SI' puedo convertir u n Activl-'X .1 un co ntrol (4 x ll) con
7iIlIJ.~ > ímp ort > Artin'X Contr ots to PaJettt·... El control se encuentra en G mtn J/s >
.N FT & Arti' -eX.

12.2.1.2 Ejemplo: CrNd6n de un control ~ y su uso en LlbV1EW


1:!.2. 1.:!.1 Bxplicacion tt 'Ór i c.l
I'ard com p render co mo usa r con troles Activ('X 1"0 1....lbVIEW se e m peza ré po r co no•.-..r
cómo es t én hechos y cómo funciona n . Con l'S te p r opósito se d iSl'l'lará u n sencillo con-
tro l Acuvex 1'0 Vistl<ll Basíc pa ra mes ta rde us arlo en La bVIEW.

El control Actívex tl·odr.i u n interfaz que con sistirá en u n cua d ro d e texto cu ya fina li-
dad l OS serv ir d o en trada p ara q ue u n usu ario escriba u na contra seña. Co nsta rá d ..:

• Dos propiedades d e jectu ra-escnrura :


• T i po Pass p ara ind ica r s i en el cuad r o de texto solamen te se p ued en introdu-
cir ca ractl·rt'S te xtuales o cua lquie r otro car ác ter.

298
Código uterno

• Pass pilra ind ica r cuá l es la contra....·i\a.


• Un método, A_mayua c u las , qUl' p.l Sol lo t"SCTÍto en e l control a ma y úsculas.
• El evento co r r ec to qUt' se acti vará cua ndo el texto Introducido en e l ron rml sea
i~ual a la co n tra....-ña.

El res to de funciones, eventos y variables qlW se puedan usa r en el p rograma no son


acct"Sib lt"!ó desde el ex te rior,

12.2.1.22 Código en Visu,11 6.lsie


El con trol a m."i-'tirá e n un courol d e tipo Textbox llamado pa....... TeJ<tBo.'. El c ódigo a so-
ciado d t"!ótt-' control es.

" " " , . , ' "" "" '" '" , ..


'VARI ABLES GLOBALES
' ' ' ' ' '', , , .. .. ..
,, ' , ' ' , .' ' , .
Pub l t c Enum Ti po Pa s s
Alfanumer i c o
Le tr as
En d En um

o t m g Ti po As Ti po pa s s ' Ti po d e c o n t ro l
Oim pass wor d As Str ifl9 'La con t r a s e ñ a

... , . " , . " , . , , ' ' ' ' ,,, .. ,' .. " ''', .......
'EVEtn'OS
" •• , • • " • • ,' .,' ,.,' "~ O , •• " . , , •• , ' • • , , • •

Even t cor r ecto 11

·., , ... .. ..., . .... .., ..., .., , .., .., , .., , .
, PROP I EDADES
....... , .. , .. " .. , , .. , , ,.,' , ., ,.
• propieda d para i nd ic.u ' el tipo d e la con t r a s e ña
' Esc r i bi r
Publi c Pr ope rty Get Tipo palls (J As T i poPas s
T ipoPa s s • 9T i po
Ene! Proper t y
, Le e r-
Public Pr o p er ty Le t Ti poPa s a (ByVa l tT ipoPas s As Tipo Pa ss )
gTipo • t T i po Pass
End pr o p e r t y

'Pr opied/ld para espe c ifi car 1/1 con t r a s e i'la


, Es c rib ir
Public PI"ope r ty Get Pa s s ( ) As St r i ng
Pass • Pass....o r d
LabVIEW

End Prope rty


'Leer
Pu bl t c Proper t y Let Pa s s (ByVal s pa a a As St ri ngl
Paaa wor d • aP asa
End Prop e r t y

, . , ... " " ..., . " , ,, , ,, .. ,,, .., .,, ,.,, ., ,


'METODOS
.. .
" , ., .. " , ., . , ' , ..,.' ,., ., .." .", . , ..
' Pasa l a c on t r aseña i n t r oduc i d a en e l c a mpo a mayuscul as
Pu b lic Sub A mayuscul as ()
pa s s Te x t Box. Tex t ~ UCa s e ~pa s sTe x t Box . Te x t )
Ca 11 p a s sTex t Box KeyUp ( O. O)
End Su b

.. ... , , ', , .
' OTRAS FUNCIONES .. .
", ,.. ..
" , " .. " ." ., , .. ,.
' Compru e b a l o s c a r a c t e r e s q ue se i n troduc e n .
' Se ej e cut a a n te s d e mos t rar u n nuevo c a r a c te r e n e l con t ro l
Pr iv at e Sub pas s Te xtB ox KeyP ress ( KeyA s c li As j n e e q e r }
'co mp r u e bo q ue sol o sea n l e t r a s
If gTipo • Le t r a s Th e n
I f No t (Key Asci i > 6 4 And Ke yAs c ii < 90 And
Not ( Ke y Asc l i " 96 And Ke yAs c i i < 12 3 l The n
Key As c ii • O
ae e p
Ex it Su b
"nd I f
End ! f
End Su b

' Co mp rueb a s i lo que hay eBcrito ya e S l a c ontra s e ña .


' Se ej e c u t a de s pués de in t rod ucir nuev os ca r ac t e l ~ B en ~ l co n t ro l
Priva te Su b pa s s Te x tBo x Ke y Up (Ke yCode As Int eqer, Sh if t As I n t e ge r)
Oim wi n As VbMag BoxRe l!l u l t
I f pas s Te x t Bo x .Tex t • pass word The n
wi n • Ms gBo x t p eee're xt. e c x . Tex t , v bOKOn l y . "Ac e r t a s t e ! J " )
RaiseEvent cor recto 'd i s pa r a e l e v e n t o
End I f
End Sub

Una "'l'O( cread o el Acuvcx so ll·nd r.) un fichero ron e x tensión "ocx , este fkh~'I'lJ debo
I'l'~ isl rarst· en e l s is ll' m .l operanvo. I'ara hacerlo de forma ma nual hay que ab rir una
ventana de \ 15-0(JS y en eüa escn btr el comando:
regs vr 32. e x e mi cont rol .ocx

300
______ _ _ ______ ____ ___ _ _ ____-'Ceo~.'_'I9.0 exter no

12.2.1.2.3 G io.lig o en Ltt> VIEW


El dxi i ~o en L.., bVIEW ('S ex tremadamen te sencillo. En primer lugar S(' d ebe colocar un
,k ti ,"(,X G mt,liol'T en el l'.tnl'l Frontal, en él S(' inse rta r,i el obj.'tn d isenado p n '\' ianu-n -
h- Tl'¡;il'! rado. El A cti I"" X G mt,lillt 'T d.,b.;> entonces mos tr ,H el cuadro de te xto.

Núll"Sl' qUI', aun e stando el r ro~ r.lm.l d e LabV IEW sin "jl'CulilN', el contro l Artivi-X "í
....1.1 fur n-iona ndo: ~ puede escribi r en él y PUI'<.iI' d a r 1l1 ~.H ,1 1., ejecución d ., ml;lolj (l~
y disp.lrtl dcevemos. Si -e qurcro evi ta r esto ha y <{ue ir al menú contextua! .Id contar-
ncr y l' II'~i r A .k ancn :1 > D. ...ign stoae.

lllIai ,,"¡ ~, ..,d a-


CJIorIlry" OOII o...
...--~
~-~
[It«t CamoI

b'nO _ <lo ¡" . . . <lo , _ "'" _ do!


[ 4*>_doI _ ""' _ _
..... ....CIM< .,
I 1I ,~. 1I ...
Tamluén en e l nll'n u ,'un f," /11.1/ > l'ropt'lty 8 rowS/:'r !'ot.' p ued en asign a r v <l llln~.l 1.1S pn...
p i'''ll.ld~ ... del cont rol. En '~ t l' l'jem pl (l no se modificaran d .......1.· t~ta venta na sinn q Ul· I,I';
rrop l~'lt .ld ~... se ds ign.u..i n con no do-, d .......íe el ú lo.ti¡;O del p n 'gr.l m a, el cua t p Ul'lk \ . ' T<;t'
enla fi ~ur.l 12-1-1.

FlgWJ 17-1 4 (óll'ijo de'! programa eJt'mplo di:' AoJll('X

Este p ro~ r.ml .l empieza n'~ is lr,m~i tl


d evento c o r r ecto doñmdo en .,1 cód igo en
Vbu.l l Basic, este evento -e .lcti, '.u,í cuando se introd uzca en e l cuad re de I",to 1.1 ron -
Ir3S/:,ñ.l. En el momen to dl' d.-t j \" a ~· ,ostl' even to so,.' l' l'C ut,Ha .<;ub VI.d , qu~' s im pl,'m,'n-
k mues t ra un mensaa po r 1'.101.111.1 .

301
LabVIEW

E I 1<i~uit'nlt'
p,N.l es asigna r un \'.llo r mediante " n>r't'Tt.V NfJt./t' a 1,1<; dos p r opied a des
de l comrcl: TipoPass y Pas s .

Finalmt'nlt', cua nd o se p n.~ion.1 1,1botón A t1I<lY St' lit'CUI<H.i 1'1 método A_ mayuscul as
qUt' convie rte e l It'x lo Introductdocn el con tro l ,1 ma yú scula s.

12.2.1 .2.-1 R'~lll t,Jt/os

A con tinuac ión St' m uestro una captura de pa ntall, li t'! resultadn, En el control Acnvcx
se h.1 int rod ucido la ((lIl tr,ISt'ñ.l co rneta e in m e dia tam en te ~, ha l'jec utad o l,} rutina
pa s s Tex t Box_ KeyUp qu., com prueba l a con traSt'ña y m ues tr e una \'t' nlan,} (Msg Bo x).
A con tin uación ~ ejec utaría sub Vh 'j al dispa rarse el evento c orrec t o .

FIgurd 11·1 5 Pa~1 FrOfl{<!J de Id f'J'XUClÓI'l dt'l VI con ACl/veX

12.2.2 .NET
.!\.'ET t"S u n c omun to de nuevas tecnologtas d e MicRlsofl que permite dist rihuir ....-Itw a -
re lit' for ma potente y se-ncilla. El código SI' d isl rihu yt' t'n fo rma de se rv ícíos que p Ut..
den ser ,11'("t"lfid tl<; de fo rma n-mota, es inde pendien te de-l I¡'n¡;tlol~ d e p mgra mac j ón y
de 1,1 'it' 1" pla taforma .

Las aplícacsones pa ra .N ET .....• p llt"llen crea r con .N ET Framework S VK tlUt' PUNt' des-
carga rse gratuita mente desde 1" wcb d e Mícrosou. El Framework se rom po nt' de:
• C I.R (C"mmon LmsudSt' Runtimt'): es el motor de ~udón d e 1.1<; ,}pl icaeitlnt"S.
Achí.l de fo rma parec ida a una máquina virtual. Ta mbíon ofrece m uchas fu nciones
a los p rt ~rdm ., s como ¡;t'Stió n d e memo ria. 1<t'gurid,' d, tra tamien to d e excepciones ,
soporte rnulnhllo. d lstribnclón de la aplicación , etc.
• Be !. ( H.J.>;(' CJ' ISS Libmry ): ~~ la hbn-na d e clase, base, es u na colección de tipos d r-
d at os <lllt' permiten acced er a los servicios del C LR El concep to tOS equ i\'.lIt'nte al
AI'I de Windows o al MFC de Visua l C H , Debido a su tamaño SI' ha d ivid ido de
forma jt' rárqu k a en t'Spad n!; de nombres. los C\1.111."S contienen d .lst'!', tipos de
d atos, o lros espacios d e nombre. 1'1c.
• Lenguajes de programación- C I!, e ++, Visual Bol Sic.•. Tam bién existen otros lengu a -
jt' s 'IUl' disponen de co m piladores para .N F.T a un qu e no I.'!<U n <i.'ntnl de l
Fram cwork, por I.'jl'm p lo CO BO L, l'y rhon, Pcrl, etc.

302
Código externo

• ASP.N ET: es un en torno q ue p roporciona he rram ienta s pa r.l aplicaciones basadas


en navegadores web.
En 1.1 ñgur. 12-11'1 se ha representad o Ia estructura d e los componente, de .NET
Pra mcwork.


I Bel I
I elR I
Ftgura 12-16 . Estruaura NET

El fu ncionam ien to, ,1 grand es rasgos, es el siguie n te: se escribe u n progrilm,' en cua l-
qu ier le ngu ilíe co mpa tible con .NET, gracias ., 1BCL Y CLJ~ todos los leng uaj<-'S tendr án
p rácticame nte los mismos recu rsos. Una vez crea do 1'1 progrilmil S(' transforma a otro
leng uaje lla mado «Le nguaje Inte rmed io de MicroSoft » (MSIL), también st' crea 10 deno-
mi nado M I,tadata, qUt' tOS información sob re los cam pos, p ro pied ades y otras carac te-
rísticas lid p rogram.1. Finalmente el pn\g rama en lenguaje in termedio es convertid o .11
cód igo nativo <i d p rocesador (es te paso puede se r J¡¡.~ t-ln- Time s i la con versión LOS gr,t-
dual y SI' p rod uce d ura nte la ejecución o Ne ttve /nMgl' Cenereaor Com pil.ltion si es
anterior a lit ejecución] y ejecutado por el CLR.

e++ NET , 01. JN ,


V8NET..•

MSll

Código nativo 001


P""''''''~

elR

?
'"
Sislllma operativo

Ftgur il I2· ¡ 7. rasos pera t'Jl"'Cutar una apllcaoón NET

[ AlSen sam blados o as..:;em/:!/i1'S son b ás ica mente los p rog r.l mas hec hos en .NET. 500, trilla
d e u n conjunto d e rec ura....s a grupados e n uno 11 va nos fic heros (mód ulos) co n cx tcn -
ston "dll o -.exe. Incluyen u n Ma n ir(>;;t" y metadn tos co n In formaci ón sob re e l no mb re

303
LabVIEW

y 1.1 versión , dl·pt·ndl·nd'l", permisos, in formación sobre In qut· contiene el a'''-<;t>mMy,


etc. Ta mbién ind u Yt'n el ródigo MSIL resultado de 1,1 compilación . El GA C (G I"b.11
A"."t.'mbly elche) lOS una lb tol til' los .1.......·mblil'S públicos prt.'Sl·nlt'S en el sis tema, en
windows pm...íe Vt·""'·
con el explorado r, normalmen te St' haya en el d ln x-tor¡o
C: \ ¡VINDOWS\ ,I......·mb/y.

A l tener todos los It·nl'll.lfl'lo el m ismo mit ren de tra b ajo•. NET ,1pt Irlol ind epend encia del
I I'n~u .1jt' de programacton y d ebido a emplear una máquina v rrt u...1 q ue eJL'Cu ta un ten -
¡;ua¡1' in termedio t,lmb ien~' t iene independ encia de la p lolt ol for md; .N ET eliminalo qUt'
~. conec ta co mo infierno d e 1,1S dll (posibles incump'lli bilitl,ltlt'S ,11 insta lar di stint,ls
~' I'rsitml'S d e 1<1 misma d 11) ,11 pode r coexis tir d is tin tas versiones de las mismas 1Ibrcría s
y tambi én es totalmen te uru-n tad o a Objl'IOS.

l'ara que el cód igo y Ins da tos eean co mpa tibles en tre los d istin tos prtl~ram.l s , é-tc d d ..'
....,~u i r .l l ~u na .. n..'~I,l S. CTS (G.m mo n Typt?' Systt'ml son 1,1S n'~I,l s qm' d eben segui r 1.1..
definiciones d .. lipos d e d ,llo,.; para q u e e l CLR lolS acepte, l'S deci r, define corno d ..ben
~'r lo.. tipos com u nes a todo.. lenguajes .N ET. CLS (Com m on Lm#u,¡~e Spt....-ifk,ltion)
son las reg las q ue deben cu m p li r las d e fini ciones d e tir'tl'> polrol 'l ue los tipos y su..
rm..mb ros sea n ollXX'<iidtl'> desde el exter mr.

Ol ms conceptos relacionados con .N ET 5On;


• Windows P"rm: so,' utill za en las aplicaciones trad icinn.l lt'S de windows pa ra crear
d inte rfaz rh- 1,1 aplícadón, es parecido a los fo rm u lark», d e Visual Baste (l Visual
C++.
• Web Forms: l OS ('\ equivuh-n t.. a W;n d o ws ¡"¡"m.~ p.Ha ASI'. N FT.
• AOO.NET: .uqurtectura para acceder a bases d.. d .lIo...

12.2.2.1 .NET en lab\llEW


1..1 forma de trabaja r ron .t\: I:T en l ..i1 bV:¡EW e, p'lrt.'Cid.1 .1 1.1 v¡..ld anteriorment e COI1
Acuvox. St· p uede .l n n-eter ,1 ohjd tl'<, p ropiedades , m"lod. I'< y eventos asociados. ,1 un
""'rv i"inr .N ET.

FI men ú con funciones rclaciou.rdas co n .NET pu.... lt· l·,Klllltr,l r....• en CO/l /lt'.:/i l"i ly >
.N ET. También puedt· a ~ n');ar~' un COlJ lilinCf e n t'I l 'ancl Frontal yendo a Mol.1t'rfl >
Contoiners » .N ET Ct lflt.lis¡" f.

~E:':J~ ~
= G I');] ~
EJ[;l!]1QJ
F"}IJf'" 12-18 Menú (le fun{lOlIf'~ N ~T

304
Código externo

L1S referencias a los ODjt'tOS .N ET M' pueden crea r dcscíe el Panel Pron ta! u sando u n
Conteínor o también d esde el Diagr d ma de Bloques ron un C(lll.~trllct( 'r Notie. El resto
de funciones del men ú .N ET S/.' us an li d m ismo modo q u elas fu ncio nes de AetiveX.

Alg u n,ls d iferencias e nt re .N ET y Actívcx en Lab VIEW son :


• LabVIEW no es un servidor .N ET.
• No se puede USM Pm perty Browser ni ~ign Afode .

Al igu al q ue I.h librería s co m pa rtid as y ActíveX, con .N ET ta mb ién ha y asi stentes en el


men ú T(l(J/.~ > Import. Con .N ET Con tro/s to PaJette... 51.' importen con troles de [.1
mis ma mane ra qUl ' en Activex , a parti r de estos controles ;;L' podrán crea r nod os d e
m étodos y propiedades. Web Sen 'ice... crea u na serie d e Vlsa modo de wrappf:'r (como
co n las librerías com pa rtid as) par.l acceder <1 las fu ncio nes de un servicio wcb basado
en WS DL (Wt'b S('fI'icó'S Descriptíon Lmgu,lge), un se rvicio wcb LOS básicamente u na
aplicación q ut' sigue unos estánd ares para interca mb iar información con otras ap li-
caci ones.

'2.2.2.2 Ejemplo 1: Creación de una IJbreria de cases .NET Y su uso en L1b'v1E\V


12.2.2.2./ Exp /ic,lCión teórica
En este ejem plo se diseñ ará en C# un a pequeña clase q ue sirva de ejem plo p.Ha ve r su
posterio r uso en un p rog ra ma en Lab VIEW.

1~l ctosc rcalizorá cálcu los matem áticos bá sicos co n dos operadores . Esta rá com p ues ta
p or:
• Dos propiedades:
• Operador l .
• Operador2.

• Un método con el original nombre Met o d o q ue rea lizará la ope rac i ón indicada con
los dos operad ores. L1Soperaciones se rán la su ma, n..'Sta. multiplicación o di visión .
• No será ncccs a no ningún control, eventos u ot ra s funciones privadas.

12.2.2.2.2 Código en CI
El cód igo en C# estará co mp ues to por u n Nemespacc q ue co n tend ré 1,1 cJ ,\ Stc'
Cl a s eCalcul a d escrita ant eriormente , Al co mpila rse se creara el fich ero t'jt'mpJH.dll.

usi ng Sy stern;
us ing Syst e rn .Col lect ions.Gene r ic ;

name s psce e j e mplo


I
1/1 < S WMIS ry>
11/ Des c ripc i ó n de Cl a s e Ca l cu l a
111 </ 1I umm.a ry >

30 5
LabVIEW

publi c c l a a a Cl a a e Ca lcu l a
I
private e t.at r c i ..t v al orl;
private sta ti c i ..t va l o r 2 :

11/ < . WIIII'" ry >


lit P.opiedad 1 : p. imer o pe r a do r
/11 <1. WIIIII4 ry>
p ub lie iDt Opera dorl {
Bet{ v al orl _v a 1u e i)
g e t{ re t u r n val or l: )
I
1// .o a WllllUl ry>
111 Pr op i eda d : s egu ndo o pe r a do r
//1 < / B ~a ry >
p ub l ic i n t Ope ra do r 2{
set{ va l o r 2 _v a 1u e ; )
get {retu rn va1o r2: }
I
lit .o a Wlllll4 r y>
//1 Mé t odo qu e real i z a una o p e r a c i ó n numéric a.
lit < / al,DllllWlry >
pub li c sta ti c !loat H.t odo t int o p l (
.wite h (opl(
e• • • o :
r etur n
b re ak ,
c a a. >,
ce t ur n ( f l oa t) va 1or l-va lor 2i
break :
e •••
" r e tu rn ( f l o a t ) v a l o r l " v al o r 2 ;
b ¡;eak ,
e• • •
" r e cu r a ( f l o a tl v alo r l/ v alo r 2,
break ;
d. b u lt :
.etu.n o,
b¡;ea k ,
I

306
12-2.2.2.3 CñdiKl H'n .l.lbV1EW
Co mo e n l'Stl' l; l' m pln no hace falta ten er ningún control e n e l Panel Fron ta l, ni la clase
diseñada 10 tiene, no ser é necesario un Contdint'r, en su lu gar seemplea r é C()n.~ tructor
Node pa ra crear una insta nc ia de la clase. Al coloca r esta función en d Diagrama de
Bloques a parecerá un mcnu en 1'1 q uP se puede t' legir u n .l....<;f·mNy y un objeto en él,
co mo m uest ra la figu r,} 12-1 9.

........: I. O , = .~

..........

Fq.lt"il 12· 19 $eII'o:lÓIldeun COllSIIUClO!' NEl

Una vez creado e l objeto d e la clase deseada se podrán usar los nud os d e prop it"dddto,;
y mé todos sob re Id referencia. En este ejemplo se usa ra u n nodo prup itoJad en pi qUl' se
escribirén Id" dos pn'pitodad("'i para d ar valor a los dos opt'radon'S y después q' in vo-
ca rá al método polra n-aliza r el cá lcu lo.

Figura 12·20 Cód'90 dPl e.JPfl'plO en .NET

12-2. 2-2A R~u lt"J(I,"


En la fig ura 12·21 pu....ll, \'eN.' la ejecución d el código a n te rior.

307
LabVlEW

12.2.2 .3 E.PnPIO 11: Navegador Web


12.2.2.,l 1 l:\ p lic.1("ión tl'Ór h' l
Este ejem plo consis tirá en em beber y m aneja r un na vegad or weba tra vés d e u n (~ >fl '
m íner lla ma do we barc ....ser 'lUl' S(' inc luye en 1.1 versión 2.0 d e l .N ET r r,lme \V o r" d ..'
Microsoft.

Como dice 1,1 d .....-u mentaciún d ..' M5DN , weea r ove e r dispo ne d e muc has prop¡.....ta -
des, rnl' t...dos y vv..-ntos, deentre ludos d ios, pa r,1 ..-sto ejem plo, so.' us..lrá n solamente:
• Propn.. Lrd ..'S:
• Url : .. ~ l.) d irección d el d ocu m e-n to .
• Méllldus
• Go Bac k: V.l 01 Id pá~ in,l an terior, si pr oced e.
• c oscrwe r u: v a a la pá ~in ,l siguiente, si proced e.
• GoHome: V,1 .1 la r'~Ki n.l con figu rad a como la i nicial.
• Nav iga t e : ca rga u n n uevo d ocu men to, t'Stá sobrecargada.
• Ref res h: actualiza 1... página actual.

• Even tos
• Nav igated: evento qUl' se d ispara cua ndo se accede a un n uevo docu mento.

12.2.2.3.2 Gíd i¡;p t'n L l l> VIE IV


En p rime r hlgoH "l' dd.e a soc ia r el con trol Sys ll'm .\ \,inli nw.Fo rms,\ V.'h Bn.w se r de .N ET
Framework 2.0 a un Con ú inor .N ET. El progra ma tl'n d rá u n" ....rie d I' bnlom'S p.lr.l ir
a trés. ad ela nte, .1b rir u na n ueva página, e tc. Todos es tos botone, tendr án asociad os un
s ubd iag ea ma d.., la estructu ra F.VENT com ose pued.., ve r en la figu ra 12· 22.

" , , •

_. -
;,;;t
,
,~
4
-

fqwa 11·2] N~ web

308
Códig o enerno

Al r rind pill del programa también SI.' debe registrar el even to Nav ígated. El subVI q ue
a tiende el evento Na vign ted se ejecu ta cada ve z qu e ca mb ia la dirección de la págirl,1
mostrada, s u fu nció n será actualiza r el control q ue ind ica la d irección, por t'SO co mo
par ámetro recibe una referencia a ese co ntro l. Su cód igo se muestra en la fi gura 12-21.

~COlMlOfl Oetal

ort.ol Re!" t#e!9? la LRL de lallUl!Va ~I


L"_ -
rl < w_ ~ !'!!".Ii

t:rt etal Ur l . . . . Ur,

"'"
' O

tEif~e<
r;, =~~~enl ....
-~<'"
Figura 12·2 3 SubV' que actua liza el control que moca la creccco

12.2.2.3.3 JÚ'SUl t,ldps


Elaspecto del prog rama puede verse en la siguien te fi gura 12-24.

,G S~"" \rI QI\JPO ÓII


_ ..rol. tIOtoOo """'odo POI
. ,...''\1.... '" con
•••
,fOl Olll1l ><lM "' '''''''''' cornl''''.' In
1" "" d. """"'9OC'6n ."
P""...I faIl _ ,.
Roe"..". l.abljo
.......,<93<1ÓII
CoI_ _ con 01_
Do<onci.

1<_
_ _o do ..... 1~ 6n d. lo
I:n1OCII

--
--~-'~-
~ locIad Pok!knt< . do
VaI,,<:I, y _ . pa!11 d.1 CiGIC -..... do 11l1li" _ _

Figura 12·2Q rjecucon del Navegador web SODre LabVIEW


309
L"bV IEW

12.3 Creación de librerías y ejecutables


con Lab V IEW
En ¡'htl' capitulo hJ.stil ahora se ha n visto m étod os pa ra co m unica r ot ros p l"ll~ r <1111<1" con
nUl'stros Vis . Si In lllle SI' d l'Sl'¡] es el p roc eso con trario, 1'S deci r, usa r un pl"llgr,\ma do
1 ~\ l:'! V IEW den tro d., otro p rog rama hec ho en o tro k-nguaje hay varios m"'todo.., uno de
t'lIos I 'S, co mo SOo' ha d ichoantes . d tran Os d t' Acttvvx . Utro métod o ("S crear uno librería
co mp artid a 01 pa rtir dt' h ... VI,;. d., un p roy ec to ['... rol es te último SI' t·mpl" ol r.i
Applk .l lion Buihkr.

El Arr Uc,llion Bu íkter f't' rm itt' constru ir librerías com p artid as, I'jI'CU tabl.'S t ' instoll.ldo-
res . En los tn.'!> casos SI' debe crea r una n ueva Bui'" Sr't'cifica ti(ln.~ en 1.1 venta na d e l
l''' plor,l.lo r d e proyectos. Al hacer esto au tomá tica m ente a pan'CI'r.1 una ven ta na en 1.1
Il UI' SI' podr án configurar todos los pa rámetr os de (;HI<1 const rucció n.

~ 'ii:. 8.JId 5oecfICatlO/'lS


~ .~ OU
f- tl e_ _
L~ Instal.mr

hgUf<l 12-25 BulId ~lhcdtlOll~

En l'l C.IS0 d e crea r Iibl'l'ri,l" co mpa rtida s u no de los P,\SlI,;. inclu irá 1,1 co nstrucció n del
p roto tip o d e las fu nciones iI partir d e los terminales d efinidos e n los VIs tlUl' w ntl'ng.l
1,\ lib rería. En la fig ura 12·26 p uede verse un e je mplo, los ca mpos son p ráct ica mente los
m is mos q ue en 101 conñguraclón lid nodo eall Libr,,,)' Fuocnoo Nodo > p ,)f,l mete rs.

.........
• :::~-;-,,"--"¡"_ •
-
¡=:--
1- -
1:::--
••
• • ••

---- •

-- •

==
FKJJ<l 12·26_ Deflnioón de protoupo

31 0
Código externo

LiI m ayor aplicación d e API' /ic<ltion ñuíkícr I'S crear eil'('utabll's. En es te caso los pnn-
rt pales p ará me tros <1 con ñgurar ~ lI1 l'1 VI p rincipa l, los VI!' llamad os d in ámicamente (a
través di' VI Server} y las propiedades de ca d a VI. En la fig ura 12-27 pued e verse la ven-
tarta e n la que SI' pueden sobrescribir las p ropiedad es de los Vis (Fi l!' > VI f'ropertil's) al
crear u n ejec utable.

Una n ueva Iuncinnalidad a ñadid a en la v ersión LilbVIEW !i.n es la posibilidad de d ep u-


ración di' librerías y ejecutables en Opt 'riltt' > lJt'bu~ A l'pl ic,ltiOIl or 5/lilrt'd U br,Jly. ..
Con esta o pci ón SI' pued e acceder al Diag rama de Bloq ues (si tambié n SI' ha incl u id o)
y usa r las herramien tas d e depu ración co mo 1 lighlight Exocutíon, Probt' o Brl'.l kpoillt.
Iilg k a ml'll tt' no "1' po(lnl m od ificar ese Dia grama d .. BlogUI'S,

'" .
'-_
:_Lo<>-..
' ...... ,- .............
:~ -
,--,--_.
."--
--
...._ _

_.-._-
--,
.......... _
la
!il
."e
,__ _..._...... El

~S-:, ;=-::e: '¿lb@; "


I
... JI '" J I ,_ JI ""
FIgu ra 12-2 7 ventana en Que se pueden eocaca r las propiedades

12.4 Eje rCiCios


1) Modifica r el con trol d el ejemplo I de Act ivl.'X para que l'n 1,1 ca m po de texto SI'
m uestren asteriscos en lugM del tr-x to teclead o.
2) Usa ndo las m ismas funciones que en e jem p lo Il de lib re rfa s externas, crea r u n pro-
grama qUl' m ida con 1.1 ma yor precisi ón posible elncmpo que ta rdaría un VI ba jo
prueba en l'i¡'('uta rse.
3) Crea r usand o Acnvex un pro~ra mil lluI' rnue- tre un d ocume nto embebido.
Al~u n as suge rencias de d oc u men tos so n: vid eos, una an imaci ón flash, una pAg ina
web, ficheros de o ffice, ficheros PUF...

3 11
UibV IEW

12.5 Bibliografía

Arch.m.l Sh rolriYd, A ....'IJH7; Writing Win12 Dynsm íc l.inl. Ubr.,n't~ (VLls) ,Jn<'
Collling Tbem tn nn L IM 'fEI\', 19%,

k it h 'rgusn n et alt., O / IJiMt', Will'Y Publishing, 2(kJ2,


Microsott, M 5lJN .

Na tional [nslrnmt'nls, l..,bVfH V, Using Ext('mal Gx.lt' in l..,bVfFIV, 2(kJ:l.

312
Capítulo 13

Optimización de' interfaz

13.1 Ele m e n t o s del Panel Frontal


Estud ia r todos los e lemon tos que afecta n a l Panel Fronta l con u n nivel de deta lle .11tO
haría q Ul' la ex tensión d el ca pitulo fuese desproporcionada. pe ro hay alg unos ele-
mento'> que por su pot encial me recen UO (l S palabras, sobre ellos tra ta esta pa rte del
capít ulo.

13 .1. 1 Otros tipos de Gráficos


Hasta " ho ra prácticamente todas las g ráficas q ue se ha n visto han sid o W¡¡ I··efo r m
Grilph II Wave/{Irm Ch<1rf, la di ferencia en tre am bas se e xplic ó en el primer ca pitu lo,
rec ordemos 'l Ul' el Waveform Cha r t va anexa ndo nuevos d a tos conforme llega n rnien-
tras q ue W,w{'form G rap h redibuja tod a la gráfica con los da tos n uevos. Ta mb ién M' ha
visto en a lgu nos ejemplos que se pueden d ib ujar va rias g ráficas en el mismo con trol
construyend o un array d e tantas dimensiones co mo gráficas se quieran dib ujar, co mo
se puede aprecia r en la figu ra 13-1.

u,
'" ¡el-" •. ~ m~
~~ ""!J ,
®·I •
®
IIJ ®
-
~
Figura 13·1, Represeraeoon de va rIOs graneos con el ms mo connor

Ad em ás d e los d os tipos de g ráficas bastees se dispone d E' otros. por ejem plo:
• XY Grilph: son un tipo d e gráfico muy genérico. El ti po d e da tos a cepta n con -
q Ut'
sis te en un dus t..r de d os com ponen tes, cada lino es un dffilyqllt' cont iene los \,,110-
res d e la gráfica para los eíes X e Y (aunq ue tambi én pueden aceptar u n ,uray d e
du_~ tt'n; com pUl'stos por dos pun tos). Pa ra mostrar más de una w.ifica en el mis mo

3J3
LtbVlEW

control so.' J d ",' constru ir u n .lrr.l.\· t 'll d qUt' C.1J.l "'t'mt'ntn St'r.1 una ~ráfic<l con 1·1
f.. rmato amcnor. En 1.1 fi~ur" 13-2 SO;' mue...lrd un t'Jt·mplt•.

• lnlt'n.~iry (Gr.lp h y eh.u f) : ""l' U'>d n pdrd most rar datos JI' In... Jiml'n~iolll'" en una
¡;r.ifica de do.. JiJ1"lt.'fl." il,"t~, l.' h'n"l'ra dimt>n"ión!iot' !iu ~ti IUY I' ptlr 1,1 in ten .. id .1J Jt·
un color.
,
, , ,
, ,,,,
, ,s ,
, , ,,, , "

" ,, ,,
,
,
r qJI.l 13-] Gr.1fo::o IIJlO IntC'fM)'

• J}i~I,.,1 Gr.lr'r 1 11' upo dI' t1 .lIu~ so.' usa cua ndo St' Irab.1 ~l en fllrmollll d i¡;il.ll . 1.. 1 ....
tI.llt.... StlO n·rn -ntado- I'n l> in d no ror columna-, (¡';' I'<1nd l'i¡.:il.d l>u."t'S) o en u na
única gráiic.1 ,,,,' r ..u va lor lll":irtldl. MÜt't1 Si..:n.11Gr olph {"!I;. l"l,)J1"It.l !iU nom b re indi-
ca , u no! combmación de una.. ¡::r.\riC3S an.a k"~a ~ · ntlrma ll~· ron d i¡::it.lll.... p.lTol
n'pn....-ntar h..I,I" Idl' ""l'ñ .111~ en ••[ mismo con trol St' deben d¡;nlp.1r en un c/1I."/l'r.

~.

~,

•• • ~.

~,

~ .

~.

~.

~,
Optlmlzadon d el Interfaz

l'ictu re!>~
adem és de lo mencionado h,lSl,l ahora, ta mbién se pueden represen ta r grMi-
cos med ta n te los controles Picture. Pa ra e mp lea rlos se ha rá uso d e los Vis del men ú
Pm~ r.lmm i/l~ > Gr,ll'iJics & Soulld > Pie/ure Píots, q llt' incluyen funci ones pa ra n'pn' -
senta r, en tre o tros, d iag ra mas polan -s y de Smith, co mo se observa en la fi gu ra 13-5.

hgura 13· 5. UuhzaaÓll {le concoes reunes para repre>elUdr 9rJflCOS


• .in Gr.lph: esta s gráficas incluyen las de curvas, superficie y p,u aml;trír,ls, No
está n disponibles en tod as las ve rsiones n i en todas las plata form as. St' basan en 1,1
Il~nología Ac tiveX y se manejan g racias a los VIs d e la p aleta l'ro~ r,JIlJrlJ in~ >
Gr,lph ic~ & Sm m d > 3 D Gr"ph l'mp" rlil's. Pa ra p ersonaliza r estos ~rMic<J" h'lY q Ul'
acceder <1 sus pro p iedades desde el m co u contextu a ].

,
m~_

Figura 13--6 GIarcos ro 3D

• 3D Pie/Uf<' Con/rol: esn- corurolcs u na de ];}S no vedades d e la versión 8.20, pcrrni-


tI' crear varios Ob jl't'l';:- U I'H un con trol (l'S(\'O-<l) y m an ip ularl os de for ma indivi-
dual, bien ,1 través de los VIs del men ú /'ro~r"m/llin~ > Gr,lpJ¡ ic~ & So und > 3D
"¡ctun' Con tro l o de 1.1s propit'd ,llies y mé lotins del control. En la fi~ura J1-7 SI' ve
un pro¡;r<l m" vn el que ~' rrr-an dos objetos Hamados cub" y esfa,l. 1<1 e-roro "t'
mueve a 1" posición (0,5 0,5 n,5) y ~' ,lli,lden los dosa 1" misma escena r on el rnóto-
do Oh;,... -t > A dd Obil'd; de ntro de l b uri l' ximplenwnte- s.. \',1 TIlland o 1" l'Sf.-r,l

315
I..Jb V IE W

nuent res S{' \'i su,} I ¡'~l n los dns objetos: (>1 resuha du 1"S u n control q ut' mues tra
a mbos ob jt"los, el cu bo tno y l,} esfe ra dt'<ip l.llá nd oSt,; vn 1,1 p arle in fc rso r d l' l,l ima-
gen M ' PUl'\Íl' ver una capt ura d e pantalla. Dt'Sllt, " 1 Panel Frontal. mediante el
nlt'nü contextua! del controltambién se pued e cambiar la perspectiva y elcuntrul
do ('.l m .Ha .

FKJUf.l 1J . 7_J O ecnse Control

13.2.1 Subpaneles
IA>S clcmcn tus s ubpencl son u na ca ra cte rrsttca inln ....1udd.l a partir de 1.1 versi ón 7.1 , Í<'
IAlbVIf.: W, m edia nte elk-s !'l' p m'til' inserta r el Panel Frunta l de u n VI den tro ,i" o tro. El
r onn'p lol'S eq uivalen te a los ma ree», ti (fam es e n pág ina s webs .

!',H,l USOU u n subp ane l h'l Y 'lu" J iri¡.;irM' ,1 /\-1t.... tern > (iml,lillt·rs > Subl'. lIll'J¡'lI 1.1 p.lll'-
1.1 de controles.

Al co lt....-a r un sub pane l en el Pam-l Frontal a pa l"l'«' un nodo lla mad o lnsert vr en el
Di.l¡.;rol mol de 1~1 (1"'l ut'S, !'l' Ir,11.1 de un m étodo d el con trol s ub pa nel ,11qUl' hay q Ut' cemee -

3Ib
Optimiz ación del Interfaz

ta r una refe renc ia del VI que se most rará en s u in te rior. O tro m é-tod o qu e tiene el sub-
pa nel tOS el de Rcmove VI, que sirve para cerrar y qu itar el VI del su bpa nel.

En la fig u ra 13-~ se ve un peq ue ño ejemplo en el que se puede e legir entre d os Vis pa ra


mos trar en l'l sub pa nel. En el CASE d e la parte superior se m ues tra el Panel Frontal del
VI dl'g ido y en la parte infe rior se cierra y se q u ita del su b p anel. La figura 13-9 ta mbién
m uestra e l resultado en el Panel Fronta l.

~
[El -

~ .-

Desd e la versió n S.Ose per mite a brir el Diagrama de Bloq ues del VI mostrad o on el sub-
panel y usar herramientas de depu ración.

13.1.3 Splltters
Los ~plittt'rs son div isores del Panel Frontal, permiten d ividirlo en va ria s pa rtes o panc-
les: no se debe con fun d ir con SU bp.10l'1 que Inserta un Pa nel Fron ta l den tro d e o tro, en
el ca so d e los .~p littl 'rs su fu nción es bá sicamente cos mética, tod os los con tro les e ind i-
cado res m ost rad os pertenece r án al m ismo VI. Es ú til pa ra real izar a¡;rupacíolll's cuan -
d o en un a pantalla hay una g ran can tid ad d e con troles e indicado res .

Los splittt'rs tienen asociados even tos a los q Ul' se p ued e acceder d es d e la estructura
EVE NT y US<1T VI Server par,l in teract uar co n e llos de fo r ma p rog ra m<1 d <1 .

En la figura 13-10 se p ued e ver un p ro¡;rJ m a en e l q ue, m edia nte splítters, se ha di vid i-
do el Pa ne l fron tal en trr-s pam-k-s.

317
LabVIEW

--• --•
•- •-
•- -•
• >
• >

" •

, >

13.2 Lo ca liza r el Int erfaz


1l.1jn ,,,,ll' no mbre ~ ha ce referencia .1 M posib ilid ad de a d ap tar el texto q ue .1p,1T1'eeen
un prn~r,lnl.l hecho con L.1b VI EW a otros id io mas.

E..lo ....' con..i¡;ut' im porta nd o y ex porta ndo los string~ q ue co mponen e l 1'.1111'1 Frontal
a u n fu-hcr oJ I' te xto, este ficht'ru pod rá ser mod ificad o l' impo rtad o mil.. adela nte. I',H.l
l' xportolr,J un fichero de tex to h'l)" 'lut' d irigi rst.,,} T(lo /s > Ad l'.JnCt't:i > b1"'(lrt ::>tritW'"
El fichl'ft' g ua rdad o l""lá en fo rma to XML, elesqur-ma simphñcado viene dado I'pr t' l
s i~ u l l'n ll' l,'xln:

~Vl >

<:CONTENT ,.
..CO NTR OL >
<:D ~SC> <: /DEs e>
<:TI P> <:/ T I P>
<: PARTS > <: / PARTS,.
<:/ CONTROL>
~ / CONTF.NT "
</ VI,.

C,l.!,l elemento lid Panel Fron tal ....' d efine en tre <CO NT RO L> )" <¡ CO NTRO l.>. El
..1mll'ni d, . de I.h marcas DE." C 1'S 1.1 descripción '1 U¡' .11'.1 rec e t' n 1,1 vent ana d ,' 1,1 il yuda
conteatua l. TlI' ,'S el pequeño nwn....l¡.' 'l UI' ilp a Tl.'C1' al d l; ilr .. l ratón sobro elch-tuento y
PA RTS ....m In.. otros elemen tos qut' co m ponen a l control: cspnoo. 1,'1lI0 en l'I interior J I'
u n bot ón. d e

318
Optlmludón del l nt~ rfu

Una VI·.... mod ificado p..d r:i ....-r import.-tdn o g ua rda do con t.tm nombre p ar" lUI'l1;O ~' r
ca rg.idu d e forma p rngr,lnl.ld,l. Esto último S(.' consig ue invocando un métod o dd VI
lla mado VI 5tring~ > impon, Un detalle i mpo rtJ n tl" ~ <¡U t·l'st,· método no puede modi-
ñcar \ 111 VI q Ut' se t~tá l·jt'Cul,l ndo .

En 101 figur.l n ·11 ~. PUt..h- ver un v l en el q uest' modlfk-a e l ldto ma dc orro VI . En p rr-
nu-r lugar SI-' otígo el fichero en 'lUI' t... tan los d<ltl)!; d e l ¡di u m.l t'1,'g idt~ }' d espu és se .1bn'
una referencia al VI 'lUlo' st' mod ifica ra. como no se p uedo im porta r el fiche ro si e l VI
t·st.1 ejecu t ánd ose Sol' dl·tl'ndrá con 1·1 método A t>ort \'1, una vez p arado YiI se .'St,1 en
condición de importa r e-l fichero y finalmente se vuelvea I'jt'•..utar vl VI con el métod o
RUIl \ '1.

m
Flgur.J 13- 1I . SeleCCIón del icllOm.J ce un VI

También es im portante decir qUl' por cada cambio qUl' ..... h.1¡.\<l en el Panel Fronta l.
Ll 1:'> VIEW .l u me ntará 1·1 n ú mero de versión de l fichero d .· .~ trin,l;'s co n el q ue tr.l1:'>.lj.l .

13.3 Interactuando con e l usuario


pro gra mada mente
A pesar de q ue hay una el,H,l d istinció n entre Pa nel Fronta l y Didgram a d e Bloq ues . St'
pueden realiza r mod ificaciollt'S en 1,1 p rimero a tra vés del segu ndo, t'S d ectr, modificar
d aspecto de la ven ta na d l'StII' d p rograma. Co n esto St' consig ul' un progrJm,1 qUt'
inn-ractti a de forma m uc ho mes din ámica co n el u suario.

L.l!> p rincipales herrarmentas para conseg uir esto Yd SI' ha n victo en los capítulos a nte-
norvs , estos so n: 1.1,0; pmpl\oJ.ldt'S de I()!; con troles, ~l u d i ,l d,IS en e l ca pitulo J y VI
Serv er, en el capitulo 'l. En t~la secci ón se trata ra n (Jln >s ,1..p.'CI"s tam bién irnportan t....
en 101 co mumcecion usu.u-io-máquina.

319
LilbVJEW

13.3.1 Menús penonallzados


Fn \l~ Vis dt· inl,' rf.ll ,il· USUMio PUl...:!,· ser ú til pt'r"llO.lIiLar, o por lo menos n~lringi r,
e l men úde \a p.irtt' supenor d" I,J pantalla rnk-ntras el V I ~· ,':"l.\ ,;"'("uland,'.

Para r rcor n modiñca r u n men ú personalizado st' d,'bto ir ,1 Edil > Rlln - Time Aft'n ll, una
\ ' ('1 ,l bi" rt.l 1.\ n 'nl.m,l ti" 1,] fi~ u ra 1 3- 12~' pueden ,Ji'l,ldir 0110'\'0<; dt'mt'nltl!> con el
bot ón [±] y l'Iim inM ol n ~ nm ~: I c ~ b otones co n fo m M dt' flecha sin.'t·n p.l r.l orde-
nar y anidar h~ t,ll' ml'nlos del menu . En I'ff' l'io'w SI' p uo'dl' VN r-l ,lsp,'("ln del nwn ú con-
forme So' va creando. En 1,1 p.Hh' derocha. el gru pollamado IIt'nI I'rflpt'rlit-S configura
ca,l,l uno de [t'l!> t'lt' mt'nlrt"; <id men ú. és tos pUI..ícn S\'r ddin id,t"; por r-l us uario (U<;j'f
/tt'm ), puede <;j'r un ....·p.u,ldo r o u n elemento del rnt'nü habitual d ., l...iIllVIFW
(.41'l '/ j':'100l1 lterm. II..m N .Jnw es el nombre m'll>tradu Jd d e mento e Ilo'm r dl< l'S u n
nomlln' inh'mtl 'lUt' p uede ....-r d ift' n ' nlt' del an tcnor y sin.'t' p.ir" id''TllifK'M pI elemcn-
le) ~·lt"l.'Cit}fl,ldl l dt"!'>dt' t'l pnl);r<lnM la lgo P.l ~id o .l lo , ")C p lic.ld o eu t'I ca pilu lo d .. intro-
ducción ron LI/:Id y C.lr ti1ml .

.. .. -
[tE) GEJ.ill) •
I
--
- '-

--,.... -..
._- --
~.;.; -
.- 10_

. ----
. .....
,

El m.'nÚ ...... p u."':!t' nl.lnt.; ,u desde t'l p rtlg ra md a trav és dt' ltt"; Vis d,' 1.1 r alt'la
l 'r. ~r.lmminl< > Vi,I I. ~ k U""'f lntt ·f';]....• > M('nu. c.."\llS Vis perrmten modifica r ('\
menú, obtener 1,1 orricin <;('1('("(I"""d,1 ",••r t'1 u..ua rio ti ¡¡Ir.l inftlrlll.1dÚn , J." es tructura
EVENT lam bie'n lit'nt' " I~ll nt)O; l'",'ntl'" lr li lt~ p..ua mallt; ,lr t'I ml'm i.

320
Opt l ml~<tcio n del interfa z

En d l' jl' nlplo de 1,\ fi¡.: u r.l l J -l -l ....' m ues tra ('1 (lld l~o d ., un p l'l.l¡.: r.ln1<l '1 \1l' cn r-l in terior
del CASE mod ifira uu men ú rnwrt.md o nuevos d l'nWll lus , ad.'m.ls (,ld ,1 eh-mento
nuevo tend ra ""Oci.1J.. un '11.Jjl l.k n-dado. Después del CASE , llr.lil'lll'n 1" " nombres
inte rnos de tod os los elementos que con form an e l men ú. NúIl' ' ll ul' 1,1 ,,,,lrll<:lu r,l rh-l
p rogramo .'mpk.ld.l .'s una ~'t ''' lI Dr íven Sta k M ,lChjm' conducida por even tos y un
solo h ilo.

- I
z • ,
o. .
~
La fi ¡;uri'l 13-1 5 muestra u na ejecución del progranl,l an terior, En ..l men ú Editar m l'mí
se pod rá n a n.ufir y ohrninar nuevos ítcm s, on elPanel Fron ta l Sl ' pueden ver en u na
tab la todo" los dl'ffil'nlos del rnenu.

f ~1 1 11,t ¡ ;j-I'> VI con un r nenu pe r~{) I ....llI,;d{)

Po r otra parte. tam hicn "'" p ued e crear u n men ú con tex tual P,H,1 "'ld ,l elemen to d el
Panel Frontal. do 1,,,1.1 ma nera Cl I.l nd o ...., p resione ,'1 botón ""'l'um1.1 TlO del rat ón sobre
,'",' elemen to '¡ P ' l Tl'l-.. r.i e-] men ú creado. Para es to h,¡ y que ",,'lt,'ci lln ,H clclenu-nto e Ir
,11 nWlHJ •'<l/l ft" /11, 11 > A .f\ '.II1,"<'t1 > Kun- Tíme Sh" r tcu f .\1" l llI > hUI ..,

L.1 fu rrua dl' crvo r l'I lllt' nti l'S ig ual ,1 la exphcada ,¡n t.", y 1,1S iun.-ioll' ''' P,H,l in te-ractuar
con el menú d ."..dl' l'l ..ú.hgn t.rmbu-n serán 1,l s m b nl.l "; en 1,,,1<' "l"iO el " \t'nl o ....ra

32 1
LolI bVl EW

SJlllrtcu t M,'n u St'lecliofl tU.....·r). Enla fig u ra lJ· ]O y figu ra lJ- 17 pueden \'~'I'Sl' el edi-
IOf v el n ...ult.r do.

----
...... _-
0 - ... ....
--
l·...; ~
~''''
lO..... '


Frg LJfa U· lb s-onc ut M enu Editor

--
'.......... , ,,,,,,~,

m
FIGora ! 3·17 MelllJ conexn e r personalizado

13.3 .2 Teclado
11,!v mu chos usuarios qut· rt' r rap id('l'. comodidad n simplemoruc costu mb re PIl..'fil' T"11
usar d t,-el,ldo, tamluén puede ocurrir 'lut' el r rng r,l ma deba funciona r s ob n- un di spo-
sitivo que no di spon¡';,l de ratón, en estos casos ' 'S impor tarte facilitar <J Ut' st' pUlx l ,l
interactuar co n el p n>gr,lma u sa nd o el teclado.

El foco de 1,1 venta na ,1etiV it l'S elluga r d onde st' t's pt.'ra u na res p rn... la del 1,'(·I"d." por
.'j" lllp]o. 1" ,' ntr,ld,l d., u n te xto e n u n con trol de tipo ~ trinPo o 1,1.K livación d ., un borou
mediante ENTER. Para mover el foco po r los clemente, d e una ventana St ' Us,1 1.1 tecla
1'A l!. En LlvV IEW St' pu ....i~' definir el orden al que lla ma remos o rden de tabulaci ón por
medi o de F.1it > Si, t T,lh/;>mPo Ora!'r...

En esta ven t.m,l, cuando stOhit¡!;a d ie so b rt' un e. mtrol, 6s tl' t e nd ril " 1orden tI.'1 (,,..0 ind i-
cado en el col mpo lla mado CJick to .... 't so, este número a u m~'nt.lrá a uto má tica men te
r ua ndo M',l " s i¡!;nado . C.1J,1 c ontrol pt_... d os. n úmeros en su esquma infe rior derecha :
t-I q Ul' ti.. ru- el fo ndo bl.1l1CO eea su orden d e t.lv u l.lciún an tes de modifica rlo y ..1 'lUl'
til'",' el fond .! m·!tro es Sil nuevo orden. segú n st' p Ut'ttt' a precia Ten 1<1 figll r.l 11- 11'1. U na

322
Optlmlzadon del Interfaz

ve q ue ya est é definido 1.'1 u n h 'n deseado sólo hay que pn ~ inn.1T e l botón Contírm di'
1,1 ba rra de hc rramn-nta s p,lfa volver al l'anel Fron ta l. Tambiéu SI;' p UI-d I' rnodtfica r r-l
orden .il;' tab ulación d ., h... controle-s dent ro d e los d(l,~t,'r,~ pUf medio J •. su IJWIIú con -
t,' .. hl.l / > Rt ,mlt'r Ct lIl tn ll.~ In ( -III.~ t('r...

FlQur<l 13-18 OrOOl11!" ti!OUlaC l6n

lAS Kt>y ,Va l·;g.JtiHII son h >s .1 t,l~ lS dt' teclado. se trata d e ti n,l combinación de rec tas llllt'
accioná nd olas prnvocan una accton . s.., puede aSIl('i,lr un .l la jo Jl' teclado a cad a co ntrol
P v" me..lill d el m t'ntí dt'sl'l''j;.If>/t' > I 'ropt'rtlt's > Kt'Y N,l\ ·iH,lIioll ll l.l Il1h ién en A .fl·.m-
.....1 > K(~y Nadg<!fjon, ver fi¡::ura 1;\- 1'1.

- ,--
~-~ ... _~

- ~.~~ --- ~.

.l --
.. """"'-'
· ---- -".
n-.-'"
-_.
-_.
- ~ ·~·'--C;~-C·,¡,¡¡ ,
,.-: •• .-
-
>.-
- 0 - ...
l' CK-... <
l. o"".........", .
-- ..,;,;,,~ -
¡¡,•
~. _- -,

-
-,

0 _ ...
0 _ ...._ _ '_

o_~
0"" .._ ..._

, ,11_ 11_ 1
f1y¡lrd 13 19 A[djOSOl" tet.:I.t<.lo

I'o r último también se pueden ilSllCiar acción..-s a combinaciones d e ¡..-clas de for ma pnl-
~ r,mlild.l. s in nt"t·l~id .l.t d., ninuún controlen elI'anel Fron tal. ¡"Ha ..-sto St' 1' lIl pll,,¡rJ n

323
LabV IEW

lns VIs del men u Connt'Cti\,ity > Inp ut l)e\ ';a' Con trol, En la figu ra 13-20 st' puede ver
un l;l'mp lo q ue muestra un me-ns aje cua nd o se p res io ne 1,1 com binació n d e tl'e1,ls
<..' TRL+l.

13.3.3 Drag & Drop


Vr.¡g "" Drop l'S 1.1 acción d e a rrast ra r y solta r u n (lb jl'lo sob re o tro. Esta opción SE' int ro-
dujo en L1hV IHV a pa rtir de 1,1 wrsi ón 1l.0.

I'" r" u sarla h"y ' Iu,' habilitar <"St,l ca rac tertsñca en los. con troles o mdicadon-s median-
te un nodo d e p ro p ¡....ta d (si d ISP" 'lt'11 ,1<' ella) o en su Tll. 'm í con t.'J<.tIMI > Ati \'.IlICt'(I , L.1
prog ra maci ón st' realiza dentro de un" est ructu ra EVENT, la cua l pu\'(k detecta r dís-
tin tos even tos: [)r.J~ Ended, Dr.lK En tt'r , Vr.Jg i..e.n '." Dr.r¡; Over , Dr.l¡; SOllrO' Upo.l .l tl',
IJr.w s r,¡rting, Vr.lg 5t.uf;n¡; ? y Vrc 'p.

En t'l l;e mp lo do 1.1 iJ~u ra 13-2 1 st' usa rá la acción d l' a rra stra r y solta r st.o " , u n dibu jo
U ',rtllrt') p.Jr,1 coloca r en él un tcx lo l."SCrihH'Tl un n 1Il1r<.l1 d o' tipo !'i tr in};. El even to qm' st'
ulili l,a rá sera únicamen te Dro/" l'n él st' leerán IdS r " o rd " Il,ld.1S donde st' h.l ((',l li;{Altill 1,1
acción para escribir e 1 1"'''10, es te n-xto es leido media n te l,l VI Gl't Drol¡ ; Pro}' nlt.l.

fl<jU'd t3 ·lt Ejmlplodt-Of,¡g &Ofop

324
Optimiza clon d e l Interfaz

Pa ra ver e l resultado se dcbeescnb ír en (>1 smng un texto , seleo cion a rto. pinchar con el
cursor sobn- l.l selec ción. arrastrarlo h,l.st.l cua lqu ie r p unto d el dibujo y una V('Z al lí sol-
tar el bo tón d el ratón.

Flr¡ ura ¡ 3-22, Uso de Drag ¿;, Orop psra escnc«sobre un raoe

13.4 XControls
L.1 vervión profesiona l de labVIEW 8.0 añadía un a n ueva herra m ien ta a la hura d e pro·
g ram.u: los XControls. Hasta ahora para crea r el interfa z se d isponía de los co ntroles
propo rcionad os por L1bVIEW, éstos, como se vio en el p rimer cap ítu lo, se pueden per-
sonaliza r, P'-'ro ta mbién tiene s us limites, la p ersonaít zact ón no d e ja de ser un ca mb io
me ra mente estético.

c.1(I<\ con tro l d e LabVIEW tiene u nas prop iedades y métodos co munes con otros con-
troles d o 1<1 misma familia y otras propiedades y métod os ún icos. por ejemplo un
Wa l"l'form Grap h tiene propiedades p ar,l con trola r las escalas de los ojos , los cu rSOR-S.
d e. Estas propiedades y mé tod os pueden modificar 1'1 as pec to y cornportanucnto.
hacen que los con troles tengan mucha mas fu nc iona lid ad y red ucen el ta rna óo d el códi -
¡;o del pro ¡;rama. l o s XControls son controles crea dos pc.lT el usu ario que tam bién p ue-
den inclu ir propiedades y métodos.

Los XControls se crea n d entro de u na lib rería de un proyec to; tienen datos y un ,-st<ldo
asociad o. Un XCont rol está formado por métodos, propiedades y otros co mponentes
lla ma dos Abitities:

Lo s m étodos y las propiedades son Vis 'l ue p ueden acceder al esta do y il los da tos dd
XConl rol y además pueden ejecutar u n código . Estos VII' será n invocados a trav és de
nodos asociados al XContrnl.

Los componente, de u n XControl son:


• St<1lt~ es el estad o del XCon tro l. St' Ir.lI<1 de u n cluster 'lUto contiene variables n-la -
tiva s .1 la apariencia y I l' com por tamíen to definidas p or el usua rio.

325
La bVlEW

• Da t.J: ind ican el tipo d i' datos del XCon lrol. por ejemplo n umérico, <l rr.ly. dll.~ter. etc.
• Init: inn-iahzación.
• FJ(.It/I' (f.l( had ,l \: l~ el co razón del XCootml. MJnt'j.m 11'" lostados y res pond en
on tc t'\'t'n los . Lo s ev entos p ueden ser e l cambio en el va lo r del .litio, u n f'lln 1:'l io dl'
J irt'<T iú n dp l termi na l (r asa r de contro l a indicador o viceversa ], inicia r o Iinalizo r
1.1 ejecución. un ca m bio de es tad o. opciones d e su menú ron textual. I'It' . Su Pa nel
Fronta l ..... correspo nde co n el term ina l q Ut' ver á e l us uarto. si r-l XConl rol puede <;,t'r
con tr ole indicador <;,t' J ebe añ.l d ir un termina l p.lrit cada t... tado. sobn-poucrlos y
con trola r ..u v isib ilid ad desde t'I código.
• COIIl"t'rt St,l tl' For S ll '(~ o pciona l.
• Uninit: opcional.
En 1<1 fi¡;Ur" 13-23 ",-' I' tll'dl' v er 1<1 es t ru ct u ra d t' Jos fkht' nls que conforman u n
XC'onlrol.

,. Pro jec:t b plore r proJ ... r~J@I(gJ

Fq..src rJ-2J EWlXtura oc VI} y cconces Que romsn 181 xcooeo

C\J,m d tl St' C.u~.l en memoria por p rimera vez un XCn ol TllI "'-' lla ma a 1<1 .1" ility Init y
cu.mdu el \IslI.lrio interactúa con t'l con trol ~' lla ma ,1 F,'Jt;a,h'. Los m étodo.. que ca m -
hia n e l ('Sl,ld o .11'1con trolta mbién provt"ll"an u n evento q u e 1'S trat ad o pnr el F.1\".ltÜ' \11.

13.4.1 Ejemp lo: Polímetro virtual


13.4 .1 . J Explkad6n teóoca
Pa ra ilu strar 0'1uso de los XCont n,l~ ....• d iSl.' i'la r.i un con tro l con .lp.lTicnci J d .· un senci-
110 polímetro. Antes d e .'rn¡'lf'la r.1 crear el d >di go hay q Ut' aclarar ,IJguntl~ concep tos:
• 'n l'll d " d ,}llI" : l,) medida, q Ul' S"r,l un da to n u mérico d.' doble p r ecisión.

3lb
OptimizacIón del Interfaz

• Estados d el co ntrol: medida de co rrien te (1 tensién y la escala.


• Inicializar-ión: escala e I y mod tdae tcnsíón.
• Métodos: ten dr á u n método en el qUl' mostrara un mensaje con el va lo r d e la
medida.
• Pro pieda d es: tendr á una p ropiedad de Il'c tura /l'SC r itu ra q ue permitirá ca mbia r el
tipo de medida .

13 .4.1.2 MetodOlogla
1Jl' lo an terior se deduce q ue la i1biJity Sf,l ft' será un con trol d e tipo dll~ tt'r d.,
un boo-
leano (tipo de medid a) y u n numero (escala], D ilt,J (la medida ] será u n control numéri-
co de doble pnxist ón. En la figu ra 13-24 p uede verse en la parte s uperior los cont roles
correspond ien tes a Dat,l y S tate y abajo el código de lnit en el q ue, a pa rtir d e la plan-
tilla creada ~)r Lll.,VIEW, se ha a ñadido u n dU$tercon los va lo res iniciales delestado
del XControJ (Cllrrl'llt .':it,1tl').

Figura J 3-24 coouoes Da la y 5rille y el cócqo In¡[

La atoili ty tocedo t'S 1,1 '1Ul' más atenci ón n-quiere. En ella, por un a parte hil Yq ue cn-ar
el Panel Frontal q Ul' mostra rá el XContrnl y por ot ra ha y que ma nejar tod os los evvn-
tos necesa rios. ElPanel Fro ntal se rá el d ela fi gu ra 13·25.

Este Panel Fro nta l tien e un indicador nu mérico q ue muestra 1,1 medida m ultiplicad a
por la esca la, un con trol pril ind ica r 1,1 escala, un botón p,1ra ind icar si S(' mid e tens ión
o co rricnte y un ~frin¡.¡ qu t' muestra las unidades de 1,1 medida (Am perios 6 Vol tios ), en

m
L.abVIEW

1,1 fi~ ura an te nor no st' apn 'Ci" t' l strin,; porq Ut' st' ha hecho tran spa re nte, eSlá ~ i l \l.1<I .,
.1 1.1 d erec ha d el indicador dt, 1.1 medida.


OE+O
.-" " -
u~ - , '& -

• •
FK:jllfd 13-1'> P,n ll"l Frontal oe la ,,¡iJ¡/¡ry fil{iJde

El ("<'¡J i~o d e '.l(.ld.. debe reaccionar a nte un ca mbio d el va lor dela med ida, cua ndo ....10
st' produzca \"<1In ' r.1 a ca lcu la r la lec tu ra m os trada, multiplicando 1,1 medida l't' r l,)
•.....:a l.l. También dd't' detec ta r el ca m bio de estad o (que por .;.'mpl o se pod ría p roducir
.,1 modifica r u na p n1pi."t:I., d ) y ca mbia r la a pariencia del XCOnlTtl1 d e acuerdo con el
nuevo es tad o, en concret o dl'lx ' cam biar- el botón d el tipo de mcehd a . la s unidades,
modificar la escala y calcular n uev amente (-'1 valor mostrad o. Por ultimo 1,1mbi.' n st'
dt,l>,'n definir ev en tos p'l r., t rata r las modificaciones qu v h.l¡';., el u sua rio sobre h l~ r on-
ITIlI.'s d e l XContTllL En 10 1., \ St' utiliza rán tres even tos : a l ta Ch,l/l).i.', f)i:;pl,¡y 51.11.,
Ch.lIJ~" y el ca mbio en E.o;c,'/,I o en ¡\f.'I1id.l. Resumiendo.

• Cuando ca mb... el d ato (1 ,1 rntoJ ida ) se debe calcula r d valor m os trad o.


• Cuand, ca mbie el ..... tado (t ipu d e medida y .'SC" I.,) tam bién se ca lcu la e! \".l lor y ,,'
ca m bian 1,1<; u nida des .
• C uando se c,'mb i,m los co ntroles E'i<".al.a o .... ','l/íd.J ~, h"r.í In mismo q ue t'n d".lst'
,1 n terior,

En 1"" "i ~ll i t'n l o'S fi~ur,ls (fi¡.; ur'l D -2ó, figur,' 13-27 v fig u ra l.3-2H )~' m uestra el n id igo
de l'Stos t res e ven tos.

Un,' V<''' q Ut' 1.1S ,1t>ili ti.'S t'St.ín crea d as. ya se ¡:"llI...-1 t" usa r e l XConlrtll, pcros¡ .... 1., ' luw-
Tt' dar más fu ncionalidad st' pueden crea r pTtlp it"t:lold t'S y m étodos. En este ejemplo ,,'
CTt'.u á u na p ro p iedad P,H,' modificar el h po de meci id ,l y un método para mostrar u n
nu-n....' tt'.

Para croar una propio..Iad h., y 'lUt' t'lt'¡';lr en primer lug.u si st'r,i delectu ra, d o' esc ritu -
ra ti de lecrura-escrüura: en t'Slt' ú ltimo caso la prop¡....íad col1si~li r.i en dos Vls. Par.,
crear un método st' deben . 'nl .llar l(l" rontrok-s l' indicad ores dctI'ane t Fron ta l en el ter-
m ina l d e l ícono y n'" ti~u ra r l( >:; desde la ven ta na del p n lyt" 'ln P,U,I qut' a pa ro' I-c.m o'n .,1
nod o. En la parte izquiorda d e la fi g u ra 13-29 se \" 1;" el (I ·llli¡.;n d ., la p r opiedad de 1.,,'111-
ra " Tt',ldil p <1Ta es t.' t'j,'rn p lo y en 1,1 derecha 1'1 ((¡digo rh-l método.

328
Opllmlzadon del Interfaz

lil


[t:~- •

~~
[- - =!» Y¡;¡¡;;¡I

FogurJ 13-21 COdqo del evento D<spI,Jy SlJ(~ 01JrJc}t'

--- . -- --- - - -- - - ... ~ "'lJ

J •
.
' 1 1 """f>'illl".
1 -~ ' 1±I-I~---<'T'i>Ij
wl
In ~~
--- ..- B> ~.~Jl

329
l a bVIEW

~ Sl""'. tnl

[Th_ Sl""'.1
tki l......,."'ll

r KJIlt " 13-29 ( 60:1Igo oe la p,opedad de lffturd y Código ót:'l 111('(000

13.4.1 .3 Resultados
Finalmente y,l ....· p uede usa r el XCnn trul en t an tos Vis co mo se quiera , y como se H' t'n
1" fi ¡:;ura 13-JO l'Il'úd i¡:;lI d .. los Vl s q Ut' los u san se n-d uce d rastica nu-nt e.

...........-.. W', :':";'l""""


-'~
fú._ .!í!!

ffii']

••

s..'r,1 inte rcs onte d t'Sp lt'ga r ('1d ia¡:; rol m,l d e la ins tancia d e l XCon tnl l a tra vés de su menú
11 m fl'x t!¡;¡! > Advnnced > Sh¡lw > S/lfll\" Di.1gril m cua nd o no se ('!<t,1 1'jl'C Utand .. 1) ti in -e-
tamente en t'I men ú cua nd o St' l'jt'<'u t,l y ve r e 1 cód i ~n d el f,l~·"dt' VI \"I1l1 1,1 opci ón d .·
1Iighlight b l'c lltipn ac tivada.

13.5 Consejos p a ra d iseñar un Interfaz


A 1,1 hora d., d , st ·I~M ..1 Pa nel Frontal d e u n VI h,ly 'lUl' tener en CUl' n t.1 ,11¡:;u nas consf-
dl'r,ld o nt'S llul' p ueden marca r 1.1 di fl' rl' nri a e ntrc un program a di' ,ls pt'd n profesíonat,
funcional y wncülo tl u n pmg r.lrl1<l d esordena do y no in t u itivo.

En pri me r lu~.H h.1Yq ue d istingu ir entre VIs de usua rio (cuyo Pane l Frontal p ued e ver
el usuario) y lo s '1111' no . Es tos úl timos serán sim ples Vis, po r lo '1 Ul' ""U Pa ne l Fr on tal

330
Optimización del interfa z

con te nd rá los controles e ind icadores que le servi rán a l sub v l como conector. en este
ca so la d istribución de los termma tes en e l Pane l Fron ta l será parecid a a la del ccnec-
tor: control es a la izq uierd a, indicadores <1 la derecha, referencia s en la pa rte superior y
clusters de error en la parte infe rior. Esta organización ayuda rá a l programador a
maneja r los VIs, Yi! q ue se rá el único que ten ga acceso a s u Pane l Fro ntal. Sin emba rgo
la d ist ribución de los Vis d e usuario será mucho má s complicada y b usca rá se r lo más
cons istente e int uit iva posible para el usua rio. El res to de este capítulo está dedicado a
da r una se rie d e co nsejos y normas que ayud ará n a mejorar e l aspecto d el interfaz de
usuano.

13.5.1 Layout
F.l co ncepto más im portante a la ho ra de d iseña r u n interfaz es ma ntener el mismo'csti-
loen todo el progra ma . En LabVIEW hay tres estilos básicos: Modcm , Sys tl'm y Ctese íc.

También debe ser consisten te la d istrib ución de elementos. Al igual que el Diagrama d e
Bloques. en el Panel Frontal también se deben usa r las opciones de la barra de herra-
m ientas pilra alinear, d istribuir. redimensionar y agrupa r.

La ley d e FiU dice qm' el tiem po necesario para alca nzar un o bjeto con e l rató n es fu n-
ción d e la dis tancia y d el tam a ño d el objeto, por lo tan to los objetos más usados d ebe-
rían ser mas gra ndes, pero no de forma desproporcionada. Otra consec ue ncia d e losta
leyes que cuand o el ratón llega a l bord e de la pan talla se detiene, por lo tanto son zorras
fáciles de llegar (los ob jetos situad os justo en los bordes tendrían un tamaño virtua l-
men te infinito ). de este modo se d educe q ue las zonas má s acces ibles d e la pa nta lla so n
las cua tro esq uinas y los latera les, por lo tanto ahí d eben colocarse las fun ciones más
u tilizadas (suponiendo que el interfa z del p rograma va ya a ocu pa r toda la pantalla ).
Algu nos ejemplos seria n e l botón d e retroceso del navegado r web, el botón para cerra r
la ven tana de la ma yoría d e los GUis d e sistemas operativos o los men ús la tera les de la
mayoría d e página s wcbs.

Uno de los concep tos más importantes para conseguir un interfaz senci llo es que lo s
objetos q ue est én relocto nad os e nt re sí d eben asociarse, ha y v ar ia s forma s d e aso-
cia ción:
• Por espacio, es d ecir agru pando espacialmente los elementos relactonedos y sepa-
ránd o los d el resto. Se puede usar como referencia la rejilla de fondo del Pa nel
Fron tal.
a Con un color co m ú n.
a Ag rupándolos usando otros elementos como líneas, d ec oraciones o rodeándolos
con algún tipo d e trame (por ejemp lo formando con ellos a lgún cluster) o incluso
usand o T<lbs, Splítters, etc.
• Mediante una com binación de las anteriores.

El ta maño de los elementos tam bién es importante, no se deben hacer ta n grandes que
oc upen más de una pantalla n i tan pequ e ños q ue cueste verlos. El tama ño también
debe ser consistente en todos los elementos del progra ma. Para asign a r el tama ño de

331
LabVIEW

forma precisa pueden U,,",1TSl' las herramientas de Rl'sjZt' Objl'cts de la barra de herra-
mientes, figura 13-31.

~ 11 ~ 1I ...
Figura r3-3 1 Res,/(' Ohteas permae cambiar ei tarTl<lr'lo oe lOs OD¡e1os

Ot ro detalle relacionado con el ta ma ño de I()(S objetos es la resoluci ón de pantalla, on


Fill' > VI f'rolwrtit'.s > Winl fow Siee se puede hacer que al ca mbia r d e resolución de
pantalla se man tengan las p r oporciones o que los elementos SI' red ímensionen al cam-
Di,lr el tama ño de la ventana . También se puede conseguir q Ul' cada elemento indivi-
dualmente se redimensione junto con la ven tana a t ravés de la opción Sea/e Object With
/';!nl' del menú contextua! de cad a con trol.

'3.5.2 TIpografía
l .<l ~
fuentes de los textos deben reducirse a Applkdtio(l F¡mt, Sys tl'm Fon t y 0;,1/0';
!'tont. H"y que tener en cuen ta si e l pru¡:;rama se .*'Cutará sobre sistemas operativos d is-
tintos porque los resultados pueden ser imp re vistos.

I ~l s etiquetas de los con troles deben SI'r co rtas y precisas. Para ajustar e l tama ño d e las
etiquetas al tex to q ue co ntienen SI' usa rá Size To Text. Si M.' quiere l' xtende r 13 informa-
ción relacionada con cad a eh-mente pueden usarse los elementos fA'SCription en d 1"il'
y h,lú 'r q ue junto al progrilffi,' ,¡pa n'zca la ventana de ayuda contex tua ].

13.5.3 Color
El color puede servir pil ril enfatiza r o agrupar elementos. Su función principal 1...
aumenta r la cantidad d e información p,lr,l el usuario.

El co lo r de fondo d ebe ser d MU para que el texto y el resto de elementos q ue ha ya cn ci-


n1.1 se aprecien bien. El co lo r de l'S tos elementos debe contrasta r suficien temente co n e l
d e fondo, por ejemplo, una buena co mbinación es texto blanco sobre fondo azul.

332
O ptimización del Int erfa z

En Set Color de la paleta de herramien ta s ha y tres barras d e colores (ver fi gura 13-32):
la su perior es una escala d e grise s, la segu nda es para colores "neu trales" y la tercera
para colores "fuertes" . Para conseguir con tras tes q ue llamen la a tenci ón se usa r án colo-
res fuertes.

-- .... _ .~~~

Sob re la d istribución de colores. SI;' d ebe evita r el rojo y verde en la periferia , son más
adecuados para el centro: sin embargo la reti na es más sensible a l blan co, negro, azul o
amarillo en la perife ria.

El n úmero d e colores qUl' se usa n no d ebe ser muy elevado, una cantid ad reco menda -
ble esta ría entre cua tro y sie te.

13.5.4 Imágenes
Como ya se ha v isto, los con tro les e indicadores p ueden personalízarsc. Entre otras
cos as p ermiten añadir imágenes a los írems de un control. Esta característica es mu y
ú til para realizar metáforas en botones. Las m etáforas so n imáge nes sobre controles que
permiten al usuario asocia r un concepto a la acci ón del control, p or ('jemplo u n botón
con u na imagen d e una flech a ap u ntando a 1,1 izquierda recorda ría a la acción rct roce-
der. En muchas aplicaciones se combina el u so d e m etáforas con texto .

13.5.5 Otros
Muchos cont roles tienen funcionalidades asociad as, conocerlas y usa rlas p uede simpli-
ficar la p rog ramaci ón y ofrecer al programador ma yor con trol sobre la aplicación fi na l.
Se pued e acceder a ellas a través de s u menú con textual o programadamente a tra vés
d e propiedades y métodos.
• Los cont roles booleanos tienen asociada una acción m ecán ica li witch o /,Jtch. En 105
dib ujos que aparecen al selecciona r la acción, Id let ra M representa el ratón, V la
sa lida y RD cua nd o d val or es leído . Los primeros cambian su valor cad a vez q uP
se presiona el ratón sobre e llos, se su elta o mientras permanl'a' presionado; so n
ap ropi ad os para in terruptores como elencend ído o apagado de una máq uina. En
los segund os el valor cambia bajo la s mi sm as co nd iciones qUl' an tes pero el n uevo
va lor sólo se mantiene ha sta que lOS leid o, vo lv ie ndo entonces a su valo r p or d efcc -

333
LabVIEW

lo; ~ 1Il apro p iados para asoctarlos a una acción, pu r ejemplo la toma d e una medio
da en un multime tm.
• Los cont roles num éricos pUI'1Jl'n acotar e l rango de entrad a a u no.. de terminad os
\' ,' 10 1\..... mt....tra r los valores con distintas precis iones y forma tos . tener un d eterrm-
n.1do inrr"ml'nto /dl'Crt'ml'tltn, etc. Lo s con troles d e tipo etn nn y rin¡; lil'nl'n una
funcionalidad pa recida, y pueden utilizarse romo menús de opcionc...,
• Los con troles ~tring pueden actua lizar el va lor mientras se escnbc, hrnita rse a u na
linea , ajustar eltarnaño de las líneas a l ancho del co ntro l o mostrar b,u r" s dt' des-
pla za micnto. También p ueden visualiza r su contenido d e forma normal, most ra r
1·1valor ASCII d e cad a ca r ácter, mostrar asteriscos, etc.
• Lo !'> con troles p.l th pueden mostrar un botón pa r.l na vega r, n 'stritlJ,:ir los fich eros
mostra dos .1 lus qu e tengan u na determinada extensión, perrrutir Sl·II-ccionar un
Iichem (l un directorio, etc.
• L, S ~rtifi cas son los controles qu e tienen más npcinnl><;, al gunas de ellas son el auto-
escalado d e los e jes, el U~ I d e cu rsores, xooms, aflad i r anotaciones. ca m bia r tipo de
interpolación, ca mbia r el tipo de Hnea y s u color, exportar una imagena un forma-
lo ¡;r.Hk o , ,1flad ir 0 1T.1S escalas, d e.

U lS c ontroles deben tener co mo valor irucia l (por d d t-c to ) el mas típicu. También puede
considera rsecrear un fic hero de co n figu ración para gua rdar el va lor qUl' el usua rio fija
en los con t r oles.

El abusode Vl·n t.1I1.1S desplega ble, p ued e distrae r a l usua rio de la a plicación principal.
Las .lplil-.1Ch llll'S d ebe ría n tener una pmralla da n ' y mostrar ven tanas de d ialogo sólo
cua nd o sean e-tnc te men tc m'l:l's.ui,lS; la información que pueden da r 1.1S venta nas d e
di alo¡;o puede mostra rse en 1.1 p.m la ll., principal a tra vés de un espacio reservad o pa ra
mensajes , ca mbiando el co lor di' un de terminado con tro l, d e. Un ejemplo di' t,:> lo 1'S la
opción d e búsq ued a en Int ernet Explore r y en Firefox , en e1primero a pan.'l.'t' un a nueva
ven tana mientras q ue en e l segundo apa rece un peque ño recuadro en 1,1 parte inferior
más c óm od o y menos in trusivo.

Tam bién t... im po rtan te red ucir 1.1 latencia que p4'rcibt.· el usuario. L1 mejo r forma d e
redu cir retra sos es eliminánd olos, p.l ra e llo M' utili7arán mú ltiples hil os de ejecuci ón
siem p re q Ul' st· p ued a. Si se realizan ta rea s que imp id.l n trabajar dI usuario d urante
unos pocos segu ndos puede cam biarse la forma del CUTSllr y cuan do la s tareas se alar-
gu en mtis puede mostrarse una barra de progn.'So. Cua n d o la lan-a acabe se ría una
bu en a idl',l avisar mediante u n pitido (1 .1lgú n otro ind ica t ivo visual.

13.6 Ejercicio
L Modifica r el eje mp lo sobre Dr,I}; & Drop para que en un cont rol l 'ktun' i'ol' pueda n
dibu ja r con el ra tón pun tos, lineas y círculos d e d iferen tes colores.

334
_ _ _ _ _ _ __ _ _ _ _ _ __ _ _ _ _ _ __ _ ~O
"'p t i m l u cl o n del interfaz

13.7 Bibliografía
G re¡; McKaskle, LlbVlEW Programmin¡.: Tt'Chniques - 111(' GOt>d, tll<' B.ld, ena tht·
Ugly. Na tional ln....tro rren rs, 1m.

Jtlt"1Spolsky, User In terf.Kt.' Dt-sj}{1l For Prc ~rammers, 2fOl .

N,ltit' "<l l ln.stro lm'n ls. A N 161: Porting .m r.1 1..( l('d li7ing L1b VIH V VI.<;, 2000 .

N.lti nll.lllnslrumen ls, LlbVIEW Deve íopm ont Guidelines, 2003.

"dI" Hlumc Fil't' Te•.:lm i<¡ lIt'.s tor 8etter LI I> VIE W Cod e, Bloomy Comrols, 2003.

l'cn- Blnmc , 1..IPVIEW Sty lL' G uid elinl's, Bloomy Conrrols, 2002.

335
Capítulo 14

Optimización del código

14.1 Diseño de la aplicación


Escribir el código es sólo una más de las partes q ue co m pu ncn el d iseño de un proyec-
to. Cuand o se aborda un proyecto d e cierta envergadura q Ul' con ten d rá d ecenas o cien-
tos de Vis, an tes d e empeza r a programar, hay que aclarar qu é ('S lo que se quien' y
c ómo se va " conseguir, adem ás hay ciertas cua lidades q ue serian deseables pa T., el
futuro, co mo hacer código reutilizable, flexible y d e fácil m antenimiento.

El ctcto d e v ida dr- un p royecto son las fases por las que un p royecto d ebe pasa r para
llegar desde su inicialización hasta fina lizarse en u n tiempo limitado. El ciclo de vid a
de un p rod ucto esta rá constitu ido por las etapas que hay desde que surge la idea hasta
qUl' dl'jil de u tilizarse. En esta sección se estud iarán algunos m od e los d e ciclos de vid a
de proyec tos software. Estos modelos sirven por una parte como gu ía di desarrollador
o desa rrolladores para organizar las ta reas q ue con lleva el proyecto y por o tra p ara
ofrecer recursos paTa admi n istra r y ma ntenerlo.

<:le
Ana ~ ", ~
~k8ilOS
-,,
,
~ .... ~-,
,,
L ."., -, <.-~
,
,
L ....-. 1--,,
,
'- Manleni miento

figura ¡ 4· 1. Fases ce un provecto según el mode lo en cascaoa

El modelo en cascada ( water/al!) fue refercnciado por p rimera V t'Z Pv" Wislon Royce en
los anos 70. Es u na de las mctodolog tas histó ricamente más util izadas. Consiste en

337
Lab V IEW

ord ena r u na tras otra las etapas del ciclo de vid a del d iseño, se pasa a una fas e cuand o
51.' ha com p le tad o tntalrnen tc 1<1 a nterior, si se d etectan fallos en una fase posib le men te
h,l ya qUl' volve r a la an terior. Es m uy im po rtan te que tod as las tases se documen ten
adec uad a men te.

En ],1 fig ura 14-1 se aprecia un esq uem a de las fases propues tas por W. Roycc, {>slas son :
anál isis d e los req uisitos. diseño, creación d el código, p r uebas, imp lem entac ió n y rna n-
tenimien to . A con tinu ación 51.' detalla cad a una di' es tas fases:
• En e l aná lis is d e los requisitos SI' trata d e d ividi r el p roble ma en los com ponente,
ha rd ware y software que serán necesarios. q ué deben hacer y corno SI' van a co mu-
nica r ('nlre si.
• Dura nte 1,1 fase d e d iseño h;¡y lJU l' crea r la a rqu itectura d e 1.1 aplicación. EtI es t,l
eta pa tam bién se d iseñan los in terfac es, q ue consisten en mecan ismos de com u ni-
cación entre 10.. d i..nutos mód u los (Id s ish'llhl y en t re e l s istl'm a y eíus u a rí o.
• L;¡ creación d el código es 1,1 prog ra mació n propiamente dicha.
• En el testeo SI' co rregirá n fallos y se- co mp roba rá si el pro¡;rilm a cu m ple las cspcci-
ücacíoncs iniciales.
• 1,<1 <; fases de implementació n y man ten imiento no siempre está n presentes en todos
los p royectos , St' trata d e mo nta r tod o e l s iste ma en su IU¡;<lr de destino y mejorar-
lo o añ adi r nuevas fu ncionalida d es con el tiem po.

El problema q u(' tiene esta motod ologfa es q ue 1<1 d etección d e un error o la imrod uc -
ción de un a n uev a cat ac tcrfstira e n u na d e las ú ltimas f.1Sl'S pueden sup oner u n grun
es fu erzo. Por e jem p lo, lOS mu y habit ua l que se modifiquen las especificaciones q ue
h abía on un princi pi o, po r 10 qu (' habría que volver a 1<1 p rimera fase. Otra d os von taja
es qu e SI;' tarda mucho tiempo en tener listo 1,1 softwa re, por 10 qut' es más d ifícil la 1'1' .1-
limontacion usu ario-d esa rrollad or. Es l'fiC,l/ cuan do los requis itos está n m uy definid os
d esde el p rincipi o y no ca mb ia n , Estos de fec tos Y<l se co n ocían cua ndo el ml'!lll.i,) st' d io
a con oce r :

[ believe in this conccpt. b u t th e irnplernen tation dcscribed abovc is ris ky and in vites
Iailure . M,m.lg ing t/l(' developmcnt o f la rge sottwerc 5y stellJS, Winston W. Rovrr-.

FI modelo en cascada ha suf rid o a lo largo del tiem po v arias rnodiñcaciones cada una
co n SllS propias pa rticul a ridad es.

Otro modelo es el espira l p rop uesto por B.ury BOI'h m di' tip o evolutivo q uc consta de
un a sa-ne de c iclos divididos en cua tro tarea s. Cuand o 51.' ha n cum p lido [os objetivos d e
un ciclo se paS<l ;J I siguiente. ver fi gura 142,

L1S ta T('>IS d e ca d a ciclo son:


• En la p rime ra fase de cada iteración se d eterm i nan los objetivos pa ra esa misma
iteración, se- proponen alterna tivas y SI.' de tec ta n las posib les restricciones.
• En el Jn á lisis de riesgos SI' d ecide si, para las alterna tivas elegid as, vale la f'I-'n a
seguir con e l provec to en ('S,l ite ración o abando na r lo defini tivamente.

338
Optim izacJo n d e4 código

• El desarrollo en las primeras iteraciones cons iste en un protonpado, meerres ~


en las últ imas íteracíones se desarrolla ra el sistem a completo con tod os ~ dEu-
Hes. Al fina l de esta fase se d eben hacer pruebas p1lfil com p robar que el sisb:>ma
cu m p le con los requisitos programados.
• A contin uac ión se hace un a ev a luación d el prod ucto obten ido en esa fase y con 1('1';
resul tados ob tenid os S<' planifica la síguíen te iteración .

F¡gura 14·2. Fases de un proyecto segun el rrooco en espirill

El modelo en l";p ir,ll tien e la venta ja de que el sistem a SI' pued e evaluar m uc ho antes
que con el modele en cascad a: al final de cad a iteración se tiene un a vcrstén del pro-
ducto; por lo ta nto ('S un modelo que responde mejor a n te va riaciones de l di se ño origi-
nal. Ad emás es te modelo in trod uce nuevos con ceptos, co m o la creació n de prototipos
y el a ná lisis de ril's),;oS.

Ha sta a hora SI' ha n visto d os de los modelos d e' ciclo de v ida d e un proyecto, es ta os
una planifiraciú n principalmente temporal. Ahora SI' abordar á el d iseno de l código,
q ue b ásica mente cons istirá en d ividir el p rob lema en partes y relacion arla s. En diseños
de cie rta complejidad el prof; rama se rá jerá rqu ico, las a lternat ivas so n: el métod o
Bottom -Up, e l método Top-Dow n y el mixto. En Bottom-Up se parte de los componl'n-
tes més pequeños y a partir de ellos se van creando los componentes co mplejos. El
método Iop-Down ps el co ntrarío a l anterior, SI' parte d el sistema completo y d esde ahí
se van creando componen tes cad a vez más espec íficos. En cu alq u ier caso tam bién exis-
len varias alterna tivas parJ crea r cada u no de los co m ponen tes ind ividuales del proY('C-
to: m áquinas d e estados, fl u jo de d atos, etc.

Un ejemplo de p rog ra ma que cum pla con estos req u isitos ('S el mos trado en la fi¡;urJ
14·3. En ..-ste p rogril ma ~l' caracteriza ran elemen tos ctcctróntcos 1'11 frecuencia, P.U'l d io
se usa ra u n genl' r,'dor d e se ña l y un osciloscopio. El p rogra rna consta d e d os módu los:
uno encargado del gene rador y ot ro de l osciloscopio. Ta m bién se puede ver su d iSl'ño
jer<Í rq uico, desde el VI prin cipal ha sta los de m ás ba jo n ivel, qUl' \'11 esto raso corres-

33 9
LabVIEW

ponden d los que env ían comandos a jos equipos. L'1'>tU," Vis se pod rán reutiliza r en los
du," módul os. A esta estructura se 11" podría añadir ol nlS Vis d e soporte que, pt' r cil'm-
plo, gua rdaran las med idas en un fichero, realiza rá n cá lcu los co n las señales obtenidas
\ 1 simularán la respuesta del nsciloscnpio con el fin d e depurar y hacer pru ebas d(' un a

fnrm.l más ráp ida y se ncilla.

Ventana
pmapel (GU1)

FltJu r<l ¡ 4·3 D~ór\ en comporl!"ntes oe un proye<to tIPO 'rombo'

Una n'J. que el código es co r rec to (sintaxis confo rme ) ha y qUl' verifica r y val idar el
c ód tgo. Vl'rif icar es comprobar que cu mp le con las espectñceoonce y validar l'1'> co m -
probar IlUI' el sish.>md cu mple su fu nción. Afg unas t éo uca s pdra ve rifica r so n; tIOS,,", .111.1-
lisis, d e mostracio nes, in.spt.'("cionl"S y sim u laciones.

En proyec tos d e ciert a envergadura se puede Crea r un protoco lo d e pruebas p.lr,l auto-
matizar las pruebas, este protocolo puede consistir en una serie de p m grdmas qUl'
¡';l'nl' rcn todas o un subconjunto de las entradas y com p rueben que las sa lidas del pro-
g ra ma pa r.l esas en trad as so n 1.1s esperadas. Tam bién se p uede incluir en el p m ¡.;r,l ma
pa rtes dI' códígo cuya ún ica finalid ad es servir de ey ud e a las pruebas, l'!>l' nxH¡.;n
p uede eliminarse en el producto fi na l. Este mecanismo puede im p lementa l"!ot.' f,Id lmcn-
te en L,lb VIEW usand o lols es tructu res de deshebilitact ón cond iciona l u otro-, Vis en
pn>ho:-; personalizados.

Co mo SI' ha dicho a ntes, la documentación ('S algo comú n vn tod as las fases del proYl'C-
lo: 1.1S especiñcaciones, e! diSt'l1l1, el cód igo, los 1L'Sls y el mantenimiento. Otra dIX'U-
men taciún q ue puede ser nt'l:l'S<lri,l es la que se entrega .11 usua rio y otro tipo dt' docu-
mentación co me rcial.

340
O ptlmlzac:lón del c:ód190

14.2 Estilo del código


A la hora de crear el cód igo de un programa en LabVIEW es conveniente seguir unas
rt'g:las y sobre tod o que sean consistentes du rante tod o el programa. Al hacerlo se con-
seguiré dotar a l prog rama de legibilid ad (el programa se ra más sencillo de en tender y
mantener), robu stez (ten drá menos fallos y será más fácil depurar ) y eficacia (necesita-
rá menos recursos para ejecutarse correcta mente].

14.2.1 Organización
Antes de la versió n 8.0 de LabVIEW, la gestión de los distintos ficheros asociados a un
proyecto sencllla rnen te no existía . Entonces la única forma d e organiza r todos los Vis,
controles, doc umentación, configu raciones y otros ficheros era tarea del programador,
éste debía ordena rlos en d irectorios dentro de s u ordenad or.

Con LabVIEW g.x se añade la ventana Proiect Explorer donde se pueden vincula r y
ordenar todos los ficheros que hagan falta, es u na herramienta mu y útil en medianos y
grandes proyectos que viene a complementar (no a s ustitui r) la forma de organizar los
ficheros por di rectorios.

La organización de los ficheros de un proyecto estará íntimamente relacionada con su


a rquitectura. Por ejemplo, pa ra d programa de la figura 14-3 se pod ría tener un proyec-
to organizado como en la figu ra 14-4, d onde cada directorio d e la Iibreria mostrada
ag ru pa de forma jerárquica a los Vis que están interrelacionados.

l:- P rUl " " [ 'I,lo1c r "",,,to-,,,,," _ - IX

~~ ~ ~ ,o-- 'l~ . ~tM

I 'tl 6 li1 l ·.·l1iill x 1l ~ 1"' "


... I'rOjO<t:c.IdOl',,,. ,,,, t. _
¡;¡ 11 '
"" Q l1&ooo.. _ . ."""'"
.. a """"-"0<'0n
lit () I>-«roct.......... U,lb

...0 -
IiI Q
..
_ __

oo _ .......
."'
0
1
~ Io;het",

·i t- -
Ii;

, 1Il ,
t::I '
"""",,,...,m

-
....-...
""'" 1 '>fIOo'Of
"
L. GUI ..
f '\"
'" te _Sfio<h_
00<>00';"' _

L 'o C" """,,,,, ,,,,f


--------------- ~ "

Figura 14·4 ExpJorador de p royectos

Dentro de un proyecto se preferirá agrupar los Vis y co ntroles en librerías en ve z d e en


d irectorios, porque las librerías aportan más posibilidades, como por ejemplo, la de
hacer que los ficheros sean públicos o pr ivad os .

341
La bV IEW

14.2.2 Comentar el código


Una dl'l,l s COSi.1S m á s im porta ntes e n todos los [l·n~\I.ljI'S Ik p r og ram ación t"S comen ta r
adec ua da mente el c ód igo fuen te. SI' trata d e embeber vn el código in fo rmación qUl'
l'xplilJ lIl' co rno fu nciona el p rog r.1ma , l'l compilador igllllra d es tos co men ta rios.

En Lat> VIF,W se d ispone de Edi l TI'1(/ e n la paleta de lu-rra mien tas y Fn 't' L,h('/ en
l'nwr,lmm in).: > Strtlc tlln.~ > / ),'Cor .ltiOIlS, con d l.1S S(' p llt -cIen añad ir bloques d.' tl' \ to
.'11 el [)i,l~ r,l n1ol d e Bloques . Lo-, eh-rne n tos rn.t s S('l1sit>lt'S ,1 te ner co nwnta m e, ...' n las
e-tructu ras. •1Iguritmos, fun ciones importantes, c,l b ll'S c ua ndo s u p roced cnc¡... p ued e
ser contu..... (ind ica nd o mediantee] símbolo > el sen tid o) y en generalen cualqu ier
Cl )J i ~ll no evidente . Pa ra id en t ifica r y ag rupa r objetos se p ued en usa r el res to tll' lIbW-
11», del men ú Ut'COTil t itlllS .

l'n 1,1 fi gura 14-5 se observa un pro gril ma q ue u s a u n b uc le FOR pa ra g em ·r.1r una Sl'ñ,l l
alcatnria co mo in d ica el co men ta rio llue ha y sobre 1,1 es t ruc tu ra . La se ñal es fi ltrada y
st' obtiene s u espec t ro. a mbos bloq ues ba jo e l co men ta rio f'rOCl'S.ldo de /,1S(·ñ.11 . Si e l
m,himo de 1,1 '''.' ña l filtrada l'S s upenora un limilt', 1,1 sl'ñol l origina l (cu yo cable tam-
blt;11 t'SU comen tad o ,1I11l'S ok ent rar en 1'1 CAS E) st' d i\'id ir,l r or 0'5t' m áxinm.

I
ID . ~ ~ ._-

~J~

Frgu r<l I q·5 ()jd(jr<IrTkl tk' a oooes O!.' un VIcon (()I1Jt'(l I.trlO~

Sobre l.lo; Iu nciones v VIs st' p Ul..!t· mostra r su L lbt'l. a u nq ue a veces su ta ma ño PUl"!O'
h,\("t'rl,ls in có m od as . En c ua lquier ca so la m ejor forma d e d e....-u m en ta r un V I es ,1 Iro1\'¡>S
de 1.1 venta na d e ayu da con tcx tua l. La descripci ón d e los Vis d ebe d a r in formación
....lhn · su funci ón, sus en tradas y su s salidas. Ad em ás so' p uede usar el historia l p.u.l
d escri bir los ca mb ios qu e se va ya n h aciendo co n el tiempo.

Cuando ..., l'S t.; p rog rama nd o una colección d e fu nciones quo' m ás la rd e So' dist ribuiré,
tamblén S(' p uede añadir u n cntace ,1 un fiche ro de a yud a t'n 1.1 venta na d e .1Yllti.l con-
tt'x hl.11 p.Ha 'luo' mu estre u na ex plicación m ás l' xll'n S.l del y !.

En m ucho», Vis, SOV1"l' lod o los 'l Ul Osirven d e oit'm p l0, tam bi én seinserta documenta-
cnm 0'11 elt'anc! Fron ta l 'l Ut' indica có mo d ebe usa rse. por o,¡e m plo in tnlt1 ut""l' 1111 \ ,,,I¡lr
Optimización del código

en el control "En tra da " y presione el botón "Run ". También es recomendab le usar la des-
cripció n de con troles e ind icadores para q ue se m uestre en la ayu da contextua! una
explicaci ón de su función, ra ngos, valor por defecto, etc.

Tam poco hay que olvidar realizar comentarios cua nd o se util ice cód igo extorno (libre-
rias com par tid as o C IN) o scrípts.

14.2.3 Vis
Tam bién se debe ser consistente a l diseñar los VIs de un proyecto. A la ho ra de dibu jar
los ico nos sud", reservarse un rectángulo en la parte su pe rio r del icono de, má s o
menos, u n cua rto de La altura del VI pa ra escribir el nombre d e la librería a la q ue per-
tenece (pa ra modificar la fuente d e le tra en los iconos hacer doble clíc sobre la herra-
mienta de texto del men ú de la ventana ícon Editor) . El resto d el icono puede ser un
¡;ráfico q ue recuerda su función . Al dibujar el icono 00 debe o lvid arse el B&W, porque
aunque no se muestre e n e l prog ra ma si p uede ser Ot.'CL'S<l riOsi se imprime el código en
una impres o ra en blanco y negro. Un ejemplo de Vis con este estilo serían los DAQmx.

En el co nector del VI no se debe ol vidar marcar los te rminales como requeridos (obli-
gatorios). recomendados (no obl igatorios ) u opciona les (usados co n muy poca frecuen -
cia). C uando los Vis incluyen terminales de error, por convención, sue len sit ua rse en las
esq uinas inferiores del conector. Si tienen referencias o paths se suelen poncr en las
esq uinas superiores. Las e ntradas a la derecha y los indicadores a la izquierd a. Cua ndo
h'lYmuc hos cn ntroles o indicadores puede ser aconsejable uni r los q ue tengan una fun-
ciona lidad parecida en cJlI.~ ~rs.

También es recomendable q ue los con troles de los subVls tengan va lores po r defecto.
Para ind ica r el va lor por defecto, éste sud e escribirse al fina l d el nombre del control
entre paréntesis. Por ejemplo, ver el termi nal offset del VI String Subset. Si el control
tiene unidades, por ejemplo metros, también debe ind icarse.

14.2.4 Cableado
El cableado determina el flujo de datos, por lo que es un elemento vital en la pro~ra ­
mación en LabVIEW. El cab lead o se rá corto pero debe permínr que el código tenga una
claridad s uficien te. Para evitar cables de la rgo recorrido puede usarse la he rra mien ta
C/ean Up Wirede l m en ú con tcxtual del cable. Alinear los objetos puede ayuda r a hacer
e l cablead o más sencillo (en la barra de herramientas > Aligo Objects).

Al realizar el cablead o d ebe evitarse que haya estructuras o VIs q ue oculten parte del
cable porque pueden provoca r confusiones, d ificultar su seguimiento o la depu ración
d el programa. Esta regla se puede hacer extensible a todo demento d el Diagrama de
Bloques o dell'ancl Fronta l: no debe haber elementos qul' oc ulten a otros.

El cablead o debe gui ar el fl ujo de ejecución de izqu ierda a derecha, por lo qUl' en el
Diagrama de Bloques los controles se situarán en la izquierda y los indicadores a 1<1
derecha. En subVIs que no sean pa rte del interfa z del usuario también es aconsejable
seguir esta regl.l en elPanel Frnntal.

343
LabVlEW

El orden de ejec ución lo determina el cab leado, por In que debe ev itarse el uso de
estructu res SEQUENCE porque rompen el p aradigma d el flu jo de datos. C ua ndo sea
neo-sano usar Sf QU ENC E es prete nble FLAT SEQUENC E ya q ue m uestra todos sus
su bdiagra mas. La sigu ien te fra se es u na cita de Rande [ohnson:

131.' wa rned, sequl'nCl' structures a re a pct pt"{'Vl' of m ine " l would not bo the first pt' r-
son lo co m plaín should thcy u lñmatoly disappear fmm LabVIEW . L.l bVIEW Tecñ-
nical ResduTn ', Rand e [ohnson.

Como se ha comen tad o entes en es te mi smo ca pítu lo, los cab les que puedan da r l u ~ar
a confus ion es tam bién deben comenta rse da ndo una descripción de l dato qUE' ciTl"ul.l
por ellos.

14.3 Cont rol de có d Ig o


El control de código (} con trol de vers iones (SCe ptlr s us siglas en inglés] es un m ece-
nismo para gestionar un a in fo rmació n, desa rrollo o pro yecto a 111 la rgo del tiempo y,
potencialmente, por varias personas . Su pri nci pal a p lica ción es e l co nt rol del código
fuente d e proyectos d e software.

Ha y varios p rog ra mas que facilitan 101 tarea del control d e versiones : C jeer CaSC', CVS,
Odres, Microsoft Visual Sourceóate. MKS Source Inll'¡;rity, Pu shOK, I'ves Vcrsion
M'l ll<lgl'r, Seepínc Su rround SCM, Sub versión, etc. Estos program<ls serian los serv ido-
res qu e almacenarían los ficheros "lu"' co mpo nen el p roy ecto, gl'Stionan aCCl.'SC.JS p<ll'i1
leer. modificar, mover o borrar lo" elementos. p ro porcionan un historial de carnhio-,
p ud iend o R'Cupt' ra r el proyecto e n una d eterminada ft'Cha, cte.

Por otra parte tam bién habría u n stlftware cliente '1Ul' se con~'d.lri,l al servid or para
obtener in for mar-i on, ~ uilTdar y Tt'Cu pt'rar ficheros . Cas i tod os los servidores tam bién
incluyen clientes . otros cuentos son: hncv s, tkcvs. Tortoise, wincv s, de.

Todos los pmgrilm,l'; dl' con trol d e versiones usan una terminología parecida :
• Repositorio: luga r d o nd e se almacenan todas 1,lS versiones d e l proyecto. Los us ua-
rios tend rían una cop ia local del reposito rio, cuand o traba jan en el p royecto la
actualizan recuperando la última versión del servido r, modificanlos ficheros 1111'al-
men te y cuando acaban, g ua rd an en el repositorio los ficheros mod ificad os, cons-
truvendo así una nueva versi ón del proyecto.
• Oled: out. acción qUl' crea el directorio de trabajo local y cop ia los fi cheros del
repositorio a es te directorio, el p rogra mad o r trabaja r á sob re los fi cheros del dí rcc-
to ril! loca l.
• 0Jeck in (o l'flm m it): es el p n x"l'Stl de graba r 1(~ ca m b ios hechos desde el di recto-
rio de trabajo toca ta l rt:'pnsi larill.
• Updare (o SYlIC): sincroniza d directorio loca l ron Id última versi ón d el servidor.
Es una o peración complementaria a check. in.

344
O ptlmlzo1c:1ón del código

• Merge: cuando dos d esa rrolladores modifican el mis mo fiche ro y lo guardan en el


servidor podría d arse I;'! caso de u na inconsiste ncia de los d atos. El servidor tiene
dos técnicas pa ra e vitarlo: una es permitir sólo a un desa rrollador la escritu ra de
ficheros y bloquear a l resto (lock-modify-un/ock)¡ la o tra es que el propio software
p ued a mezclar los cambios de los dos desa rrolladores, lo que se conoce como
merge. Esto es vá lido sólo con fiche ros de texto, no funciona con ficheros bina rios
(como VIs).
• f)jff (o cha nge): muestra las modífícacíones qu e se hacen de u na versión respecto
a otra.

14.3.1 Ejemplo en LabVIEW


En este ejemplo se supondrá que el servidor del SCC está instalado, con figurad o y tiene
el proyecto de es te ejemplo en su repositorio.

LabVIEW recon oce va rios progra mas clientes SCc. si a lguno de los instalados es sopor-
tad o se detectará y automáticamente aparecerá en Tools > Options > Sourct' Control. El
siguiente paso sera elegir el proyecto de l repositorio. este paso dependerá del software
elegid o.

- , -,
.--"
"......,-,
-_--E"""
VI
VI
CO'f.....""
_ _

-_._
-_. < ----
......_.•.-od"'.
VI ' ..... "''',..

_..._.,.-- . ..

Figura 14..(, OpcKJ(Je5 de seo -ce Co ntr~

La gestión de ficheros puede hacerse directa mente d esde e l softwa re cliente o también
se puede integrar e l d iente en LabVIEW, en este caso se po d ría hacer desde el explora -
dor de proyectos o de forma programada a través d e los Vis del monu Conncch'\'i ty >

345
LabVIEW

Source Contn ll. Ya sea enn el ex plo rad or o d e forma progra mad a, LabVIEW trabajará
con e l programa y e l p r oyecto q ue tiene configu rados.

E! explo rador m uestra una barra de botones con 1,1S opciones mas titiles: CJwck Out,
Undo Chl'Ck Out, Cht'('k tn y Al'" ro SOUIU' Control. Tam bién St.' puede acceder a estas
opciones a t ra vés del menu con textual d e cad a fichero ti en T,ltlb> > Sourt:'e Controí.

Para añad ir nu evos ftcheros al repoaito rio habrfa 'lUl' ell'Hir Atid tOSl-IUIU' Contl1'1, d es -
pués de hacerlo apa receré u na peq ue ña marca con form.l de cuad rad o en el icono dl'l
fichero.

Para trabajar con un fichen) d t' for ma loca l habría que chequearlo (Check Out), a l hacer-
In .1p,ul'Cl' r.i u na marca mj.l sobre la a nterior y e l fichero podrá ser mod ificado. Un.l V('7.
'lue se termine de trabaja r co n este fich ero se envia rá el u los ficheros modificad os a l
servidor (Check /n ), l'Sto se pued e ver en la figura 14-7.

14.4 MejOrar el Rendimiento


14.4.1 Herramientas
Co mo S(' ha dich o en ca pítulos anteriores, un VI ~ com pn ne de Pa n el Frontal,
Diagrama d e Bloq ues, cód igo com p ilad o y espacio d e d atos.

C uand o un progra m.l se ejecuta, d Diagra ma d e Bloques y el Panel Frontal se ca rgan


cua nd o son ncc esa nos. I'or ejem plo un Pa nel Fron tal 'lUt' siempre se ca rga ra l'S el d el
VI principal, ta mbién S(' ca r¡;;.u á cua ndo se usan 01)1.100; de pmplod ad es q ue afecten ,1
term inales .

!',u a ver e l ta maño de cada u na d e es tas pa rles ha y qUl' ac udira Filt' > V1 Pr0J't'rt it~ >
M('mory Usagt'. Asimismo hay di sponibl es otras herramientas en el men ú Ttltl/s >
rrottte pa ra obten er mas infu rm aclón sobre el tamaño y rendimiento de los p rogra m,'s
de 1.., bVIEW.

346
Optimización del código

• Performance end Memory: muestra informac ión sobre el tiempo que tardan en eje-
cuta rse los Vis ca rgados e n memoria y el tamaño de da tos que usan. Pa ra una
info rmación má s detallada d e cada campo puede sit uarse el ratón sobre cualquier
ele men to y abrir la ventana de ayuda contextua]. Para usarlo hay que presiona r el
botón Start, ejecu tar los VIs a medir y finalmente hacer ctíc en Stop.
• Show Buffer AlJocations: m uestra en el Diagrama d e Bloques, mediante u n pun to
negro en la parte derecha de los termina les o funciones, los buffers creados por
LabVIEW.
• VI M etrícs: proporciona cstad rsñcas sobre e l contenid o de los Vis, co mo el núme-
ro d e su bVls, número de es tru cturas, cont roles, indicadores, variables , profund i-
da d d e a nid amiento, etc.

14.4.2 Buffers
Los buffers so n pun tos d el programa dond e L,bVIEW reserva u n espacio d e memoria
para alm acenar da tos. LabVIEW inte n ta rá reaprovecha r lo má ximo posible los buffers
ya cread os. Co mo regla general una p rogram aclón que respete e l fl ujo d e d atos podrá
aprovechar me jor el esp acio d e memoria .
• Algunas situaciones en las que se genera un buffer son;
• En en tradas de datos (con tro les y constan tes).
• Cuand o se cambia el tipo de da tos .
• En la u tilizació n de va riables.
• Cuando la en trad a y la sa lida no son del mismo tama ño, especia lmente en funcio-
nes que manejan .lrray s o stríng.

En la figura 14-8 se p ueden ver los bu ffers creados po r LabVIEW en el con tro l de entra -
da y en la cons tan te . En el nod o suma se crea o tro b uffe r pa ra d esa copla r la en trad a
[q ue el usuario podría modificar) d el resto del cód igo. L, sa lid a d el nodo suma y las
d os funciones Increment reutilizan el buffer creado an tes a la en trad a de la suma.
Pinalm on te en la salida de la conversión del tipo de datos se crea otro buffer cu yos
da tos son los mostrados por el in d icad or.

Figura 14-8. VI donde se muestran lOS Duffers que crea LatNIEW

Las conversiones autom áticas de datos n um éricos (ma rcado con un coercion dot) tam-
bien p ueden afecta r negativamente la reutilización de bu ffers, por lo que son <lIgo a evi-
tar. En genera l SI' utilizarán tipos de datos consiste ntes para facilitar la reutilización d e
memo ria. La creación d e nu evos buffers ser é especialmen te d elicada cuando se trate
con a rrays ya que se puede genera r una gra n can tidad d e datos.

347
ubVlEW

Lab VIEW normalmen te 11<. ' libera el espacio d e mt'm n ria q u t> ocupa n los b utf.'f"; u na
vez uSold us, d mern .... q ue 1."1 V I sea cerrado y d esca rgado deIa memoria . Para fo r/..il r lol
liberación dl' mem oria de un s u bV I St· puede u sa r la fu ndón N.'tluo>st Dt·d/lO.'-oltipn del
mcn u l 'n wram min~ > Applicdtion Con trol.

14.4.3 Técnicas para mejorar el rendimiento


Para m.;nrar e l rendimien tode un V I ha y q ue seguir dns n'~I ,l 'i principal.'!i: n'!if't·I.lr (,1
flujo d.· datos. y ma ..d m i/ .u 1,1 concu rrencia . Ad,·m.h !it.' ..Id ...• tener sicrnpn- en 1'11"1'11.·
d os ,lspt..-to, im porta ntes : d código y los d a tos.

En t-sla sec ci ón sto es tudia ran .11¡;?;u n us casos m ás o m.·nns h.lb itua l.-s de prog ra mas ptloCO
d icknlt"S, formas d .' npt im i/.lrlns y stOd a rá n algunas p.lu l.IS gcnera k-s p ,ua cnn~'~u i r
p m~r.l m ,l s t·ficil'Tl h-s. Todo s los programas se han pmh .l d o .·n el m is m o ONl'11<1d o r bajo
las miSnMS condkionc-, y emple.md u LabVIEW 1'1 ,20.

14.4.3.' CálCulos nJtt6e5


El p rune r pu n to a n-visa r p .U ,l o p tim iza r 1."1código es e vi ta r calcu lo'!> in titil.'S. En lol fi~u -
rol 14-9 • puede n ver d t.... pn ");r.lm.ls , en e l d.' la iUltlit' nb ..... realiza un.' suma d.' d os
esca la n ,ln t.-s do en trar en u n buc le y en el d e la d('1'{'("h a d t'Tltl'll d.·I bucle.

, .
m
,., .,
Es ev id ente q ut" .'1 cú d i);u (.l) tJ rd.uá menos e n l'jI.'<"u ta .....-. En cua nd o a l tamaño dl'
da tos, 1,1 difl'Tt·nci.l no t -S si¡;n ifit"a livil .

Tabb 1 • Resuttado d. . . e;tecuetón del c:ódlgo "- .. ligur. 149


_ __ -"
1- 1 Ibl _
TkmpO de ejKucl6n 1~1 3 OS3 5570
'-'m.JIt1o de datos Ibytr-$I 1392 1381

14.4.3.2 No relnvmtar la ~
A l h iln d e l punto a n tor íor, ..ue le sN frecuente e n p n>¡.;ram ,ld nn'!i ptlCO t·l\pt·rimt·n t.l-
d os. el m ',H códi¡;;n p.l ra n....rlvr-r problemas c ua nd o n.. t'" necesa rio pnrq ut' La bVI F.W
ya dis pone de o tros mt'<"<l n is m ll!i alternati vos m á s adec ua d os pol ra resolver ......... pro-
to lt'ma...

348
O ptImización de l código

Un ejemplo podría ser rea lizar median te código una función para limita r la entrada de
datos de un con tro l numérico cuand o esto mismo se puede rea lizar d e una forma sen-
cilla med iante las propiedad es del control. Otro ejemplo es el mos trad o e n la figura 14-
10 donde se q uiere mostrar u n mensaje du rante las iteraciones 2, 3, 4 Y5 del bucle. En
(a) se comprueba si el índice del bucle es mayor o igual a 2 y menor o igual a 5, si es as ¡
muestra e l mensaje. En (b) se han sustituido las funciones boolea nas y d e comparación
por ln &mge And Coerce (en el men ú desplegable del VI se ha hecho que incluya los
dos límites] para comproba r si el índ ice está d entro d el rango. En (c) se cablea el índ i-
ce a l selector d el C ASE Yen su menú se escribe el rango 2..5.

(.( 01 (O

Figura 14· 10. Ejemplo que muestra meruaes en diferentes neraoones

Pa ra comprobar el rcndtmiento de estas tres alternativas se ha modificado ligeramente


el código: Onl' Button Dia /og se ha elim ina do, e l bucle WH ILE S(' ha sustituido por un
FOR que se repite 10 veces y co mo el programa se ejecutaba demasia do rápid o pa ra
sacar conclusiones en la máqui na en que se ha probado, se ha in troducido tod o el cód i-
goen un segundo FüR que se repite 100 VL"O.'S. El resu ltado muestra co mo la opción (e)
es la más óptima .

Tabla 2 · Resultado de la ejecudón de los códigos de la "gur. 14·10


TIempo de ejecución llUl .~ 4 23 .JL .
Tilmaño de datos ¡bytes] 1.660 1.620 1.532

li.4.3.3 Tamaño de los oetos


Para co mproba r el dedo de u na adecuada elección del tipo d e datos se creará un array
de dos dimensiones con u n millón d e elementos, co mo se observa en la figura 14-11. Se
mod ificará el tipo d e da tos y se comp robará el tamaño que ocupan los da tos e n el VI.

m
m
F'9lJ1'J 14-1 ¡ Ej emplo paca ver el raowc oe Jos enes como vana en junoón del r ~ 1O de daros

349
LAbVIEW

St> han usado dat os de tam año Hb us . 16. 32, f>4 Y 1'10 [n úmeros flotantes ex tendidos en
Windows ). El tama ño en kB 5(' p uede Vl'T en la ¡;rMka d ela fi ~ura 14-12.

! """
s """ - 91l, t U
• """ .~
,•• eun
.;
..,,;.
•• sen

,
•• «m
.....8 2480
•• '''''e
e ee "n
" '" ~

1_00 d1t1 ....... (bit..

FlfJUfa 14· ¡ 2. E\.jJ<K 1O ele caos rreue d (dn1<lOo r1l:' caros

Como t'S It'l~ kll, un m..nor 1.1n¡,¡iio del tipo d.' ,jillt~
.1p TO\' l'ChM'i mejor elespacio d.'
mcmona, po r lo que !>l' riÍ p refer rhh-, pt'ro siempretemendo p resen te 1,1 o:on );isl,·nciJ. d ..1
tipo de d .l l'~ p ,lr,1 así evi ta r tT.ln sforrn.1ciones d e tipllS (V t'T coeroon dtl'.-;). t"StOl'S e-pe-
cialmen tc " rilkn si hay involuc rados .Jrr.1Ys de g r.1n tolffi.Hl tl.

14.4.3.4 Datos simples o complejos


Mucha s tuncíone, d e LabVIEW stln polim órficas y permiten traba jar ron v anos tipos
de dato como po r t'jem p lo con números escalares , ,ITT,'.'"<; Y dU.<;tl·~ dt' \ '.11011'" numé-
rico.... 1: 1.1 CMactertstica p ued e simphfica r el ctÍoo.:h gn d el pm¡;rama, p"'m si ....' Irabaj.l con
es tructu ras .tt' datos d ema...i,u io r om pl" j,l'" se O:OTn' " 1rit...¡;o que par.1 mod i fic.u IIn dat o
en concreto d en tro d .' tod a Id estruct u ra se creen COp i,IS innecesa rias d el resto d e- datos.

Por ejem plo, r-n la fig ura 14- 1.1 (,l) St' tu-nen los d ,l!< lS "11 u n ' lrra)' de cill.stl'r.;, cada un o
o:n mp Ilt'...lo por dos .Jrrays n u mern-os y un s tring U c¡"¡,j i ~o modtñca el ",'¡:;und<l ('1('-
monto (co n valor 3 en la fi¡;ura ) .1t'1st'¡;u nd n ,J rr.! ~· mostrado en la fi ~ur,l y ..... .1si¡:; n.l
e l valo r 2. bl., ( údi¡;o n.·t:t's it.1 2.02M bytes. El cóJ. igtl <1.' 1.1 figu r<t 1-1- 13 (b ) n',llil.d 1,1
m i- ma o pcractón. pero en l ll~ar lI(' t':'iI es tru ctura tit' J..ltos se han usado d ns .lITa.\'''

[J

,.,
"'
Figura 14- 13 1.1) ü.nos compleJO~ 111) D..t l<l ~ wnples

350
O ptimización del c;ódlgo

n um éricos d e d os dimensiones y un drray d e s trings d e una d imensión. Necesita 1.n15


bytes de datos. La diferencia de ta maño se debe a los buffers creados a la sa lida del
nod o tnacx Array y de la entrada de Repteco Array Subsetdel código (a).

14.4.3.5 R~'mensIonado de arrays


Una d iferencia de LabVIEW respecto a l lengua je e I..'S el ma nejo d e los arrays. En e hay
que ind icar el tamaño en la declaración para que se rese rve el espacio mientras que en
LabVIEW se pued e ca mbia r d iná micamente. Esto es útil porque evita tener que recu-
rrir a las func iones ma l l oc y f r e e del e, evitando overflow, e tc. Pero también tiene
sus inconvenien tes. el principal es que afecta a l ren d imiento. Co mo reg la genera l,
donde sea posible, se evitará redimensionar los arrays y en su luga r se usará la indexa-
ción o la función lnitialire Array.

En el cód igo de la figura 14-14 se muestra n tres ejemplos pa ra genera r un al'T,1Y de ente-
ros de 32 bits con el valo r inicial 1. En (a) se genera con Auta índexíng, en (b) se usa
Initíelizc Army y en (e) se construye media nte Butld A IT.1y.

i eccooo N

"""""" IU¡;;¡¡¡ •
[j]
~
(.) (o)

F¡gura 14- 14 GerJefación de un arreglO de escases

Los resultad os de la ejecución 5On:

Tabla 3 - Resultados de la eJec:UC:lón de la figura '4-'4


1-' lb) le)
TIempo de eJec:udón Ipsl _ 331S _ _ , !J..0~ I _.2 S0 _ _

Tama ño de doltoS lbytesl 1.364 1.320 8.oo1 .'l40 lmáx.)

.. Como era de esperar, el buffer creado por los Shift Register en e l caso (e) gene ra una
.-g ran penalización en cua nto a espad o y tiempo porque ocupa una gran can tidad d e
memoria al tener que a lmacenar el arrayen cad a iteración, adem ás hay q ue tener en
cuenta el tiempo in vertid o en localiza r y reservar más espado en cad a iteración. los
casos (a ) y (b] est án pa rejos en cua nto a la utilización de la memoria porque los d os p ue-
d en local iza r el espado d e memoria de u na Vl'Z (en los bucles WHILE eutoindexing no
es tan diciente como en lo~ FOR porque no puede d etermi na r a priori el tamaño del
arfay); en velocidad es mejor (b) po rque evita la sobrecarga que conllevan los b ucles.

Se pod ría pensar q ue lnitislire A rr.1Y tiene la limitación de q ue todos los da tos que con-
tiene el array deben tene r el m ismo valo r, es cierto, pcro si después se utiliza un bucle

351
LabVlEW

con una función pa ra reern piazar elementos StO tiene Id mi sma potencia ll ue con las
otra s alternativ as y s ig ue siend o m uy eficien te.

1......3.6 Cuellos (k botdla


En los ln~ t'j..mplos ontenorcs no M' han almacenado los resultad os ni mostrad o en el
Pan el Fron ta l, és ta es una ta rea q ue cons ume rl'CUf'S( )S, os pecialmento si St' tra ta de
gra ndes d atos (corno array.~·) por lo tanto también es un ca nd id a to a opnmizarso .

En el siguil'nll' eje mplo, figura 14-1 5, se muestra n d os cód igos cUY.l func ión ..s generar
y mostra r m il núm..ros elea tortos en uno! g ráfiCil. En (,1) el indicador de 1.1 gr,lfica se
actualiza cada cinco nú meros, mi .. ntras que en (b ) St' actualiza cad a vez qm' SI.' gene ra
un nuevo numero.

rooo

m
,., o,
F~U(il 14- 15 EJl'mplo5 fMJd oerectar (lJ!'IIo5 de ootena

Después de ejec utarse varías V (·.......' S estos d os programa s sobre (>1 mis mo ordenador, el
prome...Ho d t, n~u ltados es:

-~- _._~-
,., 'b'
Tll'mpo de c./f'ClJcl6n 1115) 384 555
T,,lflk!r'lo Ól' da to s (tJy! e51 19553 19 r 33

En cu an to a memo ria los d os p ro¡;r.lmas est án ig u aloldos, la peq ue ña difl'n'ncia q ue se


<lpTl'Ci.l.l fa vor de (b) es d ebida d 1,1 s alid a indexada del segundo bucle fOR d .. (01). Sin
embarp;o la ma yor diferencia es respecto ai rie mpo de ejecución. d ond e (.l) l.ud.l mucho
menos qu(' (b] po r realiz..u ochocienta s actualizaciones lid gráfico rnenos .

Como l'\'gla general se ev ita rá mostrar en el Pa nel Fron ta l Indica dores de tipo ,uray y
en el caso de p;r.Hicas se deben actualizar sólo r ua nd o sea p reciso.

Si ha y l'.lrios indicadores qUl' r u-c-esíten ac tualizarse en p n lgrama!> rnultihilos ta m b j én


p ued ...• mejorarseel rendlmtemo es perando a tener los tod os los d atos pol rd .1.... tualiza r-
los a 1.1 \'l'" en lug<l r de actualizarlos en cu an to lleguen )( -.s d atos . Eslo se cons ig ul' des -
plegan do el men ú contextua! d e los Indicadores y d igit' ndo Ad l'ann 'li > -":~'IICnmt lu;<;
Displav. l'o r ejemplo, dos h ilos id énticos al código de figura 14-1 5 (b} en el mismo VI

352
Optimización del código

tardaría n d iez veces menos en ejecutarse sincroniza ndo las actuali zaciones que sin
hace rlo.

Otra opción para optimizar la s grá fica s es evita r el autoescaledo. Cuando ha ya que rea-
lizar vari as modificaciones sobre un ind icador d e una gráfica p uede ser interesante h in-
q Ul;'ar 1;'1 aspecto antes de empezar, usar los nodos de propiedad para efectua r los ca rn-
bios y cuando ya estén todos los ca mbios hechos desbloquear el aspecto. El bloqueo y
desbloqueo puede realizarse con un a propiedad d e Generic > CObject > l'am'/Ilamada
Detor Penet Updetes.

Además d e l dibujo de gráfica s, también se debe p resta r a tención a funci ones que tar-
d en m ucho tiempo en ejecutarse, por ejemplo, las que realizan tarea s de 110, especial-
mente si SI;' sitúan dentro d e bucles . O tras funciones contie nen terminales que permiten
mejorar su rendimiento, por cicmplo el terminal o(f<;et de muchas fu nciones pa ra
ma nejar strirlgs, como muestra el ejemplo d e la fi gura 14-16.

El eód. i~o reempla za toda s la s le tr as a por e en un s tring. En (a l se hace let ra por


letra en cad a iteración d el bucle. En (b ) se usa el terminal o ffset pa ra empezar a buscar
a partir d e la última co incidencia encontrada. por lo que consigue mejorar el rendi-
mien to respecto (a ). Finalmente, en (el SI;' usa el terminal reple ce a/J? para sustitu ir
todas las letras de una vez.

......
- '"'"
,..-- ...
_ ~_
_.
-
-. _......
""-"' ,...
._..... . ...... •

""'
~_ .. · --i>ortt> v_

m
w .rl
u
' 1'>. ..
"

FI(ju ra 14· 16. UtlllZilClÓIl del terminal enser para IT\('jOIar el renoimerao

Tabla 5 . Resultado de la ejecución de los VI de la figura 14·16


. ,.., lb} '<
0::,' --_
TIempo de eje<:udón 1¡J.5! 5
Tamaño de datos lbytes! "
2,427 2496

353
LabVlEW

14.4.3.7 Variabeyp'~

Para transferir datos se pn'fl'rirá por este orden: cables, ,o;hi tf n 'xisters y variahles . Los
nodo!' d e propiedad con el atributo Va/uc raramen te Sto' deben utiliza r, a lo la rgo de es te
hbru sólo Sto' han usado d os vec es : en el capítulo de programación orientada ,1 obil'lllS y
con XContm!:; y siempre a trav és de referencias a controles en otros Vis.

A veces es ind ispensable usa r variables , por ejemplo !<I' usaran variables cuando se
quiere asigna r un va lor de forma programada a un control, pero en genera l e l uso de
va riables, tan to locales co mo ~ luba lt"S, debe evnorse cn 1.1 medida de lo posible, ya que
nlmpt.'n 1<1 estructu ra de fl ujo de datos .

1os nod os de propiedad de co ntroles usan el Panel Fllmtal para trabajar, por In qm' pro-
vocan que éste se cargue en memoria s i no lo está ya, as f que su uso SI.' debe (' víl:a r en
subVls.

14.4.3.8 SLtlV1s
La s llamadas a subVls no pcnnltzan e l rendimiento tanto co mo pud iera pan'Ct'r, de
hecho un subVI p uede reutiliza r huffers del VI "padre" y si no necesi tan cargar elPanel
Frontal pu eden incluso ahorrar memoria. Por otra pa rte tit,nt'n o tras muchas ven tajas,
como la reutilizaci ón del eódiJl;o, portabilidad, modularidad, legibilid ad, e le. En con -
clusión, l'!'; mu y aconsejable utilizarlos.

Aunque la sobrecarga que su pt>ne la llamada a u n subVI es mínima, puede ser un fac-
tor a tene r en cuen ta si el subVI está en el interior de un bucle y se llama va rias veces.
En una situaci ón como esta podría considera rse pdSdr el bucle desde e l VI "pad re" al
s ubVI pilra reduci r el número de lla madas.

También se pueden ganar algUJl('IS m icrosegundos y elgunos bytes extra des habditan-
do 1,1 depuración en el vl en Filt' > VI Properlit'S > E)«'cution > Allow dt·bu~inn.

14.5 Ejercicios
l . En IIIS prog ra mas de 1,1 figu ra 14-17 se han ma rcad o los buñers produ cid os por esca -
lares y .uraX1i. ¿ Cuál l'Stá más optimizado e n ru..m to a uso d e memoria y por qu é?
¿Y en cuanto tiem po de t;l'Cución? Téngase en cuen te qut' ('1 índice del b ucle FOR es
un entero de 32 bits.

(.)
FqJld 14-1 7. PtO/:llt'm.3 propuesto I

2. Medtr la mejora en cuen to a tiempo qUl' se produce al usar shift register enlugar d e
variables locales y nodos d l' propiedad .
Optlm lza c:lón d el 'Odlgo

Fqld 14 ·18_ PI'oI:lIMla pIOJJUe'Sl:o 1

J . Construir una señal aleatoria d e IO.(XX} elemen tos con valores enrre O y I usand o
In itidJize AITdY y RepLue AITd'y Sut>set

14.6 Bibliografía
Barry W. Boehm, A sp irdl m oc1d ()( SCJ/twdre de~'elopment dnd t'1lh.lnC"t'tnt.'nt, AC M
Si~Sl.,ft scírwa re t'1\~inl't.·rin~ notes, 1lffl6.

Dan Hedges, Optimizinx VI Per{¡ ,rmdn('t·, N atlona l lnstruments, 2002 .

Prcde nck P. Broo ks jr., The Mythie.ll M,m -Month (A n n ivers.lr)' Editiorú, Addison-
Wt'SIt.'Y, 1995.
Karl Foge l, Opton So urce Devt'/opment W ith C VS, 3 edición , Pa raglyph Press, 2003.

N ASA, N A SA System Engmeering H ,lndbook, 1995.

Na liona l fnstru mcn ts, AN 168: l..abV1EW Pertormence and Mt'mol}' Management
2004.

Na liona l lns truments, Bridge V1 fW an d l..abV1EW G Programmíng Reterence


M.m u.d, 1998.

Na Hunal Jnstruments, BridgeVIfW .lOO l..abV1EW Professíondl G lÑn '/opt'r.; TOfll.~


Reit'renct" Manual, 1m .

Ne ñonal Ins tru ments, LabVIEW 8a.<óH:s II Cocrse ManuaL 20CXl

Na nonal Instruments, LabVIEW lA'n'/flpml'1lt C uideJines, 2003.

,....
Rande johnson, Rufl 'S h) Wire By, Lab VIEW Technical Resou rce Vo lume 7, N u mber 2,

Rick Bnt cr et alt., L1bVlEW Adv.lnCt'd Progre mm ing Todmi qoes. eRe Press LLC,
2001.

Steve Rogr-rs, ínsi áe L1bVfEW, N ationa l Instrumen ts, 1999.

Winston W. Royce. Mdnaging tht' dt'vd ¡'pmen t a( Jar¡;e S(l(fwan' .~ys tt'ms, IEEE WES-
CO N, 1970.

355
Capítulo 15

Otras plataformas
15.1 PDA
El mód ulo rO A de labVIEW permite crear aplicaciones para w mdows Mobile,
Windo ws C E y PalmOS. Antes de usarlo es necesario tener otros p rogramas que depen-
do ran d el d ispositivo fi nal. estos programas pueden ser software d e desarro llo, comp i-
lad ores, herramien tas de smcromzact ón u otros, para obtener má s info rm aci ón al res-
pecio se puede consultar el manual de] mód ulo. Aquí se s upo nd rá que el so ftware ya
esta instala do, tanto en e] pe como en la r OA.

Para crear un programa para POA se p uede partir de un asisten te al q ue se accede


des de la ventana Getting Star ftxJ de La bVIEW o d e u n s im ple proyecto. En el caso de
e m pelar desde u n OUt' VO proyecto se d ebe a ñadir un n ue vo Tilr¡{e t o pla ta fo rma d es ti-
no, en ese caso la n ueva pla ta forma ap arecerá "a l mismo niv el" q ue My Computor.
Sobre esa n ue va plata forma se podrán crear n uev os VIs q ue, en la esquina inferio r
izquierda, mostrarán un rectángulo bla nco con la platafo rma sobre la qu!' se ejec utaría .
" _._-
" P"'I"'I [. pl",", ¡1"hU" d Pro) . . _ ;' ~ ·X
flo ~ Y!o'" ~ gporote ' looll . - ~

¡-I:j <1 iifX l!i tt\' x---';:<¡U ti


.. :w
lit ti My ~.,

I SIL I ==~
~ POQ<fT Pe 2003 De"iCI
'l ~ ""","00 01"
, "it, llYI:l 5<>0ct0<aIJOO>

Figu ra ! 5-1 . ?rojee! Expk:lrer con un nuevo rarper: sooer PC

Cuandn se a bre un VI destinado a una pla ta forma d istinta al re, las paletas d e cen tro-
les y d e fun ciones ca mbia n, mostrando n uevas funciones disponibles para estos dispo-
sitivos y ocultando otra s. Por ejemplo, en la figura 15-2 pued e V('TSC;' el menú [).It<l
Commun ic<1tiolJ > Protoco/s; en la parte izquierda de la imagen SI.' V I.' el ha bitual de la

357
LabVlEW

plata forma 1'C en wtndows y en la de rec ha el de Pocket re, l'ste último no d ispone d el
men ú Sl'ri.J/ f"l'ro en ca mb io tiene ['h elfle y 5hort h-Ies.o¡,,¡ge Sl'rl'icl.'.

Flgur<l 15·] , Nllevo~ men(¡~ <JI el e<ll Vls pdJa PockCI Pe

'5.'.' Ejemplo: Escáner de dispositivos B/uetoot/1


15.1.1.1 &pI1eadón trórIca
Bluetooth es una especificación d e un siste ma d e comunícacíón ina lá mbrica que permi-
te transmi tir VOL y datos en tre d ifl'rt.'n tl'S disposñív os por rad iof recuencia.

Para crea r y t1locu ta r el progra ma, hlbVIEW necesitara que es t én instalados Act ive-
Sync. Microsoft e Mbt>ddl'li Visual e H y Micrnsuft eMbedd l'li visual Tools. Además
ta mbién se req uie re copia r a lgu nas librerías en la I' DA.

El p rog ra ma co nsistirá en una aplicación que muestre e l nomb re y d trecct ón de todos


ItlS disposttívos Bluetooth en el radio de alcance de la r OA.

' 5.1.1.2 Código


El primer r aSll es com pletar el asistente, el cual genera rá automahcamen te l os ficheros
lit'! p royecto. El código d e este programa simplemente hace uso dela fun ción 8/uetooth
LJis("(l n'r para b usca r los dispos itivo s Bluetooth cercanos a la r OA y los muestra en un a
lis l,l.

[jJ

358
Otras plataformas

15.1.1 .3 Resultados
En la fí gu r.l1 S-4 se puede ve r una ca p tu ra d e pantalla a la izq u ie rd a dell'aru-l f rontal
d el Vl en el pe y a la de recha el aspecto del prog rama tit'Cu tándOSt' sobre un dispositi-
vo Poc ket I'C.

Pa ra construir el ejecuta ble t.ltle fun ciona rá sobre la " DA se d ebe acudir .l ttuild
Spt'tific,l tion~ en la ventana del proyecto.

- - .. '
Flgu til 15·4 Resulr:ddo Cll"I ptogtilrTId

N ótese como el código d e es te p rograma no becc uso de 1.1S funciones y VIs es pec íficos,
para PDA, es to permite q ue 1'1 m ismo código pueda oíee u tarse tan to en la r OA corno
en elI'C. Si S(' h iciese uso d e elementos dependien tes de 1.1 pla taforma S(' pudrí,l h acer
uso de la est ructu ra dí' des habilltactón cond icio nal pa r.1 co m p ilar unas COS.1S u otras m
cad a di sposi tivo .

15.2 FPGA
Una FrCA (Pid d Progremmsbie G I' t' A rray ) es básica mente un co men to d t" bloques
lógicos w n fi¡l;urab les, bloq u es de en trada /sa lida configu rab les y u nos Tl'CUTSOS de
interconexión ta mbién configu rables. A di ferencia d e o tros elemen tos p rog ramables
como m icropr ocesad o res o OSI', en las FI'G As el código se programil direc ta mente en
el hardware, pudiendo és te adopta r casi cua lq uier arq uitectura. Las herra mien tas d e
sín tesis determinan la fo rma de cnn fiKu ra r tod os los elementos q ue com pone n la FPG A
pa ra q ut' el fun ciona mie nto !'l'.l d descrito po r d programado r. En la figu rol 15-5 puede
verso.' d e fo rma esq uern érica 1.1 a rq uitec tu ra d e uno Ff'GA d o nd e se mues tra n d t' co lor
gris oscuro los b loques d e en tra da /salida y d e co lo r m ás claro los bloques 1 t"l~ in)S.

359
ubVIEW

••••••••
• • "

•. ' ••
•• ••

•••••••• •
F9 1rd rs-s . E!oQIIfflld ce Id dfqull t"CIUfd de UI1d FF'GA

1..1bVIEW es especialmen te adecuado para d esc ribir el Iu ncíona mfe n to de una FI"GA
debid o al modelo d e e jecuci ón d e Flujo de d a tos q ue tiene ( dataflow) por ser altamen te
concurren te, p ud iend o consegu ir d e esta ma ne ra un para le lismo a nivel de h ard wa re.

El p rimer paso es crea r e l program<l q ue se ejecuta rá sobre la FPGA , l.lbVIEW convier-


tl' este program.l interna mente a VHD L, 10 o p ti miza, reduce y sin tetiza a tra vés d e 1.1
he rra mienta Xilirrc ISE Com piler. El siguiente paso tOS program.u la FPCA y ejecuta r 1,)
aplicaci ón. Para qU t' el usua rio p ued a in terac tu ar COn el p rogram a dola FPGA so pued o
dise ñar tambi én u na seg u nd a ap lic.ldón llamada "aplicación h(l~ t", tlue Si' ejecuta rá
sobre e! re y podr ñ leer y esc ribir valores d esde /hacía la FPGA.

Al i ~ll.ll qUl' altrabaja r con rDAs, en este ca so también debe comenza rse creand o un
nuevo !.I rg et sobre el proyecto (obsérvese que los IJrg l"t están a l mi smo nivelq ue d
icono My Computcr, arribos d escendiendo direc tamente del proyecto). Sobre e l t.lry.;l'f
podrá n crea rse nuevos recursos, corno en la figura 15-6, dond e SI' puede ve r q Ul.' t,l /.Ir-
Xt't l'S un Com p.lcll{lO (cun trolad ur 9004 ), el cu al d ispon e de u n chasis 9103 dond e St.'
ub ica 1.1 FPGA, en 1,1chas is hd Y cua tro s lots en los "lUt' !il' Insertan los m ód ulos dI' en tra-
das / s.llid.1S (9215, 92&3, ':14 11 Y ':1474).

1)(_ 1l' las propiedades d el dispos itivo SI.' podré elegir si el programa se transferirá y t'jt'"
CUI,l r¡1 sob re la F1'GA (1 se em u lará (en H 'GA TdfJ;WI Properti~ :> Genetel » Emu/.1tor).

15.2.1 Ejemplo: Luces del coche fantástico en CompaetRIO


15.2.1.1 Ellpltead6n teót1c:a
Cllm pact RIO es un sistema RIQ (Rl'I.:on fi¡; Ufa blt' Inp ut OUlput) qUl' inco rpora un p m -
ces ad o r con u n sistl'm a ope ra tivo de tiempo real para o peraciones dctermin ist ica s
[co mpa tible con Pentíum 200 M Hz), una FPGA (Xilin l( Virtex 2) y va rios mód u los d I'
I'ntr.lda / sa hd a .

Para es te programa SI' usa rá e l mód ulo d e salidas digita les NI ':1474, sobre el "lUt' se
l'SC ribirá una secuencia p ara encender y apaga r los led s q ue incorpore y crea r un efec -
to de despla zamie nto.

360
Otr.as p lautormas

lil fl,- Oje<l : P'Oye(tO."'POI


.' ,
¡:. !':

.. I

1
<
t.ti:
I'ty C(IIr(lI.ter
';:' -~
Buld
< ..
5pectuloan •
101' . . . 1I'yrn-R IO (192. 168.0 .5)
¡¡¡ • FPGA T. QOt (P.lOO::INS TR, ótlo-91 0:))
il o Dqt:olL.re~
Ii; O m ~7'
. . 000 (NI ~7~)
. . 001 (NI ~74)
. . 002 (ti! ~ 1. )
. . 003(N1 ~l')
.. coe (ti! ~14)
L- .." D05(N1 ~7' )
O()(,(NI ~14 )

!J
t . . 001(ti! ~14)
4O ..... ~d Oxl<

i
NI 92 l5 (SkII: 1)
NI 9263 (SkII: 2)
NI~ l l (SloI: 3)
• N1~l. (SkII: .)
. . Vl FPGA ....
:§ O&¡¡eo d : 1M

.- ~ Buld 5pecficabo:>s

... 'ii" O&peo doo ....


I i:. Ud 5pecfc;otIOnS

15.2.1 .2 Código
El código st.' d ivide en dos partes : el cód igo en la FPG A y t'1 cúd i¡;{l t 'TI 1'<:. La com u ni-
cación en tre a mbos es " trav é s de Ethernet usando el procesador del con tro lador
Co m pact Rlo.

El p royecto es el mosrrado en la figura 15-6. El cód igo 'J Ut' ejt't"ut,lTá la FPG A es Id figu-
ra 15-7, d ond e se pued e ver co mo p rimero inicializa un arr"y de ocho booleanos con
va lor FALSE y luego <1Sign a al primer elemento el va lor TRUE. En cad a ite ración d el
bucle WH ILE st.' modiñca r á d signo de la cons tan te n um érica y su va lo r será el que
determine el sen tido lit'! des plazamien to del array d enr e odel bucle FOR. El b ucle FOR
ejecuta ra un a itcract ón cada 200 ms , para esto usa rá 1;'1 rt'llli d., 1.\ FI'G A (40 MH r. ). en
cad a iteración de l FOR el .lrr'¡.l' d e boolea nos es Ttl t,1l1 0 en una u otra direc ción .\' So'
esc ribe en 1.l5 lí nt'.l~ d d mod ulo do sa lid as digital,..;.

36 1
LabVIEW

t B~ _ iiíi'
-
•,

- ..
• ,
~ --
O"

- •= ~,

--
L': E:i• "
L'::: ~,

m
m ¡¡¡..

I'n r su parte, el VI host mostrad o e n la figura 15-8 Sl' eiecuta rá en el re y S(' co mu nica-
rá con el programa d e la FrGA pa ra enviar y recibir datos, en este caso puede env ia r 1<1
seña l para detener la l'jecuciún d el programa y recibe el valor escrito en el módulo d e
s alid as.

I
[j] ~I - 111

15.2.1 .3 Resultldos
En 1,1 figura 15-9 puede verse u na parte del informe de la síntesis d el código anterior.
Esta tarea p uede realiza rse desde el explorador del proyecto presionando con el botón
derecho sobre el VI de la FPGA y e ligiend o Comp úe.

Cuand o el VI de la FI'GA está comp ilad o ya puedo ejecutarse el VI host, entonces el


prowama es descargado a la FPC A (o emulado, si el proyecto esta asl configu rado} y
ejecutad o .

362
Otras p lataformas

--
-- •

_.-
"'-01_""""" _
.... ,.. .. '"'' ... 1

.
_ o I ..... u.m

_"<i_W. "'"'
-.. .,.... " ,,,,,
..,,..oI n ""
,,. ,.. '" ...
" ,.,.,.

~ ·· l -
FlgUl"il 15-9 Compr\ilndO..

15.3 Bus PXI


I' X[ l'" e l acrónimo d~' ft~l .,Xt. ,'b ;"'b tor fnstr utll<'n tM io n, Sl' Ir,lt.l d e un bus de bosti-
dor basa do e n Compactl'C t, l1Ul' ,1 su vez es una ad aptar u'm J ~' l'C l (Periph<'r,,1 Com -
1'00l<'llt In ft'rt'Olln.'l·t) r.ua aplicaciones induv trt ales. I'or l'xtt'llsiú n t a mbil' n St' llam..
I'X I .l un sistema in form ático bas ad o i-n d icho bus .

I'XI su rge como fi'!; PUl'StJ .1 1.\ 1ll'(.·l.'Sid dd po r parte cll' 101 ind ust ria d e un a arquitectu ra
d .' co m putad ores orientada ,1 1.1 instrumentación , robu sta . modular. estándar y de .1110
rendimien to. Las aplicacjone-, lipicas de PXI so n loo; b.l nl'oo; .1U t ' \ln .'i t icl~ d e p rucba-,
(ATE) in"lru ml'n lt\<; mod ul.lf\'S (l)<;Cill)',("op iO'i, m ultirm-r ros , etc.), con trol paril p rotots-
P.lll· r ápido y validaci ón d .· sis temas (Re !' y H IL.), sistl'm ,l" d e visión a rti ncial.; E....u-
bus Sl' des ar rolló en 19'17 po r un consorc¡o d e e mp resas, entre 1.\,< q Ul' se e ncuentra
Nadonaf Instru meu rs. En 2(J()~ stOcroe ['Xl Expn...s p.H,1 in lt'¡; r,u ,,1 nu evo Pel Exp n 'Ss
en l'1 estandar I'X I, a p ortand o m.tyor an cho de ba nd.i, po r In qtll' sus a plic a cion,,,, son
I" s ro mumcacíones d l' " lt,l \"l' loddad, ~f<1t"I(l~~in~ dt' d t' r" d in rn 'e-ucnoa. C,l p lll r., d~'
iOl.igl'n.,s a alte veloc tdad . d e

363
u bV IEW

15.3.1 pel
I'C l ~ e l csté nda r base de PXI sobre l' l r ua l se a ñaden 1<10; "e xtensiones" para ínsrru m on-
tactón. 1'1 bus l'C l es el l,:> tá nJ a r d e facto e n los ordena d ores personales . Duran te el
a rra nq ue lkl sb ll' m,1. lo s di spos it ivo.. l'Cl "nl'¡~od,m " los Tl'l..'UTSIl!; asignados (inte rrup-
d o nes y d ir¡'('d llnt'S ) con 1.1 8105 del ordenador, 1...1 CPU puede acceder ,1 tra vés de u n
~iis rosi linJ "p u.'ntl'" l'lltrl' r-l b us 10C.l l y el bu s Pe \; tam b i én p uede haber p uen tes enrrv
un bu.. pe l y otro (pa r'l u ni r vano, ~-gm en l(J" dd bus), e nt re u n bus pel y un ISA , etc .

1 ~1 s espt'(-ifir,Kiones del bus pe l convenciona l ..on: Tl'lo i de 33M llz, tas.I rnax ima d .'
Ir,\nsfl' n 'I1.·i.l .11' 133 \.1B por St'gundo y ancho d., 32 b its con direcciones y li,lIoS mulfi-
p lt' X'l dos..lU nque on 1.ls nuevas Tl' \' i sio nl'S~' han aumen tado estas pTl'St.1eion."S.

n in terfaz I'CI define m últiples St'ñ.ll.'S, a l ~u na s de las más im portantes son:


• C LK: rdoi.
• R.<;T: n .....'l.
• A D[3 I..ü]: Addn....s/ [).ltd. So n las linea s de d irecciones IJ d ,1t ns .
• " RA M E: ind ica 'l u,' ~' en tra en 1,1 faSt' d e di rcc clo na rmento. 1.1 f,lSt' d., d,l los S lgU~'
,1 1.1 d., dirccciunes.
• C/ BE¡l .lIl: C(JlIlm,md/ By ft' En,lb/t'. Durante la faS\' de dtrec cionamfcnto connc-
non u n co ma nd o dr-l bus, mientras que duran te la fase dcdc t..s se us an co rno h,lb i·
Ilt.h:' illl1t'S.

L Is lineas d ,' coma ndo indica n el tipo d e transferencia . ptn t'jl' m p l" lnt" rrupl
:\<'oI. noIl'1.... /"';I·, l/O R" ,ld, l/O Writt', M I'mol)' Roed. ,\ 1t'nlory Writt', Ct>nfi..,;ur<'ltioll
Re,ld. Gmfi"';lIr.ltioll !Vritt', r-te.

1..1 configuración st' reali .." ,1 tra vés d. ' una sene de n'¡!;i~tl"l~ '1 Ul' , cntn- o tr,l inform a-
cion. r ontu-m- el id entificador del d ispt lSih n ., del f.l bricol n t." Tl'gi... tm d ,' ."<t,ld o, n 'gi...·
tro de coma ndo, etc .

15.3.2 PXI
Un ... i... terna I' XI tc'S lá com pul,... lo ti .. In ... elemen tos:
• Un Ch,IS i..,l'I ~'u.t1 .11 b" 'l)!;,1 el rl"llriu b u". Los ch as¡... alberga n ve nas ra nu ras o slots
en lo.. cuales SI' in serta ran lns módulos .
• Un controlad or, que "l' s ilÚ,l en el p rimer s lo l JI' enasi". El con trolad o r p uede ser
local (h,hic.l m l' n ll' 1'" u n ord.. n.ulor crn bcbldu en el m ódulo ) II remolo, p.u,1 q Ul' el
PXI p Ul.. I,l Sl' r co ntrolad o d,"<l:l l' un l'C.
• Uno " v,H ins penféncos. por l' je m r lo insl ru m l'n lns (osd ltlSl':Opio", g l'lll' r,ldon os,
etc.}, módulos l/O , l.lrjt'!'I" DAQ , mód u los d e comnu tactón. •'k'.

A.-i,'m ás UIl ..¡..tern a I'XI puede conecta rse con otro isternas co m u VXI, V M E, C AN ,
CPIB, ele. I',H,1 u ni rsea o tn>.. s i...ternas I' XI p uede u a r p u e ntes I'CI-PC L J ~' ' .... ta fo rm a

364
Otras platafo rmas

e l s is h-m.l to ta l t"'ndrá má~ segmen tos de b us en los nl>1 I.~ M' p uec[..-n insertar mes
perit éncos.

Chassis

"'~. , '""

Module s
Controue r

hgurd 15-1 1, Equipo PXI

1~l~ c,lr,K I('rís tk.IS <JI1\' I'Xl ,l ñ,ld.' ,11 bus l'Cl w dividen 1'11 nu-canicas, l'1.'c trk'ls y Sllft-
W<lT." En cuan to .1 1,IS pri m,' r,IS definen un conec tor d ., !lpt , Eur ocn rd igU,l l que'
Co mp'lCtr'C l d ,' dos pt>s i¡'l.~ tam.inos: 3 U ji U ", I Rack Uni t ;; ·H A~ m m ) y f, U, tarn -
bién ~ definen or ea-, p ,lrlk u l,Hid .ld cs co mo Id forma, Id rd ri~l'r,lciól1. 1'1c.

En cuan toa 1.1s c.lr.lC h·rístic.lS d ée trÍ(,)s elestánda r de/ in.' :


• Rt'loj: 10 M H , com ún p..l r,l It...lt>s lns periférico...
• Bu .. d.' l ri~t' r: ti.' oc ho Iin"d s P,lr,' "inn o n i' M los d ift·Tt'nll'!i múd u ll..... e l triggeT
pUL'ti.' sl'r sineTl'nl1 o .lsincrom' _
• St,)rl triggcr: so n un.ls lineas d e muy ,llt.l Vdlld,t.ld conectada.. a cada periférico
d._1.' l'l ~ I ll t n ú m ero dos: :-\.' u san cua nd o vn I,:>tl' ~Iot n.IY u n módulo L'S pt.'Cificll
que PU,.,J.l mancj..tr L':>I".. M'ñ ,llL'S.
• Bus !L1C..l l: tipo d.Ii_"'.~·-cIM ill de O Jint',ls p,lra romunicaciom-s d I' ,l lt,l velocidad l'
p.tr,l p.l'«U M' ñ,ll.·s '\lM ló~ iCiIS d.. un móduloa nito.

U n eh-mento ca ractertsuco d el est ánda r rXl q Ut' n o tit'lwn 1<1 m <1 y oríil de b uses t'S qm'
I..a rnbién dl'fin,· CilT.lClt·ri" tic;¡s software. El t"<; t,ínti ;¡r d .. -fim- u n fr arnewor k co m ún com-
P.l libl" con VISA .1 tr.l n~ d el eU,1 1se prtlp<., rei< lll.lr.í inf. u-mar ión y ,1Cet""-' .., e..l d" uno d i'
los ch-mcnn..... del s¡~ It· m .l P x l .

365
LabV IEW

-....
Reloj

...

--- ¡;;
e, "C
j
j e
a ~ j
8 1
~
~- • ..-
~
•••
t

,- ~

I I
~"'
Figura 15- r2. Esquema (Jl>t bus PXI

15.3.3 Ejemplo 1: Lectura de los registros de configuración


15 .3 .3 . ' Explicación reóoca
El eq uipoe mplead o cons ta de ;
• Ch ,l ~b NI PXI-)(}.I2 (8 5010ts )
• Controlador N I J'XI-!'l IHó [ Penfium IV 2,20 e l l..., 5 12 Mil de RAM)
• M údu]n NI-ó25'! (Muttítuncnon U AQ)
• Mód ulo N I-7M31 R (/lI t.. IIi~,'nt fMl lJ
• M ód u lo ;..J1 -51 2211)i~iti7 ..r}
• M ód ulo NI-4070 ( Mu ltimdt'r )
• M ód ulo NI-5421 ( A r bi tTary W,II'l'!"i'm l G('/lc 'r,¡for)
• Mod ulo 1\.1--6552 (f}j!Z j taJ l\',n ·('(prm Gc.'nt'r,ltnr/ An.l h ·7t'r.;)
• Mód ul o N I-4472 ( f~·rl.lmjc Si};'!.J/ Ao¡ ui~itillJl l

En 1'S1I' primer l'jl' m p lo SI' m.lnl'j.uá el mód ulo I'XI-ó25'-J a bJ jn nivel con e l objetivo de
Il',' r t udos s u~ Tto1;istrus . .1 " co n fig u ración. I'nmc ro SI' d ebe con figu rar e ins tala r corree-
ta rr n-n te ,,1 d river <Id mód u lo tr .n a e llo p uede emplea rse \ '/5 A Dril·." Dt'\c '/I lpnwnt
~Vihl rd), una VI'1 hechose podrá accc..ier a la ta rjo'la usand o VISA.

Lu s ll'~l st TllS de cnn fi~u r.ldún St' ag rupan d e 1,\ si~uil' n te forma:

366
Otras pla tatormas

.... .",.
Tabla 1 • R~lstros de configuración Pel

Byte 1 _. Dll'Hclo"
____ cecee ID ... ~ndof
_'D_ _ o
_ _ _ __ 1'0 Sta tus PC! Comrna~ d_ ,
Class c ooe RevislOrl ID 8
-
He~-T~--=C lilterq ! imer Cacheune See e
_Base _Ack:l r~ss Reglster O - 10
_ ~~_ Ad<:l~_s~ !?eg6ter
e..se .~re~s. Reglster 2
1
"
lB
_ B.:I~. ~ress Register 3 IC
_ _ Ba~~ .~rl;~.s..Regi5ter 4
-- 20
_ _ _ "=~~Md~.I!~_~_~g¡stet s.,
_ =-_ -,'","'0
"",
",", """' -_ _ _ _ _ _ _ _ "
ZB
Sum.ysterT!.ID _
T~ SubsysremVef:ldor_'O_ _ _ 2C
____ _ Exp.l11S1Ol! RQM B.:Ise_MdrE'SS .___ 30
_ Reserved Space
- t- 34-

M d X t are-cy I Mln. Gr~~'~erfUPt Pl-"- -,-I -Inteflupt


- - -Une
- - ---~~

Los registros &se Addres.'i Rt?8istt>r X sirven para indicar las ubicacio nes del dispos iti-
vo den tro del espacio de d irecciones o d e ent rada /salida. Expansión ROM IM.o;('
Aáárees define la d irecció n base y ta maño para la ampliación ROM del dispositivo en
caso d e implementa rla.

15.3.3.2 Código
Para acceder a los registros del módulo se usarán los Vis d el menú ínstrumont l/O >
VISA > VISA Advenced > Register ACCl'SS.

Las d irecciones VISA para d ispositivos f' XI se pueden especificar como PXI -
<bus>: : e d s pos t i vo s , : <función> : : IN8TR. En este caso concreto la dirección
í í

de l módulo es PXI2:;15::[NSTR (las d trec cto nes aparecen automáticamente al crear u na


co nstan te o co ntrol, ta mbié n puede co nsultarse en MAX). El progra ma sim plemen te es
un bucle q ue se repite ta ntas veces como by tes de configuración existen (64), den tro del
bucle se encuentra VISA IN 8 que 11;'\.' u n bloq ue de ocho bits indicándole un espacio de
direcciones (10 para configu ración, 11 para lo a p un tad o por BARn, 12 para BARt y ast
sucesivamen te hasta l ó para BARS) y un offset.

Basándose en este p rogra ma se podrán crear otros para acceder a los reg istros ind ica -
dos por BARO, BAR1, e tc. y leer / escribir sus valores . Para esto sera indispensa ble un
manual de p rogramación a nivel de registros del d ispos itivo.

367
LabVIEW

15.3.3.3 Resultado
La fi gura 15-14 mue-ira el resultad o do.' la ejecuci ún <id programa en d equipo I'xt des -
cnto entes .

8Yft 4 8Yft 2 8Yft 1 B'ITf o d..cdón

<».oteo! _Id I o
PCItt.... PCI _ _ I 4
dosscodl I _ ol I a
_ n l _ llllerq
~ e
t-tat_~O 10
boo<e ..... ...,... I l4
to- atnl ''9IUf :1 la
t-ee<ü' ~ 3 le
to- '• • 4 20
_.at !> 24
,•• ..,.¡.... 28
............ I MIeI'll:'"
_ _ 'ROM_~
zc
:lO
,•• ..,.¡.,.. :t4
,•• ..,.¡.... 3lI
_loo: re re ... X

F'gura 15-14 Valor ce los reosuos di' contlgurecon

Por eícmpto. e l I"\·gistm \/l'nd(lr id tit'n l' un va lo r 109J h , q ue es el corres pondien te a


National Instrurm-nts.

15.3.4 EJrmplo ", Grnrraclón y adquIsición dr señales


15.3.4,1 &pJIcad6n tI!'ÓriCit
Si en el caso an terio r se veía u n l;l'm plo de ba jo nivel, con este se h.uá juslo lo contra-
río, manejar los eq uipos de l sistema PXI a a lto nive l con e l propósito do.' demostrar q m'
e l progra mador dcLabv tgw puede tener total t ranspa rencia del hard wa re usa do.

e l," es te p m p úsito se u tilizarán d(1S instrumentos : l'l d igitalizado r N I r XI-5122 y (,1


generador de formas de onda a rbitrarias NI PX ' -~ 21 , ambos co nectad os. El genl'radm
CTt'.uá un a fo rma de o nda y el dig it.llizador la ca ptura rá, mostrand o eleesultado en d
Panel Fron tal.

368
OtrilS p liltilfo r m ilS

15 .3.4.2 Códlgc
En lOSÍl' ejemplo no ~l'rá necesa rio rec urri r a la s fu nciones VISA. seem plea ran 1,1 ~ fun -
ciO fWS de NI-FGEN Y NI-SCO!'E, a mbos co m patfbles con IVI y que se p roporciona n
junio con los equipos [ta mbién se p ueden bajar de la w eb de Na lion,ll lnslru ml'n ts ~ rd '
ruu amcnte). Estas funciones st' ha llan l'I1 e l m en ú Funct inns > Mca surement 110 , "-11
u tih z..aci ón es s im ila r d NI DAQm:x.

El p nlg ra ma es ex tn-madamen te senci llo, consta de dos bucles en paralelo, en el


W l i lLE su per io r se usara NI·FGEN para q ue el usuario g enere una forma de onda, los
p.N)S so n inicializar e l dispositivo, co nfigu ra rlo. inici aliza r la generaci ón y fínalnu-nn-
cerrar, En el bucle TIMED LOO !' in fe rior se emplea rá N I·SCOPE p.1ra leer de for m,l
penódíca la forma de onda dol generador.

m
m

_.
Figura 1~- 15 Códqc qlX' m..meJil un gCl1{'f ,-..:lor y un (JRJlt<lI'l drJor PX!

15.3.4.3 Resultados
U na ve z conecta dos !1'lS d os Instrumon tos sólo queda ejl'CUld r el progra m.l an terior p,u.l
ver los resulta dos, co mo Sl' p uede com p roba r en la Fi¡¡;u ra 15-16.

, 5 .3.5 Ejemplo 111: Medida de capacidad


15.3.5.' Exprlcad6n tecoca
En este ejemplo S(" ha rá uso dI' orro-, dos, inst rument os, m od ula res dl'l ~ i~ ll'm a I'XI dlOS'
erilo en el ejemplo l. ahora SI' r,ln d mulumetro NI I'XI-41170 y r-l gl'nl' ril d o r-an,l liz.1doT
di¡;i l¡ll N I PX I-65.-';2.

369
LabVIEW

F¡gUJJ 15- 16. RcSultado de la t'jecuoón de! programa dado por la F¡gura ' '>- 15

La a pltcación ctl ns i~ h rá en usa r el generador d ig ita l crea r u na sefl.ll cuad rad a dt'
p.Hd
u n(l~ po cos periodos , esa St'i'J,,1 ~'rá aplicada a un circu ito Re. Por otra part.. 1'1 multi-
metro med irá 1.1 ten si ón en bornes del cond ensad or, obteniend o así Id cu rv a de ca rga r
d " M"<l rga d el m ismo. A partir d e la cu rva obtenid a se podrá calcula r I,} constan te J .'
IJl'nlp'-' Yp or lo tan to e l valor d el cond ensad o r, conocida Id R.

' 5.3.5.2 Código


H cód igo u sa ralos dri vers N I-D MM y N I-H5Dlü para comu nica rse rtrn el multimetro
~. d genera do r d ig ita l respectivamente.

FKJU'il 1S· '7 Prog'aJll<l para OIJI l" ll'I la curva de ca<gd de lJfl coooensacoe

370
Otras plataformas

El progra ma en u na primera fase iniciali za y configura el rnultirnetro y el gt'n l"rado r. A


con tinu ac ión se in icia liza la ge neración di g ita l y se lee una forma de onda a través del
m ultimetro . Cuando la señal se h a ca pt urado se cie rran a mbos dispositi vos, prim ero el
multímetro y desp ués e l generad or.

15.3.5.3 Resultados
A l ejecu ta r el prow ama se ha obtenido la g ráfica de la figu ra 15-18.

'. ' ,.. ... ' .'


!lO,OIlOí! 00,0003 0Il,O»f (rJ,OOOS
,~

Fl(jUJil 15·18 Curva de ( ,l rgJ de un cond ensado r

Pa ra calcula r la consta n te d e tiempo se obtend rá el 63% d e la m áxi ma tens ión , sie nd o


ésta 5 Y, dando un va lor de 3,15 V. El sigui en te P<lSl,l es ob tene r la constan te d e tiem po,
q ue es el pe riod o d e tiem po en tre el co mien zo d e la ca rga y el insta nte en qUl' se alean -
zan los 3, 15 Y, aumen tan d o d zoo m de Ia g ráfica se pu ede co m p robar q ue so n 55 :l:S. El
valor de la resistencia L'S ta mbién conoci do: 4,7 k? Con l'stllS va lo res se p ued e calcular
fácilmen te el va lor del cond ensad or como:

15.4 Bibliografía
JOM'ph DiGiovanni , Advanced l.ab VI EW FPGA Prog ra m rning 0rh mi z i n~ fo r Speed
and Size, NationalInstru men ts, 2nOS.

Na tum allnst rume nts, C('ftin~ Startt'd \I'itIJ /IJ,>L¡J,VIFI1' PDA ." ...d u /l. ·

Nationa llnstrum cnts. .'\ '1 .'>-121 5pl.'Cificatioll.".1'\1.

Nationa l Instruments.•\.'/ 625\ 51,<xificatioll.". l\L

Nationallnstrumcnts. .,\'11'XI¡ r Cf-51:!:: 5pñ :ifk <l tl(l(l.", :\"1-

311
Lab V IEW

N,ltion.ll lnst ru ml'nts, WI' 2329: a ·vdoping M t'd¡;ul't'ment imd Cuntm J Applic,ltioll¡;
wíth the L ¡bVIEW H 'GA Pionc't'r System, 2(0).

N,l l ion,ll lnstru ml'n ls, WP 24Hl1: N I G .mf'<JctRIO - Rt'Cl mfig u r,¡b/t' COlltrol ,md Act/ui-
.~ itillll SyMt'IJ1, 211l14.

l'X I Sys tem Alli;lnl'l', PXI Hard were Spt·dfjca titln, rev, 2.2,2004 ,

¡'XI Sys tem AIIí.m n·. WP: 7'ht, PXI Mod ula r Instrumomstíon An-hitt'l"ture, 2lXICI.

372
LabVIEW Entorno gráfico de prog mCl

En este libro se pretende d a r al lector una vis ión com ple ta de todos los
aspectos de LabVIEW. El libro parte de una introd ucción al entorno para
lectores que no tengan conocimientos previos del programa y poco a poco
se va a umentando el nivel hasta llega r a abarca r prácticamente todas las
posibilidades que permite LabVIEW, prácticamente infinitas, permitiendo
a los lectores descubrir nuevas posibilidades.
El libro Sí' divide en tres bloques tem áticos: una introducción en la qu~ se
prt'sl'nta el entorno y se explican los tipos de da tos y las estru cturas de
co ntrol; un segundo bloque de adq uisición y co m unicaciones sie ndo és ta
la aplicación má s tradicional de labVIEW; y por último los aspectos más
avanzados donde el lector podrá obtener un conoci miento profundo del
compilador y las técnica s de programación más adecuadas para cad a si-
tuación.
En cada ca pitulo se parte d e una introducción teórica general de la terna -
tica que se trata para, a continuación, presentar las funciones específicas
de LabVIEW relacionadas. Una vez h ech o esto se asentarán los co nocí-
m ientas a través de varios ejemplos y ejercicios prácticos.
Los ejemplos so n prácti cos y amenos p ara que se di sfrute con la lectura del
lib ro mientras se adqu ieren n uevos conocimien tos, esperamos que esto
fomente la iniciativa de los lectores para modifica rlos. mejorarlos y adap-
tarlos a sus requerimientos .

J~ R~f~t'1 Ltjar~ Vb:c~íno es Ingm il'fO Técnico t'n Telecomunicaciones e


Ingeniero en Electrónica pnr lel Universidad PoIitknica de ValE'nCia (2003) y la
Universidad de Valencia (2OOfi) respectivamen te. Desde 2002 pertenece al grupo
de investigación GSYM y ha trabajado en campos como sistemao; embebidos,
instru men taci ón virtual y redes de sensores. Actualmente está cursando 1U!>
estudios de doctorado del departamento de Ingl:'Jlit' rfa Electrónica.
José Pelegrí Seb~stiá es Doctor en Ciencias Flsicas e Ingl'Iliero en Electrónica
por la Universidad de velence. Actualmente t.'S Titular de Escuela Universitaria
del Departamento de Ingt'nil'ría E1l'drónica de la Universidad Politécnica de
Vall'flCia donde imparte dases t'I1 el Área de 1ru;truml'lltación desde 2(01
Es el responsable del gropo de investigación GSYM cuyas líneas de uwres
incluye 1U!> sistemas de lnstrumentación, la caracterización de sensores y su
aplícabihdad y las redes de ~'I1!';()res.

---- - - - - - - ISBN178·970.15-1133-6
I

A Alfaomega Grupo Editor

Potrebbero piacerti anche