Explorați Cărți electronice
Categorii
Explorați Cărți audio
Categorii
Explorați Reviste
Categorii
Explorați Documente
Categorii
Editura CERMI
Iai, 2010
CUPRINS
Prefa
Prescurtri i notaii n text
1. Introducere n instrumentaia virtual
Generalit
Structura unui instrument virtual
Funciile instrumentelor virtuale
Avantajele i dezavantajele instrumentaiei virtuale
Aplicaii de instrumentaie virtual
1
3
5
5
6
8
8
9
10
11
11
14
15
15
16
17
18
19
20
21
21
25
26
27
27
30
30
33
34
35
36
36
37
40
43
43
44
45
46
48
49
I
Exerciii propuse
52
53
53
55
55
57
58
59
60
60
61
62
63
64
66
67
5. Structuri
Bucla FOR
Bucla WHILE
Autoindexarea
Regitrii de deplasare (shift register)
Structura CASE (Caz)
Structura SEQUENCE (Secven)
Nod de formule (Formula Node)
Reguli pentru variabile n noduri de formule
Exerciiul 5.1
Exerciiul 5.2
Exerciii propuse
Exerciiul 5.3
Exerciiul 5.4
Exerciiul 5.5
Exerciiul 5.6
Exerciiul 5.7
Exerciiul 5.8
Exerciiul 5.9
Exerciii propuse
69
69
70
72
73
74
75
76
77
78
79
80
80
82
83
86
88
91
92
93
6. iruri de caractere
Funcii cu iruri de caractere
Funcia Scan From String
Funcia Format Into String
Funciile duale Array to Spreadsheet String i
Spreadsheet String to Array
Exerciiul 6.1
95
96
96
97
II
98
99
Exerciiul 6.2
Exerciiul 6.3
Exerciiul 6.4
Exerciiul 6.5
Exerciii propuse
Afiarea datelor n tabele
Exerciiul 6.6
Exerciiul 6.7
Exerciii propuse
99
101
101
101
102
103
103
103
104
106
106
108
109
112
8. Noduri de proprieti
Exerciiul 8.1
Exerciiul 8.2
114
115
115
9. Indicatoare grafice
Waveform Graphs (WG)
Afiarea unui singur grafic pe un Waveform Graph
Afiarea de grafice multiple pe acelai Waveform Graph
Waveform Charts (WCh)
Afiarea unui singur grafic pe un Waveform Chart
Afiarea de grafice multiple pe acelai Waveform Chart
Moduri de actualizare a graficelor pe un Waveform Chart
Schimbarea atributelor indicatoarelor grafice
XY Graphs (XYG)
Afiarea unui singur grafic pe un XY Graph
Afiarea de grafice multiple pe acelai XY Graph
Exerciiul 9.1
Exerciiul 9.2
Exerciii propuse
119
119
119
120
121
121
122
123
124
125
125
125
125
131
133
135
136
136
137
140
141
142
144
III
IV
Prefa
Lucrarea de fa reprezint un manual pentru nvarea noiunilor elementare
legate de instrumentaia virtual, n particular pentru deprinderea cu utilizarea
mediului de programare LabVIEW, produs al firmei National Instruments.
Lucrarea se adreseaz n special studenilor de la facultile cu profil electric ce au
incluse n programele de nvmnt noiuni de instrumentaie virtual, dar i
potenialilor utilizatori i proiectani de aplicaii de sisteme de msur automate i
distribuite.
Instrumentaia virtual reprezint un concept introdus de aproximativ 20 de
ani, fiind nscut din dorina utilizrii calculatorului pentru a construi un instrument
de msur. La ora actual instrumentaia virtual ctig tot mai mult teren n
special pentru aplicaii complexe, n care sunt necesare msurri concomitente a
mii de puncte, prelucrarea de cantiti mari de informaii de msur i accesul la
rezultate de la distan. Un instrument virtual este compus din dou pri: un
software dedicat care ruleaz pe o unitate de calcul, de preferat un calculator de
proces, i o seciune hardware, cu rol de interfa ntre procesul de msur i
unitatea de calcul.
Cartea de fa realizeaz introducerea n partea de programare cu ajutorul
limbajului LabVIEW, prezentnd noiunile de baz cu ajutorul crora se poate
dezvolta un program de instrumentaie virtual. Cartea nu trateaz noiuni de
comunicare cu structurile hardware, acesta fiind subiectul unui al doilea volum.
In principiu, cu ajutorul LabVIEW se poate construi orice tip de aplicaie, de la
simple operaii matematice, pn la sisteme de comunicaie sau baze de date
complexe. LabVIEW posed o serie de biblioteci care conin funcii mai simple sau
mai complexe, cu ajutorul crora utilizatorul i poate construi propria aplicaie,
chiar cu un nivel relativ redus de cunotine de programare. Tendina
productorilor programului este de a veni n ntmpinarea unei game ct mai largi
de utilizatori, pentru ca acetia s-i poat construi o aplicaie care s le satisfac
cerinele n ct mai mare msur.
Manualul este format din 10 capitole plus un capitol de probleme
recapitulative, parcurgerea lui fiind suficient pentru ca cititorul s acumuleze un
nivel de cunotine de baz care s-i permit dezvoltarea unui program general n
LabVIEW. Cartea conine o serie de exerciii rezolvate, n care utilizatorul este
condus pas cu pas spre soluie. La finalul fiecrei seciuni exist i cteva exerciii
propuse, avnd scopul de a aprofunda noiunile nvate i de a dezvolta
creativitatea cititorului.
Pentru completarea cunotinelor, recomandm i consultarea exemplelor
disponibile n LabVIEW precum i a documentaiilor de pe pagina web a firmei
National Instruments (www.ni.com) i de pe pagina portalului Connexions
http://cnx.org/content/#keyword/L/Labview.
Autorul
PF
DL
C
I
IV
subIV
M
MD
MS
NP
RD
VL
VG
LVM
TDM
WG
WCh
XYG
Panoul Frontal
Diagrama de Legturi
Control
Indicator
Instrument Virtual
subrutin a unui Instrument Virtual
Mouse
Click pe butonul din dreapta al mouse-ului
Click pe butonul din stnga al mouse-ului
Nod de proprieti
Registru de deplasare
Variabil local
Variabil global
Format de fiier text specific LabVIEW
Format de fiier binar specific LabVIEW
Waveform Graph
Waveform Chart
XY Graph
!
)
Observaie important
- Indicaie
Capitolul 1
Generaliti
In ultimii 20 de ani, instrumentaia de msur a evoluat att n privina
performanelor, ct i a flexibilitii, n sensul nglobrii a ct mai multe funcii de
msurare pe acelai dispozitiv. Dezvoltarea tehnicilor digitale i n particular a
computerelor, a permis creterea numrului de puncte de msurare simultan prin
realizarea sistemelor de msur complexe, supervizate de calculatoare. Dac n
generaiile mai vechi erau preponderente instrumentele de msur analogice,
controlate manual prin folosirea unor butoane de pe panoul frontal, n momentul de
fa, prin dezvoltarea conceptului de instrument virtual, instrumentele de msur
sunt programe de calculator care gestioneaz interfeele dintre procesul de msurat
i computer n vederea achiziiei de date Msurtorile fcute cu aceste instrumente
sunt efectuate automat, iar utilizatorul are posibilitatea de a aduga funciuni noi
prin program sau de a modifica modul de prezentare a rezultatelor.
Dezvoltarea instrumentelor digitale dotate cu interfee de comunicare face
posibil controlul instrumentelor de msur reale nu numai manual, ci i prin
intermediul calculatorului. In generaia actual avem deci instrumentaia de msur
programabil prin computer. Utilizatorul i cldete un sistem cu mai multe
instrumente, interfaate cu un computer PC, pe care le citete secvenial pentru a
efectua msurtorile cerute de aplicaie.
La ora actual se utilizeaz combinaii de instrumente numerice programabile
de sine stttoare controlate de calculator, cu instrumente ce sunt incorporate n
calculator prin utilizarea de cartele adiionale de achiziii de date i software
adecvat. Aceste sisteme ofer mai mult flexibilitate i performane metrologice
superioare datorit faptului c instrumentul este construit ca parte component a
calculatorului, ceea ce face ca puterea de calcul i de prezentare a datelor a
computerului s poat fi folosite n operaia de msurare.
Cea mai mare parte a instrumentelor reale se limiteaz la ndeplinirea
urmtoarelor funcii principale: culegerea datelor de msur, analiza lor i afiarea
rezultatelor. Aceste funcii sunt implementate hardware n instrument, aa nct ele,
5
odat stabilite, nu mai pot fi schimbate. Dac se doresc funcii suplimentare, este
necesar modificarea structurii aparatului, cu consecine importante asupra
costului. Aa sunt construite multimetrele numerice, osciloscoapele numerice,
generatoarele de semnal, aparatele de msur a mrimilor neelectrice (termometre,
barometre, anemometre, vitezometre, etc.), aparatele specializate pe transmisia
semnalelor prin reele, .a.m.d.
In principiu, un instrument virtual (IV) este un program de calculator n
combinaie cu un dispozitiv de achiziii de date care simuleaz funciile unui
instrument real, oferind performane comparabile cu acesta. De aici i numele de
virtual.
S2
Sn
INTERFAA
PROCES
S1
BLOC DE PRELUCRARE
PRIMARA A SEMNALULUI
Structura unui IV este dat n figura 1.1. S1Sn sunt senzori ce transform
mrimile de msurat din proces n semnale electrice. Cteva exemple de senzori:
termocuple, termorezistene, accelerometre piezoelectrice, mrci tensometrice,
elemente cu ieire n tensiune sau curent unificat, etc. Deoarece mrimile de ieire
din senzori nu sunt ntotdeauna compatibile cu intrrile interfeei (de regul
tensiuni sau cureni), este necesar intercalarea unui bloc de prelucrare primar a
CALCULATOR
SOFTWARE
INSTRUMENTAIE
VIRTUALA
PROCES
Figura 1.1
semnalului, ce conine puni de c.a sau c.c., puni tensometrice, amplicatoare, filtre,
elemente de izolare, multiplexoare, surse de semnal i excitaie a punilor, circuite
de compensare a jonciunii reci, etc. Aceste elemente furnizeaz un semnal cu un
raport semnal-zgomot sczut, de tip tensiune sau curent, al crui dependen de
mrimea msurat este foarte precis cunoscut.
6
Capitolul 2
PREZENTAREA
MEDIULUI DE PROGRAMARE LABVIEW
Sfaturi de nceput
nainte de a ncepe lucrul, este bine s inei cont de cteva sfaturi ce pot contribui
la uurarea activitilor de exersare a programrii n LabVIEW.
1. Cumprai-v un caiet studenesc n care vei nota la fiecare lecie operaiile pe
care le executai, lucrurile noi pe care le nvai, greelile pe care facei,
eventualele erori care apar la rularea instrumentelor, locurile unde salvai,
posibile lucruri mai greu de neles i care ar trebui reluate.
2. S avei la ndemn o memorie portabil (stick de memorie) pe care s salvai
tot ce lucrai la lecia respectiv.
3. inei cont c o problem poate avea mai multe soluii. Gsii o prim soluie,
verificai c funcioneaz, gsii-i punctele slabe i ncercai apoi s o
optimizai sau s gsii o alt soluie mai eficient.
4. O aplicaie LabVIEW este n fapt o aplicaie de programare. In principiu,
pentru a fi ct mai eficieni, ar fi bine s urmai urmtorii pai:
- Citii cu atenie textul problemei.
- Stabilii clar funciile pe care trebuie s le ndeplineasc instrumentul. Pe
baza acestor funcii, mprii aplicaia pe module (subIV-uri), care v vor
ajuta s organizai mai bine programul i s folosii aceeai funcie i n
alte aplicaii.
- Facei analiza problemei i desenai organigrama.
- Facei o analiz a controalelor i indicatoarelor de care avei nevoie i
concepei panoul frontal. Grupai obiectele de pe panoul frontal dup
funciuni.
- Pe parcursul dezvoltrii programului, verificai din aproape n aproape
funcionarea lui parial.
- Salvai variante intermediare ale programului. Dac facei o modificare n
program, salvai varianta nou sub alt nume.
Exerciiul 2.1
Scop
Familiarizarea cu elementele componente ale unui IV.
Mod de lucru
1. Lansai programul LabVIEW.
2. Deschidei fereastra de exemple din meniul Help Find Examples.
3. Deschidei exemplul Industry Applications Analysis Signal Generation and
Processing.vi.
4. Observai panoul frontal (PF) al instrumentului (figura2.1). Acest IV genereaz
dou semnale de form i frecven la alegere, le aplic o fereastr, dup care
11
Figura 2.1
Figura 2.2
13
Figura 2.3
Zona fiierelor este mprit, la rndul ei, n zona de iniiere a unor fiiere noi
(New), zona de deschidere a unor fiiere deja create i salvate anterior (Open) i
eventual zona fiierelor care vor fi ncrcate n diferite dispozitive autonome pe
care ruleaz LabVIEW, cum ar fi dispozitive Real-Time, PDA-uri sau plci FPGA.
Acestea se numesc n limba englez targets, pentru utilizarea lor fiind necesar
instalarea unor toolkit-uri corespunztoare. Zona resurselor permite accesarea de
documentaii, cursuri i informaii legate de LabVIEW n principal prin Internet,
gsirea de exemple, iniierea de colaborri cu utilizatori din ntreaga lume prin
intermediul forumurilor sau realizarea unor actualizri ale programului.
Aceast fereastr poate fi evitat la lansare dac se bifeaz opiunea
SkipGetting Started Window on launch din meniul Tools Options Environment.
Diferena dintre un IV (VI) i un proiect LabVIEW (project) este aceea c
primul este reprezentat de un singur fiier cu extensia .vi care ndeplinete toate
funciile unui instrument virtual, pe cnd un proiect conine mai multe fiiere, unele
14
Panoul Frontal
PF reprezint interfaa utilizatorului cu instrumentul virtual. La deschiderea unui
IV nou, panoul frontal este vid. Pe acesta se pot aduga obiecte grafice care se
numesc controale (C) i indicatoare (I). C i I sunt terminale interactive de intrareieire a datelor. Orice control poate fi transformat n indicator i invers, prin
accesarea meniului pop-up al acestuia. Prin intermediul controalelor utilizatorul
furnizeaz date instrumentului, n timp ce indicatoarele afieaz informaiile
procesate de instrument. Un exemplu de PF este dat n figura 2.4.
15
Control numeric
Text
Indicator numeric
Figura 2.4
Exerciiul 2.2
Scop
Cunoaterea paletei de controale de pe panoul frontal.
Mod de lucru
1. Deschidei un nou IV.
2. Deschidei paleta de controale.
3. Trecei n revist tipurile principale de C i I oferite de palet din meniul
Modern (care se deschide n mod implicit). Observai c acestea sunt grupate
dup tipurile de date pe care le vehiculeaz:
- Numeric (Numerice)
- Boolean (Booleene)
- String & Path (Siruri de caractere i ci)
- Array & Cluster (Matrici i clustere)
- List & Table (Liste i tabele)
- Graph (Indicatoare grafice)
- Ring & Enum (Control n inel i enumerare)
- Containers (Containere)
- I/O (Controale de intrare-ieire)
16
Figura 2.5
Tabelul 2.1
Nr.
1)
2)
3)
4)
5)
6)
7)
8)
9)
10)
Simbol
Denumire
Operare
(Operate value)
Selectare
(Position/size/select)
Editare
(Edit text)
Realizare legturi
(Connect wire)
Meniu shortcut
(Object Shortcut
Meniu)
Defilare
(Scroll Window)
Setare ntreruperi
(Set/Clear
Breakpoint)
Tester
(Probe Data)
Preluare culoare
(Get Color)
Selectare culoare
(Set color)
Aciune
schimbarea valorii unui C sau I sau
selectarea textului dintr-un C
selectare, poziionare, redimensionare
editare text i creare etichete libere
realizarea legturilor dintre obiectele de
pe diagram. Nu este activ pe PF dect
atunci cnd se realizeaz legturile dintre
conectorul unui subIV i obiectele de pe
PF
deschiderea meniului pop-up al unui
obiect (echivalent cu MD pe obiect)
defilarea liber a ferestrei principale
(fr utilizarea scroll-bar-ului)
selectarea unei ntreruperi n IV pe
funcii i structuri (nu e activ pe PF)
crearea unei probe de test pe un fir (nu e
activ pe PF)
copierea unei culori
paleta de culori
18
Figura 2.6
Figura 2.7
19
Figura 2.8
Figura 2.9
20
Figura 2.10
21
Visible Items
Label etichet un cuvnt de identificare a obiectului n diagrama de
legturi. Editarea etichetei se face cu unealta 3)
Caption un cuvnt care poate fi diferit de etichet i care nsoete obiectul pe
PF. Poate fi o descriere mai lung a obiectului i nu apare pe DL. Ideea
utilizrii lui caption este de a nu ncrca inutil DL, atunci cnd denumirea
obiectului este prea lung. Pentru identificarea terminalului pe DL se folosete
eticheta.
Unit Label eticheta unitii de msur. Apare doar dac se lucreaz cu uniti
de msur.
Radix formatul de scriere a numrului (zecimal, binar, octal). Este specific
doar C i I numerice.
Increment/Decrement (numai pentru C) afiarea sau nu pe PF a sgeilor de
incrementare/decrementare a coninutului controlului, aflate n stnga valorii
numerice.
Find Terminal Apsnd MS pe aceast opiune, se deschide DL iar terminalul
corespunztor clipete pentru identificarea lui.
Change to Indicator (Control) transform C n I i invers.
Description and Tip permite editarea descrierii obiectului n seciunea de
documentare a IV-ului.
Create
Local Variable creeaz automat o variabil local cu numele etichetei
obiectului
Property Node - creeaz automat un nod de proprieti, pentru modificarea
programatic a proprietilor obiectului
Reference creeaz automat o referin pentru obiectul pe care l reprezint
Invoke Node - creeaz automat un nod de invocare atunci cnd se realizeaz
aciuni sau metode asupra unei aplicaii sau a unui IV.
Replace deschide paleta de controale pentru a permite nlocuirea obiectului cu un
altul.
Data Operations
Reinitialize to Default Values reiniializeaz controlul cu valoarea implicit.
Dac nu se specific altfel, valoarea implicit este 0 la controalele numerice,
FALSE la cele booleene, irul vid la iruri de caractere, etc.
Make Current Value Default stabilete ca implicit valoarea curent
DataSocket Connection stabilete o legtur de tip DataSocket cu obiectul
Cut, Copy, Paste Data decupeaz, copie sau lipete datele din i n alt obiect
Advanced
Key Navigation atribuie o cheie pentru accesul de la tastatur a C n timpul
22
rulrii. Dac C este de tip numeric, prin tastarea cheii atribuite se permite
schimbarea de la tastatur a valorii C. Dac este de tip boolean, se basculeaz
ntre TRUE i FALSE.
Synchronous Display afieaz valoarea obiectului sincron cu rularea
instrumentului, la fiecare actualizare a lui. Se utilizeaz mai ales la indicatoare
grafice, cnd se creeaz animaie.
Customize deschide meniul de personalizare a obiectului. Dac se dorete ca
un C sau I s arate altfel dect este cel din palet (de ex. s fie mai mare, s
scrie cu alte caractere, alte culori, etc.), nseamn c se creeaz un C sau I
personalizat. Dup editarea dup dorin, acesta se salveaz ntr-un fiier cu
extensia .ctl care se depune n directorul user.llb. Obiectul poate fi adus n
orice moment pe PF din paleta de controale ca orice alt obiect predefinit,
utiliznd submeniul User Controls.
Hide Control (Indicator) ascunde obiectul de pe PF, dar terminalul rmne
pe DL. Pentru ca acesta s fie din nou vizibil pe PF, se acceseaz n meniul
pop-up de pe DL, Show Control (Indicator).
- Enabled State valideaz starea de activare a obiectului. Se refer numai
la C.
- Enabled activ. Permite introducerea datelor de ctre operator.
- Disabled inactiv. Nu permite introducerea datelor.
- Disabled & Garyed inactiv i reprezentat n tonuri de gri.
3
4
5
Figura 2.11
a) Toate opiunile de mai sus se refer doar la modul n care numrul este afiat pe
displayul digital al controlului, i nu la reprezentarea lui n calculator, care este
dat de tipul de dat specificat n Representation.
b) C sau I din paleta de controale numerice de tip slide, bar, knob, dial, meter,
gauge, tank, thermometer au posibilitatea de a afia i numeric valoarea
introdus, apelnd n meniul shortcut Visible Items Digital Display. Displayul
digital prezint un meniu shortcut diferit de cel al obiectului pe care l
reprezint.
c) Controalele de la punctul b) mai prezint n meniul shortcut o opiune intitulat
Text Labels. Apelnd aceast opiune, controlul devine automat de tip U32 (v.
tipuri de date), fiecrei valori ntregi atribuindu-i-se un text. Textele pot fi
editate cu unealta 3).
d) In afara opiunilor prezentate, fiecare C sau I are i alte opiuni specifice.
25
Figura 2.12
Tabelul 2.2
Comutare la apsare
(Switch When Pressed)
Comutare la eliberare
(Switch When Released)
Comutare pn la
eliberare
(Switch Until Released)
Zvorre la apsare
(Latch When Pressed)
Zvorre la eliberare
(Latch When Released)
Zvorre pn la
eliberare
(Latch Until Released)
Real dubl precizie. Paleta de tipuri din opiunea Representation este dat n
figura 2.13, iar semnificaiile fiecrui tip de dat sunt date n tabelul 2.3.
Figura 2.13
Tabelul 2.3
Simbol
pe
diagram
Tip dat
numeric
Reprezentare
n memorie
(nr. bii)
Nr. zecimale
Real
Precizie
extins
80 n Windows
(depinde de
platform)
15 33,
depinde de
platform
Real
Dubl
precizie
64
15
Real
Simpl
precizie
32
28
Interval de
reprezentare
Val. minim pozitiv:
6,48E-4966
Val. maxim pozitiv:
1,19E+4932
Val. maxim negativ:
- 1,19E-4932
Val. minim negativ:
- 6,48E-4966
Val. minim pozitiv:
4,94E-324
Val. maxim pozitiv:
1,79E+308
Val. maxim negativ:
- 1,79E+308
Val. minim negativ:
- 4,94E-324
Val. minim pozitiv:
1,40E-45
Val. maxim pozitiv:
3,40E+38
Val. maxim negativ:
- 3,40E+38
Val. minim negativ:
- 1,40E-45
Intreg
Quad cu
semn
Intreg
Long cu
semn
Intreg
Word cu
semn
Intreg Byte
cu semn
Intreg
Quad fr
semn
Intreg
Long fr
semn
Intreg
Word fr
semn
Intreg Byte
fr semn
Complex
Precizie
extins
Complex
Dubl
precizie
Complex
Simpl
precizie
64
18
32
De la 2.147.483.648
pn la 2.147.483.647
16
De la -32,768 pn la
32,767
2 (cifre
semnificative)
De la -128 pn la 127
64
19 (cifre
semnificative)
De la 0 pn la 2E+19
32
9 (cifre
semnificative)
De la 0 pn la
4,294,967,295
16
4 (cifre
semnificative)
De la 0 pn la 65,535
2 (cifre
semnificative)
De la 0 pn la 255
256
15 33
128
15
64
punct de constrngere
Figura 2.14
29
Simbol pe
diagram
Tip dat
Culoare
Boolean
Verde
Roz
Enumerare
Albastru
Culoarea tipului de
dat al elementelor
componente.
Maro sau roz
Maro
Aqua
Aqua
Mov
Mov
Albastru
Exerciiul 2.3
Scop
Familiarizarea cu funcionalitatea uneltelor de pe panoul frontal, introducerea
datelor ntr-un control, poziionarea, redimensionarea, cosmetizarea, meniul
shortcut.
Mod de lucru
1. Deschidei un nou IV.
2. Deschidei paleta de controale.
30
Figura 2.15
Ca regul, dac valoarea unei zecimale este exact 0,5 din valoarea poziiei imediat
anterioare, programul rotunjete ntotdeauna la numrul par cel mai apropiat. De
exemplu 7,5 este rotunjit la 8, iar 8,5 este rotunjit tot la 8.
In cazul n care s-a executat o comand nedorit sau se dorete la revenirea unei
comenzi anterioare, exist Undo n meniul Edit sau se tasteaz Ctrl-Z.
29. Adugai controlului un nou ac indicator cu opiunea Add Needle din meniul
shortcut. Acum controlul seamn cu un poteniometru dublu. Observai
apariia celui de-al doilea display digital. Valorile furnizate de acest control
sunt reunite ntr-un cluster.
30. Adugai i alte controale pe panoul frontal i studiai-le meniul shortcut,
posibilitile de redimensionare, scalele, etc.
32
Diagrama de legturi
Diagrama de legturi (DL) reprezint programul propriu-zis dezvoltat n mediul
LabVIEW i conine codul surs al instrumentului virtual. Fiecare obiect de pe PF
(C sau I) are un corespondent pe DL, care se numete terminal. Scrierea codului
surs const n realizarea de legturi sub form grafic ntre aceste terminale i
diverse funcii, astfel nct IV-ul s satisfac cerinele impuse.
De pe PF, deschiderea DL se face n urmtoarele moduri:
din meniul Window Show Block Diagram
dublu clic pe orice C sau I de pe PF
apsarea tastei Ctrl-E
de pe bara de programe
De pe DL, trecerea spre PF se face n modul urmtor:
din meniul Window Show Front Panel
dublu clic pe orice terminal de pe DL
apsarea tastei Ctrl-E
de pe bara de programe
O DL conine urmtoarele elemente:
- terminale
- noduri
- fire de legtur
- structuri
Terminalele sunt porturi de intrare-ieire ce fac legtura dintre PF i DL. Ele sunt
corespondentele obiectelor de pe PF i se reprezint pe DL printr-un simbol care
este n concordan cu tipul de dat vehiculat de obiect. Terminalele pot fi terse
de pe DL doar odat cu obiectul de pe PF. Mutarea unui terminal pe DL nu
conduce la mutarea obiectului corespunztor de pe PF. Terminalele cu conturul
ngroat corespund controalelor, iar cele cu conturul subire corespund
indicatoarelor de pe PF.
Nodurile sunt obiecte de pe DL care sunt caracterizate de un numr de intrri/ieiri
i execut diverse operaii i funcii n timpul rulrii IV-ului. Nodurile sunt analoge
instruciunilor, funciilor i subrutinelor din limbajele de programare bazate pe text.
Firele de legtur transfer datele ntre obiectele de pe DL. Fiecare fir are o
singur surs de date, dar orict de muli receptori. Firele au diferite culori, stiluri
i grosimi ce depind de tipurile de date vehiculate. Un fir rupt, ce nu poate
transporta date, se reprezint printr-o linie ntrerupt. Un fir cu dou surse de date
este un fir rupt.
Structurile sunt reprezentri grafice ale instruciunilor de ciclare i condiionare
din programarea bazat pe text. Se utilizeaz pentru repetarea unor blocuri de cod
sau pentru execuia unor coduri condiionat sau ntr-o anumit ordine.
33
Paleta de funcii
Paleta de funcii este o fereastr ce se deschide doar de pe DL. Aceasta conine
operatori, funcii, noduri, structuri i subIV-uri cu ajutorul crora se construiete
programul n LabVIEW. Accesarea paletei de funcii se face n modurile
urmtoare:
In cel de-al doilea mod, paleta poate fi fixat ca fereastr pe ecran prin MS pe
pioneza din stnga sus a acestei ferestre. Altfel, paleta se nchide dup realizarea
unui MS oriunde pe DL. Paleta de funcii este prezentat n figura 2.16.
Figura 2.16
35
Funciile pe palet sunt grupate dup destinaia lor. Cele mai utilizate sunt cele
din subpaleta Programming, care se expandeaz n mod implicit. Celelalte sunt
biblioteci care pot fi apelate de ctre utilizator la construirea de aplicaii dedicate.
De exemplu, dac se realizeaz un IV necesar procesrii unor semnale achiziionate
n prealabil, se utilizeaz funcii din subpaleta Signal Processing. Dac este necesar
un aparat matematic complex, avem la dispoziie biblioteca Mathematics. Multe
din aceste subpalete nu sunt populate cu funcii. Adugarea de biblioteci acestor
subpalete se face prin instalarea toolkit-urilor dedicate puse la dispoziie de
National Instruments. Obiectul cursului de fa este studierea modului de apelare i
de utilizare a unor funcii doar din subpaleta Programming.
Exist o mare varietate de funcii n LabVIEW. Diversitatea i compexitatea
acestora crete pe msur ce National Instruments scoate noi variante ale
limbajului de programare.
Exerciiul 2.4
Scop
Trecerea n revist a funciilor principale din paleta de funcii.
Mod de lucru
1.
2.
3.
4.
13. Trecei prompterul peste aceast funcie. Observai n helpul mic pictograma
funciei i conectorul acesteia. Comparativ cu funcia Add, aceast funcie este
mai complex, avnd mai multe intrri i ieiri. Citii n help destinaia funciei
i modul de utilizare a intrrilor.
14. Trecei prompterul peste fiecare intrare i ieire. Observai cum acesta se
schimb n unealta de legturi i de asemenea apare denumirea fiecrei intrri.
Intrrilor ale cror nume sunt scrise cu aldine (bold) trebuie legate obligatoriu n
diagram, altfel programul d eroare. Intrrile care nu sunt scrise cu aldine pot sau
nu s fie legate pe diagram. Dac sunt legate, ele vor utiliza datele care sunt
disponibile prin legturi. Dac nu sunt legate, se vor utiliza valorile implicite
(indicate ntre paranteze).
15. Realizai un dublu click pe funcia Search and Replace String. Observai c nu
se ntmpl nimic. Aceasta nseamn c funcia face parte din biblioteca intern
a LabVIEW, iar codul ei nu poate fi vizualizat.
16. Plasai pe diagram funcia Sine Waveform din subpaleta Signal Processing
Waveform Generation. Aceast funcie mai poate fi gsit i n subpaleta
Waveform Analog Waveform Waveform Generation.
17. Studiai helpul funciei.
18. Realizai dublu click pe aceast funcie. Observai c se deschide panoul frontal
al acesteia, semn c funcia este reprezentat n bibliotec printr-un subIV.
19. Deschidei DL i realizai dublu click pe pictograma funciei Sine Wave
.
S-a deschis un alt panou frontal.
20. Trecei pe DL i observai existena nodului cod de interfa din figura 2.17.
Acesta conine programul funciei scris ntr-un limbaj procedural (C++) i
compilat. Nodul cod de interfa are intrri i ieiri ca o funcie obinuit, ns
codul surs nu poate fi cunoscut. Acesta este ultimul nivel al ierarhiei IV-ului.
Figura 2.17
39
Funcia Sine Wave poate fi gsit direct n submeniul Signal Processing Signal
Generation. In general, sub multe funcii n bibliotecile LabVIEW din paleta de
funcii care sunt construite sub form de subIV-uri utiliznd o serie de funcii
elementare preluate fie din subpaleta Programming, fiind utiliznd noduri cod de
interfa. Tendina este de a realiza biblioteci cu funcii ct mai complexe i ct
mai uor accesibile utilizatorilor chiar fr o pregtire de specialitate prea
avansat. In acest scop exist i subpaleta de funcii Express, care conine o serie
de funcii de baz destinate achiziiei, generrii, manipulrii i procesrii
semnalelor, precum i pentru construirea unor IV-uri simple, la care introducerea
datelor i fixarea parametrilor se face prin ferestre interactive cu realizarea
automat a unei mari pri din legturi, astfel nct utilizatorul s obin
instrumentul fr prea mult efort de programare.
10.
11.
12.
13.
14.
15.
16.
Figura 2.18
17. Trecei din nou pe DL i deschidei helpul mic i helpul mare pentru operatorul
de adunare.
18. Schimbai unul din operatori din control n indicator. Firul de legtur s-a
ntrerupt deoarece a rmas fr surs de date.
41
List errors
Figura 2.19
20. Apsai acest buton. Studiai i interpretai mesajele de eroare din fereastra
deschis (figura 2.20).
Figura 2.20
21. Schimbai din nou operatorul din indicator n control pentru a se reface
legtura.
22. Trecei pe PF i modificai valoarea controalelor.
23. Stabilii ca implicite valorile controalelor din meniul Edit Make Current
Values Default.
24. Salvai instrumentul sub numele Ex 2.5.vi.
25. Pornii instrumentul de la butonul Run i observai efectuarea operaiei.
42
Utilizarea testerelor
In vederea depanrii, LabVIEW pune la dispoziie sonde de testare sau testere
(Probe n limba englez), care pot fi activate pe firele de legtur cu scopul a
urmri valoarea datelor vehiculate prin fir la un moment dat. Testerele pot fi
plasate pe orice fir de legtur realiznd MD pe fir i alegnd opiunea Probe, cnd
se deschide o fereastr ce conine un indicator de tipul datelor vehiculate de fir. In
timpul rulrii instrumentului, datele pot fi observate pe acest indicator.
Testerele sunt numerotate automat n ordinea plasrii lor. Ferestrele testerelor
sunt disponibile att pe PF, ct i pe DL.
Figura 2.21
31. Plasai cte un tester pe fiecare fir de pe DL, rulai instrumentul i observai
cum se schimb valorile.
Uniti de msur
LabVIEW ofer posibilitatea lucrului cu uniti de msur. Unitatea de msur
poate nsoi datele asociate unui control sau indicator i sufer aceleai transformri
prin intermediul operaiilor i funciilor ca i datele nsele. Unitile de msur
43
Figura 2.22
Exerciiul 2.6
Scop
Conversia unei uniti de msur ntr-o alt unitate de msur.
44
Mod de lucru
1.
2.
3.
4.
Programare procedural
Citete A
Citete B
LabVIEW
Citete A
Citete B
Efectueaz
f(A,B)
Efectueaz
g(A,B)
Afieaz
rezultate f
Afieaz
rezultate g
Efectueaz
f(A,B)
Efectueaz
g(A,B)
Afieaz
rezultate
a)
b)
Figura 2.23
Figura 2.24
47
Capitolul 3
Una din trsturile cele mai importante ale mediului de programare LabVIEW este
modularitatea, adic un IV creat cu un scop poate fi inclus ntr-un alt IV ca subIV,
care la rndul lui poate i el fi inclus ntr-un alt IV. Se creeaz astfel o structur
ierarhic a IV-ului, mult mai uor de urmrit i de organizat. De asemenea, un mare
avantaj al structurii modulare l constituie faptul c un subIV poate fi apelat ca i
nod n oricte alte IV-uri principale, toate rulnd n acelai timp independent unele
de altele.
Dac din diagrama instrumentului principal se face un dublu-click pe
pictograma unui subIV, se deschide panoul su frontal i diagrama de legturi. La
rndul su DL a subIV-ului deschis poate conine alte subIV-uri, care pot fi
deschise n acelai mod. Pictograma subIV-ului se afl n colul din dreapta sus al
PF sau a DL. SubIV-urile se realizeaz atunci cnd pe DL a unui IV sunt operaii
care se repet, cnd acea operaie este necesar i n alte IV-uri, sau cu scopul unei
organizri mai compacte a unei diagrame, n general foarte largi.
SubIV-urile din LabVIEW au drept corespondent subrutinele n programarea
procedural bazat pe text. In figura 3.1 este dat echivalena dintre subIV-uri i
subrutinele din programarea n C, pentru funcia mediere.
Cod funcie n C
function mediere (in1, in2, aut)
{
out = (in1 + in2)/2.0;
}
Diagrama bloc a subIV-ului
Figura 3.1
48
Figura 3.2
5. Trecei pe PF.
6. Facei MD pe pictograma din dreapta sus a PF i selectai Show Connector.
49
Figura 3.3
Figura 3.4
Un subIV odat creat i salvat, el poate fi apelat ca oricare funcie din paleta de
funcii, subpaleta Select a VI
14. Deschidei un nou IV.
15. Aducei subIV-ul Suma-produs.vi pe DL din paleta de funcii submeniul Select
a VI i plasai-l pe diagram. Programul deschide fereastra de dialog n
directorul implicit de salvare a IV-urilor.
16. Observai pe pictogram existena terminalelor cu denumirile aceleai cu
etichetele controalelor i indicatoarelor care le-au creat.
17. Creai n mod automat controalele i indicatoarele corespunztoare terminalelor
prin MD pe pictogram Create Control(Indicator).
51
Exerciii propuse
EP 3.1. S se realizeze un subIV care s genereze la ieire numere aleatoare
cuprinse ntre dou numere date, Nmin i Nmax considerate ca intrri.
52
Capitolul 4
Adugarea unei noi dimensiuni unei matrici se poate face n urmtoarele dou
moduri:
index
Figura 4.1
Figura 4.2
Linia
Coloana
Figura 4.3
Primul index reprezint numrul liniei pe care se afl elementul afiat, iar cel
de-al doilea index este numrul coloanei pe care se afl elementul. Indexul
pornete ntotdeauna de la 0. De exemplu, o matrice cu m linii i n coloane va avea
indexul ultimului element (m-1, n-1).
Pentru a vizualiza mai multe elemente odat pe PF, se apropie unealta 2) de
marginea elementului pn cnd apar punctele de redimensionare, dup care se
trage de punctul din mijloc de pe latura dreapt (pentru desfurare pe orizontal)
sau de punctul din mijloc de pe latura inferioar (pentru desfurare pe vertical)
sau de colul din dreapta jos (pentru desfurare n plan, la matrici cu dou sau mai
multe dimensiuni) Se pot astfel vizualiza oricte linii i coloane dorim i ne
54
permite suprafaa PF, inclusiv cele care nu au elemente definite. Indexul ne arat
poziia elementului din stnga-sus. In exemplul din figura 4.3 este vorba despre
elementul aflat pe linia cu index 1 i coloana cu index 2.
In variantele mai noi ale LabVIEW, subpaleta de controale Array, Matrix &
Cluster conine i posibilitatea crerii directe a unei matrici bidimensionale de
numere reale sau complexe (matrix), la care elementele pot fi vizualizate i
utiliznd bare de defilare (scrollbar).
Exerciiul 4.1
Scop
Crearea pe PF a controalelor i indicatoarelor de tip matrice.
Mod de lucru
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Figura 4.4
Tabelul 4.1
Nume funcie
Array Size
Index Array
Replace Array
Subset
Insert into
Array
Delete from
Array
Aciune
returneaz numrul de elemente de pe fiecare dimensiune a unei
matrici
returneaz valoarea elementului de la indexul specificat
nlocuiete o submatrice a matricii iniiale cu o alta
insereaz un element sau o submatrice ntr-o matrice, ncepnd
de la un anumit index
terge un element sau o submatrice dintr-o matrice
Initialize Array
Build Array
Array Subset
Reshape Array
Sort 1D Array
Search 1D
Array
Split 1D Array
Reverse 1D
Array
Rotate 1D
Array
Interpolate 1D
Array
Threshold 1D
Array
Interleave 1D
Arrays
Decimate 1D
Array
Transpose 2D
Array
57
Figura 4.5
Dac matricea de intrare are 3 dimensiuni, atunci fiecare celul va avea 3 intrri
(celula se redimensioneaz automat n funcie de dimensiunea matricii). Dac se d
de exemplu valoarea 2 primei intrri, atunci funcia va furniza la ieire o matrice
bidimensional coninnd elementele filei cu indexul 2 (figura 4.6).
Figura 4.6
Figura 4.7
2) Dac la intrrile unei funcii Build Array se leag mai multe matrici (vectori),
sunt posibile urmtoarele:
- dac intrrile sunt de aceeai dimensiune i opiunea Concatenate Inputs
din meniul shortcut al funciei Build Array nu este validat, se obine la
ieire o matrice cu o dimensiune mai mult, la care intrrile sunt considerate
elemente (dac se apropie unealta 4) de una din intrri, apare scris Input
element).
58
Polimorfism
In LabVIEW, funciile numerice sunt polimorfe. Aceasta nseamn c intrrile n
aceeai funcie numeric pot fi diferite ca structur. De exemplu, putem s adunm
un scalar cu un vector (matrice) sau doi vectori (matrici) ntre ele. Mai jos sunt date
cteva situaii de polimorfism.
a) Scalar + scalar
59
Exerciiul 4.2
Scop
Experimentarea funciilor cu matrici din subpaleta de funcii Array..
Mod de lucru
1. Deschidei un nou IV.
2. Construii pe PF un vector numeric cu 5 elemente i o matrice numeric cu 3
linii i 4 coloane la care elementele au valori arbitrare.
3. Deschidei i fixai paleta de funcii pe DL.
4. Citii helpul mic al fiecrei funcii.
5. Utiliznd ca intrri cele dou matrici de pe PF i indicatoare adecvate,
experimentai urmtoarele funcii: Array size, Index array, Insert into array,
Initialize array, Array subset, Array Max & Min, Reshape Array, Sort 1D
array, Search 1D array, Interleave 1D array, Decimate 1D array.
Exerciiul 4.3
Scop
Experimentarea funciilor Build Array i Index Array.
Mod de lucru
a)
1. Deschidei un nou IV.
2. Construii pe PF doi vectori numerici, unul cu 4 elemente arbitrare iar cellalt
cu 3 elemente.
3. Adugai pe DL funcia Build Array i legai la intrarea funciei primul vector.
4. Creai automat indicatorul de la ieirea funciei.
5. Rulai instrumentul i observai tipul de dat creat i elementele componente.
b)
6.
7.
8.
9.
Adugai o nou funcie Build Array pe care o extindei pentru dou intrri.
Legai vectorii la cele dou intrri.
Creai automat indicatorul de la ieirea funciei.
Rulai instrumentul i observai ieirea. S-a obinut o matrice bidimensional la
care fiecare linie este cte un vector de la intrare. Vectorul care are mai puine
elemente se completeaz cu zerouri pn la numrul de elemente al celui mai
mare.
c)
10. Adugai o nou funcie Build Array creia i legai cei doi vectori la intrare.
60
11. Deschidei meniul shortcut al uneia din intrri i bifai opiunea Concatenate
Inputs.
12. Creai automat indicatorul de la ieire i rulai instrumentul.
13. Observai c n acest caz ieirea este tot un vector, obinut prin concatenarea
celor doi.
d)
14. Adugai funcia Index Array i legai-i la intrare matricea bidimensional din
cazul b).
15. Configurai funcia pentru extragerea elementelor primei linii, a celei de a doua
coloane i a elementului (1,3).
16. Legai la ieiri indicatoare adecvate.
17. Rulai instrumentul i observai rezultatele.
18. Salvai instrumentul sub numele Ex 4.3.vi.
Exerciiul 4.4
Scop
Experimentarea funciilor Interpolate 1D Array i Threshold 1D Array.
Mod de lucru
Funcia Interpolate 1D Array calculeaz o valoare intermediar ntre dou
elemente adiacente ale unui vector corespunztor unui index ipotetic fracionar,
dup metoda interpolrii liniare. De exemplu, n figura 4.8, indexului fracionar 1,8
al vectorului {1; 2,4; 3,2; 5; 5,4}, i corespunde valoarea interpolat 3,04.
6
5.4
5
4
3,04
3.2
2.4
1
0
0
1,8
Figura 4.8
2.
3.
4.
5.
Crearea unui cluster pe PF se face din submeniul Array, Matrix & Cluster de
pe paleta de controale. La aducerea unui obiect de tip Cluster pe PF de pe paleta de
controale, acesta este reprezentat printr-un cadru, care poate fi redimensionabil. In
acest cadru se aduc, de pe paleta de controale, elementele ce vor fi coninute n
cluster (figura 4.9).
Figura 4.9
Figura 4.10
Figura 4.11
Figura 4.12
15. Construii un nou cluster format numai din elementele Array i Numeric,
utiliznd funcia Bundle (figura 4.12 V).
16. Plasai un operator de adunare i legai una din intrri la noul cluster, iar pe
cealalt la un control scalar (Numeric 3). Creai un indicator automat la ieire.
17. Pornii instrumentul i dai diverse valori lui Numeric 3, observnd ce se
ntmpl cu valorile elementelor controlului cluster x + y.
Dup cum se observ, putem efectua operaii ntre un scalar i un cluster numeric.
Se pot de asemenea efectua operaii ntre o matrice i un cluster numeric, ce
conine scalari sau alte matrici, ca i ntre dou clustere numerice. Ca i la matrici,
aici se aplic polimorfismul, concept care permite adaptarea intrrilor unui
operator sau ale unei funcii la tipul datelor aplicate la intrare.
Clustere de erori
Orict de atent s-ar lucra i orict de experimentat ar fi proiectantul, nu se pot
prevedea toate problemele care ar putea aprea n construcia unui instrument
virtual. Dac nu ar fi prevzut un mecanism de verificare a erorilor, nu am putea ti
dect c instrumentul nu funcioneaz, dar nu i de ce. Sistemul de verificare a
66
Manipularea erorilor
Implicit, LabVIEW sesizeaz automat orice eroare care apare la rularea unui IV
prin suspendarea execuiei acestuia, identificarea subIV-ului sau funciei unde s-a
produs eroarea i afiarea unei ferestre de dialog. De exemplu, dac o funcie de
I/O depete limita de ateptare, e posibil s nu se doreasc oprirea instrumentului,
ci reluarea ciclului de ateptare. Acest lucru poate fi decis n diagrama
instrumentului.
Funciile i instrumentele din bibliotecile LabVIEW returneaz erori n dou
moduri:
- sub forma unor coduri de eroare (specific funciilor);
- sub forma unor clustere (specific subIV-urilor).
Manipularea erorilor de ctre LabVIEW respect principiul fluxului de date, n
sensul c informaiile despre erori circul de-a lungul lanului de prelucrare, n
paralel cu datele. Pe parcursul execuiei, LabVIEW verific existena erorilor n
fiecare nod al diagramei. Dac se detecteaz o eroare la un nod, execuia acestuia se
suspend, ns informaia despre eroare (tipul erorii i locul unde s-a produs) se
propag n continuare spre celelalte noduri din lanul de prelucrare, pn la final.
Pentru aflarea acestor informaii, se plaseaz dup ultimul nod un indicator de tipul
Simple Error Handler, care se gsete n subpaleta de funcii Dialog & User
Interface. In figura 4.13 este prezentat modul de propagare a informaiei despre erori
ntr-un lan de salvare n fiiere.
Figura 4.13
In figura 4.14 este dat componena unui cluster de erori. Acesta conine
urmtoarele informaii:
67
c) Elementele componente
Figura 4.14
status este un boolean care devine true la apariia unei erori. Valoarea
acestui boolean poate fi folosit pentru oprirea instrumentului ntr-o bucl
WHILE.
- code este un ntreg pe 32 de bii, care identific eroarea printr-un numr. In
absena vreunei erori, codul este zero. Dac acest numr este diferit de
zero, dar valoarea lui status este false, nu este o eroare propriu-zis ci un
avertisment.
- source este un text care identific nodul unde s-a produs eroarea.
In cazul apariiei unei erori, pe lng informaiile date n clusterul de erori, e
posibil explicarea acesteia prin accesarea opiunii Explain Error din meniul Help.
Un cluster de erori poate fi legat direct la terminalul de condiionare al unei bucle
WHILE n scopul opririi acesteia la apariia unei erori. Doar componenta status
este luat n considerare de ctre terminal, aceasta avnd valoarea unui boolean. In
acest caz, Stop if True i Continue if True se schimb n Stop on Error i Continue
while Error.
68
Capitolul 5
STRUCTURI
Bucla FOR
Bucla FOR este o structur care execut codurile din interior de un anumit numr
de ori, ct este valoarea numrului legat la terminalul . In figura 5.1 sunt date a)
reprezentarea buclei FOR n LabVIEW i b) organigrama acesteia. Aducerea unei
bucle FOR pe DL se face prin preluarea acesteia din subpaleta Structures i
dimensionarea corespunztoare poriunii de diagram care se dorete a fi inclus n
bucl. Se poate i aduce nti bucla pe DL, dup care se construiete n interior
subdiagrama de executat. Terminalul
se numete terminal de iteraie. Acesta
ne d n fiecare moment numrul iteraiei curente. Prima iteraie este ntotdeauna 0.
Att N ct i i sunt numere ntregi de tip I32; aadar, valoarea maxim a lui N poate
fi 231-1. Dac la N se leag un numr real, LabVIEW constrnge acest numr la tip
69
i=0
i = i+1
tuneluri
index
NU
i = N?
Execut
cod
DA
ieire
a)
b)
Figura 5.1
Bucla WHILE
Bucla WHILE este o structur care execut o subdiagram atta timp ct este
ndeplinit o condiie. In figura 5.2 sunt date reprezentarea buclei WHILE n
LabVIEW, respectiv diagrama structurii. Bucla WHILE este echivalent
instruciunii dowhile din programarea convenional bazat pe text. Din
diagram se observ c o bucl WHILE se execut cel puin o dat, deoarece
testarea condiiei se face dup execuia codului. Condiia poate fi ndeplinit dac
terminalul de condiionare este TRUE (Stop if TRUE) sau FALSE (Continue if
TRUE). Acest lucru poate fi schimbat din meniul shortcut al terminalului. Dac
terminalul nu este legat, LabVIEW d un mesaj de eroare.
Terminalul de iteraie i i tunelurile au aceeai semnificaie ca i la bucla FOR.
Condiia de execuie a buclei trebuie legat n interiorul acesteia, pentru a putea fi
citit la fiecare rulare. Exemplul din figura 5.3 nseamn ciclare infinit,
deoarece constanta TRUE este citit o dat nainte de a intra n bucl, dup care
bucla cicleaz continuu ntruct condiia nu mai este citit, aceasta rmnnd
continuu TRUE. Oprirea buclei se face din butonul Abort Execution de pe bar.
70
Execut
cod
Condiie
ndeplinit ?
tuneluri
NU
index
DA
Terminal condiionare
ieire
a)
b)
Figura 5.2
Figura 5.3
Figura 5.4
71
Autoindexarea
Autoindexarea este o noiune specific buclelor FOR i WHILE. Dac la intrarea
unei bucle se aplic o matrice i din meniul shortcut al tunelului de intrare se
valideaz opiunea Enable Indexing, atunci la fiecare iteraie bucla ia n calcul, n
ordine, cte un element din matricea respectiv. In exemplul din figura 5.5, la
intrare avem un vector cu 6 elemente, este validat autoindexarea, iar la terminalul
N este legat numrul 5.
Figura 5.5
(5.1)
72
iteraia n
Figura 5.6
Figura 5.7
73
Structur CASE
Selector de cazuri
Figura 5.8
74
Figura 5.9
Secvena suprapus dispune cadrele precum crile de joc, unul peste altul, n
ordinea execuiei. La un moment dat este vizibil subdiagrama doar dintr-un singur
cadru. Trecerea datelor dintr-un cadru n altul se poate face numai n sensul
execuiei secvenei, prin tuneluri de comunicare, care se obin din meniul shortcut,
opiunea Add Sequence Local. Sgeata tunelului specific direcia datelor.
In figura 5.10 sunt prezentate dou cadre succesive ale aceleiai secvene
suprapuse. In primul cadru se realizeaz adunarea a dou numere, iar n cadrul al
doilea rezultatul adunrii, transportat din cadrul 1 prin tunelul de comunicare, este
nmulit cu 2. Rezultatul este disponibil numai dup efectuarea ntregii secvene.
Nici o informaie dintr-o structur SECVEN nu este accesibil dect dup ce
75
structura a fost complet executat. Secvenele suprapuse sunt mai compacte dect
cele plate, fiind utile atunci cnd spaiul alocat pe diagram este limitat.
Tuneluri de comunicare
a)
b)
Figura 5.10
Tunelurile de ieire dintr-o structur SECVEN pot avea doar o singur surs
de date, spre deosebire de structura CASE, unde fiecare caz trebuie s trimit date
tunelului. Ieiri pot fi create din orice secven, dar datele sunt accesibile la acea
ieire numai dup terminarea de executat i a ultimei secvene din structur.
z = 4 + A sin(2i / N )
(5.2)
Bucla FOR cicleaz de attea ori ct este N , care reprezint numrul de puncte n
care este eantionat sinusoida. i este indexul buclei, care joac rol aici de variabil
discret. Ieirea din bucl se face cu autoindexare; vectorul obinut reprezint chiar
sinusoida digitizat.
76
Figura 5.11
Figura 5.12
Variabilele pot fi definite n structur (ca n figura 5.12) sau pot fi specificate
prin intrri i ieiri.
Adugarea de intrri i/sau ieiri se face din meniul shortcut al structurii,
opiunea Add Input (Output).
Toate variabilele, inclusiv cele intermediare (cum este y din figura 5.11)
trebuie definite. Variabilele intermediare se definesc ca ieiri.
Numele intrrilor i ieirilor trebuie s fie aceleai cu numele variabilelor pe
care le definesc. Pot exista cuvinte cheie predefinite cum ar fi pi, care nu
trebuie declarate.
Pot exista intrri i ieiri cu acelai nume, dar nu pot exista dou intrri (ieiri)
cu acelai nume.
Intrrile trebuie s aib legate obligatoriu surse de date. Eticheta controlului de
intrare nu trebuie s fie aceeai cu numele variabilei creia i furnizeaz date.
Variabilele pot fi scalari reali (floating point), ntregi sau matrici de numere.
Variabilele nu pot avea uniti de msur.
77
Mai exist o posibilitate de evaluare a unei expresii scrise n mod text, utiliznd
funcia Expression Node din subpaleta Numeric. Aceast funcie permite evaluarea
unei expresii de o singur variabil, scris dup aceleai sintax ca i la Formula
Node. Variabila se noteaz cu x i ia valorile sursei de date aplicate la intrare. In
figura 5.13 este dat un exemplu de utilizare a funciei Expression Node.
Figura 5.13
Exerciiul 5.1
Scop
Studiul autoindexrii.
Mod de lucru
Figura 5.14
5. Pe DL apsai butonul
Highlight Execution.
6. Rulai instrumentul i observai cte iteraii se execut. IV-ul va executa 3
iteraii, cte elemente are vectorul mai mic. Vectorul de ieire conine
rezultatul obinut prin adunarea, element cu element, a celor doi vectori de la
intrare.
78
1.
2.
3.
4.
a)
b)
Figura 5.15
Exerciii propuse
EP 5.1.
S se construiasc un vector care s conin, n ordine, toate numerele ntregi
cuprinse ntre dou numere date pe panoul frontal.
Exerciiul 5.3
Enun
START
Genereaz numr
aleator cuprins
ntre 0 i 1
Inmulete cu
1000
NU
Scade 400
Rotunjete la
valoarea ntreag
= Nr. dat ?
Afieaz valoare
numr curent
DA
Adaug 1 la i
Afieaz nr.
iteraii
STOP
Figura 5.16
81
Figura 5.17
Exerciiul 5.4
Enun
S se construiasc un vector care s fie format din primele N elemente ale unei
progresii aritmetice, fiind date de pe PF primul termen, a0, numrul de termeni, N
i raia r.
Mod de lucru
a n = a n 1 + r
(5.3)
unde an-1 i an sunt doi termeni consecutivi, iar r este raia. Pentru iniierea iteraiei
este necesar primul termen, a0.
In acest exerciiu vom experimenta utilizarea regitrilor de deplasare pentru
impelentarea relaiilor de recuren n LabVIEW.
1. Plasai pe un nou IV un control numeric de tip double etichetat a0, un control
de tip double etichetat r, un control de tip I32 etichetat N i un indicator de tip
array double etichetat Progresie.
2. Plasai pe DL o bucl FOR creia i legai terminalului N controlul cu eticheta
N.
82
Figura 5.18
Exerciiul 5.5
Enun
Mod de lucru
Cele dou controale Ring sunt numerice de tip U16, dup cum se poate observa de
pe DL. Fiecrui element text i corespunde un numr ntreg. Pentru a vedea
corespondena dintre elementul text i numrul asociat, selectai din meniul
shortcut Visible Items Digital display.
Figura 5.19
84
Figura 5.20
85
Figura 5.21
Exerciiul 5.6
Enun
(5.4)
1. Deschidei un IV nou.
2. Plasai pe PF un control de tip vector numeric etichetat x(n) i un indicator de
tip vector numeric etichetat y(n).
3. Vom genera pentru nceput semnalul de intrare, x(n). Pentru obinerea irului
de numere aleatoare cuprinse ntre -2 i 2, vom utiliza generatorul de numere
aleatoare Random Number (0-1) la care vom efectua urmtoarele operaii:
0 < x <1 | 4
0< x < 4 | 2
2< x <2
4. Realizai generatorul semnalului de intrare dup diagrama din figura 5.22.
86
(5.5)
Figura 5.22
Figura 5.23
87
Figura 5.24
Exerciiul 5.7
Enun
Figura 5.25
Mod de lucru
(5.6)
i=0
Genereaza
0 < ai < 1
xi = ai(Nmax-Nmin)+Nmin
NU
Adaug xi la
V1
NU
i = N-1 ?
DA
xi >
Ndat ?
DA
DA
Afieaz
vectori
STOP
Figura 5.26
89
Adaug xi la
V2
i = N-1 ?
NU
Intr-o bucl FOR care va rula de N ori, nmulii aadar ieirea funciei Random
Number (0 1) cu valoarea (Nmax-Nmin), dup care adunai rezultatul cu Nmin.
Numrul obinut va fi cuprins ntre Nmin i Nmax.
Pentru selectarea celor 2 vectori dup poziia numerelor generate fa de
numrul dat, vom utiliza un algoritm bazat pe organigrama din figura 5.26.
Construirea vectorilor V1 i V2 se face n urma comparaiei numrului generat
cu numrul dat, al crei rezultat selecteaz dou cazuri: cazul FALSE corespunde
construirii vectorului V1, iar cazul TRUE corespunde construirii vectorului V2.
Construirea vectorilor se face element cu element, utiliznd cte o funcie Build
Array i un registru de deplasare iniializat cu vectorul vid.
4. Construii diagrama din figura 5.27. Iniializarea celor doi regitri de deplasare
cu vectorul vid se face printr-un MD pe terminalul din stnga i selectare
Create Constant.
Figura 5.27
90
Exerciiul 5.8
Enun
Afieaz i
DA
S-a apsat
butonul OK ?
i = i+1
Figura 5.28`
Figura 5.29
91
NU
Exerciiul 5.9
Enun
Figura 5.30
10. Indicatorul Color Box este un indicator de tip numeric, care afieaz o culoare
corespunztoare unui anumit numr.
11. Plasai pe PF o structur CASE, creia i legai controlul slide la selector.
92
12. In cadrul 0 plasai o constant numeric din subpaleta de funcii numerice. Dai
acestei constante valoarea 16711680.
13. In cadrul 1 plasai o constant creia i atribuii valoarea 16773632.
14. Adugai un nou caz dup cazul 1. Plasai n cadrul 2 constanta 655580.
15. Scoatei toate cele 3 constante la ieirea structurii CASE printr-un tunel comun,
pe care-l legai la indicatorul Color Box.
16. ncadrai ntreaga diagram ntr-o bucl WHILE asistat de un buton de STOP.
17. Rulai instrumentul i verificai funcionalitatea.
Exerciii propuse
EP 5.2.
S se construiasc un vector format din N numere aleatoare cuprinse ntre dou
numere N1 i N2 fixate de pe panoul frontal. S se ordoneze apoi aceste numere n
ordine cresctoare sau descresctoare, selectabil dintr-un control de pe panoul
frontal.
EP 5.3.
a) S se construiasc un vector format din N numere ntregi aleatoare cuprinse ntre
dou numere date, Nmin i Nmax fixate de pe panoul frontal.
b) S se determine apoi de cte ori un numr dat pe PF coincide cu elementele
vectorului construit i s se afieze un vector cu indecii elementelor gsite.
c) S se nlocuiasc elementele gsite cu valoarea lui Nmax+1.
EP 5.4.
S se construiasc o matrice cu dou linii, care s conin:
pe prima linie toate numerele pare cuprinse ntre dou numere date
pe a doua linie toate numerele impare cuprinse ntre dou numere date.
EP 5.5.
S se realizeze un instrument virtual care s calculeze i s afieze toi divizorii
unui numr dat.
EP 5.6.
S se realizeze un IV care s afieze toate numerele prime pn la un numr dat pe
panoul frontal.
EP 5.7.
S se construiasc o matrice cu M linii i N coloane (M i N fixate de pe panoul
frontal) ale crei elemente sunt numere ntregi aleatoare cuprinse ntre 0 i 50.
S se afieze apoi de cte ori un numr dat pe PF se afl printre elementele matricii
de mai sus i s se nlocuiasc aceste elemente cu numrul 51.
93
EP 5.8.
S se realizeze un IV care s elimine dintr-un vector dat pe PF un anumit element
i s afieze vectorul rmas.
EP 5.9.
Fie semnalul digital ale crui eantioane sunt date n tabelul de mai jos. tim c
eantionarea s-a efectuat cu perioada T0 = 1 ms. S se realizeze un IV care s
determine automat perioada unui semnal eantionat aplicat la intrare i s se
exemplifice funcionarea prin exemplul de semnal de mai jos.
2.2
4.2
6.2
4.2
2.2
0.2
-1.8
-3.8
-5.8
-3.8
-1.8
0.2
2.2
4.2
6.2
EP 5.10.
a) S se realizeze un IV care s simuleze, utiliznd generatorul de semnale
aleatoare, aruncarea a dou zaruri. Aruncarea se iniiaz de la un buton de pe
PF.
b) S se afieze de cte ori s-a aruncat o anumit valoare a sumei zarurilor ntr-o
sesiune de aruncri. Panoul frontal al instrumentului este dat n figura 5.31.
Figura 5.31
EP 5.11.
S se realizeze un IV care s genereze un vector de N numere aleatoare ntregi
cuprinse ntre dou numere date pe PF. S se construiasc apoi un alt vector care s
fie format din produsele elementelor primului vector, luate dou cte dou. De
exemplu, primul element al celui de-al doilea vector este produsul primului cu al
doilea element al primului vector, al doilea element este produsul dintre al treilea i
al patrulea, .a.m.d.
94
Capitolul 6
IRURI DE CARACTERE
Cod
\00 - \FF
\b
\f
\n
\r
Semnificaie
Valoarea n hexa a unui caracter. Trebuie s fie scris cu
litere mari
Backspace (ASCII BS, \08)
Form feed (ASCII FF, \0C)
Linefeed (ASCII LF, \0A)
Carriage return (ASCII CR, \0D)
95
\t
\s
\\
Exemple
Tabelul 6.2
Input string
Format string
Default(s)
Output(s)
abc, xyz,
12.3+56i
7200
%3s, %s%f%2d
Q+1.27E-3
tail
0123456789
Q%f t
abc
xyz
12.3+56i
7
1.27E-3
%3d%3d
96
12
345
Remaining
string
00
ail
6789
X:9.860
Z:3.450
X:%fY:%f
set49.4.2
set%d
100 (I32)
100.0
(DBL)
-
10
100.0
Z: 3450
49
.4.2
Stabilirea formatului
Sintaxa formatului din funciile Scan From String i Format Into String este
urmtoarea:
[Str]%[-][0][lime][.precizie]{u.m.}Conversie[Str]
unde:
Str un ir oarecare care precede sau succede numrul
[-] aliniere la stnga. Dac lipsete, alinierea se face la dreapta.
[0] indic faptul c locurile libere se completeaz cu zerouri. Dac lipsete,
completarea se face cu spaii goale.
[lime] numrul minim de caractere alocate numrului
[.precizie] numrul de cifre zecimale
{u.m.} unitatea de msur
Conversie este unul din caracterele:
f format fracionar (ex. 12,345)
e format tiinific (ex. 1,234E1)
g format fracionar/tiinific
p format n sistemul internaional de uniti
d format ntreg zecimal (ex. 12)
x ntreg n hexazecimal (ex. B8)
o - ntreg n octal (ex. 701)
b ntreg n binar (ex. 10110)
97
t relativ la timp
T amprent de timp
s string (ex. Abc)
% - caracter
Exemple
Formatul %3.2f semnific:
3 = numrul minim de caractere alocat numrului. Numrul se aliniaz la
dreapta. Dac avem %-3.2f, numrul se aliniaz la stnga. Dac avem
%03.2f, locurile rmase libere se completeaz cu 0.
2 = numrul de cifre de dup virgul.
Tabelul 6.3
Format
score= %2d%%
level= \n%-7.2e V
Argument
87
0.03642
Smith
John
96.793
Fahrenheit
Hello, World
5.67 N
5.67 N
5.67 N
Temp: %05.1f %s
String: %10.5s.
%5.3f
%5.3{mN}f
%5.3{kg}f
Ieire
score= 87%
level=
3.64e-2 V
Name: Smith, John.
Carriage return i Line Feed (echivalent cu apsarea tastei Enter). Se pot specifica
totui i alte semne de separaie ntre elemente n afara tabulatorilor.
Acest tip de scriere a stringurilor este recunoscut i de alte medii de
programare sau programe utilizate: C, Excel, Mathcad, Spice, etc. La aceste funcii,
formatul se scrie la fel ca la funcia Format Into String, ns nu se mai face n mod
interactiv.
Exerciiul 6.1
Scop
1.
2.
3.
4.
5.
100
Exerciiul 6.3
Scop
1.
2.
3.
4.
5.
Exerciiul 6.4
Scop
iruri de caractere. Funcia cea mai potrivit pentru construirea textelor prin
concatenare este Format Into String, deoarece aceasta permite i conversia direct
a numerelor i a altor tipuri de date n iruri de caractere. O alt funcie cu care se
pot construi texte prin concatenare este Concatenate Strings.
1.
2.
3.
4.
Figura 6.1
Exerciii propuse
EP 6.1.
S se realizeze un IV care s caute ntr-un text dat un grup de litere i s-l
nlocuiasc cu alt grup de litere.
Variant: nlocuirea grupului cutat s se fac cu un numr fixat pe PF.
EP 6.2.
S se realizeze un instrument virtual care s extrag i s afieze ntr-un vector
toate numerele reale dintr-un text dat.
EP 6.3.
S se realizeze un IV care s extrag dintr-un text dat toate cuvintele care ncep cu
litera s i s le afieze ntr-un vector de stringuri.
102
Studiul tabelelor.
Mod de lucru
f 1( x ) = x 2 + log x + 1
f 2( x ) = 2 sin(x / 180)
f 3( x ) = x 3 + x
pentru toate valorile lui x numr ntreg cuprinse ntre 2 i 15.
Headerul fiecrei coloane conine numele funciei corespunztoare.
Mod de lucru
1.
2.
3.
4.
5.
6.
Figura 6.2
Exerciii propuse
EP 6.4.
S se realizeze un IV care s ordoneze n ordine alfabetic, pe coloane, cuvintele
scrise ntr-un tabel.
EP 6.5.
S se realizeze un IV care s afieze ntr-un tabel, pe M linii i N coloane, numere
ntregi aleatoare cuprinse ntre dou numere date, N1 i N2. S se gseasc apoi
104
105
Capitolul 7
Variabilele locale (VL) sunt obiecte de pe DL care corespund unor controale sau
indicatoare de pe PF, fiind identificate dup eticheta acestora. Scrierea ntr-o
variabil local are acelai rezultat ca i introducerea datelor ntr-un terminal, chiar
dac acesta este control sau indicator. In fapt, variabila local este o oglind a
zonei de memorie unde se afl terminalul corespunztor. Cu variabila local se
poate citi acea zon de memorie sau se poate scrie n ea. Aadar, printr-o variabil
local un control se poate utilizat fie ca intrare, fie ca ieire de date.
Datele dintr-o variabil local pot fi utilizate doar n IV-ul n care a fost creat
variabila. Putem avea oricte variabile locale pentru un terminal. Acestea se pot
utiliza n situaii n care prezena terminalului este necesar n mai multe locuri
odat (de exemplu n structuri). De asemenea, VL sunt utile atunci cnd se dorete
transportul datelor pe o diagram complicat, fr a mai fi necesar realizarea
legturii prin fir.
Crearea unei variabile locale se face n dou moduri:
1) Deschidei meniul shortcut al terminalul al crui variabil local dorii s o
creai, apoi selectai Create Local Variable. Se creeaz astfel n mod
automat variabila local cu numele etichetei terminalului.
2) Accesai de pe DL subpaleta de funcii Structures Local Variable. Plasai
variabila pe DL. Facei apoi MD pe semnul ntrebrii i selectai Select
Item. Se deschide o fereastr cu numele tuturor terminalelor care accept
atribuirea de variabile locale. Alegei din aceast fereastr terminalul dorit.
Exerciiul 7.1
Scop
In momentul crerii, variabila local este capabil s primeasc date. Dac mergei
cu prompterul pe variabil, vei observa apariia unui terminal n partea stng a ei,
semn c aceasta primete date. Schimbarea variabilei locale din primitor n
furnizor de date se face din meniul shortcut, opiunea Change To Read.
4. Legai la VL un control.
5. Dai o valoare controlului iniial diferit de 0 i rulai instrumentul. Observai
c, deoarece controlul legat la VL conine valoarea 0, i controlul reprezentat
de VL primete valoarea 0.
6. Dai acum o valoare diferit de 0 controlului legat la VL. Rulai instrumentul.
Observai cum controlul iniial ia valoarea VL.
7. Schimbai VL n variabil de citire (Change To Read) i controlul asociat ei n
indicator. Refacei legtura.
8. Dai o valoare controlului iniial i rulai instrumentul. Observai cum
indicatorul citete valoarea VL, deci a controlului pe care l reprezint.
9. Repetai studiul cu date de tip boolean, string i array.
10. Salvai sub numele Ex 7.1.vi.
Variabilele globale (VG) sunt variabile stocate n nite IV-uri care au doar panou
frontal, numite containere de variabile globale. VG sunt stocate n nite controale
de pe PF al containerului, care pstreaz valorile variabilelor utilizate n IV-urile
care le apeleaz. Scopul crerii acestor tipuri de variabile este de a utiliza datele
create ntr-un IV n mod global i n alte IV-uri.
Ca i variabilele locale, cele globale sunt apelabile pe DL prin noduri specifice,
care se gsesc n subpaleta de structuri Global Variable. Realizarea unui dublu
click pe VG de pe DL deschide PF al containerului. Aici se pot aduga oricte
controale de pe paleta de controale, fiecare din acestea reprezentnd o VG.
Obligatoriu, controalele se vor eticheta, deoarece apelarea variabilelor se va face
prin aceast etichet. In figura 7.1a este prezentat containerul Global1.vi care
conine variabila global VG numeric. Aceast variabil global este apelat de
ctre IV-ul din figura 7.1b, care este nscris prin controlul Numeric.
Dup plasarea unei VG pe DL i definirea unui PF pentru ea, nodul este asociat
acelui PF. Deoarece sunt mai multe variabile asociate aceluiai PF, trebuie selectat
dintr-o list numele variabilei creia i se adreseaz. Aceast list se afieaz prin
dublu click pe VG creat sau din meniul shortcut opiunea Select item.
Intr-o VG se pot scrie sau din ea se pot citi date. Ca i la VL, pentru citire se
selecteaz din meniul shortcut Change to Read, iar pentru scriere se selecteaz
Change to Write. VG pot fi citite sau scrise de ctre orice IV aflat n memorie la un
moment dat. Trebuie avut ns grij ca citirea s se fac atunci cnd datele sunt
stabile, adic un alt IV s nu scrie atunci cnd VG este citit.
Plasarea aceleiai VG n alt IV se face prin apelarea ei ca orice subIV din
subpaleta de funcii, cu opiunea Select a VI.
107
a)
b)
Figura 7.1
Exerciiul 7.2
Scop
Adugarea unei noi VG din subpaleta de structuri nseamn crearea unui nou
container, cruia trebuie s-i adugai alte variabile globale.
START
Citete A
Calculeaz A B
Citete B
Afieaz rezultat
AB
Calculeaz A + B
Apas buton OK
Afieaz rezultat
A+B
Apas buton OK
NU
Un nou
calcul ?
DA
STOP
Figura 7.2
Figura 7.3
Figura 7.4
Deoarece butonul OK va avea nevoie i el de o variabil local pentru cazul al 4lea (cnd instrumentul trebuie s atepte din nou apsarea butonului OK) i
LabVIEW nu accept crearea de variabile locale pentru butoanele cu aciune
mecanic latch, vom stabili butonului OK aciunea mecanic Switch When Pressed
i vom readuce n cadrul al treilea butonul la starea false. Schimbarea aciunii
mecanice a butonului se face din meniul su shortcut, opiunea Mechanical Action.
Figura 7.5
111
8. Pentru implementarea dialogului din cel de-al 5-lea cadru, vom utiliza funcia
Two Button Dialog din subpaleta Dialog & User Interface, cum este prezentat
n figura 7.6. Valoarea boolean furnizat la ieirea acestei funcii o legm la
terminalul de condiionare al buclei mari. Este necesar readucerea pe false a
butonului OK, pentru a-l pregti pentru un nou calcul.
Figura 7.6
Exerciii propuse
EP 7.1.
S se realizeze un IV care are panoul frontal din figura 7.7 i ndeplinete
urmtoarele funcii:
1. Genereaz numere aleatoare cuprinse ntre 10 i 20, la intervale de timp egale
cu 300 ms.
2. Dac numrul generat depete valoarea Nmax, pe un indicator de tip string
se afieaz mesajul S-a depit nivelul maxim i se aprinde LED-ul 1,
celelalte fiind stinse.
3. Dac numrul generat se afl sub valoarea Nmin, pe indicatorul string se
afieaz mesajul Sub nivelul minim i se aprinde LED-ul 2, celelalte fiind
stinse.
4. Dac valoarea numrului generat se afl ntre Nmin i Nmax, nu se afieaz
nici un mesaj i se aprinde LED-ul 3, celelalte fiind stinse.
) Temporizarea de 300 ms se poate face utiliznd funcia Wait (ms) din subpaleta
de funcii Timing.
112
Figura 7.7
EP 7.2.
S se realizeze un IV prin care s se introduc interactiv date ntr-un tabel n
urmtoarea ordine: nume, prenume, anul nasterii, grupa sanguina, la apsarea unui
buton de pe PF.
La apsarea butonului se deschid succesiv ferestre etichetate in care se cere
introducerea datelor specificate. Fiecare fereastra are prevzut un buton OK cu care
se valideaz datele.
La terminarea unui rnd de date se deschide o alt fereastr de dialog n care se
ntreab dac se dorete continuarea cu un nou ir de date. Validarea se face cu
dou butoane: DA i NU.
Datele sunt afiate n tabel n IVul principal pe linii. Coloanele au headere cu
numele informaiei cerute: Nume, Prenume, etc.
113
Capitolul 8
NODURI DE PROPRIETI
Figura 8.1
114
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Exerciiul 8.2
Enun
Mod de lucru
Figura 8.2
Figura 8.3
Figura 8.4
Figura 8.5
118
Capitolul 9
INDICATOARE GRAFICE
a)
b)
Figura 9.1
119
Figura 9.2
a)
b)
120
c)
d)
Figura 9.3
Figura 9.4
a)
b)
Figura 9.5
a)
b)
Figura 9.6
Figura 9.7
123
124
XY Graphs (XYG)
Aceste indicatoare sunt tot forme de graph-uri la care datele sunt specificate prin
perechi de puncte ce reprezint coordonatele carteziene din planul de afiare
grafic. Se pot desena astfel orice forme geometrice plane, la care punctele nu
trebuie s fie neaprat egal distanate, ca la WG sau ca la WCh.
b)
a)
Figura 9.8
S se genereze i s se afieze grafic doi vectori formai din valorile funciei sinus,
respectiv cosinus, pe un numr de perioade selectate de pe panoul frontal. Pe PF se
mai dau numrul total de puncte i amplitudinea funciilor.
125
Figura 9.9
N p1
y1(i ) = A1sin 2
i
N
N p2
y 2(i ) = A2 cos 2
i
N
(9.1)
unde N este numrul total de puncte, Np1 i Np2 reprezint numrul de perioade,
iar A1 i A2 sunt amplitudinile funciilor sinus, respectiv cosinus.
Mod de lucru
Figura 9.10
Figura 9.11
127
Figura 9.12
Pentru aceasta, vom utiliza modul b4) de la seciunea Afiarea de grafice multiple
pe acelai Waveform Graph, n care distana dintre dou valori adiacente de pe
abscis (cuanta de unghi), , este dat de transformarea n grade:
(9.2)
Figura 9.13
8. Modificai eticheta abscisei din Time n Grade. Folosii pentru aceasta unealta
text.
9. Deschidei legenda de cursoare (Visible Items Cursor Legend) i creai dou
cursoare (MD pe legend Create Cursor Single Plot).
10. Micai cursoarele cte unul pe fiecare curb (iniial cursoarele se gsesc n
punctul de abscis 0) i urmrii coordonatele punctelor.
11. Adugai pe PF un Waveform Chart.
12. Realizai pe DL legturile pentru afiarea concomitent a ambelor grafice pe
WCh, n afara buclei FOR (figura 9.14).
Figura 9.14
13. Rulai instrumentul de mai multe ori, cu diverse valori de intrare i observai
acumularea punctelor n istoricul WCh.
14. Adugai scrollbarul (Visible Items X Scrollbar) i derulai informaia
anterioar.
15. Modificai lungimea bufferului de stocare istoric din meniul shortcut, Chart
History Kength.
16. Mutai WCh n interiorul buclei FOR, pentru a-l utiliza cu funcia de
nregistrator punct cu punct. Realizai legturile conform figurii 9.15.
Figura 9.15
129
Aceleai grafice pot fi construite utiliznd generatorul de funcii Sine Wave.vi din
biblioteca LabVIEW. Acesta se afl n subpaleta Signal Processing Signal
Generation. In figura 9.16 este prezentat pictograma funciei Sine Wave.
Figura 9.16
frecventa semnal
numar perioade
1
=
=
frecventa de esantionare numar total de esantioane numar esantioane pe perioada
(9.3)
Phase in faza iniial n grade
Reset phase determin faza iniial a formei de und. Dac Reset phase este
true, atunci faza iniial este phase in. Dac Reset phase este false, atunci faza
iniial este setat la valoarea phase aut a ultimei rulri a funciei.
Phase out faza ultimului eantion al irului, n grade.
Sine wave vectorul de materializeaz forma de und.
130
Figura 9.17
x3 = x 2
x 4 = x1
y 3 = y1 L
y 4 = y3
(9.4)
x1,y1
x2,y2
x4,y4
x3,y3
Astfel, vom crea un vector ce conine cele 4 abscise, plus al cincilea element egal
cu primul element, i alte vector format din ordonatele vrfurilor, plus al cincilea
element care este egal cu primul. Cel de-al cincilea element se adaug deoarece, pe
XYG, laturile ptratului se obin prin unirea cu linii drepte a punctelor plasate pe
131
suprafaa grafic, cel de-al cincilea punct fiind necesar pentru trasarea celei de a
patra laturi.
Figura 9.18
1. Utiliznd un nod de formule, construii cei doi vectori utiliznd relaiile (9.4).
2. Dai valori coordonatelor colului i laturii i rulai instrumentul.
3. Salvai IV-ul sub titlul Ex 9.2.vi.
Figura 9.19
132
Exerciii propuse
EP 9.1.
Dup modelul de la exerciiul 9.2, desenai pe suprafaa unui WY Graph un
triunghi echilateral, cruia i se dau de pe panoul frontal latura i coordonatele unuia
dintre vrfuri. ncercai s realizai triunghiul i utiliznd funciile din biblioteca
Graphics & Sound Picture Functions.
EP 9.2.
S se realizeze un IV care s deseneze pe un WY Graph un cerc cruia i se
specific raza i coordonatele centrului.
(9.5)
EP 9.3.
S se realizeze un instrument virtual care s ndeplineasc urmtoarele cerine:
1. Genereaz, la alegere, urmtoarele tipuri de funcii: sinusoidal,
triunghiular, dreptunghiular, ramp, selectabil dintr-un control de pe PF.
De pe PF se mai stabilesc: frecvena semnalului n Hz, frecvena de
eantionare n Hz, numrul de perioade, faza iniial, amplitudinea, offsetul (componenta continu). La funcia dreptunghiular se va specifica i
factorul de umplere (duty cycle %).
2. Pe PF va fi un LED care se aprinde dac nu este ndeplinit condiia
Nyquist i se afieaz mesajul: Conditia Nyquist nu este ndeplinit.
Ajustai f sau fe.
3. Indicatorul grafic va avea pe abscis faza, exprimat n grade (figura 9.20).
Numar perioade
Frecventa normalizata
(9.6)
EP 9.4.
S se realizeze un instrument virtual care s calculeze i s traseze pe acelai grafic
funciile:
y = x 3 + mx 2 + 1;
y = ax + b
133
Figura 9.20
pentru x numr ntreg cuprins ntre dou valori, Nmin i Nmax, stabilite de pe
panoul frontal. De pe PF se mai stabilesc de asemenea valorile coeficienilor m, a i
b. Trasarea graficelor se va face att pe un WG ct i pe un WCh.
EP 9.5.
S se realizeze un IV care s roteasc pe suprafaa grafic a unui XY Graph un
segment de dreapt de lungime fix n jurul unuia din capete. Se dau de pe PF:
lungimea segmentului, coordonatele captului fix, numrul de puncte al cercului
dup care se face rotaia captului liber, viteza de rotaie i sensul de rotaie.
EP 9.6.
Aceeai problem ca mai sus, numai c segmentul se rotete n jurul mijlocului su.
EP 9.7.
S se construiasc un IV care s roteasc un cub de latur dat n jurul axei sale
verticale, cu o vitez dat. Aceeai problem pentru rotirea n jurul unei diagonale.
134
Capitolul 10
Formate generale
Binar (Binary Byte Stream) reprezint cea mai compact i rapid metod de
stocare a datelor. Datele trebuie convertite n prealabil n iruri binare de
caractere i trebuie cunoscut exact ce tip de date au fost salvate pentru a putea
fi citite ulterior.
ASCII (ASCII byte stream) se salveaz cnd se dorete utilizarea datelor n
procesoare de text sau alte programe ce accept astfel de format (Matlab,
C/C++, Microsoft Office, etc.). Pentru stocarea n astfel de format, datele
trebuie s fie convertite ASCII.
Formate specifice
LVM (LabVIEW measurement data file) este tot un format ASCII, ns fiierul
creat prezint un preambul coninnd o serie de informaii legate de parametrii
msurrii, numele operatorul, data, ora, locul msurrii, etc. Citirea acestor
fiiere, ca i scrierea, se face cu funcii LabVIEW din subpaleta File I/O.
135
136
Exerciiul 10.1
Enun
Figura 10.1
137
a)
b)
Figura 10.2
138
Figura 10.3
139
Exerciii propuse
EP 10.1.
a) Construii un IV care s citeasc fiierele salvate la exerciiul 10.1, utiliznd
funciile de nivel nalt Read From Spreadsheet File i Read From
Measurement File.
b) Afiai vectorii citii pe PF sub form grafic i ntr-un tabel, pe coloane.
EP 10.2.
Construii un IV care s salveze cei doi vectori obinui din funciile sinus i
cosinus n format spreadsheet; fiierul s conin n capul fiecrei coloane numele
funciei, iar la sfrit s aib o legend cu detalii despre fiier coninnd data i ora
la care acesta a fost creat.
SINUS
COSINUS
0.00
3.00
0.13
2.98
0.25
2.91
0.37
2.79
0.50
2.63
0.62
2.43
0.74
2.19
0.85
1.91
0.96
1.61
Detalii despre fisier:
Data: 11/12/2003
Ora: 12:23:35 PM
140
) Pentru realizarea acestui IV, utilizai pentru scriere funcia Write To Text File
din subpaleta File I/O. Va trebui aadar s convertii nti matricea de numere
n format spreadsheet utiliznd funcii din subpaleta String. Construii apoi
textul care va fi salvat cu ajutorul funciei Concatenate Strings.
EP 10.3.
Construii un IV care s citeasc fiierul de la exerciiul EP 10.2.
Figura 10.4
141
In exemplul de mai sus, funcia de scriere Write to Text File este plasat ntr-o
bucl WHILE, primind printr-un registru de deplasare valoarea numrului de
referin furnizat de funcia Open/Create/Replace File. Textul scris n fiier este un
numr aleator cuprins ntre 0 i 1 furnizat de generatorul Random Number (0-1),
apoi convertit n ir de caractere ca numr cu 2 zecimale urmat de un caracter
special End of Line, care face ca scrierea vectorului s se fac pe coloan.
Un cluster de eroare creat de prima funcie este trecut celorlalte funcii, dup
care este aplicat unui indicator de tip Simple Error Handler din subpaleta Dialog &
User Interface. Aceast legtur are rolul de a semnala pe parcursul rulrii
instrumentului eventualele erori care apar. Legarea n cascad a lanului de
semnalizare a erorilor permite stabilirea cu precizie a locului i a cauzei de apariie
a erorii.
Bucla WHILE se oprete la apsarea unui buton de stop sau la apariia unei
erori, caz n care statusul se schimb din false n true.
Exerciii propuse
EP 10.4.
Utiliznd exemplul din figura 10.4, s se realizeze un instrument virtual care s
genereze i s salveze, punct cu punct, eantioanele a doi vectori construii prin
funciile sinus i cosinus, n urmtoarele condiii:
generarea eantioanelor i salvarea se face la intervale de timp stabilite pe
panoul frontal.
salvarea vectorilor n fiier se face pe coloane.
pe PF se afieaz cei doi vectori, punct cu punct pe un Waveform Chart.
oprirea instrumentului se face n unul din urmtoarele cazuri: la apsarea unui
buton de STOP, n cazul apariiei unei erori sau la atingerea unui numr de
eantioane prestabilit.
De pe PF se fixeaz:
- amplitudinile celor dou funcii
- numrul de eantioane dup care se oprete instrumentul
- intervalul de timp dintre dou eantioane
- calea fiierului de salvare
EP 10.5.
Aceeai problem ca mai sus, dar la care se adaug urmtoarele condiii:
fiecare eantion se salveaz mpreun cu ora la care a fost generat i unghiul
corespunztor
la atingerea numrului de eantioane prestabilit sau a unei mrimi a fiierului
fixate de pe PF n octei (byte), instrumentul nu se oprete, ci continu cu
salvarea ntr-un nou fiier. Fiierele vor fi denumite automat, n ordine: F1, F2,
F3,
La sfritul fiecrui fiier se va tipri un mesaj, dup caz:
142
continua cu fiier
inregistrare oprita de la butonul STOP
inregistrare oprita datorita unei erori
143
Capitolul 11
PROBLEME RECAPITULATIVE
PR 1
S se realizeze un instrument virtual care s calculeze rspunsul y(n) al filtrului
numeric dat de ecuaia:
la o secven de intrare x(n) format din 100 numere aleatoare cuprinse ntre 50 i
70. Filtrul este cauzal, adic toate valorile lui x(n) i y(n) pentru n < 0 sunt nule.
Se folosesc doi regitri de deplasare : unul pentru construirea lui x(n), iar
cellalt pentru y(n). Regitrii se iniializeaz cu 0, deoarece filtrul este cauzal.
PR 2
S se afle rspunsul filtrului de mai sus la o secven de intrare x(n) format din 10
perioade ale unui semnal sinusoidal cu amplitudinea 2, avnd 40 eantioane pe
perioad.
S se reprezinte ambele semnale pe acelai indicator grafic.
PR 3
S se realizeze un instrument virtual care s calculeze formula:
y = lg x 2 + e x + sin x + tgx
PR 4
S se reprezinte, pe acelai grafic, funciile :
144
y1( x ) = x 3 5 x + 3
y 2( x ) = 2 lg x + 1
y ( n ) = lg(n ) + x 2 6
PR 7
S se construiasc un ir y(n) format din 20 numere aleatoare cuprinse ntre
dou numere date, Nmin i Nmax.
S se mpart irul de mai sus n alte dou subiruri:
- y1(n) care s conin elementele lui y(n) cuprinse ntre dou valori
date, N1min i N1max
145
PR 8
S se construiasc dou progresii: una aritmetic (p.a.) i una geometric (p.g.)
avnd cte 20 de termeni fiecare, cu raia 3 i primul termen 4.
S se construiasc un ir format din elementele celor dou progresii, n
alternan, astfel: primul element din p.a., al doilea din p.g., al treilea din p.a, al
patrulea din p.g., etc.
S se salveze cele dou progresii ntr-un fiier ASCII, pe dou coloane, n
dreptul fiecrei coloane scriindu-se numele progresiei.
S se calculeze pentru irul construit, urmtoarele valori: valoarea maxim,
valoare minim, valoarea medie, valoarea ptratic medie, deviaia standard i
variana. S se afieze aceste valori ntr-un tabel, n urmtoarea form:
Valoarea
Valoarea
Valoarea
RMS
Dev.
Varianta
maxima
minima
medie
standard
566
2
349
235.4
2.45
4.55
146
Matrice M x N
PR 12
S se realizeze un instrument virtual care s deseneze pe un indicator de forma XY
Graph un sfert de cerc cu centrul n origine i de raz fixat de pe panoul frontal.
De pe un indicator de pe panoul frontal se selecteaz cadranul n care se face
desenarea sfertului de cerc.
De pe panoul frontal se mai fixeaz, de asemenea, numrul de puncte din care este
realizat curba.
PR 13
S se realizeze un instrument virtual care s ndeplineasc urmtoarele funcii:
s deseneze pe un indicator XY Graph un segment de dreapt ale crui capete
se dau prin coordonate carteziene de pe panoul frontal;
s deplaseze acest segment plan-paralel pe orizontal sau pe vertical, la
alegere dintr-un control de pe panoul frontal. Deplasarea se va face alternativ,
ntre dou puncte prestabilite.
PR 14
148
S se realizeze un instrument virtual care s calculeze cel mai mare divizor comun
(cmmdc) i cel mai mic multiplu comun (cmmmc) a dou numere date.
PR 15
S se simuleze n LabVIEW o instalaie automat care s menin nivelul de lichid
dintr-un rezervor ntre dou limite date, tiind urmtoarele:
N1
R1
R2
N2
Indicaii suplimentare:
1) La pornirea instrumentului, rezervorul este plin.
2) Se tie c rezervorul este de form cilindric, cu aria bazei de 1 m2 i
nlimea de 1 m.
PR 16
S se construiasc, fr a utiliza generatorul de funcii din biblioteca
LabVIEW, un semnal triunghiular cruia i se specific: nr. de puncte/perioad,
amplitudinea i numrul de perioade generate.
S se calculeze valoarea medie i cea efectiv a semnalului utiliznd funciile
Mean.vi i RMS.vi din biblioteca Mathematics Probability & statistics.
S se salveze semnalul generat, la apsarea unui buton SALVARE, ntr-un
fiier cu urmtorul format:
Nr. puncte/perioada:..
Amplitudinea:..
Nr. perioade:
Media:..
Valoare efectiva:
Semnalul este:
.(semnalul n format spreadsheet)..
PR 17
S se construiasc un instrument virtual care s realizeze introducerea interactiv a
datelor ntr-o baz de date avnd urmtoarele cmpuri:
o Numele
o Prenumele
o Grupa
150
o Nota la examen
Introducerea datelor se va face interactiv, n modul urmtor:
a)
b)
151
c)
d)
e)
152
PR 18
S se genereze un ir format din N numere ntregi aleatoare cuprinse ntre 1 i
1000.
S se separe apoi irul n alte 5 subiruri, formate din:
Subir 1 toate numerele din ir divizibile cu 3
Subir 2 toate numerele din ir divizibile cu 5
Subir 3 toate numerele din ir divizibile cu 6
Subir 4 toate numerele din ir divizibile cu 9
Subir 5 celelalte numere
S se afieze aceste numere ntr-un tabel ca cel de pe panoul frontal de mai jos.
PR 19
S se construiasc un instrument virtual care s gseasc i s afieze primele N
numere prime din irul numerelor naturale, N fiind dat pe PF.
PR 20
S se realizeze un instrument virtual care s determine i s afieze n ce zi a
sptmnii a czut o anumit dat din anul 2010, tiind c 1 ianuarie 2010 a fost
vineri.
153
154
Bibliografie