194
UNIVERSITATEA VASILE ALECSANDRI DIN BACAU FACULTATEA DE INGINERIE ABABEI STEFAN PAVEL DANIEL ACHIZITIA SI PRELUCRAREA DATELOR NOTE DE CURS INDRUMAR DE LABORATOR BACAU 2012

Curs Si Indrumar Apd

Embed Size (px)

DESCRIPTION

Curs algoritmi paraleli si distribuiti

Citation preview

UNIVERSITATEA VASILE ALECSANDRI

DIN BACAU FACULTATEA DE INGINERIE

ABABEI STEFAN PAVEL DANIEL

ACHIZITIA SI PRELUCRAREA DATELOR

NOTE DE CURS INDRUMAR DE LABORATOR

BACAU 2012

Descrierea CIP a Bibliotecii Naţionale a României ABABEI, ŞTEFAN Achiziţia şi prelucrarea datelor / Ababei Ştefan, Pavel Daniel ; ref. şt.: prof. dr. ing. Rotar Dan, prof. dr. ing. Culea George. - Bacău : Alma Mater, 2012 Bibliogr. ISBN 978-606-527-209-5

I. Pavel, Daniel II. Rotar, Dan (coord.) II. Culea, George (coord.)

004

Consilier editorial Elena Nechita

3

CUPRINS

PARTEA I CURS CAPITOLUL I PRINCIPII DE REALIZARE A SISTEMELOR DE ACHIZITII DE DATE 7 1.1. Placi de achizitie “plug-in” 7 1.2. Sisteme de achizitie de date externe 8 1.3. Sisteme de timp real 9 1.4. Instrumente discrete 9 1.5. Sisteme de achizitie de date hibride. 10 CAPITOLUL II SISTEME DE ACHIZIŢIE DE DATE 10 2.1. Structura sistemelor de achiziţie de date 10 2.1.1. Senzori 11 2.1.2. Elemente de condiţionare a semnalelor 12 2.1.3. Calculatorul (PC) 13 2.1.4. Software-ul de achiziţie 13 2.1.5. Hardware de achiziţie 14 2.1.5.1. Intrări analogice 15 2.1.5.2. Ieşiri analogice (AO) 20 2.1.5.3. Intrări-ieşiri numerice (DIO) 22 2.1.5.4. Intrări de temporizare (Timere) 22 2.2. Plăci de achiziţie 22 2.2.1. Placa de achiziţie PC-LPM-16 22 2.2.1.1 Conectarea plăcii 23 2.2.1.1.1. Conectarea semnalelor de intrare analogică 24 2.2.1.1.2. Conectarea semnalelor digitale de intrare-ieşire 25 2.2.1.1.3. Conectarea semnalelor de temporizare sincronizare contorizare 26 2.2.1.2. Operare 29 2.2.1.2.1. Circuitele de interfaţă PC canale intrare/ieşire 30 2.2.1.2.2. Circuitele de intrare analogice şi achiziţie de date 31 2.2.1.2.3.Circuitele de intrare ieşire digitale 32 2.2.1.2.4. Circuitele de temporizare 34 2.2.2. Caracteristici tehnice pentru placa de achiziţie NI 6221 35 2.2.2.1.Intrări analogice 36 2.2.2.2. Ieşirile analogice 36 2.2.2.3. I/O Digitale 37 2.2.2.4. Caracteristici generale pentru contoare/temporizatoare 38 2.2.3. Caracteristici ale plăcii DAQ 6214 40 2.2.3.1. Caracteristici tehnice 40 2.2.3.2. Programare 40 CAPITOLUL III CONVERTOARE ANALOG NUMERICE ŞI NUMERIC ANALOGICE 43 3.1. Structura generală a unui voltmetru numeric 43 3.2.Convertor analog numeric cu aproximări succesive 44 3.3. Convertoare numeric analogice 46

4

3.3.1. Convertoare analog-numerice având sursă de referinţă o tensiune 47 3.3.1.1. CAN cu tensiuni ponderate 48 3.3.1.2 CNA cu divizoare resistive 49 3.3.1.3. CNA Cu reţea rezistivă derivaţie 49 3.3.1.4. CNA cu rezistoare în scară 51 3.3.2. CNA având drept sursă de referinţă un curent 52 3.3.2.1. CNA cu sursă de curenţi ponderaţi 52 3.3.2.2.CNA cu curenţi de referinţă de valoare unică. 53 3.3.2.3. CAN cu rezistoare în scară inversată 54 3.4. Convertoare analog numerice cu tensiune de comparaţie variabilă 55 3.4.1. Voltmetre digitale cu rampa în trepte 55 3.4.2. Voltmetre cu trepte egale şi sistem de urmărire 56 3.5.Convertoare numeric analogice indirecte 57 3.5.1.Convertoare cu generator de tensiune liniar variabilă 57 3.5.2. Convertoare cu dubla integrare 59 3.5.3. Convertoare cu conversie tensiune-frecvenţă 62 3.6. Corecţia automată a convertoarelor analog numerice. 63 3.6.1. Corecţia automată a tensiunii de decalaj. 63 3.6.2 Corecţia automata a câştigului 64 CAPITOLUL IV NOTIUNI DE BAZA ALE LIMBAJULUI GRAFIC LABVIEW 65 4.1.Principii de programare în LABVIEW 65 4.2. Fereastra panou (panel) 67 4.2.1. Bara de comenzi 67 4.2.2. Fereastra de control 68 4.2.2.1. Elementele de intrare-ieşire de tip şir 69 4.2.2.2. Elementele de intrare-ieşire de tip tablou şi grupare de date 70 4.2.2.3. Elemente de intrare ieşire pentru fişiere de date 71 4.2.2.3.1. Tipuri de fişiere de date 73 4.2.2.3.2.Controale şi indicatoare de tip cale fişier path. 73 4.2.2.4. Alte elemente de intrare ieşire 74 4.3. Fereastra cu unelte de uz general 75 4.4. Fereastra diagramă 76 4.4.1. Nodurile 77 4.4.2.1. Elemente de tip structuri 78 4.4.2.1.1. Structura de tratare secvenţială 79 4.4.2.1.2. Structura de tratare opţională 70 4.4.2.1.3. Structura repetitivă for 80 4.4.2.1.4. Structura de control repetitiv While Loop 81 4.4.2.1.5. Structura formule de calcul 82 4.4.2.1.6. Variabile locale 83 4.4.2.1.7. Variabile globale 83 4.4.2.2. Alte elemente ale ferestrei de funcţii 83 4.4.2.2.1. Elemente de tip aritmetic 83 4.4.2.2.2. Elemente de tip constante 84 4.4.2.2.3. Elemente de tip trigonometric şi logaritmic 85 4.4.2.2.4. Elemente de tip logic 85

5

4.4.2.2.5. Elemente de tip şir de caractere 86 4.4.2.2.6. Elemente de tip vectori şi matrice 87 4.4.2.2.7. Elemente de comparare 88 4.4.2.2.8. Elemente de tip control dialog şi timp 90 4.4.2.2.9. Controlul erorilor 91 4.4.2.2.10. Elemente de tip fişiere intrare ieşire 91 4.4.2.2.11. Elemente de programare necesare controlului unei

conumicaţii paralele din sublista GPIB 92 4.4.2.2.13.Instrumente virtuale de control a transmisiei seriale 92 4.4.2.2.14. Instrumente virtuale pentru controlul placii de achiziţie 92 4.4.2.2.15. Elemente ale listei ANALYSIS 93 4.4.2.2.16. Simboluri de instrumente virtuale create ca exemple 94 4.4.2.2.17. Fereastră pentru alegerea elementelor diverse 95 4.5. Programarea canalelor de intrare analogice 95 4.5.1. Funcţii de achiziţii pentru programare de nivel redus 96 4.5.2. Funcţiile pentru programarea de nivel mediu 97 4.5.3. Funcţiile de achiziţie pentru programare de nivel înalt 99 4.5.4. Programarea contorilor 8253 104

Partea II Indrumar de laborator

Laborator nr. 1. Introducere în limbajul LabVIEW 107 Lucrarea 2. Controale şi indicatoare 114 Lucrarea 3. Elemente de tip structuri 1 123 Lucrarea 4. Elemente de tip structuri 2 127 Lucrarea 5. Utilizarea variabilelor de tip şir , tablou şi structură. 132 Lucrarea 6. Lucrul cu fişierele 139 Lucrarea 7. Programarea canalelor analogice de intrare 145 Lucrarea nr. 8. Programarea canalelor de ieşire analogice 155 Lucrarea nr. 9. Programarea canalelor digitale de intrare ieşire 159 Lucrarea nr. 10. Programarea contorilor 163 Laborator nr .11. Placa de achiziţie PC-LPM-16 170 Laborator nr .12. Placa de achiziţie NI 6221 181 Lucrarea 13. Măsurarea tensiunii cu Placa NI 6221 187 Lucrarea 14.Programarea canalelor de intrare iesire digitala ale placii NI 6221 in 190 Labview 7.1 BIBLIOGRAFIE 193

6

7

PARTEA I. CURS

CAPITOLUL I

PRINCIPII DE REALIZARE A SISTEMELOR DE ACHIZIŢII DE DATE

Dezvoltarea tehnicii de calcul şi a reglărilor numerice a impus realizarea unor mijloace de măsurare care să permită cuplarea directă a informaţiei referitoare la mărimea măsurată la calculatorul numeric. S-au realizat astfel dispozitive – numite în continuare plăci de achiziţie date – care permit cuplarea la calculatorul numeric a informaţiilor referitoare la mărimile de măsurat şi care pot fi incluse direct în cadrul unor sisteme de reglare numerice fiind prevăzute atât cu posibilităţi de măsurare cât şi cu posibilitatea de a transmite semnale de comandă la procesul reglat, semnale care pot fi semnale logice sau analogice. Principalul producător mondial de astfel de mijloace este National Intrument, firmă care a dezvoltat şi medii de programare specifice plăcilor de achiziţie produse, ceea ce permite programarea la nivel înalt a acestora; mediul de programare cel mai cunoscut şi utilizat este LABVIEW, firma punând la dispoziţia utilizatorilor o multitudine de aplicaţii specifice. Se poate vorbi de două mari categorii de astfel de plăci de achiziţie: plăci de achiziţie plug-in – sunt plăci se montează pe slot-urile standard ale calculatoarelor; la ora actuală majoritatea plăcilor sunt de tip PCI plăci de achiziţie care se montează în exteriorul calculatorului; acestea se pot conecta la calculator prin intermediul interfeţelor standard (interfaţa paralelă sau portul USB) Vom prezenta în continuare principalele caracteristici ale sistemelor de achiziţie dotate cu astfel de plăci. 1.1. Placi de achizitie “plug-in” Ca si placile video, modem-uri sau alte tipuri de placi destinate calculatorului, si placile de achizitie se monteza intr-un slot din placa de baza a calculatorului. Astazi, in marea lor majoritate, placile sunt de tipul PCI (Peripheral Component Interconnect), vechea generatie pe bus ISA (Industry standard Architecture) fiind pe cale de disparitie. Aceasta categorie de placi ofera un numar mare de canale de intrare (intre 8 si 64), viteza ridicata de achizitie (in general, aceasta se situeaza sub 1250Mhz), sensibilitate destul de buna pentru masurarea semnalelor mici, rezolutie de 12..16 biti si un pret relativ mic de cost. Principalele caracteristici ale plăcilor de acest tip sunt : - Metoda computerizata relativ ieftina pentru masurari si control. - Viteza mare de achizitie (100kHz…1 GHz). - Disponibile in multiple configuraţii cu funcţii specializate. - Performante excelente pentru majoritate domeniilor. Zgomotul electric din interiorul calculatorului limitează totuşi măsurările sensibile. - Domeniile de intrare limitate la ±10 V.

8

1.2. Sisteme de achizitie de date externe Alternativa a sistemelor de achizitie plug-in, aceste sisteme externe ofera un numar ridicat de intrari/iesiri intr-un mediu mult mai bine protejat la zgomote electromagnetice si o mai mare versatilitate de modelare la diverse cerinte. Astazi, aceste sisteme iau adesea forma unor solutii stand-alone de testare si masurare orientate in special catre aplicatiile industriale. Aceste aplicatii cer mai mult decat poate oferi un PC cu placi de achizitie incorporate. Sistemele moderne externe de achiziţie de date oferă: Sensibilitate mare pentru semnalele de nivel mic; Aplicabilitate mare pentru diferite tipuri de senzori; Aplicabilitate pentru aplicatii de timp real; Ca si sistemele plug-in, sistemele de achizitie externe au nevoie de prezenta unui calculator pentru prelucrarea si stocarea datelor. Acesta se monteaza direct in rack-ul sistemului de achizitie de date. Cele cateva tipuri de arhitecturi folosite pentru sistemele de achizitie externe folosesc rackuri industriale standardizate. Anumite sisteme includ si module dotate cu microprocesor care suporta toate facilitatile unui PC obisnuit: tastatura, mouse, monitor si porturi de comunicatie. Principalele caracteristici ale acestor plăci sunt : - Număr mare de sloturi - Mediul din interiorul sistemului este mai puţin afectat de zgomotele electromagnetice decât sistemele de achiziţie interne (plug-in), ceea ce permite măsurarea unor semnale de nivel mic - Utilizarea interfetelor standard de comunicatie(IEEE-488, RS 232, USB, FireWire, Ethernet) înlesnesc achiziţiile de date la distante mari, o mai bună conectivitate între sistemele de achiziţie şi legarea lor la calculatoare non PC - Sistemele dotate cu microprocesor dedicat şi memorie pot realiza controlul în timp real asupra procesului sau funcţiona independent de prezenţa unui PC - Arhitectura modulară standardizată oferă o varietate mare de funcţii de măsura şi control - Din cauza necesităţii unei carcase, a arhitecturii modulare, a accesoriilor, costul efectiv pe canal de măsura este ridicat 1.3. Sisteme de timp real Un loc aparte in locul sistemelor de masurare si control este ocupat de asa numitele sisteme de timp real. In general,acestea sunt sisteme de masura autonome, dotate cu procesor si sistem de operare dedicat. Aceste procese se preteaza a fi rulate mult mai bine pe sisteme externe dacat pe un sistem PC dotat cu placa de achizitie. Desi Microsoft Windows a devenit sistemul standard de operare pentru calculatoarele PC, acesta nu este un sistem determinist si nu poate garanta un raspuns predictibil in cazul unor masurari si procese de control critice. De aceea solutia este de a lega PC-ul la un sistem ce poate functiona autonom si care garanteaza un anumit timp de reactie la aparitia unor stimuli externi.

9

1.4. Instrumente discrete La inceputuri, aceste instrumente electronice de test constau adesea dintr-un aparat de masura cu o singura intrare si sursa de alimentare. De-a lungul anilor, datorita progresului tehnologic in design, fabricatie si in tehnologii de masurare s-au extins posibilitatile si domeniile instrumentelor de masura. Aparitia unor noi instrumente ca scannere, multiplexoare, calibratoare, counter timere, nanovoltmetre, micro-ohmmetre si altele au facut posibila crearea sistemelor de testare bazate pe controlul microprocesorului, sisteme ce ofera o sensibilitate si rezolutie excelenta. Anumite sisteme de acest tip pot prelucra informatia doar pe maxim cateva canale de intrare ceea ce duce la un pret per canal ridicat. Prin adaugarea unei matrici sau a unor scanere acest pret poate fi micsorat, permitand unui singur instrument de precizie sa prelucreze informatia de mult mai multe canale de intrare. Aceste instrumente pot fi de asemenea conectate la un sistem PC-placa de achizitie. Principalele caracteristici ale acestor instrumente sunt : - Domeniile de masura si sensibilitate sunt in general mult peste cele oferite de sistemele plug-in sau de cele externe - Folosesc interfate de comunicatie standard (IEEE 488, RS232, FireWire, USB ) care permit achizitionare de date de la mare distanta si compatibilitatea cu calculatoare non IBM - In general sunt mai lente decat sistemele de achizitie plug-in - Mult mai scumpe decat sistemele standard de achizitie de date Se preteaza foarte bine la masurarea temperaturilor, tensiunilor, curentilor, rezistentelor, inductantelor, etc. Apar probleme la anumiti senzori specializati ori la anumite conditionari a semnalelor de intrare 1.5. Sisteme de achizitie de date hibride. Recent aparute, aceste sisteme dezvoltate in tehnologia sistemelor de achizitie de date externe combina un instrument discret gen multimetru digital interfatabil cu cateva functii caracteristice sistemelor de achizitie de date plug-in, forma finala fiind tipica pentru un instrument compact. Functiile tipice includ masurarea tensiunii si al curentilor continui si alternativi, masurarea temperaturii, frecventei precum si facilitati pentru controlul proceselor. Caracteristicile acestor sisteme de achiziţie sunt : - Domeniile de masura, rezolutie si sensibilitate caracteristice unui instrument de masura digital, superioare sistemelor de achizitie de date standard. - Au ecrane digitale, caracteristice instrumentelor digitale. Rezolutia unui instrument de masura digital este cuprinsa intre 18 si 22 biti si chiar se depasesc aceste valori in anumite cazuri. - Au memorie interna ce le permit stocarea anumitor cantitati de date masurate - Utilizeaza interfate standard de comunicatie ceea ce le permite legatura cu sisteme non PC. - Capacitate limitata de sloturi libere - In general sunt mai lente decat sistemele de achizitie interne sau externe.

10

CAPITOLUL II

SISTEME DE ACHIZIŢIE DE DATE

Achiziţia de date poate fi definită ca procesul de obţinere de date de la o sursǎ externǎ sistemului de calcul. În general achiziţia de date se realizează în urma procesului de măsurare a unor parametri, în cadrul sistemelor de supraveghere şi conducere a proceselor industriale; deoarece simpla măsurare şi înregistrare a datelor nu mai satisface cerinţele sistemelor de conducere, s-au impus funcţii multiple pentru sistemele de achiziţie de date, şi anume:

Convertirea fenomenului fizic în mǎrime ce poate fi mǎsuratǎ Preluarea semnalelor generate de senzori în scopul extragerii de informaţii Analiza datelor şi prezentarea lor într-o formǎ utilizabilǎ Gnenerarea semnalelor de commandă a elementelor de execuţie din cadrul buclelor

de reglare cuplate cu sistemul de achiziţie

2.1. Structura sistemelor de achiziţie de date Pentru a asigura îndeplinirea funcţiilor menţiionate anterior, sistemele de achiziţii sunt incluse în cadrul sistemelor de măsurare utilizate în supravegherea şi conducerea proceselor a căror structură este prezentată în figura.2.1.

Principalele elemente din cadrul unui sistem de achiziţie sunt impuse de funcţiile

prezenmtate anterior ale sistemului de achiziţie. Vom prezenta ăn continuare principalele caracteristici şi funcţii ale elementelor sistemelor de achiziţie cu referire la structura generală prezentată în figura 2.1.

2.1.1. Senzori

Senzorii, şi traductoarele în care aceştia sunt incluse, au rolul de a prelua informaţia primară referitoare la mărimile măsurate (achiziţionate) din sistem, mărimi

Fig. 2.1. Structura generală a unui sistem de achiziţie date

11

care sunt în general de natură neelectrică şi de a converti această informaţie într-o mărime de natură electrică. O primă problemă care apare la funcţionarea acestora este cea legată de sursa energiei necesară funcţionării senzorului; energia aceasta poate fi preluată de la mărimea măsurată sau de la o sursă externă de energie; rezultă de aici o primă clasificare a senzorilor în funcţie de mărimea măsurată:

- senzori pentru mărimi generatoare, la care sursa de energie a senzorului este mărimea măsurată - în acest caz este necesar ca raportul dintre energia preluată de senzor de la mărimea de măsurat şi energia totală a acestei mărimi să fie cât mai mic, astfel încât aceasta să nu fie modificată în cursul procesului de măsurare

- senzori pentru mărimi parametrice, la care sursa de energie a senzorului este o sursă exterioară

O altă posibilă clasificare a senzorilor şi traductoarelor se poate face după mărimea de ieşire furnizată. În funcţie de acest criteriu senzorii se pot clasifica în:

- senzori digitali - senzori care pot avea ca ieşiri mărimi de tip logic (tot sau nimic) sau senzori care au incluse convertoare astfel încât ieşirea reprezintă o valoare numerică proporţională cu mărimea de măsurat (mulţimea valorilor reprezintă o submulţime a numerelor întregi)

- senzori analogici – la care mărimea de ieşire este o mărime analogică (de obicei tensiune sau curent) care poate lua valori pe un subdomeniu al numerelor reale Cea mai importantă clasificare este determinată de natura mărimii fizice pe care senzorul o poate măsura; Cum mărimile fizice măsurate sunt foarte diverse rezultă şi o mare varietate de tipuri de senzor: senzori pentru mărimi neelectrice - senzori de temperatură, de presiune, de debit, etc., - şi senzori pentru mărimi electrice – de curent, de tensiune, etc.. În mod obişnuit senzorul este inclus într-un traductor a cărui structură este prezentată în figura 2.2.

Elementele ce caracterizează un traductor şi pe baza cărora se pot compara între ele 2 traductoare (deci elementele ce trebuie luate în considerare atunci când alegem un traductor sau altul) sunt:

1) Natura fizică a mărimi de intrare (y) şi a mărimi de ieşire (r). 2) Puterea consumată la intrare şi cea transmisă la sarcină.

Fig. 2.2. Structura generală a unui traductor

12

3) Caracteristica statică exprimabilă prin dependenţa în regiuni statice r = f(y)

4) Caracteristica dinamică exprimă comportarea în regim dinamic şi rezultă din ecuaţia diferenţială ce leagă variaţia în timp a mărimii de ieşire cea de intrare :

F(r, r′, r′′, …, r(n), y′, y′′, …, y(n)) = 0

De cele mai multe ori ne interesează comportarea la o mărime standard de intrare sau caracteristicile de frecvenţă, mai ales dacă elementul are o comportare tip filtru.

5) Pragul de sensibilitate reprezintă limita inferioară a variaţiei mărimi de intrare sesizată cu certitudine de către traductor. Atunci când acesta este raportat la domeniu de măsură exprimă rezoluţia (puterea de rezoluţie).

6) Gradul de precizie (Clasa) este raportul dintre eroarea maximă admisibilă a mărimi de ieşire care se produce în regim staţionar de funcţionare şi domeniul ei de măsurare, exprimat în procente.

7) Nivelul de zgomot (zgomotele interne şi externe) al traductorului trebuie să fie cât mai redus pentru a nu influenţa deciziile sistemului în care traductorul este element primar.

Trebuie remarcat că semnalul de ieşire al traductorului poate fi:

- semnal pe curent - de obicei în plaja 0-20mA sau 4-20mA (varianta 4-20mA eliminǎ problemele de conectare) curentul se va transforma in tensiune înainte de conversie, folosind un rezistor de înalta precizie (0.01 – 0.03%) – ales în funcţie de Uintrare permis de placa de achiziţie pentru medii zgomotoase.

- Semnal pe tensiune - în funcţie de amplitudinea ieşirii: o dacă amplitudinea semnalului este mai mică de ordinul mV, va fi

amplificat; o dacă depǎşeşte gama permisǎ la intrare de placa de achiziţie (±10V), se

va folosi o reţea rezistiva de divizare frecvenţa de achiziţie: sǎ permitǎ achiziţia pe frecvenţa maximǎ de eşantionare

2.1.2. Elemente de condiţionare a semnalelor

Elementele de condiţionare a semnalului trebuie să asigure: - compatibilizarea semnalului furnizat de senzor (traductor) cu hardware-ul de

achiziţie şi în acelaşi timp să asigure parametrii energetici necesar transmiterii semnalului de la elementul primar la hardware-ul de achiziţie;

- eliminarea (reducere) perturbaţiilor şi zgomotelor ce pot apărea la transmiterea semnalelor;

- izolarea liniei de transmisie; - multiplexarea semnalelor obţinute de la elementele primare. Ca urmare elementele de condiţionare vor conţine amplificatoare de tensiune,

atunci când semnalul furnizat de elementul primar este mai mică de 100mV sau divizoare de tensiune atunci când semnalul furnizat de elementul primar depăşeşte limitele admisibile ale semnalului analogic ale hardware-ului de achiziţie.

13

Pentru eliminarea (reducerea) semnalelor perturbatoare şi a zgomotelor, elementele de condiţionare au în componenţă filtre analogice: - filtre trece jos pentru semnale ce variază lent - filtre antialising pentru semnale cu variaţii bruşte Izolare liniei de transmisie are ca scop: - eliminare tensiuni tranzitorii înalte - eliminarea situaţiilor când potenţialul de masă pentru hardware-ul de achiziţie şi senzor sunt diferite. Necesitatea multiplexării apare atunci când se realizează transmiterea semnalelor obţinute de la senzori grupaţi, aflaţi relativ departe de hardware-ul de achiziţie; costurile legate de transmisia semnalelor vor fi mai mici şi vor justifica utilizarea multiplexorului. În principiu, un multiplexor transmite pe rând, pe o singură linie, semnale analogice primite simultan pe mai multe ieşiri; se realizează astfel o eşantionare a semnalelor analogice înainte de transmiterea acestora. Pentru a nu afecta rezultatele măsurătorii este necesar ca viteza de variaţie a semnalelor multiplexate să fie mult mai mică decât frecvenţa de lucru a multiplexorului, astfel încât pe intervalul de timp dintre transmiterea a două eşantioane succesive ale aceluiaşi semnal acesta să poată fi considerat constant. Trebuie remarcat că în acest fel este afectată şi frecvenţa maximă cu care se poate face achiziţia de date.

2.1.3. Calculatorul (PC) Structura unui sistem PC inclus într-un sistem de achiziţie este similară unui

calculator de uz general. Ca urmare acesta va conţine procesor, memorie, bus-uri pentru transfer date, CLK, spaţiu disc, DMA, 8259. etc. PC-ul va constitui şi gazda soft-ului de aplicaţie necesar atât achiziţionării datelor cât şi elaborării comenzilor către sistem. La unitatea centrală vor fi cuplate periferice standard sau specifice de comunicare cu operatorul uman (monitor, tastaură, imprimantă, mose, etc.)

2.1.4. Software-ul de achiziţie În soft-ul de achiziţie sunt incluse drivere specifice elementelor hard incluse în

sistemul de achiziţie şi programe de aplicaţie. Soft-ul reprezintă interfaţa logică între hardware şi utilizator, ca în figura

Driverele controlează funcţionarea elementelor componentelor hardware ale sistemului de achiziţie şi au funcţiile:

- citeşte/scrie date de la placǎ - controlează frecventa de achiziţie - integrează achiziţia cu resursele PC (Întreruperi, DMA, memorie) si sistemele

de condiţionare

Fig. 2.3. Componenţa soft-ului de achiziţie şi poziţionarea acestuia

14

- acces la multiple IN/OUT pe placa - acces la mai multe plǎci

Software-ul de aplicaţie controlează achiziţia şi prelucrarea specifică a datelor, elaborarea şi transmiterea comenzilor pentru elementele de execuţie, prezentarea acestora către operatorul uman şi realizează: - gestionare date - afişări grafice - prelucrǎri.

2.1.5. Hardware de achiziţie

Hardware-ul de achiziţie are ca principală sarcină compatibilizarea informaţiei obţinute de la elementele primare de măsură cu calculatorul numeric şi cuplarea cu acesta, precum şi transmiterea comenzilor elaborate de sistemul de calcul pe baza informaţiilor furnizate către elementele de execuţie. Partea hardware a sistemului de achiziţie este constituită din plăci de achiziţie date, plăci ce pot fi montate pe slot-urile calculatorului sau pot fi externe şi cuplate cu calculatorul pe interfeţele standard (interfaţa paralelă standard, USB, et.). Principalele caracteristici ale plăcilor de achiziţie ce trebuie avute în vedere la alegerea unei plăci de achiziţie sunt:

- Intrări analogice (AI) - Ieşiri analogice (AO) - Intrări numerice (DI) - Ieşiri numerice (DO) - Intrări de temporizare (Timere) 2.1.5.1. Intrări analogice Numărul şi domeniul de variaţie al tensiunilor analogice cu care poate opera un

sistem de achiziţie diferă mult şi constituie un criteriu de definire a performanţelor sistemului de achiziţie.

Structura generală a hardware-ului de achiziţie este prezentată în figura 2.4.

Fig. 2.4. Structura generală a hardware-ului de achiziţie

15

Utilizarea unui singur convertor analog-numeric (soluţie eficientă pentru procese lente în comparaţie cu soluţiile cu convertor pentru fiecare variabilă din proces) impune prezenţa multiplexorului analogic. Multiplexorul facilitează conectarea cu o frecvenţă fixă în cele mai multe cazuri, convertorului analog-numeric la fiecare sursă de semnal apriori prelucrat primar. Multiplexoarele analogice realizate cel mai frecvent cu elemente semiconductoare realizează la comandă conectarea (prin comutare) a fiecărei ieşiri a blocului de prelucrare primară la intrarea convertorului analog-numeric. Selectarea punctului dorit are loc pe baza adresei indicate de regulator sau obţinute prin incrementarea celei anterioare. Amplificatorul inclus în structura interfeţei permite adaptarea impedanţelor circuitelor de intrare cu cea a elementului de eşantionare şi reţinere. Cu ajutorul acestui amplificator se asigură amplificarea semnalelor de semnal redus în gama (1-1000). În cadrul multor interfeţe factorul de amplificare este ajustabil în funcţie de nivelul semnalului de intrare. Comanda factorului de amplificare se poate realiza prin program sau printr-un proces de autoadaptare (pentru a se obţine utilizarea cu rezoluţie maximă a convertorului analog-numeric). Elementul de eşantionare-reţinere reprezintă o memorie analogică păstrând valoarea semnalului de intrare la momentul eşantionării. Utilizarea unui singur convertor analog-numeric presupune memorarea analogică pe durata conversiei a semnalului analogic aferent canalului de intrare indicat de către regulator. Acest semnal trebuie să fie stabil pe durata conversiei analog-numerice. Schema de principiu a unui element de eşantionare şi reţinere este prezentată în figura 2.5.. Funcţionarea acestui element are loc în două etape importante: obţinerea informaţiei prin intermediul comutatorului şi memorarea informaţiei cu ajutorul condensatorului CM şi a amplificatorului A. Cerinţele de performanţă ce stau la baza proiectării unui asemenea element sunt: timpul de obţinere şi de memorare şi precizia de reţinere a informaţiei.

Pentru conversia semnalelor sunt utilizate numeroase forme de convertoare analog-numerice realizate prin integrare, care - în cea mai mare parte - utilizează în scopul conversiei metoda aproximaţiilor succesive. În acest scop sunt necesare: un convertor numeric-analogic, un registru ce memorează valorile ce aproximează succesiv valoarea numerică a semnalului convertit şi o logică de comandă. Între multe aplicaţii s-au realizat convertoare cu microprocesoare. Viteza de conversie depinde de rezoluţia necesară, de viteza de lucru a microprocesorului şi de lungimea cuvântului acestuia

Fig. 2.5. Schema de principiu a unui element cu eşantionare

16

Precizia şi viteza de achiziţie sunt principalii indici de performanţă ce sunt urmăriţi în cazul unei conversii analog numerice; precizia este determinată în mod esenţial de numărul de biţi al convertorului analog numeric. Cele mai noi structuri de interfeţe pentru semnale analogice folosesc structuri integrate de achiziţii cu convertoare pe 12 biţi, 16 biţi şi chiar 24 biţi. În aceste condiţii se pot realiza viteze de achiziţie de ordinul microsecundelor şi o precizie foarte ridicată determinată esenţial de convertorul analog-numeric. Frecvenţa maximă de achiziţie pe un singur canal analogic este determinată de frecvenţa maximă de lucru a plăcii de achiziţie; aceasta începe de la 105 Hz şi se apropie de ordinul 1012Hz pentru plăcile de achiziţie performante. În cazul în care sistemul de achiziţie este dotat cu un singur convertor analog numeric, achiziţia pe mai multe canale se realizează prin citirea şi conversia pe rând a canalelor

citite, ca în figura 2.6. În acest caz frecvenţa de eşantionare pe un canal este determinată de frecvenţa maximă de eşantionare a plăcii şi numărul de canale pe care se face achiziţia:

canalenrf

f placapermiseesantionar

maxmax = (2.1)

În cazul în care placa de achiziţie este dotată cu mai multe CAN se realizează o eşantionare simultană (sample&hold), frecvenţa maximă de eşantionare fiind aceeaşi indiferent de numărul de canale pe care se realizează achiziţia (fig. 2.7)

Tensiunea analogică achiziţionată poate fi mono sau bipolară cu domeniu de variaţie limitat în general la ±10V.

1 2 1 Perioada eşantionare

… n

ts

Fig. 2.6. Eşantionare continuă pe mai multe canale

Fig. 2.7. Eşantionare simultană

1

2

1 Perioada eşantionare

n

2

n

17

Ca potenţial de referinţă a semnalelor conectate la placa de achiziţie se poate utiliza masa plăcii sau un potenţial oarecare. Din punct de vedere al modului de conectare a tensiunilor pe canalele analogice se pot distinge: - conectare directă, atunci când potenţialul de referinţă pentru toate semnalele analogice achiziţionate este unic; - conectare diferenţială când potenţialele de referinţă sunt diferite pentru fiecare canal.

În cazul conectării directe masa surselor este legată la masa plăcii, numărul maxim de canale de achiziţie fiind egal cu numărul de canale analogice de intrare al plăcii.

În funcţie de potenţialul de referinţă al plăcii (masa plăcii) conectarea simplă poate fi:

- conexiune de tip Referenced Single Ended – în cazul că masa plăcii este izolată (nu este conectate la masa clădirii)

- conexiune de tip Nonrefernced Single Ended – în cazul că masa plăcii este conectată la masa clădirii Conectarea directă se utilizează pentru tensiuni cu valori mai mari de 1V, în cazul în care perturbaţiile şi zgomotele pe liniile de transmisie nu sunt foarte mari (linii scurte) În cazul în care semnalele achiziţionate au valori mici (sub 1V) sau în cazul în care liniile de transmisie sunt lungi şi zgomotoase se utilizează conexiunea diferenţială. În acest caz numărul de canale pe care se poate face

achiziţia se reduce la jumătate, pentru fiecare semnal fiind utilizate două canale de intrare analogică ca în figura 2.8.

Conversia analog-numerică a unei tensiuni (sau în caz general a oricărei mărimi) constă în determinarea unui număr D, care să reprezinte valoarea numerică a mărimii, număr obţinut printr-un procedeu de comparaţie, conform relaţiei:

Ux=DUr (2.2) unde D≤1, iar ur este mărimea de referinţă cunoscută cu mare precizie. Numărul D poate fi reprezentat în orice cod (zecimal, hexazecimal, binar), dar majoritatea convertoarelor folosesc codificarea binară, datorită utilizării elementelor binare şi a compatibilităţii cu calculatoarele numerice. În acest caz D va avea semnificaţia:

D=∑=

−n

i

iia

12 (2.3)

unde ai poate lua valoarea 0 sau 1, iar valoarea maximă a lui D se obţine pentru ai=1 pentru orice i şi anume:

D=∑=

−− −=n

i

ni

1212 (2.4)

şi deci valoarea maximă care poate fi măsurată (care determina domeniul de bază ) este:

Umax=(1-2-n)Ur (2.5)

A0

A8

Fig.2.8. Conectarea diferenţială semnalelor analogice de intrare

18

Două valori consecutive ale lui Ux diferă prin: q=2-nUr (2.6)

q numindu-se cuanta procesului de discretizare şi reprezentând eroarea absolută cu care este valabilă relaţia ux=DUr. Rezoluţia convertorului este egală cu cuanta procesului, adică:

nnVVq22

=∆

= (2.7)

Se defineşte eroarea cuantificare ca diferenţă dintre semnalul real şi semnalul cuantificat. În figura 2.9. este figurat m0dul în care măsurătoarea este afectată de eroare de cuantificare Observaţii: - Caracteristica reala aproximează caracteristica ideală pentru n foarte mare - Pentru V >> q, eroarea de cuantificare nu afectează mult rezultatul - Erorile de cuantificare sunt neglijabile dacă amplitudinea semnalului măsurat este mult

mai mare decât q Alte caracteristici care definesc performanţele convertoarelor sunt

- Acurateţea care descrie cât de apropiate sunt valorile citite de cele reale (corectitudine rezultat). Acurateţea se exprima ca procent din 1 LSB unde: 1 LSB = saltul în tensiune pe intrare care evidenţiază creşterea cu 1 codului numeric Astfel, de fapt o placă de achiziţie funcţionează cu mai putini biţi (Ex: ±0.5LSB si 12 biti → 11 biti) Acurateţea se îmbunătăţeşte folosind un factor de amplificare (gain) adecvat care reduce plaja de valori citite (apropiata de cea reală)

0

3 4

1

5

2

6 7

cod

q V

-0.5LSB

0.5LSB

Uanalogica

Eroare cuantificare

Uanalogica

Fig. 2.9. Afectarea rezultatului de eroarea de cuantificare

19

gainVU ∆

=∆ (2.8)

- Precizia care descrie exactitatea rezultatului în absenţa unei referinţe (gradul de împrăştiere a valorilor) şi care este influenţatǎ de numǎrul de biţi . Modul în care este afectat rezultatul măsurătorii prin conversie analog numerică de carcateristicile menţionate este figutar în figura (2.10)

Caractersitici temporale

• Întârziere în urmǎrire (eşantionare) = intervalul de timp dintre start eşantionare şi începerea eşantionarii propriu-zise

• Timp aperturǎ = intervalul de timp de comutare în circuitul eşantionare – memorare pentru trecerea din regimul eşantionare în regimul memorare

• Timp stabilire la memorare = intervalul de timp necesar ca oscilaţiile tranzitorii sǎ scadǎ sub o anumitǎ valoare

• Timp conversie • Timp revenire = intervalul de timp de comutare în circuitul eşantionare –

memorare pentru trecerea din regimul memorare în regimul eşantionare • Timp stabilire = intervalul de timp necesar ca amplificatorul sǎ se adapteze

la comutarea de la un canal la altul; acesta duce la apariţia unor erori la frecvenţe mari ceea ce face de fapt ca la scanare multicanal:

canalenrffesant .max<

Diafonie = variaţia tensiunii pe durata regimului de memorare (cauza: variaţia semnalului) Caracteristici convertor:

Incorect Imprecis

Incorect Precis

Corect Imprecis

Corect Precis

Fig. 2.10. Afectarea rezultatului măsurătorii de către acurateţe şi precizie

20

• Rezoluţie ngainVq

2⋅∆

=

• Gama de valori = intervalul de tensiuni pe care placa le poate prelucra • Lǎţime de cod (1 LSB) = salt în tensiune necesar pentru a creşte codul numeric

cu 1

• Lǎţime de cod idealǎ = ngainV

2max ⋅∆ - nu este mereu garantată

• Neliniaritaţi diferenţiale = cele mai mari deviaţii de la lăţimea de cod ideală, exprimate ca procent din 1LSB (ex: ±0.5LSB) se referă la diferenţa dintre caracteristica reală şi ideală (scara cu trepte neuniforme)

2.1.5.2. Ieşiri analogice (AO) Interfeţele pentru semnalele analogice permit implementarea comenzilor elaborate de către programul de aplicaţie implementat pe calculatorul numeric.

Utilizarea elementelor de execuţie analogice impun prezenţa convertorului numeric-analogic. În structura interfeţei de ieşire analogice apare ca o necesitate prezenţa unor elemente de memorare analogice pentru a memora comanda sub formă analogică pe toată durata de timp pentru care aceasta rămâne constantă. Mai mult, se impune menţinerea comenzii la valoarea anterioară, chiar şi în cazul defectării regulatorului. Din acest punct de vedere se pot realiza interfeţe cu un singur convertor numeric-analogic (figura 2.11) şi interfeţe cu mai multe convertoare numeric-analogice, câte unul pentru fiecare canal de ieşire (figura 2.12).

Principalii parametrii ai sistemului de cuplare a regulatorului la elementele de execuţie analogice sunt: viteza maximă de variaţie a semnalului pe o ieşire, numărul de biţi transmişi la canal (rezoluţia) şi preţul interfeţei. Funcţiile interfeţei de ieşire sunt: -Transmiterea datelor de la regulatorul numeric la interfaţă prin intermediul blocului de comandă. Datele pot fi transmise paralel, când interfaţa este inclusă în

Fig. 2.11. Interfaţă ieşiri analogice cu un singur convertor

21

structura regulatorului, sau serial, în cazul în care interfaţa se află în câmp lângă elementul de execuţie.

-Memorarea informaţiei pe fiecare canal de conversie numeric-analogică. Informaţia care este transmisă pentru conversie pe un canal trebuie memorată pe un interval de timp determinat de două adresări prin program. Memorarea se poate face cu memorii analogice realizate cu amplificatoare operaţionale şi condensatoare în regim de memorie. Selectarea fiecărui canal se realizează cu ajutorul demultiplexorului analogic DMX (figura 2.11) sau cu ajutorul demultiplexorului numeric (figura 2.12). Memoria analogică asigură memorarea cu precizie limitată pe intervale reduse de timp între două adresări. În cazul utilizării mai multor convertoare se folosesc memorii tampon pe fiecare canal (figura 2.12). -Comutarea informaţiei pe mai multe canale de ieşire analogice, funcţie realizată prin intermediul demultiplexoarelor. Demultiplexarea se poate realiza prin metode analogice (figura 2.11) sau prin metode numerice (figura 2.12). Alegerea uneia dintre aceste două variante se face în funcţie de modul cum se realizează operaţia de memorare a informaţiei pe canalele de ieşire între două momente de adresare. -Reactualizarea informaţiei pe fiecare canal de ieşire, la diferite momente de timp de adresare. Interfaţa de ieşire poate transmite informaţia pe un canal analogic prin trei metode: secvenţial, simultan şi aleator. Alegerea uneia dintre aceste variante depinde de caracteristicile elementelor de execuţie utilizate şi de modul de rezolvare a problemelor enunţate anterior. Pentru sistemele de reglare numerică a proceselor tehnologice, având în vedere caracteristicile dinamice ale proceselor în raport cu fiecare canal de comandă, se alege metoda aleatoare de adresare prin program. Principalii indici ce definesc performanţele ieşirilor analogice sunt:

- Timpul stabilire reprezintă intervalul de timp dintre modificarea codului numeric şi stabilizarea valorii tensiunii de ieşire (în funcţie de acuratetea impusa)

- Rata de conversie reprezintă frecvenţa posibilǎ pentru a modifica semnalul de ieşire în scarǎ cu trepete de 1LSB

- Rezoluţia determinată de numărul de biţi ai CNA

Fig. 2.12. Interfaţă ieşiri analogice cu mai multe convertoare numeric analogice

22

2.1.5.3. Intrări-ieşiri numerice (DIO) Pentru majoritatea plăcilor de achiziţie date, funcţiile de ieşire şi intrare pentru canalele digitale pot fi programate. Ca şi elemente de intrare-ieşire digitale pot fi cuplate elemente de comandă şi semnalizare de tip logic (butoane de comandă, selectoare, lămpi de semnalizare, etc) dar şi informaţii numerice trimise pe canalele digitale. De obicei canalele de intrare-ieşire digitală sunt organizate în cuvinte de 8 biţi Canalele digitale de intrare şi ieşire sunt programabile pentru majoritatea plăcilor de achiziţie date. Principalele caracteristici de performanţă ce caracterizează canalele de intrare-ieşire digitală sunt: - număr linii digitale - viteza de generare/recepţionare date - tensiunea şi curentul pentru nivelul logic 0 (low) - tensiunea şi curentul pentru nivelul logic 1 (high)

2.1.5.4. Intrări de temporizare (Timere) Canalele aferente circuitelor de temporizare sunt utilizate pentru comanda circuitelor de contorizare/temporizare care de obicei utilizează contori implementaţi hard şi soft; aceste canale sunt utilizate pentru temporizări, contorizare de evenimente, generare de semnale, etc. Frecvenţa de ceas utilizată de circuitele de temporizare poate fi furnizată de clock-ul plăcii (ceas intern), ceasul calculatorului sau pot fi furnizate de un generator de ceas extern. Fiecare din soluţii au caracteristici specifice:

- folosind timer placa (clock intern): acurateţe bunǎ, programare simplificatǎ, frecvente mari de achziţie

- folosind timer CPU (clock software): acurateţe mai scǎzutǎ, programare mai greoaie, Hzf 500max ≈ .

- folosind clock extern: achiziţii de ratǎ scǎzutǎ şi neconstantǎ 2.2. Plăci de achiziţie

Vom prezenta în continuare caracteristicile tehnice şi modul de conectare al unor plăci de achiziţie utilizate în cadrul sistemelor de achiziţie date.

2.2.1. Placa de achiziţie PC-LPM-16 Face parte din categoria plăcilor de achiziţie care nu au canale de ieşire analogice şi este produsă de National Instruments. Principalele caracteristici ale acestei plăci sunt:

- 16 canale de intrare analogice la care se pot aplica tensiuni analogice în domeniile ±2,5V, ±5V, 0÷10V sau 0÷5V selectabile prin intermediul unor jumpere de pe placă

- frecvenţa maximă de eşantionare pe canalele analogice 50kHz

23

- 8 canale de intrare digitale care pot suporta semnale compatibile TTL prin care se poate testa starea unor dispozitive logice (comutatoare, întrerupătoare, etc.)

- 8 canale de ieşire digitală pe care se pot furniza semnale compatibile TTL şi prin care se pot comanda dispozitive externe;

- 3 contoare pe 16 biţi care suportă semnale compatibile TTL dintre care unul are un semnal de bază de timp de 1 MHz furnizată din placă.

- Tensiuni de alimentare furnizate de la PC: o +5Vc.c. (130mA) o +12Vc.c. (30mA)

- Conectare prin cablu flexibil cu 50 de pini - Condiţii de mediu pentru operare:

o Temperatura componentelor 0…700C o Umiditate relativă 5…90% fără condens

2.2.1.1 Conectarea plăcii

În figura 2.13 este prezentată dispunerea componentelor pe placă, iar în figura

2.14 este prezentat modul de dispunere al pinilor conectorului extern şi semnalele specifice fiecărui pin.

Fig. 2.14. Poziţionarea pinilor la conectorul I/O Fig. 2.13 Poziţionarea componentelor pe placa de achiziţie PCL-LPM-16

24

Semnalele conectate pe conectorul de intrare ieşire (I/O) au următoarea semnificaţie: - AIGND masa analogică; - ACH<0..15> canale de intrare analogice de la 0 la 15; - DGND masa digitală; - -12V tensiune de ieşire +12V maxim 5mA; - +12V tensiune de alimentare de +12V de la PC. Această linie are înseriată o

siguranţă fuzibilă de 0,5A; - DIN<0..7> linii de intrare digitale. DIN 7 reprezintă bitul cel mai

semnaificativ ; - DOUT<0..7> linii de ieşiri digitale. DOUT7 reprezintă bitul cel mai

semnificativ ; - OUT1* semnalul de ieşire al contorului 1 inversat; - EXTINT* semnal intrare întrerupere externă; - EXTCONV* intrare semnal extern de control pentru declanşarea conversiei

analog numerice - OUT0 ieşirea contorului COUNTER0 - GATE0 intrare de validare a contorului 0; - OUT1 ieşirea contorului COUNTER1; - GATE1 intrare de validare a contorului 1; - CLK1 intrare de contorizare pentru COUNTER1; - OUT2 ieşirea contorului COUNTER2; - GATE2 intrare de validare a contorului 2; - CLK2 intrare de contorizare pentru COUNTER2; - +5V tensiune de alimentare de la PC are conectată în serie o siguranţă de 1A; - DGND masă digitală

Observaţie: Semnalele notate cu * sunt active jos.

2.2.1.1.1. Conectarea semnalelor de intrare analogică În figura 2.15 este prezentat modul în care trebuie conectată o sursă de semnal la placa PC-LPM-16. Se va acorda atenţie conectării corecte a polarităţii în scopul evitării scurcircuitării ieşirii sursei.

25

2.2.1.1.2. Conectarea semnalelor digitale de intrare-ieşire Pinii de la 22 la 37 ai conectorului de intrare-ieşire sunt pini destinaţi conectării semnalelor digitale de intrare/ieşire. Pinii 22÷29 sunt destinaţi intrărilor iar pinii 29÷37 sunt destinaţi ieşirilor. Pinii 19 şi 50 sunt pini de masă digitală. Tensiunea maximă ce poate fi aplicată la intrările digitale este de +7V iar cea minimă de –0,5V. Semnalele de intrare digitale vor fi compatibile TTL, curentul absorbit fiind de 1µA. Semnalele de ieşire analogice sunt de asemenea compatibile TTL, valorile caracteristice de curent şi tensiune fiind: 8mA la VOH=2,7V 6mA la VOL=0,5V În figura 2.16 este prezentat modul de conectare a semnalelor digitale la portul de intrări digitale şi modul de conectare a semnalelor de ieşire analogice la portul de ieşiri digitale.

Fig.2.15. Conectarea semnalelor de intrare analogice

26

Intrările pot primi semnale compatibile TTL sau pot sesiza acţionarea unor comutatoare, în timp ce ieşirile pot comanda dispozitive externe (de exemplu un LED) aşa cum se observă în figura 2.16. Conectarea alimentării Pe pinul 49 al conectorul de intrare ieşire este conectată sursa de +5V iar pe pinul 20 sursa de +12V de la PC. Sursa de +5V şi +12V sunt protejate de siguranţe fuzibile de 1A şi respectiv 0,5A.

2.2.1.1.3. Conectarea semnalelor de temporizare sincronizare contorizare Pinii 38÷48 ai conectorului de intrare-ieşire sunt destinaţi conectării semnalelor de timp; acestea sunt dedicate celor trei circuite de contorizare MSM82C53 montate pe placă. Unul din aceste circuite (Counter 0) este destinat pentru sincronizarea achiziţiilor de date. Contorul 0 este utilizat pentru controlul intervalelor de eşantionare în timp a conversiei analog numerice. De asemenea semnalul EXTCONV* pentru conversii externe de timp. În figura 2.17 sunt prezentate cerinţele de timp pentru intrarea EXTCONV*. O conversie analog numerică este iniţiată pe frontul crescător al semnalului EXTCONV*. Datele acestei conversii sunt depuse intr-o memorie FIFO în timp de 20µs. Semnalul EXTCONV* este un semnal compatibil TTL.

Conexiuni generale de temporizare contorizare

Fig. 2.16. Conectarea semnalelor de intrare ieşire digitale

27

Semnalele de temporizare includ semnalele GATE, CLK şi AUT pentru cele trei contoare MSM 82C53, cu excepţia semnalului CLK al contorului 0 care nu este disponibil pe conectorul de intrare ieşire. Contoarele MSM 82C53 pot fi utilizate pentru aplicaţii diverse precum: generare de pulsuri şi semnale dreptunghiulare, contorizare de evenimente, măsurarea duratei impulsurilor, măsurarea frecvenţei, etc. Pentru aceste aplicaţii se realizează programarea contoarelor în diferite moduri prin intermediul semnalelor GATE şi CLK. Singura excepţie este contorul 0 care are un semnal de ceas intern la 1MHz. Generarea semnalelor de tip impuls şi dreptunghiulare se realizează prin programarea corespunzătoare a contoarelor, semnalul fiind furnizat la pinul OUT corespunzător contorului respectiv. Contorizarea evenimentelor prin programarea corespunzătoare a contoarelor astfel încât acestea să contorizeze fronturile crescătoare sau descrescătoare a

evenimentelor. Valoarea contorizată poate fi citită pentru a determina numărul fronturilor sesizate. Activarea sau dezactivarea contorului se poate realiza prin intermediul semnalului GATE. În figura 2.18. sunt prezentate conexiunile tipice pentru operaţii de contorizare a evenimentelor, semnalul GATE fiind comandat prin intermediul unui întrerupător care permite activarea sau dezactivarea contorului.

Fig. 2.17. Sincronizarea semnalului EXTCONV*

Fig. 2.18. Contorizarea evenimentelor cu controlul extern al semnalului GATE

28

Măsurarea duratei impulsurilor este realizată prin aplicarea pe intrare GATE a impulsului a cărei durată se măsoară (cu respectarea nivelurilor permise pentru acest semnal). Contorul este încărcat cu o valoare cunoscută iar pe intrarea CLK se aplică un semnal de frecvenţă cunoscută care decrementează contorul. Durata impulsului este egală cu diferenţa dintre valoarea înscrisă în contor şi cea citită în momentul în care

impulsul se sfârşeşte (semnalul GATE trece în 0) multiplicată cu perioada semnalului CLK aplicat. Măsurarea frecvenţei se realizează prin programarea semnalului GATE în nivel şi prin contorizarea numărului de fronturi descrescătoare a semnalului aplicat la intrarea CLK. Durata semnalului aplicat pe intrarea GATE este cunoscută; în acest caz, contorul este programat să contorizeze fronturile descrescătoare de pe intrare CLK cât timp semnalul GATE este aplicat. Frecvenţa semnalului aplicat la intrarea CLK va fi egală cu valoarea contorizată împărţită prin perioada semnalului GATE. În figura 2.19 sunt prezentate conexiunile tipice pentru măsurarea frecvenţei. În această aplicaţie, un al doilea contor poate fi utilizat pentru a genera semnalul GATE. Semnalele GATE, CLK şi AUT pentru contoarele 1 şi 2 sunt accesibile la conectorul de intrare/ieşire. În plus pinii GATE şi CLK sunt legaţi la sursa de +5V prin intermediul unor rezistenţe de 4,7kW. Figura 2.20 prezintă diagramele de semnal pentru semnalele de intrare GATE şi CLK şi pentru semnalul de ieşire OUT precum şi timpii specifici pentru un circuit MSM82C53.

Fig. 2.19. Conexiuni pentru măsurarea frecvenţei

29

Vom prezenta în continuare domeniile de tensiune ale semnalelor de intrare/ieşire specifice circuitelor MSM 82C53:

- Domeniul maxim de al tensiunii de intrare –0,5V la 7V - Tensiune de intrare pe nivel logic 1 (VIH) minim 2,2V - Tensiune de intrare pe nivel logic 0 (VIL) maxim 0,8V - Curent de intrare absorbit maxim ±10µA - Tensiune de ieşire pe nivel logic 1 (VOH) minim 3,7V - Tensiune de intrare pe nivel logic 0 (VOL) maxim 0,45V - Curent la ieşire pe nivel 1 logic maxim 1mA - Curent la ieşire pe nivel 0 logic maxim 4mA

Semnalele GATE şi AUT sunt validate pe fronturile crescătoare ale semnalului CLK.

2.2.1.2. Operare În figura 2.21 este prezentată schema bloc a plăcii PC-LPM-16 Principalele componente ale plăcii sunt:

- Circuitele de interfaţă calculator (PC) canale de intrare/ieşire; - Circuitele de intrare analogice - Circuitele de intrare/ieşire digitale; - Circuitele de intrare/ieşire de timp

tsc = perioada de ceas minim 125ns tpwh = nivel înalt ceas minim 60ns tpwl = nivel jos ceas minim 60ns tgsu = timp instalare semnal gate minim 50ns tgh = timp de oprire semnal gate minim 50ns tgwh= semnal gate pe nivel ridicat minim 50ns tgwl = semnal gate pe nivel jos minim 50ns toutg = întârziere a ieşirii faţă de semanlul GATE maxim 150ns toutc = întârziere a ieşirii faţă de semnalul CLK maxim 150ns Fig. 2.20. Diagrame de semnal pentru contoare

30

2.2.1.2.1. Circuitele de interfaţă PC canale intrare/ieşire Aceste circuite sunt constituite dintr-o magistrală de adrese, o magistrală de

Fig. 2.21. Schema bloc a plăci PC-LPM-16

Fig. 2.22 Schema bloc a circuitelor de interfaţă PC I/O

31

date, linii de întreruperi şi mai multe semnale de control cu circuitele aferente. Componenţa circuitelor de interfaţă este prezentată în figura 2.22 Circuitele constau din memorii pentru adrese, decodoare de adrese, bufere, circuite pentru controlul interfaţării pentru canalele de intrare/ieşire şi temporizare şi un circuit de control al întreruperilor.

Circuitele supraveghează liniile de adrese SA5 la SA9 pentru a genera semnale de validare a plăcii şi utilizează liniile SA0 la SA4 plus semnalele de timp pentru a genera semnalele de selectare a regiştrilor plăcii şi semnalele de citire/scriere. Buferele controlează direcţia transferului de date pe liniile de date bidirecţionale ţinându-se cont dacă transferul este de scriere sau citire. Circuitele de control a întreruperilor dirijează orice întrerupere validată pentru a selecta o linie de cerere de întrerupere. Cu cererea de întrerupere care este un semnal de ieşire tri-state, placa PC-LPM-16 poate împărţi liniile de întrerupere cu alte dispozitive. Sunt disponibile şase linii de cerere de întrerupere: IRQ3 la IRQ7 şi IRQ9. Placa PC-LPM-16 generează întreruperi în următoarele situaţii:

- Când poate fi citită o conversie analog-numerică de la FIFO; - Când este detectat un semnal activ pe nivel jos pe linia EXTINT*; - Când este detectat un front crescător la ieşirea contorului COUNTER 2. Fiecare di aceste întreruperi este validată şi ştearsă individual. 2.2.1.2.2. Circuitele de intrare analogice şi achiziţie de date

Placa PC-LPM-16 are 16 canale de intrare analogice cu conversie analog numerică pe 12 biţi. Utilizând circuitele de temporizare eşantionare, placa PC-LPM-16 poate multiplica automat conversiile. În figura 10.11 este prezentată diagrama bloc a circuitelor de intrare analogice şi achiziţie de date.

Circuitele de intrare analogice

Circuitele de intrări analogice sunt formate dintr-un multiplexor de intrare, un

jumper pentru selectarea amplificării, şi un convertor analog numeric pe 12 biţi plus bit

Fig. 10.11. Schema bloc a circuitelor de intrare şi achiziţie

32

de semn cu aproximări succesive. Cei 12 biţi plus 1(bitul de semn) sunt extinşi la 16 biţi înainte de a fi stocaţi pe memorie FIFO. Multiplexorul de intrare este un multiplexor analogic CMOS şi are 16 canale de intrare (notate de la 0 la 15). Utilizându-se jumperele W1 şi W2 de pe placă se pot selecta amplificări diferite şi prin urmare următoarele domenii de intrare: 0÷10V, ±5V, 0÷5V şi V. Atunci când o conversie analogic numerică este completă este emis un semnal de la ceasul analog numeric spre memoria FIFO. Memoria FIFO este o memorie de 16 cuvinte a 16 biţi. Această memorie serveşte ca memorie tampon pentru convertorul analog numeric pe 12 biţi şi are două mari avantaje:

- în primul rând, atunci când o conversie analog numeric este încheiată, valoarea numerică este salvată pe memoria FIFO pentru o citire ulterioară, iar convertorul analog numeric este liber pentru a efectua o nouă conversie;

- un al doilea avantaj este acela că memoria FIFO poate colecta 16 valori înainte de pierde vreo informaţie, aceasta oferind software-ului un timp suplimentar (egal cu 16 perioade de eşantionare) pentru a se cupla cu hardware-ul. Dacă sunt stocate mai mult de 16 valori în memoria FIFO fără ca aceasta să fie citită apare o condiţie de eroare numit FIFO Overflow, iar valoarea conversiei analog numerice este pierdută.

Memoria FIFO a convertorului analog numeric generează un semnal atunci când conţine o dată convertită numeric Starea acestui semnal poate fi citită din regiştri de stare ai plăcii.

Circuitele convertorului analog numeric includ circuite care fac posibile minimizarea erorilor de zero, de domeniu şi de liniaritate. Conversia analog numeric debutează cu un ciclu de auto calibrare sub control software care asigură reducerea erorilor de offset şi de amplificare.

Circuitele de timp aferente conversiei analog numerice În operaţiile de conversie analog numerică trebuie asigurate intervale de timp suficiente între două conversii succesive, intervale care sunt de fapt intervalele de eşantionare. Pentru asigurarea acestor intervale sunt prevăzute o serie de circuite de temporizare contorizare. Cu placa PC-LPM-16 se pot realiza două tipuri de achiziţii de date: achiziţii pe un singur canal şi achiziţii pe mai multe canale (baleiată). În cazul achiziţiilor multiple este utilizat un contor care asigură comutarea automată între intrările canalelor analogice în timpul achiziţiei de date. Circuitele de timp aferente achiziţiei de date generează şi controlează semnale care iniţiază achiziţia de date şi semnalizează diferite etape ale operaţiei. Sursa principală a acestor semnale este poziţionată pe placă, unul dintre cele trei contoare MSM82C53 de pe placă fiind destinat special acestui scop. O conversie analog numerică poate fi iniţiată de o tranziţie crescătoare a ieşirii contorului COUNTER 0 (OUT0) de placă sau de o tranziţie crescătoare a intrării EXTCONV*. Temporizarea intervalelor de eşantionare este asigurată de contorul cu decrementare pe 16 biţi căruia îi sunt aplicate impulsuri de la ceasul de 1 MHz al plăcii, generându-se intervale de eşantionare începând de la 2ms la maxim 65535ms. Atunci când contorul ajunge la 0 se generează un impuls şi se re încarcă cu valoarea

33

corespunzătoare intervalului de eşantionare; procesul se repetă până la o nouă programare a contorului. Numai contorul 0 este necesar conversiei analog numerice. Atunci când se face achiziţia unui număr de eşantioane, software-ul trebuie să urmărească numărul de treceri prin zero a valorii contorului şi să blocheze contorul 0 atunci când numărul trecerilor prin zero este egal cu numărul de eşantioane programate. În cazul achiziţiei pe un singur canal trebuie selectat canalul pe care se face achiziţia prin intermediul poziţionării corespunzătoare a bitului din registrul de comandă înainde de iniţierea achiziţiei. În acest fel setarea multiplexorului rămâne constantă de-a lungul întregului proces de achiziţie şi prin urmarea toate datele pentru conversia analog numerică sunt citite de pe un singur canal. În cazul achiziţiei pe mai multe canale se validează baleierea pe durata achiziţiei de date. Baleierea pe mai multe canale este controlată de un contor de baleiere care este decrementat în timpul achiziţiei datelor de la valoarea numărului de canale pe care se face achiziţia (înscrisă de programator) până la valoarea 0 şi apoi se repetă secvenţa. În acest fel la intrarea convertorului poate fi aplicat oricare sin canalele selectate; este necesar însă ca pe toate canalele să fie utilizat acelaşi domeniu de intrare. Viteza maximă de achiziţie este determinată de mai mulţi factori. În cazul achiziţiei pe un singur canal este determinată de durata conversiei la care se adaugă timpii necesari transmisiei şi reţinerii. În cazul achiziţiei de date pe mai multe canale, viteza de achiziţie este limitată şi de timpul de comutare al multiplexorului precum şi de timpii de lucru ai amplificatorului. Viteza maximă de eşantionare recomandată atât pentru achiziţia pe un singur canal cât şi pentru cea pe mai multe canale este corespunzătoare unei frecvenţe de eşantionare de 50kHz. În cazul domeniilor de intrare 0÷10V se recomandată o rată maximă de eşantionare de 45kHz. 2.2.1.2.3.Circuitele de intrare ieşire digitale

Placa PC-LPM-16 are 16 linii de intrare ieşire compatibile TTL. Pinii

Fig. 2.24 Schema bloc a circuitelor de intrare ieşire digitale

34

DIN<0..7> din conectorul de intrare ieşire sunt destinaţi liniilor de intrare digitală iar pinii DOUT <0..7> sunt destinaţi liniilor digitale de ieşire. Aceste linii sunt suprvegheate şi controlate de Registrul de Intrări Digitale şi respectiv de Registrul de Ieşiri Digitale. Citirea valorilor liniilor de intrare DIN<0..7> se face din Registrul de Intrări Digitale, iar înscrierea Registrului de ieşiri Digitale va determina starea liniilor de ieşire DOUT <0..7>. Dispozitivele externe pot controla semnalul EXTINT* pentru a semnaliza starea gata de transfer de date. Schema bloc a circuitelor de intrări ieşiri digitale este prezentată în figura 2.24 2.2.1.2.4. Circuitele de temporizare PCL-LPM-16 are în compunere trei contoare MSM82C53 dintre care unul singur (COUNTER 0) poate fi utilizat intern pentru sincronizarea achiziţiei de date. În figura 2.25 este prezentată schema bloc a circuitelor aferente celor trei contoare. Toate cele trei contoare pot fi programate să opereze în mai multe moduri de contorizare temporizare utilizând registrul de moduri al fiecărui contor. COUNTER 0 utilizează un generator de ceas de 1MHz obţinut din oscilatorul de 4MHz al plăcii. Baza de timp pentru COUNTER1 şi COUNTER2 trebuie furnizată extern la pinul 50 al conectorului de intrare ieşire.

Fiecare contor are două intrări – una de ceas (CLK) şi una de validare (GATE) - şi o ieşire OUT.

Fig. 2.25 Schema bloc a circuitelor de timp

35

2.2.2. Caracteristici tehnice pentru placa de achiziţie NI 6221 2.2.2.1.Intrări analogice Numărul de canale……………….....……………......8 diferenţiale sau 16 simple Rezoluţia ADC………………………………………………………..……16 biţi DNL…………………………………………………………….Fara cod garantat INL……………………………………….......refera la tabelul de acurateţe al AI

Viteza de eşantionare Maxim.…………………………………………………………….……..250 kS/s Minim…………………………………………………………..……………0 S/s Acurateţea temporizării….……………..………50ppm din viteza de eşantionare Rezoluţia temporizării……………………………………………….……...50 ns Intrările cuplate……….……………………………………………………….DC Domeniul intrărilor………………………….…………±10v, ±5V ,±1V, ± 0.2V Numărul maxim de volţi pentru intrările analogice (semnal+mod comun)…………………………………...….±11V AI GND CMRR(DC la 60hz)…………………………………………………………95dB

Impedanţa de intrare Dispozitiv on AI+AI GND…………………………..………….>10GΩ in paralel cu 100 pF AI-AI GND……………………………..………..>10GΩ in paralel cu 100pF Dispozitiv off AI+AI GND……………………………………………………...……….820Ω AI-AI GND………………………………………………………...……..820Ω Influenţa curentului de intrare……………………………………………±100pA

Interferenţa (la 100 kHz) Canale adiacente…………….………………..……………………………-75Db Canale neadiacente……………………………………………..…………..-90dB Semnal in banda scurta(-3dB)………………………………….…………700kHz Mărimea intrării FIFO………………………………..…………4,095 eşantioane Scanarea memoriei………………………………...………………..4,095 in total Transferuri de date …………...…………………..DMA ( imprastiere-strangere), întreruperi, programări I/O Protecţie pentru supraîncărcare (AI<0..79>,AI direcţia,AI direcţia 2) Dispozitiv on................….........…±25V cu dimensiunea nominala de 2 pini a AI Dispozitiv off……………….……±15V cu dimensiunea nominala de 2 pinii AI Curentul de intrare in timpul condiţiilor de sutpraîncărcare…………………..……………………...±20mA max/pinul AI Setările timpului pentru măsurătorile pe mai multe canale Acurateţea, scala si toate domeniile: ±90ppm/pas(±6LSB)……………………..………………4µs interval convertit ±30ppm/pas(±2LSB)…………………..…………………5µs interval convertit ±15ppm/pas(±1LSB)…………………...…………………7µs interval converti

36

Grafice de performanţă

2.2.2.2. Ieşirile analogice Numărul de canale NI 6221…………………………………………………………………………2 Rezoluţia DAC…………………………………………………………….16 biţi DNL…………………… ………………………………………….…….±1 LSB Monitorizare………………………………………………...……16 biţi garantat Rata maxima pentru updatare 1 canal…………………………………………………………..……833 kS/s 2 canale……………………………………………………....740kS/s pe canal 3 canale…………………………………………………..…..666kS/s pe canal 4 canale………………………………………………..……..625kS/s pe canal Acurateţea timpului……….…………....…...50 ppm pentru eşantionarea vitezei Rezoluţia in timp……………………………………………………...……50 ns Domeniul de ieşire……………………………………………………...….±10V Ieşirea cuplata…………………………………………………………...……DC Impedanţa de Ieşire…………………………………………………………0.2Ω Ieşirea curenta din dispozitiv……………………………………….……..±5mA Supraprotectia………………………………………………………...……±25V Curentul de supraîncărcare…...………………………………………...….10mA Starea de Power on…………………………………………………………±20V Puterea de distorsiune…………………………………8.5V vârf pentru 14,5 ms Mărimea ieşirii FIFO………………..…………...DMA ( imprastiere-strangere), I întreruperi, programări I/O

Modul de propagare a semnalelor pentru AO Forma undelor neperiodice Mod de regenerare a formei undelor periodic de pe placa prin metoda FIFO Regenararea periodica a formei undelor mulţimii circuitelor tampon inclusiv update-ul se face dinamic Timp de răspuns, scalare:

37

15 ppm(1LSB)…………………………………..6µs Viteza de creştere………………………………..15 V/ µs Energia de distorsiune Mărime……………………………………..100mv Durata……………………………………………2.6 µs

Calibrarea (AI si AO) Timp de încălzire recomandat…………………..15 minute Intervalul de calibrare…………………………...1 an

2.2.2.3. I/O Digitale

CARACTERISTICI STATICE Numărul canalelor Ni 6221(68-pini)…………………………………..…...24 total 8 (P0.<0..7> 16) (PFI<0..7>/P1, PFI<8..15>/P2) NI 6221(37-pini)………………….....…...10 total 2(P0.<0,1>) 8(PFI<0..7>/P1) Legătura la pamant………………………………………………………D GND Direcţia controlului…………………………………..Fiecare terminal individual Programabil ca si I/E Tracţiunea rezistorului…………………………..………………..50kΩ la 75k Ω Protecţia tensiunii la Intrare………………………………………………..±20V

Caracteristicile semnalelor (Doar pentru portul 0) Terminale folosite NI 6221 (68 pini)………………………..…………………….Port 0 (p0.<0..7>) NI 6221 (37-pini)……………………………………………...Port 0 (P0.<0,1>) Port/Mărimea eşantionului NI 6221 (68 pini)………………………......…cu dimensiunea nominala de 8 biţi NI 6221(37-pini)……………………....……..cu dimensiunea nominala de 2 biţi Generarea semnalului (DO) FIFO……………………..….……2,047 eşantioane Achiziţii semnalului (DI) FIFO………………………..………2,047 eşantioane Frecventa in baza de timp a eşantionului DO sau DI………………………………………………………..….de la 0 la 1 MHz DO sau DI sursa valorii reprezentative a unui semnal regulat …………….Orice PFI, RTSI, a eşantionului semnalelor analogice de intrare sau a convertirii semnalelor periodice,a eşantionului semnalelor analogice de ieşire şi a altor semnale

Funcţionarea PFI/Port1/Port2 Funcţionalitatea………………………..……………intrare digitala statica, ieşire digitala statica, temporizarea intrărilor si a ieşirilor Temporizarea sursei de ieşire……………………Multe intrări analogice, ieşiri analogice, Contoare, DI, DO, semnale temporizate Setările vibraţiei filtrului……………………….125 ns,6.425µs,2.54ms,tranzitii înalte si joase; selecţii pentru intrare

38

2.2.2.4. Caracteristici generale pentru contoare/temporizatoare Numărul de contoare/ temporizatoare…………………………………………..2 Rezoluţia …………………………………………………………………..32 biţi Măsurările contorului…………………………………Frontul contorului, pulsul, semiperioada, perioada, frontul de separare Măsurătorile poziţiei…………………………….……….X1,X2,X4, cvadratura, codificarea cu Canale Z reincarcate;2pulsuri codificate Ieşirea aplicaţiilor………………………………..impulsuri, sir de impulsuri cu updatare dinamica, divizarea frecventei, timpul echivalent eşantionului Baza interna a semnalului…………………...………..80MHz, 20MHz, 0,1MHz Baza externa a semnalului……………………………..…..intre 0 Hz si 20 MHz Precizia de baza a semnalului…………………………..,,,,,,,,,,,,,……….50 ppm Intrări………………………………………………pas, sursa, HW_Arm, Aux A,B,Z, Up_Down Alegerea cursului pentru intrări……………………Orice PFI, RTSI, PXI_TRIG, PXI_STAR, declanşator analogic multe semnale interne FIFO……………………………………………….………………..2 eşantioane Indici de transmitere……………………………Centru de colectare -dispersare a controlerului DMA pentru fiecare contor/temporizator ; întreruperea execuţiei funcţiilor de I/O

Generator de frecvenţă Număr de canale………………………………………………………………...1 Baza semnalului……………………………………………....10 MHz, 100MHz Divizori…………………………………………..………………….de la 1 la 16 Precizia de baza a semnalului………………………….………………...50 ppm Ieşirea poate fi utilizata pe fiecare terminal PFI sau RTSI Faza circuitului închis ( PLL) Referirea semnalului…………………….PXI_STAR, PXI_CLK10, RTSI<0..7> Ieşirea din PLL………………………………….Baza de timp 80 MHZ; alte semnale derivând de la timpul de baza 80 MHz incluzând 20 MHZ si 200 kHz in timpul de baza

Declensatoare externe de frecventa Sursa…………………………………………Orice PFI, RTSI, PXI_TRIG, PXI_STAR Polaritatea…………………………...…Selectabil pentru majoritatea semnalelor Funcţii analog de intrare……………………Start declanşare, pauza declanşare, semnal eşantion, baza de timp a semnalului eşantion. Funcţiile contoarelor/temporizatoarelor……….Pas, sursa, HW_Arm, Aux, A, B, Z, Up_Down

Generarea semnalului digital Funcţia (DO)……………………………………………………semnal eşantion Achiziţia semnalului digital Funcţia (DI)……………………………………..semnal eşantion

Magistrala dispozitivelor declanşatoare Dispozitive PCI………………….……………………….………….RTSI<0..7>

39

Dispozitive PXI………………………………….PXI_TRIG<0..7>, PXI_STAR Ieşirile selectate………………………………….Referentierea semnalului 10MHz ; Generarea frecventei de ieşire; mai multe semnale de ieşire ; Debouce dispozitiv de filtrare…………………...125 ns, 6,425µs, 2,54 ms, disponibil, tranziţie de frecventa joasa sau înalta selectabila pentru ieşire

Magistrala interfeţei PCI sau PXI………………………………………..semna de mediu 3,3V sau 5V Canale DMA……………………………………6 : intrare analog, iesire analog, intrare digitala, ieşire digitala, contor/ temporizator 0, contor/ temporizator 1

CERINŢE DE PUTERE Curentul din magistrala când nu este încărcata +5 V…………………………………………………...………………….0,02 A +3,3V……………………………………………….…………………...0,025 A +12 V ………………………………………………...…………………..0,15 A

Curentul din magistrala al AI si AO in condiţii de supratensiune +5 V………………………………………….………………...………….0,02 A +3,3V………………………………….……………………….………...0,025 A +12 V ………………………………...………….……………...………..0,15 A Putere disponibila pentru terminalul de +5V……max 1 A , pentru fiecare conector cu butonul de siguranţa de readucere Alte limite de putere Dispozitivul PXI………………………………..Curentul de la terminalele P0,PFI, P1, nu ar trebui sa depaseasca 2 A

CERINŢE FIZICE Dimensiunea regletei de contact pentru circuite de imprimare NI PCI- 6221……………………………..……9,7cm x 15,5 cm (3,8 in x 6,1 in) NI PXI- 6221………………………………………………...…Standard 3U PXI

Greutate NI PCI-6221(68 pini)..………………………………………..……92 g (3,2 oz) NI PCI-6221(37 pini)..………………………………………..……95 g (3,3 oz) NI PXI 6221 (68 pini).………………………………………..…….162g(5,7 oz) Conectori de I/O NI 6221(68 pini)……………………………………………....168 pini VHDCI NI 6221(37 pini)…………………………………...…………..137 pini D-SUB

TENSIUNEA MAXIMA DE LUCRU NI 6221 Canale la pamant……………………………………………………………11 V

Mediul Condiţii de temperatura…………………….…………………….intre 0 si 55 0C Temperatura de depozitare…………………………………..…de la 20 la 70 oC Umiditate……………………………………...intre 10 si 90% RH necondensare Altitudinea maxima………………………………………….…………...2000 m Grade de poluare(folosite doar in interior)………………………………..……2

40

SIGURANŢA IN FUNCŢIONARE

Acest produs este fabricat sa îndeplinească cerinţele pentru următoarele standarde de siguranţa pentru echipamentele electrice de măsurare , control folosite in laborator : - IEC 61010-1, EN 61010-1, - UL 61010-1 - CAN/CAS-C 22.2 No. 61010-1

COMPATIBILITATE ELECTROMAGNETICA Emisii……………………………………………EN 55011Clasa A la 10 m subansamblul peste 1 GHz Imunitate……………………………………………EN 61326 : 1997+A2 :2001, tabel 1 CE.C=Tick, si FFC Partea 15(clasa A) 2.2.3. Caracteristici ale plăcii DAQ 6214 2.2.3.1. Caracteristici tehnice

• 1 convertor A/D pe 12 biţi (AD7572)

rezoluţie mVV 88.4409620

=

• 8 AI bipolare, în gama ±10V, 6 externe (notate 0 – 5) si 2 interne (notate 6, 7) – de la cele 2 convertoare DA de pe placǎ

• 2 convertoare DA pe 12 biţi (AD7542), cu 2 AO bipolare în gama ±10V, rezoluţie 4.88mV

• 4 DI compatibile TTL • 4 DO compatibile TTL • 1 intrare codificata + 1 numǎrǎtor pe 12 biti (HCTL) pentru mǎsurare rotaţii

(valoarea numǎrǎtorului se incrementeazǎ/decrementeaza în functie de diferenta de fazǎ dintre cele 2 intrǎri ale numǎrǎtorului)

• • Instalare conectare

• adresa de bazǎ BADR – selectabilǎ prin jumpere pe una din valorile: • 200H, 210H, 220H, 230H, 300H

• spaţiu continuu de adrese - necesar de 16 octeti: BADR – BADR+15

2.2.3.2. Programare

Posedǎ 2 registri pe 8 biţi - registru HWARD – accesibil la scriere; adresa BADR (se va scrie codul operaţiei solicitate) - registru DATR – accesibil la scriere/citire; adresa BADR+3 (date) Procedura de lucru:

41

outportb(BADR, cod operaţie din HWADR) // scriere în HWADR outportb(BADR+3,date_char)

sau date_char=inportb(BADR+3) // scriere/citire în DATR HWADR Operaţia DATR

00H R Citire octet low A/D + start conversie A/D 01H R Citire octet high A/D 20H W Scriere la DA1, tetrada low, octet low 21H W Scriere la DA1, tetrada high, octet low 22H W Scriere la DA1, tetrada low, octet high 23H W Validare conţinut DA1 40H W Scriere la DA2, tetrada low, octet low 41H W Scriere la DA2, tetrada high, octet low 42H W Scriere la DA2, tetrada low, octet high 43H W Validare conţinut DA2 60H R Citire intrǎri digitale şi stare conversie A/D:

D7 D6 D5 D4 D3 D2 D1 D0 ADW=0 (conv A/D gata) ADW=1 (conv A/D în curs)

DI3 DI2 DI1 DI0

80H R Reset HCTL 88H R Citire octet high HCTL 89H R Citire octet low HCTL A0H W Scriere ieşiri digitale şi cod MUX

D7 D6 D5 D4 D3 D2 D1 D0 Cod selectie MUX

0 - 7 DO3 DO2 DO1 DO0

Conversii A/D (prin interogare) - selecţie canal MUX: scrie A0H în HWADR si apoi scrie cod numar canal in DATR (biti D6,D5,D4) - start conversie: scrie 00H în HWADR si apoi citeşte DATR - test sfârşit conversie: scrie 60H în HWADR si apoi citeşte DATR (pânǎ D7=ADW=0) - citeşte octet high: scrie 01H în HWADR si apoi citeşte DATR - citeşte octet low: scrie 00H în HWADR si citeste DATR

Observaţii:

42

placa nu conţine timer, deci se va folosi clock software pentru sec2mTesant > .

Intrarea analogicǎ cititǎ este:

numericcodVnumericcodVV _00488.010_40962010 ⋅+−=⋅+−

VV

VqV

10002048

10104095

−→→

≈−→

• Conversii D/A scrie, pe rând tetradele : TLOL, THOL, TLOH (în aceastǎ ordine) declanşeazǎ conversie + validare conţinut D/A: scrie 43H/23H în HWADR si apoi scrie 00H în DATR Observaţii:

Codul numeric asociat ieşirii produse este: • )75.2042048int( AO⋅+

• 010

20480409510

→−→→

VVV

• Citire intrǎri digitale • scrie 60H în HWADR si apoi citeşte DATR (biţi D3 D2 D1 D0)

• Scriere ieşiri digitale • scrie A0H în HWADR si apoi scrie DATR (biţi D3 D2 D1 D0) – atentie MUX!!

43

CAPITOLUL III CONVERTOARE ANALOG NUMERICE ŞI NUMERIC

ANALOGICE

3.1. Structura generală a unui voltmetru numeric Afişarea numerică a tensiunii măsurate rezolvă problema erorilor de citire, dar implică o conversie analog-numerică. Deşi mărimea care se pretează cel mai bine conversiei analog-numerice este tensiunea continuă, prin conversia corespunzătoare la intrarea, aparatele digitale au devenit aproape universale putând măsura tensiuni şi curenţi în curent continuu, tensiuni şi curenţi în curent alternativ, frecvenţă şi impedanţe, etc.). Un avantaj al aparatelor numerice este acela că pentru manevrarea lor nu este necesară o specializare a personalului, ele având un mod de utilizare simplu şi o capacitate de supraîncărcare de până la 100% din valoarea afişată. Schema generala a unui voltmetru digital este prezentată în figura 3.1. Blocul de intrare cuprinde amplificatoare şi divizoare de tensiune, eventual un

bloc de selecţie automată a domeniului, filtre şi eventual convertoare intermediare de intrare, atunci când nu se măsoară în c.c. Gamele de măsurare sunt în general în raport 1/10/100/1000 etc.

Gama de bază a voltmetrului este de 0-1V sau 0-10V; pentru gama de bază amplificatorul din blocul de intrare are factorul de amplificare 1, iar impedanţa de intrare este cea mai mare (de ordinul GΩ ) având precizia de funcţionare cea mai ridicată. Pentru domenii mai mici amplificarea este supraunitară, iar pentru domenii mai mari se utilizează divizoare de tensiune care determină scăderea impedanţei de intrare. Blocul de intrare furnizează la ieşire o tensiune continuă proporţională cu mărimea de măsurat. Blocul specific, considerat cel mai important este convertorul analog-numeric, care, prin compararea tensiunii de intrare cu tensiunea de referinţă generează, pe baza unui cod, o succesiune de impulsuri ce sunt aplicate numărătorului. Există mai multe moduri de realizare a conversiei şi mai multe criterii de clasificare a convertoarelor.

Fig. 3.1. Schema bloc a voltmetrelor numerice

44

Clasificarea convertoarelor determină şi clasificarea voltmetrelor numerice. Cel mai general criteriu este: voltmetre integratoare şi voltmetre neintegratoare. Voltmetrele neintegratoare eşantionează tensiunile de măsurat şi furnizează valoarea instantanee în momentul eşantionării, are viteza de lucru foarte mare, dar are nevoie de filtrare tensiunii măsurate ceea ce reduce de fapt viteza de măsurare (datorită constantei de timp a filtrului). Voltmetrele integratoare, care măsoară valoarea medie pe un interval de timp a tensiunii de intrare, intervalul de timp fiind de 20ms sau multiplu de 20ms pentru rejecţia perturbaţiei pentru 50Hz. Timpul de măsurare creşte (se pot realiza maxim 10 măsurări pe secundă), dar prezintă avantajul rejecţiei perturbaţiilor de 50Hz fără a fi necesare filtre suplimentare. Numărătorul numără impulsurile primite de la convertor. La ieşire este generată valoarea numerică a tensiunii măsurate realizându-se şi conversia de cod necesara. Conversia analog-numerică a unei tensiuni (sau în caz general a oricărei mărimi) constă în determinarea unui număr D, care să reprezinte valoarea numerică a mărimii, număr obţinut printr-un procedeu de comparaţie, conform relaţiei:

Ux=DUr (3.1) unde D≤1, iar ur este mărimea de referinţă cunoscută cu mare precizie. Numărul D poate fi reprezentat în orice cod (zecimal, hexazecimal, binar), dar majoritatea convertoarelor folosesc codificarea binară, datorită utilizării elementelor binare şi a compatibilităţii cu calculatoarele numerice. În acest caz D va avea semnificaţia:

D=∑=

−n

i

iia

12 (3.2)

unde ai poate lua valoarea 0 sau 1, iar valoarea maximă a lui D se obţine pentru ai=1 pentru orice i şi anume:

D=∑=

−− −=n

i

ni

1212 (3.3)

şi deci valoarea maximă care poate fi măsurată (care determina domeniul de bază ) este:

Umax=(1-2-n)Ur (3.4) Două valori consecutive ale lui Ux diferă prin:

q=2-nUr (3.5) q numindu-se cuanta procesului de discretizare şi reprezentând eroarea absolută cu care este valabilă relaţia ux=DUr.

3.2.Convertor analog numeric cu aproximări succesive Prin metoda aproximărilor succesive, determinarea valorii numerice se face într-un număr de paşi egal cu numărul de biţi ai codificării numărului D. În fiecare pas se determina valoarea 0 sau 1 a bitului ai corespunzător unui rang al codificării, începând cu rangul cel mai semnificativ, la terminarea celor n paşi rezultând valoarea numărului

D sub forma ∑=

−n

i

iia

12 . în fiecare pas se face comparaţia intre ux şi UR(∑

=

−− +1

122

i

r

irra ),

45

unde ar au valorile determinate în urma comparaţiilor anterioare; ai va lua valoarea 0

dacă ux<UR(∑−

=

−− +1

1

22i

r

irra ) şi valoarea 1 în caz contrar.

Acest lucru se bazează pe relaţia : )1()1()1(

1

112222121222 −−−−−−−−

=

=

=

− <−=+−−=−= ∑∑∑ rnrrnr

i

in

i

in

ri

i (3.6)

adică valoarea maximă a ultimilor (n-r) termeni din 2 este mai mică decât valoare termenilor 2-(r-1). Schema bloc a unui voltmetru numeric cu aproximări succesive este prezentată în figura 3.2.

Tensiunea de comparare în fiecare pas, egală cu UR(∑−

=

−− +1

1

22i

r

irra ) este

obţinută în convertorul numeric-analogic CNA. Comparatorul păstrează în memoria sa (de obicei pe un condensator) valoarea tensiunii de măsurat până la terminarea întregului ciclu de măsurare, acest lucru este necesar întrucât pe perioada măsurării există posibilitatea modificării tensiunii Ux ( de măsurat ), ceea ce ar aduce la rezultate eronate. Cu schema prezentată în figura 3.2 tensiunea de comparaţie la începutul fiecărui ciclu va fi zero, durata de măsurare fiind aceeaşi, pentru oricare Ux≤UR. Aceasta presupune că la începutul fiecărui ciclu de măsurare blocul de comanda comută pentru timp foarte scurt comutatorul K pe poziţia 1 şi forţează (prin intermediul blocului de logică) în zero ieşirea CNA. Există posibilitatea ca valoarea tensiunii aplicată comparatorului prin intermediul CNA în primul pas de aproximare să fie ultima valoare existentă la ieşirea CAN-ului înainte de începerea ciclului de măsurare. În acest caz numărul de paşi nu va fi constant la realizarea unei măsurări, el depinzând de diferenţa dintre valoarea măsurată anterior, numărul de paşi scăzând cu micşorarea acestei diferenţe şi crescând astfel viteza de măsurare. La mai multe aparate există posibilitatea selectării unuia din cele doua moduri de lucru.

Fig. 3.2. Schema bloc a convertorului cu aproximări succesive

46

După codificarea zecimală, rezultatul măsurătorii este aplicat unui dispozitiv de afişare. Acesta poate fi cu tuburi Nixie, cu diode luminescente (LED) sau cu cristale lichide. LED-urile au viteze de comutaţie mai mare, dar consum de energie mai ridicat decât al cristalelor lichide, dezavantajul acestora din urmă este însă legat de durata relativ scăzută de funcţionare (zeci de mii de ore). Viteza de lucru maximă obţinută este determinată de tipul comutatorului folosit în schemă, precum şi de tipul CNA putându-se atinge viteze de câteva mii de măsurători pe secundă. Precizia determinată de precizia sursei de referinţă a comparatorului mai ales de precizia CNA poate atinge la voltmetrele sofisticate 5-10 p.p.m., bineînţeles cu preţul creşterii spectaculoase a preţului.

3.3. Convertoare numeric analogice În cadrul sistemelor de măsurare mărimea de măsurat (în general analogică) este convertită intr-o succesiune de coduri numerice. După prelucrarea acestei secvenţe, atunci când afişarea mărimii se face analogic sau în cazul sistemelor de conducere când elementul de execuţie primeşte mărimi analogice, este nevoie ca secvenţa numerică să fie aproximată printr-un semnal analogic. Procesul de conversie a codurilor numerice în semnal analogic poartă numele de conversie numeric-analogică, iar dispozitivele specializate care realizează această conversie se numesc convertoare numeric-analogice. Clasificarea convertoarelor numeric analogice se poate face în funcţie de mai multe criterii şi anume: - în funcţie de modul în care este adus codul numeric la intrarea convertorului: a) convertor paralel - când toţi biţii constituenţi ai codului numeric se găsesc simultan la intrarea convertorului; b) convertoare serie - când biţii constituenţi ai codului numeric sunt aduşi succesiv la intrarea convertorului în ritmul unor secvenţe de tact. - în funcţie de existenţa unor semnale intermediare intre ieşirea şi intrarea convertorului: a) convertoare directe - mărimea analogică corespunzătoare codului numeric apare direct pe ieşirea convertorului. b) convertoare indirecte - mărimea analogica corespunzătoare codului numeric suferă una sau mai multe conversii (prelucrări) analogice înainte de a fi furnizata la ieşire. - în funcţie de codul numeric de la intrarea convertorului: a) binare b) zecimale c) unipolare d) bipolare e) coduri binare speciale f) etc. Principalii parametrii ce caracterizează funcţionarea unui CAN sunt: *funcţia de transfer - determină modul de variaţie al mărimii de ieşire funcţie de secvenţa de intrare. *amplitudinea mărimii de ieşire exprimată în unităţi naturale (V, mA).

47

*rezoluţia care este dată de numărul de biţi a codului numeric de la intrare şi se defineşte ca raportul între cea mai mică valoare teoretică a semnalului de ieşire şi valoarea maximă a acestuia. *timpul de conversie intervalul de timp în care codul numeric este pus la intrare până când CNA elaborează mărimea de ieşire corespunzătoare codului convertit. * precizia definită ca diferenţă între valoare reală obţinută la ieşire şi valoarea corespunzătoare dată de funcţia de transfer, se exprimă de obicei în procente din domeniul de măsură. În cele ce urmează ne vom ocupa de convertoarele paralel la care toţi biţii numărului ce urmează a fi convertit sunt aplicaţi simultan la intrarea convertorului. Pot fi convertoare care au ca sursă de referinţă atât surse de curent cât şi surse de tensiune. În toate cazurile mărimea de ieşire este o tensiune, iar semnalul numeric se aduce la intrare paralel (simultan pe toate intrările). În cazul când un astfel de convertor este utilizat într-un circuit care aduce biţii numărului de convertit succesiv (serie) este necesară montarea la intrarea convertorului a unui registru tampon de recepţie cu intrarea serie şi ieşirea derivaţie.

3.3.1. Convertoare analog-numerice având sursă de referinţă o tensiune Convertoarele din această categorie utilizează o sursă de tensiune de mare stabilitate din care se prelevează o tensiune proporţională cu numărul aplicat la intrare. Pentru extragerea valorii se utilizează o reţea rezistivă care se configurează conform codului numeric de la intrare.

3.3.1.1. CAN cu tensiuni ponderate Un model primitiv ar fi cel constituit dintr-o sursa de tensiune şi un divizor rezistiv cu un număr de rezistenţe egal cu numărul maxim ce poate fi convertit; spre ieşire ar fi conectată numai borna corespunzătoare numărului convertit. Necesitatea unui mare număr de rezistenţe determină imposibilitatea realizării unor convertoare eficiente. O schemă cu tensiuni ponderate într-o concepţie convenabilă între cea prezentată în figura 3.3. Ea este compusă dintr-o sursă de tensiune şi un număr de module egal cu numărul de biţi ai numărului ce urmează a fi convertit. Fiecare modul este constituit din două rezistenţe de Fig. 3.3. Convertor numeric analogic cu tensiuni

ponderate

48

valoare egală, o rezistenţă a cărei valoare este dependentă de rangul unui bit al numărului ce urmează a fi convertit şi o cheie electrică notată cu Ck. Toate modulele se vor conecta la intrarea inversoare a unui amplificator operaţional într-o schemă de sumare a curenţilor. Amplificatorul are în reacţie o rezistenţă Ro şi tensiune de ieşire uo. Curentul la intrarea amplificatorului produs de un modul k conectat prin Ck este:

nk

kn

kn

kn

kn

kn

knk RU

RR

U

RRR

RRRRR

Ui −

− =

−+

−=−+

−+−

+= 2

12112

22/22/

22/)22/(

(3.7)

Presupunem că numărul binar ce se converteşte are forma:

A2=an-12n-1+an-12n-2+..........+a020=∑−

=

1

0

2n

k

kka (3.8)

Dacă un coeficient ak are valoarea 1 atunci contactul Ck este deschis şi la amplificator ajunge curentul Ik dat de relaţia (3.7). Dacă ak are valoare zero, atunci contactul Ck este închis, curentul determinat de modulul k la intrarea amplificatorului fiind nul. În general se va putea scrie:

nkkk R

Uai −= 2 (3.9)

La ieşirea amplificatorului operaţional se obţine tensiunea:

Ue = ∑∑−

=

−−

=

−=−1

0

1

0

00 22

n

k

kk

nn

kk a

RRUiR (3.10)

direct proporţională cu numărul A2 definit de relaţia (3.8). Cu schema din figura 3.3 se pot realiza convertoare de precizie (0,1-0,25)% cu timpi de conversie 2-3 microsecunde, pentru numere cu 12 ranguri binare, utilizând chei cu tranzistoare bipolare. Erorile sunt datorate în principal tensiunii reziduale şi curenţilor de scurgere prin cheile în stare deschisă.

3.3.1.2 CNA cu divizoare rezistive Utilizând o tensiune drept sursă de referinţă printr-o schemă ca cea din figura 3.4 se poate obţine la ieşire o tensiune proporţională cu un număr ce trebuie convertit. Un astfel de convertor este compus dintru-n număr de rezistenţe egal cu dublul numărului de convertit şi un număr de chei duble egal cu numărul de biţi al numărului ce urmează

Fig. 3.4. CNA cu divizor rezistiv

49

a fi convertit. Valorile rezistenţelor sunt determinate de rangul bitului numărului de convertit; cheile Ck lucrează în antifază, când un contact al cheii este deschis celălalt fiind închis. Sursa U are un curent constant întrucât rezistenţa din circuit este constantă indiferent de poziţia cheilor, acest curent având valoarea:

∑−

=

−−

= 1

0

10

2/n

k

knR

Ui (3.11)

Rezistenţa din circuit constantă indiferent de poziţia cheilor are valoarea:

∑−

=

−− ==1

00

1T /2/R

n

k

kn iUR

Tensiunea de ieşire are valoarea funcţie de poziţia cheilor Ck (rezistenţa şuntată sau nu); presupunând că cheile Ck şuntează sau nu rezistenţa din partea superioara a schemei după cum coeficienţii ak din relaţia (3.2.) au valorile 1 respectiv 0, tensiunea de ieşire va avea valoarea:

∑−

=−−=

1

010 2

n

kknke

RaiU (3.12)

Înlocuind în 3.12. valoarea curentului i0 dată de relaţia (3.11) se obţine:

∑−

=

=−

=−−

=−−

== 1

0

1

01

01

1

01

e

2

2

2

2U n

k

k

n

k

kk

n

kkn

n

kknk aU

R

RaU (3.13)

adică o tensiune proporţională cu numărul A2 codificat binar. Erorile ce apar în funcţionarea unui astfel de CNA sunt determinate de rezistenţa de trecere în stare închisă a cheii diferită de zero şi ca urmare tensiunea reziduală pe cheia în stare închisă. Întrucât pentru obţinerea unor erori mai mici de 0,1% la o conversie pe 12 biţi de exemplu la o tensiune de 20V, este necesară o rezistenţă pe cheia în stare închisă de 10-5R, condiţie care se realizează relativ greu, aceste CNA sunt puţin folosite, precizia lor fiind scăzută.

3.3.1.3. CNA Cu reţea rezistivă derivaţie

Eliminarea înserierii cheilor duce la creşterea preciziei de conversie. O schemă care realizează o asemenea creştere este prezentată în figura 3.5. Ea este compusă din n rezistenţe ponderate de rangul bitului ce urmează a fi convertit şi n chei duble. Dacă numărul ce urmează a fi convertit este dat de relaţia(3.8) atunci pentru ak=1 cheia Ck va fi conectată la sursă iar pentru ak=0 cheia Ckva fi conectată la masă. Pentru a calcula tensiunea Ue vom presupune că numai coeficientul ak este 1 toţi ceilalţi coeficienţi fiind zero. În aceste condiţii curentul ik ce trece prin cheia Ck este dat de relaţia (3.14).

50

kn

kk

n

kkk

n

kkk

k

k GGG

GGGU

GGGG

Ui ⋅+

+−⋅=

+−+

=

=

=

=

1

00

1

00

1

00

11 (3.14)

în care 0

01R

G = şi 121

−−⋅= knk R

G sunt coductanţele rezistoarelor R0 şi Rx2n-k-1.

Tensiunea de ieşire va fi în acest caz:

∑∑−

=

=

+=

+−=⋅= 1

00

1

00

1n

kk

kkn

kkk

kke

GG

GaUGGG

iaU (3.15)

Suprapunând tensiunile date de toate cheile conectate la sursă rezultă:

∑∑

∑∑

=

=

⋅+

=

=⋅+

=

1

01

00

1

1

01

00

212

1

nk

kn

kk

n

n

kkn

kk

e

aRGG

GaGG

U

(3.16)

Din relaţia (3.16) rezultă că tensiunea de ieşire este proporţională cu A2, (numărul ce trebuie convertit), factorul de proporţionalitate cuprinzând conductanţele schemei realizate cu toate rezistoarele conectate în paralel. Raportul valorilor extreme a rezistenţelor utilizate în schema din figura 3.5. este 2n-1. Pentru conversia

numerelor mari n≥10 se vor utiliza rezistenţe cuprinse între Rmin=R şi Rmax=Rx2n-1. Pentru a se putea neglija rezistenţa unei chei închise RS este necesar ca RS<Rminx10-5 iar pentru a se putea neglija curentul de scurgere prin cheia în stare deschisă, este nevoie ca rezistenţa Rp a cheii în stare deschisă să fie de cel puţin 10 ori mai mare decât cea mai mare rezistenţă din circuit, deci Rp=10xRmax. De aici rezultă că:

min

max610RR

RR

S

p ⋅= (3.17)

Ceea ce înseamnă că pentru n=12 de exemplu, este necesar ca Rp/RS=2x109. Valorile raportului sunt mari şi dificil de realizat. Din această cauză se preferă schemele în care rezistenţele conectate în circuit să aibă valorile extreme cât mai puţin diferite.

Fig. 3.5. CNA cu reţea rezistivă derivaţie

51

3.3.1.4. CNA cu rezistoare în scară

In figura 3.6 este prezentat un convertor care utilizează numai două valori pentru rezistori R şi 2R

Se observă că la fiecare din cele n-1 noduri sunt conectate trei porţiuni de schema a căror rezistenţă echivalentă este egala cu 2R. Acest lucru înseamnă ca orice curent care intră în nod se va divide în doi curenţi egali. Dacă considerăm cheia conectată la sursă, curentul prin cheie va fi dat de relaţia:

RUa

RRRRR

Uai kk

k 322222

⋅=

+∗

+=

(3.17) Ajuns în nodul K acest curent se

va divide în două, unul în sus şi altul în jos. În fiecare nod întâlnit pe calea ascendentă curentul ajuns în nod se va divide în două; cum între nodul k şi rezistenţa de sarcină sunt n-k noduri, înseamnă că curentul de sarcină va fi:

knkkk

oiai −=

2**)(

(3.18) iar tensiunea de ieşire va fi:

10)(

2*32***

2*3**22* −−== n

kk

knkk

eUa

RUaRRiU (3.19)

Dacă numărul de convertit este dat de : ∑−

=

=1

02 2*

n

k

kkaA atunci apilcând teorema

superpoziţiei obţinem:

∑−= kkne aUU 2**

2*3 1 (3.20)

adică o tensiune proporţională cu A2. Schema prezentată în figura 3.6 se bucură de bune calităţi, rezistenţa cheii putând fi parţial compensată astfel că erorile vor apărea în principal datorită tensiunilor reziduale de pe cheile închise şi curenţilor de scurgere prin cheile deschise. Deoarece rezistoarele conectate prin chei au valori egale, pretenţiile fată de valoarea rezistenţei cheii în stare închisă sunt mai scăzute, din acest motiv obţinându-se precizii mai bune. La aceasta contribuie şi faptul că rezistoarele utilizate având numai două valori, construcţia lor precisă este relativ uşor de realizat.

Fig. 3.6. CNA cu rezistoare în scară

52

3.3.2. CNA având drept sursă de referinţă un curent In această categorie de convertoare directe intră acele convertoare în care mărimea de referinţă este constituită de un curent, mărimea de ieşire rămânând în continuare o tensiune. Conversia curenţilor funcţie de numărul de convertit se face prin intermediul unor reţele rezistive a căror configuraţie este comandată de chei electronice

3.3.2.1. CNA cu sursă de curenţi ponderaţi

Un astfel de convertor prezentat schematic în figura (3.7) Cheile electronice : C0......Cn-1 sunt comandate de coeficienţii a0......an-1 din codul numărului:

∑−

=

=1

02 2*

n

k

kkaA .

Curentul determinat la intrarea amplificatorului de coeficientul ik prin închiderea cheii Ck va fi:

12 −−= knkIi (3.21)

Tensiunea la ieşirea amplificatorului determinată de curentul ik este dată de relaţia (3.22).

∑∑∑−

=

−−

=−−

=

===1

0

10

1

010

1

00 2***2*

2****

n

k

kk

nn

kknk

n

kkke aIRIaRiaRU (3.22)

După cum se observa din relaţia (3.22) tensiunea de ieşire este proporţională cu numărul de convertit A2. Obţinerea curenţilor ponderaţi ik se poate realiza prin montarea unor rezistenţe ponderate la o sursă de tensiune constantă ca în fig 3.8.

Observându-se perfecta similitudine cu convertorul din figura 3.5, rezultă că dezavantajele convertorului cu curenţi ponderaţi sunt aceleaşi cu dezavantajele convertorului cu rezistenţe ponderate, cel mai important fiind raportul mare dintre valorile rezistenţei cheii în stare deschisă şi în stare închisă. Necesitatea utilizării unor chei simple, la care se adaugă şi posibilitatea conectării cheilor la

Fig. 8.7. CNA cu curenţi ponderaţi

Fig. 3.8. CNA cu rezistenţe ponderate

53

potenţial scăzut, urmată de scheme de comandă simple constituie principalele avantaje ale unor astfel de convertoare. Utilizând rezistoare cu toleranţă +/- 0,05% şi tensiune de referinţă de 0,01% se pot obţine precizii la conversia numerelor de 10..12 biţi de până la 0,1% la durate de conversie de câteva microsecunde.

3.3.2.2.CNA cu curenţi de referinţă de valoare unică. Avantajul principal al acestui tip de CNA constă din aceea că, deoarece toate cheile vor închide curenţi de aceeaşi valoare este posibilă creşterea performanţelor schemei prin alegerea adecvată a valorii curentului aşa încât cheia de comutare să se comporte optim. Un CNA cu curent de referinţă constant este cel din figura 3.9. Rezistorii care alcătuiesc reţeaua rezistivă au numai doua valori ceea ce constituie un avantaj la construcţia cu precizie a rezistorilor.

Din fiecare nod (0-(n-1)) se văd trei porţiuni de circuit faţă de masă, având fiecare rezistenţa 2R. Una este rezistenţa din ramura cuplată direct cu masă, a doua este proporţiunea din circuit din partea superioară a schemei ( a cărei rezistente echivalentă este 2R), iar a treia o constituie porţiunea din partea inferioara (egala tot cu 2R). Asta înseamnă că orice curent (inclusiv curentul I) ajuns într-un nod s, se va diviza în trei curenţi egali. Tensiunea de ieşire culegându-se la partea superioara de pe rezistenţa R ne interesează numai circulaţia curenţilor spre partea superioară. Presupunând cheia Ck închisă, componenta în latura superioara a nodului k va fi conform celor spuse I/3. În circuitul superior se va divide în doua părţi egale în fiecare nod întâlnit şi întrucât va întâlni n-k-2 noduri în care se divide (in nodul n-1 nu se divide), tensiunea de ieşire va fi:

121

3 −−= knn

e RiaU (3.23)

unde ak este coeficientul din A2=∑−

=

1

0

2n

k

kka .

Dacă sunt închise toate cheile atunci aplicând principiul suprapunerii efectelor obţinem:

∑−

=

−⋅=1

0

1 223

n

k

kk

ne aRiU (3.24)

Din (3.24) se observă că Ue este proporţională cu numărul convertit A2.

Fig. 3.9. CNA cu curenţi de referinţă egali

54

Întrucât schemele din figura 3.9 şi 3.6 sunt asemănătoare, în ambele scheme cheile electronice trebuind să închidă curenţi egali ambele scheme fiind constituite din rezistenţele R şi 2R. Convertorul cu curenţi de referinţă constant are însa chei de comandă mai simple, ceea ce ar putea să reprezinte un avantaj. în rest performanţele obţinute sunt asemănătoare.

3.3.2.3. CAN cu rezistoare în scară inversată

Un astfel de convertor este cel prezentat în figura 3.10. Se utilizează de asemenea rezistenţe de valori R şi 2R, dar un singur curent de referinţă. Din figură se observă că la fiecare nod începând cu nodul a, curentul care circulă în ramura descendentă se divide în două, rezistenţa faţă de masă fiind 2R în ramura cuplată de cheie şi tot 2R în ramura formată de partea inferioară a schemei. Dacă la intrarea amplificatorului este conectată cheia Ck, curentul care trece prin Ck reprezintă curentul i divizat de n-k ori, adică:

knk

kknkiaaii 2

22== − (3.25)

Însumând toţi curenţii ce se adună la borna amplificatorului rezultă tensiunea de ieşire:

∑ ∑−

=

=

−=−=

1

0

1

0

00 2

2

n

k

n

k

kknkke a

iRiaRU

(3.26) proporţional cu A2.

Schema prezintă avantajul de a nu modifica valoarea curentului i, atunci când se fac comutări în schemă, intrarea amplificatorului operaţional fiind practic conectată la masă. Din acest motiv se pot obţine performanţe bune mai ales că cheile lucrează la potenţial nul. Utilizând chei cu tranzistoare cu efect de câmp cu rezistenţa de trecere de ordinul 10-30Ω valoare ce se poate cel puţin parţial compensa, se pot obţine conversii cu precizia +0,01% dacă temperatura de lucru nu variază cu mai mult de +/-100C.

Fig.3.10. CAN cu scară inversată

55

3.4. Convertoare analog numerice cu tensiune de comparaţie variabilă

3.4.1. Voltmetre digitale cu rampa în trepte In cazul CAN cu aproximare succesivă schema se complică datorită necesităţii obţinerii în fiecare pas a unei tensiuni ponderate corespunzătoare bitului determinat cu care trebuie comparată tensiunea de convertit Ux.

Dacă în loc să se facă comparaţia cu un număr de tensiuni ponderate cu 2-n (situaţie în care se obţine numărul minim de comparaţie) se face comparaţia cu un număr de tensiuni care diferă între ele printr-o anumită cantitate egala q (care va reprezenta practic rezoluţia sistemului) se va obţine o simplificare substanţiala a schemei dar o mărime a timpului de conversie (numărul de comparaţie nemaifiind minim). Un generator de tensiune în trepte poate fi obţinut dintr-un numărător cuplat cu un CNA, tensiunea la ieşirea CNA-ului fiind proporţională cu N(numărul înscris la un moment dat în numărător ) şi un q, adică:

Uc=N*q (3.27) Dacă pornind de la valoarea zero înscrisă în numărător, incrementăm

numărătorul cu câte o unitate, şi facem permanent comparaţia tensiunii Uc cu tensiunea Ux(de convertit) atunci când comparatorul va sesiza egalitatea vom putea exprima numeric pe Ux prin numărul înscris în acel moment în numărător, adică:

Ux=N*q (3.28) In figura 3.11 este prezentată schema unui convertor analog numeric care exemplifică acest principiu.

Schema conţine un generator de frecventa G1, care generează impulsuri cu frecvenţa f1 ce incrementează numărătorul N, un comparator C care compară tensiunea Ux cu tensiunea de la ieşirea convertorului CNA. Cât timp Ux<Uc ieşirea convertorului este 1 şi permite trecerea impulsurilor prin poarta P. Atunci când Ux≥Uc poarta P este blocată şi numărătorul rămâne la valoarea corespunzătoare Ux=Uc=N*q. Generatorul G2 a cărui frecvenţă f2 este mult mai mică decât a lui G1 asigură aducerea lui N în poziţia 0 şi reluarea ciclului de conversie. Se observă că dacă notăm cu ∆t timpul necesar incrementării lui N şi conversiei în CAN a numărului înscris şi comparării în C a lui Ux cu Uc, frecvenţa lui generatorului G1 f1<1\∆t. Considerând convertorul de n biţi timpul maxim necesar conversiei unei tensiuni 2nx∆t, iar frecvenţa lui G2 va trebui să fie f1/2n pentru a asigura timpul necesar unei conversii. Rezultă de aici timpi de conversie foarte mari (de exemplu c.c.a 10 ms pentru conversie pe 12 biţi). O reducere a timpului de conversie este posibilă prin utilizarea unei scheme ca cea din figura 3.12.

Fig. 3.11. CAN cu tensiune in trepte egale

56

Numărătorul N are doua intrări, o intrare care produce incrementarea acestuia cu o valoare egala cu 2n şi o intrare care-l incrementează cu o unitate. Când N=0, un circuit de comutare comandat de C1 pune G1 pe poarta P1. Când Ux-Uc<2m*q, C1 se blochează şi acelaşi circuit de comutare (nefigurat în schema) comută G1 la P2. P2 va rămâne deschisă până când Ux>Uc. În acest mod numărul maxim de trepte necesar va fi :

Nmax/2m+2m=2n-m+2m (3.29) unde Nmax este limita maximă de măsurare corespunzătoare capacităţii numărătorului. Timpul de conversie se va reduce deci de 2n/(2n-m+2m ) ori.

3.4.2. Voltmetre cu trepte egale şi sistem de urmărire Conversiile prezentate până acum reiau ciclul de conversie de la zero, de fiecare dată fiind necesară aproximativ acelaşi timp de conversie. Se poate reduce mult timpul de conversie atunci când convertorul urmăreşte variaţia mărimii de intrare ( necunoscute). Principiul de funcţionare a unui sistem de urmărire este redat în figura

Fig. 3.12.CAN cu tensiune în trepte neegale.

Fig. 3.13. Urmărirea unei tensiuni continue

Fig. 2.14. CAN cu urmărire

57

3.13. Din figură rezultă că tensiunea Uc la sfârşitul unui ciclu de numărare nu trebuie să revină la zero, ci doar să se modifice în ciclul următor pentru a avea Ux=Uc. În figura 3.14 este prezentată o schema de CAN care utilizează acest principiu. Numărătorul N este reversibil, impulsurile pe poarta S decrementându-l. Când Ux-Uc>0, Pa este deschis şi N se incrementează. Când Uc-Ux<0, Pa este blocat şi este deschis Ps, iar numărătorul se decrementează; în ambele cazuri Uc variind astfel încât să se apropie de Ux. În acest caz se pot reduce substanţial timpii de conversie mai ales în cazul variaţiilor mici ale lui Ux.

3.5.Convertoare numeric analogice indirecte La conversiile directe s-a presupus tensiunea de comparaţie Uc (tensiune cu care se compară tensiunea de convertit Ux) obţinută dintr-o tensiune UR cunoscută cu precizie; pentru obţinerea lui Uc se făceau divizări în diferite rapoarte şi sau sumări. Pentru exprimarea lui Uc era nevoie deci de cunoaşterea modului în care se făceau divizările lui UR şi modului de sumare a acestor diviziuni. La C.A.N. indirecte UC se obţine prin măsurarea numerică şi unei alte mărimi (timp sau frecvenţă)

3.5.1.Convertoare cu generator de tensiune liniar variabilă Tensiunea UC se obţine de la un generator cu tensiune liniar variabila care variază de la 0 la o valoare maximă. Pentru exprimarea numerică a lui Ux se măsoară numeric timpul în care UC variază de la 0 la valoarea lui Ux (figura 3.15.).

Dacă în figura 3.15 se cunoaşte panta lui UC şi se măsoară numeric diferenţa dintre t0 şi t1 adică N = t1-t0

atunci:

ααα NtgtttgUsitt

Utg x

x =−=−

= )( 1010

(3.30) O schema de C.A.N. cu conversie intermediară în timp este prezentată în figura 3.16.

Tensiunea liniar variabilă este obţinută de la generatorul H cu integrator tip Miller. Cât timp cheia S este deschisă :

,tRCU

U RC −=

Fig. 3.15. Principiul conversiei tensiune-timp

58

iar când S este închisă C se descarcă rapid şi UC revine la zero. În scopul măsurării tensiunilor cu ambele polarităţi, tensiunea de la ieşirea integratorului se deplasează cu o anumita valoare U0 astfel încât:

0UtRCU

u Rc +−=

Acest principiu este exemplificat în figura 3.17 Comparatoarele C1 şi C2 dau câte un impuls atunci când diferenţa tensiunilor aplicate schimba volumul, adică C1 când UC>Ux şi C2 când UC=0. Aceste impulsuri aplicate prin circuitele de diferenţiere D comandă bistabilul B. Între cele două impulsuri

bistabilul B deschide poarta P şi permite numărarea impulsurilor generatorului G2. Numărătorul N se va încărca la o valoare: N=(t2-t1)fe unde fe este frecvenţa lui G2 Din figura 3.17. rezultă imediat:

RCU

ttuU Rcx )( 12 −== (3.31)

şi deci:

NRCfUU

e

Rx = (3.32)

Se observă că pentru o precizie corespunzătoare este nevoie ca panta UR/RC să fie mică şi fe mare. Panta nu poate fi micşorată prea mult

pe o parte datorită creşterii inexactităţii determinării momentelor t1 şi t2 iar pe de altă parte datorită creşterii timpului de conversie o data cu micşorarea pantei. Componentele de acest tip au o construcţie simplă, dar au o viteză de conversie redusă şi nu pot fi prea precise, în special datorită generatorului de tensiune liniar variabilă. Panta tensiunii depinde de R şi C iar condensatorul îşi schimbă mai pronunţat calităţile cu temperatura şi timpul. Ca urmare cu aceste convertoare nu se poate obţine o precizie mai buna de 0,1%

Fig. 3.16. CAN cu conversie intermediară în timp

Fig. 3.17. Conversia tensiune-timp pentru tensiuni bipolare

59

3.5.2. Convertoare cu dubla integrare Pentru a evita erorile introduse de variaţia parametrilor generatorului H (R şi C ) se utilizează un C.A.N. cu dublă integrare.

În principiu un astfel de C.A.N. funcţionează, astfel: - Se integrează o perioada de timp exact cunoscută t1, tensiunea Ux de măsurat. După perioada t1 tensiunea pe condensator va fi:

1tRCUu x

i −= (3.33)

- Se decuplează Ux şi se descarcă condensatorul printr-o sursă UR; condensatorul se va descărcă după relaţia:

RC

tUuu Ri += (3.34)

Daca notăm cu td perioada în care condensatorul se descarcă complet avem:

RC

tURC

tURC

tUu dRscdRi +−=+= 10 (3.35)

sau:

1ttUU d

RC = (3.36)

Relaţie în care au dispărut parametrii generatorului (R şi C ) şi care pune în evidenţă dependenţa liniară între Ux şi timpul de descărcare al condensatorului. Dacă td este măsurat numeric se poate exprima numeric Ux. obţinerea unei precizii ridicate este legată în acest caz de menţinerea constantă a lui UR (condiţie relativ uşor de asigurat ) şi de menţinerea riguros constantă a perioadei de integrare a lui Ux, t1 În figura 3.18 este prezentată schema unui C.A.N. cu dublă integrare

Funcţionarea schemei este guvernată de generatorul G cu frecvenţa fe riguros constantă. Printr-un divizor de frecvenţa D şi un dispozitiv de comandă DC este comandată menţinerea cheii S pe poziţia Ux un timp t1 multiplu al lui 1/fe. După timpul t1 cheia este comutată pe poziţia -UR şi începe descărcarea condensatorului; totodată comparatorul C1 menţine poarta spre bistabil deschisă. Odată cu comanda de descărcare

Fig. 3.18. C.A.N. cu dublă integrare

60

a condensatorului se trimite prin DC un impuls spre bistabilul B care deschide poarta P; numărătorul N va fi incrementat de impulsurile venite de la G cu frecvenţa fe. Când condensatorul se descarcă complet comparatorul C1 blochează poarta P prin comutarea bistabilului B, numărul înscris în N reprezentând practic un număr proporţional cu Ux. În timpul cât P este deschisă se primesc la numărător un număr de impulsuri:

eR

xde ft

UU

tfN 1== (3.37)

de unde:

Nft

UUe

Rx

1

= (3.38)

şi dacă se iau valori potrivite pentru UR, t1 şi fe numărul N poate exprima direct valoarea tensiunii Ux.

Pentru a nu fi nevoie de o precizie foarte ridicată a lui fe poate fi utilizată următoarea metodă: considerăm produsul m= t1*fe pe care îl înscriem într-un numărător din care se scad impulsurile de la generator. Considerând t1 ca timp necesar golirii numărătorului şi fe aceeaşi, de-a lungul unui ciclu de decodificare, m va rămâne constant chiar dacă fe este diferit faţă de valoarea prestabilită, deoarece odată cu creşterea lui fe în acest caz scade t1 şi invers. Stabilitatea frecvenţei fe este impusă de alţi factori cel mai important

fiind tensiunile parazite date de reţea care se suprapun la intrarea integratorului peste semnalul util. Pentru ca acestea sa fie complet rejectate, considerând frecvenţa acestor perturbaţii egala cu 50 Hz este nevoie ca t1 sa fie multiplu întreg de 20 ms. Deci cu un fe care prin divizare dă la ieşirea CD perioade multiple întregi de 20 ms perturbaţiile reţelei sunt rejectate. Frecvenţa reţelei nu este riguros constantă şi chiar cu un fe foarte stabilizat îndeplinind condiţia de mai sus, perturbaţiile date de reţea nu vor fi complet rejectate. Deci este necesar ca fe să fie un multiplu întreg a lui f (unde f este frecvenţa reţelei) şi în acelaşi timp să urmărească variaţia lui f. Un generator a cărei frecvenţa fe satisface condiţiile menţionate este prezentat în figura 3.19 Frecvenţa fe astfel aleasă încât divizată în divizorul D asigura fe/r=f (unde r = raport de divizare) este introdusă în comparatorul C. Tensiunea U este aplicată la ieşirea acestuia U=K(f-fe/r) comandă generatorul de frecvenţa G care-şi modifică tensiunea până când fe/r =f. O alta problemă care se ridică la funcţionarea acestor C.A.N. este legată de necesitatea convertirii unor tensiuni Ux având polarităţi diferite. Cum tensiunea UR trebuie să fie de polaritate diferită faţă de Ux este necesară utilizarea a două surse de tensiune UR de aceeaşi valoare în modul dar de polarităţi opuse; cum realizarea a două surse identice e mai greu de realizat, se preferă utilizarea unei singure surse a cărei polaritate se poate modifica la cuplarea pe integrator printr-un dispozitiv de comutare adecvat. O alta posibilitate de a măsură tensiuni Ux de polarităţi diferite este cea

Fig. 3.19. Generarea unei tensiuni proporţionale cu frecvenţa f

61

prezentata în figura 3.20. La borna neinversoare a

integratorului se cuplează o sursa cu UR/2 în ambele faze ale conversiei. Notând cu Ui tensiunea de la intrarea circuitului de integrare (Ui=Ux sau Ui=UR) se obţine pentru tensiunea de ieşire:

0)2

(1 udtUURC

u Ri +−−=

(3.41) u0 fiind tensiunea iniţială. Dacă tensiunea iniţiala poate fi

considerată constantă în timpul integrării atunci:

0)2

( uUURCtu R

i +−−= (3.42)

Se observă că tensiunea de ieşire u, nu-şi modifică polaritatea atâta timp cât

2R

iUU < pentru u0=0.

Dacă faza întâia durează t1 şi în acest timp se integrează Ux la sfârşitul ei tensiunea va fi:

)2

(11

Rx

UURCtu −−= (3.43)

In faza a doua, în locul lui Ux se conectează UR şi ca urmare se obţine tensiunea:

2

)2

()2

( 11

RRx

RR

URCtUU

RCtUU

RCtuu −−−=−−= (3.44)

care se anulează pentru t = t2 (aşa cum reiese din figura 3.21)

2*)

2(0 2 RR

xA U

RCtUU

RCt

−−−= (3.45)

De aici rezulta:

2

*1

21 Rx

Ut

ttU −= (3.46)

În fig.3.21. s-a prezentat variaţia în timp a tensiunii de la ieşirea integratorului pentru tensiunea U’

x>0 şi pentru .0" ≤xU Se poate observa că în ambele cazuri prima integrare durează t1 secunde, iar partea a doua este, constituită din drepte paralele, de unde rezultă diferenţa dintre t2

’ şi t2”. Tensiunea Ux fiind proporţională cu diferenţa t1-t2,

se remarcă posibilitatea determinării semnului lui Ux prin semul diferenţei t1-t2. Diferenţa se obţine simplu cu ajutorul unui numărător reversibil, în care în timpul t1 se adună impulsurile generatorului etalon, iar în t2 se scad. Valoarea lui t1 se alege din condiţia de rejecţie a semnalelor parazite, iar UR astfel încât factorul UR/2t1 să fie 10n (în cazul reprezentării zecimale). În acest fel diferenţa t1-t2 reprezintă chiar numărul corespunzător tensiunii Ux, factorul UR/2t1 determinând numai poziţia virgulei.

Fig. 3.20. C.A.N. cu dublă integrare pentru tensiuni bipolare

62

3.5.3. Convertoare cu conversie tensiune-frecvenţă Aceste convertoare se bazează pe faptul ca valoarea medie a tensiunii unui generator de impulsuri dreptunghiulare cu amplitudine şi durată constantă (Ui respectiv ti) este proporţională cu frecvenţa, adică: Umed=Ui*ti*fi Dacă aceasta tensiune se utilizează în scopul comparării cu tensiunea Ux de convertit, la egalitatea lor se obţine:

Ux=Umed=Ui*ti*fi ( 3.47) şi pentru ui*ti=ct., tensiunea Ux se poate măsura prin frecvenţa fi. Pentru aplicarea acestei metode sunt deci necesare un integrator (care să dea Umed) un comparator (care să compare Umed cu Ux) şi un generator de impulsuri cu amplitudine şi durată constantă.

Fig. 3.21. Tensiunea la ieşirea integratorului pentru intrări bipolare

Fig. 3.22. CAN cu conversie intermediară tensiune frecvenţă.

63

Cea mai simplă metodă este prezentată în schema din figura 3.22. Tensiunea Ux este permanent aplicată integratorului, ducând la încărcarea condensatorului C. Când tensiunea de pe C a atins valoarea Ur comparatorul C1 dă un semnal care comandă generatorul G; aceasta emite un semnal dreptunghiular de polaritate inversă faţă de Ux şi de amplitudine Ui şi durată ti. Acest impuls se suprapune peste Ux şi determină scăderea tensiunii de pe condensator. La expirarea lui ti, Ux se aplică din nou singură, condensatorul se reîncarcă, iar la atingerea valorii egale cu Ur procesul se repetă. Se observă că frecvenţa de repetiţie a procesului creşte cu cât Ux este mai mare (viteza de încărcare a lui C este mai mare).

Variaţia tensiunilor este reprezentată în figura 3.23. Dacă scriem că variaţia tensiunii la ieşirea integratorului între punctele a şi b din

figura 3.23 este nulă obţinem:

iixix tUCR

ttUCR

***1)(**

*10

1

++−= (3.48)

De unde se poate scrie perioada de repetiţie a procesului Ti sub forma:

x

iixii U

UtRRttT **

1

=+= (3.49)

Frecvenţa impulsurilor va fi:

ii

x

xiii tU

URR

ttTf

**11 1=

+== (3.50)

Se poate observa că pentru R1=R se obţine chiar relaţia (3.47). Măsurarea numerică a frecvenţei se face în punctul B prin metode specifice. Se observă ca precizia este determinată de constaţa produsului ( Ui*ti). În acest scop G este un generator de curent, care se poate realiza cu o stabilitate de 10-5, rezultând implicit condiţia Ui=Ri*Ii=ct., ceea ce necesită doar un rezistor de precizie

relativ uşor de construit.

3.6. Corecţia automată a convertoarelor analog numerice. Creşterea preciziei conversiei se face prin acţionarea asupra mărimilor care determină abateri ale elementelor componente de la valorile teoretice.

3.6.1. Corecţia automată a tensiunii de decalaj. La toate amplificatoarele, comparatoarele şi integratoarele utilizate în CAN, chiar la tensiuni de intrare zero, apare la ieşire o tensiune numită tensiune de decalaj (offset). Eliminarea erorilor implică complicarea însemnată a schemelor şi datorită faptului că fiecare element prezintă o tensiune de decalaj proprie, diferită de cea a celorlalte, măsurile pentru anularea acestor tensiuni fiind ineficiente.

Fig. 3.23. Tensiunile în convertorul de frecvenţă

64

De aceea se preferă masuri nu pentru anularea acestor efecte ci pentru corectarea erorilor pe care aceste efecte le introduc, ceea ce înseamnă corecţia automată. Corecţia se poate face atât pe partea analogica a convertorului cât şi pe partea numerică. Corecţia pe partea analogica se face prin memorarea tensiunii de decalaj, pe un condensator si aplicarea ei cu semn schimbat la intrarea amplificatoarelor. O corecţie totala atât a părţii analogice şi celei numerice se poate realiza prin memorarea valorii pe care convertorul o indică atunci când intrarea este zero, convertirea acestei valori printr-un CNA şi aplicarea ei cu semn schimbat la intrarea convertorului. O astfel de corecţie este realizata de schema din figura 3.24.

Înaintea ciclului de conversie se cuplează S1 la masa şi S2 la x0.Valoarea x0 reprezintă tocmai tensiunea de decalaj şi se memorează în dispozitivul de memorare (când S1 e pe poziţia Ux şi S2 pe poziţia x), CNA converteşte valoarea x0 a tensiunii de decalaj în tensiunea U0, care este scăzută din Ux în dispozitivul de scădere D. Datorită derivei termice care modifică tensiunea de decalaj, determinarea lui x0 trebuie făcută în fiecare ciclu de conversie.

3.6.2 Corecţia automata a câştigului.

Dacă factorul de amplificare (câştigul) convertorului diferă de cel teoretic (lucru care în general se întâmplă ) vor apărea erori de codificare. Astfel, în figura 3.25, unde curba 1 reprezintă caracteristica ideală de transfer iar curba 2 reprezintă caracteristica reală, tensiunii Ux trebuie să-i corespundă codul Nx. În realitate CAN va indica codul N’

X. Pentru a găsi codul corect se observa că:

''X

X

NNk

tgtg

==αα (3.51)

De unde Nx=K*Nx’. Deci problema corecţiei este de a-l determina pe K. Pentru aceasta în figura 3.26 se prezintă o schema care realizează corecţia automata a câştigului.

Determinarea lui k se face în acest caz prin: k=N’R/NR (3.52)

Fig. 3.24. Schema pentru corecţia tensiunii de decalaj

65

unde N’R este codul afişat când este cuplată la intrarea UR. NReste codul teoretic a lui UR care este memorat permanent în B. k este calculat în divizorul D(k=N’R/NR) şi este memorat în M.

La cuplarea la intrarea CAN a lui Ux la ieşirea din CAN vom avea N’x; prin multiplicarea Q se obţine codul corect Nx. Câteodată se preferă corecţia pe partea analogică; această corecţie se bazează pe faptul că, conform figurii 3.25:

N’R/NR=k=U’R/UR (3.53) Adică raportul K va fi determinat ca raport a două tensiuni şi nu ca raport a doua

coduri. Rezultă schema din figura 3.27. Cu S1 pe UR si S2 pe N’R, se obţine în divizorul D raportul K=U’R/UR ; în această perioadă transferul din M în Q este blocat. Se cuplează S1pe Ux, din M se transferă multiplicatorul Q valoarea lui K la intrarea CAN fiind aplicat K*Ux;S2 fiind pe poziţia Nx se obţine la intrarea CAN codul corect.

Fig. 3.25. Caracteristica de transfer la câştig variabil

Fig. 3.26. Schema de corecţie a câştigului

Fig. 3.27. Corecţia câştigului pe partea analogică

66

CAPITOLUL IV

NOŢIUNI DE BAZĂ ALE LIMBAJULUI GRAFIC LABVIEW

Denumirea limbajului grafic „LABVIEW” provine dintr-o prescurtare din limba

engleză: „Laboratory Virtual Instrument Engineering Workbench”. Acest limbaj grafic este un mijloc de programare destinat controlului, analizei şi afişării datelor; utilizarea acestui limbaj s-a remarcat în special în cazul instrumentaţiei de măsurare bazată pe tehnica de calcul. Programarea unui sistem de măsurare cu ajutorul calculatorului intr-un limbaj clasic (C, Pascal, Ada etc) consumă foarte mult timp. Interfeţele acestor limbaje clasice sunt de multe ori neclare şi greu de înţeles. Prin utilizarea limbajului grafic LabVIEW, rapiditatea programării creşte foarte mult datorită introducerii unei interfeţe grafice mai intuitive. LabVIEW este unul dintre primele limbaje de programare grafică utilizate în aplicaţii de achiziţii de date cu tehnică de calcul. Cu ajutorul plăcilor de achiziţie de date, fluxul de date numerice sau analogice provenite de la diverse traductoare poate fi prelucrat sau analizat. Prelucrarea datelor numerice sau analogice prin intermediul limbajului de programare, permite crearea sau simularea unor aparate de măsură şi control (instrumente virtuale). Principalul avantaj al unei instrumentaţii de măsurare bazată pe tehnica de calcul (instrumentaţie virtuală) faţă de un instrument clasic de măsurare constă în faptul că instrumentaţia virtuală poate fi uşor transformată prin programare.

Instrumentele virtuale create prin programare pot fi simple aparate de măsură sau diferite dispozitive care permit controlul unor instalaţii de automatizare. Interfaţa unui instrument virtual conţine dispozitive şi aparate de măsură şi control realizate într-o formă grafică asemănătoare aparatelor şi dispozitivelor reale.

4.1.Principii de programare în LABVIEW

Mediul de programare LABVIEW este un mediu de programare grafică orientat

pe obiecte. El permite realizarea unor programe care să reprezinte instrumente de măsură virtuale, utilizatorul acestora lucrând cu ele la fel ca şi cu instrumentele de măsură obişnuite.

Fiecare program în LABVIEW va avea două componente principale: - o componentă constituită de panoul frontal al aparatului de măsură virtual,

componentă ce va permite citirea afişarea valorilor mărimii măsurate şi introducerea unor date de intrare (valori de referinţă, valori de constante, butoane de comandă, comutatoare, etc.). Această componentă poartă numele de fereastra panoului cu instrumente (Panel)

- o componentă care va descrie operaţiile pe care le realizează programul pornind de la datele de intrare şi valorile mărimilor achiziţionate pe diferite canale. Această componentă poartă numele de fereastra blocului diagramă (Diagram).

Fiecare din cele două componente este disponibilă simultan la realizarea şi rularea unui program în LABVIEW; programul fiind conceput să lucreze sub sistemul

67

de operare WINDOWS trecerea de la o fereastră la alta se realizează cu ajutorul „mouse-ului”. Atunci când se face salvarea programului ambele componente sunt salvate într-un fişier cu extensia „vi”; apelarea unui fişier cu extensia vi va determina deschiderea ferestrei panel, pentru prima vizualizarea a ferestrei blocului diagramă fiind necesară selectarea opţiunii „show diagram” din meniul „windows” din bara de meniuri a ferestrei panoului cu instrumente.

4.2. Fereastra panou (panel) Un exemplu de fereastră panou este prezentată în figura 4.1.

După cum se vede are toate elementele unei ferestre de lucru sub mediu de operare WINDOWS:

- În partea de sus bara de titlu; - Sub Bara de titlu se află Bara de meniuri; - Sub Bara de meniuri se află Bara de comenzi; - Sub Bara de comenzi se află suprafaţa de lucru; - În partea de jos şi lateral dreapta cele două butoane de derulare.

4.2.1. Bara de comenzi Ne vom referi în continuare la bara de comenzi care prezintă comenzi specifice

lucrului sub LABVIEW. Această bară este poziţionată deasupra zonei de lucru şi conţine următoarele butoane:

Butonul de start (Run) care are ca efect rularea o singură dată a programului.

Buton de rulare continuă a programului Buton de oprire care devine activ numai după ce a fost activat unul

dintre cele două butoane anterioare Buton ce permite întreruperea continuării programului şi reluarea lui din

punctul în care a fost întrerupt

Fig 4.1 Exemplu de fereastră Panel

68

Buton care permite aranjarea într-o ordine aleasă a obiectelor de pe suprafaţa ferestrei

Buton care permite distribuirea după o regulă aleasă a obiectelor de suprafaţa ferestrei

Buton de derulare care permite selectarea fontului cu care sunt realizate etichetele aparatelor sau a textelor de pe suprafaţa ferestrei

4.2.2. Fereastra de control

Odată cu deschiderea ferestrei panou (Panel) devie activă o fereastră ataşată numită fereastra de control ; în caz că fereastra de control nu este afişată aceasta se poate afişa selectând opţiunea „Show Controls Palette” din meniul Windows al ferestrei panou. Fereastra „Control” permite selectarea unor obiecte de intrare ieşire utilizabile în fereastra panoului de instrumente. Aspectul ferestrei este prezentat în figura 4.2.

Pe suprafaţa ferestrei sunt disponibile o serie de simboluri care definesc o familie de obiecte din care poate fi selectat un obiect. Familia de obiecte se desfăşoară atunci când este executat clik cu mouse-ul pe unul dintre simboluri.

Fiecărui tip de element de intrare şi ieşire îi este ataşată o iconică, numele tipului de variabilă apărând sub bara de titlu

atunci când se face poziţionarea pe iconica corespunzătoare tipului. Iconicele aferente fiecărui tip de element de intrare ieşire sunt:

- Tipul numeric, având următoarele componente : - - constantă numerică; - - ieşire numerică digitală;

- - intrare digitală de tip alunecător vertical; - - intrare digitală de tip alunecător vertical;

- - intrare numerică de tip umplere vertical;

- - intrare numerică de tip umplere orizontal;

- - intrare numerică de tip punct alunecător vertical; - - intrare numerică de tip punct alunecător orizontal;

- - intrare numerică de tip buton

- - intrare numerică de tip scală

- - intrare care are o dublă semnificaţie: codul numeric asociat unei culorii modul de reprezentare curent şi culoare aleasă dintr-o gamă de culori;

Fig. 4.2 Fereastra de control (Control Palette)

69

- - ieşire numerică de tip rezervor;

- - ieşire numerică de tip termometru; - - ieşire numerică de tip aparat de măsură;

- - ieşire numerică de tip manometru;

- - ieşire numerică de tip rampă de culoare.

- Tipul boolean (logic) cu următoarele componente:

- - butoane de comandă;

- - comutatoare;

- - butoane de comandă etichetate; - - butoane radio;

- buton cu LED; - - buton de dialog; - - buton de anulare; - - cutii de control; - - LED-uri şi lămpi de semnalizare;

4.2.2.1.Elementele de intrare-ieşire de tip şir

În LabVIEW se pot defini variabile de tip şir, tablou şi structură; au fost create atât elemente de intrare-ieşire specifice cât şi funcţii puternice cu care aceste elemente să poată fi manevrate.

Elementele de intrare ieşire specifice controlului variabilelor de tip şir accesibile din fereastra de control sunt activate atunci când mouse-ul este poziţionat pe simbolul “String and table”: Se pot selecta următoarele opţiuni: - - element de intrare (control) de tip şir; - - element de ieşire (indicator) de tip şir; - - constantă de tip şir;

În etapa construirii panoului frontal, se introduce o valoare pentru un control/indicator şir de caractere prin unealta de etichetare sau de operare; valoarea actualizată este asociată componentei în urma apăsării butonului Enter afişat în bara orizontală cu meniuri sau a tastei <Enter> din partea dreaptă a tastaturii (zona tastelor numerice). Dacă se apasă tasta <Enter> atunci se va forţa trecerea la un rând nou; valoarea (textul) aflat într-o componenta şir de caractere se poate întinde pe mai multe linii (lăţimea cadrului). Când se editează conţinutul componentei şi cursorul ajunge în dreptul limitei dreapta a spaţiului de editare a controlului/indicatorului, se trece automat la o linie nouă; la un moment dat este vizibilă o singură linie alfanumerică.

70

Dacă valoarea unui control/indicator se întinde pe mai multe linii, se poate afişa bara de defilare (scroll bar) a conţinutului, prin opţiunea meniului Contextual "Afişează / Bara derulare" (Show / Scrollbar). Opţiunea este disponibilă atât pentru controale cât şi pentru indicatoare; pentru a avea acces la aceasta opţiune va trebui, anterior, mărită suficient dimensiunea verticală (înălţimea finală să fie minim triplul înălţimii unei singure linii de text) a componentei (cu unealta de editare) pentru a asigura şi afişarea elementului de control hard de derulare. Dacă nu se măreşte suficient înălţimea componentei, atunci opţiunea din meniul contextual nu va fi disponibilă. O alta componentă de interfaţă care facilitează introducerea/afişarea datelor tip şir de

caractere este tabelul care devine activ la activarea simbolului - - element de tip tabel.

Ca structură de date, un tabel este un tablou bidimensional (matrice), cu elemente (celule) şir de caractere. Elementele sunt grupate pe linii, putând exista mai multe linii. O anumită celulă a tabelului se va găsi la intersecţia dintre linia şi coloana corespunzătoare. Un tabel poate fi control (permite actualizarea datelor conţinute în celule) sau indicator (afişarea valorilor, nu permite actualizarea datelor). Pentru o componenta de interfaţa tabel, se permite accesul prin intermediul meniului contextual, asociat la eticheta proprie, afişarea indexului liniei şi coloanei, afişarea barei verticală/orizontală de derulare, afişarea titlului pentru fiecare linie (Row Headers) şi a capului de tabel (Column Headers) şi definirea unei taste accelerator. Redimensionarea tabelului şi a celulelor se face prin unealta de editare. Numărul de ordine pentru linii/coloane începe de la valoarea zero.

4.2.2.2.Elementele de intrare-ieşire de tip tablou şi grupare de date

Aceste elemente sunt disponibile atunci când se selectează simbolul - Tabele şi ansambluri (array and cluster) din fereastra de controale şi indicatoare. Elementele disponibile sunt:

- - Tablouri de elemente de acelaşi tip

- - Ansambluri de elemente de tipuri diferite

- - Liste de erori de intrare;

- - Liste de erori de intrare.

Tablourile (array) sunt structuri omogene de date, care conţin date de intrare sau de ieşire de acelaşi tip (numeric, boolean, şir de caractere, etc).

După poziţionarea simbolului specific acestora pe suprafaţa ferestrei panou trebuie specificată eticheta ataşată elementului respectiv; specificarea ei ulterioară este dificilă. În acest moment sunt accesibile două căsuţe: căsuţa indicelui în care este specificat numărul de ordine al datei în cadrul tabloului şi căsuţa valoare în care vor fi specificate valorile din tablou. Tipul datelor din tablou precum şi specificarea faptului că tabloul conţine date de intrare sau ieşire se realizează atunci când este precizată prima dată din tablou; pentru aceasta se dimensionează corespunzător căsuţa valoare, se selectează din fereastra de controale şi indicatoare elementul specific tipului de date ce

71

va fi conţinut de tablou şi se poziţionează în interiorul căsuţei valoare a tabloului. Datele conţinute de tablou vor fi controale sau indicatoare după cum elementul poziţionat în căsuţa valoare este control sau indicator.

Elementele deţin în cadrul structurii compuse o poziţie bine determinată; accesul la o anumita celulă se face prin indexare. Pentru un tablou cu N elemente, primul element se găseşte la poziţia 0 iar ultimul element din tablou la poziţia N-l. Un tablou poate avea mai multe dimensiuni; numărul maxim de elemente/dimensiune este 2³¹-1. Dimensiunea unui tablou este supusă dimensiuni memoriei disponibile. Pentru fiecare dimensiune a unui tablou se foloseşte un index.

Variabila tablou definită anterior are o singură dimensiune. Stabilirea sesiunilor suplimentare pentru un tablou se face astfel: • se măreşte (pe direcţia verticală în jos) cu unealta de editare căsuţa indicelui • se selectează opţiunea "Adaugă o Dimensiune" (Add Dimension) din meniul contextual, asociat variabilei tablou. Accesul la o dată dintr-o locaţie a tabloului se poate face în cadrul programului prin specificarea indicelui (indicilor în cazul tablourilor multidimensionale) a locaţiei în case se găseşte aceasta.

O grupare de date (Cluster) este o structură compusă de date. Nu este obligatoriu ca elementele componente să aparţină aceluiaşi tip spre deosebire de limitarea apartenenţei unice a tipului la elementele unui tablou (Array). Se spune ca gruparea de date este o structură eterogenă. Prin operaţia de degrupare programatorul are acces simultan la toate elementele conţinute într-o variabila de tip grup, spre deosebire de tablouri, unde prin indexare se obţine accesul la un singur element. Fiecare element dintr-o structură de tip grupare de date are asociat un număr de ordine: al câtelea a fost adăugat mulţimii; numerotarea începe de la valoarea zero. Numărul de ordine asociat elementelor grupului este actualizat de LabVIEW automat, în momentul realizării operaţiilor de adăugare sau eliminare elemente. Există funcţii predefinite, asociate tipului de data grupare de date, care folosesc numărul de ordine al elementelor în cadrul grupului, pentru accesarea parţilor componente. Crearea unei variabile tip grupare de date pe panoul frontal se face selectând din caseta cu controale o componentă "Grupare de date" (Cluster), opţiunea "Tablou & Grupare de date" (Array&Cluster). După plasarea variabilei grupare de date pe suprafaţa panoului frontal, se adaugă elementele componente: se selectează componenta din caseta cu controale/indicatoare şi se plasează deasupra chenarului reprezentării grafice a variabilei(grupare de date).

4.2.2.3. Elemente de intrare ieşire pentru fişiere de date În LabVIEW există posibilitatea ca datele de intrare sau date intermediare prelucrate de o aplicaţie să fie preluate atât de la elementele de intrare de pe fereastra panou cât şi din fişiere în care acestea au fost stocate anterior. Există de asemenea posibilitatea ca datele obţinute în urma prelucrărilor efectuate să fie depuse în fişiere de date. Vom prezenta în continuare funcţiile principale utilizate în lucrul cu fişierele de date. Operaţiile cu fişiere presupun realizarea în principiu a trei paşi: primul constă în crearea sau deschiderea fişierului existent, al doilea în scrierea sau citirea datelor în respectiv din fişier iar cel de-al treilea constă în închiderea fişierului. Alte operaţii

72

includ: mutarea, copierea ori ştergerea fişierelor, golirea fişierelor, schimbarea caracteristicilor fişierelor şi manipularea căilor fişierelor. Când se creează sau se deschide un director trebuie specificată locaţia acestuia. Diferite sisteme de operare descriu locaţia fişierelor în moduri diferite, dar în DOS şi WINDOWS se utilizează un sistem ierarhic pentru a descrie localizarea fişierului. Ca şi regulă generală, localizarea fişierului presupune descrierea căii (PATH) asociată fişierului pornind din directorul rădăcină şi trecând prin toate directoarele şi subdirectoarele aranjate ierarhic prin care trebuie trecut pentru a ajunge la fişier.

4.2.2.3.1. Tipuri de fişiere de date

În limbajul G există două tipuri principale de fişiere de date: fişiere “curent de octeţi - byte stream” şi fişiere „colecţie de date - datalog” Un fişier “curent de octeţi”, ca nume implicit, este un fişier a cărui unitate fundamentală este octetul. Un fişier “curent de octeţi” poate conţine orice, de la un set omogen de un tip oarecare de date în limbaj G, la o colecţie oarecare de tipuri de date – caractere, numere, sate booleene, tablouri, şiruri, colecţii de date (cluster), etc.. Un fişier text ASCII, un fişier conţinând acest paragraf de exemplu, este poate cel mai simplu fişier “curent de octeţi”. Un fişier “curent de octeţi” este în mod fundamental un fişier foaie de text, care constă din rânduri de numere ASCII, numerele fiind separate de “tab-uri” iar rândurile fiind separate de retur de car (Enter)

Un alt fişier “curent de octeţi” simplu, este un tablou de întregi pe 16 biţi sau simplă precizie, numere cu virgulă, care pot fi obţinute de la un program de achiziţie de date (DAQ). Un fişier “curent de octeţi” mai complex este un în care un tablou de întregi binari pe 16 biţi sau simplă precizie este precedat de un antet de text ASCII care descrie cum şi când au fost achiziţionate datele. Acest antet poate fi un cluster conţinând parametrii achiziţiei cum ar fi un tablou cu canale de achiziţie şi factori de scalare, rate de achiziţie, etc.

Un fişier Excel foaie de lucru este diferit de un fişier Excel text , este de asemenea o formă mai complicată de fişier “curent de octeţi” deoarece conţine text întreţesut cu date de formatare specifice Excel care nu au sens când acesta este citit ca text simplu. În rezumat se poate realiza un fişier “curent de octeţi” care conţine un oarecare tip de date G. Un fişier “curent de octeţi” poate fi creat utilizând funcţii specifice atât de nivel înalt cât şi de nivel jos.

Un fişier “colecţie de date” pe de altă parte constă dintr-o secvenţă de înregistrări identic structurate. Ca şi în cazul fişierelor curent de octeţi componentele înregistrărilor de date pot fi orice tip de date G. Diferenţa este că orice înregistrare de date trebuie să conţină acelaşi tip de date. Fişierele “colecţie de date” pot fi create utilizând numai funcţii de nivel jos.

Un fişier curent de octeţi poate fi scris în mod normal prin adăugarea de noi şiruri, numere sau tablouri de numere de orice lungime la fişier. Se pot de asemenea suprascrie date oriunde în fişier. Un fişier “colecţie de date” poate fi scris adăugând o înregistrare la un moment dat. Înregistrările nu pot fi suprascrise.

Se pot face citiri dintr-un fişier de tip curent de octeţi specificând deplasamentul indexului şi de câte ori date curentul de octeţi specificat trebuie citit. Pentru a citi fişiere de tip “colecţie de date” trebuie specificate lungimea înregistrării sau indexul şi numărul de înregistrări ce trebuie citite.

73

Se utilizează fişierele “curent de octeţi” pentru texte sau foi de date pe care este necesar să le citească alte aplicaţii. Se pot de asemenea utiliza fişiere “curent de octeţi” pentru a înregistra date achiziţionate continuu pe care este nevoie să fie citite secvenţial sau aleatoriu în cantităţi arbitrare. Se vor utiliza fişiere “colecţie de date” pentru a înregistra rezultatele unor teste multiple sau forme de undă care pot fi citite câte una şi tratate individual. Fiăierele “colecţie de date” sunt dificil de citit de alte aplicaţii non-G.

4.2.2.3.2.Controale şi indicatoare de tip cale fişier path.

Aceste controale şi indicatoare devin disponibile atunci când este activată lista path&refnum din fereastra de controale şi indicatoare.

Pentru specificarea numelui fişierului se poate folosi controlul “file path control” din categoria “path&refnum” din fereastra de control, element care are iconica

. Afişarea căii se realizează cu ajutorului indicatorului File path indicator a cărui

iconică este . Atunci când calea nu este validă simbolul din stânga, corespunzător unei căi

valide devine “Not a Path” . Forţarea acestei opţiuni se

O altă cale de a specifica numele fişierului este utilizarea funcţiei “path” din

sublista funcţiilor “file constant” al cărei iconică este O parte din elementele listei path&refnum se referă numărul logic (refnum)

asociat fişierului deschis. Elementele acestea sunt:

Număr logic pentru fişiere de tip DataLog – pentru a defini un tip de fisier se plasează un control corespunzător în interiorul acestui control (lucrează similar elementelor de tip cluster); astfel pentru a crea un număr logic pentru un fişier ce conţine numere se va crea un control ce va conţine un număr; dacă fiecare înregistrare din fişier va conţine o pereche de numere, în interiorul refnum se va introduce un cluster ce va conţine două indicatoare numerice.

Număr logic pentru fişiere “curent de octeţi” precum şi pentru fişiere text sau fişiere binare. În mod tipic se utilizează această funcţie pentru a deschide ori a crea un fişier într-un VI dar se doreşte efectuarea de operaţii în acest fişier de către alt VI. Ca şi control se utilizează pentru operaţii I/O iar ca şi indicator pentru a deschide sau a crea un fişier.

Este un control care se utilizează cu dispozitive pentru calculatoarele Macintosh. Este utilizat pentru a accesa drivere pentru dispozitive seriale.

Număr logic logic eveniment - este utilizat cu funcţii de generare de evenimente. Se utilizează când se generează evenimente într-un VI şi se setează sau se aşteaptă evenimente în alt VI.

74

Număr logic logic pentru conexiune în reţea este utilizat ci VI-uri TCP/IP. Se utilizează pentru deschiderea unei conexiuni în reţea, conexiune ce poate fi utilizată în alt VI.

Număr logic logic aplicaţie sau VI - este utilizat cu funcţii VI server. Ca şi control este utilizat pentru a trece un număr logic logic de la un VI la alt Visau ca specificator de tip pentru intrări în funcţii de referinţă.

Număr logic pentru control automat

Număr logic pentru resurse VISA

Număr logic de notificare este utilizat cu VI-uri de notificare.

Număr logic coadă de aşteptare

Număr logic semafor – este utilizat cu VI-uri semafor; se utilizează când semaforul generat se doreşte a fi utilizat în alt VI.

Număr logic de întâlnire. Trebuie menţionat faptul că rolul de element de intrare sau ieşire specificat este cel implicit (declarat automat la instalarea programului); rolul elementelor de intrare numite „Control” şi elementelor de ieşire denumite „Indicator” poate fi schimbat (Controlul poate fi făcut indicator şi reciproc) din meniul ce se deschide cu clik pa butonul din dreapta al mouse-ului poziţionat pe elementul respectiv, în fereastra panou sau diagramă.

În cazul elementelor booleene (logice) toate butoanele şi cutiile de control sunt declarate implicit elemente de intrare, iar LED-urile şi lămpile de semnalizare sunt considerate implicit elemente de ieşire; ca şi în cazul elementelor numerice intrările pot fi convertite în ieşiri şi invers prin intermediul meniului interactiv deschis cu clik dreapta al mouse-ului poziţionat pe element.

4.2.2.4. Alte elemente de intrare ieşire

- - Liste şi inele de selecţie cu următoarele elemente: - Liste de selecţie care permit selecţia ciclică (în inel) - Liste care permit selectarea unei variante dintr-o listă desfăşurată;

- - Elemente de afişare grafică cu următoarele elemente:

- - Diagramă de forme de undă;

- - Grafice de forme de undă;

- - Grafice de funcţii oarecare;

75

- - Diagramă de intensităţi;

- - Grafic de intensităţi

4.3. Fereastra cu unelte de uz general

Aceasta fereastra poate fi afişată selectând opţiunea Show Tools Paletes din meniu-ul Windows al uneia din ferestrele Panou sau Diagramă. Aspectul ferestrei este prezentat în figura 4.3.

Caseta cu unelte generale cuprinde instrumentele folosite de utilizator la crearea, editarea sau trasarea execuţiei instrumentelor virtuale. Afisarea/ ascunderea casetei cu unelte generale se face prin opţiunea "Ferestre / Afişează Caseta cu Unelte" (Windows / Show Tools Palette) din bara cu meniuri. Caseta cu unelte generale se prezintă în figura 1.16, în care s-a definit un sistem de identificare matriciala a uneltelor. O alta metodă de afişare a casetei cu unelte generale se bazează pe comportarea contextuala: se poziţionează cursorul mouse-ului în interiorul ferestrei Panou Frontal sau Diagramă Bloc şi se apasă simultan tasta <Shift> şi butonul din dreapta mouse-ului. Se exersează cele doua metode de afişare a casetei cu unelte generale prezentate (din bara cu meniuri şi acceleratori).

Semnificaţia elementelor casetei cu unelte generale este urmatoarea: - unealtă pentru operare (fig. 4.3, al) Prin intermediul uneltei se manevrează mai ales valorile elementelor panoului frontal; se foloseşte mai rar în diagrama bloc, la stabilirea valorii constantelor (exemplu: constanta universală true-false, tablou de constante).

- unealtă de editare (fig. 4.3, a2) Se realizează: selectare, mutare, redimensionare obiect.

- unealtă de etichetare (fig. 4.3, a3). Permite introducerea de la tastatură a textului.

- unealtă de interconectare (fig. 4.3, bl) Se foloseşte în fereastra diagramei bloc, pentru a realiza legăturile între noduri (elemente de execuţie). Firele definesc fluxul datelor. În panoul frontal se realizează corespondenţele între controale/ indicatoare ţi terminalele conectorului.

- unealtă de defilare (fig. 4.3, b3) Se realizează defilarea conţinutului ecranului, fără a folosi barele de defilare ale ferestrei.

- unealta prin care se inserează în diagrama bloc un punct de întrerupere a execuţiei IV, pe unul dintre fire (pe un fir se acceptă un singur punct de întrerupere) sau noduri. Se foloseşte în scopul depanării programului (fig. 4.3, cl).

- unealta sondă (fig. 4.3, c2)

Fig. 4.3. Fereastra cu unelte de uz

general

76

Se defineşte o fereastră în care se afişează valoarea transmisă pe un fir de legătură (în faza de execuţie a IV). Se utilizează în diagrama bloc, mai ales pentru depanarea programului.

- Se preia culoarea obiectului asupra căruia se execută clic cu butonul stânga al mouse-ului (fig. 4.3, c3).

- unealtă de colorare (fig. 4.3, d) Se foloseşte mai ales la realizarea panoului frontal, permiţând stabilirea culorii pentru prim planul şi de fundalul obiectelor.

4.4. Fereastra diagramă

În fereastra diagramă descrie operaţiile pe care le realizează programul pornind de la datele de intrare şi valorile mărimilor achiziţionate pe diferite canale. Fiecare operand, operator sau funcţie este reprezentată printr-o iconică specifică ce va prezentată în continuare, iar relaţiile dintre acestea fiind reprezentate prin linii de forme şi grosimi diferite, corespunzătoare diferitelor tipuri de date. Un exemplu de fereastră diagramă este prezentat în figura 4.4. Programul realizează achiziţia pe două canale a semnalelor analogice, calculează produsul eşantioanelor acestora, programul fiind destinat măsurării puterii în circuite monofazate de curent alternativ.

Pentru realizarea codului sursă al IV nu se scriu linii de text reprezentând instrucţiuni (respectând o sintaxă rigidă şi de multe ori anevoioasă), se aleg elemente de execuţie, care se plasează în diagrama bloc şi se realizează legături între acestea, pentru definirea fluxului datelor. Elementele utilizate la realizarea diagramei bloc sunt clasificate în trei grupe generale:

1. noduri; 2. terminale; 3. fire.

Fig. 4.4. Fereastra diagramă a programului putere.vi

77

4.4.1. Nodurile Sunt elemente de execuţie ale limbajului G, ale unui IV. Nodurile din limbajul G corespund operatorilor, funcţiilor predefinite, instrucţiunilor, subrutinelor realizate de utilizator – din limbajele convenţionale de programare structurată. Există şapte tipuri de noduri:

- funcţii predefinite; - subrutine (subIV oferite de firma NI sau utilizator); - instrucţiuni pentru controlul execuţiei programelor (numite structuri); - formule de calcul; - noduri proprietate; - variabile locale şi globale; - componente care permit apelul procedurilor scrise în limbajul C sau Pascal

(numite „Code Interface Nodes” – CINs). Un nod se execută doar în momentul în care există valori disponibile pentru toţi

parametrii de intrare; datele-rezultat sunt furnizate simultan (pe toate ieşirile) în exterior, doar după ce toate operaţiile din corpul nodului s-au realizat. Observaţie: Pentru un nod se respectă, în general, următoarea convenţie:

- parametrii de intrare se definesc în partea stângă a chenarului nodului; - parametrii de ieşire se regăsesc în partea dreaptă. Respectarea convenţiei plasării parametrilor unui nod facilitează „citirea”

diagramei bloc, conform căreia fluxul datelor este din partea stângă spre partea dreaptă. Nodurile sunt disponibile (mai puţin nodurile proprietate asociate obiectelor din

panoul frontal) prin caseta cu funcţii şi IV. Afişarea casetei cu funcţii şi IV (dacă nu este vizibilă) se poate face prin două metode:

• din bara cu meniuri se alege „Windows/ Show Functions Palette” (Ferestre/ Afişează Caseta cu Funcţii);

• având cursorul mouse-ului poziţionat în interiorul ferestrei diagramei bloc se apelează meniul contextual.

4.4.2. Fereastra de funcţii Odată cu deschiderea ferestrei diagramă a unei aplicaţii devine activă o fereastră în care sunt reprezentate funcţii, instrucţiuni şi operatori ce permit realizarea diferitelor aplicaţii. Fereastra de funcţii (Functions) poate fi deschisă din meniul Windows al oricărei din cele două ferestre specifice ale mediului LABVIEW. Aspectul general al ferestrei este prezentat în figura 4.5. Fiecare element al ferestrei corespunde unei familii de funcţii sau operatori, ce devine activă atunci când mouse-ul este poziţionat pe iconica respectivă. Elementele din fereastra de funcţii sunt:

Fig. 4.5. Fereastra de funcţii (Functions)

78

4.4.2.1. Elemente de tip structuri

Elementele de tip structuri şi constante sunt accesibile din fereastra “function” prin poziţionarea mouse-ului pe caseta structuri („Structures”); în acest caz sunt evidenţiate structurile ce pot fi utilizate în realizarea aplicaţiilor în LabVIEW aşa cum se vede în figura 4.6.

Structurile accesibile sunt în acest caz:

4.4.2.1.1. Structura de tratare secvenţială

Structura de tratare secvenţiala. Această structură permite construirea unui ansamblu de subdiagrame numerotate care vor fi executate secvenţial, în ordine crescândă a numerelor. În fereastra acestei structuri se formează subdiagrama de

fluxuri de date. Lista comenzilor de formare a acestei structuri permite adăugarea sau eliminarea unor subdiagrame. Corpul instrucţiunii secvenţiale este format din una sau mai multe subdiagrame; fiecare subdiagramă este reţinută de un cadru. Cadrele sunt dispuse unul peste celălalt

(asemănător cadrelor unui film foto), la un moment dat fiind afişat conţinutul unui singur cadru. Ordinea de execuţie a subdiagramelor reţinute de instrucţiunea secvenţială este dată de numărul de ordine al cadrului; primul cadru are valoarea 0, al doilea cadru al valoarea 1, al treilea cadru are valoarea2 ş.a.m.d. Numărul de ordine al

subdiagramei curente este afişat în partea superioară a chenarului instrucţiunii. În figura 4.7. se prezintă o parte din diagrama bloc a unui VI. Semnificaţia elementelor din diagrama bloc a secvenţei (fig. 4.7.) se prezintă în continuare:

- numărul subdiagramei curente (fig. 4.7,a); - control pentru trecerea la subdiagrama anterioară (fig. 4.7,b); - lista derulantă conţinând numerele cadrelor (fig. 4.7,c); - terminal tip tunel de intrare (fig. 4.7,d); - terminal de tip ieşire local al secvenţei (fig 4.7,e);

Fig. 4.6. Elementele sublistei structuri

Fig. 4.7. Utilizarea instrucţiunii secvenţiale

79

- terminal de tip intrare local al secvenţei (fig. 4.7,f); - comentariu asociat legăturii (fig. 4.7,g);

Trecerea de la o subdiagramă la alta se face prin elementele de control aflate în partea superioară-centru a cadrului instrucţiunii. Afişarea subdiagramei anterioare se face apăsând săgeata orizontală-stânga (fig. 4.7,b); conţinutul subdiagramei următoare se prezintă la apăsarea săgeţii orizontale-dreapta. Se oferă următoarea metodă mai simplă de trecere de la o subdiagramă la alta:

• se selectează cu butonul stânga al mouse-ului căsuţa valoare (fig. 4.7,a);

• în urma selectării este afişată automat o listă derulantă, conţinând numerele cadrelor existente;

• se selectează numărul asociat subdiagramei căutate din lista numerelor.

Datele de intrare, furnizate instrucţiunii secvenţiale printr-un terminal tip tunel (fig. 4.7,d), sunt disponibile tuturor subdiagramelor. Rezultatele obţinute într-o subdiagramă sunt făcute disponibile subdiagramelor următoare printr-un terminal local al secvenţei (de subdiagrame): din meniul contextual, asociat chenarului instrucţiunii secvenţiale se alege opţiunea „Adaugă un Terminal Local Secvenţei” (Add Sequence Local). Un terminal al secvenţei poate fi mutat de programator cu unealta de editare oriunde, pe cadrul instrucţiunii. Terminalul local al secvenţei (definit pentru subdiagrama curentă) se afişează pe cadrul instrucţiunii printr-un dreptunghi plin, de culoare galben-deschis; în urma realizării legăturii la un terminal sursă, terminalul local al secvenţei va afişa o săgeată orientată înspre exteriorul cadrului instrucţiunii (fig. 4.7,e), indicând că „următoarele subdiagrame pot accesa valoarea furnizată”. Un terminal local al secvenţei, definit la nivelul subdiagramei cu numărul de ordine i, este disponibil tuturor subdiagramelor având numărul de ordine j, astfel încât j>i, dar nu este disponibil subdiagramelor anterioare, cu numărul de ordine k<i. În exemplul din figura 4.7,f se indică un terminal de intrare local al secvenţei pentru subdiagrama 1 şi , care se defineşte în subdiagrama numărul 0; terminalul de intrare local al secvenţei indicat în figura 4.7,h, nu se foloseşte în subdiagrama numărul 1. terminalul de intrare local al secvenţei din figura 4.7,i este definit în subdiagrama 2 şi deci nu este disponibil în secvenţa numărul 1. Se recomandă adăugarea unor etichete descriptive firelor conectate la terminale de intrare/ieşire locale secvenţei (fig. 4.7,g) cu scopul uşurării înţelegerii/ depanării/ întreţinerii subdiagramelor. 4.4.2.1.2. Structura de tratare opţională

Structura de tratare opţională. Această structură permite construirea unui ansamblu de subdiagrame numerotate. Structura permite executarea unei subdiagrame în funcţie de numărul(parametrul dat subdiagramei). Parametrul unei subdiagrame poate fi:

-boolean: sunt posibile 2 subdigrame: adevarat şi fals; -numeric: un număr întreg. Lista comenzilor de formare a acestei structuri permite în particular adăugarea sau eliminarea unor subdiagrame. Lista este aproape identică structurii secvenţiale cu o singura excepţie: cuvântul „Frame” este înlocuit cu „Case”.

80

Instrucţiunile condiţională şi de selecţie multiplă sunt realizate în limbajul G prin instrucţiunea Case. Este vorba despre două instrucţiuni reunite într-una singură, selectarea făcându-se după tipul expresiei selector:

- tipul boolean selectează instrucţiunea condiţională (echivalentă cu IF-THEN-ELSE din limbajele de programare bazate pe text);

- tipul numeric şir de caractere selectează instrucţiunea de selecţie multiplă (echivalent cu CASE sau SWITCH din limbajele de programare bazate pe text).

Observaţie: Din mulţimea subdiagramelor reunite în instrucţiunea Case se execută întotdeauna una din cazuri (subdiagrame), spre deosebire de alte limbaje de programare bazate pe text (Pascal, C), în care se putea să nu se execute nici una dintre alternative (cazul lipsei ramurilor opţionale ELSE). Terminalul selector se află întotdeauna pe partea stângă a chenarului instrucţiunii şi poate fi mutat de utilizator; este obligatoriu să se realizeze o legătură la acesta. După preluarea instrucţiunii de selecţie din caseta cu funcţii şi IV şi plasarea în diagrama bloc, se observă că etichetele case sunt: „ADEVĂRAT” şi „FALS” (TRUE şi FALSE); În acest caz instrucţiunea de selecţie este echivalenta instrucţiunii condiţionale THEN-ELSE. Dacă sursa pentru terminalul selector este de tip numeric întreg se verifică schimbarea etichetelor case din FALSE în 0; respectiv TRUE în 1. Dacă valoarea expresiei selector este de tip real, atunci se realizează automat rotunjirea la primul întreg. Valoarea etichetelor case se poate modifica cu unealta de etichetare; poate fi de tip numeric întreg, boolean, şir de caractere. Nu se permit valori reale pentru etichetele selectoare. Valoarea etichetei case trebuie să aparţină tipului expresiei selector; în caz contrar, se semnalează eroare: valoarea etichetei case este afişată în culoare roşie.

4.4.2.1.3. Structura repetitivă for

Structura de tratare repetitivă „For Loop”. Structura de tratare repetitivă de tip „for” permite efectuarea calculelor iterative. Fluxul de date plasat în aceasta structura este executat de N ori, indicele ciclului variind de la 0. Comenzile permit în particular adăugarea sau eliminarea unor rezultate provenite din iteraţiile precedente cu ajutorul registrelor de decalare „Shift Register”. Registrele de decalare permit atât stocarea variabilelor calculate la un moment dat cât şi conservarea valorilor anterioare ale unei variabile. Transferul elementelor unui tablou (aflat în exteriorul structurii repetitive) în interiorul subdiagramei instrucţiunii „FOR” se face printr-un tunel de intrare, situat pe chenarul buclei. Tunelul de intrare permite implicit auto-indexarea în cazul instrucţiunii For: elementele tabloului sunt furnizate pe rând subdiagramei, câte unul la fiecare iteraţie, începând cu primul element (de indice 0); dimensiunea tabloului dă valoarea numărului de ciclări. Întregul tablou este furnizat subdiagramei la fiecare buclă, dacă pentru acel tunel de intrare este dezactivată opţiunea de auto-indexare. Auto-indexarea se întâlneşte şi la nivelul tunelurilor de ieşire: valoarea furnizată, la fiecare iteraţie, tunelului de ieşire este reţinută într-un tablou, a cărui dimensiune creşte automat la

81

fiecare buclare; tabloul este furnizat în exteriorul instrucţiunii For doar după finalizarea execuţiei nodului. Activarea/inactivarea auto-indexării pentru un terminal tunel se face selectând opţiunea „Activează Indexarea”/ „Dezactivează Indexarea” (Enable Indexing/ disable Indexing) din meniul contextual asociat tunelului. Pentru verificarea vizuală a aplicării auto-indexării la nivelul unui tunel de pe chenarul instrucţiunii For, programatorul se bazează pe codificarea complexităţii structurii datei în reprezentarea grafică a legăturii: firul (legătura) prin care se furnizează în întregime un tablou este mai gros decât cel asociat furnizării unei valori singulare (element de tablou). Dacă există mai multe tunele de intrare (de pe aceeaşi instrucţiune „For”) pentru care se aplică auto-indexarea, atunci numărul de iteraţii este dat de valoarea minimă (Min) dintre valoarea furnizată terminalului N şi dimensiunile tablourilor; vor fi executate doar primele Min elemente ale tablourilor. Este posibilă transferarea rezultatelor între iteraţii succesive; se declară nişte variabile locale instrucţiunii For, numite registre de transfer. Crearea unui registru de transfer se face prin opţiunea „Adaugă Un Registru de Transfer” (Add Shift Register), din meniul contextual asociat numărului instrucţiunii „For”. Nu este limitat numărul registrelor de transfer care se pot defini pentru o structură „For”. Un registru de transfer este alcătuit dintr-o pereche de terminale dispuse pe aceeaşi orizontală, unul în partea stângă şi altul în partea dreaptă a numărului structurii. Ambele terminale pereche se deplasează simultan, la citirea unuia dintre ele. Valoarea este furnizată terminalului drept după încheierea ciclului; la începutul ciclului următor, valoarea stocată (în iteraţia anterioară) în terminalul drept este transferată terminalului stâng. La ultima apelare, valoarea atribuită terminalului din dreapta este furnizată în exteriorul secţiunii, dacă există o astfel de legătură. Se recomandă iniţializarea registrului de transfer înainte de execuţia noii iteraţii a instrucţiunii For; se furnizează din exteriorul structurii o apelare terminalului stâng 4.4.2.1.4. Structura de control repetitiv While Loop

Structura de control repetitiv „While Loop”. Structura de control repetitiv „while” permite efectuarea calculului iterativ atunci când nu se cunoaşte numărul de repetări. Oprirea ciclului de iteraţii este condiţionată boolean: repetarea se executa când valoarea booleană este adevărată. Oprirea executării structurii este comandată de o variabilă tip boolean „opreşte dacă este fals”. Ca şi în cazul structurii de control precedente, lista comenzilor de formare este identica cu cele anterioare. Prin intermediul registrelor de transfer se permite furnizarea rezultatelor între iteraţii seccesive al instrucţiunii repetitive. Definirea şi utilizarea registrelor de transfer pentru structura „Do-While” este identică cu cea prezentată la instrucţiunea „For”. Auto-indexarea nu se aplică implicit pentru un tunel (intrare/ieşire) de pe structura „Do-While”, ca şi în cazul instrucţiunii For: programatorul trebuie să indice explicit pentru fiecre tunel, dacă se doreşte utilizarea auto-indexării. Numărul de repetări ale corpului modului „Do-While” este controlat, în primul rând, de valoarea logică („Adevărat”) a expresiei de oprire şi mai puţin de dimensiunea

82

unui tablou furnizat subdiagramei printr-un tunel de intrare, care foloseşte auto-indexarea. După parcurgerea (prin auto-indexare) tuturor elementelor tabloului, valoarea implicită asociată tipului elementului de tablou se va transfera corpului buclei, în toate iteraţiile următoare, astfel:

• dacă tipul elementului de tablou este real, atunci valoarea implicită este 0.00E+0;

• dacă tipul elementului de tablou este un număr întreg sau natural, valoarea implicită este 0.

4.4.2.1.5. Structura formule de calcul

Structura „formule de calcul”. Aceste structuri permit calcularea unui ansamblu de formule separate de punct şi virgulă „ ;”. Aceste formule pot conţine majoritatea funcţiilor matematice. Aceste formule duc la apariţia unor variabile de intrare şi de ieşire care pot fi selectate şi denumite de utilizator, plecând de la lista comenzilor de formare a variabilelor. Calculele sunt scrise în mod explicit în interiorul chenarului structurii „formule de calcul” utilizând o scriere similară expresiilor aritmetice din limbajul de programare C. Dacă ansamblu formulelor nu încape în chenarul structurii „formule de calcul”, se poate crea o mică fereastră de desfaşurare (scrollbar). Fereastra de desfăşurare se poate obţine cu ajutorul comenzilor. Avantajele utilizării formulei de calcul sunt următoarele:

• se uşurează scrierea, depanarea şi înţelegerea formulelor matematice; • se elimină erorile, care pot să apară la transcrierea formulelor

matematice complexe în limbajul G, care foloseşte noduri şi fire; • se reduce suprafaţa ocupată în diagrama bloc de formulele matematice,

implementate prin noduri şi fire. Instrucţiunile de prelucrare din interiorul nodului se scriu într-o sintaxă

asemănătoare limbajelor de programare, bazat pe text. Nodul formulă de calcul defineşte operaţiile prin una sau mai multe instrucţiuni de atribuire fiecare terminându-se prin caracterul punct şi virgulă („;”). Se precizează că o instrucţiune se poate întinde pe mai multe linii de text; numărul maxim de caractere, care încap pe o linie, este dat de dimensiunea tipului de caractere folosit şi de dimensiunea orizontală a nodului formulă de calcul. Mărirea dimensiunii orizontale a nodului se face cu unealta de editare, pentru a se afişa cât mai multe caractere pe o linie; în general, se doreşte a se afişa câte o instrucţiune de atribuire pe fiecare linie, pentru că se uşurează munca programatorului de verificare a formulelor introduse. Prelucrările realizate de instrucţiunile de atribuire din interiorul nodului se bazează (în general) pe datele furnizate din exteriorul formulei de calcul, prin intermediul variabilelor de intrare. Rezultatele operaţiilor efectuate de nodul formula de calcul sunt transferate în exterior prin variabila de ieşire. Variabilele de intrare şi de ieşire se definesc pe chenarul reprezentării grafice a nodului: din meniul contextual asociat chenarului se alege opţiunea „Adaugă o Intrare”/ „Adaugă o Ieşire” (Add Imput/ Add Output), după care se indică identificatorul variabilei nodului formulă de calcul şi poate fi deplasat de programator oriunde pe perimetrul acesteia. Se încearcă respectarea convenţiei: variabilele de intrare se plasează în partea stângă, iar variabilele de ieşire în partea dreaptă a chenarului structurii formulă

83

de calcul. Variabila (definită pe chenarul nodului) este referită în instrucţiunile de atribuire prin numele acordat (identificatorul) de programator.

4.4.2.1.6. Variabile locale Variabilele locale corespund elementelor de pe fereastra panou şi sunt accesibile

numai din fereastra diagramă. Sunt utile atunci când nu se pot realiza legături la elementele de fereastra diagrama cărora le sunt ataşate variabilele locale. Pentru crearea unei variabile locale se procedează astfel: - Se selectează din caseta de structuri simbolul şi se poziţionează pe în fereastra diagramă – atunci când butonul mouse-ului este eliberat variabila locală este simbolizată pe fereastra diagramă astfel:

- Se selectează din meniu-ul contextual asociat variabilei locale opţiunea “select item”, care are ca urmare afişarea tuturor etichetelor elementelor de pe panoul frontal (sunt marcate cele care deja au ataşate variabile locale) – în interiorul simbolului variabile va fi afişată eticheta elementului selectat.ca în figura 2.

O altă posibilitate de realizare a variabilelor locale este de a selecta - din meniu-ul contextual asociat elementului căruia dorim să-i asociem variabila locală - opţiunea “Create-local variabile” Unui control sau indicator de pe fereastra panou şi pot corespunde mai multe variabile locale.

4.4.2.1.7. Variabile globale

Se utilizează pentru schimbul de date între diferite subIV ale aceleiaşi aplicaţii sau între IV-uri ce se execută în paralel. O variabilă globală este un IV care are numai fereastră panou ce conţine toate elementele care se doreşte să fie accesibile şi altor subIV-uri.

Pentru crearea unei variabile globale se procedează astfel: - din caseta de structuri se selectează structura global cu simbolul şi

se poziţionează pe fereastra diagramă – la eliberarea mouse-ului va apărea pe fereastra diagramă acelaşi simbol ca şi al variabila locală;

- se selectează din meniu-ul contextual asociat variabilei opţiunea “Open front panel” care are ca urmare crearea unei ferestre panou asociată variabilei globale;

- se poziţionează elementele de intrare şi ieşire specifice variabilei cu aceleaşi etichete sau etichetate specific şi se salvează variabila globală

Pentru utilizarea elementelor de intrare-ieşire dintr-o variabilă globală într-un alt IV se selectează din caseta de funcţii opţiunea “Select a VI” şi se selectează numele IV-ului în care a fost salvată variabila globală; se poziţionează acest IV pe fereastra diagramă şi se selectează elementele utilizate.

4.4.2.2. Alte elemente ale ferestrei de funcţii

4.4.2.2.1. Elemente de tip aritmetic

Operaţie aritmetică „plus” .

Fig. 2. Variabila locală

84

Operaţie aritmetică „minus”.

Operaţie aritmetică „înmultire”.

Operaţie aritmetică „împartire”.

Parte intraga si restul.

Incrementare

Decrementare

Suma elementelor unui vector. Acest simbol grafic însumează toate elementele unui vector.

Multiplicarea elementelor unui vector. Această funcţie este utilizată la multiplicarea tuturor elementelor unui vector.

Şir de operaţii.

Valoarea absolută. Calculul valorii absolute a unui număr „x”.

Rotunjire către cel mai apropiat întreg.

Rotunjire către cel mai mic număr întreg (- infinit).

Rotunjire către cel mai mare număr întreg (+infinit).

Număr aleatoriu. Generarea unui număr aleatoriu cuprins între 0 şi 1, în formatul unui număr cu virgulă flotantă şi precizie extinsă.

Rădăcina pătrată. Este utilizat la calculul rădăcinii pătrate a unui număr „x”.

Negarea valorilor de intrare.

Dimensionarea mărimii de intrare cu multiplu de 2 la puterea „n”.

Determinare semn. Dacă numărul este mai mare decât 0 devine 1; dacă este mai mic decât 0 devine –1; dacă este egal cu 0 el devine 0.

Valoarea reciprocă a valorilor de intrare.

4.4.2.2.2. Elemente de tip constante

Constante numerice.

Introducerea unor intrări sau ieşiri (constante). Intrări şi ieşiri prin texte.

Funcţii de conversie. Conversia unui număr întreg codat pe 32 biţi. Există toate conversiile posibile. Conversia unei serii de octeţi fără semn într-un şir de caractere: primul caracter este primul octet luat ca o valoare ASCII; conversia unui

85

şir de caractere: în serii de octeţi fără semn (primul octet traduce valoarea ASCII a primului caracter din lanţul de caractere).

4.4.2.2.3. Elemente de tip trigonometric şi logaritmic

Funcţie trigonometrică. Funcţia sinus: sin(x) cu „x” în radiani; funcţia sinus: cos(x) cu „x” în radiani; funcţia sinus şi cosinus: sin(x)şi cos(x) cu „x” în radiani; funcţia sinus cardinal: sin(x)/x cu „x” în radiani.

Funcţia logaritmică.

De la complex la părţi imaginare şi reale. Extragerea părţilor reale şi imaginare dintr-un număr complex; crearea unui număr de tip complex plecând de la parţi reale şi imaginare.

Element de tip constantă a listei Function. Adăugarea de numere constante.

4.4.2.2.4. Elemente de tip logic

Operator logic „ŞI”. Realizarea funcţiei logice „ŞI” se face între două intrări de tip boolean.

Operator logic „SAU”. Realizarea funcţiei logice „SAU” se face între două intrări de tip boolean.

Operator logic „EXCLUSIV SAU ”

Operator logic „NOT”. Realizarea funcţiei logice NOT.

Şir de operaţii.

Operator logic „ŞI NEGAT”.

Operator logic „SAU NEGAT”.

Operator logic „EXCLUSIV SAU NEGAT”.

Operator logic „Implică”.

Şir de elemente „ŞI”.

Şir de elemente „SAU”. Introducerea unui număr şi ieşirea unei valori booleene de 8, 16, 32elemente. Introducerea unei valori booleene de 8, 16, 32 elemente şi ieşirea unui număr.

Vectorul are simbolul „0” pentru valoarea fals şi „1”pentru adevărat.

86

Constante programabile booleene.

4.4.2.2.5. Elemente de tip şir de caractere

Lungimea unui şir de caractere. Funcţie ce returnează lungimea unui şir de caractere. Este o funcţie de prelucrare a şirurilor de caractere.

Lungimea unui şir de caractere. Conectarea de şiruri de caractere. Funcţia se aplică la mai mult de două şiruri utilizând „Add Element” din lista obţinuta prin punctarea de pe obiectul de pe ecran.

Subansamblu unui şir de caractere.

Împărţirea unui şir de caractere.

Alegerea unui circuit cu mai multe şiruri de caractere şi ataşarea lor la şirul de caractere principal.

Alegerea unui şir de caractere specificat de index şi anexare lui la acest şir.

Selectare şi atribuire. Dacă se selectează valoarea „True” i se atribuie şirul de caractere adevărat. Dacă se selectează valoarea „False” i se atribuie şirul de caractere fals.

Compară începutul şirului cu fiecare element din vector.

Analizează începutul şirului care este adevărat sau fals şi returnează valoarea booleană adevărat sau fals.

Căutarea unui şir de caractere.

Alegerea şi formarea unui şir de caractere.

Schimbarea din şir de caractere în format vectorial.

Schimbarea unui vector în format şir de caractere.

Conversia unui şir de caractere în vector (în zecimal, în hexazecimal, în octal, în exponenţial, etc.).

Conversia caracterelor din litere mici în litere mari. Conversia caracterelor din litere mari în litere mici.

Rotaţia primului caracter. Inversarea şirului de caractere.

87

Conversia din vectorial în şir de caractere prin cale relativă sau absolută. Şir de caractere constante.

Lipsa şirului de caractere.

Propune mişcarea în sens invers.

Circuit de alimentare.

Sfârşitul circuitului de alimentare. Declanşator al butonului de apăsare.

4.4.2.2.6. Elemente de tip vectori şi matrice

Dimensiunea unei matrice.

Extragerea unui element dintr-un vector.

Înlocuirea elementelor din matrice în index. Elementele noi trebuie să fie de acelaşi tip cu vectorul.

Returnează poziţia vectorului de la începutul indexului şi conţine legăturile elementelor vectoriale.

Schimbă dimensiunile oricărui vector în concordanţă cu valoarea şi dimensiunile vectorului.

Iniţializarea vectorului.

Adăugarea elemente unui vector.

Rotaţia unui vector. Rotaţia unui vector se realizează cu o linie de „n” elemente.

Transpusa unei matrice.

Căutarea unui element de o singură dimensiune.

Sortarea elementelor unui vector. Această sortare se realizează în ordine ascendentă a elementelor unui vector.

Căutarea valorii de maxim şi minim dintr-un vector şi returnarea valorii şi poziţiei de maxim şi minim în vector.

88

Împărţirea unui vector la o poziţie precizată „i” şi returnarea celor doi vectori împărţit.

Interpolarea unei serii de puncte. Interpolarea unei serii de puncte obţinute se face plecând de la un vector sau de la un grafic. Seria este indexată fie printr-un index fix, fie prin valoarea abscisei „x” a graficului.

Caută o pereche de valori (a şi b) astfel încât coordonata Y să fie mai mare decât a doua valoare .

Distribuţia unui vector de o singura dimensiune.

Împărţirea elementelor de intrare la elementele de ieşire.

Indici matriciali. Conversia unui vector unidimensional într-o celulă în care fiecare element a

celulei este de acelaşi tip ca elementul vectorului. Conversia unei celule într-un vector unidimensional de acelaşi tip.

Descompunerea unui grup de date. Se realizează descompunerea unui grup de date în elementele componente cu respectarea numărului de ordine.

Crearea unui grup de date. Se realizează crearea unui grup de date plecând de la elemente separate (component) şi eventual din alt grup de date (cluster) deja format.

Rotaţia unui vector. Crearea unui vector compus din elemente pentru trasarea unei curbe multiple.

Vectorul unui grup de date. Crearea unui vector compus dintr-un grup de date.

Indicii celulelor.

Conversia unui vector unidimensional într-o celulă în care fiecare element a celulei este de acelaşi tip ca elementul vectorului.

Conversia unei celule într-un vector unidimensiomal de acelaşi tip.

4.4.2.2.7. Elemente de comparare

Funcţie de comparaţie. Compararea unui număr „x” cu un număr „y” şi returnarea unei valori booleene „true” sau „false” corespunzător satisfacerii relaţiei de egalitate dintre „x” şi „y”.

89

Funcţie de comparaţie. Compararea unui număr „x” cu un număr „y” şi returnarea unei valori booleene „true” sau „false” corespunzător satisfacerii relaţiei de inegalitate dintre „x” şi „y”.

Funcţie de comparaţie. Compararea unui număr „x” cu un număr „y” şi returnarea unei valori booleene „true” sau „false” corespunzător satisfacerii relaţiei „mai mare” dintre „x”şi „y”.

Funcţie de comparaţie. Compararea unui număr „x” cu un număr „y” şi returnarea unei valori booleene „true” sau „false” corespunzător satisfacerii relaţie „mai mic” dintre „x” şi „y”.

Funcţie de comparaţie. Compararea unui număr „x” cu un număr „y” şi returnarea unei valori booleene „true” sau „false” corespunzător satisfacerii relaţiei „mai mare sau egal” dintre „x” şi „y”.

Funcţie de comparaţie. Compararea unui număr „x” cu un număr „y”şi returnarea unei valori booleene „true” sau „false” corespunzător satisfacerii relaţiei „mai mic sau egal” dintre „x” şi „y”.

Functie de comparatie „egal cu zero”.

Funcţie de comparaţie „diferit de zero”.

Funcţie de comparaţie „mai mare decât zero”.

Funcţie de comparaţie „mai mic decât zero”.

Funcţie de comparaţie „mai mare sau egal cu zero”.

Funcţie de comparaţie „mai mic sau egal cu zero”.

Funcţie de comparaţie.

Funcţie de comparaţie. Compararea a două numere „x” şi „y” cu returnarea valorii maxime şi minime.

Functie in domeniu.

Funcţie de not a number.

Funcţie de comparaţie enough string/path.

Funcţie de comparaţie tip caracter- decimal digit digit.

Funcţie de comparaţie. caracter- hex digit digit.

Funcţie de comparaţie. caracter- octal digit digit.

90

Funcţie de comparaţie. caracter- caracter printabil.

Funcţie de comparaţie. Caracter - spaţiu

Funcţie de comparaţie clasa de caracter.

4.4.2.2.8. Elemente de tip control dialog şi timp

Contor cicluri ceas. Funcţie care afişeaza valoare curentă a numărului de cicluri furnizate de ceasul calculatorului de la punerea sa în funcţiune(1ciclu=1ms)

Ciclu de aşteptare (ms). Funcţie care introduce o aşteptare de N milisecunde şi apoi returnează valoarea lui N.

Aşteaptă până la ciclu următor. Funcţie care permite sincronizarea activităţilor. Aşteaptă ca numărul de cicluri ale ceasului (în ms) să devină un multiplu a valorilor de intrare.

Returnează data şi ora. Funcţie care returnează data (ziua, luna, anul, data) şi ora în secunde.

Înregistrează timpul în secunde. Acest element cuprinde nouă celule care are următoarele elemente: secunde; minute; ore; zile; luni; ani; numărul săptămânii; numărul lunii din an; numărul zero pentru post-meridian sau unu pentru ante-meridian.

Trecerea din secunde în dată de afişare. Acest element are aceleaşi componente ca şi cel anterior.

Fereastra de dialog cu un buton. Afişarea unei ferestre de dialog cu un singur buton de tip OK. Mesajul este limitat la 255 de caractere. Denumirea butonului este limitată la 12 caractere.

Fereastra de dialog cu doua butoane. Afişarea unei ferestre de dialog cu doua butoane de tip OK şi Cancel. Mesajul este limitat la 255 de caractere. Denumirea butonului este limitată la 12 caractere. Pentru OK butonul ia valoarea „true”, iar pentru Cancel valorea „false”.

91

4.4.2.2.9. Controlul erorilor

Erori simple.

Erori general.

Găsirea primei erori.

4.4.2.2.10. Elemente de tip fişiere intrare ieşire

Scrierea informaţiilor cuprinse în tabelele fişierelor I/O.

Citirea informaţiilor cuprinse în tabelelor fişierelor I/O.

Scrierea caracterelor în fişier.

Citirea caracterelor din fişier.

Citirea liniilor din fişier.

Fişier binar.

Deschiderea unui fişier cu o fereastră de dialog.

Citirea unui fişier. Deschiderea unui fişier cu o fereastra de dialog se executa cu:

- refnum: numărul logic al fişierului de citit; - data: lanţul de caractere de citit în fişier;

- după refnum: duplicarea numărului logic al fişierului de concatenat.

Scrierea unui fişier. Deschiderea unui fişier cu o fereastră de dialog: - refnum: numărul logic al fişierului de scris; - data: lanţul de caractere scris în fişier; - după refnum: duplicarea numărului logic al fişierului de concatenat.

Închiderea unui fişier: refnum: numărul logic al fişierului de închis.

Crearea unui nou traseu după nume sau un traseu relativ existent în baza de date a traseului.

Returnarea numelui sau ultimului component al traseului şi crearea traseului următor al componentelor.

92

Fişiere constante.

Înaintarea fişierelor.

Funcţii specifice comunicaţiei pe protocoale standard. 4.4.2.2.11. Elemente de programare necesare controlului unei conumicaţii paralele din sublista GPIB

Magistrala Traditional GPIB : norma IEEE 488.1 (1978). Principalele instrumente virtuale disponibile pentru standardul mai simplu IEEE 488.1 sunt următoarele: - citirerea unui portGPIB; - scrierea unui port GOIB; - căutarea unui periferic;

- sincronizarea unei transmisii; - aducerea la zero a unei transmisii; - aşteptarea unui răspuns de la un periferic; - initializarea unei comunicaţii.

Magistrala 488.2: norma IEEE 488.2 (1987). Acest nou stand ia în considerare noile protocoale de comunicaţii cu instrumentele de măsură, având ca scop prioritar standardizarea măsurătorilor programabile.

4.4.2.2.13.Instrumente virtuale de control a transmisiei seriale

Transmisia serială a datelor este una dintre cele mai răspândite dintre două echipamente numerice. Instrumentele de programare necesare controlului comunicaţiei seriale sunt disponibile sub forma a 5 instrumente virtuale aflate în sublista Serial a listei Function, după cum urmează: - iniţializarea comunicaţiei; - numărul de octeţi transferat; - citirea portului serial; - scrierea portului serial; - oprirea comunicaţiei seriale.

4.4.2.2.14. Instrumente virtuale pentru controlul placii de achiziţie Funcţiile disponibile în controlul plăcii de achiziţie sunt următoarele: -funcţii elementare: - configuraţia plăcii; - lansarea achiziţiei;

93

- citirea datelor analogice; - stergerea datelor citite;

-funcţii complete: - achiziţii complete; - achiziţii continue complete.

Funcţii de baza pentru gestionarea intrărilor analogice (sublista de comenzi Analog Input).

Funcţii de bază pentru controlul ieşirilor analogice (sublista de comenzi Anolog Output).

Funcţii de programare a intrărilor/ieşirilor numerice (Sublista de comenzi Digital Input & Output).

Funcţii de calibrare şi configurare a plăcii de achiziţii şi a intrărilor/ieşirilor analogice complexe (Sublista de comenzi Counter/Timer).

Funcţii complete de achiziţii şi de restituire de date analogice, configurări de detalii (sublista de comenzi Calibration & Config.). 4.4.2.2.15. Elemente ale listei ANALYSIS

Generarea semnalelor numerice: semnal sinusoidal; semnal tip impuls Dirac; semnal rampă; semnal dreptunghiular; zgomot alb.

Transformata Fourier.Calculul trasformatei Fourier a unui semnal real. Rezultatul este complex. Daca numărul „n”de eşantioaneX(xj) este de forma 2m atunci calculul se face conform unui algoritm FFT. Reprezentarea spectrală obţinută (amplitudinii xi): * x0 : valoarea continuă a semnalului; * x1 : prima armonică sau fundamentala * x2 : a doua armonică …………………….. * xn/2-1 :a n/2-1 armonică * xn/2 : armonica lui Nyquist (punct de simetrie) * xn/2+1 : a n/2+1 armonică ……………………..

* xn-2 : a doua armonică * xn-1 : prima armonică.

Valori în lipsa precizării: x=0.

Măsurări numerice.

94

Filtre numerice. Filtrele numerice pot fi: filtru tip Butterworth; filtru tip Chebyshev; filtru tip Bessel.

Ferestre numerice. Fereastră numerică triunghiulară permite obţinerea unui semnal y(t), plecând de la semnalul x(t) definit de eşantioanele (xi); fereastra Hanning permite obţinerea unui semnal y(t), format din eşantioanele (yi), plecând de la un semnal x(t)format din eşantioane x(t).

Elemente de tip regresie ale sublistei ANALYSIS

Curbe corespunzătoare mediei valorilor punctelor.

Elemente de tip statistic ale sublistei ANALYSIS

Calculul valorii medii a unui ansamblu de puncte; calculul valorii medii şi a abaterii standard a unui ansamblu de numere; calculul probabilitaţii conform legii normale a variabilei „x”: p = P(X<=x).

Elemente de tip algebră liniară ale sublistei ANALYSIS

Produsul matrice vector. Se calculează produsul unei matrici A cu un vector; calculul produsului a două matrici A şi B; calculul diagonalei unei matrici.

Elemente de tip funcţii matriciale ale sublistei ANALYSIS

Funcţie numerică avansată. Combinaţii liniare. Calculul combinaţiei liniare a unui şir de numere X(i) şi Y(i): Y(i)=X(i)*a(scale)+b(offset). Calculul valorii maxime absolute a unui şir de numere X(i) şi ieşirea Y(i) a şirului de numere normalizat cu valoarea absolută: maxim = 1.

4.4.2.2.16. Simboluri de instrumente virtuale create ca exemple

Simulează impulsurile electrice în funcţie de valoarea unui vector dint-o placă de achiziţie.

Simulează temperatura primită pas cu pas de la placa de achiziţie.

Generator de semnal.

95

4.4.2.2.17. Fereastră pentru alegerea elementelor diverse

Apelarea librăriei funcţionale.

Cod extern. Acest simbol grafic reprezintă un modul extern, numit CIN, scris în C sau alt limbaj de programare.

Oprirea programului. Oprirea programului când la intrare apare valoarea TRUE.

Părăsirea programului LabVIEW când la intrare apare valoarea TRUE.

Producerea unui sunet ca şi ferestrele Windows.

Lanţ de chemare a următorului nivel.

Tipăreşte datele din programul LabVIEW.

Fereastră ajutor. Aceasta arată, ascunde sau mută într-un loc fereastra de ajutor.

Folosirea instrumentelor existente în LabVIEW.

Părăsirea aplicatie LabVIEW. Schimbarea primilor 16 biţi ai unui cuvânt cu ultimii 16 biţi ai aceluiaşi cuvânt de 32 biţi.

Setează, generează şi asteaptă evenimentele.

Memoria .Permite scrierea unui număr de cuvinte sau de caractere.

Instrumente diverse.

4.5. Programarea canalelor de intrare analogice

Programarea canalelor de intrare analogice se realizează cu ajutorul funcţiilor specifice prezente în submeniul „Intrări analogice” (Analog input) al ferestrei de funcţii.

Achiziţia de semnale analogice poate fi programată pornind de la un comenzile specifice submeniului de intrări analogice respectându-se un principiu de bază şi anume, aranjarea secvenţială a funcţiilor în vederea executării coerente a programului; exemplu :configurarea plăcii, pornirea achiziţiei, citirea datelor, oprirea achiziţiei. Programarea acestor aranjări secvenţiale de funcţii se realizează printr-o înlănţuire de conexiuni numite TASK ID. În unele cazuri (funcţii complete de achiziţie ) nu mai este necesară realizarea întregii secvenţe.

96

Canalele pot fi programate individual sau în grupuri, pentru achiziţionarea unor eşantioane individuale sau a unor grupuri de eşantioane (necesar în cazul semnalelor dinamice cu variaţii rapide). Se consideră că se pot monta mai multe plăci de achiziţie pe un singur calculator, fiecare fiind codificată numeric, prima placă fiind codificată cu 0. În general vor trebui specificate pentru fiecare canal în parte următoarele informaţii:

- Placa (Device) – Reprezintă numărul plăcii în care se află canalul, număr ataşat la configurarea în WINDOWS a plăcii, sau numărul ataşat de programul NI-DAQ în secvenţa de butare.

- Canal (Channel) – Reprezintă numărul (în cazul programării individuale) sau o listă de canale (în cazul programării unui grup de canale)

- Limita superioară – specifică valoarea superioară a valorii mărimii analogice de pe canalul respectiv

- Limita inferioară – specifică valoarea inferioară a valorii mărimii analogice de pe canalul respectiv.

- Intrare cablaj erori – un canal prin care vor intra codurile de eroare precizările aferente erorilor de la dispozitivele cu care este legată funcţia respectivă;

- Ieşire cablaj erori canal de ieşire a erorilor apărute în funcţia respectivă sau a celor ce au fost aplicate pe canalul de intrare al funcţiei respective;

- Task ID identificator ce reuneşte un grup de canale în vederea operării în acelaşi mod. Unele funcţii au prevăzută această funcţie numai ca ieşire, unele ca intrare şi ieşire iar altele numai ca intrare.

Funcţiile de intrare analogice au numeroşi parametri dar, uneori, datorită faptului că valorile acestor parametri corespund unei utilizări clasice a funcţiei, nu este necesar să fie precizate decât valorile parametrilor principali, ceilalţi luând o serie de valori implicite. În prezentarea funcţiilor ne vom referi numai la parametri principali. Valorile parametrilor secundari sunt prezentate în help-ul interactiv al LABVIEW, între paranteze, existând o diferenţă între caracterele cu care sunt tipăriţi parametri principali şi cei secundari (parametri principali apar îngroşaţi). Submeniul are în componenţă următoarele categorii de comenzi (Fig 4.8):

- Funcţii de achiziţii pentru programare de nivel redus (Easy Analog Inputs VIs;

- Funcţii de achiziţii pentru programare de nivel mediu (Intermediate Analog Inputs VIs)

Fig 4.8 Submeniul Intrari analogice

97

- Funcţii de achiziţii pentru programare de nivel înalt Advanced Analog Inputs VIs)

- Funcţii utilitare pentru intrări analogice ( Analog Input Utility VIs)

4.5.1. Funcţii de achiziţii pentru programare de nivel redus Funcţiile pentru programare de nivel redus permit cea mai simplă realizare a

instrumentelor virtuale de achiziţii date. De obicei aceste funcţii apelează funcţii de nivel intermediar care la rândul lor apelează funcţii de nivel ridicat. Funcţiile pentru programare de nivel redus sunt:

- Achiziţionare eşantioane semnal periodic pe un canal (AI Acquire Waveform) care are ca semnale specifice:

- Numar eşantioane(Number of samples) – semnal de intrare ce precizează numărul de eşantioane achiziţionate de funcţie;

- Frecvevenţa de eşantionare (sample rate) – semnal de intrare ce specifică frecvenţa de eşantionare (valoarea implicită este de 1000Hz);

- Forma de undă (Waveform) semnal de ieşire care reprezintă un tabel ce conţine valorile eşantioanelor preluate.

- Achiziţonare eşantioane semnal periodic pe mai multe canale (AI Acquire Waveforms) – semnalele de intrare ieşire

sunt identice cu ale funcţiei anterioare cu deosebirea că în cazul canalelor trebuie introdusă o listă de canale, iar frecvenţa de eşantionare are semnificaţia de frecvenţă per canal.

- Măsurare un eşantion semnal neperiodic pe un singur canal (AI sample Cahannel) – preia un eşantion de pe canalul specificat şi îl depune la ieşirea esantion (sample)

- Achiziţionare eşantioane semnale neperodice de pe un grup de unu sau mai multe canale (AI Sample Channels) – preia câte un eşantion de pe canalele specificate pe care le depune la

ieşirea Eşantion. Aceste funcţii pot fi utilizate pentru măsurarea unui eşantion sau a unui grup de eşantioane specificat. Atunci când se doreşte măsurarea continuă funcţiile vor fi incluse în cadrul unor cicluri repetitive. 4.5.2. Funcţiile pentru programarea de nivel mediu Utilizarea funcţiilor de achiziţie de nivel mediu presupune un efort mai mare în realizarea programului de achiziţii, cunoaşterea mai amănunţită a modului de programare a canalelor, dar, oferă posibilităţi mai largi de utilizare decât funcţiile de nivel redus. Funcţiile de achiziţie de nivel mediu sunt:

- Configurarea unei intrări analogice. Semnificaţia semnalelor de uz general este cea specificată anterior. Ca semnal specific este

98

intrarea „Număr eşantioane” (Buffer size) care permite precizarea dimensiunii memoriei tampon alocată pentru stocarea eşantioanelor; implicit dimensiunea tamponului de memorie este 1000.

- Lansarea unei achiziţii analogice care are ca semnale specifice semnalele de intrare:

- Număr scanări (number of scan to aquire) care permite precizarea

numărului de scanări ce se vor realiza (mai mic sau egal cu dimensiunea tamponului de memorie a funcţiei de configurare cu care este conectată funcţia de start)

- Rata scanare (scan rate) care permite precizarea frecvenţei de achiziţie a eşantioanelor (în Hz), valoarea implicită fiind 1000Hz, trebuie menţionat că această valoare nu trebuie să depăşească frecvenţa maximă de achiziţie specifică plăcii de achiziţie.

- Citirea datelor analogice stocate în tampon cu următoarele semnale specifice:

- Numar scanări (Number of scan to read) semnal de intrare care

precizează numărul de achiziţii citite din memoria tampon; în mod implicit valoarea acestui parametru este –1 care comunică compilatorului să seteze numărul de scanări citite la o valoare egală cu numărul de scanări realizate din funcţia AI START cu care funcţia respectivă este legată.

- Scalare date (Scaled Data) semnal de ieşire care permite prezentarea datelor scalate, atunci când scalarea este necesară; ieşirea este un tablou bidimensional în prima dimensiune fiind precizat eşantionul iar în cea de a doua fiind specificate canalele.

- Ştergerea datelor analogice stocate în memoria tampon – semnalele de intrare ieşire sunt cele generale,

apecificate anterior. - Citirea unei singure date - realizează citirea unei singure date direct de pe placă în cazul achiziţiei simple şi a unei singure valori din tampon în cazul achiziţiei multiple. Funcţia are ca semnal specific semnalul de ieşire „Date scalate” (scaled data) care furnizează într-un

tablou unidimensional valorile datelor scanate. Funcţiile prezentate trebuie înlănţuite în cadrul unui TASK ID. Unele din aceste funcţii apelează funcţii din cadrul submeniului „Advenced analog input”, din cadrul submeniului „Analog input”. Prezentăm spre exemplificare diagrama unui program de achiziţie date analogice pe un singur canal.

99

Programul prezentat permite achiziţionarea unui număr de eşantioane precizat de dimensiunea tamponului de memorie (buffer) În cazul când se doreşte o achiziţionare continuă este necesar ca secvenţa de achiziţie să fie introdusă într-un instrument de repetare ca în figura. 4.10.

4.5.3. Funcţiile de achiziţie pentru programare de nivel înalt

Acest funcţii pot fi apelate prin activarea

elementului cu iconica din meniul de intrări analogice (Analog Input). La activarea meniului se deschide o fereastră ca cea din figura 4.11.

Funcţiile ce pot fi activate din această fereastră permit programarea cea mai flexibilă, dar cer în acelaşi timp o mai bună cunoaştere a modului de programare. Multe din aceste funcţii sunt apelate de funcţiile de achiziţie pentru programarea de nivel mediu. Funcţiile de programare de nivel înalt sunt:

- Configurare tampoane de memorie (AI Buffer Config); funcţia permite configurarea tampoanelor de memorie utilizate de LABVIEW pentru stocarea valorilor eşantioanelor achiziţionate înainte ca acestea să poată fi citite. Ca semnal specific de

intrare este semnalul Eşantioane per buffer (scan per buffer) care permite specificarea

Fig 4.9. Diagramă program pentru achiziţii de date

Fig. 4.10. Achiziţie continuă

Fig. 4.11. Sublista funcţii de nivel ridicat

100

numărului de eşantioane ce pot fi stocate în fiecare tampon de memorie. Valoarea acestui parametru este în mod implicit –1, ceea ce determină să se păstreze dimensiunea implicită a tampoanelor de memorie care este de 100 eşantioane. - Citire tampoane de memorie (AI Buffer Read); funcţia permite furnizarea valorilor semnalelor stocate în tampoanele interne de memorie

Funcţia are ca semnal de intrare principale specific semnalul Numar de citit (number to read). Atunci când parametrul cuprins în grupul de specificaţii de citire „unităţi citite” (read units) are valoarea 1, intrarea „Număr de citit” semnifică numărul de eşantioane de citit. Când „unităţi citite” are valoarea 2 intrarea „Număr de citit” semnifică numărul de tampoane de memorie ce trebuie citite. Acest parametru are în mod implicit valoarea –1 şi comunică compilatorului LABVIEW să păstreze setarea numărului de citit neschimbată. Setarea implicită este egală cu numărul total de eşantioane de achiziţionat specificat în funcţia AI Control VI. Setarea implicită este 100 dacă numărul total de eşantioane achiziţionate este 0. Ieşirea „Date scalate” (scaled data) este un tablou bidimensional care conţine valorile intrărilor analogice scanate. - Configurare ceas (AI Clock Config) – funcţia permite setarea ceasului şi a vitezei de scanare a canalelor sau a eşantioanelor. Funcţia permite specificarea frecvenţei – prin intermediul semnalului de intrare „Frecventa de ceas” – în eşantioane pe secundă (cu ceasul eşantioanelor) sau în canale pe secundă (cu ceasul canalelor) funcţia de valoarea semnalului de intrare „Care ceas” (which clock).

Când acest semnal este setat la valoarea 3 ( holdoff clock1) inversa frecvenţei de ceas este egală cu perioada holdoff exprimată în secunde. Valoarea 0 a frecvenţei de ceas întrterupe ceasul. Valoarea implicită este –1 care comunică compilatorului LABVIEW să utilizeze semnalul „alternate clock rate specification” în locul parametrului „frecvenţă de ceas”. Setarea implicită este specifică plăcii şi ceasului utilizat. În help-ul interactiv sunt specificate frecvenţele pentru fiecare tip de placă. Funcţia de configurare a ceasului este utilă mai ales în cazul plăcilor care au mai mult de un canal de ceas. Pentru testare setării actuale a ceasului poate fi utilizată ieşirea „actual clock rate specification” care conţine informaţii referitoare la frecvenţa de ceas, perioada ceasului, sau rata de divizare a bazei de timp (atunci când se utilizează o sursă internă). - Control intrări analogice (AI Control) – funcţie care permite controlul taskurilor de intrări analogice precum şi cantitatea de date achiziţionate. Această funcţie nu poate fi utilizată pentru lansarea achiziţiilor de date cu plăcile PC-LPM-16, DAQCArd500 sau DAQCArd-700 pentru a scana canale multiple în mod multiplexat; ăn acest caz va trebui utilizată func-ia de achiziţie a unui singur eşantion (AI Single Scan).

101

Semnalele de intrare specifice sunt: - Cod de control (control code) care poate avea una din valorile:

o 0 - Start (setare implicită) o 1 - Pauză imediată o 2 - Pauză la sfârşitul tamponului de memorie curent o 3 – Reluare; o 4 – Ştergere.

Valoarea 0 a codului de control comunică compilatorului LABVIEW câte date trebuie achiziţionate şi porneşte ceasul de contorizare a eşantioanelor. Valoarea 1 sau 2 a codului de control opreşte ceasul de achiziţie. Când apare valoarea 3 a codului de control după o pauză, ceasul porneşte din poziţia la care a fost oprit la apariţia codului 2 sau 3. Dacă apare valoarea 0 (Start) după o pauză, atunci achiziţia porneşte de la începutul tampoanelor de memorie, datele obţinute fiind înscrise peste cele prezente. Când valoarea codului de control este 4 (Clear), procesul de achiziţie se opreşte şi resursele interne (inclusiv tampoanele de memorie) sunt eliberate. Pentru repornirea achiziţiei de date este necesară apelarea funcţiei de configurare a tampoanelor de memorie (AI Buffer Config). Trebuie menţionat faptul că valoarea 4 a codului de control nu determină dealocarea tampoanelor de memorie, atunci când este necesară dealocarea acestora fiind necesară explicitarea dealocării prin funcţia de configurare a tampoanelor de memorie (AI Buffer Config). - Total eşantioane achiziţionate (total scans to acquire) care poate avea

valoarea: o –1 (valoare implicită) care comunică compilatorului să nu modifice

numărul total de eşantioane, ce va fi considerat egal cu dimensiunea numărului de eşantioane per tampon de memorie, specificat în funcţia de configurare a tampoanelor de memorie (AI Buffer Config).

o 0 valoare ce semnifică o achiziţie de dimensiune indefinită şi va determina compilatorul să ignore numărul de tampoane de memorie declarat şi numărul minim de eşantioane cu predeclanşare de achiziţionat.

o >0 Specifică numărul de eşantioane per tampon de memorie care va fi achiziţionat.

- Configurare grupuri de canale (AI Group Config); funcţia permite crearea unor grupuri de canale ce vor fi identificate în cadrul unui Task ID. Semnalele de intrare sunt

cele standard : - Placa (device) care permite precizarea numărului plăcii pe care se află

canalele din grup; - Lista canale scanate (channel scan list) care permite precizarea canalelor

care vor face parte din grup. Fiecare canal din listă devine un membru al

102

grupului; Ordinea canalelor în listă determină ordinea în care vor fi scanate canalele în timpul achiziţiei. Lista de canale scanate este un tabel de şiruri.

- Intrare erori (error in). Semnalele de ieşire sunt:

- Task ID care este un identificator sub care vor fi recunoscute toate canalele din grup pentru operare în comun;

- Ieşire erori (error out). - Configurarea hardware (AI Hardware Config) – funcţia permite configurarea

limitelor minime şi maxime a valorilor semnalelor de intrare achiziţionate sau a domeniului a domeniului de variaţie, a polarităţii şi amplificării. Funcţia permite de asemenea configurarea modului de cuplare, a moduluide intrare şi a numărului dispozitivelor de multiplexare AMUX 64. Modul de configurare poate fi aplicat tuturoe canalelor din grup )canale ce sunt specificate de Task ID) sau se poate aplica unor canale specificate ăn cadrul intrării „Lista de canale” (channel list). Indiferent de modul de configurare la ieşirea „Group channel settings” va fi furnizată configurarea întregului grup de canale.

Semnalul de intrare specific: „Limite intrare” (input limits) este un tabel de grupuri. Fiecare element al tabelului conţine limitele aşteptate ale semnalului de intrare pentru canalele specificate. Dacă în tabel sunt mai puţine elemente referitoare la limite decât canale, atunci, este utilizat ultimul element al tabelului pentru configurarea restului de canale. - Parametri intrări analogice (AI Parameter) – Funcţia configurează şi recuperează diferiţi parametri asociaţi cu operarea dispozitivelor de intrare analogice neacoperite de celelalte funcţii de intrare analogice.

Semnalele de intrare specifice sunt: - Operaţie (operation) care specifică ce operaţie se doreşte a fi realizată cu

această funcţie. În concordanţă cu tipul operaţiei această funcţie permite setarea parametrilor, extragerea parametrilor sau transferul acestora. Operaţiile posibile sunt:

o 0 - Setare parametru (Setting a parameter) – această opţiune comunică sistemului de achiziţie că la următoarea operaţie de achiziţie de date se va folosi setarea definită de funcţie;

o 1 - Extragere parametru (Getting a parameter) – această opţinune permite obţinerea prin intermediul funcţiei a valorilor setării curente a unui canal sau a unui grup de canale;

103

o 2 - Translatare parametru (Translating a parameter) – această operaţie permite determinarea valorilor ce pot fi alocate pentru anumiţi parametri.

- Canale (channels) – permite specificarea unor canale; atunci când această intrare nu este legată, operaţia specificată se va referi la întregul grup de canale din TASk ID.

- Nume parametru (parameter name) – permite selectarea unui parametru care va fi setat, extras sau translatat. Nume parametru poate lua una din valorile:

o 0 – semnificând lăţimea benzii filtrului de frecvenţă; o 1 – mod măsurare; o 2 – deschidere detecţie termocuplu; o 3 – referinţă la masă; o 4 – probă atenuare; o 5 – Control RIS actual; o 6 – număr total de recipiente fizice de timp; o 7 – Contor RIS maxim; o 8 – Supraeşantionare maximă; o 9 – Rată de eşantionare maximă.

- O singură scanare analogică (AI Single Scan) – funcţia returnează valoarea unui singur eşantion de date. Dacă achiziţia de date este pornită cu funcţia „AI Control” această funcţie citeşte o singură dată din tamponul de date intern. Dacă achiziţia pornită nu este buferată, atunci se achiziţionează şi se citeşte un singur eşantion. Dacă nu este pornită anterior nici o operaţie de achiziţie, această funcţie porneşte achiziţia, întoarce valoarea unui singur eşantion şi termină achiziţia. Semnalul de ieşire specific este Date scalate (scaled data) care conţine valoarea

eşantionului în unităţi fizice. - Configurare declanşare (AI Trigger Config) – funcţia configurează condiţiile de declanşare pentru pornirea achiziţiei, ceasulurilor de canal şi a contorului de

eşantioane. Semnalule de intrare specifice sunt:

- Tip declanşare (trigger type) – care poate lua una din valorile: o 0 : Nu se modifică setarea tipului declanşării (intrare implicită) o 1 : Declanşare analogică (setare implicită) o 2 : Declanşare digitală A; o 3 : Declanşare digitală B; o 4 : Declanşare achiziţie digitală temporizată; o 5 : Declanşare achiziţie analogică temporizată; o 6 : Declanşare mod general

104

- Mod (mode) care permite activarea şi dezactivarea tipului de declanşare, şi care poate avea una din valorile:

o 0 : nu se modifică setarea modului (intrare implicită); o 1 : dezactivare (setare implicită) o 2 : activare; o 3 : ştergere toate declanşările. Această opţiune dezactivează orice

declanşator şi readuce setările parametrilor declanşatoarelor la valorile implicite.

4.5.4. Programarea contorilor 8253

Comanda contorilor de pe dispozitive ce folosesc cipul 8253 (plăcile de achiziţie SCXI-1200, DAQPad-1200, PC-LPM-16 şi diagrama DAQ 7000 ) se realizează cu funcţia ICTR Control a cărei structură este:

Semnalele de intrare principale (care nu au valori implicite) sunt : Dispozitiv - este numărul dispozitivului alocat dispozitivului DAQ in timpul

configurării . Contor – reprezintă numărului contorului căruia îi este dedicată această funcţie

(în cazul plăcii PCL-LPM-16 numărul poate fi 0, 1 sau 2) Codul de comanda- determina modul de operare al ( contorului) .

0.Modulul de instalare 0 - mecanismul de distanţare a plăcilor de la mic la mare pe TC (în lipsa) .

1.Modulul de instalare 1 – programare un pas. 2.Modulul de instalare 2 - viteza generatorului 3.Modulul de instalare 3 - viteza generatorului cu semnale

dreptunghiulare 4.Modulul de instalare 4 – impuls declanşat software 5.Modulul de instalare 5 - impuls declanşat hardware 6.Citire . 7.Ştergere.

În modul de instalare 0, aşa cum se vede in figura 4.12. ieşirea devine 0 (nivel jos) după setarea modului de operare şi contorul începe să se decrementeze când semnalul de poarta este 1 (nivel înalt). Ieşirea devine 1 (pe nivel înalt) când contorul s-a decrementat până la 0 şi rămâne aşa până când se setează un mod diferit de operare pentru contor.

Figura 4.12. Diagrama modului 0

105

În modulul de instalare 1, aşa cum se vede în figura 4.13, ieşirea devine 0 (nivel jos) la primul impuls de ceas după frontul crescător al semnalului de poartă şi revine la nivel 1 (nivel ridicat) atunci când contorul ajunge cu decrementarea la 0.

În modulul de instalare 2 aşa cum se vede in figura 4.14., ieşirea devine 0 ( nivel

jos) pentru o perioada de ceas . Contorul indică o perioada dintre pulsurile de ieşire.

În modulul de instalare 3 ieşirea devine 1(nivel înalt) pentru o jumătate din impulsurile ceasului şi pentru cealaltă jumătate de ceas devine 0 (nivel jos). Vezi figura 4.15 .

În modulul de instalare 4, ca în figura 4.16., ieşirea este iniţial 1 (nivel ridicat),

contorul începând să numere în timp ce semnalul de poartă este 1. La terminarea contorizării, ieşirea devine 0 pentru un impuls al ceasului, apoi devine iarăşi 1.

Modulul de instalare 5 este similar modulului 4 cu o singură excepţie, numărarea este comandată de semnalul de poartă. Vezi figura 4.17.

Fig. 4.13. Diagrama modului 1

Fig. 4.14. Diagrama modului 2

Fig. 4.15. Diagrama modului 3

Fig. 4.16. Diagrama modului 4

Fig. 4.17. Diagrama modului 5

106

Vezi contorul de intervale programabile 8253 de pe planşa de laborator, manualul de folosire a acestor module si diagramele temporale asociate .

Eroare internă - descrie orice condiţie de eroare anticipate execuţiei comenzilor VI. Aceste fascicole ne lipsesc de erori. Eroarea interna in fascicole conţin următorii parametrii .

Statutul- este adevărat daca o eroare a apărut. Daca statutul este adevărat acest VI nu face configurare.

Codul este numărul codului de eroare care identifica eroarea . O valoare de zero in general nu înseamnă nici o eroare , o valoare negativa înseamnă o eroare fatală iar o valoare pozitivă este o avertizare.

Sursa indentifică unde a avut loc eroarea. Firul sursei este de obicei numele VI –ului ce a produs eroarea.

Eroare externa- conţine informaţii despre erori . Daca mulţimea erorilor interne indicau eroarea, mulţimea erorilor externe descriu statutul erorilor al acestui VI. Contorul citeşte perioada dintre pulsurile de ieşire. Dacă codul comenzii este 0,

1, 4, sau 5 contorul poate fi 0 în 65535 operaţii binare de contor şi 0 în 9999 operaţii codate zecimale (BCD). Dacă codul comenzii este 2 sau 3 contorul 2 poate fi între 65535 şi zero în operaţii binare şi între 9999 şi 0 în operaţiile contorului BCD.

NOTĂ : 0 este echivalentul 65536 în operaţiile binare ale contorului şi 10000 în operaţiile BCD ale contorului .

Ieşirea este validă când codul comenzii = 7 (resetare). 0 : Nivel jos 1: Nivel ridicat Binar sau BCD controlează dacă contorul operează ca un contor binar de

16 biţi sau ca un contor BCD. 0: 4 –digiţi ai contorului BCD 1: 16-biţi ai contorului binar Citirea valorilor. Când se setează codul de comandă 6 (citirea valorilor)

se întoarce valoarea de pe contor.

107

Laborator nr. 1.

Introducere în limbajul LabVIEW Denumirea limbajului grafic „LABVIEW” provine dintr-o prescurtare din limba

engleză: „Laboratory Virtual Instrument Engineering Workbench”. Acest limbaj grafic este un mijloc de programare destinat controlului, analizei şi afişării datelor; utilizarea acestui limbaj s-a remarcat în special în cazul instrumentaţiei de măsurare bazată pe tehnica de calcul . Programarea unui sistem de măsurare cu ajutorul calculatorului intr-un limbaj clasic (C, Pascal, Ada etc) consumă foarte mult timp. Interfeţele acestor limbaje clasice sunt de multe ori neclare şi greu de înţeles. Prin utilizarea limbajului grafic LabVIEW, rapiditatea programării creşte foarte mult datorită introducerii unei interfeţe grafice mai intuitive. LabVIEW este unul dintre primele limbaje de programare grafică utilizate în aplicaţii de achiziţii de date cu tehnică de calcul. Cu ajutorul plăcilor de achiziţie de date, fluxul de date numerice sau analogice provenite de la diverse traductoare poate fi prelucrat sau analizat. Prelucrarea datelor numerice sau analogice prin intermediul limbajului de programare, permite crearea sau simularea unor aparate de măsură şi control (instrumente virtuale). Principalul avantaj al unei instrumentaţii de măsurare bazată pe tehnica de calcul (instrumentaţie virtuală) faţă de un instrument clasic de măsurare constă în faptul că instrumentaţia virtuală poate fi uşor transformată prin programare.

Instrumentele virtuale create prin programare pot fi simple aparate de măsură sau diferite dispozitive care permit controlul unor instalaţii de automatizare. Interfaţa unui instrument virtual conţine dispozitive şi aparate de măsură şi control realizate într-o formă grafică asemănătoare aparatelor şi dispozitivelor reale.

1. Principii de programare în LABVIEW

Mediul de programare LABVIEW este un mediu de programare grafică orientat

pe obiecte. El permite realizarea unor programe care să reprezinte instrumente de măsură virtuale, utilizatorul acestora lucrând cu ele la fel ca şi cu instrumentele de măsură obişnuite.

Fiecare program în LABVIEW va avea două componente principale: - o componentă constituită de panoul frontal al aparatului de măsură virtual,

componentă ce va permite citirea afişarea valorilor mărimii măsurate şi introducerea unor date de intrare (valori de referinţă, valori de constante, butoane de comandă, comutatoare, etc.). Această componentă poartă numele de fereastra panoului cu instrumente (Panel)

- o componentă care va descrie operaţiile pe care le realizează programul pornind de la datele de intrare şi valorile mărimilor achiziţionate pe diferite canale. Această componentă poartă numele de fereastra blocului diagramă (Diagram).

Fiecare din cele două componente este disponibilă simultan la realizarea şi rularea unui program în LABVIEW; programul fiind conceput să lucreze sub sistemul de operare WINDOWS trecerea de la o fereastră la alta se realizează cu ajutorul

108

„mouse-ului”. Atunci când se face salvarea programului ambele componente sunt salvate într-un fişier cu extensia „vi”; apelarea unui fişier cu extensia vi va determina deschiderea ferestrei panel, pentru prima vizualizarea a ferestrei blocului diagramă fiind necesară selectarea opţiunii „show diagram” din meniul „windows” din bara de meniuri a ferestrei panoului cu instrumente.

2. Fereastra panou (panel) Un exemplu de fereastră panou este prezentată în figura 1. După cum se vede are toate elementele unei ferestre de lucru sub mediu de

operare WINDOWS: - În partea de sus bara de titlu (1); - Sub Bara de titlu se află Bara de meniuri (2); - Sub Bara de meniuri se află Bara de comenzi (3); - Sub Bara de comenzi se află suprafaţa de lucru (4); - În partea de jos şi lateral dreapta cele două butoane de derulare.

2.1. Bara de comenzi Ne vom referi în continuare la bara de comenzi care prezintă comenzi specifice

lucrului sub LABVIEW. Această bară este poziţionată deasupra zonei de lucru şi conţine următoarele butoane:

Butonul de start (Run) care are ca efect rularea o singură dată a programului.

Buton de rulare continuă a programului Buton de oprire care devine activ numai după ce a fost activat unul

dintre cele două butoane anterioare

Fig 1 Exemplu de fereastră Panel

109

Buton ce permite întreruperea continuării programului şi reluarea lui din punctul în care a fost întrerupt

Buton care permite aranjarea într-o ordine aleasă a obiectelor de pe suprafaţa ferestrei

Buton care permite distribuirea după o regulă aleasă a obiectelor de suprafaţa ferestrei

Buton de derulare care permite selectarea fontului cu care sunt realizate etichetele aparatelor sau a textelor de pe suprafaţa ferestrei

3. Fereastra diagramă

În fereastra diagramă descrie operaţiile pe care le realizează programul pornind

de la datele de intrare şi valorile mărimilor achiziţionate pe diferite canale. Fiecare operand, operator sau funcţie este reprezentată printr-o iconică specifică ce va prezentată în continuare, iar relaţiile dintre acestea fiind reprezentate prin linii de forme şi grosimi diferite, corespunzătoare diferitelor tipuri de date. Un exemplu de fereastră diagramă este prezentat în figura 2. Programul realizează achiziţia pe două canale a semnalelor analogice, calculează produsul eşantioanelor acestora, programul fiind destinat măsurării puterii în circuite monofazate de curent alternativ.

Fiind un limbaj grafic, pentru realizarea codului sursă al unui IV nu este nevoie de linii de text pentru instrucţiuni (respectând o sintaxă rigidă şi de multe ori anevoioasă), ci se aleg elemente de execuţie, care se plasează în diagrama bloc şi se realizează legături între acestea, pentru a defini fluxul de date. Elementele ce pot fi utilizate pentru realizarea diagramei bloc se pot clasifica în trei grupe generale:

Fig. 2 fereastra diagramă a programului putere.vi

110

1. noduri; 2. terminale; 3. fire.

1. Nodurile Sunt elemente de execuţie ale limbajului G, ale unui IV. Nodurile din limbajul G corespund operatorilor, funcţiilor predefinite, instrucţiunilor, subrutinelor realizate de utilizator – din limbajele convenţionale de programare structurată. Există şapte tipuri de noduri:

- funcţii predefinite; - subrutine (subIV oferite de firma NI sau utilizator); - instrucţiuni pentru controlul execuţiei programelor (numite structuri); - formule de calcul; - noduri proprietate; - variabile locale şi globale; - componente care permit apelul procedurilor scrise în limbajul C sau Pascal

(numite „Code Interface Nodes” – CINs).

Un nod se execută doar în momentul în care există valori disponibile pentru toţi parametrii de intrare; datele-rezultat sunt furnizate simultan (pe toate ieşirile) în exterior, doar după ce toate operaţiile din corpul nodului s-au realizat. Observaţie: Pentru un nod se respectă, în general, următoarea convenţie:

- parametrii de intrare se definesc în partea stângă a chenarului nodului; - parametrii de ieşire se regăsesc în partea dreaptă. Respectarea convenţiei plasării parametrilor unui nod facilitează „citirea”

diagramei bloc, conform căreia fluxul datelor este din partea stângă spre partea dreaptă. Nodurile sunt disponibile (mai puţin nodurile proprietate asociate obiectelor din

panoul frontal) prin caseta cu funcţii şi IV. Afişarea casetei cu funcţii şi IV (dacă nu este vizibilă) se poate face prin două metode:

• din bara cu meniuri se alege „Windows/ Show Functions Palette” (Ferestre/ Afişează Caseta cu Funcţii);

• având cursorul mouse-ului poziţionat în interiorul ferestrei diagramei bloc se apelează meniul contextual.

4. Modul de lucru.

4.1. Lansare LabVIEW

111

Mediul LabVIEW se lansează cu dublu click de mouse pe pictograma din directorul Lab VIEW-5.0 aflat pe desk top-ul calulatorului, sau alegând cu mouse-ul meniul: "Start / Programs / National Instruments LabVIEW / LabVIEW" atunci când

programul este instalat în “Program Files” Pe ecranul calculatorului apare meniul prezentat în figura 3. Semnificaţia butoanelor din fereastra ilustrată în figura 3 se prezintă în continuare: "IVNou" (New VI): Se creează un IV nou. "Deschide un IV (Open VI): Se deschide un IV existent. " Vrăjitorul de realizare a unei soluţii" (Solution Wizard): Se lansează un utilitar, care permite realizarea în mod interactiv a unei aplicaţii personalizate pentru achiziţia de date sau instrumentale. "Căutare exemple" (Search Examples): Se lansează un utilitar, care permite consultarea de exemple distribuite de firma NI odată cu mediul LabVIEW. "îndrumător Lab VIEW (LabVIEW Tutorial): Se lansează un program demonstrativ de învăţare (tutorial) despre LabVIEW, care foloseşte opţional placa de sunet. Programul demonstrativ trebuie să fie instalat anterior (ocupă în jur de 40MB) sau să existe CD-ul original poziţionat in unitate. "Ieşire" (Exit): Se părăseşte mediul LabVIEW. Acţiuni care trebuiesc realizate:

Fig. 3.Fereastra de lansare LabVIEW

112

Se identifică acţiunile realizate de butoanele din dreapta ferestrei (fig.4), afişate la lansarea mediului LabVIEW. Se alege opţiunea "New VI" pentru crearea unui IVnou. Se observă că pentru noul IV au fost deschise cele două ferestre (menţionate la pct 2 şi pct. 3), suprapuse una peste cealaltă, asemenea a două file de carte. Prima fereastră este Fereastra Panoului Frontad al IV; sub acestă fereastră se gaseşte Fereastra Diagramei Bloc a IV. Se trece din Fereastra Panoului Frontal în Fereastra Diagramei Bloc, selectând cu mouse-ul din meniul orizontal "Windows / Show Diagram". Din Fereastra Diagramei Bloc se va reveni înapoi în Fereastra Panoului Frontal alegând din meniul orizontal "Windows / Show Panel". Fiind activă Fereastra Panoului Frontal, se alege "File / Close" pentru închiderea IV.

4.2. Consultarea exemplelor instalate

În continuare se prezintă modalitatea de consultare a exemplelor instalate odată cu mediul LabVIEW. Consultarea exemplelor constituie principala sursă de învăţare a diferitelor tehnici de programare în LabVIEW şi de utilizare a diferitelor tipuri de obiecte şi funcţii: După lansarea mediului LabVIEW (conform 4.1.), se obţine pe ecranul calculatorului meniul din figura 3. Se alege opţiunea "Caută Exemple" (Search Examples). Se prezintă o fereastră meniu, în care opţiunile (de tip text) sunt grupate pe diferite subiecte (figura 5)

Se vor selecta pe rând cu ajutorul mouse-ului opţiunile clasei “fundamentals” se vor citi explicaţiile aferente fiecărui exemplu. Se vor nota titlurile exemplelor aferente clase “fundamentals”.

Fig. 5. Fereastra Search Examples

113

Observaţie: Nu se vor salva modificările (voite/involuntare) realizate în timpul consultării exemplelor oferite de biblioteca LabVIEW. Exemplele trebuiesc păstrate în varianta originală, oferită de firma NI.

114

Lucrarea 2. Controale şi indicatoare

1. Fereastra de control

Odată cu deschiderea ferestrei panou (Panel) devie activă o fereastră ataşată numită fereastra de control ; în caz că fereastra de control nu este afişată aceasta se poate afişa selectând opţiunea „Show Controls Palette” din meniul Windows al ferestrei panou sau poziţionând mouse-ul pe fereastra panou şi efectuând click dreapta.. Fereastra „Control” permite selectarea unor obiecte de intrare ieşire utilizabile în fereastra panoului de instrumente. Aspectul ferestrei este prezentat în figura 1.

Pe suprafaţa ferestrei sunt disponibile o serie de simboluri care definesc o familie de obiecte din care poate fi selectat un obiect. Familia de obiecte se desfăşoară atunci când este executat click cu mouse-ul pe unul dintre simboluri.

Fiecărui tip de element de intrare şi ieşire îi este ataşată o iconică, numele tipului de variabilă apărând sub bara de titlu atunci când se face poziţionarea pe iconica corespunzătoare tipului. Iconicele aferente fiecărui tip de element de intrare ieşire sunt:

- Tipul numeric, având următoarele componente : - - constantă numerică; - - ieşire numerică digitală;

- - intrare digitală de tip alunecător vertical; - - intrare digitală de tip alunecător vertical;

- - intrare numerică de tip umplere vertical;

- - intrare numerică de tip umplere orizontal;

- - intrare numerică de tip punct alunecător vertical; - - intrare numerică de tip punct alunecător orizontal;

- - intrare numerică de tip buton

- - intrare numerică de tip scală

- - intrare care are o dublă semnificaţie: codul numeric asociat unei culorii modul de reprezentare curent şi culoare aleasă dintr-o gamă de culori;

Fig. 1 Fereastra de control (Control Palette)

115

- - ieşire numerică de tip rezervor;

- - ieşire numerică de tip termometru; - - ieşire numerică de tip aparat de măsură;

- - ieşire numerică de tip manometru;

- - ieşire numerică de tip rampă de culoare.

- Tipul boolean (logic) cu următoarele componente:

- - butoane de comandă;

- - comutatoare;

- - butoane de comandă etichetate; - - butoane radio;

- buton cu LED; - - buton de dialog; - - buton de anulare; - - cutii de control; - - LED-uri şi lămpi de semnalizare;

- - Şiruri şi tabele cu următoarele elemente: - - element de intrare (control) de tip şir; - - element de ieşire (indicator) de tip şir; - - constantă de tip şir;

- - element de tip tabel;

- - Liste şi inele de selecţie cu următoarele elemente: - Liste de selecţie care permit selecţia ciclică (în inel) - Liste care permit selectarea unei variante dintr-o listă desfăşurată;

- - Tabele şi ansambluri cu următoarele elemente:

- - Tablouri de elemente de acelaşi tip

- - Ansambluri de elemente de tipuri diferite

- - Liste de erori de intrare;

- - Liste de erori de intrare.

116

- - Elemente de afişare grafică cu următoarele elemente:

- - Diagramă de forme de undă;

- - Grafice de forme de undă;

- - Grafice de funcţii oarecare;

- - Diagramă de intensităţi;

- - Grafic de intensităţi

- - Meniu ce permite precizarea numelor şi căilor fişierelor de date în operaţii de citire scriere a datelor în fişiere. Trebuie menţionat faptul că rolul de element de intrare sau ieşire specificat este cel implicit (declarat automat la instalarea programului); rolul elementelor de intrare numite „Control” şi elementelor de ieşire denumite „Indicator” poate fi schimbat (Controlul poate fi făcut indicator şi reciproc) din meniul ce se deschide cu clik pe butonul din dreapta al mouse-ului poziţionat pe elementul respectiv, în fereastra panou sau diagramă.

În cazul elementelor booleene (logice) toate butoanele şi cutiile de control sunt declarate implicit elemente de intrare, iar LED-urile şi lămpile de semnalizare sunt considerate implicit elemente de ieşire; ca şi în cazul elementelor numerice intrările pot fi convertite în ieşiri şi invers prin intermediul meniului interactiv deschis cu clik dreapta al mouse-ului poziţionat pe element.

Elementele ferestrei de control pot fi poziţionate numai pe suprafaţa ferestrei panou; pentru aceasta se poziţionează mouse-ul pe elementul dorit se apasă butonul stânga al acestuia şi se ţine apăsat simultan cu deplasarea mouse-ului în poziţia dorită pentru elementul selectat.

2. Fereastra de funcţii Odată cu deschiderea ferestrei diagramă a unei aplicaţii devine activă o fereastră în care sunt reprezentate funcţii, instrucţiuni şi operatori ce permit realizarea diferitelor aplicaţii. Fereastra de funcţii (Functions) poate fi deschisă din meniul Windows al oricărei din cele două ferestre specifice ale mediului LABVIEW. Aspectul general al ferestrei este prezentat în figura 2. Fiecare element al ferestrei corespunde unei familii de funcţii sau operatori, ce devine activă atunci când mouse-ul este poziţionat pe iconica respectivă. Poziţionarea elementelor ferestrei Functions pe suprafaţa ferestrei diagrama se realizează la fel ca elementele ferestrei

Fig. 2. Fereastra de funcţii (Functions)

117

Controls pe suprafaţa ferestrei Panel. Elementele din fereastra de funcţii sunt:

Elemente de tip structuri şi constante- vor fi tratate pe larg în laboratoarele viitoare

Elemente de tip aritmetic , care au următoarele componente, accesibile atunci când mouse-ul este poziţionat pe simbol.

Operaţie aritmetică „plus” .

Operaţie aritmetică „minus”.

Operaţie aritmetică „înmultire”.

Operaţie aritmetică „împartire”.

Operaţie cu numere complexe.

Schimbarea de semn în „plus”.

Schimbarea de semn în „minus”.

Suma elementelor unui vector. Acest simbol grafic însumează toate elementele unui vector.

Multiplicarea elementelor unui vector. Această funcţie este utilizată la multiplicarea tuturor elementelor unui vector.

Şir de operaţii.

Valoarea absolută. Calculul valorii absolute a unui număr „x”.

Rotunjire către cel mai apropiat întreg.

Rotunjire către cel mai mic număr întreg (- infinit).

Rotunjire către cel mai mare număr întreg (+infinit).

Număr aleatoriu. Generarea unui număr aleatoriu cuprins între 0 şi 1, în formatul unui număr cu virgulă flotantă şi precizie extinsă.

Rădăcina pătrată. Este utilizat la calculul rădăcinii pătrate a unui număr „x”.

Negarea valorilor de intrare.

Dimensionarea mărimii de intrare cu multiplu de 2 la puterea „n”.

Schimbarea de semn. Dacă numărul este mai mare decât 0 devine 1; dacă este mai mic decât 0 devine –1; dacă este egal cu 0 el devine 0.

Valoarea reciprocă a valorilor de intrare.

118

Elemente de tip constante

Constante numerice.

Introducerea unor intrări sau ieşiri (constante). Intrări şi ieşiri prin texte.

Funcţii de conversie. Conversia unui număr întreg codat pe 32 biţi. Există toate conversiile posibile. Conversia unei serii de octeţi fără semn într-un şir de caractere: primul caracter este primul octet luat ca o valoare ASCII; conversia unui şir de caractere: în serii de octeţi fără semn (primul octet traduce valoarea ASCII a primului caracter din lanţul de caractere).

Elemente de tip trigonometric şi logaritmic

Funcţie trigonometrică. Funcţia sinus: sin(x) cu „x” în radiani; funcţia sinus: cos(x) cu „x” în radiani; funcţia sinus şi cosinus: sin(x)şi cos(x) cu „x” în radiani; funcţia sinus cardinal: sin(x)/x cu „x” în radiani.

Funcţia logaritmică.

De la complex la părţi imaginare şi reale. Extragerea părţilor reale şi imaginare dintr-un număr complex; crearea unui număr de tip complex plecând de la parţi reale şi imaginare.

Element de tip constantă a listei Function. Adăugarea de numere constante.

Elemente de tip logic (boolean)

Operator logic „ŞI”. Realizarea funcţiei logice „ŞI” se face între două intrări de tip boolean.

Operator logic „SAU”. Realizarea funcţiei logice „SAU” se face între două intrări de tip boolean.

Operator logic „EXCLUSIV SAU ”

Operator logic „NOT”. Realizarea funcţiei logice NOT.

Şir de operaţii.

Operator logic „ŞI NEGAT”.

Operator logic „SAU NEGAT”.

119

Operator logic „EXCLUSIV SAU NEGAT”.

Operator logic „Implică”.

Şir de elemente „ŞI”.

Şir de elemente „SAU”. Introducerea unui număr şi ieşirea unei valori booleene de 8, 16, 32elemente. Introducerea unei valori booleene de 8, 16, 32 elemente şi ieşirea unui număr.

Vectorul are simbolul „0” pentru valoarea fals şi „1”pentru adevărat. Constante programabile booleene.

Elemente de tip şir de caractere – vor fi tratate pe larg în laboratoarele viitoare

Elemente de tip vectori şi matrice - vor fi tratate pe larg în laboratoarele viitoare

Elemente de comparare

Funcţie de comparaţie. Compararea unui număr „x” cu un număr „y” şi returnarea unei valori booleene „true” sau „false” corespunzător satisfacerii relaţiei de egalitate dintre „x” şi „y”.

Funcţie de comparaţie. Compararea unui număr „x” cu un număr „y” şi returnarea unei valori booleene „true” sau „false” corespunzător satisfacerii relaţiei de inegalitate dintre „x” şi „y”.

Funcţie de comparaţie. Compararea unui număr „x” cu un număr „y” şi returnarea unei valori booleene „true” sau „false” corespunzător satisfacerii relaţiei „mai mare” dintre „x”şi „y”.

Funcţie de comparaţie. Compararea unui număr „x” cu un număr „y” şi returnarea unei valori booleene „true” sau „false” corespunzător satisfacerii relaţie „mai mic” dintre „x” şi „y”.

Funcţie de comparaţie. Compararea unui număr „x” cu un număr „y” şi returnarea unei valori booleene „true” sau „false” corespunzător satisfacerii relaţiei „mai mare sau egal” dintre „x” şi „y”.

Funcţie de comparaţie. Compararea unui număr „x” cu un număr „y”şi returnarea unei valori booleene „true” sau „false” corespunzător satisfacerii relaţiei „mai mic sau egal” dintre „x” şi „y”.

120

Functie de comparatie „egal cu zero”.

Funcţie de comparaţie „diferit de zero”.

Funcţie de comparaţie „mai mare decât zero”.

Funcţie de comparaţie „mai mic decât zero”.

Funcţie de comparaţie „mai mare sau egal cu zero”.

Funcţie de comparaţie „mai mic sau egal cu zero”.

Funcţie de comparaţie.

Funcţie de comparaţie. Compararea a două numere „x” şi „y” cu returnarea valorii maxime şi minime.

Functie de comparaţie.

Funcţie de comparaţie.

Funcţie de comparaţie.

Funcţie de comparaţie.

Funcţie de comparaţie.

Funcţie de comparaţie.

Funcţie de comparaţie.

Funcţie de comparaţie.

Funcţie de comparaţie.

Elemente de tip control dialog şi timp

Elemente de tip fişiere intrare ieşire

Elemente de programare necesare controlului unei conumicaţii paralele din sublista GPIB

Instrumente virtuale pentru controlul plăcii de achiziţie

Elemente de analiză a semnalelor Celelalte elemente ale ferestrei vor fi prezentate în lucrările ulterioare.

121

3. Fereastra cu unelte de uz general

Aceasta fereastra poate fi afişată selectând opţiunea Show Tools Paletes din meniu-ul Windows al uneia din ferestrele Panou sau Diagramă. Aspectul ferestrei este prezentat în figura 3.

Caseta cu unelte generale cuprinde instrumentele folosite de utilizator la crearea, editarea sau trasarea execuţiei instrumentelor virtuale. Afisarea/ ascunderea casetei cu unelte generale se face prin opţiunea "Ferestre / Afişează Caseta cu Unelte" (Windows / Show Tools Palette) din bara cu meniuri. Caseta cu unelte generale se prezintă în figura 1.16, în care s-a definit un sistem de identificare matriciala a uneltelor. O alta metodă de afişare a casetei cu unelte generale se bazează pe comportarea contextuala: se poziţionează cursorul mouse-ului în interiorul ferestrei Panou Frontal sau Diagramă Bloc şi se apasă simultan tasta <Shift> şi butonul din dreapta mouse-ului. Se exersează cele doua metode de afişare a casetei cu

unelte generale prezentate (din bara cu meniuri şi acceleratori). Semnificaţia elementelor casetei cu unelte generale este urmatoarea: - unealtă pentru operare (fig. 3, al) Prin intermediul uneltei se manevrează mai ales valorile elementelor panoului frontal; se foloseşte mai rar în diagrama bloc, la stabilirea valorii constantelor (exemplu: constanta universală true-false, tablou de constante).

- unealtă de editare (fig. 3, a2) Se realizează: selectare, mutare, redimensionare obiect.

- unealtă de etichetare (fig. 3, a3). Permite introducerea de la tastatură a textului.

- unealtă de interconectare (fig3, bl) Se foloseşte în fereastra diagramei bloc, pentru a realiza legăturile între noduri (elemente de execuţie). Firele definesc fluxul datelor. În panoul frontal se realizează corespondenţele între controale/ indicatoare ţi terminalele conectorului.

- unealtă de defilare (fig. 3, b3) Se realizează defilarea conţinutului ecranului, fără a folosi barele de defilare ale ferestrei.

- unealta prin care se inserează în diagrama bloc un punct de întrerupere a execuţiei IV, pe unul dintre fire (pe un fir se acceptă un singur punct de întrerupere) sau noduri. Se foloseşte în scopul depanării programului (fig. 3, cl).

- unealta sondă (fig. 3, c2) Se defineşte o fereastră în care se afişează valoarea transmisă pe un fir de legătură (în faza de execuţie a IV). Se utilizează în diagrama bloc, mai ales pentru depanarea programului.

- Se preia culoarea obiectului asupra căruia se execută clic cu butonul stânga al mouse-ului (fig. 3, c3).

Fig. 3. Fereastra cu unelte

122

- unealtă de colorare (fig. 3, d) Se foloseşte mai ales la realizarea panoului frontal, permiţând stabilirea culorii pentru prim planul şi de fundalul obiectelor. 3. Modul de lucru 3.1. Utilizarea controalelor si indicatoarelor. Se va realiza o aplicaţie care să exemplifice utilizarea controalelor si indicatoarelor; pentru aceasta, din meniu-ul principal se va selecta un nou VI. Se vor poziţiona pe panoul frontal (panel window) următoarele elemente:

- control de tip numeric (digital control) - control numeric de tip sonda (gauge) - control numeric de tip punct alunecător vertical (vertical pointer slide) - indicator numeric de tip rezervor (tank) - indicator numeric de tip aparat analogic (meter) - indicator numeric de nivel (vertical fill slide) Se vor eticheta corespunzător elementele poziţionate pe panoul frontal prin

selectarea opţiunii “show label” din meniul contextual asociat fiecărui element. Se vor lega elementele fiecare element de tip control cu cate un element de tip

indicator; pentru aceasta se va vizualiza fereastra diagramă, se va selecta opţiunea windows, show tools pallets şi se va selecta simbolul pentru realizarea legăturilor .

Se va afişa fereastra panou,se va modifica valoarea controalelor şi se va rula aplicaţia prin activarea săgeţii simple din bara de comenzi din partea superioară a ferestrei. Se va observa modificarea valorii afişate de indicatorul corespunzător.

Se va activa modul rulare continuă a programului (săgeata dublă din bara de comenzi “run continously”), se va modifica valoarea indicatoarelor şi se va observa efectul asupra indicatoarelor corespunzătoare.

Se vor modifica unele dintre limitele controalelor şi indicatoarelor şi se va observa efectul pe care acest fapt îl are asupra indicării elementului respectiv.

Se va opri rularea programului prin acţionarea butonului corespunzător (abort execution) din bara de comenzi.

Se va salva aplicaţia cu titlul “controale numerice.vi” într-un director cu numele realizatorului.

Se va proceda similar într-o nouă aplicaţie, utilizându-se de această dată controale şi indicatoare de tip boolean. Aplicaţia va fi salvată cu titlul “controale logice.vi”

123

Lucrarea 3.

Elemente de tip structuri 1

Elementele de tip structuri şi constante sunt accesibile din fereastra “function” prin poziţionarea mouse-ului pe caseta structuri („Structures”); în acest caz sunt evidenţiate structurile ce pot fi utilizate în realizarea aplicaţiilor în LabVIEW aşa cum se vede în figura 1.

Structurile accesibile sunt în acest caz:

1. Structura de tratare secvenţială Structura de tratare secvenţiala. Această structură permite construirea unui ansamblu de subdiagrame numerotate care vor fi executate secvenţial, în ordine crescândă a numerelor. În fereastra acestei structuri se formează subdiagrama de

fluxuri de date. Lista comenzilor de formare a acestei structuri permite adăugarea sau eliminarea unor subdiagrame. Corpul instrucţiunii secvenţiale este format din una sau mai multe subdiagrame; fiecare subdiagramă este reţinută de un cadru. Cadrele sunt dispuse unul peste celălalt

(asemănător cadrelor unui film foto), la un moment dat fiind afişat conţinutul unui singur cadru. Ordinea de execuţie a subdiagramelor reţinute de instrucţiunea secvenţială este dată de numărul de ordine al cadrului; primul cadru are valoarea 0, al doilea cadru al valoarea 1, al treilea cadru are valoarea2 ş.a.m.d. Numărul de ordine al

subdiagramei curente este afişat în partea superioară a chenarului instrucţiunii. În figura 2 se prezintă o parte din diagrama bloc a unui VI. Semnificaţia elementelor din diagrama bloc a secvenţei (fig. 2) se prezintă în continuare:

- numărul subdiagramei curente (fig. 2,a); - control pentru trecerea la subdiagrama anterioară (fig. 2,b); - lista derulantă conţinând numerele cadrelor (fig. 2,c); - terminal tip tunel de intrare (fig. 2,d);

Fig. 1. Elementele sublistei structuri

Fig. 2. Utilizarea instrucţiunii secvenţiale

124

- terminal de tip ieşire local al secvenţei (fig 2,e); - terminal de tip intrare local al secvenţei (fig. 2,f); - comentariu asociat legăturii (fig. 2,g);

Trecerea de la o subdiagramă la alta se face prin elementele de control aflate în partea superioară-centru a cadrului instrucţiunii. Afişarea subdiagramei anterioare se face apăsând săgeata orizontală-stânga (fig. 2,b); conţinutul subdiagramei următoare se prezintă la apăsarea săgeţii orizontale-dreapta. Se oferă următoarea metodă mai simplă de trecere de la o subdiagramă la alta:

• se selectează cu butonul stânga al mouse-ului căsuţa valoare (fig. 2,a); • în urma selectării este afişată automat o listă derulantă, conţinând

numerele cadrelor existente; • se selectează numărul asociat subdiagramei căutate din lista

numerelor. Datele de intrare, furnizate instrucţiunii secvenţiale printr-un terminal tip tunel (fig. 2,d), sunt disponibile tuturor subdiagramelor. Rezultatele obţinute într-o subdiagramă sunt făcute disponibile subdiagramelor următoare printr-un terminal local al secvenţei (de subdiagrame): din meniul contextual, asociat chenarului instrucţiunii secvenţiale se alege opţiunea „Adaugă un Terminal Local Secvenţei” (Add Sequence Local). Un terminal al secvenţei poate fi mutat de programator cu unealta de editare oriunde, pe cadrul instrucţiunii. Terminalul local al secvenţei (definit pentru subdiagrama curentă) se afişează pe cadrul instrucţiunii printr-un dreptunghi plin, de culoare galben-deschis; în urma realizării legăturii la un terminal sursă, terminalul local al secvenţei va afişa o săgeată orientată înspre exteriorul cadrului instrucţiunii (fig. 2,e), indicând că „următoarele subdiagrame pot accesa valoarea furnizată”. Un terminal local al secvenţei, definit la nivelul subdiagramei cu numărul de ordine i, este disponibil tuturor subdiagramelor având numărul de ordine j, astfel încât j>i, dar nu este disponibil subdiagramelor anterioare, cu numărul de ordine k<i. În exemplul din figura 2,f se indică un terminal de intrare local al secvenţei pentru subdiagrama 1 şi , care se defineşte în subdiagrama numărul 0; terminalul de intrare local al secvenţei indicat în figura 2,h, nu se foloseşte în subdiagrama numărul 1. terminalul de intrare local al secvenţei din figura 2,i este definit în subdiagrama 2 şi deci nu este disponibil în secvenţa numărul 1. Se recomandă adăugarea unor etichete descriptive firelor conectate la terminale de intrare/ieşire locale secvenţei (fig. 2,g) cu scopul uşurării înţelegerii/ depanării/ întreţinerii subdiagramelor. 2. Structura de tratare opţională

Structura de tratare opţională. Această structură permite construirea unui ansamblu de subdiagrame numerotate. Structura permite executarea unei subdiagrame în funcţie de numărul(parametrul dat subdiagramei). Parametrul unei subdiagrame poate fi:

-boolean: sunt posibile 2 subdigrame: adevarat şi fals;

125

-numeric: un număr întreg. Lista comenzilor de formare a acestei structuri permite în particular adăugarea sau eliminarea unor subdiagrame. Lista este aproape identică structurii secvenţiale cu o singura excepţie: cuvântul „Frame” este înlocuit cu „Case”.

Instrucţiunile condiţională şi de selecţie multiplă sunt realizate în limbajul G prin instrucţiunea Case. Este vorba despre două instrucţiuni reunite într-una singură, selectarea făcându-se după tipul expresiei selector:

- tipul boolean selectează instrucţiunea condiţională (echivalentă cu IF-THEN-ELSE din limbajele de programare bazate pe text);

- tipul numeric şir de caractere selectează instrucţiunea de selecţie multiplă (echivalent cu CASE sau SWITCH din limbajele de programare bazate pe text).

Observaţie: Din mulţimea subdiagramelor reunite în instrucţiunea Case se execută întotdeauna una din cazuri (subdiagrame), spre deosebire de alte limbaje de programare bazate pe text (Pascal, C), în care se putea să nu se execute nici una dintre alternative (cazul lipsei ramurilor opţionale ELSE). Se prezintă în continuare sintaxa instrucţiunilor din limbajul Pascal, echivalente instrucţiunii de selecţie din limbajul G. Sintaxa instrucţiunii condiţionale din limbajul Pascal este: IF <expr_logică> THEN<instrucţiune 1>; ELSE<instrucţiune 2>; instrucţiune alternativă Sintaxa instrucţiunii de selecţie multiplă în limbajul Pascal este: CASE <expr_selector> OF CASE <val1>: <instrucţiune 1>; CASE <val2>: <instrucţiune 2>; ... CASE <valn>: <instrucţiune n> ELSE <instrucţiune implicită> instrucţiune alternativă END; Unde: <expr_selector> Este expresia selector, de tip ordinal pentru a se obţine o mulţime numărabilă de valori, după care să se realizeze selecţia instrucţiunii. <val i> Este eticheta case, de acelaşi tip cu tipul expresiei selector. <instrucţiune i> Reprezintă instrucţiunea (simplă sau compusă), care se execută dac valoarea expresiei selector coincide cu valoarea <val i> a etichetei case. <instrucţiune implicită> Este instrucţiunea, care dacă este prezentă, se execută dacă valoarea de expresiei selector nu este egală cu nici o etichetă case.

126

Terminalul selector se află întotdeauna pe partea stângă a chenarului instrucţiunii şi poate fi mutat de utilizator; este obligatoriu să se realizeze o legătură la acesta. După preluarea instrucţiunii de selecţie din caseta cu funcţii şi IV şi plasarea în diagrama bloc, se observă că etichetele case sunt: „ADEVĂRAT” şi „FALS” (TRUE şi FALSE); În acest caz instrucţiunea de selecţie este echivalenta instrucţiunii condiţionale THEN-ELSE. Dacă sursa pentru terminalul selector este de tip numeric întreg se verifică schimbarea etichetelor case din FALSE în 0; respectiv TRUE în 1. Dacă valoarea expresiei selector este de tip real, atunci se realizează automat rotunjirea la primul întreg. Valoarea etichetelor case se poate modifica cu unealta de etichetare; poate fi de tip numeric întreg, boolean, şir de caractere. Nu se permit valori reale pentru etichetele selectoare. Valoarea etichetei case trebuie să aparţină tipului expresiei selector; în caz contrar, se semnalează eroare: valoarea etichetei case este afişată în culoare roşie. În cazul în care expresia selector este de tip numeric întreg, atunci pentru etchetele case se pot indica următoarele valori:

- listă de valori scalare: -11,0,2,4,6; - interval; - interval limitat superior: ...1 (toate valorile mai mici sau egale decât limita

superioară indicată); - interval limitat inferior: 10... (toate valorile mai mari sau egale decât limita

inferioară indicată); - combinaţii ale celor anterioare: ...0,2,3,5..8,10,15...

Dacă expresia selector este tip şir de caractere: - valorile etichetelor case sunt afişate între ghilimele („vol1”); - introducerea valorii etichetelor nu este obligatorie să se facă între ghilimele

(doar dacă eticheta conţine caracterele virgulă sau expresia „..”).

3. Mod de lucru

1. Se va deschide Mediul LabVIEW. 2. Se va selecta opţiunea Search Exemples; din grupul Fundamenstals se va selecta

Structures şi se vor citi explicaţiile aferente fiecărui exemplu. 3. Se deschide exemplul Test Sequencer.vi; se identifică fiecare element de pe

fereastra PANEL şi din fereastra diagrama. Se va analiza funcţionarea exemplului şi va fi descrisă această funcţionare în referat.

4. Se va realiza un program care să calculeze succesiv (cu ajutorul unei structuri de tratare secvenţială) suma, media aritmetică şi produsul a trei numere introduse de la trei elemente de control numeric poziţionate pe fereastra panou. Se va salva programul în directorul grupa… şi numele struct_secv.vi

5. Se deschide exemplul Square Root.vi; se identifică fiecare element de pe fereastra PANEL şi din fereastra diagrama. Se va analiza funcţionarea exemplului şi va fi descrisă această funcţionare în referat.

6. Se va realiza un program prin care să se introducă trei numere; dacă toate cele trei numere sunt pozitive se va calcula media aritmetică, iar dacă cel puţin un număr este negativ, se va calcula media pătratică. Se va salva programul în directorul grupa… şi numele struct_case.vi

127

Lucrarea 4.

Elemente de tip structuri 2

Elementele de tip structuri şi constante sunt accesibile din fereastra “function” prin poziţionarea mouse-ului pe caseta structuri („Structures”); în acest caz sunt evidenţiate structurile ce pot fi utilizate în realizarea aplicaţiilor în LabVIEW aşa cum se vede în figura 1.

Primele două structuri disponibile (structura de tratare secvenţială şi structura de tratare opţională) au fost prezentate în lucrarea anterioară.

Alte structuri disponibile sunt:

1. Structura repetitivă for

Structura de tratare repetitivă „For Loop”. Structura de tratare repetitivă de tip „for” permite efectuarea calculelor iterative. Fluxul de date plasat în aceasta structura este executat de N ori, indicele ciclului variind de la 0. Comenzile permit în particular adăugarea sau eliminarea unor rezultate provenite din iteraţiile precedente cu ajutorul registrelor de decalare „Shift Register”. Registrele de decalare permit atât stocarea variabilelor calculate la un moment dat cât şi conservarea valorilor anterioare ale unei variabile. Transferul elementelor unui tablou (aflat în exteriorul structurii repetitive) în interiorul subdiagramei instrucţiunii „FOR” se face printr-un tunel de intrare, situat pe chenarul buclei. Tunelul de intrare permite implicit auto-indexarea în cazul instrucţiunii For: elementele tabloului sunt furnizate pe rând subdiagramei, câte unul la fiecare iteraţie, începând cu primul element (de indice 0); dimensiunea tabloului dă valoarea numărului de ciclări. Întregul tablou este furnizat subdiagramei la fiecare buclă, dacă pentru acel tunel de intrare este dezactivată opţiunea de auto-indexare. Auto-indexarea se întâlneşte şi la nivelul tunelurilor de ieşire: valoarea furnizată, la fiecare iteraţie, tunelului de ieşire este reţinută într-un tablou, a cărui dimensiune creşte automat la fiecare buclare; tabloul este furnizat în exteriorul instrucţiunii For doar după finalizarea execuţiei nodului. Activarea/inactivarea auto-indexării pentru un terminal tunel se face selectând opţiunea „Activează Indexarea”/ „Dezactivează Indexarea” (Enable Indexing/ disable Indexing) din meniul contextual asociat tunelului. Pentru verificarea vizuală a aplicării auto-indexării la nivelul unui tunel de pe chenarul instrucţiunii For, programatorul se bazează pe codificarea complexităţii structurii datei în reprezentarea grafică a legăturii: firul (legătura) prin care se furnizează în întregime un tablou este mai gros decât cel asociat furnizării unei valori singulare (element de tablou). Dacă există mai multe tunele de intrare (de pe aceeaşi instrucţiune „For”) pentru care se aplică auto-indexarea, atunci numărul de iteraţii este dat de valoarea minimă (Min)

Fig. 1. Elementele sublistei structuri

128

dintre valoarea furnizată terminalului N şi dimensiunile tablourilor; vor fi executate doar primele Min elemente ale tablourilor. Este posibilă transferarea rezultatelor între iteraţii succesive; se declară nişte variabile locale instrucţiunii For, numite registre de transfer. Crearea unui registru de transfer se face prin opţiunea „Adaugă Un Registru de Transfer” (Add Shift Register), din meniul contextual asociat numărului instrucţiunii „For”. Nu este limitat numărul registrelor de transfer care se pot defini pentru o structură „For”. Un registru de transfer este alcătuit dintr-o pereche de terminale dispuse pe aceeaşi orizontală, unul în partea stângă şi altul în partea dreaptă a numărului structurii. Ambele terminale pereche se deplasează simultan, la citirea unuia dintre ele. Valoarea este furnizată terminalului drept după încheierea ciclului; la începutul ciclului următor, valoarea stocată (în iteraţia anterioară) în terminalul drept este transferată terminalului stâng. La ultima apelare, valoarea atribuită terminalului din dreapta este furnizată în exteriorul secţiunii, dacă există o astfel de legătură. Se recomandă iniţializarea registrului de transfer înainte de execuţia noii iteraţii a instrucţiunii For; se furnizează din exteriorul structurii o apelare terminalului stâng 2. Structura de control repetitiv While Loop

Structura de control repetitiv „While Loop”. Structura de control repetitiv „while” permite efectuarea calculului iterativ atunci când nu se cunoaşte numărul de repetări. Oprirea ciclului de iteraţii este condiţionată boolean: repetarea se executa când valoarea booleană este adevărată. Oprirea executării structurii este comandată de o variabilă tip boolean „opreşte dacă este fals”. Ca şi în cazul structurii de control precedente, lista comenzilor de formare este identica cu cele anterioare. Prin intermediul registrelor de transfer se permite furnizarea rezultatelor între iteraţii seccesive al instrucţiunii repetitive. Definirea şi utilizarea registrelor de transfer pentru structura „Do-While” este identică cu cea prezentată la instrucţiunea „For”. Auto-indexarea nu se aplică implicit pentru un tunel (intrare/ieşire) de pe structura „Do-While”, ca şi în cazul instrucţiunii For: programatorul trebuie să indice explicit pentru fiecre tunel, dacă se doreşte utilizarea auto-indexării. Numărul de repetări ale corpului modului „Do-While” este controlat, în primul rând, de valoarea logică („Adevărat”) a expresiei de oprire şi mai puţin de dimensiunea unui tablou furnizat subdiagramei printr-un tunel de intrare, care foloseşte auto-indexarea. După parcurgerea (prin auto-indexare) tuturor elementelor tabloului, valoarea implicită asociată tipului elementului de tablou se va transfera corpului buclei, în toate iteraţiile următoare, astfel:

• dacă tipul elementului de tablou este real, atunci valoarea implicită este 0.00E+0;

• dacă tipul elementului de tablou este un număr întreg sau natural, valoarea implicită este 0.

129

3. Structura formule de calcul

Structura „formule de calcul”. Aceste structuri permit calcularea unui ansamblu de formule separate de punct şi virgulă „ ;”. Aceste formule pot conţine majoritatea funcţiilor matematice. Aceste formule duc la apariţia unor variabile de intrare şi de ieşire care pot fi selectate şi denumite de utilizator, plecând de la lista comenzilor de formare a variabilelor. Calculele sunt scrise în mod explicit în interiorul chenarului structurii „formule de calcul” utilizând o scriere similară expresiilor aritmetice din limbajul de programare C. Dacă ansamblu formulelor nu încape în chenarul structurii „formule de calcul”, se poate crea o mică fereastră de desfaşurare (scrollbar). Fereastra de desfăşurare se poate obţine cu ajutorul comenzilor. Avantajele utilizării formulei de calcul sunt următoarele:

• se uşurează scrierea, depanarea şi înţelegerea formulelor matematice; • se elimină erorile, care pot să apară la transcrierea formulelor matematice

complexe în limbajul G, care foloseşte noduri şi fire; • se reduce suprafaţa ocupată în diagrama bloc de formulele matematice,

implementate prin noduri şi fire. Instrucţiunile de prelucrare din interiorul nodului se scriu într-o sintaxă

asemănătoare limbajelor de programare, bazat pe text. Nodul formulă de calcul defineşte operaţiile prin una sau mai multe instrucţiuni de atribuire fiecare terminându-se prin caracterul punct şi virgulă („;”). Se precizează că o instrucţiune se poate întinde pe mai multe linii de text; numărul maxim de caractere, care încap pe o linie, este dat de dimensiunea tipului de caractere folosit şi de dimensiunea orizontală a nodului formulă de calcul. Mărirea dimensiunii orizontale a nodului se face cu unealta de editare, pentru a se afişa cât mai multe caractere pe o linie; în general, se doreşte a se afişa câte o instrucţiune de atribuire pe fiecare linie, pentru că se uşurează munca programatorului de verificare a formulelor introduse. Prelucrările realizate de instrucţiunile de atribuire din interiorul nodului se bazează (în general) pe datele furnizate din exteriorul formulei de calcul, prin intermediul variabilelor de intrare. Rezultatele operaţiilor efectuate de nodul formula de calcul sunt transferate în exterior prin variabila de ieşire. Variabilele de intrare şi de ieşire se definesc pe chenarul reprezentării grafice a nodului: din meniul contextual asociat chenarului se alege opţiunea „Adaugă o Intrare”/ „Adaugă o Ieşire” (Add Imput/ Add Output), după care se indică identificatorul variabilei nodului formulă de calcul şi poate fi deplasat de programator oriunde pe perimetrul acesteia. Se încearcă respectarea convenţiei: variabilele de intrare se plasează în partea stângă, iar variabilele de ieşire în partea dreaptă a chenarului structurii formulă de calcul. Variabila (definită pe chenarul nodului) este referită în instrucţiunile de atribuire prin numele acordat (identificatorul) de programator.

130

4. Variabile locale Variabilele locale corespund elementelor de pe fereastra panou şi sunt accesibile

numai din fereastra diagramă. Sunt utile atunci când nu se pot realiza legături la elementele de fereastra diagrama cărora le sunt ataşate variabilele locale. Pentru crearea unei variabile locale se procedează astfel: - Se selectează din caseta de structuri simbolul şi se poziţionează pe în fereastra diagramă – atunci când butonul mouse-ului este eliberat variabila locală este simbolizată pe fereastra diagramă astfel:

- Se selectează din meniu-ul contextual asociat variabilei locale opţiunea “select item”, care are ca urmare afişarea tuturor etichetelor elementelor de pe panoul frontal (sunt marcate cele care deja au ataşate variabile locale) – în interiorul simbolului variabile va fi afişată eticheta elementului selectat.ca în figura 2. O altă posibilitate de realizare a variabilelor locale este de a

selecta - din meniu-ul contextual asociat elementului căruia dorim să-i asociem variabila locală - opţiunea “Create-local variabile” Unui control sau indicator de pe fereastra panou şi pot corespunde mai multe variabile locale.

5. Variabile globale

Se utilizează pentru schimbul de date între diferite subIV ale aceleiaşi aplicaţii sau între IV-uri ce se execută în paralel. O variabilă globală este un IV care are numai fereastră panou ce conţine toate elementele care se doreşte să fie accesibile şi altor subIV-uri.

Pentru crearea unei variabile globale se procedează astfel: - din caseta de structuri se selectează structura global cu simbolul şi se

poziţionează pe fereastra diagramă – la eliberarea mouse-ului va apărea pe fereastra diagramă acelaşi simbol ca şi al variabila locală;

- se selectează din meniu-ul contextual asociat variabilei opţiunea “Open front panel” care are ca urmare crearea unei ferestre panou asociată variabilei globale;

- se poziţionează elementele de intrare şi ieşire specifice variabilei cu aceleaşi etichete sau etichetate specific şi se salvează variabila globală

Pentru utilizarea elementelor de intrare-ieşire dintr-o variabilă globală într-un alt IV se selectează din caseta de funcţii opţiunea “Select a VI” şi se selectează numele IV-ului în care a fost salvată variabila globală; se poziţionează acest IV pe fereastra diagramă şi se selectează elementele utilizate.

6. Mod de lucru.

a. Din menu-ul Search Examples se va selecta categoria Fundamentals şi Structures. Se vor citi instrucţiunile aferente programului Calculate Max.vi . Se va deschide programul

Fig. 2. Variabila locală

131

Calculate Max.vi şi se vor identifica elementele programului. Se urmări înţelegerea funcţionării programului (se vor citi help-urile aferente elementelor a căror funcţie nu se cunoaşte, inclusiv cel aferent structurii for).

b. Se va realiza o aplicaţie care să permită calcularea şi afişarea funcţiei sin(x) pentru x între 0 şi 3600. Indicaţii:

- se va utiliza funcţia sin din caseta de funcţii numerice, categoria trigonometric (se va ţine cont că funcţia este definită în radiani şi se vor transforma radianii în grade); - pentru afişare se va utiliza controlul waveform graph din caseta de controale; - se vor citi help-urile aferente elementelor menţionate;

Se va salva aplicaţia sub numele struct_for.vi c. Din menu-ul Search Examples se va selecta categoria Fundamentals şi Structures.

Se vor citi instrucţiunile aferente programului Random Signal.vi. Se va deschide programul Random Signal.vi şi se vor identifica elementele programului. Se urmări înţelegerea funcţionării programului (se vor citi help-urile aferente elementelor a căror funcţie nu se cunoaşte, inclusiv cel aferent structurii while loop).

d. Se va realiza o aplicaţie care să calculeze şi să afişeze valorile funcţiei lg(x) pentru valori pornind de la zero, cât timp lg(x)<3. Aplicaţia va fi salvată sub numele struct_while.vi.

e. Din menu-ul Search Examples se va selecta categoria Fundamentals şi Structures. Se vor citi instrucţiunile aferente programului Equations.vi. Se va deschide programul Equations.vi şi se vor identifica elementele programului. Se urmări înţelegerea funcţionării programului (se vor citi help-urile aferente elementelor a căror funcţie nu se cunoaşte, inclusiv cel aferent structurii Formula Node).

132

Lucrarea 5.

Utilizarea variabilelor de tip şir , tablou şi structură.

1. Elementele de intrare-ieşire de tip şir

În LabVIEW se pot defini variabile de tip şir, tablou şi structură; au fost create atât

elemente de intrare-ieşire specifice cât şi funcţii puternice cu care aceste elemente să poată fi manevrate.

Elementele de intrare ieşire specifice controlului variabilelor de tip şir accesibile din fereastra de control sunt activate atunci când mouse-ul este poziţionat pe simbolul “String and table”: Se pot selecta următoarele opţiuni: - - element de intrare (control) de tip şir; - - element de ieşire (indicator) de tip şir; - - constantă de tip şir;

În etapa construirii panoului frontal, se introduce o valoare pentru un control/indicator şir de caractere prin unealta de etichetare sau de operare; valoarea actualizată este asociată componentei în urma apăsării butonului Enter afişat în bara orizontală cu meniuri sau a tastei <Enter> din partea dreaptă a tastaturii (zona tastelor numerice). Dacă se apasă tasta <Enter> atunci se va forţa trecerea la un rând nou; valoarea (textul) aflat într-o componenta şir de caractere se poate întinde pe mai multe linii (lăţimea cadrului). Când se editează conţinutul componentei şi cursorul ajunge în dreptul limitei dreapta a spaţiului de editare a controlului/indicatorului, se trece automat la o linie nouă; la un moment dat este vizibilă o singură linie alfanumerică.

Dacă valoarea unui control/indicator se întinde pe mai multe linii, se poate afişa bara de defilare (scroll bar) a conţinutului, prin opţiunea meniului Contextual "Afişează / Bara derulare" (Show / Scrollbar). Opţiunea este disponibilă atât pentru controale cât şi pentru indicatoare; pentru a avea acces la aceasta opţiune va trebui, anterior, mărită suficient dimensiunea verticală (înălţimea finală să fie minim triplul înălţimii unei singure linii de text) a componentei (cu unealta de editare) pentru a asigura şi afişarea elementului de control hard de derulare. Dacă nu se măreşte suficient înălţimea componentei, atunci opţiunea din meniul contextual nu va fi disponibilă. O alta componentă de interfaţă care facilitează introducerea/afişarea datelor tip şir de

caractere este tabelul care devine activ la activarea simbolului - - element de tip tabel. Ca structură de date, un tabel este un tablou bidimensional (matrice), cu elemente

(celule) şir de caractere. Elementele sunt grupate pe linii, putând exista mai multe linii. O anumită celulă a tabelului se va găsi la intersecţia dintre linia şi coloana corespunzătoare.

133

Un tabel poate fi control (permite actualizarea datelor conţinute în celule) sau indicator (afişarea valorilor, nu permite actualizarea datelor). Pentru o componenta de interfaţa tabel, se permite accesul prin intermediul meniului contextual, asociat la eticheta proprie, afişarea indexului liniei şi coloanei, afişarea barei verticală/orizontală de derulare, afişarea titlului pentru fiecare linie (Row Headers) şi a capului de tabel (Column Headers) şi definirea unei taste accelerator. Redimensionarea tabelului şi a celulelor se face prin unealta de editare. Numărul de ordine pentru linii/coloane începe de la valoarea zero.

2. Elementele de intrare-ieşire de tip tablou şi grupare de date

Aceste elemente sunt disponibile atunci când se selectează simbolul - Tabele şi ansambluri (array and cluster) din fereastra de controale şi indicatoare. Elementele disponibile sunt:

- - Tablouri de elemente de acelaşi tip

- - Ansambluri de elemente de tipuri diferite

- - Liste de erori de intrare;

- - Liste de erori de intrare.

Tablourile (array) sunt structuri omogene de date, care conţin date de intrare sau de ieşire de acelaşi tip (numeric, boolean, şir de caractere, etc).

După poziţionarea simbolului specific acestora pe suprafaţa ferestrei panou trebuie specificată eticheta ataşată elementului respectiv; specificarea ei ulterioară este dificilă. În acest moment sunt accesibile două căsuţe: căsuţa indicelui în care este specificat numărul de ordine al datei în cadrul tabloului şi căsuţa valoare în care vor fi specificate valorile din tablou. Tipul datelor din tablou precum şi specificarea faptului că tabloul conţine date de intrare sau ieşire se realizează atunci când este precizată prima dată din tablou; pentru aceasta se dimensionează corespunzător căsuţa valoare, se selectează din fereastra de controale şi indicatoare elementul specific tipului de date ce va fi conţinut de tablou şi se poziţionează în interiorul căsuţei valoare a tabloului. Datele conţinute de tablou vor fi controale sau indicatoare după cum elementul poziţionat în căsuţa valoare este control sau indicator.

Elementele deţin în cadrul structurii compuse o poziţie bine determinată; accesul la o anumita celulă se face prin indexare. Pentru un tablou cu N elemente, primul element se găseşte la poziţia 0 iar ultimul element din tablou la poziţia N-l. Un tablou poate avea mai multe dimensiuni; numărul maxim de elemente/dimensiune este 2³¹-1. Dimensiunea unui tablou este supusă dimensiuni memoriei disponibile. Pentru fiecare dimensiune a unui tablou se foloseşte un index.

134

Variabila tablou definită anterior are o singură dimensiune. Stabilirea sesiunilor suplimentare pentru un tablou se face astfel: • se măreşte (pe direcţia verticală în jos) cu unealta de editare căsuţa indicelui • se selectează opţiunea "Adaugă o Dimensiune" (Add Dimension) din meniul contextual, asociat variabilei tablou. Accesul la o dată dintr-o locaţie a tabloului se poate face în cadrul programului prin specificarea indicelui (indicilor în cazul tablourilor multidimensionale) a locaţiei în case se găseşte aceasta.

O grupare de date (Cluster) este o structură compusă de date. Nu este obligatoriu ca elementele componente să aparţină aceluiaşi tip spre deosebire de limitarea apartenenţei unice a tipului la elementele unui tablou (Array). Se spune ca gruparea de date este o structură eterogenă. Prin operaţia de degrupare programatorul are acces simultan la toate elementele conţinute într-o variabila de tip grup, spre deosebire de tablouri, unde prin indexare se obţine accesul la un singur element. Fiecare element dintr-o structură de tip grupare de date are asociat un număr de ordine: al câtelea a fost adăugat mulţimii; numerotarea începe de la valoarea zero. Numărul de ordine asociat elementelor grupului este actualizat de LabVIEW automat, în momentul realizării operaţiilor de adăugare sau eliminare elemente. Există funcţii predefinite, asociate tipului de data grupare de date, care folosesc numărul de ordine al elementelor în cadrul grupului, pentru accesarea parţilor componente. Crearea unei variabile tip grupare de date pe panoul frontal se face selectând din caseta cu controale o componentă "Grupare de date" (Cluster), opţiunea "Tablou & Grupare de date" (Array&Cluster). După plasarea variabilei grupare de date pe suprafaţa panoului frontal, se adaugă elementele componente: se selectează componenta din caseta cu controale/indicatoare şi se plasează deasupra chenarului reprezentării grafice a variabilei(grupare de date).

3. Funcţii specifice controlului datelor de tip şir de caractere

Aceste funcţii devin accesibile după selectarea opţiunii “string” din fereastra de funcţii. Aceste funcţii sunt:

Lungimea unui şir de caractere. Funcţie ce returnează lungimea unui şir de caractere. Este o funcţie de prelucrare a şirurilor de caractere.

Conectarea de şiruri de caractere. Funcţia se aplică la mai mult de două şiruri utilizând „Add Element” din lista obţinuta prin punctarea de pe obiectul de pe ecran.

Subansamblu unui şir de caractere.

Împărţirea unui şir de caractere.

135

Alegerea unui circuit cu mai multe şiruri de caractere şi ataşarea lor la şirul de caractere principal.

Alegerea unui şir de caractere specificat de index şi anexare lui la acest şir.

Selectare şi atribuire. Dacă se selectează valoarea „True” i se atribuie şirul de caractere adevărat. Dacă se selectează valoarea „False” i se atribuie şirul de caractere fals.

Compară începutul şirului cu fiecare element din vector.

Analizează începutul şirului care este adevărat sau fals şi returnează valoarea booleană adevărat sau fals.

Căutarea unui şir de caractere.

Alegerea şi formarea unui şir de caractere.

Schimbarea din şir de caractere în format vectorial.

Schimbarea unui vector în format şir de caractere.

Conversia unui şir de caractere în vector (în zecimal, în hexazecimal, în octal, în exponenţial, etc.).

Conversia caracterelor din litere mici în litere mari. Conversia caracterelor din litere mari în litere mici.

Rotaţia primului caracter. Inversarea şirului de caractere.

Conversia din vectorial în şir de caractere prin cale relativă sau absolută. Şir de caractere constante.

Şir de caractere vid.

Propune mişcarea în sens invers.

Circuit de alimentare.

Sfârşitul circuitului de alimentare. Declanşator al butonului de apăsare.

136

4. Funcţii specifice controlului tablourilor de date Sunt accesibile atunci când este selectată opţiunea “array” din fereastra de funcţii. Funcţiile specifice sunt:

Dimensiunea unei matrice.

Extragerea unui element dintr-un vector.

Înlocuirea elementelor din matrice în index. Elementele noi trebuie să fie de acelaşi tip cu vectorul.

Returnează poziţia vectorului de la începutul indexului şi conţine legăturile elementelor vectoriale.

Schimbă dimensiunile oricărui vector în concordanţă cu valoarea şi dimensiunile vectorului.

Iniţializarea vectorului.

Adăugarea elemente unui vector.

Rotaţia unui vector. Rotaţia unui vector se realizează cu o linie de „n” elemente.

Transpusa unei matrice.

Căutarea unui element de o singură dimensiune.

Sortarea elementelor unui vector. Această sortare se realizează în ordine ascendentă a elementelor unui vector.

Căutarea valorii de maxim şi minim dintr-un vector şi returnarea valorii şi poziţiei de maxim şi minim în vector.

Împărţirea unui vector la o poziţie precizată „i” şi returnarea celor doi vectori împărţit.

Interpolarea unei serii de puncte. Interpolarea unei serii de puncte obţinute se face plecând de la un vector sau de la un grafic. Seria este indexată fie printr-un index fix, fie prin valoarea abscisei „x” a graficului.

137

Caută o pereche de valori (a şi b) astfel încât coordonata Y să fie mai mare decât a doua valoare .

Distribuţia unui vector de o singura dimensiune.

Împărţirea elementelor de intrare la elementele de ieşire.

Indici matriciali. Conversia unui vector unidimensional într-o celulă în care fiecare element a

celulei este de acelaşi tip ca elementul vectorului. Conversia unei celule într-un vector unidimensional de acelaşi tip. 5. Funcţii specifice controlului grupărilor de date Sunt accesibile atunci când este activată opţiunea “cluster” din fereastra de funcţii. Aceste funcţii sunt:

Descompunerea unui grup de date. Se realizează descompunerea unui grup de date în elementele componente cu respectarea numărului de ordine.

Crearea unui grup de date. Se realizează crearea unui grup de date plecând de la elemente separate (component) şi eventual din alt grup de date (cluster) deja format.

Rotaţia unui vector. Crearea unui vector compus din elemente pentru trasarea unei curbe multiple.

Vectorul unui grup de date. Crearea unui vector compus dintr-un grup de date.

Indicii celulelor.

Conversia unui vector unidimensional într-o celulă în care fiecare element a celulei este de acelaşi tip ca elementul vectorului.

Conversia unei celule într-un vector unidimensiomal de acelaşi tip.

5. Mod de lucru

1. Se vor citi instrucţiunile aferente exemplelor din categoria fundamentals- array şi strings;

2. Se vor deschide şi se va analiza funcţionarea exemplelor build array din categoria array şi build string din categoria string.

138

3. Se va realiza o aplicaţie care să permită introducerea de la tastatură a două şiruri de caractere (nume şi prenume) se va calcula şi se vor afişa: lungimea şirului, şirul obţinut din concatenarea celor două şiruri precum şi şirul obţinut prin inversarea şirului concatenat. Se va salva aplicaţia sub numele „şir.vi”.

4. Se va realiza o aplicaţie care să memoreze într-un tablou unidimensional numerele generate de generatorul de numere aleatoare, până când se obţin 10 valori cuprinse între 0,75 şi 0,5. Se va ordona şi afişa sub formă numerică şi grafică şirul celor 10 valori. Se va salva aplicaţia sub numele “selectare tablou.vi”.

Indicaţie: - Generatorul de numere aleatoare se găseşte în lista numeric a ferestrei de

funcţii (random number); - Se vor reciti instrucţiunile aferente structurii while şi case, insistându-se

asupra modului de selectare a indexării automate şi asupra modului de utilizare a regiştrilor de întârziere (add shift register)

139

Lucrarea 6

Lucrul cu fişierele În LabVIEW există posibilitatea ca datele de intrare sau date intermediare prelucrate de o aplicaţie să fie preluate atât de la elementele de intrare de pe fereastra panou cât şi din fişiere în care acestea au fost stocate anterior. Există de asemenea posibilitatea ca datele obţinute în urma prelucrărilor efectuate să fie depuse în fişiere de date. Vom prezenta în continuare funcţiile principale utilizate în lucrul cu fişierele de date. Operaţiile cu fişiere presupun realizarea în principiu a trei paşi: primul constă în crearea sau deschiderea fişierului existent, al doilea în scrierea sau citirea datelor în respectiv din fişier iar cel de-al treilea constă în închiderea fişierului. Alte operaţii includ: mutarea, copierea ori ştergerea fişierelor, golirea fişierelor, schimbarea caracteristicilor fişierelor şi manipularea căilor fişierelor. Când se creează sau se deschide un director trebuie specificată locaţia acestuia. Diferite sisteme de operare descriu locaţia fişierelor în moduri diferite, dar în DOS şi WINDOWS se utilizează un sistem ierarhic pentru a descrie localizarea fişierului. Ca şi regulă generală, localizarea fişierului presupune descrierea căii (PATH) asociată fişierului pornind din directorul rădăcină şi trecând prin toate directoarele şi subdirectoarele aranjate ierarhic prin care trebuie trecut pentru a ajunge la fişier.

1. Tipuri de fişiere de date

În limbajul G există două tipuri principale de fişiere de date: fişiere “curent de octeţi - byte stream” şi fişiere „colecţie de date - datalog” Un fişier “curent de octeţi”, ca nume implicit, este un fişier a cărui unitate fundamentală este octetul. Un fişier “curent de octeţi” poate conţine orice, de la un set omogen de un tip oarecare de date în limbaj G, la o colecţie oarecare de tipuri de date – caractere, numere, sate booleene, tablouri, şiruri, colecţii de date (cluster), etc.. Un fişier text ASCII, un fişier conţinând acest paragraf de exemplu, este poate cel mai simplu fişier “curent de octeţi”. Un fişier “curent de octeţi” este în mod fundamental un fişier foaie de text, care constă din rânduri de numere ASCII, numerele fiind separate de “tab-uri” iar rândurile fiind separate de retur de car (Enter)

Un alt fişier “curent de octeţi” simplu, este un tablou de întregi pe 16 biţi sau simplă precizie, numere cu virgulă, care pot fi obţinute de la un program de achiziţie de date (DAQ). Un fişier “curent de octeţi” mai complex este un în care un tablou de întregi binari pe 16 biţi sau simplă precizie este precedat de un antet de text ASCII care descrie cum şi când au fost achiziţionate datele. Acest antet poate fi un cluster conţinând parametrii achiziţiei cum ar fi un tablou cu canale de achiziţie şi factori de scalare, rate de achiziţie, etc.

Un fişier Excel foaie de lucru este diferit de un fişier Excel text , este de asemenea o formă mai complicată de fişier “curent de octeţi” deoarece conţine text întreţesut cu date de formatare specifice Excel care nu au sens când acesta este citit ca text simplu. În rezumat se poate realiza un fişier “curent de octeţi” care conţine un oarecare tip de date G. Un fişier “curent de octeţi” poate fi creat utilizând funcţii specifice atât de nivel înalt cât şi de nivel jos.

140

Un fişier “colecţie de date” pe de altă parte constă dintr-o secvenţă de înregistrări identic structurate. Ca şi în cazul fişierelor curent de octeţi componentele înregistrărilor de date pot fi orice tip de date G. Diferenţa este că orice înregistrare de date trebuie să conţină acelaşi tip de date. Fişierele “colecţie de date” pot fi create utilizând numai funcţii de nivel jos.

Un fişier curent de octeţi poate fi scris în mod normal prin adăugarea de noi şiruri, numere sau tablouri de numere de orice lungime la fişier. Se pot de asemenea suprascrie date oriunde în fişier. Un fişier “colecţie de date” poate fi scris adăugând o înregistrare la un moment dat. Înregistrările nu pot fi suprascrise.

Se pot face citiri dintr-un fişier de tip curent de octeţi specificând deplasamentul indexului şi de câte ori date curentul de octeţi specificat trebuie citit. Pentru a citi fişiere de tip “colecţie de date” trebuie specificate lungimea înregistrării sau indexul şi numărul de înregistrări ce trebuie citite.

Se utilizează fişierele “curent de octeţi” pentru texte sau foi de date pe care este necesar să le citească alte aplicaţii. Se pot de asemenea utiliza fişiere “curent de octeţi” pentru a înregistra date achiziţionate continuu pe care este nevoie să fie citite secvenţial sau aleatoriu în cantităţi arbitrare. Se vor utiliza fişiere “colecţie de date” pentru a înregistra rezultatele unor teste multiple sau forme de undă care pot fi citite câte una şi tratate individual. Fiăierele “colecţie de date” sunt dificil de citit de alte aplicaţii non-G.

2. Controale şi indicatoare de tip cale fişier path.

Aceste controale şi indicatoare devin disponibile atunci când este activată lista path&refnum din fereastra de controale şi indicatoare.

Pentru specificarea numelui fişierului se poate folosi controlul “file path control” din categoria “path&refnum” din fereastra de control, element care are iconica .

Afişarea căii se realizează cu ajutorului indicatorului File path indicator a cărui iconică este .

Atunci când calea nu este validă simbolul din stânga, corespunzător unei căi valide devine “Not a Path” . Forţarea acestei opţiuni se

O altă cale de a specifica numele fişierului este utilizarea funcţiei “path” din

sublista funcţiilor “file constant” al cărei iconică este O parte din elementele listei path&refnum se referă numărul logic (refnum)

asociat fişierului deschis. Elementele acestea sunt:

Număr logic pentru fişiere de tip DataLog – pentru a defini un tip de fisier se plasează un control corespunzător în interiorul acestui control (lucrează similar elementelor de tip cluster); astfel pentru a crea un număr logic pentru un fişier ce conţine numere se va crea un control ce va conţine un număr; dacă fiecare înregistrare din fişier va conţine o pereche de numere, în interiorul refnum se va introduce un cluster ce va conţine două indicatoare numerice.

Număr logic pentru fişiere “curent de octeţi” precum şi pentru fişiere text sau fişiere binare. În mod tipic se utilizează această funcţie pentru a deschide ori a crea un fişier într-un VI dar se doreşte efectuarea de operaţii în acest fişier de către alt VI. Ca

141

şi control se utilizează pentru operaţii I/O iar ca şi indicator pentru a deschide sau a crea un fişier.

Este un control care se utilizează cu dispozitive pentru calculatoarele Macintosh. Este utilizat pentru a accesa drivere pentru dispozitive seriale.

Număr logic logic eveniment - este utilizat cu funcţii de generare de evenimente. Se utilizează când se generează evenimente într-un VI şi se setează sau se aşteaptă evenimente în alt VI.

Număr logic logic pentru conexiune în reţea este utilizat ci VI-uri TCP/IP. Se utilizează pentru deschiderea unei conexiuni în reţea, conexiune ce poate fi utilizată în alt VI.

Număr logic logic aplicaţie sau VI - este utilizat cu funcţii VI server. Ca şi control este utilizat pentru a trece un număr logic logic de la un VI la alt Visau ca specificator de tip pentru intrări în funcţii de referinţă.

Număr logic pentru control automat

Număr logic pentru resurse VISA

Număr logic de notificare este utilizat cu VI-uri de notificare.

Număr logic coadă de aşteptare

Număr logic semafor – este utilizat cu VI-uri semafor; se utilizează când semaforul generat se doreşte a fi utilizat în alt VI.

Număr logic de întâlnire.

3. Funcţii pentru lucru cu fişiere

Labview posedă un set de funcţii puternice şi flexibile pentru lucru cu fişierele, funcţii ce sunt grupate în categoria File I/O. În afară de citirea şi scrierea datelor în fişiere aceste funcţii permit deplasarea şi redenumirea fişierelor şi directoarelor, crearea de fişiere tip foaie pentru texte ASCII şi scriu date în format binar pentru viteză şi compactare ridicată. Se pot stoca sau regăsi date din fişiere în trei formate diferite:

- Şir de cuvinte ASCII – se pot stoca date în format ASCII când se doreşte ca aceste date să poată fi accesate de alte soft-uri precum procesoare de text. Pentru a se stoca datele în acest mod este necesar ca toate datele să fie convertite în şiruri ASCII.

- Fişiere tip datalog – aceste fişiere sunt în format binar şi pot fi accesate numai de din LabVIEW (limbaje de tip grafic). Aceste fişiere sunt similare fişierelor baze de date deoarece pot stoca date de tipuri diferite printr-o singură înregistrare în fişier.

142

- Şiruri de cuvinte binare – Aceste fişiere reprezintă cea mai compactă şi cea mai rapidă modalitate de stocare de date. Se pot converti date diverse în format şir binar şi se poate stabili ce tip de date au fost convertite, iar la citirea datelor se poate reface tipul iniţial.

Deoarece cel mai comun mod de stocare este şirul de cuvinte ASCII vom insista acestui mod.

Funcţiile de lucru cu fişiere sunt

Scrierea informaţiilor cuprinse în tabelele fişierelor I/O.

Citirea informaţiilor cuprinse în tabelelor fişierelor I/O.

Scrierea caracterelor în fişier.

Citirea caracterelor din fişier.

Citirea liniilor din fişier.

Fişier binar.

Deschiderea unui fişier cu o fereastră de dialog.

Citirea unui fişier. Deschiderea unui fişier cu o fereastra de dialog se executa cu:

- refnum: numărul logic al fişierului de citit; - data: lanţul de caractere de citit în fişier;

- după refnum: duplicarea numărului logic al fişierului de concatenat.

Scrierea unui fişier. Deschiderea unui fişier cu o fereastră de dialog: - refnum: numărul logic al fişierului de scris; - data: lanţul de caractere scris în fişier; - după refnum: duplicarea numărului logic al fişierului de concatenat.

Închiderea unui fişier: refnum: numărul logic al fişierului de închis.

Crearea unui nou traseu după nume sau un traseu relativ existent în baza de date a traseului.

Returnarea numelui sau ultimului component al traseului şi crearea traseului următor al componentelor.

Fişiere constante, cu următoarele componente: constantă tip cale fişier

143

returnează o cale fişier goală

Returnează o cale care nu e o cale validă de fişier – poate fi utilizat în cazuri de apariţie a unor erori.

Returnează un număr logic a cărui valoare nu este un număr logic valid – Returnează o cale de fişier care conţine calea VI-ului în care această funcţie apare.

Returnează calea directorului în care se află librăria de programe G

Returnează calea în care se află directorul implicit.

Returnează calea în care se află directorul fişierelor temporare.

Funcţii de nivel înalt pentru controlul fişierelor cu următoarele componente:

Afişează o casetă de dialog cu care se poate specifica o cale spre un fişier sau un director

Deschide fişierul specificat pentru citire sau/şi scriere

Creează fişierul specificat prin calea de fişier şi îl deschide pentru citire şi scriere

Setează sau returnează EOF (sfârşit de fişier) logic al fişierului identificat prin numărul logic.

Mută marker-ul fişierului curent identificat de numărul logic la o poziţie indicată

Scrie buffer-ele fişierului identificat de numărul logic pe disc. Fişierul rămâne deschis şi numărul logic rămâne valid.

Blochează sau deblochează o zonă a fişierului specificat prin numărul logic

Setează şi returnează grupul de apartenenţă

Setează tipul şi creatorul fişierului – această funcţie nu este suportată de windows

Returnează informaţii despre fişierul sau directorul specificat prin cale incluzând lungimea, data ultimei modificări şi dacă este director.

144

Returnează informaţii despre volumul care conţine fişierul sau directorul specificat prin cale, incluzând spaţiul de stocare total, spaţiu utilizat şi spaţiul liber

Mută fişierul sau directorul într-o locaţie specificată

Copiază fişierul sau directorul într-o locaţie specificată

Şterge fişierul sau directorul dintr-o locaţie specificată

Returnează două tablouri în care sunt listate numele tuturor fişierelor şi directoarelor din directorul specificat.

Creează un director nou Converteşte o cale într-un tablou de şiruri Converteşte un tablou de şiruri într-o cale Converteşte o cale într-un şir Converteşte un şir într-o cale Returnează o cale asociată unui număr logic

Returnează tipul unei căi specificate. În cazul utilizării unor din funcţiile prezentate anterior este necesar să specifice calea fişierului cu care se efectuează operaţii; specificarea acestuia se face în modul clasic windows (sau DOS). Un alt mod de specificare a fişierului cu care se operează este specificarea numelui logic al fişierului cu care se operează (refnum). Acesta este generat ca semnal de ieşire al funcţiei de deschidere/creare a fişierelor. Trebuie menţionat că numele logic este asociat fişierului respectiv numai pe durata cât fişierul este deschis; odată cu închiderea fişierului se face disociară între fişier şi numele logic. 4. Mod de lucru

1. Se va activa opţiunea show help din meniu-ul help şi se va poziţiona mouse-ul pe fiecare din funcţiile din categoria file I/O; se va citi help-ul ataşat fiecărei funcţii se vor nota în caiet elementele de intrare principale (notate cu litere închise).

2. Din Search Exemples – File I/O se va deschide Write to Text File: se va analiza programul, şi se va descrie rolul fiecărui element.

3. Din Search Exemples – File I/O se va deschide Waveform Arrays to File: se va analiza programul, şi se va descrie rolul fiecărui element.

4. Se va realiza un program care să calculeze valorile funcţiei cos(x) pentru x=0,10,20…3600. aceste valori vor fi scrise într-un fişier. După rularea programului se va deschide fişierul cu un editor de texte (notepad) şi se vor analiza datele înscrise.

5. Se va realiza un program care să citească datele din fişierul realizat anterior şi să le afişeze pe un element indicator grafic.

145

Lucrarea 7

Programarea canalelor analogice de intrare

Indiferent de placa (sau plăcile) de achiziţie utilizate, semnalele analogice măsurate trebuie convertite în semnale de tensiune continuă (în general în domeniul ±10V). Acest fapt este determinat de faptul că pentru plăcile produse de National Instruments (realizatorul mediului LabVIEW) au canale de intrare analogice (analog input) ce pot lucra în această gamă de tensiuni. Pentru a achiziţiona semnale continui este necesar să fie precizate plăcile, canalele, domeniu de variaţie al tensiunii precum şi modul de conectare specific pentru fiecare canal. Acest lucru este posibil prin intermediul funcţiilor specifice de programare a canalelor de intrare analogice (analog input) apelabile din lista.

Instrumente virtuale pentru controlul placii de achiziţie

Funcţiile disponibile în controlul plăcii de achiziţie sunt următoarele: -funcţii elementare: - configuraţia plăcii; - lansarea achiziţiei; - citirea datelor analogice; - stergerea datelor citite;

-funcţii complete: - achiziţii complete; - achiziţii continue complete.

Funcţii de baza pentru gestionarea intrărilor analogice (sublista de comenzi Analog Input).

Funcţii de bază pentru controlul ieşirilor analogice (sublista de comenzi Anolog Output).

Funcţii de programare a intrărilor/ieşirilor numerice (Sublista de comenzi Digital Input & Output).

Funcţii de calibrare şi configurare a plăcii de achiziţii şi a intrărilor/ieşirilor analogice complexe (Sublista de comenzi Counter/Timer).

Funcţii complete de achiziţii şi de restituire de date analogice, configurări de detalii (sublista de comenzi Calibration & Config.).

146

2. Programarea canalelor de intrare analogice Programarea canalelor de intrare analogice se realizează cu ajutorul funcţiilor specifice prezente în submeniul „Intrări analogice” (Analog input) al ferestrei de funcţii.

Achiziţia de semnale analogice poate fi programată pornind de la un comenzile specifice submeniului de intrări analogice respectându-se un principiu de bază şi anume, aranjarea secvenţială a funcţiilor în vederea executării coerente a programului; exemplu :configurarea plăcii, pornirea achiziţiei, citirea datelor, oprirea achiziţiei. Programarea acestor aranjări secvenţiale de funcţii se realizează printr-o înlănţuire de conexiuni numite TASK ID. În unele cazuri (funcţii complete de achiziţie ) nu mai este necesară realizarea întregii secvenţe.

Canalele pot fi programate individual sau în grupuri, pentru achiziţionarea unor eşantioane individuale sau a unor grupuri de eşantioane (necesar în cazul semnalelor dinamice cu variaţii rapide). Se consideră că se pot monta mai multe plăci de achiziţie pe un singur calculator, fiecare fiind codificată numeric, prima placă fiind codificată cu 0. În general vor trebui specificate pentru fiecare canal în parte următoarele informaţii: - Placa (Device) – Reprezintă numărul plăcii în care se află canalul, număr ataşat la

configurarea în WINDOWS a plăcii, sau numărul ataşat de programul NI-DAQ în secvenţa de butare.

- Canal (Channel) – Reprezintă numărul (în cazul programării individuale) sau o listă de canale (în cazul programării unui grup de canale)

- Limita superioară – specifică valoarea superioară a valorii mărimii analogice de pe canalul respectiv

- Limita inferioară – specifică valoarea inferioară a valorii mărimii analogice de pe canalul respectiv.

- Intrare cablaj erori – un canal prin care vor intra codurile de eroare precizările aferente erorilor de la dispozitivele cu care este legată funcţia respectivă;

- Ieşire cablaj erori canal de ieşire a erorilor apărute în funcţia respectivă sau a celor ce au fost aplicate pe canalul de intrare al funcţiei respective;

- Task ID identificator ce reuneşte un grup de canale în vederea operării în acelaşi mod. Unele funcţii au prevăzută această funcţie numai ca ieşire, unele ca intrare şi ieşire iar altele numai ca intrare.

Fig 33.Submeniul Intrari analogice

147

Funcţiile de intrare analogice au numeroşi parametri dar, uneori, datorită faptului că valorile acestor parametri corespund unei utilizări clasice a funcţiei, nu este necesar să fie precizate decât valorile parametrilor principali, ceilalţi luând o serie de valori implicite. În prezentarea funcţiilor ne vom referi numai la parametri principali. Valorile parametrilor secundari sunt prezentate în help-ul interactiv al LABVIEW, între paranteze, existând o diferenţă între caracterele cu care sunt tipăriţi parametri principali şi cei secundari (parametri principali apar îngroşaţi). Submeniul are în componenţă următoarele categorii de comenzi (Fig 33): - Funcţii de achiziţie pentru mărimi analogice cu programare de nivel jos (Easy

Analog Inputs VIs ); - Funcţii de achiziţie pentru mărimi analogice cu programare de nivel mediu

(Intermediate Analog Inputs VIs) - Funcţii de achiziţii cu programare de nivel înalt (Advanced Analog Inputs VIs) - Funcţii utilitare pentru intrări analogice ( Analog Input Utility VIs)

2.1. Funcţii de achiziţie pentru mărimi analogice cu programare de nivel jos Funcţiile pentru programare de nivel redus permit cea mai simplă realizare a

instrumentelor virtuale de achiziţii date. De obicei aceste funcţii apelează funcţii de nivel intermediar care la rândul lor apelează funcţii de nivel ridicat. Funcţiile pentru programare de nivel redus sunt:

- Achiziţionare eşantioane semnal periodic pe un canal (AI Acquire Waveform) care are ca semnale specifice: - Numar eşantioane(Number of samples)

– semnal de intrare ce precizează numărul de eşantioane achiziţionate de

funcţie; - Frecvevenţa de eşantionare (sample rate) – semnal de intrare ce specifică frecvenţa

de eşantionare (valoarea implicită este de 1000Hz); - Forma de undă (Waveform) semnal de ieşire care reprezintă un tabel ce conţine

valorile eşantioanelor preluate. - Achiziţonare eşantioane semnal periodic pe mai multe canale (AI Acquire Waveforms) – semnalele de intrare ieşire

sunt identice cu ale funcţiei anterioare cu deosebirea că în cazul canalelor trebuie introdusă o listă de canale, iar frecvenţa de eşantionare are semnificaţia de frecvenţă per canal.

- Măsurare un eşantion semnal neperiodic pe un singur canal (AI sample Cahannel) – preia un eşantion de pe canalul specificat şi îl depune la ieşirea esantion (sample)

- Achiziţionare eşantioane semnale neperodice de pe un grup de unu sau mai multe canale (AI Sample Channels) – preia câte un eşantion de pe canalele specificate pe care le depune la

ieşirea Eşantion. Aceste funcţii pot fi utilizate pentru măsurarea unui eşantion sau a unui grup de eşantioane specificat. Atunci când se doreşte măsurarea continuă funcţiile vor fi incluse în cadrul unor cicluri repetitive

148

2.2. Funcţiile pentru programarea de nivel mediu Utilizarea funcţiilor de achiziţie de nivel mediu presupune un efort mai mare în realizarea programului de achiziţii, cunoaşterea mai amănunţită a modului de programare a canalelor, dar, oferă posibilităţi mai largi de utilizare decât funcţiile de nivel redus. Funcţiile de achiziţie de nivel mediu sunt:

- Configurarea unei intrări analogice. Semnificaţia semnalelor de uz general este cea specificată anterior. Ca semnal specific este intrarea „Număr eşantioane” (Buffer size) care permite precizarea dimensiunii memoriei

tampon alocată pentru stocarea eşantioanelor; implicit dimensiunea tamponului de memorie este 1000.

- Lansarea unei achiziţii analogice care are ca semnale specifice semnalele de intrare: - Număr scanări (number of scan to aquire)

care permite precizarea numărului de scanări ce se vor realiza (mai mic sau egal cu dimensiunea tamponului de memorie a funcţiei de configurare cu care este conectată funcţia de start)

- Rata scanare (scan rate) care permite precizarea frecvenţei de achiziţie a eşantioanelor (în Hz), valoarea implicită fiind 1000Hz, trebuie menţionat că această valoare nu trebuie să depăşească frecvenţa maximă de achiziţie specifică plăcii de

achiziţie. - Citirea datelor analogice stocate în tampon cu următoarele semnale specifice: - Numar scanări (Number of scan to read)

semnal de intrare care precizează numărul de achiziţii citite din memoria tampon; în mod implicit valoarea acestui parametru este –1 care comunică compilatorului să seteze numărul de scanări citite la o valoare egală cu numărul de scanări realizate din funcţia AI START cu care funcţia respectivă este legată.

- Scalare date (Scaled Data) semnal de ieşire care permite prezentarea datelor scalate, atunci când scalarea este necesară; ieşirea este un tablou bidimensional în prima

dimensiune fiind precizat eşantionul iar în cea de a doua fiind specificate canalele.

- Ştergerea datelor analogice stocate în memoria tampon – semnalele de intrare ieşire sunt cele generale, apecificate anterior.

- Citirea unei singure date - realizează citirea unei singure date direct de pe placă în cazul achiziţiei simple şi a unei singure valori din tampon în cazul achiziţiei multiple. Funcţia are ca semnal specific semnalul de ieşire „Date

scalate” (scaled data) care furnizează într-un tablou unidimensional valorile datelor scanate.

149

Funcţiile prezentate trebuie înlănţuite în cadrul unui TASK ID. Unele din aceste funcţii apelează funcţii din cadrul submeniului „Advenced analog input”, din cadrul submeniului „Analog input”. Prezentăm spre exemplificare diagrama unui program de achiziţie date analogice pe un singur canal.

Programul prezentat permite achiziţionarea unui număr de eşantioane precizat de dimensiunea tamponului de memorie (buffer) În cazul când se doreşte o achiziţionare continuă este necesar ca secvenţa de achiziţie să fie introdusă într-un instrument de repetare ca în figura.

2.3. Funcţiile de achiziţie pentru programare de nivel înalt

Acest funcţii pot fi apelate prin activarea elementului cu iconica din

meniul de intrări analogice (Analog Input). La activarea meniului se deschide o fereastră ca cea din figura 35.

Funcţiile ce pot fi activate din această fereastră permit programarea cea mai flexibilă, dar cer în acelaşi timp o mai bună cunoaştere a modului de programare. Multe din aceste funcţii sunt apelate de funcţiile de achiziţie pentru programarea de nivel mediu. Funcţiile de programare de nivel înalt sunt:

- Configurare tampoane de memorie (AI Buffer Config); funcţia permite configurarea

tampoanelor de memorie utilizate de LABVIEW pentru stocarea valorilor

eşantioanelor achiziţionate înainte ca acestea să poată fi citite. Ca semnal specific de intrare este semnalul Eşantioane per buffer (scan per buffer) care permite specificarea

Fig 34 Diagramă program pentru achiziţii de date

150

numărului de eşantioane ce pot fi stocate în fiecare tampon de memorie. Valoarea acestui parametru este în mod implicit –1, ceea ce determină să se păstreze dimensiunea implicită a tampoanelor de memorie care este de 100 eşantioane. - Citire tampoane de memorie (AI Buffer Read); funcţia permite furnizarea

valorilor semnalelor stocate în tampoanele interne de memorie Funcţia are ca semnal de intrare principale specific semnalul

Numar de citit (number to read). Atunci când parametrul cuprins în grupul de specificaţii de citire „unităţi citite” (read units) are valoarea 1, intrarea „Număr de citit” semnifică numărul de eşantioane de citit. Când „unităţi citite” are valoarea 2 intrarea „Număr de citit” semnifică numărul de tampoane de memorie ce trebuie citite. Acest parametru are în mod implicit valoarea –1 şi comunică compilatorului LABVIEW să păstreze setarea numărului de citit neschimbată. Setarea implicită este egală cu numărul total de eşantioane de achiziţionat specificat în funcţia AI Control VI. Setarea implicită este 100 dacă numărul total de eşantioane achiziţionate este 0. Ieşirea „Date scalate” (scaled data) este un tablou bidimensional care conţine valorile intrărilor analogice scanate. - Configurare ceas (AI Clock Config) – funcţia permite setarea ceasului şi a vitezei de scanare a canalelor sau a eşantioanelor. Funcţia permite specificarea frecvenţei – prin intermediul semnalului de intrare „Frecventa de ceas” – în eşantioane pe secundă (cu ceasul eşantioanelor) sau în canale pe secundă (cu ceasul canalelor) funcţia de valoarea

semnalului de intrare „Care ceas” (which clock). Când acest semnal este setat la valoarea 3 (

holdoff clock1) inversa frecvenţei de ceas este egală cu perioada holdoff exprimată în secunde. Valoarea 0 a frecvenţei de ceas întrterupe ceasul. Valoarea implicită este –1 care comunică compilatorului LABVIEW să utilizeze semnalul „alternate clock rate specification” în locul parametrului „frecvenţă de ceas”. Setarea implicită este specifică plăcii şi ceasului utilizat. În help-ul interactiv sunt specificate frecvenţele pentru fiecare tip de placă. Funcţia de configurare a ceasului este utilă mai ales în cazul plăcilor care au mai mult de un canal de ceas. Pentru testare setării actuale a ceasului poate fi utilizată ieşirea „actual clock rate specification” care conţine informaţii referitoare la frecvenţa de ceas, perioada ceasului, sau rata de divizare a bazei de timp (atunci când se utilizează o sursă internă). - Control intrări analogice (AI Control) – funcţie care permite controlul taskurilor de intrări analogice precum şi cantitatea de date achiziţionate. Această funcţie nu poate fi utilizată pentru lansarea achiziţiilor de date cu plăcile PC-LPM-16, DAQCArd500 sau DAQCArd-700 pentru a scana canale multiple în mod multiplexat; ăn acest caz va trebui utilizată funcţia de achiziţie a unui singur eşantion (AI Single Scan).

151

Semnalele de intrare specifice sunt: - Cod de control (control code) care poate avea una din valorile:

o 0 - Start (setare implicită) o 1 - Pauză imediată o 2 - Pauză la sfârşitul tamponului de memorie curent o 3 – Reluare; o 4 – Ştergere. Valoarea 0 a codului de control comunică compilatorului LABVIEW câte date trebuie achiziţionate şi porneşte ceasul de contorizare a eşantioanelor. Valoarea 1 sau 2 a codului de control opreşte ceasul de achiziţie. Când apare valoarea 3 a codului de control după o pauză, ceasul porneşte din poziţia la care a fost oprit la apariţia codului 2 sau 3. Dacă apare valoarea 0 (Start) după o pauză, atunci achiziţia porneşte de la începutul tampoanelor de memorie, datele obţinute fiind înscrise peste cele prezente. Când valoarea codului de control este 4 (Clear), procesul de achiziţie se opreşte şi resursele interne (inclusiv tampoanele de memorie) sunt eliberate. Pentru repornirea achiziţiei de date este necesară apelarea funcţiei de configurare a tampoanelor de memorie (AI Buffer Config). Trebuie menţionat faptul că valoarea 4 a codului de control nu determină dealocarea tampoanelor de memorie, atunci când este necesară dealocarea acestora fiind necesară explicitarea dealocării prin funcţia de configurare a tampoanelor de memorie (AI Buffer Config).

- Total eşantioane achiziţionate (total scans to acquire) care poate avea valoarea: o –1 (valoare implicită) care comunică compilatorului să nu modifice numărul

total de eşantioane, ce va fi considerat egal cu dimensiunea numărului de eşantioane per tampon de memorie, specificat în funcţia de configurare a tampoanelor de memorie (AI Buffer Config).

o 0 valoare ce semnifică o achiziţie de dimensiune indefinită şi va determina compilatorul să ignore numărul de tampoane de memorie declarat şi numărul minim de eşantioane cu predeclanşare de achiziţionat.

o >0 Specifică numărul de eşantioane per tampon de memorie care va fi achiziţionat.

- Configurare grupuri de canale (AI Group Config); funcţia permite crearea unor grupuri de canale ce vor fi identificate în cadrul unui Task ID. Semnalele de intrare sunt

cele standard : - Placa (device) care permite precizarea numărului plăcii pe care se află canalele din

grup; - Lista canale scanate (channel scan list) care permite precizarea canalelor care vor

face parte din grup. Fiecare canal din listă devine un membru al grupului; Ordinea

152

canalelor în listă determină ordinea în care vor fi scanate canalele în timpul achiziţiei. Lista de canale scanate este un tabel de şiruri.

- Intrare erori (error in). Semnalele de ieşire sunt: - Task ID care este un identificator sub care vor fi recunoscute toate canalele din grup

pentru operare în comun; - Ieşire erori (error out).

- Configurarea hardware (AI Hardware Config) – funcţia permite configurarea limitelor minime şi maxime a valorilor semnalelor de intrare achiziţionate sau a domeniului a domeniului de variaţie, a polarităţii

şi amplificării. Funcţia permite de asemenea configurarea modului de cuplare, a moduluide intrare şi a numărului dispozitivelor de multiplexare AMUX 64. Modul de configurare poate fi aplicat tuturoe canalelor din grup )canale ce sunt specificate de Task ID) sau se poate aplica unor canale specificate ăn cadrul intrării „Lista de canale” (channel list). Indiferent de modul de configurare la ieşirea „Group channel settings” va fi furnizată configurarea întregului grup de canale. Semnalul de intrare specific: „Limite intrare” (input limits) este un tabel de grupuri. Fiecare element al tabelului conţine limitele aşteptate ale semnalului de intrare pentru canalele specificate. Dacă în tabel sunt mai puţine elemente referitoare la limite decât canale, atunci, este utilizat ultimul element al tabelului pentru configurarea restului de canale. - Parametri intrări analogice (AI Parameter) – Funcţia configurează şi recuperează diferiţi parametri asociaţi cu operarea dispozitivelor de intrare analogice neacoperite de celelalte funcţii de intrare analogice.

Semnalele de intrare specifice sunt: - Operaţie (operation) care specifică ce operaţie se doreşte a fi realizată cu această

funcţie. În concordanţă cu tipul operaţiei această funcţie permite setarea parametrilor, extragerea parametrilor sau transferul acestora. Operaţiile posibile sunt:

o 0 - Setare parametru (Setting a parameter) – această opţiune comunică sistemului de achiziţie că la următoarea operaţie de achiziţie de date se va folosi setarea definită de funcţie;

o 1 - Extragere parametru (Getting a parameter) – această opţinune permite obţinerea prin intermediul funcţiei a valorilor setării curente a unui canal sau a unui grup de canale;

153

o 2 - Translatare parametru (Translating a parameter) – această operaţie permite determinarea valorilor ce pot fi alocate pentru anumiţi parametri.

- Canale (channels) – permite specificarea unor canale; atunci când această intrare nu este legată, operaţia specificată se va referi la întregul grup de canale din TASk ID.

- Nume parametru (parameter name) – permite selectarea unui parametru care va fi setat, extras sau translatat. Nume parametru poate lua una din valorile:

o 0 – semnificând lăţimea benzii filtrului de frecvenţă; o 1 – mod măsurare; o 2 – deschidere detecţie termocuplu; o 3 – referinţă la masă; o 4 – probă atenuare; o 5 – Control RIS actual; o 6 – număr total de recipiente fizice de timp; o 7 – Contor RIS maxim; o 8 – Supraeşantionare maximă; o 9 – Rată de eşantionare maximă. - O singură scanare analogică (AI Single Scan) – funcţia returnează valoarea

unui singur eşantion de date. Dacă achiziţia de date este pornită cu funcţia „AI Control” această funcţie citeşte o singură dată din tamponul de date intern. Dacă achiziţia pornită nu este buferată, atunci se achiziţionează şi se citeşte un singur eşantion. Dacă nu este pornită anterior nici o operaţie de achiziţie, această funcţie porneşte achiziţia, întoarce valoarea unui singur eşantion şi termină achiziţia. Semnalul de ieşire specific este Date scalate (scaled data) care conţine valoarea

eşantionului în unităţi fizice. - Configurare declanşare (AI Trigger Config) – funcţia configurează condiţiile de declanşare pentru pornirea achiziţiei, ceasulurilor de canal şi a contorului de

eşantioane. Semnalule de intrare specifice sunt: - Tip declanşare (trigger type) – care poate lua una din valorile:

o 0 : Nu se modifică setarea tipului declanşării (intrare implicită) o 1 : Declanşare analogică (setare implicită) o 2 : Declanşare digitală A; o 3 : Declanşare digitală B; o 4 : Declanşare achiziţie digitală temporizată; o 5 : Declanşare achiziţie analogică temporizată; o 6 : Declanşare mod general

154

- Mod (mode) care permite activarea şi dezactivarea tipului de declanşare, şi care poate avea una din valorile:

o 0 : nu se modifică setarea modului (intrare implicită); o 1 : dezactivare (setare implicită) o 2 : activare;

3 : ştergere toate declanşările. Această opţiune dezactivează orice declanşator şi readuce setările parametrilor declanşatoarelor la valorile implicite. 3. Mod de lucru Se vor citi instrucţiunile aferente exemplelor de achiziţie date analogice. Se va realiza o aplicaţie care să utilizeze funcţii de achiziţie de nivel mediu pentru achiziţionarea unui semnal periodic de frecvenţă dată (50Hz); precizarea canalului şi a plăcii se va realiza de pe elemente corespunzătoare plasate pe fereastra panou. Se consider că semnalul variază între 0 şi 5 V şi va fi afişat pe un element de tip grafic. Se fa calcula şi se va afişa valoarea media a semnalului.

155

Lucrarea nr. 8

Programarea canalelor de ieşire analogice

Pentru utilizarea funcţiilor de programare a canalelor de ieşire analogice este

necesar să fie instalate în prealabil drivere-le plăcii de achiziţie instalate, drivere ce sunt grupate în pachetul NI DAQ. 1. Funcţii pentru controlul canalelor de ieşire analogice

Funcţiile analogice ieşire pot fi selectate alegând succesiv din fereastra de funcţii, Data Acquisition, Analog Output. Se deschide sublista din figura 1. Ca şi în cazul intrărilor analogice sunt disponibile trei tipuri de funcţii de programare a canalelor de ieşire analogice:

- Funcţii de nivel jos (1 în fig. 1) - Funcţii de nivel mediu (2 în fig. 1) - Funcţii de nivel înalt (3 în fig. 1)

1.1.Funcţii de nivel jos (Easy Analog Output)

Aceste funcţii necesită cunoştinţe de programare reduse, dar au flexibilitate limitată. Funcţiile disponibile sunt:

Generator de tensiune alternativă (AO Generate Waveform) – Generează o tensiune alternativă pe un canal analogic specificat cu o rată de eşantioane pe secundă, specificată. Rata eşantioanelor este limitată superior de viteza de lucru a plăcii de achiziţie. Descrierea semnalului generat realizată printr-un tablou unidimensional care conţine valorile tensiunii generate eşantion cu eşantion.

Generator de tensiuni alternative (AO Generate Waveforms) – Generează tensiuni diferite pe canale analogice de ieşire. Pot fi apelate mai multe canale de ieşire prin variabila de intrare în funcţie Canale (Chanels) variabilă care poate fi o listă în care fiecare canal este separat prin virgulă; ordinea de apariţie în listă determina ordinea de comandare a canalelor de ieşire. Descrierea semnalelor generate este prezentată sub forma unui tablou bidimensional care are pe fiecare coloană eşantioanele corespunzătoare unui canal iar pe fiecare rând valorile ordonate a eşantioanelor cu acelaşi număr de ordine.

Scrie o valoare specificată pe un canal de ieşire analog

156

Scrie valori specificate multiple pe canale de ieşire analogice.

1.2. Funcţii de nivel mediu Oferă un compromis între o programare lejeră şi o flexibilitate suficientă pentru cele mai multe aplicaţii. Aceste funcţii sunt:

Configurează lista şi limitele canalelor de ieşire, şi alocă un buffer pentru operarea canalelor analogice de ieşire.

Scrie date într-un buffer pentru o operaţie cu canalele de ieşire analogice.

Porneşte o operaţie bufferată cu ieşirile analogice. Această funcţie setează rate de scriere a datelor la ieşire şi apoi porneşte generarea datelor. Această funcţie apelează funcţiile de nivel ridicat AO CLOCK CONFIG pentru a configura semnalul de ceas al operaţiilor de ieşire şi AO CONTROL pentru a porni generarea.

Se aşteaptă până când operaţia bufferată de generare a formei de undă este terminată înainte de a permite ştergerea buffer-ului

Şterge un TASK ID asociat unei operaţii cu canale de ieşire analogică (un TASK ID reprezintă o configurare specifică pentru operaţiile I/O).

1.3. Funcţii de nivel înalt

Impun cunoştinţe de programare mai bogate şi oferă o flexibilitate maximă a operaţiilor cu canalele analogice de ieşire. Funcţiile specifice acestei categorii sunt:

Astignează o listă de canale de ieşire analogice unui număr de grup şi generează un TASK ID care poate fi utilizat de alte funcţii de ieşire analogică.

Configurează nivel de referinţă al tensiunii, polaritate şi unităţile de măsură pentru datele canalului specificat (volţi sau miliamperi). Această funcţie returnează setarea curentă pentru toate canalele definite în grupul TASK ID de la intrarea funcţiei.

Configurare Bufere - Alocă memorie pentru un buffer de ieşire analogică. Dacă se utilizează întreruperi, se pot aloca o serie de buffere analogice de ieşire şi apoi să fie astignate unui grup prin apelarea funcţiei de configurare buffere de mai multe ori. Fiecare buffer poate avea lungime diferită. Dacă se utilizează DMA (direct memory access) se poate utiliza numai un singur buffer. Dacă se utilizează plăcile de achiziţie din seria E este necesar să se consulte specificaţiile acestora pentru a se vedea dacă aceste plăci suportă lucru cu buffere multiple.

157

Configurează o actualizare sau un interval de ceas pentru ieşire analogică.

Configurează condiţiile pentru validarea şi declanşarea operaţiilor de ieşire analogică

AO Buffer Write – scrie date analogice de ieşire în bufferele create de funcţia de configurare a bufferelor.

Porneşte, întrerupe, reia şi şterge secvenţe de operaţii de ieşire analogice.

Setează parametri diverşi asociaţi cu operaţiile de ieşire analogică a dispozitivelor care nu sunt acoperite de alte funcţii de ieşire analogice.

Realizează o actualizare imediată a canalelor din grup.

1.4. Utilităţi pentru funcţiile de ieşire analogice

Sunt activate din sublista “Funcţii analogice de ieşire” (Analog Output) la acţionarea iconicii. Funcţiile din această sublistă reprezintă un nivel intermediar care se bazează pe funcţiile de nivel ridicat. În această sublistă sunt accesibile următoarele funcţii:

Generare continuă AO (AO Continuos Gen) – generează în mod continuu o formă de undă ciclică pentru canalele de ieşire specificate cu o rată specificată. Funcţia actualizează continuu buffer-ul de ieşire cu datele generate. Dacă se doreşte însă să se genereze în mod continuu aceeaşi dată se va utiliza funcţi AO Waveform Gen.

Generare continuă de forma de undă (AO Waveform Gen) – Genrează o formă de undă simplă sau bufferată pentru canalele de ieşire specificate la o rată actualizată specificată.

Scriere o singură valoare de tensiune pentru fiecare din canalele de ieşire analogică specificată. Această funcţie realizează o actualizare imediată şi nesincronizată a unui grup a unuia singur sau a mai multor canale. Dacă această funcţie este plasată într-un ciclu pentru a scrie mai mult de o valoare în acelaşi grup de canale se leagă terminalul de iteraţie la intrarea de iteraţie a funcţiei.

2. Mod de lucru

- Se vor analiza din „Help-ul” interactiv aferent fiecărei funcţii de control a canalelor de ieşire semnificaţia semnalelor de intrare-ieşire principale specifice fiecărei funcţii.

158

- Se vor citi instrucţiunile aferente exemplelor I/O Inerfaces – Data Acquisition(DAQ) – Analog Output - Se va deschide exemplul Single-Point Analog Output, se va analiza funcţionarea VI-ului şi se vor nota în caiet funcţiile de control a canalelor de ieşire analogice specificându-se căreia dintre categoriile menţionate anterior aparţin aceste funcţii. - Se va deschide exemplul Generate Continuos Sinewave, se va analiza funcţionarea VI-ului şi se vor nota în caiet funcţiile de control a canalelor de ieşire analogice specificându-se căreia dintre categoriile menţionate anterior aparţin aceste funcţii. - Se va realiza o aplicaţie care să poată fi utilizat în comanda unui motor continuu în domeniul 0-10V. Vor fi generate la ieşire tensiuni continui în conformitate cu valoarea stabilită de la panoul frontal; se va prevedea posibilitatea opririi motorului de la un buton de stop. Variaţia tensiunii la modificarea valorii acesteia se va realiza printr-o variaţie liniară cu o pantă a cărei valoare va putea fi modificată de pe fereastra panou.

159

Lucrarea nr. 9

Programarea canalelor digitale de intrare ieşire

Pentru utilizarea funcţiilor de programare a canalelor digitale de intrare/ieşire

este necesar să fie instalate în prealabil drivere-le plăcii de achiziţie instalate, drivere ce sunt grupate în pachetul NI DAQ. Trebuie precizat de asemenea că, spre deosebire de canalele analogice, în cazul canalelor digitale, funcţionarea lor ca şi canal de intrare, respectiv de ieşire nu este fixă, ci, la majoritatea plăcilor de achiziţie, este programabilă. O caracteristică importantă referitoare la canalele digitale de intrare/ieşire este că acestea sunt organizate pe cuvinte de opt octeţi, numărul de cuvinte depinzând de tipul plăcii. 1. Funcţii pentru controlul canalelor de ieşire analogice

Funcţiile digitale de intrare/ieşire pot fi selectate alegând succesiv din fereastra de funcţii, Data Acquisition, Digital I/O. Se deschide sublista din figura 1.

Ca şi în cazul intrărilor analogice sunt disponibile trei tipuri de funcţii de programare a canalelor digitale de intrare/ieşire

- Funcţii de nivel jos (1 în fig. 1) - Funcţii de nivel mediu (2 în fig. 1) - Funcţii de nivel înalt (3 în fig. 1)

1.1. Funcţii de nivel jos (Easy Digital I/O) Funcţiile digitale de nivel jos realizează operaţii digitale de intrare/ieşire simple. Funcţiile aparţinând acestei categorii sunt:

Citire de pe linie digitală (Read from Digital Line) – Citeşte starea logică a unui bit (linie) din cadrul unui cuvânt de opt biţi (canal); valoarea logică a liniei este furnizată la ieşirea funcţiei.

Citirea unui octet (canal) digital (Read from Digital Port) – Citeşte un cuvânt de pe un canal digital. Valorile logice ale fiecărui canal sunt furnizate la ieşirea funcţiei sub forma unei valori numerice (între 0 şi 255), corespunzătoare stării fiecărei linii din compunerea canalului digital.

Scriere unei valori logice specificate (0 sau 1 logic) pe o linie digitală dintr-un canal specificat.

160

Scriere pe un canal digital (Write to Digital Port) - Se înscriu pe fiecare linie a unui canal specificat de ieşire valoarea logică corespunzătoare valorii numerice specificate. Spre exemplu dacă la intrarea funcţiei logică este aplicată valoarea numerică 7 (care convertită în binar este 00000111) atunci, primele trei linii din canal vor lua valoarea 1 celelalte luând valoarea logică1.

1.2 Funcţii de nivel mediu (Intermediate Digital I/O) Aceste funcţii oferă soluţii unice pentru probleme diferite.

Configurare canale digitale (DIO Config). Această funcţie apelează o funcţie de nivel ridicat (Digital Group Config) pentru a configura un grup canale ca şi canale de intrare sau ieşire. Funcţia furnizează la ieşire un semnal taskID care poate fi utilizat de alte funcţii de intrare/ieşire digitale. Modul de lucru al acestei funcţii poate diferi în funcţie de placa de achiziţie utilizată.

Citire canale DIO (DIO Read) – Această funcţie apelează funcţia de nivel ridicat Digital Buffer Read pentru a citi date de la un port şi a le pune la dispoziţia altor funcţii prin intermediul unui semnal tip (pattern). Canalele de pe care se face citirea sunt precizate printr-un taskID furnizat de o funcţie de configurare. Cantitatea de date citite este precizată de un semnal de intrare în funcţie (number of scan) iar terminarea citirii este semnalizată la ieşire printr-un semnal specific (retrieval complete)

Scriere canal digital (DIO Write) – are funcţii similare funcţiei DIO Read cu deosebirea că operaţiile sunt de înscriere iar funcţia de nivel ridicat apelată este Digital Buffer Write. Datele înscrise trebuie organizate în tablouri unidimensionale care conţin întregi pe 8 biţi, fiecare valoare corespunzând valoarea înscris într-un port de ieşire digital. Numărul total de elemente al tabloului va fi egal cu numărul de canale înscrise multiplicat cu numărul de înscrieri realizate de funcţie.

Iniţiază o operaţie bufferată cu canale de intrare ieşire digitale (DIO Start) – Această funcţie apelează funcţia de nivel înalt Digital Clock Config pentru a seta frecvenţa ceasului dacă ceasul intern produce semnale corespunzătoare şi apoi apelează funcţia Digital Buffer Control pentru a iniţia transferul de date.

Aşteaptă până când operaţiile bufferate de intrare sau ieşire sunt finalizate (DIO Wait). În cazul operaţiilor de intrare funcţia detectează finalizarea operaţiilor când semnalul de stare a achiziţiei (inclus în mark locations) furnizat de funcţia Digital Buffer Read semnalizează terminarea operaţiei. În cazul operaţiilor de ieşire funcţia detectează completarea operaţiei când indicatorul generare completă (generation complete) al funcţiei DIO Write este 1 (TRUE).

Ştergere operaţie DIO (DIO Clear) – Este apelataă funcţia Digital Group Buffer Control pentru a întrerupe transferul şi a şterge grupul.

161

Citeşte sau scrie date digitale (DIO Single Read/Write) în canalele digitale specificate de semnalul de intrare „listă canale digitale” Această funcţie configurează şi transferă date. Când se utilizează funcţia într-un ciclu, se leagă contorul de iteraţie la intrarea de iteraţie astfel încât configurarea canalului digital se realizează numai o singură dată.

1.3. Funcţii de nivel ridicat (Advanced Digital I/O)

Sunt accesibile din sublista corespunzătoare (Advanced Digital I/O) din lista Digital I/O sublistă ce devine activă la activarea iconicei. Funcşiile disponibile în această sublistă sunt:

Defineşte un grup digital de intrare/ieşire (Digital Group Config) – Funcţia generează un semnal de ieşire taskID ce conţine descrierea configurării grupului şi poate fi utilizat de alte funcţii pentru canale digitale I/O. Trebuie menţionat faptul că modul particular de lucru al funcţiei este specific plăcii de achiziţie care con-ine canalele digitale I/O.

Stabileşte configurarea unui canal digital specificat (DIO Port Config) – Canalului configurat îi este ataşat un taskID furnizat la ieşirea funcţiei ce poate fi utilizat de alte funcţii pentru canale DIO.

Alocă memorie pentru bufferele asociate intrărilor şi ieşirilor digitale. Furnizează un semnal taskID.

Configurează unele plăci de achiziţie pentru a produce semnale de ceas sincronizate bazate pe ieşirea de ceas pentru operaţiile temporizate digital I/O.

Configurează caracteristicile semnalului de sincronizare (Digital Mode Config) a operaţiilor DIO pentru unele plăci de achiziţie.

Iniţiază o operaţie de intrare sau ieşire digitală (Digital Buffer Control)

Citeşte datele dintr-un buffer intern de date de intrare digitale (Digital Buffer Read) şi le depune într-un semnal de ieşire din funcţie (port data).

Scrie date de ieşire digitale (Digital Buffer Write) într-un buffer creat cu funcţia Digital Buffer Config. Scrierea începe totdeauna la un marcaj de scriere. După o operaţie de scriere se înscrie un punct de marcaj de înscriere după ultima actualizare a scrierii.

162

Configurează condiţiile de declanşare (Digital Trigger Config) pentru a iniţia şi/sau stopa o operaţie digitală eşantionată.

Configurează şi returnează parametri diverşi asociaţi cu intrările şi ieşirile digitale care nu sunt configuraţi de alte funcţii DIO.

Citeşte canale digitale (Digitale Single Read) care aparţin unui grup identificat prin taskID şi returnează eşantionul citit.

Scrie date înscrise într-un tablou de eşantioane în canale digitale de ieşire care aparţin unui grup identificat printr-un taskID.

Citeşte canalul digital identificat prin taskID (DIO Port Read) şi returnează valorile eşantioanelor citite în variabila „pattern”.

Scrie valori într-un canal digital (DIO Port Write) identificat prin taskID; valorile scrise sunt cuprinse într-o variabilă de intrare „pattern”.

2. Mod de lucru

- Se vor analiza, din „Help-ul” interactiv aferent fiecărei funcţii de control a canalelor digitale de intrare/ieşire, semnificaţia semnalelor de intrare-ieşire principale specifice fiecărei funcţii. - Se vor citi instrucţiunile aferente exemplelor I/O Inerfaces – Data Acquisition(DAQ) – digital Input and Output - Se va deschide exemplul Read One Point from Digital Line, se va analiza funcţionarea VI-ului şi se vor nota în caiet funcţiile de control a canalelor digitale utilizate de exemplu, specificându-se căreia dintre categoriile menţionate anterior aparţin aceste funcţii. - Se va deschide exemplul Digital Buffered Handshaking, se va analiza funcţionarea VI-ului şi se vor nota în caiet funcţiile de control a canalelor digitale utilizate de exemplu specificându-se căreia dintre categoriile menţionate anterior aparţin aceste funcţii. - Se va realiza o aplicaţie care să poată fi utilizat în comanda unui motor pas cu pas. Aplicaţia va permite furnizarea unui tren de impulsuri digitale pe un canal specificat, frecvenţa acestora putând fi stabilită de pe un element de control de pe panoul drontal.

163

Lucrarea nr. 10

Programarea contorilor

Plăcile de achiziţie sunt dotate cu ieşiri de contorizare, ieşiri prin care sunt manipulate dispozitivele de ceas de pe placa de achiziţii sau dispozitive externe. Intrările şi ieşirile dedicate sunt utilizate pentru generare de semnale de ceas sau pentru contorizare de evenimente. Funcţiile de contorizare for fi prezentate în continuare. De menţionat că, la fel ca şi în cazul celorlalte funcţii specifice achiziţiei de date, modul de acţiune al funcţiilor de contorizare este specific pentru diferite categorii de plăci de achiziţie.

1. Funcţii de control a contorizărilor

Pentru utilizarea corectă a funcţiilor de contorizare este necesar ca, la fel ca şi la celelalte funcţii de achiziţie date, să fie instalate driverele plăcii de achiziţie grupate în pachetul de programe NI DAQ. În caz că sunt apelate funcţii de achiziţie fără a fi instalat pachetul NI DAQ se va semnaliza absenţa unei serii de fişiere cu extensia dll.

Funcţiile digitale de intrare/ieşire pot fi selectate alegând succesiv din fereastra de funcţii, Data Acquisition, Counter. Se deschide sublista din figura 1. Ca şi în cazul intrărilor analogice sunt disponibile trei tipuri de funcţii de programare a

canalelor digitale de intrare/ieşire

- Funcţii de nivel jos (1 în fig. 1) - Funcţii de nivel mediu (2 în fig. 1) - Funcţii de nivel înalt (3 în fig. 1)

1.1. Funcţii de nivel jos (Easy Counter) Funcţiile din această categorie realizează operaţii de contorizare simple. Pot fi utilizate ca operaţii de sine stătătoare apelabile de pe fereastra panou sau pot fi utilizate ca subVI-uri în alte aplicaţii. Funcţiile care fac parte din această categorie sunt:

Count Events ot Time - Această funcţie configurează unu sau doi contori să contorizeze evenimente externe sau perioade de timp. Un eveniment extern este reprezentat de o tranziţie dintr-un nivel în altul a semnalului extern aplicat la pinul specificat al contorului. Pentru a contoriza evenimente. Pentru a seta modul de contorizare evenimente intrarea „event source/timebase” este setată pe zero iar pentru a seta modul de măsurare perioade de timp se stabileşte la această intrare frecvenţa (în Hz) a semnalului bază de timp aplicat la intrarea de contorizare.

164

Generate Delayed Time – Această funcţie configurează şi iniţiază un contor pentru a genera un singur puls, cu o întârziere şi o durată specificată, la pinul „OUT” al contorului. Pentru specificarea duratei întărzierii şi a duratei impulsurilor poate fi utilizată baza de timp internă a plăcii, caz în care se va utiliza rezoluţia maximă a bazei de timp, sau o bază de timp externă. În ambele cazuri întârzierea şi durata vor fi specificate ca număr de perioade a bazei de timp.

Generate Pulse Train - Configurează un contor specificat pentru a genera un tren de impulsuri continuu la pinul „OUT” sau pentru a genera un tren de impulsuri de lungime finită utilizând un contor specificat şi un contor adiacent. Trebuie specificate frecvenţa, gradul de umplere (raportul pauză semnal) şi polaritatea semnalului generat.

Measure Frequency – Măsoară frecvenţa unui semnal TTL aplicat la pinul „SOURCE” a unui contor specificat, contorizând fronturile crescătoare a semnalului pe o durată de timp specificată. Pentru măsurarea frecvenţei trebuie de asemenea legat pinul GATE al contorului programat la pinul „OUT” al contorului precedent de pe placă. Această funcţie este utilă pentru măsurarea semnalelor de frecvenţe relativ ridicate, la care apar un număr mare de cicluri de semnal pe durata perioadei temporizate. Această funcţie poate configura doi contori succesivi (contorul curent şi contorul următor) pentru a contoriza fronturile crescătoare a semnalelor aplicate la pinul de contorizare. Contorul cu număr anterior va genera semnalul GATE pentru contorul curent, utilizat la măsurarea frecvenţei.

Measure Pulse Width or Period – Măsoară lungimea pulsului (perioada de timp cât semnalul semnalul de măsurat este 1 sau 0 logic) sau perioada (intervalul de timp dintre două fronturi crescătoare sau descrescătoare adiacente) a unui semnal TTL conectat la pinul GATE a contorului specificat. Este utilizată baza de timp internă pentru a determina durata. Pentru o măsurătoare corectă a lungimii pulsului este necesar ca impulsul de măsurat să apară după lansarea în execuţie a funcţiei; în cazul măsurării perioadei această precauţie nu este necesară.

1.2. Funcţii de nivel mediu Funcţiile din această categorie apelează funcţii de nivel înalt pentru configurarea contorilor, pentru operaţii comune şi pentru pornirea, citirea şi oprirea contorilor. Funcţiile din această categorie sunt:

Adjacent Counters – Identifică contorii logic adiacenţi (cu indice +1 şi -1) faţă de un contor specificat.

Continous Pulse Generator Config – Configurează un contor pentru a genera trenuri de impulsuri TTL în mod continuu la pinul OUT. Opţional semnalul poate fi controlat prin semnalul GATE al contorului.

165

Counter Read – Citeşte un contor sau doi contori adiacenţi identificaţi prin taskID.

Counter Start – Porneşte contorul identificat prin taskID.

Counter Stop – Opreşte imediat un contor sau condiţionat la apariţia unei erori.

Delazed Pulse Generator Config – Configurează un contor pentru a genera un singur impuls TTL cu o singură întârziere la pinul OUT. Pentru stabilirea întârzierii sau a duratei impulsului se poate utiliza baza de timp internă (la rezoluţie maximă) sau o bază de timp externă; durata şi întârzierea sunt specificate ca număr de cicluri ale bazei de timp.

Down Counter or Divider Config – Configurează contorul specificat pentru a contoriza sau pentru a divide un semnal aplicat la pinul SOURCE sau a bazei de timp interne utilizând o valoare de contorizare numit „timebase divisor”. Rezultatul este că semnalul la pin-ul AUT este egal cu frecvenţa semnalului de intrare raportată la „timebase divizor”.

Event or Time Counter Config – Configurează unu sau două contoare să contorizeze fronturi ale semnalului aplicat la pinul SOURCE a contorului specificat sau numărul de cicluri ale bazei de timp interne specificate. Când este utilizată o bază internă această funcţie lucrează similar funcţiei Tick Count (ms) dar utilizează un contor hardware de pe placa de achiziţie cu o rezoluţie programabilă. La fel ca şi la funcţia anterioară, contorizarea poate fi controlată prin intermediul intrării GATE.

Funcţie intermediară specifică contorilor 8253 – va fi analizată pe larg ulterior.

Pulse Width or Period Meas Config – Configurează contorul specificat pentru a măsura lungimea pulsului sau perioada unui semnal TTL conectat la pinul GATE. Măsurarea se realizează prin contorizarea numărului de cicluri ale bazei de timp specificate între evenimentele corespunzătoare pornirii şi opririi. Pentru o măsurare corectă este necesar semnalul de măsurat să fie aplicat la pinul GATE după lansarea funcţiei.

Wait+ (ms) Apelează funcţia Wait (ms) numai dacă nu există un semnal de eroare. Este util atunci când este necesar să se aştepte între apelarea a două subVI de intrare ieşire care utilizează mecanismul de control a erorii; nu este necesară utilizarea unei structuri secvenţiale pentru a controla ordinea execuţiei. 1.3. Funcţii de nivel ridicat Aceste funcţii controlează şi configurează condorii hardware. Se pot utiliza aceste funcţii pentru a genera unde dreptunghiulare cu factori de umplere variabili, pentru a

166

contoriza evenimente şi pentru a măsura frecvenţe şi perioade. Funcţiile din această categorie sunt:

CTR Group Config – colectează unul sau mai mulţi contori într-un grup. Se poate utiliza această configurare pentru a porni, a opri sau a citi simultan mai mulţi contori. Unele plăci de achiziţie nu suportă grupuri multiple de contori.

CTR Mode Config – configurează unul sau mai mulţi contori pentru o operaţie specificată de contorizare şi selectează sursa semnalului, modul de utilizare a semnalului de validare (GATE) şi modul de comportare a ieşirii la terminalul OUT al contorului.

CTR Pulse Config – Specifică parametrii pentru generarea de pulsuri. Această funcţie configurează contorii dar nu-i porneşte. Se va utiliza funcţia CTR Control cu codul de control cu valoarea 1 (Start) pentru a produce pulsul.

CTR Buffer Config – Alocă memoria unde LabVIEW stochează datele contorizate. Această funcţie configurează de asemenea grupul specificat pentru a realiza operaţiile de contorizare bufferate în locul unor operaţii normale cu un singur punct.

CTR Buffer Read – Returnează datele din buffer-ul alocat de funcţia CTR Buffer Config.

CTR Control – Controlează şi citeşte grupurile de contoare. Controlul operaţiilor include pornirea, oprirea şi setarea stării ieşirii.

ICTR Control – Controlează contorii 8253 şi va fi prezentat pe larg în paragraful următor. Funcţii de control a contorilor 8253.

Comanda contorilor de pe dispozitive ce folosesc cipul 8253 (plăcile de achiziţie SCXI-1200, DAQPad-1200, PC-LPM-16 şi diagrama DAQ 7000 ) se realizează cu funcţia ICTR Control a cărei structură este:

Semnalele de intrare principale (care nu au valori implicite) sunt : Dispozitiv - este numărul dispozitivului alocat dispozitivului DAQ in timpul

configurării . Contor – reprezintă numărului contorului căruia îi este dedicată această funcţie

(în cazul plăcii PCL-LPM-16 numărul poate fi 0, 1 sau 2) Codul de comanda- determina modul de operare al ( contorului) .

167

0.Modulul de instalare 0 - mecanismul de distanţare a plăcilor de la mic la mare pe TC (în lipsa) .

1.Modulul de instalare 1 – programare un pas. 2.Modulul de instalare 2 - viteza generatorului 3.Modulul de instalare 3 - viteza generatorului cu semnale

dreptunghiulare 4.Modulul de instalare 4 – impuls declanşat software 5.Modulul de instalare 5 - impuls declanşat hardware 6.Citire . 7.Ştergere.

În modul de instalare 0, aşa cum se vede in figura 10.5 ieşirea devine 0 (nivel jos) după setarea modului de operare şi contorul începe să se decrementeze când semnalul de poarta este 1 (nivel înalt). Ieşirea devine 1 (pe nivel înalt) când contorul s-a decrementat până la 0 şi rămâne aşa până când se setează un mod diferit de operare pentru contor.

În modulul de instalare 1, aşa cum se vede în figura 10.6, ieşirea devine 0 (nivel jos) la primul impuls de ceas după frontul crescător al semnalului de poartă şi revine la nivel 1 (nivel ridicat) atunci când contorul ajunge cu decrementarea la 0.

În modulul de instalare 2 aşa cum se vede in figura 10.7,ieşirea devine 0 ( nivel jos) pentru o perioada de ceas . Contorul indică o perioada dintre pulsurile de ieşire.

În modulul de instalare 3 ieşirea devine 1(nivel înalt) pentru o jumătate din

impulsurile ceasului şi pentru cealaltă jumătate de ceas devine 0 (nivel jos). Vezi figura 10.8 .

Figura 10.5. Diagrama modului 0

Fig. 10.6. Diagrama modului 1

Fig. 10.7. Diagrama modului 2

168

În modulul de instalare 4, ca în figura 10.8, ieşirea este iniţial 1 (nivel ridicat),

contorul începând să numere în timp ce semnalul de poartă este 1. La terminarea contorizării, ieşirea devine 0 pentru un impuls al ceasului, apoi devine iarăşi 1.

Modulul de instalare 5 este similar modulului 4 cu o singură excepţie, numărarea

este comandată de semnalul de poartă. Vezi figura 10.9.

Vezi contorul de intervale programabile 8253 de pe planşa de laborator, manualul de folosire a acestor module si diagramele temporale asociate .

Eroare internă - descrie orice condiţie de eroare anticipate execuţiei comenzilor VI. Aceste fascicole ne lipsesc de erori. Eroarea interna in fascicole conţin următorii parametrii .

Statutul- este adevărat daca o eroare a apărut. Daca statutul este adevărat acest VI nu face configuraţie.

Codul este numărul codului de eroare care identifica eroarea . O valoare de zero in general nu înseamnă nici o eroare , o valoare negativa înseamnă o eroare fatală iar o valoare pozitivă este o avertizare. Vezi Appendix C. Codurile Erorii pentru o descriere a codului.

Sursa indentifică unde a avut loc eroarea. Firul sursei este de obicei numele VI –ului ce a produs eroarea.

Eroare externa- conţine informaţii despre erori . Daca mulţimea erorilor interne indicau eroarea, mulţimea erorilor externe descriu statutul erorilor al acestui VI. Contorul citeşte perioada dintre pulsurile de ieşire. Dacă codul comenzii este 0,

1, 4, sau 5 contorul poate fi 0 în 65535 operaţii binare de contor şi 0 în 9999 operaţii codate zecimale (BCD). Dacă codul comenzii este 2 sau 3 contorul 2 poate fi între 65535 şi zero în operaţii binare şi între 9999 şi 0 în operaţiile contorului BCD.

NOTĂ : 0 este echivalentul 65536 în operaţiile binare ale contorului şi 10000 în operaţiile BCD ale contorului .

Fig. 10.8 Diagrama modului 3

Fig. 10.8 Diagrama modului 4

Fig. 10.8 Diagrama modului 5

169

Ieşirea este validă când codul comenzii = 7 (resetare). 0 : Nivel jos 1: Nivel ridicat Binar sau BCD controlează dacă contorul operează ca un contor binar de

16 biţi sau ca un contor BCD. 0: 4 –digiţi ai contorului BCD 1: 16-biţi ai contorului binar Citirea valorilor. Când se setează codul de comandă 6 (citirea valorilor)

se întoarce valoarea de pe contor.

2. Mod de lucru

- Se vor analiza, din „Help-ul” interactiv aferent fiecărei funcţii de control al contorizărilor, semnificaţia semnalelor de intrare-ieşire principale specifice fiecărei funcţii. - Se vor citi instrucţiunile aferente exemplelor I/O Interfaces – Data Acquisition(DAQ) – Counters - Se va deschide exemplul Frequency Measurement pentru plăci cu contori 8253, se va analiza funcţionarea VI-ului şi se vor nota în caiet funcţiile de control a contorizării utilizate de exemplu, specificându-se căreia dintre categoriile menţionate anterior aparţin aceste funcţii. - Se va deschide exemplul Continuous Pulse Train Generation pentru plăci cu contori 8253, se va analiza funcţionarea VI-ului şi se vor nota în caiet funcţiile de control a contorilor utilizate de exemplu specificându-se căreia dintre categoriile menţionate anterior aparţin aceste funcţii. - Se va realiza o aplicaţie care să poată fi pentru măsurarea frecvenţei pentru semnale sinusoidale. Pentru aceasta semnalele sinusoidale vor fi convertite în semnale dreptunghiulare TTL ce vor fi furnizate la una din ieşirile logice.

170

Laborator nr .11.

Placa de achiziţie PC-LPM-16

1. Caracteristici tehnice Face parte din categoria plăcilor de achiziţie care nu au canale de ieşire analogice şi este produsă de National Instruments. Caracteristicile principalele ale acestei plăci sunt:

- 16 canale de intrare analogice pe care se pot aplica tensiuni în domeniile ±2,5V, ±5V, 0÷10V sau 0÷5V domenii selectabile prin intermediul unor comutatoare de pe placă

- frecvenţa maximă de eşantionare pe canalele analogice 50kHz - 8 canale digitale de intrare care suportă semnale compatibile TTL prin care se

poate testa starea unor dispozitive logice (comutatoare, întrerupătoare, etc.) - 8 canale digitale de ieşire prin care se pot furniza spre exterior semnale

compatibile TTL cu care se pot comanda dispozitive logice externe; - 3 contori pe 16 biţi ce suportă semnale compatibile TTL; dintre contori are un

semnal de bază de timp de 1 MHz furnizată din placă. - Tensiunile de alimentare utilizate de placă sunt furnizate de PC:

o +5Vc.c. (130mA) o +12Vc.c. (30mA)

- Conectarea plăcii se realizează prin cablu flexibil şi conector cu 50 de pini - Condiţii de mediu pentru operare:

Fig. 1 Poziţionarea componentelor pe placa de achiziţie PCL-LPM-16

171

o Temperatura componentelor 0…700C o Umiditate relativă 5…90% fără condens o

2. Conectarea plăcii

În figura 1 este prezentată dispunerea componentelor pe placă, iar în figura 2 este prezentată dispunerea pinilor conectorului extern precum şi semnalele corespunzătoare fiecărui pin.

Semnificaţia semnalelor conectate la conectorul de intrare/ieşire (I/O) este următoarea:

- AIGND masa analogică; - ACH<0..15> canale analogice de intrare notate

de la 0 la 15; - DGND masa digitală; - -12V tensiune de ieşire +12V maxim 5mA; - +12V alimentare de +12V din calculator. Această

linie are înseriată o siguranţă fuzibilă de 0,5A; - DIN<0..7> linii de intrare digitale. DIN 7

reprezintă bitul cel mai semnaificativ ; - DOUT<0..7> linii de ieşiri digitale. DOUT7

reprezintă bitul cel mai semnificativ ; - OUT1* semnalul de ieşire al contorului 1

inversat; - EXTINT* semnal intrare întrerupere externă; - EXTCONV* intrare semnal extern de control

pentru declanşarea conversiei analog numerice - OUT0 ieşirea contorului COUNTER0 - GATE0 intrare pentru validarea contorului 0; - OUT1 ieşire contor 1; - GATE1 intrare pentru validarea contorului 1; - CLK1 intrare contorizată de COUNTER1; - OUT2 ieşire contor 2; - GATE2 intrare pentru validarea contorului 0;

- CLK2 intrare contorizată de COUNTER2; - +5V tensiune de alimentare de la PC are conectată în serie o siguranţă de 1A; - DGND masă digitală

Observaţie: Semnalele notate cu * sunt active jos.

2.1. Conectarea semnalelor de intrare analogică În figura 3 este prezentat modul în care trebuie conectată o sursă de semnal la placa PC-LPM-16. Se va acorda atenţie conectării corecte a polarităţii în scopul evitării scurcircuitării ieşirii sursei.

Fig. 2. Poziţionarea pinilor la conectorul I/O

172

2.2. Conectarea semnalelor digitale de intrare-ieşire Pinii de la 22 până la 37 ai conectorului de intrare-ieşire sunt pini destinaţi conectării semnalelor digitale de intrare/ieşire. Pinii 22÷29 sunt destinaţi intrărilor iar pinii 29÷37 sunt destinaţi ieşirilor. Pinii 19 şi 50 sunt pini de masă digitală. Valoarea maximă a tensiunii aplicată pe intrările digitale este de +7V iar valoarea minimă este de –0,5V.

Semnalele digitale de intrare sunt compatibile TTL, curentul absorbit fiind de 1µA. Semnalele digitale de ieşire sunt de asemenea compatibile TTL, valorile limită de curent şi tensiune fiind: 8mA la VOH=2,7V 6mA la VOL=0,5V În figura 4 este prezentată conectarea semnalelor digitale de intrare şi ieşire la porturile corespunzătoare La intrări se pot conecta semnale compatibile TTL

semnale ce pot fi conectate prin intermediul unor comutatoare, iar prin ieşiri se poate face comanda unor dispozitive externe (de ex. LED) aşa cum se observă în figura 4.

Fig. 3. Conectarea semnalelor de intrare analogice

Fig. 4. Conectarea semnalelor de intrare ieşire digitale

173

Conectarea alimentării Sursa de +5V se conectează la pinul 49 al conectorul de intrare/ieşire iar pe pinul 20 se conectează sursa de +12V de la PC. Sursa de +5V şi +12V sunt protejate de siguranţe fuzibile de 1A şi respectiv 0,5A.

2.3. Conectarea semnalelor de temporizare sincronizare contorizare Pinii 38÷48 ai conectorului de intrare-ieşire sunt destinaţi conectării semnalelor de timp; acestea sunt dedicate celor trei circuite de contorizare MSM82C53 montate pe placă. Unul din aceste circuite (Counter 0) este destinat pentru sincronizarea achiziţiilor de date. Contorul 0 este utilizat pentru controlul intervalelor de eşantionare în timp a conversiei analog numerice. De asemenea semnalul EXTCONV* pentru conversii externe

de timp. În figura 5 sunt prezentate cerinţele de timp pentru intrarea EXTCONV*. O conversie analog numerică este iniţiată pe frontul crescător al semnalului EXTCONV*. Datele acestei conversii sunt depuse intr-o memorie FIFO în timp de 20µs. Semnalul EXTCONV* este un semnal compatibil TTL.

Conexiuni generale de temporizare contorizare

Semnalele de temporizare includ semnalele GATE, CLK şi AUT pentru cele trei contoare MSM 82C53, cu excepţia semnalului CLK al contorului 0 care nu este disponibil pe conectorul de intrare ieşire. Contoarele MSM 82C53 pot fi utilizate pentru aplicaţii

Fig. 5. Sincronizarea semnalului EXTCONV*

Fig. 6. Contorizarea evenimentelor cu controlul extern al semnalului GATE

174

diverse precum: generare de pulsuri şi semnale dreptunghiulare, contorizare de evenimente, măsurarea duratei impulsurilor, măsurarea frecvenţei, etc. Pentru aceste aplicaţii se realizează programarea contoarelor în diferite moduri prin intermediul semnalelor GATE şi CLK. Singura excepţie este contorul 0 care are un semnal de ceas intern la 1MHz. Generarea semnalelor de tip impuls şi dreptunghiulare se realizează prin programarea corespunzătoare a contoarelor, semnalul fiind furnizat la pinul OUT corespunzător contorului respectiv. Contorizarea evenimentelor prin programarea corespunzătoare a contoarelor astfel încât acestea să contorizeze fronturile crescătoare sau descrescătoare a evenimentelor. Valoarea contorizată poate fi citită pentru a determina numărul fronturilor sesizate. Activarea sau dezactivarea contorului se poate realiza prin intermediul semnalului GATE. În figura 6. sunt prezentate conexiunile tipice pentru operaţii de contorizare a evenimentelor, semnalul GATE fiind comandat prin intermediul unui întrerupător care permite activarea sau dezactivarea contorului.

Măsurarea duratei impulsurilor este realizată prin aplicarea pe intrare GATE a impulsului a cărei durată se măsoară (cu respectarea nivelurilor permise pentru acest semnal). Contorul este încărcat cu o valoare cunoscută iar pe intrarea CLK se aplică un semnal de frecvenţă cunoscută care decrementează contorul. Durata impulsului este egală cu diferenţa dintre valoarea înscrisă în contor şi cea citită în momentul în care impulsul se sfârşeşte (semnalul GATE trece în 0) multiplicată cu perioada semnalului CLK aplicat. Măsurarea frecvenţei se realizează prin programarea semnalului GATE în nivel şi prin contorizarea numărului de fronturi descrescătoare a semnalului aplicat la intrarea CLK. Durata semnalului aplicat pe intrarea GATE este cunoscută; în acest caz, contorul este programat să contorizeze fronturile descrescătoare de pe intrare CLK cât timp semnalul GATE este aplicat. Frecvenţa semnalului aplicat la intrarea CLK va fi egală cu valoarea contorizată împărţită prin perioada semnalului GATE. În figura 7 sunt prezentate conexiunile tipice pentru măsurarea frecvenţei. În această aplicaţie, un al doilea contor poate fi utilizat pentru a genera semnalul GATE.

Fig. 7. Conexiuni pentru măsurarea frecvenţei

175

Semnalele GATE, CLK şi AUT pentru contoarele 1 şi 2 sunt accesibile la conectorul de intrare/ieşire. În plus pinii GATE şi CLK sunt legaţi la sursa de +5V prin intermediul unor rezistenţe de 4,7kW. Figura 8 prezintă diagramele de semnal pentru semnalele de intrare GATE şi CLK şi pentru semnalul de ieşire OUT precum şi timpii specifici pentru un circuit MSM82C53.

Vom prezenta în continuare domeniile de tensiune ale semnalelor de intrare/ieşire specifice circuitelor MSM 82C53:

- Domeniul maxim de al tensiunii de intrare –0,5V la 7V - Tensiune de intrare pe nivel logic 1 (VIH) minim 2,2V - Tensiune de intrare pe nivel logic 0 (VIL) maxim 0,8V - Curent de intrare absorbit maxim ±10µA - Tensiune de ieşire pe nivel logic 1 (VOH) minim 3,7V - Tensiune de intrare pe nivel logic 0 (VOL) maxim 0,45V - Curent la ieşire pe nivel 1 logic maxim 1mA - Curent la ieşire pe nivel 0 logic maxim 4mA

Semnalele GATE şi AUT sunt validate pe fronturile crescătoare ale semnalului CLK.

3. Operare În figura 9 este prezentată schema bloc a plăcii PC-LPM-16 Principalele componente ale plăcii sunt:

- Circuitele de interfaţă calculator (PC) canale de intrare/ieşire;

tsc = perioada de ceas minim 125ns tpwh = nivel înalt ceas minim 60ns tpwl = nivel jos ceas minim 60ns tgsu = timp instalare semnal gate minim 50ns tgh = timp de oprire semnal gate minim 50ns tgwh= semnal gate pe nivel ridicat minim 50ns tgwl = semnal gate pe nivel jos minim 50ns toutg = întârziere a ieşirii faţă de semanlul GATE maxim 150ns toutc = întârziere a ieşirii faţă de semnalul CLK maxim 150ns Fig. .8. Diagrame de semnal pentru contoare

176

- Circuitele de intrare analogice - Circuitele de intrare/ieşire digitale; - Circuitele de intrare/ieşire de timp

3.1. Circuitele de interfaţă PC canale intrare/ieşire

Aceste circuite sunt constituite dintr-o magistrală de adrese, o magistrală de date, linii de întreruperi şi mai multe semnale de control cu circuitele aferente. Componenţa circuitelor de interfaţă este prezentată în figura 10 Circuitele constau din memorii pentru adrese, decodoare de adrese, bufere, circuite pentru controlul interfaţării pentru canalele de intrare/ieşire şi temporizare şi un circuit de control al întreruperilor.

Circuitele supraveghează liniile de adrese SA5 la SA9 pentru a genera semnale de validare a plăcii şi utilizează liniile SA0 la SA4 plus semnalele de timp pentru a genera semnalele de selectare a regiştrilor plăcii şi semnalele de citire/scriere. Buferele controlează direcţia transferului de date pe liniile de date bidirecţionale ţinându-se cont dacă transferul este de scriere sau citire. Circuitele de control a întreruperilor dirijează orice întrerupere validată pentru a selecta o linie de cerere de întrerupere. Cu cererea de întrerupere care este un semnal de ieşire tri-state, placa PC-LPM-16 poate împărţi liniile de întrerupere cu alte dispozitive.

Fig. 9. Schema bloc a plăci PC-LPM-16

177

Sunt disponibile şase linii de cerere de întrerupere: IRQ3 la IRQ7 şi IRQ9. Placa PC-LPM-16 generează întreruperi în următoarele situaţii:

- Când poate fi citită o conversie analog-numerică de la FIFO; - Când este detectat un semnal activ pe nivel jos pe linia EXTINT*; - Când este detectat un front crescător la ieşirea contorului COUNTER 2. Fiecare di aceste întreruperi este validată şi ştearsă individual.

3.2. Circuitele de intrare analogice şi achiziţie de date

Placa PC-LPM-16 are 16 canale de intrare analogice cu conversie analog numerică pe 12 biţi. Utilizând circuitele de temporizare eşantionare, placa PC-LPM-16 poate multiplica automat conversiile. În figura 11 este prezentată diagrama bloc a circuitelor de intrare analogice şi achiziţie de date.

Circuitele de intrare analogice

Circuitele de intrări analogice sunt formate dintr-un multiplexor de intrare, un jumper pentru selectarea amplificării, şi un convertor analog numeric pe 12 biţi plus bit de semn cu aproximări succesive. Cei 12 biţi plus 1(bitul de semn) sunt extinşi la 16 biţi înainte de a fi stocaţi pe memorie FIFO. Multiplexorul de intrare este un multiplexor analogic CMOS şi are 16 canale de intrare (notate de la 0 la 15). Utilizându-se jumperele W1 şi W2 de pe placă se pot selecta amplificări diferite şi prin urmare următoarele domenii de intrare: 0÷10V, ±5V, 0÷5V şi V. Atunci când o conversie analogic numerică este completă este emis un semnal de la ceasul analog numeric spre memoria FIFO. Memoria FIFO este o memorie de 16 cuvinte a

Fig. 10 Schema bloc a circuitelor de interfaţă PC I/O

178

16 biţi. Această memorie serveşte ca memorie tampon pentru convertorul analog numeric pe 12 biţi şi are două mari avantaje:

- în primul rând, atunci când o conversie analog numeric este încheiată, valoarea numerică este salvată pe memoria FIFO pentru o citire ulterioară, iar convertorul analog numeric este liber pentru a efectua o nouă conversie;

- un al doilea avantaj este acela că memoria FIFO poate colecta 16 valori înainte de pierde vreo informaţie, aceasta oferind software-ului un timp suplimentar (egal cu 16 perioade de eşantionare) pentru a se cupla cu hardware-ul. Dacă sunt stocate mai mult de 16 valori în memoria FIFO fără ca aceasta să fie citită apare o condiţie de eroare numit FIFO Overflow, iar valoarea conversiei analog numerice este pierdută.

Memoria FIFO a convertorului analog numeric generează un semnal atunci când conţine o dată convertită numeric Starea acestui semnal poate fi citită din regiştri de stare ai plăcii.

Circuitele convertorului analog numeric includ circuite care fac posibile minimizarea erorilor de zero, de domeniu şi de liniaritate. Conversia analog numeric debutează cu un ciclu de auto calibrare sub control software care asigură reducerea erorilor de offset şi de amplificare.

Circuitele de timp aferente conversiei analog numerice În operaţiile de conversie analog numerică trebuie asigurate intervale de timp suficiente între două conversii succesive, intervale care sunt de fapt intervalele de eşantionare. Pentru asigurarea acestor intervale sunt prevăzute o serie de circuite de temporizare contorizare. Cu placa PC-LPM-16 se pot realiza două tipuri de achiziţii de date: achiziţii pe un singur canal şi achiziţii pe mai multe canale (baleiată). În cazul achiziţiilor multiple este utilizat un contor care asigură comutarea automată între intrările canalelor analogice în timpul achiziţiei de date. Circuitele de timp aferente achiziţiei de date generează şi controlează semnale care iniţiază achiziţia de date şi semnalizează diferite etape ale operaţiei. Sursa principală a

Fig. 11. Schema bloc a circuitelor de intrare şi achiziţie date

179

acestor semnale este poziţionată pe placă, unul dintre cele trei contoare MSM82C53 de pe placă fiind destinat special acestui scop. O conversie analog numerică poate fi iniţiată de o tranziţie crescătoare a ieşirii contorului COUNTER 0 (OUT0) de placă sau de o tranziţie crescătoare a intrării EXTCONV*. Temporizarea intervalelor de eşantionare este asigurată de contorul cu decrementare pe 16 biţi căruia îi sunt aplicate impulsuri de la ceasul de 1 MHz al plăcii, generându-se intervale de eşantionare începând de la 2ms la maxim 65535ms. Atunci când contorul ajunge la 0 se generează un impuls şi se re încarcă cu valoarea corespunzătoare intervalului de eşantionare; procesul se repetă până la o nouă programare a contorului. Numai contorul 0 este necesar conversiei analog numerice. Atunci când se face achiziţia unui număr de eşantioane, software-ul trebuie să urmărească numărul de treceri prin zero a valorii contorului şi să blocheze contorul 0 atunci când numărul trecerilor prin zero este egal cu numărul de eşantioane programate. În cazul achiziţiei pe un singur canal trebuie selectat canalul pe care se face achiziţia prin intermediul poziţionării corespunzătoare a bitului din registrul de comandă înainde de iniţierea achiziţiei. În acest fel setarea multiplexorului rămâne constantă de-a lungul întregului proces de achiziţie şi prin urmarea toate datele pentru conversia analog numerică sunt citite de pe un singur canal. În cazul achiziţiei pe mai multe canale se validează baleierea pe durata achiziţiei de date. Baleierea pe mai multe canale este controlată de un contor de baleiere care este decrementat în timpul achiziţiei datelor de la valoarea numărului de canale pe care se face achiziţia (înscrisă de programator) până la valoarea 0 şi apoi se repetă secvenţa. În acest fel la intrarea convertorului poate fi aplicat oricare sin canalele selectate; este necesar însă ca pe toate canalele să fie utilizat acelaşi domeniu de intrare. Viteza maximă de achiziţie este determinată de mai mulţi factori. În cazul achiziţiei pe un singur canal este determinată de durata conversiei la care se adaugă timpii necesari transmisiei şi reţinerii. În cazul achiziţiei de date pe mai multe canale, viteza de achiziţie este limitată şi de timpul de comutare al multiplexorului precum şi de timpii de lucru ai amplificatorului. Viteza maximă de eşantionare recomandată atât pentru achiziţia pe un singur canal cât şi pentru cea pe mai multe canale este corespunzătoare unei frecvenţe de eşantionare de 50kHz. În cazul domeniilor de intrare 0÷10V se recomandată o rată maximă de eşantionare de 45kHz. 3.3.Circuitele de intrare ieşire digitale

Placa PC-LPM-16 are 16 linii de intrare ieşire compatibile TTL. Pinii DIN<0..7> din conectorul de intrare ieşire sunt destinaţi liniilor de intrare digitală iar pinii DOUT <0..7> sunt destinaţi liniilor digitale de ieşire. Aceste linii sunt suprvegheate şi controlate de Registrul de Intrări Digitale şi respectiv de Registrul de Ieşiri Digitale. Citirea valorilor liniilor de intrare DIN<0..7> se face din Registrul de Intrări Digitale, iar înscrierea Registrului de ieşiri Digitale va determina starea liniilor de ieşire DOUT <0..7>. Dispozitivele externe pot controla semnalul EXTINT* pentru a semnaliza starea gata de transfer de date. Schema bloc a circuitelor de intrări ieşiri digitale este prezentată în figura 12

180

3.4. Circuitele de temporizare PCL-LPM-16 are în compunere trei contoare MSM82C53 dintre care unul singur (COUNTER 0) poate fi utilizat intern pentru sincronizarea achiziţiei de date. Toate cele trei contoare pot fi programate să opereze în mai multe moduri de contorizare temporizare utilizând registrul de moduri al fiecărui contor. COUNTER 0 utilizează un generator de ceas de 1MHz obţinut din oscilatorul de 4MHz al plăcii. Baza de timp pentru COUNTER1 şi COUNTER2 trebuie furnizată extern la pinul 50 al conectorului de intrare ieşire.

Fiecare contor are două intrări – una de ceas (CLK) şi una de validare (GATE) - şi o ieşire OUT. 4. Mod de lucru Se vor identifica pinii modulului de conectare a plăcii PCL-LPM-16.

- Se vor identifica pinii canalelor de intrare analogice. - Se vor identifica pinii canalelor de intrare ieşire digitale - Se vor identifica pinii celor trei contori 8253 din componenţa plăcii. - Se vor identifica pinii de alimentare

Fig. 12 Schema bloc a circuitelor de intrare ieşire digitale

181

Laborator nr .12.

Placa de achiziţie NI 6221 Caracteristici tehnice pentru placa de achiziţie NI 6221 1. Intrări analogice Numărul de canale……………….....……………......8 diferenţiale sau 16 simple Rezoluţia ADC………………………………………………………..……16 biţi DNL…………………………………………………………….Fara cod garantat INL……………………………………….......refera la tabelul de acurateţe al AI

Viteza de eşantionare Maxim.…………………………………………………………….……..250 kS/s Minim…………………………………………………………..……………0 S/s Acurateţea temporizării….……………..………50ppm din viteza de eşantionare Rezoluţia temporizării……………………………………………….……...50 ns Intrările cuplate……….……………………………………………………….DC Domeniul intrărilor………………………….…………±10v, ±5V ,±1V, ± 0.2V Numărul maxim de volţi pentru intrările analogice (semnal+mod comun)…………………………………...….±11V AI GND CMRR(DC la 60hz)…………………………………………………………95dB

Impedanţa de intrare

Dispozitiv on AI+AI GND…………………………..………….>10GΩ in paralel cu 100 pF AI-AI GND……………………………..………..>10GΩ in paralel cu 100pF Dispozitiv off AI+AI GND……………………………………………………...……….820Ω AI-AI GND………………………………………………………...……..820Ω Influenţa curentului de intrare……………………………………………±100pA

Interferenţa (la 100 kHz) Canale adiacente…………….………………..……………………………-75Db Canale neadiacente……………………………………………..…………..-90dB Semnal in banda scurta(-3dB)………………………………….…………700kHz Mărimea intrării FIFO………………………………..…………4,095 eşantioane Scanarea memoriei………………………………...………………..4,095 in total Transferuri de date …………...…………………..DMA ( imprastiere-strangere), întreruperi, programări I/O Protecţie pentru supraîncărcare (AI<0..79>,AI direcţia,AI direcţia 2) Dispozitiv on................….........…±25V cu dimensiunea nominala de 2 pini a AI Dispozitiv off……………….……±15V cu dimensiunea nominala de 2 pinii AI Curentul de intrare in timpul condiţiilor de sutpraîncărcare…………………..……………………...±20mA max/pinul AI Setările timpului pentru măsurătorile pe mai multe canale Acurateţea, scala si toate domeniile: ±90ppm/pas(±6LSB)……………………..………………4µs interval convertit

182

±30ppm/pas(±2LSB)…………………..…………………5µs interval convertit ±15ppm/pas(±1LSB)…………………...…………………7µs interval converti

Grafice de performanţă

2. Ieşirile analogice

Numărul de canale

NI 6221…………………………………………………………………………2 Rezoluţia DAC…………………………………………………………….16 biţi DNL…………………… ………………………………………….…….±1 LSB Monitorizare………………………………………………...……16 biţi garantat Rata maxima pentru updatare 1 canal…………………………………………………………..……833 kS/s 2 canale……………………………………………………....740kS/s pe canal 3 canale…………………………………………………..…..666kS/s pe canal 4 canale………………………………………………..……..625kS/s pe canal Acurateţea timpului……….…………....…...50 ppm pentru eşantionarea vitezei Rezoluţia in timp……………………………………………………...……50 ns Domeniul de ieşire……………………………………………………...….±10V Ieşirea cuplata…………………………………………………………...……DC Impedanţa de Ieşire…………………………………………………………0.2Ω Ieşirea curenta din dispozitiv……………………………………….……..±5mA Supraprotectia………………………………………………………...……±25V Curentul de supraîncărcare…...………………………………………...….10mA Starea de Power on…………………………………………………………±20V Puterea de distorsiune…………………………………8.5V vârf pentru 14,5 ms Mărimea ieşirii FIFO………………..…………...DMA ( imprastiere-strangere), I întreruperi, programări I/O

183

Modul de propagare a semnalelor pentru AO Forma undelor neperiodice Mod de regenerare a formei undelor periodic de pe placa prin metoda FIFO Regenararea periodica a formei undelor mulţimii circuitelor tampon inclusiv update-ul se face dinamic Timp de răspuns, scalare: 15 ppm(1LSB)…………………………………..6µs Viteza de creştere………………………………..15 V/ µs Energia de distorsiune Mărime……………………………………..100mv Durata……………………………………………2.6 µs

Calibrarea (AI si AO) Timp de încălzire recomandat…………………..15 minute Intervalul de calibrare…………………………...1 an

3. I/O Digitale

CARACTERISTICI STATICE Numărul canalelor Ni 6221(68-pini)…………………………………..…...24 total 8 (P0.<0..7> 16) (PFI<0..7>/P1, PFI<8..15>/P2) NI 6221(37-pini)………………….....…...10 total 2(P0.<0,1>) 8(PFI<0..7>/P1) Legătura la pamant………………………………………………………D GND Direcţia controlului…………………………………..Fiecare terminal individual Programabil ca si I/E Tracţiunea rezistorului…………………………..………………..50kΩ la 75k Ω Protecţia tensiunii la Intrare………………………………………………..±20V

Caracteristicile semnalelor (Doar pentru portul 0) Terminale folosite NI 6221 (68 pini)………………………..…………………….Port 0 (p0.<0..7>) NI 6221 (37-pini)……………………………………………...Port 0 (P0.<0,1>) Port/Mărimea eşantionului NI 6221 (68 pini)………………………......…cu dimensiunea nominala de 8 biţi NI 6221(37-pini)……………………....……..cu dimensiunea nominala de 2 biţi Generarea semnalului (DO) FIFO……………………..….……2,047 eşantioane Achiziţii semnalului (DI) FIFO………………………..………2,047 eşantioane Frecventa in baza de timp a eşantionului DO sau DI………………………………………………………..….de la 0 la 1 MHz DO sau DI sursa valorii reprezentative a unui semnal regulat …………….Orice PFI, RTSI, a eşantionului semnalelor analogice de intrare sau a convertirii semnalelor periodice,a eşantionului semnalelor analogice de ieşire şi a altor semnale

Funcţionarea PFI/Port1/Port2 Funcţionalitatea………………………..……………intrare digitala statica, ieşire digitala statica, temporizarea intrărilor si a ieşirilor

184

Temporizarea sursei de ieşire……………………Multe intrări analogice, ieşiri analogice, Contoare, DI, DO, semnale temporizate Setările vibraţiei filtrului……………………….125 ns,6.425µs,2.54ms,tranzitii înalte si joase; selecţii pentru intrare

4. Caracteristici generale pentru contoare/temporizatoare Numărul de contoare/ temporizatoare…………………………………………..2 Rezoluţia …………………………………………………………………..32 biţi Măsurările contorului…………………………………Frontul contorului, pulsul, semiperioada, perioada, frontul de separare Măsurătorile poziţiei…………………………….……….X1,X2,X4, cvadratura, codificarea cu Canale Z reincarcate;2pulsuri codificate Ieşirea aplicaţiilor………………………………..impulsuri, sir de impulsuri cu updatare dinamica, divizarea frecventei, timpul echivalent eşantionului Baza interna a semnalului…………………...………..80MHz, 20MHz, 0,1MHz Baza externa a semnalului……………………………..…..intre 0 Hz si 20 MHz Precizia de baza a semnalului…………………………..,,,,,,,,,,,,,……….50 ppm Intrări………………………………………………pas, sursa, HW_Arm, Aux A,B,Z, Up_Down Alegerea cursului pentru intrări……………………Orice PFI, RTSI, PXI_TRIG, PXI_STAR, declanşator analogic multe semnale interne FIFO……………………………………………….………………..2 eşantioane Indici de transmitere……………………………Centru de colectare -dispersare a controlerului DMA pentru fiecare contor/temporizator ; întreruperea execuţiei funcţiilor de I/O

Generator de frecvenţă Număr de canale………………………………………………………………...1 Baza semnalului……………………………………………....10 MHz, 100MHz Divizori…………………………………………..………………….de la 1 la 16 Precizia de baza a semnalului………………………….………………...50 ppm Ieşirea poate fi utilizata pe fiecare terminal PFI sau RTSI Faza circuitului închis ( PLL) Referirea semnalului…………………….PXI_STAR, PXI_CLK10, RTSI<0..7> Ieşirea din PLL………………………………….Baza de timp 80 MHZ; alte semnale derivând de la timpul de baza 80 MHz incluzând 20 MHZ si 200 kHz in timpul de baza

Declansatoare externe de frecventa Sursa…………………………………………Orice PFI, RTSI, PXI_TRIG, PXI_STAR Polaritatea…………………………...…Selectabil pentru majoritatea semnalelor Funcţii analog de intrare……………………Start declanşare, pauza declanşare, semnal eşantion, baza de timp a semnalului eşantion. Funcţiile contoarelor/temporizatoarelor……….Pas, sursa, HW_Arm, Aux, A, B, Z, Up_Down

Generarea semnalului digital Funcţia (DO)……………………………………………………semnal eşantion

185

Achiziţia semnalului digital Funcţia (DI)……………………………………..semnal eşantion

Magistrala dispozitivelor declanşatoare Dispozitive PCI………………….……………………….………….RTSI<0..7> Dispozitive PXI………………………………….PXI_TRIG<0..7>, PXI_STAR Ieşirile selectate………………………………….Referentierea semnalului 10MHz ; Generarea frecventei de ieşire; mai multe semnale de ieşire ; Debouce dispozitiv de filtrare…………………...125 ns, 6,425µs, 2,54 ms, disponibil, tranziţie de frecventa joasa sau înalta selectabila pentru ieşire

Magistrala interfeţei PCI sau PXI………………………………………..semna de mediu 3,3V sau 5V Canale DMA……………………………………6 : intrare analog, iesire analog, intrare digitala, ieşire digitala, contor/ temporizator 0, contor/ temporizator 1

CERINŢE DE PUTERE Curentul din magistrala când nu este încărcata +5 V…………………………………………………...………………….0,02 A +3,3V……………………………………………….…………………...0,025 A +12 V ………………………………………………...…………………..0,15 A

Curentul din magistrala al AI si AO in condiţii de supratensiune +5 V………………………………………….………………...………….0,02 A +3,3V………………………………….……………………….………...0,025 A +12 V ………………………………...………….……………...………..0,15 A Putere disponibila pentru terminalul de +5V……max 1 A , pentru fiecare conector cu butonul de siguranţa de readucere Alte limite de putere Dispozitivul PXI………………………………..Curentul de la terminalele P0,PFI, P1, nu ar trebui sa depaseasca 2 A

CERINŢE FIZICE Dimensiunea regletei de contact pentru circuite de imprimare NI PCI- 6221……………………………..……9,7cm x 15,5 cm (3,8 in x 6,1 in) NI PXI- 6221………………………………………………...…Standard 3U PXI

Greutate

NI PCI-6221(68 pini)..………………………………………..……92 g (3,2 oz) NI PCI-6221(37 pini)..………………………………………..……95 g (3,3 oz) NI PXI 6221 (68 pini).………………………………………..…….162g(5,7 oz) Conectori de I/O NI 6221(68 pini)……………………………………………....168 pini VHDCI NI 6221(37 pini)…………………………………...…………..137 pini D-SUB

186

TENSIUNEA MAXIMA DE LUCRU NI 6221 Canale la pamant……………………………………………………………11 V

Mediul Condiţii de temperatura…………………….…………………….intre 0 si 55 0C Temperatura de depozitare…………………………………..…de la 20 la 70 oC Umiditate……………………………………...intre 10 si 90% RH necondensare Altitudinea maxima………………………………………….…………...2000 m Grade de poluare(folosite doar in interior)………………………………..……2

SIGURANŢA IN FUNCŢIONARE Acest produs este fabricat sa îndeplinească cerinţele pentru următoarele standarde de siguranţa pentru echipamentele electrice de măsurare , control folosite in laborator : - IEC 61010-1, EN 61010-1, - UL 61010-1 - CAN/CAS-C 22.2 No. 61010-1

COMPATIBILITATE ELECTROMAGNETICA Emisii……………………………………………EN 55011Clasa A la 10 m subansamblul peste 1 GHz Imunitate……………………………………………EN 61326 : 1997+A2 :2001, tabel 1 CE.C=Tick, si FFC Partea 15(clasa A) 5. Mod de lucru Se vor identifica pinii modulului de conectare a plăcii NI 6221.

- Se vor identifica pinii canalelor de intrare analogice. - Se vor identifica pinii canalelor de intrare ieşire digitale - Se vor identifica pinii elementelor de contorizare temporizare. - Se vor identifica pinii de alimentare

187

Lucrarea 13. Măsurarea tensiunii cu Placa NI 6221

Driverele plăcii de achiziţi NI 6221 se instalează cu aplicaţia DAQ Max furnizată odată cu placa de National Instrument iar programarea se va realiza în LabVIEW 7.1. Achiziţionarea datelor în LabVIEW 7.1. se face cu ajutorul funcţiei DAQ Assistant, care se

apelează din menuul DAQ Funcţia de achiziţie DAQ Assitant Iconica ei arată ca în figura 1.

Activarea unei funcţii de tip DAQ Assistant determina deschiderea unei ferestre ca cea din figura 2 prin intermediul căreia se stabileşte tipul de canal cu care va lucra funcţia de achiziţie

Pentru a configura această funcţie, din meniul contextual ataşat funcţiei se selectează Properties / Analog input / Voltage.Va apărea o fereastra de configurare care arată ca cea prezentată în figura 3. În cadrul acestei ferestre putem seta tensiunea de intrare pe placa (±10V), modul de achiziţie ( un eşantion, n eşantioane, sau achiziţie continuă), frecvenţa de

eşantionare, numărul de eşantioane.

Atunci când se selectează achiziţia unui număr de eşantioane trebuie precizata frecvenţa de eşantionare şi numărul de eşantioane citit la o rulare a programului. Dacă se selectează intrarea coectarea în mosul diferenţial, atunci trebuie precizate două canale pe care se va conecta semnalul achiziţionat diferenţial; la achiziţia în modul single

Fig. 2

Fig.3.

Fig.1.

188

ended (RSE sau NRSE) conectarea semnalului achiziţionat se va face la canul analogic selectat si la AIGND.

În general semnalele de intrare achiziţionate sunt insoţite de zgomote si perturbaţii. Pentru eliminarea acestora se pot lua masuri hard-ware (filtrare, conectare cu cabluri ecranate) şi soft-ware (filtrare, prelucrare statistica, etc). Vom prezenta în continuare principlalee funcţii utilizate în analiza semnealelor achiziţionate Datele dinamice sunt convertite in date numerice cu ajutorul functiei a carei iconica este

. Funcţia Amplitude and Level Measurement care are iconica prezentata in figura de mai jos permite calcularea diferitilor parametri ai semnalului alternativ aplicat la intrare.

Dupa pozitionarea acestei functii pe fereastra diagrama poate fi activata fereastra de configurare a functiei al carei aspect este cel prezentat in figura de mai jos

Dupa cum se observa sunt specificati parametrii ce pot fi calculati de catre functie, selectia acestora relizandu-se prin bifarea casutei corespunzatoare parametrului selectat. Se poate

189

observa ca functia de configurare exemplifica valoarea parametrului selectat pentru un semnal de intrare aplicat la intrare a carei diagrama este prezentata in fereastra de configurare. Functia „statictisc” a carei iconica este prezentata in figura de mai jos permite calcularea unor indici statistici asociati unor siruri de date.

In mod similar functiilor prezentate anterior, si aceasta functie are o fereastra de configurare al carei aspect estre prezentat in figura de mai jos.

Mod de lucru

1. Se va realiza o aplicaţie în LabVIEW 7.1. care să permită achiziţionarea RSE a unui semnal continuu în domeniul 0-10V; semnalul dynamic obţinut va fi filtrate (se va calcula valoarea medie şi va fi afişat grafic şi pe un indicator numeric.

2. Se va realiza o aplicaţie în LabVIEW 7.1. care să permită măsurarea unei tensiuni alternative monofazate în domeniul +/- 10V. Se vor afişa 10 perioade a semnalului şi se va calcula şi afişa valoarea medie a semnalului

190

Lucrarea 14.

Programarea canalelor de intrare iesire digitala ale placii NI 6221 in Labview 7.1

Pentru majoritatea placilor de achizitie produse de National Instrument, ca urmare si pentru placa NI 6221, canalele de intrare iesire digitale (DIO) sunt grupate pe cuvinte de 8 biti (porturi) si pot fi programate atat pe cuvant cat si pe bit pentru a functiona atat ca si canale de intrare digitale cat si de iesire. Placa NI 6221 are 24 de canale digitale intrare iesire grupate pe 3 cuvinte de 8 biti (port 0, 1, si 2)

Cel mai comod mod de programare a canalelor digitale este folosirea functiei DAQ assistant din meniul de functii “input”. Activarea acestuia se poate realiza prin selectarea succesiva plecand din fereastra diagrama a meiului de functii input si a functiei DAQ Assist.

Dupa pozitionarea acesteia pe fereastra diagrama este posibila activarea ei prin dublu clik pe iconica corespunzatoare. Se va activa o fereastra ce permite selectare canalelor de intrare iesire digitale DIO ca in figura 1.

Asa cum se observa in continuare se poate selecta o programare pe cuvant (port) sau

pe canal (line) ca intrare (input) sau ca iesire (output). In cazul selectiei programarii pe linie, dupa selectarea liniei si confirmarea selectiei va

deveni activa o fereastra se setare a parametrilor de lucru a liniei respective ca in figura 2. Din aceasta fereastra va fi permisa setarea achizitiei in unul din modurile:

Fig. 1. Selectarea canalelor DIO

191

- Achizitia unui singur esantion (1 Sample (On Demand)) caz in care devin inactive meniurile de setare a clok-ului de achizitie

- Achizitia temporizata a unui singur esantion (1 Sample (HW Timed)) caz in care va trebui specificat modul de setare a temporizarii din meniul “Advanced Clock Setting”

- Un numar specificat de esantioane (N samples) caz in care va trebui precizat suplimentar numarul de esantioane si frecventa de esantionare din meniul “Clock Setting”

- Achizitie continua (Continuu) cu aceleasi setari ca si in cazul anterior

Dupa confirmarea selectiei modului de achizitie pe canalul DIO aspectul iconicei functiei de achizitie se modifica ca in figura 3

Setari identice similare sunt disponibile si in cazul selectarii programarii pe canale de

iesire digitale sau pe porturi digitale de intrare/iesire. Tipul semnalului de iesire din aceste functii difera functie de modul de acchizitie

setat:pentru un sungur esantion se obtine un semnal de tip array unidimensional cu 8

Fig. 2. Fereastra de setare a modului de achizitie

192

elemente tip boolean in timp ce pentru mai multe esantioane sau achizitie continua se obtine un tablou multidimensional de elemente booleene.

Pentru programarea canalelor de iesire digitala se procedeaza in mod similar modului de programare a canalor digitale de intrare.

Mod de lucru

1. Se va realiza o aplicatie prin care sa fie programat canalul 0 din portul 0 ca si canal de intrare iar canalul 1 din portul 0 ca si canal de iesire.Achizitia respectiv comanda se va face in modul “un singur esantion”. Afisarea valorilor citite, respectiv comandate va fi realizata prin intermediul unor indicatoare respectiv controale corespunzatoare de pe panoul frontal.

2. Se va realiza o aplicatie prin care sa fie programat portul 0 ca si port de intrare digital. Achizitia se va face in modul “un singur esantion”. Afisarea valorilor citite, va fi realizata prin intermediul unui indicator de tip numeric corespunzator de pe panoul frontal.

3. Se va realiza o aplicatie prin care sa fie programat portul 1 ca si port digital de iesire. Comanda se va face in modul “un singur esantion”. Afisarea valorilor comandate va fi realizata prin intermediul unui control de tip numeric corespunzator de pe panoul frontal.

Observatie . Pentru furnizarea respectiv receptia semnalelor digitale se va utiliza modulul de simulare a canalelor digitale de intrare iesire. Conectarea la interfata placii se va realiza in conformitate cu etichetele de pe capatul conductoarelor de legatura ale modului.

193

BIBLIOGRAFIE

1. Ababei, Şt. Măsurări electrice, Universitatea Bacău, 2001 2.Ababei, Şt. Măsurarea parametrilor în industria celulozei şi hârtiei Editura ALMA MATER Bacău, 2003 3. Ababei Şt. Măsurări electrice şi neelectrice Îndrumar de laborator – Universitatea Bacău, 2003 4. Ababei Şt. A Virtual Apparatus for Power Measurement - Modeling and Optimization in the Machines Building Field MOCM 11, 1224-7480 - 2005, vol 4., p 194-197 5. Ababei Şt., Culea G. - A Virtual apparatus for energy quality mesurement - Modeling and Optimization in the Machines Building Field MOCM 11, 1224-7480 - 2005, vol 4., p 198-204 6.Ababei Şt. - Virtual instrument for harmonic analysis - Modeling and Optimization in the Machines Building Field MOCM 12, 1224-7480, 2005 7. Barney, G.C. Intelligent instrumentation. Microprocesor applications in measurement and control, Second edition, Prentice Hall, New York, 1988 8. Cottet, Fr. Bazele programării în LabVIEW, Editura Matrix Rom, Bucureşti, 1998 9.Dehne T., Virtual Instruments will Adapt to Changing Needs. Electronic Design. January 7, 1993 10. Dimitriu, L. Aparate electronice de măsurare şi control, Litografia Nica, V., Universităţii „Gh. Asachi”, Iaşi, 1997 11. Dordea, R. Măsurări electrice şi electronice, Editura Didactică şi Pedagogică , Bucureşti , 1980 12. Erik, M.H. Digital Voltmeters and Multimeters, Philips, Eindhoven, 1980 13. Fontenay, R. Converisseurs analogiques-numeriques et numeriques - analogiques, E.R. Paris, 1980 14. Gookin, A. High resolution Instrumentations. Hewlet Packard Lournal, 1990 15.Hall D, V. Digital Circuits and Systems, McGraw Hill, New York, 1989 16.Helfrick, A.D.ş.a. Modern Electronic Instrumentation and Masurements Techniques, Prentice Hall, New York, 1990 17. Ionescu, G. ş.a. Traductoare. Editura Tehnică, Bucureşti, 1986 18. Jurcă T., Instrumentaţie de măsurare,Editura de Vest, Timişoara, 1996 19. Mcfarlanae, A. Digital Signal Processing. Sensor Review, Volume 17, Number 1, 1997 20. Nicolau Ed., Măsurări electrice şi electronice, Editura Didactică şi Pedagogică, Bucureşti, 1978 21. Nicolau, Ed. ş.a. Manualul inginerului electronist. Măsurări electronice. Editura Tehnică, Bucureşti, 1979 22. Pietrăreanu E., Agenda electricianului, Editura Tehnică, Bucureşti , 1979 23. Pop E., Principii şi metode de măsurare numerică, Editura Facla, Timişoara , 1977 24. Radu, O. Filtre numerice. Aplicaţii. Editura tehnică, Bucureşti, 1979 25. Râpeanu, R., Circuite integrate analogice, Editura Tehnică, Bucureşti, 1989

194

26. Robinson, G.H. Resonant Frequency Calculations for Microstrip Cavities, IEEE Trans. MTTT, Nr. 7, July 1971 27. Sărăcin, M. Măsurări şi traductoare, Editura Tehnică, Bucureşti, 1985 28. Sâmpăleanu, M. Circuite pentru conversia datelor, Editura Tehnică, Bucureşti,1992 29. Tiron, M. Prelucrarea statistică şi informaţională a datelor de măsurare. Editura Tehnică, Bucureşti, 1976 30. Vârbănescu R., Sisteme informatizate de măsurare, Editura Matrix Rom, Bucureşti, 1999. 31. Wolf S., Student Reference Manual for Electronic Instrumentation Smith R. Laboratories, Prentice Hall, Englewood Clifs, New Jersey, SUA, 1990 32. *** Instrumentation Catalog, Mesurement and Automation, National Instruments, Austin. TX, SUA, 1998 33. *** D A Q PC-LPM-User Manual, National Instruments, November 1993 Edition 34. *** LabVIEW Data Acquisition VI Reference Manual for Windows, NAŢIONAL INSTRUMENTS, September 1994Edition 35.*** CMOS Databook, Microelectronica, Bucureşti, 1992 36. *** MOS and Optoelectronic Device Databook, Microelectronica, Bucureşti, 1985 37. *** Test and Measurement. Catalogue, Tektronix, 1993 38. *** STAS 4640/1-71 Aparate de măsură electrice. Indicatoare şi accesoriile lor. Terminologie şi clasificare 39. *** STAS 4640/2-74 Aparate de măsurat electrice. Indicatoare şi accesoriile lor. Condiţii tehnice generale de calitate. 40. *** Catalog aparate de măsură. IAEM Timişoara, 1985