Sunteți pe pagina 1din 12

LUCRAREA DE LABORATOR NR.

1 Prezentarea general a programului LabView

1. Noiuni teoretice
LabView este pachetul software lider mondial n achiziia, prelucrarea, stocarea i afiarea datelor, ct i in domeniul controlului de proces. Programele dezvoltate in LABVIEW se numesc Virtual Instruments (VIs). Un VIs se executa pornind de la conceptul de programare a fluxului de date. Acesta nseamn c, ca executia unui bloc sau a unei componente este dependenta de fluxul de date, sau mai exact un bloc se execut atunci cnd datele sunt disponibile la toate terminalele de intrare definite pentru acest bloc. Date de iesire din bloc sunt apoi trimise la toate celelalte blocuri conectate la acesta. Programare bazata pe controlul fluxului de date permite ca mai multe operaiuni s fie efectuate n paralel, execuia unui bloc fiind determinat de fluxul de date i nu de ctre o secvena de linii de cod. 1.1. Intrumente virtuale Un VI are dou componente majore: panoul frontal (PF) i Diagrama Bloc (DB). PF ofer interfaa grafica dintre program si utilizator, iar DB ncorporeaz elementele grafice de cod. Cand un VI este instantiat ntr-un bloc pe diagrama altui VI, se spune ca a fost utilizat ca subVI. VI-urile LabVIEW sunt modulare, ceea ce nseamn c orice VI sau subVI poate fi rulat individul. 1.1.1. Panoul Frontal si Diagrama block PF conine interfata cu utilizatorul pentru un VI definit in DB. Intrarile unui VI, sunt reprezentat de controale: butoane, intrerupatoare, etc. Rezultate unui VI, sunt reprezentate de indicatori: grafice, LED-uri. Pe parcursul executiei unui VI pe PF controalele sunt folosite pentru a dirija executia, iar rezultatele sunt afisate in indicatoare. O DB conine pictograme, noduri, fire i structuri. Terminalele cu pictograme sunt interfee care asigura schimbul de date ntre PF si DB. Ele corespund indicatorilor sau controalelor care apar pe PF. Ori de cte ori un control sau un indicator este plasat pe un PF, un terminal cu o pictogram se adaug in DB. Un nod reprezinta un obiect care are conectori de intrare i/sau ieire i ndeplinete o anumit funcie. SubVI-urile i funciile sunt exemple de noduri. Firele stabilesc fluxului de date ntr-o DB. Structurile de control sunt utilizate pentru a introduce in fluxul unui program iteratii si / sau execuii conditionate. Figura 1-1 prezinta un PF si DB aferenta.

Fig 1.1 Panoul frontal PF si diagrama bloc DB 1.1.2. Pictograma si conectorul Pictograma este o reprezentare grafic a unui VI . Ea apare n colul din dreapta sus a ferestrelor DB sau PF. Cand un VI, este inserat ntr-o DB ca subVI, pictograma sa este afiata. Conectorul definete intrarile (controalele) i ieirile (indicatori) a unui VI. Numrul de intrri i ieirile pot fi schimbat folosind diferite modele conector prezentate in panoul modele. n Figura 1-1, pictograma este afiat n partea din dreapta sus a DB i conectorul corespunzator, care are doua intrari i o ieire, este afiat n aceeasi pozitie pe PF.

1.2. Mediul de programare grafica 1.2.1. Paleta de functii Paleta de functii, prezentata n Figura 1-2, ofer diverse funcii sau blocuri utilizate pentru a construi un VI. Aceast palet pote fi afiata prin efectuarea unui clic dreapta intr-o zona libera a DB. Reinei c aceast palet pot fi afiata numai n DB. 1.2.2. Paleta de control Paleta de control, este prezentata n Figura 1-2b, contine controale i indicatore pentru PF. Aceasta palet poate fi afiata prin efectuarea unui clic dreapta pe o zon libera a PF. Reinei c aceast palet pote fi afiata numai n PF. a 1.2.3. Paleta de unelte Instrumente din aceasta palet sunt utilizate pentru a schimba diverse moduri de funcionare ale cursorul mouse-ului in timpul construirii sau depanarii unui VI. Instrumentele din paleta de unelte precum si explicatiile pentru cele mai frecvent utilizate dintre acesta sunt prezentate n Figura 1-3. Fiecare instrument este utilizat pentru o sarcin specific. De exemplu, instrumentul de conectare este utilizat la trasarea legaturilor (firelor) in DB. n cazul n care Selectarea Automata a Uneltelor este activata, fcnd clic pe Automatic Tool Butonul de selecie, LabVIEW selecteaza cel mai bun instrument pe baza poziiei curente a cursorului. b Fig 1.2 a) Paleta de functii; b) Paleta de control Pictograma Functie Selectarea Automata a Uneltelor Operare Pozitionare Editare text Conectare Proba Fig 1.3 Paleta de unelte

1.3. Crearea unui Panou Frontal In general constructia unui VI este un dute-vino intre PF si DB, interfata: intrarile, iesirile si diverse elemente estetice sunt plasate pe PF, iar blocurile de procesare si structurile pe DB. 1.3.1. Controale si indicatoare Interfara intre VI si utilizator este definita folosind controale si indicatoare. Mrimile de intrare sunt definite prin controale, iar cele mrimile de iesire prin indicatoare. Principalele tipuri de controale si indicatoare sunt prezentate in Fig 1-4. Meniu controale si indicatoare String si path

Logic - boolean

Numeric Array si Cluster

Fig 1-4. Controale si indicatoare

1.3.2. Alinierea, distribuirea si reordonarea obiectelor.

La plasarea unui control sau indicator pe PF o pictograma echivalenta apare in DB; in procesul de constructie al DB utilizatorul de multe ori creaza elemente ce au un echivalent pe PF si sunt plasate automat pe acesta. Toata acesta automatizare nu tine cont de o ordonare a PF sau DB ce poate avea efecte benefice la usurinta citirii datele pe PF sau a generarii legaturilor din DB. Bara de instrumente a PF si a DB, ofera opiuni de aliniere, ordonare si redistribuire obiecte pe PF. n mod normal, dup ce a controalelor i indicatori sunt plasate pe un PF, aceste opiuni sunt utilizate pentru a ordona PF si DB. Aceste butoane sunt prezentate in Fig 1-5. Aliniaza Distribuie Reordoneaza Fig 1-5 Elemente de aliniere, distribuire si reordonare 1.4. Construirea unei diagrame bloc O diagrama bloc este contine terminale (corespunzand indicatoarelor si controalelor definite pe PF), functii, structuri, alte subVI-uri si fire de legatura. In continure vom trece in revista pe rand aceste elemente si modul de creare si utilizare al acestora. 1.4.1. Terminale Obiecte de pe PF sunt afiate ca pictograme n DB. Aceste elemente ale diagramei bloc se numesc terminale. O pictogram a unui terminal prezinta o intrare sau o iesire, precum i tipul datele sale. Figura 1-6 prezint doua pictograme de terminale: un control i un indicatoar numeric in dubla precizie .

Fig. 1.5 Exemplu de pictograma a unui terminal

1.4.2. Fire Fire asigura transferul de date de la un nod la altul n DB. Pe baza tipului datelor a surs culoarea si grosimea firului de conectare se schimba. Fire pentru tipuri de date cel mai des utilizate n LabVIEW sunt prezentate n Figura 1-6. Pe langa aceste exista alte tipuri specifice de date. Pentru exemplu datele de tip waveform, care corespund cu datele de ieire dintr-o VI generator de forme de unda.

Tipul de fir Numeric Boolean String

Scalar

1D Array

2D Array

Culoare Portocalii (real) Albastru (intreg) Verde Roz

Fig. 1-6 Tipuri de fire 1.4.3. Structuri O structur este reprezentat de o fereastra grafica ce separa o sectiune de cod ce este repetat sau executat conditional in functie de tipul structurii. Structurile cele mai des utilizate in Labview sunt For Loop, While Loop si Case. Strutura For Loop este echivalentul instructiuni for din programare. Acesta structura este utilizata pentru a efectua un numar precis de iteratii. Asa cum este ilustrat n Figura 1-7a, o fereastra delimiteaza structura. Terminal reprezinta numarul de iteratii pe care le executa structura. Acesta este setat prin legarea cu un fir din exteriorul buclei. Terminal de iteratie , contine iteratia curenta la care se alfa structura si este intotdeauna initializat de la zero. a Strutura While Loop, prezentata in figura 17b, permite efecturea de iteratii pana la indeplinirea unei conditii. Terminalul de conditie decide continurea ( ) sau oprirea ( )buclei in functie de indeplinirea unei conditii. Modificarea tipului de blucla (continue if true or stop if true) se face prin efecturea unui clic dreaptea pe acest terminal. Alegerea acestei conditii trebuie facuta cu grija pentru a evita crearea unei bucle infinite. La fel ca la bucla for, terminalul de iteratie b contine iteratia curenta a structurii. Structura de tip Case, prezentata in Fig 1-7c, permite executarea a diverse versiuni de cod in functie de valoarea terminalului de selectie . In afara de tipul boolean (care este implicit), terminalul de selectie mai poate fi intreg, string sau orice tip enumerat. Datele legate la acest terminal din exteriorul structurii determina care dintre versiunile de cod continute in ferestrele structurii Case vor fi executate. Selectorul structurii ( ) arata versiunea de cod c asociata unei anumite valori de selectie. Fig. 1-7 Structuri: a) Foor Loop; b) While Loop; c) Case

Cazurile prezentate in selector pot fi adaugate sau sterse dupa necesitate, fiecarui caz fiindu-i asociata o fereastra distincta in interiorul structurii. La legarea de fire la conectoare in interiorul structurii Case porturi sunt create pe mariginea structurii ce au culoarea tipurilor de date aferente. Pentru a permite executarea structurii porturile corespunzatoare iesirilor din structura trebuie sa fie conectate la un terminal sau o functie in interiorul tuturor ferestrelor corespunzatoare cazurilor structurii.

Desfurarea lucrrii
Afisati diferenta intre doua numere Plasati pe panoul frontal doua controale si un indicator de tip numeric.

Pe Diagrama vor aparea echivalentele acestora. Observati diferentele intre reprezentarea indicatoarelor si controalelor. Din menul de functii numerice selectati functia de scadere si folosind cursorul corespunzator legati controalele la intrarile functiei si indicatorul de iesirea acesteia. Folosind combinatia de taste CTRL+H vizualizati helpul pentru functiile folosite si indicatii privind conectarea acestora.

In

Labview

culoarea

obiectelor

de

pe

diagrama

indica

tiplu

datelor:

. Pentru a schimba tipul unui control sau indicator numeric actionati cu butonul din dreapta al mouse-ului si din optiunea representaton selectati tipul dorit:

Schimbati tipul unui control si al indicatorului de pe diagrama curenta in intreg. Observati pe diagrama punctele aparute pe intrarea pe indicator si primitiva de diferenta. Acestea indica efectuarea unei conversii de date in punctul respectiv.

Implementati intr-un nou .vi expresia curent tensiune a unei jonctiuni:


V I = I 0 exp n V th unde I0 este de ordinul 10-10, n intre 1 si 2 si Vth 0.025V. Pentru a modifica numarul de zecimale exacte al controalelor si indicatoarelor de pe panoul frontal actionati butonul din dreapta al mouse-ului si selectati optionea Format & Precison. Creati un nou vi. Pe Diagrama din meniul de Functii->Structuri selectati structura Case si desenati aceasta structura precum in figura de mai jos:

Aceasta structura evalueaza datele de intrare in terminalul de selectie de caz si efectuaza codul din fereastra corespunzatoare cazului valid. Utilizind acesta structura realizati un VI ce foloseste un control de tip boolean pentru a realiza suma sau diferenta a doua numere. Pentru aceasta definiti doua controale si un indicator numeric si un control boolean. Pe diagrama legati controlul bolean de selectorul structuri case si in cele doua ferestre ale acesteia folositi primitivele de adunare si scadere. Observati ca la legarea de date de intrare si iesire intr-un case pe marginea acestuia apar porturi. Pentru a asigura o functionarea structurii indiferent de valoarea selectorului un port de iesire dintr-o strucutra case trebuie sa aiba date valide in oricare dintre cazurile definite. Daca acest lucru nu se intampla programul va returna eroare si portul va arata precum in CAZ-ul 1 din figura de mai jos. In CAZ-ul 2 toate porturile sunt conecate corect si programul poate rula. (In cazul porturilor de intrare nu este necesara folosirea acestora in toate cazurile definite.)

Stergeti contolul boolean de pe panoul frontal si inlocuti-l cu unul numeric te tip natural. Observati ca numele cazurile structuri case s-a schimbat o data cu schimbarea tipului de date foosite pentru selectie. Actionand butonul din dreapta al mouse-ului adaugati mai multe cazuri pentru structura case pentru a extinde functionalitatea programului pentru alte operatii decat cea de adunare si scadere. Observati ca unul din cazuri este marcat ca Defaul. Cand tipul selectorul permite un numar mare de valori posibile, cazul marcat ca Defaul este cel executat in cazul in care valoarea pe care o ia selectorul nu este definita explicit in structura case. O asemena strucutura nu va rula daca nu este definit un caz ca fiind default si oricare dntre cazuri poate fi cazul default prin selectarea acestui caz, actionarea butonului dreapta al mouse-ului pe marginea structurii case si alegerea optiunii Make This The Default Case. Modificati VI-ul astfel incat structura CASE sa realizeze in functie de valoarea terminalului de selectie urmatoarele operatii: 1 sum 2 diferenta 4 radical primului control numeric 5 inmultire 6 patratul celui de-al doilea control numeric orice alta valoare media aritmetica

10

Pe un nou VI pe diagrama desenati o structura de tip FOR LOOP. Aceasta bucla executa N iteratii folosind un contor de la 0 la N-1.

Pe o asemenea structura se pot definii registre cu shiftare (shift register). Aceste registre de dimensiune reglabila se comporta ca niste stive de tip First-In-First-Out si permit accesul in cadrul iteratiei curente la date introduse in registrul in cadrul iteratiilor anterioare. Pentru a definii un shift register actionati butonul dreapta al mouse-ului pe una dintre lateralele structurii FOR si alegeti optiunea Add shift Register. Dimesiunea registrul se poate schimba prin actionarea butonului din dreapta al mouse-ului pe un registru si alegea optiunii Add Element. Pentru a putea avea acces la datele dintr-un registru si la iteratia 0 orice registru toate elemente registrulu trebuie initializate.

11

Realizati un .vi ce calculeaza elementul N din sirul lui Fibonacci pentru N>1: F(N)=F(N-1)+F(N-2) si F(0)=0, F(1)=1., folosind o structura FOR LOOP cu un registru de siftare de dimensiune 2. Realizati pe acelasi VI calcului lui F(N) folosind o structura WHILE LOOP, folosind acelas control N ca si structura FOR LOOP si comparati rezultatele.

12