Documente Academic
Documente Profesional
Documente Cultură
Lucrarea de laborator 4
SCOPUL LUCRRII:
Scopul acestei lucrri este de a face o introducere n mediul de programare grafic LabVIEW.
Se va prezenta conceptul de instrument virtual (VI), cum se creeaz un instrument virtual i se vor
realiza aplicaii simple de instrumentaie virtual.
NOIUNI TEORETICE
Orice program LabVIEW este numit instrument virtual (VI Virtual Instrument).
Instrumentul virtual (VI) n LabVIEW este un modul de program a crui form grafic de
prezentare (interfa) este asemntoare cu un instrument real i realizeaz funciile acestuia.
Instrumentele virtuale sunt formate din dou pri distincte, dar strns legate ntre ele: panoul
frontal i diagrama bloc:
1
Introducere in mediul de programare LabVIEW Lucrarea 1
- Panoul frontal este panoul de control al instrumentului virtual sau interfaa utilizator a
aplicaiei. Prin intermediul panoului frontal se pot stabili valori de intrare i respectiv
vizualiza datele. ntruct panoul frontal este asemntor cu cele existente la aparatele reale,
intrrile sunt numite controale, iar ieirile indicatoare. Se poate folosi o mare varietate
de controale i indicatoare cum ar fi ntreruptoare, comutatoare, butoane, diagrame,
grafice i altele, pentru a face panoul frontal uor de identificat i de neles. n figura 6.1
este prezentat un exemplu de panou frontal pentru un instrument virtual destinat msurrii
temperaturii.
- Diagrama bloc reprezint codul surs al instrumentului virtual i nsoete fiecare panou
frontal. Construcia diagramei bloc se face sub forma unei diagrame de flux de date,
utiliznd limbajul grafic de programare G. Componentele diagramei bloc, cum ar fi buclele
(Loops), structurile Case i funciile aritmetice, controalele i indicatoarele, reprezint
nodurile programului. Aceste componente sunt conectate ntre ele prin fire n diagrama
bloc pentru a arta traseul fluxului de date. Un bloc de instruciuni se execut doar cnd la
toate intrrile sunt disponibile date; rezultatele sunt furnizate n exteriorul blocului doar
dup execuia tuturor instruciunilor din cadrul acestuia. Diagrama bloc pentru un
instrument virtual destinat msurrii temperaturii este prezentat n figura 1.2.
2
Achiziiia si procesarea datelor Laborator 4 .
Conectarea unui VI n diagrama bloc a unui alt instrument virtual de nivel mai nalt se face
printr-o pictogram/conector. Terminalele conectoare indic unde trebuie legate firele pentru
intrrile i ieirile instrumentului reprezentat prin pictograma respectiv.
Programarea n LabVIEW se face n dou ferestre diferite: interfaa utilizator sau panoul
frontal i diagrama sau codul sur. Cele dou ferestre se activeaz simultan la lansarea programului
LabVIEW, una n spatele celeilalte. Trecerea de la o fereastr la alta se face prin executarea unui
click cu mouse-ul pe fereastra respectiv sau cu comanda show diagram /show panel din meniul
Window.
Pentru realizarea aplicaiei dispunem de o multitudine de unelte, funcii de bibliotec i
subinstrumente virtuale. Imediat sub meniu avem bara de unelte (Tool Bar) care conine cele mai
utilizate butoane. Celelalte unelte necesare n faza de dezvoltare a aplicaiei se acceseaz din meniul
Window i sunt: paleta de scule (Tools palete), paleta de control (Controls) i paleta de funcii
(Functions). Aceste ultime dou palete se activeaz din ferestrele Panel, respectiv Diagram, sau
prin click cu tasta dreapt a mouse-ului n interiorul ferestrei respective. n interiorul acestor palete
VI-urile i funciile sunt grupate pe categorii funcionale.
3
Introducere in mediul de programare LabVIEW Lucrarea 1
4
Achiziiia si procesarea datelor Laborator 4 .
1.3.1 Structuri
Fluxul de date dintr-un instrument virtual (VI) este controlat cu ajutorul structurilor.
LabVIEW dispune de opt tipuri de structuri de control al programului: structura repetitiv While
(While Loop), structura repetitiv For (For Loop), structura pentru selecie multipl Case,
structurile secveniale Stacked Sequence i Flat Sequence i structura eveniment Event, structura
Bucla temporizata (Timed Loop), Formula Node, si MathScript Node. Plasarea unei structuri n
diagrama bloc se face prin selectarea sa din setul Structs&Constants din meniul Functions i
ncadrarea zonei care va fi repetat. Toate instruciunile care se repet vor fi plasate n interiorul
structurii.
5
Introducere in mediul de programare LabVIEW Lucrarea 1
este folosit atunci cnd ordinea de execuie a anumitor instruciuni trebuie precizat clar.
Exist dou structuri de tip secven: stacked sequence secven ale crei cadre sunt
suprapuse i flat sequence secven cu cadrele reprezentate unul lng altul. n cazul
secvenei cu cadrele suprapuse, datele sunt transmise de la un cadru la altul prin utilizarea
unor regitri numii sequence local.
Structura Case structur de selecie cu alternative multiple, echivalenta instructiunilor
decizionale if si case din limbajul C, permite i ea construirea unui ansamblu de cadre
numerotate, fiecare cadru corespunznd unui caz. n funcie de valoarea legat la
terminalul selector, structura va executa un singur caz. Valoarea selectoare poate fi
numeric sau boolean. Dac este boolean, structura are un caz adevrat (True) i unul
fals (False). Dac este numeric, structura poate avea pn la 231-1 cazuri.
Ciclul For este o structur repetitiv care execut diagrama din interiorul marginilor sale
de un numr prestabilit de ori. Ciclul For dispune de dou terminale: terminalul numr de
execuii <<N>> (de intrare) i terminalul contor al iteraiilor <<i>> (de ieire). Terminalul
numr de execuii specific numrul de iteraii pe care trebuie s le efectueze ciclul.
Terminalul contor al iteraiilor specific numrul de iteraii care au fost executate pn n
momentul de fa. Ciclurile For i While permit folosirea regitrilor de schimb Shift
Register, care reprezint variabile locale care transfer valorile de la o iteraie la
urmtoarea. Crearea unui registru de schimb se face executnd clic dreapta cu mouse-ul pe
marginea din dreapta sau stnga a ciclului i selectnd Add Shift Register din meniul cu
comenzi rapide care apare. Registrul de schimb conine o pereche de terminale aezate n
opoziie pe marginile din stnga i dreapta ale ciclului.
Ciclul While este o structur de repetiie clasic folosit pentru a executa diagrama din
interiorul su pn cnd valoarea boolean trimis terminalului condiional (un terminal de
intrare) este identic cu condiia de oprire. Aceast condiie poate fi setat: stop if true sau
continue if true. n cazul structurii While, numrul de repetri nu este cunoscut n
momentul construciei VI-ului i poate s varieze, pentru acelai VI, de la o rulare la alta.
VI-ul verific terminalul condiional la sfritul fiecrei iteraii astfel nct ciclul While va
fi executat ntotdeauna cel puin o dat. Terminalul iteraie <<i>> este un terminal
numeric de ieire care conine numrul de iteraii executate de ciclu pn n momentul
respectiv.
Structura Event (eveniment) este o structur care poate avea una sau mai multe
subdiagrame, corespunztoare cazurilor care trebuie executate la apariia unui eveniment n
panoul frontal al aplicaiei. Intrarea time out specific timpul n ms pe ct structura trebuie
s atepte apariia evenimentului. Valoarea implicit este -1 ceea ce nseamn c ateapt
la infinit (fr time out).
Structura Timed Loop (Bucla temporizata) executa instructiunile pe care le contine in
timpul specificat. Se utilizeaza in aplicatii in care controlul timpului de executie al
instructiunilor este foarte important.
Structura Formula Node executa instructiuni matematice si expresii definite in format
similar limbajului C.
Structura MathScript Node - executa scripturi scrise cu sintaxa similara limbajului
Matlab
Regitrii de schimb (disponibili pentru ciclurile While i For) sunt variabile locale care
transfer valorile de la o iteraie la nceputul urmtoarei. Ei se plaseaz pe conturul structurii astfel:
intrarea n stnga (o sgeat descendent) i ieirea n dreapta (o sgeat ascendent). Pentru o
execuie corect, punctele de intrare trebuiesc iniializate. Regitrii de schimb se pot configura astfel
6
Achiziiia si procesarea datelor Laborator 4 .
nct s permit accesul la valorile din iteraiile precedente. Pentru fiecare iteraie ale crei valori se
dorete a se revedea, trebuie adugat un nou element la terminalul din stnga al registrului de
schimb.
Diagramele - sunt indicatoare numerice speciale, de tip grafic, utilizate pentru afiarea unuia
sau mai multor puncte. Cu ajutorul acestor indicatoare se pot reprezenta evoluia formelor de und
n timp (waveform chart), grafice de tip XY, sau imagini 3D. Ele pot fi selectate prin intermediul
opiunii Graph din meniul Controls. Diagramele pot afia una sau mai multe curbe simultan.
Modul de desenare a graficelor este destul de variat, utilizatorul putnd s aleag forma i culoarea
de reprezentare a punctelor, modul de interpolare, etc. Diagramele permit trei moduri de actualizare
a imaginii: prin derulare (strip chart), prin redesenare (scope chart) i prin baleiere (sweep chart).
Selectarea modului dorit se poate face prin execuia unui clic dreapta cu mouse-ul pe diagram,
selectnd apoi una dintre opiunile meniului Data Operations -> Update Mode. (n modul rulare
se selecteaz Update Mode din meniul cu comenzi rapid al diagramei).
long
unsigned byte
unsigned long
double precision
7
Introducere in mediul de programare LabVIEW Lucrarea 1
extended precision
complex single
complex extended
Boolean
Figura 1.6. Tipuri de date i reprezentarea acestora
Datele pot fi vehiculate intre functiile si subinstrumentele (subVI) care intra in componenta
unui instrument virtual in mai multe formate:
- scalar,
- array vector unidimensional (1D array),
- matrice sau vector multidimensional (2D array),
- cluster - structura de date care poate sa contina variabile multiple de acelasi tip sau diferite;
- waveform structura de date specifica utilizata in aplicatii de achizitie si procesare de
semnale, care contine valorile masurare, data si ora la care au fost achizitionate, timpul
initial t 0 de incepere a achizitiei, perioada dintre doua esantionane dt (esantionare uniforma),
informatii despre semnale.
Firele de legtur ntre componente sunt specifice tipului de date vehiculate, si difera prin
culoare i grosime (figura 1.7), pentru o mai usoara intelegere a functionarii aplicatiei software:
LabVIEW permite gruparea mai multor date de acelai tip sau diferite ntr-o structur de tip
cluster, folosind funcia Bundle. Operaia invers, de extragere a datelor dintr-un cluster, se
8
Achiziiia si procesarea datelor Laborator 4 .
numete Unbundle. Aceste funcii se gsesc n librria Cluster. Un exemplu de utilizare a datelor
de tip cluster este pentru reprezentarea pe acelai grafic a mai multor variabile indexate.
Alte faciliti de afiare i control (Tabele i liste, Casete text i Cale fiier pe harddisk,
butoane tip selecie din list, afiare/introducere vectori i matrici, etc.) sunt prezentate n figura
1.10.
Pentru scriere/citirea datelor pe harddisk se pot folosi funciile simple de lucru cu fiiere sau
VI-uri care pot scrie/citi toate componentele unui vector sau ir de caractere.
10
Achiziiia si procesarea datelor Laborator 4 .
Scrierea datelor dintr-un vector/matrice ntr-un fiier text pe harddisk, pe linie sau coloan, se
poate face folosind VI-ul Write to SpreadSheet File.vi din librria File I/O. Datele de intrare de tip
numere reale single-precision dintr-un vector (unidimensional sau multidimensional) se aplic pe
intrrile 1D sau 2D, sunt convertite ntr-un ir de caractere cu formatul specificat (formatul default
este %.3f - numere reale cu 3 cifre dup virgul), iar apoi sunt salvate n fiierul specificat pe
intrarea file path. Dac nu se specific nici un fiier, la rulare se va deschide o fereastr de tip Open
File pentru a alege fiierul dorit. Fiierul poate fi deschis ca nou sau pentru adugare dup ultima
nregistrare, opiune accesibil pe intrarea append to file?. Implicit, fiierul se va deschide ca nou.
Datele pot fi scrise n fiier pe linie (transpose? - false) sau pe coloane (transpose? - true), fiind
delimitate de caracterul specificat pe intrarea delimiter (implicit, caracterul delimitator este Tab).
Dup salvarea datelor, fiierul este nchis.
Operaia invers de extragere ntr-un vector/matrice a datelor dintr-un fiier se face cu VI-ul
Read From Spreadsheet File.vi
Observaie: intrrile care au specificate valori implicite pot fi lsate neconectate; n acest caz
valoarea lor va fi cea implicit (default).
Pentru salvarea irurilor de caractere ntr-un fiier se poate folosi VI-ul Write Characters To
File.vi, care opereaz n mod asemntor.
Pentru lucrul cu iruri de caractere (string) exist diverse faciliti, disponibile n librria
String, cum ar fi funcii pentru cutare ntr-un ir, concatenare iruri, conversie din string n alte
formate i invers, etc.
Un alt capitol la care LabVIEW ofer un numr mare de funcii i VI-uri dedicate este
comunicaia pentru controlul instrumentelor i comunicaia ntre aplicaii. Fiind orientat n special
pentru realizarea de aplicaii de msurare i automatizare, n bibliotecile sale exist funcii i VI-uri
pentru comunicaia cu echipamentele hardware pe principalele tipuri de interfee: VISA, VXI/PXI,
RS-232, RS-485, GPIB (IEEE 488), PCI, USB, Fireware, Ethernet, Driver de instrument.
Funciile pentru controlul instrumentelor i pentru comunicaie sunt grupate n librriile
Communication i Instrument I/O. Pentru plcile de achiziie de date interne produse de National
Instruments exist drivere care se instaleaz separat (NiDAQ drives). Cnd sunt instalate i
driverele, funciile pentru controlul plcilor de achiziie sunt grupate n librria NI Measurement.
LabVIEW ofer de asemenea faciliti pentru realizarea de aplicaii distribuite, la care
comunicaia se poate realiza prin reeaua de calculatoare folosind protocol TCP/IP, sau prin
internet. n acest sens exist disponibile n librriile sale mecanisme i funcii pentru comunicaia pe
reea (TCP/IP, UDP), tehnologii precum .NET, Active X, SMTP Email, VI Server sau DataSocket
Technology.
11
Introducere in mediul de programare LabVIEW Lucrarea 1
ALGORITM:
Program LabVIEW:
12
Achiziiia si procesarea datelor Laborator 4 .
1. Construii un VI care s genereze numere aleatoare a cror valoare variaz ntr-un interval
[-A, +A], unde valoarea A poate fi reglat de utilizator, i s le afieze ntr-o diagram cu
actualizare de tip redesenare. Pentru generarea numerelor aleatoare se va folosi
generatorul de numere aleatoare cuprinse ntre 0 i 1 din LabVIEW. Dac notm cu x
aceste numerele aleatoare i cu y numerele din intervalul [-A,+A], atunci numerele y se
pot calcula cu relaia:
y = 2Ax - A
Panoul i schema bloc ale aplicaiei sunt prezentate n figura 1.13
13
Introducere in mediul de programare LabVIEW Lucrarea 1
o Se deschide panoul Controls (din Windows / Show Controls Palette), iar din Numeric se
va face click pe Simple Horizontal Slide i se poziioneaz pe ecran (se va eticheta:
Valoarea lui A);
o n panoul Controls se selecteaz Graph i apoi Waveform Chart, se poziioneaz pe
panou i se denumete: Vizualizare numere aleatoare;
o Se activeaz fereastra Diagram, iar din meniul Functions / Numeric se aduc pe ecran
urmtoarele icon-uri: Random Number, Numeric Constant, Multiply i Substract;
o Se cableaz schema bloc din fereastra Diagram cu Conect Wire (din Tools Palete)
pentru a realiza relaia y = 2Ax A. O conexiune corect este indicat printr-un fir
continuu. Dac o conexiune devine punctat nseamn c a aprut o eroare la conectare,
iar eroarea respectiv este semnalizat ntr-o fereastr numit Error List;
o Dup realizarea corect a schemei, din fereastra panou se ruleaz aplicaia, cu ajutorul
butonului de rulare .
Observaie: programul calculeaz un singur numr aleator la o rulare. Pentru a vedea mai
multe numere pe grafic se poate apsa butonul rulare continu . O alt soluie este s se
foloseasc o bucl de repetiie n program.
14
Achiziiia si procesarea datelor Laborator 4 .
Indicaie: pentru a crea un subVI, trebuie construite pictograma i conectorii pentru acel
subVI. Conectorul reprezint interfaa programabil ctre un VI. Dac se
utilizeaz controale sau indicatoare n panoul frontal pentru a schimba date cu
subVI-urile, atunci aceste controale i indicatoare necesit terminale n zona
conectorului.
Pentru realizarea pictogramei trebuie fcui urmtorii pai:
- click dreapta pe pictograma (icon) din colul din partea dreapt sus a ferestrei panoului
sau diagramei i selectarea opiunii Edit Icon;
- alegerea numrului de culori: 16 sau 256 culori sau alb/negru i desenarea pictogramei
folosind instrumentele din partea stng.
Pentru realizarea conectorilor trebuie fcui urmtorii pai:
- selectarea Show Connector din meniul cu comenzi rapide asociat zonei pictogramei;
- click dreapta pe conector i selectarea Patterns pentru a alege un alt mod de dispunere a
terminalelor pentru VI;
- Asocierea terminalelor la controale i indicatoare se face click pe un terminal al
conectorului (terminalul se nnegrete) i apoi se face click pe controlul sau indicatorul
panoului frontal la care se dorete asocierea terminalului selectat. n jurul controlului
selectat va apare un marcaj;
- Se repet pasul anterior pentru fiecare control sau indicator care trebuie conectat.
15
Introducere in mediul de programare LabVIEW Lucrarea 1
Figura 1.15 Panoul i diagrama programului pentru salvarea n fiier a dou semnale
Indicaie: se va forma o matrice bidimensional care s conin valorile eantioanelor celor
dou funcii iar apoi se va salva ntreaga matrice n fiier folosind VI-ul Write to Spreadsheet File.vi
din biblioteca File I/O.
7. Construii un VI care s simuleze msurarea continu a temperaturii la intervale de o
secund i s o afieze ntr-o diagram cu actualizare prin redesenare. Dac temperatura crete sau
scade sub anumite valori prestabilite, VI-ul aprinde nite LED-uri de avertizare pe panoul frontal.
Pe grafic vor fi afiate att evoluia temperaturii ct i limitele permise de variaie a acesteia.
Limitele se vor stabili din panoul frontal i vor putea fi modificate n timpul rulrii programului, cu
ajutorul unui control Knob. Programul va rula continuu, pn la apsarea unui buton de pe panoul
frontal, iar temperatura curent se va afia numeric i sub form de termometru. Simularea
msurrii temperaturii se va face cu ajutorul unui buton Horizontal Pointer Slide situat n panoul
frontal. Denumii VI-ul Simulare monitorizare temperatur.vi.
Indicaie:
- pentru msurarea repetat pn la apsarea unui buton se va folosi o bucl While;
- pentru afiarea datelor pe grafic se va folosi gruparea datelor de tip cluster
- o variant de realizare a aplicaiei este urmtoarea: (figura 1.16)
16
Achiziiia si procesarea datelor Laborator 4 .
8. Modificai VI-ul creat la exerciiul 7 pentru putea s salveze ntr-un fiier text pe harddisk,
n ordine, urmtorii parametri: data i ora efecturii msurtorii, temperatura msurat, limita
minim impus, limita maxim impusa, dac se ncadreaz sau nu n domeniul impus.
Indicaie:
- pentru aflarea datei i orei la care s-a preluat eantionul se va folosi funcia Get
Date/Time String din librria Time & Dialog;
- se va face conversia datelor din cluster n string;
- se va compune irul cu datele care trebuie salvate pe o linie n fiier, n ordinea
specificat folosind funcii de operare cu iruri;
- se va scrie n fiier folosind funcii specializate sau VI-ul Write Characters To File.vi.
17
Introducere in mediul de programare LabVIEW Lucrarea 1
Tem
1. S se realizeze un program LabVIEW care s rezolve ecuaiile de ordinul 1 i 2.
Coeficienii se introduc de la tastatur, iar programul va calcula rdcinile ecuaiei. Se va
trasa graficul funciei de gradul 2 .
2. S se realizeze un program care s traseze caracteristicile de ncrcare i descrcare ale
unui condensatoarelor dintr-un circuit RC. VI-ul va reprezenta grafic tensiunea i curentul
prin condensator n funcie de timp, va calcula i reprezenta constanta de timp a
circuitului, precum i curentul prin condensator n funcie de tensiunea de la bornele
acestuia. Pentru simulare, la bornele circuitului se va aplica o ramp de tensiune cu
valoarea E reglabil. Momentul aplicrii tensiunii (nchiderea comutatorului care
realizeaz cuplarea circuitului RC la sursa de tensiune E ) va putea fi stabilit de utilizator,
prin apsarea unui buton n panoul frontal. Tot din panou se vor putea introduce valorile
rezistorului i al condensatorului.
18