Instrumentación Ingeniería Mecatrónica
Práctica 8 Estructuras de programación en LabVIEW Obj et i vo de de l a pr áct i ca Al t er mi nar est a pr áct i ca, ca, el di scen scent e ser ser á cap capaz de de: Conocer cer l as di di f er enci as en ent r e un ci cl o FOR y un ci cl o Whi l e, con conocer cer cóm cómo l os r egi st r os de cor cor r i mi ent o ob obt i enen el val or de i t er aci ones an ant er i or es, conoce conocerr cómo se ej ecut ecut a l a est r uct ur a CASE, conoce conocerr cómo se ej ej ecut ecut a l a est est r uct ur a SEC SECU UENCE, conoce conocerr cómo se ut i l i za l a f unci ón MATHS THSCRI PT y, gener ar pr ogr amas ut ut i l i zan zando l as di f er ent es est r uct ur as ant ant es menci enci onad onadas. as.
Material:
Comput ador a co con Lab LabVI EW Pr of esi onal adel ant e ( pr ef er ent ement e 8. 6)
ver ver si ón
8. 0
en
Introducción En est a pr áct i ca se cr ear án VI s sen senci l l os pa par a i ncor cor por ar l as est r uct ur as de pr pr ogr amaci ón en en La LabVI EW. Di cha chas est r uct ur as s on FOR FOR, WHI LE, CASE, SECU SECUENC ENCE y MATSCR TSCRI PT.
Marco teórico Las Las est est r uct ur as son r epr esent sent aci ones gr gr áf i cas cas de de l os casos casos que se pr pr esent esent an en l eng enguaj es de de pr pr ogr ogr amaci ón de t ext ext o. Se ut i l i za una est r uct ur a en el di agr ama a bl oques pa par a r epet i r segment ent os de de códi códi go ó par a ej ecut ecut ar códi códi go baj o al guna con condi ci ón o en un or den espe specí f i co. co. Pr áct i ca #8 Est r uct ur as de de pr ogr ogr amaci ón en LabV LabVI EW I ng. Mari o Al Al ber ber t o Cam Camar i l l o Ram Ramos
1
Instrumentación Ingeniería Mecatrónica
Como l os el ement os ant er i or es ( pr áct i ca #6) , l as est r uct ur as cue cuent an con con t er mi nal es que pe per mi t en l a con conexi ón ent r e el l as y ot ot r os el ement os den dentt r o del di agr ama a bl oques. Al t ener i nf or maci ón en est as t er mi nal es l as est est r uct ur as se ej ecut ecut ar án i nmedi edi at ament ent e y gen gener er ar án i nf or maci ón de sal i da cuan cuand do t er mi ne su ej ecuci ecuci ón. ón. Cada est r uct ur a cue cuent a con con un bor de ( or i l l a) par t i cul cul ar , y puede ede ser r edi edi mensi ensi onad onado o par par a ab abar car al guna par par t e del del códi códi go que se de desee ej ecut cut ar , cl ar o, de acu acue er do a l a f unci ón de cad cada est r uct ur a. El cód códi go dent r o de una est r uct ur a de pr ogr amaci ón s e l e conoce como subdiagrama. Las t er mi nal es qu que pr ovee oveen n i nf or maci ón haci a de dent r o y f uer a de de l a est est r uct ur a se l es cono conoce c omo túneles. Un túnel es es un una con conexi ón en el bor de ( or i l l a) de l a est r uc ctu turr a. Lab LabVI EW
pr opor ci ona est r uct ur as de de pr ogr amaci ón ( Functions Structures) pa par a r eal i zar zar di f er ent es pr pr oceso cesos; s; ent r e di cha chas est r uct ur as se en encue cuent r an:
FOR .-
Ej ecut cut a un subdiagrama un númer o det er mi nado de ocasi casi ones. WHILE. - Ej ecut cut a un subdiagrama hast a qu que un una con condi ci ón se cumpl a. CASE STRUCTURE. - Cont i ene múl t i pl es subdiagramas, de l os cua cual es s ol o un uno se ej ej ecut cut a de dependi end endo de de l a va var i abl e de de ent r ada a l a est r uct ur a. ont i ene ene un uno o más subdiagramas, l os SECUENCE STRUCTURE. - Cont cual cual es se ej ecut ecut an de maner aner a secuen secuenci ci al . MATHSCRIPT. - Real i za oper aci ones mat emát i cas cas ut ut i l i zan zando var var i abl es de def i ni das po por el usua suar i o ó de l a mi sma estructura ( Mathscript es si mi l ar a Mat l ab, per o i nt egr ado Mathscript es en LabV LabVI EW) .
Pr áct i ca #8 Est r uct ur as de de pr ogr ogr amaci ón en LabV LabVI EW I ng. Mari o Al Al ber ber t o Cam Camar i l l o Ram Ramos
2
Instrumentación Ingeniería Mecatrónica
El ciclo FOR
Figura 1.- Estructura para un ciclo FOR
Un ci cl o FOR ej ecut a pr edet er mi nado de ocasi ones.
un
subdiagrama
un
númer o
El val or en l a t er mi nal de cont eo ( l oop count ) i ndi ca subdiagrama. cuánt as ocasi ones se r epet i r á el Es posi bl e asi gnar un val or conect ando un val or desde af uer a de l a est r uct ur a al í cono N. La t er mi nal de i t er aci ones ( i) pr opor ci ona el númer o de i t er aci ones r eal i zadas. Las i t er aci ones s i empr e empezar án en cer o, es deci r , dur ant e l a pr i mer i t er aci ón l a t er mi nal pr opor ci onar á un cer o y l l egar á hast a N- 1 i t er aci ones. Ambas t er mi nal es ( de cont eo e i t er aci ón) son pal abr as ent er as con si gno. Si se conect ar a una var i abl e de punt o deci mal a l a ent r ada de cont eo, LabVI EW l a r edondea y l a obl i ga a que se encuent r e en el r ango. Un dat o i mpor t ant e es que si se empi eza con un númer o negat i vo o cer o en l a t er mi nal de cont eo, el subdiagrama no se ej ecut ar á.
El ciclo While
Figura 2.- Estructura para un ciclo WHILE
Pr áct i ca #8 Est r uct ur as de pr ogr amaci ón en LabVI EW I ng. Mari o Al ber t o Camar i l l o Ramos
3
Instrumentación Ingeniería Mecatrónica
El ci cl o WHI LE ej ecut a un subdiagrama hast a que una condi ci ón es cumpl i da, es deci r , mi ent r as s e cumpl a l a condi ci ón. Di cha condi ci ón se encuent r a en l a t er mi nal Loop condition, el cual es un val or bool eano ( ver dader o o f al so) . El compor t ami ent o pr edet er mi nado par a l a t er mi nal es Stop if True, donde el subdiagrama se ej ecut a hast a que l a t er mi nal r eci ba un val or VERDADERO. Cuando una t er mi nal de condi ci ón es conf i gur ada como Continue if True, el ci cl o WHI LE ej ecut a el subdiagrama hast a que l a t er mi nal r eci ba un val or FALSO. Debi do a que l a est r uct ur a r evi sa el val or pr esent e en l a t er mi nal después de ej ecut ar cada i t er aci ón, el ci cl o WHI LE se ej ecut a por l o menos una vez, l o cual es i gual que un DO- WHI LE en l os l enguaj es de t ext o convenci onal es.
Figura 3.- Controles para la terminal condicionante
Cabe señal ar que si l a t er mi nal conect a a un val or , el VI no oper ar á.
condi ci onant e
no
se
Es posi bl e cr ear un subdiagrama par a r evi sar si exi st e un er r or o no ut i l i zando l a t er mi nal condi ci onant e de una est r uct ur a WHI LE. Cuando se conect a un cluster de error a di cha t er mi nal , sol ament e l os val or es de VERDADERO o FALSO pasan a l a t er mi nal . La t er mi nal de i t er aci ones pr opor ci ona el númer o de i t er aci ones compl et adas; si empr e empi eza en cer o y r egr esa a cada i ni ci o de l a i t er aci ón el val or de cer o. Si se desea pasar i nf or maci ón desde l a pr i mer i t er aci ón a l a si gui ent e, es necesar i o col ocar registros de corrimiento.
Pr áct i ca #8 Est r uct ur as de pr ogr amaci ón en LabVI EW I ng. Mari o Al ber t o Camar i l l o Ramos
4
Instrumentación Ingeniería Mecatrónica
Registros (ciclos)
de
corrimiento
en
estructuras
Figura 4.- Registros de corrimiento en estructuras FOR y WHILE
Se ut i l i z an l os registros de corrimiento dent r o de ci cl os FOR y WHI LE par a t r ansf er i r val or es de una i t er aci ón a l a ot r a. El compor t ami ent o de l os registros de corrimiento es si mi l ar al de l as var i abl es STATI C en l os l enguaj es de pr ogr amaci ón convenci onal es. Un registro de corrimiento apar ece como un par de t er mi nal es que se oponen unas con ot r as en l os ext r emos ver t i cal es de l a est r uct ur a ( FOR o WHI LE) . La t er mi nal de l a der echa cont i ene un sí mbol o semej ant e a un t r i ángul o ( o f l echa) que apunt a haci a ar r i ba y al macena i nf or maci ón después de que se t er mi na una i t er aci ón. LabVI EW t r ansf i er e l a i nf or maci ón que se encuent r e en est a t er mi nal a l a si gui ent e i t er aci ón. Par a cr ear un registro de corrimiento es necesar i o col ocar se sobr e el bor de de l a est r uct ur a y pr esi onar el bot ón der echo del r at ón y sel ecci onar Add Shift Register.
Figura 5.- Creando un registro de corrimiento
Pr áct i ca #8 Est r uct ur as de pr ogr amaci ón en LabVI EW I ng. Mari o Al ber t o Camar i l l o Ramos
5
Instrumentación Ingeniería Mecatrónica
Un registro de corrimiento t r ansf i er e cual qui er t i po de dat o y aut omát i cament e cambi a el t i po de dat o del pr i mer obj et o que se encuent r e conect ado al mi smo. La cl ase de dat o que se encuent r e conect ada a l a t er mi nal de cada uno de l os registros de corrimiento debe ser del mi smo t i po. Es posi bl e cr ear múl t i pl es registros de corrimiento en una est r uct ur a ( ci cl o) , además de poder t ener más de una t er mi nal i zqui er da ( ent r ada) par a r et ener más de un sol o val or . Después de que el ci cl o se ej ecut a, el úl t i mo val or guar dado en el registro de corrimiento per manece en l a t er mi nal de l a der echa. Si est a t er mi nal se conect a haci a f uer a de l a est r uct ur a, esa conexi ón t r ansf er i r á el úl t i mo dat o de l a i t er aci ón en cur s o. Si no s e i ni ci al i z a el r egi s t r o, el ci cl o ut i l i za el val or que se encont r aba al f i nal del mi smo o se ut i l i za el val or pr edet er mi nado si nunca se ha ej ecut ado.
Estructuras de Casos (CASE Structures)
Figura 6.- Estructura CASE boolena
Una est r uct ur a CASE t i ene uno o más subdiagramas, o casos. Sol ament e un subdiagrama est á vi si bl e y l a est r uct ur a ej ecut a sol o un caso a l a vez. Un dat o de ent r ada det er mi na cuál subdiagrama se ej ecut ar á. Est a est r uct ur a es si mi l ar al SWITCH IF-ELSE, o IF-THEN, IF-ELSE IF, de l os l enguaj es de pr ogr amaci ón t r adi ci onal es. En l a par t e super i or de l a est r uct ur a se encuent r a l a et i quet a del sel ect or de casos. Est a et i quet a cont i ene l os val or es par a l os cual es cambi ar á cada subdiagrama, apl i cando así cada caso. Las f l echas a l os cost ados i ndi can l os casos subsecuent es o ant er i or es; l a f l echa haci a abaj o i ndi ca qué casos est án pr esent es en l a est r uct ur a.
Pr áct i ca #8 Est r uct ur as de pr ogr amaci ón en LabVI EW I ng. Mari o Al ber t o Camar i l l o Ramos
6
Instrumentación Ingeniería Mecatrónica
La est r uct ur a CASE puede t ener di f er ent es t i pos de ent r adas, si endo est as bool eanas ( ver dader o o f al so) , ent er as ( dat o numér i co) , cadenas de car at er es ( códi go ASCI I ) o del t i po enumer ado. Es necesar i o col ocar un caso par a cuando no se encuent r e i nf or maci ón per t i nent e en la ent r ada ( caso pr edet er mi nado o “def aul t ”) . Si no se hi ci er a est o, es r esponsabi l i dad del cr eador del VI señal ar cada ent r ada par a t odos l os casos. Por ej empl o, si exi st e una ent r ada ent er a de cont r ol donde se buscan l os casos 1, 2 y 3, se debe especi f i car un caso pr edet er mi nado par a cuando l a ent r ada sea 4 o cual qui er ot r o númer o ent er o.
Figura 7.- Casos numéricos enteros
Figura 8.- Casos con cadenas de caracteres
Figura 9.- Casos enumerados
Se pueden cr ear múl t i pl es túneles de ent r adas y sal i das par a una est r uct ur a CASE. Las ent r adas est ar án di sponi bl es par a t odos l os casos, aunque l os casos no necesi t en ut i l i zar t odas. Si embar go, se debe def i ni r cada sal i da par a cada caso. Cuando Pr áct i ca #8 Est r uct ur as de pr ogr amaci ón en LabVI EW I ng. Mari o Al ber t o Camar i l l o Ramos
7
Instrumentación Ingeniería Mecatrónica
se cr ee una sal i da ( túnel) en un caso, di cha sal i da est ar á pr esent e par a t odos l os casos. Si una sal i da no est á conect ada, t odos l os túneles apar ecen como cuadr os bl ancos. Es posi bl e def i ni r di f er ent es f uent es de i nf or maci ón par a el mi smo túnel en cada caso, per o el t i po de dat o debe ser compat i bl e par a cada uno de el l os. En ocasi ones es pr áct i co ut i l i zar el bot ón der echo del r at ón en el túnel en cuest i ón y sel ecci onar Use Default If Unwired par a ut i l i zar el val or pr edet er mi nado par a t odos l os túneles si n conect ar .
Figura 10.- Selección de valor predeterminado en un túnel
Estructuras de secuencia (Stacked Sequence Structure)
Figura 11.- Estructura de secuencia
Una
secuencia cont i ene est r uct ur a de uno o más subdiagramas, o tramas, l as cual es se ej ecut an de maner a secuenci al ( r ecor dar que en LabVI EW se ej ecut a el códi go en par al el o) . La et i quet a de l a t r ama en l a par t e super i or es muy par eci da a l a est r uct ur a CASE. La et i quet a de tramas cont i ene un númer o en el cent r o y f l echas haci a l a der echa e i zqui er da, l as cual es per mi t en r evi sar cuál subdiagrama se ej ecut ó o Pr áct i ca #8 Est r uct ur as de pr ogr amaci ón en LabVI EW I ng. Mari o Al ber t o Camar i l l o Ramos
8
Instrumentación Ingeniería Mecatrónica
r eal i zar á. A di f er enci a de l a est r uct ur a CASE, no es posi bl e i nt r oduci r val or es a l a trama; cada vez que se el i mi na, agr ega o r eest r uct ur an l as tramas, LabVI EW aj ust a aut omát i cament e el númer o de el l as. Una est r uct ur a de secuencia comi enza desde l a trama 0, l uego l a 1, después l a 2, y así sucesi vament e hast a que l a úl t i ma t r ama se ej ecut e. La est r uct ur a de secuencia no t er mi na su ej ecuci ón o pr opor ci ona i nf or maci ón hast a que l a úl t i ma trama t er mi na. Cabe señal ar que no exi st i r á ej ecuci ón hast a que t odas l as ent r adas ( túneles) de l a pr i mer trama cuent en con i nf or maci ón. Si se desea pasar i nf or maci ón de una trama a l a ot r a, es necesar i o cr ear una t er mi nal l ocal par a que l a i nf or maci ón pr ocesada pueda acceder a l a si gui ent e trama.
Figura 12.- Túneles locales para pasar información de trama a trama
En gener al , se ut i l i za una est r uct ur a de secuencia par a cont r ol ar l a ej ecuci ón de l os subdiagramas donde l a i nf or maci ón debe ser pr ocesada ant es que ot r o event o. Un nodo o t er mi nal que r eci be i nf or maci ón depende de ot r o nodo par a compl et ar su ej ecuci ón y así sucesi vament e.
Estructura MathScript La est r uct ur a MATHSCRIPT es una f unci ón út i l par a ej ecut ar oper aci ones mat emát i cas en el di agr ama a bl oques. No es necesar i o t ener acceso a códi go ext er no o apl i caci ones adi ci onal es, además de no t ener que ut i l i zar f unci ones ar i t mét i cas par a cr ear ecuaci ones compl ej as. No sol o es menos compl ej a l a cr eaci ón de ecuaci ones, t ambi én es posi bl e ut i l i zar
Pr áct i ca #8 Est r uct ur as de pr ogr amaci ón en LabVI EW I ng. Mari o Al ber t o Camar i l l o Ramos
9
Instrumentación Ingeniería Mecatrónica
f unci ones conoci das en ot r os pr ogr amas r el at i vos a mat emát i cas ( pol yf i t por ej empl o) . MATHSCRIPT es muy si mi l ar a Mat l ab, por l o que es posi bl e cr ear códi go ( script) e i mpor t ar l o a LabVI EW. Cabe señal ar que MATHSCRIPT sol ament e acept a var i abl es de dobl e pr eci si ón ( 64 bi t s) por l o que ser á necesar i o ( si así l o amer i t a) conver t i r var i abl es de ot r o t i po a l as r equer i das. Es posi bl e decl ar ar var i abl es dent r o de l a est r uct ur a o f uer a. El col ocar ent r adas o sal i das de l a est r uct ur a MATHSCRIPT es opci onal , per o, si al guna es col ocada, debe est ar conect ada a al gún par ámet r o de ent r ada o f unci ón de sal i da.
Figura 13.- Entradas y salidas en MATHSCRIPT
Par a empezar a ej er ci t ar l os conoci mi ent os adqui r i dos, se r eal i zar án cuat r o VI s, uno por cada est r uct ur a de pr ogr amaci ón.
Desarrollo El pr i mer VI a r eal i zar se l l amar á Número de iteraciones, el cual cont ar á l as i t er aci ones que necesi t a LabVI EW par a obt ener un númer o que se l e ha sol i ci t ado. Par a l ogr ar el obj et i vo de est e VI se ut i l i zar án f unci ones que gener ar án númer os al eat or i os hast a que se obt enga el val or r equer i do.
Pr áct i ca #8 Est r uct ur as de pr ogr amaci ón en LabVI EW I ng. Mari o Al ber t o Camar i l l o Ramos
10
Instrumentación Ingeniería Mecatrónica
1) Abr a un nuevo Panel Fr ont al . 2) Gener e en el
Panel Fr ont al l a f i gur a 14. No se pr eocupe por l os val or es en l os cont r ol es e i ndi cador es, est os son val or es que se asi gnar án después. Recuer de asi gnar nombr es a l os dos i ndi cador es y al cont r ol numér i co.
Figura 14.- Panel frontal para “Número de iteraciones”
es un cont r ol numér i co y especi f i ca el númer o al cual se desea l l egar . El i ndi cador numér i co “ Número actual” señal a el númer o que se ha pr ocesado. El i ndi cador numér i co “Número de iteraciones” pr opor ci ona l as ocasi ones en que el ci cl o se ha ej ecut ado. b) Par a asegur ar se que el usuar i o no i nt r oduci r á un dat o que no cor r esponda con el f or mat o de i ncr ement o ( ent er o) , se f or zar á a LabVI EW a t omar un val or ent er o. Par a est o ser á necesar i o col ocar se sobr e el cont r ol numér i co “Número para simulación” y pr esi onar el bot ón der echo del r at ón y sel ecci onar properties. c) Dent r o de est e menú, se escoger á el submenú Data Entry donde se especi f i car án l os númer os máxi mos y mí ni mos que se esper an del usuar i o. Así como obl i gar a l a ent r ada a ser ent er a. Modi f i que l os val or es y opci ones como se muest r a en l a f i gur a 15 ( no pr esi one el bot ón OK) . a) “Número
para
simulación”
Pr áct i ca #8 Est r uct ur as de pr ogr amaci ón en LabVI EW I ng. Mari o Al ber t o Camar i l l o Ramos
11
Instrumentación Ingeniería Mecatrónica
Figura 15.- Modificación de parámetros de entrada
d) Después
de real i zar l a modi f i caci ón, se est abl ecer á una r ef er enci a par a el cont r ol numér i co. Dent r o del menú de pr opi edades, Documentation escoj a y r edact e la descr i pci ón del cont r ol numér i co ( f i gur a 16) . Pr esi one el bot ón OK.
Figura 16.- Descripción del control numérico “Número para simulación”
e) Col oque
el
cur sor
sobr e el i ndi cador numér i co “Número actual”, pr esi one el bot ón der echo del r at ón y sel ecci one l a opci ón Description and Tip. Redact e l o señal ado en l a f i gur a 17.
Pr áct i ca #8 Est r uct ur as de pr ogr amaci ón en LabVI EW I ng. Mari o Al ber t o Camar i l l o Ramos
12
Instrumentación Ingeniería Mecatrónica
Figura 17.- Descripción del indicador “Número actual”
f) Repi t a
el i nci so e) per o ahor a sobr e el i ndi cador “Número de iteraciones” y r edact e l a i nf or maci ón de l a f i gur a 18.
Figura 18.- Descripción del indicador “Número de iteraciones”
3) Par a
asi gnar el val or de 50 como pr edet er mi nado, es necesar i o col ocar se sobr e el cont r ol numér i co “Número para simulación” y asi gnar el val or 50; pr esi onar el bot ón der echo del r at ón y sel ecci onar Data operations Make Current Value Default.
Figura 19.- Asignando valor predeterminado al control numérico
Pr áct i ca #8 Est r uct ur as de pr ogr amaci ón en LabVI EW I ng. Mari o Al ber t o Camar i l l o Ramos
13
Instrumentación Ingeniería Mecatrónica
4) Ter mi nado l o cor r espondi ent e al
Panel di agr ama a bl oques de l a f i gur a 20.
Fr ont al ,
gener e el
Figura 20.- Diagrama a bloques del VI “Número de iteraciones”
a) Col oque l a f unci ón Random Number (0-1) que
se
encuent r a
en Functions Programming Numeric. Est a f unci ón pr oduci r á un númer o al eat or i o ent r e 0 y 1. b) Ut i l i ce una f unci ón de mul t i pl i caci ón ( Functions Programming Numeric) par a mul t i pl i car el númer o al eat or i o por 1000 ( r ecuer de cómo cr ear const ant es de l a pr áct i ca #6, paso 6) . c) Col oque l a f unci ón Round To Nearest que se encuent r a en Functions Programming Numeric. Est a f unci ón r edondea el númer o al eat or i o mul t i pl i cado por 1000 al ent er o más cer cano. d) Ubi que Equal? la f unci ón en Functions Programming Comparison y col óquel a en el di agr ama a bl oques. Est a f unci ón compar a el númer o al eat or i o con el “Número para simulación” y gener a un TRUE ( bool eano) si es i gual ; si no l o es, pr oduce un False. e) Ut i l i ce una est r uct ur a WHILE y col oque t odo el di agr ama a bl oques dent r o del ci cl o WHILE ( Functions Programming Structures While loop. Pr áct i ca #8 Est r uct ur as de pr ogr amaci ón en LabVI EW I ng. Mari o Al ber t o Camar i l l o Ramos
14
Instrumentación Ingeniería Mecatrónica
f) Col oque ( Functions
la
f unci ón
Increment
Programming Numeric)
y conect e el í cono de i t er aci ones con l a f unci ón ( pase a t r avés del bor de de l a est r uct ur a) . Después conect e l a sal i da de l a f unci ón con “Número de el i ndi cador numér i co iteraciones”. Est a f unci ón se agr ega al códi go por que el ci cl o WHILE comi enza sus i t er aci ones en cer o.
El cuadr o azul que apar ece en el bor de de l a est r uct ur a es un túnel. Los túneles pr opor ci onan i nf or maci ón desde y haci a l as est r uct ur as. La i nf or maci ón sal e de l a est r uct ur a cuando el ci cl o t er mi na. Cuando se cuent a con un túnel haci a l a est r uct ur a ( ent r ada) , el ci cl o se ej ecut a sol ament e cuando exi st e i nf or maci ón en el túnel. 5) Guar de el VI
con el nombr e de “Número de iteraciones”.
6) Col óquese en el Panel Fr ont al ( Ctrl+E) y cambi e el de 50 en “Número para simulación”. 7) Ej ecut e el
VI ( Ctrl+R o l a f l echa) . Cambi e el ot r o y r eal i ce 5 ej ecuci ones con ese númer o.
val or
númer o a
8) Par a
obser var cómo LabVI EW l l ega a est e r esul t ado, es r ecomendabl e ut i l i zar l a opci ón Highlight Execution que se encuent r a en el di agr ama a bl oques, en l a f or ma de un f oco.
Figura 21.- Highlight Execution para observar el paso de la información
9) Pr esi one
Ctrl+T par a
col ocar ambas vent anas j unt as y ej ecut e el VI . Posi bl ement e sea l ent a l a ej ecuci ón, por l o que deber á pr esi onar el bot ón r oj o de par o par a det ener l a mi sma.
Pr áct i ca #8 Est r uct ur as de pr ogr amaci ón en LabVI EW I ng. Mari o Al ber t o Camar i l l o Ramos
15
Instrumentación Ingeniería Mecatrónica
Figura 22.- Ejecución lenta del VI
10) Después
de det ener el VI , asi gne al cont r ol numér i co val or es que se encuent r en f uer a del r ango de si mul aci ón.
11) Ci er r e el
VI .
En est a par t e de l a pr áct i ca se ut i l i zar á un registro de par a t ener corrimiento en conj unt o con una est r uct ur a FOR acceso a i nf or maci ón de i t er aci ones pr evi as. 12) Gener e el
Panel f r ont al de l a f i gur a 23 ( r ecuer de que son i ndi cador es numér i cos) .
Figura 23.- Panel frontal Registro de Corrimiento
Pr áct i ca #8 Est r uct ur as de pr ogr amaci ón en LabVI EW I ng. Mari o Al ber t o Camar i l l o Ramos
16
Instrumentación Ingeniería Mecatrónica
13) Gener e el
Di agr ama a Bl oques de l a f i gur a 24.
Figura 24.- Diagrama a Bloques para registro de corrimiento
a) Ut i l i ce
l a f unci ón de suma ( ADD) que se encuent r a en Functions Programming Numeric. b) Gener e const ant es numér i cas par a el registro de corrimiento FOR y el ci cl o ( Functions Programming Structures) y asi gne el val or de 0 y 10 como se muest r a en l a f i gur a 24. un registro de corrimiento, c) Par a cr ear col oque el cur sor en el bor de del ci cl o FOR y pr esi one el bot ón der echo del r at ón. Sel ecci one Add Shift Register.
Figura 25.- Colocando un registro de corrimiento en la estructura FOR
d) Al
registro de corrimiento se crear el gener a una ent r ada y una sal i da. Como se
Pr áct i ca #8 Est r uct ur as de pr ogr amaci ón en LabVI EW I ng. Mari o Al ber t o Camar i l l o Ramos
17
Instrumentación Ingeniería Mecatrónica
desea t omar l a i nf or maci ón sol o de una sal i da, es necesar i o cr ear el ement os adi ci onal es. Por l o que deber á col ocar se sobr e el registro de corrimiento de ent r ada, pr esi onar el bot ón der echo del r at ón y sel ecci onar Add Real i z ar la Element. oper aci ón dos veces par a t ener l os t r es nodos de ent r ada.
Figura 26.- Creando elementos adicionales para el registro de corrimiento
14) Guar de el
VI como “Registro de corrimiento”.
15) Pr esi one Ctrl+T.
Acti ve Highlight Execution del Di agr ama a Bl oques y ej ecut e el VI .
16) Modi f i que l a const ant e par a el
registro de corrimiento y
par a l a suma a 1. Ej ecut e el VI . 17) Ci er r e el
VI ( no guar de l os cambi os) .
En el si gui ent e VI se har á uso de l a est r uct ur a CASE, apl i cando a un si mpl e pr oceso de cal cul ar l a r aí z cuadr ada de un númer o. Si l a r aí z exi st e se pr opor ci onar á un val or . De no exi st i r ( númer o i magi nar i o) , apar ecer á un mensaj e acor de a l a si t uaci ón.
Pr áct i ca #8 Est r uct ur as de pr ogr amaci ón en LabVI EW I ng. Mari o Al ber t o Camar i l l o Ramos
18
Instrumentación Ingeniería Mecatrónica
18) Gener e el
Panel Fr ont al de l a f i gur a 27 ( un cont r ol y un i ndi cador numér i co) .
Figura 27.- Panel Frontal para Raíz Cuadrada
19) Pr oduzca el si gui ent e Di agr ama a Bl oques:
Figura 28.- Caso verdadero Raíz Cuadrada
a) Col oque
una est r uct ur a de casos
par a l os
event os ( Functions Programming Structures) . b) Ut i l i ce l a f unci ón Greater or equal to 0? par a eval uar si el númer o es mayor o i gual a cer o, r ecor dando que el cer o t i ene r aí z cuadr ada (Functions Programming Comparision) , y conect e l a sal i da a l a ent r ada de l a estructura CASE. c) Col oque l a f unci ón par a r eal i zar l a r aí z cuadr ada dent r o del caso ver dader o ( Functions Programming Numeric Square Root) . cr ear á un mensaj e par a el usuar i o d) Se i ndi cando que l a oper aci ón es vál i da. Par a el l o s e ut i l i z ar á l a f unci ón One Button Dialog & ( Functions Programming Dialog Pr áct i ca #8 Est r uct ur as de pr ogr amaci ón en LabVI EW I ng. Mari o Al ber t o Camar i l l o Ramos
19
Instrumentación Ingeniería Mecatrónica
User Interface) y se cr ear á una const ant e de
car act er es con l a l eyenda de l a f i gur a 28. Est a f unci ón cuent a con dos ent r adas, l a sel ecci ón ser á Message. Recuer de que par a cr ear const ant es di r ect as a l as f unci ones debe col ocar se sobr e el nodo en cuest i ón ( Message) , pr esi onar el bot ón der echo del r at ón y sel ecci onar Create Constant ( deber á ser de col or r osa- mor ado l a const ant e) .
20) Gener e el
subdiagrama par a el
caso f al so.
Figura 29.- Caso falso Raíz Cuadrada
a) Col oque el
cur sor s obr e l a et i quet a TRUE de l a est r uct ur a CASE y pr esi one el bot ón i zqui er do del r at ón. El i j a l a opci ón FALSE. b) Col oque el cur sor sobr e el túnel asi gnado al “Raíz cuadrada” i ndi cador numér i co y pr esi one el bot ón der echo del r at ón. Gener e una const ant e numér i ca ( Create Const ant ) y asi gne el val or de - 999, 999. Pr áct i ca #8 Est r uct ur as de pr ogr amaci ón en LabVI EW I ng. Mari o Al ber t o Camar i l l o Ramos
20
Instrumentación Ingeniería Mecatrónica
c) Real i ce el
paso d) de l a secci ón 19 par a agr egar un mensaj e. Ahor a se añadi r á uno más ( Button name “OK”) y el t ext o cambi ar á a como se muest r a en l a f i gur a 29.
21) Guar de el VI
con el nombr e de “Raíz Cuadrada”.
22) Di r i j a l a at enci ón al
Panel Front al y ej ecut e el VI par a l os si gui ent es val or es: 0, 2, y - 1.
23) Ci er r e el
VI .
En
el si gui ent e VI se har á uso del Stacked Sequence Structure par a det er mi nar cuánt o t i empo l e t oma a LabVI EW ( en mi l i segundos) i gual ar un númer o. 24) Abr a el
VI “Número de iteraciones” que r eal i z ó al i ni ci o de l a pr áct i ca.
25) Agr egue un i ndi cador
numér i co adi ci onal
como se muest r a
en l a f i gur a 30.
Figura 30.- Indicador adicional “Tiempo de procesamiento (ms)”
26) Guar de el VI ut i l i zando l a opci ón SAVE AS… como “Tiempo de procesamiento”. Si apar ece una pant al l a como l a de l a
Pr áct i ca #8 Est r uct ur as de pr ogr amaci ón en LabVI EW I ng. Mari o Al ber t o Camar i l l o Ramos
21
Instrumentación Ingeniería Mecatrónica
f i gur a 31, sel ecci one Copy Substitute copy for original, pr esi one Continue y guar de el VI en el l ugar asi gnado par a l as pr áct i cas .
Figura 31.- Guardando un VI con otro nombre
27) Sel ecci one el
de
Di agr ama a Bl oques. secuenci a
Ut i l i ce l a est r uct ur a api l ada
(Functions Programming Structures Stacked Structure) par a i ncl ui r t odo el códi go del VI . 28) Col oque
Sequence
el
cur sor s obr e l a par t e super i or de l a est r uct ur a y pr esi one el bot ón der echo del r at ón. Sel ecci one l a opci ón Add Frame After par a agr egar una t r ama a l a act ual .
Figura 32.- Agregando una trama a la secuencia
29) Ahor a
t endr á una t r ama vací a con el númer o 1 en l a et i quet a super i or . Gener e el si gui ent e subdiagrama.
Pr áct i ca #8 Est r uct ur as de pr ogr amaci ón en LabVI EW I ng. Mari o Al ber t o Camar i l l o Ramos
22
Instrumentación Ingeniería Mecatrónica
Figura 33.- Trama para procesar tiempo de ejecución
a) Ut i l i ce el
r el oj Tick Counts (ms) par a saber cuánt o t i empo ( en mi l i segundos) ha t r anscur r i do desde el i ni ci o de l a ej ecuci ón ( Functions Programming Timing Tick Counts ms). Recuer de que el i ndi cador adi ci onal puede ser obst r ui do por l a pr i mer t r ama. Si no es posi bl e encont r ar l o, r egr ese a l a t r ama 0, cor t e y pegue en l a t r ama 1.
30) Guar de el
VI .
31) Ej ecut e el
VI con l os si gui ent es val or es: 1, 700, 751. Par a cada val or deber á ej ecut ar el VI en t r es ocasi ones. Obser ve el i ndi cador de t i empo.
32) Ci er r e el
VI .
Por úl t i mo, se ut i l i zar á l a est r uctur a MATHSCRIPT par a cr ear ecuaci ones senci l l as de conver si ón par a t emper at ur a. En est e ej er ci ci o se ut i l i zar á el VI creado en l a pr áct i ca #6 ( Convertidor Fahrenheit a centígrados) . 33) Abr a un nuevo VI . 34) Gener e el
si gui ent e Panel Fr ont al
Pr áct i ca #8 Est r uct ur as de pr ogr amaci ón en LabVI EW I ng. Mari o Al ber t o Camar i l l o Ramos
23
Instrumentación Ingeniería Mecatrónica
Figura 34.- Convertidor de temperaturas
a) Ut i l i ce el t er mómet r o como i ndi cador ( Controls Modern Numeric Thermometer) . b) Par a obt ener el val or numér i co del
t er mómet r o además del vi sual , col oque el cur sor sobr e el i ndi cador de t emper at ur a y pr esi one el bot ón der echo del r at ón. Sel ecci one Visible items Digital Display.
Figura 35.- Agregando indicadores digitales a los termómetros
c) Recuer de que par a cambi ar el aspect o de l as
et i quet as, et i quet a y
pr i mer o se sel ecci ona la después se ut i l i za el bot ón Application Font, que se encuent r a al l ado del í cono PAUSA .
Pr áct i ca #8 Est r uct ur as de pr ogr amaci ón en LabVI EW I ng. Mari o Al ber t o Camar i l l o Ramos
24
Instrumentación Ingeniería Mecatrónica
35) Gener e el
si gui ent e di agr ama a bl oques.
Figura 36.- Diagrama a Bloques del VI con MATHSCRIPT
a) Ut i l i ce l a es t r uct ur a MATHSCRIPT y escr i ba
dent r o de el l a l as si gui ent es ecuaci ones: C=( F- 32) / 1. 8; K=C- 273. 15; Debe col ocar el punt o y coma par a señal ar el f i nal de l a ecuaci ón. b) Col oque el cur sor sobr e l a or i l l a i zqui er da de l a est r uct ur a MATHSCRIPT y pr esi one el bot ón der echo del r at ón, sel ecci one Add Par a l as Input y escr i ba l a l et r a F. sal i das haga l o mi smo per o ahor a del l ado der echo de l a est r uct ur a, col oque C y K ( r emí t ase a l a f i gur a 13 si no r ecuer da cómo) . c) Pr esi one el bot ón der echo del r at ón par a t ener acceso a l a pal et a de f unci ones. Sel ecci one Select a Vi… y abr a el subVI cr eado en l a pr áct i ca ant er i or ( Convertidor Fahrenheit a centígrados) y col óquel o sobr e l a est r uct ur a MATHSCRIPT.
Pr áct i ca #8 Est r uct ur as de pr ogr amaci ón en LabVI EW I ng. Mari o Al ber t o Camar i l l o Ramos
25
Instrumentación Ingeniería Mecatrónica
Figura 37.- Utilizando un subVI
d) Conect e como se sugi er e en l a f i gur a 36. e) Ut i l i ce una est r uct ur a WHILE par a que
el códi go se r epi t a hast a encont r ar un event o que lo det enga ( Functions Programming Structures) f) Col oque el cur sor s obr e la t er mi nal condi ci onant e, pr esi one el bot ón der echo del r at ón y sel ecci one create control ( r evi se l a f i gur a 3 si no r ecuer da cómo) . 36) Modi f i que el
Panel
Fr ont al
par a que t enga l a si gui ent e
pr esent aci ón:
Figura 38.- Panel Frontal con botón de paro
37) Guar de el VI 38) Ej ecut e el
con el nombr e “Convertidor de temperaturas”.
VI .
39) Asi gne l os si gui ent es val or es: 32, 78, 90, 120, y 0.
Pr áct i ca #8 Est r uct ur as de pr ogr amaci ón en LabVI EW I ng. Mari o Al ber t o Camar i l l o Ramos
26
Instrumentación Ingeniería Mecatrónica
Tarea: Con l a i nf or maci ón adqui r i da en est a pr áct i ca, gener e un VI en el cual sea posi bl e conver t i r gr ados Fahr enhei t a Cent í gr ados y Kel vi n. Di cho VI deber á pr opor ci onar una opci ón par a cuando se desee obser var l a conver si ón de gr ados Cent í gr ados y Kel vi n por separ ado ( es deci r , sol o uno a l a vez) . Se r ecomi enda ut i l i zar un i nt er r upt or par a señal ar cuál t emper at ur a se est á convi r t i endo en el moment o de l a sel ecci ón, además de asi gnar el nombr e par a cada t emper at ur a en el i nt er r upt or ( Controls Modern Boolean Vertical Toggle Switch) .
Preguntas
1) ¿Cuál es s on l as di f er enci as ent r e una est r uct ur a WHILE y una FOR ? 2) ¿Cómo se t r ansf i er e l a i nf or maci ón ent r e l as i t er aci ones de un ci cl o? 3) ¿Cómo se ej ecut a una est r uct ur a CASE? 4) ¿Cómo se ej ecut a una est r uct ur a Stacked Sequence? 5) Cuando se ut i l i za l a est r uct ur a MATHSCRIPT, ¿qué sucede si una ent r ada t i ene el mi smo nombr e que una sal i da?
Pr áct i ca #8 Est r uct ur as de pr ogr amaci ón en LabVI EW I ng. Mari o Al ber t o Camar i l l o Ramos
27