Sunteți pe pagina 1din 117

Instrumentaţie Virtuală Mircea GORDAN

CAPITOLUL 1

INTRODUCERE ÎN PROGRAMUL DE INTERFAŢĂ


LABVIEW

1.1. Generalităţi
În ultimele decenii instrumentele de măsură au evoluat atât în flexibilitate,
cât şi în ceea ce priveşte posibilitatea de a fi integrate în calculatoare sau sisteme
de instrumentaţie complexe. Ca şi aparatele, sistemele de măsură au ca scop
prelevarea mărimilor electrice sau ne-electrice (dar convertite în semnale
electrice), în scopul afişării, prelucrării sau luării unei decizii. Deosebirea între
cele două categorii de echipamente constă în complexitatea, versatilitatea
sistemelor de măsurare (plăci de achiziţie) care dispun de resurse de calcul
proprii.
Dacă în prima generaţie aparatele de măsură analogice erau controlate
manual cu ajutorul facilităţilor modeste acordate de panoul frontal, iar apoi
datele culese fiind prelucrate tot manual, introducerea circuitelor numerice şi a
microprocesoarelor a revoluţionat şi acest domeniu, făcând posibilă apariţia unei
noi generaţii de instrumente flexibile şi fiabile. Acestea au evoluat de la
aparatele portabile la instrumente virtuale create pe calculator care oferă o gamă
largă de posibilităţi. La ora actuală aparatele şi sistemele de măsură numerice au
ajuns să domine piaţa echipamentelor de profil datorită unor avantaje
incontestabile ca precizia ridicată, viteză de lucru sporită, posibilităţi multiple de
lucru, grad mare de automatizare a procesului de măsurare, flexibilitate şi
programabilitate, posibilităţi sporite de integrare în sisteme de măsurare
complexe, fiabilitate şi facilităţi de autotestare, gabarit redus, etc.

Plăcile de achiziţie pot folosii doar programe special create pentru acestea
dintre care pentru plăcile produse de către National Instruments se pot enumera:
- DAQ;
- GPIB;
- VXI;
- LabWindows;
- LabView;
- HiQ.
1
Instrumentaţie Virtuală Mircea GORDAN

Fiecare placă de achiziţie are un program de lucru special care utilizează


placa de achiziţie la performanţele maxime. Programele de interfaţă realizează
instrumente virtuale de măsurare şi afişare a semnalelor măsurate prin
intermediul plăcii de achiziţie.
Programul de interfaţă LabView poate realiza interfaţa de legătură cu
plăcile de achiziţie şi prin care se poate crea instrumente virtuale pentru acestea.
Este produs al companiei National Instruments, rulează în modul de operare
Microsoft Windows 95 – NT, are o structură asemănătoare programelor care
rulează în modul de operare Windows, foloseşte biblioteci de instrumente
virtuale de la mai mulţi producători (GPIB, VXI, HP, etc.), având posibilitatea
utilizării în aplicaţii diverse instrumente virtuale din biblioteci de aparate
diferite.
Programul LabView prezintă un mod de afişare în două ferestre:
- Fereastra de comandă;
- Fereastra de schemă.
Fereastra de comandă permite o utilizare simplă şi cât mai eficientă a
instrumentelor virtuale, iar cu ajutorul ferestrei de schemă se poate modifica
structura instrumentelor virtuale sau se pot crea noi instrumente virtuale
complexe cu ajutorul instrumentelor virtuale simple aflate în bibliotecile
programului LabView.
LabView (Laboratory Virtual Instrument Engineering Workbench) este un
limbaj de programare puternic de analiză şi instrumentaţie pentru computere
personale sau staţii de computere care au ca mod de operare Microsoft
Windows, Sun SPARCstation, Apple Macintosh şi HP-UX. Programul LabView
prin limbajul tradiţional de programare încearcă să prezinte programul cât mai
aproape de cerinţele zilnice care se utilizează în practică, punând la dispoziţie
aceste caracteristici printr-un program grafic şi oferind în acelaşi timp şi
instrumentele necesare pentru achiziţionarea, analizarea şi prezentarea datelor.
Cu ajutorul acestui limbaj grafic de programare, denumit şi limbaj „G” se poate
realiza schema bloc printr-o simplă desenare a notaţiilor ştiinţifice şi inginereşti,
care apoi programul LabView le compilează în cod maşină.
Programul de interfaţă LabView reuneşte într-un singur sistem achiziţia,
analizarea şi prezentarea datelor. Pentru a putea controla instrumente şi de a
achiziţiona date programul LabView se foloseşte de RS-232/422, IEEE 488
(GPIB), incluzând funcţiile Virtual Instruments Software Arhitecture (VISA),
precum şi configuraţia plăcilor de achiziţii (DAQ). O librărie de instrumente cu
drivere pentru sute de instrumente simplifică controlul aplicaţiei prin
intermediul acestor instrumente. Pentru analizarea datelor, librăria extinsă de
analiză conţine funcţii pentru generare de semnal, procesarea de semnalului,
filtrare, ferestre, statistici, revenire la starea anterioară, funcţii de algebră liniară
şi tablouri aritmetice. Deoarece programul LabView este prin natura sa un
2
Instrumentaţie Virtuală Mircea GORDAN

program grafic el prezintă un pachet de date inerent, deci el poate genera


diagrame, grafice şi preferinţe grafice definite de utilizator.

1.2. Instrumente virtuale


Fişierele realizate cu ajutorul limbajului LabView sunt numite instrumente
virtuale (VIs). Instrumentele virtuale conţin trei părţi importante: tabloul de
comandă, tabloul cu schema şi icoana / conectorul.
În blocul de comandă sunt cuprinse setările valorilor de intrare şi afişarea
ieşiri instrumentului virtual de la tabloul de schema. Deoarece tabloul de
comandă este analog ca şi instrumentul de măsură real, intrările sunt numite
„controlere”, iar ieşirile sunt denumite „indicatori”. Se pot utiliza o varietate de
„controlere” şi „indicatori” cum ar fi butoane rotative, comutatoare, butoane,
diagrame, grafice făcând astfel tabloul de comandă uşor de înţeles şi de utilizat.
Un tablou de comandă pentru instrumentul virtual „Temperatura” este prezentat
în figura următoare.

Fig. 1.1. Fereastra de comandă a instrumentului virtual Temperatura.

Fig. 1.2. Fereastra de schemă a instrumentului virtual Temperatura.


Fiecare tablou de comandă este însoţit de un tablou de schema. Schema
instrumentului virtual se poate construi utilizând limbajul grafic de programare
„G”. Această fereastră poate fi văzută ca o sursă de coduri pentru instrumentul
virtual. Componentele ferestrei de schemă sunt funcţii de legătură a
instrumentului virtual (Exemple: Ciclu repetitiv, Structura procesului, funcţii
aritmetice, etc.). Componentele ferestrei de schemă sunt legate între ele pentru a
definii variabile de date cuprinse în fereastra de schemă. În figura următoare se

3
Instrumentaţie Virtuală Mircea GORDAN

prezintă schema bloc a instrumentului virtual „Temperatura” în fereastra de


schemă.
Prin intermediul icoanei / conector se poate intra în structura instrumentului
virtual creat sau se poate folosi ca un sub-instrument virtual pentru alte
instrumente virtuale în fereastra de schemă. Icoana grafică reprezintă un
instrument virtual în fereastra de schemă a altui instrument virtual mai complex.
Terminalele de conectare determină unde vor trebui legate intrările şi ieşirile de
la icoană. Terminalele sunt analogice la subrutina parametrilor, care corespund
„controlerelor” şi indicatoarelor din fereastra de comandă. Figura următoare
prezintă icoana şi conectorii pentru instrumentul virtual „Temperatura”.
Terminal
Terminal
de ieşire
de intrare

mod Temperatură

Fig. 1.3. Icoana instrumentului virtual Temperatura.


Fidelitatea programului LabView este dată de structura ierarhică a
instrumentelor virtuale. După crearea unui instrument virtual acesta se poate
utiliza ca un sub-instrument virtual în schema tehnologică a unui instrument

Fig. 1.4. Fereastra de comandă şi de schemă pentru instrumentul virtual Temperatură. 4


Instrumentaţie Virtuală Mircea GORDAN

virtual mai complex. Nu există nici o limită pentru numărul de sub-instrumente


virtuale utilizate într-o structură ierarhică.
Pentru un exemplu concludent priviţi instrumentele virtuale utilizate ca
sub-instrumente virtuale în fereastra de schemă a instrumentului virtual
„Temperatura”.
În figura precedentă prezintă cele două ferestre ale instrumentului virtual
„Temperatura” cu sub-instrumentele virtuale utilizate pentru:
- achiziţia de date;
- prezentarea grafică a rezultatelor;
- specificarea numărului de măsurători;
- întârzierea între măsurătorile efectuate.
Instrumentul virtual „Temperatura” are ca funcţie principală ciclul
repetitiv. Instrumentul virtual achiziţionează date măsurate în timpul fiecărui
ciclu repetitiv iterativ. După executarea unui număr de cicluri într-un timp dat
datele de la icoană sunt afişate grafic în fereastra de comandă.
Prin intermediul programului LabView se poate utiliza orice instrument
virtual ca un sub-instrument virtual. Această caracteristică face ca fereastra de
schemă să fie modulară, uşor de înţeles, depanat şi întreţinut.
1.3. Modul de operare Microsoft Windows
În acest mod de operare programul LabView conţine icoane. Programul
LabView foloseşte icoane pentru deschidere şi pentru celelalte operaţi ale
aplicaţiilor. Acesta mai conţine şi icoană pentru dezinstalare, adică pentru
ştergerea programului LabView, a aplicaţiilor acestuia şi a fişierelor asociate cu
acesta din computer. În plus se poate instala opţional şi Configuraţia utilitară
pentru plăcile NI-DAQ din cadrul driverelor de instalare a programului
LabView.

1.4. Ferestrele de comandă şi de schemă


Deschiderea programului LabView se face printr-un dublu clic pe icoana
programului după care se va deschide o fereastra nouă. Fereastra nouă afişată a
instrumentului virtual poate fi reprezentat în una sau două ferestre ale
programului LabView utilizate pentru a construi instrumente virtuale. Cele două
ferestre sunt fereastra de comandă şi fereastra de schemă care conţine schema
bloc a instrumentului virtual.
Blocul de comandă şi schema bloc conţine o colecţie de obiecte grafice,
care reprezintă elementele de programare ale programului LabView. Blocul de
comandă conţine o multitudine de tipuri de indicatori şi controlere. Schema bloc
conţine terminalele corespunzătoare indicatorilor şi controlerelor, care reprezintă
constante, funcţii, sub-instrumente virtuale, structuri şi fire de legături care
transportă datele de la un obiect la altul.
Figura următoare prezintă fereastra de comandă şi fereastra de schemă asociată
cu prezentarea figurilor care apar.
5
Instrumentaţie Virtuală Mircea GORDAN

Paleta de
comandă
Etichetă
Etichetă
Controler
digital
Etichetă Controler
tip buton

Legenda
Etichetă graficului
liberă

Grafic

Terminalul
controlerului
digtal Cabluri de
legătură
Terminalul
butonului Terminal
grafic
Număr
Funcţie de
constant
legătură
Funcţie de Sub-VI
multiplicare
Structură
repetitivă
Fig. 1.5. Explicitarea ferestrelor instrumentului virtual Temperatura.

1.5. Bara de meniu a ferestrei de comandă


Fereastra de comandă şi de schemă conţin o bară de meniu cu butoane de
comenzi şi indicatori de stare utilizate pentru controlul instrumentului virtual.
Barele de comenzi sunt diferite pentru cele două ferestre în care se lucrează.
Următoarea figură prezintă meniul de comandă care apare în fereastra de

Fig. 1.6. Bara de meniu a ferestrei de comandă.


comandă.
Prezentarea butoanelor care apar în bara de meniu:

Butonul de rulare. Apăsând acest buton se începe executarea operaţiilor de


lucru a instrumentului virtual. În timp ce instrumentul virtual se rulează
butonul îşi schimbă forma în .
Cât timp instrumentul virtual se rulează butonul de oprire are starea . Dacă

6
Instrumentaţie Virtuală Mircea GORDAN

se doreşte ieşirea din execuţia instrumentului virtual se poate apăsa acest buton
şi execuţia va fi oprită imediat.

Butonul de execuţie în ciclu repetitiv. Se apasă acest buton pentru


executarea continuă şi repetabilă a operaţiilor instrumentului virtual. În
timp ce se execută acest mod starea butonului se schimbă la . Pentru a
dezactiva această opţiune se mai apasă încă odată acest buton.

Butonul de pauză. Acest buton se utilizează pentru întreruperea execuţiei


instrumentului virtual. Pentru a continua execuţia instrumentului virtual se
apasă din nou acest buton.

Fereastra pentru font. Cu ajutorul acestei ferestre se face


setarea opţiunilor de font, care include tipul fontului,
mărimea, stilul şi culoarea.

Fereastra de aliniere. Aceasta se utilizează pentru poziţionarea


dispozitivelor la obiectele aliniate. Prin utilizarea opţiunilor de setare a
aliniamentelor se setează: alinierea verticală, limita superioară, alinierea de
stânga, pentru două sau mai multe obiecte.

Fereastra de distribuţie. Se utilizează poziţionarea dispozitivelor


selectate la obiectele aliniate. Prin utilizarea opţiunilor de setare a
distribuţiei se setează: spaţiile goale, compresia şi aşa mai departe pentru două
sau mai multe obiecte.

1.6. Bara de meniu a ferestrei de schemă


Meniul de comandă a ferestrei de schemă conţine aproape aceleaşi butoane
ca şi meniul ferestrei de comandă şi în plus oferă patru caracteristici pentru
depanare. Figura următoare prezintă meniul ferestrei de schemă.

Fig. 1.7. Bara de meniu a ferestrei de schemă.

Prezentarea butoanelor care apar în bara de meniu:

Butonul de atenţionare a execuţiei. Făcând un clic pe acest buton se


activează modul de atenţionare. În acest mod starea butonului se schimbă

7
Instrumentaţie Virtuală Mircea GORDAN

la şi se poate vizualiza tranziţia datelor de la un obiect la altul în fereastra

de schemă.

Butonul de salt a unui nivel. Apăsând acest buton se activează modul de


terminare a unui singur nivel, şi trecerea la următorul nivel de execuţie a
instrumentului virtual. Apăsând din nou pe acest buton se execută un salt
repetitiv a unui sub-instrument virtual şi aşa mai departe.

Butonul de trecere într-un nivel. Dând un clic pe acest buton se intră într-
un ciclu repetitiv a unui sub-instrument virtual.

Butonul de ieşire dintr-un nivel. Dând clic pe acest buton se iese dintr-un
ciclu repetitiv a unui sub-instrument virtual şi aşa mai departe.

Indicatorul de atenţionare. Acest indicator apare atunci când o posibilă


problemă cu schema bloc este sesizată, dar aceasta nu cauzează o eroare
pentru ne-executarea instrumentului virtual. Se poate activa indicatorul de
avertizare utilizând opţiunile Preferences din meniu Edit.

1.7. Bara de meniu derulantă


Această bară de meniu este aşezată în partea de sus a ferestrelor
programului LabView şi conţine mai multe meniuri coborâtoare. Meniurile
coborâtoare conţin opţiunile pentru aplicaţiile comune cum ar fi deschidere,
salvare, copiere, repunere copierii şi multe alte aplicaţii particulare ale
programului LabView. Figura următoare prezintă acest meniu.

Fig. 1.8. Bara de meniu derulantă.

1.8. Paletele programului LabView


Programul LabView conţine palete de lucru grafice care ajută la crearea şi
operarea cu instrumente virtuale. Programul LabView conţine trei palete şi
anume: Tools, Controls şi Functions.

1.8.1. Paleta Tools


Utilizând opţiunilor paletei Tools se poate crea, modifica şi depana un
instrument virtual. Dacă paleta Tools nu este afişată pe ecran atunci pentru
afişare se selectează opţiunea Show Tools Palette din meniul Windows. După
8
Instrumentaţie Virtuală Mircea GORDAN

selectarea unei scule din această paletă cursorul mausului ia forma acelei scule.
Luând orice sculă de pe paleta Tools şi poziţionând deasupra unui sub-
instrument virtual sau pe oricare icoană din instrumentul virtual în care se
lucrează şi având activată opţiunea Show Help Windows, din meniul Help atunci
în această fereastra vor apare informaţii despre obiectul pe care este poziţionat
cursorul mausului. Figura următoare prezintă paleta Tools.

Fig. 1.9. Paleta Tools.

Unealta de operare. Cu unealta de operare se poate manevra în fereastra de


comandă asupra indicatorilor şi controlerelor. Când unealta îşi schimbă
forma atunci se poate controla textul de bază care poate reprezenta numere sau
un şir de caractere pentru control.

Unealta de poziţionare. Cu această unealtă se poate selecta, muta şi


redimensiona obiectele. Când unealta îşi schimbă forma atunci obiectul pe
care este poziţionat se poate redimensiona.

Unealta de etichetare. Unealta de etichetare va indica faptul că se poate


introduce textul într-o etichetă sau se creează o etichetă liberă. Când se
creează o etichetă liberă unealta îşi va schimba forma.

Unealta de conexiune. Această unealtă se utilizează pentru conectarea


obiectelor din fereastra de schemă unele cu altele. Plasând unealta de
9
Instrumentaţie Virtuală Mircea GORDAN

conexiune deasupra unei legături atunci se va afişa conexiunea tipului de date în


fereastra Help dacă este activată de la opţiunea Show Help Windows din meniul
Help.

Meniul obiect al uneltei de afişare. Acest meniu obiect se utilizează


pentru afişarea la un obiect dintr-o fereastră a meniului din care face
parte. Această afişare se poate realiză şi cu un clic dreapta al mausului.

Unealta de deplasare. Această unealtă se utilizează pentru deplasarea prin


fereastră fără utilizarea barelor de derulare stânga-dreapta.

Unealta punctului de control. Această unealtă se utilizează pentru setarea


punctului de controlul pentru structuri şi funcţii ale instrumentului virtual.

Unealta de testare. Aceasta se utilizează pentru crearea unei testări a


conexiunilor în fereastra de schemă.

Unealta de copiere a culorii. Aceasta se utilizează pentru copierea unei


culori şi re-desenarea cu unealta de colorare.

Unealta de colorare. Aceasta se utilizează pentru colorarea unui obiect şi


de altfel afişarea planului din faţă şi din spate a obiectului.

1.8.2. Paletele Controls şi Functions


Paletele Controls şi Functions conţin icoane reprezentând sub-palete care
dau acces deplin la obiectele disponibile cu care se poate crea instrumente
virtuale. Accesarea se face printr-un clic stânga a mausului pe icoană.

1.8.2.1. Paleta Controls


Cu ajutorul paletei Controls se pot introduce controlere şi indicatori în
fereastra de comandă. Fiecare opţiune a paletei afişează o sub-paletă cu
indicatori şi controlere disponibile pentru opţiunea selectată. Dacă paleta
Controls nu este afişată, atunci aceasta se poate vizualiza prin selectarea opţiuni
Show Controls Palette din meniul Windows.

10
Instrumentaţie Virtuală Mircea GORDAN

Paleta Controls este disponibilă doar în fereastra de comandă şi este


reprezentată în figura următoare:

Fig. 1.10. Paleta Controls.

Sub-paleta numerică. Conţine controlere şi indicatori pentru date


numerice.

Sub-paleta logică. Conţine controlere şi indicatori pentru date logice.

Sub-paleta şir. Conţine controlere şi indicatori pentru şiruri şi tabele.

Sub-paleta de liste şi inele. Conţine controlere şi indicatori pentru


meniul de inele şi grupe de liste.

Sub-paleta de grupe şi tablouri. Conţine controlere şi indicatori care


setează tipul datelor.

11
Instrumentaţie Virtuală Mircea GORDAN

Sub-paleta grafică. Conţine indicatori pentru afişarea datelor într-un


grafic sau într-o hartă reală.

Sub-paleta de locaţii şi refnum. Conţine controlere şi indicatori pentru


refnum şi locaţiile fişierelor.

Sub-paleta decorativă. Conţine obiecte grafice pentru afişarea


ferestrei de comandă după dorinţă.

Sub-paleta de selectare a controlului. Afişează o fereastră de dialog


care încarcă controlerele speciale definite de către utilizator.

1.8.2.2. Paleta Functions


Schema bloc a instrumentului virtual se poate construi cu ajutorul paletei
Functions. Fiecare opţiune a paletei afişează o sub-paletă cu icoane disponibile
pentru opţiunea selectată. Dacă paleta Functions nu este afişată, atunci aceasta
se poate vizualiza prin selectarea opţiuni Show Functions Palette din meniul
Windows.
Paleta Functions este disponibilă doar în fereastra de schemă şi este
reprezentată în figura următoare:

12
Instrumentaţie Virtuală Mircea GORDAN

Fig. 1.11. Paleta Functions.

Sub-paleta de structuri. Conţine structuri de control a programului


cum ar fi ciclurile repetitive.

Sub-paleta numerică. Conţine funcţii: numerice, aritmetice,


trigonometrice şi logaritmice.

Sub-paleta logică. Conţine funcţii logice.

13
Instrumentaţie Virtuală Mircea GORDAN

Sub-paleta şir. Conţine funcţii pentru manipularea şirurilor.

Sub-paleta tablou. Conţine funcţii pentru lucrul cu tablourile.

Sub-paleta de grupuri. Conţine funcţii pentru lucrul cu grupurile.

Sub-paleta de comparări. Conţine funcţii de comparare logică a


şirurilor şi numerelor.

Sub-paleta de dialog şi timp. Conţine funcţii pentru ferestre de dialog,


numărătoare şi erori de manipulare.

Sub-paleta fişierelor I/O. Conţine fişiere şi instrumente virtuale pentru


fişiere I/O.

Sub-paleta de comunicare. Conţine instrumente virtuale de reţea


pentru TPC, DDE, Apple Events şi OLE.

Sub-paleta de instrumente I/O. Conţine instrumente virtuale pentru


GPIB, serial şi instrumente de control VISA.

Sub-paleta achiziţiilor de date. Conţine instrumente virtuale pentru


legătura cu plăcile de achiziţii de date.

Sub-paleta de analiză. Conţine instrumente virtuale pentru analiză.

14
Instrumentaţie Virtuală Mircea GORDAN

Sub-paleta de îndrumare. Conţine instrumente virtuale utilizate în


programul LabView pentru îndrumare.

Sub-paleta pentru lucrul la nivel înalt. Conţine funcţii complexe care


apelează funcţii din librărie, instrumente virtuale de control în alte
instrumente virtuale, manipulări de date şi aşa mai departe.

Sub-paleta de selectare instrumentului virtual. Conţine o fereastră de


dialog pentru inserarea unui instrument virtual în instrumentul virtual
curent.

Sub-paleta librăriei utilizatorului. Conţine locaţii pentru instrumente


virtuale.

Sub-paleta de drivere. Conţine locaţiile drivere pentru instrumente


virtuale.

1.9. Librăriile de instrumente virtuale


Se poate încărca / salva instrumentul virtual de la / la un fişier special
numit librăria VI. Librăria BASCLASS.LLB este un exemplu de librărie a unui
instrument virtual.
Avantajele utilizării librăriei VI sunt următoare:
- cu librăria VI se poate utiliza până la 225 de caractere pentru numele
instrumentului virtual incluzând şi extensia .VI.
- librăria VI compresează instrumentul virtual la salvarea pe disc.
- deoarece se utilizează mai multe instrumente virtuale în acelaşi fişier este
mai uşor de realizat transferul între mai multe computere.
Alte caracteristici ale librăriei VI:
- librăria VI nu este de natură ierarhică. Deci nu se pot crea librării VI cu
ajutorul altor librării VI.
- salvarea şi încărcarea instrumentului virtual este mai rapidă de la fişierul
sistem decât de la librăria VI.

1.10. Salvarea instrumentelor virtuale:


Instrumentul virtual se poate salva într-un director obişnuit sau într-o
librărie VI prin selectarea opţiunilor Save, Save As..., sau Save a Copy As..., din
meniul File.

15
Instrumentaţie Virtuală Mircea GORDAN

Pentru crearea a unei noi librării VI, se selectează opţiunea Save As... din
meniul File şi alegând opţiunea New VI Library din fereastra de dialog a opţiunii
Save As.... Figura următoare prezintă fereastra de dialog care apare la crearea
unei noi librării VI.

16
Instrumentaţie Virtuală Mircea GORDAN

Anexă Capitolul 1

Introducere în programul LabView

Aplicatiile (programele) realizate in LabVIEW poarta denumirea de


Instrumente Virtuale (in engleza, Virtual Instruments, prescurtat VI).
Denumirea provine de la faptul ca, in primele sale versiuni, LabVIEW a fost
strict dedicat pentru realizarea unor programe de monitorizare a proceselor.
Programele respective inlocuiau o serie de aparate si instrumente electronice -
de unde si motto-ul corporatiei National Instruments: The software is the
instrument – primind astfel denumirea de Instrumente Virtuale.

Dupa apasarea butonului New VI, se vor deschide cele doua ferestre
principale ale unei noi aplicatii LabVIEW.

O aplicatie (program) LabVIEW contine doua ferestre principale: Fereastra


Frontală sau Panoul şi Fereastra de Schemă sau Diagrama.

 Panoul reprezinta interfata grafica cu utilizatorul, fereastra pe care


utilizatorul o va vedea atunci cand va accesa aplicatia realizata. Prin intermediul
elementelor de pe panou, aplicatia primeste datele de intrare si afiseaza apoi
datele de iesire ce au rezultat in urma rularii.

17
Instrumentaţie Virtuală Mircea GORDAN

 Diagrama
este fereastra in care
programatorul
descrie algoritmul
dupa care aplicatia
va efectua calculele
si rationamentele
necesare pentru
prelucrarea
informatiilor. In
majoritatea
cazurilor, dupa ce
programatorul a
realizat o aplicatie si
a livrat-o unui
utilizator, acesta din
urma nu mai are
acces la diagrama.

Elementele de control sunt acele componente ale panoului prin


intermediul carora utilizatorul poate transmite date de intrare catre program.

18
Instrumentaţie Virtuală Mircea GORDAN

Elementele indicatoare sunt acele componente ale panoului prin


intermediul carora programul afiseaza datele de iesire calculate in urma rularii
sale.

Realizarea instrumentelor virtuale se realizează cu ajutorul paletei de


lucru şi a celor de elemente. Paleta Tools, Paleta Controls şi Paleta Functions.

Paleta de controale este o fereastra ce poate apare


doar atunci cand se lucreaza in cadrul panoului si contine
sub-palete cu elemente de control si indicatoare de diverse
tipuri.
Afisarea paletei de
controale se poate efectua in
doua moduri:
 apasand butonul din
dreapta al mouse-ului atunci
cand cursorul acestuia este
intr-o zona libera a panoului;
 selectand, din meniul
Windows, comanda Show Controls Palette.

In primul caz, sub-paletele se deschid


automat atunci cand cursorul mouse-ului trece
pe deasupra lor iar paleta ramane vizibila doar
pana la selectarea unui element.
In al doilea caz, o sub-paleta se deschide
(inlocuind paleta de controale) doar cand se
face un click pe simbolul sau. Paleta ramane
vizibila si dupa selectarea unui element.

1. Dispunerea unui element de control sau indicator pe panou incepe cu


selectarea elementului dorit din paleta de controale.
2. Dupa selectarea elementului, se deplaseaza cursorul mouse-ului pana in
pozitia de pe panou in care se doreste dispunerea.

19
Instrumentaţie Virtuală Mircea GORDAN

Atat timp cat cursorul mouse-ului este deplasat pe panou, elementul va fi


reprezentat doar prin conturul sau si al etichetei. Cand se ajunge in pozitia
dorita, se face click cu unul dintre butoanele mouse-ului.
3. Se realizeaza astfel dispunerea elementului pe panou, cu o eticheta
implicita care intra automat in modul de editare. Se poate incepe imediat
introducerea textului dorit in eticheta.
4. Daca introducerea textului dorit in eticheta nu s-a efectuat imediat dupa
dispunerea elementului pe panou si eticheta implicita a iesit din modul de
editare, se poate reveni in acest mod prin selectarea uneltei de editare texte si
apoi printr-un click pe eticheta respectiva.

1 2 3 4

Paleta de unelte este o fereastra ce poate apare atat in cadrul


panoului cat si al diagramei.
Afisarea paletei de controale se
poate efectua selectand, din meniul
Windows, comanda Show Tools
Palette.

Afisarea "temporara" a paletei de


unelte intr-o forma simplificata poate fi
efectuata tinand apasata tasta Shift si
apasand apoi butonul drept al mouse-
ului.

Paleta va deveni vizibila doar pana in momentul selectarii uneia


dintre uneltele sale.

Cele mai importante unelte din aceasta paleta sunt acelea pentru:

20
Instrumentaţie Virtuală Mircea GORDAN

operare, utilizata in panou in special pentru a modifica valorile unor


elemente de control;
selectare (pozitionare, dimensionare), utilizata atat in panou cat si in
diagrama;
editare a textelor (in panou si in diagrama);
conectare, utilizata in special in diagrama;
afisare a meniurilor proprii;
deplasare a imaginii intr-o fereastra (scroll);
inserarea de puncte de oprire a rularii (breakpoint);
inserarea de puncte de proba;
selectarea de culori;

colorare.

Activarea optiunii Automatic Tool Selection (LED-ul verde


al paletei de unelte) conduce la selectarea automata a unei unelte, in
functie de contextul in care se afla aplicatia si de pozitia cursorului
mouse-ului in raport cu componentele din panou sau
diagrama.

Paleta de functii este o fereastra ce poate apare doar


atunci cand se lucreaza in cadrul diagramei si contine sub-
palete cu diverse categorii de functii, proceduri sau structuri
specifice de programare..

Afisarea paletei de functii se poate efectua in


doua moduri:
 apasand butonul din dreapta al mouse-ului atunci
cand cursorul acestuia este intr-o zona libera a
diagramei;
 selectand, din meniul Windows, comanda Show
Functions Palette.

In primul caz, sub-paletele se deschid automat atunci cand cursorul


mouse-ului trece pe deasupra lor iar paleta ramane vizibila doar pana la
selectarea unei functii.
21
Instrumentaţie Virtuală Mircea GORDAN

In al doilea caz, o sub-paleta se deschide (inlocuind paleta de functii) doar


cand se face un click pe simbolul sau. Paleta ramane vizibila si dupa selectarea
unei functii.

Fereastra HELP

Selectarea, in panou sau


in diagrama, din meniul Help, a
comenzii Show Context Help,
conduce la deschiderea unei
ferestre in care sunt afisate
automat informatii ajutatoare.
Deschiderea sau
inchiderea ferestrei Help pot fi
comandate si prin apasarea combinatiei de taste Ctrl + H
Atunci cand utilizatorul deschide paleta de functii si navigheaza prin
subpaletele acesteia, in fereastra Help apar informatii referitoare la functia
corespunzatoare simbolului deasupra caruia este pozitionat cursorul mouse-ului.
De asemenea, daca un simbol de functie a fost deja dispus in diagrama iar
cursorul mouse-ului este pozitionat deasupra sa, in fereastra Help apar
informatii referitoare la functia respectiva.

22
Instrumentaţie Virtuală Mircea GORDAN

CAPITOLUL 2.

Primi paşi în proiectarea instrumentelor virtuale

2.1. Dispunerea elementelor pe panou.

1. Dispunerea unui element de control sau indicator pe panou incepe cu


selectarea elementului dorit din paleta de controale.
2. Dupa selectarea elementului, se deplaseaza cursorul mouse-ului pana in
pozitia de pe panou in care se doreste dispunerea. Atat timp cat cursorul mouse-
ului este deplasat pe panou, elementul va fi reprezentat doar prin conturul sau si al
etichetei.
Cand se ajunge in pozitia dorita, se face click cu unul dintre butoanele mouse-ului.
3. Se realizeaza astfel dispunerea elementului pe panou, cu o eticheta
implicita care intra automat in modul de editare. Se poate incepe imediat
introducerea textului dorit in eticheta.
4. Daca introducerea textului dorit in eticheta nu s-a efectuat imediat dupa
dispunerea elementului pe panou si eticheta implicita a iesit din modul de editare,
se poate reveni in acest mod prin selectarea uneltei de editare texte si apoi printr-
un click pe eticheta respectiva.
1 2 3 4

2.2. Elemente de control si indicatoare pentru valori scalare

Principalele trei tipuri de elemente de control si indicatoare pentru valori


scalare sunt:
 Numerice booleene (logice);
 alfanumerice (texte, string, siruri de caractere).
Pentru fiecare din cele trei tipuri principale, paleta de controale contine cate o
subpaleta specifica, cu diverse forme de elemente.

23
Instrumentaţie Virtuală Mircea GORDAN

2.3.Terminalele elementelor

Atunci cand un element de control sau indicator este dispus in panou, in


diagrama este inserat automat un simbol, numit terminal, ce va reprezenta
elementul respectiv in cadrul fluxului de date.
Terminalele elementelor se diferentiaza prin culoare, in functie de tipul
marimii scalare:
 portocaliu pentru valori numerice reale;
 verde pentru valori booleene
 roz pentru valori alfanumerice
(string)
De remarcat faptul ca:
 terminalele elementelor de control au
contur gros si o sageata neagra mica
in partea dreapta;
 terminalele elementelor indicatoare
au contur subtire si o sageata neagra
mica in partea stanga.

2.4. Functii pentru valori numerice

Functiile pentru valori numerice sunt grupate in subpaleta Numeric a paletei


de functii.
Se remarca o prima categorie, dedicata functiilor aritmetice simple: adunare
(Add), scadere (Subtract), inmultire (Multiply), impartire (Divide), incrementare
(Increment), decrementare (Decrement), valoare absoluta (Absolute Value),
rotunjire la cel mai apropiat intreg (Round To Nearest), rotunjire la intregul

24
Instrumentaţie Virtuală Mircea GORDAN

inferior (Round To -Infinity), rotunjire la intregul superior (Round To +Infinity),


radacina patrata (Square Root), schimbare de semn (Negate), produsul dintre o
valoare x si o putere a lui 2 (Scale By
Power Of 2), inversare (Reciprocal).
In subpaleta Numeric se gaseste de
asemenea elementul Numeric Constant
(constanta numerica). Atunci cand un astfel
de element este dispus in diagrama, el
capata automat valoarea 0 si intra in modul
de editare, asteptand ca utilizatorul sa
introduca valoarea numerica dorita. Daca,
imediat dupa dispunerea in diagrama, in loc
de a introduce o valoare in element,
utilizatorul efectueaza alta operatie, o alta
valoare constanta poate fi specificata
utilizand unealta de operare sau pe cea de editare a textelor.

2.5. Functii pentru valori booleene

Functiile pentru valori booleene


sunt grupate in subpaleta Boolean a
paletei de functii.
Se remarca functiile logice simple
SI (And), SAU (Or), SAU EXCLUSIV
(Exclusive Or), NEGARE (Not), SI
NEGAT (Not And), SAU NEGAT (Not
Or), SAU NEGAT EXCLUSIV (Not
Exclusive Or) si IMPLICA (Implies).
Subpaleta contine de asemenea, in
partea inferioara, cele doua constante logice: ADEVARAT (True) si FALS (False).

2.6. Functii pentru valori


alfanumerice (string)

Functiile pentru valori alfanumerice


sunt grupate in subpaleta String a paletei de
functii.
Printre cele mai simple se numara cele
pentru transformarea caracterelor in
majuscule (To Upper Case) si pentru

25
Instrumentaţie Virtuală Mircea GORDAN

transformarea caracterelor in minuscule (To Lower Case).


In partea sa inferioara, subpaleta contine un element String Constant pentru
introducerea in diagrama de valori alfanumerice constante.

2.7. Inserarea simbolurilor de functii in diagrama

1. Dispunerea unei functii in diagrama incepe cu


selectarea simbolului corespunzator din paleta de functii.
2. Dupa selectarea simbolului functiei, se deplaseaza
cursorul mouse-ului pana in pozitia din diagrama in care se
doreste dispunerea.
Atat timp cat cursorul mouse-ului este deplasat, simbolul
functiei va fi reprezentat impreuna cu terminalele corespunzatoare datelor proprii
de intrare si de iesire.

3. Daca, in timpul deplasarii, simbolul functiei este trecut


suficient de aproape de un terminal sau de o zona a fluxului de
date la care se poate efectua o legatura, acea legatura este
stabilita automat. Daca simbolul functiei este indepartat, in
cursul deplasarii, de zona sau terminalul respectiv, legatura stabilita automat
dispare. Daca nu se doreste efectuarea automata a unei legaturi, se apasa tasta
Space in timp ce butonul mouse-ului este apasat.

4. Cand simbolul functiei ajunge in pozitia dorita, se face click cu unul


dintre butoanele mouse-ului. Daca in acel moment exista o legatura
stabilita automat, legatura respectiva se pastreaza.

2.8. Realizarea legaturilor in diagrama

Realizarea unei legaturi intre doua componente ale


diagramei se efectueaza cu ajutorul uneltei de conectare.
Ordinea in care se selecteaza cele doua componente (sursa
si destinatia) nu este importanta. Legatura poate fi realizata
in orice sens, deoarece mediul de programare va identifica
automat sursa si destinatia pentru a stabili sensul de
circulatie al datelor.

1. Se deplaseaza cursorul mouse-ului (unealta de conectare)


deasupra primei componente (aceasta va incepe sa
clipeasca) si se face click. Actiunea este echivalenta cu
prinderea unui capat al firului de componenta respectiva.
26
Instrumentaţie Virtuală Mircea GORDAN

Din acest moment, daca mouse-ul este deplasat, pe


ecran va apare imaginea unui fir cu un capat fixat de prima
componenta si cu un capat legat de cursorul mouse-ului.
2. Se deplaseaza cursorul mouse-ului deasupra celei de-a
doua componente (si aceasta va incepe sa clipeasca) si se
face click, fixand astfel al doilea capat al firului de aceasta
componenta.
Obs. 1: Daca, la un moment dat, firul care urmeaza mouse-
ul are un sens (orar sau trigonometric) neconvenabil, sensul
poate fi schimbat prin apasarea tastei blanc (spatiu).
Obs. 2: Daca se doreste ca traseul unei legaturi sa fie format
din mai multe portiuni in unghi drept, un click intr-un punct
din diagrama va fi echivalent cu fixarea firului in acel punct.

Obs. 3: Daca o componenta a diagramei are rol de sursa


pentru un traseu ramificat, se pot efectua legaturi care sa
aiba drept punct de pornire un segment al fluxului de date.
Obs. 4: Daca o legatura a fost efectuata corect, ea va fi
afisata in culoarea corespunzatoare tipului de date ce vor
circula prin zona respectiva a fluxului de date.
Daca legatura este incorecta (conecteaza doua componente
de tipuri diferite), aceasta va fi afisata cu culoarea neagra si
intrerupta.

2.9. Fluxul de date

Fluxul de date
este format din
totalitatea legaturilor ce
conecteaza diversele
terminale de elemente,
simboluri de functii sau
proceduri si structuri de
programare din cadrul
diagramei.
Rolul fluxului de
date este acela de
reprezentare grafica a
algoritmului dupa care

27
Instrumentaţie Virtuală Mircea GORDAN

aplicatia va prelucra datele de intrare pentru a calcula valorile de iesire.


Traseele ce formeaza fluxul de date pot fi simple, cu o sursa si o destinatie,
sau ramificate, cu o sursa si mai multe destinatii.
Indiferent de modul sau sensul in care traseele sunt dispuse pe diagrama,
"circulatia" datelor in cadrul fluxului se efectueaza doar de la surse catre
destinatii.
Prin sursa se intelege, de exemplu, terminalul unui element de control,
simbolul unei constante sau zona de iesire a unei functii sau proceduri.
Prin destinatie se intelege, de exemplu, terminalul unui element indicator
sau zona de intrare a unei functii sau proceduri.

2.10. Principalele moduri de rulare a unei aplicatii

Barele de butoane ale panoului si diagramei contin o serie de elemente ce


permit stabilirea modului de rulare a unui program.

Apasarea butonului Run va conduce la rularea o


singura data a programului. Va fi parcurs intreg fluxul
de date din diagrama, dupa care programul se va opri.
In timpul rularii programului, butonul Run isi schimba
forma si se aprinde un buton Abort execution.
Apasarea acestui din urma buton in timpul rularii va
determina intreruperea acesteia.
Apasarea butonului Run Continuously va
conduce la rularea repetata, fara oprire, a programului.
Pe parcursul acestui mod de rulare, isi schimba forma
atat butonul Run Continuously cat si butonul Run, si se
aprinde de asemenea butonul Abort execution.
Intreruperea rularii nu are loc decat la comanda
utilizatorului, prin apasarea butonului Abort execution.
Atat pe parcursul rularii simple cat si pe cel al
rularii continui, utilizatorul are posibilitatea de a
suspenda rularea prin apasarea butonului Pause.
Apasarea acestui buton ii schimba forma si il transforma
in butonul Continue, prin a carui apasare se comanda
reluarea unei rulari suspendate.
Daca, atunci cand rularea este suspendata, se trece
in fereastra diagrama, programul semnalizeaza prin
aprindere intermitenta zona ce era in curs de executie
atunci cand s-a comandat suspendarea.
28
Instrumentaţie Virtuală Mircea GORDAN

In diagrama, atunci cand rularea este suspendata,


utilizatorul are posibilitatea de a continua rularea pas cu
pas, utilizand setul de trei butoane din dreapta.

In orice mod de rulare, prin apasarea butonului


Highlight Execution, utilizatorul are posibilitatea de a
urmari o animatie ce sugereaza deplasarea valorilor prin
fluxul de date.
Atunci cand o valoare paraseste o componenta a
diagramei ce este o sursa a unei legaturi, valoarea
respectiva este afisata in diagrama.

2.11. Salvarea unei aplicatii

Atat timp cat inca nu a fost salvat intr-un fisier, un


program are numele Untitled urmat de un numar de
ordine.
Pentru a specifica folder-ul in care programul sa fie
salvat, precum si numele fisierului, se alege din meniul
File optiunea Save As...

In urma selectarii comenzii Save As..., programul deschide o fereastra de


dialog in care utilizatorul poate selecta folder-ul in care sa se efectueze salvarea si
numele fisierului.

PROGRAMELE REALIZATE IN MEDIUL DE PROGRAMARE


GRAFICA LabVIEW SE SALVEAZA IN FISIERE CU EXTENSIA VI !

Din momentul in care a fost salvat prima data, programului i se afiseaza


numele atat in bara superioara a
panoului cat si in cea a diagramei.
Daca, dupa salvare, programului i
se aduc in continuare modificari, langa
numele acestuia apare un asterisc (*),
semnalizand astfel faptul ca versiunea
29
Instrumentaţie Virtuală Mircea GORDAN

ce a fost salvata nu este cea mai recenta.


Pentru a salva un program care are deja o locatie si un nume stabilite, este
suficient sa se apese combinatia de taste Ctrl si S sau sa se selecteze comanda
Save din meniul File.
Comanda Save As... se poate folosi daca se doreste salvarea unei noi
versiuni a fisierului intr-o noua locatie sau cu un nou nume.

30
Instrumentaţie Virtuală Mircea GORDAN

CAPITOLUL 3

Funcţii specifice pentru realizarea instrumentelor virtuale I

3.1. Functii pentru valori numerice

Pe langa functiile aritmetice simple descrise in lectia anterioara, subpaleta


Numeric a paletei de functii contine, in zona sa principala, si urmatoarele functii:
 Quotient & Remainder calculeaza catul si restul impartirii valorii conectate
la intrarea X la valoarea conectata la intrarea Y.

 Compound Aritmetic (disponibila si in subpaleta Boolean a paletei de


functii) permite efectuarea operatiilor de adunare
(Add) sau inmultire (Multiply), sau a operatiilor
logice SI (AND), SAU (OR) sau SAU EXCLUSIV
(XOR), asupra unui numar variabil de valori de
intrare.
Numarul de intrari este stabilit de catre utilizator
prin "dimensionarea" simbolului functiei astfel:

- se plaseaza cursorul mouse-ului la mijlocul


uneia din laturile orizontale ale simbolului,
astfel incat pe laturile de sus si de jos sa apara
cate un cerculet;
- se apasa butonul stang al mouse-ului si se
deplaseaza mouse-ul tinand butonul apasat;
- pe masura ce mouse-ul este deplasat, simbolul
functiei isi modifica dimensiunile, modificandu-
se astfel numarul de intrari;
- cand numarul de intrari in functie este cel dorit,
se elibereaza butonul mouse-ului.

Pentru a selecta operatia efectuata de catre functie (adunare, inmultire etc):

- se apasa butonul drept al mouse-ului pentru a deschide meniul propriu al


functiei;
- se deschide submeniul Change Mode4;
- se selecteaza operatia dorita.

 Random Number (0-1) este o functie ce nu poseda


intrari, rolul sau fiind de a genera o valoare reala aleatoare in
intervalul (0, 1).
31
Instrumentaţie Virtuală Mircea GORDAN

Subpaleta Numeric a paletei de functii contine de asemenea o serie de


subpalete dedicate unor categorii particulare de functii:
 subpaleta Conversion, continand printre altele:
- 12 functii pentru schimbarea modului de
reprezentare a unei valori numerice;
- functia Boolean To (0,1) (disponibila si in subpaleta Boolean a paletei de
functii), care transforma o valoare logica (True sau False) intr-o valoare
numerica (1 respectiv 0)

 subpaleta Trigonometric, continand majoritatea functiilor trigonometrice.

 subpaleta Logarithmic, continand functii exponentiale si logaritmice.

32
Instrumentaţie Virtuală Mircea GORDAN

 subpaleta Complex, continand functii asociate numerelor complexe

 subpaleta Additional Numeric Constants a paletei de functii contine valori


constante des utilizate in trigonometrie si in lucrul cu functii exponentiale sau
logaritmice, precum si constante utilizate in fizica.

3.2. Functii uzuale pentru valori alfanumerice

 Functia String Length determina numarul de


caractere dintr-o valoare alfanumerica (text). Sunt luate in
considerare si caracterele neafisabile (spatiu, Tab, sfarsit de linie etc). Numarul de
caractere de la iesirea functiei este exprimat ca un intreg pe patru octeti.

33
Instrumentaţie Virtuală Mircea GORDAN

 Functia Concatenate Strings poseda un


numar de intrari ce poate fi modificat de catre
utilizator prin dimensionarea simbolului functiei.
La iesirea sa, functia genereaza o valoare alfanumerica obtinuta prin concatenarea
textelor de la intrarile sale, in ordinea de sus in jos.
 Functia String Subset extrage, din textul
conectat la intrarea string, o portiune de length
caractere incepand de la caracterul aflat la pozitia
offset inclusiv (pentru primul caracter se considera offset = 0).
Daca la intrarea offset a functiei nu este introdusa nici o valoare, functia considera
ca extragerea se va efectua incepand cu primul caracter (valoarea implicita 0 a
intrarii offset).
Daca la intrarea length nu este introdusa nici o valoare, functia considera ca
extragerea se va efectua pana la ultimul caracter inclusiv.
 Functia Replace Substring sterge
o portiune din textul conectat la intrarea
string si introduce in locul respectiv
textul conectat la intrarea substring.
Portiunea inlocuita incepe de la caracterul aflat pe pozitia offset inclusiv si contine
length caractere.
Intrarea offset are valoarea implicita 0, iar intrarea length are o valoare implicita
egala cu numarul de caractere legat la intrarea substring.
Daca la intrarea substring nu se leaga nici o valoare (textul de inserat este vid),
functia efectueaza de fapt o stergere a unei portiuni, iar daca la intrarea length se
leaga valoarea 0 (textul de sters este vid) functia efectueaza de fapt o inserare a
unei portiuni.
 Functia Search and Replace
String cauta textul search string in
textul conectat la intrarea string, iar
atunci cand il gaseste il inlocuieste cu
textul conectat la intrarea replace string.

Cautarea are loc incepand de la pozitia offset a textului string. Daca la


intrarea offset nu se conecteaza nici o valoare, cautarea are loc incepand cu prima
pozitie.
Daca la intrarea replace string nu se conecteaza nici o valoare, atunci
functia efectueaza de fapt o stergere (inlocuire cu text vid).
Daca la intrarea replace all? nu se conecteaza nici o valoare, atunci functia
se opreste dupa prima aparitie a textului search string. Daca la aceasta intrare se
conecteaza o valoare logica True, atunci functia efectueaza inlocuiri pentru toate
aparitiile textului search string.
Functia genereaza textul rezultat in urma inlocuirii la iesirea result string,
iar la iesirea offset past replacement genereaza o valoare indicand pozitia
34
Instrumentaţie Virtuală Mircea GORDAN

caracterului aflat imediat dupa ultimul caracter inlocuit.

3.3. Functii aditionale pentru valori alfanumerice

Subpaleta Additional String Functions a paletei String contine o serie de functii


uzuale pentru lucrul cu valori alfanumerice:
 Functia Search/Split String cauta textul conectat la intrarea search
string/char in textul conectat la
intrarea string.

Cautarea se efectueaza incapand cu pozitia offset.

Daca textul cautat este gasit, functia divide textul


initial in doua parti:
- partea dinainte de textul cautat (substring
before match)
- textul cautat urmat de restul textului in care s-a
facut cautarea (match + rest of string).

Functia genereaza la iesirea offset of match pozitia in care a fost gasit


textul cautat.
Daca textul cautat nu a fost gasit, iesirea substring before match contine
tot textul legat la intrarea string, iar iesirea offset of match are valoarea -1.
 Functia Pick Line selecteaza din textul
multi-line string, ce contine mai multe linii, pe
cea cu indicele line index si adauga linia respectiva la textul conectat la intrarea
string.
Daca la intrarea string nu a fost conectata nici o valoare, rezultatul este
chiar linia cu indicele specificat.
 Functia Match True/False String verifica
daca unul din textele true string sau false string
coincide cu inceputul textului conectat la intrarea
string.
In caz afirmativ, functia genereaza la iesirea output string restul textului de
la intrarea string, iar la iesirea selection o valoare booleana corespunzatoare
intrarii care a coincis (True pentru true string si False pentru false string).
Daca ambele texte coincid, functia considera textul true string.
Daca nici un text nu coincide, iesirea selection are valoarea False iar iesirea
output string contine intreg textul string.
35
Instrumentaţie Virtuală Mircea GORDAN

 Functia Rotate String efectueaza o permutare


circulara a caracterelor textului conectat la intrarea
string, mutand primul caracter pe ultima pozitie.
 Functia Reverse String inverseaza ordinea
caracerelor textului conectat la intrarea string
 Functia Append True/False String
concateneaza la textul conectat la intrarea string
unul din textele conectate la intrarile true string
sau false string, in functie de valoarea booleana conectata la intrarea selector.
Subpaleta String/Number Conversion a paletei String contine functii
pentru conversia valorilor alfanumerice in valori numerice sau pentru efectuarea
operatiei inverse.

Dintre acestea, cele mai des utilizate sunt:

 Functia Number To Decimal String


transforma numarul intreg de la intrarea
number intr-un text de cel putin width
caractere.
Daca numarul de la intrarea functiei nu
este intreg, el este trunchiat.
Daca intrarea width nu este legata,
numarul de caractere ale textului va fi egal cu
numarul de cifre ale intregului.
 Functia Decimal String To Number
transforma intr-o valoare numerica intreaga
portiunea din textul string incepand de la
pozitia offset inclusiv (implicit de la pozitia 0).
Modul de reprezentare al valorii de la iesirea number este identic cu cel al
valorii numerice intregi conectate la intrarea default (implicit intreg pe 32 de
biti).
Iesirea offset past number are semnificatia pozitiei primului caracter din
string dupa portiunea care a fost transformata in valoare numerica.
Subpaleta String/Number Conversion contine de asemenea functii pentru
transformarea textelor din si in numere in baza de numeratie 16 sau 8 sau in
formatul exponential, fractional sau ingineresc.

3.4. Functii pentru comparatii

36
Instrumentaţie Virtuală Mircea GORDAN

Functiile pentru efectuarea comparatiilor sunt grupate


in subpaleta Comparison a paletei de functii.
Caracteristic acestor functii este faptul ca, daca datele
de intrare pot fi de diverse tipuri (numerice, booleene,
alfanumerice etc), datele de iesire sunt la majoritatea acestor functii valori logice
(booleene).

Conteaza de asemenea ordinea in care


datele de intrare sunt legate la terminalul
functiei (la intrarea de sus sau la cea de jos).

In cazul functiei Greater? de exemplu,


iesirea va avea valoarea True daca valoarea de
la intrarea de sus este mai mare decat valoarea
de la intrarea de jos si va avea valoarea False
in caz contrar.
Pe langa functiile de comparare a doua
marimi sau de comparare a unei marimi cu
valoarea nula, subpaleta Comparison contine
urmatoarele:
 Functia Select genereaza la iesire valoarea de la intrarea t
(True) daca valoarea logica de la intrarea s este True, respectiv
valoarea de la intrarea f (False) daca valoarea logica de la intrarea s este False.
Valorile de la intrarile t si f pot fi atat numerice cat si alfanumerice.
 Functia Max & Min genereaza la iesirea max cea mai
mare dintre valorile x si y, respectiv la iesirea min pe cea
mai mica dintre acestea.
 Functia In Range and Coerce verifica daca
valoarea de la intrarea x este cuprinsa intre valorile
de la intrarile lower limit (limita inferioara) si upper limit (limita superioara).
Valoarea logica reprezentand rezultatul verificarii este generata la iesirea In
Range?
In mod implicit, intervalul de incadrare este inchis la
stanga si deschis la dreapta.
Inchiderea sau deschiderea intervalului la
extremitatile sale poate fi configurata de catre utilizator
din meniul propriu al functiei, activand sau dezactivand
optiunile Include upper limit si Include lower limit.
Rezultatul "fortarii" valorii x in intervalul prescris este
generat la iesirea coerced(x).
 Functia Decimal Digit? genereaza o valoare logica
True in situatia in care caracterul de la intrarea sa este o cifra
intre 0 si 9 si genereaza o valoare False in caz contrar.
37
Instrumentaţie Virtuală Mircea GORDAN

Subpaleta Comparison contine de asemenea functii pentru a verifica daca


un caracter este cifra in baza de numeratie 16, cifra in baza de numeratie 8, caracter
tiparibil sau caracter netiparibil.

3.5. Functii pentru lucrul cu valori data - timp si de dialog

Functiile pentru lcurul cu valori data - timp si functiile de dialog se gasesc in


meniul Time & Dialog al paletei de functii.
Printre cele mai utilizate functii din aceasta categorie se numara:

 Tick Count (ms): determina numarul


de milisecunde indicat de ceasul intern al
computerului (considerat de la momentul la
care calculatorul a fost pornit)
 Wait (ms): intrerupe executia
programului pentru intervalul de timp
specificat
 Format Date/Time String:
transforma o valoare numerica
reprezentand un numar de secunde
intr-un text.

Numarul de secunde este considerat a fi scurs incepand cu data de 1 ianuarie


1904, ora 12.00. La intrarea time format string a functiei se poate specifica
formatul in care textul rezultat sa fie construit.
 Get Date/Time String: transforma o
valoare numerica reprezentand un numar de
secunde in doua texte, unul reprezentand data
si celalalt timpul.
La intrarea date format se poate lega

38
Instrumentaţie Virtuală Mircea GORDAN

una din valorile 0, 1 sau 2, reprezentand


formatele scurt, lung sau abreviat pentru
data.
Daca numarul de secunde nu este
conectat, se considera numarul de secunde al
ceasului intern al computerului.
Ieisrea text ce reprezinta timpul poate contine
sau nu secunde, in functie de valoarea intrarii
booleene want seconds?
 Get Date/Time In Seconds: determina
numarul de secunde scurs incepand cu data de
1 ianuarie 1904, ora 12.00, pana la data si
timpul curente ale calculatorului.
 One Button Dialog: determina aparitia
unei ferestre de dialog, continand un text
specificat prin program, fereastra ce asteapta
apasarea de catre utilizator a unui buton
(numele butonului poate fi de asemenea
configurat).
 Two Button Dialog: determina aparitia
unei ferestre de dialog, continand un text
specificat prin program, fereastra ce asteapta
apasarea de catre utilizator a unuia din cele
doua butoane disponibile (numele butoanelor
pot fi de asemenea configurate).
Functia genereaza o valoare booleana True
daca utilizatorul a apasat butonul din stanga
sau False daca a fost apasat butonul din
dreapta.

39
Instrumentaţie Virtuală Mircea GORDAN

CAPITOLUL 4

Meniurile specifice pentru realizarea instrumentelor virtuale I

4.1. Meniuri proprii in panou

Pentru a deschide meniul propriu al unui element de control sau indicator,


se pozitioneaza cursorul mouse-ului deasupra
elementului si se apasa butonul drept.
Meniul propriu al unui element poate fi
de asemenea deschis cu ajutorul uneltei de
afisare a meniurilor proprii. Un meniu
propriu contine diverse optiuni prin care pot fi
configurate modurile de afisare sau de
functionare ale elementelor de control sau
indicatoare.

Indiferent de tipul de valori carora le sunt dedicate (numerice, booleene sau


alfanumerice), elementele de pe panou au in meniurile proprii o serie de optiuni
comune:
 Visible Items4Label – Afiseaza sau ascunde eticheta elementului.
Continutul etichetei poate fi modificat cu unealta de editare a textelor.
 Visible Items4Caption – Afiseaza sau ascunde eticheta suplimentara a
elementului. Continutul etichetei poate fi de asemenea modificat cu unealta de
editare a textelor.
 Find Terminal – Trece in diagrama si indica terminalul elementului prin
incadrarea acestuia intr-un chenar cu linie intrerupta animata.
 Change to Indicator (sau Change to Control) – Schimba tipul elementului
din control in indicator sau invers.
 Description and Tip... – Permite introducerea unei scurte descrieri
referitoare la element si a unui text ajutator (Tip) care apare atunci cand cursorul
mouse-ului este pozitionat deasupra elementului
 Create4 – Creeaza in diagrama entitati suplimentare, atasate elementului de
pe panou (vor fi discutate ulterior).
 Replace4 – Afiseaza paleta de controale, astfel incat utilizatorul poate
selecta un element cu care sa il inlocuiasca pe cel curent.
 Data Operations4 – Permite stabilirea valorii implicite a elementului
(Make Current Value Default), reinitializarea unui element la valoarea sa
implicita (Reinitialize to Default Value) sau operatii de copiere a valorii
elementului (Cut, Copy, Paste).
 Advanced4 – Modalitati de configurare avansata a elementelor (vor fi
discutate in lectii ulterioare).
40
Instrumentaţie Virtuală Mircea GORDAN

4.2. Meniuri proprii in diagrama

Atunci cand se deschide meniul propriu


al unui terminal din diagrama, acesta contine
aproape aceleasi optiuni ca si meniul
elementului corespunzator de pe panou, cu
urmatoarele deosebiri:
 Optiunea Find Terminal a elementului
de pe panou este inlocuita cu optiunea Find
Control sau Find Indicator;
 Apare optiunea suplimentara Hide
Control (sau Hide Indicator). Efectul acesteia
este ascunderea elementului corespunzator de
pe panou;
 Pe langa optiunea Change to Indicator
(sau Change to Control) este adaugata si
optiunea Change to Constant, efectul acesteia fiind de inlocuire a elementului de
control sau indicator cu o constanta (constantele pot exista doar in diagrama, astfel
incat elementul de control sau indicator dispare de pe panou);
 In submeniul Create4apar optiunile suplimentare Constant, Control si
Indicator, efectul acestora fiind de adaugare (in diagrama sau in panou, dupa caz)
a unei constante sau a unui element de control sau indicator de acelasi tip cu
elementul al carui meniu propriu a fost deschis.

4.3. Moduri de reprezentare a valorilor numerice

Meniurile proprii ale elementelor de control sau indicatoare numerice contin


o optiune specifica, Representation, cu ajutorul careia se specifica modul in care
valoarea numerica respectiva este stocata in memorie.
In submeniul Representation, utilizatorul
are la dispozitie 12 optiuni:
o pe prima linie: optiuni pentru numere
reale;
o pe a doua linie: optiuni pentru numere
intregi;
o pe a treia linie: optiuni pentru numere
naturale;
o pe a patra linie: optiuni pentru numere
complexe;

41
Instrumentaţie Virtuală Mircea GORDAN

Intre diversele optiuni de pe o linie, diferenta consta in numarul de octeti


(bytes) alocati in memorie pentru stocarea valorii respective:
o EXT (extended) = numar real cu precizie extinsa (16 octeti);
o DBL (double) = numar real cu precizie dubla (8 octeti);
o SGL (single) = numar real cu precizie simpla (4 octeti);
o I32 (long) = numar intreg pe 4 octeti;
o I16 (word) = numar intreg pe 2 octeti;
o I8 (byte) = numar intreg pe 1 octet;
o U32 (unsigned long) = numar natural pe 4 octeti;
o U16 (unsigned word) = numar natural pe 2 octeti;
o U8 (unsigned byte) = numar natural pe 1 octet;
o CXT (complex extended) = numar complex cu precizie extinsa (32 octeti);
o CDB (complex double) = numar complex cu precizie dubla (16 octeti);
o CSG (complex single) = numar complex cu precizie simpla (8 octeti).

Numarul de octeti alocati pentru stocare se reflecta in intervalul de valori in


care poate exista valoarea respectiva sau in precizia acesteia:
Reprezentare Interval de variatie Nr. de zecimale
(-1,19e+4932; -6,48e-4966) si (6,48e-4966; 15 ... 33, functie de sistemul de
EXT si CXT
1,19e+4932) operare
(-1,79e+308; -4,94e-324) si (4,94e-324;,
DBL si CDB 15
1,79e+308)
SGL si CSG (-3,40e+38; -1,.40e-45) si (1,40e-45;, 3,40e+38) 6
I32 -2.147.483.648 ... 2.147.483.647 -
I16 -32.768 ... 32.767 -
I8 -128 ... 127 -
U32 0 ... 4.294.967.295 -
U16 0 ... 65.535 -
U8 0 ... 255 -

Textul din interiorul terminalului unui element de control sau indicator


numeric se modifica pentru a reflecta modul de reprezentare ales.
In cazul in care valoarea numerica este una intreaga sau naturala, terminalul
isi modifica de asemenea culoarea, din portocaliu in albastru.

4.4. Meniuri proprii specifice elementelor numerice

42
Instrumentaţie Virtuală Mircea GORDAN

Elementele de control sau indicatoare numerice dispun in meniul propriu de


doua optiuni specifice:
 Data Range... pentru stabilirea unui interval de variatie particular;
 Format & Precision... pentru specificarea unui
mod particular de afisare a valorii;
Selectarea optiunii Data Range... conduce la
deschiderea unei ferestre suplimentare.
Daca se dezactiveaza optiunea Use Defaults,
utilizatorul poate specifica valorile minima si maxima
pe care le poate lua elementul respectiv, precum si
incrementul intre doua valori succesive.
De asemenea, prin optiunea If Value is Out of
Range, utilizatorul poate dicta modul de comportament
in cazul in care se incearca introducerea unei valori in
afara intervalului stabilit: daca in locul optiunii Ignore
se selecteaza optiunea Coerce, elementul va forta ramanerea valorii intre limitele
impuse.
Fereastra suplimentara Data Range permite modificarea si din acest loc a
modului de reprezentare a valorii numerice (Representation).

Selectarea din meniul propriu a optiunii Format & Precision deschide o


fereastra din care utilizatorul poate dicta afisarea valorii numerice in format:
 zecimal, caz in care se pot specifica numarul de zecimale si notatia (cu
virgula mobila, stiintifica, inginereasca etc.)
 timp - data, situatie in care se pot selecta diverse formate de afisare.

In cazul in care se selecteaza formatul timp - data, valoarea elementului va


reprezenta numarul de secunde scurse de la data de 1 ianuarie 1904, ora 3:00 AM.
In situatiile in care elementul de control sau indicator numeric are un mod de
reprezentare de tipul numar intreg sau natural, optiunea Format & Precision
permite suplimentar si afisarea valorilor in sistem de numeratie hexazecimal, octal
sau binar.

43
Instrumentaţie Virtuală Mircea GORDAN

4.5. Meniuri proprii specifice elementelor cu scala

Elementele de control sau indicatoare numerice cu scala (potentiometre


liniare sau circulare, indicatoare cu ac etc) dispun in meniul propriu de optiuni
suplimentare referitoare la modul de afisare:
 optiunea Fill Options permite alegerea modului in care sa se coloreze
portiunile elementului aflate de o parte si de alta a cursorului (colorat deasupra,
colorat dedesubt, necolorat etc).

44
Instrumentaţie Virtuală Mircea GORDAN

 optiunea Scale dispune de o serie de submeniuri proprii pentru


pozitionarea uniforma sau arbitrara a gradatiilor de pe scala (Marker Spacing ),
pentru stabilirea formatului de afisare a valorilor de pe scala (Format &
Precision...), pentru alegerea variantei de densitate a gradatiilor (Style ) si
pentru selectarea unei scale liniare sau logaritmice (Mapping )

4.6. Meniuri proprii specifice elementelor booleene

Elementele de control booleene


dispun in meniul propriu de optiunea
suplimentara Mechanical Action,
aceasta permitand stabilirea modului in
care elementul se comporta la apasarea
butonului mouse-ului de catre utilizator:
 Switch When Pressed modifica
valoarea logica a elementului atunci
cand se apasa butonul mouse-ului, iar
valoarea ramane modificata si dupa
eliberarea butonului;
 Switch When Released modifica
valoarea logica a elementului atunci
cand se elibereaza butonul mouse-ului
(dupa ce in prealabil a fost apasat), iar
valoarea ramane modificata si dupa eliberare;
 Switch Until Released modifica valoarea logica a elementului atunci cand
se apasa butonul mouse-ului, iar dupa eliberarea butonului valoarea elementului
redevine cea dinaintea apasarii;
 Latch When Pressed modifica valoarea logica a elementului atunci cand se
apasa butonul mouse-ului, dar aceasta modificare dureaza doar pana cand
valoarea logica este transmisa in diagrama pe fluxul de date. Imediat ce
45
Instrumentaţie Virtuală Mircea GORDAN

valoarea elementului a fost transmisa, acesta revine la valoarea dinaintea apasarii,


chiar daca utilizatorul continua sa tina butonul mouse-ului apasat.
 Latch When Released modifica valoarea logica a elementului atunci cand
se elibereaza butonul mouse-ului (dupa ce in prealabil a fost apasat), dar aceasta
modificare dureaza doar pana cand valoarea logica este transmisa in diagrama pe
fluxul.

4.7. Meniuri proprii specifice elementelor alfanumerice

Elementele de control si indicatoare alfanumerice dispun in meniul propriu de


patru optiuni suplimentare referitoare la modul de afisare:
 Normal Display: afisare normala a caracterelor;
 "\" Codes Display: interpretarea caracterelor care
urmeaza dupa "\" drept caractere neafisabile (\n = linie
noua, \t = Tab, \s = spatiu s.a.m.d.);
 Password Display: afisare tip "parola", in locul
fiecarui caracter fiind afisat un asterisc;
 Hex Display: afisarea codurilor ASCII ale
caracterelor.
In mod implicit, atunci cand se introduce un text
intr-un element de control alfanumeric, elementul
respectiv se comporta in modul urmator:
 daca se apasa tasta Enter "mare" (din apropierea
tastelor pentru litere), elementul considera ca se doreste
trecerea la linia urmatoare;
 daca se apasa tasta Enter "mica" (din zona cu taste numerice aflata in partea
dreapta a tastaturii) sau daca se face click cu mouse-ul in afara elementului,, acesta
considera ca s-a incheiat introducerea textului;
 textul introdus in element nu este transmis ca valoare alfanumerica in fluxul
de date decat dupa confirmarea prin apasarea tastei Enter "mici" a incheierii
introducerii sale.
Comportamentul implicit al elementului poate fi modificat prin selectarea
optiunilor din partea inferioara a meniului propriu:
 Limit to Single Line: confera ambelor taste Enter acelasi rol, de incheiere a
introducerii textului. In acest mod, nu se mai poate trece la o linie noua prin
apasarea tastei Enter "mare", astfel incat textul nu mai poate fi format decat dintr-
o singura linie.
 Update Value while Typing: elementul nu mai asteapta confirmarea
incheierii introducerii textului pentru a transmite valoarea alfanumerica in fluxul
de date. Valoarea alfanumerica este transmisa automat, de fiecare data cand textul
introdus in element este modificat.

46
Instrumentaţie Virtuală Mircea GORDAN

4.8. Modificarea fontului unor elemente

Pentru a modifica fontul cu care un element este reprezentat, se selecteaza intai


elementul respectiv cu ajutorul uneltei de selectare.
Se deschide apoi meniul de configurare a textelor, aflat in bara de butoane, si
se selecteaza din submeniurile acestuia:
 dimensiunea caracterelor (Size);
 stilul textului (Style);
 modul de aliniere (Justify);
 culoarea (Color);
 tipul de litera (Arial, Times New Roman etc).

Unui element i se poate aplica de asemenea un tip predefinit de font


(Application, System, Dialog sau Current).
Cele trei tipuri predefinite de fonturi pot fi la randul lor modificate daca se
alege una din variantele:
 comanda Font Dialog... din meniul de configurare a textelor;
 comanda Options... din meniul Tools, apoi se alege optiunea Fonts.

47
Instrumentaţie Virtuală Mircea GORDAN

4.9. Ordonarea componentelor

In situatia in care se doreste alinierea mai multor elemente de pe panou sau a


mai multor componente ale diagramei, se selecteaza obiectele respective apoi se
deschide meniul de aliniere si se alege varianta dorita:
>>> aliniere dupa o orizontala a limitelor superioare, centrelor sau limitelor
inferioare;
>>> aliniere dupa o verticala a limitelor din stanga, centrelor sau limitelor din
dreapta.

Distribuirea echidistanta a unor componente se realizeaza de asemenea prin


selectarea acestora, urmata de deschiderea meniului de distribuire si alegerea
uneia din variantele:
>>> distribuire pe verticala, cu echidistanta considerata intre diverse limite
superioare sau inferioare ale elementelor;
>>> distribuire pe orizontala, cu echidistanta considerata intre diverse limite din
stanga sau din dreapta ale elementelor.

48
Instrumentaţie Virtuală Mircea GORDAN

Atunci cand mai multe elemente sunt suprapuse,


alegerea din meniul de ordonare a unei optiuni are
drept urmare schimbarea pozitiei "in adancime" a
elementelor selectate: Move Forward = un pas inainte,
Move Backward = un pas inapoi, Move To Front =
trecere in planul cel mai apropiat, Move To Back =
trecere in planul cel mai indepartat

Selectarea mai multor componente si alegerea optiunii Group are drept efect
selectarea intregului grup atunci cand una dintre componente este selectata
("desfiintarea" grupului se realizeaza cu optiunea
Ungroup).
Selectarea uneia sau mai multor componente
si alegerea optiunii Lock nu mai permite deplasarea
sau modificarea dimensiunilor componentelor
respective (anularea efectului se realizeaza cu
optiunea Unlock)

4.10. Modificarea scalei sau cursorului

Daca se pozitioneaza cursorul mouse-ului deasupra unei limite a scalei


unui element de control sau indicator de tipul unui potentiometru circular (Knob
sau Dial), se apasa butonul stang al mouse-ului si se deplaseaza mouse-ul tinand
butonul apasat, efectul obtinut este acela de modificare a unghiului la centru pe
care scala este dispusa.
Atunci cand cursorul mouse-ului este pozitionat nu deasupra unei limite ci
deasupra unei gradatii intermediare de pe scala, efectul obtinut este acela de
rotire a scalei in jurul centrului elementului.

49
Instrumentaţie Virtuală Mircea GORDAN

Daca se pozitioneaza cursorul mouse-ului in apropierea mijlocului scalei


unui element de control sau indicator de tip Meter, iar dupa aparitia la mijlocul
scalei a doua simboluri + se apasa butonul stang al mouse-ului si se deplaseaza
mouse-ul tinand butonul apasat, efectul obtinut este acela de modificare a latimii
benzii colorate (rampa) a scalei.

Cursorul unui element de control sau indicator de tip


potentiometru poate fi dimensionat daca se pozitioneaza cursorul
mouse-ului deasupra unuia din colturile sale, iar dupa aparitia la
colturi a unor simboluri "echer" se apasa butonul stang al mouse-
ului si se deplaseaza mouse-ul tinand butonul apasat.

4.11. Variabile locale

Selectarea, din meniul Create al unui element de control sau indicator, a


optiunii Local Variable, va conduce la introducerea in diagrama a unei entitati
suplimentare, numita variabila locala.
O variabila locala reprezinta o instanta a elementului corespunzator: o
dublura a acelui element.
Daca, la un moment dat, un element isi modifica valoarea, toate variabilele
sale locale, indiferent de locul in care sunt dispuse in diagrama, capata valoarea
corespunzatoare.
Variabilele locale sunt utilizate in situatia in care este complicat (sau
imposibil) sa se efectueze o legatura direct la terminalul unui element (de exemplu,
atunci cand legatura ar trebui efectuata de-a lungul unei zone intinse din diagrama,
zone in care sunt deja multe componente).
Pentru un element pot fi create mai multe variabile locale.

50
Instrumentaţie Virtuală Mircea GORDAN

Initial o variabila locala este o dublura a elementului din al carui meniu


propriu a fost creata, numele acelui element fiind inscris in simbolul variabilei.
Terminalul variabilei locale are culoarea corespunzatoare tipului de date pe care le
manipuleaza.
Elementul pe care variabila locala il reprezinta poate fi schimbat. Pentru
aceasta, din meniul propriu al variabilei locale, optiunea Select Item, se selecteaza
numele noului element pe care variabila locala il va reprezenta.

4.12. Noduri de proprietati

Selectarea, din meniul Create al unui element de control sau indicator, a


optiunii Property Node, va conduce la introducerea in diagrama a unei entitati
suplimentare, numita nod de proprietati.
Nodul de proprietati al unui element reprezinta o componenta prin
intermediul careia, in timpul executiei programului, pot fi determinate (in sens de
"citire") sau modificate automat (scrise) anumite proprietati ale elementului
respectiv.
In mod implicit, atunci cand este creat, un nod de proprietati citeste starea
logica (afisat sau ascuns) a vizibilitatii elementului pe care il reprezinta.
Deschizand meniul propriu al nodului de proprietati, optiunea Properties, se poate
selecta proprietatea pe care nodul o reprezinta.
51
Instrumentaţie Virtuală Mircea GORDAN

Printre cele mai des utilizate proprietati se numara:


>>> Position: pozitia elementului pe panou, exprimata in pixeli pe orizontala si pe
verticala;
>>> Bounds: dimensiunile
elementului, exprimate in pixeli;
>>> Visible: daca aceasta proprietate
are valoarea False, elementul nu mai
este afisat in panou (desi continua sa
existe si are terminal in diagrama);
>>> Disabled: valoarea 0 semnifica
faptul ca utilizatorul poate actiona
acel element, valoarea 1 faptul ca
elementul nu poate fi actionat (este
dezactivat), valoarea 2 faptul ca
elementul este dezactivat si afisat in
culori "sterse";
>>> Blinking: atunci cand aceasta
proprietate are valoarea True,
elementul este afisat "clipind";
>>> Label: proprietati de formatare a
textului din eticheta.

Un nod de proprietati poate fi


trecut din starea implicita de citire in
starea de scriere, prin selectarea
optiunii Change To Write din
meniul sau propriu. In starea de
scriere, un nod de proprietati poate primi valori care vor modifica proprietatile
elementului corespunzator.

Un nod de proprietati poate fi dimensionat, pentru a


gestiona mai multe proprietati ale elementului pe care il
reprezinta. Atunci cand contine mai multe proprietati, acestea
pot fi in mod independent de scriere sau de citire.
Elementul reprezentat de catre un nod de proprietati poate
fi schimbat prin selectarea din meniul propriu al nodului a optiunii Link To,
similar optiunii Select Item din cazul variabilelor locale.
In diagrama pot exista mai multe noduri de proprietati ale aceluiasi element.

52
Instrumentaţie Virtuală Mircea GORDAN

CAPITOLUL 5

Structuri pentru realizarea instrumentelor virtuale

5.1. Inserarea structurilor in diagrama

Structurile de programare sunt componente ale diagramei ale caror


simboluri se gasesc in subpaleta Structures a paletei
de functii.
In diagrama, o structura de programare
urmeaza sa contina o serie de terminale de elemente,
simboluri de functii si valori constante ce vor forma
un flux de date in interiorul structurii.
Daca, in momentul in care structura este aleasa
din subpaleta Structures, o parte din elementele pe
care urmeaza sa le contina se afla deja dispuse in
diagrama, chenarul structurii poate fi trasat in jurul componentelor respective
(dupa selectarea din subpaleta, se apasa butonul stang al mouse-ului in unul din
colturile viitorului chenar si se deplaseaza mouse-ul tinand butonul apasat: pe
masura ce mouse-ul este deplasat, se traseaza automat un contur cu linie intrerupta,
contur ce va fi inlocuit de catre structura in momentul eliberarii butonului mouse-
ului).
Dupa dispunerea in diagrama, conturul structurii poate
fi deplasat sau dimensionat. Atunci cand o structura este
deplasata, toate elementele din interiorul sau se deplaseaza
odata cu ea.
Elemente din afara structurii pot fi mutate in interiorul acesteia, iar elemente
din interior pot fi mutate in afara structurii. Daca, prin dimensionare sau deplasare,
o structura ajunge sa se suprapuna cu alte elemente din diagrama, acestea nu vor fi
incluse in structura.

5.2. Structura secventiala (Sequence)

Atunci cand dispune de mai multe ferestre, fiecare dintre acestea cu propriul flux
de date, o structura Sequence executa in ordine ferestrele respective. De exemplu,
in figurile de mai jos sunt reprezentate doua ferestre ale unei structuri Sequence.
Structura va executa intai fereastra cu indicele 0, trimitandu-se valoarea de la
elementul de control Slide la elementul indicator Meter, apoi va executa fereastra
1 ce are ca efect transmiterea valorii booleene intre cele doua elemente.

53
Instrumentaţie Virtuală Mircea GORDAN

Atunci cand este dispusa in diagrama, o structura Sequence contine o


singura fereastra, aceasta fiind totodata si fereastra curenta (vizibila). Deschizand
meniul propriu al structurii si alegand una din optiunile Add
Frame After sau Add Frame Before, se poate adauga o
fereastra dupa sau inaintea celei curente.
Daca o structura Sequence contine mai mult de o
fereastra, atunci ferestrele primesc indici (numere de ordine)
incepand cu 0, iar pe latura superioara a conturului structurii apare un selector prin
intermediul caruia se poate trece de la o fereastra la alta.
Trecerea la o alta fereastra se poate realiza fie prin intermediul celor doua
sageti de la capetele selectorului, fie apasand pe sageata din partea dreapta
(indreptata in jos) si selectand indicele ferestrei dorite din lista care se desfasoara.
La un moment dat, este vizibil doar fluxul din fereastra curenta a unei structuri
Sequence.

Se poate crea o dublura a ferestrei curente, selectand din meniul propriu al


structurii optiunea Duplicate Frame.
Fereastra curenta poate fi stearsa, cu optiunea Delete This Frame.
Atunci cand o structura Sequence contine cel putin doua ferestre, ordinea
acestora poate fi schimbata: se modifica indicele ferestrei curente, selectand
optiunea Make This Frame, apoi noul indice.
Atunci cand se doreste transferul
unei valori intre doua ferestre ale unei
structuri Sequence, prin selectarea
optiunii Add Sequence Local se
dispune pe conturul structurii o
variabila locala a acesteia (sub forma
unui patrat galben).
Daca, in una din ferestrele
structurii, se conecteaza o valoare la
variabila locala, fereastra respectiva
devine fereastra sursa pentru acea
variabila. In acea fereastra, simbolul
variabilei locale contine o fereastra

54
Instrumentaţie Virtuală Mircea GORDAN

indreptata spre exteriorul structurii.


In ferestrele anterioare ferestrei sursa, simbolul variabilei locale devine
hasurat, semn ca valoarea variabilei locale nu este accesibila in acele ferestre.

In ferestrele de dupa fereastra sursa, simbolul variabilei locale va contine o


sageata indreptata spre interiorul structurii. In aceste ferestre, valoarea transferata
prin intermediul variabilei locale poate fi utilizata in fluxul de date. O structura
Sequence poate dispune de mai multe variabile locale.
Intr-o structura Sequence pot fi utilizate valori provenite din fluxul de date
exterior. O valoare introdusa din exterior intr-o structura Sequence va putea fi
utilizata in oricare dintre ferestrele structurii. Daca, intr-o anumita fereastra, se face
o legatura din structura Sequence in exteriorul acesteia, la iesirea respectiva
(patratul de pe contur) nu va mai putea fi legata o alta valoare din alta fereastra (ar
exista o incertitudine privind valoarea care iese din structura).
Indiferent de indicele ferestrei in care s-a facut o legatura spre exterior,
valoarea va parasi iesirea de pe conturul structurii Sequence doar dupa executarea
ultimei ferestre.

5.3. Structura cauzala (Case)

Atunci cand este dispusa in diagrama, o structura Case contine doua ferestre
(True si False), fiecare dintre acestea cu propriul flux de date. Pe conturul
structurii se afla dispus un terminal selector (de culoare verde, continand semnul
intrebarii). Structura Case va executa doar una din cele doua ferestre, in functie de
valoarea booleana (True sau False) conectata la terminalul sau

selector. Daca la terminalul selector al unei structuri


Case, in locul unei valori booleene, se conecteaza o valoare numerica (numar
intreg sau natural), numele ferestrelor se vor modifica automat din True si False in
0 si 1.
Structura va executa fereastra al carei nume va coincide cu valoarea
numerica ce ajunge la terminalul sau selector. In aceasta situatie, are sens ca

55
Instrumentaţie Virtuală Mircea GORDAN

structura Case sa contina mai mult de doua ferestre. Deoarece structura Case nu va
putea contine atatea ferestre cate valori numerice pot ajunge la terminalul sau
selector, una dintre ferestre trebuie declarata drept fereastra implicita (Default).
Fereastra implicita va fi executata atunci cand valorii ajunse la terminalul
selector nu ii corespunde nici un nume de fereastra.
Un nume de fereastra poate contine si descrierea unei multimi de valori, de genul
2..5, 7..9, intelegand prin aceasta ca fereastra respectiva va fi executata daca la
terminalul selector ajunge una din valorile 2, 3, 4, 5, 7, 8 sau 9. O valoare nu poate
exista in numele mai multor ferestre (ar exista o incertitudine privind fereastra ce

trebuie executata).
Daca la terminalul selector al unei structuri Case se conecteaza o valoare
alfanumerica, atunci numele ferestrelor vor trebui sa fie de tipul string (se
modifica utilizand unealta de editare texte). Si in aceasta situatie trebuie sa existe o
fereastra implicita. Se pot de asemenea defini multimi de valori (de genul

"A".."F"), cu conditia evitarii dublurilor. O


valoare introdusa din exterior intr-o structura Case este accesibila in orice fereastra
a acesteia.
Daca dintr-o fereastra a unei structuri Case se scoate o valoare in exterior, pe
conturul structurii apare un terminal de iesire de culoare alba, semn ca diagrama
contine o eroare.
Atunci cand o structura Case are pe contur un terminal de iesire, la acesta
trebuie definite legaturi din toate ferestrele structurii. In caz contrar, se spune ca
iesirea din structura nu este complet definita.
Atunci cand iesirea este complet definita, terminalul de iesire se umple cu
culoarea reprezentand tipul de date conectate (pentru a fi corect definita, la o iesire
trebuie sa ajunga acelasi tip de date din toate ferestrele

structurii).

5.4. Structura repetitiva cu numar fix de iteratii


(bucla For)
O bucla For executa de un numar fixat de ori portiunea de
diagrama pe care o contine.
O executie a portiunii interne de diagrama poarta
56
Instrumentaţie Virtuală Mircea GORDAN

numele de iteratie.
O bucla For dispune in coltul stanga - sus de un terminal (notat cu N), la
care trebuie legata o valoare care sa specifice numarul de iteratii pe care bucla
urmeaza sa le execute.
In interiorul buclei se afla un terminal numarator (notat cu i) care
genereaza o valoare naturala reprezentand indicele iteratiei curente (aflate in curs
de executie). Indicii iteratiilor sunt numerotati incepand cu valoarea 0, astfel incat
ultima iteratie executata de catre bucla For va avea indicele N-1.

5.5. Structura repetitiva cu conditie de terminare (bucla While)

O bucla While executa portiunea de diagrama pe care o contine pana cand


la terminalul de continuare (aflat in coltul dreapta - jos) apare o anumita valoare
booleana.
Atunci cand o bucla While este dispusa in diagrama, terminalul sau de
continuare se afla in starea implicita Continue If True. Bucla va continua sa
execute iteratii succesive atat timp cat la terminalul sau de continuare ajunge o
valoare logica True.
Daca la terminalul de continuare ajunge o valoare logica False, bucla While
nu mai trece la urmatoarea iteratie ci isi incheie executia.
Starea implicita a terminalului de continuare poate fi modificata. Terminalul
poate fi trecut in starea Stop If True fie cu unealta de operare, fie apasand butonul
drept al mouse-ului si selectand starea din meniul propriu. In starea Stop If True
bucla While isi va incheia executia atunci cand la terminalul de continuare ajunge
valoarea logica True.
In coltul stanga - jos, bucla While dispune de un terminal numarator (notat
cu i) care genereaza o valoare naturala reprezentand indicele iteratiei curente
(aflate in curs de executie). Indicii iteratiilor sunt numerotati incepand cu valoarea

0.

5.6. Registri de transfer in structuri repetitive

Registrii de transfer sunt componente ale


structurilor repetitive ce pot fi utilizate pentru
transferul unor valori intre doua sau mai multe
iteratii succesive ale structurii. Pentru a adauga un
57
Instrumentaţie Virtuală Mircea GORDAN

registru de transfer unei structuri repetitive (bucla For


sau While), se selecteaza optiunea Add Shift Register
din meniul propriu al structurii. Un registru de transfer
contine doua terminale (stang si drept) dispuse pe
conturul structurii. O valoare conectata la terminalul
drept al registrului va "apare" in terminalul stang la
iteratia urmatoare.
Cu alte cuvinte, terminalul stang introduce in
iteratia curenta valoarea ce a fost transmisa la terminalul drept in iteratia
anterioara.
La executarea primei iteratii a unei bucle,
nu exista inca nici un transfer efectuat de catre
registru intre cele doua terminale ale sale.
Terminalul stang al registrului nu a fost inca
"alimentat" cu o valoare din iteratia precedenta.
Pentru a se putea efectua extragerea unei
valori din terminalul stang la prima iteratie, se
conecteaza la acest terminal o valoare din exteriorul buclei. Se spune ca registrul
de transfer se initializeaza. Terminalul stang al unui registru de transfer poate
fi dimensionat, capatand astfel mai multe componente. Intr-o astfel de situatie,
valoarea transferata din iteratia anterioara se afla in componenta superioara. De sus
in jos, fiecare componenta contine cate o valoare provenita dintr-o iteratie mai
indepartata.
Dupa executarea ultimei iteratii a buclei, din terminalul drept al registrului se
poate extrage ultima valoare transferata acestuia.
O structura repetitiva poate contine mai multi registri de transfer, fiecare cu
una sau mai multe componente ale terminalului stang si fiecare transferand intre
iteratii valori de diverse tipuri.

58
Instrumentaţie Virtuală Mircea GORDAN

CAPITOLUL 6

Date de tip Array în construcţia instrumentelor virtuale

6.1. Definirea tipului de date al unui Array

Spre deosebire de elementele


scalare, care reprezentau o singura
valoare, de un anumit tip (numeric,
boolean, alfanumeric), elementele
vectoriale (Array) pot conţine, intr-o
maniera ordonata, mai multe valori de
acelasi tip.
Pentru a fi dispus in panou, un
element de tipul Array se selecteaza din
meniul Array & Cluster al paletei de
elemente.
Atunci cand un element de tipul Array se dispune pe panou, tipul datelor pe
care acesta le va contine nu este inca definit. Se spune ca elementul de tip Array
este vid.
Terminalul din diagrama al
elementului este de culoare neagra.
Sageata Run este sparta, semn ca
programul este incomplet si nu poate fi
rulat.
Pentru a defini tipul de date, in
elementul de tip Array trebuie introdus
un element de control sau indicator
scalar de tipul dorit (numeric, boolean
sau alfanumeric).
Elementul scalar ce urmeaza a fi
introdus in Array poate exista deja pe
panou sau poate fi selectat la momentul
respectiv din paleta de elemente.
Cand elementul scalar este adus deasupra elementului Array, inainte de a se
elibera butonul stang al mouse-ului, conturul elementului
Array este marcat cu o linie intrerupta (Array-ul sesizeaza ca i
se va introduce un element scalar).
La eliberarea butonului mouse-ului, elementul scalar
apare in interiorul elementului Array, acesta din urma
modificandu-si corespunzator dimensiunile. In diagrama,
terminalul elementului scalar dispare, iar terminalul
59
Instrumentaţie Virtuală Mircea GORDAN

elementului Array capata culoarea, textul si grosimea de chenar corespunzatoare


datelor pe care le va manipula.

6.2. Definirea valorilor si a numarului de valori vizibile

Atunci cand este dispus in panou si ii este definit tipul de date, un


element de tip Array afiseaza la un moment dat o singura
valoare. Pentru a modifica numarul de valori afisate, se
pozitioneaza intai cursorul mouse-ului pe un colt al elementului Array, astfel incat
pe colturile acestuia sa apara patru simboluri "echer" . La
aparitia celor patru simboluri "echer", se apasa butonul stang al
mouse-ului si, tinandu-l apasat, se deplaseaza mouse-ul astfel
incat sa se redimensioneze conturul elementului Array. Pe
masura ce mouse-ul este deplasat, conturul redimensionat al
elementului Array este marcat cu linie intrerupta.
Atunci cand conturul a fost redimensionat astfel incat sa
poata cuprinde numarul dorit de valori, se elibereaza butonul mouse-ului si
elementul Array este afisat redimensionat. Redimensionarea conturului se poate
efectua atat pe verticala cat si pe orizontala.
In partea sa stanga, un element de tip Array dispune de un
index. Indexul unui element Array indica numarul de ordine
al valorii afisate in pozitia superioara (indicele valorii). Indicele
primei valori dintr-un Array este 0.
Imediat dupa ce i se defineste tipul de date, un Array nu
contine nici o valoare (este vid). Faptul este semnalizat prin
afisarea "opaca" a elementelor pe care Array-ul le contine.
Atunci cand se defineste o valoare din Array, aceasta este afisata normal.
Daca, la un moment dat, utilizatorul defineste o valoare si exista valori cu indici
mai mici inca nedefinite, acestea vor capata automat o valoare implicita, in functie
de tip.
Cand se modifica valoarea indexului unui Array, valorile acestuia se
deplaseaza astfel incat in pozitia superioara sa fie afisata valoarea cu indexul
selectat.
Daca, in urma acestei deplasari, unele valori nu mai sunt vizibile, faptul nu
echivaleaza cu stergerea acestora: valorile continua sa existe in cadrul Array-ului
si pot fi vizualizate prin modificarea corespunzatoare a indexului.

60
Instrumentaţie Virtuală Mircea GORDAN

6.3. Definirea numarului de dimensiuni

In mod implicit, atunci cand este creat, un Array are o singura dimensiune,
putand fi descris drept o matrice coloana. Numarul de dimensiuni ale unui Array
poate fi modificat prin dimensionarea indexului acestuia: se pozitioneaza cursorul
mouse-ului pe un colt al indexului, astfel incat pe colturile acestuia sa apara patru
simboluri "echer", se apasa butonul mouse-ului si se deplaseaza mouse-ul tinand
butonul apasat, pana cand indexul capata dimensiunea dorita. Daca un Array are
mai mult de o dimensiune, se poate stabili afisarea mai multor linii si mai multor
coloane.

Terminalul unui element Array se caracterizeaza prin prezenta unor


paranteze drepte a caror grosime este proportionala cu numarul de dimensiuni.
Atunci cand se realizeaza legaturi in diagrama, conexiunile pe care circula
un Array cu o dimensiune sunt mai groase decat cele pe care
circula valori scalare.
Pentru Array-urile cu doua sau mai multe dimensiuni,
conexiunile sunt reprezentate cu linie dubla. Spatiul
intermediar al liniei duble este cu atat mai mare cu cat
numarul de dimensiuni ale Array-ului este mai mare.

6.4. Construirea Array-urilor in diagrama

61
Instrumentaţie Virtuală Mircea GORDAN

Atunci cand este necesara existenta in diagrama a unei constante Array,


aceasta poate fi selectata din meniul cu functii pentru valori vectoriale (Array) al
paletei de functii.
La dispunerea sa in diagrama, similar elementelor Array de pe panou, o
astfel de constanta nu are definit tipul de date pe care le va contine. Definirea
tipului de date se realizeaza prin introducerea in chenarul constantei Array a unei
constante de tipul dorit (numeric, boolean sau alfanumeric).

O constanta Array permite aceleasi operatii de definire a numarului de


valori vizibile sau de modificare a numarului de dimensiuni ca si elementele Array
din panou.
Pentru a obtine in mod dinamic (programatic), in diagrama, structuri de
valori de tipul Array, pot fi utilizate o serie de functii specifice.
Functia Initialize Array genereaza un Array cu una sau mai multe
dimensiuni, continand aceeasi valoare (conectata la intrarea element) in toate
pozitiile. Numarul de valori de-a lungul unei dimensiuni se specifica la intrarea
dimension size a functiei.
Atunci cand este dispusa in diagrama,
functia are o singura intrare dimension size,
generand astfel un Array cu o singura
dimensiune. Daca se doreste generarea unui
Array cu mai multe dimensiuni, simbolul
functiei poate fi dimensionat.
Daca la una dintre intrarile dimension size se conecteaza valoarea 0, sau
daca toate intrarile respective sunt neconectate, functia va genera un Array vid.
Functia Build Array concateneaza la un Array una sau mai multe elemente
cu un numar de dimensiuni imediat inferior (adauga valori scalare la un Array cu
o dimensiune, adauga linii la matrici s.a.m.d.).
Atunci cand este dispusa in diagrama, functia are o singura intrare. Numarul
dorit de intrari se obtine prin dimensionarea simbolului functiei.
Daca la toate intrarile functiei sunt legate
elemente cu acelasi numar de dimensiuni, functia
poate opera in doua moduri, dupa cum optiunea
Concatenate Inputs din meniul sau propriu este
sau nu activata:
- daca optiunea este activata, functia va concatena intrarile si va obtine un
Array cu un numar de dimensiuni egal cu al intrarilor (optiunea nu este
valabila daca toate intrarile sunt scalare);
62
Instrumentaţie Virtuală Mircea GORDAN

- daca optiunea nu este activata, functia va obtine un Array cu un numar de


dimensiuni imediat superior celui al intrarilor (Array cu o dimensiune din
valori scalare, matrice din linii s.a.m.d.).

Functia Interleave 1D Array construieste un Array cu o singura


dimensiune prin intreteserea mai multor Array-uri avand de asemenea o singura
dimensiune.
Array-ul rezultat este format prin preluarea
alternativa a cate unei valori din fiecare Array de
intrare. La dispunerea in diagrama, functia contine
doar doua intrari, dar numarul acestora poate fi
modificat prin dimensionarea simbolului.

6.5. Functii informative pentru Array-uri

Functia Array Size determina numarul de valori dintr-un


element de tip Array cu una sau mai multe dimensiuni.
Daca Array-ul de intrare are o singura dimensiune,
iesirea functiei va fi o valoare scalara. Daca Array-ul de
intrare are N dimensiuni (N>1), iesirea functiei este un Array cu o dimensiune,
continand N elemente.
De exemplu, daca la intrarea functiei se conecteaza o matrice, iesirea
functiei va fi un Array cu doua elemente, primul reprezentand numarul de linii si
al doilea numarul de coloane ale intrarii.
Functia Index Array extrage una sau mai multe valori ai caror indici sunt
specificati.
ATENTIE: prima valoare dintr-un sir are indexul 0 !

Atunci cand este dispusa in


diagrama, functia Index Array are un
singur terminal pentru specificarea
indicelui. Simbolul functiei poate fi
dimensionat astfel incat sa dispuna de mai multe astfel de terminale.
Daca la terminalele pentru indici nu se conecteaza valori, functia va lua in
considerare valori implicite, incepand cu 0.
Daca la intrarea functiei Index Array se conecteaza un Array cu doua dimensiuni,
un terminal pentru indice se transforma intr-un terminal dublu, cu o intrare pentru
indicele liniei si una pentru indicele coloanei.
In mod implicit, intrarea pentru indicele coloanei este
dezactivata (dreptunghi alb). Conectarea unei valori doar la
63
Instrumentaţie Virtuală Mircea GORDAN

intrarea pentru indicele liniei va determina extragerea din matrice a intregii linii cu
indicele respectiv.
In mod similar, conectarea unei valori doar la intrarea pentru indicele
coloanei va determina extragerea din matrice a intregii coloane cu indicele
respectiv.
Conectarea de valori atat la indicele liniei cat si la cel al coloanei va
determina extragerea din matrice a unei singure valori.
Functia Array Subset extrage o portiune dintr-un Array.
Pentru fiecare dimensiune a Array-ului de intrare, functia dispune de o
intrare index (pozitia din care va incepe extractia) si de o intrare length (numarul
de valori extrase de-a lungul dimensiunii respective).

Functia Search 1D Array cauta o valoare intr-un Array unidimensional,


incepand de la un indice de start specificat, si returneaza indicele elementului gasit.
Daca elementul cautat nu se afla in Array, atunci functia returneaza valoarea -1.

Functia Array Max & Min determina valorile maxima si minima dintr-un
Array de valori numerice, precum si indicii acestor valori extreme. Daca Array-ul
de intrare are mai multe dimensiuni, indicii valorilor extreme nu vor mai fi valori
scalare, ci vor fi la randul lor Array-uri cu un numar de valori egal cu numarul de
dimensiuni ale Array-ului de intrare.

Functia Interpolate 1D Array realizeaza o interpolare pe valorile Array-


ului de la intrarea array of numbers or points. Daca, de exemplu, Array-ul de
intrare contine valorile 1, 2, 4 si 6, iar la intrarea fractional index or x este
conectata valoarea 1.7, functia va genera rezultatul 3.4 (dupa valoarea cu indicele
1, la 70 % din distanta dintre aceasta si urmatoarea).

Functia Threshold 1D Array realizeaza o operatie inversa interpolarii:


dispunand de un Array de valori numerice si de un prag (intrarea threshold y),
incepand de la un indice specificat, functia cauta doua valori consecutive din
Array astfel incat prima sa fie mai mica decat pragul si a doua mai mare sau egala
cu acesta.
64
Instrumentaţie Virtuală Mircea GORDAN

In situatia in care gaseste o astfel de pereche de valori consecutive, iesirea


fractional index or x are partea intreaga egala cu indicele primei valori din
pereche, partea fractionala reflectand pozitia pragului intre cele doua valori.

6.6. Functii de ordonare pentru Array-uri

Functia Rotate 1D Array efectueaza n permutari circulare ale valorilor


dintr-un Array cu o singura dimensiune.
Sensul permutarilor este determinat de semnul valorii n:
- daca n>0, la fiecare permutare ultima valoare din Array trece pe prima
pozitie;
- daca n<0, la fiecare permutare prima valoare din Array trece in ultima

pozitie.
Functia Reverse 1D Array inverseaza ordinea valorilor dintr-un Array
unidimensional.

Functia Sort 1D Array sorteaza valorile dintr-un Array unidimensional:


crescator daca valorile sunt numerice sau in ordine alfabetica daca valorile sunt de
tip alfanumeric (String).

Functia Transpose 2D Array transpune o matrice.

Functia Reshape Array modifica numarul de dimensiuni ale unui element


de tip Array. De exemplu, un Array unidimensional cu sase valori poate fi
transformat intr-o matrice cu trei linii si doua coloane, sau invers. Numarul de
dimensiuni ale rezultatului va fi egal cu numarul de terminale dimension size ale
simbolului functiei.

65
Instrumentaţie Virtuală Mircea GORDAN

6.7. Functii de modificare pentru Array-uri

Functia Replace Array Subset inlocuieste valori dintr-un Array, incepand


de la un indice specificat. Simbolul
functiei poate fi dimensionat pentru a
permite inlocuiri simultane in mai multe
portiuni.
Atunci cand la intrarea functiei se
conecteaza un Array cu mai multe
dimensiuni, terminalele pentru indici capata intrari pentru linii si coloane ce pot fi
activate sau dezactivate independent.
Functia Insert Into Array insereaza valori intr-un Array, incepand de la un
indice specificat. Numarul de valori din Array creste. Functia poate mari numarul
de valori din Array doar de-a lungul unei singure dimensiuni, astfel incat, daca
inserarea urmeaza a se efectua intr-un Array cu N dimensiuni, se vor putea insera
in acesta doar elemente cu N sau cu N-1 dimensiuni (de exemplu, nu se poate
insera un element scalar intr-o matrice).

Functia Delete From Array sterge dintr-un Array o portiune de marime


specificata (intrarea length, cu valoare implicita 1), incepand de la un indice

specificat (implicit ultimul element). Stergerea se efectueaza doar de-a lungul unei
singure dimensiuni: se sterg elemente dintr-un Array cu o dimensiune, linii sau
coloane dintr-o matrice etc (nu se poate sterge doar o valoare dintr-o matrice).
Functia dispune atat de o iesire pentru Array-ul din care s-a realizat
stergerea, cat si de o iesire pentru portiunea ce a fost stearsa.
Numarul de dimensiuni ale celei de a doua iesiri variaza: este egal cu
numarul de dimensiuni ale Array-ului de intrare daca a fost conectata o valoare la
intrarea length si este cu o unitate mai mic decat numarul respectiv daca intrarea
length a fost lasata neconectata.
Functia Split 1D Array divide un Array unidimensional in doua Array-uri,
locul in care se efectueaza divizarea fiind determinat de valoarea conectata la
intrarea index a functiei. Array-ul rezultat la iesirea first subarray va contine
valorile ce se aflau in Array-ul initial pe pozitiile 0, 1, ..., index-1.

66
Instrumentaţie Virtuală Mircea GORDAN

Functia Decimate 1D Array imparte un Array intial intr-un numar de


Array-uri egal cu numarul de iesiri. Initial, functia are doua iesiri, dar numarul
acestora poate fi modificat prin
dimensionarea simbolului functiei. Valorile
din Array-ul initial sunt repartizate
alternativ Array-urilor de iesire.
De exemplu, daca functia are trei iesiri, valoarea cu indicele 0 este
repartizata la prima iesire, cea cu indicele 1 la a doua, cea cu indicele 2 la a treia,
cea cu indicele 3 din nou la prima iesire, cea cu indicele 4 la a doua s.a.m.d.

6.8. Elementele Array si structurile repetitive

Atunci cand, in diagrama, un Array este


conectat la o structura repetitiva For, bucla
respectiva va prelua, la fiecare iteratie a sa,
doar cate o valoare din Array. Valoarea
preluata la o iteratie este cea cu indicele din
Array egal cu indicele iteratiei buclei.
In aceasta situatie, nu mai este necesara
conectarea unei valori la terminalul N al
buclei. Aceasta va executa atatea iteratii cate valori sunt in Array-ul de intrare.
Daca se conecteaza totusi o valoare la terminalul N, bucla For va executa un
numar de iteratii egal cu minimul dintre acea valoare si numarul de valori din
Array.
Daca, din interiorul unei bucle For, o valoare scalara este conectata la
conturul acesteia, atunci cand bucla isi incheie ultima iteratie, valorile scalare
ajunse pe contur in toate iteratiile vor parasi bucla grupate
intr-un Array.
Comportamentul buclei la intrarea unui Array
poate fi modificat: daca, din meniul propriu al
componentei de pe conturul buclei, se alege optiunea
Disable Indexing, la fiecare iteratie a buclei va fi preluat
intreg Array-ul de intrare. In acest caz, este
necesar ca o valoare sa fie conectata la terminalul
N al buclei.
Daca se alege optiunea Disable Indexing
pentru o componenta de pe contur la care sunt
conectate valori din interiorul buclei, din acea
componenta, dupa incheierea ultimei iteratii, va
parasi bucla doar valoarea din ultima iteratie.
67
Instrumentaţie Virtuală Mircea GORDAN

Valorile ce au ajuns pe contur in toate celelalte iteratii vor fi pierdute.


Considerentele de mai sus sunt valabile pentru Array-uri de orice
dimensiune:
 dintr-o matrice, se poate prelua la fiecare iteratie a buclei fie cate o linie, fie
intreaga matrice;
 daca un Array unidimensional din interiorul buclei este conectat pe conturul
acesteia, la incheierea ultimei iteratii componenta buclei va genera fie o matrice,
fie doar Array-ul primit in ultima iteratie.
Modurile in care un Array se poate comporta la intrarea sau la iesirea dintr-
o structura repetitiva sunt valabile si in cazul buclelor While, cu deosebirea ca, in
cazul acestora, comportamentul implicit este inversat:
 in mod implicit, o bucla While va prelua la fiecare iteratie intreg Array-ul
de intrare. Doar in cazul in care componentei de pe contur i se selecteaza, din
meniul propriu, optiunea Enable Indexing, bucla While va prelua cate o valoare la
fiecare iteratie.
 in mod implicit, daca o valoare din interiorul unei bucle While se conecteaza
la conturul acesteia, componenta de pe contur va genera, dupa incheierea executiei
buclei, doar valoarea primita in ultima iteratie.
Doar daca se selecteaza optiunea Enable Indexing a componentei de pe
contur, aceasta va genera, dupa incheierea ultimei iteratii, un Array cuprinzand
valorile primite in cadrul tuturor iteratiilor.

6.9. Alte functii pentru elemente Array

Functiile aritmetice si logice pentru valori scalare, precum si cele pentru


valori alfanumerice, permit conectarea de Array-uri continand valori de tipurile
corespunzatoare.
Se pot astfel realiza:
 operatii aritmetice asupra valorilor dintr-un Array (radacina patrata, functii
trigonometrice etc.), intre un Array si o valoare scalara sau intre doua Array-uri;
 operatii logice intre un Array si o valoare booleana sau intre doua Array-uri
cu valori booleene;
 operatii asupra Array-urilor de valori alfanumerice.

Functiile Add Array Elements si Multiply Array Elements determina


suma, respectiv produsul valorilor numerice dintr-un Array.
Functiile And Array Elements si Or Array Elements efectueaza operatiile
logice SI, respectiv SAU, asupra tuturor valorilor booleene dintr-un Array,
obtinand o valoare booleana scalara.

68
Instrumentaţie Virtuală Mircea GORDAN

Atunci cand au drept operanzi un Array si o valoare scalara sau doua


Array-uri, functiile de comparatie genereaza un Array de valori booleene,
compararea fiind efectuata valoare cu valoare.
Daca, din meniul propriu al functiei de
comparatie, se alege optiunea Compare Aggregates,
functia va genera o valoare booleana scalara. De
exemplu, daca se compara doua Array-uri de valori
numerice cu functia Equal? in starea Compare
Aggregates, functia va genera valoarea True doar daca
este indeplinita conditia de egalitate intre toate
perechile de valori aflate pe aceleasi pozitii in cele doua
Array-uri.
Functia Number To Boolean Array, aflata in meniul pentru functii
booleene, transforma un numar natural intr-un Array de valori booleene, efectuand
de fapt transformarea din baza 10 in baza 2. Bitul cel mai putin semnificativ este
reprezentat in Array de valoarea cu indicele 0. De exemplu, valoarea 6=0+21+22
este transformata intr-un Array cu trei valori booleene: (False, True, True).
Functia Boolean Array To Number realizeaza transformarea inversa, dintr-
un Array de valori booleene intr-un numar natural.

69
Instrumentaţie Virtuală Mircea GORDAN

CAPITOLUL 7

Elemente de tip Cluster pentru realizarea instrumentelor virtuale

7.1. Elemente de tip Cluster

Elementele de tip Cluster sunt structuri de date ce pot contine mai multe
valori, de tipuri si dimensiuni diferite. Un Cluster poate contine, de
exemplu, o valoare numerica, doua booleene si una alfanumerica
(text), sau poate contine o combinatie de valori scalare, vectoriale si
chiar alte elemente de tip Cluster (de exemplu, o valoare numerica,
un Array de valori booleene si un Cluster format din trei valori
alfanumerice si una booleana).
Pentru a fi introdus in panoul unei aplicatii, un element de tip Cluster se
selecteaza din meniul Array & Cluster al paletei de functii. Imediat dupa ce este
dispus pe panou, un Cluster este o structura vida (un chenar), nu contine nici o
valoare.

Definirea structurii de valori dintr-un Cluster se realizeaza


prin introducerea in chenarul sau a unor elemente de tipurile dorite.
Similar modului de definire a tipului elementelor Array, atunci
cand un element este pozitionat deasupra chenarului unui Cluster,
inainte ca utilizatorul sa ridice butonul stang al mouse-ului,
chenarul elementului Cluster este reprezentat cu linie intrerupta.

70
Instrumentaţie Virtuală Mircea GORDAN

7.2. Meniul propriu al elementelor de tip Cluster

Submeniul Autosizing din meniul propriu al unui element de tipul Cluster


permite:
 modificarea dimensiunilor chenarului, astfel incat acesta sa se "muleze" pe
multimea de elemente din interior (optiunea Size to Fit);
 alinierea pe orizontala sau pe verticala a elementelor din interiorul
chenarului
Elementele de diverse tipuri din interiorul unui Cluster sunt o multime ordonata.
Ordinea elementelor este cea in care acestea au fost introduse in elementul
Cluster.
Optiunea Reorder Controls In Cluster... permite modificarea indicilor
elementelor (numerelor de ordine). La selectarea acestei optiuni, panoul aplicatiei
devine negru iar programul asteapta ca utilizatorul sa indice succesiv, prin click-uri
cu mouse-ul, elementele cu indicii 0, 1, 2 s.a.m.d.
Indicele pe care il va capata elementul pe care se va efectua urmatorul click
este mentionat in dreptul textului Click to set to (initial 0). Langa fiecare element
sunt afisati cate doi indici. Indicele avut de element inainte de inceperea
modificarilor este scris cu negru pe fond alb. Indicele modificat este scris cu alb pe
fond negru.
Validarea modificarilor se efectueaza prin apasarea butonului OK. Anularea
modificarilor indicilor si revenirea la situatia anterioara se efectueaza prin apasarea
butonului marcat cu X.

71
Instrumentaţie Virtuală Mircea GORDAN

7.3. Functii pentru elemente de tip Cluster

Functiile specifice elementelor de tipul Cluster sunt grupate in meniul cu


acelasi nume al paletei de functii.
Functia Unbundle permite separarea elementelor unui Cluster. Atunci cand
o functie Unbundle este dispusa in diagrama, ea
poseda doua iesiri si poate fi dimensionata.
Cand se realizeaza o legatura intre terminalul
unui Cluster si o functie Unbundle, functia se
dimensioneaza automat, corespunzator numarului
de elemente din Cluster. Iesirile functiei capata
culori si inscriptii corespunzatoare elementelor
componente. Iesirea din pozitia superioara
corespunde elementului cu indicele 0, cea imediat de sub ea elementului cu
indicele 1 s.a.m.d.
Functia Bundle grupeaza mai multe valori (elemente) intr-o structura de tip
Cluster. In mod implicit functia poseda doua intrari dar poate fi dimensionata.
Daca la intrarea cluster a functiei Bundle nu se conecteaza nimic, atunci la toate
intrarile sale trebuie sa existe conexiuni, pentru a defini complet structura
elementului Cluster rezultant.
Daca la intrarea cluster se conecteaza o structura de date, simbolul functiei
Bundle se dimensioneaza automat, iar intrarile sale capata culori si inscriptii
conform structurii de date conectate. In aceasta situatie, nu mai este necesar ca la
toate intrarile functiei sa fie conectate valori.
Functia nu mai creeaza o
noua structura ci inlocuieste,
in structura legata la intrarea
cluster, eventualele valori
conectate la unele din
intrarile sale.

72
Instrumentaţie Virtuală Mircea GORDAN

Daca elementele din interiorul


unui Cluster poseda etichete (label),
separarea acestora se poate efectua si cu
ajutorul functiei Unbundle By Name.
Atunci cand la intrarea sa se conecteaza
un Cluster, iesirile functiei Unbundle
By Name capata nume ce corespund
etichetelor componentelor elementului
Cluster. Daca functia are mai putine intrari decat numarul elementelor din
Cluster, numele sunt atribuite in ordinea elementelor.
Simbolul functiei Unbundle By Name poate fi
dimensionat. Numele atribuit unei iesiri (si implicit
elementul din Cluster ce se obtine la iesirea respectiva)
poate fi modificat:
>>> facand click cu unealta de operare pe iesirea respectiva, apoi selectand numele
dorit din meniul care se deschide;
>>> deschizand meniul propriu al functiei (click cu butonul drept al mouse-ului) si
selectand numele dorit din submeniul Select Item.

Functia Bundle By Name modifica valoarea unuia sau mai multor elemente
dintr-un Cluster ale carui componente poseda etichete. Simbolul functiei poate fi
dimensionat.
Numele elementului corespunzator unei intrari poate fi modificat prin
aceleasi metode ca si in cazul functiei Unbundle By Name. Este obligatorie
conectarea la intrarea input cluster a functiei a unei structuri de date
corespunzatoare. In caz contrar, functia nu isi poate defini numele intrarilor.

Functia Build Cluster Array preia un numar de elemente de tip Array


(simbolul functiei poate fi dimensionat), introduce fiecare Array intr-un Cluster si
73
Instrumentaţie Virtuală Mircea GORDAN

combina toate aceste elemente Cluster intr-un element Array rezultant. Toate
elementele Array de la intrare trebuie sa fie de acelasi tip.

Functia Index & Bundle Cluster Array creeaza un Array de elemente


Cluster.
Elementul Cluster cu indicele i contine valorile cu indicii i din elementele
Array de la intrare.
Elementele Array de la intrare pot fi de tipuri diferite.

Functia Cluster To Array dispune elementele dintr-un Cluster intr-un


Array.
Elementele din Cluster trebuie sa fie de acelasi tip.

Functia Array To Cluster dispune valori dintr-un Array intr-un Cluster.


Numarul de elemente din Cluster se stabileste selectand, din meniul propriu al
functiei, optiunea Cluster Size... (implicit 9). Daca in elementul Array se afla mai
multe valori decat numarul de elemente din Cluster, atunci vor fi preluate doar o
parte dintre acestea si anume primele.

74
Instrumentaţie Virtuală Mircea GORDAN

CAPITOLUL 8

Elemente de reprezentare grafică pentru instrumentele virtuale

8.1. Elemente pentru reprezentari grafice

Mediul de programare LabVIEW dispune, in meniul Graph al paletei de


controale, de o serie de elemente pentru reprezentari grafice. Cele mai utilizate
sunt cele aflate pe prima linie a meniului Graph: elementele Waveform Chart
(numit pe scurt Chart), Waveform Graph (numit pe scurt Graph) si XY Graph.
Diferentele intre cele trei elemente sunt reprezentate de modurile in care acestora li
se transmit coordonatele punctelor prin care va fi trasat graficul.

8.2. Elementul Waveform Chart

Unui element de tip Chart i se pot trimite in


mod succesiv, punct cu punct, valorile ordonatelor
punctelor pe care sa le traseze grafic. In figura
alaturata, bucla While executa cate o iteratie la
fiecare trei secunde (datorita functiei Wait (ms)). La
fiecare iteratie, functia Random Number (0-1)
trimite cate o valoare aleatoare la elementul Chart.
Un element de tip Chart considera valorile succesive
pe care le primeste drept ordonate ale punctelor de pe grafic.
Abscisele punctelor sunt considerate automat crescatoare din unitate in
unitate (0 pentru prima valoare primita, 1 pentru a doua s.a.m.d.). Atunci cand
primeste o noua valoare, un element Chart traseaza un segment de dreapta din
punctul cel mai recent (ultimul de pe grafic) pana
in punctul determinat de noua valoare primita.
Un element Chart accepta nu numai valori
trimise punct cu punct (scalare) ci si siruri de
valori (Array). Atunci cand primeste un sir de
valori (considerate de asemenea tot ordonate ale
punctelor), un element Chart adauga la sfarsitul
graficului deja existent nu un singur punct ci un
75
Instrumentaţie Virtuală Mircea GORDAN

numar de puncte egal cu numarul de valori din sirul primit.


In figura de mai sus, la fiecare iteratie a buclei While (la fiecare trei secunde),
bucla For genereaza un sir (Array) de sapte valori aleatoare, sir ce este trimis
elementului Chart. La fiecare trei secunde, la graficul din elementul Chart sunt
adaugate astfel inca sapte puncte.

Daca un element Chart primeste o matrice de valori numerice (Array cu


doua dimensiuni), atunci el va trasa simultan un numar de grafice egal cu numarul
de linii ale matricei.

8.3. Elementul Waveform Graph

Un element de tip Graph nu accepta valori


individuale (scalare) ci numai siruri (Array) de
valori.
Spre deosebire de elementele Chart, atunci
cand primeste un sir de valori, elementul Graph
sterge graficul pe care il afisase anterior si
afiseaza doar graficul format din noile puncte
primite. Graficul din figura de mai jos se va
schimba la fiecare trei secunde. Valorile afisate
anterior se vor pierde.
Un element de tip Graph considera de asemenea valorile succesive pe care
le primeste drept ordonate ale punctelor de pe grafic. In modul implicit, abscisele
punctelor sunt considerate automat crescatoare din unitate in unitate (0 pentru
prima valoare primita, 1 pentru a doua s.a.m.d.).
Elementele de tip Graph permit insa, suplimentar, definirea abscisei
primului punct si a distantei pe orizontala dintre doua puncte succesive. In aceasta
situatie, valorile x0 si Dx se introduc (printr-o functie Bundle) intr-un Cluster
76
Instrumentaţie Virtuală Mircea GORDAN

impreuna cu sirul de valori ce reprezinta ordonatele punctelor, iar la terminalul


elementului Graph se conecteaza iesirea functiei Bundle (figura de mai jos).

Daca un element Graph primeste o matrice de valori numerice (Array cu


doua dimensiuni), atunci el va trasa simultan un numar de grafice egal cu numarul
de linii ale matricei.
In situatia in care se traseaza mai multe grafice si se doresc definirea abscisei
x0 a primului punct si a distantei Dx pe orizontala dintre doua puncte succesive,
marimile respective vor fi aceleasi pentru toate graficele. In functia Bundle, la cea
de a treia intrare se conecteaza matricea de valori.

8.4. Elementul XY Graph

Un element de tip XY Graph accepta la


intrare un Cluster format din doua siruri
(Array) de valori.
Primul sir reprezinta abscisele iar cel de-al
doilea ordonatele punctelor de pe grafic.
Evident, cele doua siruri trebuie sa contina
acelasi numar de valori. Atunci cand se primeste o astfel de structura de date,
graficul anterior este sters.
In figura alaturata este prezentat un program pentru trasarea graficului
functiei sinus intre 0 si 2p prin 101 puncte. Stabilind ca punctele vor fi la distante
egale pe orizontala, se determina intai distanta dx pe abscisa dintre doua puncte
succesive, impartind la 100 intervalul de trasare, de lungime 2p.
Intr-o bucla For cu numarul de iteratii egal cu numarul de puncte se
determina la fiecare iteratie abscisa unui punct si se calculeaza ordonata.
77
Instrumentaţie Virtuală Mircea GORDAN

La iesirea din bucla For, sirurile de valori xi si yi sunt grupate intr-un cluster
(cu functia Bundle), iar acesta este trimis la terminalul elementului XY Graph.
Daca se doreste trasarea simultana a mai multor grafice:
 se construieste pentru fiecare grafic cate un Cluster
format din doua Array-uri (unul pentru abscisele si altul
pentru ordonatele punctelor);
 iesirile functiilor Bundle se conecteaza la o functie
Build Array;
 iesirea functiei Build Array se conecteaza la terminalul
elementului XY Graph.

8.5. Optiuni specifice elementelor pentru reprezentari grafice

In meniul propriu al elementelor pentru reprezentari grafice, submeniul


Visible Items contine o serie de optiuni pentru afisarea unor componente specifice.

78
Instrumentaţie Virtuală Mircea GORDAN

Optiunea Plot Legend afiseaza o legenda ce poate fi pozitionata independent


sau dimensionata pentru a avea un numar de pozitii egal cu numarul de grafice
reprezentate.
Numele graficelor (initial Plot 0, Plot 1 s.a.m.d.) pot fi modificate cu
ajutorul uneltei de editare a textelor. Apasand butonul drept al mouse-ului atunci
cand cursorul este pozitionat deasupra unui grafic din legenda, se deschide un
meniu propriu din care pot fi configurate optiuni de afisare ale graficului respectiv:
culoare, tip si grosime de linie etc.

Optiunea Scale Legend afiseaza o componenta ce permite configurarea


modului in care sunt afisate scalele elementului de reprezentare grafica: eticheta
scalei, format si precizie de reprezentare, vizibilitatea scalei sau a etichetei
acesteia, culoarea caroiajului.
Pentru fiecare scala sunt disponibile:
 un buton (notat cu X sau Y) la a carui apasare se realizeaza o autoscalare pe
directia respectiva;
 un buton (marcat cu un lacat) care, atunci cand este apasat, mentine continuu
autoscalarea pe directia corespunzatoare.

79
Instrumentaţie Virtuală Mircea GORDAN

Optiunea Graph Palette afiseaza o componenta cu unelte ce permit:


 deplasarea graficelor in interiorul elementului (butonul cu manuta);
 deschiderea unui submeniu cu unelte pentru marire sau micsorare statica pe
diverse directii sau dinamica.

Optiunile X Scale si Y Scale din meniul propriu permit configurarea unor


parametri ai modului de afisare a scalelor.

8.6. Optiuni specifice elementelor de tip Chart

80
Instrumentaţie Virtuală Mircea GORDAN

In submeniul Visible Items al elementelor de tip Chart exista cateva optiuni


specifice acestor elemente.
Optiunea Digital Display conduce la afisarea unui
numar de elemente indicatoare pentru valori numerice egal
cu numarul de pozitii ale legendei. Valoarea afisata de catre
fiecare element indicator este cea a ultimului punct de pe
graficul corespunzator.

Optiunea Scrollbar conduce la afisarea unei bare de defilare ce permite


deplasarea pe directie orizontala a graficelor afisate.
Selectarea din meniul propriu al elementului Chart a optiunii Transpose
Array realizeaza transpunerea matricei de valori, astfel incat nu se mai traseaza
cate un grafic pentru fiecare linie ci cate unul pentru fiecare coloana.

In cazul afisarii mai multor grafice, optiunea Stack Plots imparte zona de
afisare in mai multe portiuni distincte, cate una pentru fiecare grafic, cu scale
separate pe axa Y.
Optiunea Chart History Length... permite utilizatorului sa stabileasca
numarul de valori ce pot fi stocate in "memoria interna" a elementului Chart
(implicit 1024). Daca unui element Chart i se trimit mai multe valori decat acest
numar, valorile cele mai vechi se pierd si nu mai sunt vizibile la o eventuala
"defilare" a graficului.

8.7. Optiuni specifice elementelor de tip Graph si XY Graph

81
Instrumentaţie Virtuală Mircea GORDAN

In submeniul Visible Items al elementelor de tip Waveform Graph sau XY


Graph, optiunea Cursor Legend determina afisarea unei componente prin
intermediul careia utilizatorul poate afisa si manipula unul sau mai multe cursoare.
Componenta Cursor Legend este formata dintr-o lista de cursoare si un
element pentru comanda deplasarii cursorului.
In lista de cursoare (initial cu doua linii vide), fiecarei linii ii corespunde un
cursor. Lista poate fi dimensionata.
Pentru a adauga un nou cursor, este suficient sa se introduca un nume al
acestuia sau sa se apese oricare din cele trei butoane de pe linia corespunzatoare.
Pentru a sterge un cursor sau a insera un nou cursor intr-o anumita pozitie,
din meniul propriu al paletei de cursoare, submeniul Data Operations, se aleg
optiunile Delete Element sau Insert Element Before.

O linie corespunzatoare unui cursor contine, in partea sa stanga, un element


pentru numele cursorului si doua elemente pentru coordonatele X si Y ale acestuia.
In partea sa dreapta, fiecare linie corespunzatoare unui cursor contine trei butoane:

82
Instrumentaţie Virtuală Mircea GORDAN

 un buton pentru activarea elementului de comanda a deplasarii: daca acest


buton are LED-ul propiu aprins, atunci cursorul poate fi deplasat apasand pe unul
din cele patru butoane romboidale ale
elementului pentru comanda deplasarii
cursorului. Daca LED-ul butonului este stins,
elementul de comanda nu este activ;
 un buton pentru configurarea
caracteristicilor cursorului (culoare, stil,
forma punctului central, stilul si grosimea
firelor reticulare s.a.m.d.);
 un buton prin care se activeaza sau nu posibilitatea de deplasare a cursorului
cu unealta de operare (Allow Drag), se "leaga" cursorul de
un anumit grafic (Lock to plot) sau de punctele acestuia
(Snap to point) sau se lasa cursorul liber (Free).
Daca un cursor are optiunea Allow Drag activata, el
va putea fi deplasat cu unealta de operare daca butonul din
stanga al componentei Graph Palette este activat (are
LED-ul aprins).
Deplasarea se poate efectua fie "tragand" de punctul central al cursorului, fie
de unul dintre firele reticulare.
Elementele pentru nume si coordonate, precum si butoanele, pot fi
dimensionate.
Elementele pentru nume si coordonate poseda meniuri proprii individuale.

8.8. Elemente si functii de tip Picture

Pentru a dispune pe panoul aplicatiei un element de tip Picture.ctl, acesta


poate fi selectat din meniul de controale, submeniul Graph, submeniul Ctls.

83
Instrumentaţie Virtuală Mircea GORDAN

Functiile pentru lucrul cu elemente de tip Picture.ctl sunt dispuse in meniul


de functii, submeniul Graphics & Sound, submeniul Picture Functions.

Un element de tip Picture reprezinta o matrice de pixeli, fiecare pixel fiind


definit prin coordonatele sale X si Y.
Originea sistemului de coordonate se afla in coltul stanga-sus al figurii.
Axa X are sensul pozitiv spre dreapta, iar axa Y are sensul pozitiv in jos.

8.9. Utilizarea functiilor de tip Picture

84
Instrumentaţie Virtuală Mircea GORDAN

Functiile pentru lucrul cu elemente de tip Picture.ctl efectueaza operatii


asupra unei figuri in general in sensul de adaugare a unui element geometric in
figura.
In imaginea de mai jos se pleaca de
la o constanta Empty Picture (figura vida).
In prima etapa, utilizand functia Move
Pen.vi, se deplaseaza un creion imaginar in punctul de coordonate (50, 50) al
figurii. Functia Move Pen.vi nu adauga
nimic la figura.
Cu ajutorul functiei Draw Line.vi, in
figura preluata de la functia Move Pen.vi
este trasat un segment de culoare rosie.
Functie Draw Line.vi considera ca punctul
de plecare al segmentului este punctul in care se afla creionul imaginar, fiind
necesar ca functiei sa i se specifice doar punctul final al segmentului, in acest caz
punctul de coordonate (120, 140).
In figura preluata de la iesirea functiei
Draw Line.vi, cu ajutorul functiei Draw Circle
by Radius.vi, este trasat un cerc plin (vezi
constanta True) de culoare albastra, cu centrul in
punctul de coordonate (200, 200) si de raza 20.
Figura obtinuta la iesirea functiei Draw
Circle by Radius.vi este transferata elementului
de tip Picture.ctl, rezultatul fiind afisarea figurii.

85
Instrumentaţie Virtuală Mircea GORDAN

CAPITOLUL 9

Realizarea unui dispozitiv simplu de instrument virtual


(voltmetru, ampermetru)

9.1. Consideraţii teoretice

Aparatele şi instrumentele de măsură au evoluat odată cu dezvoltarea


tehnologiei de procesare a informaţiilor ajungând astăzi să fie integrate în
calculatoare sau sisteme de instrumentaţie complexe. Diferenţele majore constau
în complexitatea şi versatilitatea sistemelor de măsurare (plăci de achiziţie) care
dispun de resurse de calcul proprii.
Aparatele şi sistemele de măsură numerice au ajuns să domine piaţa
echipamentelor de profil datorită unor avantaje incontestabile ca precizia
ridicată, viteză de lucru sporită, posibilităţi multiple de lucru, grad mare de
automatizare a procesului de măsurare, flexibilitate şi programabilitate,
posibilităţi sporite de integrare în sisteme de măsurare complexe, fiabilitate şi
facilităţi de autotestare, gabarit redus, etc.
Placa de achiziţie este un sistem de măsură complex, computerizat şi
caracterizat prin posibilităţi de prelucrare a informaţiei provenite din procesul de
măsurare.
Informaţia reprezintă într-un sens mai restrâns date şi detalii relative la un
obiect sau eveniment. Semnalul poartă informaţiile de mărime şi timp ce
caracterizează evoluţia acelui obiect sau eveniment. Sistemele de instrumentaţie
sunt destinate prelucrării informaţiilor provenite de la un proces de măsurare şi
nu modificării (transformării) acestor semnale. Sistemele de instrumentaţie sunt
de obicei sisteme deschise rolul lor fiind de a realiza atât acţiunea de măsurare
propriu-zisă, cât şi de analiză a mărimilor prelevate din proces.
Din punct de vedere constructiv sistemele de instrumentaţie pot fi simple şi
inteligente. Pentru prima categorie de sisteme se are în vedere operaţia de
măsurare şi furnizarea cât mai multor informaţii corecte asupra mărimii de
intrare observată. Pentru cel de al doilea tip de sisteme pe lângă măsurarea
propriu-zisă sistemul permite şi prelucrarea informaţiilor obţinute prin măsurare,
precum şi alte operaţii de corecţie a rezultatelor sau control a condiţiilor de
măsură. Sistemele de instrumentaţie inteligente au în componenţa lor de cele
mai multe ori unităţi de prelucrare numerică, ceea ce le conferă flexibilitate şi
performanţe ridicate. Tehnica modernă a măsurărilor electrice şi ne-electrice
este astăzi de ne-conceput fără aceasta categorie de sisteme de măsură, care
presupune un grad ridicat de interdisciplanaritate (electronică, măsurări,
traductoare, calculatoare, automatică).

86
Instrumentaţie Virtuală Mircea GORDAN

Procesul de măsurare a suferit importante modificări nu atât din punct de


vedere metrologic ci mai ales ca metodologie, determinând apariţia unor noi
instrumente mai flexibile şi mai uşor de integrat în sisteme complexe de
măsurare. Ultimele decenii au însemnat trecerea de la instrumentaţia clasică
preponderent analogică la instrumentaţia modernă, în cea mai mare măsură
numerică, aceasta din urmă a beneficiat de schimbările spectaculoase din
domeniul tehnologiilor numerice de prelucrare a datelor, bazate în general pe
calculatoare şi în special pe microprocesoare, făcând posibilă apariţia unor
concepte noi cum ar fi cel de instrumentaţie virtuală.
După cum se ştie prima generaţie de instrumente de măsurat erau
analogice, controlate manual prin folosirea unor butoane şi comutatoare de pe
panoul frontal. Măsurătorile făcute cu aceste instrumente erau înregistrate şi
prelucrate tot manual, de către operator fără posibilitatea de a adăuga funcţiuni
noi, sau de a modifica modul de prezentare al rezultatelor. În plus erorile
datorate factorului uman erau frecvente. Evident aceste instrumente există şi
astăzi, dar aria lor se restrânge în favoarea celor numerice, mai uşor de utilizat
chiar în condiţiile unui control manual. Principalul beneficiu adus de aceste
instrumente este eliminarea erorilor de citire, simultan cu posibilitatea trimiterii
datelor prelevate direct unui echipament de calcul adecvat. Prezenţa operatorului
rămâne totuşi necesară, pentru implementarea algoritmului de măsură.
Apariţia instrumentelor numerice programabile, a reprezentat un pas
important în tehnica măsurării automate. Aceste instrumente sunt controlabile de
către dispozitive numerice externe. Utilizatorul îşi clădeşte un sistem cu mai
multe instrumente conectate cu un calculator ce va guverna complexul de
măsură, pe baza unui program adecvat. Datorită acestuia intervenţia operatorului
uman este minimă, el trebuind să asigure doar iniţierea şi oprirea procesului de
măsurare, precum şi intervenţii în caz de avarie.
Instrumentaţia actuală a evoluat suficient de mult pentru ca astăzi să
întâlnim combinaţii de instrumente numerice programabile controlate de
calculator şi instrumente ce sunt asamblate în calculatorul propriu-zis, prin
folosirea unor sub-asamblări hardwear (plăcii de achiziţie) specifice şi programe
adecvate. Această nouă generaţie de sisteme de instrumentaţie oferă mai multă
flexibilitate şi performanţă datorită faptului că instrumentul este clădit ca parte
componentă a calculatorului, ceea ce face posibil ca puterea de calcul şi
prezentare a acestuia să fie folosite în operaţiile de măsurare.
Plăcile de achiziţie sunt din ce în ce mai utilizate deoarece acestea pot
înlocui aparatele de măsurare convenţionale, permit stocarea datelor măsurate,
prelucrarea şi comunicarea cu computerul în care cu ajutorul programelor de
analiză şi prelucrare, datele stocate pot fi prelucrate şi analizate. Plăcile de
achiziţie pot să primească semnale şi prin comparare cu eşantioane de semnale
definite de utilizator poate să ia decizi definite de utilizator şi să emită semnale
către dispozitive exterioare.
87
Instrumentaţie Virtuală Mircea GORDAN

Plăcile de achiziţie sunt utilizate foarte frecvent în instalaţiile de


automatizare, unde este necesară măsurarea, stocarea, analizarea şi emiterea
unui semnal de răspuns fără intervenţie din partea factorului uman.
Principalele avantaje ale plăcilor de achiziţie sunt:
- Standardizarea procedurilor de măsurare / tastare, care conduce la o
eficienţă sporită prin micşorarea costurilor;
- Traductoarele şi circuitele de măsură aferente pot fi plasate lângă
proces, comunicarea cu „operatorul automat”, plasat într-o cameră de
control, făcându-se numeric;
- Creşterea productivităţii, operaţiilor de măsurare;
- Posibilitatea de a controla condiţiile de mediu într-un complex de
măsură, pentru prelevarea unor mărimi dependente de acestea;
- Creşterea preciziei de măsurare ca urmare a eliminării erorilor
datorate operatorului uman, şi a posibilităţii de control asupra
condiţiilor de lucru;
- Realizarea unor operaţii suplimentare;
- Posibilitatea efectuării repetate a unor teste complexe.

Cercetările actuale oferă şi o imagine a generaţie următoare de instrumente


în care calculatorul este adus în acelaşi şasiu cu instrumentul, devenind o parte
componentă a acestuia. Instrumentele inteligente sunt integrate apoi într-o reţea
de comunicaţii, ierarhizată pe mai multe nivele de decizie, determinând apariţia
sistemelor de instrumentaţie distribuite, extrem de utile în mediile industriale.
Plăcile ATE Serie sunt produse ale companiei National Instruments şi sunt
primele plăci standardizate pentru configurarea automată a dispozitivelor hard,
având multiple funcţii analogice, digitale şi sincronizări ale intrărilor şi ieşirilor
compatibile PCAT şi pentru computerele compatibile. Aceste plăci prezintă
caracteristici pe 12 şi 16 biţi ADC (c.a. şi c.c.) cu 16 intrări analogice pe 12 şi 16
biţi ADC cu 8 ieşiri de tensiune şi 32 la circuitele TTL cu intrări ieşiri digitale
compatibile şi cu două ieşiri pe 24 biţi de numărător / temporizator pentru
sincronizarea intrărilor / ieşirilor. Plăcile ATE Serie sunt primele plăci care nu
conţin comutatoare şi şuntoare, nu sunt prevăzute cu comutatoare DIP, şuntoare
sau potenţiometre ele pot fi uşor configurate şi calibrate utilizând un soft de
programare. Aceste caracteristici sunt posibile la DAQ-PnP National
Instruments, prin magistrala de interfaţă (pastilă) chip şi conectările plăcii la
magistrala AT de intrări / ieşiri. DAQ-PnP introduce configurare automată ISA,
specifice pentru accesul direct la memorie (DMA), întreruperile şi adresele de
bază ale intrărilor / ieşirilor şi toate pot fi configurate prin program. Aceasta
permite operatorului să schimbe uşor configuraţia plăcii ATE Serie fără a fi
necesară scoaterea plăcii din computer.

88
Instrumentaţie Virtuală Mircea GORDAN

Instrumentele virtuale reprezintă fişiere ale programului LabView, de


legătură între placa de achiziţie, computer şi utilizator. Acest fişier are o
reprezentare în programul LabView în două ferestre:
- fereastra de comandă;
- fereastra de schemă.
Fereastra de comandă reprezintă panoul frontal al dispozitivului în care
utilizatorul poate să controleze datele de intrare şi afişarea rezultatelor.
Fereastra de schemă reprezintă schema funcţională propriu-zisă a
instrumentului virtual cu controlere, constante, indicatori, sub-instrumente
virtuale, etc.

9.2. Realizarea practică a unui instrument


Măsurarea tensiunilor şi curenţilor sunt printre cele mai frecvente măsurări
din domeniul electric. Pentru măsurarea tensiunii se foloseşte voltmetru, iar
pentru măsurarea curentului se utilizează ampermetru.
Realizarea unui instrument virtual cu ajutorul programului LabView
presupune parcurgerea următoarelor etape:
- deschiderea programului LabView;
- deschiderea unui fişier nou;
- afişarea ferestrei de schemă;
- afişarea paletelor Tools, Functions şi Controls;
- amplasarea corespunzătoare a controlerelor, constantelor,
indicatoarelor, funcţiilor şi sub-instrumentelor virtuale în cele două
ferestre ale instrumentului virtual;
- realizarea conexiunilor necesare în fereastra de schemă;
- salvarea fişierului cu extensia ,, .vi ”.

Pentru execuţia voltmetrului virtual se va selecta paleta Tools operatorul de


valori pentru a putea introduce cât mai uşor în fereastra de schemă prezentată în
figura de mai jos, din paleta Functions următoarele:
- din meniul Structures se alege While Loop;
- din meniul Data Acquisition se alege sub-meniul Analog Input din
care se va alege sub-instrumentul virtual AI Sample Channel.vi;
- din meniul Cluster se alege Unbundle by name;
- din meniul Time & Dialog se va alege Waits(ms);
- din meniul Boolean se va alege Not;

While Loop este o structură repetitivă care va realiza repetarea citirilor de la


placa de achiziţii pentru a realiza o citire şi afişare continuă a tensiunii măsurate.
Sub-instrumentul virtual AI Sample Channel.vi realizează configurările
pentru legătura instrumentului virtual cu placa de achiziţie şi pentru valorile
limită ale tensiunii ce trebuie măsurată.
89
Instrumentaţie Virtuală Mircea GORDAN

Unbundle by name realizează o corespondenţă între limitele minime şi


maxime ale sub-instrumentului virtual .
Waits realizează o întârziere a ciclului repetitiv , deci în consecinţă acesta
va întârzia citirea şi afişarea mărimi măsurate.

While Loop

Unbundle by name

AI Sample Channel.vi Waits Not

Fig. 9.1. Fereastra de schemă a voltmetrului.

AI Sample Channel.vi, Waits, şi Not se vor introduce în interiorul ciclului


repetitiv While Loop. Pentru realizarea controlorilor, indicatorilor şi constantelor
necesare se utilizează fereastra de scurtătură ce apare printr-un clic dreapta al
mausului.
În fereastra de comandă se vor introduce din paleta Controls următoarele:
- din meniul Boolean se va alege Rectangular STOP Button;
- din meniul Graf se va alege ;

Aceste două controlere din fereastra de comandă vor avea corespondent în


fereastra de schemă, care vor fi introduse în interiorul ciclului repetitiv.

90
Instrumentaţie Virtuală Mircea GORDAN

Waveform Chart

STOP Button

Fig. 9.2. Fereastra de comandă a voltmetrului.

După realizarea conexiunilor între dispozitive şi aranjarea acestora în


fereastră după dorinţa utilizatorului voltmetrul virtual va arăta ca în figura 9.3.
Personalizarea ferestrei de comandă se poate realiza utilizând uneltele din
paleta Tools, pentru aranjare în pagină, schimbarea culorilor, introducerea de
texte ajutătoare, etc.

91
Instrumentaţie Virtuală Mircea GORDAN

Fig. 9.3. Ferestrele instrumentului virtual pentru măsurarea tensiunii (voltmetru).

92
Instrumentaţie Virtuală Mircea GORDAN

Pentru execuţia ampermetrului virtual se va selecta paleta Tools operatorul


de valori pentru a putea introduce cât mai uşor în fereastra de schemă prezentată
în figura de mai jos, din paleta Functions următoarele:
- din meniul Structures se alege While Loop;
- din meniul Data Acquisition se alege sub-meniul Analog Input din
care se va alege sub-instrumentul virtual AI Sample Channel.vi;
- din meniul Cluster se alege Unbundle by name;
- din meniul Time & Dialog se va alege Waits(ms);
- din meniul Boolean se va alege Not;
- din meniul Numeric se va alege Divide;
- din meniul Numeric se va alege Multiply;

While Loop este o structură repetitivă care va realiza repetarea citirilor de la


placa de achiziţii pentru a realiza o citire şi afişare continuă a mărimii măsurate.
Sub-instrumentul virtual AI Sample Channel.vi realizează configurările
pentru legătura instrumentului virtual cu placa de achiziţie şi pentru valorile
limită ale tensiunii ce trebuie măsurată.
Unbundle by name realizează o corespondenţă între limitele minime şi
maxime ale sub-instrumentului virtual .
Waits realizează o întârziere a ciclului repetitiv , deci în consecinţă acesta
va întârzia citirea şi afişarea mărimi măsurate.
Divide realizează în acest instrument virtual convertirea mărimii măsurate
(tensiune) în curent.
Multiply realizează transformarea mărimi convertite în miliamperi.

Fig. 9.4. Fereastra de schemă a ampermetrului.

93
Instrumentaţie Virtuală Mircea GORDAN

AI Sample Channel.vi, Waits, Divide, Multiply şi Not se vor introduce în


interiorul ciclului repetitiv While Loop. Pentru realizarea controlorilor,
indicatorilor şi constantelor necesare se utilizează fereastra de scurtătură ce
apare printr-un clic dreapta al mausului.
În fereastra de comandă se vor introduce din paleta Controls următoarele:
- din meniul Boolean se va alege Rectangular STOP Button;
- din meniul Graf se va alege Waveform Chart;
- din meniul Numeric se va alege Digital Control;

Aceste controlere din fereastra de comandă vor avea corespondent în


fereastra de schemă şi care vor fi introduse în interiorul ciclului repetitiv.

Fig. 9.5. Fereastra de comandă a ampemetrului.

După realizarea conexiunilor între dispozitive şi aranjarea acestora în


fereastră după dorinţa utilizatorului ampermetrul virtual va arăta ca în figura 9.6.

94
Instrumentaţie Virtuală Mircea GORDAN

Fig. 9.6. Ferestrele instrumentului virtual pentru măsurarea curentului electric


(ampermetru).

95
Instrumentaţie Virtuală Mircea GORDAN

Pentru verificarea funcţionalităţii instrumentelor virtuale de măsurare se va


folosii următorul montaj:

O GS M

PAP ACS

Fig. 9.7. Schema bloc pentru verificarea măsurătorilor.

LEGENDĂ:
GS – generator de semnal (tip 202);
M – multimetru (tip MY68) pentru semnale până la 1000 Hz;
ACS – accesoriu de semnale pentru placa de achiziţie paralelă;
PAP – placă de achiziţie paralelă ATE–MIO–16E–10;
C – computer;
O – osciloscop.

96
Instrumentaţie Virtuală Mircea GORDAN

CAPITOLUL 10

Realizarea instrumentului virtual


analizor spectral

10.1. Consideraţii teoretice


Informaţia reprezintă într-un sens mai restrâns date şi detalii relative la un
obiect sau eveniment. Semnalul poartă informaţiile de mărime şi timp ce
caracterizează evoluţia, iar sistemele de instrumentaţie sunt destinate prelucrării
informaţiilor provenite de la procesul de măsurare a unui semnal. Un semnal
periodic oarecare rezultă prin repetarea la intervale de timp egale cu o perioadă
de repetiţie T a unui semnal de o formă oarecare şi durată finită. Semnalul
periodic oarecare poate fi în particular un semnal periodic dreptunghiular, în
dinţi de ferestrău, triunghiular, armonic simplu redresat sau dublu redresat, etc.
Semnalele periodice pot fi descompuse în semnale elementare armonice, ele
putându-se reprezenta prin serii Fourier.
Analiza comportării semnalelor staţionare în domeniul frecvenţă se
realizează cu ajutorul transformării Fourier, care descrie spectrul semnalului
considerat. În urma dezvoltării unui semnal periodic în serie Fourier se poate
trage concluzia că acesta poate fi echivalat în cazul general printr-o componentă
continuă şi o sumă de componente armonice cu amplitudini, frecvenţe şi faze
iniţiale determinate. Totalitatea componentelor constitue spectrul de frecvenţă al
semnalului considerat. Structura spectrală a unui semnal periodic oarecare
depinde de forma acestuia, şi conţine în cazul general o componentă C 0, o
componentă fundamentală C1, a cărei frecvenţă de repetiţie în timp este egală cu
frecvenţa semnalului periodic F=1/T şi componente armonice Cn ale căror
frecvenţe sunt multipli întregi al frecvenţelor componente fundamentale
Fn=n/T=nF.
Spectrul de amplitudini al unui semnal periodic se reprezintă grafic printr-o
succesiune de segmente de dreaptă cu lungimi proporţionale cu modulele
amplitudinilor componentelor complexe, egal distanţate cu pulsaţia 0=2/T
sau frecvenţa F.
Spectrul de faze al unui semnal periodic oarecare se reprezintă printr-o
succesiune de segmente de dreaptă, cu lungimi proporţionale cu fazele
componentelor complexe, plasate la intervale egale cu pulsaţia 0=2/T sau
frecvenţa F.
Reprezentarea unui semnal în domeniul timp indică forma lui de variaţie în
timp.

97
Instrumentaţie Virtuală Mircea GORDAN

Reprezentarea unui semnal în domeniul frecvenţă, prin spectrele de


amplitudini şi de faze, permite aprecierea importanţei energetice a componentei
spectrale. În practică de cele mai multe ori este suficient să se calculeze şi să se
considere un număr limitat de componente spectrale nenule ale semnalului
periodic considerat, celelalte neglijându-se. Analiza spectrală a unui semnal
permite stabilirea lăţimii benzii de frecvenţă pe care o ocupă, ca diferenţă a
frecvenţelor extreme din spectru.
Sistemele de instrumentaţie inteligente au în vedere operaţia de măsurare şi
furnizarea cât mai multor informaţii corecte asupra mărimii de intrare observată
şi prelucrarea informaţiilor obţinute prin măsurare, precum şi alte operaţii de
corecţie a rezultatelor sau control a condiţiilor de măsură. Sistemele de
instrumentaţie inteligente au în componenţa lor de cele mai multe ori unităţi de
prelucrare numerică, ceea ce le conferă flexibilitate şi performanţe ridicate.
Tehnica modernă a măsurărilor electrice şi ne-electrice este astăzi de ne-
conceput fără aceasta categorie de sisteme de măsură, care presupune un grad
ridicat de interdisciplanaritate (electronică, măsurări, traductoare, calculatoare,
automatică).

10.2. Realizarea practică a analizorului spectral

Analiza spectrală a unui semnal se face cu ajutorul transformatei Fouriei,


care va descrie spectrul semnalului considerat şi se va realiza cu ajutorul
instrumentului virtual ,,Spectrum Analyzer” un fişier al programului de interfaţă
LabView prin intermediul plăcii de achiziţie paralelă ATE–MIO–16E Serie.
Realizarea instrumentului virtual ,,Spectrum Analyzer” cu ajutorul
programului LabView presupune parcurgerea următoarelor etape:
- deschiderea programului LabView;
- deschiderea unui fişier nou;
- afişarea ferestrei de schemă;
- afişarea paletelor Tools, Functions şi Controls;
- amplasarea corespunzătoare a controlerelor, constantelor,
indicatoarelor, funcţiilor şi sub-instrumentelor virtuale în cele două
ferestre ale instrumentului virtual;
- realizarea conexiunilor necesare în fereastra de schemă;
- salvarea fişierului cu extensia ,,.vi ”.

Pentru execuţia ,,Spectrum Analyzer” virtual se va selecta paleta Tools


operatorul de valori pentru a putea introduce cât mai uşor în fereastra de schemă
prezentată în figura de mai jos (fig 10.1), din paleta Functions următoarele:

98
Instrumentaţie Virtuală Mircea GORDAN

- din meniul Structures se alege While Loop şi se introduc în fereastra


de schemă două structuri repetitive;
- din meniul Structures se alege Case şi se introduc în fereastra de
schemă în fiecare structură repetitivă;
- din meniul Select vi se deschide o fereastră de dialog din care se intră
în directorul VI.llb din care se intra în directorul DAQ şi se deschide
librăria AI.lib şi se va selecta pentru introducere în fereastră de
schemă sub-instrumentul virtual AI Waveform Scan.vi;
- din meniul Select vi se deschide o fereastră de dialog din care se intră
în directorul VI.lib din care se intra în directorul Analysis şi se
deschide librăria OMEASDSP.llb şi se va selecta pentru introducere
în fereastră de schemă sub-instrumentul virtual Scaled Time Domain
Windows.vi;
- din meniul Select vi se deschide o fereastră de dialog din care se intră
în directorul VI.lib din care se intra în directorul Analysis şi se
deschide librăria OMEASDSP.llb şi se va selecta pentru introducere
în fereastră de schemă sub-instrumentul virtual Auto Power
Spectrum.vi;
- din meniul Select vi se deschide o fereastră de dialog din care se intră
în directorul VI.lib din care se intra în directorul Analysis şi se
deschide librăria OMEASDSP.llb şi se va selecta pentru introducere
în fereastră de schemă sub-instrumentul virtual Power & Frequency
Estimate.vi;
- din meniul Select vi se deschide o fereastră de dialog din care se intră
în directorul VI.lib din care se intra în directorul Analysis şi se
deschide librăria OMEASDSP.llb şi se va selecta pentru introducere
în fereastră de schemă sub-instrumentul virtual Spectrum Unit
Conversion.vi;
- din meniul Select vi se deschide o fereastră de dialog din care se intră
în directorul VI.lib din care se intra în directorul UTILITY şi se
deschide librăria ERR0R.llb şi se va selecta pentru introducere în
fereastră de schemă sub-instrumentul virtual General Error
Handler.vi;
- din meniul Cluster se alege Bundle;
- din meniul Cluster se alege Unbundle;
- din meniul Cluster se alege Build Array;
- din meniul Numeric se va alege Add;
- din meniul Numeric se va alege Increment;
- din meniul Boolean se va alege Not;
- din meniul Boolean se va alege Or;
- din meniul Boolean se va alege Greater or Equal;
- din meniul Boolean se va alege Equal;
99
Instrumentaţie Virtuală Mircea GORDAN

- din meniul Array se va alege Index Array;


- din meniul String se va alege String Constant;
While Loop este o structură repetitivă care va realiza repetarea citirilor de la
placa de achiziţii pentru a realiza o citire şi afişare continuă a tensiunii măsurate.
Sub-instrumentul virtual AI Waveform Scan.vi realizează configurările
pentru legătura instrumentului virtual cu placa de achiziţie. Acest instrument
primeşte un numărul specificat de scanări pentru o rată de scanare prestabilită şi
va returna valorile semnalului achiziţionat de la canalul setat al plăcii de
achiziţie.
Sub-instrumentul virtual Scaled Time Domain Window.vi aplică o fereastră
de scalare la domeniul timp al semnalului achiziţionat şi returnează o fereastră
constantă în domeniul timp pentru continuarea analizei semnalului achiziţionat.
Sub-instrumentul virtual Auto Power Spectrum.vi calculează spectrul de
putere unilateral al semnalului achiziţionat în domeniul timp.
Sub-instrumentul virtual Power & Frecquency Estimate.vi calculează
estimările de frecvenţă şi putere în jurul unui punct al semnalului în domeniul
timp din spectrul de putere. Cu acest sub-instrument virtual se pot obţine
estimări bune în măsurarea frecvenţelor care sunt situate între liniile de
frecvenţă ale spectrului.
Sub-instrumentul virtual Spectrum Unit Conversion.vi transformă la
intrarea spectrului (puterea, amplitudinea, sau intervalul) în formate alternante
inclusiv jurnalele (dB sau dBm) şi densitatea spectrală.
Sub-instrumentul virtual General Error Handler.vi este un agent de eroare
utilizat în primul rând pentru informarea utilizatorului despre apariţia de intrare
pentru descrierea erorii detectate şi identificarea locului în care a apărut eroarea.
Informaţia despre eroare vine de la identificatorul erorilor de intrare şi
furnizează un cod, sursa erorii şi un tabel cu descrierea erorii interne.
Funcţia Bundle asamblează componentele mărimi de intrare într-o singură
grămadă sau repune elementele într-o grămadă existentă.
Funcţia Build Array realizează concatenarea mărimilor de intrare într-o
ordine de sus în jos.

100
Instrumentaţie Virtuală Mircea GORDAN

Fig. 10.1. Fereastra de schemă a analizorului


spectral.

După realizarea conexiunilor între dispozitive, realizarea indicatorilor şi


controlerelor personalizate şi aranjarea acestora în fereastră după dorinţa
utilizatorului analizorul spectral virtual va arăta ca în figura 10.2. şi 10.3.
Personalizarea ferestrei de comandă se poate realiza utilizând uneltele din
paleta Tools, pentru aranjare în pagină, schimbarea culorilor, introducerea de
texte ajutătoare, etc.

101
Instrumentaţie Virtuală Mircea GORDAN

Fig. 10.2. Fereastra de comandă a analizorului spectral.

102
Instrumentaţie Virtuală Mircea GORDAN

Fig. 10.3. Fereastra de schemă finală a analizorului spectral.

Pentru verificarea funcţionalităţii instrumentelor virtuale de măsurare se va


folosii următorul montaj:

O GS M

PAP ACS

Fig. 10.4. Schema bloc pentru verificarea măsurării.

LEGENDĂ:
GS – generator de semnal (tip 202);
M – multimetru (tip MY68) pentru semnale până la 1000 Hz;
ACS – accesoriu de semnale pentru placa de achiziţie paralelă;
PAP – placă de achiziţie paralelă ATE–MIO–16E–10;
C – computer;
O – osciloscop.

103
Instrumentaţie Virtuală Mircea GORDAN

CAPITOLUL 11

Utilizarea instrumentului virtual osciloscop

11.1. Consideraţii teoretice


Osciloscoapele catodice sunt aparate de măsură destinate prezentării şi
înregistrării dependenţei de timp a tensiuni electrice sau curentului electric.
Osciloscopul deţine un loc aparte între celelalte aparate de măsură fiind singurul
aparat capabil de a da o reprezentare practic instantanee a variaţiei unui
parametru în raport cu timpul. Datorită acestei calităţi osciloscopul catodic,
furnizează o cantitate de informaţii superioară aparatelor clasice, cu privire la
măsurarea valorilor caracteristice (de vârf, efectivă, medie, etc.) ale unui semnal
variabil, pentru o gamă de frecvenţă foarte largă. Ele se mai utilizează pentru
vizualizarea formei de variaţie în timp a unei tensiuni, pentru măsurarea
valorilor tensiunilor, curenţilor, puterilor, impedanţelor, frecvenţei, defazajului,
şi pentru prezentarea şi înregistrarea dependenţei dintre două mărimi diferite sau
ca indicatoare de nul. Osciloscoapele se compun din tuburi catodice, cărora li se
ataşează dispozitive pentru lărgirea intervalului de măsurare (şunturi, rezistoare
adiţionale) şi dispozitive pentru realizarea electronică a bazei de timp.
Comportarea osciloscoapelor catodice este pronunţat influenţată de frecvenţa
armonicilor curentului sau a tensiuni, a căror dependenţă de timp se prezintă sau
se înregistrează.
În funcţie de relaţia dintre semnalul electric aplicat la intrare şi imaginea pe
ecran, osciloscoapele pot fi împărţite în două categorii:
- osciloscoape în timp real;
- osciloscoape cu eşantionare (sampling).
La osciloscoapele în timp real, între fiecare punct al imagini de pe ecran şi
fiecare valoare a semnalului vizualizat există o dependenţă biunivocă, spre
deosebire de osciloscoapele cu eşantionare unde această dependenţă nu există.
Osciloscoapele cu eşantionare sunt utilizate în general pentru vizualizarea
semnalelor de frecvenţă ridicată (peste 500 MHz). Acestea folosesc tehnica
prelevării, la intervale egale de timp, a unor eşantioane dintr-un semnal periodic,
cu ajutorul cărora este apoi reconstituit semnalul sub aceeaşi formă dar având o
frecvenţă mult mai mică. Acest semnal de frecvenţă redusă este apoi amplificat
şi afişat pe ecranul unui osciloscop cu performanţe obişnuite.
La măsurarea mărimilor cu osciloscopul apar erorii de măsurare mari, în
comparaţie cu alte metode utilizate pentru măsurarea mărimilor. La osciloscopul
clasic cu tub catodic, aceste erori apar în principal datorită erorilor de citire a
diviziunilor de pe ecranul tubului, dimensiunilor finite ale spotului, neliniarităţii
deflexiei tubului catodic şi altele. Aceste erori pot atinge valori de + 10%.

104
Instrumentaţie Virtuală Mircea GORDAN

11.1.1. Descrierea plăcilor de achiziţie

Placa ATE–MIO–16E Serie este printre primele plăci standardizate pentru


configurarea automată a dispozitivelor hard, având multiple funcţii analogice,
digitale şi sincronizări ale intrărilor şi ieşirilor compatibile pentru PC. Această
placă prezintă caracteristici pe 12 biţi ADC (c.a. şi c.c.), cu 16 intrări / ieşiri
analogice pe 12 biţi ADC, cu 8 intrări / ieşiri digitale compatibile şi cu două
ieşiri pe 24 biţi de numărător / temporizator pentru sincronizarea intrărilor /
ieşirilor. Deoarece placa ATE–MIO–16E Serie nu este prevăzută cu comutatoare
DIP, şuntoare sau potenţiometre ea poate fi uşor configurată şi calibrată
utilizând un soft de programare. Aceste caracteristici sunt posibile la DAQ-PnP
National Instruments, prin magistrala de interfaţă (pastilă) chip şi conectările
plăcii la magistrala AT de intrări / ieşiri. DAQ-PnP introduce configurare
automată ISA, specifice pentru accesul direct la memorie (DMA), întreruperile
şi adresele de bază ale intrărilor / ieşirilor şi toate pot fi configurate prin
program. Aceasta permite operatorului să schimbe uşor configuraţia plăcii ATE–
MIO–16E Serie fără a fi necesară scoaterea plăcii din PC. Placa ATE–MIO–16E
Serie de la National Instruments DAQ-STC utilizează sisteme de controlere de
sincronizare pentru funcţii de timp corespunzătoare. DAQ-STC conţine trei
grupuri de sincronizare care controlează intrările analogice, ieşirile analogice şi
funcţiile universale de numărător / temporizator. Acest grup conţine în total 7
numărătoare pe 24 biţi şi 3 numărătoare pe 16 biţi şi o rezoluţie maximă a
sincronizări de 50 ns.
Placa ATE–MIO–16E Serie a fost construită pentru achiziţionarea şi
generarea unor mărimi cu variaţii de până la zeci de kHz. Aceasta lucrează cu
programul de interfaţă LabView, cu ajutorul căruia se pot crea instrumente
virtuale necesare aplicaţiei date. Aceste instrumente virtuale sunt condiţionate de
performanţele plăcii de achiziţie (domeniu valorilor de măsurare, rezoluţia de
conversie, timpi de răspuns).
Placa de achiziţie AT–5102 este o placă special creată pentru achiziţionarea
unor mărimi cu variaţie mare în timp. Placa AT–5102 are doi conectori BNC
(female) pentru conexiunea intrărilor analogice CH0 şi CH1, un conector BNC
(female) pentru canalul TRIG şi doi conectori (female) SMB PF1 şi PF2 pentru
mai multe scopuri de temporizare digitală şi declanşarea semnalelor.
Canalele CH1 şi CH2 sunt utilizate pentru declanşarea achiziţiei şi
conversia analog–numerică. Canalul TRIG se utilizează pentru declanşarea
analogică exterioară. Canalele PF1 şi PF2 se utilizează pentru configurarea prin
program a declanşării digitale, ceas extern pentru scanare sau ieşiri digitale.
Conversia analog–numerică se realizează pe 8 biţi, astfel că convertorul
poate divide domeniul de intrare a amplificatorului în 256 de nivele discrete.
Astfel pentru o tensiune de 10V diferenţa între două nivele discrete este de până
la 39 mV. Cu cât numărul de biţi pentru conversie creşte va creşte şi rezoluţia de
105
Instrumentaţie Virtuală Mircea GORDAN

conversie analog–numerică. Setările pentru placă se execută prin programul de


interfaţare, care este un program special creat pentru această placă şi este
realizat de către National Instruments numit VirtualBench. Placa AT–5102 a
fost concepută pentru analiza semnalelor şi poate utiliza programele de
interfaţare VirtualBench–Scope şi VirtualBench–DSA. Primul program este un
Osciloscop virtual, iar cel de al doilea este un Analizor spectral virtual.
Cele două osciloscoape virtuale utilizate pentru măsurare prin intermediul
plăcilor de achiziţie sunt osciloscoape cu eşantionări.

11.2. Realizarea practică a osciloscopului

În prima parte a lucrări se vor face măsurători pentru diferite semnale


având forme de variaţie în timp diferite, utilizând placa de achiziţie ATE–MIO–
16E, cu ajutorul instrumentului virtual Osciloscop prezentat în figura 11.1.
Panoul frontal al osciloscopului (fereastra de comandă) este compusă din
următoarele chei de comandă şi setare a osciloscopului:
1 – butonul de începere a rulării programului instrumentului virtual;
2 – afişajul instrumentului virtual pentru semnalul achiziţionat;
3 – controler pentru setarea indicativului plăcii de achiziţie;
4 – controler pentru setarea canalului de achiziţie;
5 – buton pentru setarea polarităţii semnalului achiziţionat;
6 – buton pentru stoparea achiziţiei semnalului;
7 – buton rotativ pentru setarea bazei de timp a osciloscopului;
8 – buton rotativ pentru setarea valorii tensiunii pe o diviziune de pe
afişajul osciloscopului;
9 – buton rotativ pentru poziţionarea spotului pe verticală.
Pornirea achiziţiei se realizează apăsând butonul de rulare a instrumentului
virtual din bara de comenzi. Setarea plăcii şi a canalului pe care se va face
achiziţia se realizează prin intermediul controlerelor (3) şi (4). Pentru o
vizualizarea cât mai bună a semnalului pe display-ul instrumentului virtual se va
alege timpul de bază corespunzător a afişării (7), valoarea tensiuni pentru o
diviziune (8) şi poziţia pe verticală a spotului de generare a semnalului.
Timpul de bază al osciloscopului poate fi setat de la 100 s/div până la
100 ms/div.
Valoarea tensiuni pe o diviziune poate fi setată de la 10 mV/div până la
10 V/div.

106
Instrumentaţie Virtuală Mircea GORDAN

1
2 9

3 4 5 6
Fig. 11.1. Panoul frontal al osciloscopului pentru placa ATE–MIO–16E.

Realizarea de analizări pentru diferite semnale prin intermediul plăcii de


achiziţie AT–5102 care lucrează cu programul de interfaţă VirtualBench–Scope
care este reprezentat în figura 11.2.
Panoul frontal al instrumentului virtual osciloscop este compus din:
1 – afişajul instrumentului virtual pentru semnalul achiziţionat;
2 – bara de control pentru modul de achiziţionare a semnalului;
3 – bara de control pentru zoom;
4 – setarea cursorului pe afişajul instrumentului;
5 – grup de controlere pentru setarea declanşărilor;
6 – buton rotativ pentru setarea bazei de timp a osciloscopului;
7 – grup de controlere pentru poziţionarea semnalului pe display;
8 – selector de canale;
9 – indicator spotului pe verticală;
10 – bara de meniuri derulante.
107
Instrumentaţie Virtuală Mircea GORDAN

Fig. 11.2. Panoul frontal al osciloscopului pentru placa AT–5102.


Din bara de control pentru achiziţionare se poate alege tipul dorit de
achiziţionare (achiziţionare continuă sau achiziţionare simplă), revenirea la
setarea parametrilor din fabrică pentru achiziţionarea semnalelor şi alegerea
poziţionării cursorului pe afişaj.
Grupul de controlere (7) realizează poziţionarea pe verticală a semnalului
achiziţionat cu ajutorul butonului V Position şi setează valoarea tensiuni pe o
diviziune de la 1 mV/div până la 10 V/div.
Butonul rotativ pentru alegerea bazei de timp poate seta baza de timp de la
1 s/div până la 5 ns/div.
Selectorul de canale permite afişarea pe ecran a unui semnal sau a ambelor
semnale.
Pentru setarea parametrilor de achiziţie din meniul derulant Edit se alege
General Setting şi se deschide o nouă fereastră de dialog care prezintă patru
meniuri pentru a) setări generale;
b) setări de măsurare;
c) setări de afişare;
d) setări pentru placa de achiziţie AT–5102.

108
Instrumentaţie Virtuală Mircea GORDAN

În meniul pentru setări generale se poate configura placa de achiziţie,


declanşatorul pentru respingerea zgomotelor, mărimea buffer-ului pentru
eşantioane, medierea semnalului şi configurarea ratei de eşantionare.
Meniul setărilor de măsurare permite alegerea mărimilor care dorim să le
vizualizăm pe ecran.
Meniul setărilor de afişare permite configurarea culorilor şi a modului de
reprezentare pe ecran.
Meniul setărilor pentru placa de achiziţie AT–5102 permite realizarea unor
configurări speciale pentru această placă cum ar fi cele legate de declanşarea din
exterior a achiziţie prin intermediul PFI1 şi PFI2.

Fig. 11.3. Fereastra generală de setări pentru placa AT–5102.


La placa de achiziţie AT–5102 setările corespunzătoare pentru canalele de
achiziţie se pot realiza din fereastra de setare a canalelor care se va deschide
accesând din meniul Edit comanda Channel Setting. Această fereastră conţine
meniuri pentru setarea celor tipuri semnale: analogic, math şi reference.

Fig. 11.4. Fereastra de setări pentru canalele plăcii AT – 5102.


109
Instrumentaţie virtuală Mircea GORDAN
CAPITOLUL 12

ARHITECTURA SISTEMELOR DE MĂSURĂ ŞI CONTROL [1]

12.1. Generalităţi.
Un sistem de măsură şi control (fig. 12.1.) conţine următoarele blocuri:
 sistem de achiziţie de date analogice (SAD) – este destinat citirii datelor in forma analogică; aces-
te date pot proveni de la traductoare şi adaptoare de măsură.
 sistem de generare de date analogice (SGDA) – este principalul mijloc de obţinere a unor co-
menzi în formă analogică; semnalele astfel obţinute, pot fi aplicate elementelor de execuţie sau pot
fi afişate pe inscriptoare, monitoare TV analogice, etc.
 intrări / ieşiri numerice (IIN) – se utilizează la conectarea cu echipamente numerice sau la interfa-
ţarea cu elemente de comutare comandate electric.
 microcomputer (C) – este partea de calcul care poate realiza atât procesarea locală a datelor, cât

Fig. 12.1. Structura simplificată a unui sistem de măsură şi control.


şi comunicarea cu alte sisteme; aici prin microcomputer se înţelege o arhitectură de calcul mono-
sau multiprocesor, echipată cu microprocesoare sau microcontrolere.

Fig. 12.2. Sistem de achiziţie de date monocanal.

110
Instrumentaţie virtuală Mircea GORDAN
Un sistem de măsură şi control modern este de neconceput fără o unitate de control echipată cu mi-
croprocesor; tehnicile de interfaţare actuale impun controlere inteligente, cu putere de calcul proprie.
În continuare, vor fi analizate atât structura modulelor de achiziţie şi generare de date, cât şi princi-
palele tehnici de interfaţare ce fac posibilă realizarea sistemelor de măsură şi control actuale (dedicate sau
de uz general).

12.2. Sisteme de achiziţie de date (SAD).


Convertorul analog-numeric este partea esenţială a unui SAD, şi la limită este chiar cea mai simplă formă
a sa. Pe lângă convertor A/N, un SAD mai conţine şi circuite de condiţionare a semnalelor (programabile,
sau nu). Un SAD este caracterizat de rezoluţia conversiei, numărul de canale analogice de intrare, rata de
eşanţionare/canal, rata de transfer a SAD, posibilităţi de condiţionare a semnalelor de intrare, etc.
SAD monocanal (fig. 12.2.) are doar o singură intrare analogică asimetrică, sau diferenţială; sub for-

Fig. 12.3. SAD multicanal cu multiplexare numerică şi eşantionare simultană.

ma cea mai simplă, poate fi doar un convertor A/N şi o interfaţă minimală. Blocul de condiţionare reali-
zează funcţii cum ar fi: atenuare/amplificare programabilă, compresie expandare, axare fixare etc. Cu ex-
cepţia scalării (atenuare/amplificare), toate celelalte operaţii se pot realiza numeric. Circuitul de eşantio-
nare şi memorare (SHC) asigură menţinerea constantă a semnalului pe durata conversiei. Rezoluţia şi rata
conversiei impun alegerea convertorului A/N şi a circuitelor de comandă.
SAD multicanal cu multiplexare numerică (fig. 12.3.) constă din mai multe SAD monocanal ce pot
funcţiona atât independent, cât şi corelat prin comenzi adecvate, furnizate de o logică de control. Se pot
prelua semnale în fază, până la frecvenţe de eşantionare apropiate de cele permise de convertoare. O struc-
tură similară este avantajoasă în sistemele de transmitere la distanţă a informaţiei convertite; în acest caz
multiplexarea se face în camera de control.
SAD multicanal cu multiplexare analogică şi eşantionare simultană (fig. 12.4.) este utilizat în apli-
caţii de viteză medie, unde se cer date achiziţionate în fază. Convertorul trebuie să aibă o viteză suficientă
pentru a prelua valorile memorate de circuitele de eşantionare şi memorare fără ca acestea să se altereze
semnificativ. Dezavantajul costului mai ridicat al convertorului A/N (mai rapid) este compensat de faptul
că se utilizează doar un singur circuit. Deoarece este posibil ca procesorul (sau programul de achiziţie) să
nu fie suficient de rapid, aceste sisteme de achiziţie utilizează memorii tampon ce sunt încărcate sub con-
trolul logicii proprii (cu ajutorul unui secvenţiator cablat). Ulterior, eşantioanele sunt preluate din aceste
memorii prin program sau via DMA. În momentul actual mai multe firme produc sisteme de achiziţie cu
multiplexare analogică şi eşantionare simultană integrate. Un astfel de circuit este MAX 155/156, SAD de
8 biţi care este interfaţabil direct cu microprocesoare sau microcontrolere, este configurabil software, are
8 canale de intrare şi o viteză medie (cca. 3,6 s/eşantion); circuitul, realizat în tehnologie monolitică, este
produs de firma MAXIM.
111
Instrumentaţie virtuală Mircea GORDAN

Fig. 12.4. SAD multicanal cu multiplexare analogică şi eşantionare simultană.


SAD multicanal cu multiplexare analogică şi eşantionare secvenţială (fig. 12.5) reprezintă o simpli-
ficare a celui precedent şi poate fi utilizat acolo unde nu interesează corelaţia temporală a semnalelor de la
intrările analogice. Pentru a ridica viteza de achiziţie, în timp ce eşantionul unui canal este convertit, mul-
tiplexorul selectează următorul canal. Logica de control asigură secvenţierea corectă a operaţiilor de eşan-
tionare, conversie şi multiplexare, permiţând şi furnizarea unor informaţii de stare corespunzătoare.
Selecţia canalului se poate face software sau cu o logică suplimentară de autoscanare. Acest tip de
SAD este foarte răspândit, datorită unui bun raport performanţă/cost şi a faptului că pot fi realizate mai
multe clase de aplicaţii în cele mai diverse domenii. Practic majoritatea firmelor producătoare de circuite
pentru măsură şi control produc astfel de sisteme de achiziţie; în [19] sunt descrise circuitele MAX
180/181, care reprezintă un SAD multicanal (8/6 canale) cu multiplexare analogică şi eşantionare secven-
ţială, complete, de 12 biţi, interfaţabile direct cu microprocesoare sau microcontrolere, configurabil ca-
blat şi cu o viteză de conversie de 100 kHz.

Fig. 12.5. SAD multicanal cu multiplexare analogică şi eşantionare secvenţială.

112
Instrumentaţie virtuală Mircea GORDAN

Fig. 12.6. SGDA multicanal cu distribuire numerică.

12.3. Sisteme de generare a datelor (SGDA).


Un SGDA are drept scop furnizarea semnalelor electrice necesare comenzii elementelor de execuţie
pentru controlul unui proces. Un SGDA este caracterizat de: rezoluţia semnalelor de ieşire, numărul ca-
nalelor analogice, rata de generare, timpul de stabilire pe fiecare canal, etc.
SGDA cu distribuire numerică (fig. 12.6.) conţine câte un convertor numeric-analogic (CNA) pe fi-
ecare canal şi o logică numerică, ce asigură distribuirea eşantioanelor numerice în registrele (BAi), asocia-
te fiecărui CNA. Dacă momentul schimbării datelor de ieşire trebuie să fie acelaşi pentru toate canalele se
prevede un tampon suplimentar (BBi) pentru fiecare canal, iar încăr-carea se face simultan (prin comenzi
în fază). Schemele cu două tampoane sunt utile şi la comunicarea la distanţă a semnalelor analogice. Fil-
trele de ieşire (Fi) au rolul de netezire; dacă rata de generare este constantă, filtrele sunt fixe; în caz con-
trar filtrele trebuie să fie acordabile.
SGDA cu distribuire analogică (fig. 12.7.) folosesc circuite de eşantionare şi memorare pentru reţi-
nerea valorii analogice a ieşirii până la înscrierea unui nou eşantion. Este necesar ca baleierea ieşirilor să

Fig. 12.7. SGDA multicanal cu distribuire analogică.

113
Instrumentaţie virtuală Mircea GORDAN
se facă rapid, pentru a permite ”reîmprospătarea” memoriilor analogice (condensatorii circuitelor de eşan-
tionare şi memorare); din acest motiv, această operaţie se realizează hardware. Datorită scăderii preţului
de cost al convertoarelor N/A, prima soluţie s-a impus în majoritatea sistemelor de măsură şi control ac-
tuale; avantajul evident al acesteia este simplitatea comenzii şi adaptarea simplă la structurile de calcul
bazate pe microprocesoare sau microcontrolere. Există SGDA multicanal în variantă monolitică, produse
de o serie de firme specializate în circuite de măsură şi control; în [19] este descris circuitul MAX547,
care conţine 8 convertoare N/A de 13 biţi cu ieşire de tensiune.

12.4. Tehnici de interfaţare.


Realizarea unor configuraţii de măsură şi control complexe ridică probleme de interconectate deo-
sebite. Se cunosc două soluţii cu largă răspândire [20]: conectarea directă (internă) pe magistrala calcula-
torului şi conecta-rea externă printr-o inter-faţă de comunicaţie standardizată (RS-232, RS-422, IEE-488).
Conectarea internă (fig. 12.8.) prezintă o serie de avantaje: viteza mare datorită conectării sistemului di-
rect pe magistrala calculatorului gazdă, preţ de cost şi gabarit mic; dezavantaje majore ale acestei metode
constau în sensibilitatea la zgomote (prin deplasarea interfeţei în interiorul unui mediu zgomotos) şi difi-
cultatea achiziţiei de date la distanţă. Conectarea externă (fig. 12.9.) prezintă următoarele avantaje: poate
fi configurat un sistem oricât de complex; subsistemul de achiziţie poate fi plasat la distanţă (cât mai
aproape de locul de prelevare al mărimilor de
măsurat); subsistemul de achiziţie poate fi in-
terfaţat practic cu orice tip de calculator; dez-
avantajul principal îl constituie preţul de cost
mai ridicat. Se constată că soluţia internă stă
la baza tuturor sistemelor de măsură şi control
inteligente, inclusiv cele ce folosesc comuni-
carea externă, deoarece acestea din urmă im-
pun un protocol complex şi o gamă largă de
prelucrări, imposibil de realizat fără procesor
local pe a cărui magistrală să fie plasate com-
ponentele SAD şi SGDA.
Tehnicile de interfaţare reunesc totalita-
tea soluţiilor hardware şi software de interco-
nectare a subansamblurilor unui sistem de
măsură şi control, astfel încât acestea să func- Fig. 12.8. Conectarea internă a unui sistem
ţioneze într-o manieră coordonată şi compati- de achiziţie de date.
bilă. Diverse firme [20] realizează module integrate de achiziţie şi generare de semnal, cât şi pachete de
programe destinate utilizării acestora.
Există patru metode de interfaţare în conectarea SAD şi SGDA pe magistrală; aceste metode se aleg
în funcţie de performanţele şi costul sistemului după cum se va prezenta în continuare.
Bucla programată (fig. 12.10.) este cea mai
simplă metodă, utilizabilă în toate sistemele simple
unde se cer rate de conversie scăzute (1..5kHz), şi
nu foarte precise. Controlul conversiei şi al ratei es-
te software (fig. 12.10.b). Iniţierea conversiei se fa-
ce prin program, cu o instrucţiune OUT, a cărei de-
codificare produce impulsul SC, aplicat direct con-
vertorului A/N. Sfârşitul său este testat citind, tot
prin program, un registru de stare cu o instrucţiune
IN, a cărei decodificare produce impulsul ST , ce
deschide (pe durata citirii stării), un tampon 3-State
între linia EOC şi magistrala de date. La trecerea
EOC = 1, datele convertite trec în registrul RAD de
Fig. 12.9. Conectarea externă a unui sistem de unde se pot citi cu o instrucţiune IN, a cărei decodi-
achiziţii de date. ficare generează impulsul AD ; aceasta deschide
114
Instrumentaţie virtuală Mircea GORDAN

a)
Legendă
DCD - Decodor de adrese
.
R/W Logic - Logică de
citire/scriere
DB - Tampon magistrală de date
RDA - Registru de ieşire
RAD - Registru de intrare
CNA - Convertor numeric -
analogic
CAN - Convertor analog -
numeric
SC - Începerea conversiei
EOC – Sfârşitul conversiei

Fig. 12.10. Interfaţarea în


buclă programată: hardware
(a.) şi organigrama achizi- b)
ţiei de date (b.) .
ieşirile registrului RAD pe magistrala locală de date, de unde sunt direcţionate pe magistrala sistemului cu
microprocesor prin tamponul DB.
Schema din fig.12.10.a este completată cu un convertor N/A, a cărui comandă se realizează extrem
de simplu, prin instrucţiunea OUT de trimitere a valorii eşantionului către CNA; decodificarea acestuia
produce impulsul DA ce determină încărcarea datelor într-un registru de memorare (RDA) până la o nouă
înscriere realizată similar.
Imposibilitatea stabilirii unei rate de conversie constituie principalul dezavantaj al metodei de inter-
faţare descrise; buclele de întârziere obţinute prin program sunt puţin confortabile şi instabile (depind de
particularităţile hardware ale sistemului).
Utilizarea întreruperilor (fig. 12.11.) permite controlul precis al conversiei prin folosirea unui con-
tor/temporizator programabil, TIM, (de exemplu, 8253), responsabil de iniţierea conversiilor la nivele de
timp izocrone (impulsurile generate de TIM la ieşirea 01 sunt aplicate la intrarea SC a convertorului A/N).
Sfârşitul fiecărei conversii (EOC) nu mai este testat prin program, ci este trimis spre sistem ca cerere de
întrerupere (IntrA), ce va activa secvenţa de program asociată. Ca şi în cazul anterior, încheierea conversi-
ei antrenează trecerea EOC în 1, simultan cu încărcarea datelor în registrul de date RAD, de unde acestea
vor fi citite în rutina de tratare a întreruperii (cu o instrucţiune IN, a cărei decodificare generează impulsul
AD de deschidere a ieşirilor registrului RAD pe magistrala locală de date). Astfel se pot obţine uşor rate
de conversie precise (TIM e pilotat de un oscilator cu cuarţ), deşi destul de scăzute (5…10kHz).
Dacă în sistem există convertoare N/A, acestea pot fi controlate într-o manieră asemănătoare, folo-
sind un alt canal al circuitului TIM. Prin program se înscriu datele în registrul RDA, iar actualizarea ieşirii
CNA se face prin trecerea lor din RDA în RDB, sub acţiunea impulsurilor produse de ieşirea 02 a circui-
tului contor/ temporizator. Simultan, se generează o întrerupere către sistem (IntrB), care activează o ruti-

115
Instrumentaţie virtuală Mircea GORDAN
nă de înscriere a unui nou eşantion în RDA, astfel încât următorul impuls, produs de TIM, va găsi datele
pregătite pentru actualizare.

Legendă RDA - Registru intermediar


DCD - Decodor de adrese RDB - Registru de ieşire
R/W - Logică de citire/scriere RAD - Registrul de intrare
DB - Tampon magistrală de date CNA - Convertor numeric - analogic
TIM - Timer programabil CAN - Convertor analog - numeric
Fig. 12.11. Interfaţarea prin întreruperi cu generator de rată de conversie.

Acest tip de interfaţare este extrem de utilizat datorită preţului de cost scăzut la care se poate obţine
achiziţia (sau generarea) de date. Singurul dezavantaj al metodei prezentate constă în gradul mare de ocu-

Legendă RAD - Registru de intrare (CAN)


AMUX - Multiplexor analogic RDA - Registru intermediar (CNA)
SCN - Numărător de scanare RDB - Registru de ieşire (CNA)
SHC - Circuit de eşantionare şi memorare CAN - Convertor analog – numeric
TIM - Timer programabil CNA - Convertor numeric - analogic

Fig. 12.12. Interfaţarea combinată DMA/întreruperi.

pare al procesorului la rate de conversie ridicate (aceasta consumă prea mult timp în rutinele de tratare a
116
Instrumentaţie virtuală Mircea GORDAN
întreruperilor), ceea ce conduce la scăderea randamentului sistemului sau la necesitatea utilizării unor mi-
croprocesoare rapide.
Accesul direct la memorie (DMA) se realizează fără controlul direct al procesorului (fig. 12.12.);
dialogul convertor-memorie este asigurat de controlerul DMA, care este capabil să coordoneze singur
tranzacţiile pe magistrală; metoda se pretează la rate de conversie medii şi izocrome (10…100kHz). Ca şi
în cazul precedent, un timer programabil (TIM) va genera impulsurile precise de iniţiere a conversiilor
(01), Sfârşitul fiecărei conversii (EOC) este trimis spre sistem ca cerere de acces direct la memorie, adre-
sată controlerului DMA. Ca şi în cazurile anterioare, la sfârşitul conversiei (EOC) trece în 1, simultan cu
încărcarea datelor în registrul de date RAD, de unde acestea vor fi trimise direct în memoria sistemului
sub controlul circuitului DMA. Cu o logică suplimentară, interfaţa descrisă poate lucra şi prin întreruperi,
modul de lucru putând fi selectat prin program.
Convertoarele N/A pot fi controlate folosind aceeaşi tehnică. Fiecare ciclu de acces la memorie, de-
clanşat de ieşirea 02 a circuitului contor/temporizator, va aduce un nou eşantion în RDA. Acelaşi impuls
determină şi actualizarea ieşirii CNA prin transferul datelor din RDA în RDB. Se observă că această ope-
raţie se desfăşoară cu un ”pas înapoi”: fiecare eşantion obţinut la ieşirea convertorului N/A reprezintă da-
tele depuse în ciclul DMA anterior.
Metoda de interfaţare descrisă este performantă şi relativ ieftină. Ea reclamă doar existenţa unui
controler DMA în sistem (o serie de microprocesoare înglobate dispun de suport DMA încorporat), ofe-
rind rate precise şi destul de ridicate, în condiţiile unui randament bun al întregului sistem (procesorul nu
mai este încărcat cu operaţiile de transfer a datelor ci numai cu iniţializarea circuitelor timer şi DMA).
Utilizare unui tampon local FIFO permite realizarea unor rate de conversie ridicate (0,1…10 MHz),
prin preluarea cu ajutorul unui automat local, a eşantioanelor, într-o memorie locală rapidă cu capacitate
suficient de mare pentru a stoca o cantitate semnificativă de date; la umplerea parţială a tamponului (de
obicei la jumătate) se generează o cerere de transfer către sistem, timp în care cealaltă porţiune a tampo-
nului continuă să se umple; tehnica este constituită sub numele de transfer cu tampoane duble. În general,
această metodă se asociază cu interfaţa prin DMA.

117

S-ar putea să vă placă și