Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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á
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,
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,·.
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.
Finalmente, nos gustaría agradecer a nuestras fami lias por su cariño, pacien-
cia y comprensión .
Introducción
, .
Secclon l. INTRODUCCION
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.
,
Sección 1/. ADOUISICION y COMUNICACIONES
, '
Secclon 111. PROGRAMACION AVANZADA
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.
•
Sección I
INTRODUCCiÓN
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 .
'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.
3
La bVlEW
"K'" Hito
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.
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~
s
ubVlEW
--
---
-- """"
-
"".
......
o-
.....
- -~
'"'. ~
'"""'""
Cont.oI Desq\ &;.........,"'"
-,-
e-dt>no,:>.5ooUobon
_.C<lt>tfol...
,'-l!:U Act_
-~-
E"fJf... .
,
,1
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
< ' .;:
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.
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
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 .
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.
~ 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 ~
Addon> •
User Cootrols ~
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.
~ ....> 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.
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;
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.
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
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.
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.
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?
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.
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.
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
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 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
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 .
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 .
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 __
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
••
~~, 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
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
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
1iIIJ - '·~
,." +
1iEJ"' +
1
1+
"
ffiF-I . +
a
"'"
~
1 . ,."
+1
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.
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.
•
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.
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
• 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",-_ ..
_
..-
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
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.
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
« ,
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.
32
Introducción a LabVIEW. En torno
--
RoQlo<" ....
...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
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]
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.
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
-\ contin uación se va a tratar cada una de las es truc turas qm' aparecen en la Figur a 2-1.
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 •
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
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.
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.
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
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 . '
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
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.
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 .
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
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 ...
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.
...
, ""'" ¿,
• ~ ,-
. ,
··
.=
.- 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 .
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.
_.-
1''"'' ,.,.." " u ' ''' " ' .>"
fr_I-.-_~
- '"'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 í.
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'"
• :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
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.
,,>~, ••• ~ (,
;-
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 ..
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).
-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
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.
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
""'""
IV .. ...
. ,....".
1
;
.
--~:;;;;:;.::;:;=~.
rlQt l • • l1 .. ' ¡
...
"a •
---+---Il-.lL 111
• •
Ij!
•
OCI
, , , , ,
50 6ll......lt..... L.J.'<__ 1!l!I
,
,_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 . ,
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.
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 ,
54
Estructuras
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 )
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 .
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'
56
Estructuras
- 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.
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 ».
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"
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
}
:. . : 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.
= 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. 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
.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 .
•
,
: ~ 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
2. 11 Ejercicios
. A q ué es equiv alente el siguiente programa?
o Defd ..
61
LabVIEW
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.
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 .
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-
_ 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.
--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
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
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
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.
~
~
.....
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:
\\ Barra lfM'ftldd
"''''
68
TipOS de datos
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.
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.
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.
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.
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
, -
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.
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.
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.
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
a ny thing
~ ....' ay or strlog si;! , "
"" ...~ arder ( O : blQ~, n ",
p=
_r-
data strng
error oU:
error Il (ro ~rror )
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.
~ 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:
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
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
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.
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
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"
~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-
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 ¡
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
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.
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
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
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
:"'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
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 .
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 .
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
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 .
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.
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.
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
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.
• 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,',
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
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,
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 «:».
. ---'"
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.
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 .
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 ~.
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.
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 .
<?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 >
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
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.
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.
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
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.
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
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
-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
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
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 .
.""
-
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 -
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.
--
;1'
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.
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,
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 .... .
~
, /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 .
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.
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 .
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.
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.
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.
'- .
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.
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 ~
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:
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.
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
,
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'
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 .
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.
• Refercnc¡a : GND,
11 9
L.lb V IEW
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
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
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.
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.
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;.
~-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
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.
• \'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/(-
í
\ 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 --
'.~ 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
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.
125
Ll bVIEW
Bt'Sllltddol
:~~!!JJ
126
Comunicación serie
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('
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
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.
129
Capítulo 6
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
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 •
• 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:
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
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 .
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.
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 .
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.
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.
139
LabV IEW
, Etr(W"
0u"'Y
•
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 .
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') .
• 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:
• "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 .
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:
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 :
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:
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 .
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
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.
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
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 :
!....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.
[ 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 .
(49
L.1bVIEW
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.
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.
he.. .
151
LabVIEW
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
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.
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
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 .
153
Ui b VlEW
TA ;5Ol.Il Cf.
TAEN( A5Cll ;
TA,\II1DTH 1;
TA:Sf .I lIH 1;
TA :ST~
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
-,-
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
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.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
__ o
•
...- .....- ...
+~J
• ---
.-
_.-. ... -
_ _
.'
_ o
~
'. ..-.-"'"
_
_
--- ~
-.,-_
- .-...
" - ~ ._
•..
...---
.H'"..•
--
------_._...
..........
.-,
---
-.--_
_. ~- -
--..
_...............,.-....--
._- ,~
.... .. . .. --
--_
-- ....
-.-.......
- ~-.
_ ••• _ o••~••
I
'~~~~~-
, - - ~~
F'9urd 6-28. Conflgur,mdo nrs trument 1/0 AsSMJ Jlt 11
157
Lab VIEW
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- ... _ -
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.
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.
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
• 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
,
~
•
•
•
~
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(
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.
• 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.
• 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.
15 • • w... - 1#
-- _.
'.7
La b VIEW
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
• ••
•
,- .
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
.........
•
.. -
"'-'- "
__ .__......
_ -
• M _ ~
,
.--
-.: ~ ~ .
.......... 0 __
.'-
,
.-
.- -
...-. . -
• ' ~' !.' '' '. ,- _ ..
.....,." ,
~
~
....
""_
,~ ._
• 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~
.•
• 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.
_.
l OOJ
",.
ICOl
",..
C!r:
FlgurJ 7-12 . ComparJ tJIIJ oe Código ITrdCl lCiOr1<l1OAO. DAQmx '1 Expressl
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
......""'.
--
-._..... ...
,,~
, ...,.,
,•
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.
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.
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
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.
I1d i,'nl' y horra la tarea. Es ú til cua nd o se crea u na tarea den tro de u n bucle.
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) .
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
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
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.
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.
,
I [, ,,, . l E"''''' •
Oevl ... 1
[j]
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
lB'
Adqu lsldon d e datos
'"""
------------------------,,
-
,,
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
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
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'\.
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.
4 ----- . ". ~
Aplicación --- - - ~ Aplicación
TCP -----..". TCP
IP IP
Enlace Enlace
Flsico '1 ReD )-/ Hsfcc
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.
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 .
Emisor Receptor
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,
A l~u mlS r n 'I" .:ulllS d.' . ...Il· nin'l !ol.' n : HlTP, s~nr. fTr. T\1P. Te11ll'l ..,
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 .
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.
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 - - - --,
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
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.
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.
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á.
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.
• 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'.~.
, 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
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.
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:
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 :
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:
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:
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:
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.
200
Protocolos d e comunlca clo n : TCP y UDP
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
rto or
-..."""
D... . •
[j] 2S5000
FlglJld8-13, Emisor
20 1
L.1bVIEW
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.
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).
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.
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.
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 .
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 •
•
•
•
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'
< •
, •
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
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.
• 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.
• 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
Muest ra u na ven tana dond e se p uede busca r el objeto concreto a q ue S\.' q uiere
acced er.
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'¡
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
I-,"'.~' "
•
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-
-.¡ ... ..
..... 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
• Abrir referencias
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,
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,
2 1.
VI Server y co municacio ne s ava nzadas
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..
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.
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 ;
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.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 --~
; .. ~
9.4.3.3 Resultados
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.
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
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.
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
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
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
•
•
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
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 .
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.
,o
e¡atk:Jn:AI Vis In ~'h" o y l
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'.
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: '
_.,,........
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
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 - ~
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
•
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]
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.
• •
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.
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
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 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
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. •
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.
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
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
244
Slncronll'"dón 1 multlhllo
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..~ .
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.
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
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.
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.
• 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
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.
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•
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.
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
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 _ _
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 ¡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~.
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
•
'~
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.
--
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
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 .
Rango Fundé,"
.-"-- - - - --
- .2 14 746 7263 a - 196 7390460 Ne!wor~,ng
257
LabVlEW
fu""""
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)'
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.
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 "
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 .
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 .
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
-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
'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:¡
' 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
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 ._- ~
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]
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.
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 .
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
"
.....'" "
....."
.'" . 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
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.
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]
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.
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.
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 .
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
'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,
.,,,
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:
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:
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:
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:
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.
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
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 .
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
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.
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
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 . ,, ~
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).
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.
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.
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
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
281
LabVIEW
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Ó"
283
Capít ulo 12
Código externo
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.
",,,
. 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
+"
. -. ~
287
LabVIEW
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.
,••
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 .
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.
e ubVJEW e u bVJ EW
""'1
BOolea n--
- -lJl
U8
- aho r t
Dwo ~d , " WNO
116
U31
~-
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
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.
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
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'
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:
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.
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
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.
294
Código externo
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~.
(
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
...."""
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·.
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
~~ = 1!iJ
E'3Iel'3EJ~
~
f lCJllf<l I Z· l Z. Menú Aa~X
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.
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.
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 ..:
298
Código uterno
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 , •• " . , , •• , ' • • , , • •
·., , ... .. ..., . .... .., ..., .., , .., .., , .., , .
, 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
.. ... , , ', , .
' 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
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
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.
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.
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 .
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
B§
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.
MSll
elR
?
'"
Sislllma operativo
[ 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
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.
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.
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 ;
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 :
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 , = .~
..........
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.
307
LabVlEW
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.
" , , •
_. -
;,;;t
,
,~
4
-
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
"'"
' O
tEif~e<
r;, =~~~enl ....
-~<'"
Figura 12·2 3 SubV' que actua liza el control que moca la creccco
1<_
_ _o do ..... 1~ 6n d. lo
I:n1OCII
--
--~-'~-
~ locIad Pok!knt< . do
VaI,,<:I, y _ . pa!11 d.1 CiGIC -..... do 11l1li" _ _
309
L"bV IEW
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.
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.
'" .
'-_
:_Lo<>-..
' ...... ,- .............
:~ -
,--,--_.
."--
--
...._ _
_.-._-
--,
.......... _
la
!il
."e
,__ _..._...... El
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%,
312
Capítulo 13
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.
,
m~_
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 .
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.
~
[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
--• --•
•- •-
•- -•
• >
• >
•
" •
, >
•
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 .
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
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.
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...
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.
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.
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.
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.
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.
3lb
OptimizacIón del Interfaz
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').
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.
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
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
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.
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.
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
'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.
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.
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 .
"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
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
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,
338
Optim izacJo n d e4 código
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
Ventana
pmapel (GU1)
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.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.
...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';"' _
341
La bV IEW
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.
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
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 ' ..... "''',..
_..._.,.-- . ..
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.
!',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.
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.
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.
, .
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 .
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
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
" '" ~
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.
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
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)
.. 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.
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
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.
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.
......
- '"'"
,..-- ...
_ ~_
_.
-
-. _......
""-"' ,...
._..... . ...... •
""'
~_ .. · --i>ortt> v_
m
w .rl
u
' 1'>. ..
"
FI(ju ra 14· 16. UtlllZilClÓIl del terminal enser para IT\('jOIar el renoimerao
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
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.
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.
Na liona l fnstru mcn ts, AN 168: l..abV1EW Pertormence and Mt'mol}' Management
2004.
,....
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.
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.
I SIL I ==~
~ POQ<fT Pe 2003 De"iCI
'l ~ ""","00 01"
, "it, llYI:l 5<>0ct0<aIJOO>
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.'.
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.
[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.
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).
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
.. 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
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.
362
Otras p lataformas
--
-- •
_.-
"'-01_""""" _
.... ,.. .. '"'' ... 1
•
.
_ o I ..... u.m
_"<i_W. "'"'
-.. .,.... " ,,,,,
..,,..oI n ""
,,. ,.. '" ...
" ,.,.,.
•
~ ·· l -
FlgUl"il 15-9 Compr\ilndO..
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.
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
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.
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
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-
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
í í
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 .
<».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
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.
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.
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.
FKJU'il 1S· '7 Prog'aJll<l para OIJI l" ll'I la curva de ca<gd de lJfl coooensacoe
370
Otras plataformas
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.
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. ·
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 .
---- - - - - - - ISBN178·970.15-1133-6
I