Despre Oferta Tutoriale Articole Carti Download Legaturi Noutati
Initiere in mediul de programare grafica LabVIEW
Partea a IV-a
un material scris de Ionut GHIONEA

Articole

Cuprins
Materiale: comparatii.vi, structuri.vi

Functii pentru comparatii

Functiile pentru efectuarea comparatiilor sunt grupate in subpaleta Comparison a paletei de functii. Acestor functii le este caracteristic faptul ca datele de intrare pot fi de diverse tipuri (numerice, booleene, alfanumerice etc), dar datele de iesire sunt, in general, valori logice (booleene).

De asemenea, este importanta pozitia in care datele de intrare sunt legate la terminalul functiei (la intrarea de sus sau la cea de jos). In cazul functiei Greater?, spre exemplu, iesirea va avea valoarea booleana True daca valoarea de la intrarea de sus este mai mare decat valoarea de la intrarea de jos sau va avea valoarea booleana False in caz contrar (Figura 1).

Fig. 1. Exemplificarea functiei Greater?

 

Cele mai utilizate functii din subpaleta Comparison sunt functiile de comparare a doua marimi sau de comparare a unei marimi cu valoarea nula, precum: Equal?, Not Equal?, Greater?, Less?, Greater Or Equal?, Less Or Equal?, Equal To 0?, Not Equal To 0?, Greater Than 0?, Less Than 0?, Greater Or Equal To 0?, Less Or Equal To 0?. Acestea sunt plasate pe primele doua linii ale subpaletei de functii Comparison.

In plus, subpaleta Comparison contine si alte functii, complexe, precum: Select, Max&Min, In Range and Coerce, Decimal Digit?, Hex Digit?, Octal Digit? etc., plasate pe ultimele doua linii ale subpaletei de functii.

Functia Select (Figura 2) genereaza la iesire valoarea de la intrarea t (True) daca valoarea logica de la intrarea s este True, respectiv valoarea de la intrarea f (False) daca valoarea logica de la intrarea s este False. Valorile de la intrarile t si f pot fi atât numerice, cât si alfanumerice.

Fig. 2. Exemplificarea functiei Select

 

Functia Max & Min (Figura 3) genereaza la iesirea Max cea mai mare dintre valorile X si Y, respectiv la iesirea Min pe cea mai mica dintre acestea.

Fig. 3. Exemplificarea functiei Max & Min

 

Functia In Range and Coerce (Figura 4) verifica daca valoarea de la intrarea X este cuprinsa intre valorile de la intrarile Lower Limit (limita inferioara) si Upper Limit (limita superioara), iar valoarea logica reprezentând rezultatul verificarii este generata la iesirea In Range?. In mod implicit, intervalul de incadrare este inchis la stânga si deschis la dreapta; inchiderea sau deschiderea intervalului la extremitatile sale poate fi configurata de catre utilizator din meniul contextual al functiei, activând sau dezactivând optiunile Include upper limit si Include lower limit. Rezultatul aducerii obligatorii a valorii X in intervalul prescris este generat la iesirea Coerced(X).

Fig. 4. Exemplificarea functiei In Range and Coerce

 

Functia Decimal Digit (Figura 5) intoarce o valoare booleana True in situatia in care caracterul de la intrarea sa este o cifra intre 0 si 9 sau genereaza o valoare False in caz contrar.


Fig. 5. Exemplificarea functiilor Decimal Digit?,
Hex Digit? si Octal Digit?

 

Subpaleta Comparison contine, de asemenea, functii pentru a verifica daca un caracter este cifra in baza de numeratie 16 (Hex Digit?), cifra in baza de numeratie 8 (Octal Digit?), caracter tiparibil (Printable?) sau caracter netiparibil (White Space?).

Structurile de programare sunt componente ale diagramei si contin o serie de terminale de elemente, simboluri de functii si valori constante ce formeaza un flux de date in interiorul structurii (Figura 6).

Fig. 6. Structurile de programare

 

Daca, in momentul in care structura este aleasa din subpaleta Structures, o parte din elementele pe care urmeaza sa le contina se afla deja dispuse in diagrama, chenarul structurii poate fi trasat in jurul componentelor respective. Dupa dispunerea in diagrama, conturul structurii poate fi deplasat sau dimensionat. In cazul in care o structura este deplasata, aceasta antreneaza toate elementele din interiorul sau. Elemente aflate in exteriorul structurii pot fi mutate in interiorul acesteia, iar elemente din interior pot fi mutate in afara structurii. Prin dimensionare sau deplasare, o structura se poate suprapune cu alte elemente din diagrama, caz in care acestea nu vor fi incluse in structura.

-Structura secventiala (Sequence). Atunci când dispune de mai multe ferestre, fiecare dintre acestea cu propriul flux de date, o structura Sequence executa in ordine crescatoare ferestrele respective. Spre exemplu, in Figura 7 sunt reprezentate alaturat doua ferestre ale aceleiasi structuri Sequence. Astfel, se va executa intâi fereastra cu indicele 0, trimitându-se valoarea de la elementul de control Valoare 1 la elementul indicator Valoare 2, apoi se va executa fereastra 1, transmitând valoarea de la elementul de control Valoare 3 la elementul indicator Valoare 4.

Fig. 7. Exemplificarea structurii de programare Sequence

 

La dispunerea in diagrama, o structura Sequence contine o singura fereastra, care este totodata si fereastra curenta (vizibila). Din meniul contextual al structurii, alegând una din optiunile Add Frame After sau Add Frame Before, se poate adauga o fereastra dupa sau inaintea celei curente. Astfel, o structura Sequence va contine mai multe ferestre, care primesc indici incepând de la 0, iar pe latura superioara a conturului structurii apare un cursor cu ajutorul caruia se trece de la o fereastra la alta.

-Structura cauzala (Case). La dispunerea sa in diagrama, o structura Case contine doua ferestre (True si False), fiecare dintre acestea cu propriul flux de date. Pe conturul structurii se afla dispus un terminal selector (de culoare verde, continând semnul intrebarii). Structura Case va executa doar una dintre cele doua ferestre, in functie de valoarea booleana (True sau False) conectata la terminalul sau selector (Figura 8).

Fig. 8. Exemplificarea structurii de programare Case

 

Daca la terminalul selector al unei structuri Case, in locul unei valori booleene, se conecteaza o valoare numerica, numele ferestrelor se vor modifica automat din True si False in 0 si 1. In continuare, structura va executa fereastra al carei nume coincide cu valoarea numerica ce ajunge la terminalul sau selector. Deoarece structura Case nu va putea contine atâtea ferestre câte valori numerice pot ajunge la terminalul sau selector, una dintre ferestre trebuie declarata drept fereastra implicita (Default) si va fi executata atunci când valorii ajunse la terminalul selector nu ii corespunde nici un nume de fereastra.

-Structura repetitiva cu numar fix de iteratii (bucla For) executa portiunea de diagrama, pe care o contine, de un numar fix de ori. O executie a portiunii interne de diagrama poarta numele de iteratie. O bucla For (Figura 9) prezinta in coltul din stânga-sus un terminal (notat N), la care trebuie legata o valoare care specifica numarul de iteratii pe care bucla For le va executa.

Fig. 9. Exemplificarea structurii de programare For

 

In interiorul buclei se mai afla si un terminal numarator (notat cu i) care genereaza o valoare numar natural reprezentând indicele iteratiei aflate in curs de executie. Indicii iteratiilor sunt numerotati incepând de la valoarea 0, astfel incât ultima iteratie executata de catre bucla For va avea indicele N-1.

-Structura repetitiva cu conditie de terminare (bucla While) executa portiunea de diagrama continuta pâna când la terminalul de continuare (aflat in coltul dreapta-jos) apare o anumita valoare booleana. La dispunerea unei bucle While in diagrama (Figura 10), terminalul sau de continuare este setat in starea implicita Continue If True. Bucla va continua sa execute iteratii succesive atât timp cât la terminalul sau de continuare ajunge o valoare logica True. Daca la terminalul de continuare ajunge o valoare logica False, bucla While nu mai trece la urmatoarea iteratie si isi incheie executia.

Fig. 10. Exemplificarea structurii de programare While

 

Starea implicita a terminalului de continuare poate fi modificata astfel: terminalul poate fi trecut in starea Stop If True, fie cu unealta de operare, fie apasând butonul drept al mouse-ului si selectând starea respectiva din meniul contextual. In starea Stop If True bucla While isi va incheia executia atunci când la terminalul de continuare ajunge valoarea booleana True. De asemenea, in coltul stânga-jos, bucla While prezinta un terminal numarator (notat cu i) care genereaza o valoare numar natural reprezentând indicele iteratiei aflate in curs de executie. Indicii iteratiilor sunt numerotati incepând cu valoarea 0.

 

 
Introducere

Contact: office@catia.ro
Top
Home Email