LUCRAREA NR. 5
STRUCTURI DE CONTROL N LabVIEW
1. Obiectivele lucrarii
a) Cunoasterea principalelor structuri de control din mediul de programare grafic LabVIEW.
b) Însusirea modului de utilizare a structurilor în mediul de programare grafic LabVIEW.
2.Aparatura si suporturile utilizate:
a) PC în configuratia unitate centrala,monitor, tastatura;
b) Precizarile din prezen 22322d320w tul îndrumar;
c) Manual de prezentare a mediului de programare grafic LabVIEW
3.Breviar
Structurile din LabView sunt echivalentul grafic al instructiunilor de ciclare (for, while) si de decizie (if,case) din limbajele de programare clasice.
O structura este reprezentata printr-un dreptunghi a carui dimensiune poate fi modificata . Partea din diagrama care se gaseste în interiorul dreptunghiului se numeste "subdiagrama" iar terminalele prin care datele sunt introduse în subdiagrama si sunt preluate rezultatele prelucrarii se numesc "tuneluri".
Structurile de control se gasesc în paleta de functii ale diagramei în subpaleta Structures ca în figura 1.
Figura 1. Structurile de control ale mediului LabVIEW.
3.1. Secventa
O secventa este o succesiune de subdiagrame ce se executa consecutiv. Este posibila trecerea de rezultate dintr-o subdiagrama în subdiagramele urmatoare folosind terminale locale(reprezentate de sagetile rosii).
Exemplu:
Figura 2. Exemplu de secventa în LabVIEW.
Secventa anterioara cuprinde trei subdiagrame : prima calculeaza dublul unei valori introduse de la tastatura, a doua calculeaza patratul aceleiasi valori iar ultima calculeaza suma celor doua rezultate anterioare. Se observa folosirea de terminale locale (Meniu contextual "Add Sequence Local") pentru a trece rezultatele primelor doua subdiagrame în cea de-a treia. Adaugarea de noi subdiagrame în secventa se face folosind meniul contextual ( "Add Frame Before", "Add Frame After").
Trecerea dintr-o subdiagrama în alta se face folosind sagetile din partea de sus a simbolului pentru secventa.
Rezultatul executiei diagramei anterioare este urmatorul :
Figura 3. Rezultatul executiei programului.
3.2. Bucla "FOR"
Bucla "FOR" permite executia unui bloc de un numar dat de ori.
Exemplu:
Figura 4. Exemplu pentru bucla "FOR".
Terminalul notat cu "N" se initializeaza cu valoarea numarului de repetari ale ciclului. "i" reprezinta contorul ciclului. Daca se doreste o temporizare ( o întârziere între iteratii consecutive ale ciclului - utila de exemplu în cazul în care se achizitioneaza o marime dintr-un proces la interval de o secunda ) se introduce în subdiagrama o functie de tip "Wait" (întârzierea se specifica în milisecunde prin conectarea unei constante la blocul de temporizare).
Figura 5. Rezultatul executiei programului.
Prin executia diagramei anterioare indicatia termometrului (care este legat la contorul ciclului) creste pâna la valoarea introdusa în controlul numeric (legat la numarul de iteratii ) .
3.3. Bucla "WHILE"
Bucla "WHILE" permite executia unui bloc atât timp cât o conditie data este adevarata ( sau falsa ).
Exemplu:
Figura 6. Exemplu pentru bucla "WHILE".
Ca si la bucla "FOR", "i" are semnificatia de contor al ciclului în vreme ce terminalul din dreapta jos reprezinta conditia de executie a ciclului (se executa atât timp cât variabila conectata la acest terminal are valoarea "TRUE").
Este necesar deseori sa se treaca valori dintr-o iteratie în iteratia urmatoare . În acest scop se folosesc "registre de deplasare" ("shift registers" ce se introduc din meniul contextual asociat blocului ). Acestea nu au un tip de date asociat preluând tipul de date de la constantele la care sunt legate.
În exemplul nostru am dorit ca în fiecare iteratie
sa facem o operatie de tipul "n=n+1" cu n=0 la început. Pentru initializarea
la intrarea în ciclu registrul de
deplasare se conecteaza la
Efectul executiei diagramei anterioare este urmatorul :
Figura 7. Rezultatul executiei programului.
Cât timp maneta este în pozitia "ON" indicatia termometrului creste cu 1șC/secunda (se executa ciclul "WHILE").
3.4. Structura "CASE"
Structura "CASE" permite executia uneia din mai multe subdiagrame functie de valoarea unei variabile de selectie ce poate fi de tip boolean, întreg, string.
În cazul unui bloc de tip "CASE" este posibil sa avem mai multe tuneluri de intrare si de iesire. Este necesar ca tunelurilor de iesire sa le fie asignata câte o valoare în fiecare subdiagrama a structurii "CASE".
Exemplu:
Figura 8. Exemplu pentru structura "CASE
Valoarea legata la terminalul marcat cu "?" reprezinta selectorul structurii. În functie de tipul selectorului se schimba si constantele de selectie din partea de sus a subdiagramei. În exemplul nostru am ales un selector de tip boolean deci identificatorii de selectie sunt "TRUE" si "FALSE". Se trece prin fiecare identificator folosind sagetile si se construiesc subdiagramele asociate.
În cazul în care am fi avut mai multe valori posibile pentru identificatorii de selectie (daca de exemplu selectorul ar fi fost de tip întreg) acestia s-ar fi adaugat folosind meniul contextual asociat structurii "CASE". De remarcat ca în acest caz este necesar si un identificator de selectie de tip "default" care sa prelucreze valorile nespecificate.
Efectul executiei diagramei anterioare este de a da indicatorului numeric valorile "5" sau "100" functie de starea selectorului boolean.
Figura 9. Rezultatul executiei programului.
4. Mod de lucru
a) Se alimenteaza sistemul cu tensiune;
b) Se lanseaza mediul LabVIEW;
c) Se implementeaza programele descrise în breviarul prezentei lucrari.
5. Exercitii
Sa se realizeze un program în LabVIEW care sa calculeze n! utilizând structura FOR
sau structura WHILE.
Sa se realizeze un program în LabVIEW care sa calculeze sinusul sau cosinusul unei
valori introduse, în functie de starea unui buton (pornit/oprit). Se va utiliza structura CASE.
|